DSi: add support for 8-bit VRAM writes when enabled in SCFG_EXT. fixes #733
This commit is contained in:
parent
4be68aafe0
commit
aa94cbaeb0
14
src/DSi.cpp
14
src/DSi.cpp
|
@ -912,6 +912,20 @@ void ARM9Write8(u32 addr, u8 val)
|
||||||
case 0x04000000:
|
case 0x04000000:
|
||||||
ARM9IOWrite8(addr, val);
|
ARM9IOWrite8(addr, val);
|
||||||
return;
|
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);
|
return NDS::ARM9Write8(addr, val);
|
||||||
|
|
|
@ -140,7 +140,7 @@ u16 DSi_Camera::ReadReg(u16 addr)
|
||||||
case 0x301A: return ((~StandbyCnt) & 0x4000) >> 12;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,5 +162,5 @@ void DSi_Camera::WriteReg(u16 addr, u16 val)
|
||||||
return;
|
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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue