Skip to content

overlay: one declaration per placement for three data labels - #184

Merged
mateuszklysz merged 1 commit into
mainfrom
fix/data-label-aliases
Oct 15, 2026
Merged

mateuszklysz merged 1 commit into
mainfrom
fix/data-label-aliases

Conversation

@mateuszklysz

@mateuszklysz mateuszklysz commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Before

After #182, src/overlays/l14/gameplay/entities/002fded0.c declared D_L14_00161FBC under the same name twice, once plain and once with sda. D_L14_00161FC0 also had two declarations: an _gp alias and a plain-named sda one. 001ff938.c and 00203b18.c used D_0015EE18_gp_gp for the label D_0015EE18_gp.

After

  • 002fded0.c: one sda declaration each for D_L14_00161FBC and D_L14_00161FC0, at the top. The *(float *)& casts around them are gone.
  • 001ff938.c, 00203b18.c: D_0015EE18_gp_gp is D_0015EE18_gp.

3 files, declarations and names only.

Verification

  • make elf: not run (no change to the boot ELF sources)
  • Overlays: each of the 3 files was built through the make overlays route (ninja c/<file>.c.o). Its .text, data and relocations (offset, type, symbol) match main. 00203b18.c also compiles with -DNON_MATCHING.
  • scripts/test_public_tools.py passes (99 tests OK); data-decls.py still reports 613

D_L14_00161FBC and D_L14_00161FC0 in 002fded0.c were declared twice,
once without and once with sda; keep one sda declaration each.
D_0015EE18_gp_gp is the label D_0015EE18_gp itself.
@mateuszklysz mateuszklysz added the bug Something isn't working label Oct 15, 2026 — with Claude
@mateuszklysz mateuszklysz self-assigned this Oct 15, 2026
@github-actions

Copy link
Copy Markdown

Decompilation progress

C_EXACT Change Matched bytes Functions C_FUZZY
All code 88.45 % — 3,136,836 / 3,546,268 B (—) 3,980 / 4,233 (—) 89.70 %
Boot executable 85.65 % — 302,216 / 352,840 B (—) 1,163 / 1,219 (—) 98.13 %
Game 84.51 % — 230,576 / 272,844 B (—) 866 / 905 (—) 98.40 %
SDK 89.55 % — 71,640 / 79,996 B (—) 297 / 314 (—) 97.21 %
Level overlays 88.76 % — 2,834,620 / 3,193,428 B (—) 2,817 / 3,014 (—) 88.76 %
Shared level code 80.64 % — 911,592 / 1,130,492 B (—) 1,442 / 1,583 (—) 80.64 %
Per-level code 93.22 % — 1,923,028 / 2,062,936 B (—) 1,375 / 1,431 (—) 93.22 %
Data in C Change Matched bytes
All data 32.31 % — 4,017,559 / 12,433,372 B (—)
Boot executable 2.16 % — 15,091 / 699,136 B (—)
Level overlays 34.11 % — 4,002,468 / 11,734,236 B (—)

No function changed its match state compared with main (ae03241).

Compared with main (ae03241). C_FUZZY uses main's last measurement.

@decomp-dev

decomp-dev Bot commented Oct 15, 2026

Copy link
Copy Markdown

Report for SCUS_971.99 (ae03241 - c11b384)

No changes

@mateuszklysz
mateuszklysz merged commit 6113df7 into main Oct 15, 2026
3 checks passed
@mateuszklysz
mateuszklysz deleted the fix/data-label-aliases branch October 15, 2026 02:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant