Jump to content
IGNORED

VDELAY


Recommended Posts

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 by Chilly Willy
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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."
  • Like 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...