Page 1 of 1

Rough x/y split ?

Posted: Fri Sep 01, 2017 11:27 am
by dougeff
Dumb question. Can you do a rough X/Y scroll split with 2 writes to $2006.

(If I remember correctly, affecting all but the fine Y bits)

I've never tried it.

Re: Rough x/y split ?

Posted: Fri Sep 01, 2017 12:09 pm
by rainwarrior
Reference:
https://wiki.nesdev.com/w/index.php?tit ... ng#Summary

It doesn't set any of the fine X bits, and it sets the top bit of fine Y to 0.

Re: Rough x/y split ?

Posted: Fri Sep 01, 2017 12:24 pm
by dougeff
Ok, I see. So if your fine X is wrong, 2 writes to $2006 might not be enough for...say...a HUD at the bottom of the screen?

What about...
LDA #0
STA $2005
STA $2005
LDA #something
STA $2006
LDA #something
STA $2006

(ie, during rendering, perhaps after a sprite zero hit)

Re: Rough x/y split ?

Posted: Fri Sep 01, 2017 12:36 pm
by lidnariq
That makes the math easier, but makes the raster timing much worse. The first write to $2005 will immediately cause glitches for the remainder of the drawn scanline.

In contrast, the 6-5-5-6 method requires more calculation, but only the last two writes need to be during horizontal blanking.

Re: Rough x/y split ?

Posted: Thu Sep 07, 2017 7:14 am
by Bregalad
dougeff wrote:Dumb question. Can you do a rough X/Y scroll split with 2 writes to $2006.
Of course you can. Most games do it that way. My game does it that way too. Fine X scroll stays the same.
What about...
LDA #0
STA $2005
STA $2005
LDA #something
STA $2006
LDA #something
STA $2006

(ie, during rendering, perhaps after a sprite zero hit)
This is the "standard" way to do it. All games does it that way. The 6-5-5-6 method was only decovered by the reverse-engineering retroscene in the 2000s.