diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp index f073f6371f..587d718abe 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp @@ -168,6 +168,7 @@ void Wiimote::InterruptChannel(const u16 channel, const void* const _data, const auto const data = static_cast(_data); Report rpt(data, data + size); + WiimoteEmu::Wiimote *const wm = (WiimoteEmu::Wiimote*)::Wiimote::GetPlugin()->controllers[index]; // Convert output DATA packets to SET_REPORT packets. // Nintendo Wiimotes work without this translation, but 3rd @@ -189,7 +190,8 @@ void Wiimote::InterruptChannel(const u16 channel, const void* const _data, const } } else if (rpt[1] == WM_WRITE_SPEAKER_DATA - && !SConfig::GetInstance().m_WiimoteEnableSpeaker) + && (!SConfig::GetInstance().m_WiimoteEnableSpeaker + || (!wm->m_status.speaker || wm->m_speaker_mute))) { // Translate speaker data reports into rumble reports. rpt[1] = WM_RUMBLE; diff --git a/Source/Core/DolphinWX/Src/Main.cpp b/Source/Core/DolphinWX/Src/Main.cpp index 8c31d99005..1cb52b828f 100644 --- a/Source/Core/DolphinWX/Src/Main.cpp +++ b/Source/Core/DolphinWX/Src/Main.cpp @@ -658,6 +658,8 @@ void Host_SetWiiMoteConnectionState(int _State) // Update field 1 or 2 event.SetInt(1); + NOTICE_LOG(WIIMOTE, event.GetString().c_str()); + main_frame->GetEventHandler()->AddPendingEvent(event); }