0

As an experiment, I'm trying to use my computer as an input for the Wii U. Basically, what I want to do is connect my computer to the Wii U via a male-to-male USB cable and make the Wii U think my computer is a Gamecube adapter (which uses USB).

To start, I was able to connect a Gamecube adapter to my computer and use Node.js to receive inputs. I did this to figure out which button corresponded to which input bytes.

Next, I connected my computer to the Wii U via USB but my computer doesn't recognize the Wii U (obviously). The Wii U is expecting a game controller, not a computer. Is there something that can make my computer emulate a game controller? I.e. make the Wii U identify my computer as a game controller so that it accepts inputs from my computer.

Leo Jiang
  • 24,497
  • 49
  • 154
  • 284

2 Answers2

0

This isn't doable without some hardware modification. Your USB chipset handles a lot of the work here, and you're not going to get your computer emulate a device. However...

Gamecube and N64 controllers just use 3.4V serial lines for communication. If you took apart one of those USB-to-Gamecube adapters and wired it up to a USB-to-serial converter (3.3v like an old cell phone cable, not RS-232!) then you might be able to play with the timings to get it right and send the data you want. If that doesn't work, you could likely program an Arduino kit or similar to accept commands from your software and send them as Gamecube.

Info on the underlying protocol here: http://www.int03.co.uk/crema/hardware/gamecube/gc-control.html

Brad
  • 159,648
  • 54
  • 349
  • 530
0

You cannot simply connect two USB master ports. The controller side (your computer) needs a slave port, aka gadget port. You might want to check out the USB gadget framework (for Linux but a good staring point in any case). Or, if you prefer to get some AVR-based computer there is LUFA to get you started.

Another option is to go for emulating the Wiimote (using bluetooth) istead. Not saying that's necesserily easier thou.

Fabel
  • 1,711
  • 14
  • 36