Skip to content

d_a_obj_msdan_sub2 - 100% matching for GZLJ01, GZLE01 and GZLP01 - #1094

Open
samkleespies wants to merge 1 commit into
zeldaret:mainfrom
samkleespies:d_a_obj_msdan_sub2
Open

d_a_obj_msdan_sub2 - 100% matching for GZLJ01, GZLE01 and GZLP01#1094
samkleespies wants to merge 1 commit into
zeldaret:mainfrom
samkleespies:d_a_obj_msdan_sub2

Conversation

@samkleespies

Copy link
Copy Markdown

Decompiles d_a_obj_msdan_sub2 (WindFall Island staircase / movable stair sub-object) to 100% matching for the three retail regions GZLJ01, GZLE01 and GZLP01.

  • All 9 functions byte-identical (verified via dtk shasum -c against retail rel sha 78b670a8).
  • Act_c derives from dBgS_MoveBgActor; implements CreateHeap/Create/Mthd_Create/Delete/Mthd_Delete/set_mtx/init_mtx/Execute/Draw.
  • Uses the MoveBGCreate / MoveBGDelete idiom, fopAcM_isSwitch + PrmAbstract parameter access, and the switch-stair oscillation logic in Execute.

@decomp-dev

decomp-dev Bot commented Jul 1, 2026

Copy link
Copy Markdown

Report for GZLE01 (873bb82 - c06087c)

📈 Matched code: 70.26% (+0.03%, +2384 bytes)
📈 Linked code: 57.29% (+0.03%, +2592 bytes)
📈 Matched data: 87.65% (+0.01%, +327 bytes)
📈 Linked data: 48.21% (+0.01%, +327 bytes)

✅ 13 new matches
Unit Item Bytes Before After
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Execute(float(**)[3][4]) +880 0.45% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Create() +436 0.91% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Mthd_Create() +365 1.09% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::CreateHeap() +176 2.22% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 .rodata +159 0.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Draw() +156 2.50% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::set_mtx() +124 3.12% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::init_mtx() +109 3.57% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Mthd_Delete() +73 5.26% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 .bss +48 0.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObj::PrmAbstract<daObjMsdanSub2::Act_c::Prm_e>(const fopAc_ac_c*, daObjMsdanSub2::Act_c::Prm_e, daObjMsdanSub2::Act_c::Prm_e) +28 0.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Delete() +4 50.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 .data +1 99.33% 100.00%

Report for GZLJ01 (873bb82 - c06087c)

📈 Matched code: 68.48% (+0.03%, +2384 bytes)
📈 Linked code: 55.93% (+0.03%, +2592 bytes)
📈 Matched data: 87.11% (+0.01%, +327 bytes)
📈 Linked data: 46.95% (+0.01%, +327 bytes)

✅ 13 new matches
Unit Item Bytes Before After
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Execute(float(**)[3][4]) +880 0.45% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Create() +436 0.91% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Mthd_Create() +365 1.09% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::CreateHeap() +176 2.22% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 .rodata +159 0.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Draw() +156 2.50% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::set_mtx() +124 3.12% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::init_mtx() +109 3.57% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Mthd_Delete() +73 5.26% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 .bss +48 0.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObj::PrmAbstract<daObjMsdanSub2::Act_c::Prm_e>(const fopAc_ac_c*, daObjMsdanSub2::Act_c::Prm_e, daObjMsdanSub2::Act_c::Prm_e) +28 0.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Delete() +4 50.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 .data +1 99.33% 100.00%

Report for GZLP01 (873bb82 - c06087c)

📈 Matched code: 68.43% (+0.03%, +2384 bytes)
📈 Linked code: 55.41% (+0.03%, +2592 bytes)
📈 Matched data: 86.44% (+0.01%, +327 bytes)
📈 Linked data: 47.83% (+0.01%, +327 bytes)

✅ 13 new matches
Unit Item Bytes Before After
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Execute(float(**)[3][4]) +880 0.45% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Create() +436 0.91% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Mthd_Create() +365 1.09% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::CreateHeap() +176 2.22% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 .rodata +159 0.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Draw() +156 2.50% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::set_mtx() +124 3.12% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::init_mtx() +109 3.57% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Mthd_Delete() +73 5.26% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 .bss +48 0.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObj::PrmAbstract<daObjMsdanSub2::Act_c::Prm_e>(const fopAc_ac_c*, daObjMsdanSub2::Act_c::Prm_e, daObjMsdanSub2::Act_c::Prm_e) +28 0.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Delete() +4 50.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 .data +1 99.33% 100.00%

Report for D44J01 (873bb82 - c06087c)

📈 Matched code: 62.64% (+0.03%, +2392 bytes)
📈 Matched data: 84.13% (+0.01%, +327 bytes)

✅ 13 new matches
Unit Item Bytes Before After
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Execute(float(**)[3][4]) +880 0.45% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Create() +436 0.91% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Mthd_Create() +368 1.08% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::CreateHeap() +176 2.22% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 .rodata +159 0.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Draw() +156 2.50% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::set_mtx() +124 3.12% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::init_mtx() +109 3.57% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Mthd_Delete() +76 5.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 .bss +48 0.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObj::PrmAbstract<daObjMsdanSub2::Act_c::Prm_e>(const fopAc_ac_c*, daObjMsdanSub2::Act_c::Prm_e, daObjMsdanSub2::Act_c::Prm_e) +28 0.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 daObjMsdanSub2::Act_c::Delete() +4 50.00% 100.00%
d_a_obj_msdan_sub2/d/actor/d_a_obj_msdan_sub2 .data +1 99.33% 100.00%

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