PPU: Tweak affected bits for $2006 scroll glitch based on Alien Syndrome (J) behavior (and other hardware tests)

It looks like the horizontal nametable bit is also affected when the write falls on a coarse scroll increment
This commit is contained in:
Sour 2020-04-24 00:01:40 -04:00
parent 5d67994f08
commit e586ce7208

View file

@ -1330,7 +1330,7 @@ void PPU::UpdateState()
debugger->BreakImmediately(BreakSource::BreakOnPpu2006ScrollGlitch);
}
} else if(_cycle > 0 && (_cycle & 0x07) == 0 && (_cycle <= 256 || _cycle > 320)) {
_state.VideoRamAddr = (_updateVramAddr & ~0x1F) | (_state.VideoRamAddr & _updateVramAddr & 0x1F);
_state.VideoRamAddr = (_updateVramAddr & ~0x41F) | (_state.VideoRamAddr & _updateVramAddr & 0x41F);
shared_ptr<Debugger> debugger = _console->GetDebugger(false);
if(debugger && debugger->CheckFlag(DebuggerFlags::BreakOnPpu2006ScrollGlitch)) {
debugger->BreakImmediately(BreakSource::BreakOnPpu2006ScrollGlitch);