Re: [stella] invaders idea

Subject: Re: [stella] invaders idea
From: emooney@xxxxxxxxxxxxxxxx (Erik Mooney)
Date: Sun, 13 Apr 1997 00:49:11 GMT
>The big problem with these invaders isn't so much the lack of definition,

If you want more detail in the pictures, adjust the fine-tuning on your TV
so the picture is slightly fuzzy.. then the invaders don't look quite as
blocky =)

>Would it be possible to manipulate the playfield graphics so that the
>blocks alterate like so:
>
>xxxxxxxxxxxxxxxxxxxxxxxx
>xxxxxxxxxxxxxxxxxxxxxxxx
>xxxxxxxxxxxxxxxxxxxxxxxx
>xxxxxxxxxxxx
>xxxxxxxxxxxx
>
>Frame 1
>
>xxxxxxxxxxxxxxxxxxxxxxxx
>xxxxxxxxxxxxxxxxxxxxxxxx
>xxxxxxxxxxxxxxxxxxxxxxxx
>            xxxxxxxxxxxx
>            xxxxxxxxxxxx <--- legs, one playfield graphic pixel wide
>
>Frame 2

That I *think* I could do, and it might even look decent. =)  My problem is
cycles.. the kernel is two scanlines high within the invader formation, and
there's about one spare cycle in there - in those two scanlines, it checks
both missiles and the ball using the PHP trick, writes the playfield
registers 12 times, increments a scanline counter, and decrements a
number-of-lines-left-in-this-invader-row counter.  I'm using a very simple
method of storing the invaders... simply 30 bytes of memory - five rows of
six bytes, each byte holding one of the playfield registers for that row,
so writing it is a simple LDA Invaders+z,Y / STA PFz. (there's a two-byte
gap in RAM between each row, so the offset between rows is 8 which is a
power of two.. I am using those gaps for other data.)

What I might be able to do here is skip the missile/ball check on the last
two scanlines of the invader row, which would give me enough time to AND
the playfield data with something before writing it to Stella.  I really
can't narrow the field by stripping out PF0.. 40 horizontal pixels is
barely enough to do anything with, let alone 32.

Also, remember sound effects will make the "marching" stand out better.

>By manipulating playfield graphics at the pixel level this way and
>animating them, you can even get a few variants on the shapes.  By
>alternating color on a scanline by scanline basis instead of just an
>invader row by invader row basis you can also increase the apparent detail
>on the invaders.  In this way you may be able to get five truly different
>invader rows.

This will be more difficult, because I don't have the time to do anything
besides loading and storing the playfield graphics on the same scanline
pair on which I check the missiles and the ball.  I'll try with the first
"marching" thing you said and see what I get.  I might be able to do the
"legs" thing on different lines for each row of invaders (bottom two do the
"legs" as their bottom line, middle two rows do the "legs" as the middle
line, and top row does it as the top line - this makes the "heads" of the
top row thinner, just like the arcade.)

Also, for the shields and NUSIZ problem.. I think I'm going to have to make
the shields 3 copies of player 1 and 1 copy of player 0.. and use missile 0
to draw both player missiles on alternating frames in two-player
simultaneous.  (this has the added advantage of leaving missile 1 open to
do other things - I may try to draw the saucer with it.)  If the shields
are 12 lines high (twice the invader height - this matches the arcade), I
can make the kernel in there operate in 3-scanline blocks instead of two,
and I'll have enough time to write player graphics registers four times.

Thanks for the ideas!

--
Archives available at http://www.biglist.com/lists/stella/archives/
E-mail UNSUBSCRIBE in the body to stella-request@xxxxxxxxxxx to be removed.

Current Thread