Re: [stella] Starmaster disassembled

Subject: Re: [stella] Starmaster disassembled
From: "Thomas Jentzsch" <tjentzsch@xxxxxx>
Date: Fri, 3 Aug 2001 09:14:51 +0200
Manual Poli wrote::
> IIRC it is like this: 
> The ball makes the complete starfield with 8 stars.


> The missiles do crosshair & laser. I'm not sure why the crosshair is
> disappearing when the laser is fired, but I think the lasers actually
> _are_ the crosshair, just shifted. I assume there's not enough time in
> the kernel to enable/disable the missiles on two different locations.
> (Or maybe this'd look even crappier than blanking the crosshair :-))

That's correct too. The kernel is limited to only one missile-on and one missile-off position (for both missiles). It also can't change the width of the missiles, so if you look at the fireing laser at the bottom of your screen, it is getting smaller while getting longer. But in effect, it is looking very dynamic :)

> Actually I'd now say, that the _real_ limit factor for the strategy is
> nothing but cycles(!). You can possibly live with 128 bytes RAM. 

Watch your RAM, it is sooner gone than you might expect! You need at least 2 bytes for each star to store it's position and 3 bytes for each (visible) enemy. In Thrust, I had to share a lots of bytes for different values, and then it was getting hard not to get confused :)

> You can
> make the game as big as you want in ROM - But(!) you only have this
> little number of overscan and vblank cycles to do actually something
> useful. According to the experiences of Bob Colbert one might triple or
> even quadruple these cycles by clever differing overscan and vblank
> routines, but in the end this is your limit factor I'd say. (I'm at the
> moment not aware if any of the classic games uses this technique, the
> only one I'm sure of at all is the yet to be finished multisprite game
> from Bob...)

I used that in Thrust with an a bit more complex frame counter, so I could to things
every 2, 4, 8... AND 3, 6 ,12 ... frame. And, if you change the counter in the middle of i.E. overscan, then you get 2+1, 3+1, 4+1, 6+1, ... 
Doing so, you gain heaps of cpu cycles for things that have not to be updated every frame. Which should be almost anything but pre-calculating for the kernel.

You could also slightly(!) reduce the framerate to get more overscan and vblank lines (~8..16) and cylces (and if that's not enough make it a PAL game ;-).

Have fun!
Thomas Jentzsch         | *** Every bit is sacred ! ***
tjentzsch at web dot de |

Jetzt und nur hier Ihr original PREMIERE WORLD SportPaket 
plus 100 Euro ExtraPrämie:

Archives (includes files) at
Unsub & more at

Current Thread