Save Files vs Save States: Compatibility, Backup, and Migration

An in-game save and an emulator save state can both preserve progress, but they record different things. Treating them as interchangeable is one of the most common causes of lost or apparently missing progress after an update.

Native save files

A native save represents data that original game hardware would store in battery-backed RAM, flash memory, EEPROM, or another supported medium. Emulators often write it as a small file such as .sav or .srm. Because it follows the game’s own save mechanism, it is usually the better format for long-term migration between compatible emulators.

Save states

A save state captures a much broader snapshot: emulated CPU state, memory, audio, video, timing, and device details at a precise moment. The format is defined by the emulator, not by the game. A state may depend on a particular emulator version, core, settings profile, or patched image. It is convenient for short-term play but fragile as the only backup.

Why a state stops loading

  • The emulator or core changed its state format.
  • The state belongs to a different game revision, region, patch, or checksum.
  • The game file or state was renamed and automatic matching no longer works.
  • Firmware, mapper, timing, or hardware settings differ.
  • The file is truncated, zero bytes, quarantined, or stored in a protected directory.

Safe migration workflow

  1. Close the old emulator normally.
  2. Copy the entire save and state directories before making changes.
  3. Record the emulator name, exact version, core, game file name, and game checksum.
  4. Create a fresh native in-game save if the game allows it.
  5. Install or launch the new emulator separately; do not overwrite the only working setup.
  6. Copy one native save into the documented save directory and match the expected base file name.
  7. Load the game normally and use its own Continue or Load command.
  8. Only after native progress is verified should you experiment with state import.

Recover progress trapped in an old state

If a state opens only in the previous emulator version, load it there, reach the next normal in-game save point, create a native save, and close cleanly. Then migrate that native save. Keep the original state and old emulator until the new setup has been tested across several launches.

Names, paths, and extensions

Many emulators pair a save with a game image by base name. For example, renaming Example.gba without renaming its corresponding native save can make progress appear missing. Do not change extensions at random. Confirm the target emulator’s documented directory and naming convention. Libretro also documents how its configurable save and system directories work.

Backup strategy

Keep at least two copies on different storage devices. Preserve a dated native save, not only an automatically overwritten state slot. For important progress, add a small note containing the emulator version and game checksum. Test restoration periodically; an untested backup is only an assumption.

When to use each format

Use native saves as the durable record. Use save states for convenience, practice, debugging, or short-term suspension, while accepting their version dependence. Before emulator updates, make a native save and copy both sets of files.

For surrounding concepts, read What Is a ROM File?, BIOS and Firmware in Emulation, or the Emulator Setup Guides.