Adjust the scrolling when PPUADDR is written to.

Figuring this out sure resulted in some hair-pulling.
Emulate sprite 0 hit with pixel accuracy
Sprites are off by one in the NES