diff --git a/cpuexec.cpp b/cpuexec.cpp index d045c3eb..9d3927a5 100644 --- a/cpuexec.cpp +++ b/cpuexec.cpp @@ -249,7 +249,7 @@ void S9xMainLoop (void) CPU.IRQLine = TRUE; } - if ((CPU.Cycles >= Timings.NextIRQTimer || CPU.IRQExternal) && !CPU.IRQLine && !CPU.IRQTransition) + if ((CPU.Cycles >= Timings.NextIRQTimer) && !CPU.IRQLine && !CPU.IRQTransition) { if (CPU.IRQPending) CPU.IRQPending--; @@ -259,7 +259,7 @@ void S9xMainLoop (void) } } - if (CPU.IRQLine && !CheckFlag(IRQ)) + if ((CPU.IRQLine || CPU.IRQExternal) && !CheckFlag(IRQ)) S9xOpcode_IRQ(); #ifdef DEBUGGER