From 455eb5676254b388dd39feb44d8f9fb2ab5c5217 Mon Sep 17 00:00:00 2001 From: John Burley Date: Thu, 25 Jun 2026 18:29:47 -0400 Subject: [PATCH] Add row and mask register emulation --- Source/Core/Core/HW/WII_IPC.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/HW/WII_IPC.cpp b/Source/Core/Core/HW/WII_IPC.cpp index 7e666277a5..9e1d086df3 100644 --- a/Source/Core/Core/HW/WII_IPC.cpp +++ b/Source/Core/Core/HW/WII_IPC.cpp @@ -60,7 +60,9 @@ enum VERSION = 0x214, - IS_128 = 0xB4216, + MEM2_ROWSEL = 0xB4212, + MEM2_RANKSEL = 0xB4216, + MEM2_ROWMSK = 0xB421A, }; // Indicates which pins are accessible by broadway. Writable by starlet only. @@ -265,8 +267,10 @@ void WiiIPC::RegisterMMIO(MMIO::Mapping* mmio, u32 base) // Sets the Hollywood version register to 0x11 (same as placed in lomem) mmio->Register(base | VERSION, MMIO::Constant(0x00000011), MMIO::Nop()); - const bool mem2_128 = memory.GetExRamSizeReal() == Memory::MEM2_SIZE_NDEV; - mmio->Register(base | IS_128, MMIO::Constant(mem2_128 ? 1 : 0), MMIO::Nop()); + const bool mem2_is_128 = memory.GetExRamSizeReal() == Memory::MEM2_SIZE_NDEV; + mmio->Register(base | MEM2_ROWSEL, MMIO::Constant(4), MMIO::Nop()); + mmio->Register(base | MEM2_RANKSEL, MMIO::Constant(mem2_is_128 ? 1 : 7), MMIO::Nop()); + mmio->Register(base | MEM2_ROWMSK, MMIO::Constant(0xFFF), MMIO::Nop()); mmio->Register(base | UNK_180, MMIO::Constant(0), MMIO::Nop()); mmio->Register(base | UNK_1CC, MMIO::Constant(0), MMIO::Nop());