GBA: Only unhalt CPU if appropriate bit is set in IE
Jeffrey Pfau jeffrey@endrift.com
Sun, 11 Dec 2016 20:40:14 -0800
2 files changed,
6 insertions(+),
3 deletions(-)
M
CHANGES
→
CHANGES
@@ -22,6 +22,7 @@ - GBA: Fix IRQs firing after already being cleared
- All: Fix fullscreen config option being ignored - GBA: Add savegame override for Crash Bandicoot 2 - ARM7: PSR mode bits should not get sign extended + - GBA: Only unhalt CPU if appropriate bit is set in IE Misc: - PSP2: Improved controller rumble - GB, GBA: Prevent loading null ROMs
M
src/gba/gba.c
→
src/gba/gba.c
@@ -656,10 +656,12 @@ }
void GBARaiseIRQ(struct GBA* gba, enum GBAIRQ irq) { gba->memory.io[REG_IF >> 1] |= 1 << irq; - gba->cpu->halted = 0; - if (gba->memory.io[REG_IME >> 1] && (gba->memory.io[REG_IE >> 1] & 1 << irq)) { - ARMRaiseIRQ(gba->cpu); + if (gba->memory.io[REG_IE >> 1] & 1 << irq) { + gba->cpu->halted = 0; + if (gba->memory.io[REG_IME >> 1]) { + ARMRaiseIRQ(gba->cpu); + } } }