1. Overview
Playbox is a dedicated mini-PC arcade. Boots into ES-DE, plays via RetroArch (+ a few standalone emulators), and exposes web tools for ROM management.
On the TV
- ES-DE game browser
- Controller-first navigation
- Save states + quit hotkeys
On the network
- RomM — drag-and-drop ROM manager
- Syncthing — file sync
- VNC — live TV screen
- SSH — admin shell
Public tutorial: no passwords. Use private vault notes for credentials.
2. Power on and play
No login screen. Power → ES-DE → controller → go.
First session
- Press power
- Wait for ES-DE
- D-pad to browse
- Press A to launch
- Hold Select + Start to quit
In-game shortcuts
Select + StartExit → menu
Select + RightQuick save
Select + LeftQuick load
Select + YFast forward
Kid-proof mode may lock RetroArch GUI. Home + Start is the exit path if configured that way.
3. Controller map
Default pad: 8BitDo SN30 Pro in Switch/USB mode.
| Physical | Role | Notes |
| A (right) | Confirm | Launch in ES-DE |
| B (bottom) | Back | Cancel / run |
| X / Y | Face buttons | Nintendo-style layout |
| Minus / Plus | Select / Start | Hotkey combos |
| Home | Hotkey mod | Home + Start exits kiosk mode |
| D-pad + sticks | Move | USB is the reliable path |
Bluetooth can show connected without creating a working input device. If buttons die after reboot: replug USB, restart kiosk.
4. Add games
Three ways in. RomM is the easy path.
Easiest RomM
- Open RomM in a browser
- Library → Upload ROMs
- Drag and drop
- Run Scan
- ES-DE → Start → scan for new games
Other paths
- Syncthing — drop into the shared folder →
/srv/roms/
- SCP — copy into the platform folder, then scan
scp game.zip mudly@PLAYBOX:/srv/roms/snes/
| System | Folder | Example |
| NES | /srv/roms/nes/ | Mario.nes |
| SNES | /srv/roms/snes/ | Zelda.sfc |
| Genesis | /srv/roms/genesis/ | Sonic.md |
| GBA | /srv/roms/gba/ | Metroid.gba |
| N64 | /srv/roms/n64/ | Mario64.z64 |
| PS1 | /srv/roms/psx/ | .cue + .bin |
| PSP | /srv/roms/psp/ | Game.iso |
| Arcade | /srv/roms/arcade/ | sf2.zip |
5. Access cheat sheet
LAN at home. Tailscale when away. Copy buttons work. No fake clickable service links that 404 from the public web.
| Path | Address | When |
| Wi-Fi LAN | 192.168.0.125 | Home Wi-Fi |
| Ethernet | 192.168.0.124 | Wired backup |
| Tailscale | 100.108.150.102 | Away / stable remote |
Web
- RomM →
http://IP:8080
- Syncthing →
http://IP:8384
Screen + shell
- VNC →
IP:5900
- SSH →
ssh mudly@IP
Skip macOS Screen Sharing for this box. Use TigerVNC / RealVNC / a phone VNC app.
PLAYBOX QUICK CARD
LAN Wi-Fi: 192.168.0.125
LAN Eth: 192.168.0.124
Tailscale: 100.108.150.102
RomM: http://100.108.150.102:8080
Syncthing: http://100.108.150.102:8384
VNC: 100.108.150.102:5900
SSH: ssh mudly@100.108.150.102
6. Systems & cores
ES-DE is the front door. RetroArch cores (plus Flycast) do the work.
| System | Core / emulator |
| NES | Nestopia |
| SNES | bsnes-mercury |
| GB / GBC | Gambatte |
| GBA | mGBA |
| NDS | DeSmuME |
| N64 | Mupen64Plus-Next |
| Genesis | Genesis Plus GX |
| Saturn | Mednafen Saturn |
| PlayStation | PCSX-ReARMed |
| PSP | PPSSPP |
| Dreamcast | Flycast (standalone) |
| Arcade / Neo Geo | FinalBurn Neo |
One game misbehaving? Try another core before blaming the ROM.
7. Fancy extras
Optional polish after the basics work.
CRT shaders
If menu access is unlocked: RetroArch shaders → try crt-easymode or crt-royale → save core preset.
Saves
- Save state — instant snapshot
- In-game save — normal battery/RPG saves
Themes
ES-DE → Start → UI Settings → Theme Set.
Achievements
RetroAchievements can be enabled in RetroArch if you want trophies on old games.
8. Common fixes
Most failures are kiosk, controller, Docker, or display.
Black screen / ES-DE dead
sudo systemctl status arcade-kiosk
sudo systemctl restart unbind-fbcon
sudo systemctl restart arcade-kiosk
Controller silent
ls /dev/input/js*
groups arcade
# replug USB, then:
sudo systemctl restart arcade-kiosk
RomM / Syncthing down
cd /srv/apps
docker compose ps
docker compose logs
sudo systemctl restart playbox-stack
Game → black
- Try another core
- Check folder + extension
- PS1 needs matching
.cue + .bin
TV black bars: Picture Size → Screen Fit / Just Scan.
9. Admin commands
For the maintainer. No secrets.
# status
sudo systemctl status arcade-kiosk
docker ps
htop
df -h
# restart frontend
sudo systemctl restart arcade-kiosk
# restart docker stack
sudo systemctl restart playbox-stack
# logs
journalctl -u arcade-kiosk -f
journalctl -u playbox-stack -f
# reboot
sudo reboot
Hardware
- Dell Optiplex mini-PC class
- Intel i5-7500 / 8GB RAM
- ~225GB SSD
- Debian 13
Boot chain
unbind-fbcon → arcade-kiosk → playbox-stack
10. Quick quiz
Tap an answer. No grades mailed home.
Q1. Best non-terminal way to add ROMs?
Q2. Away from home — stable remote path?
Q3. Game running — back to menu?