[stella] Death Derby, is the audience listening?

Subject: [stella] Death Derby, is the audience listening?
From: Glenn Saunders <mos6507@xxxxxxxxxxx>
Date: Sun, 11 Jan 2004 03:09:29 -0800

I was trying to focus on optimizing the code, and I did a fair amount of that, although I'm sure there is a lot more fat to trim, when I got really impatient and decided to try adding sound.

I have videotape footage of the coinop Death Race which I used as a guide.

I am now simulating the DR gremlin-shriek, engine idle noise, and engine at full throttle.

I allocate sound channels based on the player/missile that is supposed to be generating the sound. M0/P0 uses AUDV0 and M1/P1 uses AUDV1. So if you run over your own gremlin your engine noise cuts out in favor of the scream, but if you run over the other player's gremlin then the scream will cut out the engine noise of P1. This seems to match how the coinop works and should sound good on Cybertech A/V mods.

If you've never seen the game or your memories are fuzzy you'll have to take my word for it that the noises are pretty close.

I didn't hear a crash noise in the game when you hit a barrier but I intend to add one. Beyond that I don't think I need any other sounds unless I'm able to add in the ghost. I might want a very brief musical queue for the ghost or powerups. But that will come much later.

The current build features primitive 16-degree movement but no accel/decel. Reverse gear does work if you have a Y-cable or foot controller. With the foot controller you would set two pedals for left and right. Should work. I've been meaning to order one for testing. In the meantime I've been using my handwired cable.

In the process or making these changes I have chopped out most of the gremlin animation routines pending a rewrite so you have to go run over them in the corners to hear the screams.

I also worked over the score and the gear indicators now match the gold color of the timer. I think this helps them stand out from the score so they don't get confused with fat 1 digits. I also managed to wedge in a gradient here, not the score, just the timer and gear indicators. It's a little hard to tell because it's only 5 interleaved strips but it's probably worth it for the small amount of extra ROM it required.

Now, aside from feedback on the sound, I really have a problem with the overscan/vblank. I think I'm going over the amount of CPU time I have available but I'm not sure. The screen is flickering when I know it has a lot to do (like process movement) so I'm suspicious.

I've got a problem because I've relied upon Thomas to do the dirty work of keeping the screen synchronized and I've been focusing mostly on filling in everything else, trying not to break anything. The thing is, I don't really know how much headroom I have, or how to figure out how much headroom I have. In this recent burst of development it's been entirely done via the Cuttle Cart, no emulator. I tried running PCAtari and it's now crashing on launch on my system.

What I'm thinking I may have to do is start moving blocks of code around. I suspect that I have a lot of free processing time somewhere that the code is doing nothing but looping over a timer object but I can't really tell.

I'd appreciate any advice you can all offer.


Attachment: DeathDerby.zip
Description: Zip archive

Current Thread