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.