From a8df7ed940d8a9838ba88acc2fe22852ea10d432 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 18 Jul 2025 02:16:26 +0200 Subject: [PATCH 01/36] bmg header improvements --- include/Message/BMG.hpp | 71 +++++++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 31 deletions(-) diff --git a/include/Message/BMG.hpp b/include/Message/BMG.hpp index ac0c183f..b582f028 100644 --- a/include/Message/BMG.hpp +++ b/include/Message/BMG.hpp @@ -67,7 +67,7 @@ typedef enum BMGFileIndex { struct SectionBase { /* 00 */ u32 tag; // "INF1", "DAT1", ... - /* 04 */ u32 size; // the size of the section + /* 04 */ u32 size; // the size of the section, aligned to 32 /* 08 */ }; @@ -81,7 +81,7 @@ struct BMGHeader { }; struct EntryINF1 { - /* 00 */ u32 offset; // relative to the end of the DAT1 header + /* 00 */ u32 offset; // relative to the end of the DAT1 header (where actual strings are in DAT1) /* 04 */ u8 mUnk_04; // flags/attributes? (+0x04 to +0x06) /* 05 */ u8 mUnk_05; /* 06 */ u8 mUnk_06; @@ -100,60 +100,69 @@ struct SectionINF1 { /* 14 */ }; -enum InstrType { - /* 1 */ FLW1_TYPE_SHOW_MSG = 1, - /* 2 */ FLW1_TYPE_BRANCH = 2, - /* 3 */ FLW1_TYPE_EVENT = 3, +enum NodeType { + /* 1 */ NODE_TYPE_MSG = 1, + /* 2 */ NODE_TYPE_BRANCH = 2, + /* 3 */ NODE_TYPE_EVENT = 3, /* 4 */ }; -struct InstrShowMsg { +struct NodeMsg { + /* 00 (type) */ /* 01 */ u8 bmgFileIndex; // index into sBMGFiles - /* 02 */ u16 msgIndex; // index of INF1 entry - /* 04 */ s16 nextIndex; // index of FLW1 entry, 0xFFFF stops the conversation - /* 06 */ s16 nextBMGFileIndex; // index into sBMGFiles + /* 02 */ u16 infIndex; // index of INF1 entry + /* 04 */ u16 nextFlwIndex; // index of FLW1 entry, 0xFFFF stops the conversation + /* 06 */ u16 unused_0x6; /* 08 */ }; -struct InstrBranch { - /* 01 */ u8 mUnk_01; - /* 02 */ u16 funcIndex; // index of the query function to run - /* 04 */ u16 funcArg; // the argument to use in the function - /* 06 */ u16 flwEntry; // the index of the second section table to be used next in the conversation. +struct NodeBranch { + /* 00 (type) */ + /* 01 */ u8 numQueryResults; + /* 02 */ u16 queryIndex; // index of the query function to run + /* 04 */ u16 queryParams; // the argument to use in the function + /* 06 */ u16 nextNodeTableBaseIdx; // the index of the second section table to be used next in the conversation. /* 08 */ }; -struct InstrEvent { - /* 01 */ u8 funcIndex; // index of the query function to run - /* 02 */ u16 flwEntry; // the index of the second section table to be used next in the conversation. - /* 04 */ u32 funcArg; // the argument to use in the function +struct NodeEvent { + /* 00 (type) */ + /* 01 */ u8 eventIndex; // index of the query function to run + /* 02 */ u16 nextNodeTableIndex; // the index of the second section table to be used next in the conversation. + /* 04 */ u32 eventParams; // the argument to use in the function /* 08 */ }; -struct FLW1Instr { - /* 00 */ u8 type; // see InstrType +struct FLW1Node { + /* 00 */ u8 type; // see NodeType /* 01 */ union { - InstrShowMsg showMsg; - InstrBranch branch; - InstrEvent event; + NodeMsg showMsg; + NodeBranch branch; + NodeEvent event; }; - /* 09 */ + /* 08 */ }; -struct SectionFLW1 { +struct FLW1Header { /* 00 */ SectionBase base; - /* 04 */ u16 numInstructions; + /* 04 */ u16 numNodes; /* 08 */ u16 numLabels; - /* 0c */ u32 mUnk_0c; // always zero? - /* 10 */ FLW1Instr *instructions; - /* 14 */ s16 *flwEntries; + /* 0c */ u32 padding_0xC; + /* 10 */ +}; + +struct SectionFLW1 { + /* 00 */ FLW1Header header; + /* 10 */ FLW1Node *nodes; + /* 14 */ u16 *flwEntries; /* 18 */ s8 *bmgFileIndices; /* 1c */ }; struct EntryFLI1 { /* 00 */ u32 msgFlowID; - /* 04 */ u32 msgFlowNodeIndex; + /* 04 */ u16 msgFlowNodeIndex; + /* 06 */ u16 padding_0x6; /* 08 */ }; From f8d55215b8270e0759644c25b9aa3b42d949e84d Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 18 Jul 2025 02:16:38 +0200 Subject: [PATCH 02/36] match stuff --- config/eur/arm9/symbols.txt | 10 +- config/usa/arm9/symbols.txt | 10 +- src/Main/Message/BmgRelatedFunctions.cpp | 245 +++++++++++++++++------ src/Main/Unknown/UnkStruct_02038aa0.cpp | 3 +- 4 files changed, 199 insertions(+), 69 deletions(-) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 4be3fe36..b75bbc81 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1394,7 +1394,7 @@ func_0202d140 kind:function(thumb,size=0x24) addr:0x0202d140 func_0202d164 kind:function(thumb,size=0x60) addr:0x0202d164 func_0202d1c4 kind:function(thumb,size=0x58) addr:0x0202d1c4 func_0202d21c kind:function(thumb,size=0x20) addr:0x0202d21c -func_0202d23c kind:function(thumb,size=0x180) addr:0x0202d23c +_ZN19UnkStruct_astruct_313func_0202d23cEiPjiijPiii kind:function(thumb,size=0x180) addr:0x0202d23c _Z13func_0202d3bciPjPciibii kind:function(thumb,size=0xb8) addr:0x0202d3bc func_0202d474 kind:function(thumb,size=0xdc) addr:0x0202d474 _Z13func_0202d550iPjPciii kind:function(thumb,size=0x1c) addr:0x0202d550 @@ -2186,18 +2186,18 @@ func_02041bcc kind:function(thumb,size=0x4c) addr:0x02041bcc func_02041c18 kind:function(thumb,size=0x14) addr:0x02041c18 func_02041c2c kind:function(thumb,size=0x64) addr:0x02041c2c func_02041c90 kind:function(thumb,size=0x18) addr:0x02041c90 -func_02041ca8 kind:function(thumb,size=0x14) addr:0x02041ca8 +_ZN19UnkStruct_astruct_3C1Ev kind:function(thumb,size=0x14) addr:0x02041ca8 func_02041cbc kind:function(thumb,size=0xd0) addr:0x02041cbc func_02041d8c kind:function(thumb,size=0x50) addr:0x02041d8c func_02041ddc kind:function(thumb,size=0x2a) addr:0x02041ddc func_02041e08 kind:function(thumb,size=0x2c) addr:0x02041e08 func_02041e34 kind:function(thumb,size=0x48) addr:0x02041e34 -func_02041e7c kind:function(thumb,size=0x2a) addr:0x02041e7c -func_02041ea8 kind:function(thumb,size=0x26) addr:0x02041ea8 +_ZN19UnkStruct_astruct_313func_02041e7cEPc kind:function(thumb,size=0x2a) addr:0x02041e7c +_ZN19UnkStruct_astruct_313func_02041ea8Ev kind:function(thumb,size=0x26) addr:0x02041ea8 func_02041ed0 kind:function(thumb,size=0x98) addr:0x02041ed0 func_02041f68 kind:function(thumb,size=0x2e) addr:0x02041f68 func_02041f98 kind:function(thumb,size=0xa) addr:0x02041f98 -func_02041fa4 kind:function(thumb,size=0xa) addr:0x02041fa4 +_ZN19UnkStruct_astruct_313func_02041fa4EPvj kind:function(thumb,size=0xa) addr:0x02041fa4 func_02041fb0 kind:function(thumb,size=0x3a) addr:0x02041fb0 func_02041fec kind:function(thumb,size=0x38) addr:0x02041fec func_02042024 kind:function(thumb,size=0x1a) addr:0x02042024 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 14c1bb5a..677aa5ba 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1394,7 +1394,7 @@ func_0202d140 kind:function(thumb,size=0x24) addr:0x0202d128 func_0202d164 kind:function(thumb,size=0x74) addr:0x0202d14c func_0202d1c4 kind:function(thumb,size=0x58) addr:0x0202d1c0 func_0202d21c kind:function(thumb,size=0x20) addr:0x0202d218 -func_0202d23c kind:function(thumb,size=0x180) addr:0x0202d238 +_ZN19UnkStruct_astruct_313func_0202d23cEiPjiijPiii kind:function(thumb,size=0x180) addr:0x0202d238 _Z13func_0202d3bciPjPciibii kind:function(thumb,size=0xb8) addr:0x0202d3b8 func_0202d474 kind:function(thumb,size=0xdc) addr:0x0202d470 _Z13func_0202d550iPjPciii kind:function(thumb,size=0x1c) addr:0x0202d54c @@ -2186,18 +2186,18 @@ func_02041bcc kind:function(thumb,size=0x4c) addr:0x02041b88 func_02041c18 kind:function(thumb,size=0x14) addr:0x02041bd4 func_02041c2c kind:function(thumb,size=0x64) addr:0x02041be8 func_02041c90 kind:function(thumb,size=0x18) addr:0x02041c4c -func_02041ca8 kind:function(thumb,size=0x14) addr:0x02041c64 +_ZN19UnkStruct_astruct_3C1Ev kind:function(thumb,size=0x14) addr:0x02041c64 func_02041cbc kind:function(thumb,size=0xd0) addr:0x02041c78 func_02041d8c kind:function(thumb,size=0x50) addr:0x02041d48 func_02041ddc kind:function(thumb,size=0x2a) addr:0x02041d98 func_02041e08 kind:function(thumb,size=0x2c) addr:0x02041dc4 func_02041e34 kind:function(thumb,size=0x48) addr:0x02041df0 -func_02041e7c kind:function(thumb,size=0x2a) addr:0x02041e38 -func_02041ea8 kind:function(thumb,size=0x26) addr:0x02041e64 +_ZN19UnkStruct_astruct_313func_02041e7cEPc kind:function(thumb,size=0x2a) addr:0x02041e38 +_ZN19UnkStruct_astruct_313func_02041ea8Ev kind:function(thumb,size=0x26) addr:0x02041e64 func_02041ed0 kind:function(thumb,size=0x98) addr:0x02041e8c func_02041f68 kind:function(thumb,size=0x2e) addr:0x02041f24 func_02041f98 kind:function(thumb,size=0xa) addr:0x02041f54 -func_02041fa4 kind:function(thumb,size=0xa) addr:0x02041f60 +_ZN19UnkStruct_astruct_313func_02041fa4EPvj kind:function(thumb,size=0xa) addr:0x02041f60 func_02041fb0 kind:function(thumb,size=0x3a) addr:0x02041f6c func_02041fec kind:function(thumb,size=0x38) addr:0x02041fa8 func_02042024 kind:function(thumb,size=0x1a) addr:0x02041fe0 diff --git a/src/Main/Message/BmgRelatedFunctions.cpp b/src/Main/Message/BmgRelatedFunctions.cpp index dcb3d255..a859094b 100644 --- a/src/Main/Message/BmgRelatedFunctions.cpp +++ b/src/Main/Message/BmgRelatedFunctions.cpp @@ -2,67 +2,198 @@ extern "C" { #include } +#include "Unknown/UnkStruct_02063220.hpp" #include "global.h" #include "types.h" -THUMB void func_0202d3bc(int param_1, unsigned int *param_2, char *path, int param_4, int param_5, bool param_6, int param_7, - int param_8) { - // bool bVar1; - // dword dVar2; - // int iVar3; - // dword *pdVar4; - // uint uVar5; - // dword local_64; - // astruct_3 aStack_60; - // dword *pdStack_18; - - // pdVar4 = (dword *)(uint)param_4; - // *(char **)PTR_DWORD_0202d46c = path; - // local_64 = DWORD_0202d470; - // if (pdVar4 != (dword *)0x0) { - // *pdVar4 = DWORD_0202d470; - // } - // pdStack_18 = pdVar4; - // astruct_3(&aStack_60); - // bVar1 = FUN_02041e7c(&aStack_60,path); - // if (bVar1) { - // uVar5 = aStack_60._40_4_ - aStack_60._36_4_; - // if (uVar5 != 0) { - // if (param_6) { - // local_64 = FUN_0202d23c(&aStack_60,param_1,param_2,param_5,0,uVar5,pdVar4,param_7,param_8); - // } - // else { - // if (param_7 == 0) { - // dVar2 = FUN_0202d1c4(param_1,param_2,uVar5,param_5); - // } - // else { - // dVar2 = 0; - // if (uVar5 <= param_8) { - // dVar2 = param_7; - // } - // } - // if (dVar2 != 0) { - // iVar3 = astruct_3::FUN_02041fa4(&aStack_60,dVar2,uVar5); - // if (iVar3 == -1) { - // if (param_7 == 0) { - // FUN_0202d21c(dVar2); - // } - // } - // else { - // local_64 = dVar2; - // if (pdVar4 != (dword *)0x0) { - // *pdVar4 = uVar5; - // } - // } - // } - // } - // } - // astruct_3::FUN_02041ea8(&aStack_60); - // } - - // return local_64; +struct Archive { + /* 00 */ int id; + /* 04 */ unk32 next; + /* 08 */ unk8 mUnk_08; + /* 09 */ unk8 mUnk_09; + /* 0a */ unk8 mUnk_0a; + /* 0b */ unk8 mUnk_0b; + /* 0c */ unk8 mUnk_0c; + /* 0d */ unk8 mUnk_0d; + /* 0e */ unk8 mUnk_0e; + /* 0f */ unk8 mUnk_0f; + /* 10 */ unk8 mUnk_10; + /* 11 */ unk8 mUnk_11; + /* 12 */ unk8 mUnk_12; + /* 13 */ unk8 mUnk_13; + /* 14 */ unk8 mUnk_14; + /* 15 */ unk8 mUnk_15; + /* 16 */ unk8 mUnk_16; + /* 17 */ unk8 mUnk_17; + /* 18 */ unk8 mUnk_18; + /* 19 */ unk8 mUnk_19; + /* 1a */ unk8 mUnk_1a; + /* 1b */ unk8 mUnk_1b; + /* 1c */ unk32 *flags; +}; + +class UnkStruct_astruct_3 { +public: + /* 00 */ s32 mUnk_00; + /* 04 */ s32 *mUnk_04; + /* 08 */ Archive *archive; + /* 0c */ u32 mUnk_0c; + /* 10 */ u32 mUnk_10; + /* 14 */ s32 mUnk_14; + /* 18 */ s32 mUnk_18; + /* 1c */ unk32 mUnk_1c; + /* 20 */ unk8 mUnk_20; + /* 21 */ unk8 mUnk_21; + /* 22 */ unk8 mUnk_22; + /* 23 */ unk8 mUnk_23; + /* 24 */ void *fileStart; + /* 28 */ void *fileEnd; + /* 2c */ unk8 mUnk_2c; + /* 2d */ unk8 mUnk_2d; + /* 2e */ unk8 mUnk_2e; + /* 2f */ unk8 mUnk_2f; + /* 30 */ void *archive2; + /* 34 */ s32 id; + /* 38 */ unk32 mUnk_38; + /* 3c */ char *mUnk_3c; + /* 40 */ unk32 mUnk_40; + /* 44 */ s32 mUnk_44; + /* 48 */ + + UnkStruct_astruct_3(); + // ~UnkStruct_astruct_3(); + + unk32 func_02041e7c(char *path); + unk32 func_02041fa4(void *param_1, u32 size); + void func_02041ea8(); // dtor? + void *func_0202d23c(int param_1, unsigned int *param_2, int param_3, unk32 param_4, u32 size, int *param_6, int param_7, + int param_8); +}; + +extern "C" void *func_0202d1c4(int, unsigned int *, u32, int); +extern "C" void func_0202d21c(void *); + +THUMB void *func_0202d3bc(int param_1, unsigned int *param_2, char *path, int *param_4, int param_5, bool param_6, int param_7, + int param_8) { + int *puVar4; + void *local_64; + unk32 *puStack_18; + u32 size; + void *pvVar2; + + data_02063220.path = path; + puVar4 = param_4; + local_64 = NULL; + + if (puVar4 != 0) { + *puVar4 = 0; + } + + puStack_18 = puVar4; + + UnkStruct_astruct_3 aStack_60; + + if (aStack_60.func_02041e7c(path) != 0) { + size = (u32) aStack_60.fileEnd - (u32) aStack_60.fileStart; + + if (size != 0) { + if (param_6) { + local_64 = aStack_60.func_0202d23c(param_1, param_2, param_5, 0, size, puVar4, param_7, param_8); + } else { + pvVar2 = NULL; + + if (param_7 == 0) { + pvVar2 = func_0202d1c4(param_1, param_2, size, param_5); + } else { + if (size <= param_8) { + pvVar2 = (void *) param_7; + } + } + + if (pvVar2 != NULL) { + if (aStack_60.func_02041fa4(pvVar2, size) == -1) { + if (param_7 == 0) { + func_0202d21c(pvVar2); + } + } else { + local_64 = pvVar2; + + if (puVar4 != NULL) { + *puVar4 = size; + } + } + } + } + } + + aStack_60.func_02041ea8(); + } + + return local_64; +} + +extern "C" unk32 func_02016efc(void *, char *, void *); + +THUMB void *func_0202d474(unk32 param_1, unk32 param_2, char *drive, char *narcPath, unk32 param_5, u8 param_6, void *param_7, + u32 param_8) { + bool bVar1; + void *iVar2; + u32 uVar3; + u32 size; + void *local_60; + + data_02063220.path = narcPath; + local_60 = NULL; + + UnkStruct_astruct_3 aStack_5c; + + if (aStack_5c.func_02041e7c(narcPath) != 0) { + size = (u32) aStack_5c.fileEnd - (u32) aStack_5c.fileStart; + + if (size != 0) { + if (param_6 != 0) { + iVar2 = aStack_5c.func_0202d23c(param_1, (u32 *) param_2, param_5, 1, size, 0, (int) param_7, param_8); + } else { + uVar3 = (size + 0xF & ~0xF) + 0x70; + + if (param_7 == 0) { + iVar2 = func_0202d1c4(param_1, (u32 *) param_2, uVar3, param_5); + } else { + iVar2 = 0; + + if (uVar3 <= param_8) { + iVar2 = param_7; + } + } + } + + if (iVar2 != 0) { + bVar1 = false; + + if (param_6 == 0) { + if (aStack_5c.func_02041fa4((void *) ((int) iVar2 + 0x70), size) != -1) { + bVar1 = true; + } + } else { + bVar1 = true; + } + + if (bVar1 && func_02016efc(iVar2, drive, (void *) ((int) iVar2 + 0x70)) != 0) { + local_60 = iVar2; + } + + if ((local_60 == 0) && (param_7 == 0)) { + func_0202d21c(iVar2); + } + } + } + + aStack_5c.func_02041ea8(); + } + + return local_60; } -THUMB void func_0202d550(int param_1, unsigned int *param_2, char *path, int param_4, int param_5, bool param_6) { +THUMB void func_0202d550(int param_1, unsigned int *param_2, char *path, int *param_4, int param_5, bool param_6) { func_0202d3bc(param_1, param_2, path, param_4, param_5, param_6, 0, 0); } diff --git a/src/Main/Unknown/UnkStruct_02038aa0.cpp b/src/Main/Unknown/UnkStruct_02038aa0.cpp index c32b4df8..f4ed125b 100644 --- a/src/Main/Unknown/UnkStruct_02038aa0.cpp +++ b/src/Main/Unknown/UnkStruct_02038aa0.cpp @@ -188,11 +188,10 @@ ARM unk32 UnkStruct_02038aa0::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, ARM unk32 UnkStruct_02038aa0::vfunc_20(s32 param1, s32 *param2) {} ARM void UnkStruct_02038aa0::func_02039208(unk16 param1) {} -// non-matching ARM void UnkStruct_02038aa0::vfunc_08(s32 param1, unk32 *param2, s16 *param3, unk32 param4) { this->mUnk_15c = 10; this->mUnk_150[2] = 1; - this->func_0203e2ac(param2); + this->UnkStruct_0203dae0::vfunc_08(param1, (unk32) param2, param3, param4); } ARM unk32 UnkStruct_02038aa0::func_02039250() {} From 82d88d0030d34de40411d28d2c5389ac14333b76 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 18 Jul 2025 12:17:22 +0200 Subject: [PATCH 03/36] more documentation from the essay and finally match func_020372f0 --- include/Message/BMG.hpp | 20 ++++++++++++-------- src/Main/Message/BMG.cpp | 13 +++++++------ 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/include/Message/BMG.hpp b/include/Message/BMG.hpp index b582f028..23b3c3ed 100644 --- a/include/Message/BMG.hpp +++ b/include/Message/BMG.hpp @@ -6,7 +6,7 @@ #define BMG_MAGIC "MESGbmg1" #define BMG_GET_INF1(pGroups, flags) ((pGroups)->entries[(flags) >> 0x10].func_02037258((flags) & 0xFFFF)) -#define BMG_GET_MSG_OFFSET(pGroups, flags) (BMG_GET_INF1((pGroups), (flags))->offset) +#define BMG_GET_MSG_OFFSET(pGroups, flags) (BMG_GET_INF1((pGroups), (flags))->stringOffset) #define BMG_GET_MSG_ADDR(pGroups, flags) \ ((u32) (pGroups)->entries[(flags) >> 0x10].pDAT1 + (BMG_GET_MSG_OFFSET((pGroups), (flags)) & ~1)) @@ -81,7 +81,7 @@ struct BMGHeader { }; struct EntryINF1 { - /* 00 */ u32 offset; // relative to the end of the DAT1 header (where actual strings are in DAT1) + /* 00 */ u32 stringOffset; // relative to the end of the DAT1 header (where actual strings are in DAT1) /* 04 */ u8 mUnk_04; // flags/attributes? (+0x04 to +0x06) /* 05 */ u8 mUnk_05; /* 06 */ u8 mUnk_06; @@ -127,9 +127,13 @@ struct NodeBranch { struct NodeEvent { /* 00 (type) */ - /* 01 */ u8 eventIndex; // index of the query function to run + /* 01 */ u8 eventIndex; // index of the event function to run /* 02 */ u16 nextNodeTableIndex; // the index of the second section table to be used next in the conversation. - /* 04 */ u32 eventParams; // the argument to use in the function + /* 04 */ union { // the argument to use in the function + u32 eventParams32; + u16 eventParams16[2]; + u8 eventParams8[4]; + }; /* 08 */ }; @@ -146,15 +150,15 @@ struct FLW1Node { struct FLW1Header { /* 00 */ SectionBase base; /* 04 */ u16 numNodes; - /* 08 */ u16 numLabels; + /* 08 */ u16 numFlwEntries; /* 0c */ u32 padding_0xC; /* 10 */ }; struct SectionFLW1 { /* 00 */ FLW1Header header; - /* 10 */ FLW1Node *nodes; - /* 14 */ u16 *flwEntries; + /* 10 */ FLW1Node *nodes; // real size is `FLW1Header.numNodes * sizeof(FLW1Node)` + /* 14 */ u16 *flwEntries; // "indirection table", real size is `FLW1Header.numFlwEntries * sizeof(u16)` /* 18 */ s8 *bmgFileIndices; /* 1c */ }; @@ -176,7 +180,7 @@ struct SectionFLI1 { }; struct EntryDAT1 { - /* 00 */ char *text; + /* 00 */ char *text; // always null-terminated /* 04 */ }; diff --git a/src/Main/Message/BMG.cpp b/src/Main/Message/BMG.cpp index 2a00b26c..951858fd 100644 --- a/src/Main/Message/BMG.cpp +++ b/src/Main/Message/BMG.cpp @@ -162,14 +162,15 @@ THUMB void BMGGroups::func_020372f0(BMGFileIndex eIndex, s16 unk_18) { pFile = data_027e0ce0[1]; - if (unk_18 != 1) { - if (unk_18 != 4) { + switch (unk_18) { + case 1: pFile = data_027e0ce0[0]; - } else { + break; + case 4: pFile = data_ov002_0210016c; - } - } else { - // pFile = data_027e0ce0[0]; + break; + default: + break; } // get file data From da23e39e1928eae59188fa55e77b1357e65e5cbf Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Fri, 18 Jul 2025 19:04:28 +0200 Subject: [PATCH 04/36] finally match data sections (s/o to lago) and trying to make progress but fail :gone: --- include/Message/BMG.hpp | 6 +++--- src/Main/Message/BMG.cpp | 28 +++++++--------------------- 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/include/Message/BMG.hpp b/include/Message/BMG.hpp index 23b3c3ed..ad660b78 100644 --- a/include/Message/BMG.hpp +++ b/include/Message/BMG.hpp @@ -140,7 +140,7 @@ struct NodeEvent { struct FLW1Node { /* 00 */ u8 type; // see NodeType /* 01 */ union { - NodeMsg showMsg; + NodeMsg msg; NodeBranch branch; NodeEvent event; }; @@ -172,8 +172,8 @@ struct EntryFLI1 { struct SectionFLI1 { /* 00 */ SectionBase base; - /* 04 */ u16 numEntries; - /* 08 */ u16 entrySize; + /* 08 */ u16 numEntries; + /* 0a */ u16 entrySize; /* 0c */ u32 mUnk_0c; // always zero? /* 10 */ EntryFLI1 *entries; /* 14 */ diff --git a/src/Main/Message/BMG.cpp b/src/Main/Message/BMG.cpp index 951858fd..0256069e 100644 --- a/src/Main/Message/BMG.cpp +++ b/src/Main/Message/BMG.cpp @@ -11,7 +11,7 @@ extern u32 *data_027e0ce0[]; extern u32 data_027e05f4; // language extern u32 *data_ov002_0210016c; -static char *sBMGFileNames[BMG_FILE_INDEX_MAX] = { +static const char *const sBMGFileNames[BMG_FILE_INDEX_MAX] = { "system", // BMG_FILE_INDEX_SYSTEM "regular", // BMG_FILE_INDEX_REGULAR "battle", // BMG_FILE_INDEX_BATTLE @@ -116,9 +116,8 @@ ARM EntryINF1 *BMGFileInfo::func_02037258(u16 param_2) { // non-matching ARM u16 BMGFileInfo::func_0203728c(unk32 param_2) { SectionFLI1 *pFLI1; - EntryFLI1 *entry; - u32 i; - u16 j; + u32 uVar1; + u32 uVar2; pFLI1 = this->pFLI1; @@ -126,24 +125,11 @@ ARM u16 BMGFileInfo::func_0203728c(unk32 param_2) { return -1; } - i = 0; - do { - entry = &pFLI1->entries[i]; - - if (param_2 > entry->msgFlowID) { - return entry->msgFlowNodeIndex; + for (uVar1 = 0; (uVar2 & 0xFFFF) < this->pFLI1->numEntries; uVar2 = uVar1 + 1, uVar1 = (uVar2 & 0xFFFF)) { + if (param_2 == pFLI1->entries[uVar1].msgFlowID) { + return pFLI1->entries[uVar1].msgFlowNodeIndex; } - - // i++; - j = i + 1; - i = j & 0xFFFF; - } while (j < pFLI1->numEntries); - - // for (i = 0; (u16)i < pFLI1->numEntries; i++) { - // if (param_2 == pFLI1->entries[i].msgFlowID) { - // return pFLI1->entries[i].msgFlowNodeIndex; - // } - // } + } return -1; } From 45bf3338073c918b7bf45a87820293e318e65a6a Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 01:32:31 +0200 Subject: [PATCH 05/36] match some vtables!!! --- include/Unknown/UnkStruct_02032e7c.hpp | 23 ++++++++++ include/Unknown/UnkStruct_02032f0c.hpp | 49 --------------------- include/Unknown/UnkStruct_0203881c.hpp | 30 +++++++++++++ include/Unknown/UnkStruct_02038aa0.hpp | 61 +++++--------------------- include/Unknown/UnkStruct_0203dae0.hpp | 43 +++--------------- 5 files changed, 70 insertions(+), 136 deletions(-) create mode 100644 include/Unknown/UnkStruct_02032e7c.hpp create mode 100644 include/Unknown/UnkStruct_0203881c.hpp diff --git a/include/Unknown/UnkStruct_02032e7c.hpp b/include/Unknown/UnkStruct_02032e7c.hpp new file mode 100644 index 00000000..a22b7e35 --- /dev/null +++ b/include/Unknown/UnkStruct_02032e7c.hpp @@ -0,0 +1,23 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" + +class UnkStruct_02032e7c : public SysObject { +public: + /* 00 (vtable) */ + /* 04 */ u16 *mUnk_04; // pointer to the current position in the message to display + /* 08 */ unk16 mUnk_08; + /* 0a */ unk16 mUnk_0a; + /* 0c */ unk16 mUnk_0c; + /* 0e */ unk16 mUnk_0e; + /* 10 */ unk32 mUnk_10; + /* 14 */ + + /* 0 */ virtual ~UnkStruct_02032e7c(); + /* 8 */ + + UnkStruct_02032e7c(); +}; diff --git a/include/Unknown/UnkStruct_02032f0c.hpp b/include/Unknown/UnkStruct_02032f0c.hpp index ec589e51..ec1503b7 100644 --- a/include/Unknown/UnkStruct_02032f0c.hpp +++ b/include/Unknown/UnkStruct_02032f0c.hpp @@ -6,23 +6,6 @@ #include "Message/BMG.hpp" #include "System/SysNew.hpp" -class UnkStruct_02032e7c : public SysObject { -public: - /* 00 (vtable) */ - /* 04 */ u16 *mUnk_04; // pointer to the current position in the message to display - /* 08 */ unk16 mUnk_08; - /* 0a */ unk16 mUnk_0a; - /* 0c */ unk16 mUnk_0c; - /* 0e */ unk16 mUnk_0e; - /* 10 */ unk32 mUnk_10; - /* 14 */ - - /* 0 */ virtual ~UnkStruct_02032e7c(); - /* 8 */ - - UnkStruct_02032e7c(); -}; - class UnkSubClass1_02256FF8 { public: /* 00 (vtable) */ @@ -117,38 +100,6 @@ class UnkStruct_02032f0c : public SysObject { /* 24 */ virtual bool vfunc_24(s16 **param1); /* 28 */ - // /* 0x08 */ /* func_02033030 */ virtual void vfunc_08(unk32* param_2, unk32* param_3); - // /* 0x0C */ /* func_02033190 */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5); - // /* 0x10 */ /* func_020331c4 */ virtual void vfunc_10(u8 param_2, u8 param_3); - // /* 0x14 */ /* func_02032fcc */ virtual bool vfunc_14(u16 param_2, u8 param_3); - // /* 0x18 */ /* func_020332e4 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4); - // /* 0x1C */ /* func_02033360 */ virtual unk32 vfunc_1C(u16* param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 - // param_5); - // /* 0x20 */ /* func_020333e0 */ virtual UNK_TYPE vfunc_20(UNK_TYPE); - // /* 0x24 */ /* func_02033af4 */ virtual UNK_TYPE vfunc_24(UNK_TYPE); - - //! TODO: fake? - /* 28 */ virtual bool vfunc_28(void); - /* 2c */ virtual void vfunc_2C(void); - /* 30 */ virtual void vfunc_30(void); - /* 34 */ virtual unk32 vfunc_34(unk32 param_2); - /* 38 */ virtual bool vfunc_38(void); - /* 3c */ virtual void vfunc_3C(unk32 param_2); - /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3); - /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); - /* 48 */ virtual void vfunc_48(void); - /* 4c */ virtual void vfunc_4C(void); - /* 50 */ virtual void vfunc_50(EntryINF1 *param_2, u32 param_3, s16 *param_4, UnkSubClass1_02256FF8 *param_5); - /* 54 */ virtual void vfunc_54(void); - /* 58 */ virtual void vfunc_58(void); - /* 5c */ virtual void vfunc_5C(void); - /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param_2, unk32 param_3, unk32 param_4); - /* 64 */ virtual void vfunc_64(s16 *param_2); - /* 68 */ virtual unk32 vfunc_68(unk32 param_2); - /* 6c */ virtual void vfunc_6C(unk32 *param_2, unk32 *param_3); - /* 70 */ virtual void vfunc_70(unk32 *param_2, unk32 *param_3); - /* 74 */ - UnkStruct_02032f0c(); void func_02032f94(); unk32 *func_02032f98(unk32 param_2); diff --git a/include/Unknown/UnkStruct_0203881c.hpp b/include/Unknown/UnkStruct_0203881c.hpp new file mode 100644 index 00000000..69142fd1 --- /dev/null +++ b/include/Unknown/UnkStruct_0203881c.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_02032e7c.hpp" + +class UnkStruct_02038aa0; +typedef bool (*UnknownCallback)(class UnkStruct_020397f8 *); + +class UnkStruct_0203881c : public UnkStruct_02032e7c { +public: + /* 00 (base) */ + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1c */ UnknownCallback mUnk_1c; + /* 20 */ class UnkStruct_020397f8 *mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ + + /* 0 */ virtual ~UnkStruct_0203881c(); + /* 8 */ + + UnkStruct_0203881c(); + void func_02038858(unk32 param1); + void func_02038888(); + void func_02038950(UnkStruct_02038aa0 *param1, s32 param2); + void func_02038a80(s32 param1); +}; diff --git a/include/Unknown/UnkStruct_02038aa0.hpp b/include/Unknown/UnkStruct_02038aa0.hpp index c0f31f16..4d2e3b28 100644 --- a/include/Unknown/UnkStruct_02038aa0.hpp +++ b/include/Unknown/UnkStruct_02038aa0.hpp @@ -5,32 +5,11 @@ #include "Message/MsgProc.hpp" #include "System/SysNew.hpp" +#include "Unknown/UnkStruct_02032e7c.hpp" +#include "Unknown/UnkStruct_0203881c.hpp" #include "Unknown/UnkStruct_0203dae0.hpp" #include "nds/math.h" -class UnkStruct_02038aa0; -typedef bool (*UnknownCallback)(class UnkStruct_020397f8 *); - -class UnkStruct_0203881c : public UnkStruct_02032e7c { -public: - /* 00 (base) */ - /* 14 */ unk32 mUnk_14; - /* 18 */ unk32 mUnk_18; - /* 1c */ UnknownCallback mUnk_1c; - /* 20 */ class UnkStruct_020397f8 *mUnk_20; - /* 24 */ unk32 mUnk_24; - /* 28 */ - - /* 0 */ virtual ~UnkStruct_0203881c(); - /* 8 */ - - UnkStruct_0203881c(); - void func_02038858(unk32 param1); - void func_02038888(); - void func_02038950(UnkStruct_02038aa0 *param1, s32 param2); - void func_02038a80(s32 param1); -}; - class UnkSubClass1_unk_124 { public: /* 00 */ void *mUnk_00; // pointer to MsgProc_Main (well, the first members of the base class) @@ -72,18 +51,16 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { /* 161 */ /* 00 */ virtual ~UnkStruct_02038aa0(); - /* 08 */ virtual void vfunc_08(s32 param1, unk32 *param2, s16 *param3, unk32 param4); - /* 0c */ virtual void vfunc_0c(u8 param_2, u8 param_3, u8 param_4, unk32 param_5); - /* 10 */ virtual void vfunc_10(); - /* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4); - /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2); - /* 2c */ virtual void vfunc_2c(); - /* 30 */ virtual void vfunc_30(unk32 param_2, unk32 param_3); + /* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) override; + /* 10 */ virtual void vfunc_10(u32 param1, unk32 param2) override; + /* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) override; + /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2) override; + /* 2c */ virtual void vfunc_2c() override; + /* 30 */ virtual void vfunc_30() override; /* 34 */ virtual unk32 vfunc_34(s32 param1); /* 38 */ virtual bool vfunc_38(); - /* 3c */ virtual void vfunc_3c(); - /* 40 */ virtual void vfunc_40(); - /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); + /* 40 */ virtual void vfunc_40() = 0; + /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) = 0; /* 48 */ virtual void vfunc_48(); /* 4c */ virtual void vfunc_4c(u32 param1, unk32 param2); /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4); @@ -95,22 +72,8 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { /* 68 */ virtual s32 vfunc_68(unk32 param1); /* 6c */ virtual void vfunc_6c(s32 *param1, s32 *param2); /* 70 */ virtual void vfunc_70(s32 *param1, s32 *param2); - /* 74 */ - - // /* 0x08 */ /* func_02039228 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override; - // /* 0x0C */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override; - // /* 0x10 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060? - // /* 0x14 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; - // /* 0x18 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) override; - // /* 0x1C */ /* func_0203905c */ virtual unk32 vfunc_1C(u16* param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 - // param_5) override; - // /* 0x20 */ /* func_020390a4 */ virtual UNK_TYPE vfunc_20(UNK_TYPE) override; - // /* 0x24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE) override; - // /* 0x28 */ virtual bool vfunc_28(void) override; - // /* 0x2C */ /* func_02038d20 */ virtual void vfunc_2C(void) override; - // /* 0x30 */ /* func_02038ed0 */ virtual void vfunc_30(void) override; - // /* 0x34 */ /* func_02038c34 */ virtual unk32 vfunc_34(unk32 param_2) override; - // /* 0x38 */ /* func_02039570 */ virtual bool vfunc_38(void) override; + /* 74 */ virtual void vfunc_74(); + /* 78 */ UnkStruct_02038aa0(u8 param1, u8 param2); void func_02038b40(); diff --git a/include/Unknown/UnkStruct_0203dae0.hpp b/include/Unknown/UnkStruct_0203dae0.hpp index 7cb67a00..f4ee633f 100644 --- a/include/Unknown/UnkStruct_0203dae0.hpp +++ b/include/Unknown/UnkStruct_0203dae0.hpp @@ -79,47 +79,14 @@ class UnkStruct_0203dae0 : public UnkStruct_02032f0c { /* 123 */ u8 mUnk_122; /* 00 */ virtual ~UnkStruct_0203dae0(); - /* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4); - /* 0c */ virtual void vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4); - /* 10 */ virtual void vfunc_10(u32 param1, unk32 param2); - /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2); - /* 18 */ virtual unk32 vfunc_18(s32 param1); + /* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) override; + /* 0c */ virtual void vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) override; + /* 10 */ virtual void vfunc_10(u32 param1, unk32 param2) override; + /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2) override; + /* 18 */ virtual unk32 vfunc_18(s32 param1) override; /* 28 */ virtual bool vfunc_28(); /* 2c */ virtual void vfunc_2c(); /* 30 */ virtual void vfunc_30(); - /* 34 */ - - // /* 0x08 */ /* func_0203e2ac */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override; - // /* 0x0C */ /* func_02039578 */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override; - // /* 0x10 */ /* func_0203e060 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060? - // /* 0x14 */ /* func_0203dcb4 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; - // /* 0x18 */ /* func_0203e284 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) - // override; - // /* 0x1C */ virtual unk32 vfunc_1C(u16* param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5) override; - // /* 0x20 */ virtual UNK_TYPE vfunc_20(UNK_TYPE) override; - // /* 0x24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE) override; - // /* 0x28 */ /* func_0203e0c8 */ virtual bool vfunc_28(void) override; - // /* 0x2C */ /* func_0203e19c */ virtual void vfunc_2C(void) override; - // /* 0x30 */ /* func_0203e090 */ virtual void vfunc_30(void) override; - - //! TODO: fake? - /* 34 */ virtual unk32 vfunc_34(unk32 param_2) override; - /* 38 */ virtual bool vfunc_38(void) override; - /* 3c */ virtual void vfunc_3C(unk32 param_2) override; - /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; - /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; - /* 48 */ virtual void vfunc_48(void) override; - /* 4c */ virtual void vfunc_4C(void) override; // func_02039a3c? - /* 50 */ virtual void vfunc_50(EntryINF1 *param_2, u32 param_3, s16 *param_4, UnkSubClass1_02256FF8 *param_5) override; - /* 54 */ virtual void vfunc_54(void) override; - /* 58 */ virtual void vfunc_58(void) override; - /* 5c */ virtual void vfunc_5C(void) override; - /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param_2, unk32 param_3, unk32 param_4) override; - /* 64 */ virtual void vfunc_64(s16 *param_2) override; - /* 68 */ virtual unk32 vfunc_68(unk32 param_2) override; - /* 6c */ virtual void vfunc_6C(unk32 *param_2, unk32 *param_3) override; - /* 70 */ virtual void vfunc_70(unk32 *param_2, unk32 *param_3) override; - /* 74 */ UnkStruct_0203dae0(u8 param1); void func_0203dc10(unk32 param1); From 9335f8a159f65568441dd412d064858e1ba44047 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 11:18:08 +0200 Subject: [PATCH 06/36] out of the vtable trap --- include/Unknown/UnkStruct_02038aa0.hpp | 2 +- include/Unknown/UnkStruct_020397f8.hpp | 80 ++++++++------------------ 2 files changed, 26 insertions(+), 56 deletions(-) diff --git a/include/Unknown/UnkStruct_02038aa0.hpp b/include/Unknown/UnkStruct_02038aa0.hpp index 4d2e3b28..d0320ef4 100644 --- a/include/Unknown/UnkStruct_02038aa0.hpp +++ b/include/Unknown/UnkStruct_02038aa0.hpp @@ -59,7 +59,7 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { /* 30 */ virtual void vfunc_30() override; /* 34 */ virtual unk32 vfunc_34(s32 param1); /* 38 */ virtual bool vfunc_38(); - /* 40 */ virtual void vfunc_40() = 0; + /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) = 0; /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) = 0; /* 48 */ virtual void vfunc_48(); /* 4c */ virtual void vfunc_4c(u32 param1, unk32 param2); diff --git a/include/Unknown/UnkStruct_020397f8.hpp b/include/Unknown/UnkStruct_020397f8.hpp index 668f1922..73fe4327 100644 --- a/include/Unknown/UnkStruct_020397f8.hpp +++ b/include/Unknown/UnkStruct_020397f8.hpp @@ -86,43 +86,43 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { /* 588 */ UnkSubClass1_unk_124 mUnk_588; /* 5b4 */ + /* 00 */ virtual ~UnkStruct_020397f8(); + /* 18 */ virtual unk32 vfunc_18(s32 param1) override; + /* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) override; + /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2) override; + /* 2c */ virtual void vfunc_2c() override; + /* 38 */ virtual bool vfunc_38() override; + /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; + /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; + /* 48 */ virtual void vfunc_48() override; + /* 4c */ virtual void vfunc_4c(u32 param1, unk32 param2) override; + /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) override; + /* 54 */ virtual void vfunc_54() override; + /* 58 */ virtual void vfunc_58() override; + /* 5c */ virtual void vfunc_5c(u16 *param_2, struct UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) override; + /* 60 */ virtual void vfunc_60() override; + /* 64 */ virtual void vfunc_64() override; + /* 68 */ virtual s32 vfunc_68(unk32 param1) override; + /* 70 */ virtual void vfunc_70(s32 *param1, s32 *param2) override; + UnkStruct_020397f8(); - /* 4c */ virtual void vfunc_4c(); - /* 2c */ virtual void vfunc_2c(); void func_02039ca8(); - /* 3c */ virtual void vfunc_3c(unk32 param1); - /* 40 */ virtual void vfunc_40(s32 param1, s32 param2); void func_0203a188(s32 param1, s32 param2); // void func_0203a188(unk32 param_2, unk32 param_3, unk32 param_4); bool func_0203a2c0(); unk32 func_0203a30c(); - /* 48 */ virtual void vfunc_48(); void func_0203a35c(); bool func_0203a3e0(); - /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); bool func_0203a6d0(unk32 param1, unk32 param2); - /* 50 */ virtual void vfunc_50(EntryINF1 *param1, unk32 param2, s32 *param3, unk32 param4); - /* 54 */ virtual void vfunc_54(); - /* 5c */ virtual void vfunc_5c(); - /* 58 */ virtual void vfunc_58(); bool func_0203b0bc(); s32 func_0203b0ec(u32 param1); - /* 18 */ virtual unk32 vfunc_18(UnkStruct_0203b264 *param1, unk32 param2, unk32 param3); - /* 1c */ virtual unk32 vfunc_1c(u16 *param1, UnkStruct_0203b264 *param2, unk8 param3, unk32 param4); - /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3); - /* 64 */ virtual void vfunc_64(s16 *param1); void func_0203b764(); - /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2); void func_0203bd8c(s32 param1); // void func_0203bd8c(u16 param_2); - /* 6c */ virtual void vfunc_6c(s32 *param1, s32 *param2); void func_0203be08(); void func_0203be64(); bool func_0203c084(); bool func_0203c13c(); bool func_0203c1a0(); static bool func_0203c25c(class UnkStruct_020397f8 *param1); - /* 00 */ virtual ~UnkStruct_020397f8(); - /* 38 */ virtual bool vfunc_38(); - /* 74 */ //! TODO: check if this is really here void func_02039a3c(void); @@ -150,38 +150,11 @@ class MsgProc_Type3 : public UnkStruct_02038aa0 { MsgProc_Type3(); MsgProc_Type3(unk32 param_2, unk16 param_3, unk32 param_4); - //! TODO: remove the function declarations that are not overridden /* 00 */ virtual ~MsgProc_Type3(); - /* 08 */ virtual void vfunc_08(unk32 *param_2, unk32 *param_3) override; - /* 0c */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override; - /* 10 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060? - /* 14 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; - /* 18 */ virtual unk32 vfunc_18(UnkStruct_0203b264 *param_2, unk32 param_3, unk32 param_4) override; - /* 1c */ virtual unk32 vfunc_1C(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) override; - /* 20 */ virtual void vfunc_20(void) override; - /* 24 */ virtual void vfunc_24(void) override; - /* 28 */ virtual bool vfunc_28(void) override; - /* 2c */ virtual void vfunc_2C(void) override; - /* 30 */ virtual void vfunc_30(void) override; - /* 34 */ virtual unk32 vfunc_34(unk32 param_2) override; - /* 38 */ virtual bool vfunc_38(void) override; - /* 3c */ virtual void vfunc_3C(unk32 param_2) override; + /* 24 */ virtual bool vfunc_24(s16 **param1) override; /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; - /* 48 */ virtual void vfunc_48(void) override; - /* 4c */ virtual void vfunc_4C(void) override; // func_02039a3c? - /* 50 */ virtual void vfunc_50(EntryINF1 *param_2, u32 param_3, s16 *param_4, UnkSubClass1_02256FF8 *param_5) override; - /* 54 */ virtual void vfunc_54(void) override; - /* 58 */ virtual void vfunc_58(void) override; - /* 5c */ virtual void vfunc_5C(void) override; - /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param_2, unk32 param_3, unk32 param_4) override; - /* 64 */ virtual void vfunc_64(s16 *param_2) override; - /* 68 */ virtual unk32 vfunc_68(unk32 param_2) override; - /* 6c */ virtual void vfunc_6C(unk32 *param_2, unk32 *param_3) override; - /* 70 */ virtual void vfunc_70(unk32 *param_2, unk32 *param_3) override; - /* 74 */ - - static void func_0203c83c(void); + /* 48 */ virtual void vfunc_48() override; }; class MsgProc_Type2 : public UnkStruct_02038aa0 { @@ -200,13 +173,10 @@ class MsgProc_Type2 : public UnkStruct_02038aa0 { MsgProc_Type2(); MsgProc_Type2(unk32 param_2, unk16 param_3, unk32 param_4); /* 00 */ virtual ~MsgProc_Type2(); - /* 14 */ /* func_0203c5c4 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; - /* 3c */ /* func_0203c414 */ virtual void vfunc_3C(unk32 param_2) override; - /* 40 */ /* func_0203c460 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; - /* 4c */ /* func_0203c39c */ virtual void vfunc_4C(void) override; // func_02039a3c? - - //! TODO: vfunc_4C? - void func_0203c39c(unk32 param_2, unk32 param_3); + /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2) override; + /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; + /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; + /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) override; void func_0203c4ac(unk32, unk32); }; From 08cdf285bf6f1071ea08e10c16f6e082af9201a8 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 11:42:07 +0200 Subject: [PATCH 07/36] cleanup functions declarations --- include/Unknown/UnkStruct_02032f0c.hpp | 2 -- include/Unknown/UnkStruct_02038aa0.hpp | 32 ++------------------------ include/Unknown/UnkStruct_020397f8.hpp | 10 ++++---- 3 files changed, 7 insertions(+), 37 deletions(-) diff --git a/include/Unknown/UnkStruct_02032f0c.hpp b/include/Unknown/UnkStruct_02032f0c.hpp index ec1503b7..8a755513 100644 --- a/include/Unknown/UnkStruct_02032f0c.hpp +++ b/include/Unknown/UnkStruct_02032f0c.hpp @@ -106,9 +106,7 @@ class UnkStruct_02032f0c : public SysObject { u16 **SetUnk_0c(u16 *value); u8 func_02032fa4(); s32 func_02032fb4(); - void func_02032fcc(unk32, unk32); void func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5); - unk32 func_02033360(void); void func_020334b4(u32 param1, s32 param2, s32 param3, s32 param4); void func_02033628(unk32 param1, u16 *param2); u32 func_0203369c(u16 *param1, s32 param2); diff --git a/include/Unknown/UnkStruct_02038aa0.hpp b/include/Unknown/UnkStruct_02038aa0.hpp index d0320ef4..70d7c133 100644 --- a/include/Unknown/UnkStruct_02038aa0.hpp +++ b/include/Unknown/UnkStruct_02038aa0.hpp @@ -75,6 +75,8 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { /* 74 */ virtual void vfunc_74(); /* 78 */ + static void func_020387e0(u8 *param_2); + UnkStruct_02038aa0(u8 param1, u8 param2); void func_02038b40(); bool func_02038b78(); @@ -86,38 +88,8 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { unk32 func_02039250(); void func_02039440(unk32 param1, unk32 param2); bool func_0203951c(); - - static void func_020387e0(u8 *param_2); - - unk32 func_02032fb4(void); u16 *func_02037604(u16 **); - void func_02038b28(void); - void func_02038b74(void); // is this a dtor? - void func_02038f40(void); - void func_02038f44(EntryINF1 *param_2, u32 param_3, struct func_02038f44_param4 *param_4, UnkSubClass1_02256FF8 *param_5, - unk32 param_6); - void func_02039058(void); - unk32 func_0203905c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5); - void func_02038d20(void); - void func_020392b4(void); - void func_02039398(void); - void func_020393a8(s16 *param_2); - void func_0203a188(unk32, unk32); - unk32 func_0203a3e0(void); - unk32 func_0203cb5c(unk8, s16); - - void func_0203dcfc(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5); - unk32 func_0203de14(unk32); - void func_0203e090(void); - void func_0203e1b0(unk32, unk32, unk32); //! TODO: not sure it belongs to this class: - - void func_02033190(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5); - void func_020331c4(unk32, unk32); - void func_0203947c(void); - void func_0203cabc(unk32); - unk32 func_0203e284(UnkStruct_0203b264 *, unk32, unk32); - void func_0203e2ac(unk32 *param_2); s16 func_0203d318(s16, s16); }; diff --git a/include/Unknown/UnkStruct_020397f8.hpp b/include/Unknown/UnkStruct_020397f8.hpp index 73fe4327..7ec9fc40 100644 --- a/include/Unknown/UnkStruct_020397f8.hpp +++ b/include/Unknown/UnkStruct_020397f8.hpp @@ -105,6 +105,8 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { /* 68 */ virtual s32 vfunc_68(unk32 param1) override; /* 70 */ virtual void vfunc_70(s32 *param1, s32 *param2) override; + static bool func_0203c25c(class UnkStruct_020397f8 *param1); + UnkStruct_020397f8(); void func_02039ca8(); void func_0203a188(s32 param1, s32 param2); // void func_0203a188(unk32 param_2, unk32 param_3, unk32 param_4); @@ -122,11 +124,6 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { bool func_0203c084(); bool func_0203c13c(); bool func_0203c1a0(); - static bool func_0203c25c(class UnkStruct_020397f8 *param1); - - //! TODO: check if this is really here - void func_02039a3c(void); - unk32 func_02039250(void); }; class MsgProc_Type3 : public UnkStruct_02038aa0 { @@ -155,6 +152,9 @@ class MsgProc_Type3 : public UnkStruct_02038aa0 { /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; /* 48 */ virtual void vfunc_48() override; + + void func_0203cabc(unk32); + unk32 func_0203cb5c(unk8, s16); }; class MsgProc_Type2 : public UnkStruct_02038aa0 { From 845be690f40ae682c2c073ee7d84adcaf36dbaac Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 11:45:53 +0200 Subject: [PATCH 08/36] relocs and symbols changes --- config/eur/arm9/delinks.txt | 9 ++++++ config/eur/arm9/overlays/ov000/symbols.txt | 4 +-- config/eur/arm9/overlays/ov040/relocs.txt | 2 +- config/eur/arm9/relocs.txt | 34 +++++++++++----------- config/usa/arm9/overlays/ov000/symbols.txt | 4 +-- config/usa/arm9/overlays/ov040/relocs.txt | 2 +- config/usa/arm9/relocs.txt | 34 +++++++++++----------- 7 files changed, 49 insertions(+), 40 deletions(-) diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index faed4006..6f28e319 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -24,6 +24,7 @@ src/Main/Message/BmgRelatedFunctions.cpp: src/Main/Unknown/UnkStruct_02032f0c.cpp: .text start:0x02032f0c end:0x02033d40 + .data start:0x020579c0 end:0x02057a00 src/Main/Unknown/UnkStruct_02035064.cpp: .text start:0x02035064 end:0x02035370 @@ -43,15 +44,23 @@ src/Main/Unknown/UnkStruct_02037750.cpp: src/Main/Unknown/UnkStruct_02038aa0.cpp: .text start:0x0203881c end:0x02039578 + .data start:0x02057d88 end:0x02057e14 + +src/Main/Unknown/UnkStruct_020397f8.cpp: + .text start:0x020397f8 end:0x0203c358 + .data start:0x02057e54 end:0x02057ed0 src/Main/Message/func_0203c358.cpp: .text start:0x0203c358 end:0x0203c72c + .data start:0x02057f0c end:0x02057f88 src/Main/Message/func_0203c72c.cpp: .text start:0x0203c72c end:0x0203c8a8 + .data start:0x02057f88 end:0x02058004 src/Main/Unknown/UnkStruct_0203dae0.cpp: .text start:0x0203dae0 end:0x0203e784 + .data start:0x0205804c end:0x02058088 src/Main/Unknown/UnkStruct_0206322c.cpp: .text start:0x02030354 end:0x020306c0 diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index c9c6efa3..3f8dd1a2 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -3337,9 +3337,9 @@ func_ov000_020d0530 kind:function(arm,size=0x1c) addr:0x020d0530 func_ov000_020d054c kind:function(arm,size=0x48) addr:0x020d054c func_ov000_020d0594 kind:function(arm,size=0x48) addr:0x020d0594 func_ov000_020d05dc kind:function(arm,size=0x30) addr:0x020d05dc -func_ov000_020d060c kind:function(arm,size=0x30) addr:0x020d060c +_ZN28UnkClass_func_ov000_020d0644C1Ev kind:function(arm,size=0x30) addr:0x020d060c func_ov000_020d063c kind:function(arm,size=0x8) addr:0x020d063c -func_ov000_020d0644 kind:function(arm,size=0x2c) addr:0x020d0644 +_ZN28UnkClass_func_ov000_020d064419func_ov000_020d0644Eiiiii kind:function(arm,size=0x2c) addr:0x020d0644 func_ov000_020d0670 kind:function(arm,size=0x120) addr:0x020d0670 func_ov000_020d0790 kind:function(arm,size=0x74) addr:0x020d0790 func_ov000_020d0804 kind:function(arm,size=0x44) addr:0x020d0804 diff --git a/config/eur/arm9/overlays/ov040/relocs.txt b/config/eur/arm9/overlays/ov040/relocs.txt index cda57e8d..4f3a92af 100644 --- a/config/eur/arm9/overlays/ov040/relocs.txt +++ b/config/eur/arm9/overlays/ov040/relocs.txt @@ -1289,7 +1289,7 @@ from:0x02187cd4 kind:arm_call to:0x02033cbc module:main from:0x02187d64 kind:arm_call to:0x020334b4 module:main from:0x02187d98 kind:arm_call to:0x0203b814 module:main from:0x02187dac kind:load to:0x02068e8c module:main -from:0x02187db0 kind:load to:0x020579f8 module:main +from:0x02187db0 kind:load to:0x020579f0 add:8 module:main from:0x02187dc0 kind:load to:0x02039d74 module:main from:0x02187dfc kind:arm_call_thumb to:0x0202ab48 module:main from:0x02187e20 kind:arm_call_thumb to:0x0202ab48 module:main diff --git a/config/eur/arm9/relocs.txt b/config/eur/arm9/relocs.txt index 94217569..c84456a2 100644 --- a/config/eur/arm9/relocs.txt +++ b/config/eur/arm9/relocs.txt @@ -4121,13 +4121,13 @@ from:0x02032e4c kind:arm_call_thumb to:0x02032f94 module:main from:0x02032e54 kind:arm_call to:0x0202ea0c module:main from:0x02032e78 kind:load to:0x027e05f4 module:dtcm from:0x02032ea4 kind:arm_call_thumb to:0x0202ab48 module:main -from:0x02032ec0 kind:load to:0x020579f8 module:main +from:0x02032ec0 kind:load to:0x020579f0 add:8 module:main from:0x02032eec kind:arm_call_thumb to:0x0202ab48 module:main -from:0x02032f08 kind:load to:0x020579f8 module:main +from:0x02032f08 kind:load to:0x020579f0 add:8 module:main from:0x02032f50 kind:thumb_call_arm to:0x020078f4 module:main from:0x02032f5c kind:thumb_call_arm to:0x020078f4 module:main from:0x02032f68 kind:thumb_call_arm to:0x020078c0 module:main -from:0x02032f80 kind:load to:0x020579c8 module:main +from:0x02032f80 kind:load to:0x020579c0 add:8 module:main from:0x02032f8c kind:thumb_call_arm to:0x0202ea0c module:main from:0x02032fb0 kind:load to:0x02035428 module:main from:0x02033068 kind:arm_call to:0x02033cbc module:main @@ -4729,7 +4729,7 @@ from:0x020387c8 kind:load to:0x027e0c68 module:dtcm from:0x020387d4 kind:arm_call to:0x0203780c module:main from:0x02038808 kind:arm_call_thumb to:0x0202ab48 module:main from:0x02038824 kind:arm_call to:0x02032e7c module:main -from:0x02038854 kind:load to:0x02057e0c module:main +from:0x02038854 kind:load to:0x02057e04 add:8 module:main from:0x02038890 kind:arm_call to:0x02038804 module:main from:0x02038940 kind:load to:0x027e0d38 module:dtcm from:0x02038944 kind:load to:0x027e0c68 module:dtcm @@ -4740,7 +4740,7 @@ from:0x02038a8c kind:arm_call to:0x02038804 module:main from:0x02038aa6 kind:thumb_call to:0x0203dae0 module:main from:0x02038aba kind:thumb_call_arm to:0x0203881c module:main from:0x02038ac4 kind:thumb_call to:0x020387e0 module:main -from:0x02038af8 kind:load to:0x02057d90 module:main +from:0x02038af8 kind:load to:0x02057d88 add:8 module:main from:0x02038b00 kind:thumb_call to:0x0203dbe0 module:main from:0x02038b0c kind:thumb_call to:0x0203dbe0 module:main from:0x02038b12 kind:thumb_call_arm to:0x0202ea0c module:main @@ -4825,7 +4825,7 @@ from:0x0203979a kind:thumb_call_arm to:0x020350b4 module:main from:0x020397ac kind:thumb_call_arm to:0x020351b8 module:main from:0x020397be kind:thumb_call_arm to:0x020351b8 module:main from:0x020397d0 kind:thumb_call_arm to:0x020351b8 module:main -from:0x020397dc kind:load to:0x02057e5c module:main +from:0x020397dc kind:load to:0x02057e54 module:main from:0x02039802 kind:thumb_call to:0x02038aa0 module:main from:0x02039816 kind:thumb_call_arm to:0x02035064 module:main from:0x02039820 kind:thumb_call_arm to:0x02035064 module:main @@ -4847,7 +4847,7 @@ from:0x020399de kind:thumb_call_arm to:0x020350b4 module:main from:0x020399f0 kind:thumb_call_arm to:0x020351b8 module:main from:0x02039a02 kind:thumb_call_arm to:0x020351b8 module:main from:0x02039a14 kind:thumb_call_arm to:0x020351b8 module:main -from:0x02039a20 kind:load to:0x02057e5c module:main +from:0x02039a20 kind:load to:0x02057e54 module:main from:0x02039a42 kind:thumb_call to:0x02038b28 module:main from:0x02039a54 kind:thumb_call_arm to:0x0203dcfc module:main from:0x02039aa0 kind:arm_call to:0x02038d20 module:main @@ -5177,7 +5177,7 @@ from:0x0203c334 kind:arm_call to:0x020350ac module:main from:0x0203c33c kind:arm_call to:0x020350ac module:main from:0x0203c344 kind:arm_call_thumb to:0x02038b1c module:main from:0x0203c360 kind:thumb_call to:0x02038aa0 module:main -from:0x0203c394 kind:load to:0x02057f14 module:main +from:0x0203c394 kind:load to:0x02057f0c add:8 module:main from:0x0203c3a2 kind:thumb_call to:0x02038b28 module:main from:0x0203c3c0 kind:thumb_call_arm to:0x0203fc78 module:main from:0x0203c3dc kind:thumb_call_arm to:0x0203d318 module:main @@ -5209,7 +5209,7 @@ from:0x0203c7c0 kind:arm_call to:0x020d0644 module:overlay(0) from:0x0203c7e0 kind:arm_call to:0x020d0644 module:overlay(0) from:0x0203c800 kind:arm_call to:0x020d0644 module:overlay(0) from:0x0203c820 kind:arm_call to:0x020d0644 module:overlay(0) -from:0x0203c830 kind:load to:0x02057f90 module:main +from:0x0203c830 kind:load to:0x02057f88 add:8 module:main from:0x0203c834 kind:load to:0x0203c83c module:main from:0x0203c838 kind:load to:0x020d060c module:overlay(0) from:0x0203c858 kind:arm_call to:0x0204f754 module:main @@ -5275,14 +5275,14 @@ from:0x0203d19c kind:arm_call to:0x0203cfb8 module:main from:0x0203d1a4 kind:arm_call to:0x0203cfb8 module:main from:0x0203d1ac kind:arm_call to:0x0203ceb8 module:main from:0x0203d1c8 kind:arm_call to:0x0203cdf4 module:main -from:0x0203d1e8 kind:load to:0x0205803c module:main -from:0x0203d1ec kind:load to:0x02058024 module:main +from:0x0203d1e8 kind:load to:0x02058034 add:8 module:main +from:0x0203d1ec kind:load to:0x0205801c add:8 module:main from:0x0203d1fc kind:arm_call to:0x0202ea0c module:main from:0x0203d228 kind:arm_call to:0x02032fa4 module:main from:0x0203d240 kind:arm_call to:0x0203d168 module:main from:0x0203d250 kind:load to:0x02068ed0 module:main -from:0x0203d26c kind:load to:0x0205803c module:main -from:0x0203d270 kind:load to:0x0205800c module:main +from:0x0203d26c kind:load to:0x02058034 add:8 module:main +from:0x0203d270 kind:load to:0x02058004 add:8 module:main from:0x0203d280 kind:arm_call to:0x0202ea0c module:main from:0x0203d2ac kind:arm_call to:0x02032fa4 module:main from:0x0203d2c4 kind:arm_call to:0x0203d168 module:main @@ -5362,15 +5362,15 @@ from:0x0203db3a kind:thumb_call_arm to:0x0202e9dc module:main from:0x0203db42 kind:thumb_call_arm to:0x0203d1d0 module:main from:0x0203db56 kind:thumb_call_arm to:0x0202e9dc module:main from:0x0203db5e kind:thumb_call_arm to:0x0203d254 module:main -from:0x0203db6c kind:load to:0x02058054 module:main +from:0x0203db6c kind:load to:0x0205804c add:8 module:main from:0x0203db74 kind:load to:0x027e0ce0 module:dtcm from:0x0203db9c kind:thumb_call to:0x02032f94 module:main -from:0x0203dba4 kind:load to:0x02058054 module:main +from:0x0203dba4 kind:load to:0x0205804c add:8 module:main from:0x0203dbcc kind:thumb_call to:0x02032f94 module:main from:0x0203dbd2 kind:thumb_call_arm to:0x0202ea0c module:main -from:0x0203dbdc kind:load to:0x02058054 module:main +from:0x0203dbdc kind:load to:0x0205804c add:8 module:main from:0x0203dc04 kind:thumb_call to:0x02032f94 module:main -from:0x0203dc0c kind:load to:0x02058054 module:main +from:0x0203dc0c kind:load to:0x0205804c add:8 module:main from:0x0203dc50 kind:arm_call to:0x0203d1b4 module:main from:0x0203dc84 kind:arm_call to:0x0203ddfc module:main from:0x0203dcc8 kind:arm_call to:0x02032fa4 module:main diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 86737deb..1008f184 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -3337,9 +3337,9 @@ func_ov000_020d0530 kind:function(arm,size=0x1c) addr:0x020d04d0 func_ov000_020d054c kind:function(arm,size=0x48) addr:0x020d04ec func_ov000_020d0594 kind:function(arm,size=0x48) addr:0x020d0534 func_ov000_020d05dc kind:function(arm,size=0x30) addr:0x020d057c -func_ov000_020d060c kind:function(arm,size=0x30) addr:0x020d05ac +_ZN28UnkClass_func_ov000_020d0644C1Ev kind:function(arm,size=0x30) addr:0x020d05ac func_ov000_020d063c kind:function(arm,size=0x8) addr:0x020d05dc -func_ov000_020d0644 kind:function(arm,size=0x2c) addr:0x020d05e4 +_ZN28UnkClass_func_ov000_020d064419func_ov000_020d0644Eiiiii kind:function(arm,size=0x2c) addr:0x020d05e4 func_ov000_020d0670 kind:function(arm,size=0x120) addr:0x020d0610 func_ov000_020d0790 kind:function(arm,size=0x74) addr:0x020d0730 func_ov000_020d0804 kind:function(arm,size=0x44) addr:0x020d07a4 diff --git a/config/usa/arm9/overlays/ov040/relocs.txt b/config/usa/arm9/overlays/ov040/relocs.txt index b62510fe..61fda5b4 100644 --- a/config/usa/arm9/overlays/ov040/relocs.txt +++ b/config/usa/arm9/overlays/ov040/relocs.txt @@ -1289,7 +1289,7 @@ from:0x02187c34 kind:arm_call to:0x02033c78 module:main from:0x02187cc4 kind:arm_call to:0x02033484 module:main from:0x02187cf8 kind:arm_call to:0x0203b7d0 module:main from:0x02187d0c kind:load to:0x02068e2c module:main -from:0x02187d10 kind:load to:0x020579b0 module:main +from:0x02187d10 kind:load to:0x020579a8 add:8 module:main from:0x02187d20 kind:load to:0x02039d30 module:main from:0x02187d5c kind:arm_call_thumb to:0x0202ab30 module:main from:0x02187d80 kind:arm_call_thumb to:0x0202ab30 module:main diff --git a/config/usa/arm9/relocs.txt b/config/usa/arm9/relocs.txt index afde4238..007003c3 100644 --- a/config/usa/arm9/relocs.txt +++ b/config/usa/arm9/relocs.txt @@ -4123,13 +4123,13 @@ from:0x02032e48 kind:arm_call_thumb to:0x02032f90 module:main from:0x02032e50 kind:arm_call to:0x0202ea08 module:main from:0x02032e74 kind:load to:0x027e05f4 module:dtcm from:0x02032ea0 kind:arm_call_thumb to:0x0202ab30 module:main -from:0x02032ebc kind:load to:0x020579b0 module:main +from:0x02032ebc kind:load to:0x020579a8 add:8 module:main from:0x02032ee8 kind:arm_call_thumb to:0x0202ab30 module:main -from:0x02032f04 kind:load to:0x020579b0 module:main +from:0x02032f04 kind:load to:0x020579a8 add:8 module:main from:0x02032f4c kind:thumb_call_arm to:0x020078f4 module:main from:0x02032f58 kind:thumb_call_arm to:0x020078f4 module:main from:0x02032f64 kind:thumb_call_arm to:0x020078c0 module:main -from:0x02032f7c kind:load to:0x02057980 module:main +from:0x02032f7c kind:load to:0x02057978 add:8 module:main from:0x02032f88 kind:thumb_call_arm to:0x0202ea08 module:main from:0x02032fac kind:load to:0x020353e4 module:main from:0x02033064 kind:arm_call to:0x02033c78 module:main @@ -4730,7 +4730,7 @@ from:0x02038784 kind:load to:0x027e0c68 module:dtcm from:0x02038790 kind:arm_call to:0x020377c8 module:main from:0x020387c4 kind:arm_call_thumb to:0x0202ab30 module:main from:0x020387e0 kind:arm_call to:0x02032e78 module:main -from:0x02038810 kind:load to:0x02057dc4 module:main +from:0x02038810 kind:load to:0x02057dbc add:8 module:main from:0x0203884c kind:arm_call to:0x020387c0 module:main from:0x020388fc kind:load to:0x027e0d38 module:dtcm from:0x02038900 kind:load to:0x027e0c68 module:dtcm @@ -4741,7 +4741,7 @@ from:0x02038a48 kind:arm_call to:0x020387c0 module:main from:0x02038a62 kind:thumb_call to:0x0203da9c module:main from:0x02038a76 kind:thumb_call_arm to:0x020387d8 module:main from:0x02038a80 kind:thumb_call to:0x0203879c module:main -from:0x02038ab4 kind:load to:0x02057d48 module:main +from:0x02038ab4 kind:load to:0x02057d40 add:8 module:main from:0x02038abc kind:thumb_call to:0x0203db9c module:main from:0x02038ac8 kind:thumb_call to:0x0203db9c module:main from:0x02038ace kind:thumb_call_arm to:0x0202ea08 module:main @@ -4826,7 +4826,7 @@ from:0x02039756 kind:thumb_call_arm to:0x02035070 module:main from:0x02039768 kind:thumb_call_arm to:0x02035174 module:main from:0x0203977a kind:thumb_call_arm to:0x02035174 module:main from:0x0203978c kind:thumb_call_arm to:0x02035174 module:main -from:0x02039798 kind:load to:0x02057e14 module:main +from:0x02039798 kind:load to:0x02057e0c add:8 module:main from:0x020397be kind:thumb_call to:0x02038a5c module:main from:0x020397d2 kind:thumb_call_arm to:0x02035020 module:main from:0x020397dc kind:thumb_call_arm to:0x02035020 module:main @@ -4848,7 +4848,7 @@ from:0x0203999a kind:thumb_call_arm to:0x02035070 module:main from:0x020399ac kind:thumb_call_arm to:0x02035174 module:main from:0x020399be kind:thumb_call_arm to:0x02035174 module:main from:0x020399d0 kind:thumb_call_arm to:0x02035174 module:main -from:0x020399dc kind:load to:0x02057e14 module:main +from:0x020399dc kind:load to:0x02057e0c add:8 module:main from:0x020399fe kind:thumb_call to:0x02038ae4 module:main from:0x02039a10 kind:thumb_call_arm to:0x0203dcb8 module:main from:0x02039a5c kind:arm_call to:0x02038cdc module:main @@ -5178,7 +5178,7 @@ from:0x0203c2f0 kind:arm_call to:0x02035068 module:main from:0x0203c2f8 kind:arm_call to:0x02035068 module:main from:0x0203c300 kind:arm_call_thumb to:0x02038ad8 module:main from:0x0203c31c kind:thumb_call to:0x02038a5c module:main -from:0x0203c350 kind:load to:0x02057ecc module:main +from:0x0203c350 kind:load to:0x02057ec4 add:8 module:main from:0x0203c35e kind:thumb_call to:0x02038ae4 module:main from:0x0203c37c kind:thumb_call_arm to:0x0203fc34 module:main from:0x0203c398 kind:thumb_call_arm to:0x0203d2d4 module:main @@ -5210,7 +5210,7 @@ from:0x0203c77c kind:arm_call to:0x020d05e4 module:overlay(0) from:0x0203c79c kind:arm_call to:0x020d05e4 module:overlay(0) from:0x0203c7bc kind:arm_call to:0x020d05e4 module:overlay(0) from:0x0203c7dc kind:arm_call to:0x020d05e4 module:overlay(0) -from:0x0203c7ec kind:load to:0x02057f48 module:main +from:0x0203c7ec kind:load to:0x02057f40 add:8 module:main from:0x0203c7f0 kind:load to:0x0203c7f8 module:main from:0x0203c7f4 kind:load to:0x020d05ac module:overlay(0) from:0x0203c814 kind:arm_call to:0x0204f710 module:main @@ -5276,14 +5276,14 @@ from:0x0203d158 kind:arm_call to:0x0203cf74 module:main from:0x0203d160 kind:arm_call to:0x0203cf74 module:main from:0x0203d168 kind:arm_call to:0x0203ce74 module:main from:0x0203d184 kind:arm_call to:0x0203cdb0 module:main -from:0x0203d1a4 kind:load to:0x02057ff4 module:main -from:0x0203d1a8 kind:load to:0x02057fdc module:main +from:0x0203d1a4 kind:load to:0x02057fec add:8 module:main +from:0x0203d1a8 kind:load to:0x02057fd4 add:8 module:main from:0x0203d1b8 kind:arm_call to:0x0202ea08 module:main from:0x0203d1e4 kind:arm_call to:0x02032fa0 module:main from:0x0203d1fc kind:arm_call to:0x0203d124 module:main from:0x0203d20c kind:load to:0x02068e70 module:main -from:0x0203d228 kind:load to:0x02057ff4 module:main -from:0x0203d22c kind:load to:0x02057fc4 module:main +from:0x0203d228 kind:load to:0x02057fec add:8 module:main +from:0x0203d22c kind:load to:0x02057fbc add:8 module:main from:0x0203d23c kind:arm_call to:0x0202ea08 module:main from:0x0203d268 kind:arm_call to:0x02032fa0 module:main from:0x0203d280 kind:arm_call to:0x0203d124 module:main @@ -5363,15 +5363,15 @@ from:0x0203daf6 kind:thumb_call_arm to:0x0202e9d8 module:main from:0x0203dafe kind:thumb_call_arm to:0x0203d18c module:main from:0x0203db12 kind:thumb_call_arm to:0x0202e9d8 module:main from:0x0203db1a kind:thumb_call_arm to:0x0203d210 module:main -from:0x0203db28 kind:load to:0x0205800c module:main +from:0x0203db28 kind:load to:0x02058004 add:8 module:main from:0x0203db30 kind:load to:0x027e0ce0 module:dtcm from:0x0203db58 kind:thumb_call to:0x02032f90 module:main -from:0x0203db60 kind:load to:0x0205800c module:main +from:0x0203db60 kind:load to:0x02058004 add:8 module:main from:0x0203db88 kind:thumb_call to:0x02032f90 module:main from:0x0203db8e kind:thumb_call_arm to:0x0202ea08 module:main -from:0x0203db98 kind:load to:0x0205800c module:main +from:0x0203db98 kind:load to:0x02058004 add:8 module:main from:0x0203dbc0 kind:thumb_call to:0x02032f90 module:main -from:0x0203dbc8 kind:load to:0x0205800c module:main +from:0x0203dbc8 kind:load to:0x02058004 add:8 module:main from:0x0203dc0c kind:arm_call to:0x0203d170 module:main from:0x0203dc40 kind:arm_call to:0x0203ddb8 module:main from:0x0203dc84 kind:arm_call to:0x02032fa0 module:main From 75726d6a5a435da1cba77b3fcc42df5b1b969340 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 11:46:15 +0200 Subject: [PATCH 09/36] BMG.hpp: unk_14 -> pFile --- include/Message/BMG.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Message/BMG.hpp b/include/Message/BMG.hpp index ad660b78..80a5f320 100644 --- a/include/Message/BMG.hpp +++ b/include/Message/BMG.hpp @@ -196,7 +196,7 @@ struct BMGFileInfo { /* 08 */ SectionFLW1 *pFLW1; // pointer to the message flow data (FLW -> flow) /* 0c */ SectionFLI1 *pFLI1; // pointer to the message flow index table (FLI -> flow index table) /* 10 */ SectionDAT1 *pDAT1; // pointer to the data (DAT -> data) - /* 14 */ BMGHeader *mUnk_14; // same as pHeader (?) + /* 14 */ u32 *pFile; /* 18 */ s16 mUnk_18; // stores `func_020372f0`->param_3 value (currently undetermined purpose) /* 1a */ s16 groupId; // stores the group id /* 1c */ From ae2a35a6017733e49d244c49b4ca4b57a304978a Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 12:27:25 +0200 Subject: [PATCH 10/36] file reset --- src/Main/Message/func_0203c358.cpp | 73 +- src/Main/Message/func_0203c72c.cpp | 33 +- src/Main/Unknown/UnkStruct_02032f0c.cpp | 104 +-- src/Main/Unknown/UnkStruct_02038aa0.cpp | 228 ++--- src/Main/Unknown/UnkStruct_020397f8.cpp | 1045 +---------------------- src/Main/Unknown/UnkStruct_0203dae0.cpp | 193 +---- 6 files changed, 196 insertions(+), 1480 deletions(-) diff --git a/src/Main/Message/func_0203c358.cpp b/src/Main/Message/func_0203c358.cpp index ee80f15e..5b66bf30 100644 --- a/src/Main/Message/func_0203c358.cpp +++ b/src/Main/Message/func_0203c358.cpp @@ -7,70 +7,11 @@ #include "System/SysNew.hpp" #include "global.h" -extern "C" void func_0203fc78(unk32 *, unk32 *); - -THUMB MsgProc_Type2::MsgProc_Type2(unk32 param_2, unk16 param_3, unk32 param_4) : - UnkStruct_02038aa0(0, 0) { - this->mUnk_162 = 4; - this->mUnk_164 = 1; - this->mUnk_166 = 0; - this->mUnk_168 = -1; - this->mUnk_16a = 0; - this->mUnk_16c = 1; - this->mUnk_16e = 0; -} - -// non-matching -THUMB void MsgProc_Type2::func_0203c39c(unk32 param_2, unk32 param_3) { - u16 uVar1; - unk32 uVar2; - s16 uVar3; - s32 iVar4; - s32 local_20; - s32 local_1c[2]; - - this->func_02038b28(); - uVar3 = 0; - - for (iVar4 = 0; iVar4 < 2; iVar4++) { - local_1c[0] = 0xC0; - local_20 = 0x10; - - if (iVar4 != 0) { - func_0203fc78(local_1c, &local_20); - } - - uVar1 = this->func_0203d318((s32) (local_1c[0] + 7 + ((u32) (local_1c[0] + 7 >> 2) >> 0x1D)) >> 3, - (s32) (local_20 + 7 + ((u32) (local_20 + 7 >> 2) >> 0x1D)) >> 3); - - if (uVar3 < uVar1) { - uVar3 = uVar1; - } - } - - if (this->mUnk_114->vfunc_08(this) != 0) { - this->mUnk_10 = this->mUnk_114->func_0203d1b4(); - } -} - -ARM void MsgProc_Type2::vfunc_3C(unk32 param_2) { - if (this->mUnk_15c > 0 && this->mUnk_122 != 1) { - if (this->func_0203de14(param_2) != 0) { - this->vfunc_40(0, 0); - } - } -} - -ARM void MsgProc_Type2::vfunc_40(unk32 param_2, unk32 param_3) { - param_2 += this->mUnk_166; - param_3 += this->mUnk_168; - - this->func_0203c4ac(param_2 + this->mUnk_16a, param_3 + this->mUnk_16c); - this->UnkStruct_02038aa0::vfunc_30(param_2, param_3); -} - -ARM bool MsgProc_Type2::vfunc_14(unk32 param_2, unk32 param_3) { - return this->UnkStruct_0203dae0::vfunc_14(param_2 + this->mUnk_162, param_3); -} - +ARM MsgProc_Type2::MsgProc_Type2() {} +ARM void MsgProc_Type2::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) {} +ARM void MsgProc_Type2::vfunc_40(unk32 param_2, unk32 param_3) {} +ARM void MsgProc_Type2::vfunc_44(s32 touchLastX, s32 touchLastY) {} +ARM void MsgProc_Type2::func_0203c4ac(unk32, unk32) {} +ARM bool MsgProc_Type2::vfunc_14(s32 param1, s32 param2) {} +ARM void MsgProc_Type2::func_0203c5dc() {} ARM MsgProc_Type2::~MsgProc_Type2() {} diff --git a/src/Main/Message/func_0203c72c.cpp b/src/Main/Message/func_0203c72c.cpp index 85b68f7c..89b045a5 100644 --- a/src/Main/Message/func_0203c72c.cpp +++ b/src/Main/Message/func_0203c72c.cpp @@ -7,32 +7,23 @@ #include "System/SysNew.hpp" #include "global.h" -extern "C" void __cxa_vec_ctor(void *, unk32, unk32, void *, void *); - -// non-matching -ARM MsgProc_Type3::MsgProc_Type3(unk32 param_2, unk16 param_3, unk32 param_4) : - UnkStruct_02038aa0(1, 0) { - this->mUnk_162 = 1; - this->mUnk_164 = 0x1A; - this->mUnk_166 = 0xA6; - this->mUnk_168 = 0x1D; - this->mUnk_16a = 0; - this->mUnk_16c = 1; - this->mUnk_170 = -1; - this->mUnk_172 = -1; - this->mUnk_174 = -1; - - //! TODO: move instructions above in an inlined ctor (create a dedicated class for it). - //! The call below will be automatically generated. - __cxa_vec_ctor(this->mUnk_180, ARRAY_LEN(this->mUnk_180), sizeof(UnkClass_func_ov000_020d0644), - UnkClass_func_ov000_020d0644::func_020d060c, this->func_0203c83c); - +ARM MsgProc_Type3::MsgProc_Type3() : + UnkStruct_02038aa0(1, 0), + mUnk_162(1), + mUnk_164(0x1A), + mUnk_166(0xA6), + mUnk_168(0x1D), + mUnk_16a(0), + mUnk_16c(1), + mUnk_170(-1), + mUnk_172(0), + mUnk_174(-1) { this->mUnk_180[0].func_ov000_020d0644(0x1E, 0, 0x8A, 0, 0); this->mUnk_180[1].func_ov000_020d0644(0x1E, 1, 0x8B, 0, 0); this->mUnk_180[2].func_ov000_020d0644(0x1E, 2, 0x8C, 0, 0); this->mUnk_180[3].func_ov000_020d0644(0x1E, 3, 0x8D, 0, 0); } -ARM void MsgProc_Type3::func_0203c83c(void) {} +ARM UnkClass_func_ov000_020d0644::~UnkClass_func_ov000_020d0644() {} ARM MsgProc_Type3::~MsgProc_Type3() {} diff --git a/src/Main/Unknown/UnkStruct_02032f0c.cpp b/src/Main/Unknown/UnkStruct_02032f0c.cpp index 16e22b29..07476438 100644 --- a/src/Main/Unknown/UnkStruct_02032f0c.cpp +++ b/src/Main/Unknown/UnkStruct_02032f0c.cpp @@ -1,109 +1,33 @@ #include "Unknown/UnkStruct_02032f0c.hpp" #include "Unknown/UnkStruct_02035064.hpp" -extern "C" void Fill32(unk32, void *, unk32); -extern "C" void Fill16(unk32, void *, unk32); -extern "C" void func_020296e0(unk32 **, UnkStruct_MsgProc_Base_unk_2C **, unk32, unk32, unk32, unk32); -extern THUMB unk32 func_0202ab48(void); - -ARM UnkStruct_02032e7c::UnkStruct_02032e7c() { - this->mUnk_04 = NULL; - this->mUnk_08 = 0; - this->mUnk_0a = 0; - this->mUnk_0c = 0; - this->mUnk_0e = 0; - - if (func_0202ab48() == 0) { - this->mUnk_10 = 2; - } else { - this->mUnk_10 = 3; - } -} - -THUMB UnkStruct_02032f0c::UnkStruct_02032f0c() { - this->mUnk_04 = 0; - this->mUnk_08 = 0; - this->mUnk_0c = NULL; - this->mUnk_38 = 0; - this->mUnk_3c = 0; - this->mUnk_4a = 0; - this->mUnk_4c = 0; - this->mUnk_4d = 0; - this->mUnk_4e = 0; - this->mUnk_4f = 0; - this->mUnk_50 = 0; - this->mUnk_51 = 0; - Fill32(0, &this->mUnk_10, 0x18); - Fill32(0, &this->mUnk_28, 0x10); - Fill16(0, &this->mUnk_3e, 0xC); - this->mUnk_10 = NULL; - this->mUnk_2c = NULL; - this->mUnk_30 = 2; - this->mUnk_34 = 3; -} - -THUMB UnkStruct_02032f0c::~UnkStruct_02032f0c() {} - +ARM UnkStruct_02032f0c::UnkStruct_02032f0c() {} +UnkStruct_02032f0c::~UnkStruct_02032f0c() {} ARM void UnkStruct_02032f0c::func_02032f94() {} - -ARM u16 **UnkStruct_02032f0c::SetUnk_0c(u16 *value) { - this->mUnk_0c = value; - return &this->mUnk_0c; -} - -ARM u8 UnkStruct_02032f0c::func_02032fa4() { - return UnkStruct_02035064::func_02035428(this->mUnk_50); -} - -ARM s32 UnkStruct_02032f0c::func_02032fb4() { - return this->mUnk_2c[0]->mUnk_01 + this->mUnk_34; -} - -// non-matching -ARM bool UnkStruct_02032f0c::vfunc_14(s32 param1, s32 param2) { - s16 iVar1; - s16 iVar2; - - iVar1 = ((param1 + 0x7 + ((param1 + 0x7) >> 0x1D))) * 0x8; - iVar2 = ((param2 + 0x7 + ((param2 + 0x7) >> 0x1D))) * 0x8; - this->mUnk_4a = param1; - this->mUnk_4c = param2; - this->mUnk_14 = (iVar1 + (iVar1 >> 0x1D)) * 0x2000 >> 0x10; - this->mUnk_18 = (iVar2 + (iVar2 >> 0x1D)) * 0x2000 >> 0x10; - - return true; -} - -ARM void UnkStruct_02032f0c::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {} - -ARM void UnkStruct_02032f0c::vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) { - func_020296e0(&this->mUnk_10, this->mUnk_2c, param1, param2, param4, param3); -} - -ARM void UnkStruct_02032f0c::vfunc_10(u32 param1, unk32 param2) {} +ARM unk32 *UnkStruct_02032f0c::func_02032f98(unk32 param_2) {} +ARM u8 UnkStruct_02032f0c::func_02032fa4() {} +ARM s32 UnkStruct_02032f0c::func_02032fb4() {} +bool UnkStruct_02032f0c::vfunc_14(s32 param1, s32 param2) {} +void UnkStruct_02032f0c::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {} +void UnkStruct_02032f0c::vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) {} +void UnkStruct_02032f0c::vfunc_10(u32 param1, unk32 param2) {} ARM void UnkStruct_02032f0c::func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5) {} -ARM unk32 UnkStruct_02032f0c::vfunc_18(s32 param1) {} -ARM unk32 UnkStruct_02032f0c::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {} -ARM unk32 UnkStruct_02032f0c::vfunc_20(s32 param1, s32 *param2) {} +unk32 UnkStruct_02032f0c::vfunc_18(s32 param1) {} +unk32 UnkStruct_02032f0c::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {} +unk32 UnkStruct_02032f0c::vfunc_20(s32 param1, s32 *param2) {} ARM void UnkStruct_02032f0c::func_020334b4(u32 param1, s32 param2, s32 param3, s32 param4) {} ARM void UnkStruct_02032f0c::func_02033628(unk32 param1, u16 *param2) {} ARM u32 UnkStruct_02032f0c::func_0203369c(u16 *param1, s32 param2) {} ARM void UnkStruct_02032f0c::func_02033780(s32 param1) {} - -ARM s32 UnkStruct_02032f0c::func_020337d8(s32 param1) { - return this->mUnk_2c[0]->mUnk_08[1] * param1 + (param1 - 1) * this->mUnk_34; -} - +ARM s32 UnkStruct_02032f0c::func_020337d8(s32 param1) {} ARM s32 UnkStruct_02032f0c::func_020337fc(s16 *param1, s32 param2) {} ARM void UnkStruct_02032f0c::func_020338a8(s32 param1, unk32 param2) {} ARM void UnkStruct_02032f0c::func_020338d0(unk32 *param1, unk32 param2) {} ARM s32 UnkStruct_02032f0c::func_02033904(unk32 param1, unk32 param2) {} ARM s32 UnkStruct_02032f0c::func_02033938(unk32 param1) {} ARM s32 UnkStruct_02032f0c::func_0203396c(u16 *param1) {} -ARM bool UnkStruct_02032f0c::vfunc_24(s16 **param1) {} +bool UnkStruct_02032f0c::vfunc_24(s16 **param1) {} ARM u16 *UnkStruct_02032f0c::func_02033b0c(s32 param1) {} ARM bool UnkStruct_02032f0c::func_02033c6c() {} ARM unk32 UnkStruct_02032f0c::func_02033c88(u32 param1) {} ARM s32 UnkStruct_02032f0c::func_02033cbc(s16 *param1) {} - -ARM UnkStruct_02032e7c::~UnkStruct_02032e7c() {} diff --git a/src/Main/Unknown/UnkStruct_02038aa0.cpp b/src/Main/Unknown/UnkStruct_02038aa0.cpp index f4ed125b..88160b15 100644 --- a/src/Main/Unknown/UnkStruct_02038aa0.cpp +++ b/src/Main/Unknown/UnkStruct_02038aa0.cpp @@ -36,20 +36,20 @@ THUMB void UnkStruct_02038aa0::func_02038b28(void) { this->mUnk_114->mUnk_04 = NULL; } -ARM void UnkStruct_02038aa0::vfunc_4c(u32 param1, unk32 param2) { - this->UnkStruct_0203dae0::vfunc_10(param1, param2); -} +// ARM void UnkStruct_02038aa0::vfunc_4c(u32 param1, unk32 param2) { +// this->UnkStruct_0203dae0::vfunc_10(param1, param2); +// } -ARM void UnkStruct_02038aa0::vfunc_10() {} +ARM void UnkStruct_02038aa0::vfunc_10(u32 param1, unk32 param2) {} ARM void UnkStruct_02038aa0::func_02038b40() { this->mUnk_15c = -1; this->mUnk_128.mUnk_04 = NULL; this->func_0203dc10(0); - this->vfunc_48(); + // this->vfunc_48(); } -ARM void UnkStruct_02038aa0::vfunc_48() {} +// ARM void UnkStruct_02038aa0::vfunc_48() {} ARM void UnkStruct_02038aa0::func_02038b74(void) {} @@ -73,26 +73,26 @@ ARM bool UnkStruct_02038aa0::func_02038b78() { } } -ARM unk32 UnkStruct_02038aa0::vfunc_34(s32 param1) { - s16 iVar1; - unk32 iVar2; - unk32 iVar3; - unk32 uVar4; +// ARM unk32 UnkStruct_02038aa0::vfunc_34(s32 param1) { +// s16 iVar1; +// unk32 iVar2; +// unk32 iVar3; +// unk32 uVar4; - iVar2 = this->func_02038cf4(); - iVar3 = this->func_02038d10(); - iVar1 = ((this->mUnk_158.y - (this->mUnk_18 << 3) / 2)); +// iVar2 = this->func_02038cf4(); +// iVar3 = this->func_02038d10(); +// iVar1 = ((this->mUnk_158.y - (this->mUnk_18 << 3) / 2)); - if ((param1 < iVar2 + iVar1) || (iVar2 + iVar3 + iVar1 <= param1)) { - return -1; - } +// if ((param1 < iVar2 + iVar1) || (iVar2 + iVar3 + iVar1 <= param1)) { +// return -1; +// } - iVar3 = this->mUnk_34; - uVar4 = this->func_02032fb4(); - iVar2 = (param1 - iVar1) - iVar2; +// iVar3 = this->mUnk_34; +// uVar4 = this->func_02032fb4(); +// iVar2 = (param1 - iVar1) - iVar2; - return func_01ff9b4c(iVar2 + iVar3 / 2, uVar4); -} +// return func_01ff9b4c(iVar2 + iVar3 / 2, uVar4); +// } ARM s32 UnkStruct_02038aa0::func_02038cb8(s32 param1) { u8 bVar1 = this->mUnk_2c[0]->mUnk_08[1]; @@ -116,7 +116,7 @@ ARM s32 UnkStruct_02038aa0::func_02038d10() { ARM void UnkStruct_02038aa0::vfunc_2c() {} -ARM void UnkStruct_02038aa0::vfunc_30(unk32 param_2, unk32 param_3) { +ARM void UnkStruct_02038aa0::vfunc_30() { if (this->mUnk_15c > 0) { this->func_0203e090(); } else { @@ -128,114 +128,114 @@ ARM bool UnkStruct_02038aa0::func_02038ef4(s32 param1, s32 param2) { unk32 local_14; unk32 local_18; - this->vfunc_70(&local_14, &local_18); + // this->vfunc_70(&local_14, &local_18); this->func_0203e1b0(local_14 + param1, local_18 + param2, 0); } ARM void UnkStruct_02038aa0::func_02038f40(void) {} -ARM void UnkStruct_02038aa0::vfunc_44(s32 touchLastX, s32 touchLastY) {} - -// non-matching -ARM void UnkStruct_02038aa0::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) { - int iVar1; - - this->pInfoEntry = param1; - this->mUnk_08 = param4; - this->mUnk_15f = -1; - this->mUnk_15c = 0x78; - this->mUnk_15e = param4->mUnk_0c; - this->func_0203dcfc(0, 0, this->mUnk_11e, 2); - this->mUnk_128.func_02038858(param2); - this->mUnk_30 = this->mUnk_150[4] + 5; - - this->vfunc_54(); - // this->vfunc_60(0, 0, (unk32)param3); - // this->vfunc_64(param3); - - if (gGame.mModeId == GameModeId_Adventure) { - if (this->func_02032fa4() == 0) { - data_027e103c->func_ov000_020cfc9c(1, 0); - } else { - data_027e103c->func_ov000_020cfc9c(0, 1); - } - } - - this->vfunc_5C(); -} +// ARM void UnkStruct_02038aa0::vfunc_44(s32 touchLastX, s32 touchLastY) {} // non-matching -ARM void UnkStruct_02038aa0::vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) { - u16 sVar1; - bool bVar5; - - sVar1 = param_2[0]; - bVar5 = (sVar1 == 0xA || sVar1 == 0x20) || sVar1 == 0x3000; - - if (bVar5 && this->mUnk_150[2] != 0) { - this->mUnk_150[2] = 1; - } else { - this->mUnk_150[2] = 0; - } - - // this->mUnk_150[2] = bVar5; - - // return? - this->func_02033360(); -} +// ARM void UnkStruct_02038aa0::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) { +// int iVar1; + +// this->pInfoEntry = param1; +// this->mUnk_08 = param4; +// this->mUnk_15f = -1; +// this->mUnk_15c = 0x78; +// this->mUnk_15e = param4->mUnk_0c; +// this->func_0203dcfc(0, 0, this->mUnk_11e, 2); +// this->mUnk_128.func_02038858(param2); +// this->mUnk_30 = this->mUnk_150[4] + 5; + +// this->vfunc_54(); +// // this->vfunc_60(0, 0, (unk32)param3); +// // this->vfunc_64(param3); + +// if (gGame.mModeId == GameModeId_Adventure) { +// if (this->func_02032fa4() == 0) { +// data_027e103c->func_ov000_020cfc9c(1, 0); +// } else { +// data_027e103c->func_ov000_020cfc9c(0, 1); +// } +// } + +// this->vfunc_5C(); +// } + +// // non-matching +// ARM void UnkStruct_02038aa0::vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) { +// u16 sVar1; +// bool bVar5; + +// sVar1 = param_2[0]; +// bVar5 = (sVar1 == 0xA || sVar1 == 0x20) || sVar1 == 0x3000; + +// if (bVar5 && this->mUnk_150[2] != 0) { +// this->mUnk_150[2] = 1; +// } else { +// this->mUnk_150[2] = 0; +// } + +// // this->mUnk_150[2] = bVar5; + +// // return? +// this->func_02033360(); +// } ARM unk32 UnkStruct_02038aa0::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {} ARM unk32 UnkStruct_02038aa0::vfunc_20(s32 param1, s32 *param2) {} ARM void UnkStruct_02038aa0::func_02039208(unk16 param1) {} -ARM void UnkStruct_02038aa0::vfunc_08(s32 param1, unk32 *param2, s16 *param3, unk32 param4) { - this->mUnk_15c = 10; - this->mUnk_150[2] = 1; - this->UnkStruct_0203dae0::vfunc_08(param1, (unk32) param2, param3, param4); -} +// ARM void UnkStruct_02038aa0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) { +// this->mUnk_15c = 10; +// this->mUnk_150[2] = 1; +// this->UnkStruct_0203dae0::vfunc_08(param1, param2, param3, param4); +// } ARM unk32 UnkStruct_02038aa0::func_02039250() {} -ARM void UnkStruct_02038aa0::vfunc_54() {} -ARM void UnkStruct_02038aa0::vfunc_58() {} -ARM void UnkStruct_02038aa0::vfunc_60() {} -ARM void UnkStruct_02038aa0::vfunc_64() {} - -ARM s32 UnkStruct_02038aa0::vfunc_68(unk32 param1) { - switch (param1) { - case 0: - break; - case 1: - this->mUnk_34 = 4; - break; - case 2: - this->mUnk_34 = 6; - break; - case 3: - this->mUnk_34 = 1; - break; - case 4: - this->mUnk_34 = 0; - break; - default: - break; - } - - return ((this->mUnk_18 << 3) - this->func_020337d8(param1)) / 2; -} +// ARM void UnkStruct_02038aa0::vfunc_54() {} +// ARM void UnkStruct_02038aa0::vfunc_58() {} +// ARM void UnkStruct_02038aa0::vfunc_60() {} +// ARM void UnkStruct_02038aa0::vfunc_64() {} + +// ARM s32 UnkStruct_02038aa0::vfunc_68(unk32 param1) { +// switch (param1) { +// case 0: +// break; +// case 1: +// this->mUnk_34 = 4; +// break; +// case 2: +// this->mUnk_34 = 6; +// break; +// case 3: +// this->mUnk_34 = 1; +// break; +// case 4: +// this->mUnk_34 = 0; +// break; +// default: +// break; +// } + +// return ((this->mUnk_18 << 3) - this->func_020337d8(param1)) / 2; +// } ARM void UnkStruct_02038aa0::func_02039440(unk32 param1, unk32 param2) {} -ARM void UnkStruct_02038aa0::vfunc_6c(s32 *param1, s32 *param2) {} +// ARM void UnkStruct_02038aa0::vfunc_6c(s32 *param1, s32 *param2) {} -ARM void UnkStruct_02038aa0::vfunc_70(s32 *param1, s32 *param2) { - this->vfunc_6C(param1, param2); - *param1 += this->mUnk_158.x; - *param2 += this->mUnk_158.y; -} +// ARM void UnkStruct_02038aa0::vfunc_70(s32 *param1, s32 *param2) { +// this->vfunc_6C(param1, param2); +// *param1 += this->mUnk_158.x; +// *param2 += this->mUnk_158.y; +// } ARM bool UnkStruct_02038aa0::func_0203951c() {} -ARM bool UnkStruct_02038aa0::vfunc_38() {} +// ARM bool UnkStruct_02038aa0::vfunc_38() {} -ARM void UnkStruct_02038aa0::vfunc_0c(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) { - this->func_0203dc10(1, param_3); - this->func_02033190(param_2, param_3, param_4, param_5); -} +// ARM void UnkStruct_02038aa0::vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) { +// this->func_0203dc10(1, param2); +// this->func_02033190(param1, param2, param3, param4); +// } diff --git a/src/Main/Unknown/UnkStruct_020397f8.cpp b/src/Main/Unknown/UnkStruct_020397f8.cpp index 03011bfe..7355c990 100644 --- a/src/Main/Unknown/UnkStruct_020397f8.cpp +++ b/src/Main/Unknown/UnkStruct_020397f8.cpp @@ -6,1020 +6,39 @@ #include "Player/TouchControl.hpp" #include "Save/AdventureFlags.hpp" -extern "C" void func_ov000_020d0460(void *); -extern "C" void func_0203efd8(void *, void *); -extern "C" void func_0203ee48(void *); -extern "C" void func_ov018_02169634(UnkStruct_020397f8 *); - -extern unk16 data_02056a0e[]; -extern u8 data_02056a08[]; - -THUMB UnkStruct_020397f8::UnkStruct_020397f8() : - UnkStruct_02038aa0(0, 0), - mUnk_164(NULL) { - UnknownMsgChoiceStruct *puVar3; - - this->mUnk_410.mUnk_00 = this; - this->mUnk_414 = 0; - this->mUnk_418 = NULL; - this->mUnk_41c = 0; - this->mUnk_41e = 0; - this->mUnk_420 = 0; - this->mUnk_424.mUnk_00 = this; - - // ??? - puVar3 = this->mUnk_428; - do { - puVar3->mUnk_00 = NULL; - puVar3 += 1; - } while ((unk32 *) puVar3 < (unk32 *) this->mUnk_528); - - func_0203ee48(&this->mUnk_424); - func_ov000_020d0460(&this->mUnk_534); - this->mUnk_53c = 0; - this->mUnk_540 = ~0x7FFF; - this->mUnk_544 = 3; - func_ov000_020d0460(&this->mUnk_548); - this->mUnk_550 = 0; - this->mUnk_554 = 0x00016000; - this->mUnk_558 = 3; - this->mUnk_55c = -1; - this->mUnk_560 = -1; - this->mUnk_56c = 0; - this->mUnk_56e = 0; - this->mUnk_570 = 0; - this->mUnk_572 = 0; - this->mUnk_574 = 0; - this->mUnk_576 = 0; - this->mUnk_578 = 3; - this->mUnk_57a = 0; - this->mUnk_57b = -1; - this->mUnk_57c = 0; - this->mUnk_57d = 0; - this->mUnk_57e = 0; - this->mUnk_57f = 0; - this->mUnk_580 = 0; - this->mUnk_581 = 0; - this->mUnk_582 = 0; - this->mUnk_583 = 0; - this->mUnk_585 = 0; - this->mUnk_586 = 0; - func_0203efd8(&this->mUnk_588, this); - this->mUnk_124 = (UnkSubClass1_unk_124 *) &this->mUnk_588; - this->func_02039ca8(); - - if (this->func_02032fa4() != 0) { - this->mUnk_168.func_020350b4(0x39, 0, 2, 0, 0); - this->mUnk_1f0.func_020350b4(0x33, 0, 2, 0, 0); - this->mUnk_278.func_020350b4(0x33, 1, 2, 0, 0); - } else { - this->mUnk_168.func_020350b4(0x34, 0, 2, 0, 0); - this->mUnk_1f0.func_020350b4(0x32, 0, 2, 0, 0); - this->mUnk_278.func_020350b4(0x32, 1, 2, 0, 0); - } - - this->mUnk_168.func_020351b8(true, false, false, false); - this->mUnk_1f0.func_020351b8(false, false, false, false); - this->mUnk_278.func_020351b8(false, false, false, false); -} - -THUMB void UnkStruct_020397f8::vfunc_4c() { - this->func_02038b28(); - this->func_0203dcfc(this->mUnk_50, 0, 0, 2); -} - -// non-matching -ARM void UnkStruct_020397f8::vfunc_2c() { - if (gGame.mUnk_101 != 0) { - if (((data_02056be4[data_027e077c.mUnk_0] & 1) != 0) != this->mUnk_50) { - return; - } - } - - this->func_02038d20(); - - if (this->mUnk_56c > 0) { - this->mUnk_56c--; - } - - if (this->mUnk_50 != ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0)) { - this->mUnk_57f = 0; - } - - if (this->mUnk_15c > 0) { - if ((this->mUnk_128.mUnk_04 == NULL || this->mUnk_128.mUnk_04[0] == 0) != 0) { - this->mUnk_424.func_0203ef78(this->mUnk_128.mUnk_08); - } - - this->func_0203be64(); - this->func_0203a35c(); - - if (this->mUnk_580 != 0) { - this->mUnk_168.func_0203516c(); - } - - if (this->mUnk_584 != 0) { - this->mUnk_300.func_0203516c(); - } - - if (this->mUnk_585 != 0) { - this->mUnk_388.func_0203516c(); - } - - if ((this->func_0203a2c0() != 0 && this->mUnk_57f == 0) && this->mUnk_56c <= 0) { - this->mUnk_1f0.func_0203516c(); - } - - if (this->mUnk_08 != NULL) { - bool value = this->mUnk_08->mUnk_1c; - - if ((value == 1) || (value == 2)) { - this->mUnk_278.func_0203516c(); - } - } - - if (this->mUnk_15e == 6) { - func_ov018_02169634(this); - } else { - this->mUnk_410.func_0203ebf8(); - } - } - - if (this->mUnk_15c == 1) { - if (this->mUnk_586 == ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0)) { - switch (this->mUnk_150[1]) { - case 0: - this->func_0203b0ec(1); - break; - case 2: - case 3: - if (this->func_0203a3e0() != 0) { - this->func_0203bd8c(this->mUnk_572); - } else { - this->func_0203b0ec(1); - } - break; - } - } - } -} - -ARM void UnkStruct_020397f8::func_02039ca8() { - s32 i; - - for (i = 0; i < ARRAY_LEN(this->mUnk_564); i++) { - this->mUnk_564[i] = 0x1A; - } -} - -ARM void UnkStruct_020397f8::vfunc_3c(unk32 param1) { - if (this->mUnk_15c > 0 && this->func_0203de14(param1) != 0) { - if (this->mUnk_124->mUnk_29 != 3) { - if ((this->mUnk_50 == 0) && func_ov000_02079e04() != 0) { - return; - } - - if (gGame.mUnk_101 != 0) { - if (((data_02056be4[data_027e077c.mUnk_0] & 1) != 0) != this->mUnk_50) { - return; - } - } - - this->vfunc_40(0, 0); - } - } -} - -// non-matching -ARM void UnkStruct_020397f8::vfunc_40(s32 param1, s32 param2) { - UnkStruct_02038aa0 *bVar1; - s8 cVar2; - unk32 iVar4; - unk32 iVar6; - unk32 iVar7; - unk32 iVar8; - unk32 uVar9; - unk32 iStack_a8; - unk32 iStack_a4; - unk32 local_a0; - unk32 local_9c; - unk32 local_98; - unk32 local_94; - unk32 local_90; - unk32 local_8c; - unk32 iVar5; - UnkStruct_01ffbe34 aStack_88; - UnkStruct_01ffbe34 aStack_68; - UnkStruct_01ffbe34 aStack_48; - - local_8c = 0; - local_90 = 0; - bVar1 = gMessageManager.mUnk_28[this->mUnk_50]; - - this->vfunc_6C(&local_8c, &local_90); - this->func_0203a188(local_8c + param1, local_90 + param2); - this->func_0203e1b0(param1 + local_8c + (this->mUnk_158.x - (this->mUnk_14 << 3) / 2), - param2 + local_90 + (this->mUnk_158.y - (this->mUnk_18 << 3) / 2), 0); - - if (this->mUnk_584 != 0) { - iVar5 = this->mUnk_18 << 3; - - if (this->mUnk_580 != 0) { - iVar5 = -0xC; - } else { - iVar5 = 0; - } - - this->mUnk_300.func_02034a1c(param1 + local_8c + this->mUnk_55c + (this->mUnk_158.x - (this->mUnk_14 << 3) / 2), - iVar5 + param2 + local_90 + this->mUnk_560 + ((this->mUnk_158.y - (iVar5 / 2))), 0); - } - - if (this->mUnk_585 != 0 && ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0)) { - switch (gGame.mModeId) { - case GameModeId_Adventure: - if (data_027e0cbc.func_0203d7e0(3) != 0) { - this->mUnk_388.func_02034b0c(0xBE, 0, 0, 0, 0); - } - break; - case GameModeId_Battle: - if (data_027e0cbc.func_0203d7e0(0x58) != 0) { - this->mUnk_388.func_02034b0c(0x013B, 0, 0, 0, 0); - } - break; - } - } - - iVar5 = this->func_02032fa4(); - iVar8 = bVar1->mUnk_18; - uVar9 = data_02056a04[iVar8]; - // func_0203489c(uVar9, data_02056a16[iVar8], &local_94, &local_98); - iVar6 = this->mUnk_158.x - local_94; - iVar7 = this->mUnk_158.y - local_98; - - if ((this->mUnk_15e != 7) && (this->func_0203a2c0() != 0)) { - func_01ffbe34(&aStack_48); - func_020347b0(uVar9, data_02056a10[iVar8], &local_9c, &local_a0, 4, 4); - local_9c += param1 + local_8c + iVar6; - local_a0 += param2 + local_90 + iVar7; - - if (data_027e0c38[5] == 1) { - iVar8 = func_0202ab48(); - - if (iVar8 == 0) { - iVar8 = 0; - } else { - iVar8 = -3; - } - - local_9c = (0x108 - local_9c) + iVar8; - } - - if ((this->mUnk_57f == 0) && (this->mUnk_56c <= 0)) { - func_01ffbe34(&aStack_68); - aStack_68.mUnk_0a = 1; - this->mUnk_1f0.func_02034a1c(local_9c, local_a0, &aStack_68); - } else { - // func_02034984(iVar5 != 0 ? 0x11F : 0x18, 0, local_9c, local_a0 + 2, 0); - } - } - - if (this->mUnk_08 != 0) { - if ((this->mUnk_08->mUnk_1c == 1 || this->mUnk_08->mUnk_1c == 2) == 0) { - return; - } - - func_01ffbe34(&aStack_88); - aStack_88.mUnk_0a = 1; - func_02034698(iVar5 != 0 ? 0x11F : 0x18, 2, &iStack_a4, &iStack_a8); - iStack_a4 += param1 + local_8c + iVar6; - iStack_a8 += param2 + local_90 + iVar7; - this->mUnk_278.func_02034a1c(iStack_a4, iStack_a8, &aStack_88); - } -} - -ARM void UnkStruct_020397f8::func_0203a188(s32 param1, s32 param2) { - unk16 sVar1; - unk16 sVar2; - unk32 iVar3; - unk32 iVar4; - unk32 uVar5; - unk32 iVar6; - unk32 iStack_54; - unk32 iStack_50; - unk32 iStack_4c; - unk32 iStack_48; - UnkStruct_01ffbe34 aStack_44; - unk32 uStack_24; - - if (this->mUnk_15e == 7) { - return; - } - - // (short)(ushort)*(byte *)((int)gMessageManager.mUnk_28[(this->mUnk_50 - 0x28) * 0x18]; - - iVar6 = gMessageManager.mUnk_10 + this->mUnk_50; - // uStack_24 = param_4; - - if (data_027e0cbc.func_0203d7e0(data_02056a00[iVar6]) != 0) { - uVar5 = data_02056a04[iVar6]; - - func_0203489c(uVar5, data_02056a16[iVar6], &iStack_48, &iStack_4c); - iVar3 = iStack_50 + (this->mUnk_158.x - iStack_48); - - func_02034698(uVar5, data_02056a0e[iVar6], &iStack_50, &iStack_54); - iVar4 = iStack_54 + (this->mUnk_158.y - iStack_4c); - - func_01ffbe34(&aStack_44); - aStack_44.mUnk_0a = 1; - - if (this->mUnk_580 != 0) { - this->mUnk_168.func_02034a1c(param1 + iVar3, param2 + iVar4, &aStack_44); - } else { - func_02034984(uVar5, data_02056a08[iVar6], param1 + iVar3, param2 + iVar4); - } - } -} - -// non-matching -ARM bool UnkStruct_020397f8::func_0203a2c0() { - if ((this->mUnk_150[1] != 1 && this->mUnk_150[1] != 2) && (this->func_02039250() != 0 && this->func_02038b78() != 0)) { - return true; - } - - return false; -} - -ARM unk32 UnkStruct_020397f8::func_0203a30c() { - return this->mUnk_574 / this->pInfoEntry->mUnk_06; -} - -// non-matching (regalloc) -ARM void UnkStruct_020397f8::vfunc_48() { - if (this->mUnk_164 != NULL && this->mUnk_164->mUnk_15c > 0) { - this->func_02038b40(); - } - - this->mUnk_410.func_0203ec34(); -} - -ARM void UnkStruct_020397f8::func_0203a35c() { - if ((this->mUnk_57c == 1 || this->mUnk_150[3] != 0) || - (this->mUnk_128.mUnk_04 == NULL || this->mUnk_128.mUnk_04[0] == 0) != 0) { - if (this->func_0203a3e0()) { - s16 mUnk_56e = this->mUnk_56e; - s16 mUnk_570 = this->mUnk_570; - UnkStruct_020397f8 *mUnk_164 = this->mUnk_164; - - mUnk_164->mUnk_168.mUnk_10 = mUnk_56e; - mUnk_164->mUnk_168.mUnk_14 = mUnk_570; - this->mUnk_164->func_02039208(4); - } - } else { - this->mUnk_164->func_02038b40(); - } -} - -ARM bool UnkStruct_020397f8::func_0203a3e0() { - return this->mUnk_164->mUnk_168.mUnk_06 > 0; -} - -// non-matching -ARM void UnkStruct_020397f8::vfunc_44(s32 touchLastX, s32 touchLastY) { - unk32 iVar2; - unk32 iVar5; - unk32 iStack_14; - unk32 iStack_18; - - if (this->mUnk_15c <= 0 || this->func_0203951c() == 0) { - return; - } - - iStack_14 = 0; - iStack_18 = 0; - - this->vfunc_6C(&iStack_14, &iStack_18); - - iVar5 = touchLastX - iStack_14; - iVar2 = touchLastY - iStack_18; - - if ((data_027e103c != 0 && data_027e103c->mUnk_1c == 0x8F) || (data_027e077c.mUnk_0 != data_027e077c.mUnk_4)) { - return; - } - - if ((data_02056be4[data_027e077c.mUnk_0] & 2) == 0) { - if ((gTouchControl.mFlags & 1) != 0) { - if (this->mUnk_50 == 0 && data_027e0d38 != 0) { - if (func_ov000_02079e04() == 0 && data_027e0e28->func_ov000_0207bc48() == 0) { - if (gGame.mUnk_101 == 0 && data_027e103c->mUnk_24 == 0) { - return; - } - } - } - - if (this->func_0203a6d0(iVar5, iVar2) == 0 && this->func_0203a2c0() != 0) { - this->mUnk_57f = 1; - } - } else { - if (gTouchControl.mTouch != 0) { - this->func_0203a6d0(iVar5, iVar2); - return; - } - - if (gTouchControl.mTouch == 0) { - switch (this->mUnk_150[1]) { - case 3: - case 4: - break; - case 5: - if (data_027e103c->mUnk_20 == 3) { - this->func_0203b0ec(1); - } - break; - case 6: - if (data_027e103c->mUnk_20 == 5) { - this->func_0203b0ec(1); - } - break; - case 7: - break; - case 2: - //! TODO: fixme - // if (this->mUnk_164->mUnk_168.mUnk_06 <= 0) { - // if ((gTouchControl.mFlags & 2) != 0) { - // this->mUnk_128.mUnk_14 = 0; - - // if (this->func_0203b0bc() != 0) { - // this->func_0203b0ec(1); - // } - - // this->mUnk_1f0.mUnk_5c.mUnk_08 = 0; - // this->mUnk_1f0.func_020352d8(); - // } - // } - break; - case 0: - case 1: - default: - if ((gTouchControl.mFlags & 2) != 0) { - this->mUnk_128.mUnk_14 = 0; - - if (this->func_0203b0bc() != 0) { - this->func_0203b0ec(1); - } - - this->mUnk_1f0.mUnk_5c.mUnk_08 = 0; - this->mUnk_1f0.func_020352d8(); - } - break; - } - } - } - } -} - -ARM bool UnkStruct_020397f8::func_0203a6d0(unk32 param1, unk32 param2) { - unk32 iVar1; - unk32 uVar2; - UnkStruct_0203b264 *piVar3; - - if (this->mUnk_164->mUnk_168.mUnk_06 > 0 && this->mUnk_164->mUnk_15c <= 0) { - return false; - } - - iVar1 = this->vfunc_34(param2); - piVar3 = NULL; - - if (!(iVar1 < 0) && iVar1 < 4) { - piVar3 = this->mUnk_424.func_0203eeb0(iVar1, param1); - } - - if (piVar3 != NULL && ((piVar3->mUnk_0[3] << 0x10) | ((u16 *) piVar3->mUnk_0)[2]) == 0x00FF0002) { - uVar2 = this->func_02038cb8(iVar1); - this->mUnk_410.func_0203ec4c(piVar3, uVar2, - (s16) (this->mUnk_158.x - ((this->mUnk_14 << 3) / 2)) + iVar1 + this->mUnk_56e, - (s16) (this->mUnk_158.y - ((this->mUnk_18 << 3) / 2)) + iVar1 + this->mUnk_570); - - this->mUnk_57f = 0; - return true; - } - - return false; -} - -// non-matching -ARM void UnkStruct_020397f8::vfunc_50(EntryINF1 *param1, unk32 param2, s32 *param3, unk32 param4) { - bool bVar5; - bool bVar2; - int iVar4; - int iVar6; - s16 temp; - - iVar6 = param3[0]; - - if (data_027e0c54 != 0) { - UnkStruct_020397f8 *pVar4 = gMessageManager.func_02036700(); - - if (pVar4 != NULL && pVar4->mUnk_15c > 0) { - this->func_02038b40(); - } - } - - if (gGame.mModeId == GameModeId_Adventure && data_027e0d38->func_ov000_02078b40() == 2 && - func_ov003_020f3f94(data_ov009_0211f5b4) == 0) { - UnkStruct_020397f8 *pVar4 = (UnkStruct_020397f8 *) gMessageManager.mUnk_28[4]; - - if (pVar4 != NULL && pVar4->mUnk_15c > 0) { - this->func_02038b40(); - } - } - - this->mUnk_586 = (data_02056be4[data_027e077c.mUnk_0] & 1) != 0; - temp = param3[8]; - - if (temp >= 0 && param3[9] >= 0) { - temp = param3[10]; - } - - if (temp < 0) { - this->mUnk_57b = temp; - } else { - this->mUnk_57b = 0; - } - - // this->func_02038f44(param1, param2, param3, param4, iVar6); - this->mUnk_574 = 0; - - if (data_027e0d38 != 0 && (data_02056be4[data_027e077c.mUnk_0] & 1) != 0 && (param3[11])) { - data_027e103c->func_ov000_020cf284(0x80, 0); - } -} - -// switch decomp issue +ARM UnkStruct_020397f8::UnkStruct_020397f8() {} +ARM void UnkStruct_020397f8::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) {} +ARM void UnkStruct_020397f8::vfunc_2c() {} +ARM void UnkStruct_020397f8::func_02039ca8() {} +ARM void UnkStruct_020397f8::vfunc_40(unk32 param_2, unk32 param_3) {} +ARM void UnkStruct_020397f8::vfunc_44(s32 touchLastX, s32 touchLastY) {} +ARM void UnkStruct_020397f8::func_0203a188(s32 param1, s32 param2) {} +ARM bool UnkStruct_020397f8::func_0203a2c0() {} +ARM unk32 UnkStruct_020397f8::func_0203a30c() {} +ARM void UnkStruct_020397f8::vfunc_4c(u32 param1, unk32 param2) {} +ARM void UnkStruct_020397f8::func_0203a35c() {} +ARM bool UnkStruct_020397f8::func_0203a3e0() {} +ARM void UnkStruct_020397f8::vfunc_48() {} +ARM bool UnkStruct_020397f8::func_0203a6d0(unk32 param1, unk32 param2) {} ARM void UnkStruct_020397f8::vfunc_54() {} - -ARM void UnkStruct_020397f8::vfunc_5c() { - if (this->mUnk_15f == 0 || this->pInfoEntry->mUnk_06 <= 2) { - this->mUnk_168.mUnk_5c.mUnk_08 = this->mUnk_168.mUnk_7c; - this->mUnk_168.func_020352d8(); - } else { - this->mUnk_168.mUnk_5c.mUnk_08 = 0; - this->mUnk_168.func_020352d8(); - this->mUnk_168.func_020351b8(1, 0, 0, 0); - } -} - -// non-matching -ARM void UnkStruct_020397f8::vfunc_58() { - bool bVar1; - s8 *puVar2; - int iVar3; - char *pcVar4; - - if (this->mUnk_160 != 0) { - if (data_027e103c != NULL) { - if (data_027e103c->func_ov000_020cf4bc() != 0) { - puVar2 = (s8 *) data_027e103c->func_ov000_020cef9c(); - - if ((puVar2 + 0x244) != NULL || (puVar2[0x250] == '\x02')) { - puVar2 = (s8 *) data_027e103c->func_ov000_020cef9c(); - - if ((UnkStruct_020397f8 *) (puVar2 + 0x244) == this) { - data_027e103c->func_ov000_020cfb38(); - } - } - } - - if (this->mUnk_581 != 0 && data_027e103c->func_ov000_020cf488() != 0) { - data_027e103c->func_ov000_020cfa24(0, 0); - this->mUnk_581 = 0; - } - - if (this->mUnk_582 != 0) { - data_027e103c->func_ov000_020cfe40(0, 2); - this->mUnk_582 = 0; - } - - if (this->mUnk_583 != 0) { - data_027e103c->func_ov005_02104028(0); - this->mUnk_583 = 0; - } - } - - // if (gGame.mModeId == GameModeId_Adventure && func_ov000_02079e04() && (data_027e1054.mUnk_04 + 0x99) != 0 && - // (data_027e077c.mUnk_0 != 0x39 || data_027e103c->func_ov000_020cf0bc())) { - // data_027e1054.func_ov003_020f4874(); - // data_027e103c->func_ov005_02103f8c(data_02057ed4); - // } - } - - this->func_02039398(); -} - -ARM bool UnkStruct_020397f8::func_0203b0bc() { - return this->mUnk_57f != 0 && data_027e077c.mUnk_0 == data_027e077c.mUnk_4; -} - -// non-matching -ARM s32 UnkStruct_020397f8::func_0203b0ec(u32 param1) { - s32 iVar4; - u16 *puVar2; - u32 uVar3; - s32 unaff_r6; - bool bVar1; - - iVar4 = 0; - bVar1 = false; - - uVar3 = param1; - - if (((data_02056be4[data_027e077c.mUnk_0] & 1) == 0)) { - uVar3 = 0; - } else { - uVar3 = 1; - } - - unaff_r6 = this->mUnk_50 == uVar3; - - this->mUnk_410.func_0203ec34(); - this->mUnk_585 = 0; - this->mUnk_584 = 0; - - if (this->mUnk_150[3] != 0) { - iVar4 = 1; - this->mUnk_56c = this->mUnk_578; - bVar1 = true; - this->mUnk_15c = 0x78; - } else { - if ((this->mUnk_128.mUnk_04 == NULL || this->mUnk_128.mUnk_04[0] == 0) != 0) { - this->func_02038b40(); - - if (data_027e0d38 != 0) { - data_027e103c->func_ov000_020cf224(1); - data_027e103c->func_ov000_020cf2a0(1); - } - - if (this->mUnk_08 == NULL) { - this->vfunc_58(); - } - - iVar4 = 1; - } - } - - if (iVar4 != 0) { - if (bVar1) { - this->vfunc_54(); - } - - if (unaff_r6 != 0) { - data_027e0d04.func_0203fe60(0); - } - } - - if (((param1 != 0 && iVar4 != 0) && unaff_r6 != 0) && this->mUnk_15e != 7) { - data_ov000_020eec9c.func_ov000_020d77e4(0x19); - } - - return iVar4; -} - -// non-matching (regalloc) -ARM unk32 UnkStruct_020397f8::vfunc_18(UnkStruct_0203b264 *param1, unk32 param2, unk32 param3) { - u16 sVar1; - u32 uVar4; - s32 unaff_r4; - bool bVar5; - - if (this->func_0203951c() == 0) { - return 1; - } - - if (this->mUnk_580 != 0) { - unaff_r4 = -0xC; - } else { - unaff_r4 = 0; - } - - sVar1 = param1->mUnk_4[0]; - - if (sVar1 != 0x1A || sVar1 == 0x1A) { - bVar5 = true; - - if (sVar1 == 0x1A) { - uVar4 = (param1->mUnk_0[3] << 0x10) | ((u16 *) param1->mUnk_0)[2]; - - if (((uVar4 == 0x0001000A || uVar4 == 0x00020000) || uVar4 == 0x00FF0000)) { - bVar5 = false; - } - } - - if (bVar5) { - this->mUnk_424.func_0203ee80(this->mUnk_128.mUnk_08); - } - } - - return this->func_0203e284(param1, param2, param3 + unaff_r4); -} - -// non-matching -ARM unk32 UnkStruct_020397f8::vfunc_1c(u16 *param1, UnkStruct_0203b264 *param2, unk8 param3, unk32 param4) { - int iVar1; - u16 *psVar3; - - psVar3 = param2->mUnk_4; - - if (psVar3[0] == 10) { - this->mUnk_424.func_0203ef78(this->mUnk_128.mUnk_08, psVar3[0], param3); - this->mUnk_574++; - - if (this->func_0203a30c() == 0) { - this->mUnk_150[3] = 1; - } - } - - if (this->mUnk_15e == 6) { - return 1; - } - - switch (this->mUnk_57a) { - case 0: - return this->func_0203905c(param1, param2, param3, param4); - case 1: - UnknownMsgChoiceStruct *pChoiceData; - s32 i = this->func_0203a30c(); - pChoiceData = &this->mUnk_428[this->mUnk_528[i]]; - return this->mUnk_164->func_0203cb5c( - *param1, (((pChoiceData->mUnk_00->mUnk_0[3] << 0x10) | ((u16 *) pChoiceData->mUnk_00->mUnk_0)[2]) + ~0xFFFE)); - default: - break; - } - - return 0; -} - -// non-matching -ARM void UnkStruct_020397f8::vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3) { - unk16 sVar1; - unk16 uVar2; - unk32 iVar3; - unk32 iVar4; - unk32 uVar5; - u32 uVar6; - - uVar6 = 0; - - if (this->func_02032fa4() == 0) { - switch (param1->mUnk_0c) { - case 0: - case 1: - uVar6 = this->mUnk_580 != 0; - break; - case 2: - uVar6 = 2; - break; - case 3: - uVar6 = 3; - break; - case 5: - uVar6 = 4; - break; - case 6: - uVar6 = 5; - break; - default: - // why??? - switch (param1->mUnk_0c) { - case 4: - uVar6 = 8; - break; - case 7: - uVar6 = 9; - break; - default: - if (this->mUnk_580 != 0) { - uVar6 = 7; - } else { - uVar6 = 6; - } - break; - } - break; - } - } - - // PTR_PTR_0203b5ac[(byte)param_1[0x50]] = (char)uVar6; - gMessageManager.mUnk_28[this->mUnk_50]->mUnk_50 = uVar6; - - if (this->mUnk_15e == 7) { - uVar5 = func_0202d5b4(data_02057f08, data_02057eec, data_020691a0, 0xCC00, 1); - func_02032304(data_02068894, data_02057ed8, data_02056af0, 1, param3); - iVar3 = func_02016fcc(uVar5); - } else { - if (this->func_02032fa4() != 0) { - uVar5 = 0x33; - } else { - uVar5 = 0x32; - } - - data_027e0cbc.func_0203d77c(uVar5, 1, 1); - iVar3 = data_027e0cbc.func_0203d77c(data_02056a00[uVar6 * 0x18] - 2, 1, 1); - } - - if (param1->mUnk_10 < 0) { - iVar3 = param1->mUnk_12; - } - - if (param1->mUnk_10 <= 0 && iVar3 > 0) { - uVar2 = param1->mUnk_12; - this->mUnk_158.x = param1->mUnk_10; - this->mUnk_158.y = uVar2; - } else { - this->func_0203b764(); - } -} - -// non-matching (regalloc) -ARM void UnkStruct_020397f8::vfunc_64(s16 *param1) { - unk32 uVar2; - - if (this->mUnk_50 != 0 || data_027e0db0.mUnk_04 > 0 || func_0203c084() != 0 || - (gAdventureFlags->Exists() && gAdventureFlags->func_ov00_02097738())) { - uVar2 = 0x16; - } else { - uVar2 = 0; - } - - this->mUnk_124->func_0203f020(param1, uVar2); - this->func_0203be08(); - - if (this->func_02032fa4()) { - this->mUnk_168.func_020350b4(0x39, 0, 2, 0, 0); - this->mUnk_1f0.func_020350b4(0x33, 0, 2, 0, 0); - this->mUnk_278.func_020350b4(0x33, 1, 2, 0, 0); - } else { - this->mUnk_168.func_020350b4(0x34, 0, 2, 0, 0); - this->mUnk_1f0.func_020350b4(0x32, 0, 2, 0, 0); - this->mUnk_278.func_020350b4(0x32, 1, 2, 0, 0); - } - - this->mUnk_168.func_020351b8(1, 0, 0, 0); - this->mUnk_1f0.func_020351b8(0, 0, 0, 0); - this->mUnk_278.func_020351b8(0, 0, 0, 0); - this->func_020393a8(param1); -} - -// non-matching -ARM void UnkStruct_020397f8::func_0203b764() { - s32 i = gMessageManager.mUnk_00[this->mUnk_50]; - - this->func_02039440(data_02056a04[i * 0x18], data_02056a16[i]); - - switch (this->mUnk_57b) { - case 1: - this->mUnk_158.y -= 38; - break; - case 2: - switch (this->pInfoEntry->mUnk_06) { - case 2: - this->mUnk_158.y -= 111; - break; - case 3: - this->mUnk_158.y -= 98; - break; - default: - break; - } - break; - default: - break; - } -} - -// switch decomp issue +ARM void UnkStruct_020397f8::vfunc_58() {} +ARM void UnkStruct_020397f8::vfunc_60() {} +ARM void UnkStruct_020397f8::vfunc_5c(u16 *param_2, struct UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) {} +ARM bool UnkStruct_020397f8::func_0203b0bc() {} +ARM s32 UnkStruct_020397f8::func_0203b0ec(u32 param1) {} +ARM unk32 UnkStruct_020397f8::vfunc_18(s32 param1) {} +ARM unk32 UnkStruct_020397f8::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {} +ARM void UnkStruct_020397f8::vfunc_64() {} +ARM s32 UnkStruct_020397f8::vfunc_68(unk32 param1) {} +ARM void UnkStruct_020397f8::func_0203b764() {} ARM unk32 UnkStruct_020397f8::vfunc_20(s32 param1, s32 *param2) {} - -ARM void UnkStruct_020397f8::func_0203bd8c(s32 param1) { - this->mUnk_576 = param1; - - if (this->func_0203b0ec(0) != 0) { - data_ov000_020eec9c.func_ov000_020d77e4(this->mUnk_564[param1]); - } -} - -ARM void UnkStruct_020397f8::vfunc_6c(s32 *param1, s32 *param2) { - this->func_0203947c(); - *param1 += this->mUnk_56e; - *param2 += this->mUnk_570; -} - -ARM void UnkStruct_020397f8::func_0203be08() { - if (data_027e0d38 != 0) { - if (data_027e103c->func_ov000_020cf42c() != 0) { - this->mUnk_534 = this->mUnk_538; - } else { - this->mUnk_534 = this->mUnk_536; - } - - if (this->func_0203c084() != 0) { - this->mUnk_548 = this->mUnk_54c; - } - } -} - +ARM void UnkStruct_020397f8::func_0203bd8c(s32 param1) {} +ARM void UnkStruct_020397f8::vfunc_70(s32 *param1, s32 *param2) {} +ARM void UnkStruct_020397f8::func_0203be08() {} ARM void UnkStruct_020397f8::func_0203be64() {} - -// non-matching -ARM bool UnkStruct_020397f8::func_0203c084() { - unk32 uVar4; - bool bVar2; - bool bVar1; - bool bVar3; - - uVar4 = 0; - - if (this->mUnk_50 == 0) { - bVar2 = true; - bVar1 = true; - - if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0 && data_027e103c->func_ov000_020cf8fc(0x8F) == 0) { - bVar1 = false; - } - - if (!bVar1 && gGame.mUnk_101 == 0) { - if ((data_027e0d38 != NULL && data_027e0d38->mUnk_14 == 1) == 0) { - bVar2 = false; - } - } - - if (bVar2) { - uVar4 = 1; - } - } - - return uVar4; -} - -ARM bool UnkStruct_020397f8::func_0203c13c() { - if (this->func_02032fa4() == 0) { - data_ov000_020eec9c.func_ov000_020d77e4(6); - data_027e103c->func_ov000_020cfb20(this); - this->mUnk_585 = 1; - this->mUnk_584 = 1; - this->mUnk_128.mUnk_18 = 0x00016000; - this->mUnk_128.mUnk_1c = NULL; - this->mUnk_128.mUnk_20 = 0; - this->mUnk_128.mUnk_24 = 0; - - return true; - } - - return false; -} - -// non-matching -ARM bool UnkStruct_020397f8::func_0203c1a0() { - s8 *pVar1; - u8 *iVar3; - - if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) { - this->mUnk_584 = 1; - - pVar1 = (s8 *) data_027e103c->func_ov000_020cef9c(); - iVar3 = data_027e0f7c.func_ov000_0209d90c(pVar1[0x24F], 0); - data_027e1054->func_ov003_020f4760(iVar3[1], 0); - data_ov000_020eec9c.func_ov000_020d77e4(6); - data_027e103c->func_ov000_020cfb58(); - - this->mUnk_128.mUnk_18 = 0x0000A000; - this->mUnk_128.mUnk_1c = this->func_0203c25c; - this->mUnk_128.mUnk_20 = this; - this->mUnk_128.mUnk_24 = 0; - - return 0; - } - - return 0; -} - -ARM bool UnkStruct_020397f8::func_0203c25c(UnkStruct_020397f8 *param1) { - if (data_027e1054->mUnk_00->mUnk_00->mUnk_95 != 0) { - return false; - } - - if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) { - param1->mUnk_585 = 1; - param1->mUnk_128.mUnk_18 = 0x00016000; - param1->mUnk_128.mUnk_1c = NULL; - param1->mUnk_128.mUnk_20 = 0; - param1->mUnk_128.mUnk_24 = 0; - return true; - } - - return false; -} - +ARM bool UnkStruct_020397f8::func_0203c084() {} +ARM bool UnkStruct_020397f8::func_0203c13c() {} +ARM bool UnkStruct_020397f8::func_0203c1a0() {} +ARM bool UnkStruct_020397f8::func_0203c25c(class UnkStruct_020397f8 *param1) {} ARM UnkStruct_020397f8::~UnkStruct_020397f8() {} - -ARM bool UnkStruct_020397f8::vfunc_38() { - return true; -} +ARM bool UnkStruct_020397f8::vfunc_38() {} diff --git a/src/Main/Unknown/UnkStruct_0203dae0.cpp b/src/Main/Unknown/UnkStruct_0203dae0.cpp index 7dfde88b..8d17fb8c 100644 --- a/src/Main/Unknown/UnkStruct_0203dae0.cpp +++ b/src/Main/Unknown/UnkStruct_0203dae0.cpp @@ -2,185 +2,26 @@ #include "System/SysNew.hpp" #include "Unknown/UnkStruct_02075dac.hpp" -extern u32 *data_027e0ce0[]; -extern "C" void Fill256(unk32, unk16 *, unk32, unk32); -extern "C" void func_0203fc78(u8, unk32 *, unk32 *); -extern "C" u16 func_0203d318(unk32, unk32); -extern "C" void func_020298b8(unk32 *, unk32, unk32, unk32, unk32); -extern "C" void func_02029830(unk32 *, unk32, unk32, unk32, unk32); -extern "C" unk32 func_0203d400(u8); -extern "C" void func_02035440(u8); - -// non-matching -THUMB UnkStruct_0203dae0::UnkStruct_0203dae0(u8 param1) { - this->mUnk_114 = NULL; - this->mUnk_118 = -1; - this->mUnk_11c = 0; - this->mUnk_11e = 0; - this->mUnk_11f = 0; - this->mUnk_120 = 1; - this->mUnk_121 = param1; - this->mUnk_122 = 0; - - Fill256(0, &this->mUnk_54, 0xC0, 1); - - if (this->mUnk_121 == 0) { - this->mUnk_114 = new(data_027e0ce0[1], 4) UnkStruct_0203dae0_114(); - } else { - this->mUnk_114 = new(data_027e0ce0[1], 4) UnkStruct_0203dae0_114(); - } -} - -THUMB UnkStruct_0203dae0::~UnkStruct_0203dae0() { - if (this->mUnk_114 != NULL) { - delete this->mUnk_114; - this->mUnk_114 = NULL; - } -} - -// non-matching (regalloc) -ARM void UnkStruct_0203dae0::func_0203dc10(s32 param1) { - if (param1 != 0) { - if (this->mUnk_11c == 0x0) { - return; - } - - if (this->mUnk_114->vfunc_08(this) != 0) { - this->mUnk_10 = this->mUnk_114->func_0203d1b4(); - } - } else { - this->mUnk_114->vfunc_0c(); - } - - this->mUnk_122 = param1; -} - -ARM bool UnkStruct_0203dae0::func_0203dc74(s32 param1, s32 param2) { - this->func_0203ddfc(); - this->vfunc_14(param1, param2); - this->mUnk_11c = 0; - return true; -} - -ARM bool UnkStruct_0203dae0::vfunc_14(s32 param1, s32 param2) { - unk32 local_c; - unk32 local_10; - - local_c = param1; - local_10 = param2; - - func_0203fc78(this->func_02032fa4(), &local_c, &local_10); - this->UnkStruct_02032f0c::vfunc_14(local_c, local_10); - this->mUnk_10 = 0; - return true; -} - -// non-matching -ARM void UnkStruct_0203dae0::func_0203dcfc(u8 param1, unk32 param2, unk32 param3, s32 param4) { - unk32 *uVar5; - - this->mUnk_50 = param1; - this->vfunc_14(this->mUnk_4a, this->mUnk_4c); - this->mUnk_11c = func_0203d318(this->mUnk_10[0x1], this->mUnk_10[0x2]); - this->func_0203dc10(1); - - if (func_0203d400(this->UnkStruct_02032f0c::func_02032fa4()) != 0x0) { - uVar5 = this->func_0203ddec(); - func_020298b8(this->mUnk_10, *uVar5, this->mUnk_10[0x1], this->mUnk_10[0x2], 0x4); - } else { - uVar5 = this->func_0203ddec(); - func_02029830(this->mUnk_10, *uVar5, this->mUnk_10[0x1], this->mUnk_10[0x2], 0x4); - } - - this->mUnk_28 = this->mUnk_10; - this->mUnk_2c = this->mUnk_2c; // this->mUnk_2c = &(UnkStruct_MsgProc_Base_unk_2C*)this->mUnk_10; - this->mUnk_30 = param4; - this->mUnk_34 = 3; - this->vfunc_10(param3, 3); - - this->func_0203de58(param2); -} - -ARM unk32 *UnkStruct_0203dae0::func_0203ddec() { - return this->mUnk_114->func_0203d1b4(); -} - -ARM void UnkStruct_0203dae0::func_0203ddfc() { - this->mUnk_114->mUnk_04 = 0; - this->mUnk_11c = 0; -} - -ARM void UnkStruct_0203dae0::func_0203de14() { - //! TODO: class? - func_02035440(this->mUnk_50); -} - -// non-matching -ARM s32 UnkStruct_0203dae0::func_0203de24() { - if (func_0203d400(this->UnkStruct_02032f0c::func_02032fa4()) == 0x0) { - return this->mUnk_10[5] * this->mUnk_10[6] * 0x20; - } - - return this->mUnk_10[6] << 0xa; -} - +ARM UnkStruct_0203dae0::UnkStruct_0203dae0(u8 param1) {} +ARM UnkStruct_0203dae0::~UnkStruct_0203dae0() {} +ARM void UnkStruct_0203dae0::func_0203dc10(unk32 param1) {} +ARM void UnkStruct_0203dae0::func_0203dc10(unk32 param_2, unk32 param_3) {} +ARM bool UnkStruct_0203dae0::func_0203dc74(s32 param1, s32 param2) {} +ARM bool UnkStruct_0203dae0::vfunc_14(s32 param1, s32 param2) {} +ARM void UnkStruct_0203dae0::func_0203dcfc(u8 param1, unk32 param2, unk32 param3, s32 param4) {} +ARM unk32 *UnkStruct_0203dae0::func_0203ddec() {} +ARM void UnkStruct_0203dae0::func_0203ddfc() {} +ARM void UnkStruct_0203dae0::func_0203de14() {} +ARM s32 UnkStruct_0203dae0::func_0203de24() {} ARM bool UnkStruct_0203dae0::func_0203de58(s32 param1) {} - -ARM void UnkStruct_0203dae0::vfunc_10(u32 param1, unk32 param2) { - this->func_0203dc10(1, param2); - this->mUnk_11e = param1; - this->mUnk_118 = -1; - this->UnkStruct_02032f0c::vfunc_10(param1, -1); -} - -ARM void UnkStruct_0203dae0::vfunc_30() { - unk32 iVar2; - - iVar2 = this->mUnk_118; - this->mUnk_118 = data_02075dac.func_0203f9b8(this); - - if (this->mUnk_118 == iVar2) { - return; - } - - this->func_0203dc10(1); -} - -ARM bool UnkStruct_0203dae0::vfunc_28() { - if (this->mUnk_122 != 0) { - this->func_0203e0f8(); - this->func_0203dc10(0); - return true; - } - - return false; -} - +ARM void UnkStruct_0203dae0::vfunc_10(u32 param1, unk32 param2) {} +ARM void UnkStruct_0203dae0::vfunc_30() {} +ARM bool UnkStruct_0203dae0::vfunc_28() {} ARM bool UnkStruct_0203dae0::func_0203e0f8() {} - -ARM void UnkStruct_0203dae0::vfunc_2c() { - this->vfunc_30(); -} - +ARM void UnkStruct_0203dae0::vfunc_2c() {} ARM bool UnkStruct_0203dae0::func_0203e1b0(unk32 param1, unk32 param2, s32 param3) {} - -ARM unk32 UnkStruct_0203dae0::vfunc_18(s32 param1) { - unk32 iVar1; - - iVar1 = this->UnkStruct_02032f0c::vfunc_18(param1); - - if (iVar1 != 0) { - this->func_0203dc10(1); - } - - return iVar1; -} - -ARM void UnkStruct_0203dae0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) { - this->func_0203dc10(1); - this->UnkStruct_02032f0c::vfunc_08(param1, param2, param3, param4); -} - +ARM unk32 UnkStruct_0203dae0::vfunc_18(s32 param1) {} +ARM void UnkStruct_0203dae0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {} ARM void UnkStruct_0203dae0::func_0203e2e8(s32 param1, s32 param2, unk32 param3, u32 param4) {} ARM void UnkStruct_0203dae0::func_0203e510(s32 *param1, s32 param2, s32 param3) {} ARM void UnkStruct_0203dae0::func_0203e62c(s32 *param1, s32 param2) {} From 9f63493bf205b25404a885126c3a80038e8e251e Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 12:38:44 +0200 Subject: [PATCH 11/36] updated symbols --- config/eur/arm9/symbols.txt | 178 ++++++++++++++++++------------------ config/usa/arm9/symbols.txt | 178 ++++++++++++++++++------------------ 2 files changed, 178 insertions(+), 178 deletions(-) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index b75bbc81..3ae69d97 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1647,11 +1647,11 @@ func_02032e44 kind:function(arm,size=0x1c) addr:0x02032e44 func_02032e60 kind:function(arm,size=0x1c) addr:0x02032e60 _ZN18UnkStruct_02032e7cC2Ev kind:function(arm,size=0x48) addr:0x02032e7c _ZN18UnkStruct_02032e7cC1Ev kind:function(arm,size=0x48) addr:0x02032ec4 -_ZN18UnkStruct_02032f0cC2Ev kind:function(thumb,size=0x78) addr:0x02032f0c +_ZN18UnkStruct_02032f0cC1Ev kind:function(thumb,size=0x78) addr:0x02032f0c _ZN18UnkStruct_02032f0cD1Ev kind:function(thumb,size=0x2) addr:0x02032f84 _ZN18UnkStruct_02032f0cD0Ev kind:function(thumb,size=0xc) addr:0x02032f88 -_ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x4) addr:0x02032f94 -_ZN18UnkStruct_02032f0c9SetUnk_0cEPt kind:function(arm,size=0xc) addr:0x02032f98 +_ZN18UnkStruct_02032f0c13func_02032f94Ev kind:function(thumb,size=0x4) addr:0x02032f94 +_ZN18UnkStruct_02032f0c13func_02032f98Ei kind:function(arm,size=0xc) addr:0x02032f98 _ZN18UnkStruct_02032f0c13func_02032fa4Ev kind:function(arm,size=0x10) addr:0x02032fa4 _ZN18UnkStruct_02032f0c13func_02032fb4Ev kind:function(arm,size=0x18) addr:0x02032fb4 _ZN18UnkStruct_02032f0c8vfunc_14Eii kind:function(arm,size=0x64) addr:0x02032fcc @@ -1858,115 +1858,115 @@ _ZN18UnkStruct_020377508vfunc_1cEv kind:function(arm,size=0x8) addr:0x020386c4 _ZN18UnkStruct_020377508vfunc_20Ev kind:function(arm,size=0xc) addr:0x020386cc _ZN18UnkStruct_020386d8C2Ev kind:function(arm,size=0x40) addr:0x020386d8 _ZN18UnkStruct_020386d8C1Ev kind:function(arm,size=0x40) addr:0x02038718 -_ZN18UnkStruct_020386d88vfunc_08Ej kind:function(arm,size=0x18) addr:0x02038758 -_ZN18UnkStruct_020386d88vfunc_24Ei kind:function(arm,size=0x1c) addr:0x02038770 -_ZN18UnkStruct_020386d88vfunc_28Ei kind:function(arm,size=0x18) addr:0x0203878c -_ZN18UnkStruct_020386d88vfunc_30Ev kind:function(arm,size=0x28) addr:0x020387a4 -_ZN18UnkStruct_020386d8D2Ev kind:function(arm,size=0x14) addr:0x020387cc +func_02038758 kind:function(arm,size=0x18) addr:0x02038758 +func_02038770 kind:function(arm,size=0x1c) addr:0x02038770 +func_0203878c kind:function(arm,size=0x18) addr:0x0203878c +func_020387a4 kind:function(arm,size=0x28) addr:0x020387a4 +func_020387cc kind:function(arm,size=0x14) addr:0x020387cc func_020387e0 kind:function(thumb,size=0xc) addr:0x020387e0 func_020387ec kind:function(arm,size=0x18) addr:0x020387ec func_02038804 kind:function(arm,size=0x18) addr:0x02038804 -_ZN18UnkStruct_0203881cC2Ev kind:function(arm,size=0x3c) addr:0x0203881c -_ZN18UnkStruct_0203881c13func_02038858Ei kind:function(arm,size=0x30) addr:0x02038858 -_ZN18UnkStruct_0203881c13func_02038888Ev kind:function(arm,size=0xc8) addr:0x02038888 -_ZN18UnkStruct_0203881c13func_02038950EP18UnkStruct_02038aa0i kind:function(arm,size=0x130) addr:0x02038950 -_ZN18UnkStruct_0203881c13func_02038a80Ei kind:function(arm,size=0x1c) addr:0x02038a80 -_ZN18UnkStruct_0203881cD1Ev kind:function(thumb,size=0x2) addr:0x02038a9c +func_0203881c kind:function(arm,size=0x3c) addr:0x0203881c +func_02038858 kind:function(arm,size=0x30) addr:0x02038858 +func_02038888 kind:function(arm,size=0xc8) addr:0x02038888 +func_02038950 kind:function(arm,size=0x130) addr:0x02038950 +func_02038a80 kind:function(arm,size=0x1c) addr:0x02038a80 +func_02038a9c kind:function(thumb,size=0x2) addr:0x02038a9c _ZN18UnkStruct_02038aa0C2Ehh kind:function(thumb,size=0x5c) addr:0x02038aa0 _ZN18UnkStruct_02038aa0D1Ev kind:function(thumb,size=0xc) addr:0x02038afc _ZN18UnkStruct_02038aa0D0Ev kind:function(thumb,size=0x12) addr:0x02038b08 _ZN18UnkStruct_02038aa0D2Ev kind:function(thumb,size=0xc) addr:0x02038b1c -_ZN18UnkStruct_02038aa013func_02038b28Ev kind:function(thumb,size=0xc) addr:0x02038b28 -_ZN18UnkStruct_02038aa08vfunc_4cEji kind:function(arm,size=0xc) addr:0x02038b34 -_ZN18UnkStruct_02038aa08vfunc_10Ei kind:function(arm,size=0x34) addr:0x02038b40 -_ZN18UnkStruct_02038aa013func_02038b74Ev kind:function(arm,size=0x4) addr:0x02038b74 -_ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0xbc) addr:0x02038b78 -_ZN18UnkStruct_02038aa013func_02038c34Ev kind:function(arm,size=0x84) addr:0x02038c34 -_ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x3c) addr:0x02038cb8 -_ZN18UnkStruct_02038aa013func_02038cf4Ev kind:function(arm,size=0x1c) addr:0x02038cf4 -_ZN18UnkStruct_02038aa013func_02038d10Ev kind:function(arm,size=0x10) addr:0x02038d10 -_ZN18UnkStruct_02038aa013func_02038d20Ev kind:function(arm,size=0x1b0) addr:0x02038d20 -_ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x24) addr:0x02038ed0 -_ZN18UnkStruct_02038aa08vfunc_30Eii kind:function(arm,size=0x4c) addr:0x02038ef4 -_ZN18UnkStruct_02038aa013func_02038f40Eii kind:function(arm,size=0x4) addr:0x02038f40 -_ZN18UnkStruct_02038aa08vfunc_44Ev kind:function(arm,size=0x114) addr:0x02038f44 -_ZN18UnkStruct_02038aa08vfunc_50Eiiii kind:function(arm,size=0x4) addr:0x02039058 -_ZN18UnkStruct_02038aa08vfunc_5cEv kind:function(arm,size=0x48) addr:0x0203905c -_ZN18UnkStruct_02038aa08vfunc_1cEiPiii kind:function(arm,size=0x164) addr:0x020390a4 -_ZN18UnkStruct_02038aa08vfunc_20EiPi kind:function(arm,size=0x20) addr:0x02039208 -_ZN18UnkStruct_02038aa013func_02039228Es kind:function(arm,size=0x28) addr:0x02039228 -_ZN18UnkStruct_02038aa08vfunc_08EiiPsi kind:function(arm,size=0x64) addr:0x02039250 -_ZN18UnkStruct_02038aa013func_020392b4Ev kind:function(arm,size=0xe4) addr:0x020392b4 -_ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0xc) addr:0x02039398 -_ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0x4) addr:0x020393a4 -_ZN18UnkStruct_02038aa08vfunc_60Ev kind:function(arm,size=0x28) addr:0x020393a8 -_ZN18UnkStruct_02038aa08vfunc_64Ev kind:function(arm,size=0x70) addr:0x020393d0 -_ZN18UnkStruct_02038aa08vfunc_68Ei kind:function(arm,size=0x3c) addr:0x02039440 -_ZN18UnkStruct_02038aa013func_0203947cEii kind:function(arm,size=0x5c) addr:0x0203947c -_ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x44) addr:0x020394d8 -_ZN18UnkStruct_02038aa08vfunc_70EPiS0_ kind:function(arm,size=0x40) addr:0x0203951c -_ZN18UnkStruct_02038aa013func_0203955cEv kind:function(arm,size=0x14) addr:0x0203955c +_ZN18UnkStruct_02038aa08vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0xc) addr:0x02038b28 +_ZN18UnkStruct_02038aa08vfunc_10Eji kind:function(arm,size=0xc) addr:0x02038b34 +func_02038b40 kind:function(arm,size=0x34) addr:0x02038b40 +_ZN18UnkStruct_02038aa08vfunc_4cEji kind:function(arm,size=0x4) addr:0x02038b74 +func_02038b78 kind:function(arm,size=0xbc) addr:0x02038b78 +_ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x84) addr:0x02038c34 +func_02038cb8 kind:function(arm,size=0x3c) addr:0x02038cb8 +func_02038cf4 kind:function(arm,size=0x1c) addr:0x02038cf4 +func_02038d10 kind:function(arm,size=0x10) addr:0x02038d10 +_ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x1b0) addr:0x02038d20 +_ZN18UnkStruct_02038aa08vfunc_30Ev kind:function(arm,size=0x24) addr:0x02038ed0 +func_02038ef4 kind:function(arm,size=0x4c) addr:0x02038ef4 +_ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0x4) addr:0x02038f40 +_ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0x114) addr:0x02038f44 +_ZN18UnkStruct_02038aa08vfunc_60Ev kind:function(arm,size=0x4) addr:0x02039058 +_ZN18UnkStruct_02038aa08vfunc_1cEiPiii kind:function(arm,size=0x48) addr:0x0203905c +_ZN18UnkStruct_02038aa08vfunc_20EiPi kind:function(arm,size=0x164) addr:0x020390a4 +func_02039208 kind:function(arm,size=0x20) addr:0x02039208 +_ZN18UnkStruct_02038aa08vfunc_08EiiPsi kind:function(arm,size=0x28) addr:0x02039228 +func_02039250 kind:function(arm,size=0x64) addr:0x02039250 +_ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0xe4) addr:0x020392b4 +_ZN18UnkStruct_02038aa08vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0xc) addr:0x02039398 +_ZN18UnkStruct_02038aa08vfunc_64Ev kind:function(arm,size=0x4) addr:0x020393a4 +_ZN18UnkStruct_02038aa08vfunc_68Ei kind:function(arm,size=0x28) addr:0x020393a8 +_ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x70) addr:0x020393d0 +func_02039440 kind:function(arm,size=0x3c) addr:0x02039440 +_ZN18UnkStruct_02038aa08vfunc_70EPiS0_ kind:function(arm,size=0x5c) addr:0x0203947c +_ZN18UnkStruct_02038aa08vfunc_74Ev kind:function(arm,size=0x44) addr:0x020394d8 +func_0203951c kind:function(arm,size=0x40) addr:0x0203951c +func_0203955c kind:function(arm,size=0x14) addr:0x0203955c _ZN18UnkStruct_02038aa08vfunc_38Ev kind:function(arm,size=0x8) addr:0x02039570 -func_02039578 kind:function(arm,size=0x3c) addr:0x02039578 +_ZN18UnkStruct_0203dae08vfunc_0cEiiii kind:function(arm,size=0x3c) addr:0x02039578 _ZN18UnkStruct_020397f8C2Ev kind:function(thumb,size=0x244) addr:0x020395b4 _ZN18UnkStruct_020397f8C1Ev kind:function(thumb,size=0x244) addr:0x020397f8 -_ZN18UnkStruct_020397f88vfunc_4cEv kind:function(thumb,size=0x20) addr:0x02039a3c +_ZN18UnkStruct_020397f88vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x20) addr:0x02039a3c _ZN18UnkStruct_020397f88vfunc_2cEv kind:function(arm,size=0x24c) addr:0x02039a5c _ZN18UnkStruct_020397f813func_02039ca8Ev kind:function(arm,size=0x24) addr:0x02039ca8 -_ZN18UnkStruct_020397f88vfunc_3cEv kind:function(arm,size=0xa8) addr:0x02039ccc -_ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0x414) addr:0x02039d74 +_ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0xa8) addr:0x02039ccc +_ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x414) addr:0x02039d74 _ZN18UnkStruct_020397f813func_0203a188Eii kind:function(arm,size=0x138) addr:0x0203a188 _ZN18UnkStruct_020397f813func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x0203a2c0 _ZN18UnkStruct_020397f813func_0203a30cEv kind:function(arm,size=0x1c) addr:0x0203a30c -_ZN18UnkStruct_020397f88vfunc_48Ev kind:function(arm,size=0x34) addr:0x0203a328 +_ZN18UnkStruct_020397f88vfunc_4cEji kind:function(arm,size=0x34) addr:0x0203a328 _ZN18UnkStruct_020397f813func_0203a35cEv kind:function(arm,size=0x84) addr:0x0203a35c _ZN18UnkStruct_020397f813func_0203a3e0Ev kind:function(arm,size=0x1c) addr:0x0203a3e0 -_ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x2d4) addr:0x0203a3fc -_ZN18UnkStruct_020397f813func_0203a6d0Ei kind:function(arm,size=0x120) addr:0x0203a6d0 -_ZN18UnkStruct_020397f88vfunc_50Eiiii kind:function(arm,size=0x198) addr:0x0203a7f0 -_ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x520) addr:0x0203a988 -_ZN18UnkStruct_020397f88vfunc_5cEv kind:function(arm,size=0x74) addr:0x0203aea8 -_ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x1a0) addr:0x0203af1c +_ZN18UnkStruct_020397f88vfunc_48Ev kind:function(arm,size=0x2d4) addr:0x0203a3fc +_ZN18UnkStruct_020397f813func_0203a6d0Eii kind:function(arm,size=0x120) addr:0x0203a6d0 +_ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x198) addr:0x0203a7f0 +_ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x520) addr:0x0203a988 +_ZN18UnkStruct_020397f88vfunc_60Ev kind:function(arm,size=0x74) addr:0x0203aea8 +_ZN18UnkStruct_020397f88vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0x1a0) addr:0x0203af1c _ZN18UnkStruct_020397f813func_0203b0bcEv kind:function(arm,size=0x30) addr:0x0203b0bc _ZN18UnkStruct_020397f813func_0203b0ecEj kind:function(arm,size=0x178) addr:0x0203b0ec _ZN18UnkStruct_020397f88vfunc_18Ei kind:function(arm,size=0xac) addr:0x0203b264 _ZN18UnkStruct_020397f88vfunc_1cEiPiii kind:function(arm,size=0x100) addr:0x0203b310 -_ZN18UnkStruct_020397f88vfunc_60Ei kind:function(arm,size=0x1c0) addr:0x0203b410 -_ZN18UnkStruct_020397f88vfunc_64Ei kind:function(arm,size=0x194) addr:0x0203b5d0 +_ZN18UnkStruct_020397f88vfunc_64Ev kind:function(arm,size=0x1c0) addr:0x0203b410 +_ZN18UnkStruct_020397f88vfunc_68Ei kind:function(arm,size=0x194) addr:0x0203b5d0 _ZN18UnkStruct_020397f813func_0203b764Ev kind:function(arm,size=0xb0) addr:0x0203b764 _ZN18UnkStruct_020397f88vfunc_20EiPi kind:function(arm,size=0x578) addr:0x0203b814 _ZN18UnkStruct_020397f813func_0203bd8cEi kind:function(arm,size=0x40) addr:0x0203bd8c -_ZN18UnkStruct_020397f88vfunc_6cEPiS0_ kind:function(arm,size=0x3c) addr:0x0203bdcc +_ZN18UnkStruct_020397f88vfunc_70EPiS0_ kind:function(arm,size=0x3c) addr:0x0203bdcc _ZN18UnkStruct_020397f813func_0203be08Ev kind:function(arm,size=0x5c) addr:0x0203be08 _ZN18UnkStruct_020397f813func_0203be64Ev kind:function(arm,size=0x220) addr:0x0203be64 _ZN18UnkStruct_020397f813func_0203c084Ev kind:function(arm,size=0xb8) addr:0x0203c084 _ZN18UnkStruct_020397f813func_0203c13cEv kind:function(arm,size=0x64) addr:0x0203c13c _ZN18UnkStruct_020397f813func_0203c1a0Ev kind:function(arm,size=0xbc) addr:0x0203c1a0 -_ZN18UnkStruct_020397f813func_0203c25cEv kind:function(arm,size=0x6c) addr:0x0203c25c -_ZN18UnkStruct_020397f8D1Ev kind:function(arm,size=0x48) addr:0x0203c2c8 -_ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x40) addr:0x0203c310 +_ZN18UnkStruct_020397f813func_0203c25cEPS_ kind:function(arm,size=0x6c) addr:0x0203c25c +_ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x48) addr:0x0203c2c8 +_ZN18UnkStruct_020397f8D1Ev kind:function(arm,size=0x40) addr:0x0203c310 _ZN18UnkStruct_020397f88vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203c350 -_ZN13MsgProc_Type2C1Eisi kind:function(thumb,size=0x44) addr:0x0203c358 -_ZN13MsgProc_Type213func_0203c39cEii kind:function(thumb,size=0x78) addr:0x0203c39c -_ZN13MsgProc_Type28vfunc_3CEi kind:function(arm,size=0x4c) addr:0x0203c414 -_ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c460 +_ZN13MsgProc_Type2C1Ev kind:function(thumb,size=0x44) addr:0x0203c358 +_ZN13MsgProc_Type28vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x78) addr:0x0203c39c +_ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c414 +_ZN13MsgProc_Type28vfunc_44Eii kind:function(arm,size=0x4c) addr:0x0203c460 _ZN13MsgProc_Type213func_0203c4acEii kind:function(arm,size=0x118) addr:0x0203c4ac _ZN13MsgProc_Type28vfunc_14Eii kind:function(arm,size=0x18) addr:0x0203c5c4 -func_0203c5dc kind:function(arm,size=0x120) addr:0x0203c5dc +_ZN13MsgProc_Type213func_0203c5dcEv kind:function(arm,size=0x120) addr:0x0203c5dc _ZN13MsgProc_Type2D0Ev kind:function(arm,size=0x1c) addr:0x0203c6fc -_ZN13MsgProc_Type2D2Ev kind:function(arm,size=0x14) addr:0x0203c718 -_ZN13MsgProc_Type3C1Eisi kind:function(arm,size=0x110) addr:0x0203c72c -_ZN13MsgProc_Type313func_0203c83cEv kind:function(arm,size=0x4) addr:0x0203c83c -_ZN13MsgProc_Type3D2Ev kind:function(arm,size=0x30) addr:0x0203c840 +_ZN13MsgProc_Type2D1Ev kind:function(arm,size=0x14) addr:0x0203c718 +_ZN13MsgProc_Type3C1Ev kind:function(arm,size=0x110) addr:0x0203c72c +_ZN28UnkClass_func_ov000_020d0644D1Ev kind:function(arm,size=0x4) addr:0x0203c83c +_ZN13MsgProc_Type3D1Ev kind:function(arm,size=0x30) addr:0x0203c840 _ZN13MsgProc_Type3D0Ev kind:function(arm,size=0x38) addr:0x0203c870 -func_0203c8a8 kind:function(arm,size=0x58) addr:0x0203c8a8 -func_0203c900 kind:function(arm,size=0x4) addr:0x0203c900 +_ZN13MsgProc_Type38vfunc_40Eii kind:function(arm,size=0x58) addr:0x0203c8a8 +_ZN13MsgProc_Type38vfunc_44Eii kind:function(arm,size=0x4) addr:0x0203c900 func_0203c904 kind:function(arm,size=0x11c) addr:0x0203c904 func_0203ca20 kind:function(arm,size=0x9c) addr:0x0203ca20 func_0203cabc kind:function(arm,size=0x44) addr:0x0203cabc -func_0203cb00 kind:function(arm,size=0x5c) addr:0x0203cb00 +_ZN13MsgProc_Type38vfunc_24EPPs kind:function(arm,size=0x5c) addr:0x0203cb00 func_0203cb5c kind:function(arm,size=0x10c) addr:0x0203cb5c -func_0203cc68 kind:function(arm,size=0xf4) addr:0x0203cc68 +_ZN13MsgProc_Type38vfunc_48Ev kind:function(arm,size=0xf4) addr:0x0203cc68 func_0203cd5c kind:function(arm,size=0x44) addr:0x0203cd5c func_0203cda0 kind:function(arm,size=0x20) addr:0x0203cda0 func_0203cdc0 kind:function(arm,size=0x4) addr:0x0203cdc0 @@ -2024,17 +2024,17 @@ func_0203d848 kind:function(arm,size=0x8c) addr:0x0203d848 func_0203d8d4 kind:function(arm,size=0x8c) addr:0x0203d8d4 func_0203d960 kind:function(arm,size=0xc0) addr:0x0203d960 func_0203da20 kind:function(arm,size=0xc0) addr:0x0203da20 -_ZN18UnkStruct_0203dae0C2Eh kind:function(thumb,size=0x98) addr:0x0203dae0 +_ZN18UnkStruct_0203dae0C1Eh kind:function(thumb,size=0x98) addr:0x0203dae0 _ZN18UnkStruct_0203dae0D1Ev kind:function(thumb,size=0x30) addr:0x0203db78 _ZN18UnkStruct_0203dae0D0Ev kind:function(thumb,size=0x38) addr:0x0203dba8 -_ZN18UnkStruct_0203dae0D2Ev kind:function(thumb,size=0x30) addr:0x0203dbe0 -_ZN18UnkStruct_0203dae013func_0203dc10Ei kind:function(arm,size=0x64) addr:0x0203dc10 +_ZN18UnkStruct_0203dae013func_0203dc10Ei kind:function(thumb,size=0x30) addr:0x0203dbe0 +_ZN18UnkStruct_0203dae013func_0203dc10Eii kind:function(arm,size=0x64) addr:0x0203dc10 _ZN18UnkStruct_0203dae013func_0203dc74Eii kind:function(arm,size=0x40) addr:0x0203dc74 _ZN18UnkStruct_0203dae08vfunc_14Eii kind:function(arm,size=0x48) addr:0x0203dcb4 _ZN18UnkStruct_0203dae013func_0203dcfcEhiii kind:function(arm,size=0xf0) addr:0x0203dcfc _ZN18UnkStruct_0203dae013func_0203ddecEv kind:function(arm,size=0x10) addr:0x0203ddec _ZN18UnkStruct_0203dae013func_0203ddfcEv kind:function(arm,size=0x18) addr:0x0203ddfc -_ZN18UnkStruct_02038aa013func_0203de14Ei kind:function(arm,size=0x10) addr:0x0203de14 +_ZN18UnkStruct_0203dae013func_0203de14Ev kind:function(arm,size=0x10) addr:0x0203de14 _ZN18UnkStruct_0203dae013func_0203de24Ev kind:function(arm,size=0x34) addr:0x0203de24 _ZN18UnkStruct_0203dae013func_0203de58Ei kind:function(arm,size=0x208) addr:0x0203de58 _ZN18UnkStruct_0203dae08vfunc_10Eji kind:function(arm,size=0x30) addr:0x0203e060 @@ -2702,8 +2702,8 @@ data_02057990 kind:data(any) addr:0x02057990 data_02057994 kind:data(any) addr:0x02057994 data_02057998 kind:data(any) addr:0x02057998 data_0205799c kind:data(any) addr:0x0205799c -_ZTV18UnkStruct_02032f0c kind:data(any) addr:0x020579c8 -_ZTV18UnkStruct_02032e7c kind:data(any) addr:0x020579f8 +_ZTV18UnkStruct_02032f0c kind:data(any) addr:0x020579c0 +_ZTV18UnkStruct_02032e7c kind:data(any) addr:0x020579f0 data_02057a00 kind:data(any) addr:0x02057a00 data_02057a08 kind:data(any) addr:0x02057a08 data_02057a10 kind:data(any) addr:0x02057a10 @@ -2784,8 +2784,8 @@ data_02057cd4 kind:data(any) addr:0x02057cd4 _ZTV18UnkStruct_02037750 kind:data(any) addr:0x02057d00 _ZTV18UnkStruct_020386d8 kind:data(any) addr:0x02057d3c data_02057d70 kind:data(any) addr:0x02057d70 -data_02057d90 kind:data(any) addr:0x02057d90 -data_02057e0c kind:data(any) addr:0x02057e0c +_ZTV18UnkStruct_02038aa0 kind:data(any) addr:0x02057d88 +_ZTV18UnkStruct_0203881c kind:data(any) addr:0x02057e04 data_02057e14 kind:data(any) addr:0x02057e14 data_02057e18 kind:data(any) addr:0x02057e18 data_02057e1c kind:data(any) addr:0x02057e1c @@ -2794,18 +2794,18 @@ data_02057e24 kind:data(any) addr:0x02057e24 data_02057e28 kind:data(any) addr:0x02057e28 data_02057e2c kind:data(any) addr:0x02057e2c data_02057e30 kind:data(any) addr:0x02057e30 -data_02057e5c kind:data(any) addr:0x02057e5c +_ZTV18UnkStruct_020397f8 kind:data(any) addr:0x02057e54 data_02057ed0 kind:data(any) addr:0x02057ed0 data_02057ed4 kind:data(any) addr:0x02057ed4 data_02057ed8 kind:data(any) addr:0x02057ed8 data_02057eec kind:data(any) addr:0x02057eec data_02057f08 kind:data(any) addr:0x02057f08 -_ZTV13MsgProc_Type2 kind:data(any) addr:0x02057f14 -data_02057f90 kind:data(any) addr:0x02057f90 -data_0205800c kind:data(any) addr:0x0205800c -data_02058024 kind:data(any) addr:0x02058024 -data_0205803c kind:data(any) addr:0x0205803c -_ZTV13MsgProc_Base2 kind:data(any) addr:0x02058054 +_ZTV13MsgProc_Type2 kind:data(any) addr:0x02057f0c +_ZTV13MsgProc_Type3 kind:data(any) addr:0x02057f88 +data_02058004 kind:data(any) addr:0x02058004 +data_0205801c kind:data(any) addr:0x0205801c +data_02058034 kind:data(any) addr:0x02058034 +_ZTV18UnkStruct_0203dae0 kind:data(any) addr:0x0205804c data_02058088 kind:data(any) addr:0x02058088 data_02058090 kind:data(any) addr:0x02058090 data_02058094 kind:data(any) addr:0x02058094 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 677aa5ba..164c8d1e 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1647,11 +1647,11 @@ func_02032e44 kind:function(arm,size=0x1c) addr:0x02032e40 func_02032e60 kind:function(arm,size=0x1c) addr:0x02032e5c _ZN18UnkStruct_02032e7cC2Ev kind:function(arm,size=0x48) addr:0x02032e78 _ZN18UnkStruct_02032e7cC1Ev kind:function(arm,size=0x48) addr:0x02032ec0 -_ZN18UnkStruct_02032f0cC2Ev kind:function(thumb,size=0x78) addr:0x02032f08 +_ZN18UnkStruct_02032f0cC1Ev kind:function(thumb,size=0x78) addr:0x02032f08 _ZN18UnkStruct_02032f0cD1Ev kind:function(thumb,size=0x2) addr:0x02032f80 _ZN18UnkStruct_02032f0cD0Ev kind:function(thumb,size=0xc) addr:0x02032f84 -_ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x4) addr:0x02032f90 -_ZN18UnkStruct_02032f0c9SetUnk_0cEPt kind:function(arm,size=0xc) addr:0x02032f94 +_ZN18UnkStruct_02032f0c13func_02032f94Ev kind:function(thumb,size=0x4) addr:0x02032f90 +_ZN18UnkStruct_02032f0c13func_02032f98Ei kind:function(arm,size=0xc) addr:0x02032f94 _ZN18UnkStruct_02032f0c13func_02032fa4Ev kind:function(arm,size=0x10) addr:0x02032fa0 _ZN18UnkStruct_02032f0c13func_02032fb4Ev kind:function(arm,size=0x18) addr:0x02032fb0 _ZN18UnkStruct_02032f0c8vfunc_14Eii kind:function(arm,size=0x64) addr:0x02032fc8 @@ -1858,115 +1858,115 @@ _ZN18UnkStruct_020377508vfunc_1cEv kind:function(arm,size=0x8) addr:0x02038680 _ZN18UnkStruct_020377508vfunc_20Ev kind:function(arm,size=0xc) addr:0x02038688 _ZN18UnkStruct_020386d8C2Ev kind:function(arm,size=0x40) addr:0x02038694 _ZN18UnkStruct_020386d8C1Ev kind:function(arm,size=0x40) addr:0x020386d4 -_ZN18UnkStruct_020386d88vfunc_08Ej kind:function(arm,size=0x18) addr:0x02038714 -_ZN18UnkStruct_020386d88vfunc_24Ei kind:function(arm,size=0x1c) addr:0x0203872c -_ZN18UnkStruct_020386d88vfunc_28Ei kind:function(arm,size=0x18) addr:0x02038748 -_ZN18UnkStruct_020386d88vfunc_30Ev kind:function(arm,size=0x28) addr:0x02038760 -_ZN18UnkStruct_020386d8D2Ev kind:function(arm,size=0x14) addr:0x02038788 +func_02038758 kind:function(arm,size=0x18) addr:0x02038714 +func_02038770 kind:function(arm,size=0x1c) addr:0x0203872c +func_0203878c kind:function(arm,size=0x18) addr:0x02038748 +func_020387a4 kind:function(arm,size=0x28) addr:0x02038760 +func_020387cc kind:function(arm,size=0x14) addr:0x02038788 func_020387e0 kind:function(thumb,size=0xc) addr:0x0203879c func_020387ec kind:function(arm,size=0x18) addr:0x020387a8 func_02038804 kind:function(arm,size=0x18) addr:0x020387c0 -_ZN18UnkStruct_0203881cC2Ev kind:function(arm,size=0x3c) addr:0x020387d8 -_ZN18UnkStruct_0203881c13func_02038858Ei kind:function(arm,size=0x30) addr:0x02038814 -_ZN18UnkStruct_0203881c13func_02038888Ev kind:function(arm,size=0xc8) addr:0x02038844 -_ZN18UnkStruct_0203881c13func_02038950EP18UnkStruct_02038aa0i kind:function(arm,size=0x130) addr:0x0203890c -_ZN18UnkStruct_0203881c13func_02038a80Ei kind:function(arm,size=0x1c) addr:0x02038a3c -_ZN18UnkStruct_0203881cD1Ev kind:function(thumb,size=0x2) addr:0x02038a58 +func_0203881c kind:function(arm,size=0x3c) addr:0x020387d8 +func_02038858 kind:function(arm,size=0x30) addr:0x02038814 +func_02038888 kind:function(arm,size=0xc8) addr:0x02038844 +func_02038950 kind:function(arm,size=0x130) addr:0x0203890c +func_02038a80 kind:function(arm,size=0x1c) addr:0x02038a3c +func_02038a9c kind:function(thumb,size=0x2) addr:0x02038a58 _ZN18UnkStruct_02038aa0C2Ehh kind:function(thumb,size=0x5c) addr:0x02038a5c _ZN18UnkStruct_02038aa0D1Ev kind:function(thumb,size=0xc) addr:0x02038ab8 _ZN18UnkStruct_02038aa0D0Ev kind:function(thumb,size=0x12) addr:0x02038ac4 _ZN18UnkStruct_02038aa0D2Ev kind:function(thumb,size=0xc) addr:0x02038ad8 -_ZN18UnkStruct_02038aa013func_02038b28Ev kind:function(thumb,size=0xc) addr:0x02038ae4 -_ZN18UnkStruct_02038aa08vfunc_4cEji kind:function(arm,size=0xc) addr:0x02038af0 -_ZN18UnkStruct_02038aa08vfunc_10Ei kind:function(arm,size=0x34) addr:0x02038afc -_ZN18UnkStruct_02038aa013func_02038b74Ev kind:function(arm,size=0x4) addr:0x02038b30 -_ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0xbc) addr:0x02038b34 -_ZN18UnkStruct_02038aa013func_02038c34Ev kind:function(arm,size=0x84) addr:0x02038bf0 -_ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x3c) addr:0x02038c74 -_ZN18UnkStruct_02038aa013func_02038cf4Ev kind:function(arm,size=0x1c) addr:0x02038cb0 -_ZN18UnkStruct_02038aa013func_02038d10Ev kind:function(arm,size=0x10) addr:0x02038ccc -_ZN18UnkStruct_02038aa013func_02038d20Ev kind:function(arm,size=0x1b0) addr:0x02038cdc -_ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x24) addr:0x02038e8c -_ZN18UnkStruct_02038aa08vfunc_30Eii kind:function(arm,size=0x4c) addr:0x02038eb0 -_ZN18UnkStruct_02038aa013func_02038f40Eii kind:function(arm,size=0x4) addr:0x02038efc -_ZN18UnkStruct_02038aa08vfunc_44Ev kind:function(arm,size=0x114) addr:0x02038f00 -_ZN18UnkStruct_02038aa08vfunc_50Eiiii kind:function(arm,size=0x4) addr:0x02039014 -_ZN18UnkStruct_02038aa08vfunc_5cEv kind:function(arm,size=0x48) addr:0x02039018 -_ZN18UnkStruct_02038aa08vfunc_1cEiPiii kind:function(arm,size=0x164) addr:0x02039060 -_ZN18UnkStruct_02038aa08vfunc_20EiPi kind:function(arm,size=0x20) addr:0x020391c4 -_ZN18UnkStruct_02038aa013func_02039228Es kind:function(arm,size=0x28) addr:0x020391e4 -_ZN18UnkStruct_02038aa08vfunc_08EiiPsi kind:function(arm,size=0x64) addr:0x0203920c -_ZN18UnkStruct_02038aa013func_020392b4Ev kind:function(arm,size=0xe4) addr:0x02039270 -_ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0xc) addr:0x02039354 -_ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0x4) addr:0x02039360 -_ZN18UnkStruct_02038aa08vfunc_60Ev kind:function(arm,size=0x28) addr:0x02039364 -_ZN18UnkStruct_02038aa08vfunc_64Ev kind:function(arm,size=0x70) addr:0x0203938c -_ZN18UnkStruct_02038aa08vfunc_68Ei kind:function(arm,size=0x3c) addr:0x020393fc -_ZN18UnkStruct_02038aa013func_0203947cEii kind:function(arm,size=0x5c) addr:0x02039438 -_ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x44) addr:0x02039494 -_ZN18UnkStruct_02038aa08vfunc_70EPiS0_ kind:function(arm,size=0x40) addr:0x020394d8 -_ZN18UnkStruct_02038aa013func_0203955cEv kind:function(arm,size=0x14) addr:0x02039518 +_ZN18UnkStruct_02038aa08vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0xc) addr:0x02038ae4 +_ZN18UnkStruct_02038aa08vfunc_10Eji kind:function(arm,size=0xc) addr:0x02038af0 +func_02038b40 kind:function(arm,size=0x34) addr:0x02038afc +_ZN18UnkStruct_02038aa08vfunc_4cEji kind:function(arm,size=0x4) addr:0x02038b30 +func_02038b78 kind:function(arm,size=0xbc) addr:0x02038b34 +_ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x84) addr:0x02038bf0 +func_02038cb8 kind:function(arm,size=0x3c) addr:0x02038c74 +func_02038cf4 kind:function(arm,size=0x1c) addr:0x02038cb0 +func_02038d10 kind:function(arm,size=0x10) addr:0x02038ccc +_ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x1b0) addr:0x02038cdc +_ZN18UnkStruct_02038aa08vfunc_30Ev kind:function(arm,size=0x24) addr:0x02038e8c +func_02038ef4 kind:function(arm,size=0x4c) addr:0x02038eb0 +_ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0x4) addr:0x02038efc +_ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0x114) addr:0x02038f00 +_ZN18UnkStruct_02038aa08vfunc_60Ev kind:function(arm,size=0x4) addr:0x02039014 +_ZN18UnkStruct_02038aa08vfunc_1cEiPiii kind:function(arm,size=0x48) addr:0x02039018 +_ZN18UnkStruct_02038aa08vfunc_20EiPi kind:function(arm,size=0x164) addr:0x02039060 +func_02039208 kind:function(arm,size=0x20) addr:0x020391c4 +_ZN18UnkStruct_02038aa08vfunc_08EiiPsi kind:function(arm,size=0x28) addr:0x020391e4 +func_02039250 kind:function(arm,size=0x64) addr:0x0203920c +_ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0xe4) addr:0x02039270 +_ZN18UnkStruct_02038aa08vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0xc) addr:0x02039354 +_ZN18UnkStruct_02038aa08vfunc_64Ev kind:function(arm,size=0x4) addr:0x02039360 +_ZN18UnkStruct_02038aa08vfunc_68Ei kind:function(arm,size=0x28) addr:0x02039364 +_ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x70) addr:0x0203938c +func_02039440 kind:function(arm,size=0x3c) addr:0x020393fc +_ZN18UnkStruct_02038aa08vfunc_70EPiS0_ kind:function(arm,size=0x5c) addr:0x02039438 +_ZN18UnkStruct_02038aa08vfunc_74Ev kind:function(arm,size=0x44) addr:0x02039494 +func_0203951c kind:function(arm,size=0x40) addr:0x020394d8 +func_0203955c kind:function(arm,size=0x14) addr:0x02039518 _ZN18UnkStruct_02038aa08vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203952c -func_02039578 kind:function(arm,size=0x3c) addr:0x02039534 +_ZN18UnkStruct_0203dae08vfunc_0cEiiii kind:function(arm,size=0x3c) addr:0x02039534 _ZN18UnkStruct_020397f8C2Ev kind:function(thumb,size=0x244) addr:0x02039570 _ZN18UnkStruct_020397f8C1Ev kind:function(thumb,size=0x244) addr:0x020397b4 -_ZN18UnkStruct_020397f88vfunc_4cEv kind:function(thumb,size=0x20) addr:0x020399f8 +_ZN18UnkStruct_020397f88vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x20) addr:0x020399f8 _ZN18UnkStruct_020397f88vfunc_2cEv kind:function(arm,size=0x24c) addr:0x02039a18 _ZN18UnkStruct_020397f813func_02039ca8Ev kind:function(arm,size=0x24) addr:0x02039c64 -_ZN18UnkStruct_020397f88vfunc_3cEv kind:function(arm,size=0xa8) addr:0x02039c88 -_ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0x414) addr:0x02039d30 +_ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0xa8) addr:0x02039c88 +_ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x414) addr:0x02039d30 _ZN18UnkStruct_020397f813func_0203a188Eii kind:function(arm,size=0x138) addr:0x0203a144 _ZN18UnkStruct_020397f813func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x0203a27c _ZN18UnkStruct_020397f813func_0203a30cEv kind:function(arm,size=0x1c) addr:0x0203a2c8 -_ZN18UnkStruct_020397f88vfunc_48Ev kind:function(arm,size=0x34) addr:0x0203a2e4 +_ZN18UnkStruct_020397f88vfunc_4cEji kind:function(arm,size=0x34) addr:0x0203a2e4 _ZN18UnkStruct_020397f813func_0203a35cEv kind:function(arm,size=0x84) addr:0x0203a318 _ZN18UnkStruct_020397f813func_0203a3e0Ev kind:function(arm,size=0x1c) addr:0x0203a39c -_ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x2d4) addr:0x0203a3b8 -_ZN18UnkStruct_020397f813func_0203a6d0Ei kind:function(arm,size=0x120) addr:0x0203a68c -_ZN18UnkStruct_020397f88vfunc_50Eiiii kind:function(arm,size=0x198) addr:0x0203a7ac -_ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x520) addr:0x0203a944 -_ZN18UnkStruct_020397f88vfunc_5cEv kind:function(arm,size=0x74) addr:0x0203ae64 -_ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x1a0) addr:0x0203aed8 +_ZN18UnkStruct_020397f88vfunc_48Ev kind:function(arm,size=0x2d4) addr:0x0203a3b8 +_ZN18UnkStruct_020397f813func_0203a6d0Eii kind:function(arm,size=0x120) addr:0x0203a68c +_ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x198) addr:0x0203a7ac +_ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x520) addr:0x0203a944 +_ZN18UnkStruct_020397f88vfunc_60Ev kind:function(arm,size=0x74) addr:0x0203ae64 +_ZN18UnkStruct_020397f88vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0x1a0) addr:0x0203aed8 _ZN18UnkStruct_020397f813func_0203b0bcEv kind:function(arm,size=0x30) addr:0x0203b078 _ZN18UnkStruct_020397f813func_0203b0ecEj kind:function(arm,size=0x178) addr:0x0203b0a8 _ZN18UnkStruct_020397f88vfunc_18Ei kind:function(arm,size=0xac) addr:0x0203b220 _ZN18UnkStruct_020397f88vfunc_1cEiPiii kind:function(arm,size=0x100) addr:0x0203b2cc -_ZN18UnkStruct_020397f88vfunc_60Ei kind:function(arm,size=0x1c0) addr:0x0203b3cc -_ZN18UnkStruct_020397f88vfunc_64Ei kind:function(arm,size=0x194) addr:0x0203b58c +_ZN18UnkStruct_020397f88vfunc_64Ev kind:function(arm,size=0x1c0) addr:0x0203b3cc +_ZN18UnkStruct_020397f88vfunc_68Ei kind:function(arm,size=0x194) addr:0x0203b58c _ZN18UnkStruct_020397f813func_0203b764Ev kind:function(arm,size=0xb0) addr:0x0203b720 _ZN18UnkStruct_020397f88vfunc_20EiPi kind:function(arm,size=0x578) addr:0x0203b7d0 _ZN18UnkStruct_020397f813func_0203bd8cEi kind:function(arm,size=0x40) addr:0x0203bd48 -_ZN18UnkStruct_020397f88vfunc_6cEPiS0_ kind:function(arm,size=0x3c) addr:0x0203bd88 +_ZN18UnkStruct_020397f88vfunc_70EPiS0_ kind:function(arm,size=0x3c) addr:0x0203bd88 _ZN18UnkStruct_020397f813func_0203be08Ev kind:function(arm,size=0x5c) addr:0x0203bdc4 _ZN18UnkStruct_020397f813func_0203be64Ev kind:function(arm,size=0x220) addr:0x0203be20 _ZN18UnkStruct_020397f813func_0203c084Ev kind:function(arm,size=0xb8) addr:0x0203c040 _ZN18UnkStruct_020397f813func_0203c13cEv kind:function(arm,size=0x64) addr:0x0203c0f8 _ZN18UnkStruct_020397f813func_0203c1a0Ev kind:function(arm,size=0xbc) addr:0x0203c15c -_ZN18UnkStruct_020397f813func_0203c25cEv kind:function(arm,size=0x6c) addr:0x0203c218 -_ZN18UnkStruct_020397f8D1Ev kind:function(arm,size=0x48) addr:0x0203c284 -_ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x40) addr:0x0203c2cc +_ZN18UnkStruct_020397f813func_0203c25cEPS_ kind:function(arm,size=0x6c) addr:0x0203c218 +_ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x48) addr:0x0203c284 +_ZN18UnkStruct_020397f8D1Ev kind:function(arm,size=0x40) addr:0x0203c2cc _ZN18UnkStruct_020397f88vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203c30c -_ZN13MsgProc_Type2C1Eisi kind:function(thumb,size=0x44) addr:0x0203c314 -_ZN13MsgProc_Type213func_0203c39cEii kind:function(thumb,size=0x78) addr:0x0203c358 -_ZN13MsgProc_Type28vfunc_3CEi kind:function(arm,size=0x4c) addr:0x0203c3d0 -_ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c41c +_ZN13MsgProc_Type2C1Ev kind:function(thumb,size=0x44) addr:0x0203c314 +_ZN13MsgProc_Type28vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x78) addr:0x0203c358 +_ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c3d0 +_ZN13MsgProc_Type28vfunc_44Eii kind:function(arm,size=0x4c) addr:0x0203c41c _ZN13MsgProc_Type213func_0203c4acEii kind:function(arm,size=0x118) addr:0x0203c468 _ZN13MsgProc_Type28vfunc_14Eii kind:function(arm,size=0x18) addr:0x0203c580 -func_0203c5dc kind:function(arm,size=0x120) addr:0x0203c598 +_ZN13MsgProc_Type213func_0203c5dcEv kind:function(arm,size=0x120) addr:0x0203c598 _ZN13MsgProc_Type2D0Ev kind:function(arm,size=0x1c) addr:0x0203c6b8 -_ZN13MsgProc_Type2D2Ev kind:function(arm,size=0x14) addr:0x0203c6d4 -_ZN13MsgProc_Type3C1Eisi kind:function(arm,size=0x110) addr:0x0203c6e8 -_ZN13MsgProc_Type313func_0203c83cEv kind:function(arm,size=0x4) addr:0x0203c7f8 -_ZN13MsgProc_Type3D2Ev kind:function(arm,size=0x30) addr:0x0203c7fc +_ZN13MsgProc_Type2D1Ev kind:function(arm,size=0x14) addr:0x0203c6d4 +_ZN13MsgProc_Type3C1Ev kind:function(arm,size=0x110) addr:0x0203c6e8 +_ZN28UnkClass_func_ov000_020d0644D1Ev kind:function(arm,size=0x4) addr:0x0203c7f8 +_ZN13MsgProc_Type3D1Ev kind:function(arm,size=0x30) addr:0x0203c7fc _ZN13MsgProc_Type3D0Ev kind:function(arm,size=0x38) addr:0x0203c82c -func_0203c8a8 kind:function(arm,size=0x58) addr:0x0203c864 -func_0203c900 kind:function(arm,size=0x4) addr:0x0203c8bc +_ZN13MsgProc_Type38vfunc_40Eii kind:function(arm,size=0x58) addr:0x0203c864 +_ZN13MsgProc_Type38vfunc_44Eii kind:function(arm,size=0x4) addr:0x0203c8bc func_0203c904 kind:function(arm,size=0x11c) addr:0x0203c8c0 func_0203ca20 kind:function(arm,size=0x9c) addr:0x0203c9dc func_0203cabc kind:function(arm,size=0x44) addr:0x0203ca78 -func_0203cb00 kind:function(arm,size=0x5c) addr:0x0203cabc +_ZN13MsgProc_Type38vfunc_24EPPs kind:function(arm,size=0x5c) addr:0x0203cabc func_0203cb5c kind:function(arm,size=0x10c) addr:0x0203cb18 -func_0203cc68 kind:function(arm,size=0xf4) addr:0x0203cc24 +_ZN13MsgProc_Type38vfunc_48Ev kind:function(arm,size=0xf4) addr:0x0203cc24 func_0203cd5c kind:function(arm,size=0x44) addr:0x0203cd18 func_0203cda0 kind:function(arm,size=0x20) addr:0x0203cd5c func_0203cdc0 kind:function(arm,size=0x4) addr:0x0203cd7c @@ -2024,17 +2024,17 @@ func_0203d848 kind:function(arm,size=0x8c) addr:0x0203d804 func_0203d8d4 kind:function(arm,size=0x8c) addr:0x0203d890 func_0203d960 kind:function(arm,size=0xc0) addr:0x0203d91c func_0203da20 kind:function(arm,size=0xc0) addr:0x0203d9dc -_ZN18UnkStruct_0203dae0C2Eh kind:function(thumb,size=0x98) addr:0x0203da9c +_ZN18UnkStruct_0203dae0C1Eh kind:function(thumb,size=0x98) addr:0x0203da9c _ZN18UnkStruct_0203dae0D1Ev kind:function(thumb,size=0x30) addr:0x0203db34 _ZN18UnkStruct_0203dae0D0Ev kind:function(thumb,size=0x38) addr:0x0203db64 -_ZN18UnkStruct_0203dae0D2Ev kind:function(thumb,size=0x30) addr:0x0203db9c -_ZN18UnkStruct_0203dae013func_0203dc10Ei kind:function(arm,size=0x64) addr:0x0203dbcc +_ZN18UnkStruct_0203dae013func_0203dc10Ei kind:function(thumb,size=0x30) addr:0x0203db9c +_ZN18UnkStruct_0203dae013func_0203dc10Eii kind:function(arm,size=0x64) addr:0x0203dbcc _ZN18UnkStruct_0203dae013func_0203dc74Eii kind:function(arm,size=0x40) addr:0x0203dc30 _ZN18UnkStruct_0203dae08vfunc_14Eii kind:function(arm,size=0x48) addr:0x0203dc70 _ZN18UnkStruct_0203dae013func_0203dcfcEhiii kind:function(arm,size=0xf0) addr:0x0203dcb8 _ZN18UnkStruct_0203dae013func_0203ddecEv kind:function(arm,size=0x10) addr:0x0203dda8 _ZN18UnkStruct_0203dae013func_0203ddfcEv kind:function(arm,size=0x18) addr:0x0203ddb8 -_ZN18UnkStruct_02038aa013func_0203de14Ei kind:function(arm,size=0x10) addr:0x0203ddd0 +_ZN18UnkStruct_0203dae013func_0203de14Ev kind:function(arm,size=0x10) addr:0x0203ddd0 _ZN18UnkStruct_0203dae013func_0203de24Ev kind:function(arm,size=0x34) addr:0x0203dde0 _ZN18UnkStruct_0203dae013func_0203de58Ei kind:function(arm,size=0x208) addr:0x0203de14 _ZN18UnkStruct_0203dae08vfunc_10Eji kind:function(arm,size=0x30) addr:0x0203e01c @@ -2703,8 +2703,8 @@ data_02057990 kind:data(any) addr:0x02057948 data_02057994 kind:data(any) addr:0x0205794c data_02057998 kind:data(any) addr:0x02057950 data_0205799c kind:data(any) addr:0x02057954 -_ZTV18UnkStruct_02032f0c kind:data(any) addr:0x02057980 -_ZTV18UnkStruct_02032e7c kind:data(any) addr:0x020579b0 +_ZTV18UnkStruct_02032f0c kind:data(any) addr:0x02057978 +_ZTV18UnkStruct_02032e7c kind:data(any) addr:0x020579a8 data_02057a00 kind:data(any) addr:0x020579b8 data_02057a08 kind:data(any) addr:0x020579c0 data_02057a10 kind:data(any) addr:0x020579c8 @@ -2785,8 +2785,8 @@ data_02057cd4 kind:data(any) addr:0x02057c8c _ZTV18UnkStruct_02037750 kind:data(any) addr:0x02057cb8 _ZTV18UnkStruct_020386d8 kind:data(any) addr:0x02057cf4 data_02057d70 kind:data(any) addr:0x02057d28 -data_02057d90 kind:data(any) addr:0x02057d48 -data_02057e0c kind:data(any) addr:0x02057dc4 +_ZTV18UnkStruct_02038aa0 kind:data(any) addr:0x02057d40 +_ZTV18UnkStruct_0203881c kind:data(any) addr:0x02057dbc data_02057e14 kind:data(any) addr:0x02057dcc data_02057e18 kind:data(any) addr:0x02057dd0 data_02057e1c kind:data(any) addr:0x02057dd4 @@ -2795,18 +2795,18 @@ data_02057e24 kind:data(any) addr:0x02057ddc data_02057e28 kind:data(any) addr:0x02057de0 data_02057e2c kind:data(any) addr:0x02057de4 data_02057e30 kind:data(any) addr:0x02057de8 -data_02057e5c kind:data(any) addr:0x02057e14 +_ZTV18UnkStruct_020397f8 kind:data(any) addr:0x02057e0c data_02057ed0 kind:data(any) addr:0x02057e88 data_02057ed4 kind:data(any) addr:0x02057e8c data_02057ed8 kind:data(any) addr:0x02057e90 data_02057eec kind:data(any) addr:0x02057ea4 data_02057f08 kind:data(any) addr:0x02057ec0 -_ZTV13MsgProc_Type2 kind:data(any) addr:0x02057ecc -data_02057f90 kind:data(any) addr:0x02057f48 -data_0205800c kind:data(any) addr:0x02057fc4 -data_02058024 kind:data(any) addr:0x02057fdc -data_0205803c kind:data(any) addr:0x02057ff4 -_ZTV13MsgProc_Base2 kind:data(any) addr:0x0205800c +_ZTV13MsgProc_Type2 kind:data(any) addr:0x02057ec4 +_ZTV13MsgProc_Type3 kind:data(any) addr:0x02057f40 +data_02058004 kind:data(any) addr:0x02057fbc +data_0205801c kind:data(any) addr:0x02057fd4 +data_02058034 kind:data(any) addr:0x02057fec +_ZTV18UnkStruct_0203dae0 kind:data(any) addr:0x02058004 data_02058088 kind:data(any) addr:0x02058040 data_02058090 kind:data(any) addr:0x02058048 data_02058094 kind:data(any) addr:0x0205804c From 52f57e739f04b17fdb932cdbfcaa5ac469d447ac Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 12:39:02 +0200 Subject: [PATCH 12/36] add missing declarations --- include/Unknown/UnkStruct_02038aa0.hpp | 1 + include/Unknown/UnkStruct_020397f8.hpp | 1 + 2 files changed, 2 insertions(+) diff --git a/include/Unknown/UnkStruct_02038aa0.hpp b/include/Unknown/UnkStruct_02038aa0.hpp index 70d7c133..140a2dd8 100644 --- a/include/Unknown/UnkStruct_02038aa0.hpp +++ b/include/Unknown/UnkStruct_02038aa0.hpp @@ -77,6 +77,7 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { static void func_020387e0(u8 *param_2); + UnkStruct_02038aa0(); UnkStruct_02038aa0(u8 param1, u8 param2); void func_02038b40(); bool func_02038b78(); diff --git a/include/Unknown/UnkStruct_020397f8.hpp b/include/Unknown/UnkStruct_020397f8.hpp index 7ec9fc40..90fa4164 100644 --- a/include/Unknown/UnkStruct_020397f8.hpp +++ b/include/Unknown/UnkStruct_020397f8.hpp @@ -179,4 +179,5 @@ class MsgProc_Type2 : public UnkStruct_02038aa0 { /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) override; void func_0203c4ac(unk32, unk32); + void func_0203c5dc(void); }; From adcf6e24e4a717ff2f015a9f6b2ccb657f511ec3 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 15:04:18 +0200 Subject: [PATCH 13/36] merge back progress from backup --- src/Main/Unknown/UnkStruct_0203dae0.cpp | 186 +++++++++++++++++++++--- 1 file changed, 169 insertions(+), 17 deletions(-) diff --git a/src/Main/Unknown/UnkStruct_0203dae0.cpp b/src/Main/Unknown/UnkStruct_0203dae0.cpp index 8d17fb8c..762332ea 100644 --- a/src/Main/Unknown/UnkStruct_0203dae0.cpp +++ b/src/Main/Unknown/UnkStruct_0203dae0.cpp @@ -2,26 +2,178 @@ #include "System/SysNew.hpp" #include "Unknown/UnkStruct_02075dac.hpp" -ARM UnkStruct_0203dae0::UnkStruct_0203dae0(u8 param1) {} -ARM UnkStruct_0203dae0::~UnkStruct_0203dae0() {} -ARM void UnkStruct_0203dae0::func_0203dc10(unk32 param1) {} -ARM void UnkStruct_0203dae0::func_0203dc10(unk32 param_2, unk32 param_3) {} -ARM bool UnkStruct_0203dae0::func_0203dc74(s32 param1, s32 param2) {} -ARM bool UnkStruct_0203dae0::vfunc_14(s32 param1, s32 param2) {} -ARM void UnkStruct_0203dae0::func_0203dcfc(u8 param1, unk32 param2, unk32 param3, s32 param4) {} -ARM unk32 *UnkStruct_0203dae0::func_0203ddec() {} -ARM void UnkStruct_0203dae0::func_0203ddfc() {} -ARM void UnkStruct_0203dae0::func_0203de14() {} -ARM s32 UnkStruct_0203dae0::func_0203de24() {} +extern "C" void Fill256(unk32, unk16 *, unk32, unk32); +extern "C" void func_0203fc78(u8, unk32 *, unk32 *); +extern "C" void func_020298b8(unk32 **, unk32 *, unk32, unk32, unk32); +extern "C" void func_02029830(unk32 **, unk32 *, unk32, unk32, unk32); +extern "C" unk32 func_0203d400(u8); +extern "C" void func_02035440(u8); + +THUMB UnkStruct_0203dae0::UnkStruct_0203dae0(u8 param1) { + this->mUnk_114 = NULL; + this->mUnk_118 = -1; + this->mUnk_11c = 0; + this->mUnk_11e = 0; + this->mUnk_11f = 0; + this->mUnk_120 = 1; + this->mUnk_121 = param1; + this->mUnk_122 = 0; + + Fill256(0, &this->mUnk_54, 0xC0, 1); + + if (this->mUnk_121 == 0) { + this->mUnk_114 = new(data_027e0ce0[1], 4) UnkStruct_0203d1d0(); + } else { + this->mUnk_114 = new(data_027e0ce0[1], 4) UnkStruct_0203d254(); + } +} + +THUMB UnkStruct_0203dae0::~UnkStruct_0203dae0() { + if (this->mUnk_114 != NULL) { + delete this->mUnk_114; + this->mUnk_114 = NULL; + } +} + +THUMB UnkStruct_0203dae0::UnkStruct_0203dae0() {} + +// non-matching (regalloc) +ARM void UnkStruct_0203dae0::func_0203dc10(unk32 param_2) { + if (param_2 != 0) { + if (this->mUnk_11c == 0x0) { + return; + } + + if (this->mUnk_114->vfunc_08(this) != 0) { + this->mUnk_10 = this->mUnk_114->func_0203d1b4(); + } + } else { + this->mUnk_114->vfunc_0c(); + } + + this->mUnk_122 = param_2; +} + +ARM bool UnkStruct_0203dae0::func_0203dc74(s32 param1, s32 param2) { + this->func_0203ddfc(); + this->vfunc_14(param1, param2); + this->mUnk_11c = 0; + return true; +} + +ARM bool UnkStruct_0203dae0::vfunc_14(s32 param1, s32 param2) { + unk32 local_c; + unk32 local_10; + + local_c = param1; + local_10 = param2; + + func_0203fc78(this->func_02032fa4(), &local_c, &local_10); + this->UnkStruct_02032f0c::vfunc_14(local_c, local_10); + this->mUnk_10 = 0; + return true; +} + +// non-matching (regalloc) +ARM void UnkStruct_0203dae0::func_0203dcfc(u8 param1, unk32 param2, unk32 param3, s32 param4) { + this->mUnk_50 = param1; + this->vfunc_14(this->mUnk_4a, this->mUnk_4c); + this->mUnk_11c = UnkStruct_0203dae0::func_0203d318(this->mUnk_14, this->mUnk_18); + this->func_0203dc10(1); + + if (func_0203d400(this->UnkStruct_02032f0c::func_02032fa4()) != 0) { + func_020298b8(&this->mUnk_10, this->func_0203ddec(), this->mUnk_14, this->mUnk_18, 4); + } else { + func_02029830(&this->mUnk_10, this->func_0203ddec(), this->mUnk_14, this->mUnk_18, 4); + } + + this->mUnk_28 = (unk32 *) this->mUnk_2c; + this->mUnk_2c = &(UnkStruct_MsgProc_Base_unk_2C *) this->mUnk_10; + this->mUnk_30 = param4; + this->mUnk_34 = 3; + this->vfunc_10(param3, 3); + this->func_0203de58(param2); +} + +ARM unk32 *UnkStruct_0203dae0::func_0203ddec() { + return this->mUnk_114->func_0203d1b4(); +} + +ARM void UnkStruct_0203dae0::func_0203ddfc() { + this->mUnk_114->mUnk_04 = NULL; + this->mUnk_11c = 0; +} + +ARM unk32 UnkStruct_0203dae0::func_0203de14(unk32 param1) { + //! TODO: class? + func_02035440(this->mUnk_50); +} + +ARM s32 UnkStruct_0203dae0::func_0203de24() { + if (func_0203d400(this->UnkStruct_02032f0c::func_02032fa4()) == 0) { + return this->mUnk_14 * this->mUnk_18 * 0x20; + } + + return this->mUnk_18 << 10; +} + ARM bool UnkStruct_0203dae0::func_0203de58(s32 param1) {} -ARM void UnkStruct_0203dae0::vfunc_10(u32 param1, unk32 param2) {} -ARM void UnkStruct_0203dae0::vfunc_30() {} -ARM bool UnkStruct_0203dae0::vfunc_28() {} + +ARM void UnkStruct_0203dae0::vfunc_10(u32 param1, unk32 param2) { + this->func_0203dc10(1); + this->mUnk_11e = param1; + this->mUnk_118 = -1; + this->UnkStruct_02032f0c::vfunc_10(param1, -1); +} + +ARM void UnkStruct_0203dae0::vfunc_30() { + unk32 iVar2; + + iVar2 = this->mUnk_118; + this->mUnk_118 = data_02075dac.func_0203f9b8(this); + + if (this->mUnk_118 == iVar2) { + return; + } + + this->func_0203dc10(1); +} + +ARM bool UnkStruct_0203dae0::vfunc_28() { + if (this->mUnk_122 != 0) { + this->func_0203e0f8(); + this->func_0203dc10(0); + return true; + } + + return false; +} + ARM bool UnkStruct_0203dae0::func_0203e0f8() {} -ARM void UnkStruct_0203dae0::vfunc_2c() {} + +ARM void UnkStruct_0203dae0::vfunc_2c() { + this->vfunc_30(); +} + ARM bool UnkStruct_0203dae0::func_0203e1b0(unk32 param1, unk32 param2, s32 param3) {} -ARM unk32 UnkStruct_0203dae0::vfunc_18(s32 param1) {} -ARM void UnkStruct_0203dae0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {} + +ARM unk32 UnkStruct_0203dae0::vfunc_18(s32 param1) { + unk32 iVar1; + + iVar1 = this->UnkStruct_02032f0c::vfunc_18(param1); + + if (iVar1 != 0) { + this->func_0203dc10(1); + } + + return iVar1; +} + +ARM void UnkStruct_0203dae0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) { + this->func_0203dc10(1); + this->UnkStruct_02032f0c::vfunc_08(param1, param2, param3, param4); +} + ARM void UnkStruct_0203dae0::func_0203e2e8(s32 param1, s32 param2, unk32 param3, u32 param4) {} ARM void UnkStruct_0203dae0::func_0203e510(s32 *param1, s32 param2, s32 param3) {} ARM void UnkStruct_0203dae0::func_0203e62c(s32 *param1, s32 param2) {} From 2d226615b6da933805669d7602250f5dd6688b9e Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 15:12:28 +0200 Subject: [PATCH 14/36] merge back progress from backup 2 --- src/Main/Unknown/UnkStruct_02032f0c.cpp | 95 ++++++++++++++++++++++--- 1 file changed, 86 insertions(+), 9 deletions(-) diff --git a/src/Main/Unknown/UnkStruct_02032f0c.cpp b/src/Main/Unknown/UnkStruct_02032f0c.cpp index 07476438..33871be8 100644 --- a/src/Main/Unknown/UnkStruct_02032f0c.cpp +++ b/src/Main/Unknown/UnkStruct_02032f0c.cpp @@ -1,15 +1,85 @@ #include "Unknown/UnkStruct_02032f0c.hpp" +#include "Unknown/UnkStruct_02032e7c.hpp" #include "Unknown/UnkStruct_02035064.hpp" -ARM UnkStruct_02032f0c::UnkStruct_02032f0c() {} -UnkStruct_02032f0c::~UnkStruct_02032f0c() {} -ARM void UnkStruct_02032f0c::func_02032f94() {} -ARM unk32 *UnkStruct_02032f0c::func_02032f98(unk32 param_2) {} -ARM u8 UnkStruct_02032f0c::func_02032fa4() {} -ARM s32 UnkStruct_02032f0c::func_02032fb4() {} -bool UnkStruct_02032f0c::vfunc_14(s32 param1, s32 param2) {} +extern "C" void Fill32(unk32, void *, unk32); +extern "C" void Fill16(unk32, void *, unk32); +extern "C" void func_020296e0(unk32 **, UnkStruct_MsgProc_Base_unk_2C **, unk32, unk32, unk32, unk32); +extern "C" unk32 func_0202ab48(void); + +//! TODO: move? +// ARM UnkStruct_02032e7c::UnkStruct_02032e7c() { +// this->mUnk_04 = NULL; +// this->mUnk_08 = 0; +// this->mUnk_0a = 0; +// this->mUnk_0c = 0; +// this->mUnk_0e = 0; + +// if (func_0202ab48() == 0) { +// this->mUnk_10 = 2; +// } else { +// this->mUnk_10 = 3; +// } +// } + +THUMB UnkStruct_02032f0c::UnkStruct_02032f0c() { + this->mUnk_04 = 0; + this->mUnk_08 = 0; + this->mUnk_0c = NULL; + this->mUnk_38 = 0; + this->mUnk_3c = 0; + this->mUnk_4a = 0; + this->mUnk_4c = 0; + this->mUnk_4d = 0; + this->mUnk_4e = 0; + this->mUnk_4f = 0; + this->mUnk_50 = 0; + this->mUnk_51 = 0; + Fill32(0, &this->mUnk_10, 0x18); + Fill32(0, &this->mUnk_28, 0x10); + Fill16(0, &this->mUnk_3e, 0xC); + this->mUnk_10 = NULL; + this->mUnk_2c = NULL; + this->mUnk_30 = 2; + this->mUnk_34 = 3; +} + +THUMB UnkStruct_02032f0c::~UnkStruct_02032f0c() {} + +ARM u16 **UnkStruct_02032f0c::func_02032f98(u16 *value) { + this->mUnk_0c = value; + return &this->mUnk_0c; +} + +ARM u8 UnkStruct_02032f0c::func_02032fa4() { + return UnkStruct_02035064::func_02035428(this->mUnk_50); +} + +ARM s32 UnkStruct_02032f0c::func_02032fb4() { + return this->mUnk_2c[0]->mUnk_01 + this->mUnk_34; +} + +// non-matching +bool UnkStruct_02032f0c::vfunc_14(s32 param1, s32 param2) { + s16 iVar1; + s16 iVar2; + + iVar1 = ((param1 + 0x7 + ((param1 + 0x7) >> 0x1D))) * 0x8; + iVar2 = ((param2 + 0x7 + ((param2 + 0x7) >> 0x1D))) * 0x8; + this->mUnk_4a = param1; + this->mUnk_4c = param2; + this->mUnk_14 = (iVar1 + (iVar1 >> 0x1D)) * 0x2000 >> 0x10; + this->mUnk_18 = (iVar2 + (iVar2 >> 0x1D)) * 0x2000 >> 0x10; + + return true; +} + void UnkStruct_02032f0c::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {} -void UnkStruct_02032f0c::vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) {} + +void UnkStruct_02032f0c::vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) { + func_020296e0(&this->mUnk_10, this->mUnk_2c, param1, param2, param4, param3); +} + void UnkStruct_02032f0c::vfunc_10(u32 param1, unk32 param2) {} ARM void UnkStruct_02032f0c::func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5) {} unk32 UnkStruct_02032f0c::vfunc_18(s32 param1) {} @@ -19,7 +89,11 @@ ARM void UnkStruct_02032f0c::func_020334b4(u32 param1, s32 param2, s32 param3, s ARM void UnkStruct_02032f0c::func_02033628(unk32 param1, u16 *param2) {} ARM u32 UnkStruct_02032f0c::func_0203369c(u16 *param1, s32 param2) {} ARM void UnkStruct_02032f0c::func_02033780(s32 param1) {} -ARM s32 UnkStruct_02032f0c::func_020337d8(s32 param1) {} + +ARM s32 UnkStruct_02032f0c::func_020337d8(s32 param1) { + return this->mUnk_2c[0]->mUnk_08[1] * param1 + (param1 - 1) * this->mUnk_34; +} + ARM s32 UnkStruct_02032f0c::func_020337fc(s16 *param1, s32 param2) {} ARM void UnkStruct_02032f0c::func_020338a8(s32 param1, unk32 param2) {} ARM void UnkStruct_02032f0c::func_020338d0(unk32 *param1, unk32 param2) {} @@ -31,3 +105,6 @@ ARM u16 *UnkStruct_02032f0c::func_02033b0c(s32 param1) {} ARM bool UnkStruct_02032f0c::func_02033c6c() {} ARM unk32 UnkStruct_02032f0c::func_02033c88(u32 param1) {} ARM s32 UnkStruct_02032f0c::func_02033cbc(s16 *param1) {} + +//! TODO: move? +// ARM UnkStruct_02032e7c::~UnkStruct_02032e7c() {} From f3efc24074d1f74236d2f7a35698d5417b61c255 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 17:12:49 +0200 Subject: [PATCH 15/36] merge back progress from backup 3 --- src/Main/Unknown/UnkStruct_020397f8.cpp | 1068 ++++++++++++++++++++++- 1 file changed, 1036 insertions(+), 32 deletions(-) diff --git a/src/Main/Unknown/UnkStruct_020397f8.cpp b/src/Main/Unknown/UnkStruct_020397f8.cpp index 7355c990..33ffb413 100644 --- a/src/Main/Unknown/UnkStruct_020397f8.cpp +++ b/src/Main/Unknown/UnkStruct_020397f8.cpp @@ -6,39 +6,1043 @@ #include "Player/TouchControl.hpp" #include "Save/AdventureFlags.hpp" -ARM UnkStruct_020397f8::UnkStruct_020397f8() {} -ARM void UnkStruct_020397f8::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) {} -ARM void UnkStruct_020397f8::vfunc_2c() {} -ARM void UnkStruct_020397f8::func_02039ca8() {} -ARM void UnkStruct_020397f8::vfunc_40(unk32 param_2, unk32 param_3) {} -ARM void UnkStruct_020397f8::vfunc_44(s32 touchLastX, s32 touchLastY) {} -ARM void UnkStruct_020397f8::func_0203a188(s32 param1, s32 param2) {} -ARM bool UnkStruct_020397f8::func_0203a2c0() {} -ARM unk32 UnkStruct_020397f8::func_0203a30c() {} -ARM void UnkStruct_020397f8::vfunc_4c(u32 param1, unk32 param2) {} -ARM void UnkStruct_020397f8::func_0203a35c() {} -ARM bool UnkStruct_020397f8::func_0203a3e0() {} -ARM void UnkStruct_020397f8::vfunc_48() {} -ARM bool UnkStruct_020397f8::func_0203a6d0(unk32 param1, unk32 param2) {} +extern "C" void func_ov000_020d0460(void *); +extern "C" void func_0203efd8(void *, void *); +extern "C" void func_0203ee48(void *); +extern "C" void func_ov018_02169634(UnkStruct_020397f8 *); + +extern unk16 data_02056a0e[]; +extern u8 data_02056a08[]; + +// non-matching (regalloc) +THUMB UnkStruct_020397f8::UnkStruct_020397f8() : + UnkStruct_02038aa0(0, 0), + mUnk_164(NULL) { + UnknownMsgChoiceStruct *puVar3; + + this->mUnk_410.mUnk_00 = this; + this->mUnk_414 = 0; + this->mUnk_418 = NULL; + this->mUnk_41c = 0; + this->mUnk_41e = 0; + this->mUnk_420 = 0; + this->mUnk_424.mUnk_00 = this; + + // ??? + puVar3 = this->mUnk_428; + do { + puVar3->mUnk_00 = NULL; + puVar3 += 1; + } while ((unk32 *) puVar3 < (unk32 *) this->mUnk_528); + + func_0203ee48(&this->mUnk_424); + func_ov000_020d0460(&this->mUnk_534); + this->mUnk_53c = 0; + this->mUnk_540 = ~0x7FFF; + this->mUnk_544 = 3; + func_ov000_020d0460(&this->mUnk_548); + this->mUnk_550 = 0; + this->mUnk_554 = 0x00016000; + this->mUnk_558 = 3; + this->mUnk_55c = -1; + this->mUnk_560 = -1; + this->mUnk_56c = 0; + this->mUnk_56e = 0; + this->mUnk_570 = 0; + this->mUnk_572 = 0; + this->mUnk_574 = 0; + this->mUnk_576 = 0; + this->mUnk_578 = 3; + this->mUnk_57a = 0; + this->mUnk_57b = 0; + this->mUnk_57c = 0; + this->mUnk_57d = 0; + this->mUnk_57e = 0; + this->mUnk_57f = 0; + this->mUnk_580 = 0; + this->mUnk_581 = 0; + this->mUnk_582 = 0; + this->mUnk_583 = 0; + this->mUnk_585 = 0; + this->mUnk_586 = 0; + func_0203efd8(&this->mUnk_588, this); + this->mUnk_124 = (UnkSubClass1_unk_124 *) &this->mUnk_588; + this->func_02039ca8(); + + if (this->func_02032fa4() != 0) { + this->mUnk_168.func_020350b4(0x39, 0, 2, 0, 0); + this->mUnk_1f0.func_020350b4(0x33, 0, 2, 0, 0); + this->mUnk_278.func_020350b4(0x33, 1, 2, 0, 0); + } else { + this->mUnk_168.func_020350b4(0x34, 0, 2, 0, 0); + this->mUnk_1f0.func_020350b4(0x32, 0, 2, 0, 0); + this->mUnk_278.func_020350b4(0x32, 1, 2, 0, 0); + } + + this->mUnk_168.func_020351b8(true, false, false, false); + this->mUnk_1f0.func_020351b8(false, false, false, false); + this->mUnk_278.func_020351b8(false, false, false, false); +} + +// non-matching +THUMB void UnkStruct_020397f8::vfunc_4c(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) { + this->UnkStruct_02038aa0::vfunc_4c(param1, param2, param3, param4); + this->func_0203dcfc(this->mUnk_50, 0, 0, 2); +} + +ARM void UnkStruct_020397f8::vfunc_2c() { + if (gGame.mUnk_101 != 0) { + if (((data_02056be4[data_027e077c.mUnk_0] & 1) != 0) != this->mUnk_50) { + return; + } + } + + this->UnkStruct_02038aa0::vfunc_2c(); + + if (this->mUnk_56c > 0) { + this->mUnk_56c--; + } + + if (this->mUnk_50 != ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0)) { + this->mUnk_57f = 0; + } + + if (this->mUnk_15c > 0) { + if ((this->mUnk_128.mUnk_04 == NULL || this->mUnk_128.mUnk_04[0] == 0) != 0) { + this->mUnk_424.func_0203ef78(this->mUnk_128.mUnk_08); + } + + this->func_0203be64(); + this->func_0203a35c(); + + if (this->mUnk_580 != 0) { + this->mUnk_168.func_0203516c(); + } + + if (this->mUnk_584 != 0) { + this->mUnk_300.func_0203516c(); + } + + if (this->mUnk_585 != 0) { + this->mUnk_388.func_0203516c(); + } + + if ((this->func_0203a2c0() != 0 && this->mUnk_57f == 0) && this->mUnk_56c <= 0) { + this->mUnk_1f0.func_0203516c(); + } + + if (this->mUnk_08 != NULL) { + bool value; + + switch (this->mUnk_08->mUnk_1c) { + case 1: + case 2: + value = true; + break; + default: + value = false; + break; + } + + if (value != 0) { + this->mUnk_278.func_0203516c(); + } + } + + if (this->mUnk_15e == 6) { + func_ov018_02169634(this); + } else { + this->mUnk_410.func_0203ebf8(); + } + } + + if (this->mUnk_15c == 1) { + if (this->mUnk_586 == ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0)) { + switch (this->mUnk_150[1]) { + case 0: + this->func_0203b0ec(1); + break; + case 2: + case 3: + if (this->func_0203a3e0() != 0) { + this->func_0203bd8c(this->mUnk_572); + } else { + this->func_0203b0ec(1); + } + break; + } + } + } +} + +ARM void UnkStruct_020397f8::func_02039ca8() { + s32 i; + + for (i = 0; i < ARRAY_LEN(this->mUnk_564); i++) { + this->mUnk_564[i] = 0x1A; + } +} + +ARM void UnkStruct_020397f8::vfunc_3c(unk32 param_2, unk32 param_3) { + if (this->mUnk_15c > 0 && this->func_0203de14(param_2) != 0) { + if (this->mUnk_124->mUnk_29 != 3) { + if ((this->mUnk_50 == 0) && func_ov000_02079e04() != 0) { + return; + } + + if (gGame.mUnk_101 != 0) { + if (((data_02056be4[data_027e077c.mUnk_0] & 1) != 0) != this->mUnk_50) { + return; + } + } + + this->vfunc_40(0, 0); + } + } +} + +// non-matching +ARM void UnkStruct_020397f8::vfunc_40(s32 touchLastX, s32 touchLastY) { + UnkStruct_02038aa0 *bVar1; + s8 cVar2; + unk32 iVar4; + unk32 iVar6; + unk32 iVar7; + unk32 iVar8; + unk32 uVar9; + unk32 iStack_a8; + unk32 iStack_a4; + unk32 local_a0; + unk32 local_9c; + unk32 local_98; + unk32 local_94; + unk32 local_90; + unk32 local_8c; + unk32 iVar5; + UnkStruct_01ffbe34 aStack_88; + UnkStruct_01ffbe34 aStack_68; + UnkStruct_01ffbe34 aStack_48; + + local_8c = 0; + local_90 = 0; + bVar1 = gMessageManager.mUnk_28[this->mUnk_50]; + + this->vfunc_6c(&local_8c, &local_90); + this->func_0203a188(local_8c + touchLastX, local_90 + touchLastY); + this->func_0203e1b0(touchLastX + local_8c + (this->mUnk_158.x - (this->mUnk_14 << 3) / 2), + touchLastY + local_90 + (this->mUnk_158.y - (this->mUnk_18 << 3) / 2), 0); + + if (this->mUnk_584 != 0) { + iVar5 = this->mUnk_18 << 3; + + if (this->mUnk_580 != 0) { + iVar5 = -0xC; + } else { + iVar5 = 0; + } + + this->mUnk_300.func_02034a1c(touchLastX + local_8c + this->mUnk_55c + (this->mUnk_158.x - (this->mUnk_14 << 3) / 2), + iVar5 + touchLastY + local_90 + this->mUnk_560 + ((this->mUnk_158.y - (iVar5 / 2))), 0); + } + + if (this->mUnk_585 != 0 && ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0)) { + switch (gGame.mModeId) { + case GameModeId_Adventure: + if (data_027e0cbc.func_0203d7e0(3) != 0) { + this->mUnk_388.func_02034b0c(0xBE, 0, 0, 0, 0); + } + break; + case GameModeId_Battle: + if (data_027e0cbc.func_0203d7e0(0x58) != 0) { + this->mUnk_388.func_02034b0c(0x013B, 0, 0, 0, 0); + } + break; + } + } + + iVar5 = this->func_02032fa4(); + iVar8 = bVar1->mUnk_18; + uVar9 = data_02056a04[iVar8]; + // func_0203489c(uVar9, data_02056a16[iVar8], &local_94, &local_98); + iVar6 = this->mUnk_158.x - local_94; + iVar7 = this->mUnk_158.y - local_98; + + if ((this->mUnk_15e != 7) && (this->func_0203a2c0() != 0)) { + func_01ffbe34(&aStack_48); + func_020347b0(uVar9, data_02056a10[iVar8], &local_9c, &local_a0, 4, 4); + local_9c += touchLastX + local_8c + iVar6; + local_a0 += touchLastY + local_90 + iVar7; + + if (data_027e0c38[5] == 1) { + iVar8 = func_0202ab48(); + + if (iVar8 == 0) { + iVar8 = 0; + } else { + iVar8 = -3; + } + + local_9c = (0x108 - local_9c) + iVar8; + } + + if ((this->mUnk_57f == 0) && (this->mUnk_56c <= 0)) { + func_01ffbe34(&aStack_68); + aStack_68.mUnk_0a = 1; + this->mUnk_1f0.func_02034a1c(local_9c, local_a0, &aStack_68); + } else { + // func_02034984(iVar5 != 0 ? 0x11F : 0x18, 0, local_9c, local_a0 + 2, 0); + } + } + + if (this->mUnk_08 != 0) { + if ((this->mUnk_08->mUnk_1c == 1 || this->mUnk_08->mUnk_1c == 2) == 0) { + return; + } + + func_01ffbe34(&aStack_88); + aStack_88.mUnk_0a = 1; + func_02034698(iVar5 != 0 ? 0x11F : 0x18, 2, &iStack_a4, &iStack_a8); + iStack_a4 += touchLastX + local_8c + iVar6; + iStack_a8 += touchLastY + local_90 + iVar7; + this->mUnk_278.func_02034a1c(iStack_a4, iStack_a8, &aStack_88); + } +} + +// non-matching +ARM void UnkStruct_020397f8::func_0203a188(s32 param1, s32 param2) { + unk16 sVar1; + unk16 sVar2; + unk32 iVar3; + unk32 iVar4; + unk32 uVar5; + unk32 iVar6; + unk32 iStack_54; + unk32 iStack_50; + unk32 iStack_4c; + unk32 iStack_48; + UnkStruct_01ffbe34 aStack_44; + unk32 uStack_24; + + if (this->mUnk_15e == 7) { + return; + } + + // (short)(ushort)*(byte *)((int)gMessageManager.mUnk_28[(this->mUnk_50 - 0x28) * 0x18]; + + iVar6 = gMessageManager.mUnk_10 + this->mUnk_50; + // uStack_24 = param_4; + + if (data_027e0cbc.func_0203d7e0(data_02056a00[iVar6]) != 0) { + uVar5 = data_02056a04[iVar6]; + + func_0203489c(uVar5, data_02056a16[iVar6], &iStack_48, &iStack_4c); + iVar3 = iStack_50 + (this->mUnk_158.x - iStack_48); + + func_02034698(uVar5, data_02056a0e[iVar6], &iStack_50, &iStack_54); + iVar4 = iStack_54 + (this->mUnk_158.y - iStack_4c); + + func_01ffbe34(&aStack_44); + aStack_44.mUnk_0a = 1; + + if (this->mUnk_580 != 0) { + this->mUnk_168.func_02034a1c(param1 + iVar3, param2 + iVar4, &aStack_44); + } else { + func_02034984(uVar5, data_02056a08[iVar6], param1 + iVar3, param2 + iVar4); + } + } +} + +ARM bool UnkStruct_020397f8::func_0203a2c0() { + bool value = false; + + switch (this->mUnk_150[1]) { + case 1: + case 2: + value = true; + break; + default: + break; + } + + if (this->func_02039250() != 0 && this->func_02038b78() != 0 && value) { + return true; + } + + return false; +} + +//! TODO: wrong intrinsic call? +ARM u32 UnkStruct_020397f8::func_0203a30c() { + return this->mUnk_574 / this->pInfoEntry->mUnk_06; +} + +// non-matching (regalloc) +ARM void UnkStruct_020397f8::vfunc_48(u32 param1, unk32 param2) { + if (this->mUnk_164 != NULL && this->mUnk_164->mUnk_15c > 0) { + this->func_02038b40(); + } + + this->mUnk_410.func_0203ec34(); +} + +ARM void UnkStruct_020397f8::func_0203a35c() { + if ((this->mUnk_57c == 1 || this->mUnk_150[3] != 0) || + (this->mUnk_128.mUnk_04 == NULL || this->mUnk_128.mUnk_04[0] == 0) != 0) { + if (this->func_0203a3e0()) { + s16 mUnk_56e = this->mUnk_56e; + s16 mUnk_570 = this->mUnk_570; + UnkStruct_020397f8 *mUnk_164 = this->mUnk_164; + + mUnk_164->mUnk_168.mUnk_10 = mUnk_56e; + mUnk_164->mUnk_168.mUnk_14 = mUnk_570; + this->mUnk_164->func_02039208(4); + } + } else { + this->mUnk_164->func_02038b40(); + } +} + +ARM bool UnkStruct_020397f8::func_0203a3e0() { + return this->mUnk_164->mUnk_168.mUnk_06 > 0; +} + +ARM void UnkStruct_020397f8::vfunc_44(s32 touchLastX, s32 touchLastY) { + unk32 iVar2; + unk32 iVar5; + unk32 iStack_14; + unk32 iStack_18; + + if (this->mUnk_15c <= 0 || this->func_0203951c() == 0) { + return; + } + + iStack_14 = 0; + iStack_18 = 0; + + this->vfunc_6c(&iStack_14, &iStack_18); + + iVar5 = touchLastX - iStack_14; + iVar2 = touchLastY - iStack_18; + + if ((data_027e103c != 0 && data_027e103c->mUnk_1c == 0x8F) || (data_027e077c.mUnk_0 != data_027e077c.mUnk_4)) { + return; + } + + if ((data_02056be4[data_027e077c.mUnk_0] & 2) == 0) { + if ((gTouchControl.mFlags & 1) != 0) { + if (this->mUnk_50 == 0 && data_027e0d38 != 0) { + if (func_ov000_02079e04() == 0 && data_027e0e28->func_ov000_0207bc48() == 0) { + if (gGame.mUnk_101 == 0 && data_027e103c->mUnk_24 == 0) { + return; + } + } + } + + if (this->func_0203a6d0(iVar5, iVar2) == 0 && this->func_0203a2c0() != 0) { + this->mUnk_57f = 1; + } + } else { + if (gTouchControl.mTouch != 0) { + this->func_0203a6d0(iVar5, iVar2); + return; + } + + if (gTouchControl.mTouch == 0) { + switch (this->mUnk_150[1]) { + case 3: + case 4: + break; + case 5: + if (data_027e103c->mUnk_20 == 3) { + this->func_0203b0ec(1); + } + break; + case 6: + if (data_027e103c->mUnk_20 == 5) { + this->func_0203b0ec(1); + } + break; + case 7: + break; + case 2: + //! TODO: fixme + // if (this->mUnk_164->mUnk_168.mUnk_06 <= 0) { + // if ((gTouchControl.mFlags & 2) != 0) { + // this->mUnk_128.mUnk_14 = 0; + + // if (this->func_0203b0bc() != 0) { + // this->func_0203b0ec(1); + // } + + // this->mUnk_1f0.mUnk_5c.mUnk_08 = 0; + // this->mUnk_1f0.func_020352d8(); + // } + // } + break; + case 0: + case 1: + default: + if ((gTouchControl.mFlags & 2) != 0) { + this->mUnk_128.mUnk_14 = 0; + + if (this->func_0203b0bc() != 0) { + this->func_0203b0ec(1); + } + + this->mUnk_1f0.mUnk_5c.mUnk_08 = 0; + this->mUnk_1f0.func_020352d8(); + } + break; + } + } + } + } +} + +// non-matching +ARM bool UnkStruct_020397f8::func_0203a6d0(unk32 param1, unk32 param2) { + unk32 iVar1; + unk32 uVar2; + UnkStruct_0203b264 *piVar3; + + if (this->mUnk_164->mUnk_168.mUnk_06 > 0 && this->mUnk_164->mUnk_15c <= 0) { + return false; + } + + iVar1 = this->vfunc_34(param2); + piVar3 = NULL; + + if (!(iVar1 < 0) && iVar1 < 4) { + piVar3 = this->mUnk_424.func_0203eeb0(iVar1, param1); + } + + if (piVar3 != NULL && ((piVar3->mUnk_0[3] << 0x10) | ((u16 *) piVar3->mUnk_0)[2]) == 0x00FF0002) { + uVar2 = this->func_02038cb8(iVar1); + this->mUnk_410.func_0203ec4c(piVar3, uVar2, + (s16) (this->mUnk_158.x - ((this->mUnk_14 << 3) / 2)) + iVar1 + this->mUnk_56e, + (s16) (this->mUnk_158.y - ((this->mUnk_18 << 3) / 2)) + iVar1 + this->mUnk_570); + + this->mUnk_57f = 0; + return true; + } + + return false; +} + +// non-matching +ARM void UnkStruct_020397f8::vfunc_50() { + bool bVar5; + bool bVar2; + int iVar4; + int iVar6; + s16 temp; + + // iVar6 = param3[0]; + + if (data_027e0c54 != 0) { + UnkStruct_020397f8 *pVar4 = gMessageManager.func_02036700(); + + if (pVar4 != NULL && pVar4->mUnk_15c > 0) { + this->func_02038b40(); + } + } + + if (gGame.mModeId == GameModeId_Adventure && data_027e0d38->func_ov000_02078b40() == 2 && + func_ov003_020f3f94(data_ov009_0211f5b4) == 0) { + UnkStruct_020397f8 *pVar4 = (UnkStruct_020397f8 *) gMessageManager.mUnk_28[4]; + + if (pVar4 != NULL && pVar4->mUnk_15c > 0) { + this->func_02038b40(); + } + } + + this->mUnk_586 = (data_02056be4[data_027e077c.mUnk_0] & 1) != 0; + // temp = param3[8]; + + // if (temp >= 0 && param3[9] >= 0) { + // temp = param3[10]; + // } + + if (temp < 0) { + this->mUnk_57b = temp; + } else { + this->mUnk_57b = 0; + } + + // this->func_02038f44(param1, param2, param3, param4, iVar6); + this->mUnk_574 = 0; + + // if (data_027e0d38 != 0 && (data_02056be4[data_027e077c.mUnk_0] & 1) != 0 && (param3[11])) { + // data_027e103c->func_ov000_020cf284(0x80, 0); + // } +} + +// switch decomp issue (solved now?) ARM void UnkStruct_020397f8::vfunc_54() {} -ARM void UnkStruct_020397f8::vfunc_58() {} -ARM void UnkStruct_020397f8::vfunc_60() {} -ARM void UnkStruct_020397f8::vfunc_5c(u16 *param_2, struct UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) {} -ARM bool UnkStruct_020397f8::func_0203b0bc() {} -ARM s32 UnkStruct_020397f8::func_0203b0ec(u32 param1) {} -ARM unk32 UnkStruct_020397f8::vfunc_18(s32 param1) {} -ARM unk32 UnkStruct_020397f8::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {} -ARM void UnkStruct_020397f8::vfunc_64() {} -ARM s32 UnkStruct_020397f8::vfunc_68(unk32 param1) {} -ARM void UnkStruct_020397f8::func_0203b764() {} + +ARM void UnkStruct_020397f8::vfunc_5c() { + if (this->mUnk_15f == 0 || this->pInfoEntry->mUnk_06 <= 2) { + this->mUnk_168.mUnk_5c.mUnk_08 = this->mUnk_168.mUnk_7c; + this->mUnk_168.func_020352d8(); + } else { + this->mUnk_168.mUnk_5c.mUnk_08 = 0; + this->mUnk_168.func_020352d8(); + this->mUnk_168.func_020351b8(1, 0, 0, 0); + } +} + +// non-matching +ARM void UnkStruct_020397f8::vfunc_58() { + bool bVar1; + s8 *puVar2; + int iVar3; + char *pcVar4; + + if (this->mUnk_160 != 0) { + if (data_027e103c != NULL) { + if (data_027e103c->func_ov000_020cf4bc() != 0) { + puVar2 = (s8 *) data_027e103c->func_ov000_020cef9c(); + + if ((puVar2 + 0x244) != NULL || (puVar2[0x250] == '\x02')) { + puVar2 = (s8 *) data_027e103c->func_ov000_020cef9c(); + + if ((UnkStruct_020397f8 *) (puVar2 + 0x244) == this) { + data_027e103c->func_ov000_020cfb38(); + } + } + } + + if (this->mUnk_581 != 0 && data_027e103c->func_ov000_020cf488() != 0) { + data_027e103c->func_ov000_020cfa24(0, 0); + this->mUnk_581 = 0; + } + + if (this->mUnk_582 != 0) { + data_027e103c->func_ov000_020cfe40(0, 2); + this->mUnk_582 = 0; + } + + if (this->mUnk_583 != 0) { + data_027e103c->func_ov005_02104028(0); + this->mUnk_583 = 0; + } + } + + if (gGame.mModeId == GameModeId_Adventure && func_ov000_02079e04() && (data_027e1054->mUnk_04 + 0x99) != 0 && + (data_027e077c.mUnk_0 != 0x39 || data_027e103c->func_ov000_020cf0bc())) { + data_027e1054->func_ov003_020f4874(); + data_027e103c->func_ov005_02103f8c(data_02057ed4); + } + } + + this->UnkStruct_02038aa0::vfunc_58(); +} + +ARM bool UnkStruct_020397f8::func_0203b0bc() { + return this->mUnk_57f != 0 && data_027e077c.mUnk_0 == data_027e077c.mUnk_4; +} + +// non-matching +ARM s32 UnkStruct_020397f8::func_0203b0ec(u32 param1) { + s32 iVar4; + u16 *puVar2; + u32 uVar3; + s32 unaff_r6; + bool bVar1; + + iVar4 = 0; + bVar1 = false; + + uVar3 = param1; + + if (((data_02056be4[data_027e077c.mUnk_0] & 1) == 0)) { + uVar3 = 0; + } else { + uVar3 = 1; + } + + unaff_r6 = this->mUnk_50 == uVar3; + + this->mUnk_410.func_0203ec34(); + this->mUnk_585 = 0; + this->mUnk_584 = 0; + + if (this->mUnk_150[3] != 0) { + iVar4 = 1; + this->mUnk_56c = this->mUnk_578; + bVar1 = true; + this->mUnk_15c = 0x78; + } else { + if ((this->mUnk_128.mUnk_04 == NULL || this->mUnk_128.mUnk_04[0] == 0) != 0) { + this->func_02038b40(); + + if (data_027e0d38 != 0) { + data_027e103c->func_ov000_020cf224(1); + data_027e103c->func_ov000_020cf2a0(1); + } + + if (this->mUnk_08 == NULL) { + this->vfunc_58(); + } + + iVar4 = 1; + } + } + + if (iVar4 != 0) { + if (bVar1) { + this->vfunc_54(); + } + + if (unaff_r6 != 0) { + data_027e0d04.func_0203fe60(0); + } + } + + if (((param1 != 0 && iVar4 != 0) && unaff_r6 != 0) && this->mUnk_15e != 7) { + data_ov000_020eec9c.func_ov000_020d77e4(0x19); + } + + return iVar4; +} + +// non-matching +ARM unk32 UnkStruct_020397f8::vfunc_18(s32 param1) { + u16 sVar1; + u32 uVar4; + s32 unaff_r4; + bool bVar5; + + if (this->func_0203951c() == 0) { + return 1; + } + + if (this->mUnk_580 != 0) { + unaff_r4 = -0xC; + } else { + unaff_r4 = 0; + } + + // sVar1 = param1->mUnk_4[0]; + + if (sVar1 != 0x1A || sVar1 == 0x1A) { + bVar5 = true; + + if (sVar1 == 0x1A) { + // uVar4 = (param1->mUnk_0[3] << 0x10) | ((u16 *) param1->mUnk_0)[2]; + + if (((uVar4 == 0x0001000A || uVar4 == 0x00020000) || uVar4 == 0x00FF0000)) { + bVar5 = false; + } + } + + if (bVar5) { + this->mUnk_424.func_0203ee80(this->mUnk_128.mUnk_08); + } + } + + // return this->func_0203e284(param1, param2, param3 + unaff_r4); +} + +// non-matching +ARM unk32 UnkStruct_020397f8::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) { + int iVar1; + u16 *psVar3; + + psVar3 = (u16 *) ¶m2[1]; + + if (psVar3[0] == 10) { + this->mUnk_424.func_0203ef78(this->mUnk_128.mUnk_08, psVar3[0], param3); + this->mUnk_574++; + + if (this->func_0203a30c() == 0) { + this->mUnk_150[3] = 1; + } + } + + if (this->mUnk_15e == 6) { + return 1; + } + + switch (this->mUnk_57a) { + case 0: + return this->UnkStruct_02038aa0::vfunc_1c(param1, param2, param3, param4); + case 1: + UnknownMsgChoiceStruct *pChoiceData; + s32 i = this->func_0203a30c(); + pChoiceData = &this->mUnk_428[this->mUnk_528[i]]; + // return this->mUnk_164->func_0203cb5c( + // *param1, (((pChoiceData->mUnk_00->mUnk_0[3] << 0x10) | ((u16 *) pChoiceData->mUnk_00->mUnk_0)[2]) + + // ~0xFFFE)); + default: + break; + } + + return 0; +} + +// non-matching +ARM void UnkStruct_020397f8::vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3) { + unk16 sVar1; + unk16 uVar2; + unk32 iVar3; + unk32 iVar4; + unk32 uVar5; + u32 uVar6; + + uVar6 = 0; + + if (this->func_02032fa4() == 0) { + switch (param1->mUnk_0c) { + case 0: + case 1: + uVar6 = this->mUnk_580 != 0; + break; + case 2: + uVar6 = 2; + break; + case 3: + uVar6 = 3; + break; + case 5: + uVar6 = 4; + break; + case 6: + uVar6 = 5; + break; + default: + // why??? + switch (param1->mUnk_0c) { + case 4: + uVar6 = 8; + break; + case 7: + uVar6 = 9; + break; + default: + if (this->mUnk_580 != 0) { + uVar6 = 7; + } else { + uVar6 = 6; + } + break; + } + break; + } + } + + // PTR_PTR_0203b5ac[(byte)param_1[0x50]] = (char)uVar6; + gMessageManager.mUnk_28[this->mUnk_50]->mUnk_50 = uVar6; + + if (this->mUnk_15e == 7) { + uVar5 = func_0202d5b4(data_02057f08, data_02057eec, data_020691a0, 0xCC00, 1); + func_02032304(data_02068894, data_02057ed8, data_02056af0, 1, param3); + iVar3 = func_02016fcc(uVar5); + } else { + if (this->func_02032fa4() != 0) { + uVar5 = 0x33; + } else { + uVar5 = 0x32; + } + + data_027e0cbc.func_0203d77c(uVar5, 1, 1); + iVar3 = data_027e0cbc.func_0203d77c(data_02056a00[uVar6 * 0x18] - 2, 1, 1); + } + + if (param1->mUnk_10 < 0) { + iVar3 = param1->mUnk_12; + } + + if (param1->mUnk_10 <= 0 && iVar3 > 0) { + uVar2 = param1->mUnk_12; + this->mUnk_158.x = param1->mUnk_10; + this->mUnk_158.y = uVar2; + } else { + this->func_0203b764(); + } +} + +ARM s32 UnkStruct_020397f8::vfunc_64(unk32 param1) { + unk32 uVar2; + + if (this->mUnk_50 != 0 || data_027e0db0.mUnk_04 > 0 || func_0203c084() != 0 || + (gAdventureFlags->Exists() && gAdventureFlags->func_ov00_02097738())) { + uVar2 = 0x16; + } else { + uVar2 = 0; + } + + this->mUnk_124->func_0203f020(param1, uVar2); + this->func_0203be08(); + + if (this->func_02032fa4()) { + this->mUnk_168.func_020350b4(0x39, 0, 2, 0, 0); + this->mUnk_1f0.func_020350b4(0x33, 0, 2, 0, 0); + this->mUnk_278.func_020350b4(0x33, 1, 2, 0, 0); + } else { + this->mUnk_168.func_020350b4(0x34, 0, 2, 0, 0); + this->mUnk_1f0.func_020350b4(0x32, 0, 2, 0, 0); + this->mUnk_278.func_020350b4(0x32, 1, 2, 0, 0); + } + + this->mUnk_168.func_020351b8(1, 0, 0, 0); + this->mUnk_1f0.func_020351b8(0, 0, 0, 0); + this->mUnk_278.func_020351b8(0, 0, 0, 0); + this->UnkStruct_02038aa0::vfunc_64(param1); +} + +// non-matching +ARM void UnkStruct_020397f8::func_0203b764() { + s32 i = gMessageManager.mUnk_00[this->mUnk_50]; + + this->func_02039440(data_02056a04[i], data_02056a16[i]); + + switch (this->mUnk_57b) { + case 1: + this->mUnk_158.y -= 38; + break; + case 2: + switch (this->pInfoEntry->mUnk_06) { + case 2: + this->mUnk_158.y -= 111; + break; + case 3: + this->mUnk_158.y -= 98; + break; + default: + break; + } + break; + default: + break; + } +} + +// switch decomp issue ARM unk32 UnkStruct_020397f8::vfunc_20(s32 param1, s32 *param2) {} -ARM void UnkStruct_020397f8::func_0203bd8c(s32 param1) {} -ARM void UnkStruct_020397f8::vfunc_70(s32 *param1, s32 *param2) {} -ARM void UnkStruct_020397f8::func_0203be08() {} + +ARM void UnkStruct_020397f8::func_0203bd8c(s32 param1) { + this->mUnk_576 = param1; + + if (this->func_0203b0ec(0) != 0) { + data_ov000_020eec9c.func_ov000_020d77e4(this->mUnk_564[param1]); + } +} + +ARM void UnkStruct_020397f8::vfunc_6c(s32 *param1, s32 *param2) { + this->UnkStruct_02038aa0::vfunc_6c(param1, param2); + *param1 += this->mUnk_56e; + *param2 += this->mUnk_570; +} + +ARM void UnkStruct_020397f8::func_0203be08() { + if (data_027e0d38 != 0) { + if (data_027e103c->func_ov000_020cf42c() != 0) { + this->mUnk_534 = this->mUnk_538; + } else { + this->mUnk_534 = this->mUnk_536; + } + + if (this->func_0203c084() != 0) { + this->mUnk_548 = this->mUnk_54c; + } + } +} + ARM void UnkStruct_020397f8::func_0203be64() {} -ARM bool UnkStruct_020397f8::func_0203c084() {} -ARM bool UnkStruct_020397f8::func_0203c13c() {} -ARM bool UnkStruct_020397f8::func_0203c1a0() {} -ARM bool UnkStruct_020397f8::func_0203c25c(class UnkStruct_020397f8 *param1) {} + +// non-matching +ARM bool UnkStruct_020397f8::func_0203c084() { + unk32 uVar4; + bool bVar2; + bool bVar1; + bool bVar3; + + uVar4 = 0; + + if (this->mUnk_50 == 0) { + bVar2 = true; + bVar1 = true; + + if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0 && data_027e103c->func_ov000_020cf8fc(0x8F) == 0) { + bVar1 = false; + } + + if (!bVar1 && gGame.mUnk_101 == 0) { + if ((data_027e0d38 != NULL && data_027e0d38->mUnk_14 == 1) == 0) { + bVar2 = false; + } + } + + if (bVar2) { + uVar4 = 1; + } + } + + return uVar4; +} + +ARM bool UnkStruct_020397f8::func_0203c13c() { + if (this->func_02032fa4() == 0) { + data_ov000_020eec9c.func_ov000_020d77e4(6); + data_027e103c->func_ov000_020cfb20(this); + this->mUnk_585 = 1; + this->mUnk_584 = 1; + this->mUnk_128.mUnk_18 = 0x00016000; + this->mUnk_128.mUnk_1c = NULL; + this->mUnk_128.mUnk_20 = 0; + this->mUnk_128.mUnk_24 = 0; + + return true; + } + + return false; +} + +// non-matching +ARM bool UnkStruct_020397f8::func_0203c1a0() { + s8 *pVar1; + u8 *iVar3; + + if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) { + this->mUnk_584 = 1; + + pVar1 = (s8 *) data_027e103c->func_ov000_020cef9c(); + iVar3 = data_027e0f7c.func_ov000_0209d90c(pVar1[0x24F], 0); + data_027e1054->func_ov003_020f4760(iVar3[1], 0); + data_ov000_020eec9c.func_ov000_020d77e4(6); + data_027e103c->func_ov000_020cfb58(); + + this->mUnk_128.mUnk_18 = 0x0000A000; + this->mUnk_128.mUnk_1c = this->func_0203c25c; + this->mUnk_128.mUnk_20 = this; + this->mUnk_128.mUnk_24 = 0; + + return false; + } + + return false; +} + +ARM bool UnkStruct_020397f8::func_0203c25c(class UnkStruct_020397f8 *param1) { + if (data_027e1054->mUnk_00->mUnk_00->mUnk_95 != 0) { + return false; + } + + if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) { + param1->mUnk_585 = 1; + param1->mUnk_128.mUnk_18 = 0x00016000; + param1->mUnk_128.mUnk_1c = NULL; + param1->mUnk_128.mUnk_20 = 0; + param1->mUnk_128.mUnk_24 = 0; + return true; + } + + return false; +} + ARM UnkStruct_020397f8::~UnkStruct_020397f8() {} -ARM bool UnkStruct_020397f8::vfunc_38() {} + +ARM bool UnkStruct_020397f8::vfunc_38() { + return true; +} From dbdd05e2c516d53066ee172e7b41678fb5aa1b31 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 17:16:54 +0200 Subject: [PATCH 16/36] headers + config updates --- config/eur/arm9/overlays/ov000/symbols.txt | 4 +- config/eur/arm9/relocs.txt | 4 +- config/eur/arm9/symbols.txt | 98 +++++++++++----------- config/usa/arm9/overlays/ov000/symbols.txt | 4 +- config/usa/arm9/symbols.txt | 38 ++++----- include/Game/Game.hpp | 2 +- include/Message/MsgProc.hpp | 19 +---- include/Unknown/UnkStruct_02032f0c.hpp | 4 +- include/Unknown/UnkStruct_02038aa0.hpp | 31 ++++--- include/Unknown/UnkStruct_020397f8.hpp | 36 ++++---- include/Unknown/UnkStruct_0203d1d0.hpp | 38 +++++++++ include/Unknown/UnkStruct_0203dae0.hpp | 15 ++-- 12 files changed, 157 insertions(+), 136 deletions(-) create mode 100644 include/Unknown/UnkStruct_0203d1d0.hpp diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 3f8dd1a2..9f7ed2ff 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -3295,7 +3295,7 @@ _ZN18UnkStruct_027e103c19func_ov000_020cfa70Eii kind:function(arm,size=0x40) add _ZN18UnkStruct_027e103c19func_ov000_020cfab0Ev kind:function(arm,size=0xc) addr:0x020cfab0 _ZN18UnkStruct_027e103c19func_ov000_020cfabcEii kind:function(arm,size=0x2c) addr:0x020cfabc _ZN18UnkStruct_027e103c19func_ov000_020cfae8Eii kind:function(arm,size=0x38) addr:0x020cfae8 -_ZN18UnkStruct_027e103c19func_ov000_020cfb20Ei kind:function(arm,size=0x18) addr:0x020cfb20 +_ZN18UnkStruct_027e103c19func_ov000_020cfb20EPv kind:function(arm,size=0x18) addr:0x020cfb20 _ZN18UnkStruct_027e103c19func_ov000_020cfb38Ev kind:function(arm,size=0x10) addr:0x020cfb38 _ZN18UnkStruct_027e103c19func_ov000_020cfb48Ev kind:function(arm,size=0x10) addr:0x020cfb48 _ZN18UnkStruct_027e103c19func_ov000_020cfb58Ev kind:function(arm,size=0x10) addr:0x020cfb58 @@ -3610,7 +3610,7 @@ func_ov000_020d7524 kind:function(arm,size=0x68) addr:0x020d7524 func_ov000_020d758c kind:function(arm,size=0x3c) addr:0x020d758c func_ov000_020d75c8 kind:function(arm,size=0x14) addr:0x020d75c8 func_ov000_020d75dc kind:function(arm,size=0x208) addr:0x020d75dc -func_ov000_020d77e4 kind:function(arm,size=0x9c) addr:0x020d77e4 +_ZN18UnkStruct_020eec9c19func_ov000_020d77e4Ei kind:function(arm,size=0x9c) addr:0x020d77e4 func_ov000_020d7880 kind:function(arm,size=0x20) addr:0x020d7880 func_ov000_020d78a0 kind:function(arm,size=0x1e4) addr:0x020d78a0 func_ov000_020d7a84 kind:function(arm,size=0x50) addr:0x020d7a84 diff --git a/config/eur/arm9/relocs.txt b/config/eur/arm9/relocs.txt index c84456a2..bc663f0b 100644 --- a/config/eur/arm9/relocs.txt +++ b/config/eur/arm9/relocs.txt @@ -4825,7 +4825,7 @@ from:0x0203979a kind:thumb_call_arm to:0x020350b4 module:main from:0x020397ac kind:thumb_call_arm to:0x020351b8 module:main from:0x020397be kind:thumb_call_arm to:0x020351b8 module:main from:0x020397d0 kind:thumb_call_arm to:0x020351b8 module:main -from:0x020397dc kind:load to:0x02057e54 module:main +from:0x020397dc kind:load to:0x02057e54 add:8 module:main from:0x02039802 kind:thumb_call to:0x02038aa0 module:main from:0x02039816 kind:thumb_call_arm to:0x02035064 module:main from:0x02039820 kind:thumb_call_arm to:0x02035064 module:main @@ -4847,7 +4847,7 @@ from:0x020399de kind:thumb_call_arm to:0x020350b4 module:main from:0x020399f0 kind:thumb_call_arm to:0x020351b8 module:main from:0x02039a02 kind:thumb_call_arm to:0x020351b8 module:main from:0x02039a14 kind:thumb_call_arm to:0x020351b8 module:main -from:0x02039a20 kind:load to:0x02057e54 module:main +from:0x02039a20 kind:load to:0x02057e54 add:8 module:main from:0x02039a42 kind:thumb_call to:0x02038b28 module:main from:0x02039a54 kind:thumb_call_arm to:0x0203dcfc module:main from:0x02039aa0 kind:arm_call to:0x02038d20 module:main diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 3ae69d97..3a921243 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1647,11 +1647,11 @@ func_02032e44 kind:function(arm,size=0x1c) addr:0x02032e44 func_02032e60 kind:function(arm,size=0x1c) addr:0x02032e60 _ZN18UnkStruct_02032e7cC2Ev kind:function(arm,size=0x48) addr:0x02032e7c _ZN18UnkStruct_02032e7cC1Ev kind:function(arm,size=0x48) addr:0x02032ec4 -_ZN18UnkStruct_02032f0cC1Ev kind:function(thumb,size=0x78) addr:0x02032f0c +_ZN18UnkStruct_02032f0cC2Ev kind:function(thumb,size=0x78) addr:0x02032f0c _ZN18UnkStruct_02032f0cD1Ev kind:function(thumb,size=0x2) addr:0x02032f84 _ZN18UnkStruct_02032f0cD0Ev kind:function(thumb,size=0xc) addr:0x02032f88 -_ZN18UnkStruct_02032f0c13func_02032f94Ev kind:function(thumb,size=0x4) addr:0x02032f94 -_ZN18UnkStruct_02032f0c13func_02032f98Ei kind:function(arm,size=0xc) addr:0x02032f98 +_ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x4) addr:0x02032f94 +_ZN18UnkStruct_02032f0c13func_02032f98EPt kind:function(arm,size=0xc) addr:0x02032f98 _ZN18UnkStruct_02032f0c13func_02032fa4Ev kind:function(arm,size=0x10) addr:0x02032fa4 _ZN18UnkStruct_02032f0c13func_02032fb4Ev kind:function(arm,size=0x18) addr:0x02032fb4 _ZN18UnkStruct_02032f0c8vfunc_14Eii kind:function(arm,size=0x64) addr:0x02032fcc @@ -1876,67 +1876,67 @@ _ZN18UnkStruct_02038aa0C2Ehh kind:function(thumb,size=0x5c) addr:0x02038aa0 _ZN18UnkStruct_02038aa0D1Ev kind:function(thumb,size=0xc) addr:0x02038afc _ZN18UnkStruct_02038aa0D0Ev kind:function(thumb,size=0x12) addr:0x02038b08 _ZN18UnkStruct_02038aa0D2Ev kind:function(thumb,size=0xc) addr:0x02038b1c -_ZN18UnkStruct_02038aa08vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0xc) addr:0x02038b28 +_ZN18UnkStruct_02038aa08vfunc_4cEP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0xc) addr:0x02038b28 _ZN18UnkStruct_02038aa08vfunc_10Eji kind:function(arm,size=0xc) addr:0x02038b34 -func_02038b40 kind:function(arm,size=0x34) addr:0x02038b40 -_ZN18UnkStruct_02038aa08vfunc_4cEji kind:function(arm,size=0x4) addr:0x02038b74 -func_02038b78 kind:function(arm,size=0xbc) addr:0x02038b78 +_ZN18UnkStruct_02038aa013func_02038b40Ev kind:function(arm,size=0x34) addr:0x02038b40 +_ZN18UnkStruct_02038aa08vfunc_48Eji kind:function(arm,size=0x4) addr:0x02038b74 +_ZN18UnkStruct_02038aa013func_02038b78Ev kind:function(arm,size=0xbc) addr:0x02038b78 _ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x84) addr:0x02038c34 func_02038cb8 kind:function(arm,size=0x3c) addr:0x02038cb8 func_02038cf4 kind:function(arm,size=0x1c) addr:0x02038cf4 func_02038d10 kind:function(arm,size=0x10) addr:0x02038d10 _ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x1b0) addr:0x02038d20 _ZN18UnkStruct_02038aa08vfunc_30Ev kind:function(arm,size=0x24) addr:0x02038ed0 -func_02038ef4 kind:function(arm,size=0x4c) addr:0x02038ef4 -_ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0x4) addr:0x02038f40 -_ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0x114) addr:0x02038f44 -_ZN18UnkStruct_02038aa08vfunc_60Ev kind:function(arm,size=0x4) addr:0x02039058 +_ZN18UnkStruct_02038aa013func_02038ef4Eii kind:function(arm,size=0x4c) addr:0x02038ef4 +_ZN18UnkStruct_02038aa08vfunc_44Ev kind:function(arm,size=0x4) addr:0x02038f40 +_ZN18UnkStruct_02038aa08vfunc_50Ev kind:function(arm,size=0x114) addr:0x02038f44 +_ZN18UnkStruct_02038aa08vfunc_5cEv kind:function(arm,size=0x4) addr:0x02039058 _ZN18UnkStruct_02038aa08vfunc_1cEiPiii kind:function(arm,size=0x48) addr:0x0203905c _ZN18UnkStruct_02038aa08vfunc_20EiPi kind:function(arm,size=0x164) addr:0x020390a4 -func_02039208 kind:function(arm,size=0x20) addr:0x02039208 +_ZN18UnkStruct_02038aa013func_02039208Es kind:function(arm,size=0x20) addr:0x02039208 _ZN18UnkStruct_02038aa08vfunc_08EiiPsi kind:function(arm,size=0x28) addr:0x02039228 -func_02039250 kind:function(arm,size=0x64) addr:0x02039250 -_ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0xe4) addr:0x020392b4 -_ZN18UnkStruct_02038aa08vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0xc) addr:0x02039398 -_ZN18UnkStruct_02038aa08vfunc_64Ev kind:function(arm,size=0x4) addr:0x020393a4 -_ZN18UnkStruct_02038aa08vfunc_68Ei kind:function(arm,size=0x28) addr:0x020393a8 -_ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x70) addr:0x020393d0 +_ZN18UnkStruct_02038aa013func_02039250Ev kind:function(arm,size=0x64) addr:0x02039250 +_ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0xe4) addr:0x020392b4 +_ZN18UnkStruct_02038aa08vfunc_58EPtP18UnkStruct_0203b264ci kind:function(arm,size=0xc) addr:0x02039398 +_ZN18UnkStruct_02038aa08vfunc_60Ev kind:function(arm,size=0x4) addr:0x020393a4 +_ZN18UnkStruct_02038aa08vfunc_64Ei kind:function(arm,size=0x28) addr:0x020393a8 +_ZN18UnkStruct_02038aa08vfunc_68EPiS0_ kind:function(arm,size=0x70) addr:0x020393d0 func_02039440 kind:function(arm,size=0x3c) addr:0x02039440 -_ZN18UnkStruct_02038aa08vfunc_70EPiS0_ kind:function(arm,size=0x5c) addr:0x0203947c -_ZN18UnkStruct_02038aa08vfunc_74Ev kind:function(arm,size=0x44) addr:0x020394d8 +_ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x5c) addr:0x0203947c +_ZN18UnkStruct_02038aa08vfunc_70Ev kind:function(arm,size=0x44) addr:0x020394d8 func_0203951c kind:function(arm,size=0x40) addr:0x0203951c func_0203955c kind:function(arm,size=0x14) addr:0x0203955c _ZN18UnkStruct_02038aa08vfunc_38Ev kind:function(arm,size=0x8) addr:0x02039570 _ZN18UnkStruct_0203dae08vfunc_0cEiiii kind:function(arm,size=0x3c) addr:0x02039578 _ZN18UnkStruct_020397f8C2Ev kind:function(thumb,size=0x244) addr:0x020395b4 _ZN18UnkStruct_020397f8C1Ev kind:function(thumb,size=0x244) addr:0x020397f8 -_ZN18UnkStruct_020397f88vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x20) addr:0x02039a3c +_ZN18UnkStruct_020397f88vfunc_4cEP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x20) addr:0x02039a3c _ZN18UnkStruct_020397f88vfunc_2cEv kind:function(arm,size=0x24c) addr:0x02039a5c _ZN18UnkStruct_020397f813func_02039ca8Ev kind:function(arm,size=0x24) addr:0x02039ca8 -_ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0xa8) addr:0x02039ccc -_ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x414) addr:0x02039d74 +_ZN18UnkStruct_020397f88vfunc_3cEii kind:function(arm,size=0xa8) addr:0x02039ccc +_ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0x414) addr:0x02039d74 _ZN18UnkStruct_020397f813func_0203a188Eii kind:function(arm,size=0x138) addr:0x0203a188 _ZN18UnkStruct_020397f813func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x0203a2c0 _ZN18UnkStruct_020397f813func_0203a30cEv kind:function(arm,size=0x1c) addr:0x0203a30c -_ZN18UnkStruct_020397f88vfunc_4cEji kind:function(arm,size=0x34) addr:0x0203a328 +_ZN18UnkStruct_020397f88vfunc_48Eji kind:function(arm,size=0x34) addr:0x0203a328 _ZN18UnkStruct_020397f813func_0203a35cEv kind:function(arm,size=0x84) addr:0x0203a35c _ZN18UnkStruct_020397f813func_0203a3e0Ev kind:function(arm,size=0x1c) addr:0x0203a3e0 -_ZN18UnkStruct_020397f88vfunc_48Ev kind:function(arm,size=0x2d4) addr:0x0203a3fc +_ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x2d4) addr:0x0203a3fc _ZN18UnkStruct_020397f813func_0203a6d0Eii kind:function(arm,size=0x120) addr:0x0203a6d0 -_ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x198) addr:0x0203a7f0 -_ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x520) addr:0x0203a988 -_ZN18UnkStruct_020397f88vfunc_60Ev kind:function(arm,size=0x74) addr:0x0203aea8 -_ZN18UnkStruct_020397f88vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0x1a0) addr:0x0203af1c +_ZN18UnkStruct_020397f88vfunc_50Ev kind:function(arm,size=0x198) addr:0x0203a7f0 +_ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x520) addr:0x0203a988 +_ZN18UnkStruct_020397f88vfunc_5cEv kind:function(arm,size=0x74) addr:0x0203aea8 +_ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x1a0) addr:0x0203af1c _ZN18UnkStruct_020397f813func_0203b0bcEv kind:function(arm,size=0x30) addr:0x0203b0bc _ZN18UnkStruct_020397f813func_0203b0ecEj kind:function(arm,size=0x178) addr:0x0203b0ec _ZN18UnkStruct_020397f88vfunc_18Ei kind:function(arm,size=0xac) addr:0x0203b264 _ZN18UnkStruct_020397f88vfunc_1cEiPiii kind:function(arm,size=0x100) addr:0x0203b310 -_ZN18UnkStruct_020397f88vfunc_64Ev kind:function(arm,size=0x1c0) addr:0x0203b410 -_ZN18UnkStruct_020397f88vfunc_68Ei kind:function(arm,size=0x194) addr:0x0203b5d0 +_ZN18UnkStruct_020397f88vfunc_60EP20func_0203b410_param1ii kind:function(arm,size=0x1c0) addr:0x0203b410 +_ZN18UnkStruct_020397f88vfunc_64Ei kind:function(arm,size=0x194) addr:0x0203b5d0 _ZN18UnkStruct_020397f813func_0203b764Ev kind:function(arm,size=0xb0) addr:0x0203b764 _ZN18UnkStruct_020397f88vfunc_20EiPi kind:function(arm,size=0x578) addr:0x0203b814 _ZN18UnkStruct_020397f813func_0203bd8cEi kind:function(arm,size=0x40) addr:0x0203bd8c -_ZN18UnkStruct_020397f88vfunc_70EPiS0_ kind:function(arm,size=0x3c) addr:0x0203bdcc +_ZN18UnkStruct_020397f88vfunc_6cEPiS0_ kind:function(arm,size=0x3c) addr:0x0203bdcc _ZN18UnkStruct_020397f813func_0203be08Ev kind:function(arm,size=0x5c) addr:0x0203be08 _ZN18UnkStruct_020397f813func_0203be64Ev kind:function(arm,size=0x220) addr:0x0203be64 _ZN18UnkStruct_020397f813func_0203c084Ev kind:function(arm,size=0xb8) addr:0x0203c084 @@ -1947,9 +1947,9 @@ _ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x48) addr:0x0203c2c8 _ZN18UnkStruct_020397f8D1Ev kind:function(arm,size=0x40) addr:0x0203c310 _ZN18UnkStruct_020397f88vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203c350 _ZN13MsgProc_Type2C1Ev kind:function(thumb,size=0x44) addr:0x0203c358 -_ZN13MsgProc_Type28vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x78) addr:0x0203c39c -_ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c414 -_ZN13MsgProc_Type28vfunc_44Eii kind:function(arm,size=0x4c) addr:0x0203c460 +_ZN13MsgProc_Type28vfunc_4cEP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x78) addr:0x0203c39c +_ZN13MsgProc_Type28vfunc_3cEii kind:function(arm,size=0x4c) addr:0x0203c414 +_ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c460 _ZN13MsgProc_Type213func_0203c4acEii kind:function(arm,size=0x118) addr:0x0203c4ac _ZN13MsgProc_Type28vfunc_14Eii kind:function(arm,size=0x18) addr:0x0203c5c4 _ZN13MsgProc_Type213func_0203c5dcEv kind:function(arm,size=0x120) addr:0x0203c5dc @@ -1959,14 +1959,14 @@ _ZN13MsgProc_Type3C1Ev kind:function(arm,size=0x110) addr:0x0203c72c _ZN28UnkClass_func_ov000_020d0644D1Ev kind:function(arm,size=0x4) addr:0x0203c83c _ZN13MsgProc_Type3D1Ev kind:function(arm,size=0x30) addr:0x0203c840 _ZN13MsgProc_Type3D0Ev kind:function(arm,size=0x38) addr:0x0203c870 -_ZN13MsgProc_Type38vfunc_40Eii kind:function(arm,size=0x58) addr:0x0203c8a8 -_ZN13MsgProc_Type38vfunc_44Eii kind:function(arm,size=0x4) addr:0x0203c900 +_ZN13MsgProc_Type38vfunc_3cEii kind:function(arm,size=0x58) addr:0x0203c8a8 +_ZN13MsgProc_Type38vfunc_40Eii kind:function(arm,size=0x4) addr:0x0203c900 func_0203c904 kind:function(arm,size=0x11c) addr:0x0203c904 func_0203ca20 kind:function(arm,size=0x9c) addr:0x0203ca20 func_0203cabc kind:function(arm,size=0x44) addr:0x0203cabc _ZN13MsgProc_Type38vfunc_24EPPs kind:function(arm,size=0x5c) addr:0x0203cb00 func_0203cb5c kind:function(arm,size=0x10c) addr:0x0203cb5c -_ZN13MsgProc_Type38vfunc_48Ev kind:function(arm,size=0xf4) addr:0x0203cc68 +_ZN13MsgProc_Type38vfunc_44Ev kind:function(arm,size=0xf4) addr:0x0203cc68 func_0203cd5c kind:function(arm,size=0x44) addr:0x0203cd5c func_0203cda0 kind:function(arm,size=0x20) addr:0x0203cda0 func_0203cdc0 kind:function(arm,size=0x4) addr:0x0203cdc0 @@ -1985,12 +1985,12 @@ func_0203d0c0 kind:function(arm,size=0x8c) addr:0x0203d0c0 func_0203d14c kind:function(arm,size=0x1c) addr:0x0203d14c func_0203d168 kind:function(arm,size=0x28) addr:0x0203d168 func_0203d190 kind:function(arm,size=0x24) addr:0x0203d190 -func_0203d1b4 kind:function(arm,size=0x1c) addr:0x0203d1b4 -func_0203d1d0 kind:function(arm,size=0x20) addr:0x0203d1d0 +_ZN23UnkStruct_0203d1d0_base13func_0203d1b4Ev kind:function(arm,size=0x1c) addr:0x0203d1b4 +_ZN18UnkStruct_0203d1d0C1Ev kind:function(arm,size=0x20) addr:0x0203d1d0 func_0203d1f0 kind:function(arm,size=0x4) addr:0x0203d1f0 func_0203d1f4 kind:function(arm,size=0x14) addr:0x0203d1f4 func_0203d208 kind:function(arm,size=0x4c) addr:0x0203d208 -func_0203d254 kind:function(arm,size=0x20) addr:0x0203d254 +_ZN18UnkStruct_0203d254C1Ev kind:function(arm,size=0x20) addr:0x0203d254 func_0203d274 kind:function(arm,size=0x4) addr:0x0203d274 func_0203d278 kind:function(arm,size=0x14) addr:0x0203d278 func_0203d28c kind:function(arm,size=0x4c) addr:0x0203d28c @@ -1998,7 +1998,7 @@ func_0203d2d8 kind:function(arm,size=0x24) addr:0x0203d2d8 func_0203d2fc kind:function(arm,size=0x4) addr:0x0203d2fc func_0203d300 kind:function(arm,size=0x14) addr:0x0203d300 func_0203d314 kind:function(arm,size=0x4) addr:0x0203d314 -func_0203d318 kind:function(arm,size=0x40) addr:0x0203d318 +_ZN18UnkStruct_0203dae013func_0203d318Eii kind:function(arm,size=0x40) addr:0x0203d318 func_0203d358 kind:function(arm,size=0xa8) addr:0x0203d358 func_0203d400 kind:function(arm,size=0x48) addr:0x0203d400 func_0203d448 kind:function(arm,size=0x1c) addr:0x0203d448 @@ -2027,14 +2027,14 @@ func_0203da20 kind:function(arm,size=0xc0) addr:0x0203da20 _ZN18UnkStruct_0203dae0C1Eh kind:function(thumb,size=0x98) addr:0x0203dae0 _ZN18UnkStruct_0203dae0D1Ev kind:function(thumb,size=0x30) addr:0x0203db78 _ZN18UnkStruct_0203dae0D0Ev kind:function(thumb,size=0x38) addr:0x0203dba8 -_ZN18UnkStruct_0203dae013func_0203dc10Ei kind:function(thumb,size=0x30) addr:0x0203dbe0 -_ZN18UnkStruct_0203dae013func_0203dc10Eii kind:function(arm,size=0x64) addr:0x0203dc10 +_ZN18UnkStruct_0203dae0C2Ev kind:function(thumb,size=0x30) addr:0x0203dbe0 +_ZN18UnkStruct_0203dae013func_0203dc10Ei kind:function(arm,size=0x64) addr:0x0203dc10 _ZN18UnkStruct_0203dae013func_0203dc74Eii kind:function(arm,size=0x40) addr:0x0203dc74 _ZN18UnkStruct_0203dae08vfunc_14Eii kind:function(arm,size=0x48) addr:0x0203dcb4 _ZN18UnkStruct_0203dae013func_0203dcfcEhiii kind:function(arm,size=0xf0) addr:0x0203dcfc _ZN18UnkStruct_0203dae013func_0203ddecEv kind:function(arm,size=0x10) addr:0x0203ddec _ZN18UnkStruct_0203dae013func_0203ddfcEv kind:function(arm,size=0x18) addr:0x0203ddfc -_ZN18UnkStruct_0203dae013func_0203de14Ev kind:function(arm,size=0x10) addr:0x0203de14 +_ZN18UnkStruct_0203dae013func_0203de14Ei kind:function(arm,size=0x10) addr:0x0203de14 _ZN18UnkStruct_0203dae013func_0203de24Ev kind:function(arm,size=0x34) addr:0x0203de24 _ZN18UnkStruct_0203dae013func_0203de58Ei kind:function(arm,size=0x208) addr:0x0203de58 _ZN18UnkStruct_0203dae08vfunc_10Eji kind:function(arm,size=0x30) addr:0x0203e060 @@ -2071,7 +2071,7 @@ func_0203eb8c kind:function(thumb,size=0x1a) addr:0x0203eb8c func_0203eba8 kind:function(arm,size=0x20) addr:0x0203eba8 func_0203ebc8 kind:function(arm,size=0x18) addr:0x0203ebc8 func_0203ebe0 kind:function(arm,size=0x18) addr:0x0203ebe0 -func_0203ebf8 kind:function(arm,size=0x3c) addr:0x0203ebf8 +_ZN22UnkStruct_020397f8_41013func_0203ebf8Ev kind:function(arm,size=0x3c) addr:0x0203ebf8 func_0203ec34 kind:function(arm,size=0x18) addr:0x0203ec34 func_0203ec4c kind:function(arm,size=0xcc) addr:0x0203ec4c func_0203ed18 kind:function(arm,size=0xd4) addr:0x0203ed18 @@ -2080,9 +2080,9 @@ func_0203ee48 kind:function(arm,size=0x38) addr:0x0203ee48 func_0203ee80 kind:function(arm,size=0x30) addr:0x0203ee80 func_0203eeb0 kind:function(arm,size=0x80) addr:0x0203eeb0 func_0203ef30 kind:function(arm,size=0x48) addr:0x0203ef30 -func_0203ef78 kind:function(arm,size=0x60) addr:0x0203ef78 +_ZN22UnkStruct_020397f8_42413func_0203ef78Es kind:function(arm,size=0x60) addr:0x0203ef78 func_0203efd8 kind:function(thumb,size=0x48) addr:0x0203efd8 -func_0203f020 kind:function(arm,size=0xb8) addr:0x0203f020 +_ZN20UnkSubClass1_unk_12413func_0203f020Eii kind:function(arm,size=0xb8) addr:0x0203f020 func_0203f0d8 kind:function(arm,size=0x2a0) addr:0x0203f0d8 func_0203f378 kind:function(arm,size=0x30) addr:0x0203f378 func_0203f3a8 kind:function(arm,size=0x1d0) addr:0x0203f3a8 @@ -2097,7 +2097,7 @@ func_0203f7cc kind:function(arm,size=0xd0) addr:0x0203f7cc func_0203f89c kind:function(arm,size=0x68) addr:0x0203f89c _ZN18UnkStruct_02075dac13func_0203f904Ev kind:function(thumb,size=0x70) addr:0x0203f904 func_0203f974 kind:function(arm,size=0x44) addr:0x0203f974 -func_0203f9b8 kind:function(arm,size=0x9c) addr:0x0203f9b8 +_ZN18UnkStruct_02075dac13func_0203f9b8EPv kind:function(arm,size=0x9c) addr:0x0203f9b8 func_0203fa54 kind:function(arm,size=0x2c) addr:0x0203fa54 func_0203fa80 kind:function(arm,size=0x30) addr:0x0203fa80 func_0203fab0 kind:function(arm,size=0x68) addr:0x0203fab0 diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 1008f184..cd5f8978 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -3295,7 +3295,7 @@ _ZN18UnkStruct_027e103c19func_ov000_020cfa70Eii kind:function(arm,size=0x40) add _ZN18UnkStruct_027e103c19func_ov000_020cfab0Ev kind:function(arm,size=0xc) addr:0x020cfa50 _ZN18UnkStruct_027e103c19func_ov000_020cfabcEii kind:function(arm,size=0x2c) addr:0x020cfa5c _ZN18UnkStruct_027e103c19func_ov000_020cfae8Eii kind:function(arm,size=0x38) addr:0x020cfa88 -_ZN18UnkStruct_027e103c19func_ov000_020cfb20Ei kind:function(arm,size=0x18) addr:0x020cfac0 +_ZN18UnkStruct_027e103c19func_ov000_020cfb20EPv kind:function(arm,size=0x18) addr:0x020cfac0 _ZN18UnkStruct_027e103c19func_ov000_020cfb38Ev kind:function(arm,size=0x10) addr:0x020cfad8 _ZN18UnkStruct_027e103c19func_ov000_020cfb48Ev kind:function(arm,size=0x10) addr:0x020cfae8 _ZN18UnkStruct_027e103c19func_ov000_020cfb58Ev kind:function(arm,size=0x10) addr:0x020cfaf8 @@ -3610,7 +3610,7 @@ func_ov000_020d7524 kind:function(arm,size=0x68) addr:0x020d74c4 func_ov000_020d758c kind:function(arm,size=0x3c) addr:0x020d752c func_ov000_020d75c8 kind:function(arm,size=0x14) addr:0x020d7568 func_ov000_020d75dc kind:function(arm,size=0x208) addr:0x020d757c -func_ov000_020d77e4 kind:function(arm,size=0x9c) addr:0x020d7784 +_ZN18UnkStruct_020eec9c19func_ov000_020d77e4Ei kind:function(arm,size=0x9c) addr:0x020d7784 func_ov000_020d7880 kind:function(arm,size=0x20) addr:0x020d7820 func_ov000_020d78a0 kind:function(arm,size=0x1e4) addr:0x020d7840 func_ov000_020d7a84 kind:function(arm,size=0x50) addr:0x020d7a24 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 164c8d1e..199a609e 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1650,8 +1650,8 @@ _ZN18UnkStruct_02032e7cC1Ev kind:function(arm,size=0x48) addr:0x02032ec0 _ZN18UnkStruct_02032f0cC1Ev kind:function(thumb,size=0x78) addr:0x02032f08 _ZN18UnkStruct_02032f0cD1Ev kind:function(thumb,size=0x2) addr:0x02032f80 _ZN18UnkStruct_02032f0cD0Ev kind:function(thumb,size=0xc) addr:0x02032f84 -_ZN18UnkStruct_02032f0c13func_02032f94Ev kind:function(thumb,size=0x4) addr:0x02032f90 -_ZN18UnkStruct_02032f0c13func_02032f98Ei kind:function(arm,size=0xc) addr:0x02032f94 +_ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x4) addr:0x02032f90 +_ZN18UnkStruct_02032f0c13func_02032f98EPt kind:function(arm,size=0xc) addr:0x02032f94 _ZN18UnkStruct_02032f0c13func_02032fa4Ev kind:function(arm,size=0x10) addr:0x02032fa0 _ZN18UnkStruct_02032f0c13func_02032fb4Ev kind:function(arm,size=0x18) addr:0x02032fb0 _ZN18UnkStruct_02032f0c8vfunc_14Eii kind:function(arm,size=0x64) addr:0x02032fc8 @@ -1878,24 +1878,24 @@ _ZN18UnkStruct_02038aa0D0Ev kind:function(thumb,size=0x12) addr:0x02038ac4 _ZN18UnkStruct_02038aa0D2Ev kind:function(thumb,size=0xc) addr:0x02038ad8 _ZN18UnkStruct_02038aa08vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0xc) addr:0x02038ae4 _ZN18UnkStruct_02038aa08vfunc_10Eji kind:function(arm,size=0xc) addr:0x02038af0 -func_02038b40 kind:function(arm,size=0x34) addr:0x02038afc +_ZN18UnkStruct_02038aa013func_02038b40Ev kind:function(arm,size=0x34) addr:0x02038afc _ZN18UnkStruct_02038aa08vfunc_4cEji kind:function(arm,size=0x4) addr:0x02038b30 -func_02038b78 kind:function(arm,size=0xbc) addr:0x02038b34 +_ZN18UnkStruct_02038aa013func_02038b78Ev kind:function(arm,size=0xbc) addr:0x02038b34 _ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x84) addr:0x02038bf0 func_02038cb8 kind:function(arm,size=0x3c) addr:0x02038c74 func_02038cf4 kind:function(arm,size=0x1c) addr:0x02038cb0 func_02038d10 kind:function(arm,size=0x10) addr:0x02038ccc _ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x1b0) addr:0x02038cdc _ZN18UnkStruct_02038aa08vfunc_30Ev kind:function(arm,size=0x24) addr:0x02038e8c -func_02038ef4 kind:function(arm,size=0x4c) addr:0x02038eb0 +_ZN18UnkStruct_02038aa013func_02038ef4Eii kind:function(arm,size=0x4c) addr:0x02038eb0 _ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0x4) addr:0x02038efc _ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0x114) addr:0x02038f00 _ZN18UnkStruct_02038aa08vfunc_60Ev kind:function(arm,size=0x4) addr:0x02039014 _ZN18UnkStruct_02038aa08vfunc_1cEiPiii kind:function(arm,size=0x48) addr:0x02039018 _ZN18UnkStruct_02038aa08vfunc_20EiPi kind:function(arm,size=0x164) addr:0x02039060 -func_02039208 kind:function(arm,size=0x20) addr:0x020391c4 +_ZN18UnkStruct_02038aa013func_02039208Es kind:function(arm,size=0x20) addr:0x020391c4 _ZN18UnkStruct_02038aa08vfunc_08EiiPsi kind:function(arm,size=0x28) addr:0x020391e4 -func_02039250 kind:function(arm,size=0x64) addr:0x0203920c +_ZN18UnkStruct_02038aa013func_02039250Ev kind:function(arm,size=0x64) addr:0x0203920c _ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0xe4) addr:0x02039270 _ZN18UnkStruct_02038aa08vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0xc) addr:0x02039354 _ZN18UnkStruct_02038aa08vfunc_64Ev kind:function(arm,size=0x4) addr:0x02039360 @@ -1925,8 +1925,8 @@ _ZN18UnkStruct_020397f88vfunc_48Ev kind:function(arm,size=0x2d4) addr:0x0203a3b8 _ZN18UnkStruct_020397f813func_0203a6d0Eii kind:function(arm,size=0x120) addr:0x0203a68c _ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x198) addr:0x0203a7ac _ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x520) addr:0x0203a944 -_ZN18UnkStruct_020397f88vfunc_60Ev kind:function(arm,size=0x74) addr:0x0203ae64 -_ZN18UnkStruct_020397f88vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0x1a0) addr:0x0203aed8 +_ZN18UnkStruct_020397f88vfunc_60EP20func_0203b410_param1ii kind:function(arm,size=0x74) addr:0x0203ae64 +_ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x1a0) addr:0x0203aed8 _ZN18UnkStruct_020397f813func_0203b0bcEv kind:function(arm,size=0x30) addr:0x0203b078 _ZN18UnkStruct_020397f813func_0203b0ecEj kind:function(arm,size=0x178) addr:0x0203b0a8 _ZN18UnkStruct_020397f88vfunc_18Ei kind:function(arm,size=0xac) addr:0x0203b220 @@ -1985,12 +1985,12 @@ func_0203d0c0 kind:function(arm,size=0x8c) addr:0x0203d07c func_0203d14c kind:function(arm,size=0x1c) addr:0x0203d108 func_0203d168 kind:function(arm,size=0x28) addr:0x0203d124 func_0203d190 kind:function(arm,size=0x24) addr:0x0203d14c -func_0203d1b4 kind:function(arm,size=0x1c) addr:0x0203d170 -func_0203d1d0 kind:function(arm,size=0x20) addr:0x0203d18c +_ZN23UnkStruct_0203d1d0_base13func_0203d1b4Ev kind:function(arm,size=0x1c) addr:0x0203d170 +_ZN18UnkStruct_0203d1d0C1Ev kind:function(arm,size=0x20) addr:0x0203d18c func_0203d1f0 kind:function(arm,size=0x4) addr:0x0203d1ac func_0203d1f4 kind:function(arm,size=0x14) addr:0x0203d1b0 func_0203d208 kind:function(arm,size=0x4c) addr:0x0203d1c4 -func_0203d254 kind:function(arm,size=0x20) addr:0x0203d210 +_ZN18UnkStruct_0203d254C1Ev kind:function(arm,size=0x20) addr:0x0203d210 func_0203d274 kind:function(arm,size=0x4) addr:0x0203d230 func_0203d278 kind:function(arm,size=0x14) addr:0x0203d234 func_0203d28c kind:function(arm,size=0x4c) addr:0x0203d248 @@ -1998,7 +1998,7 @@ func_0203d2d8 kind:function(arm,size=0x24) addr:0x0203d294 func_0203d2fc kind:function(arm,size=0x4) addr:0x0203d2b8 func_0203d300 kind:function(arm,size=0x14) addr:0x0203d2bc func_0203d314 kind:function(arm,size=0x4) addr:0x0203d2d0 -func_0203d318 kind:function(arm,size=0x40) addr:0x0203d2d4 +_ZN18UnkStruct_02038aa013func_0203d318Ess kind:function(arm,size=0x40) addr:0x0203d2d4 func_0203d358 kind:function(arm,size=0xa8) addr:0x0203d314 func_0203d400 kind:function(arm,size=0x48) addr:0x0203d3bc func_0203d448 kind:function(arm,size=0x1c) addr:0x0203d404 @@ -2027,8 +2027,8 @@ func_0203da20 kind:function(arm,size=0xc0) addr:0x0203d9dc _ZN18UnkStruct_0203dae0C1Eh kind:function(thumb,size=0x98) addr:0x0203da9c _ZN18UnkStruct_0203dae0D1Ev kind:function(thumb,size=0x30) addr:0x0203db34 _ZN18UnkStruct_0203dae0D0Ev kind:function(thumb,size=0x38) addr:0x0203db64 -_ZN18UnkStruct_0203dae013func_0203dc10Ei kind:function(thumb,size=0x30) addr:0x0203db9c -_ZN18UnkStruct_0203dae013func_0203dc10Eii kind:function(arm,size=0x64) addr:0x0203dbcc +_ZN18UnkStruct_0203dae0C2Ev kind:function(thumb,size=0x30) addr:0x0203db9c +_ZN18UnkStruct_0203dae013func_0203dc10Ei kind:function(arm,size=0x64) addr:0x0203dbcc _ZN18UnkStruct_0203dae013func_0203dc74Eii kind:function(arm,size=0x40) addr:0x0203dc30 _ZN18UnkStruct_0203dae08vfunc_14Eii kind:function(arm,size=0x48) addr:0x0203dc70 _ZN18UnkStruct_0203dae013func_0203dcfcEhiii kind:function(arm,size=0xf0) addr:0x0203dcb8 @@ -2071,7 +2071,7 @@ func_0203eb8c kind:function(thumb,size=0x1a) addr:0x0203eb48 func_0203eba8 kind:function(arm,size=0x20) addr:0x0203eb64 func_0203ebc8 kind:function(arm,size=0x18) addr:0x0203eb84 func_0203ebe0 kind:function(arm,size=0x18) addr:0x0203eb9c -func_0203ebf8 kind:function(arm,size=0x3c) addr:0x0203ebb4 +_ZN22UnkStruct_020397f8_41013func_0203ebf8Ev kind:function(arm,size=0x3c) addr:0x0203ebb4 func_0203ec34 kind:function(arm,size=0x18) addr:0x0203ebf0 func_0203ec4c kind:function(arm,size=0xcc) addr:0x0203ec08 func_0203ed18 kind:function(arm,size=0xd4) addr:0x0203ecd4 @@ -2080,9 +2080,9 @@ func_0203ee48 kind:function(arm,size=0x38) addr:0x0203ee04 func_0203ee80 kind:function(arm,size=0x30) addr:0x0203ee3c func_0203eeb0 kind:function(arm,size=0x80) addr:0x0203ee6c func_0203ef30 kind:function(arm,size=0x48) addr:0x0203eeec -func_0203ef78 kind:function(arm,size=0x60) addr:0x0203ef34 +_ZN22UnkStruct_020397f8_42413func_0203ef78Es kind:function(arm,size=0x60) addr:0x0203ef34 func_0203efd8 kind:function(thumb,size=0x48) addr:0x0203ef94 -func_0203f020 kind:function(arm,size=0xb8) addr:0x0203efdc +_ZN20UnkSubClass1_unk_12413func_0203f020Eii kind:function(arm,size=0xb8) addr:0x0203efdc func_0203f0d8 kind:function(arm,size=0x2a0) addr:0x0203f094 func_0203f378 kind:function(arm,size=0x30) addr:0x0203f334 func_0203f3a8 kind:function(arm,size=0x1d0) addr:0x0203f364 @@ -2097,7 +2097,7 @@ func_0203f7cc kind:function(arm,size=0xd0) addr:0x0203f788 func_0203f89c kind:function(arm,size=0x68) addr:0x0203f858 _ZN18UnkStruct_02075dac13func_0203f904Ev kind:function(thumb,size=0x70) addr:0x0203f8c0 func_0203f974 kind:function(arm,size=0x44) addr:0x0203f930 -func_0203f9b8 kind:function(arm,size=0x9c) addr:0x0203f974 +_ZN18UnkStruct_02075dac13func_0203f9b8EPv kind:function(arm,size=0x9c) addr:0x0203f974 func_0203fa54 kind:function(arm,size=0x2c) addr:0x0203fa10 func_0203fa80 kind:function(arm,size=0x30) addr:0x0203fa3c func_0203fab0 kind:function(arm,size=0x68) addr:0x0203fa6c diff --git a/include/Game/Game.hpp b/include/Game/Game.hpp index 4c60c0ab..7462094e 100644 --- a/include/Game/Game.hpp +++ b/include/Game/Game.hpp @@ -38,7 +38,7 @@ class Game { /* 0fc */ u16 mUnk_0fc; /* 0fe */ u16 mUnk_0fe; /* 100 */ unk8 mUnk_100; - /* 101 */ s8 mUnk_101; + /* 101 */ u8 mUnk_101; /* 102 */ bool mUnk_102; /* 103 */ u8 mUnk_103; /* 104 */ diff --git a/include/Message/MsgProc.hpp b/include/Message/MsgProc.hpp index bdef3a22..c7978690 100644 --- a/include/Message/MsgProc.hpp +++ b/include/Message/MsgProc.hpp @@ -45,21 +45,6 @@ class UnkStruct_020397f8_424 { UnkStruct_0203b264 *func_0203eeb0(unk32 param_2, unk32 param_3); }; -class UnkStruct_0203dae0_114 : public SysObject { -public: - /* 0x00 (vtable) */ - /* 0x04 */ unk32 *mUnk_04; - /* 0x08 */ - - UnkStruct_0203dae0_114(); - /* 0x00 */ virtual ~UnkStruct_0203dae0_114() override; - /* 0x08 */ virtual unk32 vfunc_08(void *); - /* 0x08 */ virtual unk32 vfunc_0c(void); - /* 0x0C */ - - unk32 *func_0203d1b4(void); -}; - struct func_02038f44_param4 { u8 mUnk_00; u8 mUnk_01; @@ -108,7 +93,7 @@ class UnkClass_027e0cbc { extern UnkClass_027e0cbc data_027e0cbc; extern unk16 data_02056a10[]; extern unk16 data_02056a16[]; -extern unk32 data_02056a04[]; +extern unk32 data_02056a04[8]; extern unk32 data_027e0c38[]; extern "C" void func_0203489c(unk32, unk16, unk32 *, unk32 *); extern "C" void func_020347b0(unk32, unk16, unk32 *, unk32 *, unk32, unk32); @@ -127,7 +112,7 @@ extern u8 data_027e0c54; extern unk32 *data_ov009_0211f5b4; extern "C" unk32 func_ov003_020f3f94(unk32 *); extern "C" void func_ov003_020f4060(unk32 **); -extern unk32 *data_02057ed4; +extern char *data_02057ed4; // see Actor.cpp typedef struct UnkStruct_01ffbe34 { diff --git a/include/Unknown/UnkStruct_02032f0c.hpp b/include/Unknown/UnkStruct_02032f0c.hpp index 8a755513..cf1ae492 100644 --- a/include/Unknown/UnkStruct_02032f0c.hpp +++ b/include/Unknown/UnkStruct_02032f0c.hpp @@ -101,9 +101,7 @@ class UnkStruct_02032f0c : public SysObject { /* 28 */ UnkStruct_02032f0c(); - void func_02032f94(); - unk32 *func_02032f98(unk32 param_2); - u16 **SetUnk_0c(u16 *value); + u16 **func_02032f98(u16 *value); u8 func_02032fa4(); s32 func_02032fb4(); void func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5); diff --git a/include/Unknown/UnkStruct_02038aa0.hpp b/include/Unknown/UnkStruct_02038aa0.hpp index 140a2dd8..1394e432 100644 --- a/include/Unknown/UnkStruct_02038aa0.hpp +++ b/include/Unknown/UnkStruct_02038aa0.hpp @@ -28,7 +28,7 @@ class UnkSubClass1_unk_124 { /* 2b */ unk8 mUnk_2b; /* 2c */ - void func_0203f020(s16 *, unk32); + void func_0203f020(unk32, unk32); }; struct UnkStruct_0203b264; @@ -59,21 +59,21 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { /* 30 */ virtual void vfunc_30() override; /* 34 */ virtual unk32 vfunc_34(s32 param1); /* 38 */ virtual bool vfunc_38(); - /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) = 0; - /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) = 0; - /* 48 */ virtual void vfunc_48(); - /* 4c */ virtual void vfunc_4c(u32 param1, unk32 param2); - /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4); + /* 3c */ virtual void vfunc_3c(unk32 param_2, unk32 param_3) = 0; + /* 40 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) = 0; + /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); + /* 48 */ virtual void vfunc_48(u32 param1, unk32 param2); + /* 4c */ virtual void vfunc_4c(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4); + /* 50 */ virtual void vfunc_50(); /* 54 */ virtual void vfunc_54(); /* 58 */ virtual void vfunc_58(); - /* 5c */ virtual void vfunc_5c(u16 *param_2, struct UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5); - /* 60 */ virtual void vfunc_60(); - /* 64 */ virtual void vfunc_64(); - /* 68 */ virtual s32 vfunc_68(unk32 param1); + /* 5c */ virtual void vfunc_5c(); + /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3); + /* 64 */ virtual s32 vfunc_64(unk32 param1); + /* 68 */ virtual void vfunc_68(s32 *param1, s32 *param2); /* 6c */ virtual void vfunc_6c(s32 *param1, s32 *param2); - /* 70 */ virtual void vfunc_70(s32 *param1, s32 *param2); - /* 74 */ virtual void vfunc_74(); - /* 78 */ + /* 70 */ virtual void vfunc_70(); + /* 74 */ static void func_020387e0(u8 *param_2); @@ -84,13 +84,10 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { s32 func_02038cb8(s32 param1); s32 func_02038cf4(); s32 func_02038d10(); - bool func_02038ef4(s32 param1, s32 param2); + bool func_02038ef4(s32 touchLastX, s32 touchLastY); void func_02039208(unk16 param1); unk32 func_02039250(); void func_02039440(unk32 param1, unk32 param2); bool func_0203951c(); u16 *func_02037604(u16 **); - - //! TODO: not sure it belongs to this class: - s16 func_0203d318(s16, s16); }; diff --git a/include/Unknown/UnkStruct_020397f8.hpp b/include/Unknown/UnkStruct_020397f8.hpp index 90fa4164..d9c16273 100644 --- a/include/Unknown/UnkStruct_020397f8.hpp +++ b/include/Unknown/UnkStruct_020397f8.hpp @@ -70,7 +70,7 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { /* 576 */ unk16 mUnk_576; /* 578 */ s16 mUnk_578; /* 57a */ u8 mUnk_57a; - /* 57b */ u8 mUnk_57b; + /* 57b */ s8 mUnk_57b; /* 57c */ u8 mUnk_57c; /* 57d */ u8 mUnk_57d; /* 57e */ u8 mUnk_57e; @@ -79,7 +79,7 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { /* 581 */ u8 mUnk_581; /* 582 */ u8 mUnk_582; /* 583 */ u8 mUnk_583; - /* 584 */ unk8 mUnk_584; + /* 584 */ u8 mUnk_584; /* 585 */ u8 mUnk_585; /* 586 */ u8 mUnk_586; /* 587 */ unk8 mUnk_587; @@ -92,18 +92,18 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2) override; /* 2c */ virtual void vfunc_2c() override; /* 38 */ virtual bool vfunc_38() override; - /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; + /* 3c */ virtual void vfunc_3c(unk32 param_2, unk32 param_3) override; + /* 40 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; - /* 48 */ virtual void vfunc_48() override; - /* 4c */ virtual void vfunc_4c(u32 param1, unk32 param2) override; - /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) override; + /* 48 */ virtual void vfunc_48(u32 param1, unk32 param2) override; + /* 4c */ virtual void vfunc_4c(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) override; + /* 50 */ virtual void vfunc_50() override; /* 54 */ virtual void vfunc_54() override; /* 58 */ virtual void vfunc_58() override; - /* 5c */ virtual void vfunc_5c(u16 *param_2, struct UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) override; - /* 60 */ virtual void vfunc_60() override; - /* 64 */ virtual void vfunc_64() override; - /* 68 */ virtual s32 vfunc_68(unk32 param1) override; - /* 70 */ virtual void vfunc_70(s32 *param1, s32 *param2) override; + /* 5c */ virtual void vfunc_5c() override; + /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3) override; + /* 64 */ virtual s32 vfunc_64(unk32 param1) override; + /* 6c */ virtual void vfunc_6c(s32 *param1, s32 *param2) override; static bool func_0203c25c(class UnkStruct_020397f8 *param1); @@ -111,7 +111,7 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { void func_02039ca8(); void func_0203a188(s32 param1, s32 param2); // void func_0203a188(unk32 param_2, unk32 param_3, unk32 param_4); bool func_0203a2c0(); - unk32 func_0203a30c(); + u32 func_0203a30c(); void func_0203a35c(); bool func_0203a3e0(); bool func_0203a6d0(unk32 param1, unk32 param2); @@ -149,9 +149,9 @@ class MsgProc_Type3 : public UnkStruct_02038aa0 { MsgProc_Type3(unk32 param_2, unk16 param_3, unk32 param_4); /* 00 */ virtual ~MsgProc_Type3(); /* 24 */ virtual bool vfunc_24(s16 **param1) override; - /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; - /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; - /* 48 */ virtual void vfunc_48() override; + /* 40 */ virtual void vfunc_3c(unk32 param_2, unk32 param_3) override; + /* 44 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; + /* 48 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; void func_0203cabc(unk32); unk32 func_0203cb5c(unk8, s16); @@ -174,9 +174,9 @@ class MsgProc_Type2 : public UnkStruct_02038aa0 { MsgProc_Type2(unk32 param_2, unk16 param_3, unk32 param_4); /* 00 */ virtual ~MsgProc_Type2(); /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2) override; - /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; - /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; - /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) override; + /* 40 */ virtual void vfunc_3c(unk32 param_2, unk32 param_3) override; + /* 44 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; + /* 50 */ virtual void vfunc_4c(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) override; void func_0203c4ac(unk32, unk32); void func_0203c5dc(void); diff --git a/include/Unknown/UnkStruct_0203d1d0.hpp b/include/Unknown/UnkStruct_0203d1d0.hpp new file mode 100644 index 00000000..34850266 --- /dev/null +++ b/include/Unknown/UnkStruct_0203d1d0.hpp @@ -0,0 +1,38 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" + +class UnkStruct_0203d1d0_base : public SysObject { +public: + /* 0x00 (vtable) */ + /* 0x04 */ unk32 *mUnk_04; + /* 0x08 */ + + /* 00 */ virtual ~UnkStruct_0203d1d0_base(); + /* 08 */ virtual unk32 vfunc_08(void *) = 0; + /* 0c */ virtual void vfunc_0c(); + /* 10 */ + + UnkStruct_0203d1d0_base(); + unk32 *func_0203d1b4(void); +}; + +class UnkStruct_0203d1d0 : public UnkStruct_0203d1d0_base { +public: + /* 00 */ virtual ~UnkStruct_0203d1d0(); + /* 08 */ virtual unk32 vfunc_08(void *) override; + + UnkStruct_0203d1d0(); +}; + +class UnkStruct_0203d254 : public UnkStruct_0203d1d0_base { +public: + /* 00 */ virtual ~UnkStruct_0203d254(); + /* 08 */ virtual unk32 vfunc_08(void *) override; + /* 0c */ virtual void vfunc_0c() override; + + UnkStruct_0203d254(); +}; diff --git a/include/Unknown/UnkStruct_0203dae0.hpp b/include/Unknown/UnkStruct_0203dae0.hpp index f4ee633f..4dcd3fd0 100644 --- a/include/Unknown/UnkStruct_0203dae0.hpp +++ b/include/Unknown/UnkStruct_0203dae0.hpp @@ -5,8 +5,7 @@ #include "Message/MsgProc.hpp" #include "Unknown/UnkStruct_02032f0c.hpp" - -class UnkStruct_0203dae0_114; +#include "Unknown/UnkStruct_0203d1d0.hpp" // astruct_7, MsgProc_Base2 class UnkStruct_0203dae0 : public UnkStruct_02032f0c { @@ -69,7 +68,7 @@ class UnkStruct_0203dae0 : public UnkStruct_02032f0c { /* 108 */ unk8 mUnk_10b; /* 10c */ unk32 mUnk_10c; /* 110 */ unk32 mUnk_110; - /* 114 */ UnkStruct_0203dae0_114 *mUnk_114; + /* 114 */ UnkStruct_0203d1d0_base *mUnk_114; /* 118 */ s32 mUnk_118; /* 11c */ u16 mUnk_11c; /* 11e */ u8 mUnk_11e; @@ -87,15 +86,16 @@ class UnkStruct_0203dae0 : public UnkStruct_02032f0c { /* 28 */ virtual bool vfunc_28(); /* 2c */ virtual void vfunc_2c(); /* 30 */ virtual void vfunc_30(); + /* 34 */ + UnkStruct_0203dae0(); UnkStruct_0203dae0(u8 param1); - void func_0203dc10(unk32 param1); - void func_0203dc10(unk32 param_2, unk32 param_3); + void func_0203dc10(unk32 param_2); bool func_0203dc74(s32 param1, s32 param2); void func_0203dcfc(u8 param1, unk32 param2, unk32 param3, s32 param4); unk32 *func_0203ddec(); void func_0203ddfc(); - void func_0203de14(); + unk32 func_0203de14(unk32 param1); s32 func_0203de24(); bool func_0203de58(s32 param1); bool func_0203e0f8(); @@ -106,4 +106,7 @@ class UnkStruct_0203dae0 : public UnkStruct_02032f0c { bool func_0203e6e4(u32 param1, u32 param2, s32 param3); void func_ov003_020f13b0(unk32 param1); + + //! TODO: figure out if this belongs here + static u16 func_0203d318(unk32, unk32); }; From 02f67ca521713809a0e2c67f25962d4d4a46a74f Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 17:17:02 +0200 Subject: [PATCH 17/36] random fixes --- src/00_Core/Player/LinkStateMove.cpp | 6 ++---- src/00_Core/Player/PlayerControl.cpp | 5 ++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/00_Core/Player/LinkStateMove.cpp b/src/00_Core/Player/LinkStateMove.cpp index a0980773..a7e64be0 100644 --- a/src/00_Core/Player/LinkStateMove.cpp +++ b/src/00_Core/Player/LinkStateMove.cpp @@ -1,4 +1,5 @@ #include "Player/LinkStateMove.hpp" +#include "Unknown/UnkStruct_020eec9c.hpp" unk32 LinkStateMove::data_ov000_020e56f0 = 0x800; @@ -19,9 +20,6 @@ THUMB void LinkStateMove::CreateDebugHierarchy() { debugHierarchy->GetChildNode(1, description, id, &data_ov000_020e56f0, 8, 0, 0x1000, 0); } -extern u32 data_ov000_020eec9c; -extern "C" void func_ov000_020d77e4(void *param1, s32 param2); - ARM void LinkStateMove::OnStateEnter() { this->mUnk_0c = 0; this->mUnk_10 = 0; @@ -36,7 +34,7 @@ ARM void LinkStateMove::OnStateEnter() { shield->UpdateInUse(1); PlayerBase::GetEquipSword()->func_ov000_020c06b0(-1); - func_ov000_020d77e4(&data_ov000_020eec9c, 0xD); + data_ov000_020eec9c.func_ov000_020d77e4(0xD); } ARM void LinkStateMove::OnStateLeave(s32 param1) { diff --git a/src/00_Core/Player/PlayerControl.cpp b/src/00_Core/Player/PlayerControl.cpp index 5476834e..95aa9fc2 100644 --- a/src/00_Core/Player/PlayerControl.cpp +++ b/src/00_Core/Player/PlayerControl.cpp @@ -14,6 +14,7 @@ #include "Player/PlayerBase.hpp" #include "Player/PlayerLinkBase.hpp" #include "Save/AdventureFlags.hpp" +#include "Unknown/UnkStruct_020eec9c.hpp" static char *sShipTypes[] = {"brg", "anc", "pdl", "hul", "can", "dco", "bow", "fnl"}; @@ -1032,11 +1033,9 @@ ARM bool PlayerControl::IsNotTouching() { return !mTouch; } -extern u32 data_ov000_020eec9c[]; -extern "C" void func_ov000_020d77e4(u32 *param1, u32 param2); ARM bool PlayerControl::IsTouchingFast() { if (this->CheckTouchFast(1)) { - func_ov000_020d77e4(data_ov000_020eec9c, 0x17); + data_ov000_020eec9c.func_ov000_020d77e4(0x17); return true; } return false; From bc9706b27855af91f2b1a69dd782574283aeedc9 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 17:17:10 +0200 Subject: [PATCH 18/36] merge back progress from backup 4 --- src/Main/Message/func_0203c358.cpp | 70 +++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 5 deletions(-) diff --git a/src/Main/Message/func_0203c358.cpp b/src/Main/Message/func_0203c358.cpp index 5b66bf30..321ef715 100644 --- a/src/Main/Message/func_0203c358.cpp +++ b/src/Main/Message/func_0203c358.cpp @@ -7,11 +7,71 @@ #include "System/SysNew.hpp" #include "global.h" -ARM MsgProc_Type2::MsgProc_Type2() {} -ARM void MsgProc_Type2::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) {} -ARM void MsgProc_Type2::vfunc_40(unk32 param_2, unk32 param_3) {} -ARM void MsgProc_Type2::vfunc_44(s32 touchLastX, s32 touchLastY) {} +extern "C" void func_0203fc78(bool, unk32 *, unk32 *); + +THUMB MsgProc_Type2::MsgProc_Type2() : + UnkStruct_02038aa0(0, 0) { + this->mUnk_162 = 4; + this->mUnk_164 = 1; + this->mUnk_166 = 0; + this->mUnk_168 = -1; + this->mUnk_16a = 0; + this->mUnk_16c = 1; + this->mUnk_16e = 0; +} + +// non-matching +THUMB void MsgProc_Type2::vfunc_4c(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) { + u16 uVar1; + unk32 uVar2; + s16 uVar3; + s32 iVar4; + s32 local_20; + s32 local_1c; + + this->UnkStruct_02038aa0::vfunc_4c(param1, param2, param3, param4); + uVar3 = 0; + + for (iVar4 = 0; iVar4 < 2; iVar4++) { + local_1c = 0xC0; + local_20 = 0x10; + + func_0203fc78(iVar4 != 0, &local_1c, &local_20); + + uVar1 = this->func_0203d318((s32) (local_1c + ((u32) (local_1c + 7 >> 2) >> 0x1D)) >> 3, + (s32) (local_20 + ((u32) (local_20 + 7 >> 2) >> 0x1D)) >> 3); + + if (uVar3 < uVar1) { + uVar3 = uVar1; + } + } + + if (this->mUnk_114->vfunc_08(this) != 0) { + this->mUnk_10 = this->mUnk_114->func_0203d1b4(); + } +} + +ARM void MsgProc_Type2::vfunc_3c(unk32 param_2, unk32 param_3) { + if (this->mUnk_15c > 0 && this->mUnk_122 != 1) { + if (this->func_0203de14(param_2) != 0) { + this->vfunc_40(0, 0); + } + } +} + +ARM void MsgProc_Type2::vfunc_40(s32 touchLastX, s32 touchLastY) { + touchLastX += this->mUnk_166; + touchLastY += this->mUnk_168; + + this->func_0203c4ac(touchLastX + this->mUnk_16a, touchLastY + this->mUnk_16c); + this->func_02038ef4(touchLastX, touchLastY); +} + ARM void MsgProc_Type2::func_0203c4ac(unk32, unk32) {} -ARM bool MsgProc_Type2::vfunc_14(s32 param1, s32 param2) {} + +ARM bool MsgProc_Type2::vfunc_14(s32 param1, s32 param2) { + return this->UnkStruct_0203dae0::vfunc_14(param1 + this->mUnk_162, param2); +} + ARM void MsgProc_Type2::func_0203c5dc() {} ARM MsgProc_Type2::~MsgProc_Type2() {} From 26fe7910b34ddc6ab087b338a89979ea4d6f67ff Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 17:18:21 +0200 Subject: [PATCH 19/36] unk_14 -> pFile 2 (forgot to commit the source) --- src/Main/Message/BMG.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Main/Message/BMG.cpp b/src/Main/Message/BMG.cpp index 0256069e..8f3b59ef 100644 --- a/src/Main/Message/BMG.cpp +++ b/src/Main/Message/BMG.cpp @@ -5,7 +5,7 @@ extern "C" { char *func_0202ab38(u32 *lang); u32 *func_0202d550(int, u32 *, char *path, int, int, int); -void func_0202d590(BMGHeader *); +void func_0202d590(void *); extern u32 *data_027e0ce0[]; extern u32 data_027e05f4; // language @@ -54,7 +54,7 @@ THUMB void BMGFileInfo::func_020371b4() { this->pFLW1 = NULL; this->pFLI1 = NULL; this->pDAT1 = NULL; - this->mUnk_14 = NULL; + this->pFile = NULL; this->mUnk_18 = 0; } @@ -63,15 +63,14 @@ THUMB u16 BMGFileInfo::func_020371c8(u32 *pFile, s16 unk_18) { SectionBase *pSection; u16 groupId; u32 i; - BMGHeader *pHeader = (BMGHeader *) pFile; groupId = -1; - this->mUnk_14 = pHeader; + this->pHeader = (BMGHeader *) pFile; this->mUnk_18 = unk_18; - this->pHeader = pHeader; + this->pFile = pFile; pSection = (SectionBase *) ((u8 *) pFile + sizeof(BMGHeader)); - for (i = 0; i < this->mUnk_14->numSections; i++) { + for (i = 0; i < this->pHeader->numSections; i++) { switch (pSection->tag) { case BMG_TAG_MID1: // unused @@ -177,7 +176,7 @@ THUMB void BMGGroups::func_020373b4(s16 unk_18) { for (i = 0; i < this->numEntries; i++) { if (this->entries[i].mUnk_18 == unk_18) { - func_0202d590(this->entries[i].mUnk_14); + func_0202d590(this->entries[i].pFile); this->entries[i].func_020371b4(); } } From 804d0e20fc7774e2ad369f0a0715793bcc8919af Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 18:15:36 +0200 Subject: [PATCH 20/36] merge back progress from backup 5 --- src/Main/Unknown/UnkStruct_02038aa0.cpp | 240 ++++++++++++------------ 1 file changed, 118 insertions(+), 122 deletions(-) diff --git a/src/Main/Unknown/UnkStruct_02038aa0.cpp b/src/Main/Unknown/UnkStruct_02038aa0.cpp index 88160b15..71f66547 100644 --- a/src/Main/Unknown/UnkStruct_02038aa0.cpp +++ b/src/Main/Unknown/UnkStruct_02038aa0.cpp @@ -3,6 +3,8 @@ #include "Game/Game.hpp" #include "Message/MessageManager.hpp" +ARM void UnkStruct_02038aa0::func_020387e0(u8 *param_2) {} + ARM UnkStruct_0203881c::UnkStruct_0203881c() { this->mUnk_14 = 0x1000; this->mUnk_18 = 0; @@ -15,7 +17,8 @@ ARM void UnkStruct_0203881c::func_02038858(unk32 param1) {} ARM void UnkStruct_0203881c::func_02038888() {} ARM void UnkStruct_0203881c::func_02038950(UnkStruct_02038aa0 *param1, s32 param2) {} ARM void UnkStruct_0203881c::func_02038a80(s32 param1) {} -ARM UnkStruct_0203881c::~UnkStruct_0203881c() {} +ARM void UnkStruct_0203881c::vfunc_00() {} +ARM void UnkStruct_0203881c::vfunc_04() {} THUMB UnkStruct_02038aa0::UnkStruct_02038aa0(u8 param1, u8 param2) : UnkStruct_0203dae0(param1), @@ -32,26 +35,22 @@ THUMB UnkStruct_02038aa0::UnkStruct_02038aa0(u8 param1, u8 param2) : THUMB UnkStruct_02038aa0::~UnkStruct_02038aa0() {} -THUMB void UnkStruct_02038aa0::func_02038b28(void) { +THUMB void UnkStruct_02038aa0::vfunc_4c() { this->mUnk_114->mUnk_04 = NULL; } -// ARM void UnkStruct_02038aa0::vfunc_4c(u32 param1, unk32 param2) { -// this->UnkStruct_0203dae0::vfunc_10(param1, param2); -// } - -ARM void UnkStruct_02038aa0::vfunc_10(u32 param1, unk32 param2) {} +ARM void UnkStruct_02038aa0::vfunc_10(u32 param1, unk32 param2) { + this->UnkStruct_0203dae0::vfunc_10(param1, param2); +} ARM void UnkStruct_02038aa0::func_02038b40() { this->mUnk_15c = -1; this->mUnk_128.mUnk_04 = NULL; this->func_0203dc10(0); - // this->vfunc_48(); + this->vfunc_48(); } -// ARM void UnkStruct_02038aa0::vfunc_48() {} - -ARM void UnkStruct_02038aa0::func_02038b74(void) {} +ARM void UnkStruct_02038aa0::vfunc_48() {} // non-matching ARM bool UnkStruct_02038aa0::func_02038b78() { @@ -73,26 +72,26 @@ ARM bool UnkStruct_02038aa0::func_02038b78() { } } -// ARM unk32 UnkStruct_02038aa0::vfunc_34(s32 param1) { -// s16 iVar1; -// unk32 iVar2; -// unk32 iVar3; -// unk32 uVar4; +ARM unk32 UnkStruct_02038aa0::vfunc_34(s32 param1) { + s16 iVar1; + unk32 iVar2; + unk32 iVar3; + unk32 uVar4; -// iVar2 = this->func_02038cf4(); -// iVar3 = this->func_02038d10(); -// iVar1 = ((this->mUnk_158.y - (this->mUnk_18 << 3) / 2)); + iVar2 = this->func_02038cf4(); + iVar3 = this->func_02038d10(); + iVar1 = ((this->mUnk_158.y - (this->mUnk_18 << 3) / 2)); -// if ((param1 < iVar2 + iVar1) || (iVar2 + iVar3 + iVar1 <= param1)) { -// return -1; -// } + if ((param1 < iVar2 + iVar1) || (iVar2 + iVar3 + iVar1 <= param1)) { + return -1; + } -// iVar3 = this->mUnk_34; -// uVar4 = this->func_02032fb4(); -// iVar2 = (param1 - iVar1) - iVar2; + iVar3 = this->mUnk_34; + uVar4 = this->func_02032fb4(); + iVar2 = (param1 - iVar1) - iVar2; -// return func_01ff9b4c(iVar2 + iVar3 / 2, uVar4); -// } + return func_01ff9b4c(iVar2 + iVar3 / 2, uVar4); +} ARM s32 UnkStruct_02038aa0::func_02038cb8(s32 param1) { u8 bVar1 = this->mUnk_2c[0]->mUnk_08[1]; @@ -118,124 +117,121 @@ ARM void UnkStruct_02038aa0::vfunc_2c() {} ARM void UnkStruct_02038aa0::vfunc_30() { if (this->mUnk_15c > 0) { - this->func_0203e090(); + this->UnkStruct_0203dae0::vfunc_30(); } else { this->mUnk_118 = -1; } } -ARM bool UnkStruct_02038aa0::func_02038ef4(s32 param1, s32 param2) { +ARM bool UnkStruct_02038aa0::func_02038ef4(s32 touchLastX, s32 touchLastY) { unk32 local_14; unk32 local_18; - // this->vfunc_70(&local_14, &local_18); - this->func_0203e1b0(local_14 + param1, local_18 + param2, 0); + this->vfunc_70(&local_14, &local_18); + this->func_0203e1b0(local_14 + touchLastX, local_18 + touchLastY, 0); } -ARM void UnkStruct_02038aa0::func_02038f40(void) {} +ARM void UnkStruct_02038aa0::vfunc_44(s32 touchLastX, s32 touchLastY) {} -// ARM void UnkStruct_02038aa0::vfunc_44(s32 touchLastX, s32 touchLastY) {} +// non-matching +ARM void UnkStruct_02038aa0::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) { + int iVar1; + + this->pInfoEntry = param1; + this->mUnk_08 = param4; + this->mUnk_15f = -1; + this->mUnk_15c = 0x78; + this->mUnk_15e = param4->mUnk_0c; + this->func_0203dcfc(0, 0, this->mUnk_11e, 2); + this->mUnk_128.func_02038858(param2); + this->mUnk_30 = this->mUnk_150[4] + 5; + + this->vfunc_54(); + this->vfunc_60(0, 0, (unk32) param3); + this->vfunc_64((unk32) param3); + + if (gGame.mModeId == GameModeId_Adventure) { + if (this->func_02032fa4() == 0) { + data_027e103c->func_ov000_020cfc9c(1, 0); + } else { + data_027e103c->func_ov000_020cfc9c(0, 1); + } + } + + // this->vfunc_5c(); +} // non-matching -// ARM void UnkStruct_02038aa0::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) { -// int iVar1; - -// this->pInfoEntry = param1; -// this->mUnk_08 = param4; -// this->mUnk_15f = -1; -// this->mUnk_15c = 0x78; -// this->mUnk_15e = param4->mUnk_0c; -// this->func_0203dcfc(0, 0, this->mUnk_11e, 2); -// this->mUnk_128.func_02038858(param2); -// this->mUnk_30 = this->mUnk_150[4] + 5; - -// this->vfunc_54(); -// // this->vfunc_60(0, 0, (unk32)param3); -// // this->vfunc_64(param3); - -// if (gGame.mModeId == GameModeId_Adventure) { -// if (this->func_02032fa4() == 0) { -// data_027e103c->func_ov000_020cfc9c(1, 0); -// } else { -// data_027e103c->func_ov000_020cfc9c(0, 1); -// } -// } - -// this->vfunc_5C(); -// } - -// // non-matching -// ARM void UnkStruct_02038aa0::vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) { -// u16 sVar1; -// bool bVar5; - -// sVar1 = param_2[0]; -// bVar5 = (sVar1 == 0xA || sVar1 == 0x20) || sVar1 == 0x3000; - -// if (bVar5 && this->mUnk_150[2] != 0) { -// this->mUnk_150[2] = 1; -// } else { -// this->mUnk_150[2] = 0; -// } - -// // this->mUnk_150[2] = bVar5; - -// // return? -// this->func_02033360(); -// } +ARM void UnkStruct_02038aa0::vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) { + u16 sVar1; + bool bVar5; + + sVar1 = param_2[0]; + bVar5 = (sVar1 == 0xA || sVar1 == 0x20) || sVar1 == 0x3000; + + if (bVar5 && this->mUnk_150[2] != 0) { + this->mUnk_150[2] = 1; + } else { + this->mUnk_150[2] = 0; + } + + // this->mUnk_150[2] = bVar5; + + // return? + // this->UnkStruct_02032f0c::vfunc_1c(); +} ARM unk32 UnkStruct_02038aa0::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {} ARM unk32 UnkStruct_02038aa0::vfunc_20(s32 param1, s32 *param2) {} ARM void UnkStruct_02038aa0::func_02039208(unk16 param1) {} -// ARM void UnkStruct_02038aa0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) { -// this->mUnk_15c = 10; -// this->mUnk_150[2] = 1; -// this->UnkStruct_0203dae0::vfunc_08(param1, param2, param3, param4); -// } +ARM void UnkStruct_02038aa0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) { + this->mUnk_15c = 10; + this->mUnk_150[2] = 1; + this->UnkStruct_0203dae0::vfunc_08(param1, param2, param3, param4); +} ARM unk32 UnkStruct_02038aa0::func_02039250() {} -// ARM void UnkStruct_02038aa0::vfunc_54() {} -// ARM void UnkStruct_02038aa0::vfunc_58() {} -// ARM void UnkStruct_02038aa0::vfunc_60() {} -// ARM void UnkStruct_02038aa0::vfunc_64() {} - -// ARM s32 UnkStruct_02038aa0::vfunc_68(unk32 param1) { -// switch (param1) { -// case 0: -// break; -// case 1: -// this->mUnk_34 = 4; -// break; -// case 2: -// this->mUnk_34 = 6; -// break; -// case 3: -// this->mUnk_34 = 1; -// break; -// case 4: -// this->mUnk_34 = 0; -// break; -// default: -// break; -// } - -// return ((this->mUnk_18 << 3) - this->func_020337d8(param1)) / 2; -// } +ARM void UnkStruct_02038aa0::vfunc_54() {} +ARM void UnkStruct_02038aa0::vfunc_58() {} +ARM void UnkStruct_02038aa0::vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3) {} +ARM s32 UnkStruct_02038aa0::vfunc_64(unk32 param1) {} + +ARM unk32 UnkStruct_02038aa0::vfunc_68(s32 param1, s32 *param2) { + switch (param1) { + case 0: + break; + case 1: + this->mUnk_34 = 4; + break; + case 2: + this->mUnk_34 = 6; + break; + case 3: + this->mUnk_34 = 1; + break; + case 4: + this->mUnk_34 = 0; + break; + default: + break; + } + + return ((this->mUnk_18 << 3) - this->func_020337d8(param1)) / 2; +} ARM void UnkStruct_02038aa0::func_02039440(unk32 param1, unk32 param2) {} -// ARM void UnkStruct_02038aa0::vfunc_6c(s32 *param1, s32 *param2) {} +ARM void UnkStruct_02038aa0::vfunc_6c(s32 *param1, s32 *param2) {} -// ARM void UnkStruct_02038aa0::vfunc_70(s32 *param1, s32 *param2) { -// this->vfunc_6C(param1, param2); -// *param1 += this->mUnk_158.x; -// *param2 += this->mUnk_158.y; -// } +ARM void UnkStruct_02038aa0::vfunc_70(unk32 *param1, unk32 *param2) { + this->vfunc_6c(param1, param2); + *param1 += this->mUnk_158.x; + *param2 += this->mUnk_158.y; +} ARM bool UnkStruct_02038aa0::func_0203951c() {} -// ARM bool UnkStruct_02038aa0::vfunc_38() {} +ARM bool UnkStruct_02038aa0::func_0203955c() {} -// ARM void UnkStruct_02038aa0::vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) { -// this->func_0203dc10(1, param2); -// this->func_02033190(param1, param2, param3, param4); -// } +ARM bool UnkStruct_02038aa0::vfunc_38() { + return false; +} From 51ab132d6e848df2ea7b078dce575210a22a3ed7 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 18:16:06 +0200 Subject: [PATCH 21/36] headers update --- include/Unknown/UnkStruct_02032e7c.hpp | 3 ++- include/Unknown/UnkStruct_0203881c.hpp | 3 ++- include/Unknown/UnkStruct_02038aa0.hpp | 14 +++++++------- include/Unknown/UnkStruct_020397f8.hpp | 10 +++++----- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/include/Unknown/UnkStruct_02032e7c.hpp b/include/Unknown/UnkStruct_02032e7c.hpp index a22b7e35..8b888277 100644 --- a/include/Unknown/UnkStruct_02032e7c.hpp +++ b/include/Unknown/UnkStruct_02032e7c.hpp @@ -16,7 +16,8 @@ class UnkStruct_02032e7c : public SysObject { /* 10 */ unk32 mUnk_10; /* 14 */ - /* 0 */ virtual ~UnkStruct_02032e7c(); + /* 0 */ virtual void vfunc_00(); + /* 0 */ virtual void vfunc_04(); /* 8 */ UnkStruct_02032e7c(); diff --git a/include/Unknown/UnkStruct_0203881c.hpp b/include/Unknown/UnkStruct_0203881c.hpp index 69142fd1..e7a0fb8b 100644 --- a/include/Unknown/UnkStruct_0203881c.hpp +++ b/include/Unknown/UnkStruct_0203881c.hpp @@ -19,7 +19,8 @@ class UnkStruct_0203881c : public UnkStruct_02032e7c { /* 24 */ unk32 mUnk_24; /* 28 */ - /* 0 */ virtual ~UnkStruct_0203881c(); + /* 0 */ virtual void vfunc_00(); + /* 0 */ virtual void vfunc_04(); /* 8 */ UnkStruct_0203881c(); diff --git a/include/Unknown/UnkStruct_02038aa0.hpp b/include/Unknown/UnkStruct_02038aa0.hpp index 1394e432..8f2d4e29 100644 --- a/include/Unknown/UnkStruct_02038aa0.hpp +++ b/include/Unknown/UnkStruct_02038aa0.hpp @@ -62,17 +62,17 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { /* 3c */ virtual void vfunc_3c(unk32 param_2, unk32 param_3) = 0; /* 40 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) = 0; /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); - /* 48 */ virtual void vfunc_48(u32 param1, unk32 param2); - /* 4c */ virtual void vfunc_4c(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4); - /* 50 */ virtual void vfunc_50(); + /* 48 */ virtual void vfunc_48(); + /* 4c */ virtual void vfunc_4c(); + /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4); /* 54 */ virtual void vfunc_54(); /* 58 */ virtual void vfunc_58(); - /* 5c */ virtual void vfunc_5c(); + /* 5c */ virtual void vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5); /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3); /* 64 */ virtual s32 vfunc_64(unk32 param1); - /* 68 */ virtual void vfunc_68(s32 *param1, s32 *param2); + /* 68 */ virtual unk32 vfunc_68(s32 param1, s32 *param2); /* 6c */ virtual void vfunc_6c(s32 *param1, s32 *param2); - /* 70 */ virtual void vfunc_70(); + /* 70 */ virtual void vfunc_70(unk32 *param1, unk32 *param2); /* 74 */ static void func_020387e0(u8 *param_2); @@ -89,5 +89,5 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { unk32 func_02039250(); void func_02039440(unk32 param1, unk32 param2); bool func_0203951c(); - u16 *func_02037604(u16 **); + bool func_0203955c(); }; diff --git a/include/Unknown/UnkStruct_020397f8.hpp b/include/Unknown/UnkStruct_020397f8.hpp index d9c16273..4e2db6c6 100644 --- a/include/Unknown/UnkStruct_020397f8.hpp +++ b/include/Unknown/UnkStruct_020397f8.hpp @@ -95,12 +95,12 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { /* 3c */ virtual void vfunc_3c(unk32 param_2, unk32 param_3) override; /* 40 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; - /* 48 */ virtual void vfunc_48(u32 param1, unk32 param2) override; - /* 4c */ virtual void vfunc_4c(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) override; - /* 50 */ virtual void vfunc_50() override; + /* 48 */ virtual void vfunc_48() override; + /* 4c */ virtual void vfunc_4c() override; + /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) override; /* 54 */ virtual void vfunc_54() override; /* 58 */ virtual void vfunc_58() override; - /* 5c */ virtual void vfunc_5c() override; + /* 5c */ virtual void vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) override; /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3) override; /* 64 */ virtual s32 vfunc_64(unk32 param1) override; /* 6c */ virtual void vfunc_6c(s32 *param1, s32 *param2) override; @@ -176,7 +176,7 @@ class MsgProc_Type2 : public UnkStruct_02038aa0 { /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2) override; /* 40 */ virtual void vfunc_3c(unk32 param_2, unk32 param_3) override; /* 44 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; - /* 50 */ virtual void vfunc_4c(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) override; + /* 50 */ virtual void vfunc_4c() override; void func_0203c4ac(unk32, unk32); void func_0203c5dc(void); From 8652346ba10193516a8af38ca1ce64a315ebe4ea Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 18:16:28 +0200 Subject: [PATCH 22/36] fixes --- src/Main/Unknown/UnkStruct_020397f8.cpp | 32 +++++++++++++------------ 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/Main/Unknown/UnkStruct_020397f8.cpp b/src/Main/Unknown/UnkStruct_020397f8.cpp index 33ffb413..b84e56ee 100644 --- a/src/Main/Unknown/UnkStruct_020397f8.cpp +++ b/src/Main/Unknown/UnkStruct_020397f8.cpp @@ -85,8 +85,8 @@ THUMB UnkStruct_020397f8::UnkStruct_020397f8() : } // non-matching -THUMB void UnkStruct_020397f8::vfunc_4c(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) { - this->UnkStruct_02038aa0::vfunc_4c(param1, param2, param3, param4); +THUMB void UnkStruct_020397f8::vfunc_4c() { + this->UnkStruct_02038aa0::vfunc_4c(); this->func_0203dcfc(this->mUnk_50, 0, 0, 2); } @@ -377,8 +377,10 @@ ARM u32 UnkStruct_020397f8::func_0203a30c() { } // non-matching (regalloc) -ARM void UnkStruct_020397f8::vfunc_48(u32 param1, unk32 param2) { - if (this->mUnk_164 != NULL && this->mUnk_164->mUnk_15c > 0) { +ARM void UnkStruct_020397f8::vfunc_48() { + UnkStruct_020397f8 *unk_164 = this->mUnk_164; + + if (unk_164 != NULL && unk_164->mUnk_15c > 0) { this->func_02038b40(); } @@ -530,14 +532,14 @@ ARM bool UnkStruct_020397f8::func_0203a6d0(unk32 param1, unk32 param2) { } // non-matching -ARM void UnkStruct_020397f8::vfunc_50() { +ARM void UnkStruct_020397f8::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) { bool bVar5; bool bVar2; int iVar4; int iVar6; s16 temp; - // iVar6 = param3[0]; + iVar6 = param3[0]; if (data_027e0c54 != 0) { UnkStruct_020397f8 *pVar4 = gMessageManager.func_02036700(); @@ -557,11 +559,11 @@ ARM void UnkStruct_020397f8::vfunc_50() { } this->mUnk_586 = (data_02056be4[data_027e077c.mUnk_0] & 1) != 0; - // temp = param3[8]; + temp = param3[8]; - // if (temp >= 0 && param3[9] >= 0) { - // temp = param3[10]; - // } + if (temp >= 0 && param3[9] >= 0) { + temp = param3[10]; + } if (temp < 0) { this->mUnk_57b = temp; @@ -569,18 +571,18 @@ ARM void UnkStruct_020397f8::vfunc_50() { this->mUnk_57b = 0; } - // this->func_02038f44(param1, param2, param3, param4, iVar6); + this->UnkStruct_02038aa0::vfunc_50(param1, param2, param3, param4); this->mUnk_574 = 0; - // if (data_027e0d38 != 0 && (data_02056be4[data_027e077c.mUnk_0] & 1) != 0 && (param3[11])) { - // data_027e103c->func_ov000_020cf284(0x80, 0); - // } + if (data_027e0d38 != 0 && (data_02056be4[data_027e077c.mUnk_0] & 1) != 0 && (param3[11])) { + data_027e103c->func_ov000_020cf284(0x80, 0); + } } // switch decomp issue (solved now?) ARM void UnkStruct_020397f8::vfunc_54() {} -ARM void UnkStruct_020397f8::vfunc_5c() { +ARM void UnkStruct_020397f8::vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) { if (this->mUnk_15f == 0 || this->pInfoEntry->mUnk_06 <= 2) { this->mUnk_168.mUnk_5c.mUnk_08 = this->mUnk_168.mUnk_7c; this->mUnk_168.func_020352d8(); From 88117a92716b4d06c2a81026dfa0ef6e6574129d Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 18:18:02 +0200 Subject: [PATCH 23/36] symbol renames + sync us with eu --- config/eur/arm9/symbols.txt | 34 ++++++++-------- config/usa/arm9/symbols.txt | 78 ++++++++++++++++++------------------- 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 3a921243..779fc4e1 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1876,36 +1876,36 @@ _ZN18UnkStruct_02038aa0C2Ehh kind:function(thumb,size=0x5c) addr:0x02038aa0 _ZN18UnkStruct_02038aa0D1Ev kind:function(thumb,size=0xc) addr:0x02038afc _ZN18UnkStruct_02038aa0D0Ev kind:function(thumb,size=0x12) addr:0x02038b08 _ZN18UnkStruct_02038aa0D2Ev kind:function(thumb,size=0xc) addr:0x02038b1c -_ZN18UnkStruct_02038aa08vfunc_4cEP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0xc) addr:0x02038b28 +_ZN18UnkStruct_02038aa08vfunc_4cEv kind:function(thumb,size=0xc) addr:0x02038b28 _ZN18UnkStruct_02038aa08vfunc_10Eji kind:function(arm,size=0xc) addr:0x02038b34 _ZN18UnkStruct_02038aa013func_02038b40Ev kind:function(arm,size=0x34) addr:0x02038b40 -_ZN18UnkStruct_02038aa08vfunc_48Eji kind:function(arm,size=0x4) addr:0x02038b74 +_ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0x4) addr:0x02038b74 _ZN18UnkStruct_02038aa013func_02038b78Ev kind:function(arm,size=0xbc) addr:0x02038b78 _ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x84) addr:0x02038c34 -func_02038cb8 kind:function(arm,size=0x3c) addr:0x02038cb8 -func_02038cf4 kind:function(arm,size=0x1c) addr:0x02038cf4 -func_02038d10 kind:function(arm,size=0x10) addr:0x02038d10 +_ZN18UnkStruct_02038aa013func_02038cb8Ei kind:function(arm,size=0x3c) addr:0x02038cb8 +_ZN18UnkStruct_02038aa013func_02038cf4Ev kind:function(arm,size=0x1c) addr:0x02038cf4 +_ZN18UnkStruct_02038aa013func_02038d10Ev kind:function(arm,size=0x10) addr:0x02038d10 _ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x1b0) addr:0x02038d20 _ZN18UnkStruct_02038aa08vfunc_30Ev kind:function(arm,size=0x24) addr:0x02038ed0 _ZN18UnkStruct_02038aa013func_02038ef4Eii kind:function(arm,size=0x4c) addr:0x02038ef4 -_ZN18UnkStruct_02038aa08vfunc_44Ev kind:function(arm,size=0x4) addr:0x02038f40 -_ZN18UnkStruct_02038aa08vfunc_50Ev kind:function(arm,size=0x114) addr:0x02038f44 -_ZN18UnkStruct_02038aa08vfunc_5cEv kind:function(arm,size=0x4) addr:0x02039058 +_ZN18UnkStruct_02038aa08vfunc_44Eii kind:function(arm,size=0x4) addr:0x02038f40 +_ZN18UnkStruct_02038aa08vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(arm,size=0x114) addr:0x02038f44 +_ZN18UnkStruct_02038aa08vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0x4) addr:0x02039058 _ZN18UnkStruct_02038aa08vfunc_1cEiPiii kind:function(arm,size=0x48) addr:0x0203905c _ZN18UnkStruct_02038aa08vfunc_20EiPi kind:function(arm,size=0x164) addr:0x020390a4 _ZN18UnkStruct_02038aa013func_02039208Es kind:function(arm,size=0x20) addr:0x02039208 _ZN18UnkStruct_02038aa08vfunc_08EiiPsi kind:function(arm,size=0x28) addr:0x02039228 _ZN18UnkStruct_02038aa013func_02039250Ev kind:function(arm,size=0x64) addr:0x02039250 _ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0xe4) addr:0x020392b4 -_ZN18UnkStruct_02038aa08vfunc_58EPtP18UnkStruct_0203b264ci kind:function(arm,size=0xc) addr:0x02039398 -_ZN18UnkStruct_02038aa08vfunc_60Ev kind:function(arm,size=0x4) addr:0x020393a4 +_ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0xc) addr:0x02039398 +_ZN18UnkStruct_02038aa08vfunc_60EP20func_0203b410_param1ii kind:function(arm,size=0x4) addr:0x020393a4 _ZN18UnkStruct_02038aa08vfunc_64Ei kind:function(arm,size=0x28) addr:0x020393a8 -_ZN18UnkStruct_02038aa08vfunc_68EPiS0_ kind:function(arm,size=0x70) addr:0x020393d0 -func_02039440 kind:function(arm,size=0x3c) addr:0x02039440 +_ZN18UnkStruct_02038aa08vfunc_68EiPi kind:function(arm,size=0x70) addr:0x020393d0 +_ZN18UnkStruct_02038aa013func_02039440Eii kind:function(arm,size=0x3c) addr:0x02039440 _ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x5c) addr:0x0203947c -_ZN18UnkStruct_02038aa08vfunc_70Ev kind:function(arm,size=0x44) addr:0x020394d8 -func_0203951c kind:function(arm,size=0x40) addr:0x0203951c -func_0203955c kind:function(arm,size=0x14) addr:0x0203955c +_ZN18UnkStruct_02038aa08vfunc_70EPiS0_ kind:function(arm,size=0x44) addr:0x020394d8 +_ZN18UnkStruct_02038aa013func_0203951cEv kind:function(arm,size=0x40) addr:0x0203951c +_ZN18UnkStruct_02038aa013func_0203955cEv kind:function(arm,size=0x14) addr:0x0203955c _ZN18UnkStruct_02038aa08vfunc_38Ev kind:function(arm,size=0x8) addr:0x02039570 _ZN18UnkStruct_0203dae08vfunc_0cEiiii kind:function(arm,size=0x3c) addr:0x02039578 _ZN18UnkStruct_020397f8C2Ev kind:function(thumb,size=0x244) addr:0x020395b4 @@ -1966,7 +1966,7 @@ func_0203ca20 kind:function(arm,size=0x9c) addr:0x0203ca20 func_0203cabc kind:function(arm,size=0x44) addr:0x0203cabc _ZN13MsgProc_Type38vfunc_24EPPs kind:function(arm,size=0x5c) addr:0x0203cb00 func_0203cb5c kind:function(arm,size=0x10c) addr:0x0203cb5c -_ZN13MsgProc_Type38vfunc_44Ev kind:function(arm,size=0xf4) addr:0x0203cc68 +_ZN13MsgProc_Type38vfunc_44Eii kind:function(arm,size=0xf4) addr:0x0203cc68 func_0203cd5c kind:function(arm,size=0x44) addr:0x0203cd5c func_0203cda0 kind:function(arm,size=0x20) addr:0x0203cda0 func_0203cdc0 kind:function(arm,size=0x4) addr:0x0203cdc0 @@ -2027,7 +2027,7 @@ func_0203da20 kind:function(arm,size=0xc0) addr:0x0203da20 _ZN18UnkStruct_0203dae0C1Eh kind:function(thumb,size=0x98) addr:0x0203dae0 _ZN18UnkStruct_0203dae0D1Ev kind:function(thumb,size=0x30) addr:0x0203db78 _ZN18UnkStruct_0203dae0D0Ev kind:function(thumb,size=0x38) addr:0x0203dba8 -_ZN18UnkStruct_0203dae0C2Ev kind:function(thumb,size=0x30) addr:0x0203dbe0 +_ZN18UnkStruct_0203dae0D2Ev kind:function(thumb,size=0x30) addr:0x0203dbe0 _ZN18UnkStruct_0203dae013func_0203dc10Ei kind:function(arm,size=0x64) addr:0x0203dc10 _ZN18UnkStruct_0203dae013func_0203dc74Eii kind:function(arm,size=0x40) addr:0x0203dc74 _ZN18UnkStruct_0203dae08vfunc_14Eii kind:function(arm,size=0x48) addr:0x0203dcb4 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 199a609e..563fb0ef 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1647,7 +1647,7 @@ func_02032e44 kind:function(arm,size=0x1c) addr:0x02032e40 func_02032e60 kind:function(arm,size=0x1c) addr:0x02032e5c _ZN18UnkStruct_02032e7cC2Ev kind:function(arm,size=0x48) addr:0x02032e78 _ZN18UnkStruct_02032e7cC1Ev kind:function(arm,size=0x48) addr:0x02032ec0 -_ZN18UnkStruct_02032f0cC1Ev kind:function(thumb,size=0x78) addr:0x02032f08 +_ZN18UnkStruct_02032f0cC2Ev kind:function(thumb,size=0x78) addr:0x02032f08 _ZN18UnkStruct_02032f0cD1Ev kind:function(thumb,size=0x2) addr:0x02032f80 _ZN18UnkStruct_02032f0cD0Ev kind:function(thumb,size=0xc) addr:0x02032f84 _ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x4) addr:0x02032f90 @@ -1876,67 +1876,67 @@ _ZN18UnkStruct_02038aa0C2Ehh kind:function(thumb,size=0x5c) addr:0x02038a5c _ZN18UnkStruct_02038aa0D1Ev kind:function(thumb,size=0xc) addr:0x02038ab8 _ZN18UnkStruct_02038aa0D0Ev kind:function(thumb,size=0x12) addr:0x02038ac4 _ZN18UnkStruct_02038aa0D2Ev kind:function(thumb,size=0xc) addr:0x02038ad8 -_ZN18UnkStruct_02038aa08vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0xc) addr:0x02038ae4 +_ZN18UnkStruct_02038aa08vfunc_4cEv kind:function(thumb,size=0xc) addr:0x02038ae4 _ZN18UnkStruct_02038aa08vfunc_10Eji kind:function(arm,size=0xc) addr:0x02038af0 _ZN18UnkStruct_02038aa013func_02038b40Ev kind:function(arm,size=0x34) addr:0x02038afc -_ZN18UnkStruct_02038aa08vfunc_4cEji kind:function(arm,size=0x4) addr:0x02038b30 +_ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0x4) addr:0x02038b30 _ZN18UnkStruct_02038aa013func_02038b78Ev kind:function(arm,size=0xbc) addr:0x02038b34 _ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x84) addr:0x02038bf0 -func_02038cb8 kind:function(arm,size=0x3c) addr:0x02038c74 -func_02038cf4 kind:function(arm,size=0x1c) addr:0x02038cb0 -func_02038d10 kind:function(arm,size=0x10) addr:0x02038ccc +_ZN18UnkStruct_02038aa013func_02038cb8Ei kind:function(arm,size=0x3c) addr:0x02038c74 +_ZN18UnkStruct_02038aa013func_02038cf4Ev kind:function(arm,size=0x1c) addr:0x02038cb0 +_ZN18UnkStruct_02038aa013func_02038d10Ev kind:function(arm,size=0x10) addr:0x02038ccc _ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x1b0) addr:0x02038cdc _ZN18UnkStruct_02038aa08vfunc_30Ev kind:function(arm,size=0x24) addr:0x02038e8c _ZN18UnkStruct_02038aa013func_02038ef4Eii kind:function(arm,size=0x4c) addr:0x02038eb0 -_ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0x4) addr:0x02038efc -_ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0x114) addr:0x02038f00 -_ZN18UnkStruct_02038aa08vfunc_60Ev kind:function(arm,size=0x4) addr:0x02039014 +_ZN18UnkStruct_02038aa08vfunc_44Eii kind:function(arm,size=0x4) addr:0x02038efc +_ZN18UnkStruct_02038aa08vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(arm,size=0x114) addr:0x02038f00 +_ZN18UnkStruct_02038aa08vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0x4) addr:0x02039014 _ZN18UnkStruct_02038aa08vfunc_1cEiPiii kind:function(arm,size=0x48) addr:0x02039018 _ZN18UnkStruct_02038aa08vfunc_20EiPi kind:function(arm,size=0x164) addr:0x02039060 _ZN18UnkStruct_02038aa013func_02039208Es kind:function(arm,size=0x20) addr:0x020391c4 _ZN18UnkStruct_02038aa08vfunc_08EiiPsi kind:function(arm,size=0x28) addr:0x020391e4 _ZN18UnkStruct_02038aa013func_02039250Ev kind:function(arm,size=0x64) addr:0x0203920c -_ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0xe4) addr:0x02039270 -_ZN18UnkStruct_02038aa08vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0xc) addr:0x02039354 -_ZN18UnkStruct_02038aa08vfunc_64Ev kind:function(arm,size=0x4) addr:0x02039360 -_ZN18UnkStruct_02038aa08vfunc_68Ei kind:function(arm,size=0x28) addr:0x02039364 -_ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x70) addr:0x0203938c -func_02039440 kind:function(arm,size=0x3c) addr:0x020393fc -_ZN18UnkStruct_02038aa08vfunc_70EPiS0_ kind:function(arm,size=0x5c) addr:0x02039438 -_ZN18UnkStruct_02038aa08vfunc_74Ev kind:function(arm,size=0x44) addr:0x02039494 -func_0203951c kind:function(arm,size=0x40) addr:0x020394d8 -func_0203955c kind:function(arm,size=0x14) addr:0x02039518 +_ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0xe4) addr:0x02039270 +_ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0xc) addr:0x02039354 +_ZN18UnkStruct_02038aa08vfunc_60EP20func_0203b410_param1ii kind:function(arm,size=0x4) addr:0x02039360 +_ZN18UnkStruct_02038aa08vfunc_64Ei kind:function(arm,size=0x28) addr:0x02039364 +_ZN18UnkStruct_02038aa08vfunc_68EiPi kind:function(arm,size=0x70) addr:0x0203938c +_ZN18UnkStruct_02038aa013func_02039440Eii kind:function(arm,size=0x3c) addr:0x020393fc +_ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x5c) addr:0x02039438 +_ZN18UnkStruct_02038aa08vfunc_70EPiS0_ kind:function(arm,size=0x44) addr:0x02039494 +_ZN18UnkStruct_02038aa013func_0203951cEv kind:function(arm,size=0x40) addr:0x020394d8 +_ZN18UnkStruct_02038aa013func_0203955cEv kind:function(arm,size=0x14) addr:0x02039518 _ZN18UnkStruct_02038aa08vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203952c _ZN18UnkStruct_0203dae08vfunc_0cEiiii kind:function(arm,size=0x3c) addr:0x02039534 _ZN18UnkStruct_020397f8C2Ev kind:function(thumb,size=0x244) addr:0x02039570 _ZN18UnkStruct_020397f8C1Ev kind:function(thumb,size=0x244) addr:0x020397b4 -_ZN18UnkStruct_020397f88vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x20) addr:0x020399f8 +_ZN18UnkStruct_020397f88vfunc_4cEP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x20) addr:0x020399f8 _ZN18UnkStruct_020397f88vfunc_2cEv kind:function(arm,size=0x24c) addr:0x02039a18 _ZN18UnkStruct_020397f813func_02039ca8Ev kind:function(arm,size=0x24) addr:0x02039c64 -_ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0xa8) addr:0x02039c88 -_ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x414) addr:0x02039d30 +_ZN18UnkStruct_020397f88vfunc_3cEii kind:function(arm,size=0xa8) addr:0x02039c88 +_ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0x414) addr:0x02039d30 _ZN18UnkStruct_020397f813func_0203a188Eii kind:function(arm,size=0x138) addr:0x0203a144 _ZN18UnkStruct_020397f813func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x0203a27c _ZN18UnkStruct_020397f813func_0203a30cEv kind:function(arm,size=0x1c) addr:0x0203a2c8 -_ZN18UnkStruct_020397f88vfunc_4cEji kind:function(arm,size=0x34) addr:0x0203a2e4 +_ZN18UnkStruct_020397f88vfunc_48Eji kind:function(arm,size=0x34) addr:0x0203a2e4 _ZN18UnkStruct_020397f813func_0203a35cEv kind:function(arm,size=0x84) addr:0x0203a318 _ZN18UnkStruct_020397f813func_0203a3e0Ev kind:function(arm,size=0x1c) addr:0x0203a39c -_ZN18UnkStruct_020397f88vfunc_48Ev kind:function(arm,size=0x2d4) addr:0x0203a3b8 +_ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x2d4) addr:0x0203a3b8 _ZN18UnkStruct_020397f813func_0203a6d0Eii kind:function(arm,size=0x120) addr:0x0203a68c -_ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x198) addr:0x0203a7ac -_ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x520) addr:0x0203a944 -_ZN18UnkStruct_020397f88vfunc_60EP20func_0203b410_param1ii kind:function(arm,size=0x74) addr:0x0203ae64 +_ZN18UnkStruct_020397f88vfunc_50Ev kind:function(arm,size=0x198) addr:0x0203a7ac +_ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x520) addr:0x0203a944 +_ZN18UnkStruct_020397f88vfunc_5cEv kind:function(arm,size=0x74) addr:0x0203ae64 _ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x1a0) addr:0x0203aed8 _ZN18UnkStruct_020397f813func_0203b0bcEv kind:function(arm,size=0x30) addr:0x0203b078 _ZN18UnkStruct_020397f813func_0203b0ecEj kind:function(arm,size=0x178) addr:0x0203b0a8 _ZN18UnkStruct_020397f88vfunc_18Ei kind:function(arm,size=0xac) addr:0x0203b220 _ZN18UnkStruct_020397f88vfunc_1cEiPiii kind:function(arm,size=0x100) addr:0x0203b2cc -_ZN18UnkStruct_020397f88vfunc_64Ev kind:function(arm,size=0x1c0) addr:0x0203b3cc -_ZN18UnkStruct_020397f88vfunc_68Ei kind:function(arm,size=0x194) addr:0x0203b58c +_ZN18UnkStruct_020397f88vfunc_60EP20func_0203b410_param1ii kind:function(arm,size=0x1c0) addr:0x0203b3cc +_ZN18UnkStruct_020397f88vfunc_64Ei kind:function(arm,size=0x194) addr:0x0203b58c _ZN18UnkStruct_020397f813func_0203b764Ev kind:function(arm,size=0xb0) addr:0x0203b720 _ZN18UnkStruct_020397f88vfunc_20EiPi kind:function(arm,size=0x578) addr:0x0203b7d0 _ZN18UnkStruct_020397f813func_0203bd8cEi kind:function(arm,size=0x40) addr:0x0203bd48 -_ZN18UnkStruct_020397f88vfunc_70EPiS0_ kind:function(arm,size=0x3c) addr:0x0203bd88 +_ZN18UnkStruct_020397f88vfunc_6cEPiS0_ kind:function(arm,size=0x3c) addr:0x0203bd88 _ZN18UnkStruct_020397f813func_0203be08Ev kind:function(arm,size=0x5c) addr:0x0203bdc4 _ZN18UnkStruct_020397f813func_0203be64Ev kind:function(arm,size=0x220) addr:0x0203be20 _ZN18UnkStruct_020397f813func_0203c084Ev kind:function(arm,size=0xb8) addr:0x0203c040 @@ -1947,9 +1947,9 @@ _ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x48) addr:0x0203c284 _ZN18UnkStruct_020397f8D1Ev kind:function(arm,size=0x40) addr:0x0203c2cc _ZN18UnkStruct_020397f88vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203c30c _ZN13MsgProc_Type2C1Ev kind:function(thumb,size=0x44) addr:0x0203c314 -_ZN13MsgProc_Type28vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x78) addr:0x0203c358 -_ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c3d0 -_ZN13MsgProc_Type28vfunc_44Eii kind:function(arm,size=0x4c) addr:0x0203c41c +_ZN13MsgProc_Type28vfunc_4cEP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x78) addr:0x0203c358 +_ZN13MsgProc_Type28vfunc_3cEii kind:function(arm,size=0x4c) addr:0x0203c3d0 +_ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c41c _ZN13MsgProc_Type213func_0203c4acEii kind:function(arm,size=0x118) addr:0x0203c468 _ZN13MsgProc_Type28vfunc_14Eii kind:function(arm,size=0x18) addr:0x0203c580 _ZN13MsgProc_Type213func_0203c5dcEv kind:function(arm,size=0x120) addr:0x0203c598 @@ -1959,14 +1959,14 @@ _ZN13MsgProc_Type3C1Ev kind:function(arm,size=0x110) addr:0x0203c6e8 _ZN28UnkClass_func_ov000_020d0644D1Ev kind:function(arm,size=0x4) addr:0x0203c7f8 _ZN13MsgProc_Type3D1Ev kind:function(arm,size=0x30) addr:0x0203c7fc _ZN13MsgProc_Type3D0Ev kind:function(arm,size=0x38) addr:0x0203c82c -_ZN13MsgProc_Type38vfunc_40Eii kind:function(arm,size=0x58) addr:0x0203c864 -_ZN13MsgProc_Type38vfunc_44Eii kind:function(arm,size=0x4) addr:0x0203c8bc +_ZN13MsgProc_Type38vfunc_3cEii kind:function(arm,size=0x58) addr:0x0203c864 +_ZN13MsgProc_Type38vfunc_40Eii kind:function(arm,size=0x4) addr:0x0203c8bc func_0203c904 kind:function(arm,size=0x11c) addr:0x0203c8c0 func_0203ca20 kind:function(arm,size=0x9c) addr:0x0203c9dc func_0203cabc kind:function(arm,size=0x44) addr:0x0203ca78 _ZN13MsgProc_Type38vfunc_24EPPs kind:function(arm,size=0x5c) addr:0x0203cabc func_0203cb5c kind:function(arm,size=0x10c) addr:0x0203cb18 -_ZN13MsgProc_Type38vfunc_48Ev kind:function(arm,size=0xf4) addr:0x0203cc24 +_ZN13MsgProc_Type38vfunc_44Eii kind:function(arm,size=0xf4) addr:0x0203cc24 func_0203cd5c kind:function(arm,size=0x44) addr:0x0203cd18 func_0203cda0 kind:function(arm,size=0x20) addr:0x0203cd5c func_0203cdc0 kind:function(arm,size=0x4) addr:0x0203cd7c @@ -1998,7 +1998,7 @@ func_0203d2d8 kind:function(arm,size=0x24) addr:0x0203d294 func_0203d2fc kind:function(arm,size=0x4) addr:0x0203d2b8 func_0203d300 kind:function(arm,size=0x14) addr:0x0203d2bc func_0203d314 kind:function(arm,size=0x4) addr:0x0203d2d0 -_ZN18UnkStruct_02038aa013func_0203d318Ess kind:function(arm,size=0x40) addr:0x0203d2d4 +_ZN18UnkStruct_0203dae013func_0203d318Eii kind:function(arm,size=0x40) addr:0x0203d2d4 func_0203d358 kind:function(arm,size=0xa8) addr:0x0203d314 func_0203d400 kind:function(arm,size=0x48) addr:0x0203d3bc func_0203d448 kind:function(arm,size=0x1c) addr:0x0203d404 @@ -2027,14 +2027,14 @@ func_0203da20 kind:function(arm,size=0xc0) addr:0x0203d9dc _ZN18UnkStruct_0203dae0C1Eh kind:function(thumb,size=0x98) addr:0x0203da9c _ZN18UnkStruct_0203dae0D1Ev kind:function(thumb,size=0x30) addr:0x0203db34 _ZN18UnkStruct_0203dae0D0Ev kind:function(thumb,size=0x38) addr:0x0203db64 -_ZN18UnkStruct_0203dae0C2Ev kind:function(thumb,size=0x30) addr:0x0203db9c +_ZN18UnkStruct_0203dae0D2Ev kind:function(thumb,size=0x30) addr:0x0203db9c _ZN18UnkStruct_0203dae013func_0203dc10Ei kind:function(arm,size=0x64) addr:0x0203dbcc _ZN18UnkStruct_0203dae013func_0203dc74Eii kind:function(arm,size=0x40) addr:0x0203dc30 _ZN18UnkStruct_0203dae08vfunc_14Eii kind:function(arm,size=0x48) addr:0x0203dc70 _ZN18UnkStruct_0203dae013func_0203dcfcEhiii kind:function(arm,size=0xf0) addr:0x0203dcb8 _ZN18UnkStruct_0203dae013func_0203ddecEv kind:function(arm,size=0x10) addr:0x0203dda8 _ZN18UnkStruct_0203dae013func_0203ddfcEv kind:function(arm,size=0x18) addr:0x0203ddb8 -_ZN18UnkStruct_0203dae013func_0203de14Ev kind:function(arm,size=0x10) addr:0x0203ddd0 +_ZN18UnkStruct_0203dae013func_0203de14Ei kind:function(arm,size=0x10) addr:0x0203ddd0 _ZN18UnkStruct_0203dae013func_0203de24Ev kind:function(arm,size=0x34) addr:0x0203dde0 _ZN18UnkStruct_0203dae013func_0203de58Ei kind:function(arm,size=0x208) addr:0x0203de14 _ZN18UnkStruct_0203dae08vfunc_10Eji kind:function(arm,size=0x30) addr:0x0203e01c From 08791f415d1aa63dfca56194d8c4c5e139ef9c3a Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 18:31:58 +0200 Subject: [PATCH 24/36] vfunc sync + fix issues with MessageManager.cpp --- config/eur/arm9/symbols.txt | 12 +++++------ config/usa/arm9/symbols.txt | 12 +++++------ include/Unknown/UnkStruct_02032f0c.hpp | 2 +- include/Unknown/UnkStruct_02038aa0.hpp | 2 +- include/Unknown/UnkStruct_020397f8.hpp | 6 +++--- src/Main/Message/MessageManager.cpp | 27 +++++++++++++++++-------- src/Main/Message/func_0203c358.cpp | 6 +++--- src/Main/Unknown/UnkStruct_020397f8.cpp | 2 +- 8 files changed, 40 insertions(+), 29 deletions(-) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 779fc4e1..f78bb752 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1910,10 +1910,10 @@ _ZN18UnkStruct_02038aa08vfunc_38Ev kind:function(arm,size=0x8) addr:0x02039570 _ZN18UnkStruct_0203dae08vfunc_0cEiiii kind:function(arm,size=0x3c) addr:0x02039578 _ZN18UnkStruct_020397f8C2Ev kind:function(thumb,size=0x244) addr:0x020395b4 _ZN18UnkStruct_020397f8C1Ev kind:function(thumb,size=0x244) addr:0x020397f8 -_ZN18UnkStruct_020397f88vfunc_4cEP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x20) addr:0x02039a3c +_ZN18UnkStruct_020397f88vfunc_4cEv kind:function(thumb,size=0x20) addr:0x02039a3c _ZN18UnkStruct_020397f88vfunc_2cEv kind:function(arm,size=0x24c) addr:0x02039a5c _ZN18UnkStruct_020397f813func_02039ca8Ev kind:function(arm,size=0x24) addr:0x02039ca8 -_ZN18UnkStruct_020397f88vfunc_3cEii kind:function(arm,size=0xa8) addr:0x02039ccc +_ZN18UnkStruct_020397f88vfunc_3cEi kind:function(arm,size=0xa8) addr:0x02039ccc _ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0x414) addr:0x02039d74 _ZN18UnkStruct_020397f813func_0203a188Eii kind:function(arm,size=0x138) addr:0x0203a188 _ZN18UnkStruct_020397f813func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x0203a2c0 @@ -1923,9 +1923,9 @@ _ZN18UnkStruct_020397f813func_0203a35cEv kind:function(arm,size=0x84) addr:0x020 _ZN18UnkStruct_020397f813func_0203a3e0Ev kind:function(arm,size=0x1c) addr:0x0203a3e0 _ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x2d4) addr:0x0203a3fc _ZN18UnkStruct_020397f813func_0203a6d0Eii kind:function(arm,size=0x120) addr:0x0203a6d0 -_ZN18UnkStruct_020397f88vfunc_50Ev kind:function(arm,size=0x198) addr:0x0203a7f0 +_ZN18UnkStruct_020397f88vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(arm,size=0x198) addr:0x0203a7f0 _ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x520) addr:0x0203a988 -_ZN18UnkStruct_020397f88vfunc_5cEv kind:function(arm,size=0x74) addr:0x0203aea8 +_ZN18UnkStruct_020397f88vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0x74) addr:0x0203aea8 _ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x1a0) addr:0x0203af1c _ZN18UnkStruct_020397f813func_0203b0bcEv kind:function(arm,size=0x30) addr:0x0203b0bc _ZN18UnkStruct_020397f813func_0203b0ecEj kind:function(arm,size=0x178) addr:0x0203b0ec @@ -1947,8 +1947,8 @@ _ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x48) addr:0x0203c2c8 _ZN18UnkStruct_020397f8D1Ev kind:function(arm,size=0x40) addr:0x0203c310 _ZN18UnkStruct_020397f88vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203c350 _ZN13MsgProc_Type2C1Ev kind:function(thumb,size=0x44) addr:0x0203c358 -_ZN13MsgProc_Type28vfunc_4cEP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x78) addr:0x0203c39c -_ZN13MsgProc_Type28vfunc_3cEii kind:function(arm,size=0x4c) addr:0x0203c414 +_ZN13MsgProc_Type28vfunc_4cEv kind:function(thumb,size=0x78) addr:0x0203c39c +_ZN13MsgProc_Type28vfunc_3cEi kind:function(arm,size=0x4c) addr:0x0203c414 _ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c460 _ZN13MsgProc_Type213func_0203c4acEii kind:function(arm,size=0x118) addr:0x0203c4ac _ZN13MsgProc_Type28vfunc_14Eii kind:function(arm,size=0x18) addr:0x0203c5c4 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 563fb0ef..9cb3813b 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1910,10 +1910,10 @@ _ZN18UnkStruct_02038aa08vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203952c _ZN18UnkStruct_0203dae08vfunc_0cEiiii kind:function(arm,size=0x3c) addr:0x02039534 _ZN18UnkStruct_020397f8C2Ev kind:function(thumb,size=0x244) addr:0x02039570 _ZN18UnkStruct_020397f8C1Ev kind:function(thumb,size=0x244) addr:0x020397b4 -_ZN18UnkStruct_020397f88vfunc_4cEP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x20) addr:0x020399f8 +_ZN18UnkStruct_020397f88vfunc_4cEv kind:function(thumb,size=0x20) addr:0x020399f8 _ZN18UnkStruct_020397f88vfunc_2cEv kind:function(arm,size=0x24c) addr:0x02039a18 _ZN18UnkStruct_020397f813func_02039ca8Ev kind:function(arm,size=0x24) addr:0x02039c64 -_ZN18UnkStruct_020397f88vfunc_3cEii kind:function(arm,size=0xa8) addr:0x02039c88 +_ZN18UnkStruct_020397f88vfunc_3cEi kind:function(arm,size=0xa8) addr:0x02039c88 _ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0x414) addr:0x02039d30 _ZN18UnkStruct_020397f813func_0203a188Eii kind:function(arm,size=0x138) addr:0x0203a144 _ZN18UnkStruct_020397f813func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x0203a27c @@ -1923,9 +1923,9 @@ _ZN18UnkStruct_020397f813func_0203a35cEv kind:function(arm,size=0x84) addr:0x020 _ZN18UnkStruct_020397f813func_0203a3e0Ev kind:function(arm,size=0x1c) addr:0x0203a39c _ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x2d4) addr:0x0203a3b8 _ZN18UnkStruct_020397f813func_0203a6d0Eii kind:function(arm,size=0x120) addr:0x0203a68c -_ZN18UnkStruct_020397f88vfunc_50Ev kind:function(arm,size=0x198) addr:0x0203a7ac +_ZN18UnkStruct_020397f88vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(arm,size=0x198) addr:0x0203a7ac _ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x520) addr:0x0203a944 -_ZN18UnkStruct_020397f88vfunc_5cEv kind:function(arm,size=0x74) addr:0x0203ae64 +_ZN18UnkStruct_020397f88vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0x74) addr:0x0203ae64 _ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x1a0) addr:0x0203aed8 _ZN18UnkStruct_020397f813func_0203b0bcEv kind:function(arm,size=0x30) addr:0x0203b078 _ZN18UnkStruct_020397f813func_0203b0ecEj kind:function(arm,size=0x178) addr:0x0203b0a8 @@ -1947,8 +1947,8 @@ _ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x48) addr:0x0203c284 _ZN18UnkStruct_020397f8D1Ev kind:function(arm,size=0x40) addr:0x0203c2cc _ZN18UnkStruct_020397f88vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203c30c _ZN13MsgProc_Type2C1Ev kind:function(thumb,size=0x44) addr:0x0203c314 -_ZN13MsgProc_Type28vfunc_4cEP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(thumb,size=0x78) addr:0x0203c358 -_ZN13MsgProc_Type28vfunc_3cEii kind:function(arm,size=0x4c) addr:0x0203c3d0 +_ZN13MsgProc_Type28vfunc_4cEv kind:function(thumb,size=0x78) addr:0x0203c358 +_ZN13MsgProc_Type28vfunc_3cEi kind:function(arm,size=0x4c) addr:0x0203c3d0 _ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c41c _ZN13MsgProc_Type213func_0203c4acEii kind:function(arm,size=0x118) addr:0x0203c468 _ZN13MsgProc_Type28vfunc_14Eii kind:function(arm,size=0x18) addr:0x0203c580 diff --git a/include/Unknown/UnkStruct_02032f0c.hpp b/include/Unknown/UnkStruct_02032f0c.hpp index cf1ae492..320bb94c 100644 --- a/include/Unknown/UnkStruct_02032f0c.hpp +++ b/include/Unknown/UnkStruct_02032f0c.hpp @@ -92,7 +92,7 @@ class UnkStruct_02032f0c : public SysObject { /* 00 */ virtual ~UnkStruct_02032f0c(); /* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4); /* 0c */ virtual void vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4); - /* 10 */ virtual void vfunc_10(u32 param1, unk32 param2); + /* 10 */ virtual void vfunc_10(u32 param1, unk32); /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2); /* 18 */ virtual unk32 vfunc_18(s32 param1); /* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4); diff --git a/include/Unknown/UnkStruct_02038aa0.hpp b/include/Unknown/UnkStruct_02038aa0.hpp index 8f2d4e29..f83d1ab9 100644 --- a/include/Unknown/UnkStruct_02038aa0.hpp +++ b/include/Unknown/UnkStruct_02038aa0.hpp @@ -59,7 +59,7 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { /* 30 */ virtual void vfunc_30() override; /* 34 */ virtual unk32 vfunc_34(s32 param1); /* 38 */ virtual bool vfunc_38(); - /* 3c */ virtual void vfunc_3c(unk32 param_2, unk32 param_3) = 0; + /* 3c */ virtual void vfunc_3c(unk32 param_2) = 0; /* 40 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) = 0; /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); /* 48 */ virtual void vfunc_48(); diff --git a/include/Unknown/UnkStruct_020397f8.hpp b/include/Unknown/UnkStruct_020397f8.hpp index 4e2db6c6..609e2395 100644 --- a/include/Unknown/UnkStruct_020397f8.hpp +++ b/include/Unknown/UnkStruct_020397f8.hpp @@ -92,7 +92,7 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2) override; /* 2c */ virtual void vfunc_2c() override; /* 38 */ virtual bool vfunc_38() override; - /* 3c */ virtual void vfunc_3c(unk32 param_2, unk32 param_3) override; + /* 3c */ virtual void vfunc_3c(unk32 param_2) override; /* 40 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; /* 48 */ virtual void vfunc_48() override; @@ -149,7 +149,7 @@ class MsgProc_Type3 : public UnkStruct_02038aa0 { MsgProc_Type3(unk32 param_2, unk16 param_3, unk32 param_4); /* 00 */ virtual ~MsgProc_Type3(); /* 24 */ virtual bool vfunc_24(s16 **param1) override; - /* 40 */ virtual void vfunc_3c(unk32 param_2, unk32 param_3) override; + /* 40 */ virtual void vfunc_3c(unk32 param_2) override; /* 44 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; /* 48 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; @@ -174,7 +174,7 @@ class MsgProc_Type2 : public UnkStruct_02038aa0 { MsgProc_Type2(unk32 param_2, unk16 param_3, unk32 param_4); /* 00 */ virtual ~MsgProc_Type2(); /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2) override; - /* 40 */ virtual void vfunc_3c(unk32 param_2, unk32 param_3) override; + /* 40 */ virtual void vfunc_3c(unk32 param_2) override; /* 44 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; /* 50 */ virtual void vfunc_4c() override; diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 76d883a6..b2e2a7dd 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -21,10 +21,21 @@ extern UnkStruct_027e0ffc *data_027e0ffc; // non-matching ARM void MessageManager::func_0203643c(u32 *param_1, MessageManager *param_2, u32 param_3) { - BMGGroups *pBVar2 = param_2->pGroups; + // BMGGroups *pBVar2 = param_2->pGroups; + // BMGFileInfo* pEntries = &pBVar2->entries[param_3 >> 0x10]; + // EntryINF1* puVar1 = pEntries->func_02037258(param_3 & 0xFFFF); - *param_1 = ((u32) pBVar2->entries[param_3 >> 0x10].pDAT1 + - (pBVar2->entries[param_3 >> 0x10].func_02037258(param_3 & 0xFFFF)->offset & ~1)); + // *param_1 = *(u32 *)(pEntries->pDAT1) + (puVar1->stringOffset & ~1); + + // *param_1 = ((u32) pBVar2->entries[param_3 >> 0x10].pDAT1 + + // (pBVar2->entries[param_3 >> 0x10].func_02037258(param_3 & 0xFFFF)->stringOffset & ~1)); + + u32 *puVar1; + BMGGroups *piVar2; + + piVar2 = param_2->pGroups; + puVar1 = (u32 *) piVar2->entries[(param_3 >> 0x10) /* * 0x1c */].func_02037258(param_3 & 0xffff); + *param_1 = *(u32 *) (*(u32 *) &piVar2->entries[(param_3 >> 0x10) /* * 0x1c */].pDAT1) + (*puVar1 & 0xfffffffe); } // non-matching @@ -103,7 +114,7 @@ THUMB void MessageManager::func_02036490() { } if (this->mUnk_28[i] != NULL) { - this->mUnk_28[i]->vfunc_4C(); + this->mUnk_28[i]->vfunc_4c(); } } } @@ -288,7 +299,7 @@ ARM void MessageManager::func_0203690c(unk32 param_2, unk32 param_3, unk32 param for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { if (this->mUnk_28[i] != NULL) { - this->mUnk_28[i]->vfunc_2C(); + this->mUnk_28[i]->vfunc_2c(); } } @@ -370,7 +381,7 @@ ARM void MessageManager::func_02036ca4(unk32 param_2) { UnkStruct_02038aa0 *pSVar1 = this->mUnk_28[i]; if (pSVar1 != NULL) { - pSVar1->vfunc_3C(param_2); + pSVar1->vfunc_3c(param_2); } } } @@ -415,7 +426,7 @@ ARM void MessageManager::func_02036d6c(void) { for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { if (func_0202ab48() == 0 || i != 5) { - this->mUnk_28[i]->UnkStruct_02038aa0::vfunc_10(); + this->mUnk_28[i]->UnkStruct_02038aa0::func_02038b40(); } } } @@ -518,7 +529,7 @@ ARM UnkStruct_020397f8 *MessageManager::func_02036f68(u32 param_2, u8 *param_3) pSVar5->mUnk_164 = (UnkStruct_020397f8 *) pSVar2; pSVar5->mUnk_418 = this->mUnk_28[5]; - pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s32 *) param_3, 0); + pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s16 *) param_3, NULL); if (data_ov000_020eec9c.func_ov000_020d7f18(0x19) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x18) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x34) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x35) == 0 && diff --git a/src/Main/Message/func_0203c358.cpp b/src/Main/Message/func_0203c358.cpp index 321ef715..33af6bab 100644 --- a/src/Main/Message/func_0203c358.cpp +++ b/src/Main/Message/func_0203c358.cpp @@ -21,7 +21,7 @@ THUMB MsgProc_Type2::MsgProc_Type2() : } // non-matching -THUMB void MsgProc_Type2::vfunc_4c(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) { +THUMB void MsgProc_Type2::vfunc_4c() { u16 uVar1; unk32 uVar2; s16 uVar3; @@ -29,7 +29,7 @@ THUMB void MsgProc_Type2::vfunc_4c(EntryINF1 *param1, u32 param2, s16 *param3, U s32 local_20; s32 local_1c; - this->UnkStruct_02038aa0::vfunc_4c(param1, param2, param3, param4); + this->UnkStruct_02038aa0::vfunc_4c(); uVar3 = 0; for (iVar4 = 0; iVar4 < 2; iVar4++) { @@ -51,7 +51,7 @@ THUMB void MsgProc_Type2::vfunc_4c(EntryINF1 *param1, u32 param2, s16 *param3, U } } -ARM void MsgProc_Type2::vfunc_3c(unk32 param_2, unk32 param_3) { +ARM void MsgProc_Type2::vfunc_3c(unk32 param_2) { if (this->mUnk_15c > 0 && this->mUnk_122 != 1) { if (this->func_0203de14(param_2) != 0) { this->vfunc_40(0, 0); diff --git a/src/Main/Unknown/UnkStruct_020397f8.cpp b/src/Main/Unknown/UnkStruct_020397f8.cpp index b84e56ee..f8ccd90c 100644 --- a/src/Main/Unknown/UnkStruct_020397f8.cpp +++ b/src/Main/Unknown/UnkStruct_020397f8.cpp @@ -183,7 +183,7 @@ ARM void UnkStruct_020397f8::func_02039ca8() { } } -ARM void UnkStruct_020397f8::vfunc_3c(unk32 param_2, unk32 param_3) { +ARM void UnkStruct_020397f8::vfunc_3c(unk32 param_2) { if (this->mUnk_15c > 0 && this->func_0203de14(param_2) != 0) { if (this->mUnk_124->mUnk_29 != 3) { if ((this->mUnk_50 == 0) && func_ov000_02079e04() != 0) { From 9c753469222b99ae33e4a3c9376208b8817f698e Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 18:39:57 +0200 Subject: [PATCH 25/36] symbol fixes + fix vtable offsets --- config/eur/arm9/symbols.txt | 6 +++--- config/usa/arm9/symbols.txt | 6 +++--- include/Unknown/UnkStruct_020397f8.hpp | 12 ++++++------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index f78bb752..4a638ff8 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1871,7 +1871,7 @@ func_02038858 kind:function(arm,size=0x30) addr:0x02038858 func_02038888 kind:function(arm,size=0xc8) addr:0x02038888 func_02038950 kind:function(arm,size=0x130) addr:0x02038950 func_02038a80 kind:function(arm,size=0x1c) addr:0x02038a80 -func_02038a9c kind:function(thumb,size=0x2) addr:0x02038a9c +_ZN18UnkStruct_0203881c8vfunc_00Ev kind:function(thumb,size=0x2) addr:0x02038a9c _ZN18UnkStruct_02038aa0C2Ehh kind:function(thumb,size=0x5c) addr:0x02038aa0 _ZN18UnkStruct_02038aa0D1Ev kind:function(thumb,size=0xc) addr:0x02038afc _ZN18UnkStruct_02038aa0D0Ev kind:function(thumb,size=0x12) addr:0x02038b08 @@ -1918,7 +1918,7 @@ _ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0x414) addr:0x02039d7 _ZN18UnkStruct_020397f813func_0203a188Eii kind:function(arm,size=0x138) addr:0x0203a188 _ZN18UnkStruct_020397f813func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x0203a2c0 _ZN18UnkStruct_020397f813func_0203a30cEv kind:function(arm,size=0x1c) addr:0x0203a30c -_ZN18UnkStruct_020397f88vfunc_48Eji kind:function(arm,size=0x34) addr:0x0203a328 +_ZN18UnkStruct_020397f88vfunc_48Ev kind:function(arm,size=0x34) addr:0x0203a328 _ZN18UnkStruct_020397f813func_0203a35cEv kind:function(arm,size=0x84) addr:0x0203a35c _ZN18UnkStruct_020397f813func_0203a3e0Ev kind:function(arm,size=0x1c) addr:0x0203a3e0 _ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x2d4) addr:0x0203a3fc @@ -1959,7 +1959,7 @@ _ZN13MsgProc_Type3C1Ev kind:function(arm,size=0x110) addr:0x0203c72c _ZN28UnkClass_func_ov000_020d0644D1Ev kind:function(arm,size=0x4) addr:0x0203c83c _ZN13MsgProc_Type3D1Ev kind:function(arm,size=0x30) addr:0x0203c840 _ZN13MsgProc_Type3D0Ev kind:function(arm,size=0x38) addr:0x0203c870 -_ZN13MsgProc_Type38vfunc_3cEii kind:function(arm,size=0x58) addr:0x0203c8a8 +_ZN13MsgProc_Type38vfunc_3cEi kind:function(arm,size=0x58) addr:0x0203c8a8 _ZN13MsgProc_Type38vfunc_40Eii kind:function(arm,size=0x4) addr:0x0203c900 func_0203c904 kind:function(arm,size=0x11c) addr:0x0203c904 func_0203ca20 kind:function(arm,size=0x9c) addr:0x0203ca20 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 9cb3813b..25ef7ed5 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1871,7 +1871,7 @@ func_02038858 kind:function(arm,size=0x30) addr:0x02038814 func_02038888 kind:function(arm,size=0xc8) addr:0x02038844 func_02038950 kind:function(arm,size=0x130) addr:0x0203890c func_02038a80 kind:function(arm,size=0x1c) addr:0x02038a3c -func_02038a9c kind:function(thumb,size=0x2) addr:0x02038a58 +_ZN18UnkStruct_0203881c8vfunc_00Ev kind:function(thumb,size=0x2) addr:0x02038a58 _ZN18UnkStruct_02038aa0C2Ehh kind:function(thumb,size=0x5c) addr:0x02038a5c _ZN18UnkStruct_02038aa0D1Ev kind:function(thumb,size=0xc) addr:0x02038ab8 _ZN18UnkStruct_02038aa0D0Ev kind:function(thumb,size=0x12) addr:0x02038ac4 @@ -1918,7 +1918,7 @@ _ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0x414) addr:0x02039d3 _ZN18UnkStruct_020397f813func_0203a188Eii kind:function(arm,size=0x138) addr:0x0203a144 _ZN18UnkStruct_020397f813func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x0203a27c _ZN18UnkStruct_020397f813func_0203a30cEv kind:function(arm,size=0x1c) addr:0x0203a2c8 -_ZN18UnkStruct_020397f88vfunc_48Eji kind:function(arm,size=0x34) addr:0x0203a2e4 +_ZN18UnkStruct_020397f88vfunc_48Ev kind:function(arm,size=0x34) addr:0x0203a2e4 _ZN18UnkStruct_020397f813func_0203a35cEv kind:function(arm,size=0x84) addr:0x0203a318 _ZN18UnkStruct_020397f813func_0203a3e0Ev kind:function(arm,size=0x1c) addr:0x0203a39c _ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x2d4) addr:0x0203a3b8 @@ -1959,7 +1959,7 @@ _ZN13MsgProc_Type3C1Ev kind:function(arm,size=0x110) addr:0x0203c6e8 _ZN28UnkClass_func_ov000_020d0644D1Ev kind:function(arm,size=0x4) addr:0x0203c7f8 _ZN13MsgProc_Type3D1Ev kind:function(arm,size=0x30) addr:0x0203c7fc _ZN13MsgProc_Type3D0Ev kind:function(arm,size=0x38) addr:0x0203c82c -_ZN13MsgProc_Type38vfunc_3cEii kind:function(arm,size=0x58) addr:0x0203c864 +_ZN13MsgProc_Type38vfunc_3cEi kind:function(arm,size=0x58) addr:0x0203c864 _ZN13MsgProc_Type38vfunc_40Eii kind:function(arm,size=0x4) addr:0x0203c8bc func_0203c904 kind:function(arm,size=0x11c) addr:0x0203c8c0 func_0203ca20 kind:function(arm,size=0x9c) addr:0x0203c9dc diff --git a/include/Unknown/UnkStruct_020397f8.hpp b/include/Unknown/UnkStruct_020397f8.hpp index 609e2395..a3603a19 100644 --- a/include/Unknown/UnkStruct_020397f8.hpp +++ b/include/Unknown/UnkStruct_020397f8.hpp @@ -149,9 +149,9 @@ class MsgProc_Type3 : public UnkStruct_02038aa0 { MsgProc_Type3(unk32 param_2, unk16 param_3, unk32 param_4); /* 00 */ virtual ~MsgProc_Type3(); /* 24 */ virtual bool vfunc_24(s16 **param1) override; - /* 40 */ virtual void vfunc_3c(unk32 param_2) override; - /* 44 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; - /* 48 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; + /* 3c */ virtual void vfunc_3c(unk32 param_2) override; + /* 48 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; + /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; void func_0203cabc(unk32); unk32 func_0203cb5c(unk8, s16); @@ -174,9 +174,9 @@ class MsgProc_Type2 : public UnkStruct_02038aa0 { MsgProc_Type2(unk32 param_2, unk16 param_3, unk32 param_4); /* 00 */ virtual ~MsgProc_Type2(); /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2) override; - /* 40 */ virtual void vfunc_3c(unk32 param_2) override; - /* 44 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; - /* 50 */ virtual void vfunc_4c() override; + /* 3c */ virtual void vfunc_3c(unk32 param_2) override; + /* 40 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; + /* 4c */ virtual void vfunc_4c() override; void func_0203c4ac(unk32, unk32); void func_0203c5dc(void); From 25402783b634a6b0266d3e9b6f17a149a8eb5924 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 18:50:22 +0200 Subject: [PATCH 26/36] fix build issues on eur --- config/eur/arm9/delinks.txt | 2 +- src/Main/Unknown/UnkStruct_020397f8.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index 6f28e319..d411c68a 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -48,7 +48,7 @@ src/Main/Unknown/UnkStruct_02038aa0.cpp: src/Main/Unknown/UnkStruct_020397f8.cpp: .text start:0x020397f8 end:0x0203c358 - .data start:0x02057e54 end:0x02057ed0 + .data start:0x02057e14 end:0x02057ed0 src/Main/Message/func_0203c358.cpp: .text start:0x0203c358 end:0x0203c72c diff --git a/src/Main/Unknown/UnkStruct_020397f8.cpp b/src/Main/Unknown/UnkStruct_020397f8.cpp index f8ccd90c..67c3e973 100644 --- a/src/Main/Unknown/UnkStruct_020397f8.cpp +++ b/src/Main/Unknown/UnkStruct_020397f8.cpp @@ -14,6 +14,8 @@ extern "C" void func_ov018_02169634(UnkStruct_020397f8 *); extern unk16 data_02056a0e[]; extern u8 data_02056a08[]; +static char *sShipTypes[] = {"brg", "anc", "pdl", "hul", "can", "dco", "bow", "fnl"}; + // non-matching (regalloc) THUMB UnkStruct_020397f8::UnkStruct_020397f8() : UnkStruct_02038aa0(0, 0), From dba64df853e2dca003cdd8792e7c4f35186e9a71 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 18:52:38 +0200 Subject: [PATCH 27/36] accidental mistake --- include/Message/MsgProc.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/include/Message/MsgProc.hpp b/include/Message/MsgProc.hpp index 88bef93f..6d0a2fb7 100644 --- a/include/Message/MsgProc.hpp +++ b/include/Message/MsgProc.hpp @@ -97,7 +97,6 @@ extern UnkClass_027e0cbc data_027e0cbc; extern unk16 data_02056a10[]; extern unk16 data_02056a16[]; extern unk32 data_02056a04[8]; -extern unk32 data_027e0c38[]; extern "C" void func_0203489c(unk32, unk16, unk32 *, unk32 *); extern "C" void func_020347b0(unk32, unk16, unk32 *, unk32 *, unk32, unk32); extern THUMB unk32 func_0202ab48(void); From 0e15ae64d43948c4ed2a1e554efa2d73c3567fac Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sat, 19 Jul 2025 21:59:25 +0200 Subject: [PATCH 28/36] dsd fix thumb-nop --- config/eur/arm9/symbols.txt | 2 +- config/usa/arm9/symbols.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 97437777..cfbcf9a3 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1650,7 +1650,7 @@ _ZN18UnkStruct_02032e7cC1Ev kind:function(arm,size=0x48) addr:0x02032ec4 _ZN18UnkStruct_02032f0cC2Ev kind:function(thumb,size=0x78) addr:0x02032f0c _ZN18UnkStruct_02032f0cD1Ev kind:function(thumb,size=0x2) addr:0x02032f84 _ZN18UnkStruct_02032f0cD0Ev kind:function(thumb,size=0xc) addr:0x02032f88 -_ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x4) addr:0x02032f94 +_ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x2) addr:0x02032f94 _ZN18UnkStruct_02032f0c13func_02032f98EPt kind:function(arm,size=0xc) addr:0x02032f98 _ZN18UnkStruct_02032f0c13func_02032fa4Ev kind:function(arm,size=0x10) addr:0x02032fa4 _ZN18UnkStruct_02032f0c13func_02032fb4Ev kind:function(arm,size=0x18) addr:0x02032fb4 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 301b90bd..9e54625b 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1650,7 +1650,7 @@ _ZN18UnkStruct_02032e7cC1Ev kind:function(arm,size=0x48) addr:0x02032ec0 _ZN18UnkStruct_02032f0cC2Ev kind:function(thumb,size=0x78) addr:0x02032f08 _ZN18UnkStruct_02032f0cD1Ev kind:function(thumb,size=0x2) addr:0x02032f80 _ZN18UnkStruct_02032f0cD0Ev kind:function(thumb,size=0xc) addr:0x02032f84 -_ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x4) addr:0x02032f90 +_ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x2) addr:0x02032f90 _ZN18UnkStruct_02032f0c13func_02032f98EPt kind:function(arm,size=0xc) addr:0x02032f94 _ZN18UnkStruct_02032f0c13func_02032fa4Ev kind:function(arm,size=0x10) addr:0x02032fa0 _ZN18UnkStruct_02032f0c13func_02032fb4Ev kind:function(arm,size=0x18) addr:0x02032fb0 From 1c740953db3ce5d5f58fdd74dce397ac4fa7fca3 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Sun, 20 Jul 2025 01:11:38 +0200 Subject: [PATCH 29/36] progress on UnkStruct_02032f0c --- config/eur/arm9/symbols.txt | 10 +- config/usa/arm9/symbols.txt | 10 +- include/Message/MessageManager.hpp | 8 +- include/Message/MsgProc.hpp | 2 +- include/Unknown/UnkStruct_02032f0c.hpp | 18 ++-- include/Unknown/UnkStruct_020397f8.hpp | 2 +- include/Unknown/UnkStruct_0203dae0.hpp | 2 +- src/Main/Unknown/UnkStruct_02032f0c.cpp | 135 ++++++++++++++++++++---- src/Main/Unknown/UnkStruct_020397f8.cpp | 2 +- src/Main/Unknown/UnkStruct_0203dae0.cpp | 4 +- 10 files changed, 143 insertions(+), 50 deletions(-) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index cfbcf9a3..24328246 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1659,16 +1659,16 @@ _ZN18UnkStruct_02032f0c8vfunc_08EiiPsi kind:function(arm,size=0x160) addr:0x0203 _ZN18UnkStruct_02032f0c8vfunc_0cEiiii kind:function(arm,size=0x34) addr:0x02033190 _ZN18UnkStruct_02032f0c8vfunc_10Eji kind:function(arm,size=0x50) addr:0x020331c4 _ZN18UnkStruct_02032f0c13func_02033214Eiiihi kind:function(arm,size=0xd0) addr:0x02033214 -_ZN18UnkStruct_02032f0c8vfunc_18Ei kind:function(arm,size=0x7c) addr:0x020332e4 +_ZN18UnkStruct_02032f0c8vfunc_18EP18UnkStruct_02032e7cii kind:function(arm,size=0x7c) addr:0x020332e4 _ZN18UnkStruct_02032f0c8vfunc_1cEiPiii kind:function(arm,size=0x80) addr:0x02033360 _ZN18UnkStruct_02032f0c8vfunc_20EiPi kind:function(arm,size=0xd4) addr:0x020333e0 _ZN18UnkStruct_02032f0c13func_020334b4Ejiii kind:function(arm,size=0x174) addr:0x020334b4 -_ZN18UnkStruct_02032f0c13func_02033628EiPt kind:function(arm,size=0x74) addr:0x02033628 +_ZN18UnkStruct_02032f0c13func_02033628EP18UnkStruct_02032e7cPPti kind:function(arm,size=0x74) addr:0x02033628 _ZN18UnkStruct_02032f0c13func_0203369cEPti kind:function(arm,size=0xe4) addr:0x0203369c _ZN18UnkStruct_02032f0c13func_02033780Ei kind:function(arm,size=0x58) addr:0x02033780 _ZN18UnkStruct_02032f0c13func_020337d8Ei kind:function(arm,size=0x24) addr:0x020337d8 _ZN18UnkStruct_02032f0c13func_020337fcEPsi kind:function(arm,size=0xac) addr:0x020337fc -_ZN18UnkStruct_02032f0c13func_020338a8Eii kind:function(arm,size=0x28) addr:0x020338a8 +_ZN18UnkStruct_02032f0c13func_020338a8EP18UnkStruct_02032e7ci kind:function(arm,size=0x28) addr:0x020338a8 _ZN18UnkStruct_02032f0c13func_020338d0EPii kind:function(arm,size=0x34) addr:0x020338d0 _ZN18UnkStruct_02032f0c13func_02033904Eii kind:function(arm,size=0x34) addr:0x02033904 _ZN18UnkStruct_02032f0c13func_02033938Ei kind:function(arm,size=0x34) addr:0x02033938 @@ -1929,7 +1929,7 @@ _ZN18UnkStruct_020397f88vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,siz _ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x1a0) addr:0x0203af1c _ZN18UnkStruct_020397f813func_0203b0bcEv kind:function(arm,size=0x30) addr:0x0203b0bc _ZN18UnkStruct_020397f813func_0203b0ecEj kind:function(arm,size=0x178) addr:0x0203b0ec -_ZN18UnkStruct_020397f88vfunc_18Ei kind:function(arm,size=0xac) addr:0x0203b264 +_ZN18UnkStruct_020397f88vfunc_18EP18UnkStruct_02032e7cii kind:function(arm,size=0xac) addr:0x0203b264 _ZN18UnkStruct_020397f88vfunc_1cEiPiii kind:function(arm,size=0x100) addr:0x0203b310 _ZN18UnkStruct_020397f88vfunc_60EP20func_0203b410_param1ii kind:function(arm,size=0x1c0) addr:0x0203b410 _ZN18UnkStruct_020397f88vfunc_64Ei kind:function(arm,size=0x194) addr:0x0203b5d0 @@ -2043,7 +2043,7 @@ _ZN18UnkStruct_0203dae08vfunc_28Ev kind:function(arm,size=0x30) addr:0x0203e0c8 _ZN18UnkStruct_0203dae013func_0203e0f8Ev kind:function(arm,size=0xa4) addr:0x0203e0f8 _ZN18UnkStruct_0203dae08vfunc_2cEv kind:function(arm,size=0x14) addr:0x0203e19c _ZN18UnkStruct_0203dae013func_0203e1b0Eiii kind:function(arm,size=0xd4) addr:0x0203e1b0 -_ZN18UnkStruct_0203dae08vfunc_18Ei kind:function(arm,size=0x28) addr:0x0203e284 +_ZN18UnkStruct_0203dae08vfunc_18EP18UnkStruct_02032e7cii kind:function(arm,size=0x28) addr:0x0203e284 _ZN18UnkStruct_0203dae08vfunc_08EiiPsi kind:function(arm,size=0x3c) addr:0x0203e2ac _ZN18UnkStruct_0203dae013func_0203e2e8Eiiij kind:function(arm,size=0x228) addr:0x0203e2e8 _ZN18UnkStruct_0203dae013func_0203e510EPiii kind:function(arm,size=0x11c) addr:0x0203e510 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 9e54625b..5e3de2a6 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1659,16 +1659,16 @@ _ZN18UnkStruct_02032f0c8vfunc_08EiiPsi kind:function(arm,size=0x160) addr:0x0203 _ZN18UnkStruct_02032f0c8vfunc_0cEiiii kind:function(arm,size=0x34) addr:0x0203318c _ZN18UnkStruct_02032f0c8vfunc_10Eji kind:function(arm,size=0x50) addr:0x020331c0 _ZN18UnkStruct_02032f0c13func_02033214Eiiihi kind:function(arm,size=0xd0) addr:0x02033210 -_ZN18UnkStruct_02032f0c8vfunc_18Ei kind:function(arm,size=0x7c) addr:0x020332e0 +_ZN18UnkStruct_02032f0c8vfunc_18EP18UnkStruct_02032e7cii kind:function(arm,size=0x7c) addr:0x020332e0 _ZN18UnkStruct_02032f0c8vfunc_1cEiPiii kind:function(arm,size=0x80) addr:0x0203335c _ZN18UnkStruct_02032f0c8vfunc_20EiPi kind:function(arm,size=0xa8) addr:0x020333dc _ZN18UnkStruct_02032f0c13func_020334b4Ejiii kind:function(arm,size=0x160) addr:0x02033484 -_ZN18UnkStruct_02032f0c13func_02033628EiPt kind:function(arm,size=0x74) addr:0x020335e4 +_ZN18UnkStruct_02032f0c13func_02033628EP18UnkStruct_02032e7cPPti kind:function(arm,size=0x74) addr:0x020335e4 _ZN18UnkStruct_02032f0c13func_0203369cEPti kind:function(arm,size=0xe4) addr:0x02033658 _ZN18UnkStruct_02032f0c13func_02033780Ei kind:function(arm,size=0x58) addr:0x0203373c _ZN18UnkStruct_02032f0c13func_020337d8Ei kind:function(arm,size=0x24) addr:0x02033794 _ZN18UnkStruct_02032f0c13func_020337fcEPsi kind:function(arm,size=0xac) addr:0x020337b8 -_ZN18UnkStruct_02032f0c13func_020338a8Eii kind:function(arm,size=0x28) addr:0x02033864 +_ZN18UnkStruct_02032f0c13func_020338a8EP18UnkStruct_02032e7ci kind:function(arm,size=0x28) addr:0x02033864 _ZN18UnkStruct_02032f0c13func_020338d0EPii kind:function(arm,size=0x34) addr:0x0203388c _ZN18UnkStruct_02032f0c13func_02033904Eii kind:function(arm,size=0x34) addr:0x020338c0 _ZN18UnkStruct_02032f0c13func_02033938Ei kind:function(arm,size=0x34) addr:0x020338f4 @@ -1929,7 +1929,7 @@ _ZN18UnkStruct_020397f88vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,siz _ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x1a0) addr:0x0203aed8 _ZN18UnkStruct_020397f813func_0203b0bcEv kind:function(arm,size=0x30) addr:0x0203b078 _ZN18UnkStruct_020397f813func_0203b0ecEj kind:function(arm,size=0x178) addr:0x0203b0a8 -_ZN18UnkStruct_020397f88vfunc_18Ei kind:function(arm,size=0xac) addr:0x0203b220 +_ZN18UnkStruct_020397f88vfunc_18EP18UnkStruct_02032e7cii kind:function(arm,size=0xac) addr:0x0203b220 _ZN18UnkStruct_020397f88vfunc_1cEiPiii kind:function(arm,size=0x100) addr:0x0203b2cc _ZN18UnkStruct_020397f88vfunc_60EP20func_0203b410_param1ii kind:function(arm,size=0x1c0) addr:0x0203b3cc _ZN18UnkStruct_020397f88vfunc_64Ei kind:function(arm,size=0x194) addr:0x0203b58c @@ -2043,7 +2043,7 @@ _ZN18UnkStruct_0203dae08vfunc_28Ev kind:function(arm,size=0x30) addr:0x0203e084 _ZN18UnkStruct_0203dae013func_0203e0f8Ev kind:function(arm,size=0xa4) addr:0x0203e0b4 _ZN18UnkStruct_0203dae08vfunc_2cEv kind:function(arm,size=0x14) addr:0x0203e158 _ZN18UnkStruct_0203dae013func_0203e1b0Eiii kind:function(arm,size=0xd4) addr:0x0203e16c -_ZN18UnkStruct_0203dae08vfunc_18Ei kind:function(arm,size=0x28) addr:0x0203e240 +_ZN18UnkStruct_0203dae08vfunc_18EP18UnkStruct_02032e7cii kind:function(arm,size=0x28) addr:0x0203e240 _ZN18UnkStruct_0203dae08vfunc_08EiiPsi kind:function(arm,size=0x3c) addr:0x0203e268 _ZN18UnkStruct_0203dae013func_0203e2e8Eiiij kind:function(arm,size=0x228) addr:0x0203e2a4 _ZN18UnkStruct_0203dae013func_0203e510EPiii kind:function(arm,size=0x11c) addr:0x0203e4cc diff --git a/include/Message/MessageManager.hpp b/include/Message/MessageManager.hpp index d7cbc98e..62ea512d 100644 --- a/include/Message/MessageManager.hpp +++ b/include/Message/MessageManager.hpp @@ -26,11 +26,11 @@ class MessageManager : public SysObject { /* 0x05 */ u8 mUnk_05; /* 0x06 */ unk16 mUnk_06; /* 0x08 */ UnkStruct_020397f8 *mUnk_08; - /* 0x0C */ u8 mUnk_0c; - /* 0x0C */ u8 mUnk_0d; - /* 0x0C */ unk16 mUnk_0e; + /* 0x0c */ u8 mUnk_0c; + /* 0x0d */ u8 mUnk_0d; + /* 0x0e */ unk16 mUnk_0e; /* 0x10 */ unk16 mUnk_10; - /* 0x10 */ unk16 mUnk_12; + /* 0x12 */ unk16 mUnk_12; /* 0x14 */ BMGGroups *pGroups; /* 0x18 */ UnkStruct_020386d8 *mUnk_18[2]; /* 0x20 */ UnkStruct_02037750 *mUnk_20[2]; diff --git a/include/Message/MsgProc.hpp b/include/Message/MsgProc.hpp index 6d0a2fb7..74e46ae0 100644 --- a/include/Message/MsgProc.hpp +++ b/include/Message/MsgProc.hpp @@ -99,7 +99,7 @@ extern unk16 data_02056a16[]; extern unk32 data_02056a04[8]; extern "C" void func_0203489c(unk32, unk16, unk32 *, unk32 *); extern "C" void func_020347b0(unk32, unk16, unk32 *, unk32 *, unk32, unk32); -extern THUMB unk32 func_0202ab48(void); +extern "C" unk32 func_0202ab48(void); extern "C" void func_02034984(unk32, u8, unk32, unk32); extern "C" void func_02034698(unk32, unk32, unk32 *, unk32 *); extern struct TouchControl gTouchControl; diff --git a/include/Unknown/UnkStruct_02032f0c.hpp b/include/Unknown/UnkStruct_02032f0c.hpp index 320bb94c..926bdf0b 100644 --- a/include/Unknown/UnkStruct_02032f0c.hpp +++ b/include/Unknown/UnkStruct_02032f0c.hpp @@ -5,6 +5,7 @@ #include "Message/BMG.hpp" #include "System/SysNew.hpp" +#include "Unknown/UnkStruct_02032e7c.hpp" class UnkSubClass1_02256FF8 { public: @@ -39,8 +40,7 @@ class UnkSubClass1_02256FF8 { struct UnkStruct_MsgProc_Base_unk_2C { /* 00 */ s8 mUnk_00; /* 01 */ s8 mUnk_01; - /* 02 */ s8 mUnk_02; - /* 03 */ s8 mUnk_03; + /* 02 */ u16 mUnk_02; /* 04 */ unk32 mUnk_04; /* 08 */ u8 *mUnk_08; /* 0c */ @@ -64,8 +64,8 @@ class UnkStruct_02032f0c : public SysObject { /* 08 */ UnkSubClass1_02256FF8 *mUnk_08; /* 0c */ u16 *mUnk_0c; /* 10 */ unk32 *mUnk_10; - /* 14 */ s32 mUnk_14; - /* 18 */ s32 mUnk_18; + /* 14 */ s32 mUnk_14; // some width? + /* 18 */ s32 mUnk_18; // some height? /* 1c */ unk32 mUnk_1c; /* 20 */ unk32 mUnk_20; /* 24 */ unk32 *mUnk_24; @@ -82,7 +82,7 @@ class UnkStruct_02032f0c : public SysObject { /* 49 */ u8 mUnk_49; /* 4a */ u16 mUnk_4a; /* 4c */ u8 mUnk_4c; - /* 4d */ bool mUnk_4d; + /* 4d */ u8 mUnk_4d; /* 4e */ u8 mUnk_4e; /* 4f */ u8 mUnk_4f; /* 50 */ u8 mUnk_50; @@ -94,7 +94,7 @@ class UnkStruct_02032f0c : public SysObject { /* 0c */ virtual void vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4); /* 10 */ virtual void vfunc_10(u32 param1, unk32); /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2); - /* 18 */ virtual unk32 vfunc_18(s32 param1); + /* 18 */ virtual unk32 vfunc_18(UnkStruct_02032e7c *param1, unk32 param2, unk32 param3); /* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4); /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2); /* 24 */ virtual bool vfunc_24(s16 **param1); @@ -104,14 +104,14 @@ class UnkStruct_02032f0c : public SysObject { u16 **func_02032f98(u16 *value); u8 func_02032fa4(); s32 func_02032fb4(); - void func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5); + void func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, UnkSubClass1_02256FF8 *param5); void func_020334b4(u32 param1, s32 param2, s32 param3, s32 param4); - void func_02033628(unk32 param1, u16 *param2); + unk32 func_02033628(UnkStruct_02032e7c *param1, u16 **param2, unk32 param3); u32 func_0203369c(u16 *param1, s32 param2); void func_02033780(s32 param1); s32 func_020337d8(s32 param1); s32 func_020337fc(s16 *param1, s32 param2); - void func_020338a8(s32 param1, unk32 param2); + void func_020338a8(UnkStruct_02032e7c *param1, unk32 param2); void func_020338d0(unk32 *param1, unk32 param2); s32 func_02033904(unk32 param1, unk32 param2); s32 func_02033938(unk32 param1); diff --git a/include/Unknown/UnkStruct_020397f8.hpp b/include/Unknown/UnkStruct_020397f8.hpp index a3603a19..7e782ab5 100644 --- a/include/Unknown/UnkStruct_020397f8.hpp +++ b/include/Unknown/UnkStruct_020397f8.hpp @@ -87,7 +87,7 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { /* 5b4 */ /* 00 */ virtual ~UnkStruct_020397f8(); - /* 18 */ virtual unk32 vfunc_18(s32 param1) override; + /* 18 */ virtual unk32 vfunc_18(UnkStruct_02032e7c *param1, unk32 param2, unk32 param3) override; /* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) override; /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2) override; /* 2c */ virtual void vfunc_2c() override; diff --git a/include/Unknown/UnkStruct_0203dae0.hpp b/include/Unknown/UnkStruct_0203dae0.hpp index 4dcd3fd0..0d29634e 100644 --- a/include/Unknown/UnkStruct_0203dae0.hpp +++ b/include/Unknown/UnkStruct_0203dae0.hpp @@ -82,7 +82,7 @@ class UnkStruct_0203dae0 : public UnkStruct_02032f0c { /* 0c */ virtual void vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) override; /* 10 */ virtual void vfunc_10(u32 param1, unk32 param2) override; /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2) override; - /* 18 */ virtual unk32 vfunc_18(s32 param1) override; + /* 18 */ virtual unk32 vfunc_18(UnkStruct_02032e7c *param1, unk32 param2, unk32 param3) override; /* 28 */ virtual bool vfunc_28(); /* 2c */ virtual void vfunc_2c(); /* 30 */ virtual void vfunc_30(); diff --git a/src/Main/Unknown/UnkStruct_02032f0c.cpp b/src/Main/Unknown/UnkStruct_02032f0c.cpp index 33871be8..bc9e269b 100644 --- a/src/Main/Unknown/UnkStruct_02032f0c.cpp +++ b/src/Main/Unknown/UnkStruct_02032f0c.cpp @@ -1,11 +1,12 @@ #include "Unknown/UnkStruct_02032f0c.hpp" +#include "Message/MessageManager.hpp" #include "Unknown/UnkStruct_02032e7c.hpp" #include "Unknown/UnkStruct_02035064.hpp" -extern "C" void Fill32(unk32, void *, unk32); -extern "C" void Fill16(unk32, void *, unk32); extern "C" void func_020296e0(unk32 **, UnkStruct_MsgProc_Base_unk_2C **, unk32, unk32, unk32, unk32); -extern "C" unk32 func_0202ab48(void); +extern "C" void func_02027ca0(unk32 **, s32, unk32, unk32); +extern "C" unk32 func_02023ea4(UnkStruct_MsgProc_Base_unk_2C **, u16); +extern "C" unk32 func_02023eec(UnkStruct_MsgProc_Base_unk_2C **, unk32); //! TODO: move? // ARM UnkStruct_02032e7c::UnkStruct_02032e7c() { @@ -35,9 +36,9 @@ THUMB UnkStruct_02032f0c::UnkStruct_02032f0c() { this->mUnk_4f = 0; this->mUnk_50 = 0; this->mUnk_51 = 0; - Fill32(0, &this->mUnk_10, 0x18); - Fill32(0, &this->mUnk_28, 0x10); - Fill16(0, &this->mUnk_3e, 0xC); + Fill32(0, (u32 *) &this->mUnk_10, 0x18); + Fill32(0, (u32 *) &this->mUnk_28, 0x10); + Fill16(0, (u16 *) &this->mUnk_3e, 0xC); this->mUnk_10 = NULL; this->mUnk_2c = NULL; this->mUnk_30 = 2; @@ -60,33 +61,125 @@ ARM s32 UnkStruct_02032f0c::func_02032fb4() { } // non-matching -bool UnkStruct_02032f0c::vfunc_14(s32 param1, s32 param2) { +ARM bool UnkStruct_02032f0c::vfunc_14(s32 param1, s32 param2) { s16 iVar1; s16 iVar2; - iVar1 = ((param1 + 0x7 + ((param1 + 0x7) >> 0x1D))) * 0x8; - iVar2 = ((param2 + 0x7 + ((param2 + 0x7) >> 0x1D))) * 0x8; + // alignment? + iVar1 = ((param1 + 7 + ((u32) ((param1 + 7) >> 2) >> 0x1d)) >> 3) * 8; + iVar2 = ((param2 + 7 + ((u32) ((param2 + 7) >> 2) >> 0x1d)) >> 3) * 8; this->mUnk_4a = param1; this->mUnk_4c = param2; - this->mUnk_14 = (iVar1 + (iVar1 >> 0x1D)) * 0x2000 >> 0x10; - this->mUnk_18 = (iVar2 + (iVar2 >> 0x1D)) * 0x2000 >> 0x10; + this->mUnk_14 = (iVar1 + ((u32) (iVar1 >> 2) >> 0x1d)) * 0x2000 >> 0x10; + this->mUnk_18 = (iVar2 + ((u32) (iVar2 >> 2) >> 0x1d)) * 0x2000 >> 0x10; return true; } -void UnkStruct_02032f0c::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {} +// non-matching +ARM void UnkStruct_02032f0c::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) { + this->mUnk_51 = 1; + + if ((this->mUnk_4d - 1u) <= 1) { + param1 = (((param1 + (this->mUnk_4a >> 1)) - this->func_02033cbc(param3) / 2) * 0x10000) >> 16; + } + + if (this->mUnk_4e == 0) { + func_02027ca0(&this->mUnk_28, param1, param2, param4); + return; + } + + if (this->mUnk_4e != 1) { + return; + } + + u8 bVar1 = this->mUnk_4f; + s32 iVar2 = 0; + + if (*param3 == 0) { + return; + } + + while (param3[iVar2] != 0) { + UnkStruct_MsgProc_Base_unk_2C **ppiVar5 = this->mUnk_2c; + unk32 uVar3 = func_02023ea4(ppiVar5, param3[iVar2]); + + if (uVar3 == 0xFFFF) { + uVar3 = (*ppiVar5)->mUnk_02; + } + + unk32 iVar4 = func_02023eec(ppiVar5, uVar3); + + this->vfunc_0c( + (((this->mUnk_4f * iVar2 + (((param1 + (bVar1 >> 1)) * 0x10000) >> 16)) - (int) *(char *) (iVar4 + 2) / 2) * + 0x10000) >> + 16, + param2, param3[iVar2], iVar2); + + iVar2++; + } +} -void UnkStruct_02032f0c::vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) { +ARM void UnkStruct_02032f0c::vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) { func_020296e0(&this->mUnk_10, this->mUnk_2c, param1, param2, param4, param3); } -void UnkStruct_02032f0c::vfunc_10(u32 param1, unk32 param2) {} -ARM void UnkStruct_02032f0c::func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5) {} -unk32 UnkStruct_02032f0c::vfunc_18(s32 param1) {} -unk32 UnkStruct_02032f0c::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {} -unk32 UnkStruct_02032f0c::vfunc_20(s32 param1, s32 *param2) {} +ARM void UnkStruct_02032f0c::vfunc_10(u32 param1, unk32 param2) { + if ((s32) param1 < 0) { + param1 = -param1; + } + + u32 uVar1 = param1 & 0x0F; + Fill256((uVar1 << 28) | (uVar1 << 24) | (uVar1 << 20) | (uVar1 << 16) | (uVar1 << 12) | (uVar1 << 8) | (uVar1 << 4) | + (uVar1 << 0), + this->mUnk_10, ((u32) (this->mUnk_14 * this->mUnk_18) * 0x200000) >> 16); +} + +// non-matching +ARM void UnkStruct_02032f0c::func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, + UnkSubClass1_02256FF8 *param5) { + this->mUnk_51 = 1; + this->mUnk_08 = param5; + + unk32 uStack_20 = param3; + u16 local_38; + UnkStruct_02032e7c UStack_34; + MessageManager::func_0203643c((u32 *) &local_38, &gMessageManager, param1); + UStack_34.mUnk_04 = &local_38; + UStack_34.mUnk_10 = this->mUnk_4d; + this->func_020338a8(&UStack_34, -1); + UStack_34.mUnk_0e = param4; + + u16 *puVar1 = UStack_34.mUnk_04; + while (puVar1 != NULL && puVar1[0] != 0 && !this->func_02033c6c()) { + this->vfunc_18(&UStack_34, param2, param3); + // puVar1++; + + // if (*puVar1 != '\0') { + // puVar1 = UStack_34.mUnk_04++; + // } + } +} + +// non-matching +ARM unk32 UnkStruct_02032f0c::vfunc_18(UnkStruct_02032e7c *param1, unk32 param2, unk32 param3) { + u16 *puVar3; + + if (this->func_02033c6c()) { + return this->func_02033628(param1, &this->mUnk_0c, param3); + } + + if ((param1->mUnk_04 == NULL || param1->mUnk_04[0] == 0) ? 1 : 0) { + return 1; + } + + return this->func_02033628(param1, ¶m1->mUnk_04, param3); +} + +ARM unk32 UnkStruct_02032f0c::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {} +ARM unk32 UnkStruct_02032f0c::vfunc_20(s32 param1, s32 *param2) {} ARM void UnkStruct_02032f0c::func_020334b4(u32 param1, s32 param2, s32 param3, s32 param4) {} -ARM void UnkStruct_02032f0c::func_02033628(unk32 param1, u16 *param2) {} +ARM unk32 UnkStruct_02032f0c::func_02033628(UnkStruct_02032e7c *param1, u16 **param2, unk32 param3) {} ARM u32 UnkStruct_02032f0c::func_0203369c(u16 *param1, s32 param2) {} ARM void UnkStruct_02032f0c::func_02033780(s32 param1) {} @@ -95,12 +188,12 @@ ARM s32 UnkStruct_02032f0c::func_020337d8(s32 param1) { } ARM s32 UnkStruct_02032f0c::func_020337fc(s16 *param1, s32 param2) {} -ARM void UnkStruct_02032f0c::func_020338a8(s32 param1, unk32 param2) {} +ARM void UnkStruct_02032f0c::func_020338a8(UnkStruct_02032e7c *param1, unk32 param2) {} ARM void UnkStruct_02032f0c::func_020338d0(unk32 *param1, unk32 param2) {} ARM s32 UnkStruct_02032f0c::func_02033904(unk32 param1, unk32 param2) {} ARM s32 UnkStruct_02032f0c::func_02033938(unk32 param1) {} ARM s32 UnkStruct_02032f0c::func_0203396c(u16 *param1) {} -bool UnkStruct_02032f0c::vfunc_24(s16 **param1) {} +ARM bool UnkStruct_02032f0c::vfunc_24(s16 **param1) {} ARM u16 *UnkStruct_02032f0c::func_02033b0c(s32 param1) {} ARM bool UnkStruct_02032f0c::func_02033c6c() {} ARM unk32 UnkStruct_02032f0c::func_02033c88(u32 param1) {} diff --git a/src/Main/Unknown/UnkStruct_020397f8.cpp b/src/Main/Unknown/UnkStruct_020397f8.cpp index c8a3070e..7f169ac7 100644 --- a/src/Main/Unknown/UnkStruct_020397f8.cpp +++ b/src/Main/Unknown/UnkStruct_020397f8.cpp @@ -713,7 +713,7 @@ ARM s32 UnkStruct_020397f8::func_0203b0ec(u32 param1) { } // non-matching -ARM unk32 UnkStruct_020397f8::vfunc_18(s32 param1) { +ARM unk32 UnkStruct_020397f8::vfunc_18(UnkStruct_02032e7c *param1, unk32 param2, unk32 param3) { u16 sVar1; u32 uVar4; s32 unaff_r4; diff --git a/src/Main/Unknown/UnkStruct_0203dae0.cpp b/src/Main/Unknown/UnkStruct_0203dae0.cpp index 762332ea..636557d7 100644 --- a/src/Main/Unknown/UnkStruct_0203dae0.cpp +++ b/src/Main/Unknown/UnkStruct_0203dae0.cpp @@ -157,10 +157,10 @@ ARM void UnkStruct_0203dae0::vfunc_2c() { ARM bool UnkStruct_0203dae0::func_0203e1b0(unk32 param1, unk32 param2, s32 param3) {} -ARM unk32 UnkStruct_0203dae0::vfunc_18(s32 param1) { +ARM unk32 UnkStruct_0203dae0::vfunc_18(UnkStruct_02032e7c *param1, unk32 param2, unk32 param3) { unk32 iVar1; - iVar1 = this->UnkStruct_02032f0c::vfunc_18(param1); + iVar1 = this->UnkStruct_02032f0c::vfunc_18(param1, param2, param3); if (iVar1 != 0) { this->func_0203dc10(1); From 372acdab5d01c834ad86736bb721bb8f8b8ba6a6 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 00:35:14 +0200 Subject: [PATCH 30/36] remove SectionDAT1 --- include/Message/BMG.hpp | 17 +---------------- src/Main/Message/BMG.cpp | 3 +-- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/include/Message/BMG.hpp b/include/Message/BMG.hpp index 80a5f320..48a1cafc 100644 --- a/include/Message/BMG.hpp +++ b/include/Message/BMG.hpp @@ -5,10 +5,6 @@ #include "types.h" #define BMG_MAGIC "MESGbmg1" -#define BMG_GET_INF1(pGroups, flags) ((pGroups)->entries[(flags) >> 0x10].func_02037258((flags) & 0xFFFF)) -#define BMG_GET_MSG_OFFSET(pGroups, flags) (BMG_GET_INF1((pGroups), (flags))->stringOffset) -#define BMG_GET_MSG_ADDR(pGroups, flags) \ - ((u32) (pGroups)->entries[(flags) >> 0x10].pDAT1 + (BMG_GET_MSG_OFFSET((pGroups), (flags)) & ~1)) enum BMGTag { /* "INF1" */ BMG_TAG_INF1 = '1FNI', @@ -179,23 +175,12 @@ struct SectionFLI1 { /* 14 */ }; -struct EntryDAT1 { - /* 00 */ char *text; // always null-terminated - /* 04 */ -}; - -struct SectionDAT1 { - /* 00 */ SectionBase base; - /* 08 */ EntryDAT1 *entries; - /* 0c */ -}; - struct BMGFileInfo { /* 00 */ BMGHeader *pHeader; // pointer to the file's header /* 04 */ SectionINF1 *pINF1; // pointer to the data informations (INF -> informations) /* 08 */ SectionFLW1 *pFLW1; // pointer to the message flow data (FLW -> flow) /* 0c */ SectionFLI1 *pFLI1; // pointer to the message flow index table (FLI -> flow index table) - /* 10 */ SectionDAT1 *pDAT1; // pointer to the data (DAT -> data) + /* 10 */ char *pDAT1; // pointer to the data, unlike the others this one points directly to the strings /* 14 */ u32 *pFile; /* 18 */ s16 mUnk_18; // stores `func_020372f0`->param_3 value (currently undetermined purpose) /* 1a */ s16 groupId; // stores the group id diff --git a/src/Main/Message/BMG.cpp b/src/Main/Message/BMG.cpp index 8f3b59ef..4ac1a44b 100644 --- a/src/Main/Message/BMG.cpp +++ b/src/Main/Message/BMG.cpp @@ -83,8 +83,7 @@ THUMB u16 BMGFileInfo::func_020371c8(u32 *pFile, s16 unk_18) { groupId = this->pINF1->groupId; break; case BMG_TAG_DAT1: - //! TODO: fake? - this->pDAT1 = (SectionDAT1 *) (pSection + 1); + this->pDAT1 = (char *) (pSection + 1); break; case BMG_TAG_FLW1: this->pFLW1 = (SectionFLW1 *) pSection; From d041854aa8affed85115f9fee13ba0ab618667c4 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 00:35:58 +0200 Subject: [PATCH 31/36] match func_0203643c and random progress --- config/eur/arm9/symbols.txt | 2 +- config/usa/arm9/symbols.txt | 2 +- include/Message/MessageManager.hpp | 16 ++++- include/Unknown/UnkStruct_02032f0c.hpp | 9 +++ include/Unknown/UnkStruct_02038aa0.hpp | 2 +- include/Unknown/UnkStruct_020397f8.hpp | 2 +- src/Main/Message/MessageManager.cpp | 91 +++++++++++-------------- src/Main/Unknown/UnkStruct_02032f0c.cpp | 6 +- src/Main/Unknown/UnkStruct_02038aa0.cpp | 2 +- src/Main/Unknown/UnkStruct_020397f8.cpp | 2 +- 10 files changed, 71 insertions(+), 63 deletions(-) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 24328246..93ac0ec0 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1789,7 +1789,7 @@ _ZN18UnkStruct_027e0c5413func_020361d0Ev kind:function(arm,size=0x70) addr:0x020 func_02036240 kind:function(arm,size=0x170) addr:0x02036240 _ZN18UnkStruct_027e0c5413func_020363b0Ev kind:function(arm,size=0x18) addr:0x020363b0 func_020363c8 kind:function(arm,size=0x74) addr:0x020363c8 -_ZN14MessageManager13func_0203643cEPiPS_j kind:function(arm,size=0x54) addr:0x0203643c +_ZN14MessageManager13func_0203643cEPPtPS_j kind:function(arm,size=0x54) addr:0x0203643c _ZN14MessageManager13func_02036490Ev kind:function(thumb,size=0x1cc) addr:0x02036490 _ZN14MessageManager13func_0203665cEv kind:function(thumb,size=0x4a) addr:0x0203665c func_020366a8 kind:function(arm,size=0x1c) addr:0x020366a8 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 5e3de2a6..b5158d11 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1789,7 +1789,7 @@ _ZN18UnkStruct_027e0c5413func_020361d0Ev kind:function(arm,size=0x70) addr:0x020 func_02036240 kind:function(arm,size=0x170) addr:0x020361fc _ZN18UnkStruct_027e0c5413func_020363b0Ev kind:function(arm,size=0x18) addr:0x0203636c func_020363c8 kind:function(arm,size=0x74) addr:0x02036384 -_ZN14MessageManager13func_0203643cEPiPS_j kind:function(arm,size=0x54) addr:0x020363f8 +_ZN14MessageManager13func_0203643cEPPtPS_j kind:function(arm,size=0x54) addr:0x020363f8 _ZN14MessageManager13func_02036490Ev kind:function(thumb,size=0x1cc) addr:0x0203644c _ZN14MessageManager13func_0203665cEv kind:function(thumb,size=0x4a) addr:0x02036618 func_020366a8 kind:function(arm,size=0x1c) addr:0x02036664 diff --git a/include/Message/MessageManager.hpp b/include/Message/MessageManager.hpp index 62ea512d..7156bb4f 100644 --- a/include/Message/MessageManager.hpp +++ b/include/Message/MessageManager.hpp @@ -39,7 +39,7 @@ class MessageManager : public SysObject { /* 0x48 */ DebugHierarchy *mDebug; /* 0x4C */ - static void func_0203643c(u32 *param_1, MessageManager *param_2, u32 param_3); + static void func_0203643c(u16 **param_1, MessageManager *param_2, u32 param_3); void func_02036490(); void func_0203665c(void); MessageManager(); @@ -64,9 +64,9 @@ class MessageManager : public SysObject { bool func_02036d30(UnkStruct_02037750 *param_2); bool func_02036d4c(UnkStruct_02037750 *param_2); void func_02036d6c(void); - UnkStruct_02038aa0 *func_02036da8(u32 param_2, s16 *param_3); + UnkStruct_02038aa0 *func_02036da8(u32 param_2, UnkStruct_000 *param_3); void func_02036edc(u32 param_2, u8 param_3); - UnkStruct_020397f8 *func_02036f68(u32 param_2, u8 *param_3); + UnkStruct_020397f8 *func_02036f68(u32 param_2, u16 *param_3); UnkStruct_020386d8 *func_020370d0(unk32 param_2, unk32 param_3); UnkStruct_020386d8 *func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5); void func_02037158(UnkSubClass1_02256FF8 *param_2); @@ -75,4 +75,14 @@ class MessageManager : public SysObject { void func_ov004_021069c4(void); }; +#define BMG_GET_INF1(pGroups, flags) ((pGroups)->entries[(flags) >> 16].func_02037258((flags))) + +static inline u16 *GetMsgStringAddr(MessageManager *pMessageManager, u32 flags) { + BMGGroups *pGroups = pMessageManager->pGroups; + EntryINF1 *pINF1 = BMG_GET_INF1(pGroups, flags); + + flags >>= 16; + return (u16 *) &pGroups->entries[flags].pDAT1[pINF1->stringOffset & ~1]; +} + extern MessageManager gMessageManager; diff --git a/include/Unknown/UnkStruct_02032f0c.hpp b/include/Unknown/UnkStruct_02032f0c.hpp index 926bdf0b..c7a0fa1c 100644 --- a/include/Unknown/UnkStruct_02032f0c.hpp +++ b/include/Unknown/UnkStruct_02032f0c.hpp @@ -7,6 +7,15 @@ #include "System/SysNew.hpp" #include "Unknown/UnkStruct_02032e7c.hpp" +struct UnkStruct_000 { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ + + UnkStruct_000(); +}; + class UnkSubClass1_02256FF8 { public: /* 00 (vtable) */ diff --git a/include/Unknown/UnkStruct_02038aa0.hpp b/include/Unknown/UnkStruct_02038aa0.hpp index f83d1ab9..04740c4f 100644 --- a/include/Unknown/UnkStruct_02038aa0.hpp +++ b/include/Unknown/UnkStruct_02038aa0.hpp @@ -64,7 +64,7 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); /* 48 */ virtual void vfunc_48(); /* 4c */ virtual void vfunc_4c(); - /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4); + /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u16 *param2, s16 *param3, UnkStruct_000 *param4); /* 54 */ virtual void vfunc_54(); /* 58 */ virtual void vfunc_58(); /* 5c */ virtual void vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5); diff --git a/include/Unknown/UnkStruct_020397f8.hpp b/include/Unknown/UnkStruct_020397f8.hpp index 7e782ab5..fcd54a23 100644 --- a/include/Unknown/UnkStruct_020397f8.hpp +++ b/include/Unknown/UnkStruct_020397f8.hpp @@ -97,7 +97,7 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; /* 48 */ virtual void vfunc_48() override; /* 4c */ virtual void vfunc_4c() override; - /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) override; + /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u16 *param2, s16 *param3, UnkStruct_000 *param4) override; /* 54 */ virtual void vfunc_54() override; /* 58 */ virtual void vfunc_58() override; /* 5c */ virtual void vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) override; diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 70e86bd7..2fe446e2 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -20,23 +20,8 @@ struct UnkStruct_027e0ffc { }; extern UnkStruct_027e0ffc *data_027e0ffc; -// non-matching -ARM void MessageManager::func_0203643c(u32 *param_1, MessageManager *param_2, u32 param_3) { - // BMGGroups *pBVar2 = param_2->pGroups; - // BMGFileInfo* pEntries = &pBVar2->entries[param_3 >> 0x10]; - // EntryINF1* puVar1 = pEntries->func_02037258(param_3 & 0xFFFF); - - // *param_1 = *(u32 *)(pEntries->pDAT1) + (puVar1->stringOffset & ~1); - - // *param_1 = ((u32) pBVar2->entries[param_3 >> 0x10].pDAT1 + - // (pBVar2->entries[param_3 >> 0x10].func_02037258(param_3 & 0xFFFF)->stringOffset & ~1)); - - u32 *puVar1; - BMGGroups *piVar2; - - piVar2 = param_2->pGroups; - puVar1 = (u32 *) piVar2->entries[(param_3 >> 0x10) /* * 0x1c */].func_02037258(param_3 & 0xffff); - *param_1 = *(u32 *) (*(u32 *) &piVar2->entries[(param_3 >> 0x10) /* * 0x1c */].pDAT1) + (*puVar1 & 0xfffffffe); +ARM void MessageManager::func_0203643c(u16 **param_1, MessageManager *param_2, u32 param_3) { + *param_1 = GetMsgStringAddr(param_2, param_3); } // non-matching @@ -433,7 +418,7 @@ ARM void MessageManager::func_02036d6c(void) { } // non-matching -ARM UnkStruct_02038aa0 *MessageManager::func_02036da8(u32 param_2, s16 *param_3) { +ARM UnkStruct_02038aa0 *MessageManager::func_02036da8(u32 param_2, UnkStruct_000 *param_3) { EntryINF1 *pEVar1; EntryINF1 *pEVar2; UnkStruct_02038aa0 *pSVar4; @@ -443,50 +428,54 @@ ARM UnkStruct_02038aa0 *MessageManager::func_02036da8(u32 param_2, s16 *param_3) int iStack_34; int iStack_30; - pEVar1 = this->pGroups->entries[param_2 >> 0x10].func_02037258(param_2 & 0xFFFF); + // pEVar1 = this->pGroups->entries[param_2 >> 0x10].func_02037258(param_2 & 0xFFFF); + + pEVar1 = BMG_GET_INF1(this->pGroups, param_2); if (pEVar1 == NULL) { return NULL; } - if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) { - pSVar4 = this->mUnk_28[4]; - func_02037628((u8 *) &iStack_38); - - // ??? - bVar6 = (data_02056be4[data_027e077c.mUnk_0] & 1) == 0; - if (bVar6) { - data_02056be4[0] = 1; - } - if (!bVar6) { - data_02056be4[0] = 0; - } - - iStack_38 = *param_3; - // iStack_34 = param_3[1]; - // iStack_30 = param_3[2]; - pBVar5 = this->pGroups; - // pSVar4->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1); - BMGFileInfo *entry = &(pBVar5)->entries[(param_2) >> 0x10]; - // pSVar4->vfunc_50(pEVar1, - // ((u32)entry->pDAT1 + (((entry.func_02037258((((param_2))) & 0xFFFF))->offset) & ~1)), - // // BMG_GET_MSG_ADDR(pBVar5, param_2), - // (s16*)&iStack_38, 1); - - data_ov000_020eec9c.func_ov000_020d77e4(0x1C); - return pSVar4; + if ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0) { + return NULL; } - return NULL; + pSVar4 = this->mUnk_28[4]; + + // ??? + UnkStruct_000 stack; + data_02056be4[0] = (data_02056be4[data_027e077c.mUnk_0] & 1) == 0; + // if (bVar6) { + // data_02056be4[0] = 1; + // } + // if (!bVar6) { + // data_02056be4[0] = 0; + // } + stack = *param_3; + pSVar4->vfunc_50(pEVar1, GetMsgStringAddr(this, param_2), &iStack_38, &stack); + + // iStack_38 = *param_3; + // iStack_34 = param_3[1]; + // iStack_30 = param_3[2]; + // pBVar5 = this->pGroups; + // pSVar4->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1); + // BMGFileInfo *entry = &(pBVar5)->entries[(param_2) >> 0x10]; + // pSVar4->vfunc_50(pEVar1, + // ((u32)entry->pDAT1 + (((entry.func_02037258((((param_2))) & 0xFFFF))->offset) & ~1)), + // // BMG_GET_MSG_ADDR(pBVar5, param_2), + // (s16*)&iStack_38, 1); + + data_ov000_020eec9c.func_ov000_020d77e4(0x1C); + return pSVar4; } // non-matching ARM void MessageManager::func_02036edc(u32 param_2, u8 param_3) { UnkStruct_020397f8 *pSVar1; - u8 auStack_28[24]; + u16 auStack_28[12]; u8 local_13; - func_02037628(auStack_28); + // func_02037628(auStack_28); local_13 = 0; if ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0 && (data_02056be4[data_027e077c.mUnk_0] & 2) == 0) { @@ -505,14 +494,14 @@ ARM void MessageManager::func_02036edc(u32 param_2, u8 param_3) { } // non-matching -ARM UnkStruct_020397f8 *MessageManager::func_02036f68(u32 param_2, u8 *param_3) { +ARM UnkStruct_020397f8 *MessageManager::func_02036f68(u32 param_2, u16 *param_3) { EntryINF1 *pEVar1; UnkStruct_02038aa0 *pSVar2; EntryINF1 *pEVar3; int iVar4; UnkStruct_020397f8 *pSVar5; - pEVar1 = this->pGroups->entries[param_2 >> 0x10].func_02037258(param_2 & 0xffff); + pEVar1 = BMG_GET_INF1(this->pGroups, param_2); if (pEVar1 == NULL) { return NULL; @@ -530,7 +519,7 @@ ARM UnkStruct_020397f8 *MessageManager::func_02036f68(u32 param_2, u8 *param_3) pSVar5->mUnk_164 = (UnkStruct_020397f8 *) pSVar2; pSVar5->mUnk_418 = this->mUnk_28[5]; - pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s16 *) param_3, NULL); + pSVar5->vfunc_50(pEVar1, GetMsgStringAddr(this, param_2), (s16 *) param_3, NULL); if (data_ov000_020eec9c.func_ov000_020d7f18(0x19) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x18) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x34) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x35) == 0 && diff --git a/src/Main/Unknown/UnkStruct_02032f0c.cpp b/src/Main/Unknown/UnkStruct_02032f0c.cpp index bc9e269b..bd2f1844 100644 --- a/src/Main/Unknown/UnkStruct_02032f0c.cpp +++ b/src/Main/Unknown/UnkStruct_02032f0c.cpp @@ -142,10 +142,10 @@ ARM void UnkStruct_02032f0c::func_02033214(unk32 param1, unk32 param2, unk32 par this->mUnk_08 = param5; unk32 uStack_20 = param3; - u16 local_38; + u16 *local_38; UnkStruct_02032e7c UStack_34; - MessageManager::func_0203643c((u32 *) &local_38, &gMessageManager, param1); - UStack_34.mUnk_04 = &local_38; + MessageManager::func_0203643c(&local_38, &gMessageManager, param1); + UStack_34.mUnk_04 = local_38; UStack_34.mUnk_10 = this->mUnk_4d; this->func_020338a8(&UStack_34, -1); UStack_34.mUnk_0e = param4; diff --git a/src/Main/Unknown/UnkStruct_02038aa0.cpp b/src/Main/Unknown/UnkStruct_02038aa0.cpp index b76271f5..0f224f04 100644 --- a/src/Main/Unknown/UnkStruct_02038aa0.cpp +++ b/src/Main/Unknown/UnkStruct_02038aa0.cpp @@ -135,7 +135,7 @@ ARM bool UnkStruct_02038aa0::func_02038ef4(s32 touchLastX, s32 touchLastY) { ARM void UnkStruct_02038aa0::vfunc_44(s32 touchLastX, s32 touchLastY) {} // non-matching -ARM void UnkStruct_02038aa0::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) { +ARM void UnkStruct_02038aa0::vfunc_50(EntryINF1 *param1, u16 *param2, s16 *param3, UnkStruct_000 *param4) { int iVar1; this->pInfoEntry = param1; diff --git a/src/Main/Unknown/UnkStruct_020397f8.cpp b/src/Main/Unknown/UnkStruct_020397f8.cpp index 7f169ac7..3678364e 100644 --- a/src/Main/Unknown/UnkStruct_020397f8.cpp +++ b/src/Main/Unknown/UnkStruct_020397f8.cpp @@ -536,7 +536,7 @@ ARM bool UnkStruct_020397f8::func_0203a6d0(unk32 param1, unk32 param2) { } // non-matching -ARM void UnkStruct_020397f8::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) { +ARM void UnkStruct_020397f8::vfunc_50(EntryINF1 *param1, u16 *param2, s16 *param3, UnkStruct_000 *param4) { bool bVar5; bool bVar2; int iVar4; From e645bad683259cb5c1e7a67074f291803763aa4c Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 10:31:13 +0200 Subject: [PATCH 32/36] vtables fixing --- config/eur/arm9/relocs.txt | 12 ++++++------ config/eur/arm9/symbols.txt | 4 ++-- config/usa/arm9/relocs.txt | 12 ++++++------ config/usa/arm9/symbols.txt | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/config/eur/arm9/relocs.txt b/config/eur/arm9/relocs.txt index 21dfa267..5cb6cf2c 100644 --- a/config/eur/arm9/relocs.txt +++ b/config/eur/arm9/relocs.txt @@ -4634,16 +4634,16 @@ from:0x0203771c kind:load to:0x027e077c module:dtcm from:0x02037720 kind:load to:0x02056be4 module:main from:0x02037748 kind:load to:0x027e0c54 module:dtcm from:0x0203774c kind:load to:0x027e0618 module:dtcm -from:0x02037790 kind:load to:0x02057d00 module:main +from:0x02037790 kind:load to:0x02057cf8 add:8 module:main from:0x020377b8 kind:arm_call to:0x02036d4c module:main -from:0x020377c4 kind:load to:0x02057d00 module:main +from:0x020377c4 kind:load to:0x02057cf8 add:8 module:main from:0x020377c8 kind:load to:0x027e0c68 module:dtcm from:0x020377f0 kind:arm_call to:0x02036d4c module:main from:0x020377f8 kind:arm_call to:0x0202ea0c module:main -from:0x02037804 kind:load to:0x02057d00 module:main +from:0x02037804 kind:load to:0x02057cf8 add:8 module:main from:0x02037808 kind:load to:0x027e0c68 module:dtcm from:0x02037830 kind:arm_call to:0x02036d4c module:main -from:0x0203783c kind:load to:0x02057d00 module:main +from:0x0203783c kind:load to:0x02057cf8 add:8 module:main from:0x02037840 kind:load to:0x027e0c68 module:dtcm from:0x0203787c kind:arm_call to:0x02037724 module:main from:0x020378c0 kind:arm_call_thumb to:0x02114810 module:overlay(9) @@ -4715,11 +4715,11 @@ from:0x0203866c kind:arm_call to:0x02036f68 module:main from:0x020386b0 kind:load to:0x027e0c68 module:dtcm from:0x020386e8 kind:arm_call to:0x02037750 module:main from:0x02038704 kind:arm_call to:0x020376c0 module:main -from:0x02038710 kind:load to:0x02057d3c module:main +from:0x02038710 kind:load to:0x02057d34 add:8 module:main from:0x02038714 kind:load to:0x027e0d0c module:dtcm from:0x02038728 kind:arm_call to:0x02037750 module:main from:0x02038744 kind:arm_call to:0x020376c0 module:main -from:0x02038750 kind:load to:0x02057d3c module:main +from:0x02038750 kind:load to:0x02057d34 add:8 module:main from:0x02038754 kind:load to:0x027e0d0c module:dtcm from:0x02038760 kind:arm_call to:0x02037844 module:main from:0x02038778 kind:arm_call to:0x020385d0 module:main diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 93ac0ec0..a363cf4c 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -2806,8 +2806,8 @@ data_02057cc8 kind:data(any) addr:0x02057cc8 data_02057ccc kind:data(any) addr:0x02057ccc data_02057cd0 kind:data(any) addr:0x02057cd0 data_02057cd4 kind:data(any) addr:0x02057cd4 -_ZTV18UnkStruct_02037750 kind:data(any) addr:0x02057d00 -_ZTV18UnkStruct_020386d8 kind:data(any) addr:0x02057d3c +_ZTV18UnkStruct_02037750 kind:data(any) addr:0x02057cf8 +_ZTV18UnkStruct_020386d8 kind:data(any) addr:0x02057d34 data_02057d70 kind:data(any) addr:0x02057d70 _ZTV18UnkStruct_02038aa0 kind:data(any) addr:0x02057d88 _ZTV18UnkStruct_0203881c kind:data(any) addr:0x02057e04 diff --git a/config/usa/arm9/relocs.txt b/config/usa/arm9/relocs.txt index e6146963..88a24fad 100644 --- a/config/usa/arm9/relocs.txt +++ b/config/usa/arm9/relocs.txt @@ -4635,16 +4635,16 @@ from:0x020376d8 kind:load to:0x027e077c module:dtcm from:0x020376dc kind:load to:0x02056ba0 module:main from:0x02037704 kind:load to:0x027e0c54 module:dtcm from:0x02037708 kind:load to:0x027e0618 module:dtcm -from:0x0203774c kind:load to:0x02057cb8 module:main +from:0x0203774c kind:load to:0x02057cb0 add:8 module:main from:0x02037774 kind:arm_call to:0x02036d08 module:main -from:0x02037780 kind:load to:0x02057cb8 module:main +from:0x02037780 kind:load to:0x02057cb0 add:8 module:main from:0x02037784 kind:load to:0x027e0c68 module:dtcm from:0x020377ac kind:arm_call to:0x02036d08 module:main from:0x020377b4 kind:arm_call to:0x0202ea08 module:main -from:0x020377c0 kind:load to:0x02057cb8 module:main +from:0x020377c0 kind:load to:0x02057cb0 add:8 module:main from:0x020377c4 kind:load to:0x027e0c68 module:dtcm from:0x020377ec kind:arm_call to:0x02036d08 module:main -from:0x020377f8 kind:load to:0x02057cb8 module:main +from:0x020377f8 kind:load to:0x02057cb0 add:8 module:main from:0x020377fc kind:load to:0x027e0c68 module:dtcm from:0x02037838 kind:arm_call to:0x020376e0 module:main from:0x0203787c kind:arm_call_thumb to:0x02114790 module:overlay(9) @@ -4716,11 +4716,11 @@ from:0x02038628 kind:arm_call to:0x02036f24 module:main from:0x0203866c kind:load to:0x027e0c68 module:dtcm from:0x020386a4 kind:arm_call to:0x0203770c module:main from:0x020386c0 kind:arm_call to:0x0203767c module:main -from:0x020386cc kind:load to:0x02057cf4 module:main +from:0x020386cc kind:load to:0x02057cec add:8 module:main from:0x020386d0 kind:load to:0x027e0d0c module:dtcm from:0x020386e4 kind:arm_call to:0x0203770c module:main from:0x02038700 kind:arm_call to:0x0203767c module:main -from:0x0203870c kind:load to:0x02057cf4 module:main +from:0x0203870c kind:load to:0x02057cec add:8 module:main from:0x02038710 kind:load to:0x027e0d0c module:dtcm from:0x0203871c kind:arm_call to:0x02037800 module:main from:0x02038734 kind:arm_call to:0x0203858c module:main diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index b5158d11..e0952880 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -2807,8 +2807,8 @@ data_02057cc8 kind:data(any) addr:0x02057c80 data_02057ccc kind:data(any) addr:0x02057c84 data_02057cd0 kind:data(any) addr:0x02057c88 data_02057cd4 kind:data(any) addr:0x02057c8c -_ZTV18UnkStruct_02037750 kind:data(any) addr:0x02057cb8 -_ZTV18UnkStruct_020386d8 kind:data(any) addr:0x02057cf4 +_ZTV18UnkStruct_02037750 kind:data(any) addr:0x02057cb0 +_ZTV18UnkStruct_020386d8 kind:data(any) addr:0x02057cec data_02057d70 kind:data(any) addr:0x02057d28 _ZTV18UnkStruct_02038aa0 kind:data(any) addr:0x02057d40 _ZTV18UnkStruct_0203881c kind:data(any) addr:0x02057dbc From 7cc1ac8e51f80076510eb44fda1f520b0e59b7a7 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 10:31:25 +0200 Subject: [PATCH 33/36] remove useless thing --- include/Message/MessageManager.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Message/MessageManager.hpp b/include/Message/MessageManager.hpp index 7156bb4f..5173f752 100644 --- a/include/Message/MessageManager.hpp +++ b/include/Message/MessageManager.hpp @@ -50,7 +50,7 @@ class MessageManager : public SysObject { bool func_02036770(u32 param_2); unk32 func_02036798(void); bool func_020367dc(int param_2); - bool MessageManager::func_020367ec(void); + bool func_020367ec(void); bool func_02036808(void); bool func_02036824(void); bool func_02036850(void); From 59e25cc63093a0b3e466b33e6af68be14e2e41bf Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 10:35:29 +0200 Subject: [PATCH 34/36] split 7750 and 86d8 --- config/eur/arm9/delinks.txt | 8 ++++-- src/Main/Unknown/UnkStruct_02037750.cpp | 29 ++-------------------- src/Main/Unknown/UnkStruct_020386d8.cpp | 33 +++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 29 deletions(-) create mode 100644 src/Main/Unknown/UnkStruct_020386d8.cpp diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index db75d8fc..e9659088 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -39,8 +39,12 @@ src/Main/Message/BMG.cpp: .rodata start:0x02056958 end:0x020569e0 src/Main/Unknown/UnkStruct_02037750.cpp: - .text start:0x02037750 end:0x020387e0 - .data start:0x02057cb8 end:0x02057d70 + .text start:0x02037750 end:0x020386d8 + .data start:0x02057cb8 end:0x02057d34 + +src/Main/Unknown/UnkStruct_020386d8.cpp: + .text start:0x020386d8 end:0x020387e0 + .data start:0x02057d34 end:0x02057d70 src/Main/Unknown/UnkStruct_02038aa0.cpp: .text start:0x0203881c end:0x02039578 diff --git a/src/Main/Unknown/UnkStruct_02037750.cpp b/src/Main/Unknown/UnkStruct_02037750.cpp index 3d9fe9a5..cb9917bf 100644 --- a/src/Main/Unknown/UnkStruct_02037750.cpp +++ b/src/Main/Unknown/UnkStruct_02037750.cpp @@ -9,6 +9,8 @@ extern "C" ARM unk32 func_02037628(u8 *); extern u8 *data_027e0d54; extern unk32 *data_027e0cb4; +char *gShipParts[8] = {"brg", "anc", "pdl", "hul", "can", "dco", "bow", "fnl"}; + ARM UnkStruct_02037750::UnkStruct_02037750(unk32 param1, unk32 param2) { s32 i; @@ -204,30 +206,3 @@ ARM bool UnkStruct_02037750::vfunc_1c() { ARM void UnkStruct_02037750::vfunc_20() { this->mUnk_18 = 1 << 24; } - -// non-matching -ARM UnkStruct_020386d8::UnkStruct_020386d8() : - UnkStruct_02037750(1 << 24, 0) { - this->mUnk_20 = -1; - this->mUnk_24.func_020376c0(&gVec3p_ZERO); -} - -ARM void UnkStruct_020386d8::vfunc_08(u32 param1) { - this->UnkStruct_02037750::vfunc_08(param1); - this->mUnk_20 = 0xff; -} - -ARM bool UnkStruct_020386d8::vfunc_24(unk32 param1) { - return this->func_020385d0(param1, &this->mUnk_24.mUnk_00) != 0; -} - -ARM unk32 UnkStruct_020386d8::vfunc_28(s32 param1) { - this->mUnk_20 = this->UnkStruct_02037750::vfunc_28(param1); - return this->mUnk_20; -} - -ARM bool UnkStruct_020386d8::vfunc_30() { - return gMessageManager.func_020366c4()->mUnk_15c <= 0; -} - -ARM UnkStruct_020386d8::~UnkStruct_020386d8() {} diff --git a/src/Main/Unknown/UnkStruct_020386d8.cpp b/src/Main/Unknown/UnkStruct_020386d8.cpp new file mode 100644 index 00000000..27582dc0 --- /dev/null +++ b/src/Main/Unknown/UnkStruct_020386d8.cpp @@ -0,0 +1,33 @@ +#include "Actor/ActorManager.hpp" +#include "Item/ItemManager.hpp" +#include "Message/MessageManager.hpp" +#include "Save/AdventureFlags.hpp" +#include "System/Random.hpp" +#include "Unknown/UnkStruct_02037750.hpp" + +// non-matching +ARM UnkStruct_020386d8::UnkStruct_020386d8() : + UnkStruct_02037750(1 << 24, 0) { + this->mUnk_20 = -1; + this->mUnk_24.func_020376c0(&gVec3p_ZERO); +} + +ARM void UnkStruct_020386d8::vfunc_08(u32 param1) { + this->UnkStruct_02037750::vfunc_08(param1); + this->mUnk_20 = 0xff; +} + +ARM bool UnkStruct_020386d8::vfunc_24(unk32 param1) { + return this->func_020385d0(param1, &this->mUnk_24.mUnk_00) != 0; +} + +ARM unk32 UnkStruct_020386d8::vfunc_28(s32 param1) { + this->mUnk_20 = this->UnkStruct_02037750::vfunc_28(param1); + return this->mUnk_20; +} + +ARM bool UnkStruct_020386d8::vfunc_30() { + return gMessageManager.func_020366c4()->mUnk_15c <= 0; +} + +ARM UnkStruct_020386d8::~UnkStruct_020386d8() {} From daeee07cd4c6b6c7b158e712679079d3b4088d93 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 10:45:49 +0200 Subject: [PATCH 35/36] reorder delinks --- config/eur/arm9/delinks.txt | 60 ++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index e9659088..5dac9424 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -5,22 +5,29 @@ .data start:0x020572e0 end:0x02058e20 kind:data align:32 .bss start:0x02058e20 end:0x020773c0 kind:bss align:32 -src/Main/Actor/ActorType.cpp: +src/Main/Game/GameMode.cpp: complete - .text start:0x0203e784 end:0x0203e8a0 - .bss start:0x02069180 end:0x02069188 + .text start:0x0202c0a8 end:0x0202c0cc + .data start:0x0205762c end:0x02057650 + +src/Main/Game/Game.cpp: + .text start:0x0202c6c8 end:0x0202d0cc + .rodata start:0x020561f4 end:0x020562d4 + +src/Main/Message/BmgRelatedFunctions.cpp: + .text start:0x0202d3bc end:0x0202d56c + +src/Main/Unknown/UnkStruct_02063220.cpp: + .text start:0x0202f3f0 end:0x0202f8e8 + .rodata start:0x020562e0 end:0x02056300 + .data start:0x0205772c end:0x02057808 src/Main/System/OverlayManager.cpp: complete .text start:0x0202ff44 end:0x0203003c -libs/cpp/src/__register_global_object.cpp: - complete - .text start:0x0204f8d4 end:0x0204f8f4 - .bss start:0x02076da8 end:0x02076dac - -src/Main/Message/BmgRelatedFunctions.cpp: - .text start:0x0202d3bc end:0x0202d56c +src/Main/Unknown/UnkStruct_0206322c.cpp: + .text start:0x02030354 end:0x020306c0 src/Main/Unknown/UnkStruct_02032f0c.cpp: .text start:0x02032f0c end:0x02033d40 @@ -38,6 +45,13 @@ src/Main/Message/BMG.cpp: .data start:0x02057b78 end:0x02057cb8 .rodata start:0x02056958 end:0x020569e0 +src/Main/DTCM/UnkStruct_027e05f8_2.cpp: + complete + .text start:0x0203744c end:0x020374b4 + .init start:0x02050cb4 end:0x02050ce0 + .ctor start:0x02057260 end:0x02057264 + .dtcm start:0x027e05f8 end:0x027e060c + src/Main/Unknown/UnkStruct_02037750.cpp: .text start:0x02037750 end:0x020386d8 .data start:0x02057cb8 end:0x02057d34 @@ -66,26 +80,12 @@ src/Main/Unknown/UnkStruct_0203dae0.cpp: .text start:0x0203dae0 end:0x0203e784 .data start:0x0205804c end:0x02058088 -src/Main/Unknown/UnkStruct_0206322c.cpp: - .text start:0x02030354 end:0x020306c0 - -src/Main/Unknown/UnkStruct_02063220.cpp: - .text start:0x0202f3f0 end:0x0202f8e8 - .rodata start:0x020562e0 end:0x02056300 - .data start:0x0205772c end:0x02057808 - -src/Main/Game/Game.cpp: - .text start:0x0202c6c8 end:0x0202d0cc - .rodata start:0x020561f4 end:0x020562d4 - -src/Main/Game/GameMode.cpp: +src/Main/Actor/ActorType.cpp: complete - .text start:0x0202c0a8 end:0x0202c0cc - .data start:0x0205762c end:0x02057650 + .text start:0x0203e784 end:0x0203e8a0 + .bss start:0x02069180 end:0x02069188 -src/Main/DTCM/UnkStruct_027e05f8_2.cpp: +libs/cpp/src/__register_global_object.cpp: complete - .text start:0x0203744c end:0x020374b4 - .init start:0x02050cb4 end:0x02050ce0 - .ctor start:0x02057260 end:0x02057264 - .dtcm start:0x027e05f8 end:0x027e060c + .text start:0x0204f8d4 end:0x0204f8f4 + .bss start:0x02076da8 end:0x02076dac From 6a32dc08c8d2c14c243e94bb14ac1f37c2812aef Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 19:49:09 +0200 Subject: [PATCH 36/36] documented something --- include/Unknown/UnkStruct_02037750.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/Unknown/UnkStruct_02037750.hpp b/include/Unknown/UnkStruct_02037750.hpp index a480c1a3..a1d2cae9 100644 --- a/include/Unknown/UnkStruct_02037750.hpp +++ b/include/Unknown/UnkStruct_02037750.hpp @@ -3,6 +3,7 @@ #include "global.h" #include "types.h" +#include "Actor/Actor.hpp" #include "Player/LinkStateInteract.hpp" #include "System/SysNew.hpp" @@ -14,7 +15,7 @@ class UnkStruct_02037750 : public SysObject { public: /* 00 (vtable) */ /* 04 */ UnkStruct_02037750_Callback1 mUnk_04[0x4]; - /* 14 */ unk32 mUnk_14; + /* 14 */ Actor *mUnk_14; /* 18 */ u32 mUnk_18; /* 1c */ u8 mUnk_1c; /* 1d */ u8 mUnk_1d;