Skip to content

Saves & States

Two different things, often confused:

  • Save files: the in-game save (.srm, .sav, .save, etc.). What the game writes when you use the in-game save feature. Works across emulator cores that share the format.
  • Save states: a full memory snapshot of the emulator at a moment in time. Emulator-specific. A SNES9x state won't load in bsnes.

Both are per-user per-ROM and stored under /romm/assets/<user>/<rom>/. They follow you across browsers and devices.

Uploading

You can upload save files for your own games (handy for importing from real hardware via Retrode/GB Operator or from another emulator). Same flow for states, with an optional screenshot attachment that's autogenerated when the state is created from in-browser play.

Selecting on launch

If a ROM has multiple saves or states, RomM presents a picker before the emulator loads.

In-emulator behaviour

In-game save/save-state/load-state actions are written straight back to the server, so there's no "forgot to upload" step.

Device sync

Saves and states can sync to/from registered devices (Grout on muOS, DeckRommSync on a Deck, etc.). Covered in depth in the ecosystem section:

Once a device is paired and sync is running, saves made on the device appear server-side within a couple of sync cycles (default: 15 minutes). Conflicts (same ROM saved on two devices between syncs) surface as two separate save entries, so pick which to keep.

Format/core compatibility

Saves

Save files are usually format-interchangeable across cores for the same platform but not always.

Platform Format Usually-compatible
NES .sav Yes, across FCEUmm/Nestopia
SNES .srm Yes, across SNES9x/bsnes
Genesis/Mega Drive .srm Yes
Game Boy/GBC/GBA .sav Yes, across Gambatte/mGBA
N64 .srm, .eep, .fla Yes but per-type: the right file must be uploaded
PSX .srm (memory card) Yes, across Mednafen/PCSX cores
Saturn/Dreamcast Varies Check core docs

If you're moving saves between the bundled EmulatorJS and a stand-alone emulator (RetroArch, Dolphin, PPSSPP), it usually works for mainline cores.

States

Save states are always core-specific. A SNES9x state will not load in bsnes. If you switch cores, your states become useless.

Practical advice: stick to one core per platform if you use states heavily, or use save files (which are interchangeable) as your primary persistence.

RetroAchievements and states

If you use RetroAchievements in hardcore mode, loading a save state disables achievement tracking for that session. This isn't enforced locally but the RA server will stop crediting achievements. Use save files (the in-game save) instead of states if you care.

Troubleshooting

  • Save uploaded but the game doesn't see it: wrong format for the core. Check the compatibility table above, then re-upload or switch cores.
  • State loads a corrupted frame: state was saved by a different build of the core. If the emulator bundle updated, old states may not load cleanly. Re-create or start a fresh save.
  • Save disappears after play: the emulator didn't flush on quit. Use the in-game save feature instead of just closing the browser.
  • Can't upload, "file too large": reverse proxy limit. Raise client_max_body_size/proxy-body-size (see Reverse Proxy).

More in Troubleshooting.