Re: [stella] VBLANK or VSYNC first?

Subject: Re: [stella] VBLANK or VSYNC first?
From: ben <ben@xxxxxxxx>
Date: Tue, 23 Oct 2001 18:25:22 +1000
At 03:37 AM 10/23/2001 -0400, you wrote:
>On Tue, 23 Oct 2001, ben wrote:
>Oh!  No no no!  Not at all.  I've just been feeling very angsty about the
>current state of the video game industry.  A crash is looming.  I feel it
>in my bones.  Just mindlessly lashing out at programmers, though it's not
>really their fault.  

phew - cool :)  I think I agree, especially since xbox is killing stuff
even before its been released.  weird :/

Ok, now we love each other again, can someone please explain why writing
0x02 to VBLANK and checking != indicate vblank (output off), when the docs
say it should indicate stop vblank...  Is this register active low?  or do
I need to compare current/previous?  double negative? ;)  I checked this in
Dan Boris' VCS code, so I am totally confused now, ie:

case VBLANK:
	if (!(tiaWrite[VBLANK] & 0x02)) 
		/* Start vertical blank */

Am I not understanding the latch, ie D6 of VBLANK?  help :)

My starting code reference had this:

case VBLANK:
	if (!(data & 0x02))
		TIA_vblank = 0;
	else if (data & 0x02)
		TIA_vblank = 1;

Which one is correct?  

Anyways, for syncing, here is what I am trying to achive - note that my
emulation clock just keeps going, like the TIA output, so on:
*WSYNC - 'spin' until the next scanline (resync)
*VSYNC - 'spin' until the start of next frame (resync)
*VBLANK - dont draw the current line if set, no matter where it is (no resync)

spin means no more instructions from CPU but clock continues, simulating
the sweep of the beam.  yes?  I still am unsure if writing 0x02 to VBLANK
turns VBLANK on, or off, which means the picture is on, no wait, off,
ummm..  arrgg! ;)


FYI, the emulation timers, cpu, etc are from the MAME/MESS core code, so
please dont hate me :)

Archives (includes files) at
Unsub & more at

Current Thread