HOW-TO: Make a Nintendo controller into a PC Joystick
Normally we run these over at Engadget, but this week's HOW-TO is especially for Joystiq and is for all the PC/Mac/*nix gamers out there that want to use an old school Nintendo controller with their current games, or enjoy using NES emulators and want to take the game play to the next level with an old school NES controller. In this HOW-TO we show you how to build your own PC NES controller, which emulator software we used for PC game play, and where to buy the kit or a finished controller if you'd rather not solder one up.
A little background...
While the Xbox, PS2 and the latest PC with super-charged video cards get most of the attention in the gaming world, there's a huge community of retro gamers who seek to relive the UP DOWN LEFT RIGHT A B SELECT START moments of their Mike Tyson's Punch Out adolescence. There are many types of emulators out there that are basically software version of the gaming consoles of yesteryear like the Atari 2600, Commodore 64 and one our faves—the Nintendo Entertainment System.
The NES made its debut in the USA in 1986 sporting two flavors—Arcade ($199) and Deluxe ($249). Arcade included
Super Mario Bros. and the deluxe included ROB the robot and a zapper gun. Over 70 million units were sold worldwide, so
for this reason a lot of this hardware is still laying around just waiting to be hacked up.
Technical Specs on the NES:
CPU: 8-bit 6502 NMOS (1.79MHz)
RAM: 2KB (16Kb), 2KB Video RAM
Colors: 52 (24 on screen)
Resolution: 256x240 pixels
Sound: PSG audio
For our HOW-TO we only need a controller and a kit from a company called RetroZone.
Ingredients:
NES Controller
RetroZone NES Kit
Soldering Iron and Solder
We picked up a NES controller for $5 at a junk shop.
And the kit, RetroZone NES Kit for $16.
If you don't want to solder anything and/or do not have access to NES controller, you can just buy the USB NES
Controller for about $10 more for $24.99 + shipping
also at RetroZone. If ordered the controller, you
might want to skip ahead to the NES emulator section for which emulator we found that worked well with the USB NES
controller.
Making the controller
After ordering our kit and scoring a NES controller we fired up our soldering iron and started off. We used a 35w
soldering iron and we tried to keep the solders big so we could photograph them better, you're free to do whatever
works best for you of course.
Unscrew the screws off the controller with a small Philips head screwdriver.
Remove the back plate and examine the leads from the cable. You'll see there are 5 colored cables.
Snip the cables at the base where they meet the black cable.
Strip the wires to expose the wire.
Here is the wiring diagram RetroZone sent along wit the kit. At the core of the kit is a microcontroller- PIC16C74,
this little chip is well known in the USB engineering circles for creating USB based hardware.
Also included in the kit:
2 resistors
2 capacitors
Wires
Solder the items according to the wiring diagram and eventually you'll have a completed controller.
Before placing the back plate of the controller back and screwing it in, we suggest testing the unit to make sure it
works.
We plugged ours in and Windows XP detected it and saw it was a joystick and we instantly had access to it. You can view the controller in the the Control Panel on XP. Start > Control Panels > Game Controllers.
Here you can also calibrate the joystick if required.
Once we confirmed it was functional, we placed the back plate on the controller and headed off to the NES emulator
sites.
NES Emulation
There are many many NES Emulators, we tried a lot of them, but the one we
settled on was NESten, it was one of the few that recognized
the new controller for use with the games. There might be other ones (and please let us know if there's a better
one).
After downloading and installing NESten start it up and look under the Input section > Player 1 Input and select
the Retro Joystick.
Playing games
As we wrap up this HOW-TO, we need to mention this...the part of our HOW-TO where we need to say that you're on your
own, sorta. You see the game ROMs (the code in the chip inside the cartridges) are illegal to download, at least
according to Nintendo.
With that said, with one search you
can find thousands of web sites with NES ROMs.
A lot sites seem to get around this by saying:
LEGAL NOTICE: The backup/archival copy exception law does not extend to copies that infringe on existing copyright laws - i.e., no matter what you do, downloading these games for any purpose other than taking up hard drive space before prompt deletion is illegal. Laws vary from country to country on the legality of owning or transmitting ROM images. For the most part, you are required to be in actual possession of the PC Board (PCB) in order to legally retain a copy of the ROM.
So there it is, as always we do not offer legal advice and everything is your responsibility and own risk. Good luck and happy reto gaming!
Phillip Torrone can be reached via http://www.flashenabled.com










