PPU: Fixed crash when switching overscan mid-screen

Caused by yesterday's fix for Chrono Trigger - for now, just assume overscan flag is only processed once at the top of the screen
This commit is contained in:
Sour 2020-03-01 18:34:48 -05:00
parent 6539b92502
commit 5812fb3667

View file

@ -387,6 +387,10 @@ bool Ppu::ProcessEndOfScanline(uint16_t hClock)
if(_scanline == 0) {
_overscanFrame = _state.OverscanMode;
_mosaicScanlineCounter = _state.MosaicEnabled ? _state.MosaicSize + 1 : 0;
//Update overclock timings once per frame
UpdateNmiScanline();
if(!_skipRender) {
if(!_interlacedFrame) {
_currentBuffer = _currentBuffer == _outputBuffers[0] ? _outputBuffers[1] : _outputBuffers[0];
@ -476,9 +480,6 @@ bool Ppu::ProcessEndOfScanline(uint16_t hClock)
_skipRender = true;
}
//Update overclock timings once per frame
UpdateNmiScanline();
//Ensure the SPC is re-enabled for the next frame
_spc->SetSpcState(true);
}
@ -2097,7 +2098,6 @@ void Ppu::Write(uint32_t addr, uint8_t value)
}
}
ConvertToHiRes();
UpdateNmiScanline();
break;
}