Jump to content
GroovyBee

Wasp! - 7800 homebrew with a twist

Recommended Posts

Find attached my first homebrew called Wasp! for the Atari 7800 :-

 

Wasp_02_04_09_1.01.a78Wasp_02_04_09_1.01.bin

Now for the twist ;) . Its actually written in "C" using the CC65 development system :cool: . Yes... I know its April Fools Day :roll: . I've no idea if it runs at an acceptable speed on a real machine but it works fine in the 7800's ProSystem emulator (v1.3). If somebody with a CC2 could test it for me that would be good. The game doesn't use any bank switching scheme or need any additional RAM.

 

To play the game you collect the mushrooms and avoid the wasps. Apologies in advance for the "programmer graphics". LOL!

 

Some screen shots :-

post-21935-1238621934_thumb.png post-21935-1238621942_thumb.png

post-21935-1238622052_thumb.pngpost-21935-1238622100_thumb.png

 

I'm not sure where to go with this if it runs at an acceptable speed on the real hardware. Ideally I'd like to see more homebrew development on the 7800. The game's engine is good for platformers, maze games and the like. Basically anything thats tile and/or sprite based.

 

The core engine is written in 6502 assembler because thats where the speed is required. This allows "C" to be used to control the logic, structure and flow of the game.

 

Alongside the "C" runtime I've developed a command line tool that will extract sprite bitmaps from *.bmp files and convert them into assembler text files. The bitmaps just have to be 256 colours. Only the first 13 (160B) or 25 colours (160A) are used in the conversion process.

 

Any comments or suggestions?

Edited by GroovyBee
  • Like 1

Share this post


Link to post
Share on other sites
Any comments or suggestions?

Only that I like where this could lead... Good work!

Share this post


Link to post
Share on other sites

Hi there,

Only that I like where this could lead... Good work!

I agree! Nice work combining C and ASM.

Share this post


