Subject: RE: [stella] VBLANK or VSYNC first? From: Nicolás Olhaberry <nolh@xxxxxxxxxxxxx> Date: Sat, 23 Oct 1993 08:08:11 -0300 |
----- Original Message ----- From: ben <ben@xxxxxxxx> To: <stella@xxxxxxxxxxx> Sent: Tuesday, October 23, 2001 5:25 AM Subject: Re: [stella] VBLANK or VSYNC first? > Am I not understanding the latch, ie D6 of VBLANK? help :) If 1 is written to D6 the latches for both joystick buttons will be enabled, if 0 is written, both will be disabled. On both cases the latch value will be 1. When a latch is enabled, instead of reading the joystick value on bit 7 (0 if pressed, 1 if not) you will read the latch value. This value will be 1 until you press the button, then it will be 0 (were it will remain until you write to VBLANK again). Notice that pressing a jostick button will set to 0 its respective latch, but not the other. > 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? Your code looks right to me, VBLANK is activated writing 1 to bit 1 (which means the display output is disabled). You can do the same with one line: case VBLANK: TIA_vblank = data & 0x02; > 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) If the execution of the opcode that writes WSYNC ends on cicle 76 (which is cicle 0 from next scanline) you shouldn´t "spin", otherwise some of games will look very bad ;-) > *VSYNC - 'spin' until the start of next frame (resync) I´m not sure if I understood what you want to do here, but the only way to start a new frame is using vsync, the beam won´t reposition by itself no matter how many scanlines have passed. So when VSYNC is turned off you should restart the scanline counter, but not the beam counter. Also, I think you should activate TIA_vblank while VSYNC is on ( I would like a confirmation on this subject). > *VBLANK - dont draw the current line if set, no matter where it is (no resync) You shouldn´t draw the pixels that pass while VBLANK is enabled, instead of the whole scanline. Hope this helps... Nicolás. - Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] VBLANK or VSYNC first?, ben | Thread | RE: [stella] VBLANK or VSYNC first?, ben |
Re: [stella] VBLANK or VSYNC first?, ben | Date | RE: [stella] VBLANK or VSYNC first?, Nicolás Olhaberry |
Month |