Ticket #89 (new enhancement)

Opened 8 years ago

Last modified 8 years ago

Wii MotionPlus support

Reported by: dsmith Owned by: dsmith
Priority: major Milestone:
Component: libcwiid Version: 0.6.00
Keywords: Cc: mike@…, teemu.erkkola@…

Description

The Wii MotionPlus is out, CWiid needs support for it.

Attachments

0001-added-low_speed-data-from-motionplus.patch Download (3.5 KB) - added by piglop 8 years ago.
adds low_speed flags to motionplus mesg and state
0002-added-motion-plus-interface-to-wmgui.patch.bz2 Download (15.7 KB) - added by piglop 8 years ago.
adds motion plus data to wmgui

Change History

Changed 8 years ago by dsmith

Initial implementation at r194, browser:/branches/motionplus. As far as I know, this is the first implementation in a PC driver.

Current Status:

  • MotionPlus is currently recognized by libcwiid as an extension, but is not automatically detected - CWIID_FLAG_MOTIONPLUS must be enabled after each time the extension is connected. When the MotionPlus is physically connected, but the flag is disabled, libcwiid recognizes the extension, if any, plugged into the MotionPlus' pass-through port.
  • Python support mirrors C support.

TODO:

  • automatic detection - top priority. No idea how to do it. Maybe some register activates a status report on connection.
  • Implement full precision. I haven't yet mapped all 6 bytes, currently just the most significant 3.
  • Full wmgui support. Currently, wmgui only recognizes the MotionPlus if it's plugged in on connection, and provides no feedback.
  • wmdemo support.
  • Support MotionPlus and pass-through extension at once. No idea if this possible. Are there any Wii games that use both at once?

Changed 8 years ago by dsmith

The MotionPlus wiki page describes what is currently known about the extension and implementation requirements.

Changed 8 years ago by dsmith

The motionplus branch has been merged into trunk. There's potentially more work to be done, so I'll leave the ticket open.

Changed 8 years ago by piglop

adds low_speed flags to motionplus mesg and state

Changed 8 years ago by piglop

adds motion plus data to wmgui

Changed 8 years ago by piglop

The source code with the patches applied is available on github :  http://github.com/piglop/cwiid

Changed 8 years ago by piglop

  • cc mike@… added

Changed 8 years ago by bzar

  • cc teemu.erkkola@… added

I noticed that wminput currently does not report motionplus events to plugins. I took a look at the wminput sources and found out that the switch-clause in the process_plugin function does not have a case for CWIID_MSG_MOTIONPLUS. I added the case and it started working.

Code added after line 150 to wminput/main.c:
case CWIID_MESG_MOTIONPLUS:
 flag = CWIID_RPT_MOTIONPLUS;
 break;
Note: See TracTickets for help on using tickets.