Re: [stella] single line res

Subject: Re: [stella] single line res
From: Eckhard Stolberg <Eckhard_Stolberg@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 21 Jun 2000 18:56:46 +0200
At 19:59 20.06.2000 -0700, you wrote:

>Could someone explain to me how single line res sprites are generated?  In 
>all my readings I've never seen a really good explanation for this.  Maybe 
>if Greg Troutman still actively reads the list?

You can simply change the graphics in every scanline. There are no tricks

>This is done through VDEL tricks, correct?  From reading the Stella 

No, VDEL is used for generating double scanline resolution sprites.
But this is the intended behaviour and not a trick.

There are actually two graphics registers for each sprite, GRP0-A and
GRP0-B as well as GRP1-A and GRP1-B. What happens when you write to a
GRP register is that the value gets stored in the A register for that
player. But at the same time the graphics in the A register for the
other player gets copied in the B register of that player.

What VDEL deos is that it lets you decide which of the graphics registers
should be used for display. If VDEL is clear the A register is used for
that player and if VDEL is set the B register is used for that player.

If you want to use double scanline resolution, you would enable VDEL for
one of the players but not for the other. Then you would update the
graphics for one player in the even scanlines and for the other player in
the odd scanlines. This way the graphics would get changed in the same
scanline for both players. You would loose a bit of resolution, but
would gain enough enough cycles per scanline to do your display calculations.

>documentation it makes it seem as though you can't write single line 
>kernels due to timing constraints.  I know that's not true, but it may have 
>seemed that way in 1979.

What they meant by this is:

If you have all five movable objects on screen and all of them can move
freely verticallyand horizontally, than you have to decide in every
scanline if an object is to be displayed in that scanline and if so which
line of it's graphics has to be displayed. Since you only have the horizontal
blank time, there just might not be enough processor time to decide that
for all five objects. If you spead those decissions out into two scanlines
your display kernal might work.

If you don't want to use all the objects at the same time, or if you
can limit their horizontal motion to certain parts of the scanline,
there should be no problem with doing the objects in single scanline

Ciao, Eckhard Stolberg

Archives (includes files) at
Unsub & more at

Current Thread