Backport Only allow instantaneous IRQ when toggling IRQ completely

This commit is contained in:
bladeoner 2019-01-19 08:43:22 +01:00 committed by GitHub
parent 1d2e9c8836
commit 6d45274416
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1382,7 +1382,13 @@ void S9xSetCPU (uint8 Byte, uint16 Address)
} }
if ((Byte & 0x30) != (Memory.FillRAM[0x4200] & 0x30)) if ((Byte & 0x30) != (Memory.FillRAM[0x4200] & 0x30))
{
// Only allow instantaneous IRQ if turning it completely on or off
if ((Byte & 0x30) == 0 || (Memory.FillRAM[0x4200] & 0x30) == 0)
S9xUpdateIRQPositions(true); S9xUpdateIRQPositions(true);
else
S9xUpdateIRQPositions(false);
}
// NMI can trigger immediately during VBlank as long as NMI_read ($4210) wasn't cleard. // NMI can trigger immediately during VBlank as long as NMI_read ($4210) wasn't cleard.
if ((Byte & 0x80) && !(Memory.FillRAM[0x4200] & 0x80) && if ((Byte & 0x80) && !(Memory.FillRAM[0x4200] & 0x80) &&