Cloud sync
Syncthing, rclone, NFS — keep saves and ROMs in sync across devices
Three approaches to keeping your handheld's /storage in sync with another machine. Pick whichever fits your setup.
Syncthing (peer-to-peer)
Best when you have a PC or another handheld and want continuous, automatic sync without involving a cloud account.
Setup on the handheld
- ES → System Settings → Network → Syncthing → ON.
- Note the device IP (visible in System Information).
- Note the
rootpassword under Security (defaultarchr— change it).
Setup on your PC
Install Syncthing from your distro's package manager or syncthing.net.
Connect them
Browse to http://<handheld-ip>:8384 from your PC. Login: user root, password whatever you set.
In the handheld's web UI:
- Add Remote Device → paste the PC's Device ID (visible in your PC Syncthing's UI under Actions → Show ID). Same-LAN devices auto-discover, otherwise paste manually.
- Add Folder → label it (e.g.
roms), path/storage/roms. In the Sharing tab, tick the PC.
On the PC, accept the incoming device + folder. Pick a local folder to mirror to. Done — sync starts.
What to sync
| Folder | Content | Sync? |
|---|---|---|
/storage/roms | Your games | sometimes — large |
/storage/saves | RetroArch SRAM saves | yes — small, valuable |
/storage/states | RetroArch save-states | tricky — see below |
/storage/screenshots | Screenshots | yes |
/storage/.config | All app configs | usually no |
RetroArch save-states caveat: states are tied to the exact core build. If your PC RetroArch and the handheld run different libretro core versions, states can corrupt. Saves (SRAM) are core-version-agnostic, states aren't. Sync saves/ always; sync states/ only if you keep core versions identical.
ArchR has Syncthing paused during gameplay so it never competes with the emulator for CPU. It resumes on exit.
rclone (cloud storage)
For Google Drive / OneDrive / Dropbox / S3 / etc. ArchR ships rclone preconfigured with a wrapper at ES → Tools → Cloud Backup / Cloud Restore.
Setup
Enable SSH
Configure your cloud provider
ssh root@archr.local
rclone configFollow the prompts; refer to rclone provider docs for OAuth headless setup if needed.
Edit cloud_sync.conf
Default at /storage/.config/cloud_sync.conf. Most useful keys:
| Key | Default | Meaning |
|---|---|---|
BACKUPPATH | /storage/roms | what to back up |
RESTOREPATH | /storage/roms | where to restore (different from BACKUPPATH to test restore safely) |
BACKUPFOLDER | /storage/roms/backup | local backup files |
SYNCPATH | /GAMES | path on the cloud remote |
BACKUPMETHOD | sync | sync mirrors / copy adds without deleting |
RESTOREMETHOD | copy | copy preserves existing local / sync overwrites |
RCLONEOPTS | filters & verbosity | per rclone flags |
Run a backup
ES → Tools → Cloud Backup. Same menu has Cloud Restore.
Logs
tail -f /var/log/cloud_sync.logFilter rules
/storage/.config/cloud_sync-rules.txt controls what's included/excluded. The .defaults version next to it is the upstream template — copy keys from there if you want to restore defaults.
NFS (LAN file server)
If you have a NAS or a Linux PC running an NFS server, you can mount the NFS share over the games folder. ROMs live on the server; saves stay on the handheld.
Drop the mount file
/storage/.nfs-mountSingle line:
NFS_PATH=192.168.1.10:/srv/romsMount
ES → Tools → Mount NFS. The remote path is mounted at /storage/games-external and an overlay merge is created at /storage/roms — saves go to the local upper layer (/storage/games-internal), game reads come from the NFS share.
This is nice for big collections — store the 200 GB MAME romset on a NAS, have the handheld just see them on /storage/roms/arcade.
Caveats
- NFS over WiFi is sensitive to packet loss; expect occasional latency spikes when the WiFi signal dips.
- ROMs that need fast random reads (PSP ISO seek-heavy scenes) feel better when the file is local — copy your most-played titles into
/storage/games-internal/roms/to get the local-disk path of the overlay. - The mount drops on
power-offand reconnects on next boot if the file is still present.