Key takeaways
- Top Row of Buttons: Map to Virtual Y, Virtual X, and Virtual L1.
- Bottom Row of Buttons: Map to Virtual B, Virtual A, and Virtual R1.
What's inside
A dedicated home arcade cabinet or a custom-built desktop fight stick is the ultimate crown jewel for any modern game room. When designed and executed correctly, it blends nostalgic retro aesthetics with the tactile precision of mechanical microswitches. However, there is a distinct, frustrating pain known only to DIY arcade builders: spending hours mounting buttons, running wires, and polishing the cabinet finish, only to launch RetroArch and realize your joystick is inverted, your jump button acts as a pause key, and your “Player 1 Start” button does absolutely nothing.
If configured poorly, RetroArch’s powerful but notoriously complex menu system can turn a premium hardware setup into a chaotic mess of laggy, mismapped inputs. This guide will walk you through setting up your arcade stick buttons for RetroArch with flawless precision. By aligning your physical hardware with RetroArch’s virtual mapping system, you will eliminate input lag, prevent accidental game exits, and ensure your home arcade setup performs as beautifully as it looks.
As an Amazon Associate we earn from qualifying purchases at no extra cost to you. Product prices and availability are accurate as of the date shown and are subject to change.
What You Need
Before diving into the software configuration, you must ensure your physical control deck is properly equipped and connected. Whether you are retrofitting an old cabinet or building a custom desktop controller from scratch, having reliable, zero-delay hardware is essential. Below is a breakdown of the components required to get your arcade controls up and running.
| Item | Why You Need It | Optional? |
|---|---|---|
| USB Encoder Board & Wiring Harness | Translates physical microswitch presses into digital USB signals that your computer or Raspberry Pi can interpret. | No |
| Arcade Joystick & Buttons | The physical interface. Standard setups require a 4-way or 8-way joystick and at least 6 to 8 action buttons per player. | No |
| EG STARTS 1-Player DIY Arcade Kit (approx. $25.99) |
An excellent, budget-friendly starter kit featuring a 5-pin joystick, 10 LED-illuminated buttons (standard 30mm and 24mm mounting sizes, weighing roughly 0.8 ounces each), and a zero-delay USB encoder. | Optional (Ideal for single-player builds or testing) |
| EG STARTS 4-Player Arcade DIY Kit (approx. $83.99) |
A comprehensive kit for multi-player home cabinets. Includes 4 joysticks, 40 LED buttons, and 4 separate USB encoders (total package shipping weight is approximately 4.2 pounds). | Optional (Required for 4-player cabinet builds) |
| RetroArch Software | The frontend emulator system running on your PC, Raspberry Pi, or single-board computer. | No |
| Microfiber Cloth & Cable Ties | To clean the control panel surface and bundle the wiring under the deck for a clean, professional interior aesthetic. | Yes |
Step-by-Step Installation and Mapping
Configuring your arcade stick in RetroArch requires a systematic approach. If you rush through the menus, you risk overwriting your keyboard controls, locking yourself out of the user interface. Follow these five steps to ensure a flawless setup. Total estimated setup time is 40 minutes.
Step 1: Wire Your Control Deck for Consistency (Time: 15 minutes)
Before opening RetroArch, look under your control deck. If you are using a multi-player kit like the EG STARTS 4-Player Kit ($83.99), ensure that Player 1 and Player 2 are wired identically to their respective USB encoders. Connect the joystick’s 5-pin cable to the dedicated slot on the encoder board, and run your 2-pin or 3-pin button wires to the numbered slots (typically labeled K1 through K12). If you wire Button 1 on Player 1 to slot K1, make sure Button 1 on Player 2 is also wired to slot K1. This physical symmetry makes digital configuration much easier.
Step 2: Connect to Your System and Launch RetroArch (Time: 5 minutes)
Plug your USB encoder directly into a USB 2.0 or 3.0 port on your host device (PC, Mac, or Raspberry Pi). Avoid using unpowered USB hubs, as the 5V LED lights on premium buttons like those in the EG STARTS kits draw power directly from the USB bus; an unpowered hub may cause brownouts or input drops. Launch RetroArch. You should see a small notification in the bottom-left corner of the screen stating: “Zero Delay USB Encoder configured in Port #1.”
Step 3: Map the Virtual “RetroPad” (Time: 10 minutes)
RetroArch uses a brilliant abstraction layer called the “RetroPad.” Instead of mapping your arcade stick directly to an emulator, you map your arcade stick to a virtual controller (similar to a SNES controller layout), and RetroArch translates that virtual controller to the active emulator. To map this:
- Navigate to Settings > Input > RetroPad Binds > Port 1 Controls.
- Select Set All Controls.
- RetroArch will prompt you to press the corresponding physical button for each virtual input. For a standard 6-button fighting game layout, map them as follows:
- Top Row of Buttons: Map to Virtual Y, Virtual X, and Virtual L1.
- Bottom Row of Buttons: Map to Virtual B, Virtual A, and Virtual R1.
- When prompted for inputs your arcade stick does not have (such as analog thumbsticks or secondary trigger buttons), simply wait 2 seconds for the prompt to skip automatically.
Step 4: Configure Essential Hotkeys (Time: 5 minutes)
Without a keyboard attached, you need a physical way to exit games, save states, and access the RetroArch menu. This is done via hotkeys.
- Go to Settings > Input > Hotkeys.
- Select Hotkey Enable and press your physical “Select” or “Coin” button. This acts as a shift key.
- Select Menu Toggle (Controller Combo) and set it to Start + Select, or map “Menu Toggle” directly to a dedicated utility button on your cabinet.
- Select Quit Controller Combo and map it to your preferred combination (such as holding “Select” and pressing “Start” twice) to safely close RetroArch and return to your frontend menu.
Step 5: Save Your Configuration and Core Remaps (Time: 5 minutes)
If you close RetroArch now, all your hard work will be lost. You must save your configuration file. Go to the Main Menu > Configuration File > Save Current Configuration. Additionally, if a specific game core (like MAME for classic arcade games) requires a different layout than a console emulator (like Genesis), launch a game in that core, press your menu hotkey, go to Quick Menu > Controls > Manage Remap Files, and select Save Core Remap File. This ensures your customized arcade layout loads automatically for that system in 2026 and beyond.
Mistakes to Avoid
- Forgetting the “Hotkey Enable” Button: If you map “Menu Toggle” to a single physical button without setting a “Hotkey Enable” modifier, you will constantly trigger the emulator menu mid-game during frantic button-mashing sessions.
- Mixing Up USB Ports on Boot: If you unplug your arcade encoders and plug them back into different USB ports, your operating system may swap Player 1 and Player 2. Keep your USB cables plugged into the same designated ports.
- Daisy-Chaining Ground Wires Incorrectly: When installing DIY kits with illuminated 5V LED microswitches, ensure the power and ground daisy-chains are securely connected. A single loose ground terminal on an LED button can cause a cascading electrical failure across your entire control deck.
- Overwriting Keyboard Mappings: Never bind your arcade stick inputs to the “Keyboard” category in RetroArch’s input settings. Always bind them under the “Controller” category to avoid locking yourself out of your keyboard controls.
How Often Should You Maintain Your Setup?
While digital settings in RetroArch rarely change unless you perform a major software update, your physical arcade hardware requires periodic maintenance. Every 6 months, open your control deck to check for loose spade connectors or crimped wires that may have drifted due to intense gameplay vibrations. Use a dry microfiber cloth to wipe down the exterior buttons and joystick shafts. If your buttons begin to feel sticky or lose their satisfying tactile click, pop off the button plunger and clean the interior housing with a tiny drop of isopropyl alcohol (90% or higher).
When to Call a Pro or Replace Your Hardware
If you experience sudden input drops, double-inputs, or unresponsive buttons, the issue is usually hardware-based rather than software-based. Individual microswitches have a lifespan of millions of clicks, but they can eventually wear out or oxidize. If a single button stops registering but the rest work perfectly, replace that specific microswitch or button. Individual 30mm buttons are inexpensive, but if your entire control panel becomes erratic, it is often most cost-effective to replace the encoder board and wiring harnesses entirely with a fresh single-player package like the EG STARTS Arcade Buttons 1 Player DIY Kit ($25.99).
If you are building a massive, custom 4-player cabinet with integrated audio amplifiers, CRT monitors, and complex power distribution, and you encounter persistent ground-loop hums or power surges, consider consulting a professional arcade technician or custom cabinet builder to ensure your wiring is safe and meets local electrical standards.
Frequently Asked Questions
Why is my joystick registering the wrong directions in RetroArch?
This is almost always caused by the physical orientation of the joystick base inside your cabinet. If the joystick unit is mounted upside down or rotated 90 degrees, the microswitches will send the wrong signals. You can easily fix this by physically unscrewing and rotating the joystick base, or by manually re-binding the Up, Down, Left, and Right directions in RetroArch’s Port 1 Controls menu.
Do I need to install special drivers for EG STARTS USB encoders?
No. These encoders use class-compliant, “Zero Delay” USB firmware. They are plug-and-play and are automatically recognized as generic gamepads by Windows, macOS, Linux, and Raspberry Pi OS. RetroArch will recognize them instantly without any driver installation.
How do I map a traditional 6-button cabinet layout for Capcom fighting games?
For games like Street Fighter, the standard physical layout is Punch buttons on the top row and Kick buttons on the bottom row. Map your buttons to the virtual RetroPad as follows: Top-Left (Light Punch) to Y, Top-Middle (Medium Punch) to X, Top-Right (Heavy Punch) to L1; Bottom-Left (Light Kick) to B, Bottom-Middle (Medium Kick) to A, and Bottom-Right (Heavy Kick) to R1.
Why does RetroArch switch my Player 1 and Player 2 controls?
If your operating system detects the USB encoders in a different order during boot-up, it can swap the player assignments. To lock this down in RetroArch, go to Settings > Input > Port 1 Controls > Device Index, and manually assign the specific USB encoder board to Port 1. Repeat this process for Port 2, Port 3, and Port 4 to guarantee consistent player assignments every time you power on your cabinet.

