Jump to content
IGNORED

Stellar Doomsday Interceptor (1k minigame)


supercat

Recommended Posts

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!

post-7027-1122178412_thumb.png

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 by supercat
Link to comment
Share on other sites

Just tried this on z26. Very Nice! :cool:

 

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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!

post-7027-1122178412_thumb.png

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.

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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. :)

Link to comment
Share on other sites

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?

Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...