aboutsummaryrefslogtreecommitdiff
path: root/src/ARM.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ARM.cpp')
-rw-r--r--src/ARM.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/ARM.cpp b/src/ARM.cpp
index 2d8c807..68cac59 100644
--- a/src/ARM.cpp
+++ b/src/ARM.cpp
@@ -18,6 +18,7 @@
#include <stdio.h>
#include "NDS.h"
+#include "DSi.h"
#include "ARM.h"
#include "ARMInterpreter.h"
#include "AREngine.h"
@@ -101,10 +102,55 @@ void ARM::Reset()
void ARMv5::Reset()
{
+ if (NDS::ConsoleType == 1)
+ {
+ BusRead8 = DSi::ARM9Read8;
+ BusRead16 = DSi::ARM9Read16;
+ BusRead32 = DSi::ARM9Read32;
+ BusWrite8 = DSi::ARM9Write8;
+ BusWrite16 = DSi::ARM9Write16;
+ BusWrite32 = DSi::ARM9Write32;
+ GetMemRegion = DSi::ARM9GetMemRegion;
+ }
+ else
+ {
+ BusRead8 = NDS::ARM9Read8;
+ BusRead16 = NDS::ARM9Read16;
+ BusRead32 = NDS::ARM9Read32;
+ BusWrite8 = NDS::ARM9Write8;
+ BusWrite16 = NDS::ARM9Write16;
+ BusWrite32 = NDS::ARM9Write32;
+ GetMemRegion = NDS::ARM9GetMemRegion;
+ }
+
CP15Reset();
ARM::Reset();
}
+void ARMv4::Reset()
+{
+ if (NDS::ConsoleType)
+ {
+ BusRead8 = DSi::ARM7Read8;
+ BusRead16 = DSi::ARM7Read16;
+ BusRead32 = DSi::ARM7Read32;
+ BusWrite8 = DSi::ARM7Write8;
+ BusWrite16 = DSi::ARM7Write16;
+ BusWrite32 = DSi::ARM7Write32;
+ }
+ else
+ {
+ BusRead8 = NDS::ARM7Read8;
+ BusRead16 = NDS::ARM7Read16;
+ BusRead32 = NDS::ARM7Read32;
+ BusWrite8 = NDS::ARM7Write8;
+ BusWrite16 = NDS::ARM7Write16;
+ BusWrite32 = NDS::ARM7Write32;
+ }
+
+ ARM::Reset();
+}
+
void ARM::DoSavestate(Savestate* file)
{