Skip to content

dat: counts for pointer-table roots - #3595

Merged
ribbanya merged 1 commit into
doldecomp:masterfrom
ribbanya:pr/dat
Sep 30, 2026
Merged

ribbanya merged 1 commit into
doldecomp:masterfrom
ribbanya:pr/dat

Conversation

@ribbanya

Copy link
Copy Markdown
Collaborator

Of the 30 roots the code loads into a T**, 28 are tables: null-terminated lists (map_plit in the stage archives, itemdata, the scene light and model lists) or fixed-count tables (the staff roll models, the name tables). The walk followed only their first entry: when the loader gives a root's type, dat_symbols.txt couldn't add a count.

  • dat_symbols.txt takes a count:N or count:* attribute, which also applies to roots whose loader gives their type: the walk lays out that many of the root's type, or as many as fit before the next symbol or pointer target (a null-terminated list's null entry included).
  • 17 table roots get counts.
  • The per-archive types hash includes the count.

Explained relocations 95.0% -> 95.9% (Gm 98.4%, Gr 95.3%, If 99.5%, Mn 99.3%); samples unchanged.

Of the 30 roots the code loads into a `T**`, 28 are tables: null-terminated
lists (map_plit in the stage archives, itemdata, the scene light and model
lists) or fixed-count tables (the staff roll models, the name tables). The
walk followed only their first entry: when the loader gives a root's type,
dat_symbols.txt couldn't add a count.

- dat_symbols.txt takes a `count:N` or `count:*` attribute, which also
  applies to roots whose loader gives their type: the walk lays out that many of the root's
  type, or as many as fit before the next symbol or pointer target (a
  null-terminated list's null entry included).
- 17 table roots get counts.
- The per-archive types hash includes the count.

Explained relocations 95.0% -> 95.9% (Gm 98.4%, Gr 95.3%, If 99.5%,
Mn 99.3%); samples unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ribbanya ribbanya added tooling ai-assisted Utilizes a LLM to do the heavy lifting portability Improves non-matching builds labels Sep 30, 2026
@ribbanya
ribbanya marked this pull request as ready for review September 30, 2026 23:10
@ribbanya
ribbanya enabled auto-merge (squash) September 30, 2026 23:10
@ribbanya
ribbanya merged commit 1b80711 into doldecomp:master Sep 30, 2026
10 checks passed
@ribbanya
ribbanya deleted the pr/dat branch September 30, 2026 23:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-assisted Utilizes a LLM to do the heavy lifting portability Improves non-matching builds tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant