Praetox Technologies
This website was made using Praetox WSGen.

STP #002 - The USB NES Controller

Background story

I've always thought that the NES is simply the best console ever made. I still remember how extatic I was when I got it for my 6th birthday, but alas - good things don't last forever. It broke, naturally, and the only thing I had left was the controllers. Now I'm very glad that I did not in fact throw them away.

One dark saturday night, I suddenly had the extreme urge to play some good old-fashioned Nintendo games. The only correct way of doing this would be on the dedicated console, and preferrably on a 26" CRT television set (ahh, the memories). I decided to go for the second best option - attempt to hook it up to the computer, and make the computer use my dad's telly as monitor. A brilliant idea to my ears, so I just got started.

Planning

I did pay attention in my electronics classes, but I just couldn't be bothered with that professional from-scratch approach. I decided to go with the simple solution - grab an old USB HID device, squeeze it into the NES controller shell, and hotwire them together. Good enough for an evening project, but there was only one problem - I didn't have any spare HID devices. Or so I thought. I found this black box deep down in the box labeled "junk" - it had 8 switches, a couple of lights plus some wierd-looking wheel. Suffice to say, I didn't have the foggiest idea about what it was. When I connected it to the computer, it turned out that the 8 switches actually typed out characters in notepad. Bingo.

I unscrewed it, but the inside wasn't as pretty as the outer parts - there were wires literally everwhere. I chose to rip everything out and do a try/fail approach to the whole thing - in the end, I found some usable connections that somewhat matched the NES controller layout. Oh, about that... Here's my crude hand-drawn plans of that.


My shoddy attempt at hand-drawing. Don't ask.

I decided to do the rest of the planning on-the-fly, as it seemed like it would be a rather simple task overall.

Compiling

~documentation to be concluded~