aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorArisotura <thetotalworm@gmail.com>2020-06-02 00:36:07 +0200
committerArisotura <thetotalworm@gmail.com>2020-06-02 00:36:07 +0200
commitffa29ff4961ded1c1e2a93c2414c5e7061a4f905 (patch)
tree1f3ad9880a1be8a39646236296e9b90cdb6976d3 /src
parentd862b5869f492c4747c7dc668312ed03d38244f0 (diff)
clean it up some
Diffstat (limited to 'src')
-rw-r--r--src/DSi.cpp27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/DSi.cpp b/src/DSi.cpp
index 701387a..216f724 100644
--- a/src/DSi.cpp
+++ b/src/DSi.cpp
@@ -702,8 +702,7 @@ void Set_SCFG_MC(u32 val)
u8 ARM9Read8(u32 addr)
-{if(addr==0x02FFC1B0) printf("ARM9 READ8 ROM REGION %08X\n", NDS::GetPC(0));
-if(addr==0x02FFFD70) printf("ARM9 READ8 CONSOLE REGION %08X\n", NDS::GetPC(0));
+{
if ((addr >= 0xFFFF0000) && (!(SCFG_BIOS & (1<<1))))
{
if ((addr >= 0xFFFF8000) && (SCFG_BIOS & (1<<0)))
@@ -740,7 +739,7 @@ if(addr==0x02FFFD70) printf("ARM9 READ8 CONSOLE REGION %08X\n", NDS::GetPC(0));
}
u16 ARM9Read16(u32 addr)
-{if(addr==0x02FFC1B0) printf("ARM9 READ16 ROM REGION %08X\n", NDS::GetPC(0));
+{
if ((addr >= 0xFFFF0000) && (!(SCFG_BIOS & (1<<1))))
{
if ((addr >= 0xFFFF8000) && (SCFG_BIOS & (1<<0)))
@@ -777,8 +776,7 @@ u16 ARM9Read16(u32 addr)
}
u32 ARM9Read32(u32 addr)
-{if(addr==0x02FFC1B0) printf("ARM9 READ32 ROM REGION %08X\n", NDS::GetPC(0));
-if(addr==0x2FE71B0) return 0xFFFFFFFF; // hax: bypass region lock
+{
if ((addr >= 0xFFFF0000) && (!(SCFG_BIOS & (1<<1))))
{
if ((addr >= 0xFFFF8000) && (SCFG_BIOS & (1<<0)))
@@ -789,6 +787,12 @@ if(addr==0x2FE71B0) return 0xFFFFFFFF; // hax: bypass region lock
switch (addr & 0xFF000000)
{
+ case 0x02000000:
+ // HACK to bypass region locking
+ // TODO: make optional
+ if (addr == 0x02FE71B0) return 0xFFFFFFFF;
+ break;
+
case 0x03000000:
if (addr >= NWRAMStart[0][0] && addr < NWRAMEnd[0][0])
{
@@ -951,8 +955,7 @@ bool ARM9GetMemRegion(u32 addr, bool write, NDS::MemRegion* region)
u8 ARM7Read8(u32 addr)
-{if(addr==0x02FFC1B0) printf("ARM7 READ8 ROM REGION %08X\n", NDS::GetPC(1));
-if(addr==0x02FFFD70) printf("ARM7 READ8 CONSOLE REGION %08X\n", NDS::GetPC(1));
+{
if ((addr < 0x00010000) && (!(SCFG_BIOS & (1<<9))))
{
if ((addr >= 0x00008000) && (SCFG_BIOS & (1<<8)))
@@ -993,7 +996,7 @@ if(addr==0x02FFFD70) printf("ARM7 READ8 CONSOLE REGION %08X\n", NDS::GetPC(1));
}
u16 ARM7Read16(u32 addr)
-{if(addr==0x02FFC1B0) printf("ARM7 READ16 ROM REGION %08X\n", NDS::GetPC(1));
+{
if ((addr < 0x00010000) && (!(SCFG_BIOS & (1<<9))))
{
if ((addr >= 0x00008000) && (SCFG_BIOS & (1<<8)))
@@ -1034,7 +1037,7 @@ u16 ARM7Read16(u32 addr)
}
u32 ARM7Read32(u32 addr)
-{if(addr==0x02FFC1B0) printf("ARM7 READ32 ROM REGION %08X\n", NDS::GetPC(1));
+{
if ((addr < 0x00010000) && (!(SCFG_BIOS & (1<<9))))
{
if ((addr >= 0x00008000) && (SCFG_BIOS & (1<<8)))
@@ -1235,7 +1238,7 @@ u8 ARM9IORead8(u32 addr)
return NDS::ARM9IORead8(addr);
}
-//u16 dicks = 0;
+
u16 ARM9IORead16(u32 addr)
{
switch (addr)
@@ -1253,8 +1256,6 @@ u16 ARM9IORead16(u32 addr)
CASE_READ16_32BIT(0x04004058, MBK[0][6])
CASE_READ16_32BIT(0x0400405C, MBK[0][7])
CASE_READ16_32BIT(0x04004060, MBK[0][8])
-
- //case 0x04004202: return dicks & 0xEF1F;
}
return NDS::ARM9IORead16(addr);
@@ -1399,8 +1400,6 @@ void ARM9IOWrite16(u32 addr, u16 val)
MapNWRAM_C(6, val & 0xFF);
MapNWRAM_C(7, val >> 8);
return;
-
- //case 0x04004202: dicks = val & 0xEF3F; return;
}
return NDS::ARM9IOWrite16(addr, val);