Re: [stella] Color & drawing limitations questions

Subject: Re: [stella] Color & drawing limitations questions
From: Eckhard Stolberg <Eckhard_Stolberg@xxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 20 Mar 1999 16:14:54 +0100
At 00:04 20.03.99 -0600, you wrote:

>So there are four independent colors without using any trickery?

Correct.

>If you choose to make a 'XXX' copy, is there enough time to change each
>so there are three different colored sprites?

The closest spacing between two copies of a sprite is eight pixels.
So you can only do 'X_X_X'. You can preset the colour for the first
copy during the horizontal blank and preload two processor registers
with the other two colours. Then you can change the colours during
the eight pixel gaps. If you set player0 to two copies with an eight
pixel gap and place one copy of player1 between them, you can preset
the colours for the first and the second sprite during the HBLANK
and change the colour for the third sprite, while the second one is
displayed.

>What is the difference between single-line and double-line "mode" then?
>I thought there was a higher resolution (like Vanguard compared to
>Outlaw); I understand it's probably a software choice...

The TIA has only enough memory to store data for one scanline. It
will keep displaying this data in every scanline until the registers
are changed. You can update the registers only every couple of
scanlines. You will loose some vertical resolution, but gain some
more processor time to calculate new graphics data etc.

The TIA has the possibility to update the player graphics only
when you write data in the other player graphics register. That
way you can update the graphics for both players in alternating
scanlines, while the change will take effect for both players
in the same line.

>So where does it break over?  Can you do 7 with a reasonable amount of
>changes to the registers?

The trick requires you to constantly trigger the positioning registers
to get another set of sprites. There is no processor time inbetween.
If you don't use both player graphics to get 18 sprites per scanline,
but restrict yourself to using only one player for nine sprites, you
have three cycles between two sprites to change it's colour or shape.
If you preset the data during HBLANK and preload all three processor
registers, you can have four colours or shapes for the nine sprites.

If you go with the more irregular spacing between sprites like in
EXTRA18.BIN, you have five out of every eleven cycles to change
the sprites' look.

>Is there ANY way to change a color in the MIDDLE of a sprite, due to
>issues of timing (i.e. the time the register has been changed coincides
>with the time 4 of 8 pixels have been drawn of a sprite)?

In such a case you will get four pixels with one colour and four
with the other colour. That is for normal pixels. For double or
quadruple width sprites or the playfield the change can happen
while one of those big pixels is still beeing displayed, but the
change will take effect from the next pixel on.

>True, but I'm asking the question for someone else, who'd like to know
>ahead of time so he can get it right.  And don't worry, this image isn't
>being made up to advertise vapor on eBay. :-)

Glad to hear that. So the deadline for the picture is not something
like very early next month? ;-)


Ciao, Eckhard Stolberg



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

Current Thread