Skip to content

parser: experimental Update 8 (saveVersion 42) compatibility - #13

Merged
valentinps merged 1 commit into
mainfrom
save-compat
Jul 26, 2026
Merged

parser: experimental Update 8 (saveVersion 42) compatibility#13
valentinps merged 1 commit into
mainfrom
save-compat

Conversation

@valentinps

Copy link
Copy Markdown
Owner

Accept headerType 13 / saveVersion 42 saves behind version gates:

  • header: no saveName field before headerType 14
  • levels: no per-level saveVersion u32 before 1.0 (fall back to header)
  • actor/component headers: no flags u32 before 1.0
  • persistent level: trailing collectables list still present pre-1.0
  • InventoryItem property struct: pre-44 (level, path) itemState pair (new InvItemProps::LegacyRef variant)

Verified on a 6GB-body U8 save (5.4M objects, full payload+index build) and regression-tested against the 1.0/1.1 suite (all 65 tests pass). Gates marked COMPAT EXPERIMENT: thresholds separate 42 from 52+ correctly but exact introduction versions for 43-51 are unverified, and editor write paths still emit 1.0-format records (do not widen the accept list or enable splice edits on old saves without auditing those).

compat_probe example: header/decompress/body probe with hexdumps for diagnosing unsupported save layouts.

Accept headerType 13 / saveVersion 42 saves behind version gates:
- header: no saveName field before headerType 14
- levels: no per-level saveVersion u32 before 1.0 (fall back to header)
- actor/component headers: no flags u32 before 1.0
- persistent level: trailing collectables list still present pre-1.0
- InventoryItem property struct: pre-44 (level, path) itemState pair
  (new InvItemProps::LegacyRef variant)

Verified on a 6GB-body U8 save (5.4M objects, full payload+index build)
and regression-tested against the 1.0/1.1 suite (all 65 tests pass).
Gates marked COMPAT EXPERIMENT: thresholds separate 42 from 52+ correctly
but exact introduction versions for 43-51 are unverified, and editor
write paths still emit 1.0-format records (do not widen the accept list
or enable splice edits on old saves without auditing those).

compat_probe example: header/decompress/body probe with hexdumps for
diagnosing unsupported save layouts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@valentinps
valentinps merged commit e7762cc into main Jul 26, 2026
2 checks passed
@valentinps
valentinps deleted the save-compat branch July 28, 2026 19:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant