View Single Post
Old 22 October 2019, 19:19   #20
Per aspera ad astra

ross's Avatar
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 49
Posts: 2,472
Originally Posted by chb View Post
Very interesting, thanks for the link! So copper position is compared against VHPOS, which can be changed? Didn't know that this is possible!
Yes, can be changed, but only via CPU.
So there is a crazy code that sync in every line the CPU with BEAM position and change accordingly VHPOS.
This is because the copper cannot wait for odd positions (best precision from the mask is #$fffe), this corresponds to 4 pixels in low resolution.
But if you 'shift' the x position of a single CCK the odd position become even (this is 2 'pixels after' a normal wait)!
Therefore: before BPL DMA fetches write a value that is one CCK after video position, after the last fetch realign the position.

Are DMA and horizontal display sync also affected? So if I change horiz. position to 0 in the middle of the line, will the hardware start a new DMA cycle (refresh, audio..)? And if I set it to $0D, will it restart with audio DMA only?
No h-sync affected (in this case at least) but no idea about 'DMA slot' restart on the very line.
Pandy71 tests are discouraging..

Maybe Toni can enlighten us.
ross is offline  
Page generated in 0.04197 seconds with 11 queries