Skip to content

Decompile st_greenhill.cpp - #132

Open
2gifts wants to merge 2 commits into
doldecomp:mainfrom
2gifts:st-greenhill
Open

2gifts wants to merge 2 commits into
doldecomp:mainfrom
2gifts:st-greenhill

Conversation

@2gifts

@2gifts 2gifts commented Sep 26, 2026 •

Copy link
Copy Markdown

Matches the main unit of the Green Hill stage (stGreenhill): stage setup, the three breakable cliffs, the checkpoint marker, the Knuckles/Silver/Tails guests and the guest scheduler in update. All 57 functions and every section match.

The ground classes' bodies stay in assembly; their headers only declare what the stage uses. Function names follow st_greenhill.map. create__11stGreenhillFv is added to force_active.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MarioLover63

Copy link
Copy Markdown
Contributor

does not match the map file

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@2gifts

2gifts commented Sep 26, 2026

Copy link
Copy Markdown
Author

Renamed everything to match the map files, thanks.

@decomp-dev

decomp-dev Bot commented Oct 10, 2026

Copy link
Copy Markdown

Report for RSBE01_02 (b96b501 - dfb3025)

Total functions: 92524 (+1)
📉 Matched code: 1.23% (-0.05%, -7256 bytes)
📉 Linked code: 1.04% (-0.04%, -5912 bytes)
📉 Matched data: 14.61% (-0.00%, -156 bytes)
📉 Linked data: 14.90% (-0.04%, -2064 bytes)

✅ 61 new matches
Unit Item Bytes Before After
st_greenhill/mo_stage/st_greenhill/st_greenhill .data +1336 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stGreenhill::updateGuest(float) +864 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stGreenhill::createObjGuest() +808 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stGreenhill::createObjBreak() +568 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stGreenhill::createObj() +396 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stGreenhill::stGreenhill() +252 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stGreenhill::createObjMarker() +224 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stGreenhill::createObjBg() +200 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stGreenhill::update(float) +156 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stClassInfoImpl<35, stGreenhill>::~stClassInfoImpl() +116 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stGreenhill::~stGreenhill() +108 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill __sinit_\st_greenhill_cpp +100 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill .rodata +56 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stGreenhill::create() +52 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stClassInfoImpl<35, stGreenhill>::create() +52 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill Stage::getScrollDir(Vec3f*) +28 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill Stage::getBgmChangeID(unsigned long*, float*) +20 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill .bss +16 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill Stage::setBgmChange(float, bool, unsigned long) +16 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill Stage::getBgmPlayOffsetFrame() +12 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill Stage::getBgmVolume() +12 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill Stage::getPokeTrainerPositionZ() +12 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill stGreenhill::loading() +8 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill Ground::setStageData(void*) +8 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill grGreenhillBg::setPosGimmickWork(Vec3f*) +8 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill grGreenhillBg::setBreakInfo(unsigned char*) +8 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill grGreenhillBreak::setType(unsigned char) +8 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill grGreenhillBreak::setStateWork(unsigned char*) +8 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill grGreenhillBreak::setBreakInfo(unsigned char*) +8 0.00% 100.00%
st_greenhill/mo_stage/st_greenhill/st_greenhill grGreenhillCheck::setStateWork(unsigned char*) +8 0.00% 100.00%

...and 31 more new matches

🥀 82 broken matches
Unit Item Bytes Before After
st_tengan/mo_stage/st_tengan/gr_tengan_floor grTenganFloor::setMotion(unsigned char, bool, unsigned long, float*) -1096 100.00% 0.00%
sora_menu_challenger/mo_menu/sora_menu_challenger/mu_challenger_approach muChallengerApproachTask::processDefault() -952 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_ashiba grTenganAshiba::updateMove(float) -852 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_floor grTenganFloor::updateActive(float) -832 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_bg .data -792 100.00% 0.00%
sora_menu_challenger/mo_menu/sora_menu_challenger/mu_challenger_approach .data -720 100.00% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan stTengan::createObjFloor(int) -432 100.00% 0.00%
sora_menu_challenger/mo_menu/sora_menu_challenger/mu_challenger_approach muChallengerApproachTask::muChallengerApproachTask() -376 100.00% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan stTengan::createObjSkyLaser(int) -328 100.00% 0.00%
sora_menu_challenger/mo_menu/sora_menu_challenger/mu_challenger_approach muChallengerApproachTask::createData(gfArchive*) -312 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_bg grTenganBg::update(float) -264 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_floor grTenganFloor::create(int, const char*, const char*) -260 100.00% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan stTengan::createObjAshiba(int) -252 100.00% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan stTengan::eventRebuildStageUpdate() -252 100.00% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan stTengan::createObjBg(int) -220 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan grTengan::create(int, const char*, const char*) -212 100.00% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan stTengan::createObjEnkei(int) -208 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_bg grTenganBg::create(int, const char*, const char*) -208 100.00% 0.00%
main/sora/cm/cm_controller_menu_fixed fn_800A69AC -204 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_ashiba grTenganAshiba::create(int, const char*, const char*) -188 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_ashiba grTenganAshiba::grTenganAshiba(const char*) -188 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_ashiba grTenganAshiba::updateCallBack(float) -168 100.00% 0.00%
sora_menu_challenger/mo_menu/sora_menu_challenger/mu_challenger_approach muChallengerApproachTask::release() -152 100.00% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan stClassInfoImpl<21, stTengan>::~stClassInfoImpl() -116 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_floor grTenganFloor::update(float) -116 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_ashiba grTenganAshiba::update(float) -116 100.00% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan __sinit_\st_tengan_cpp -100 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan grTengan::setTgtNode(const char*) -92 100.00% 0.00%
sora_menu_challenger/mo_menu/sora_menu_challenger/mu_challenger_approach muChallengerApproachTask::~muChallengerApproachTask() -88 100.00% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan grTengan::~grTengan() -88 100.00% 0.00%

...and 52 more broken matches

📉 12 regressions in unmatched items
Unit Item Bytes Before After
st_tengan/mo_stage/st_tengan/st_tengan stTengan::createObj() -4235 74.37% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan .data -632 98.77% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_floor .data -489 90.04% 0.00%
st_tengan/mo_stage/st_tengan/gr_tengan_ashiba .data -476 88.97% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan stTengan::createObjDialga(int) -341 50.49% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan stTengan::~stTengan() -329 80.82% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan stTengan::updateEvent(float) -270 10.69% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan stTengan::stTengan() -254 50.08% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan .rodata -124 50.00% 0.00%
main/sora/cm/cm_controller_menu_fixed .data -46 83.46% 0.00%
st_tengan/mo_stage/st_tengan/st_tengan .data -13 0.64% 0.00%
main/sora/gf/gf_task_scheduler gfTaskScheduler::process(bool) -12 99.85% 97.81%

@mparisi20
mparisi20 self-requested a review October 10, 2026 19:20

@mparisi20 mparisi20 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs rebase for CI to work properly

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.

3 participants