diff options
Diffstat (limited to 'src/NDS.cpp')
-rw-r--r-- | src/NDS.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/NDS.cpp b/src/NDS.cpp index a2ab6ce..b8fd8cb 100644 --- a/src/NDS.cpp +++ b/src/NDS.cpp @@ -32,6 +32,7 @@ #include "Wifi.h" #include "AREngine.h" #include "Platform.h" +#include "ARMJIT.h" namespace NDS @@ -161,6 +162,8 @@ bool Init() ARM9 = new ARMv5(); ARM7 = new ARMv4(); + ARMJIT::Init(); + DMAs[0] = new DMA(0, 0); DMAs[1] = new DMA(0, 1); DMAs[2] = new DMA(0, 2); @@ -191,6 +194,8 @@ void DeInit() delete ARM9; delete ARM7; + ARMJIT::DeInit(); + for (int i = 0; i < 8; i++) delete DMAs[i]; @@ -1822,6 +1827,8 @@ u32 ARM9Read32(u32 addr) void ARM9Write8(u32 addr, u8 val) { + ARMJIT::Invalidate16(0, addr); + switch (addr & 0xFF000000) { case 0x02000000: @@ -1872,6 +1879,8 @@ void ARM9Write8(u32 addr, u8 val) void ARM9Write16(u32 addr, u16 val) { + ARMJIT::Invalidate16(0, addr); + switch (addr & 0xFF000000) { case 0x02000000: @@ -1938,6 +1947,8 @@ void ARM9Write16(u32 addr, u16 val) void ARM9Write32(u32 addr, u32 val) { + ARMJIT::Invalidate32(0, addr); + switch (addr & 0xFF000000) { case 0x02000000: @@ -2231,6 +2242,8 @@ u32 ARM7Read32(u32 addr) void ARM7Write8(u32 addr, u8 val) { + ARMJIT::Invalidate16(1, addr); + switch (addr & 0xFF800000) { case 0x02000000: @@ -2290,6 +2303,8 @@ void ARM7Write8(u32 addr, u8 val) void ARM7Write16(u32 addr, u16 val) { + ARMJIT::Invalidate16(1, addr); + switch (addr & 0xFF800000) { case 0x02000000: @@ -2359,6 +2374,8 @@ void ARM7Write16(u32 addr, u16 val) void ARM7Write32(u32 addr, u32 val) { + ARMJIT::Invalidate32(1, addr); + switch (addr & 0xFF800000) { case 0x02000000: |