-
-
Notifications
You must be signed in to change notification settings - Fork 4
Preservation
github-actions[bot] edited this page Aug 11, 2026
·
2 revisions
This page defines what Firestaff preserves, what can be claimed, and what must remain outside the repository.
- Keep original archives, disc images, CUE/BIN sets, extracted files and saves unchanged in an external, user-owned collection.
- Record the source identity before decoding: game, platform, edition, language, container, byte length and SHA-256 where possible.
- Never mix files from different editions. A matching filename is not enough; the loader must accept the complete hash-verified set.
- Keep raw bytes and decoded interpretations separate. A decoder result is a hypothesis until its source span, format and round-trip or runtime check are recorded.
- Do not commit copyrighted game data, saves, emulator memory dumps or private capture material to Firestaff.
| Level | Meaning | Suitable claim |
|---|---|---|
| Source reference | ReDMCSB, CSBWin, skproject, disassembly or DMWeb identifies a rule | The rule is documented or source-anchored |
| Byte verified | Hash-identified bytes parse and satisfy bounds/shape checks | The format or record boundary is verified |
| Runtime verified | The real-data route reaches a named runtime state | That route works for the tested corpus |
| Pixel/capture paired | Original and Firestaff frames or traces are paired with provenance | The named visual/timing comparison is verified |
| Playable | Startup, input, world, save/load and runtime route work together on original data | The game/platform is playable in the stated scope |
A parser test, synthetic fixture or source citation alone is not a playable or pixel-parity claim.
- Repository: source code, tests, source-lock documents, hash manifests, non-proprietary metadata, capture schemas and summaries.
-
External original-data store: game archives, disc images, extracted
DATA/trees, original saves and emulator media. - External capture store: screenshots, frame dumps, audio captures, RAM traces and operator logs, each with a manifest and source identity.
- Fixtures: small deterministic inputs for parser, bounds and negative tests. Every fixture must be labelled fixture-only and must never be used as positive original-media evidence.
| Game | Preserve first | Current unresolved boundary |
|---|---|---|
| DM1 | PC34 GRAPHICS.DAT/DUNGEON.DAT, FM Towns Track 01, original saves and DOS captures |
C13-bearing save corpus and broader original-vs-Firestaff capture pairs |
| CSB | Per-media graphics/dungeon pairs, Utility/CSBWin saves, DSA-bearing saves and captures | Positive CSBWin DSA corpus and wider HUD/viewport/save parity |
| DM2 | Complete DOS/FM Towns/Amiga media sets, GDAT/DUNGEON pairs and SKSAVE media | Full SKSAVE ownership, live V1 runtime, real HUD/material and broader gameplay evidence |
| Nexus | Complete Saturn CUE/BIN, DM.BIN, LEV*.DGN, *.MNS, FACE.BIN, SLEV*.BIN, SNDLEV*.SAL/.MAP
|
Saturn runtime/frame capture, material semantics and SAL/MAP event playback |
| Theron | Matching US/JP Track 02 BIN/ISO, CUE, Track 19 media and SRM/SRAM artifacts | Full Track 02 handoff, save body semantics, bitmap/palette ownership and JP capture |
The detailed gaps are in missing functions by game and the synthetic-data inventory is in synthetic data by game.
The current cross-game source, format and real-media boundary is maintained in Preservation status 2026-08-11.
Every promoted original capture should record:
- game, platform, edition and language;
- original-data hash or external provenance identifier;
- emulator/app version, display scale, window size and palette mode;
- input sequence and timing origin;
- frame/audio/RAM artifact hashes;
- the exact claim being tested and its non-claims;
- whether the result is source-only, original-only, paired or runtime-only.
If any of these are unknown, keep the artifact as exploratory evidence and do not promote it to a parity receipt.
- Acquire and retain the original media in an external store.
- Hash and classify it without renaming bytes or rewriting containers.
- Extract only for analysis; retain the original container and extraction manifest.
- Write a narrow source/data receipt with exact offsets or source anchors.
- Add a focused test that fails closed for malformed, synthetic or mismatched input.
- Capture the real route when a visual or timing claim is made.
- Update the per-game status and release notes only for changes actually merged; do not imply that a receipt closes a larger open boundary.