Skip to content

object: 94.09% -> 99.79% (rev1 symbols: name 9 stale fn_ stubs, fix Obj_UnregisterEffectBox split) - #41

Open
SirEnkido wants to merge 3 commits into
zcanann:mainfrom
SirEnkido:agent/object
Open

object: 94.09% -> 99.79% (rev1 symbols: name 9 stale fn_ stubs, fix Obj_UnregisterEffectBox split)#41
SirEnkido wants to merge 3 commits into
zcanann:mainfrom
SirEnkido:agent/object

Conversation

@SirEnkido

Copy link
Copy Markdown

What changed

config/GSAE01_rev1/symbols.txt only — no C source changes.

The GSAE01_rev1 symbol projection had left nine object.c functions as fn_<addr> stubs, so objdiff could not pair them with the source (which already implements them correctly) and they scored zero. This branch:

  • names the nine stubs from the canonical GSAE01 config after checking each rev1 asm body against the existing C: doNothing_afterRenderObject, doNothing_beforeRenderObject, Obj_ClearModelSlotIndex (stb -1 at 0xac), objIsFrozen (lbz 0xe5 & 1), Obj_UnregisterEffectBox, getTrickyObject / Obj_GetPlayerObject (objGetAllOfType(1)/(0)), Obj_FreeObject (gObjList / gObjPendingDefFreeList body)
  • fixes a mis-split: fn_8002B830 (0x104) + a stray 4-byte blr fn_8002B934 is one function, Obj_UnregisterEffectBox, size 0x108 — matching the GSAE01 layout
  • gives the object.c .data strings/blocks their GSAE01 names (gObjCameraSetupBlock, sObjSetupObjectLoadingLockedWarning, sObjDebugStrings, …). Only the rev1-only "FREED OBJECT %s" string keeps its lbl_ (no v1.00 counterpart).

Evidence

  • main/main/object on GSAE01_rev1: 94.09% → 99.79%, matched functions 51/61 → 58/60
  • The renames also fix reloc names at every DLL call site of Obj_FreeObject / Obj_GetPlayerObject etc.; global rev1 progress rose by exactly those 424 bytes / 7 functions with no regressions elsewhere
  • ninja all_source progress build/GSAE01_rev1/report.json exits 0; independently re-audited

Notes for review

  • Residual: Obj_FreeObject is 0x270 in rev1 vs 0x250 in v1.00 (rev1 adds an OSReport of the FREED OBJECT string), so the shared C body only fuzzy-matches there (94.9%). Kept as v1.00-shaped C per docs/version_progress.md.
  • Follow-up commit drops an accidentally-committed dtk-generated lbl_803E83C8 label (every rev1 build re-adds it; not part of the change).
  • Same lever likely applies to other units' rev1 configs — happy to sweep more if this shape is welcome.

Produced by Claude agents following AGENTS.md, operated by @SirEnkido.

🤖 Generated with Claude Code

SirEnkido and others added 3 commits August 15, 2026 18:01
… fn_ stubs from the GSAE01 config; Obj_UnregisterEffectBox is one 0x108 function, not 0x104 + a stray blr)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ith their canonical GSAE01 names (score-neutral; only the rev1-only 'FREED OBJECT %s' string keeps its lbl_)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…(build-time artifact, not part of the object.c rename)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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