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?¶
The plugin no longer decides what a save is from a table like this one. It asks your machine, per game and per the emulator that will launch it, every time it syncs β so the answer follows your actual core choice and your actual core options rather than a row written in advance. This page is now background reading: it explains why a platform behaves the way it does, and the plugin's own answer is what governs.
Two things still matter when you read a row:
- 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 for you, but it does now notice: change the option and the next sync reads the new answer.
- 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 β which is exactly why the plugin asks per game. A save written beside the game
file (usually RetroArch's
savefiles_in_content_dir) keeps save sync off, and that is reported separately.
Most of this table is derived from libretro's documentation and from reading core source, not from watching each core write a save. Where the emu-atlas audit has corrected an earlier assumption, this page reflects the audit.
When save sync does nothing, and why¶
Where the plugin cannot carry a game's saves it now says so instead of quietly finding nothing. There are four reasons, and they mean different things:
- The emulator keeps one save card that all games share. Standalone PCSX2 is the common case. Syncing it per game would copy other games' progress onto this one's record, so the plugin leaves it alone.
- The save is written inside the game file itself. There is no separate file to carry.
- The emulator files saves under the game's own identity, which the plugin cannot read yet β in the file name for Dreamcast, in the folder name for GameCube. Dreamcast, GameCube, Nintendo 3DS and Wii U are here.
- What the emulator writes could not be established β either nobody has audited that core yet, or the folder is known and the names inside it are not.
None of these is an error, and none of them stops a game launching. If you change the emulator for a game, the answer is read again for the new one.
Categories¶
| Meaning | |
|---|---|
| β | Synced today. Your saves for this system carry across devices automatically. A few systems answer differently for a disc image than for a raw dump β where that is so, the note says which file gets you the per-game save. |
| π | 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), PC Engine / TurboGrafx, WonderSwan, Atari Lynx, Virtual Boy, and more.
Sega CD depends on your game file. A raw .bin dump saves per game and syncs; a .chd, .cue or .iso disc image
puts the save on a shared BRAM card that all your Sega CD games write to, which cannot be carried per game. Amiga is the
same story with different answers: a .chd CD32 image saves per game, while an .adf floppy writes into the disk image
itself, a .lha names a WHDSaves folder whose contents the core does not list, and an .hdf hard-disk image cannot
be established at all.
3DO and Neo Geo keep their saves in a subfolder of the emulator's own β saves/3do/opera/per_game and
saves/neogeo/fbneo β and the plugin now looks there, because it takes each game's save folder from the emulator rather
than working it out itself. That has not yet been observed on a device.
3DO saves were not backed up by earlier versions
3DO once showed as β
on the assumption that the Opera core writes a plain <game>.srm into the save folder. It
does not: Opera writes its NVRAM to opera/per_game/ with a version number in the filename, and earlier versions
of the plugin never looked there. If you played 3DO games with an earlier version, those saves were never uploaded
to RomM. This version looks where Opera writes them, which has not yet been observed on a device β check that
your 3DO saves reach RomM before relying on it.
The systems whose default core has been watched writing a save on a stock 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. |
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. |
| Amiga | PUAE keeps an .adf floppy's save inside the disk image itself, so there is no separate file to carry. A .lha names a WHDSaves folder whose contents the core does not list, and an .hdf is not answered at all. |
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 |
|---|---|---|
amiga |
β | An .adf floppy keeps the save inside the disk image; a .lha names a folder whose contents the core does not list; an .hdf is not answered |
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 |
amiga1200 |
π | Planned |
amiga600 |
π | Planned |
atarijaguar |
π | Planned |
cdimono1 |
π | Under review |
cdtv |
π | Planned β pending platform mapping (#1806) |
dos |
π | Planned |
pc |
π | Planned |
pico8 |
π | Planned |
psx |
π | Planned |
quake |
π | Planned |
saturnjp |
π | Planned |
stv |
π | Planned |
wasm4 |
π | Under review |
windows3x |
π | Planned |
windows9x |
π | Planned |
3do |
β | Per-game NVRAM in the Opera core's own opera/per_game/ subfolder β not yet observed on a device |
amigacd32 |
β | A .chd disc image saves per game; a raw .bin is not answered |
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 |
β | A raw .bin dump saves per game; a disc image uses a shared BRAM card |
megacdjp |
β | A raw .bin dump saves per game; a disc image uses a shared BRAM card |
megadrive |
β | Synced |
megadrivejp |
β | Synced |
megaduck |
β | Synced |
multivision |
β | Synced |
n64 |
β | Synced |
n64dd |
β | Synced |
nds |
β | Synced |
neogeo |
β | Per-game saves in the FinalBurn Neo core's own fbneo/ subfolder β not yet observed on a device |
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 |
β | A raw .bin dump saves per game; a disc image uses a shared BRAM card |
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.