From 039bf277672d5eae1c4256db0728b9fbdc02db95 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Fri, 1 Feb 2013 19:01:47 -0600 Subject: [PATCH] Allow Rhythm Heaven Fever's "Remix 1" to work by disallowing a simultaneous "Ack" and "Reply". --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp index 64d1dc79ba..6aae2fe4e5 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -535,12 +535,9 @@ void EnqReply(u32 _Address) // Takes care of routing ipc <-> ipc HLE void Update() { - if (!WII_IPCInterface::IsReady()) - return; - UpdateDevices(); - if (request_queue.size()) + if (WII_IPCInterface::IsReady() && request_queue.size()) { WII_IPCInterface::GenerateAck(request_queue.front()); INFO_LOG(WII_IPC_HLE, "||-- Acknowledge IPC Request @ 0x%08x", request_queue.front()); @@ -553,7 +550,8 @@ void Update() #endif } - if (reply_queue.size()) + // Avoiding a "Reply" and "Ack" on the same interrupt allowed Rhythm Heaven Fever's "Remix 1" to work. + if (WII_IPCInterface::IsReady() && reply_queue.size()) { WII_IPCInterface::GenerateReply(reply_queue.front()); INFO_LOG(WII_IPC_HLE, "<<-- Reply to IPC Request @ 0x%08x", reply_queue.front());