Skip to content

DaObjVds retail - #1104

Open
Azurpourpre wants to merge 38 commits into
zeldaret:mainfrom
Azurpourpre:daObjVds
Open

DaObjVds retail#1104
Azurpourpre wants to merge 38 commits into
zeldaret:mainfrom
Azurpourpre:daObjVds

Conversation

@Azurpourpre

Copy link
Copy Markdown
Contributor

#371

Currently, TU is matching in objdiff but not after linking. There is also a regalloc issue in demo.

@decomp-dev

decomp-dev Bot commented Jul 5, 2026

Copy link
Copy Markdown

Report for GZLE01 (87b5061 - 7e4ff0d)

📈 Matched code: 71.11% (+0.07%, +5676 bytes)
📈 Linked code: 57.94% (+0.07%, +5828 bytes)
📈 Matched data: 87.94% (+0.02%, +527 bytes)
📈 Linked data: 48.38% (+0.02%, +527 bytes)

✅ 34 new matches
Unit Item Bytes Before After
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::create_heap() +1489 0.27% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_create() +457 0.87% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_common() +396 1.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds .rodata +261 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::~Act_c() +228 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_off_init() +216 1.82% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_init(int) +200 1.96% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_execute() +200 1.96% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::Event_exe() +189 2.08% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::SetLoopJointAnimation(J3DAnmTransformKey*, J3DAnmTransformKey*, float, float) +185 2.13% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_draw() +185 2.13% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::set_mtx() +181 2.17% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_off_main() +169 2.33% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::search_switchCB(fopAc_ac_c*) +152 2.56% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_main() +152 2.56% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds .data +149 43.61% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_delete() +144 2.70% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::create_point_light(int, cXyz*) +141 2.78% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::execute_point_light() +129 3.03% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_on_init() +120 3.23% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::set_first_process() +93 4.17% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds mDoExt_brkAnm::~mDoExt_brkAnm() +92 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::PlayLoopJointAnimation() +81 4.76% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::delete_point_light() +81 4.76% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds mDoExt_baseAnm::~mDoExt_baseAnm() +72 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds cXyz::~cXyz() +60 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds LIGHT_INFLUENCE::~LIGHT_INFLUENCE() +60 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::ds_search_switchCB(void*, void*) +41 9.09% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::solidHeapCB(fopAc_ac_c*) +33 11.11% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObj::PrmAbstract<int>(const fopAc_ac_c*, int, int) +28 0.00% 100.00%

...and 4 more new matches


Report for GZLJ01 (87b5061 - 7e4ff0d)

📈 Matched code: 69.31% (+0.07%, +5676 bytes)
📈 Linked code: 56.57% (+0.07%, +5828 bytes)
📈 Matched data: 87.36% (+0.02%, +527 bytes)
📈 Linked data: 47.13% (+0.02%, +527 bytes)

✅ 34 new matches
Unit Item Bytes Before After
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::create_heap() +1489 0.27% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_create() +457 0.87% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_common() +396 1.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds .rodata +261 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::~Act_c() +228 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_off_init() +216 1.82% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_init(int) +200 1.96% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_execute() +200 1.96% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::Event_exe() +189 2.08% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::SetLoopJointAnimation(J3DAnmTransformKey*, J3DAnmTransformKey*, float, float) +185 2.13% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_draw() +185 2.13% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::set_mtx() +181 2.17% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_off_main() +169 2.33% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::search_switchCB(fopAc_ac_c*) +152 2.56% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_main() +152 2.56% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds .data +149 43.61% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_delete() +144 2.70% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::create_point_light(int, cXyz*) +141 2.78% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::execute_point_light() +129 3.03% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_on_init() +120 3.23% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::set_first_process() +93 4.17% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds mDoExt_brkAnm::~mDoExt_brkAnm() +92 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::PlayLoopJointAnimation() +81 4.76% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::delete_point_light() +81 4.76% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds mDoExt_baseAnm::~mDoExt_baseAnm() +72 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds cXyz::~cXyz() +60 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds LIGHT_INFLUENCE::~LIGHT_INFLUENCE() +60 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::ds_search_switchCB(void*, void*) +41 9.09% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::solidHeapCB(fopAc_ac_c*) +33 11.11% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObj::PrmAbstract<int>(const fopAc_ac_c*, int, int) +28 0.00% 100.00%

...and 4 more new matches


Report for GZLP01 (87b5061 - 7e4ff0d)

📈 Matched code: 69.26% (+0.07%, +5676 bytes)
📈 Linked code: 56.06% (+0.07%, +5828 bytes)
📈 Matched data: 86.72% (+0.02%, +527 bytes)
📈 Linked data: 48.01% (+0.02%, +527 bytes)

