From 11fc13aea46dabad49e9fccc4412307ee0398319 Mon Sep 17 00:00:00 2001 From: X-tra Fear Date: Wed, 14 Nov 2012 16:12:25 -0500 Subject: [PATCH] Fixed WiiMotes disconnecting when ES_LAUNCH is ran. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp index ae389d7b69..198e54b2f2 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp @@ -783,14 +783,16 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress) } else { + static CWII_IPC_HLE_Device_usb_oh1_57e_305* s_Usb = GetUsbPointer(); + bool* wiiMoteConnected = new bool[s_Usb->m_WiiMotes.size()]; + for(int i = 0; i < s_Usb->m_WiiMotes.size(); i++) wiiMoteConnected[i] = s_Usb->m_WiiMotes[i].IsConnected(); + std::string tContentFile(m_ContentFile.c_str()); WII_IPC_HLE_Interface::Reset(true); WII_IPC_HLE_Interface::Init(); - - static CWII_IPC_HLE_Device_usb_oh1_57e_305* s_Usb = GetUsbPointer(); for (unsigned int i = 0; i < s_Usb->m_WiiMotes.size(); i++) { - if (s_Usb->m_WiiMotes[i].IsConnected()) + if (wiiMoteConnected[i]) { s_Usb->m_WiiMotes[i].Activate(false); s_Usb->m_WiiMotes[i].Activate(true); @@ -801,6 +803,7 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress) } } + delete wiiMoteConnected; WII_IPC_HLE_Interface::SetDefaultContentFile(tContentFile); } // Pass the "#002 check"