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:
http://www.sparkfun.com/commerce/product_info.php?products_id=7815
http://www.sparkfun.com/commerce/product_info.php?products_id=7816
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.