mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-06-28 01:49:42 -06:00
unfuck the DSP code some
(still doesn't work)
This commit is contained in:
38
src/DSi.cpp
38
src/DSi.cpp
@ -2241,8 +2241,11 @@ u8 ARM9IORead8(u32 addr)
|
||||
return DSi_CamModule::Read8(addr);
|
||||
}
|
||||
|
||||
if (addr >= 0x04004300 && addr <= 0x04004400)
|
||||
return DSi_DSP::Read16(addr);
|
||||
if ((addr & 0xFFFFFF00) == 0x04004300)
|
||||
{
|
||||
if (!(SCFG_EXT[0] & (1<<18))) return 0;
|
||||
return DSi_DSP::Read8(addr);
|
||||
}
|
||||
|
||||
return NDS::ARM9IORead8(addr);
|
||||
}
|
||||
@ -2273,8 +2276,11 @@ u16 ARM9IORead16(u32 addr)
|
||||
return DSi_CamModule::Read16(addr);
|
||||
}
|
||||
|
||||
if (addr >= 0x04004300 && addr <= 0x04004400)
|
||||
return DSi_DSP::Read32(addr);
|
||||
if ((addr & 0xFFFFFF00) == 0x04004300)
|
||||
{
|
||||
if (!(SCFG_EXT[0] & (1<<18))) return 0;
|
||||
return DSi_DSP::Read16(addr);
|
||||
}
|
||||
|
||||
return NDS::ARM9IORead16(addr);
|
||||
}
|
||||
@ -2335,6 +2341,12 @@ u32 ARM9IORead32(u32 addr)
|
||||
return DSi_CamModule::Read32(addr);
|
||||
}
|
||||
|
||||
if ((addr & 0xFFFFFF00) == 0x04004300)
|
||||
{
|
||||
if (!(SCFG_EXT[0] & (1<<18))) return 0;
|
||||
return DSi_DSP::Read32(addr);
|
||||
}
|
||||
|
||||
return NDS::ARM9IORead32(addr);
|
||||
}
|
||||
|
||||
@ -2399,10 +2411,10 @@ void ARM9IOWrite8(u32 addr, u8 val)
|
||||
return DSi_CamModule::Write8(addr, val);
|
||||
}
|
||||
|
||||
if (addr >= 0x04004300 && addr <= 0x04004400)
|
||||
if ((addr & 0xFFFFFF00) == 0x04004300)
|
||||
{
|
||||
DSi_DSP::Write8(addr, val);
|
||||
return;
|
||||
if (!(SCFG_EXT[0] & (1<<18))) return;
|
||||
return DSi_DSP::Write8(addr, val);
|
||||
}
|
||||
|
||||
return NDS::ARM9IOWrite8(addr, val);
|
||||
@ -2459,10 +2471,10 @@ void ARM9IOWrite16(u32 addr, u16 val)
|
||||
return DSi_CamModule::Write16(addr, val);
|
||||
}
|
||||
|
||||
if (addr >= 0x04004300 && addr <= 0x04004400)
|
||||
if ((addr & 0xFFFFFF00) == 0x04004300)
|
||||
{
|
||||
DSi_DSP::Write16(addr, val);
|
||||
return;
|
||||
if (!(SCFG_EXT[0] & (1<<18))) return;
|
||||
return DSi_DSP::Write16(addr, val);
|
||||
}
|
||||
|
||||
return NDS::ARM9IOWrite16(addr, val);
|
||||
@ -2609,6 +2621,12 @@ void ARM9IOWrite32(u32 addr, u32 val)
|
||||
return DSi_CamModule::Write32(addr, val);
|
||||
}
|
||||
|
||||
if ((addr & 0xFFFFFF00) == 0x04004300)
|
||||
{
|
||||
if (!(SCFG_EXT[0] & (1<<18))) return;
|
||||
return DSi_DSP::Write32(addr, val);
|
||||
}
|
||||
|
||||
return NDS::ARM9IOWrite32(addr, val);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user