aboutsummaryrefslogtreecommitdiff
path: root/src/ARM.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ARM.cpp')
-rw-r--r--src/ARM.cpp17
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)