diff --git a/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp b/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp index 999c5e3582..dc608f14bf 100644 --- a/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp +++ b/Source/Core/Core/Src/PowerPC/Interpreter/Interpreter_LoadStore.cpp @@ -317,16 +317,14 @@ void dcbtst(UGeckoInstruction _inst) void dcbz(UGeckoInstruction _inst) { - // !!! after the dcbz follows a dcbf... dont clear the memory in this case !!! - // 0x81330c2c - // LinesPrower: why? does it break something? - // according to docs dcbz->dcbf should clear the memory immediately! - // However, dcbz->dcbi won't clear anything, but that's completely senseless - /* u32 NextOpcode = Memory::Read_U32(PC+4); + // hack to prevent clearing of memory cached in the CPU instruction cache + // needed to run WiiWare games + // 0x81330c2c + u32 NextOpcode = Memory::Read_U32(PC+4); if (NextOpcode == 0x7C0400AC) { return; - }*/ + } // HACK but works... we think Memory::Memset(Helper_Get_EA_X(_inst) & (~31), 0, 32); }