[stella] Death Derby optimizations

Subject: [stella] Death Derby optimizations
From: Glenn Saunders <mos6507@xxxxxxxxxxx>
Date: Wed, 14 Jan 2004 22:48:30 -0800
At 07:02 PM 1/13/2004, you wrote:
Have you run a trace on this? At the start up you're producing 235
scanlines. Once the game starts you're doing 241 scanlines. I looks like
you're not doing enough scan lines for overscan.

Thomas found a block of code I took out that I didn't realize I needed. That's what broke the display.

Even so, the final game is going to have more active scanlines than the typical. I believe I originally calculated it to use 200 pixels rather than 192. It might be a few more if you count the border lines.

Also, the gremlins seem stuck on the side of the screen. Is this the way
they act on the real VCS too?

I ripped out the gremlin movement routines in order to rewrite them so they will (hopefully) use less code and less RAM.

As for optimizations...do you want suggestions on optimizing the code? It
sounds like you're not really concerned with that at this point.

Actually, I am very interested in optimizations. I've been trying to do quite a bit since the last build I sent to the list.

One thing you might notice is how much RAM I have to reserve for the score display. 12 bytes for the digit pointers.

Honestly, I'd rather have a sprite-based score ala Gunfight. If someone were to be kind enough to replace my score with something like that I'd greatly appreciate it :)

But otherwise what I've got works and at least I wrote it from scratch. But if Manuel wanted to volunteer to swap my score out for a Gunfight-like one, I'd love it. It would also help the game look closer to the coinop that way.

The main optimization I'm doing right now, RAMwise, is isolating bytes for the gremlins or cars that can be compressed down from 2 byte to 1. Anytime I only need a number between 0 and 15 it's a good candidate.

I'm working on a set of general subroutines for manipulating nybbles. If anyone on the list has some that work well, let me know. I like my subroutines to always treat nybbles on the right-hand side and then I call the subroutine to do smart reads and writes depending on X being 0 or 1 to indicate left or right nybble. The subroutine handles the necessary bitmasking, merging, and shifting.

---------------------------------------------------------------------------------------------- Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/

Current Thread