potatohead Posted August 1, 2005 Share Posted August 1, 2005 (edited) Well, I got it done this weekend. The game is complete and all the elements are there and working. There will probably be minor bugs, but you can expect a decent play experience, with score and goal. My oldest son just got done playing this and scored 44,000. Not too shabby. He says it's addictive which tells me I'm on the right path. (On easy, slow ship) Joystick0 left and right move your ship joystick0 fire launches your bullet. (You can hold down the fire button if you want to.) right difficulty sets the ship speed (default fast) left difficulty sets the ooze drop rate (default easy) You get three lives. They are shown graphically on the left side of the screen You start the game with a ration of fuel. This is displayed on the right side of the screen. As the game progresses, you will consume the fuel. The rate of consumption varies a small amount just to keep the cycle from being routine. When your ship gets low on fuel, it will turn bright white. You have a few seconds before game over at this point. When your fuel reaches a designated level, the fuel target will appear amidst the ooze. Hit it for a fresh tank of fuel + some smaller random amount of fuel. If your ship contacts the ooze, all the ooze gets knocked back a bit and you lose a ship. Your next ship starts with a generous allocation of fuel to get you started again. If you run out of fuel, the game ends no matter how many ships you may have remaining. Every 4th time you hit the fuel target, you level up and the ooze is knocked back a lot farther than it is when you lose a ship, giving you a brief rest. When the game ends, the background is changed and game action is frozen so you can note your score. Holding the trigger down for 1/2 second or so will restart the game. At this point, the game consumes all but 340 bytes of the 4K ROM space, giving a good idea of what is possible in Batari Basic at the moment. I've actually got a byte or two variable space left! Moving your joystick during the title screen reveals a blob thing I simply thought was cool and left it in the game. EDIT: Kirk's bug fixed & comments added. Download links updated. V1.1 Added this evening. Moving target, extra ship after 15 target hits, reset bug really fixed, title screen toy removed. Latest version sits in thread "Ooze V0.5 released". Was going to use whole rev numbers, then changed my mind. Sorry... ooze.game.1.1.zipooze.bas.1.1.zip Edited August 20, 2005 by potatohead Quote Link to comment Share on other sites More sharing options...
kisrael Posted August 1, 2005 Share Posted August 1, 2005 (edited) Small bug report I think: at one point I got hit by the ooze just after the Fuel icon appeared, and then I couldn't hit the fuel icon for a long time. I think finally I could, because I hit it and that was the 4th time and the ooze kind of reset, but I'm positive I saw bullets pass right through it the 2 or 3 times I tried to hit it. Nice commented code...though I wish you would tell the reader what the ASM section is doing... At some point soon there will be a gallery here at AA, an extension of the few entries I started on http://alienbill.com/2600/basic/ in a format mch like what the hacks have now. Can't wait to put this on it! Edited August 1, 2005 by kisrael Quote Link to comment Share on other sites More sharing options...
potatohead Posted August 1, 2005 Author Share Posted August 1, 2005 Small bug report I think: at one point I got hit by the ooze just after the Fuel icon appeared, and then I couldn't hit the fuel icon for a long time. I think finally I could, because I hit it and that was the 4th time and the ooze kind of reset, but I'm positive I saw bullets pass right through it the 2 or 3 times I tried to hit it. Nice commented code...though I wish you would tell the reader what the ASM section is doing... At some point soon there will be a gallery here at AA, an extension of the few entries I started on http://alienbill.com/2600/basic/ in a format mch like what the hacks have now. Can't wait to put this on it! 902318[/snapback] Sweet! Put it up there! I'll add the assembly comments. Eventually, I would like to get this on a cart with game listing and more detailed explanation of how the game works, along with some information about Batari Basic. I've always wanted to do something and get a cart for my own. Perhaps the package will motivate others and we will see more interesting gameplay scenarios that way. The comments could use some additional cleanup, but as always the docs are the last thing to get done. Yep, that's a bug. When you get hit by the ooze, your new ship comes with enough fuel to disable the target, but does not actually turn the target off. I forgot to set the right flags. Quote Link to comment Share on other sites More sharing options...
cd-w Posted August 1, 2005 Share Posted August 1, 2005 Great game, and surprisingly addictive! Have you thought about adding powerups (similar to the fuel, but which only appear for a limited time) to give you things like double shot, fast movement, reverse ooze, etc? I will be interested to see how this develops. Chris Quote Link to comment Share on other sites More sharing options...
potatohead Posted August 1, 2005 Author Share Posted August 1, 2005 Nice commented code...though I wish you would tell the reader what the ASM section is doing... 902318[/snapback] Done. + some extra comments that explain how the flags work too. (That will save my own arse when I go to work on this later on.) The link in the above post has been updated. Quote Link to comment Share on other sites More sharing options...
Jacob Rose Posted August 2, 2005 Share Posted August 2, 2005 Fun! Quote Link to comment Share on other sites More sharing options...
Jacob Rose Posted August 2, 2005 Share Posted August 2, 2005 And that blob thing is pretty cool...what were you planning to use it for? Quote Link to comment Share on other sites More sharing options...
potatohead Posted August 2, 2005 Author Share Posted August 2, 2005 And that blob thing is pretty cool...what were you planning to use it for? 902732[/snapback] Actually I was thinking about some sort of background for the title screen. The idea didn't pan out and I was left with that blob. Figured it might as well stay until there was no more room for it. Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted August 2, 2005 Share Posted August 2, 2005 Possible bug: When you press RESET it flashes the playing screen before going to the title screen. This is most obvious when you hold down RESET. Quote Link to comment Share on other sites More sharing options...
potatohead Posted August 2, 2005 Author Share Posted August 2, 2005 Possible bug: When you press RESET it flashes the playing screen before going to the title screen. This is most obvious when you hold down RESET. 903130[/snapback] Yep, I forgot to clean up the reset logic when I worked through using the brk opcode to start things fresh. Changes made --thanks. How it works now is that holding down reset will freeze whatever is on screen, releasing it will go to title screen. The joystick trigger will then start a new game. Quote Link to comment Share on other sites More sharing options...
kisrael Posted August 2, 2005 Share Posted August 2, 2005 Actually earlier I didn't realize you were still open to ideas for polishing/tweaking. One idea....maybe you could get a nice "drip" effect for the title screen. Like, have "OOZE" there all the time, but there's a single drip drip drip off of the O or someting into a puddle below. You'd have to play with it to get it just right...I'm thinking of something that evokes the nice dripping slime pipes from NES "Bionic Commando"... Quote Link to comment Share on other sites More sharing options...
potatohead Posted August 2, 2005 Author Share Posted August 2, 2005 Actually earlier I didn't realize you were still open to ideas for polishing/tweaking. One idea....maybe you could get a nice "drip" effect for the title screen. Like, have "OOZE" there all the time, but there's a single drip drip drip off of the O or someting into a puddle below. You'd have to play with it to get it just right...I'm thinking of something that evokes the nice dripping slime pipes from NES "Bionic Commando"... 903379[/snapback] --not a bad idea. There is a funky graphics thing in the title that consumes some room right now. The dripping would be a good exchange. Player shapes might just consume too much rom space though... I can start using inline assembler to save bytes however. I'm beginning to get a real feel for the tradeoffs on the 2600. There seems to always be a way to do things, but there are also pros and cons. Batari Basic leaves one at a disadvantage where address space is concerned, but does currently give flexibility in the ram playfield, for example... Added today: Moving target --will post new code this evening. Also I want to have some sort of music running in the background. There is time for it to happen and I think I can share the ooze growth sound channel with the music and have things work out ok. The bullet sound channel is pretty much consumed with the many bullets. It can hold a hit target sound as well. There is playtuning to be done as well. The easy mode is pretty decent. It probably can stand where it is and be ok. The hard mode is too hard. What I want to do is allow a paddle option as well. That way, the play can get totally freaky because it won't be limited to the joystick movement. Easy mode can be for the joystick, hard can be paddle! That's going to take some assembly hacking, which I'm not up to just yet. Quote Link to comment Share on other sites More sharing options...
retrocon Posted August 5, 2005 Share Posted August 5, 2005 What is the objective of this game exactly? Is it just kill as much of the ooze as possible? I really think it would be better if you could clear the ooze in a level and then it would go on to the next level with more ooze/faster growing ooze/etc. Did you consider doing something like this? I get this hopeless feeling when I play it now... You know what I mean? Quote Link to comment Share on other sites More sharing options...
sku_u Posted August 5, 2005 Share Posted August 5, 2005 I just tried this on CC2 and the scoring isn't working. Am I missing something? Quote Link to comment Share on other sites More sharing options...
potatohead Posted August 5, 2005 Author Share Posted August 5, 2005 What is the objective of this game exactly? Is it just kill as much of the ooze as possible? I really think it would be better if you could clear the ooze in a level and then it would go on to the next level with more ooze/faster growing ooze/etc. Did you consider doing something like this? I get this hopeless feeling when I play it now... You know what I mean? 905162[/snapback] That's good input. I totally understand what you mean. Right now, I'm pretty limited because I've run out of room for more code. Everybody wants the levels and some sense of accomplishment. I thought knocking back the ooze after a few targets would do that. Clearly is does not. How about a pause after a given amount of ooze, combined with a color change like in missile command? The ooze difficulty could ramp up each time as well. The pause seems to work in games like Kaboom! Maybe it makes sense in ooze. The other option would be to make the target multi-functional. Instead of giving the player just enough fuel to get to the next target, make it 3x the fuel and let the next coupla targets be interesting powerups? Making the bullet speed faster or slower (hehe), or changing the ooze rate are all options I can make doable. All of that can happen once I go over the code, tighten things up and free some room. A coupla folks suggested moving obstacles. If I can get a byte or two of variable storage free, I could have falling things that must be avoided or shot. With all the rapid fire, that might not work too well though. They will almost always get shot. Another moving option could be a wall that cannot be shot though, that moves. This would prevent the user from knocking back the ooze in that area of the screen, adding some difficulty and variance to the overall game play. (maybe make that a bad powerup to offset good ones?) At this point, I'm not sure this last option can happen just yet. This next rewrite will probably tell me for sure. I think I can carve out room for the code necessary, but might not have enough variable storage to hold the game state. Making full use of every last bit is proving to be very, very important. (Nothing is easy on this machine it seems!) Score not working? I'll check it out. Maybe it's something I'm doing. Can you tell me more? Like is the score on screen, but not changing? I'm interested in knowing if this works on a real machine because I want a personal cart when it's all done as a minimum. Care to test a coupla versions? I'll post 'em here and gladly wait for your feedback when you have time. Let me know. I'll be whacking on this over the weekend to try some of this stuff out. Thanks everyone for playing and your suggestions. Keep it up and I'll do the same. This game might just get there yet! On a random note, can a programmer use the 6507 interrupt flag for storage? Since the machine cannot service interrupts, turning it on should have no effect right? I might need that bit actually. (serious) Quote Link to comment Share on other sites More sharing options...
potatohead Posted August 5, 2005 Author Share Posted August 5, 2005 (edited) Actually earlier I didn't realize you were still open to ideas for polishing/tweaking. One idea....maybe you could get a nice "drip" effect for the title screen. Like, have "OOZE" there all the time, but there's a single drip drip drip off of the O or someting into a puddle below. You'd have to play with it to get it just right...I'm thinking of something that evokes the nice dripping slime pipes from NES "Bionic Commando"... 903379[/snapback] ---I like this idea, but it's going to have to be shelved. The input I'm getting is all gameplay related. Given the tight storage constraints, I don't think I can afford to put anymore title screen goodies in the game at this point. When it's all tuned --I'll give this another look. I've already tossed the title thingy that moved. Edited August 5, 2005 by potatohead Quote Link to comment Share on other sites More sharing options...
sku_u Posted August 5, 2005 Share Posted August 5, 2005 Score not working? I'll check it out. Maybe it's something I'm doing. Can you tell me more? Like is the score on screen, but not changing? I'm interested in knowing if this works on a real machine because I want a personal cart when it's all done as a minimum. Care to test a coupla versions? I'll post 'em here and gladly wait for your feedback when you have time. Let me know. When I run the game through the CC2, I can shoot and move and knock the ooze back, but the score does not change. It remains at zeros. Quote Link to comment Share on other sites More sharing options...
potatohead Posted August 5, 2005 Author Share Posted August 5, 2005 Score not working? I'll check it out. Maybe it's something I'm doing. Can you tell me more? Like is the score on screen, but not changing? I'm interested in knowing if this works on a real machine because I want a personal cart when it's all done as a minimum. Care to test a coupla versions? I'll post 'em here and gladly wait for your feedback when you have time. Let me know. When I run the game through the CC2, I can shoot and move and knock the ooze back, but the score does not change. It remains at zeros. 905187[/snapback] --thanks. I'll double check what I posted this evening and post new code here this weekend. Quote Link to comment Share on other sites More sharing options...
vdub_bobby Posted August 5, 2005 Share Posted August 5, 2005 (edited) On a random note, can a programmer use the 6507 interrupt flag for storage? Since the machine cannot service interrupts, turning it on should have no effect right? I might need that bit actually. (serious) 905180[/snapback] I think the only way that the interrup flag can be modified is by sei, cli, and brk (EDIT: and rti?). I think there was some discussion recently (within the last two weeks) about brk behavior; you might check the archives and read up. Ok, I went back and dug it up myself. Linky: http://www.biglist.com/lists/stella/archiv...7/msg00172.html and associated messages. Relevant quote, from Eckhard S: The B flag is wired directly to the interrupt input pin on the6502. In the 6507 this pin is internally set high, so on the VCS the B flag should always be set. The BRK instruction sets the I flag after pushing the status byte to the stack though, as you mentioned below. Edited August 5, 2005 by vdub_bobby Quote Link to comment Share on other sites More sharing options...
retrocon Posted August 5, 2005 Share Posted August 5, 2005 [how about a pause after a given amount of ooze, combined with a color change like in missile command? The ooze difficulty could ramp up each time as well. The pause seems to work in games like Kaboom! Maybe it makes sense in ooze. Yes, I think that would work well. A level could just be X amount of ooze, moving in at a rate of Y, with Z seconds between waves. A simple background color change would be a nice indicator of a new level. This reminds me of how that PSP game Lumines works. I think that would be a lot of fun. Quote Link to comment Share on other sites More sharing options...
potatohead Posted August 6, 2005 Author Share Posted August 6, 2005 On a random note, can a programmer use the 6507 interrupt flag for storage? Since the machine cannot service interrupts, turning it on should have no effect right? I might need that bit actually. (serious) 905180[/snapback] I think the only way that the interrup flag can be modified is by sei, cli, and brk (EDIT: and rti?). I think there was some discussion recently (within the last two weeks) about brk behavior; you might check the archives and read up. Ok, I went back and dug it up myself. Linky: http://www.biglist.com/lists/stella/archiv...7/msg00172.html and associated messages. Relevant quote, from Eckhard S: The B flag is wired directly to the interrupt input pin on the6502. In the 6507 this pin is internally set high, so on the VCS the B flag should always be set. The BRK instruction sets the I flag after pushing the status byte to the stack though, as you mentioned below. 905212[/snapback] My thought was to put it on the stack, pull it into the accumulator, store that into a basic variable and test the bit. Did that and sure enough, it's always a 1. Quote Link to comment Share on other sites More sharing options...
Brad2600 Posted August 10, 2005 Share Posted August 10, 2005 This game doesn't boot up in Stella. I tried it with both attached files and the first time I got an error: Illegal instruction 62 The second file just wouldn't boot at all. No clue what I may be doing wrong. Quote Link to comment Share on other sites More sharing options...
potatohead Posted August 10, 2005 Author Share Posted August 10, 2005 This game doesn't boot up in Stella. I tried it with both attached files and the first time I got an error: Illegal instruction 62 The second file just wouldn't boot at all. No clue what I may be doing wrong. 908386[/snapback] Have you tried other games? The bin files posted are known good. Quote Link to comment Share on other sites More sharing options...
Brad2600 Posted August 10, 2005 Share Posted August 10, 2005 Other versions of Ooze you mean? All I know is that Stella wouldn't open the files you posted and the screen came out all scrambled/bunched up when it did boot once. However, Stella works fine otherwise. Quote Link to comment Share on other sites More sharing options...
potatohead Posted August 10, 2005 Author Share Posted August 10, 2005 Other versions of Ooze you mean? All I know is that Stella wouldn't open the files you posted and the screen came out all scrambled/bunched up when it did boot once. However, Stella works fine otherwise. 908398[/snapback] Interesting. I'm fairly sure it's not the game code posted here. Just to confirm, are you able to run other atari bin files besides the two for this game? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.