Skip to content

Read long careers with national teams and flagged name pools; release 0.5.9 - #22

Merged
rhiever merged 1 commit into
mainfrom
worktree-issue-20-name-pools
Oct 10, 2026
Merged

rhiever merged 1 commit into
mainfrom
worktree-issue-20-name-pools

Conversation

@rhiever

@rhiever rhiever commented Oct 10, 2026

Copy link
Copy Markdown
Owner

A 26.3.2 career save from #20 failed 19 of its 27 readers, starting with "name pools not found". The save had 4 separate causes, and each fix is general rather than tuned to that save:

  • Name pools: The pool header stores nonzero values in a 4-byte field that most saves leave at 0. Those bytes are no longer compared. Every other header byte, each pool entry, and the single-candidate check still are.
  • Stage table: The table sat 34.2 MB from the end of game_db, past the 32 MiB search cap that earlier careers had already pushed up twice. The search now doubles to the start of the section, and the stage gates judge the rows it finds.
  • Tactics: The manager also runs national teams, and the tactics header counts their blocks. Validation now compares the header with the blocks found by structure and still requires at least the club's teams. Each club block ends at the next stored block, so a national team's block is never read as part of a club block. New anomaly non_club_blocks.
  • Generated people: Allocated players stored with object kind 3 (as about 96,000 ordinary players across the corpus are) and allocated staff with ability codes outside the observed set are read instead of dropped.

Prepares patch release 0.5.9. Refs #20.

Validation: the full suite passes (2,944 tests), plus the 43 corpus tests. Lint, formatting, type checks, the docs build, the distribution check, and a wheel smoke test pass. A sweep of all 48 local saves on main and this branch, 1 save at a time with the network denied and checksums compared before and after, shows the #20 save going from 8 to 26 passing readers. No reader result or row count changed on the other 47. Every remaining failure is also on main; the #20 save's finances failure is a separate club-span bug that gets its own PR.

The change contains no save files, fragments, screenshots, or real player data. No decompilation, leaked material, or unlicensed parser code was used.

🤖 Generated with Claude Code

… 0.5.9

A 26.3.2 career save failed 19 of 27 readers. Four general causes:

- The name-pool header stores nonzero values in a 4-byte field most saves
  leave at zero. Those bytes are no longer compared; every other header
  byte, each pool entry and the uniqueness check still are.
- The stage table sat 34.2 MB from the end of game_db, past the 32 MiB
  search cap that had already been raised as careers grew. The search now
  doubles to the start of the section, and the stage gates judge the rows.
- The manager also runs national teams, whose tactic blocks the header
  counts. Tactics validation compares the header with the blocks found by
  structure, and each club block ends at the next stored block.
- Generated players with object kind 3 and generated staff with ability
  codes outside the observed set are read instead of dropped.

Refs #20.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rhiever
rhiever merged commit aa7cdbe into main Oct 10, 2026
11 checks passed
@rhiever
rhiever deleted the worktree-issue-20-name-pools branch October 10, 2026 22:41
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