Begin decompiling of ZLSL / ZSRS (#107)

* feat: add vtables

* fix: compilation issues

* fix: actorderived1 data

* fix: link

* feat: more delink

* feat: add MORE functions

* feat: decompile functions

* feat: advance

* feat: improve decompiling

* style: improve style

* feat: update

* feat: update

* feat: update

* feat: add some matching bytes pausing switching to another actor temporarly

* feat: add .data for jp version

* refactor: reorder fonctions

* feat: update symbols

* feat: fix eur build

* feat: update Actor_Derived1 symbols

* refactor: cleanup

* refactor: move UnkAngleStruct

* feat: update jp symbols (Yanis)
This commit is contained in:
Alessevan
2026-08-02 08:49:14 -04:00
committed by GitHub
parent f90c7cd531
commit 418954b3cd
40 changed files with 2245 additions and 416 deletions
+11 -11
View File
@@ -14,7 +14,7 @@ void Actor_Derived1::func_ov000_020a8ae0(fx32 param1) {
this->mVel.y = posY;
}
Actor_Derived1::Actor_Derived1(ModelRender *param1, unk32 param2) :
Actor_Derived1::Actor_Derived1(ModelRender *param1, Actor_Derived1_94_0C *param2) :
mUnk_094(param2),
mUnk_0A4(param1),
mUnk_0B0(0),
@@ -31,7 +31,7 @@ Actor_Derived1::Actor_Derived1(ModelRender *param1, unk32 param2) :
mUnk_0DC(0x2AAB),
mUnk_0DE(0xEAAB),
mUnk_0E0(0x1555),
mUnk_0E4(0),
mUnk_0E4(NULL),
mUnk_0E8(0),
mUnk_0EA(0),
mUnk_104(this->mUnk_34->size),
@@ -127,11 +127,11 @@ void Actor_Derived1::vfunc_B0() {
}
}
unk32 Actor_Derived1::vfunc_88() {
bool Actor_Derived1::vfunc_88() {
return 1;
}
unk32 Actor_Derived1::vfunc_8C() {
bool Actor_Derived1::vfunc_8C() {
return 1;
}
@@ -157,23 +157,23 @@ bool Actor_Derived1::vfunc_64() {
return GET_FLAG(this->mFlags, ActorFlag_Interacting);
}
void Actor_Derived1::func_ov000_020a8ff4() {}
bool Actor_Derived1::func_ov000_020a8ff4(VecFx32 *param1) {}
void Actor_Derived1::vfunc_6C() {}
void Actor_Derived1::vfunc_68() {
UNSET_FLAG(this->mFlags, ActorFlag_Interacting);
this->func_ov000_020a9200();
this->vfunc_Ac();
this->vfunc_AC();
this->mUnk_0B0 &= ~0x01;
this->mUnk_0B0 &= ~0x10;
}
unk32 Actor_Derived1::vfunc_7C() {
unk32 Actor_Derived1::vfunc_7C(unk32 param1) {
return 1;
}
unk32 Actor_Derived1::vfunc_80() {
unk32 Actor_Derived1::vfunc_80(unk32 param1, unk32 param2) {
return -1;
}
@@ -203,9 +203,9 @@ void Actor_Derived1::vfunc_70() {
void Actor_Derived1::vfunc_74() {}
void Actor_Derived1::vfunc_78() {}
void Actor_Derived1::func_ov000_020a9248() {}
bool Actor_Derived1::func_ov000_020a9248(unk32 param1) {}
void Actor_Derived1::vfunc_5C() {}
void Actor_Derived1::vfunc_98(unk32 param1) {}
void Actor_Derived1::vfunc_98(u32 param1) {}
void Actor_Derived1::func_ov000_020a94b0() {}
void Actor_Derived1::vfunc_9C() {}
@@ -214,7 +214,7 @@ unk32 Actor_Derived1::vfunc_A0() {
return 1;
}
void Actor_Derived1::vfunc_Ac() {}
void Actor_Derived1::vfunc_AC() {}
void Actor_Derived1::func_ov000_020a95d8() {}
void Actor_Derived1::vfunc_A4() {}
+2 -1
View File
@@ -13,10 +13,11 @@
extern "C" {
void func_ov000_020977e4();
void func_ov021_020f8818();
void func_ov031_020ea100();
void func_ov071_0215e8d4();
}
extern "C" void func_ov031_020ea100();
struct UnkStruct_ov000_020ab1ac {
/* 00 */ u32 mUnk_00;
/* 04 */ u32 mUnk_04;
@@ -7,7 +7,7 @@ struct UnkFuncStruct1 {
extern "C" void func_01ffb714(VecFx32 *, VecFx32 *, void *);
extern "C" u16 func_01ffbbe0(fx32 x, fx32 z);
extern "C" void func_01ff930c(s16 *, unk16, unk32);
extern "C" unk32 func_01ff930c(s16 *, unk16, unk32);
extern "C" unk32 func_01ff9258(int, int);
extern "C" fx32 func_02017f54(s16 *pAngle, UnkFuncStruct1);
+32 -3
View File
@@ -7,6 +7,38 @@
#include "Unknown/UnkStruct_027e0cec.hpp"
#include "Unknown/UnkStruct_027e0d34.hpp"
static PTMF<ActorRupee> data_ov031_02113588[0xD] = {
ActorRupee::func_ov031_020e91a8, // ActorRupeeState_0
ActorRupee::func_ov031_020e9254, // ActorRupeeState_1
ActorRupee::func_ov031_020e9310, // ActorRupeeState_2
ActorRupee::func_ov031_020e942c, // ActorRupeeState_3
ActorRupee::func_ov031_020e9434, // ActorRupeeState_4
ActorRupee::func_ov031_020e951c, // ActorRupeeState_5
ActorRupee::func_ov031_020e9450, // ActorRupeeState_6
ActorRupee::func_ov031_020e95ac, // ActorRupeeState_7
ActorRupee::func_ov031_020e95c0, // ActorRupeeState_8
ActorRupee::func_ov031_020e9624, // ActorRupeeState_9
ActorRupee::func_ov031_020e96bc, // ActorRupeeState_10
ActorRupee::func_ov031_020e9740, // ActorRupeeState_11
ActorRupee::func_ov031_020e98c4, // ActorRupeeState_12
};
static PTMF<ActorRupee> data_ov031_02113520[0xD] = {
ActorRupee::func_ov031_020e9108, // ActorRupeeState_0
ActorRupee::func_ov031_020e9234, // ActorRupeeState_1
ActorRupee::func_ov031_020e92e0, // ActorRupeeState_2
ActorRupee::func_ov031_020e9428, // ActorRupeeState_3
ActorRupee::func_ov031_020e9430, // ActorRupeeState_4
ActorRupee::func_ov031_020e94d4, // ActorRupeeState_5
ActorRupee::func_ov031_020e9438, // ActorRupeeState_6
ActorRupee::func_ov031_020e9598, // ActorRupeeState_7
ActorRupee::func_ov031_020e95b0, // ActorRupeeState_8
ActorRupee::func_ov031_020e9610, // ActorRupeeState_9
ActorRupee::func_ov031_020e9638, // ActorRupeeState_10
ActorRupee::func_ov031_020e970c, // ActorRupeeState_11
ActorRupee::func_ov031_020e9838, // ActorRupeeState_12
};
extern "C" void func_01ffedac(u16 *, VecFx32 *);
extern "C" void func_01fff05c(u32 *, UnkStruct_027e0cd8_0C_Base *, VecFx32 *);
extern "C" unk32 func_02017158();
@@ -520,8 +552,6 @@ void ActorRupee::func_ov031_020e98c4() {
this->SetState(ActorRupeeState_1);
}
extern PTMF<ActorRupee> data_ov031_02113520[13];
void ActorRupee::SetState(ActorState state) {
this->mState = state;
this->mUnk_52 = -1;
@@ -532,7 +562,6 @@ void ActorRupee::SetState(ActorState state) {
extern "C" void func_01fff17c(unk16 *, UnkStruct_027e0ce0 *, unk32);
extern "C" void func_02018114(unk16 *, unk32);
extern PTMF<ActorRupee> data_ov031_02113588[13];
// non-matching
void ActorRupee::vfunc_20() {
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -56,7 +56,7 @@ void ActorUnkFTRN::func_ov040_02125dc0(void) {}
void ActorUnkFTRN::func_ov040_02125f70(void) {}
void ActorUnkFTRN::func_ov040_0212602c(void) {}
void ActorUnkFTRN::func_ov040_02126090(void) {}
void ActorUnkFTRN::func_ov040_021260dc(void) {}
void ActorUnkFTRN::func_ov040_021260dc(unk32 param1) {}
void ActorUnkFTRN::func_ov040_021260fc(void) {}
void ActorUnkFTRN::func_ov040_02126144(void) {}
void ActorUnkFTRN::func_ov040_02126214(void) {}
+2 -1
View File
@@ -12,7 +12,8 @@ Actor *ActorProfileUnkRPMT::Create() {
ActorProfileUnkRPMT::ActorProfileUnkRPMT() :
ActorProfile(ActorId_RPMT) {}
ActorUnkRPMT::ActorUnkRPMT() {}
ActorUnkRPMT::ActorUnkRPMT() :
mUnk_A4(false) {}
void ActorUnkRPMT::func_ov041_0212a848(void) {}
void ActorUnkRPMT::func_ov041_0212a850(void) {}