Re: [stella] horizontal positioning

Subject: Re: [stella] horizontal positioning
From: Eckhard Stolberg <Eckhard_Stolberg@xxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 31 May 1999 13:57:44 +0200
At 09:52 30.05.99 -0700, you wrote:
>okay, now do i have to use HMOVE for every scan line, or can i just activate
>it
>once per frame?

The VCS has a line based architecture. It has only enough video memory
to hold the data for one scanline. You can change the data at any time,
but if you don't, the VCS will continue to output this scanline over
and over again until you blank out display with the VBLANK command.
So if you don't want to reposition an object througout the screen,
positioning it once per frame every time the position has changed
is enough.

The reason for the existance of the HMOVE command is that a processor
cycle coresponds with 3 pixels. Therefore positioning an object with
RESPxx only would not reach every screen position. The reason for
the HMOVE having a span of 15 pixels is probably because a delay loop
like:

L1: DEY     ; 2 cycles
    bne L1  ; 3 cycles, if branch is taken

takes 5 cycles (15 pixels) for every time the code is executed.
Therefore writing a shift value into a HMxx register during HBLANK,
executing the delay loop a couple of times, accessing RESxx and
then accessing HMOVE in the next scanline allows you to easiely
position an object at every pixel in a scanline.

>hmmmm...this is getting complicated...so balls and missiles display four
>pixels to the
>right of the cycle where the reset occurs, while players display five/six
>pixels to the
>right of it? <sigh> that sorta gives programmers a headache, doesnt it? :)

Not really, we are way to busy worrying about how objects get positioned
if you don't follow the sugestions of the stella programmer's guide. ;-)


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