Save sync support by platform¶
Save sync works per game: when a game is installed, its save is uploaded to RomM and pulled back before launch, so you can carry on across devices. Standard cartridge saves work automatically. A few consoles store saves differently β this page shows what syncs for each system today, and what's planned.
How reliable is this page?¶
Be aware of what this table is before you plan around it. Most of it is derived from libretro's documentation and from reading core source, not from watching each core write a save on a real device. A separate project, emu-atlas, is auditing the same ground with evidence grades per core; at the time of writing it has confirmed 17 of RetroDECK's 159 libretro cores, and none of the 22 standalone emulators.
Two things follow that matter to you:
- A β often means "not with the settings that ship", not "impossible". Several cores can write per-game saves if you change a core option β the rows below say which. Turning that on is not yet something the plugin does or detects for you.
- Rows are stated for each platform's default core. You can override the core per system and per game, and a
different core can behave differently. RetroArch settings such as
savefiles_in_content_diralso move saves out of where the plugin looks.
Where the audit has already corrected an earlier assumption, this page reflects the audit.
Categories¶
| Meaning | |
|---|---|
| β | Synced today. Your saves for this system carry across devices automatically. |
| π | Planned. This save type isn't synced yet, but it fits the model and is on the way in a future release. |
| β | Not synced yet. This system's default core writes a shared card (one file for many games), keeps saves outside the per-game save folder, or hasn't been pinned down yet β so it doesn't fit per-game sync today. Handled differently in a later release. |
| βͺ | No save data. This system's emulator has no in-game save to sync (you can still use save states locally). |
What syncs today β ¶
Standard per-game cartridge saves sync automatically. That covers the large majority of systems β Nintendo (NES, SNES, Game Boy / Color / Advance, N64, DS), Sega (Master System, Game Gear, Genesis / Mega Drive, Sega CD), PC Engine / TurboGrafx, WonderSwan, Atari Lynx, Virtual Boy, and more.
The systems whose default core has been watched writing a save on a real RetroDECK install are Game Boy / Color /
Advance, N64, Saturn, Neo Geo Pocket (Color) and PokΓ©mon Mini. The rest of the β
rows follow the same standard .srm
convention and are expected to behave identically, but haven't been observed one by one.
Coming soon π¶
Per-game saves for these systems fit the sync model and are planned for a future release:
| System | Notes |
|---|---|
| PlayStation | Memory-card saves. The cores write them per game, but under a name the plugin doesn't probe yet. |
| 3DO | The Opera core writes per-game NVRAM into its own opera/per_game/ subfolder, under a versioned name. |
3DO was listed as syncing here before β it wasn't
Until this revision, 3DO showed as β
on the assumption that the Opera core writes a plain <game>.srm into the
save folder. The core audit disproved that: Opera writes its NVRAM to opera/per_game/ with a version number in
the filename, and exposes no save RAM to RetroArch at all β so there was never a .srm for the plugin to find.
If you have 3DO games, your saves have not been backed up to RomM. Copy them off the device yourself until
this is supported.
A few less-common systems (some DOS, PICO-8, ST-V) may also gain support pending confirmation.
Not synced yet β¶
These systems' default cores write a shared card β a single file holding the saves for all your games β keep saves outside the per-game save folder, or haven't been pinned down yet. A shared card can't be split per game without risking other games' saves, so it doesn't fit per-game sync today. We're looking at safe ways to handle these in a future release.
| System | Why it doesn't sync today |
|---|---|
| Dreamcast | Flycast ships with Per-Game VMUs off, so every game shares vmu_save_A1.bin and its siblings in RetroDECK's system folder. The core can write per-game VMUs; the names it uses then aren't pinned down yet. |
| PlayStation 2 | The LRPS2 core ships with shared memory cards on (Mcd001.ps2 / Mcd002.ps2). With that option off it writes one <game>.ps2 card per game β which would fit per-game sync. |
| GameCube / Wii | The Dolphin core appears to keep saves under its own subtree rather than the per-game save folder. Not confirmed on-device yet. |
| Neo Geo CD | Ships writing one shared save. The core has a per-content mode; which one wins when loading isn't confirmed. |
| Nintendo 3DS | The Azahar core appears to use its own save subtree. Not confirmed on-device yet. |
| PSP | Where the PPSSPP core keeps its saves, and whether they are per game, hasn't been established. |
| Arcade (MAME) | NVRAM is stored separately by the emulator, not as a file named after your ROM. |
No save data βͺ¶
Many computer, arcade, and homebrew systems have no in-game battery save at all β there's simply nothing to sync (save states still work locally). See the full table for specifics.
Full platform list¶
Every platform (149)
Status of each platform's default emulator core. Some platforms offer alternative cores that may behave differently.
| Platform | Status | Notes |
|---|---|---|
amstradcpc |
β | Not synced |
apple2 |
β | Saves are stored separately by the emulator (MAME) |
apple2gs |
β | Saves are stored separately by the emulator (MAME) |
arcade |
β | Saves are stored separately by the emulator (MAME) |
arcadia |
β | Saves are stored separately by the emulator (MAME) |
astrocde |
β | Saves are stored separately by the emulator (MAME) |
atomiswave |
β | Shared VMU card (Flycast default; the core has a per-game mode) |
consolearcade |
β | Saves are stored separately by the emulator (MAME) |
cps |
β | Saves are stored separately by the emulator (MAME) |
cps1 |
β | Saves are stored separately by the emulator (MAME) |
cps2 |
β | Saves are stored separately by the emulator (MAME) |
cps3 |
β | Saves are stored separately by the emulator (MAME) |
crvision |
β | Saves are stored separately by the emulator (MAME) |
daphne |
β | Saves are stored separately by the emulator (MAME) |
doom |
β | Not synced |
dreamcast |
β | Shared VMU card (Flycast default; the core has a per-game mode) |
easyrpg |
β | Not synced |
fmtowns |
β | Saves are stored separately by the emulator (MAME) |
gamate |
β | Saves are stored separately by the emulator (MAME) |
gameandwatch |
β | Saves are stored separately by the emulator (MAME) |
gamecom |
β | Saves are stored separately by the emulator (MAME) |
gc |
β | Dolphin core's own save subtree β not confirmed on-device |
gmaster |
β | Saves are stored separately by the emulator (MAME) |
gx4000 |
β | Not synced |
laserdisc |
β | Saves are stored separately by the emulator (MAME) |
lcdgames |
β | Saves are stored separately by the emulator (MAME) |
mame |
β | Saves are stored separately by the emulator (MAME) |
mess |
β | Not synced |
model2 |
β | Saves are stored separately by the emulator (MAME) |
n3ds |
β | Azahar core's own save subtree β not confirmed on-device |
naomi |
β | Shared VMU card (Flycast default; the core has a per-game mode) |
naomi2 |
β | Shared VMU card (Flycast default; the core has a per-game mode) |
naomigd |
β | Shared VMU card (Flycast default; the core has a per-game mode) |
neogeocd |
β | Shared save (the core has a per-content mode) |
neogeocdjp |
β | Shared save (the core has a per-content mode) |
ps2 |
β | Shared memory card by default (LRPS2); per-game <game>.ps2 available as a core option |
psp |
β | Where the PPSSPP core keeps its saves is not established |
pv1000 |
β | Saves are stored separately by the emulator (MAME) |
scummvm |
β | Not synced |
scv |
β | Saves are stored separately by the emulator (MAME) |
supracan |
β | Saves are stored separately by the emulator (MAME) |
vsmile |
β | Saves are stored separately by the emulator (MAME) |
wii |
β | Dolphin core's own save subtree β not confirmed on-device |
x68000 |
β | Not synced |
3do |
π | Per-game NVRAM, but in the Opera core's own opera/per_game/ subfolder with a versioned name |
amiga1200 |
π | Planned |
amiga600 |
π | Planned |
atarijaguar |
π | Planned |
cdimono1 |
π | Under review |
cdtv |
π | Planned β pending platform mapping (#907) |
dos |
π | Planned |
pc |
π | Planned |
pico8 |
π | Planned |
psx |
π | Planned |
quake |
π | Planned |
saturnjp |
π | Planned |
stv |
π | Planned |
wasm4 |
π | Under review |
windows3x |
π | Planned |
windows9x |
π | Planned |
amiga |
β | Synced |
amigacd32 |
β | Synced |
atari2600 |
β | Synced |
c64 |
β | Synced |
famicom |
β | Synced |
fbneo |
β | Synced |
fds |
β | Synced |
gamegear |
β | Synced |
gb |
β | Synced |
gba |
β | Synced |
gbc |
β | Synced |
genesis |
β | Synced |
mark3 |
β | Synced |
mastersystem |
β | Synced |
megacd |
β | Synced |
megacdjp |
β | Synced |
megadrive |
β | Synced |
megadrivejp |
β | Synced |
megaduck |
β | Synced |
multivision |
β | Synced |
n64 |
β | Synced |
n64dd |
β | Synced |
nds |
β | Synced |
neogeo |
β | Synced |
nes |
β | Synced |
ngp |
β | Synced |
ngpc |
β | Synced |
pc88 |
β | Synced |
pcengine |
β | Synced |
pcenginecd |
β | Synced |
pcfx |
β | Synced |
plus4 |
β | Synced |
pokemini |
β | Synced |
satellaview |
β | Synced |
saturn |
β | Synced |
sega32x |
β | Synced |
sega32xjp |
β | Synced |
sega32xna |
β | Synced |
segacd |
β | Synced |
sfc |
β | Synced |
sg-1000 |
β | Synced |
sgb |
β | Synced |
snes |
β | Synced |
snesna |
β | Synced |
sufami |
β | Synced |
supergrafx |
β | Synced |
supervision |
β | Synced |
tg-cd |
β | Synced |
tg16 |
β | Synced |
tic80 |
β | Synced |
vic20 |
β | Synced |
virtualboy |
β | Synced |
wonderswan |
β | Synced |
wonderswancolor |
β | Synced |
arduboy |
βͺ | No save data |
atari5200 |
βͺ | No save data |
atari7800 |
βͺ | No save data |
atari800 |
βͺ | No save data |
atarilynx |
βͺ | No save data |
atarist |
βͺ | No save data |
atarixe |
βͺ | No save data |
bbcmicro |
βͺ | No save data |
chailove |
βͺ | No save data |
channelf |
βͺ | No save data |
colecovision |
βͺ | No save data |
fba |
βͺ | No save data |
intellivision |
βͺ | No save data |
j2me |
βͺ | No save data |
lowresnx |
βͺ | No save data |
lutro |
βͺ | No save data |
moto |
βͺ | No save data |
msx |
βͺ | No save data |
msx1 |
βͺ | No save data |
msx2 |
βͺ | No save data |
msxturbor |
βͺ | No save data |
odyssey2 |
βͺ | No save data |
palm |
βͺ | No save data |
pc98 |
βͺ | No save data |
ports |
βͺ | No save data |
spectravideo |
βͺ | No save data |
to8 |
βͺ | No save data |
uzebox |
βͺ | No save data |
vectrex |
βͺ | No save data |
videopac |
βͺ | No save data |
vircon32 |
βͺ | No save data |
x1 |
βͺ | No save data |
zmachine |
βͺ | No save data |
zx81 |
βͺ | No save data |
zxspectrum |
βͺ | No save data |
Coverage is reviewed against the emulator cores RetroDECK ships. Most rows still await on-device confirmation; see How reliable is this page? above. Last reviewed 2026-08-02, against the emu-atlas core audit as of 2026-07-24.