Adding ROMs
Where games and BIOS files go, supported systems
ROMs live on the ROMS partition (the larger of the two — formatted ext4 on Linux/macOS, accessible as a folder named roms/ from the device). The folder layout mirrors EmulationStation's system list — one folder per system.
Three ways to copy ROMs
1. Plug the SD into a PC
Mount the larger partition (label ROMS) and drop files into the per-system folders. Works from Linux/macOS natively. On Windows, Linux ext4 partitions need a driver like Linux File Systems for Windows by Paragon or WSL with --mount.
2. SSH / SCP from your computer
Faster than re-plugging the SD. See SSH access. Once connected:
scp ~/roms/snes/*.sfc root@<device-ip>:/storage/roms/snes/3. Samba (Windows-friendly)
Enable Samba in EmulationStation menu → System Settings → Network → Samba. Then on your computer:
- Windows: open Explorer, type
\\archr(or the IP). - macOS: Finder →
Cmd-K→smb://archr.local. - Linux: file manager → "Connect to server" →
smb://archr.local/roms.
The whole /storage/roms/ tree is shared. Drop files in.
Supported systems and folders
/storage/roms/
├── nes/ .nes .zip
├── snes/ .sfc .smc .zip
├── n64/ .z64 .v64 .n64 .zip
├── gb/ gbc/ gba/ .gb .gbc .gba .zip
├── nds/ .nds
├── megadrive/ .md .gen .smd .bin .zip
├── mastersystem/ .sms .zip
├── gamegear/ .gg .zip
├── pcengine/ .pce .zip
├── neogeo/ .neo .zip (BIOS in /storage/roms/bios)
├── psx/ .pbp .chd .iso .bin/.cue .ecm
├── psp/ .iso .cso .pbp
├── dreamcast/ .gdi .cdi .chd
├── saturn/ .chd .cue .iso (experimental on RK3326)
├── arcade/ .zip (MAME 2003+ romset)
├── fbneo/ .zip
├── atari2600/ atari5200/ atari7800/ .a26 .a52 .a78 .bin
├── lynx/ jaguar/ .lnx .jag
├── ws/ wsc/ .ws .wsc
├── pcfx/ ngp/
├── ports/ PortMaster .sh launchers — see /docs/portmaster
├── scummvm/ .scummvm short-cuts
├── dos/ .conf or .dosbox launchers
└── bios/ BIOS files for systems that need themEmulationStation rescans on next boot. To trigger a manual rescan: ES menu → Game Settings → Rescan ROMs.
BIOS files
Some emulators need BIOS dumps you provide yourself (legality is on you — Arch R does not ship BIOS files).
/storage/roms/bios/
├── scph5500.bin PSX (US)
├── scph5501.bin PSX (Japan)
├── scph5502.bin PSX (Europe)
├── PSP/ PSP — only if not using PPSSPP HLE
├── neogeo.zip Neo Geo (MAME romset; often part of arcade/)
├── lynxboot.img Atari Lynx
├── disksys.rom Famicom Disk System
├── gba_bios.bin GBA (mGBA HLE works without)
├── pcengine_cd.pce PC Engine CD (PCE-CD games)
├── saturn_bios.bin Saturn (Yabasanshiro)
└── dc/dc_boot.bin Dreamcast (Flycast)RetroArch tells you which BIOS is missing in the in-game menu (Quick Menu → Show in load core).
Compressed ROMs
Most cores accept .zip directly — the zlib-ng drop-in replacement that ArchR uses gives ~10–30 % faster decompression than plain zlib on the A35.
For PSX and Saturn, prefer .chd (Compressed Hunks of Data) — it gives smaller files than .bin/.cue with zero decode loss. Convert with chdman createcd -i game.cue -o game.chd.
For PSP, prefer .cso over .iso to halve disk usage with negligible CPU cost.
Sync ROMs between devices
The optional Syncthing service keeps a folder identical between your handheld and your PC over LAN/WiFi. Useful if you want save-states and ROMs mirrored automatically without re-mounting the SD.
Enable: ES menu → System Settings → Network → Syncthing. The web UI lives at http://archr.local:8384.
The service is paused automatically while you're playing a game so it never competes for CPU.
ROM scraping
EmulationStation includes Skyscraper preconfigured. ES menu → Game Settings → Scraper → Start Scraper. Pulls metadata from ScreenScraper / TheGamesDB / Mobygames.
Pro tip: scrape with the device on AC power and the screen off (you can SSH in, run pkill emulationstation && skyscraper -p <system> and let it churn for an hour).
Folder permissions / ownership
The ROMS partition is mounted with noatime. ROM files don't need a specific owner — emulators run with file-mode permissions, and ArchR doesn't enforce ownership on the ROMS partition.
If you ever delete the per-system folders by accident, they're regenerated on next boot from /storage/.config/system_directories.txt.