In addition to supporting RP9 as the preferred application container format (.rp9 files), the RetroPlatform player software supports snapshot files to store saved session state snapshots.
An .rp9-snapshot file contains as much data as possible about the saved machine. This includes copies of disk image files (local host folders mounted in the guest are not included), system memory, a preview thumbnail of the saved system, a description and a timestamp.
A snapshot can be saved, run and deleted without referencing or affecting the content of the disk image files in the original RP9 package (unless the configuration referenced data stored in host folders). Because data is duplicated in each snapshot, snapshots are independent of each other. Changes are applied to the original RP9 file only after a snapshot is run and only if changes are explicitly committed when closing the session. If the session is closed without committing disk changes, both the snapshot used to start the session and the original RP9 file are left unchanged.
For each filename.rp9 file there can be multiple filename.number.rp9-snapshot files. For example:
- Asteroid Invader II (Acme Games, 1986, Amiga).rp9
- Asteroid Invader II (Acme Games, 1986, Amiga).1.rp9-snapshot
- Asteroid Invader II (Acme Games, 1986, Amiga).2.rp9-snapshot
There is no dependency between snapshots. The only dependency is between a snapshot and the corresponding RP9 file, which must exist and have the same root name. The numbering of snapshot files does not need to be sequential (snapshot files may be deleted in any order). The player can sort snapshots by their internal timestamp. If moving or copying snapshots for preservation purposes, it is important to keep together the .rp9-snapshot file(s) with the corresponding .rp9 file.
Unlike RP9 files, snapshot files contain plugin-specific session data, therefore cross-engine portability is not to be expected.