summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2011-10-01 21:02:06 -0500
committerJordan Woyak <jordan.woyak@gmail.com>2011-10-01 21:36:16 -0500
commit15d6c6e9fc8a437ca1fffade3ed63e35e72e5448 (patch)
tree0ac29c85c505a60fe7968a517cb42d6b964b8e0a /Source/Core
parente76bc71efe8c3c724e14a2f741fe4f34669d1bea (diff)
fix 3rd party wiimotes, patch by pholklore
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp10
1 files changed, 9 insertions, 1 deletions
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;