pub const PPU_SNAPSHOT_SLIM_FLAG: u8 = 0x80;Expand description
v2.3.3 — high bit of the version byte, marking a slim snapshot: every field except the 245,760-byte framebuffer.
Exists for the rewind ring, which snapshots on every frame inside the
frame budget and then XORs and LZ4-compresses the result. The framebuffer
is 94% of those bytes and the worst possible payload for that scheme — it
changes every frame, so the XOR never zeroes and the delta never
compresses. Measured, rewind roughly doubled the produce-interval p95
(31.17 ms against 17.12 ms with it off) and was the cause of a
user-visible judder report; see docs/performance.md v2.3.3 F3/F4.
Encoded as a flag on the version byte rather than a new version number so
the on-disk format is untouched: every .rns ever written has the high bit
clear and still parses on exactly the path it always did. Slim snapshots
are in-memory only and are never written to a file.
A slim blob restores every other field and leaves the framebuffer
untouched, so the caller is responsible for producing an image — see
Nes::rewind_step_back, which runs one frame to regenerate it.