4-Player Arcade Control Panel Build
Overview
The 4-Player Arcade Control Panel is a gaming interface with joysticks and buttons for up to four players. It allows multiplayer interaction and competition in arcade games, enhancing the classic gaming experience. This page documents building such a device.
Goals
- Supporting up to 4 players.
- Including a computer to run applications.
- Portable and affordable.
- DIY using 'off the shelf' parts.
- Controls to use standard x-input for easy configuration.
Design
Parts
- 9mm MDF Panel Standard 1200 x 900mm (cut to 260 x 900) ($28 from Bunnings)
- Player Buttons (4 x red, yellow, green, blue) (Aliexpress)
- Function Buttons (1P, 2P, 3P 4P, 4 x Coin)
- 4 x Joysticks
- 4 x USB Encoder Boards
- 1 x Raspberry Pi 4
USB Encoder Board
I have two models of encoder boards that I'm using.
- Most common layout is the Astro City / Blast City https://www.slagcoin.com/joystick/layout.html
Software Configuration
- Install Lakka on the Raspberry Pi
Correct DragonRise USB Controls
DragonRise USB encoders may disconnect automatically. The following steps resolve the issue.
SSH into the machine and run command dmesg, this will show output details about controllers for example:
[ 613.372366] usb 1-1.3: new low-speed USB device number 7 using xhci_hcd
[ 613.474904] usb 1-1.3: New USB device found, idVendor=0079, idProduct=0006, bcdDevice= 1.07
[ 613.474931] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 613.474941] usb 1-1.3: Product: Generic USB Joystick
[ 613.474950] usb 1-1.3: Manufacturer: DragonRise Inc.
[ 613.491012] input: DragonRise Inc. Generic USB Joystick as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.0/0003:0079:0006.0005/input/input5
[ 613.491419] dragonrise 0003:0079:0006.0005: input,hidraw0: USB HID v1.10 Joystick [DragonRise Inc. Generic USB Joystick ] on usb-0000:01:00.0-1.3/input0
[ 613.491495] dragonrise 0003:0079:0006.0005: Force Feedback for DragonRise Inc. game controllers by Richard Walmsley <[email protected]>
From here you can check the vendor ID and product ID as per https://retropie.org.uk/forum/topic/31488/solved-repeated-disconnect-of-zero-delay-usb-encoder-dragonrise/2
Mine will be usbhid.quirks=0x0079:0x0006:0x00000400
Run nano /flash/cmdline.txt and add it to the existing line
or
nano /usr/lib/modprobe.d/usbhid.conf
- Configure controls as per https://old.reddit.com/r/RetroPie/comments/rkrgra/power_issues_with_pi4_and_usb_arcade_joysticks/
- File location is "/usr/lib/modprobe.d/usbhid.conf" or "/flash/cmdline.txt"
- If flash is in a read only state it can be remounted with: mount -o remount,rw /flash
Rom corrections
https://docs.libretro.com/guides/arcade-getting-started/#optional-clrmamepro-tutorial
Enabling 240P on Batocera
- SSH into the device
- Run: mount -o remount,rw /boot
- nano cmdline.txt https://wiki.batocera.org/batocera-and-crt