At some point, some clever folks figured out that a NES controller contains a simple 8-bit shift register that can be read by a parallel port. There are really just 3 things that matter. Those are CLOCK, LATCH & DATA. The rest of the pins and the diodes are just for power and ground.
With my version, I actually used one additional pin for power which was pin 4. According to some sites, 1n914 diodes are ideal but in my case, I used 1n4001 diodes which were readily available at Radio Shack in a grab bag and they seem to work just fine. I think that almost any silicon diodes will do the trick in this application. The only reason for them is so the power is not back fed through the port as a side effect of tying all the lines together. Overall, this is a GREAT beginner hack if you are just learning about electronics since it doesn’t even require a circuit board.
After the hardware was done, the software is the next piece of the puzzle. I am using sneskey as my driver. Sneskey is a slick little program that allows you to map many different types of controllers to keys on your keyboard. You don’t really run sneskey in the background as a TSR though. Instead, you set up the sneskey configuration file to load your emulator. In my case, I used nesticle. To set this whole thing up, download I would just extract all the sneskey files into the same directory as you extract nesticle and it’s companion program dos/4gw. After that, you’ll want to edit the nes.ini file and change the ProgPath line to look something like this:
ProgPath = c:\nesticle\nesticle
Check the key bindings while you are in there. They should be fine though. After that, you should be able to launch nesticle and sneskey with the following command:
C:\nesticle>sneskey nes
Once you have launched the program with your controller plugged in, go to settings –> input –> device 1. In there, make sure Keyboard 1 is selected. If all went well, everything should work except A & B. Hit “redefine keys” and click on “A”, then press “A” on the gamepad to bind the key. Repeat the process for “B” and you should now be good to go.