Resman says hi.

NES Gamepad to USB conversion

Table of contents

When it comes to playing games on an emulator, nothing beats the original game pad. Of course you can play NES games with the Xbox 360 controller, which is very good, but it's just not the same. Fortunately, old controllers can be adapted to use the USB port. It's been already described numerous times, you can even buy kits, so I won't go into the details. I just want to show how I did it, and how it can fit inside the case. However it does involve cutting the cable and replacing it with an USB cable, which means you won't be able to use it with your NES any more. I bought a pair of controllers on ebay for a few euros, and kept my original controllers safe.

Inside the case

This should be obvious enough. Just a few photos (click to see bigger pictures) :

Gamepad open PCB removed All parts removed

You can take this opportunity to clean the contacts and rubber parts. Cotton and alcohol will do, don't use anything abrasive or a too strong solvent.

The piece of paper glued to the case was the beginning of a mod to add LEDs to the controller. Unfortunately the glue I used discolored the front plastic cover sheet. Maybe another time.

Circuit

Schematic

Something like that :

Schematic

Parts list

Here is the list of parts needed to build this circuit. Refer to the schematic for the wiring :

Firmware

The firmware uses the V-USB driver, and is based on one of the examples. You need it for compilation, although for convenience I included it in the zip file :

Origami

I did my best to keep the circuit flat and small to fit inside the case. I just improvised the wiring so I don't have many pictures or guidelines to help you if you plan to replicate this design. The black wires and 6 pin header are used only for programming, I used them during the prototyping phase. You can just program the chip beforehand and omit them completely to make the job easier. When straightening and cutting the tip of the ATtiny44 pins be careful, they break easily.

ATtiny44 with pins straightened ATtiny44 with pins cut Crystal in place Final result

Installation and test

The circuit identifies itself as an HID joystick. Therefore it does not need any drivers and it will be detected automatically by the OS when plugged in. For example under Windows 7 :

Detecting under Windows 7 NES pad appears in the list of game controllers NES pad properties

So, does it work ? Well let's see :

Download :


Share this article :

Comments

Comment left by Karols on 2014-07-14 16:06:13 :
Hi guys.
Anybody have a problem where only one button works ? It's A button.
Comment left by Adam Nelson on 2013-06-06 23:20:04 :
HE mentioned the fuse bits here
"To use this you will need to manually set the fuses to low 0xdf, high 0xdd, extended 0xff. Or as avrdude arguments :
-U lfuse:w:0xdf:m -U hfuse:w:0xdd:m -U efuse:w:0xff:m"
Comment left by brian on 2011-03-05 11:56:06 :
you never mention if we need to burn fuse bits etc...
Comment left by paulo on 2011-01-19 02:51:15 :
Hello? are you still maintaining this site? if so would you mind if i ask you a question regarding this project? i understand 98% of this but the diagram and picture has an aspect i dont get! thanks!
Reply from the author :
Don't ask to ask, just ask.
Comment left by Khay on 2010-10-27 14:10:08 :
mwahaha, t'es vraiment un dingue !
Vive Vic !
Add a new comment :
Name :
Comment :

Answer the following question : Which is the biggest, two or four ?