Re: [stella] VDEL

Subject: Re: [stella] VDEL
From: Glenn Saunders <cybpunks@xxxxxxxxxxxxx>
Date: Tue, 25 Jul 2000 21:35:32 -0700
If you want to display player0 in line 3, you would turn off it's VDEL
register and set it's verical position counter to the second line-set.
If you want to display player0 in line 4, you would turn on it's VDEL
register and set it's verical position counter to the second line-set.
If you want to display player1 in line 3, you would turn on it's VDEL
register and set it's verical position counter to the first line-set.
If you want to display player1 in line 4, you would turn off it's VDEL
register and set it's verical position counter to the second line-set.

This is more of what I was looking for, more of a utilitarian example. If you want X to be where, then what do you set. Because the interleaved kernel and the way VDEL influences the other sprite, it gets kinda tricky thinking about the various options.

This could be rewritten as:

Here is a matrix: Please correct (it's probably wrong):

Conditions:

	
	
	
	POS	GRPx		VDEL enable
	LINE#	Write on line	set on every line	   CLOCKING
------------------------------------------------------------------------------------------------------------------
P0	3	3		0		W	L	---3
P1	4	4		0		L	W	---4

P1	3	3		0		L	W	---3
P0	4	4		0		W	L	---4

P0	3	3		0		W**	D	---3 *
P1	3	4		1		L	W	---4

P1	4	3		0		D	W**	---3 *
P0	4	4		1		W	L	---4


KEY for the 3 ways a sprite can be clocked out:
D = graphics taken from backup register (previous scanline)
L = graphics drawn due to TIA latching behavior (previous scanline)
W = graphics drawn due to direct register write on that scanline
** It's the write to this player register (which VDEL is off on) which triggers the load from cache for the other player for which VDEL is on.
* these two instances are only necessary because there is no time to update both player registers on a single scanline. If you were, then VDEL would be unnecessary.


So to cover all states there are going to be 8 potential ways to run through the next frame as determined while in VBLANK?


So if this diagram is correct, then what VDEL does is perform an INVERSE function to the TIA latching, so that as long as you maintain an interleaved kernel with P1 and P0 being updated on alternate lines (not just alternate lines but flip flopping the alternation depending on where each sprite needs to be) then this flip flopping plus VDEL provides the necessary independent ability to shift sprites up or down a scanline.
Glenn Saunders - Producer - Cyberpunks Entertainment
Personal homepage: http://www.geocities.com/Hollywood/1698
Cyberpunks Entertainment: http://cyberpunks.uni.cc



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

Current Thread