Skip to content

Match d_a_obj_light - #1130

Open
LostGoron wants to merge 2 commits into
zeldaret:mainfrom
LostGoron:decompile-d_a_obj_light-fresh
Open

Match d_a_obj_light#1130
LostGoron wants to merge 2 commits into
zeldaret:mainfrom
LostGoron:decompile-d_a_obj_light-fresh

Conversation

@LostGoron

Copy link
Copy Markdown

47/47 functions. 100% (GZLE01).

LostGoron and others added 2 commits July 16, 2026 08:43
Ports the completed decompilation onto the current auto-generated actor
skeleton. Besides the actor TU, one shared function living in the DOL
static file (daObjLight::Act_c::set_light_dif_angle_FRRS in
d_com_static.cpp) had to be switched from BOOL to bool to match its
header declaration. Full GZLE01 build passes the hash check
(416 files OK) and objdiff reports 100% for all light units plus
d_com_static.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@LostGoron LostGoron mentioned this pull request Jul 19, 2026
@decomp-dev

decomp-dev Bot commented Jul 19, 2026

Copy link
Copy Markdown

Report for GZLJ01 (61a3a0a - 6f7a9fd)

📈 Matched code: 69.91% (+0.07%, +5428 bytes)
📈 Matched data: 88.26% (+0.03%, +718 bytes)

✅ 45 new matches
Unit Item Bytes Before After
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_mtx() +765 0.52% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_create() +613 0.65% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::create_heap() +560 0.71% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::control_light() +360 1.10% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::renew_angle() +316 1.25% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_fire(int) +308 1.28% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_draw() +292 1.35% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::exe_fire() +288 1.37% 100.00%
d_a_obj_light/d/actor/d_a_obj_light .data +246 24.20% 100.00%
d_a_obj_light/d/actor/d_a_obj_light .rodata +242 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::exe_event() +205 1.92% 100.00%
d_a_obj_light/d/actor/d_a_obj_light dCcD_Cyl::~dCcD_Cyl() +204 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_collision() +160 2.44% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_delete() +156 2.50% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::init_collision() +120 3.23% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::draw_fire() +101 3.85% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::control_treasure() +101 3.85% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_execute() +101 3.85% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_ShapeAttr::~cCcD_ShapeAttr() +92 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cM3dGCyl::~cM3dGCyl() +72 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cM3dGAab::~cM3dGAab() +72 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cXyz::~cXyz() +60 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::CrossAtTg(const cCcD_ShapeAttr&, cXyz*) const +56 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::CrossCo(const cCcD_ShapeAttr&, float*) const +56 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::delete_fire() +53 7.14% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::now_event(short) +41 9.09% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_event(short) +36 10.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::solidHeapCB(fopAc_ac_c*) +33 11.11% 100.00%
d_a_obj_light/d/actor/d_a_obj_light .bss +20 87.18% 100.00%
d_a_obj_light/d/actor/d_a_obj_light dCcD_Cyl::GetShapeAttr() +16 0.00% 100.00%

...and 15 more new matches


Report for D44J01 (61a3a0a - 6f7a9fd)

📈 Matched code: 64.00% (+0.05%, +3660 bytes)
📈 Matched data: 85.27% (+0.02%, +476 bytes)

✅ 37 new matches
Unit Item Bytes Before After
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_mtx() +765 0.52% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::control_light() +360 1.10% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::renew_angle() +316 1.25% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_fire(int) +308 1.28% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_draw() +292 1.35% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::exe_fire() +288 1.37% 100.00%
d_a_obj_light/d/actor/d_a_obj_light .data +246 24.20% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::exe_event() +205 1.92% 100.00%
d_a_obj_light/d/actor/d_a_obj_light dCcD_Cyl::~dCcD_Cyl() +204 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::init_collision() +120 3.23% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_execute() +101 3.85% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_ShapeAttr::~cCcD_ShapeAttr() +92 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cM3dGCyl::~cM3dGCyl() +72 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cM3dGAab::~cM3dGAab() +72 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cXyz::~cXyz() +60 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::CrossAtTg(const cCcD_ShapeAttr&, cXyz*) const +56 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::CrossCo(const cCcD_ShapeAttr&, float*) const +56 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::now_event(short) +41 9.09% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_event(short) +36 10.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::solidHeapCB(fopAc_ac_c*) +33 11.11% 100.00%
d_a_obj_light/d/actor/d_a_obj_light .bss +20 87.18% 100.00%
d_a_obj_light/d/actor/d_a_obj_light dCcD_Cyl::GetShapeAttr() +16 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_ShapeAttr::GetCoCP() +12 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_ShapeAttr::GetCoCP() const +12 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::GetCoCP() +8 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::GetCoCP() const +8 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::CrossAtTg(const cCcD_AabAttr&, cXyz*) const +8 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::CrossAtTg(const cCcD_PntAttr&, cXyz*) const +8 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::CrossCo(const cCcD_AabAttr&, float*) const +8 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::CrossCo(const cCcD_TriAttr&, float*) const +8 0.00% 100.00%

