How To: Connect NES controller to Famicom

Started by CkRtech, November 17, 2007, 10:12:39 pm

Previous topic - Next topic

CkRtech

How to:

Make a cable to plug a NES controller into a Famicom.

When I first bought a Famicom earlier this year, I was surprised to find out that one simple bit of information I assumed people would want was not readily available - how to plug NES controllers into a Famicom. There are pinouts and schematics available on the web, but I didn't see any official adapter cables or "how to" guides.

Earlier today, I finally got the chance to sit down and make a cable. I only made a 1 Player adapter, and I am sure its just as easy to add a 2 player port to the cable. That 15 pin port opens us up to quite a few options. It's quite possible that zapper, Arkanoid controller, etc...support can be added as the 15 port is used for those "native" famicom peripherals - but let's keep things simple for now.

First - I take no responsibility if you kill your famicom (or controller). That out of the way, this is an EASY mod if you have the right tools. Soldering is optional! If you don't know anything about soldering, do not worry.



Materials needed

- 1 Neo-Geo extension cable
- 1 NES controller port with connecting wire (You may also consider a NES 4 score or additional NES controller ports)
- Wire strippers capable of stripping 26 AWG wire
- Electrician's scissors or other scissors capable of stripping the controller wire
- Multimeter
- Electrical tape (not pictured)
- Paper and pen for notes
- Needle nose (optional)
- alligator clips (optional for testing. insulated preferred)
- soldering iron & solder (optional & recommended)

Notes - The toughest part about this is probably just getting your supplies - the 15 pin famicom controller port requires a cable with a bit of extra depth on the female end. A standard old PC joystick cable will not work. You could theoretically cut a famicom controller cable and use it in place of an extension cable. I picked up a Neo Geo extension cable and used it. You can find these around the net and often times on ebay. Scout around. Neo Geo translates to "expensive for no reason" no matter what the hardware. Don't pay too much.

Step 1 - With your Neo Geo cable in hand, find the male end of the cable. Cut off the male connector end of the cable with your scissors, but leave an extra couple of inches of cable for workspace.

Step 2 - Put your extension cable (cord with female end) aside and pick up the male end that you just removed. Strip off an inch of the insulation with your scissors. You'll see a bunch of colored wiring inside.



Step 3 - Strip each of the 15 colored wires using your wire stripper. They should be 26 AWG. They're easy to strip - shouldn't take too long at all.

Step 4 - All of the colored wires need to be "mapped." This is where your paper and pen come into place. I drew a picture of the connector, numbered the pins*, and wrote down the colors for each pin as I found out which wire connected to them. Your wire colors might be different. There is no magical "color code" for these things. Go ahead and draw yourself a pin map so you can write your colors down.

*Might not be standard numbering for this connector

My final pin map looked like this:



Step 5 - Using your multimeter, turn the knob to continuity (the option that beeps when your connectors touch). We'll use this to find out which wires go where.



Step 6 - Take an alligator clip and fasten one end to one of the multimeter probes and the other end to one of the colored wires. Example shows green wire hooked up to black probe:



Use the other multimeter probe (red in my case) to find out the pin associated with the wire you connected to the alligator clip. Just touch each pin of the connector with your red probe until your multimeter beeps at you. Once you find the pin, write down the color of the wire next to the pin number that beeped at you. Repeat this step for each wire - connect the alligator clip to a different wire and use the free probe to find the pin.



Step 7 - After all the wires are mapped out for the extension cable, map them out for the NES controller port. You should be able to do this just by looking. You can see where each of the colored wires go to the NES connector by looking at the back of it. These wires most likely have a standard color scheme. You can probably use my sheet as a guide for the color mapping, but double check me before assuming.

Step 8 - Cut the green plug off the end of the wires for the NES controller port. Strip each of the wires you need. (See my sheet above)



Step 9 - Take the Neo Geo extension cable with the female end, and strip off a little bit of controller wire with your scissors. You can now strip the 5 colors you will need for your connection using your wire stripper. In my example, I stripped "Brown, Dark Red, Brown w/ Black Stripe, Light Blue, and Light green." No sense stripping all the wires if you are only going to use five of them. At this point, you know the colors you are going to use.

