Nintendo has released an adapter that allows existing GameCube controllers to run on the Wii U. This was a hot item, as the GameCube controller is a nearly perfect fit for the action of Smash Bros., and it sold out quickly.
Michael Lelli is a software engineer who dabbles in homebrew and emulator work as a hobby, and his latest project is trying to make that little piece of hardware much more interesting. But first, he needed to spend a bit of money. $60, to be precise.
"The $60 piece of hardware was a BeagleBone Black, a Linux development board," Lelli told Polygon. "I used a USB proxy program and connected it between the Wii U and the adapter, then looked at the USB packets going over the wire using it," he explained, giving "props" to the project that made this possible.
"A similar thing was done when the Kinect was reverse-engineered, but instead of $60 hobbyist hardware they used [this piece of hardware]" he continued. "In the end it turns out all you have to do to 'enable' the adapter is send it a single byte (0x13 to be exact) and the $60 hardware was probably overkill for simply discovering that. Oh well!"
The good news is that now he knows how the adapter talks to the Wii U, and this opens the door for a ton of interesting uses for the hardware.
"What I would like to do is to instead of simply viewing the bytes as they go over the line is to instead send them myself. The BeagleBone can also be used to implement your own USB devices, so you could implement the same message format the Wii U GC Adapter is using and instead of GC controller commands, send your own," he said.
He’s working on getting the adapter to work in Linux, and there are others in the community looking into Windows support and Wii homebrew. It’s very possible that soon you’ll be able to pick up one of these adapters and use it on your PC. Don’t expect knockoffs to compete with Nintendo’s own product, though.
"I'm not trying to clone it, but with what I've found, any aspiring hacker looking for a neat project to try/hardware clone company looking to make money can easily make a compatible device," he said, before noting that using Nintendo’s specific USB VendorID / ProductID would open them up to legal action from Nintendo.
"The actual protocol the adapter implements is just simple USB HID with some special commands, so implementing it would be easy enough to do."
So what's possible with the adapter?
"The BeagleBone can also be used to implement your own USB devices, so you could implement the same message format the Wii U GC Adapter is using and instead of GC controller commands, send your own," he continued. "You can read in input from any other controller, format it according to the adapter message format, and then send that down to the Wii U. In theory any USB controller you can plug into it could work."
Which opens the door to some interesting possibilities.
"A side project I want to try is using a small developer board like a BeagleBone and actually create an adapter you can plug any USB device into and use in Smash 4," he said.
"It would allow me to play Smash Bros. the way God intended; with a Steel Battalion controller."