ARCH R

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-Ksmb://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 them

EmulationStation 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.

On this page