...and 7 more new matches

📈 8 improvements in unmatched items
Unit Item Bytes Before After
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_create() +612 0.65% 99.99%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::create_heap() +410 0.75% 77.20%
d_a_obj_light/d/actor/d_a_obj_light .rodata +255 0.00% 94.35%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_collision() +118 2.78% 84.28%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_delete() +115 2.86% 85.54%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::control_treasure() +100 3.85% 99.62%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::draw_fire() +75 3.85% 75.77%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::delete_fire() +28 9.09% 72.73%

Report for GZLP01 (61a3a0a - 6f7a9fd)

📈 Matched code: 69.86% (+0.07%, +5432 bytes)
📈 Matched data: 87.60% (+0.03%, +718 bytes)

✅ 45 new matches
Unit Item Bytes Before After
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_mtx() +765 0.52% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_create() +613 0.65% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::create_heap() +560 0.71% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::control_light() +360 1.10% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::renew_angle() +316 1.25% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_fire(int) +308 1.28% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_draw() +292 1.35% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::exe_fire() +288 1.37% 100.00%
d_a_obj_light/d/actor/d_a_obj_light .data +246 24.20% 100.00%
d_a_obj_light/d/actor/d_a_obj_light .rodata +242 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::exe_event() +205 1.92% 100.00%
d_a_obj_light/d/actor/d_a_obj_light dCcD_Cyl::~dCcD_Cyl() +204 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_collision() +165 2.38% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_delete() +156 2.50% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::init_collision() +120 3.23% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::draw_fire() +101 3.85% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::control_treasure() +101 3.85% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_execute() +101 3.85% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_ShapeAttr::~cCcD_ShapeAttr() +92 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cM3dGCyl::~cM3dGCyl() +72 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cM3dGAab::~cM3dGAab() +72 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cXyz::~cXyz() +60 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::CrossAtTg(const cCcD_ShapeAttr&, cXyz*) const +56 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::CrossCo(const cCcD_ShapeAttr&, float*) const +56 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::delete_fire() +53 7.14% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::now_event(short) +41 9.09% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_event(short) +36 10.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::solidHeapCB(fopAc_ac_c*) +33 11.11% 100.00%
d_a_obj_light/d/actor/d_a_obj_light .bss +20 87.18% 100.00%
d_a_obj_light/d/actor/d_a_obj_light dCcD_Cyl::GetShapeAttr() +16 0.00% 100.00%

...and 15 more new matches


Report for GZLE01 (61a3a0a - 6f7a9fd)

📈 Matched code: 71.71% (+0.07%, +5432 bytes)
📈 Linked code: 58.18% (+0.07%, +5580 bytes)
📈 Matched data: 88.82% (+0.03%, +718 bytes)
📈 Linked data: 48.46% (+0.03%, +718 bytes)

✅ 45 new matches
Unit Item Bytes Before After
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_mtx() +765 0.52% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_create() +613 0.65% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::create_heap() +560 0.71% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::control_light() +360 1.10% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::renew_angle() +316 1.25% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_fire(int) +308 1.28% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_draw() +292 1.35% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::exe_fire() +288 1.37% 100.00%
d_a_obj_light/d/actor/d_a_obj_light .data +246 24.20% 100.00%
d_a_obj_light/d/actor/d_a_obj_light .rodata +242 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::exe_event() +205 1.92% 100.00%
d_a_obj_light/d/actor/d_a_obj_light dCcD_Cyl::~dCcD_Cyl() +204 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_collision() +165 2.38% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_delete() +156 2.50% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::init_collision() +120 3.23% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::draw_fire() +101 3.85% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::control_treasure() +101 3.85% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::_execute() +101 3.85% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_ShapeAttr::~cCcD_ShapeAttr() +92 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cM3dGCyl::~cM3dGCyl() +72 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cM3dGAab::~cM3dGAab() +72 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cXyz::~cXyz() +60 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::CrossAtTg(const cCcD_ShapeAttr&, cXyz*) const +56 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light cCcD_CylAttr::CrossCo(const cCcD_ShapeAttr&, float*) const +56 0.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::delete_fire() +53 7.14% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::now_event(short) +41 9.09% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::set_event(short) +36 10.00% 100.00%
d_a_obj_light/d/actor/d_a_obj_light daObjLight::Act_c::solidHeapCB(fopAc_ac_c*) +33 11.11% 100.00%
d_a_obj_light/d/actor/d_a_obj_light .bss +20 87.18% 100.00%
d_a_obj_light/d/actor/d_a_obj_light dCcD_Cyl::GetShapeAttr() +16 0.00% 100.00%

...and 15 more new matches

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