Ticket #89 (new enhancement)

Opened 15 months ago

Last modified 13 months 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 (3.5 kB) - added by piglop 14 months ago.
adds low_speed flags to motionplus mesg and state
0002-added-motion-plus-interface-to-wmgui.patch.bz2 (15.7 kB) - added by piglop 14 months ago.
adds motion plus data to wmgui

Change History

Changed 15 months 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 15 months ago by dsmith

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

Changed 14 months 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 14 months ago by piglop

adds low_speed flags to motionplus mesg and state

Changed 14 months ago by piglop

adds motion plus data to wmgui

Changed 14 months ago by piglop

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

Changed 14 months ago by piglop

  • cc mike@… added

Changed 13 months 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.