Heaven/TQA Posted October 24, 2014 Share Posted October 24, 2014 ok... tried 5 minutes to play around with it... so actually how would this work to move a double scanline res sprite vertically in single line? I thought vdelay $d01c works like moving all PM data 1 scanline downwards (delaying) so... moving data necessary every 2nd frame? Quote Link to comment Share on other sites More sharing options...
Chilly Willy Posted October 24, 2014 Share Posted October 24, 2014 (edited) All Y motion is done by actually moving the data for the players/missiles. The vdelay is to allow single line movement when using two-line resolution players/missiles. Set vdelay for one line, then move the data one line and reset vdelay, then set vdelay, then move the data one line and reset vdelay, etc. When in one-line resolution, you just always move the data one line. Edited October 24, 2014 by Chilly Willy Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 24, 2014 Author Share Posted October 24, 2014 (edited) thx. tried... but got garbage of the first pm data line? but vdelay set once? or each scanline via DLI? Edited October 24, 2014 by Heaven/TQA Quote Link to comment Share on other sites More sharing options...
Rybags Posted October 24, 2014 Share Posted October 24, 2014 VDELAY doesn't actually make anything move, it just tells GTIA to ignore PM data on even lines. Antic does PM DMA on every scanline whether in single or double mode, making it available for GTIA to snoop the data. Ignoring the data on even lines provides the same function as a downward 1-pixel scroll. Using VDELAY in single line res isn't really useful, it's just like throwing half the data away. Quote Link to comment Share on other sites More sharing options...
Chilly Willy Posted October 25, 2014 Share Posted October 25, 2014 thx. tried... but got garbage of the first pm data line? but vdelay set once? or each scanline via DLI? Once in the vblank is fine. VDELAY doesn't actually make anything move, it just tells GTIA to ignore PM data on even lines. Antic does PM DMA on every scanline whether in single or double mode, making it available for GTIA to snoop the data. Ignoring the data on even lines provides the same function as a downward 1-pixel scroll. Using VDELAY in single line res isn't really useful, it's just like throwing half the data away. I wonder if that could be useful for something... use vdelay to hide half the lines... Quote Link to comment Share on other sites More sharing options...
Rybags Posted October 25, 2014 Share Posted October 25, 2014 It could be used to alternate between a chunky and finer res object (a little how Miner 2049er does the explosion horizontally), but you'd have design considerations plus the effect would look different depending if the object started on an even or odd line. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted October 26, 2014 Share Posted October 26, 2014 I see VDELAY simply as a left-over from the VCS/TIA. There the CPU had to do what ANTIC does. And to update more object per scanline (P0/M0/P1/M1/BL) one technique was to update the graphics registers only every 2nd scanline. For example P0/M0 in even scanlines, P1/M1 in odd scanlines. By using the VDELAY bits (actually they where shadow registers), you could still move the visibility of the P0/M0 update to odd scanlines and vice versa. With ANTIC taking the job of the DMA anyway, I hardly see much use on the XL. "Ball Graphics (BL) The ball graphics register works just like the missile registers. Writing a “1” to the enable ball register (ENABL) enables the ball graphics until the register is disabled. The ball can also be “stretched” to widths of 1, 2, 4, or 8 color clock counts by writing to bits D4 and D5 of the CTRLPF register. The ball can also be vertically delayed one can line. For example, if the ball graphics were enabled on scan line 95, it could be delayed to not display on the screen until scan line 96 by writing a “1” to D0 of the vertical delay (VDELBL) register. The reason for having a vertical delay capability is because most programs will update the TIA every 2 lines. This confines all vertical movements of objects to 2 scan line “jumps”. The use of vertical delay allows the objects to move one scan line at a time." 1 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 27, 2014 Author Share Posted October 27, 2014 Peter... it is usefull... wait 6 weeks to see... 4 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.