Re: [stella] 2600/5200/7800 Programming Tutorial

Subject: Re: [stella] 2600/5200/7800 Programming Tutorial
From: Mark De Smet <de-smet@xxxxxxxxxxxxxxx>
Date: Tue, 31 Oct 2000 18:31:25 -0600 (CST)
> Uhm... just a quick thought, wouldn't it be possible to do something
> like this:
> 
> Top:
> sta WSYNC	; Finish current line
> Lda hello,x 	; \
> sta PF1		;  \
> 		;   > Write 'hello' to the PF
> Lda hello+1,x	;  /
> sta PF2		; /
> 
> Lda world,x 	; 
> Ldy world+1,x	; load 'world' graphics
> 
> ;... burn x cycles until the 'o' is fully painted
> 
> sta PF1	     	; Make the space between the 'o' and the 'h' big 
> sty PF2	     	; enough to execute these two store instructions 
> 
> dex		;
> dex		; Point to next lines of graphic data
> bne Top		; 
> 

What I believe you are describing is to update the playfield mid screen,
so that after the left half is done being used, put in new data for the
right half.

YES!

It is most definiatly doable, and is commonly done to create non-mirrored
or repeated playfield.  Give it a try on Nick's how to draw a playfield.

A few notes:
-I highly recommend turning the reflect bit off, which will mean you
probably want to use PF0,1 and 2 instead of just 1 and 2.  If you have
reflect on, not only do you have to create your data backwards, but you
have to time the write exactly.  If you have reflect off, you have a lot
of slack as to where you do the second writes.
-You now need to do single lines kernals; at least partially.  When you
update the pf registers mid line, the last value you put in(the right side
data), will be reused on the next line in both the left and right sides if
you don't update the pf graphics every line.


Initially when I read your code, I figured that you made a mistake when
you read from world,x and then later from world+1,x I had made the
(incorrect) assumption that x was indexed once every line.  This is kinda
a neat way to access the graphics as it means that it is easier to draw
the graphics(except for the fact that the PF1 is backwards).  Where did
you come up with the idea of doing it like this?

Mark


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

Current Thread