First, what is the 16C74 for? I don't think I got that part.
According to this web site the 16C74 is the main piece of hardware in the Retrozone kit.
Ah, I see. It's a typo. I was confused about that because the 16C74 isn't a USB chip. It must be the 16C74
5 (which, unfortunately, has no flash version..). Thanks for the link, though. It's nice to have a little more information on the Retrozone controller and how it's used.
(In case it wasn't clear before - the 16C745 is a general-purpose device. To use it to interface gamepads to the computer you need to load the right software into its ROM.)
Damnit, now
I want to make a USB gamepad out of an NES controller.

(I should've bought more USB microcontrollers when I placed my order...) I guess it's contagious or something. I didn't really think I would want an NES gamepad for the PC given that I already have PSX->USB interfaces and such... but now it seems like a really fun idea.
The retrozone circuit will let you connect an unaltered NES controller. For a USB gamepad hack you would need to remove the NES controller's internal 4021 chip as Samstag did.
Ok, here's where I get confused because the above referenced web site and as far as I can tell Samstag USB keyboard hack didn't involve removing the internal chip from the NES controller. It appears that the signals from the controller were captured by the chip before reaching the PC. In the web example they were captured inside of the box of the controller by the 16C74 before being sent down a soldered on USB cable. In Samstag's box, the signals were sent down the original NES cable to a new connector then captured by the chips in the hacked USB keyboard.
In reply #5 he shows a picture of the NES controller's insides. The place where the 4021 should be is empty, with wires connected out of it. Plus he's replaced the NES controller connector and cable with a VGA-type cable. If you look at the picture the board also shows where the original cable attached to the circuit board at the top-left: his altered controller has the VGA cable connected to the holes where the IC was.
There are some old controllers that aren't encoded at all, so you can hook up to them without a decoder and without altering the controller: Atari/Commodore joysticks and Sega Master System controllers are all simply wires connected to switches.
I did notice that the SMS pin-out was different. Would I be able to connect one of these controllers directly to my serial or parallel port after wiring on a new connector?
I found a lot of good information on this web site: Deathskull Labs
Thanks again for you time in explaining all this.
The serial port would need some interfacing circuitry. It doesn't have enough input lines to interface with an SMS or Atari controller. With the right software on the PC side you might be able to hook up a serial controller like the NES/SNES/PSX/etc. without much difficulty - maybe just by translating the voltage levels from one side to the other. But I don't know if anyone's written the software to do that, and from what I understand when people try to use them for things like this it may work on one machine's COM ports but not on another.
But now that you mention the Parallel port, you can, in fact, wire all sorts of game controllers to a PC printer port. There are drivers online as well as hook-up instructions. Supposedly you can connect up to five PSX or SNES control pads to a single port and use them in Linux or Windows as game devices. I think the Windows driver was "DirectPad Pro" I know it was compatible with other console gamepads, too, including old Atari and SMS stuff, NES, etc.
http://www.arcadecontrols.com/Mirrors/www.ziplabel.com/dpadpro/I say "Supposedly" because I once tried this to get a PSX controller going (in Linux) and I couldn't get it to work. I think it depends on your system, maybe has something to do with what chipset drives your parallel port. I was very happy when I got my first PSX->USB converter and it just worked with no effort.

It might be worth your time to try a DPP interface, it doesn't require too many parts - just keep it real simple on the first try so that if it doesn't work it's not a big deal. Hook it up in such a way that if you need to change things, you can. Then, if it works, you can make it more permanent...