Skip to content

application/vnd.1saves+cbor

The permanent reference for one entry in the IANA Media Types registry. Not yet filed.

FieldValue
Type nameapplication
Subtype namevnd.1saves+cbor
Required parametersN/A
Optional parametersN/A
Encoding considerationsbinary
Interoperability considerationsSee below
Published specificationhttps://docs.1retro.com/iana/media-type-1saves/
ApplicationsEmulators, cartridge and memory card readers, save managers, archives
Fragment identifierNone defined
Magic numberDA 31 53 41 56 at offset 0
File extension.1saves
Macintosh file type codeNone
Intended usageCOMMON
Restrictions on usageNone
Contact[email protected]
Author1Retro
Change controller1Retro

A portable container for retro console save data: one CBOR document holding a header and an array of typed parts, which may be one save, one memory card, one console’s storage, or a collection of those. The whole file is a single CBOR value under tag 827539798, so a generic CBOR reader can walk it without knowing this format.

  • Can it carry executable content? No. A bundle is data: no scripts, no references to external code, nothing a consumer is expected to run.
  • What can hostile input cost a decoder? Nothing it does not agree to spend. A part’s declared length, a compressed part’s expansion and the parts array’s count are all claims an attacker can inflate for free, and a consumer is never obliged to honour one: it may decline a part, decline to decompress it, or abandon a decompression that outgrows what it expected.
  • Does it provide integrity? Each part carries a SHA-256 of its payload, which detects corruption and substitution when a consumer verifies it before use.
  • Does it authenticate? No. A bundle carries no signature, so an attacker who rewrites a payload rewrites the digest beside it. Authenticity comes from the channel a bundle arrived over, never from the bundle.
  • Does it carry personal or identifying data? It can. source.fingerprint is a stable identifier for one device or install, and exists so two bundles can be traced to the same producer; a payload may hold a player’s name or a save’s timestamps. A producer that does not want a bundle to be linkable omits fingerprint, and a consumer publishing bundles treats both it and payload contents as identifying.
  • What does acting on one risk? Restoring writes to storage a console reads. This format validates no payload against any game’s expectations, so a malformed save may crash or corrupt the software that loads it.

The file is deterministically encoded CBOR per RFC 8949 section 4.2 with no exceptions, so two producers building the same bundle emit the same bytes. Integer map keys belong to the specification and text keys to producers, and a decoder round-trips both when it does not recognise them, which is what lets a later minor version add fields without breaking an older reader. A breaking change takes a new CBOR tag, which an old decoder rejects on the tag alone.

Universal Saves Format.