I can't say enough good things about the Teensy development board. It's affordable and just so damn versatile.
John's code is great and all but I just needed something to work with my Linux media center PC so I set out to create a simpler version. Click through for some build tips, links to the code, and a few more photos.
Tips & Photos
In tight spaces like a gamepad it's no fun at all to be wrestling with a rats nests of wires. Heat shrink tubing is great for managing bunches of wires, but it can make the whole thing difficult to bend. Using a few small rings will still give you a neat bunch of wires, while maintaining flexibility.
John had a really great tip. Cut off the USB plug housing with a sharp knife to make fitting the cable easier.
The Teensy will just fit inside the controller without too much fuss. The only modification required is to remove a plastic post in the middle of the rear cover. Break it or cut it off and then use an x-acto-knife to clean up the remaining material.