From 15d6c6e9fc8a437ca1fffade3ed63e35e72e5448 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sat, 1 Oct 2011 21:02:06 -0500 Subject: [PATCH] fix 3rd party wiimotes, patch by pholklore --- Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp index 0793900900..d1e2826ed3 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp @@ -159,7 +159,15 @@ void Wiimote::InterruptChannel(const u16 channel, const void* const data, const // //((wm_report_mode*)(data + 2))->continuous = false; //} - if (rpt.first[0] == 0xa2 && rpt.first[1] == 0x18 && rpt.second == 23) + // Convert output DATA packets to SET_REPORT packets. + // Nintendo Wiimotes work without this translation, but 3rd + // party ones don't. + if (rpt.first[0] == 0xa2) + { + rpt.first[0] = 0x52; + } + + if (rpt.first[0] == 0x52 && rpt.first[1] == 0x18 && rpt.second == 23) { m_audio_reports.Push(rpt); return;