diff --git a/Source/Core/Core/HW/WII_IPC.cpp b/Source/Core/Core/HW/WII_IPC.cpp index 5a60b0f04f..d231adcfd2 100644 --- a/Source/Core/Core/HW/WII_IPC.cpp +++ b/Source/Core/Core/HW/WII_IPC.cpp @@ -211,6 +211,11 @@ static void UpdateInterrupts(u64 userdata, s64 cyclesLate) !!(ppc_irq_flags & ppc_irq_masks)); } +void ClearX1() +{ + ctrl.X1 = 0; +} + void GenerateAck(u32 _Address) { ctrl.Y2 = 1; diff --git a/Source/Core/Core/HW/WII_IPC.h b/Source/Core/Core/HW/WII_IPC.h index d97e7eab0c..34419b8988 100644 --- a/Source/Core/Core/HW/WII_IPC.h +++ b/Source/Core/Core/HW/WII_IPC.h @@ -42,6 +42,7 @@ void DoState(PointerWrap& p); void RegisterMMIO(MMIO::Mapping* mmio, u32 base); +void ClearX1(); void GenerateAck(u32 _Address); void GenerateReply(u32 _Address); diff --git a/Source/Core/Core/IOS/IOS.cpp b/Source/Core/Core/IOS/IOS.cpp index 90d63c0f4f..cd94693723 100644 --- a/Source/Core/Core/IOS/IOS.cpp +++ b/Source/Core/Core/IOS/IOS.cpp @@ -629,6 +629,7 @@ void Kernel::UpdateIPC() if (m_request_queue.size()) { + ClearX1(); GenerateAck(m_request_queue.front()); u32 command = m_request_queue.front(); m_request_queue.pop_front();