If you’re not familiar with the electronics inside this brand of retro gaming hardware you might be surprised to find that there’s barely any logic hardware at all. The chip in the middle of the board is a 4021 parallel to serial shift register. It connects to the buttons and uses the clock signal coming through the cable to pulse out the button states over a serial wire. So all that [Guillermo] did was lay out the chip with connects for each button.

In the image above his thumb is obscuring the 5-way switch used for directional control and select (center click). The yellow and green buttons serve as A and B, with the start button on the opposite side of the board due to a mistake in his board layout. He does have some future plans for this. He’s working on a Raspberry Pi project that will monitor and record the controller serial data so that you can play it back. It sounds like a player piano for video games.

[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.