Skip to content

player: 99.8196% -> 99.8207% (rev1 .sbss symbol pairing + typed PlayerStatus health clamp) - #44

Open
SirEnkido wants to merge 2 commits into
zcanann:mainfrom
SirEnkido:agent/player
Open

player: 99.8196% -> 99.8207% (rev1 .sbss symbol pairing + typed PlayerStatus health clamp)#44
SirEnkido wants to merge 2 commits into
zcanann:mainfrom
SirEnkido:agent/player

Conversation

@SirEnkido

Copy link
Copy Markdown

What changed

  • config/GSAE01_rev1/symbols.txt: pair four rev1 .sbss placeholder labels with the names player.c already declares (lbl_803DF0B0 -> lbl_803DE430, lbl_803DF0D8 -> lbl_803DE458, lbl_803DF0E4 -> lbl_803DE464, lbl_803DF130 -> lbl_803DE4B0). Addresses unchanged; only the names move so dtk/objdiff can pair the rev1 data with the source symbols. player .sbss 92.14% -> 100%, matched_data -> 100%.
  • src/dlls/objects/195_Player/player.c (player_SeqFn, seq flag 0x28): replace the hardcoded *(s8*)(*(int*)(h + 0x35c) + 1) / +0 accesses with typed PlayerState->playerStatus->maxHealth / ->health (layout already asserted: playerStatus at 0x35C, PlayerStatus { s8 health; s8 maxHealth; ... }), and swap the operand order of the pathBearingEyeY + worldPosY add. Unit fuzzy 99.8196% -> 99.8207%.

Evidence

  • Verified locally on GSAE01_rev1; CI will confirm v1.00.
  • timeout -k 15 900 ninja all_source progress build/GSAE01_rev1/report.json exit 0.
  • build/GSAE01_rev1/report.json unit main/dlls/objects/195_Player/player: fuzzy_match_percent 99.820656, matched_data_percent 100.0 (10168/10168 bytes), all data sections 100%, 212/233 functions matched.
  • Symbol pairing cross-checked: constant 0xC80 rev1->v1.00 delta matches every neighbouring gPlayer* symbol in config/GSAE01/symbols.txt vs config/GSAE01_rev1/symbols.txt; sizes/types identical; rev1 asm (player.s) accesses the four objects at the declared widths (stfs x2, sth, lbz/stb).

Notes for review

  • No inline pragma or asm; no hardcoded addresses or invented lbl_/fn_ names in source (the four lbl_803DE4xx names pre-exist in player.c and config/GSAE01/symbols.txt); nothing from orig/ or build/; the dtk .sdata2 residue line lbl_803E83C8 is not in any commit.
  • The rewritten block keeps the file's existing Allman brace style since player.c is not yet a cleaned TU.

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

🤖 Generated with Claude Code

SirEnkido and others added 2 commits August 16, 2026 07:50
…14% -> 100%, matched_data 100%)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… clamp in seq flag 0x28, pathBearingEyeY operand order)

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