Reader Comments (Page 1 of 2)
Jacob @ Dec 18th 2005 9:44PM
FCE Ultra is quite a good emulator (http://fceultra.sourceforge.net/). I'm not sure of specific controller compatibility, but it works great with my Logitech Dual Action gamepad.
GTA @ Dec 18th 2005 9:44PM
Enjoy the games anyway possible. One day someone may be trying to keep PS consoles alive and useable.
Jacob Rose @ Dec 18th 2005 9:44PM
If you're just slightly older and you reminisce about Atari gaming, you can attach original, unmolested Atari controllers to a Mac or PC with the Atari-to-USB connector called the "Stelladaptor"* - no need to destroy the vintage equipment (they ain't makin' any more, yaknow).
Seems like the kit shown here could be used to build a similar** external device, since it looks like it just uses the lines going to the connector. That way, you could a) keep using the controller with a real Nintendo set or b) swap in another controller. Of course, you'll have to have an NES-compatible connector to plug the pristine controller into...I recommend ripping apart an old NES console. *grin*
* I got mine from Atariage.com.
** I guess one difference would be that the Stelladaptor works with all the various Atari controllers, not just joysticks; the major emulators have special support for it.
kostas @ Dec 18th 2005 9:44PM
What about Super NES controllers? Could such a controller be trasnformed into a PC joystick?
spiny @ Dec 18th 2005 9:44PM
great article, but just to warn you guys, it's been linked on the frontpage of slashdot.org so may get a little slow over the next few hours
Rick @ Dec 18th 2005 9:44PM
Wow, thanks for the Mac/*nix support, that was amazing. [sarcasm]
peel @ Dec 18th 2005 9:44PM
Any true nintendo fan knows that not only is that code worng but it wouldn't do a thing for Punch Out. The code in question:
UP DOWN LEFT RIGHT A B SELECT START
should be
UP UP DOWN DOWN LEFT RIGHT LEFT RIGH B A (SELECT - for Two Players) START
And it's for Contra not Punch Out.
Jason @ Dec 18th 2005 9:44PM
What are the specifics of the capacitors and resistors? Can you use this same method for genesis/snes controllers? I've gone to retrozone and I think its insane to pay 25 bucks for the usb cord that attaches to the genesis contoller. I can build one cheaper if I knew what parts to buy. Thanks!
Adam @ Dec 18th 2005 9:44PM
Great article guys! Just wondering - have you ever heard of someone successfully building a breakout box for the X-Arcade stick that would be compatible with older consoles? I'd like to use mine with my Genesis in particular (SOTR2), but the most promising thing I've seen is something similar to what Jason found, some kind of expensive adapter that would attach to a pre-existing box. I want to try building my own, but don't have know-how to reverse engineer the X-Arcade serial interface. Regardless, very fun article! Thanks!
seltzered @ Dec 18th 2005 9:44PM
You can just get some PIC samples at microchip.com, buy a pic programmer (10-20 bucks), then make as many of these things as you want. The trick though is that you have to write the PIC code on your own.
The caps are probably just small microfarad caps for noise reduction, and the resistors are most likely in the 1-100k range.
Good technical info on the nes controller:
http://www.psikan.com/nesticalc.php
HulkHogan @ Dec 18th 2005 9:44PM
"UP UP DOWN DOWN LEFT RIGHT LEFT RIGH B A (SELECT - for Two Players) START
And it's for Contra not Punch Out."
It's also for the game LIFE FORCE.
Cedric Greene @ Dec 18th 2005 9:44PM
For those looking to use SNES controllers liksang.com has a USB adapter for sale which doesnt involve destroying the controller's ability to be used with your SNES. Personally I like my joybox adapter which allows me to use my PSX pad on the computer.
Belgand @ Dec 18th 2005 9:44PM
Heh... I was scrolling down with the intention of posting SNES instructions when I noticed the desire for it.
Check it out here: http://www.everything2.com/index.pl?node_id=797544
For reference compared to this mod the SNES mod I did is much simpler. Just clip the old plug, strip the wires, solder on some diodes, wire everything up to a DB25 and clean it up nicely. The total operation shouldn't take more than a half-hour.
Ideally you'd perform this sort of operation on one of those extender cables so that you'd now have an adapter rather than a hard-wired controller.
Like the second write-up mentions Linux already contains support for pretty much any joystick you could ever imagine hacking into the PC.
Ian Romanick @ Dec 18th 2005 9:44PM
You're not just buying "parts". They charge so much because that chip is a microcontroller with custom code (that they presumably wrote) burned into it. That code, basically, reads the joystick and converts it to USB events.
That said, it wouldn't be too hard to do. It would make a great open-source project. ;)
xero @ Dec 18th 2005 9:44PM
sweet tutorial. i just paid for the SNES pad.
so i could use it for all my emulators.
retrozone is so fast, it shipped in like 3 days.
and by the way:
U U D D L R L R B A S S
is the konami code, and worked with MANY konami games.
Marc D. @ Dec 18th 2005 9:44PM
The resistors with the stripes are 1.5 KOhm. The capacitor marked 104 is 0.1 uF (or 100nF). The capacitor marked 334 is 0.33 uF (or 330 nF). The blue component is a 6.00 MHz ceramic resonator with built in capacitors. The article also states you need a PIC16C74; but that is for a 40 pin microcontroller. The correct Microship part number is PIC16C72 (28 pin).
Hope this helps some of you!
Carpe-noctem @ Dec 18th 2005 9:44PM
Seriously guys, it's not allowed to mod a nintendo 8-bits!!! Big no no! The 8-bits is holy!!!
/Carpe - noctem
Richard Wade @ Dec 18th 2005 9:44PM
I'm working on making a nintendo computer. I'm using this mod kit on the inside of the console. It would be wired up exactly the same as the controller except that it would use the connector for the controllers. The wire is the same color. It is much easier than the db25 method and is more compatible. It also doesn't require drivers. Hope that helps someone.
MacAllah @ Dec 18th 2005 9:44PM
Hello!
I bought the RetroKit and soldered everything. My computer recognizes it and I can select it in the Game Controllers panel. The thing is NONE of the buttons work EXCEPT for the [A] button which when pressed the computer acts as if all the buttons are being pressed simultaniously.
The 104 capacitor my kit shipped with was broken (I think, it was pretty misshapen) so I picked up a replacement from RadioShack. Other than that it was by the books.
Any help?
Kris @ Dec 18th 2005 9:44PM
Any idea where I could get just the Micro Controller locally? I have everything else handy.
I'm in St. Louis and I've checked w/ radio shack. Thanks
Kris @ Dec 18th 2005 9:44PM
Any idea where I could get just the Micro Controller locally? I have everything else handy.
I'm in St. Louis and I've checked w/ radio shack. Thanks
tlocdawg @ Dec 18th 2005 9:44PM
007-373-5963
Waughoo @ Dec 18th 2005 9:44PM
Hey tlocdawg, what is that code your posting for? I just ordered most of the parts for this, but do I really need the pic programer that seltzered meantioned above if you ordered the chips online? And if so, does anyone know what you need to program on the chip?
Jeff @ Dec 18th 2005 9:44PM
you can hot-glue the PIC to the actual board after soldering on the componets
mike @ Dec 18th 2005 9:44PM
I bought one of the USB kits with the intention of making copies of it. You should be able to use a regular PIC Programmer to read the binary data off of it, but they broke all the pins off of it except for the ones that are used in the controller set up. My only choice now is to solder a wire to every pin on the chip. Also, the two chip numbers above are wrong. It's a 28 pin but the number on the chip is "PIC16C745-I/SP" so it's a PIC16C745.
ill @ Dec 18th 2005 9:44PM
both resistors are 1/4 watt, 1.5k ohm.
The caps are 0.33uF and 0.1uF.
So do u really need to program that microcontroller?
Lloyd @ Dec 18th 2005 9:44PM
Besides the GND and V+ leads which are not cut off you need only connect pins 28 and 27 to use in any PIC programmer. It would be fairly easy to do. However the PIC fuses have almost certainly been set to secure the data. I've heard there are ways to download protected programs but none that I know of.
Lloyd @ Dec 18th 2005 9:44PM
Besides the GND and V+ leads which are not cut off you need only connect pins 28 and 27 to use in any PIC programmer. It would be fairly easy to do. However the PIC fuses have almost certainly been set to secure the data. I've heard there are ways to download protected programs but none that I know of.
mike @ Dec 18th 2005 9:44PM
Well... if the software on the chip is protected, the chips look like they're easy enough to work with USB. Maybe i'll just do some research and try making my own software. although, i've never done any work with PICs before... but there seems to be enough information on the internet to learn.
SBDivemaster @ Dec 18th 2005 9:44PM
PART SUPPLIERS
First question: What is the voltage rating on the capacitors?
Second question: Does anyone know of a source for the capacitors and the ceramic resonator?
RadioShack only has one of the caps, and makes no mention of ceramic resonator. I live near Marvac Electronics, but they are lacking also.
I also have looked at the All Electronics and Alltronics web sites, but no one seems to have everything in one place...
Thanks.
Dave @ Dec 18th 2005 9:44PM
hey, how about someone just make a friggin' NES to USB adapter that's cheaper then the one at retrozone and sell it for less? you'd think that these peepl would at least try to compete with the crap at retrozone.
TurboWargen @ Dec 18th 2005 9:44PM
Hi, I can get and anssemble the hardware for this mod, bud I don't have the source code for the PIC, does anyone have this? I have access to a PIC programmer. Please send me the code if u have it!
paulerickson @ Dec 18th 2005 9:44PM
where can you buy a compatible PIC programmer for "10-20 bucks"??
how much did you guys pay for yours?
is there a cheaper PIC that would work?
Jubilation @ Dec 18th 2005 9:44PM
Take a look here:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011980
paulerickson @ Dec 18th 2005 9:44PM
i found this programmer kit which is quite affordable:
http://www.electronickits.com/kit/complete/prog/ck1700.htm
the question is - can i make a 16F84 PIC do the same thing?
Schalos @ Dec 18th 2005 9:44PM
I don't really want play emulated games, but I like the controller, does anyone know if the controller is compatable with games made with Game maker? Here's a link to some games made with it.
http://www.cs.uu.nl/people/markov/gmaker/games_exe.html
thanks in advance
Oracle of Wuffing @ Dec 18th 2005 9:44PM
Schalos, these controllers are meant to act just like a normal PC controller... That's why you can use the Game Controllers control panel to test them. So, as long as the person who made the GameMaker game made the game to work with a PC Control pad, it will work with GameMaker.
Now, my little comment...
I'm looking at my old Nintendo Powerpad, and I'm looking at StepMania ( http://www.stepmania.com ). So, I'm wondering if there's a good method to get my Powerpad working with my computer. @_@ Regrettably, the site that sells the RetroZone kit claims that the Powerpad won't work with the RetroZone kit. ( http://www.sealiecomputing.com/retrozone/faq.html#controllers ) Does anyone have any ideas?
Oracle of Wuffing @ Dec 18th 2005 9:44PM
Well, it looks like that site is now selling USB PowerPads. <_< Guess that kind of solves my problems.
Dru @ Dec 18th 2005 9:44PM
If anyone is still interested, I ordered all of the parts for this project and I will be writing the code within the next week (maybe even today if I have enough time). I will make it open source or I will program the chips for you much cheaper than Retrozone. If anyone is interested, please send me an email at unlv_dru@yahoo.com. The only thing that I am currently waiting for is my NES controller to come in so that I can interface it to the PIC.
Guido K?r @ Dec 18th 2005 9:44PM
Shameless product plug: We make joystick controller modules that are very easy to use and relatively inexpensive. To use them with switches for the directions instead of pots you only have to add a few resistors:
www.codemercs.com
Drew @ Dec 18th 2005 9:44PM
Well, for those of you still interested, it is finally done. I have created my own version of the USB Nintendo controller. It works perfectly. All of the source code is included, board layouts, schematics, EVERYTHING! And the best part, its free!!!
www.Zero-Soft.com/HW/USB_NES/
If you have any questions or comments, please send me an email at unlv_dru@yahoo.com
PS: I am still working on cleaning up the webpage a little bit.. sorry, more of an engineer than a web designer. I am currently working on a couple of tricks to make the Zapper work as well, keep checking the site for more details on that.
worm @ Dec 18th 2005 9:44PM
Congratulations on your rescent graduation and thanks for taking the time to share your findings!
-worm
Marty @ Dec 18th 2005 9:44PM
If you use 2 usb controllers w/ these emulators will you be able to play as 2 players or are you limited to one controller at a time?
icecore @ Dec 18th 2005 9:44PM
Heres what i did, works perfectly... i bought a 2 axis, 12 button usb game pad, took out the insides of it and put it into an nes controller case. moved the r1 and r2 buttons down to be used as a and b, moved the l1 and l2 buttons over to be used as start and select (depending on spacing, you might be able to use the original start and select detectors). its a bit crude, the circuit board isnt designed to fit into the nes controller, but the only real problem is that i coulnt put all the screws in. it shows up extra buttons in control panel (the ones unused) but its a very easy, inexpensive way to get the same exact feeling of an original nes controller. requires some patience and willingness to destroy parts of the inner case to make it all fit.
tom @ Dec 18th 2005 9:44PM
.......
You could do this for $5 with a parallel adapter.
icecore @ Dec 18th 2005 9:44PM
two things...
1, any kind of "free" ways to do this that a layperson with relatively nill electronics knowledge can actually understand and implement....
2, third times a charm... let me correct everybody and say that the contra code is actually U, U, D, D, L, R, L, R, B, A, B ,A SEL (2 player), START. I cant recall if Ive ever beaten it without using the code, maybe once.
icecore @ Dec 18th 2005 9:44PM
two things...
1, any kind of "free" ways to do this that a layperson with relatively nill electronics knowledge can actually understand and implement....
2, third times a charm... let me correct everybody and say that the contra code is actually U, U, D, D, L, R, L, R, B, A, B ,A SEL (2 player), START. I cant recall if Ive ever beaten it without using the code, maybe once.
Drew @ Dec 18th 2005 9:44PM
Sure, a parallel adapter would be very cheap and easy... If I had a parallel port on my computer. More and more computers are coming with no legacy ports, making USB mods necessary.
As for running multiple controllers, certainly. I have two running on my PC.
I will also be posting a wireless mod shortly due to many many requrests. The wireless controllers cost a little more than the other mod and presently have a battery life of about 240 continous hours... Not to shabby! I'm still trying to squeeze out a little more battery life if possible. Another interesting quirk is that right now, you need to have two recievers. I am working on getting this settled to only need a single reciever for ALL remotes (NES, SNES, Sega, ...)
ZarVoX-25 @ Dec 18th 2005 9:44PM
peel, if you remember correctly, lrlrba(sel)strt is for all nintendo konami games. every last one of 'em.
sam @ Dec 18th 2005 9:44PM
for anyone who cares i found another site selling usb nes controllers for about 3$ less then retro. 29.95 shipped retros are 33 shipped
www.customkomputers.com