Allow committing save-file fixtures #277

Merged
jqueuniet merged 0 commits from refs/pull/277/head into main 2026-07-20 07:16:34 +02:00
jqueuniet commented 2026-07-20 06:55:03 +02:00 (Migrated from codeberg.org)

Loosens the fixtures stance so that DM2 save files are tracked, while the shipped copyrighted assets stay ignored.

Rationale

A DM2 save is a suppression/delta bitstream of mutable game state (champion stats, inventory, timers, per-tile object deltas). It references the shipped dungeon.dat/graphics.dat by type ID but does not embed them, so it is user-authored play state rather than a redistribution of Interplay's assets — a much weaker IP footing than the game data itself.

Policy (three tiers, in fixtures/README.md)

  • Never committed — shipped assets: graphics.dat, dungeon.dat, cinematics, executables.
  • Committed — derived song-golden .fp fingerprints (existing) + save files (new).
  • May be committedsynthetic/ non-derivative blobs (existing).

What's added (88 files, 4.3 MB)

Tier Files Provenance
dos-en/saves/ 10 Own-authored, owned DOS copy
mac-us/saves/ 14 Own-authored, owned Mac copy
dos-en-beta/DATA/SKSAVE* + Saves01–08/ 64 Leaked-Beta repackage chain (committed as-is for forensic value)

Safety

Within dos-en-beta/DATA/ only the SKSAVE* files are un-ignored — the copyrighted GRAPHICS.DAT/DUNGEON.DAT/GRAPHIC2.DAT/ANIMSCPT.DAT/VIEWS.DAT beside them stay ignored (verified via git check-ignore). git add -n fixtures/ yields save files only.

CI consequence

CI's cargo test --workspace now runs the save decode/round-trip tests that depend only on a save, where they previously skipped for want of fixtures. Tests that additionally need the still-uncommitted graphics.dat/dungeon.dat continue to skip.

Loosens the fixtures stance so that DM2 save files are tracked, while the shipped copyrighted assets stay ignored. ## Rationale A DM2 save is a suppression/delta bitstream of *mutable* game state (champion stats, inventory, timers, per-tile object deltas). It references the shipped `dungeon.dat`/`graphics.dat` by type ID but does **not** embed them, so it is user-authored play state rather than a redistribution of Interplay's assets — a much weaker IP footing than the game data itself. ## Policy (three tiers, in `fixtures/README.md`) - **Never committed** — shipped assets: `graphics.dat`, `dungeon.dat`, cinematics, executables. - **Committed** — derived song-golden `.fp` fingerprints (existing) **+ save files** (new). - **May be committed** — `synthetic/` non-derivative blobs (existing). ## What's added (88 files, 4.3 MB) | Tier | Files | Provenance | |---|---|---| | `dos-en/saves/` | 10 | Own-authored, owned DOS copy | | `mac-us/saves/` | 14 | Own-authored, owned Mac copy | | `dos-en-beta/DATA/SKSAVE*` + `Saves01–08/` | 64 | Leaked-Beta repackage chain (committed as-is for forensic value) | ## Safety Within `dos-en-beta/DATA/` only the `SKSAVE*` files are un-ignored — the copyrighted `GRAPHICS.DAT`/`DUNGEON.DAT`/`GRAPHIC2.DAT`/`ANIMSCPT.DAT`/`VIEWS.DAT` beside them stay ignored (verified via `git check-ignore`). `git add -n fixtures/` yields save files only. ## CI consequence CI's `cargo test --workspace` now runs the save decode/round-trip tests that depend only on a save, where they previously skipped for want of fixtures. Tests that additionally need the still-uncommitted `graphics.dat`/`dungeon.dat` continue to skip.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jqueuniet/dm2-tools!277
No description provided.