aboutsummaryrefslogtreecommitdiff
path: root/ARM.h
diff options
context:
space:
mode:
Diffstat (limited to 'ARM.h')
-rw-r--r--ARM.h83
1 files changed, 80 insertions, 3 deletions
diff --git a/ARM.h b/ARM.h
index cd4a417..8cd9c05 100644
--- a/ARM.h
+++ b/ARM.h
@@ -55,10 +55,87 @@ public:
if (v) CPSR |= 0x10000000;
}
- u32 Read32(u32 addr)
+
+ u8 Read8(u32 addr, u32 forceuser=0)
+ {
+ if (!Num)
+ {
+ // TODO: PU shit
+ return NDS::ARM9Read8(addr);
+ }
+ else
+ return NDS::ARM7Read8(addr);
+ }
+
+ u16 Read16(u32 addr, u32 forceuser=0)
{
- if (Num) return NDS::ARM7Read32(addr);
- else return NDS::ARM9Read32(addr);
+ addr &= ~1;
+ if (!Num)
+ {
+ // TODO: PU shit
+ return NDS::ARM9Read16(addr);
+ }
+ else
+ return NDS::ARM7Read16(addr);
+ }
+
+ u32 Read32(u32 addr, u32 forceuser=0)
+ {
+ addr &= ~3;
+ if (!Num)
+ {
+ // TODO: PU shit
+ return NDS::ARM9Read32(addr);
+ }
+ else
+ return NDS::ARM7Read32(addr);
+ }
+
+ void Write8(u32 addr, u8 val, u32 forceuser=0)
+ {
+ if (!Num)
+ {
+ // TODO: PU shit
+ NDS::ARM9Write8(addr, val);
+ }
+ else
+ NDS::ARM7Write8(addr, val);
+ }
+
+ void Write16(u32 addr, u16 val, u32 forceuser=0)
+ {
+ addr &= ~1;
+ if (!Num)
+ {
+ // TODO: PU shit
+ NDS::ARM9Write16(addr, val);
+ }
+ else
+ NDS::ARM7Write16(addr, val);
+ }
+
+ void Write32(u32 addr, u32 val, u32 forceuser=0)
+ {
+ addr &= ~3;
+ if (!Num)
+ {
+ // TODO: PU shit
+ NDS::ARM9Write32(addr, val);
+ }
+ else
+ NDS::ARM7Write32(addr, val);
+ }
+
+
+ s32 MemWaitstate(u32 type, u32 addr)
+ {
+ // type:
+ // 0 = code16
+ // 1 = code32
+ // 2 = data16
+ // 3 = data32
+
+ return 1; // sorry
}