docs/wiki-save-state-version-mismatch.md
Note: This file is deprecated and kept only for backwards compatibility. The canonical template now lives at
docs/wiki/save-state-version-mismatches.mdalongside the other wiki docs. When publishing to the Provenance-EMU/wiki repository, copy the contents from that canonical file tosave-states/version-mismatch.mdin the wiki repo and updateSUMMARY.mdaccordingly. The pathsave-states/version-mismatch.mdmatches theWikiConstants.Paths.saveStateVersionMismatchconstant used for in-app linking.
Provenance records the emulator core version that was used when each save state was created. When you update the app (or switch cores), the version string stored with a save state may no longer match the currently installed core.
A mismatch does not necessarily mean the save state is broken — many minor core updates are forwards/backwards compatible. Provenance warns you so you can decide whether to load it.
Provenance shows a confirmation dialog before loading:
Save State Version Mismatch
This save state was created with <Core Name> version X.Y.Z, but the currently installed version is A.B.C. The save state may be incompatible.
[Load Anyway] · [Cancel]
Not in general. The libretro API treats save states as opaque binary blobs — there is no standard version header or migration hook that Provenance can use to transform a save state from one core version to another.
Some cores (e.g. Mednafen-based cores) embed their own version information and handle migration internally, but this is transparent to Provenance and is not guaranteed across major version bumps.
A future enhancement (tracked in #2951)
would require a retro_get_state_version() API addition to libretro and
per-core migration callbacks.