Discussion about software development for the old-school Gameboys, ranging from the "Gray brick" to Gameboy Color
(Launched in 2008)
You are not logged in.
So for the past few weeks, I have been making a new Game Boy game called Ten Pest. It's a shooting game where you're in space and shoot different UFOs coming at you. You're on a fixed Y axis, but you can move around the X axis by pressing left or right. Pressing up and down changes the position the ship is facing. The aliens come from the bottom or top and move towards the center. The object is to not make them reach the center of the screen. Also, some UFOs shoot at you, so if you get hit by a laser, the game can end that way too. The link to download the game is here:
http://www.atari2600land.com/gameboy/tenpest.html
Let me know what you think and what changes I should make.
Offline
The "Download" is not working ->>>> "404 - Not Found"
Offline
I changed a whole bunch of stuff, even the name. I changed the name of the game to MidSpace, since you're in the middle of outer space, shooting aliens coming at you.
Offline
I have returned to working on this game again. I think I have improved it since the previous March versions. Download here: MidSpace website
Last edited by chris (2018-08-09 23:10:40)
Offline
I have found a bug in my code and I don't know how to get rid of it. I've tried everything and nothing works.
It only happens sometimes and it involves starting over again once you get the game over screen, press start to go back to the title screen. If the bug wants to work, pressing start will get rid of the main screen and then freeze. I don't know how it's triggered, either.
I'm hoping someone can take a look at my code and see what is causing this to happen. Otherwise, I guess I'll have to shelve this game.
http://www.atari2600land.com/gameboy/midspace24a.c
Offline
Does the bug occur almost randomly after reaching gameover after a couple gameplays? The recursive main call in main function worries me, my guess is its blowing the stack. Seems like you could solve that by just wrapping everything in main in a while(1) and letting it naturally reach the end and start over instead of calling main again.
Offline
I got rid of the main call in main, and I thought it had stopped it wasn't doing it, but then it happened again, so I still don't know what's wrong.
http://www.atari2600land.com/gameboy/midspace25.c
Last edited by chris (2018-08-12 16:49:13)
Offline
I'm not seeing much else that stands out.
There is a line for "wait_vbl_done;" should this be a function call? I don't think this would cause a problem though, it just wouldn't do anything.
Are you able to reproduce the issue in BGB? I am curious what its executing when it freezes and if it might be reporting any of the exception cases.
Offline
I did some debugging in BGB rebuilding the latest and mapping the symbols using map2sym and it looks like something weird is happening with gameover during the main gameinaction == 4 loop. It looks like it is stuck at 1 when it locks up. I think the gameoversfxseconds is letting it run one loop before getting stuck.
Offline
I changed line 506 to say this:
if ((gameover>1) && (gameover<49)) gameoversfxseconds++;
Played the game for 15 minutes and it didn't freeze up.
Can you get it to freeze?
http://www.atari2600land.com/gameboy/midspace26.zip
Offline
I played it for a little while it seemed fine, no lockups. I am a bit unsure how that change would fixed the case I saw while debugging though. Where gameover was stuck at 1. Just to be safe I would probably reset gameoversfxseconds to 0 in your gameinaction==3 setup block.
Offline
OK, I did that. Still no freezing issues. I played for about 10 minutes, it seems fine now. Thank you so much for helping me with this! It means a lot to me.
Last edited by chris (2018-08-13 21:24:13)
Offline
Any time, happy to help.
Offline
I forgot to mention it here, but MidSpace is for sale. I have 7 copies left. e-mail me if you want one. It's only $10.
Offline