supercat Posted July 24, 2005 Share Posted July 24, 2005 (edited) I just completed a 1K minigame entry. The .bin file is 8,448 bytes because that's what emulators expect, but the actual data on tape would be 1,040 bytes of which the last 18 would be unused. Enjoy! The enclosed .bin file will load using Z26 or, better yet, using WPlaybin with a real 2600 and SuperCharger. I've not tested it with Stella; perhaps someone could oblige? sdi.zip Edited July 24, 2005 by supercat Quote Link to comment Share on other sites More sharing options...
Gateway Posted July 24, 2005 Share Posted July 24, 2005 Just tried this on z26. Very Nice! I got up to the 5th "wave" before I died. Will you be adding a digital score? The control response is good. I noticed that the explosions are shorter than I'm familiar with in Missle Command, so some of my targeting was too soon before the missle was in range. But I like how you don't have to be sitting right on top of the warhead for the explosion to destroy the missle. Also noticed my instinct wants me to wait for more than one missle to converge on the same spot so I can take out more than one at a time, but the explosions are so short that this often only destroys the closest missle. Maybe I just need more practice. Quote Link to comment Share on other sites More sharing options...
supercat Posted July 24, 2005 Author Share Posted July 24, 2005 I got up to the 5th "wave" before I died. On the Z26 default (easy) difficulty? Play the game a bit more and you should get better. I usually make it to around level 17-20. Will you be adding a digital score? I'm working on a RAM cartridge design; if I get that working, I'll code a deluxe version of SDI with scoring, space ships, better sound, etc. But in a 1K minigame I really can't afford the 50 bytes or so that would be required to replace the 'dot display' with a numerical score readout unless I sacrifice a lot of other features. The control response is good. I noticed that the explosions are shorter than I'm familiar with in (censored), so some of my targeting was too soon before the missle was in range. But I like how you don't have to be sitting right on top of the warhead for the explosion to destroy the missle. The explosions are a little shorter, true. I might be able to adjust them, but an earlier version with bigger and slower explosions was a little ridiculous. BTW, who said anything about missiles? Also noticed my instinct wants me to wait for more than one missle to converge on the same spot so I can take out more than one at a time, but the explosions are so short that this often only destroys the closest missle. Maybe I just need more practice. 897355[/snapback] You do need more practice. In the later waves, the enemy rockets come in dense enough groups to trigger chain reactions. If you only reached wave 5, that's nine rockets on screen at once. Wait until you get to wave 14. Then you'll have twice as many. BTW, the program will handle a combined total of 31 rockets and explosions. Quote Link to comment Share on other sites More sharing options...
jussts Posted July 24, 2005 Share Posted July 24, 2005 I just completed a 1K minigame entry. The .bin file is 8,448 bytes because that's what emulators expect, but the actual data on tape would be 1,040 bytes of which the last 18 would be unused. Enjoy! The enclosed .bin file will load using Z26 or, better yet, using WPlaybin with a real 2600 and SuperCharger. I've not tested it with Stella; perhaps someone could oblige? 897343[/snapback] I managed to get to wave 20 before my trigger finger gave out. PS: It seems to work just fine on Stella. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted July 24, 2005 Share Posted July 24, 2005 Looking very "superchargerish". BTW: Will you release the sourcecode? Quote Link to comment Share on other sites More sharing options...
cd-w Posted July 24, 2005 Share Posted July 24, 2005 This looks really great Personally I am happy with a wave indicator instead of a score, especially since this is a minigame. It looks like the 1K minigame competition category is going to be very interesting this year! For me, the difficulty switch setting doesn't seem to work in Stella (but it does work fine in z26). Does anyone else have this problem? Chris HINT: an autofire joystick is a good way to save your trigger finger! Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted July 24, 2005 Share Posted July 24, 2005 Hi there! Amazing stuff for 1K! Any chance for an auto-fire option? Greetings, Manuel Quote Link to comment Share on other sites More sharing options...
+batari Posted July 24, 2005 Share Posted July 24, 2005 It looks like the 1K minigame competition category is going to be very interesting this year! 897477[/snapback] I think the 1k 2600 entries are going to dominate the top spots again this year. Quote Link to comment Share on other sites More sharing options...
Aaron Posted July 25, 2005 Share Posted July 25, 2005 Pretty good. It's like a "twitch" version of Missile Command. I thought it got a lot more fun after level 10 or so, which is I guess when I realized that there's no ammunition to worry about. Much carpet bombing ensued... The sound effects could be a little more satisfying though, you know? Maybe increase the volume / duration a little on every successive chain reaction. Quote Link to comment Share on other sites More sharing options...
supercat Posted July 25, 2005 Author Share Posted July 25, 2005 The sound effects could be a little more satisfying though, you know? Maybe increase the volume / duration a little on every successive chain reaction. 897893[/snapback] Well, I've got 2 bytes left (if the moderator agrees with my tally that the headers that count total 16 bytes) and know where I can probably get three more. Maybe with 5 bytes I could do something, but my sound code is already pretty minimal. Check this out: ldx #1 audlp: lda booms,x sta AUDV0,x lsr booms,x dex bpl audlp To set up AUDC0, AUDC1, and AUDF1, I arranged the initialized data section so the last value written would be an 8 (so I'd have an 8 in the accumulator when init was completed) thus allowing me to store it without having to waste two bytes on a load. To set up AUDF0, I found a spot where X was loaded with 3 and stuck a store there. To trigger a player shot is 4 bytes (lda/sta). Likewise a missle explosion. A ground explosion is two bytes (STY with a handy value in Y). A gameover is a DEC AUDF1 and fall through to the ground explosion. I just noticed something: if I rearrage my frame-handling logic so that the least-significant four bits of the value loaded into the frame counter are an "8", I could save two bytes by sticking "sta AUDC0,x" in my audlp. Does seem a little desperate, though. Besides, by my tally, I've got four different sound effects in a whopping 11+8+4+4+2+2 bytes (31 total). I'd say that's doing pretty well. Quote Link to comment Share on other sites More sharing options...
Aaron Posted July 25, 2005 Share Posted July 25, 2005 I just noticed something: if I rearrage my frame-handling logic so that the least-significant four bits of the value loaded into the frame counter are an "8", I could save two bytes by sticking "sta AUDC0,x" in my audlp. Does seem a little desperate, though. Besides, by my tally, I've got four different sound effects in a whopping 11+8+4+4+2+2 bytes (31 total). I'd say that's doing pretty well. 897902[/snapback] Heh, ok, I didn't know you were that close to the limit. Good job optimizing. Quote Link to comment Share on other sites More sharing options...
+batari Posted August 1, 2005 Share Posted August 1, 2005 Well, I've got 2 bytes left (if the moderator agrees with my tally that the headers that count total 16 bytes) and know where I can probably get three more. Maybe with 5 bytes I could do something, but my sound code is already pretty minimal. Check this out: ldx #1 audlp: lda booms,x sta AUDV0,x lsr booms,x dex bpl audlp To set up AUDC0, AUDC1, and AUDF1, I arranged the initialized data section so the last value written would be an 8 (so I'd have an 8 in the accumulator when init was completed) thus allowing me to store it without having to waste two bytes on a load. To set up AUDF0, I found a spot where X was loaded with 3 and stuck a store there. To trigger a player shot is 4 bytes (lda/sta). Likewise a missle explosion. A ground explosion is two bytes (STY with a handy value in Y). A gameover is a DEC AUDF1 and fall through to the ground explosion. I just noticed something: if I rearrage my frame-handling logic so that the least-significant four bits of the value loaded into the frame counter are an "8", I could save two bytes by sticking "sta AUDC0,x" in my audlp. Does seem a little desperate, though. Besides, by my tally, I've got four different sound effects in a whopping 11+8+4+4+2+2 bytes (31 total). I'd say that's doing pretty well. 897902[/snapback] I haven't done much game playing lately - bB has got me a little busy Needed a distraction, so I played this for a while. Lots of fun The explosions look really good, and the play mechanics are excellent, especially for a 1k game. All this optimizing sounds familiar - to get into 1k, you do lots of funky things. Speaking of funky things - the DEC AUDF1 is really funky. When the reg is read, you are probably reading a CX or INPT reg, decrementing that, then storing to AUDF1, but the collision/INPT bits are 6-7 and AUDF1 uses 0-4. What is the value that actually ends up in AUDF1? 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.