Copyright © 2007 Mark Feldman. All Rights Reserved.
Q) I donít have the skill to make these controllers myself, any chance I can buy them off you?
A) Iíve had over 100 requests so far from people wanting to buy a unit, but I unfortunately donít have any plans to start making them. Theyíre quite time-consuming to put together, and as a rather expensive homebrew project that uses second-hand equipment there are certain QA and legal issues that would prevent it being commercially viable, at least in its current form. If anyone does start making and selling them then Iíll be sure to post details here.
Q) Will this project work with the N64 controller?
A) Unfortunately not. Supporting the N64 controller would require significant design changesÖmy receiver packet format contains only 12 bits for the buttons whereas the N64 controller would need at least 30 for the extra buttons and analog joystick values. It would also need bidirectional communication if you wanted to support the rumble pack. If enough good N64 games are released for the Wii then I might one day work on a receiver that supports the N64 as well, but it would need a faster TX/RX link than the one Iím using at the moment. I would probably be tempted to ditch TX/RX altogether and use a bluetooth implementation instead.
Q) Can this project be modified for the original NES or SNES consoles?
A) This would involve re-writing the GameCube communication routine in the receiver to communicate with those consoles instead. It would also require a change to the hardware to support the use of 3 data lines as opposed to the 1 line used by the GameCube. Someone with reasonable PIC programming skills could probably do it in a day or two, email me for details if youíre interested in giving it a crack.
Q) Jaycar are refusing to sell me the wireless chips, do you know where else I can buy them from?
A) Jaycar wonít ship the chips overseas, but if youíre in the US then I know people there that have had success with the SparkFun chips. As far as I can tell, theyíre pretty much identical:
Q) Is it possible to use two of these controllers at once?
A) The receiver isnít fast enough to talk to two GameCube ports at once, but itís possible to make two receivers (one for each controller) and put them and their associated controllers on different frequencies, i.e. one at 315MHz and the other at 434MHz. As far as Iím aware, the chip frequency is fixed, so be sure to check the frequencies when you purchase them.
Q) Can this project be modified for USB to use with an emulator on the PC?
A) Not without significant modification. The USB protocol is somewhat non-trivial to implement and the 16F84A PIC used in the receiver circuit has neither the speed or memory requirements. It is possible to buy chips specifically dedicated to USB development, Iíve found the 18F4550 particularly easy to develop for, but very expensive (about AU$40 each).
Q) Can this project be modified to make a non-wireless version so that I donít have to chop up a controller or buy an expensive iPod battery?
A) In theory, yes, although I havenít done it myself. The easiest method would be to simply replace the RX/TX chip with a wire between where their data pins used to go. Youíd also want to connect the controller and transmitter PIC to run off the 3.43V line and get rid of the 2 resistors in the receiver that form the voltage divider. That solution is about $10 more expensive than it needs to be though, as it still uses 2 PICs. You could do it with only 1 if you copied the relevant section of code from the transmitter firmware and placed it inside the receiver's main loop, although it would take some effort to get going.
That said, I am aware of at least one company that sells such adapters for much less that it would cost to make yourself: http://www.retrousb.com/wii.html
Q) Do these controllers work with homebrew applications?
A) Not at the moment. My original plan was to make something that worked for the Virtual Console, and they currently do that just fine. However, many homebrew applications (notably those that use the LIBOGB library) send a packet that the VC doesnít send and fail when my controllers donít respond to it. These applications also tend to fall over when the GameCube controller is pulled out of the machine, something that my controller simulates when the controllers are switched off. Finally, some applications sample the controllers at over 1000 frames per second, far too fast for my controllers to keep up without modification. Iíve been working with people to identify and fix all of these problems but I donít want to publish them until Iíve had more time to test them out all working together. I will release them though once Iím convinced they donít cause problems with the Virtual Console.