Arcade Controller In A Box

[Alex] wanted to play video games with an arcade stick and buttons, but got sticker shock after seeing the price of commercially available controllers that connect to a computer via USB. He set out to build his own and ended up with the controller-in-a box that you see above.

At first he tried using an mbed microcontroller board but was unhappy with the latency built into the system that detected a button press, sent it via USB as a keyboard press, which was then interpreted as input by the game. He ditched the microcontroller completely and picked up a couple of 4021 parallel-to-serial shift registers. He had previously used this method to make his own SNES controller. The SNES uses two 8-bit shift registers to generate an 16-bit serial packet to send to the console. [Alex’s] reused that system, adding an SNES controller plug to his arcade box, and using the SNES to USB converter he already had to connect to the computer. Now he’s got a portable controller for the cost of three buttons, the stick, and two IC’s.

He explains the project himself in the clip after the break.


25 thoughts on “Arcade Controller In A Box

  1. I built one out of wood, controllers from Happ Controls and an ‘iPac’ board.

    Then ten years later I took it all to bits and used most of it to improve a JAMMA cab I now own that has some sort of crazy modified PC inside it.

  2. That’s a Really Useful Box!

    I haven’t played on a proper old-school arcade machine with microswitch buttons in many many years, control pads have taken over the world and it’s understandable to see why when you count the number of buttons & sticks an average pad has to control the modern day games.

  3. Um, latency? What? You’ve still got a USB connection in there, and detecting the controller movement should be the work of nanoseconds for a microcontroller…unless of course your debounce routine takes 100ms :P

  4. I work as a tech at a Boomer’s Arcade, and have access to all sorts of arcade game stuff, from buttons to joysticks and everything inbetween. When ever they decommission a cabinet, if the stuff is over 10 years old or useless in something else (like, the buttons we had in Dynamite Cop – for instance – don’t fit many of the sockets we have on other games correctly) the staff gets free grabs on it.
    That being said, I think the next time we send a game to the graveyard, I’m going to put one of these together!

    1. Yea, that’s what I was thinking. These projects are fun, though, as we are lucky enough to have Happ Controls sell us their quality parts without much markup, and these things are a blast to play on. It just seems like he could have done better than a flimsy plastic enclosure that is also a little too small, considering the extent to which he went to get this working with a microcontroller. The last one of these I built(with Playstation logic, 6 buttons, and a PS to USB adapter) I put into wooden enclosure with a 18″x8″x0.75″ top and bottom, and sides made of an 8″ length of 2″x12″ that I ripped down the center at a 15 degree angle. Took 10 minutes, had good weight to it(without being too heavy), and resembled the size and shape of an actual arcade control panel. Wish I had photos…

      Anyhow, great project, and props for at least attempting to use a microcontroller, but still being able to pull it off with discrete logic… :)

  5. #1) i love the box and the joystick and the switches

    #2) but i dont see how this is uC-less. maybe im just clueless, but he used a uC-project he already had. on hand right?

    “using the SNES to USB converter” … equates to: used a uC to convert the signals.

    but still, great job! & using a sNES connector makes the usb-BS (think drivers) the users’s problem, for which they ALREADY have the users manual and CD!

    speaking of which, i wonder if
    could help me make a NEStoPC adapter without wasting my valuable serial port or my valuable usbserial port…

    theregoes my idea. oh well, as long as i have my OWN software that i OWN(made), im good
    PS: already have cheating combo-moves in DOOM/SKULLTAG FTW!

    1. i know its offtopic but to all those haters back then about the HAD article on using an IDE port to program an AVR,,, you haters say it is so religiously immoral to use an IDE port for programming an AVR… its called a hobby, get over to it.

      apparently your hobby is commenting on websites that you have no buisness reading seeing as you only want to discourage people from having FUN with used electronic parts that were free, well, at least the non-AVR parts.

      go back to ****** and **** your ***** because:
      WE WILL NOT STOP when you tell us to!

      @STAFF please please PLEASE for the sake of this falling-apart community, if someone says its imoral or threatens death because someone had fun learning electronics using free off-the-curb parts, BAN THEM! this website is called Hack.A.Day. !!!

      1. HAD has implemented some changes addressing that problem and as far as I can tell, the overall tone of HAD comments have gotten more positive.

        Please see the following link:

        HAD Staff: Might be a good idea to figure out a way to let commenters know some ground rules down here in the comment area and perhaps provide a link to your “cleaning up” policy.

  6. Spoofing a keyboard button press over USB shouldn’t have any more latency than emulating an SNES controller and sending it over USB. Was the code for the mbed poorly written, or am I missing something?

    1. PS: usb-keyboards have a maximum number of keys that can be held down, which makes them usless for holding jump in doom/skulltag with the rga2 addonpak, aka u cant hold jump and fire and strafe, and sideways(to strafe) and then ontop of that press reload… usb keyboards were anti-gaming from the get-go, according to the specifications (max buttons). ive never owned or borrowed a USB-keyboard, PS/2 clean&reassemble FTW aka free+nosteal

      1. PPS: does anyone here actually know that windowsXP(pro) lets you use a (hardwareonly?) serial port to send in keyboard commands? its called serialkeys and its under accessability options… and its not limited by the number of simultaneous holding-down-of-keys… in case anyone didnt know and had already pulled their hair out trying to UNDERSTAND usb (in windows xp(pro))

        dont let them(USB) bully you, you have options

  7. I’ve made these with parts from Happ in a solid oak box (painted lacquer black). I like to use cheap controller. Wire the microswitches on the buttons and stick to the controller PCB contacts. We used o throw the crappiest $5 controller in there, and it worked like a dream.

    I used to like to use PSX controllers, since they were adaptable to just about any other platform.

    1. I’m doing something very similar at home right now. I plan on using my original xbox in a mini-arcade cabinet for my kids to play. I bought a used original xbox controller for $7 last weekend and I’m ordering the stick and buttons soon. I plan on tying the stick and buttons in to the pads on the xbox controller and then just plugging the controller into the port on the xbox.
      Mine will probably be mounted in MDF and not oak though. Sill painted black of course. :)

      Also, I hacked the xbox so I can also play emulators on it in addition to original xbox games.

  8. Heh we did this on the Amiga with shoe boxes and duct tape 20 years ago!

    We used to cut off the end of a cheapshit 9pin joystick, start a game like rainbow islands, and tap each wire to ground through a resistor to see how the character reacts

    “Okay yellow wire is up, green wire is down, blue wire is left”, etc. Nostalgia :(

  9. I did a Genesis pad to USB converter with a Teensy++ and didn’t meet serious latency problems but perhaps I’m not a good player lol.

    As Teensy virtual keyboard driver has a 6 simultaneous key limitation, I used the virtaul joystick emulation.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.