guide
The Cabinet: A two-player retro arcade console with real joysticks — Build Guide
A Raspberry Pi, a two-player joystick kit and basic wiring become the arcade cabinet controller your living room TV was waiting for.
BUILD-02
The Cabinet
Devs At Home is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program. We earn from qualifying purchases. This never affects what we recommend or what we say about it.
A two-player retro arcade console with real joysticks requires a Raspberry Pi 5, a USB arcade control kit, a micro SD card loaded with RetroPie, and an afternoon of assembly. The RasTech Raspberry Pi 5 8GB Kit 64GB Edition with Active Cooler provides the computing core, the Qenker 2-Player LED Arcade DIY Kit for USB MAME PC Game DIY & Raspberr supplies the controls, and a SANDISK 128GB Extreme microSD Card + Adapter holds the operating system and game files. You'll mount the controls to a wooden or cardboard deck, connect the wiring harness already included in the kit, flash the card, and plug it into your TV.
Key points
- The Raspberry Pi 5 runs RetroPie natively and outputs to any HDMI television at 1080p or 4K, making it compatible with screens you already own.
- The Qenker kit includes pre-crimped cables with quick-connect terminals, so no soldering is required — each button wire clips onto its terminal in under five seconds.
- A 128GB micro SD card holds the RetroPie operating system plus several hundred classic game ROM files, depending on file size and console generation.
- The joysticks use genuine arcade-style microswitches rated for hundreds of thousands of actuations, the same mechanism found in commercial cabinets.
- Total assembly time runs three to five hours across two evenings: one for the physical build, one for software setup and first-boot configuration.
- The control deck requires a flat mounting surface approximately 60cm wide by 30cm deep, either built from plywood or fashioned from reinforced cardboard and particle board.
What you are building and why it is worth one weekend
You are building the control interface for a retro arcade emulator that connects to your television. The Raspberry Pi runs RetroPie, a Linux distribution that wraps emulators for dozens of classic consoles into a single menu system. The joystick kit gives you the physical controls: two eight-way joysticks, sixteen arcade buttons, and a USB encoder board that translates stick movements and button presses into keyboard signals the Pi understands. Mount the controls in a wooden or cardboard deck, wire them to the encoder, flash the SD card, and you have a two-player console that plays everything from Pac-Man to Street Fighter II.
The appeal is tactile. Emulators run fine on a laptop with a gamepad, but a gamepad does not deliver the resistance and snap of a proper arcade stick. The joystick in the Qenker kit uses a spring-return mechanism and four leaf switches, one per cardinal direction. Press it left and you feel the shaft bottom out against the actuator. Release it and the spring centres the stick with enough force that you know it returned without looking. The buttons use full-travel microswitches, not membrane pads. You can feel the actuation point halfway down, and the click when the contact closes is audible across the room.
The build itself is forgiving. The encoder board is pre-wired to a cable harness, and each wire terminates in a quick-connect spade terminal. You push the terminal onto the microswitch tab until it clicks. If you connect a button wire to the wrong terminal, you pull it off and move it. The Pi itself requires no GPIO work — the USB encoder plugs into a standard USB port and identifies itself as a keyboard. RetroPie recognises it on first boot and walks you through button mapping in under two minutes.
One weekend gets you from cardboard box to working arcade station because the components are designed to slot together without custom fabrication. The joysticks mount through 24mm holes drilled into your deck. The buttons need 28mm or 30mm holes, depending on which set you install. The encoder board sits underneath the deck or inside the enclosure, held in place with the included standoffs. The Pi mounts to the underside of the deck with adhesive or screws. Route the USB cable from the encoder to the Pi, run an HDMI cable to your TV, plug in power, and the hardware is done.
The parts list: what each item does
| Component | What it does | Why this one |
|---|---|---|
| RasTech Raspberry Pi 5 8GB Kit 64GB Edition with Active Cooler | Runs the RetroPie operating system and emulates the game consoles | The Pi 5 handles 16-bit and 32-bit emulation without frame drops, and the active cooler keeps the SoC below thermal throttling thresholds during extended play |
| Qenker 2-Player LED Arcade DIY Kit for USB MAME PC Game DIY & Raspberr | Provides two joysticks, sixteen buttons, LED illumination and a USB encoder board | The kit includes pre-crimped wiring with quick-connect terminals and a zero-delay encoder that registers inputs in under 10 milliseconds |
| SANDISK 128GB Extreme microSD Card + Adapter | Stores the RetroPie operating system image and game ROM files | The Extreme line delivers read speeds fast enough to eliminate load-time stutter when launching large ROM files from the menu |
What you supply yourself, honestly
You need a television with an HDMI input and a cable to reach it. Any screen made in the past fifteen years works. RetroPie defaults to 1080p output and scales cleanly to 4K if your TV supports it. The Pi will also drive a computer monitor with an HDMI input, though you will sit farther from the screen than you would at a desk, so text in the RetroPie menus may be small on anything under 27 inches diagonal.
You need a control deck to mount the joysticks and buttons into. This guide assumes a flat panel roughly 60cm wide, 30cm deep and at least 12mm thick. Plywood works. MDF works. Two sheets of corrugated cardboard glued together and braced with wooden battens works if you do not plan to move the assembly often. The deck needs to support the downward force of leaning on the joystick without flexing, which means either intrinsic rigidity from the material or a frame underneath. Many builders use an IKEA Lack side table, drill the holes in the top, and mount the controls directly through the tabletop. That table is 55cm square, which gives you room for two joystick-and-button layouts with a narrow gap between them.
You supply the game ROM files. RetroPie ships with emulators but no games. Downloading ROMs for games you do not own is copyright infringement in most jurisdictions. If you own the original cartridge or arcade board, the legal status of downloading a ROM varies by country. This guide will not link to ROM sites or advise you where to obtain files. The emulators themselves are legal; they do not contain any copyrighted code from the original consoles.
You will need a USB keyboard for the initial RetroPie configuration and a mouse if you prefer point-and-click to keyboard shortcuts. Once the arcade controls are mapped, you can unplug both and run everything from the sticks and buttons.
Basic hand tools: a drill with 24mm and 28mm or 30mm hole saws, a pencil, a ruler or tape measure, a screwdriver for mounting the encoder board standoffs. If you are building a wooden deck from scratch, you will also need a saw and clamps. No soldering iron is required unless you choose to replace the included wiring with custom-length cables, which this guide does not recommend for a first build.
The build, in numbered phases
Phase one: Prepare the control deck and mark the hole positions
Decide on your button layout. The Qenker kit provides eight buttons per player. A common layout places six buttons in two rows of three — the standard Street Fighter arrangement — with the remaining two buttons positioned higher and to the left, used for coin insert and start. Space the six-button cluster with roughly 40mm between button centres horizontally and 35mm vertically. Mark the joystick position about 15cm to the left of the button cluster, centred vertically. Repeat the layout for player two on the right half of the deck, mirroring the positions so both players have symmetric access.
Print a drilling template if you want precision. Many arcade supply sites offer PDF templates you can tape to the deck as a guide. Otherwise, measure carefully and double-check before drilling. A joystick hole drilled 2cm off-centre is visible and throws off the ergonomics.
Drill the holes. The joysticks require a 24mm hole. The buttons supplied in the Qenker kit typically use 28mm holes, but confirm the diameter marked on the button housing before drilling. Drill from the top surface and use a backer board underneath to prevent tearout if working with plywood. Sand the edges of each hole smooth so the plastic bezels of the buttons sit flush against the deck surface.
Phase two: Mount the controls and connect the wiring
Insert each joystick through its hole from the top. The joystick base plate sits on the underside of the deck. Secure it with the four screws provided in the kit, tightening until the joystick shaft no longer rotates when you apply torque by hand. Do not overtighten on thin material or you will crack the mounting plate.
Install the buttons by pushing each button through its hole from the top until the rim clicks into the locking tabs. Give it a quarter turn if the button uses a twist-lock collar. The LED wires on illuminated buttons will dangle beneath the deck; leave them alone for now.
Route the wiring harness from the encoder board to each control. The Qenker kit includes a bundle of quick-connect wires, each labelled or colour-coded to indicate which input on the encoder it connects to. Each joystick microswitch has two terminals. Connect one wire to each switch: up, down, left, right. The switches are not polarised, so either terminal works. Push the spade connector onto the tab until you feel resistance, then push harder until it clicks past the detent. Tug gently to confirm it is seated.
Wire the buttons the same way. Each button microswitch has two terminals; one wire goes to each. The encoder board diagram in the kit documentation shows which wire connects to which button input. If you mix them up, the worst outcome is that pressing button one triggers button two in software, which you fix by remapping or by swapping the physical wires.
Connect the LED wires if your buttons are illuminated. The LED wire from each button connects to the LED output terminals on the encoder board. LEDs are polarised: positive to positive, ground to ground. The wires are usually marked with a stripe or colour code. If you reverse them, the LED will not light, but you will not damage anything.
Phase three: Flash the micro SD card with RetroPie
Download the RetroPie image for Raspberry Pi 5 from the official RetroPie website. The image is distributed as a compressed file, typically a few gigabytes. Extract it to get the .img file.
Use a tool like Raspberry Pi Imager, Balena Etcher or dd to write the image to the SANDISK 128GB Extreme microSD Card. Raspberry Pi Imager is the simplest: select the RetroPie image, select the SD card as the target, click Write, and wait. The process takes five to ten minutes depending on your card reader speed. When it finishes, eject the card safely.
Insert the micro SD card into the slot on the underside of the Raspberry Pi. The slot is spring-loaded; push the card in until it clicks. Connect the USB cable from the arcade encoder board to one of the Pi's USB ports. Connect an HDMI cable from the Pi to your television. Plug in the Pi's power supply. The Pi will boot into RetroPie automatically.
Phase four: Configure RetroPie and map the controls
On first boot, RetroPie displays a controller configuration prompt. It detected the encoder board as a USB keyboard and wants you to map each input. Hold down any button on the joystick kit for three seconds. The configuration wizard starts.
Follow the on-screen instructions. Press the button or move the joystick direction indicated by each prompt: D-Pad Up, D-Pad Down, D-Pad Left, D-Pad Right, Start, Select, A, B, X, Y, and so on. If your layout does not include a particular button, hold down any button for two seconds to skip that prompt. Repeat the process for player two by navigating to the input configuration menu after the first player is done.
Copy game ROM files to the Pi. The simplest method is to enable SSH or Samba in the RetroPie settings menu, then transfer files over your local network from a laptop. ROM files go into folders named by console: /home/pi/RetroPie/roms/nes for NES games, /home/pi/RetroPie/roms/snes for SNES, and so on. After copying files, restart EmulationStation from the RetroPie menu. The games appear in the console-specific menus.
Test several games from different consoles to confirm the controls respond correctly. If a button does the wrong thing, enter the input configuration menu again and remap it.
Where this build actually stalls, and how to get unstuck
The joystick shaft binds or feels gritty. The actuator plate underneath the shaft may be misaligned, or the spring may be installed backwards. Remove the four screws holding the joystick base plate to the deck, lift the joystick, and inspect the spring. It should sit centred over the shaft pivot with the narrow end pointing down. If the spring is upside down, flip it. Reassemble and test. If the shaft still binds, check that the actuator plate is not rubbing against the inside of the housing. Loosen the mounting screws slightly, recentre the plate, and retighten.
A button does not register or registers intermittently. Pull off the quick-connect terminal and inspect the microswitch tab. If the terminal was not pushed fully onto the tab, the connection may be loose. Reattach the terminal by pressing it down firmly until it clicks. Test the button. If it still fails, swap the wires with a working button to determine whether the problem is the switch or the encoder input. If the problem moves with the wires, the encoder input may be faulty; if it stays with the button, replace the microswitch. The Qenker kit usually includes spares.
RetroPie does not detect the arcade controls. Check that the USB cable from the encoder board is plugged firmly into the Pi. Reboot the Pi. If the controls still do not appear, connect a USB keyboard and navigate to RetroPie Setup > Configuration / Tools > Emulationstation and select Configure Input. Force a rescan. If the encoder still does not show up, test the encoder on a different computer to rule out a defective board.
The Pi crashes or freezes during gameplay. The Raspberry Pi 5 requires a stable power supply rated for at least 5V and 3A. If you are using a lower-rated supply, the Pi will undervolt under load, causing instability. Use the official Raspberry Pi power supply included in the RasTech kit. If you are powering the Pi from a USB hub or a laptop port, that will not work reliably. Plug it directly into mains power.
Audio lag makes rhythm games unplayable. HDMI audio introduces latency because the TV processes the signal before playing it. Connect a USB audio adapter or a 3.5mm cable from the Pi's headphone jack to external speakers, bypassing the TV. In RetroPie, navigate to the audio settings and select the USB or headphone output. Most USB DACs add less than 10 milliseconds of latency, which is imperceptible in fast-paced games.
Safety, etiquette and the cleanup that keeps you allowed to do this again
Drill the control deck outdoors or in a garage if you can. MDF and plywood produce fine dust that coats every horizontal surface in the room and irritates your throat if inhaled. Wear a dust mask rated N95 or better. Vacuum the deck and the surrounding floor before bringing the assembly back indoors.
Secure loose cables under the deck with adhesive cable clips or zip ties. A dangling USB cable will catch your foot when you walk past the console. Route the HDMI and power cables along the edge of the deck or through a cable gland if your enclosure has one. Leave enough slack that the cables do not pull taut when someone leans on the joystick.
The Raspberry Pi runs warm during extended play, even with the active cooler. Do not enclose it in a sealed box with no ventilation. If you are building a cabinet or enclosure around the control deck, drill ventilation holes or leave gaps for airflow. The Pi will thermal-throttle if the SoC temperature exceeds 80 degrees Celsius, causing frame drops and audio stutter.
Turn off the Pi by navigating to the Quit menu in RetroPie and selecting Shutdown System. Wait until the green LED on the Pi stops flashing before unplugging the power supply. Pulling the plug while the SD card is being written to will corrupt the filesystem and force you to reflash the card.
Clean the joystick shafts and button tops with isopropyl alcohol and a microfibre cloth every few weeks. Skin oil and grime build up on frequently used controls and make the surfaces slippery. Unplug the Pi before cleaning to avoid triggering phantom inputs while you wipe down the buttons.
Ways to take it further once the base build works
Add a marquee light strip above the control deck. Addressable LED strips controlled by a separate microcontroller can display scrolling text or game-specific lighting effects. The strip mounts to a bracket behind the deck and connects to a 5V power supply. The microcontroller reads the currently running game from RetroPie over the network and updates the LEDs to match.
Build a full cabinet enclosure. Many arcade cabinet plans are available online as free PDF templates, scaled to standard plywood dimensions. A full cabinet puts the screen at eye level when standing, adds side panels to block ambient light, and includes a coin door and speaker grilles for authenticity. Expect another weekend of work and several sheets of plywood.
Install a trackball for games that used one in the arcade. Centipede, Missile Command and Marble Madness play better with a trackball than with a joystick. USB arcade trackballs mount in a 63mm hole and connect to the Pi the same way the joysticks do. RetroPie detects the trackball as a mouse and maps it automatically.
Connect original console controllers for platform games. Many side-scrolling games feel wrong on an arcade stick because they were designed for a D-pad and face buttons. USB adapters exist for NES, SNES, Mega Drive and PlayStation controllers. Plug one in, map it in RetroPie, and switch between the arcade stick and the gamepad depending on the game.
Set up Netplay for online multiplayer. RetroArch, the emulator core underneath RetroPie, supports peer-to-peer networked gameplay. Configure port forwarding on your router, exchange IP addresses with a friend, and you can play two-player games over the internet with minimal latency if both connections are stable. Expect 30 to 50 milliseconds of input lag on a good connection, which is tolerable for turn-based games but noticeable in fighting games.
Common questions
Can you use this with a Windows PC instead of a Raspberry Pi?
Yes. The Qenker encoder board identifies as a USB keyboard, so it works with any operating system that supports USB HID devices. Plug the encoder into a Windows, Mac or Linux machine, install an emulator frontend like RetroArch or LaunchBox, and map the controls. The Pi is recommended because it is inexpensive, silent, and purpose-built for this use case, but the arcade kit itself is platform-agnostic.
How many games fit on a 128GB card?
Several thousand, depending on which consoles you emulate. NES and Game Boy ROMs are typically under 500KB each, so 128GB holds tens of thousands. SNES and Mega Drive ROMs run 1-4MB, giving you room for thousands. PlayStation and Nintendo 64 games range from 50MB to 600MB, so 128GB holds a few hundred. Neo Geo and arcade ROMs vary wildly: some are 5MB, others exceed 300MB. Plan for 100 to 200 arcade games if you stick to the most popular titles.
Do the LED buttons stay lit all the time or only when pressed?
They stay lit continuously while the Pi is powered on. The LEDs are wired to a constant 5V supply from the encoder board, not to the button switches themselves. Some encoders offer an LED mode where the lights blink or pulse in response to button presses, but the standard Qenker kit does not include that feature. If you want press-reactive lighting, you will need to replace the encoder with a model that supports LED scripting.
Can you add a third or fourth player?
Yes, but you will need additional joystick kits and a wider control deck. The Raspberry Pi supports up to four USB controllers simultaneously. Buy a second Qenker kit for players three and four, drill the additional holes, and connect the second encoder board to another USB port on the Pi. RetroPie will detect both boards and prompt you to configure each one. Expect your control deck to be at least 120cm wide to accommodate four players comfortably.
How loud are the joysticks and buttons during play?
Audible. The joystick microswitches click sharply when actuated, and the buttons produce a similar click when pressed. Two players mashing buttons during a fighting game is loud enough to be heard in the next room. If noise is a concern, you can swap the included microswitches for silent models, which use rubber dampeners to absorb the impact, but that requires desoldering and replaces a satisfying tactile response with something mushier. The noise is part of the appeal for most builders.
What happens if you spill a drink on the control deck?
The encoder board and the Raspberry Pi will likely short out if liquid reaches them. The buttons and joysticks are more forgiving: the microswitches themselves are partially sealed, so a small spill that you wipe up immediately may not cause permanent damage. Unplug the Pi as soon as a spill happens, disassemble the affected components, and let everything dry for 24 hours before reconnecting power. If the encoder board was soaked, expect to replace it. The Pi may survive if the liquid did not bridge the GPIO pins or the USB ports.
Can you take this to a friend's house or is it too fragile?
You can transport it if the deck is rigid and the Pi is secured. If the control deck is a freestanding panel with no enclosure, carry it flat so the components underneath do not swing and stress the wiring. Wrap the assembly in a blanket or foam to protect the joystick shafts and button tops from impact. The Pi itself is robust, but the micro SD card can dislodge during transit, so tape over the card slot or remove the card and carry it separately. Once you arrive, plug in power and HDMI and it will run immediately.
Do arcade ROMs run at the original resolution or upscaled?
RetroPie upscales everything to your TV's native resolution by default. A CRT arcade game that originally ran at 256×224 pixels will be stretched to 1920×1080 or 3840×2160 depending on your screen. RetroArch includes shaders that simulate scanlines and CRT curvature if you want the authentic low-resolution look, but those are optional filters you enable in the settings menu. The gameplay itself runs at the correct speed and aspect ratio regardless of the output resolution.