Link to post
Share on other sites
Looks cool! I cant seem to run it on the emulator I use though :(

Which emulator is that? I have the latest version of MESS but it complains about "7800.u7 NOT FOUND". Thats not the most helpful error message in the world :(. Maybe thats just a setup problem tho.

Share this post


Link to post
Share on other sites
Looks cool! I cant seem to run it on the emulator I use though :(

Which emulator is that? I have the latest version of MESS but it complains about "7800.u7 NOT FOUND". Thats not the most helpful error message in the world :(. Maybe thats just a setup problem tho.

 

The emulator I use is rather outdated (v7800 release 12), but it is the only one I can get working on my mac. I could never get MESS to work for some reason :(

Share this post


Link to post
Share on other sites
The emulator I use is rather outdated (v7800 release 12), but it is the only one I can get working on my mac. I could never get MESS to work for some reason :(

I don't have a mac, so can't help you there :(.

Share this post


Link to post
Share on other sites
Looks cool! I cant seem to run it on the emulator I use though :(

Which emulator is that? I have the latest version of MESS but it complains about "7800.u7 NOT FOUND". Thats not the most helpful error message in the world :(. Maybe thats just a setup problem tho.

That makes two of us--what a mess, so to speak. Someone needs to write a proper OS X GUI around SDLMESS.

 

I'll have to try this on real hardware later--looks quite interesting!

 

..Al

Share this post


Link to post
Share on other sites
It doesn't work on the real thing. :(

 

Allan

 

It must not be signed. That may also be the reason it does not work with v7800.

 

GroovyBee, have you been signing the ROMs?

Edited by Wickeycolumbus

Share this post


Link to post
Share on other sites
It doesn't work on the real thing. :(

 

Allan

 

It must not be signed. That may also be the reason it does not work with v7800.

 

GroovyBee, have you been signing the ROMs?

I tried 78quick.

 

Allan

Share this post


Link to post
Share on other sites

I tested the .bin file for a signature using sign7800 and it says:

 

Read $8000 bytes of cartridge data.
Cartridge reset vector points outside hashed area!

 

Maybe the code takes up more than 32K :ponder:

Share this post


Link to post
Share on other sites
GroovyBee, have you been signing the ROMs?

 

I've run a78sign.exe on the *.a78 file. The *.bin file hasn't been signed. Is there an app to sign *.bins?

Share this post


Link to post
Share on other sites
I tested the .bin file for a signature using sign7800 and it says:

 

Read $8000 bytes of cartridge data.
Cartridge reset vector points outside hashed area!

 

Maybe the code takes up more than 32K :ponder:

 

Only the top 4K is hashed for speed. Should I change this?

Share this post


Link to post
Share on other sites
I tested the .bin file for a signature using sign7800 and it says:

 

Read $8000 bytes of cartridge data.
Cartridge reset vector points outside hashed area!

 

Maybe the code takes up more than 32K :ponder:

 

Only the top 4K is hashed for speed. Should I change this?

 

That should be fine. I think the problem is that part of your code is in the encryption area. $FF7A-$FFF9 should be reserved for encryption. a78sign should work fine for signing binaries. The command line is:

 

a78sign -f game.a78

 

Also make sure that your vectors point to the right place:

 

NMI:
   rti
IRQ:
   rti

org $FFF8
.byte $FF
.byte $87
.word #NMI
.word #START;start of code
.word #IRQ

 

I hope you can get it to work :)

Share this post


Link to post
Share on other sites
That should be fine. I think the problem is that part of your code is in the encryption area. $FF7A-$FFF9 should be reserved for encryption. a78sign should work fine for signing binaries. The command line is:

 

a78sign -f game.a78

Check! Thats how I'm signing the *.a78 file. Theres nothing in the binary between $FF7A and $FFF9. Its also reserved by the linker. I've just double checked for sanity sake ;).

 

Also make sure that your vectors point to the right place:

 

NMI:
   rti
IRQ:
   rti

org $FFF8
.byte $FF
.byte $87
.word #NMI
.word #START;start of code
.word #IRQ

 

I hope you can get it to work :)

Check! Sorta! I've run the ROM image (*.bin) through an 6502 core emulator and it gets to the reset code OK. I'm also using NMI for colour effects and they work OK in the emulator too. The only difference is that I've used $F7 instead of $87. This means that only the top 4K is hashed for signing purposes. I'll change mine to match yours and repost the binary.

 

If that doesn't work then I'll be working on a RAM cart for my system. Probably with a USB download/upload interface. Oh the joys of retro gaming. I wouldn't have it any other way :lol: .

Share this post


Link to post
Share on other sites

The A78 file is signed, the BIN is not. The easiest way to have the BIN signed is to remove the header from the A78 file.

As Allan mentioned it does not work on a real system which is unrelated to the signing issue.

I see that you are in the UK, is this a PAL game?

 

I played it in ProSystem and it seems like a fun game with a bit of Robotronish feel to it.

 

Mitch

Share this post


Link to post
Share on other sites
I played it in ProSystem and it seems like a fun game with a bit of Robotronish feel to it.

This is why I'm curious--I'm a huge Robotron fan. That second screenshot looks like the level transition animation from Robotron. :)

 

..Al

Share this post


Link to post
Share on other sites

Did not work with my Cuttle Cart 2. Also a huge Robotron fan panting with anticipation.

Share this post


Link to post
Share on other sites
The A78 file is signed, the BIN is not. The easiest way to have the BIN signed is to remove the header from the A78 file.

As Allan mentioned it does not work on a real system which is unrelated to the signing issue.

I see that you are in the UK, is this a PAL game?

 

I played it in ProSystem and it seems like a fun game with a bit of Robotronish feel to it.

 

Mitch

 

The game is NTSC only at the moment. It uses the NTSC palette and is set to be NTSC in the A78 header also. When I get my dev system up and running on real hardware I'll make a PAL/NTSC version too. When its fully implemented in the engine code it should adjust the DLL automatically. Its then up to the game writer to set the palette.

Share this post


Link to post
Share on other sites

Alas its not Robotron. You just collect mushrooms and you can't fire at the wasps. It was just a tech demo that uses everything in the "C" graphics/game library I've written. If the game runs fast enough on real hardware I plan to make some more games with it.

Share this post


Link to post
Share on other sites
I played it in ProSystem and it seems like a fun game with a bit of Robotronish feel to it.

This is why I'm curious--I'm a huge Robotron fan. That second screenshot looks like the level transition animation from Robotron. :)

 

..Al

I liked that effect too. I was just after a brief and colourful intermission before the next wave of wasps.

Share this post


Link to post
Share on other sites

Updated the *.bin file in my original post to be signed as well (at Mitch's suggestion of removing the A78 header).

 

Which is the easiest cart to modify into a RAM cartridge? I have a few duplicates in my collection. A cart with the most address lines available (for soldering wires onto) would be ideal.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...