Adam,

I can't say I've done much with the older controllers, but I have written code using the Playstation 2 controllers, in particular the analog joysticks - although it was for a Basic Stamp 2, not a PIC. It's been awhile, but I found several good articles from Parallax who makes the Basic Stamp and thus the examples, which are written in PBasic, and can very easily be modified to work in PBP. Here's a few links to get you started:

http://www.parallax.com/Portals/0/Do.../col/nv101.pdf

http://forums.parallax.com/forums/de...?f=21&m=112356

http://www.mikroe.com/forum/viewtopi...ght=led+ds1820

http://www.lynxmotion.com/images/html/build024.htm

You may very well be able to use these to write code and interface with a Playstation 1 controller. I'm pretty sure I used my PS2 code to interface with a PS1 dual joystick without a problem. Now, the standard Basic Stamp 2 can't handle the wireless controller due mostly, I believe, to a speed issue, but I doubt you'll have a problem using a PIC.

However, you did mention an older NES controller. I inferred you meant pre-Gamecube, so are we talking Nintendo 64, Super NES or the classic 8-bit system? For the 8-bit, I'd look again at Parallax, specifically at their Hydra Game Development System. The inputs to the board look identical to a classic Nintendo controller. I would guess you could find code on their forum.
Here are some links:

http://www.parallax.com/Store/Microc...%2cProductName

http://forums.parallax.com/forums/default.aspx?f=33

Super NES Controller for sale:
http://www.sparkfun.com/commerce/pro...oducts_id=8978

Lastly, if you need pinouts for various controllers, check out:
http://pinouts.ru/pin_Game.shtml

I hope this helps.