Overview:
For this project, I document the steps to build the wall-mounted RetroPie Arcade cabinet shown in the photo.
RetroPie turns a Raspberry Pi into a retro-gaming machine. Another project fell out of this one: a Movie Theater Retro-Pie game machine with a gamepad.
Build a wall-mounted RetroPie Arcade cabinet. I like the idea of a full-sized arcade cabinet, but I do not have the room for one. The wall-mounted version's depth is almost 8 inches narrower.
RetroPie turns a Raspberry Pi into a retro-gaming machine and server, which can be configured to play your favorite arcade, home console, and classic PC games. RetroPie provides emulators for various gaming platforms, including Nintendo, Game Boy, PlayStation, Atari, and more.
Apologies:
This is a complex and expensive project. I am sure you can find a less expensive build.
I did not include all of my misssteps - there were so many! While working on the project, I put my draft notes here. But as I went, I removed the steps that didn't work.
I apologize for this project; it is the kind I hate.
A photo of my notes is on the left. I did not document all the steps in the cabinet build on this website, which is what I normally do.
I didn't go back and do it from scratch following the instructions. I took lots of photos, but I did not add them here immediately. I waited until I was done. When I looked, many of these photos had significant issues, and it was too late to reshoot them. My excuse is that the project took 6+ months to complete.
PART I: Electronics
(numbered Steps)
Common Commands:
I used these commands a lot. So, I put them at the top, where they would be easy to find.
In Retropie:
To switch from Terminal to Game, open a terminal window and enter the command:
$ emulationstation
To go to the Raspberry Pi OS desktop, open a terminal window and enter the command:
$ startx
Decision: Cabinet Type
I watched several YouTube videos, which show builds for a variety of arcade cabinet types. I ruled out cabinets I didn't like. You can do what you want. I've included links to other cabinet types below. For example,
I don't like desktop cabinets because they are too small.
I don't like Arcade1 cabinets because they aren't full-size arcade cabinets. Best Buy sells Arcade1, which is where I checked out the form factor.
I can find many used, cheap ((<$200) Arcade1 cabinets on Facebook Marketplace. IMO, a price much lower than the list price is usually an indicator that the product or form factor has issues.
Full-sized arcade cabinets sell for almost the original list price. I prefer a full-size arcade cabinet. However, it is too large and bulky for my space and is too complicated for me to build.
I decided to build a wall-mount cabinet. I am not much of a woodworker. So, I tried to simplify the build. I cut the major pieces out of a single sheet of MDF and one 2'x4' MDF project board.
Decision: Raspberry Pi 4 or 5:
As of 24JAN2025, RetroPie was last updated in 2022. Raspberry 5 was released in 2023. So, there is no requirement to use an RPi5.
Also, it may just be me, but I never want a 25-watt Raspberry Pi (RPi 5).
Decision: Retro Gaming Platform:
There are three main Retro Gaming platforms. Game Room Solutions gives a good overview of all three and reasons why you might want to pick one over the other The three are:
RetroPie
Recalbox
Lakka runs on LibreELEC
I am not sure which is best.
I asked ChatGPT and got a thoughtful response that might be worth reading. Here is my ChatGPT prompt:
You are an expert in retro gaming, and the raspberry pi model 4 B. Please evaluate the following, rank them in order and provide your reasoning. The three are: RetroPie, Recalbox and Lakka.
Many years ago, I used LibreELEC and ran into issues that I could not resolve. So, I am a bit gun shy of smaller on-line communities.
As of 24JAN2025, RetroPie doesn't support the latest version of Raspberry Pi OS (bullseye).
I have been meaning to create a RetroPie machine for years. Without any compelling reasons, I am going to stick with RetroPie (version 4.8). RetroPie runs on top of a Raspberry Pi OS image. The Raspberry Pi Imager will choose the proper Raspberry Pi OS version.
Warning:
Do NOT run
$ apt-get dist-upgrade
It will break your Retropie. Retropie runs an old version of Raspberry Pi OS.
Decision: Standalone Arcade Game, Retro Gaming Server, or Both:
Retropie can be a standalone arcade game, a gaming server or both.
I am going to setup RetroPie as a standalone arcade game.
With RetroArch installed on a laptop, RetroPie can be used as a game server. I am choosing not to do this.
Decision: Controller
Many different gaming platforms run on Retropie. I am not a gaming expert, or even a frequent player. So, my choice of using an SNES-type controller is probably wrong. But I have kids and grandkids who are gamers. So, I relied on their input and feedback. Please see the Retropie controller links at the bottom of this page for alternatives.
Your controller choice determines the type and number of buttons and other input devices. For example, PlayStation controllers have many more buttons than an SNES-type controller. So, PlayStation games may have issues. Yes, you can allow players to change the controller buttons to match the platform. Being a bit of a control freak, I didn't want my grandkids making changes.
Electronic Parts:
Order electronics. I followed the recommendations from RetroPie.
Electronics:
I have an older Insignia Monitor that I no longer use ($0), which is 29-3/4 wide by 17-1/2 high by ~3 deep from my storage. It has right and left audio output (speakers)
Raspberry Pi 4 Kit from Amazon $127.36
Raspberry Pi 4 model B with 8GB (1.5GHz quad core 64-bit ARM Cortex-A72 CPU) with integrated Wi-Fi and Bluetooth
Case
32GB card
card reader
5V 2.5A power supply with on/off
4x heat sinks
cooling fan
Extra 128GB MiccroSD Cards
2x EG STARTS Arcade Buttons from Amazon $55.33
1x Player DIY Kit Joystick
8x 5V LED Arcade Buttons
You should buy the two-in-one kit because with a two-player button ($6.99) and it is less expensive. However, I do like the multi-color buttons in the one-person kit. The two-person kit comes with one and two-player buttons. I bought a two-player button separately.
ControlBlock from Petrockblock $37.90 is not required because the buttons come with a controller.
Fastoe Retropie Gaming Console ROMs 128GB microSD Card Preloaded Games for Raspberry Pi 4/400 from Amazon $59.99
ROMs can be downloaded for free. However, I am concerned about introducing viruses into my home network.
This Micro SD Card comes with Retropie, 10,000 games, and many emulators.
I made several copies of the Fastoe SD Card, and then removed the games and emulators I didn't want.
Power strip with surge protection
Do NOT use:
I bought the PowerBlock from Petrockblock $21.90. It allows the RPi to be safely shut down, started, and rebooted.
The PowerBlock worked great for a few days. It was easy to set up, install, and use.
I am not sure what happened. After a few days, it stopped working on the Raspberry Pi, but I left it running. When I returned, the RPi would not boot. The run light blinked continuously fast.
Luckily, I had a backup. However, this didn't work either. Eventually, I replaced the RPi4 with a spare, but did not use the PowerBlock, and everything worked.
I cannot be certain, but my best guess is that the PowerBlock somehow broke the RPi4.
I tried various methods to get the first RPi back to a good state, but all failed.
I contacted PetRockBlock and received no reply for several weeks. Eventually, I received a response, but it did not work.
I will NOT use PetRockBlock again.
Tools:
Tools needed for this project:
Various Phillips head screwdrivers
Drill and drill bits, plus sanding bit
Circular Saw and Blades
Table Saw and Blades
Tape measure
Carpenter's right angle
Metal straight edge or metal ruler
Jig Saw and baldes
Orbital sander and sandpaper
Clamps
MacBook and Wi-Fi
MicroSD Card adapter for MacBook
Step 1. Fastoe MicroSD Card
The Fastoe MicroSD Card comes with Raspberry Pi OS, RetroPie and 10,000 games aand associated emulators.
Put this in the Raspberry Pi MicroSD Card slot.
If you'd like to build RetroPie from scratch here are the directions.
Step 2. Important Defaults
Important defaults for retropie are:
hostname = retropie
password = raspberry
username = pi
For security reasons, you should change hostname and password. To do this:
Open a terminal window on MacBook, and run the commands:
$ ssh pi@retropie.local
$ sudo raspi-config
Change localisation options, keyboard, hostname, user pi's password
Note: if ~ is not recognized, then the keyboard is not setup correctly
$ sudo rebot now
And change hostname and password
Step 3. Simple Raspberry Pi Fan
The fan that comes with the RPi connects to pins 4&5 and it runs all the time. The fan it is quite loud. I substituted a quieter fan, and rather than run at 5v, I am running it at 3.5v and only when needed.
Use this Step to add a Simple Raspberry Pi Fan.
Red Fan pin goes to GPIO 3.3v (pin 01 or 17)
Black Fan pin goes to the GPIO_PIN defined in the script (physical pin 37 or GPIO 26)
Step 4. Audio
The monitor is also a TV and has built-in Speakers
Anything that comes through the HDMI port from the Raspberry Pi will be played through the TV speakers
The volume is controlled via the monitor.
No external speakers or RPi audio device is required
To change audio config, run
$ cd ~/RetroPie-Setup
$ sudo ./retropie_setup.sh
Configuration tools
audiosettings
HDMI 1
$ sudo raspi-config
System Options
Audio
HDMI 1
$ sudo nano /boot/config.txt
# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
hdmi_drive=2
$ sudo reboot now
if HDMI audio is working, the following command outputs white noise
$ speaker-test
Step 5. Install Pixel Desktop
Retropie does not come with Pixel installed. Pixel is needed to run Raspberry Pi Imager to make a backup MicroSD Card.
To exit emulationstation, type F4
In the terminal, run this command:
$ sudo bash ~/RetroPie-Setup/retropie_setup.ssh
Notes:
If the tilda (~) appears as a funky character, then the keyboard was not set properly in raspi-config.
Rerun:
$ sudo raspi-config
And fix the keyboard in localisation options.
In retropie_setup, do the following:
select Raspbian Tools
Click Install Pixel Desktop Enviornment
Step 6. Choose RetroPie Platforms & Games (optional)
Do the steps in the link
Step 7. Clone MicroSD Card
Until everything is setup and running as you want, you might want to make clones of the running system.
Moving the games and emulators was a lot of work. So, cloning now could save a lot of re-work if anything goes wrong.
Step 8. Cleanup Menu
Note: many of the Fastoe games used 7z insstead off zip extension. So, they weren't showing in the collections menu items.
Step 8.A. Remove Compilations (or Collections) from RetroPie Menu
The RetroPie menu has several compilations, classics or collections. Once I removed many games and platforms, these menu items had zero games in them. So, I wanted to remove these menu items. The way to do this is from a terminal window, run the commands:
$ cd ~/.emulationstation
$ cd collections
$ mkdir unused
$ mv <unwanted>.cfg unused/.
I moved these into unused:
custom-atari.cfg custom-konami.cfg custom-midway.cfg custom-shmups.cfg custom-vector.cfg
custom-capcom.cfg custom-lightgun.cfg custom-namco.cfg custom-snk.cfg custom-williams.cfg
custom-dataeast.cfg custom-metalslug.cfg custom-nintendo.cfg custom-taito.cfg custom-wrestling.cfg
custom-irem.cfg custom-metroid.cfg custom-sega.cfg custom-trackball.cfg
Step 8.B. Cleanup or Add Collections as Desired
I created two new collections: kids and casino.
$ cd ~/.emulationstation/themes/Slick_CityLights
$ mkdir kids
$ mkdir kids/_inc
$ mkdir casino
$ mkdir casino/_inc
$ cp arcade/theme.xml kids/.
$ cp arcaade/them.xml casino/.
On my MacBook, I grabbed two images off the internet and used PaintX and screenshot to make them the same size and layout as:
arcade/system.png
arcade/background.png
Then, I scp'd this files to the Raspberry Pi and then mv'd them to the proper directory
In the collections directory of 6A, I created a custom-kids.cfg and a custom-casino.cfg. I also updated custom-sports.cfg.
I added the appropriate games to each .cfg file.
Step 8.C. Remove RetroPie menu
I don't want my kids or grandkidss playing with the options in the RetroPie menu option. So, I want to remove this menu item.
Disable Options Menu Item: To do this, run the following ccommands in a terminal window:
$ cd ~/RetroPie-Setup
$ sudo ./retropie_setup.sh
select Manage Packages
Manage Core Packages
RetroPie Menu
Remove
Yes
And then backout and reboot from the menu or command line ($ sudo reboot now)
Enable Options Menu Item: However, it might be necesssary to redo or change the buttons. So, to reverse the above, do this:
$ cd ~/RetroPie-Setup
$ sudo ./retropie_setup.sh
select Manage Packages
Manage Core Packages
RetroPie Menu
Install from pre-compiled binary
And then backout and reboot from the menu or command line ($ sudo reboot now)
Step 8.D. Find Requested Games and Add roms and Platforms
After 6A, I had no Sonic the Hedgehog orStreetfighter games. So, I found them and added them back.
$ cd ~/RetroPi/roms/unused
$ find . -name "Sonic "*" Hedgehog*.*"
$ find . -name "Street Fighter II"*.*
recreate subdirectory in roms and move media and games
file names in cfg must match exactly names in roms subdirectories. Some have different extensions
~/.emulationstation/collections
There are a lot of Pac-Man games but only one shows
To find games, try something like this:
$ find /home/pi/RetroPie/roms -name *Street*.* | grep -v -e "unused" -e "media
Add the platform and the game, update the .cfg file as needed
Step 9. Add Buttons and Joysticks to Encoder Board and Connect to Raspberry Pi
Notes:
The Encoder "User Manual" is a double-sided piece of paper with poor directions.
I could not get any of the "User Manual" QR Codes to work. So, in the images below, I tried erasing them. I am guessing my phone has a security setting preventing the QR Code connection.
You can wait to do Step 2.B (??? what step ???) until after the cabinet is built.
I wanted to be sure everything worked before building the cabinet, because that is the hardest part of this project.
The reason to wait is the joystick and buttons will need to be removed to put them in the cabinet.
The connectors can be pried apart, but it is probably not a wise thing to do. The Adapter Cables use locking push-on connectors. These have two small hooks that must be pressed together to release the connector.
The 2-pin and 5-volt slots on the Encoder Board are not used.
Not all of the 3 pin slots are used.
Definitions:
An Adapter Cable has 3 or 5 wires and has a connector on each end.
A Slot is a female connection that takes an Adapter Cable and is labelled K1-K12 on the Encoder Board.
K5-K8 are labelled differently on the backside of the board. K5-K8 are not used.
For more definitions, see this link
Step 9. (continued)
The directions in the Encoder User Manual (see images on left) are lacking. Here is what I did:
Shutdown the Raspberry Pi
$ sudo shutdown -h 0
Remove the Raspberry Pi power cable.
This is a two-player build. So, for one button kit, take everything out of the packaging. Undo the twist ties.
As you go through these directions, put any leftover parts in the large button bag.
Step 9. (continued)
My button kit came with multiple Adapter Cables joined together (e.g., 8 connectors on one ribbon cable).
Do NOT separate any of the 3 wires in one Adapter Cable.
Separate any joined Adapter Cables.
Gently pull the Adapter Cables apart to separate.
Step 9. (continued)
Screw the red ball on to the joystick
Insert a 5-pin Adapter Cable into the 5-pin joystick slot and into the 5-pin Encoder Board slot.
On the Encoder Board, insert one end of a 3-pin Adapter Cable in slots K1-K4 and K8-K12.
It doesn't matter which wire one goes into which slot.
Once all the Adapter Cables are plugged into the Encoder Board, then connect the buttons as follows (odd numbers are on top and even are below):
K1 & K2 = yellow buttons
K3 & K4 = red buttons
K5 & K6 = green buttons
K9 = coin button (Select)
K10 = player button (Start)
K11 & K12= blue buttons
The second controller must have the same buttons connected to the same slots.
Step 9. (continued)
A standard controller configuration is to use 6 of the 8 colored buttons. 2 Player buttons and the player and coin buttons. I chose not to use 8 buttons. (see images)
Step 9. (continued)
Plug the USB-B connector into the Encoder Board and into one of the USB 2.0 slots on the Raspberry Pi 4.
The USB 2.0 connections are next to the ethernet jack.
Plug-in the Raspberry Pi power cord.
When the terminal window is up, enter:
$ emulationstation
The goal is to get a controller with the same functionality as that shown on the controller above.
X & Y are K1 & K2 (yellow buttons)
A & B are K3 & K4 (red buttons)
The joystick replaces the D-PAD direction buttons
Slot K9 = Select (coin button, SE)
Slot K10 = Start (player button, ST)
Left & Right Shoulder are K11 & K12 (blue buttons)
Skip all the other buttons when configuring Retropie (hold a button to skip)
When you get to hotkey, hold the blue button K3 down for a long count, then use the joystick to move to OK. Then press K3, it will take a few seconds and then it will exit Configuring Gamepad.
Step 9. (continued)
Repeat the steps in 2B for the other button kit
This step could be moved after the cabinet build, so the maker doesn't have to disconnect switches from the Adapter Cables. However, I did this because I wanted to make sure everything worked before I started building a cabinet, which is the hardest part.
(Skip Step 10. or find an alternative. I did not do Step 8 because the PowerBlock ruined a Raspberry Pi.)
Step 10. Power Button
Open a terminal window on the arcade and run these commands:
$ wget -O - https://raw.githubusercontent.com/petrockblog/PowerBlock/master/install.sh | sudo bash
$sudo shutdown -h 0
Disconnect the USB-C power from the Raspberry Pi
Connect Adafruit's Momentary Rugged Metal Push Button with Blue LED to the PowerBlock LED and Power pins using jumper cables.
+ and - on PowerBlock LED pins to button + and - on button
Connect NO and ??? on button to SWITCH pins on PowerBlock
Attach the PowerBlock to the Raspberry Pi headers
Insert the USB-C power into the PowerBlock
The button can safely turn the RPi on and off.
Step 11. Raspberry Pi Case
I put the Raspberry Pi in a case. I screwed the case to the bottom shelf in the middle of the control panel, where all the button's wires and button control panel wires could reach the RPi..
PART II: Cabinet
(lettered steps)
Cabinet Parts:
Materials:
4x8x1/2 inch MDF: For outer panels.
Have Lowe’s cut 2x ??x48
2x4x3/4 Plywood: For structure and for hanging on the wall.
1x1 and 1x2 wood: for mounting inner panels to side panels
High-Shear Strength Stainless Steel Screws (1-1/4 or 1-1/2 and 2-1/2 or 3-inch screws)
Tools:
Saw and Table Saw: For cutting the wood.
Wood chisels.
Drill: Drill bits, sanding drill bits, and countersink for making holes for buttons and assembling parts.
Screwdriver: To assemble the cabinet.
Clamps
Router: with a roundover bit and a flush trim bit to do the side boards
2-3 French Cleat bolts
Step A. Design Cabinet Side
I used ChatGPT to find a full-sized arcade cabinet with dimensions. In researching cabinets, the control panel's angle is critical. If the height or tilt of the control panel is incorrect, then it becomes uncomfortable to play for extended periods.
Many cabinet designs have a curved outer edge and straight interior lines. I prefer if the outer edge match the interior lines. This approach makes the build easier.
I traced a full-sized cabinet onto graph paper, and then I modified the drawing to be a wall-mount. I double-checked my measurements repeatedly.
Cabinet: 2x sides, top, TV cover, control panel, front control, bottom control shelf, very bottom shelf, two additional shelves
Skeleton with Wall Mount using French Cleat, skeleton holds sides and shelves
Use 2x French cleats; don't use plywood for the supports.
Rough Dimensions:
The width is 22 inches, the height is 55 inches. The top is 6 inches wide. The bottom is 10 inches wide. The base for the monitor is 10 inches wide, and it is 24 inches from the top. The control panel is 6 inches high. The monitor and the shelves are angled to meet these measurements.
Caution:
I had difficulty estimating how the monitor would fit. The bottom has an irregular shape with speakers. Therefore, I made the monitor portion significantly larger than the end product (55 inches). Once the cabinet is almost complete, the monitor must be inserted and braced. Then the excess on the top can be removed. I wanted the sides, top, and bottom of the monitor opening to be about the same width.
Since I am not a skilled woodworker, I cut all the parts slightly larger than required and then trimmed them down with a flush router bit. You might notice some discrepancies between lengths or widths.
Step B. Design Cabinet Skeleton
The MDF is the skin screwed onto the skeleton. I started with the sides and then determined where the supports must be to support the MDF.
Step C. Cut Parts
Skeleton parts:
qty name width length notes
2 ws 1-1/2 55 wall side
2 fc 3-1/2 35 French cleat
2 w1 1-1/2 35 wall top and bottom
2 sm 3-1/2 25 side monitor
1 tm 3-1/2 35 top monitor
1 bm 3-1/2 35 bottom monitor
1 pt 3-1/2 35 panel/button top
1 pb 3-1/2 35 panel bottom
4 ps 3-1/2 13 panel supports
4 fs 1-1/2 5 front supports
1 fb 1-1/2 35 front bottom
2 s1 1-1/2 22 shelf support 1
2 s2 1-1/2 15 shelf support 2 (3 was not needed)
2 s4 1-1/2 10 shelf support 4
3 ts 1-1/2 6 top support
1 bs 1-1/2 35 bottom support
MDF parts:
2 side see drawing
1 m1 34-3/4 6-3/8
1 m2 34-3/4 22-1/4
1 m3 34-3/4 13
1 m4 34-3/4 5-5/8
1 m5 34-3/4 20
1 m6 34-3/4 14-3/8
1 m7 34-3/4 8-7/8
Mark all the boards with their name and orientation (left, right, front back)
Step D. Side MDF
The two angled cuts were difficult to get straight. I tried using a jigsaw. The outline was wavy.
I clamped a piece of MDF to a side and used a flush cut router bit to ensure those edges were straight.
Next, I clamped one MDF side to the other and used the flush cut router bit to ensure the sides were all the same.
I used a chisel to clean out the corners
Step E. Ensure Width is the Same
When cutting boards, I often end up with boards that are slightly different in width or length.
Ensure the MDF boards (M1-M7) and cross pieces of the skeleton (FC, TM, BM, PT, PB, FB, and W1) are the exact same width.
Use one board as the master and a flush-cut router bit.
Clamp the master to a board and use the flush-cut router bit to ensure the board is the same width
After using the flush bit, my boards were approximately 34-3/4 inches. It doesn't really matter what the width is, as long as the monitor still fits and looks good.
Step F. Assemble Sides
Repeat for each side:
Repeat for each skeleton piece:
Clamp a skeleton piece to the side.
Repeat for each hole:
Pre-drill with a countersink bit.
Screw in (I used shorter screws, 1-1/2 or 1-1/4-inch screws, for pieces on the side MDF).
Unscrew, apply glue, and screw it in again.
Step G. Cross Pieces
Cross pieces are part of the skeleton and go from one side panel to the other. The cross MDF pieces are screwed into these pieces.
The cross pieces are listed above with a width of 35 inches (fc, tm, bm, panel supports, and monitor supports).
I used two 3-inch boards to create the French Cleat. One FC is screwed into the wall, and the other is screwed into the cabinet about midway up. The wall FC must be pre-drilled and the screws *must* go into the wall studs.
Since the cabinet leans forward, I started by cutting some support boards to stabilize the cabinet. I screwed these into the MDF on both sides. There were front and back supports.
Repeat for each side:
Repeat for each skeleton cross-piece:
Clamp a skeleton piece to the side.
Repeat for each hole:
Pre-drill with a countersink bit.
Screw in (I used longer screws, ~3 inches, for cross pieces).
Unscrew, apply glue, and screw it in again.
If there are any remaining skeleton pieces, screw these in appropriate places.
Step H. Cross or Front-facing MDF Boards
The top, monitor, top panel and front panel MDF boards need to be beveled. I used a table saw to cut the bevel and then an orbital sander to clean up the saw marks.
In the monitor MDF:
Cut the hole for the monitor (3 inches from top, 3-3/4 inches from bottom, 4-3/16 from sides).
Using 1-1/2 screws, attach the shelves, and other cross piece MDF boards
Step I. Attach the Monitor and Add Sound Holes
A helper in this step is needed.
I added pieces on the bottom, and sides of the monitor MDF so the monitor would sit centered in the monitor opening.
The bottom is actually a couple of pieces. The sound comes from the bottom of the monitor. So, it must have room for the sound to come forward.
The side piece were deep enough that I could add a back brace across the monitor to keep it in place. Screw in the brace.
I created a pattern for the sound holes (see 1st picture). I taped the pattern to the back of the monitor MDF. I used a very small drill bit to drill from the back to the front of the monitor MDF.
Next, I used a countersink bit to drill from the front of the MDF through each hole. I didn't drill all the way through. I just wanted that beveled screw hole caused by the countersink bit.
Step J. Button Holes
The buttons are in metric units and my drill bits are British units. I had to expand the holes slightly using a sanding drill bit.
Pick or design a pattern for the buttons that you like. This can be done in many different ways. Since many platforms are squished into one, I don't think you can get a layout that will please everyone.
I used the same pattern on both sides. I layed it out on graph paper and tthen poked holes through into the wood.
Step K. Finishing Touches
Repeat until everything is smooth
Add wood putty where needed to fill holes and gaps
Sand
Prime and paint. I painted the cabinet blue first. Then I used painter's tape for the lines and painted those.
Step L. Attach to Wall
Attach french cleat to wall studs using heavy duty bolts
Videos and Links:
I was planning to build this, but I could not find a MicroCenter near me that sells it or one that would ship it to me:
https://www.instructables.com/2-Player-Stand-Up-Retro-Arcade-by-Micro-Center/
https://www.youtube.com/watch?v=6OcVQ5HDLkY&t=33s
https://www.youtube.com/watch?v=K3QXLQ1UXqs&t=16s
https://forum.arcadecontrols.com/index.php/topic,161692.0.html
https://arcadecontrols.com/arcade.htm
How to hookup encoder and buttons:
https://www.youtube.com/watch?v=QI4idp8nxLE
Best Dimensions, modify width to be wall mount: https://www.instructables.com/Easy-Cab-arcade/
Button Configurations:
https://retropie.org.uk/docs/RetroArch-Configuration/
Controllers:
https://retropie.org.uk/docs/Controller-Configuration/
Howchoo always has the best directions. It uses a gamepad instead of buttons:
https://howchoo.com/pi/build-your-own-raspberry-pi-retro-gaming-rig/