Visual Controller Test

I have a flaky Gamecube controller and I wanted an easy way to test it. I didn't really like the other Gamecube controller test homebrew I found, because it was all text-based, so I decided to make my own.

I hadn't messed with making Wii Homebrew in such a long time, but I threw this Visual Controller Test together in a day.

But then I was in a coding mood, so I added in every other peripheral I own -- everything but the kitchen sink (and if I had a kitchen sink Wii attachment for Cooking Mama, I'd add that too!).

Contents

Notes

I have a Nyko Wand remote that works, except no extension controllers can be detected in homebrew.

I have a Memorex Motion+ remote which works fine with extensions, but using the power button on it will hard crash homebrew apps, requiring a Wii reboot.

I have several off-brand Nunchuks, each with varying behavior.

One reports as a malfunctioning Classic Controller.

One doesn't detect at all.

One works but reports ranges higher than a standard nunchuk.

Another one will sometimes lock up the Wiimote when plugged in (requiring only the Wiimote to be powered off and back on), but other times it works as above.

The Wireless Memorex Nunchuck won't work with the Memorex Wiimote+, but it will sometimes work with an official Wiimote, usually only after I plug in and unplug an official Nunchuck first. So try that if you have problems with off-brand extension controllers.

And drums seem to report as a guitar that mostly works but has some errant input (no clue how to properly read drums; good documentation is nonexistent).

Battery Readings

The battery readings are borky. WPAD_BatteryLevel(), by function definition, returns a value ranging from 0-255. But when I put in fresh alkaline batteries, I get a reading of only about 190. Yet I have one old rechargeable battery pack that returns a value of 218 when it's fully charged. Either of these values would be treated as "full power" by the Wii menu or other battery power apps (by setting a maximum value and ignoring anything over that, basically). Instead, I'm just dividing the raw value by 2.55 so that the battery level will show a range of 0-100 (since that's easier to relate to), as a percentage of the maximum possible value -- but I doubt the maximum value of 255 would ever be reported.... In any case, I'm more-or-less giving you a better indication of the actual value that's being reported rather than messing with it to try and say it's an accurate percentage of your battery life (if you want the real raw number, just multiply the shown value by 2.55).

Additionally (and annoyingly) the battery level is only refreshed when you plug or unplug an extension controller.... So if you have a battery that is really low and dying fast, you'd have to continually plug/unplug a nunchuck or something to watch the battery level decrease in real time. I tried, but simply cannot find a way to force the information to refresh automatically ;/

Version History

0.01

Initial Release.

0.02

Made the visual analog sticks interactive

Added the ability to test Gamecube controllers plugged into any of the ports (by pressing Start on each controller).

0.03

Analog triggers now interactive

All buttons provide better visual feedback.

0.9

You should be able to test just about everything now, on any port, including the tap/slide bar on some guitars and the analog shoulder buttons on an original Classic Controller.

You can even test the Power button on your wiimote by holding it down for 3 seconds.

0.91

Added in a visual cursor so you can test the Wiimote InfraRed pointer now.

1.00

Added automatic 16:9 widescreen aspect ratio adjustment (does anyone even use 4:3 anymore?), so the onscreen graphics no longer look way too fat. You can also toggle the aspect ratio manually.

1.1

Added visual feedback for the G Force readings, so you can shake your Wiimote or Nunchuck around furiously to see if the gravity sensors are working in every direction.

1.2

Added a Battery Level indicator to give an idea of how much battery power is left in your Wiimote.

Addressed a bug introduced in the last version which would cause a crash from trying to read gravity sensors if a Wiimote became disconnected. Also, in the event of any crash, I now have it try to exit the app automatically (without needing to press the Reset button), since I have no idea what the code dump screen means anyway!