aboutsummaryrefslogtreecommitdiff
path: root/ARM.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ARM.cpp')
-rw-r--r--ARM.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/ARM.cpp b/ARM.cpp
index bdd48ce..69aa2ee 100644
--- a/ARM.cpp
+++ b/ARM.cpp
@@ -20,6 +20,7 @@
#include "NDS.h"
#include "ARM.h"
#include "ARMInterpreter.h"
+#include "GPU3D.h"
u32 ARM::ConditionTable[16] =
@@ -332,6 +333,7 @@ s32 ARM::Execute()
}
Cycles = 0;
+ s32 lastcycles = 0;
u32 addr = R[15] - (CPSR&0x20 ? 4:8);
u32 cpsr = CPSR;
@@ -373,6 +375,14 @@ s32 ARM::Execute()
//if (R[15]==0x037F9364) printf("R8=%08X R9=%08X\n", R[8], R[9]);
+ // gross hack
+ if (Num==0)
+ {
+ s32 diff = Cycles - lastcycles;
+ GPU3D::Run(diff >> 1);
+ lastcycles = Cycles - (diff&1);
+ }
+
// TODO optimize this shit!!!
if (Halted)
{