Skip to content

ShadowUtil: preserve the shadow request position snapshot - #214

Closed
KakarottoCake wants to merge 2 commits into
doldecomp:mainfrom
KakarottoCake:decomp-shadowutil
Closed

KakarottoCake wants to merge 2 commits into
doldecomp:mainfrom
KakarottoCake:decomp-shadowutil

Conversation

@KakarottoCake

@KakarottoCake KakarottoCake commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Preserve the position snapshot in forceRequest's copied shadow request.

The class-scope and symbol-name changes were reverted in af94cd6 after review.
The display-list classes remain local to their original functions, with the original target symbol names.

The grey display-list blocks are an objdiff symbol-pairing issue.
Tested encounter/objdiff#411 at b20fe455 with the original source scopes and no symbol mappings: all 40 functions are compared, 30 match exactly, code progress is 32.67%, and fuzzy code is 99.25%.
The reporting fix is pending in objdiff; this SMS PR remains closed.

@decomp-dev

decomp-dev Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Report for GMSP01 (2df38b9 - b493961)

📈 Matched code: 42.11% (+0.12%, +4116 bytes)

✅ 12 new matches
Unit Item Bytes Before After
mario/MarioUtil/ShadowUtil TMBindShadowManager::TCylinder::makeDL() +2884 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup1::makeDL() +260 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup1::~TSetup1() +100 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TCylinder::~TCylinder() +100 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup2::~TSetup2() +100 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup3::~TSetup3() +100 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup4::~TSetup4() +100 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup5::~TSetup5() +100 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup2::makeDL() +96 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup4::makeDL() +96 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup5::makeDL() +96 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup3::makeDL() +84 0.00% 100.00%
📈 2 improvements in unmatched items
Unit Item Bytes Before After
mario/MarioUtil/ShadowUtil .data +150 17.39% 69.57%
mario/MarioUtil/ShadowUtil TMBindShadowManager::forceRequest(const TCircleShadowRequest&, unsigned long) +1 99.50% 99.70%

Report for GMSJ01 (2df38b9 - b493961)

📈 Matched code: 43.06% (+0.11%, +4116 bytes)
📈 Matched data: 65.30% (+0.03%, +192 bytes)

✅ 13 new matches
Unit Item Bytes Before After
mario/MarioUtil/ShadowUtil TMBindShadowManager::TCylinder::makeDL() +2884 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup1::makeDL() +260 0.00% 100.00%
mario/MarioUtil/ShadowUtil .data +154 20.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup1::~TSetup1() +100 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TCylinder::~TCylinder() +100 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup2::~TSetup2() +100 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup3::~TSetup3() +100 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup4::~TSetup4() +100 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup5::~TSetup5() +100 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup2::makeDL() +96 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup4::makeDL() +96 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup5::makeDL() +96 0.00% 100.00%
mario/MarioUtil/ShadowUtil TMBindShadowManager::TSetup3::makeDL() +84 0.00% 100.00%
📈 1 improvement in an unmatched item
Unit Item Bytes Before After
mario/MarioUtil/ShadowUtil TMBindShadowManager::forceRequest(const TCircleShadowRequest&, unsigned long) +1 99.50% 99.70%

@KakarottoCake KakarottoCake changed the title Restore forceRequest position copying in ShadowUtil Give ShadowUtil display lists stable symbol names Sep 30, 2026
@Mrkol

Mrkol commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator

no, this needs to be fixed in objdiff

@Mrkol Mrkol closed this Sep 30, 2026
@KakarottoCake

Copy link
Copy Markdown
Contributor Author

Reverted the class-scope and symbol-name changes in af94cd6. The classes remain local to their original functions. Tested encounter/objdiff#411 at b20fe455: all 40 ShadowUtil functions are compared, 30 match exactly, and code progress is 32.67% with no symbol mappings or source renaming. The objdiff-core tests pass. The reporting fix still needs to land in objdiff and reach decomp.dev.

@KakarottoCake KakarottoCake changed the title Give ShadowUtil display lists stable symbol names ShadowUtil: preserve the shadow request position snapshot Sep 30, 2026
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.

2 participants