diff --git a/CHANGES b/CHANGES index 56c2a2284..b6755a8e4 100644 --- a/CHANGES +++ b/CHANGES @@ -31,6 +31,7 @@ Bugfixes: - PSP2: Fix mapping/unmapping from not at 0 - Wii: Fix garbage flash at startup - VFS: Fix uninitialized varaible reading from 7z + - GBA: Fix losing IRQs when CPSR I bit isn't cleared Misc: - 3DS: Use blip_add_delta_fast for a small speed improvement - OpenGL: Log shader compilation failure diff --git a/src/gba/gba.c b/src/gba/gba.c index 4bfdfd905..ccdf28dd6 100644 --- a/src/gba/gba.c +++ b/src/gba/gba.c @@ -217,7 +217,7 @@ static void GBAProcessEvents(struct ARMCore* cpu) { gba->bus |= cpu->prefetch[1] << 16; } - if (gba->springIRQ) { + if (gba->springIRQ && !cpu->cpsr.i) { ARMRaiseIRQ(cpu); gba->springIRQ = 0; }