From 627b77e982a955764774283b3335d88247375af7 Mon Sep 17 00:00:00 2001 From: magumagu Date: Tue, 17 Mar 2015 11:52:05 -0700 Subject: [PATCH] Restore masking to gather pipe address checks. Apparently it's necessary. Issue 8386. --- Source/Core/Core/PowerPC/MMU.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/PowerPC/MMU.cpp b/Source/Core/Core/PowerPC/MMU.cpp index c4993c7e2e..08b8874f33 100644 --- a/Source/Core/Core/PowerPC/MMU.cpp +++ b/Source/Core/Core/PowerPC/MMU.cpp @@ -237,8 +237,10 @@ __forceinline static void WriteToHardware(u32 em_address, const T data) if (!BitSet32(0xCFC)[segment] && performTranslation) { // First, let's check for FIFO writes, since they are probably the most common - // reason we end up in this function: - if (flag == FLAG_WRITE && em_address == 0xCC008000) + // reason we end up in this function. + // Note that we must mask the address to correctly emulate certain games; + // Pac-Man World 3 in particular is affected by this. + if (flag == FLAG_WRITE && (em_address & 0xFFFFF000) == 0xCC008000) { switch (sizeof(T)) {