Skip to content

Pass the resolved LINKDATA index to shader scan workers - #1027

Open
thehobbit85 wants to merge 1 commit into
seedds:mainfrom
thehobbit85:codex/linkdata-index-job
Open

thehobbit85 wants to merge 1 commit into
seedds:mainfrom
thehobbit85:codex/linkdata-index-job

Conversation

@thehobbit85

@thehobbit85 thehobbit85 commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

LINKDATA companion lookup

Main now detects a missing LINKDATA index when a worker looks it up again. This PR keeps the actual path chosen at planning time and names that precise missing companion if it disappears. The independent regression covers both DATA0.bin and LI_*.IDX.

Current head feb7b6c0cc3c391dad29189e3b69cac8e539d665. python3 -m unittest dm.tools.tests.test_docs dm.tools.tests.test_split_unreadable dm.tools.tests.test_split_nesting passed on this revision (23 tests). The feature sources, tests and documentation match the previously validated revision 6eb52c1df268 byte for byte.

This PR includes main 6136418bcd564f086cf57cb0a59e8f997d36445e. Main now detects a missing LINKDATA index when a worker looks it up again. This PR keeps the actual path chosen at planning time and names that precise missing companion if it disappears. The independent regression covers both DATA0.bin and LI_*.IDX.

Local validation on 6eb52c1df268. python3 -m unittest dm.tools.tests.test_docs dm.tools.tests.test_split_unreadable dm.tools.tests.test_split_nesting — 23 tests passed.

The exact baseline and PR both extracted the same ordered test payloads in both game formats. Removing the planned companion after dispatch made only the PR report the missing filename in both cases. Pinned Python lint reported zero new or stale findings.

scripts/regress.py check --no-smoke --games 010055D009F78000,0400A3A01EE4C000 stopped at discovery (exit 2). Three Houses and Pokopia use the two known LINKDATA companion naming schemes. Only Z-A was installed. No game comparison ran.

GitHub checks for this revision

Validation on the original proposal

  • The regression test covers Fire Emblem: Three Houses’ DATA1.bin / DATA0.bin and Pokémon Pokopia’s LD_C0_R.BIN / LI_C0_R.IDX. It checks missing indexes before planning, dispatch and payload order across two entry ranges, and index removal after planning. Both formats reproduced the missing-filename failure on the original code and passed with the change.
  • All 44 shader-split tests and 22 logic-op and shader-chain tests passed on an M2 Max. The native graphics fixtures passed 929 logic-operation checks.
  • Pinned Python lint reproduced three new diagnostics on main 03d92a9f. The generator fix cleared one. This change cleared the remaining two. The final result is 391 findings in the existing baseline, zero new and zero stale.
  • Clang-tidy 23.1.4 checked 217 translation units and matched all 271 baseline findings.
  • Three Houses and Pokopia are the two documented users of this archive reader. The game regression preflight found neither Mac build locally, so coverage of both formats comes from synthetic scan jobs. Full-game shader extraction and gameplay remain unverified.

@thehobbit85
thehobbit85 force-pushed the codex/linkdata-index-job branch 2 times, most recently from 6eb52c1 to feb7b6c Compare November 3, 2026 03:11
@github-actions github-actions Bot added packing Building an IPA or a Mac app: the NSP script, extraction, the shader split, the packers tools Tools and scripts (dm/tools, scripts) labels Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

packing Building an IPA or a Mac app: the NSP script, extraction, the shader split, the packers tools Tools and scripts (dm/tools, scripts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants