Skip to content

d_a_tag_kf1#699

Open
njulrik wants to merge 16 commits intozeldaret:mainfrom
njulrik:d_a_tag_kf1
Open

d_a_tag_kf1#699
njulrik wants to merge 16 commits intozeldaret:mainfrom
njulrik:d_a_tag_kf1

Conversation

@njulrik
Copy link
Contributor

@njulrik njulrik commented Mar 6, 2025

Equivalent, appears to only mismatch on data offset.

@njulrik njulrik mentioned this pull request Mar 14, 2025
@decomp-dev
Copy link

decomp-dev bot commented Dec 27, 2025

Report for GZLE01 (9cc61c4 - 102141b)

📈 Matched code: 57.00% (+0.06%, +4500 bytes)
📈 Matched data: 47.84% (+0.04%, +1014 bytes)

✅ 62 new matches
Unit Item Bytes Before After
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::_create() +472 0.84% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 .bss +395 9.52% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::privateCut() +376 1.05% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::partner_srch() +265 1.49% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::chkAttention(cXyz) +237 1.67% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 dCcD_Cyl::~dCcD_Cyl() +204 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::wait_action1(void*) +200 1.96% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::set_action(int (daTag_Kf1_c::*)(void*), void*) +169 2.33% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_proc() +144 2.70% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 searchActor_Kutani(void*, void*) +141 2.78% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_talkInit(int) +136 2.86% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::checkPartner() +133 2.94% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::eventOrder() +124 3.12% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::_execute() +117 3.33% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 dBgS_ObjAcch::~dBgS_ObjAcch() +112 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::createInit() +109 3.57% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::checkOrder() +105 3.70% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::next_msgStatus(unsigned long*) +93 4.17% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cCcD_ShapeAttr::~cCcD_ShapeAttr() +92 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::wait01() +89 4.35% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::bensyoInit() +81 4.76% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::_delete() +81 4.76% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::goto_nextStage() +73 5.26% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cM3dGCyl::~cM3dGCyl() +72 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cM3dGAab::~cM3dGAab() +72 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_HIO_c::~daTag_Kf1_HIO_c() +72 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_mesSet() +60 6.25% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 __sinit_d_a_tag_kf1_cpp +60 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cCcD_CylAttr::CrossAtTg(const cCcD_ShapeAttr&, cXyz*) const +56 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cCcD_CylAttr::CrossCo(const cCcD_ShapeAttr&, float*) const +56 0.00% 100.00%

...and 32 more new matches


Report for GZLJ01 (9cc61c4 - 102141b)

📈 Matched code: 55.32% (+0.06%, +4500 bytes)
📈 Matched data: 46.20% (+0.04%, +1014 bytes)

✅ 62 new matches
Unit Item Bytes Before After
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::_create() +472 0.84% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 .bss +395 9.52% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::privateCut() +376 1.05% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::partner_srch() +265 1.49% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::chkAttention(cXyz) +237 1.67% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 dCcD_Cyl::~dCcD_Cyl() +204 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::wait_action1(void*) +200 1.96% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::set_action(int (daTag_Kf1_c::*)(void*), void*) +169 2.33% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_proc() +144 2.70% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 searchActor_Kutani(void*, void*) +141 2.78% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_talkInit(int) +136 2.86% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::checkPartner() +133 2.94% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::eventOrder() +124 3.12% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::_execute() +117 3.33% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 dBgS_ObjAcch::~dBgS_ObjAcch() +112 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::createInit() +109 3.57% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::checkOrder() +105 3.70% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::next_msgStatus(unsigned long*) +93 4.17% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cCcD_ShapeAttr::~cCcD_ShapeAttr() +92 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::wait01() +89 4.35% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::bensyoInit() +81 4.76% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::_delete() +81 4.76% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::goto_nextStage() +73 5.26% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cM3dGCyl::~cM3dGCyl() +72 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cM3dGAab::~cM3dGAab() +72 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_HIO_c::~daTag_Kf1_HIO_c() +72 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_mesSet() +60 6.25% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 __sinit_d_a_tag_kf1_cpp +60 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cCcD_CylAttr::CrossAtTg(const cCcD_ShapeAttr&, cXyz*) const +56 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cCcD_CylAttr::CrossCo(const cCcD_ShapeAttr&, float*) const +56 0.00% 100.00%

...and 32 more new matches


Report for GZLP01 (9cc61c4 - 102141b)

📈 Matched code: 55.27% (+0.06%, +4500 bytes)
📈 Matched data: 46.41% (+0.04%, +1014 bytes)

✅ 62 new matches
Unit Item Bytes Before After
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::_create() +472 0.84% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 .bss +395 9.52% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::privateCut() +376 1.05% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::partner_srch() +265 1.49% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::chkAttention(cXyz) +237 1.67% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 dCcD_Cyl::~dCcD_Cyl() +204 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::wait_action1(void*) +200 1.96% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::set_action(int (daTag_Kf1_c::*)(void*), void*) +169 2.33% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_proc() +144 2.70% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 searchActor_Kutani(void*, void*) +141 2.78% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_talkInit(int) +136 2.86% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::checkPartner() +133 2.94% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::eventOrder() +124 3.12% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::_execute() +117 3.33% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 dBgS_ObjAcch::~dBgS_ObjAcch() +112 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::createInit() +109 3.57% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::checkOrder() +105 3.70% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::next_msgStatus(unsigned long*) +93 4.17% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cCcD_ShapeAttr::~cCcD_ShapeAttr() +92 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::wait01() +89 4.35% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::bensyoInit() +81 4.76% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::_delete() +81 4.76% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::goto_nextStage() +73 5.26% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cM3dGCyl::~cM3dGCyl() +72 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cM3dGAab::~cM3dGAab() +72 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_HIO_c::~daTag_Kf1_HIO_c() +72 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_mesSet() +60 6.25% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 __sinit_d_a_tag_kf1_cpp +60 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cCcD_CylAttr::CrossAtTg(const cCcD_ShapeAttr&, cXyz*) const +56 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cCcD_CylAttr::CrossCo(const cCcD_ShapeAttr&, float*) const +56 0.00% 100.00%

...and 32 more new matches


Report for D44J01 (9cc61c4 - 102141b)

📈 Matched code: 44.60% (+0.06%, +4356 bytes)
📈 Matched data: 41.27% (+0.04%, +1014 bytes)

✅ 61 new matches
Unit Item Bytes Before After
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::_create() +472 0.84% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 .bss +395 9.52% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::privateCut() +376 1.05% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::partner_srch() +265 1.49% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::chkAttention(cXyz) +237 1.67% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 dCcD_Cyl::~dCcD_Cyl() +204 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::wait_action1(void*) +200 1.96% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::set_action(int (daTag_Kf1_c::*)(void*), void*) +169 2.33% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_proc() +144 2.70% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_talkInit(int) +136 2.86% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::checkPartner() +133 2.94% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::eventOrder() +124 3.12% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::_execute() +117 3.33% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 dBgS_ObjAcch::~dBgS_ObjAcch() +112 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::createInit() +109 3.57% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::checkOrder() +105 3.70% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::next_msgStatus(unsigned long*) +93 4.17% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cCcD_ShapeAttr::~cCcD_ShapeAttr() +92 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::wait01() +89 4.35% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::bensyoInit() +81 4.76% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::_delete() +81 4.76% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::goto_nextStage() +73 5.26% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cM3dGCyl::~cM3dGCyl() +72 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cM3dGAab::~cM3dGAab() +72 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_HIO_c::~daTag_Kf1_HIO_c() +72 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_mesSet() +60 6.25% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 __sinit_d_a_tag_kf1_cpp +60 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cCcD_CylAttr::CrossAtTg(const cCcD_ShapeAttr&, cXyz*) const +56 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 cCcD_CylAttr::CrossCo(const cCcD_ShapeAttr&, float*) const +56 0.00% 100.00%
d_a_tag_kf1/d/actor/d_a_tag_kf1 daTag_Kf1_c::event_cntTsubo() +53 7.14% 100.00%

...and 31 more new matches

📈 1 improvement in unmatched functions
Unit Item Bytes Before After
d_a_tag_kf1/d/actor/d_a_tag_kf1 searchActor_Kutani(void*, void*) +140 2.78% 99.97%

@LagoLunatic LagoLunatic marked this pull request as ready for review January 6, 2026 17:50
@LagoLunatic LagoLunatic marked this pull request as draft January 6, 2026 18:00
Copy link
Collaborator

@LagoLunatic LagoLunatic left a comment

Choose a reason for hiding this comment

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

FYI, if you're having trouble with matching some specific parts you can ask for help in the discord. Partial review with some things I noticed:


/* 000010E0-00001100 .text daTag_Kf1_Delete__FP11daTag_Kf1_c */
static BOOL daTag_Kf1_Delete(daTag_Kf1_c* i_this) {
static bool daTag_Kf1_Delete(daTag_Kf1_c* i_this) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

These static funcs should always return BOOL not bool. You can get the clrlwi to appear/disappear by changing the return types of the inner functions (e.g. _delete) instead.

Comment on lines +28 to +30
// this line should def load from a_prm_tbl according to asm,
// but unlike the others the type is not float so do this gross cast instead
f0x10 = *(u8*)(void*)&a_prm_tbl[2];
Copy link
Collaborator

Choose a reason for hiding this comment

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

a_prm_tbl needs to be a struct, not an array of floats. You can define a custom struct here to match it.

Also, the name being a_prm_tbl$4033 tells you to put the static var inside of the function - $ means an in-function static.

Comment on lines +38 to +39
daObj::PrmAbstract<daTsubo::Act_c::Prm_e>(act, daTsubo::Act_c::PRM_TYPE_W,
daTsubo::Act_c::PRM_TYPE_S) == 0xe) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Use daTsubo::Act_c's prm_chk_type_kutani inline

void daTag_Kf1_c::setStt(signed char) {
char daTag_Kf1_c::setStt(signed char c) {
stt = c;
if (stt == 3) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

You can match the weird cmpwi here by doing a switch statement on stt that doesn't do anything.

For future reference, if you're having trouble with a function like this, you can ask for help in the discord by posting a scratch: https://github.com/zeldaret/tww/blob/main/docs/decompiling.md#asking-for-help-with-a-function-by-sharing-a-decompme-scratch

@njulrik njulrik marked this pull request as ready for review January 22, 2026 16:49
@njulrik njulrik changed the title d_a_tag_kf1 (WIP) d_a_tag_kf1 Jan 22, 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