This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

Rough x/y split ?

Rough x/y split ?
by on (#203672)
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 ?
by on (#203676)
Reference:
https://wiki.nesdev.com/w/index.php?title=PPU_scrolling#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 ?
by on (#203678)
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 ?
by on (#203680)
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 ?
by on (#204099)
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.

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