Step 10 - You can use all your alligator clips to temporarily connect your wires for testing.

Otherwise, you can just twist them together. Use my sheet to see which pin numbers are associated with each signal. By coincidence, the ground pins both had brown insulation and were pin #1 in my numbering scheme. You can use your color chart you made in Step 6. For each signal, find the appropriate color of extension cable wire and use an alligator clip to connect it to the appropriate color of NES controller wire. An example from my sheet above would be - Connect Dark Red wire (5V) from extension cable to white wire (5V) of NES connector.

NOTE!! - Make sure you do not let your alligator connections touch other alligator connections. This is mentioned specifically for Ground and 5V. If these two touch, bad things will happen. Here is a picture of my cable during testing mode:



I played a little bit of Disk Metroid on my dogbone controller to test it out. Worked like a charm!

Step 11 - After you are sure everything works, you can remove the alligator clips and twist each pair of wires together (or solder them together.) Wrap each one with a small piece of electrical tape. You may also elect to use some heat shrink tubing to keep it looking clean. At the least, you probably want to neatly wrap up all the colored wires with electrical tape for protection.

Enjoy!

133MHz

Excellent tutorial! I did something similar for satoshi_matrix a few months ago. And remember, you could also plug SNES controllers into your Famicom! ;D.

UglyJoe

Cool!  I'm actually already gathering parts to do just this.  I plan on using the NES ports from an NES Satellite, so I don't have the wires coming off of it.  Easy enough to work around that, though.

Also, I didn't realize that the NES ports on the NES had those plugs at the end.  Are they the same plugs as the Famicom's attached controllers?

satoshi_matrix

Ah this is cool but I am defenetly not techinically minded as much as I'd hope  ;D

I have something slightly unrelated to ask.

I was wondering something: some knock off controllers such as the ones for the Handy FamiEight have end ports that have 9 pins and are shaed like Sega Genesis and Commodore 64 Controllers, yet those knock off controllers do not work with either the Commodore or the Genesis. When I found out about their port type, I was excited of the prospect of using an NES controller to play some early Genesis games that only really need 2 buttons at most since the +pad on the NES controller is just simply better than that of the Genesis, but it didnt work. So why not? Is it even possible to use an NES controller on a Genesis?

133MHz

It's possible, but you have to modfify the NES pad. Genesis controllers don't have any kind of IC in them, they're just switches while the NES controller uses a serial protocol to comunicate with the console. So you have to remove the IC from the controller and wire the cables to the individual button pads.

satoshi_matrix

woo, thanks 133. any tips on how to:

