Like almost every kid of the 1980s, I played video games. In 1995 I found out about MAME, a program that uses dumps of the actual ROM chips from video games and emulates the logic chips--to reproduce the exact game on my own PC. It was cool but then I started grad school and found an interest in cars, so I put it aside.
Sometime in 1998, I checked back into the "emulation scene" and found that not only had MAME grown to include several thousand arcade games, but that most older home computers (Commodore 64, Atari 800, etc) and older video game consoles (Atari 2600, Nintendo, etc) were emulated.
Now, emulation wasn't a new idea then. People have written programs to emulate CPU chips using other CPU chips for a while. And, emulating an entire computer system also was not new. Back in the late 1980s, I had programs for my Atari ST that could emulate a Macintosh and an 8088 PC clone. They were neat toys but were either buggy, not very compatible, or uselessly slow. What was new, however, was the ability of emulators in the late 1990s to finally emulate systems perfectly (or close to it).
So, I collected emulators and ROM files for them. One problem-- playing the games with my keyboard ruined the experience! And typical PC joysticks and gamepads, well, suck. So I found out about building arcade controls for my PC and went to work. There is nothing really revolutionary here--it's been done about a zillion times (see the arcade controls link)--but here's my version...
Note: click on a picture for a larger, correctly-proportioned version.
Right now I'm just building a control panel. I might build a complete stand up arcade unit later on, but for now that's out of my budget. After looking at what games I play most, and what other people have done to their control panels, I came up with this list of requirements:
My keyboard encoder is the Hagstrom KE72-T. It offers 72 "ghost proof" inputs and an interface that converts trackball signals into PS/2 mouse signals. It also offers keyboard pass-through and easy programming. The guys at Hagstrom are pretty helpful as well. They are starting production of the "IOX36" terminal blocks for the KE72 and threw in one for free with my order; I liked it so much I ordered another one.
I got my joysticks and buttons from Bob. They are Happ pieces (Super joysticks with the black teardrop handles and horizontal microswitch buttons) but Bob sells them cheaper. I got my Happ trackball and red ball super joystick (Ms.Pac-Man/Galaga replacement) directly from Happ.

Buttons and microswitches, Happ Super joysticks, Happ 3inch trackball, Happ red ball Super joystick
The remaining parts are various wires, cables, pieces of wood, screws, and so on.
I never made a formal plan. I cut out pieces of paper with the same size and shape as the footprints of the controls, then moved them around a large piece of paper until I got what I wanted. I transferred this to a sheet of wood and started cutting!
What I ended up with (pictures below) filled these needs:
I learned a few things. (1) I suck at woodworking. (2) Plywood, even the fancy oak-veneer stuff, just doesn't work well for this type of project. (3) Routers throw up enough sawdust to leave a 1/4" layer on everything within a 15ft radius.
I bought a cheap router, hoping I can build things with it later to justify the cost. I also bought a 1 1/8" drill bit. The rest of the tools (drill, jigsaw, sander, various handtools) were already in my fiancee's mother's shop where I was working.

Player 1 top with holes, Player 1 bottom, Player 1 controls test fit top and bottom
I made the tops hinged in the back so it would be easy to open the boxes to fix stuff. I will probably use velcro to hold them closed.

Player 1 electronics mounting, both player boxes before finishing
I used a router to round the edges, then I sanded with progressively finer sandpaper until I was happy with the surface. Since the wood is pine (light colored) and I like dark colored wood, I used 4 coats of stain, then two coats of sealer. I didn't do the insides because I just didn't feel like it!
I replaced the controls--then it was on to the wiring job.
Wiring took a LONG TIME. I cut and stripped a bunch of wires, then attached spade connectors to them (to connect to the terminals on the microswitches). The KE72-T didn't come with a cable to attach the mouse buttons, so I made my own from crimp-fit female connectors and hot glue. I connected player 2's box to player 1 (the encoder is in player 1's box) using two female 25-pin connectors and a 6ft male-male cable.

Player 1 wiring, Player 1 wiring closeup, Player 2 wiring, cables galore
Here are some close up pictures of the tops of the panels. I painted the joystick screw heads black after countersinking them. I wrote the button labels by hand, and it shows. The labels show the intention of each button (the black ones are "pinball" buttons). The two sticks on Player 1 can be programmed independently, but they are usually programmed for the same inputs--the difference is that the black one is 8-way and the red one is 4-way.
Now it's time to program the KE72 for each emulator... that'll take a while!
With the parts I chose, I knew it wasn't going to be cheap, but here are the totals:
You can do a lot better if you don't buy a router (save $100), use a cheaper keyboard encoder (save $75 to $170), and don't use a trackball ($100), bringing the cost down to about $275. Of course, without those things, you might as well get a HotRod SE for about $150 and save yourself the trouble. I was very picky about what I wanted and I paid the price!