✅ 34 new matches
Unit Item Bytes Before After
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::create_heap() +1489 0.27% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_create() +457 0.87% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_common() +396 1.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds .rodata +261 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::~Act_c() +228 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_off_init() +216 1.82% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_init(int) +200 1.96% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_execute() +200 1.96% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::Event_exe() +189 2.08% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::SetLoopJointAnimation(J3DAnmTransformKey*, J3DAnmTransformKey*, float, float) +185 2.13% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_draw() +185 2.13% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::set_mtx() +181 2.17% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_off_main() +169 2.33% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::search_switchCB(fopAc_ac_c*) +152 2.56% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_main() +152 2.56% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds .data +149 43.61% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_delete() +144 2.70% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::create_point_light(int, cXyz*) +141 2.78% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::execute_point_light() +129 3.03% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_on_init() +120 3.23% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::set_first_process() +93 4.17% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds mDoExt_brkAnm::~mDoExt_brkAnm() +92 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::PlayLoopJointAnimation() +81 4.76% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::delete_point_light() +81 4.76% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds mDoExt_baseAnm::~mDoExt_baseAnm() +72 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds cXyz::~cXyz() +60 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds LIGHT_INFLUENCE::~LIGHT_INFLUENCE() +60 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::ds_search_switchCB(void*, void*) +41 9.09% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::solidHeapCB(fopAc_ac_c*) +33 11.11% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObj::PrmAbstract<int>(const fopAc_ac_c*, int, int) +28 0.00% 100.00%

...and 4 more new matches


Report for D44J01 (87b5061 - 7e4ff0d)

📈 Matched code: 63.44% (+0.06%, +4808 bytes)
📈 Matched data: 84.37% (+0.02%, +527 bytes)

✅ 31 new matches
Unit Item Bytes Before After
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::create_heap() +1385 0.29% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_create() +457 0.87% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds .rodata +261 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::~Act_c() +228 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_off_init() +216 1.82% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_execute() +200 1.96% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::Event_exe() +189 2.08% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::SetLoopJointAnimation(J3DAnmTransformKey*, J3DAnmTransformKey*, float, float) +185 2.13% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_draw() +185 2.13% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::set_mtx() +181 2.17% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_off_main() +169 2.33% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds .data +158 40.30% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::search_switchCB(fopAc_ac_c*) +152 2.56% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::create_point_light(int, cXyz*) +141 2.78% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::_delete() +133 2.94% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::execute_point_light() +129 3.03% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_on_init() +120 3.23% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::set_first_process() +101 3.85% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds mDoExt_brkAnm::~mDoExt_brkAnm() +92 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::PlayLoopJointAnimation() +81 4.76% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::delete_point_light() +81 4.76% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds mDoExt_baseAnm::~mDoExt_baseAnm() +72 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds cXyz::~cXyz() +60 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds LIGHT_INFLUENCE::~LIGHT_INFLUENCE() +60 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::ds_search_switchCB(void*, void*) +41 9.09% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::solidHeapCB(fopAc_ac_c*) +33 11.11% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObj::PrmAbstract<int>(const fopAc_ac_c*, int, int) +28 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::Event_init() +16 20.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds cXyz::cXyz() +4 0.00% 100.00%
d_a_obj_Vds/d/actor/d_a_obj_Vds LIGHT_INFLUENCE::LIGHT_INFLUENCE() +4 0.00% 100.00%

...and 1 more new matches

📈 3 improvements in unmatched items
Unit Item Bytes Before After
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_common() +394 1.00% 99.55%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_init(int) +199 1.96% 99.78%
d_a_obj_Vds/d/actor/d_a_obj_Vds daObjVds::Act_c::process_main() +151 2.56% 99.72%

@WilliamArnett WilliamArnett left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hi Azur. This should cause the TU to match for retail builds.

void daObjVds::Act_c::search_switchCB(fopAc_ac_c*) {
/* Nonmatching */
void* daObjVds::Act_c::search_switchCB(fopAc_ac_c* i_actor) {
if(fopAc_IsActor(i_actor) && fopAcM_GetName(i_actor) == fpcNm_Obj_Swlight_e){

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
if(fopAc_IsActor(i_actor) && fopAcM_GetName(i_actor) == fpcNm_Obj_Swlight_e){
cXyz unused;
if(fopAc_IsActor(i_actor) && fopAcM_GetName(i_actor) == fpcNm_Obj_Swlight_e){

@Azurpourpre

Copy link
Copy Markdown
Contributor Author

Got it matching for retail (GZLE01, GZLJ01, GZLP01). D44J01 has a regalloc issue in daObjVds::Act_c::process_common

@Azurpourpre
Azurpourpre marked this pull request as ready for review July 8, 2026 15:02
@Azurpourpre Azurpourpre changed the title DaObjVds DaObjVds retail Jul 8, 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