aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/DSi.cpp14
-rw-r--r--src/DSi_Camera.cpp4
-rw-r--r--src/NDS.cpp2
3 files changed, 17 insertions, 3 deletions
diff --git a/src/DSi.cpp b/src/DSi.cpp
index 66b8ed0..a96322b 100644
--- a/src/DSi.cpp
+++ b/src/DSi.cpp
@@ -912,6 +912,20 @@ void ARM9Write8(u32 addr, u8 val)
case 0x04000000:
ARM9IOWrite8(addr, val);
return;
+
+ case 0x06000000:
+ if (!(SCFG_EXT[0] & (1<<13))) return;
+#ifdef JIT_ENABLED
+ ARMJIT::CheckAndInvalidate<0, ARMJIT_Memory::memregion_VRAM>(addr);
+#endif
+ switch (addr & 0x00E00000)
+ {
+ case 0x00000000: GPU::WriteVRAM_ABG<u8>(addr, val); return;
+ case 0x00200000: GPU::WriteVRAM_BBG<u8>(addr, val); return;
+ case 0x00400000: GPU::WriteVRAM_AOBJ<u8>(addr, val); return;
+ case 0x00600000: GPU::WriteVRAM_BOBJ<u8>(addr, val); return;
+ default: GPU::WriteVRAM_LCDC<u8>(addr, val); return;
+ }
}
return NDS::ARM9Write8(addr, val);
diff --git a/src/DSi_Camera.cpp b/src/DSi_Camera.cpp
index cc44052..56cba1c 100644
--- a/src/DSi_Camera.cpp
+++ b/src/DSi_Camera.cpp
@@ -140,7 +140,7 @@ u16 DSi_Camera::ReadReg(u16 addr)
case 0x301A: return ((~StandbyCnt) & 0x4000) >> 12;
}
- printf("DSi_Camera%d: unknown read %04X\n", Num, addr);
+ //printf("DSi_Camera%d: unknown read %04X\n", Num, addr);
return 0;
}
@@ -162,5 +162,5 @@ void DSi_Camera::WriteReg(u16 addr, u16 val)
return;
}
- printf("DSi_Camera%d: unknown write %04X %04X\n", Num, addr, val);
+ //printf("DSi_Camera%d: unknown write %04X %04X\n", Num, addr, val);
}
diff --git a/src/NDS.cpp b/src/NDS.cpp
index bb579f6..a23772c 100644
--- a/src/NDS.cpp
+++ b/src/NDS.cpp
@@ -3745,7 +3745,7 @@ void ARM7IOWrite8(u32 addr, u8 val)
return;
case 0x04000301:
- val & 0xC0;
+ val &= 0xC0;
if (val == 0x40) printf("!! GBA MODE NOT SUPPORTED\n");
else if (val == 0x80) ARM7->Halt(1);
else if (val == 0xC0) EnterSleepMode();