find out where the IC is on the NES controller? (maybe it would help if you told me what I'm looking for) and then remove it?
figure whch leads are which pins on a Genesis controller or if it matters, the Genesis itself?

133MHz

Here is a NES controller board in all its glory:



The IC is the only chip in the center of the board. It reads TC4021BP

The buttons mapped out like this: ground=8 up=4 down=5 left=6 right=7 start=13 A=1 B=15 select=14.



satoshi_matrix

November 19, 2007, 03:20:47 pm #7 Last Edit: November 19, 2007, 03:28:03 pm by satoshi_matrix
Thanks a lot o133MHz, but it isn't the original boxy controller I want to mod, but instead the NES 2 dogbone. Here's the board for that:




Direct link:
http://img518.imageshack.us/img518/6290/nes2controllerak1.jpg


So am I to understand in order to get it working on the Genesis controller, I first must cut off the IC chip completely?

Note the differences between the cord leads. The NES standard connects each wire to a specific spot while the dogbone connects them altogher in a five pin hub thingie. Is it possible that I could find a Genesis compatible cord that woudl fit into this hub?

Also, I can post the Genesis controller board if you need to see it.

133MHz

Quote from: satoshi_matrix on November 19, 2007, 03:20:47 pm
So am I to understand in order to get it working on the Genesis controller, I first must cut off the IC chip completely?


Correct.

Quote from: satoshi_matrix on November 19, 2007, 03:20:47 pm
Note the differences between the cord leads. The NES standard connects each wire to a specific spot while the dogbone connects them altogher in a five pin hub thingie. Is it possible that I could find a Genesis compatible cord that woudl fit into this hub?


Once you remove the IC you don't use the hub anymore. You solder the Genesis joystick wires directly to the points where the IC was mounted.

133MHz

November 19, 2007, 04:06:48 pm #9 Last Edit: November 19, 2007, 04:20:32 pm by 133MHz
Hehe I was just looking at Genesis pinouts and I see they're a little more complicated than I thought. Some buttons are multiplexed by a logic chip. Read here for more info.

EDIT: Extracted the relevant info from the textfile.

Quote
The interface for the original three button controller is relatively
simple.  (I know that it has been described elsewhere, but I think
that this description is more straightforward.)  You can open up the
controller and see that a standard quad 2:1 multiplexer chip is
inside, a 74HC157.  A 2:1 multiplexer directs data from one of two
sources to a single input line based on the state of a select signal.
So, theoretically, this chip would allow 8 signals to be sent over 4
data lines.  The way the Genesis uses this chip, the data from the 8
switches in the controller is sent over 6 data lines, not quite the
most economical solution, but one which makes the controller backwards
compatible with Atari 2600 joysticks.

Inside the controller is a small PC board which contains the 74HC157,
some 10K pull-up resistors and some bypass capacitors.  The switches
are connected so when a switch is pressed (closed) it shorts its
output to ground, otherwise it's output is 5 volts (via the pull-up
resistors).  One additional connection is a pull-up resistor on the
select line.  If it is left unconnected it will be "pulled" high.

The following tables summarize how the signals are mapped to DB-9.
The output signal to a particular pin depends on the state of the
select line from the Genesis.  During a standard game, the processor
will set the select line high or low, depending on the which game
controller buttons it wants to read.

This table lists connections which are outputs from the Genesis to the
controller, the first column is the pin number of the DB-9:

Pin  Connection
---  ---------------
5   Power: +5 Volts
7   Select signal
8   Power: Ground

This table lists connections which are outputs from the controller to
the Genesis and are dependent on the logic level to the select signal,
again the first column is the pin of number the DB-9:

Pin  Connection with select low  Connection with select high
---  --------------------------  ---------------------------
1   joypad up signal            joypad up signal
2   joypad down signal          joypad down signal
3   logic low (ground)          joypad left signal
4   logic low (ground)          joypad right signal
6   Button A signal             Button B signal
9   Start button signal         Button C signal

Notice that the signals on pins 1 and 2 are not affected by the select
signal, there is a direct connection from those switches to the
corresponding pins.  Also notice that signals on pins 3 and 4 are not
used to send switch info when select is low.

keiffer01

Guys, now i'm panicing! I did the controller thing and all, but when i plugged it in, my famicom displayed a glitchy screen! It usually never does that! I turned it off, unplugged the controller, and reinserted the game, but now the games are only glitchy! :-[ :-[The music still works perfectly though, but the screen is always a glitchy mess! I think i blew up something and it looks bad! What do I do!!?? :-[ :'(

133MHz

How 'glitchy' it is? Is it possible for you to provide pictures?

keiffer01

Yeah I'll take some right now! OMG I'm freaking out now! :'( :-[

keiffer01

Here are pics!

From SMB 2 Japan. Note that you can still see the game playing, as you can see the screen scrolling and mario sorta walking.





The title screen from Mother;



Please tell me I can easily fix this! I don't want to lose my precious Square Button Famicom because I did something wrong with a controller! :-[

133MHz

That's pretty hardcore :o

Even if it seems unrelated, try cleaning the cart connector on your Famicom.

As the game program, audio and controllers run fine I think the CPU is OK, but it appears something between the CHR ROM lines and the PPU screwed up, or even the PPU itself. Try things like wiggling the cart and see if the screen changes or something. I don't want to state the obvious, but have you removed everything related to the joystick mod? Maybe something is shorting on the EXT connector.