diff --git a/Source/Core/Core/Src/HW/WII_IPC.cpp b/Source/Core/Core/Src/HW/WII_IPC.cpp index dce6c3481b..b77ba33ef9 100644 --- a/Source/Core/Core/Src/HW/WII_IPC.cpp +++ b/Source/Core/Core/Src/HW/WII_IPC.cpp @@ -212,8 +212,11 @@ void Write32(const u32 _Value, const u32 _Address) _dbg_assert_msg_(WII_IPC, 0, "w32 %08x @ %08x", _Value, _Address); break; } - - //WII_IPC_HLE_Interface::Update(); + + if((_Address & 0xFFFF) != IPC_PPCCTRL) + { + 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 989c43aac9..fc77354947 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -566,7 +566,8 @@ void Update() INFO_LOG(WII_IPC_HLE, "||-- Acknowledge IPC Request @ 0x%08x", request_queue.front()); ExecuteCommand(request_queue.front()); - request_queue.pop_front(); + if(request_queue.size()) + request_queue.pop_front(); #if MAX_LOGLEVEL >= DEBUG_LEVEL Dolphin_Debugger::PrintCallstack(LogTypes::WII_IPC_HLE, LogTypes::LDEBUG);