[stella] WIP: Salmon Run: Asymmetrical Playfield

bob.montgomery at thomson.com bob.montgomery at thomson.com
Wed Mar 14 11:28:53 CDT 2007


Hi Thom,

>....quite honestly it seems that even if I found a way to make a nice
>consistent algorithm, i would have to do it 8 times, times 20 lines,
>and assuming that i would have to unroll the loops, I would
>essentially run out of ROM space AND cycles before I even get to
>drawing the fish or the enemies....
>
>i'm curious to see if there could be ANY possibility...... to make an
>asymmetrical playfield, without totally bursting through the basic
>laws of 2600 physics.......... ugh... it seems the only saving
>grace... that I am drawing eight lines per river change, is also going
>to bite me in the ass.

A few suggestions: first, like Michael said, put your kernel in a loop!

Second, you might want to consider only having PF1 and PF2 be
asymmetrical.  This is used in a lot of games, especially ones that have
an asymmetrical playfield: Crystal Castles, Centipede, Millipede, Dig
Dug, Mr. Do!, Pengo, etc.  Either don't change PF0 at all during the
kernel or have it be symmetrical - so you don't have to write to PF0
every line.

Third.  Assuming you take my second suggestion, you have 20 lines of
playfield data, times 4 bytes per line (PF1 x 2, PF2 x 2).  Maybe put
that in RAM?  It's 80 bytes, which is a lot, but not so many that it
isn't possible.  Than you can do all your manipulation outside the
kernel, either bit-shifting or some kind of random-river-generator (like
in River Raid, or like Chris W did in Night Rider).

The other possibility is: how many rivers do you plan on, and how long
are they?  You could store them all in ROM.  Assuming you only use
PF1&PF2, each screen is 80 bytes, so a 10-screens-tall river would fit
in under 1K.  With 32K to work with you could fit at least 300 screens
worth of river in.  :D

-bob




More information about the Stella mailing list