Skip to content

Conversation

@andresj-sanchez
Copy link
Contributor

Decompilation Progress

  • ShadowManager::ShadowManager() 100%
  • ShadowManager::getShadowModelList(ShadowModel::ShadowKind) 100%
  • ShadowManager::regist(ShadowModel*) 100%
  • ShadowManager::draw(unsigned long, JGadget::TList<ShadowModel*, JGadget::TAllocator<ShadowModel*>>&) 99%
  • ShadowManager::calc() 99%
  • ShadowManager::viewCalc(unsigned long) 99%
  • ShadowManager::setDstAlpha() 100%
  • ShadowManager::~ShadowManager() 57%

Shoutouts

Huge thanks to:

  • @SwareJonge for helping get the ShadowManager::ShadowManager() constructor matched and for building out more of the std-list class.

  • @Cuyler36 for the help with ShadowManager::draw(). Your tip about dereferencing iterators with (*it) was the key to getting the other functions to match!.

  • Pikmin 2 Decomp and Super Mario Sunshine Decomp repos for their std-list implementation.

Notes

The functions at 99% should be correct, but don't achieve 100% assembly matching due to:

  • How iterators get stored on the stack.
  • Minor differences in register use and stack layout.

The function at 57% doesn't match due to:

  • The exact sequence for destroying TList members.

The main reasons are small quirks in our custom std-list implementation. While these functions aren't at 100% yet, this progress provides a solid foundation for the next person to finish the decompilation or perfect the std-list.

@decomp-dev
Copy link

decomp-dev bot commented Oct 12, 2025

Report for MarioClub_us (466fce5 - 16553b1)

📈 Matched code: 42.44% (+0.03%, +816 bytes)

✅ 4 new matches
Unit Function Bytes Before After
main/Osako/shadowMgr ShadowManager::regist(ShadowModel*) +320 0.00% 100.00%
main/Osako/shadowMgr ShadowManager::ShadowManager() +228 0.00% 100.00%
main/Osako/shadowMgr ShadowManager::getShadowModelList(ShadowModel::ShadowKind) +176 0.00% 100.00%
main/Osako/shadowMgr ShadowManager::setDstAlpha() +92 0.00% 100.00%
📈 4 improvements in unmatched functions
Unit Function Bytes Before After
main/Osako/shadowMgr ShadowManager::draw(unsigned long, JGadget::TList<ShadowModel*, JGadget::TAllocator<ShadowModel*>>&) +802 0.00% 99.78%
main/Osako/shadowMgr ShadowManager::~ShadowManager() +456 0.00% 57.60%
main/Osako/shadowMgr ShadowManager::calc() +339 0.00% 99.98%
main/Osako/shadowMgr ShadowManager::viewCalc(unsigned long) +299 0.00% 99.83%

@SwareJonge SwareJonge merged commit f87ed4d into doldecomp:main Oct 12, 2025
1 check passed
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