diff options
Diffstat (limited to 'src/ARM.cpp')
-rw-r--r-- | src/ARM.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/src/ARM.cpp b/src/ARM.cpp index d71d0e1..226b463 100644 --- a/src/ARM.cpp +++ b/src/ARM.cpp @@ -48,6 +48,8 @@ ARM::ARM(u32 num) // well uh Num = num; + SetClockShift(0); // safe default + for (int i = 0; i < 16; i++) { Waitstates[0][i] = 1; @@ -432,18 +434,9 @@ s32 ARM::Execute() } } - if (Num==0) - { - s32 diff = Cycles - lastcycles; - NDS::RunTimingCriticalDevices(0, diff >> 1); - lastcycles = Cycles - (diff&1); - } - else - { - s32 diff = Cycles - lastcycles; - NDS::RunTimingCriticalDevices(1, diff); - lastcycles = Cycles; - } + s32 diff = Cycles - lastcycles; + NDS::RunTimingCriticalDevices(Num, diff >> ClockShift); + lastcycles = Cycles - (diff & ClockDiffMask); // TODO optimize this shit!!! if (Halted) |