diff --git a/Source/Core/Core/Src/HW/WII_IPC.cpp b/Source/Core/Core/Src/HW/WII_IPC.cpp index 0a7c31110d..b09d83f44b 100644 --- a/Source/Core/Core/Src/HW/WII_IPC.cpp +++ b/Source/Core/Core/Src/HW/WII_IPC.cpp @@ -182,7 +182,6 @@ void Write32(const u32 _Value, const u32 _Address) if (ctrl.X1) { INFO_LOG(WII_IPC, "New pointer available: %08x", ppc_msg); - WII_IPC_HLE_Interface::Update(); // Let the HLE handle the request on it's own time WII_IPC_HLE_Interface::EnqRequest(ppc_msg); } @@ -212,12 +211,9 @@ void Write32(const u32 _Value, const u32 _Address) default: _dbg_assert_msg_(WII_IPC, 0, "w32 %08x @ %08x", _Value, _Address); break; - } - - if((_Address & 0xFFFF) != IPC_PPCCTRL) - { - WII_IPC_HLE_Interface::Update(); } + + WII_IPC_HLE_Interface::Update(); CoreTiming::ScheduleEvent_Threadsafe(0, updateInterrupts, 0); } 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 fc77354947..439d37c5d9 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -564,10 +564,9 @@ void Update() { WII_IPCInterface::GenerateAck(request_queue.front()); INFO_LOG(WII_IPC_HLE, "||-- Acknowledge IPC Request @ 0x%08x", request_queue.front()); - - ExecuteCommand(request_queue.front()); - if(request_queue.size()) - request_queue.pop_front(); + u32 command = request_queue.front(); + request_queue.pop_front(); + ExecuteCommand(command); #if MAX_LOGLEVEL >= DEBUG_LEVEL Dolphin_Debugger::PrintCallstack(LogTypes::WII_IPC_HLE, LogTypes::LDEBUG);