Skip to content

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.