diff --git a/src/ARM.cpp b/src/ARM.cpp index 09ee17db..24858c28 100644 --- a/src/ARM.cpp +++ b/src/ARM.cpp @@ -461,7 +461,7 @@ s32 ARMv5::Execute() else { Cycles = CyclesToRun; - NDS::RunTimingCriticalDevices(0, CyclesToRun >> ClockShift); + //NDS::RunTimingCriticalDevices(0, CyclesToRun >> ClockShift); return Cycles; } } diff --git a/src/NDS.cpp b/src/NDS.cpp index 28d459da..d3557d29 100644 --- a/src/NDS.cpp +++ b/src/NDS.cpp @@ -764,11 +764,13 @@ u32 RunFrame() if (CPUStop & 0x0FFF0000) { s32 cycles = ndscyclestorun - ARM7Offset; + s32 critcycles = cycles; cycles = DMAs[4]->Run(cycles); if (cycles > 0) cycles = DMAs[5]->Run(cycles); if (cycles > 0) cycles = DMAs[6]->Run(cycles); if (cycles > 0) cycles = DMAs[7]->Run(cycles); ARM7Offset = -cycles; + RunTimingCriticalDevices(1, critcycles); } else {