diff --git a/src/DSi.cpp b/src/DSi.cpp index 4b97dc12..d7d43d24 100644 --- a/src/DSi.cpp +++ b/src/DSi.cpp @@ -1340,10 +1340,16 @@ void DSi::Set_SCFG_MC(u32 val) void DSi::SetVRAMTimings(bool extrabuswidth) { - if (extrabuswidth) - SetARM9RegionTimings(0x06000, 0x07000, Mem9_VRAM, 32, 1, 1); // dsi vram - else - SetARM9RegionTimings(0x06000, 0x07000, Mem9_VRAM, 16, 1, 1); // ds vram + if (extrabuswidth) // 32 bit bus; arm9 can do 8 bit writes + { + SetARM9RegionTimings(0x06000, 0x07000, Mem9_VRAM, 32, 1, 1); + SetARM7RegionTimings(0x06000, 0x07000, Mem7_VRAM, 32, 1, 1); + } + else // 16 bit bus; arm9 cannot do 8 bit writes + { + SetARM9RegionTimings(0x06000, 0x07000, Mem9_VRAM, 16, 1, 1); + SetARM7RegionTimings(0x06000, 0x07000, Mem7_VRAM, 16, 1, 1); + } } diff --git a/src/NDS.cpp b/src/NDS.cpp index 36799feb..15af2764 100644 --- a/src/NDS.cpp +++ b/src/NDS.cpp @@ -270,7 +270,7 @@ void NDS::InitTimings() SetARM7RegionTimings(0x02000, 0x03000, Mem7_MainRAM, 16, 8, 1); // main RAM SetARM7RegionTimings(0x03000, 0x04000, Mem7_WRAM, 32, 1, 1); // ARM7/shared WRAM SetARM7RegionTimings(0x04000, 0x04800, Mem7_IO, 32, 1, 1); // IO - SetARM7RegionTimings(0x06000, 0x07000, Mem7_VRAM, 32, 1, 1); // ARM7 VRAM + SetARM7RegionTimings(0x06000, 0x07000, Mem7_VRAM, 16, 1, 1); // ARM7 VRAM // handled later: GBA slot, wifi }