WiiMote Control

Release: WiiMote Control, v20080903

Release Type: Beta
Version: 20080903
Release Notes

This update to the WiiMote patch adds the ability to screen connections based on address.

There's an input to specify an address to accept connections from (any devices is accepted if blank), and an output to display the currently-connected device's address (handy for filling in the input ;)

Release: WiiMote Control, v20080301

Release Type: Beta
Version: 20080301
Release Notes

This beta includes a couple tweaks and fixes. Nothing major.

Checkerboard bug was fixed.

IR output no longer outputs -100 when it looses tracking; instead it retains its last value. You can use the IR structure values to detect tracking loss (since it returns nan's when it loses tracking).

No stability/reliability changes took place.

Release: WiiMote Control, v20080111 (0.3)

Release Type: Production
Version: 20080111 (0.3)
Release Notes

This is a public beta of our updated WiiMote control patch. Since there isn't one for Leopard yet, I figure this will at least help you get started before it gets to production. This patch adds support for the nunchuk, and partial support for the Classic Controller. It also adds raw IR output support. All of these options are available under the inspector panel. Some of the classic controller buttons don't work or report bogus values. This is due to the underlying framework in use; I'm looking into this.

It's not stable, but I've made considerable efforts to make it stable. Please supply me with crash reports, as well as any other noticed odd behaviour.

Normally I'm not a fan of public betas, but we'll see how this one goes :)

Beta testers: This is identical to the 20080105 version, so you don't need to upgrade.

Release: WiiMote Control, v20080105

Release Type: Beta
Version: 20080105
Release Notes

This update includes many new stability improvements, as well as somewhat-functional Classic Controller support.

I spent a bit of time exploring the framework that this patch uses, and fixed some pieces around where it was causing some crashes. It probably leaks a bit of memory on connect/disconnect now, but I've not noticed any significant amounts yet in casual testing. This should fix 1) the NSNotification stuff, 2) the [NSNumber start] incorrect message exceptions (the framework was deallocating a live object!), as well as a couple of the unnamed bugs that have been crashing this patch since the Tiger version.

A bug where it would crash when changing the Sensors in the inspector panel while connected has (hopefully) been fixed.

The classic controller stuff basically works; The right control stick's values appear to be wrong, the L and R buttons have weird values, plus, minus, home, down, and right don't appear to work either yet. These are most likely framework bugs which will require some spelunking to figure out and address. It's a start though, right?

Please tell me which buttons work and don't work, which ones appear to be incorrect, and which CPU your mac uses (PPC or Intel). If you're not getting anything from it, unplug it and plug it back in; it seems to be way more picky about being plugged in at boot up than the nunchuk does.

Release: WiiMote Control, v20080104

Release Type: Beta
Version: 20080104
Release Notes

This WiiMote Control beta radically changes the patch's interface. It will almost certainly not work with your previous compositions, but adds a few new features to justify the change.

First big change: Nunchuk support! To enable nunchuk support, use the inspector panel. You can also enable and disable the IR and Motion Sensors from that panel, simplifying the interface if you don't need some particular features.

The nunchuk sometimes doesn't work if you power up the wiimote with the nunchuk plugged in. To get around this, connect the wiimote, and then plug in the nunchuk after the connection is established. This may be a hardware bug with no existing work around (other than reconnecting, which the Wii itself does on occasion with some games)

By Default, newly created patches have the motion sensor enabled and the IR sensor disabled.

Raw IR output was changed from 12 outputs to 1 structure output. This helps keep the patch size down a bit.

No effort was made towards improving stability.

Release: WiiMote Control, v20080102

Release Type: Beta
Version: 20080102
Release Notes

Enhanced IR Support and some bugfixes.

Instead of just one (mostly useless) IR Output, there are now 4 (additional) X/Y/S triplets for each of the tracked IR points. It's important to note the S (not Z!) -- it's the IR point's size. Bigger typically means closer :)

The WiiMote is only capable of tracking 4 IR Points, so please don't ask for more points; As Pierre would say, "It's Not Possible" :)

The output pitch/roll angles are now 0-360.

The patch no longer disconnects when switching from fullscreen to windowed modes.

There is now a disconnect input on the patch, to attempt to reconnect if it's acting strangely.

Creating a patch no longer prevents you from creating more wiimote patches.

Maybe some minor stability improvements. Nothing noteworthy though.

I'm thinking that for the next beta, I'll maybe include multiple patches: * WiiMote + Motion Sensor (no IR) * WiiMote + Motion + IR * WiiMote + IR * WiiMote + Motion + Nunchuk * WiiMote + Motion + IR + Nunchuk * WiiMote + IR + Nunchuk * variations on the above, with the classic controller.

Thoughts?

Release: WiiMote Control, v20071222

Release Type: Beta
Version: 20071222
Release Notes

More modifications. Some for stability.

after reviewing many crash logs, it appeared as though Connect and Disconnect events were the leading causes in crashes, mostly connects.

Connects were crashing when LED/Rumble stuff was updating. At first, I thought this was because the updates were getting sent to a stale (disconnected) Wiimote object. However, this wasn't quite the case. Instead, it was usually crashing because the wiimote connection, while established, was not ready for LED/Rumble updates, so we were sending them too soon (often as soon as we connected). I added a 45-frame timer that delays LED/Rumble updates, and this seems to have resolved some connect-time crashes (as well as the occasional perpetual blinking lights issue that I rarely observed).

I modified a few more pieces of the framework to handle notifications a bit more swiftly, and that looks like it has corrected the previously noted "_nsnote" crash mentioned in the previous beta. Sometimes it will crash when QC exits though, in "_cleanup" -- Still looking into this one.

The Pitch and Roll outputs also output full 360° values now, so you can emulate the WiiMenu rotating cursor. They're not properly ranged though (-270 - +90 or something), I'll try to get to that in the next beta.

Release: WiiMote Control, v20071221

Release Type: Beta
Version: 20071221
Release Notes

A bunch of stability improvements come with this release of the WiiMote patch.

Connect and Disconnect are now fairly stable; There's at least one hard-to-track bug left (you'll see a "NSCFNumber doesn't respond to selector 'start'" exception sometimes, where something is getting released before it should), but many of the outstanding bugs are now handled. Thanks to all the Beta testers for submitting dozens of Crash Logs that helped me isolate many of these issues.

There have been 94759301 requests for better stability with this patch; Hopefully this helps :)

Other fixes: rumble and led state is updated properly on reconnect now, and you can create a patch after you delete the first one (before, creating a single one prevented you from creating more until you quit QC and restarted)

[PS, it's also built for 64-bit cpus now too]

Release: WiiMote Control, v20071204

Release Type: Beta
Version: 20071204
Release Notes

This version supports framework-level timeout handling (where it should be), so you can now reliably wait as long as you want before connecting. Still a bit picky, but at least it's not due to randomly timing out anymore.

Release: WiiMote Control, v20071202

Release Type: Beta
Version: 20071202
Release Notes

Hot on the heals of the previous WiiMote Control is this very new beta. Shortly after releasing yesterday's version, I gutted it and reimplemented the connect/disconnect parts.

Cool New Things:

  • Force Feedback support
  • LED Control
  • Bluetooth timeout error is now handled, and appropriate cleanup/restart action is taken behind the scenes to expand the 15 second window indefinitely [didn't quite work]
  • Hopefully more stable