From c008e48b75b61f26c3d117b9a3551ac4cf0092c1 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 14:38:10 +0200 Subject: [PATCH 01/10] add m2c*.c to gitignore for convenience --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3411e74c..f73e3bd0 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ build.ninja .ninja_lock .ninja_deps /wibo +m2c*.c From 133bb98ec85ab2763e4f28cad1b99963f8479258 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 17:42:48 +0200 Subject: [PATCH 02/10] started Actor.cpp --- config/eur/arm9/itcm/symbols.txt | 2 +- config/eur/arm9/overlays/ov000/delinks.txt | 3 + config/eur/arm9/overlays/ov000/relocs.txt | 2 +- config/eur/arm9/overlays/ov000/symbols.txt | 52 +++--- config/eur/arm9/symbols.txt | 2 +- config/jp/arm9/itcm/symbols.txt | 2 +- include/Actor/Actor.hpp | 139 +++++++++++++++ include/Unknown/UnkStruct_027e0cd8.hpp | 10 ++ include/Unknown/UnkStruct_027e0ce0.hpp | 35 ++++ include/nitro/math.h | 190 +++++++++++++++++++++ src/00_Second/Actor/Actor.cpp | 177 +++++++++++++++++++ tools/mangle.py | 2 +- 12 files changed, 585 insertions(+), 31 deletions(-) create mode 100644 include/Actor/Actor.hpp create mode 100644 include/Unknown/UnkStruct_027e0cd8.hpp create mode 100644 include/Unknown/UnkStruct_027e0ce0.hpp create mode 100644 include/nitro/math.h create mode 100644 src/00_Second/Actor/Actor.cpp diff --git a/config/eur/arm9/itcm/symbols.txt b/config/eur/arm9/itcm/symbols.txt index 465186ac..27c07d7a 100644 --- a/config/eur/arm9/itcm/symbols.txt +++ b/config/eur/arm9/itcm/symbols.txt @@ -189,7 +189,7 @@ func_01ffee10 kind:function(arm,size=0x124) addr:0x01ffee10 func_01ffef34 kind:function(arm,size=0x128) addr:0x01ffef34 func_01fff05c kind:function(arm,size=0x58) addr:0x01fff05c func_01fff0b4 kind:function(arm,size=0x94) addr:0x01fff0b4 -func_01fff148 kind:function(arm,size=0x20) addr:0x01fff148 +_ZN18UnkStruct_027e0ce013func_01fff148Ev kind:function(arm,size=0x20) addr:0x01fff148 func_01fff168 kind:function(arm,size=0x14) addr:0x01fff168 func_01fff17c kind:function(arm,size=0x28) addr:0x01fff17c func_01fff1a4 kind:function(arm,size=0x3c) addr:0x01fff1a4 diff --git a/config/eur/arm9/overlays/ov000/delinks.txt b/config/eur/arm9/overlays/ov000/delinks.txt index a35f57bd..90bdc890 100644 --- a/config/eur/arm9/overlays/ov000/delinks.txt +++ b/config/eur/arm9/overlays/ov000/delinks.txt @@ -5,3 +5,6 @@ .data start:0x020b1960 end:0x020b4ec0 kind:data align:32 .bss start:0x020b4ec0 end:0x020b6520 kind:bss align:32 +src/00_Second/Actor/Actor.cpp: + .text start:0x02098388 end:0x02098654 + .data start:0x020b30e4 end:0x020b3148 diff --git a/config/eur/arm9/overlays/ov000/relocs.txt b/config/eur/arm9/overlays/ov000/relocs.txt index 1aec6b5c..85300611 100644 --- a/config/eur/arm9/overlays/ov000/relocs.txt +++ b/config/eur/arm9/overlays/ov000/relocs.txt @@ -6679,7 +6679,7 @@ from:0x020983e4 kind:arm_call to:0x020975f8 module:overlay(0) from:0x02098400 kind:arm_call to:0x02028cdc module:main from:0x0209844c kind:arm_call to:0x0209862c module:overlay(0) from:0x02098458 kind:arm_call to:0x0209848c module:overlay(0) -from:0x02098464 kind:load to:0x020b30ec module:overlay(0) +from:0x02098464 kind:load to:0x020b30e4 add:8 module:overlay(0) from:0x02098468 kind:load to:0x020b539c module:overlay(0) from:0x0209847c kind:arm_call to:0x02011ff4 module:main from:0x020984e8 kind:arm_call to:0x020984f0 module:overlay(0) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index f46af626..aa0ae95f 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -1636,7 +1636,7 @@ func_ov000_02081d5c kind:function(arm,size=0x20) addr:0x02081d5c func_ov000_02081d7c kind:function(arm,size=0xb4) addr:0x02081d7c func_ov000_02081e30 kind:function(arm,size=0x8c) addr:0x02081e30 func_ov000_02081ebc kind:function(arm,size=0x10) addr:0x02081ebc -func_ov000_02081ecc kind:function(arm,size=0x10) addr:0x02081ecc +_ZN18UnkStruct_027e0cd819func_ov000_02081eccEsi kind:function(arm,size=0x10) addr:0x02081ecc func_ov000_02081edc kind:function(arm,size=0x10) addr:0x02081edc func_ov000_02081eec kind:function(arm,size=0x50) addr:0x02081eec func_ov000_02081f3c kind:function(arm,size=0x4c) addr:0x02081f3c @@ -2261,7 +2261,7 @@ func_ov000_02097528 kind:function(arm,size=0x20) addr:0x02097528 func_ov000_02097548 kind:function(arm,size=0x78) addr:0x02097548 func_ov000_020975c0 kind:function(arm,size=0x1c) addr:0x020975c0 func_ov000_020975dc kind:function(arm,size=0x1c) addr:0x020975dc -func_ov000_020975f8 kind:function(arm,size=0x78) addr:0x020975f8 +_ZN8Actor_5c19func_ov000_020975f8Ev kind:function(arm,size=0x78) addr:0x020975f8 func_ov000_02097670 kind:function(arm,size=0xc) addr:0x02097670 func_ov000_0209767c kind:function(arm,size=0xa8) addr:0x0209767c func_ov000_02097724 kind:function(arm,size=0x28) addr:0x02097724 @@ -2311,29 +2311,29 @@ func_ov000_020982c0 kind:function(arm,size=0x18) addr:0x020982c0 func_ov000_020982d8 kind:function(arm,size=0x80) addr:0x020982d8 func_ov000_02098358 kind:function(arm,size=0x14) addr:0x02098358 func_ov000_0209836c kind:function(arm,size=0x1c) addr:0x0209836c -func_ov000_02098388 kind:function(arm,size=0xe8) addr:0x02098388 -func_ov000_02098470 kind:function(arm,size=0x4) addr:0x02098470 -func_ov000_02098474 kind:function(arm,size=0x14) addr:0x02098474 -func_ov000_02098488 kind:function(arm,size=0x4) addr:0x02098488 -func_ov000_0209848c kind:function(arm,size=0x1c) addr:0x0209848c -func_ov000_020984a8 kind:function(arm,size=0x8) addr:0x020984a8 -func_ov000_020984b0 kind:function(arm,size=0x4) addr:0x020984b0 -func_ov000_020984b4 kind:function(arm,size=0x4) addr:0x020984b4 -func_ov000_020984b8 kind:function(arm,size=0x4) addr:0x020984b8 -func_ov000_020984bc kind:function(arm,size=0x4) addr:0x020984bc -func_ov000_020984c0 kind:function(arm,size=0x4) addr:0x020984c0 -func_ov000_020984c4 kind:function(arm,size=0x4) addr:0x020984c4 -func_ov000_020984c8 kind:function(arm,size=0x8) addr:0x020984c8 -func_ov000_020984d0 kind:function(arm,size=0x20) addr:0x020984d0 -func_ov000_020984f0 kind:function(arm,size=0x28) addr:0x020984f0 -func_ov000_02098518 kind:function(arm,size=0x24) addr:0x02098518 -func_ov000_0209853c kind:function(arm,size=0x18) addr:0x0209853c -func_ov000_02098554 kind:function(arm,size=0x18) addr:0x02098554 -func_ov000_0209856c kind:function(arm,size=0xc) addr:0x0209856c -func_ov000_02098578 kind:function(arm,size=0xc) addr:0x02098578 -func_ov000_02098584 kind:function(arm,size=0x6c) addr:0x02098584 -func_ov000_020985f0 kind:function(arm,size=0x3c) addr:0x020985f0 -func_ov000_0209862c kind:function(arm,size=0x28) addr:0x0209862c +_ZN5ActorC1Ev kind:function(arm,size=0xe8) addr:0x02098388 +_ZN5ActorD1Ev kind:function(arm,size=0x4) addr:0x02098470 +_ZN5ActorD0Ev kind:function(arm,size=0x14) addr:0x02098474 +_ZN5ActorD2Ev kind:function(arm,size=0x4) addr:0x02098488 +_ZN5Actor19func_ov000_0209848cEP27UnkStruct_ov000_020b539c_30 kind:function(arm,size=0x1c) addr:0x0209848c +_ZN5Actor8vfunc_18Ev kind:function(arm,size=0x8) addr:0x020984a8 +_ZN5Actor8vfunc_1cEv kind:function(arm,size=0x4) addr:0x020984b0 +_ZN5Actor8vfunc_20Ev kind:function(arm,size=0x4) addr:0x020984b4 +_ZN5Actor8vfunc_24Ev kind:function(arm,size=0x4) addr:0x020984b8 +_ZN5Actor8vfunc_28Ev kind:function(arm,size=0x4) addr:0x020984bc +_ZN5Actor8vfunc_2cEv kind:function(arm,size=0x4) addr:0x020984c0 +_ZN5Actor8vfunc_30Ev kind:function(arm,size=0x4) addr:0x020984c4 +_ZN5Actor8vfunc_34Ev kind:function(arm,size=0x8) addr:0x020984c8 +_ZN5Actor19func_ov000_020984d0Ev kind:function(arm,size=0x20) addr:0x020984d0 +_ZN5Actor19func_ov000_020984f0Ev kind:function(arm,size=0x28) addr:0x020984f0 +_ZN5Actor8vfunc_00EP18UnkStruct_vfunc_00 kind:function(arm,size=0x24) addr:0x02098518 +_ZN5Actor19func_ov000_0209853cEv kind:function(arm,size=0x18) addr:0x0209853c +_ZN5Actor8vfunc_04Ev kind:function(arm,size=0x18) addr:0x02098554 +_ZN5Actor8vfunc_08Ev kind:function(arm,size=0xc) addr:0x0209856c +_ZN5Actor8vfunc_0cEv kind:function(arm,size=0xc) addr:0x02098578 +_ZN5Actor8vfunc_38Ei kind:function(arm,size=0x6c) addr:0x02098584 +_ZN5Actor8vfunc_3cEP5Vec3p kind:function(arm,size=0x3c) addr:0x020985f0 +_ZN5Actor19func_ov000_0209862cEi kind:function(arm,size=0x28) addr:0x0209862c func_ov000_02098654 kind:function(arm,size=0x28) addr:0x02098654 func_ov000_0209867c kind:function(arm,size=0x38) addr:0x0209867c func_ov000_020986b4 kind:function(arm,size=0x48) addr:0x020986b4 @@ -3667,7 +3667,7 @@ data_ov000_020b3098 kind:data(any) addr:0x020b3098 data_ov000_020b30a4 kind:data(any) addr:0x020b30a4 data_ov000_020b30b4 kind:data(any) addr:0x020b30b4 data_ov000_020b30d0 kind:data(any) addr:0x020b30d0 -data_ov000_020b30ec kind:data(any) addr:0x020b30ec +_ZTV5Actor kind:data(any) addr:0x020b30e4 data_ov000_020b3148 kind:data(any) addr:0x020b3148 data_ov000_020b31a8 kind:data(any) addr:0x020b31a8 data_ov000_020b31f0 kind:data(any) addr:0x020b31f0 diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 2646b2b9..d6dbf2b6 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1611,7 +1611,7 @@ func_02028c4c kind:function(arm,size=0x14) addr:0x02028c4c func_02028c60 kind:function(arm,size=0x18) addr:0x02028c60 func_02028c78 kind:function(arm,size=0x18) addr:0x02028c78 func_02028c90 kind:function(arm,size=0x4c) addr:0x02028c90 -func_02028cdc kind:function(arm,size=0x38) addr:0x02028cdc +_ZN24UnkStruct_ov000_020b539c13func_02028cdcEP8Actor_5ci kind:function(arm,size=0x38) addr:0x02028cdc func_02028d14 kind:function(arm,size=0x1c) addr:0x02028d14 func_02028d30 kind:function(arm,size=0x1c) addr:0x02028d30 func_02028d4c kind:function(arm,size=0x24) addr:0x02028d4c diff --git a/config/jp/arm9/itcm/symbols.txt b/config/jp/arm9/itcm/symbols.txt index 465186ac..27c07d7a 100644 --- a/config/jp/arm9/itcm/symbols.txt +++ b/config/jp/arm9/itcm/symbols.txt @@ -189,7 +189,7 @@ func_01ffee10 kind:function(arm,size=0x124) addr:0x01ffee10 func_01ffef34 kind:function(arm,size=0x128) addr:0x01ffef34 func_01fff05c kind:function(arm,size=0x58) addr:0x01fff05c func_01fff0b4 kind:function(arm,size=0x94) addr:0x01fff0b4 -func_01fff148 kind:function(arm,size=0x20) addr:0x01fff148 +_ZN18UnkStruct_027e0ce013func_01fff148Ev kind:function(arm,size=0x20) addr:0x01fff148 func_01fff168 kind:function(arm,size=0x14) addr:0x01fff168 func_01fff17c kind:function(arm,size=0x28) addr:0x01fff17c func_01fff1a4 kind:function(arm,size=0x3c) addr:0x01fff1a4 diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp new file mode 100644 index 00000000..531d7454 --- /dev/null +++ b/include/Actor/Actor.hpp @@ -0,0 +1,139 @@ +#pragma once + +#include "System/SysNew.hpp" +#include "nitro/math.h" +#include "global.h" +#include "types.h" + +struct UnkStruct_vfunc_00 { + unk32 mUnk_00; + unk32 mUnk_04; + unk32 mUnk_08; +}; + +struct UnkStruct_vfunc_3c { + unk32 mUnk_00; + unk32 mUnk_04; + unk32 mUnk_08; +}; + +class Actor_5c { +public: + /* 00 */ unk32 mUnk_00; + + void func_ov000_020975f8(); +}; + +class UnkStruct_ov000_020b539c_30 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk8 mUnk_08[0x18 - 0x08]; + /* 1c */ unk8 mUnk_18; + /* 1c */ unk8 mUnk_19; + /* 1c */ unk16 mUnk_1a; + /* 1c */ unk16 mUnk_1c; + /* 1e */ u16 mUnk_1e; + /* 20 */ +}; + +class UnkStruct_ov000_020b539c { +public: + /* 00 */ unk8 mUnk_00[0x30]; + /* 30 */ UnkStruct_ov000_020b539c_30 *mUnk_30; + /* 34 */ + + void func_02028cdc(Actor_5c *param1, unk32 param2); +}; + +class Actor : public SysObject { +public: + /* 00 (vtable) */ + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1c */ Vec3p mUnk_1c; + /* 28 */ u16 mUnk_28; + /* 28 */ unk16 mUnk_2a; + /* 2c */ unk32 mUnk_2c; + /* 30 */ unk32 *mUnk_30; + /* 34 */ unk32 *mUnk_34; + /* 38 */ unk32 mUnk_38; + /* 3c */ unk32 mUnk_3c; + /* 40 */ unk32 mUnk_40; + /* 44 */ u16 mUnk_44; + /* 46 */ unk16 mUnk_46; + /* 48 */ unk16 mUnk_48; + /* 4a */ unk8 mUnk_4a; + /* 4a */ unk8 mUnk_4b; + /* 4c */ unk16 mUnk_4c; + /* 4e */ s16 mUnk_4e; + /* 50 */ unk16 mUnk_50; + /* 52 */ unk16 mUnk_52; + /* 54 */ unk32 mUnk_54; + /* 58 */ unk32 mUnk_58; + /* 5c */ Actor_5c mUnk_5c; + /* 60 */ unk32 mUnk_60; + /* 64 */ unk32 mUnk_64; + /* 68 */ s16 mUnk_68; + /* 68 */ unk16 mUnk_6a; + /* 6c */ unk32 mUnk_6c; + /* 70 */ unk32 mUnk_70; + /* 74 */ unk32 mUnk_74; + /* 78 */ unk32 mUnk_78; + /* 7c */ unk32 mUnk_7c; + /* 80 */ unk16 mUnk_80; + /* 80 */ unk16 mUnk_82; + /* 84 */ unk32 mUnk_84; + /* 88 */ unk32 mUnk_88; + /* 8c */ unk32 mUnk_8c; + /* 90 */ UnkStruct_ov000_020b539c_30 *mUnk_90; + + /* 00 */ virtual unk32 vfunc_00(UnkStruct_vfunc_00 *param1); + /* 04 */ virtual bool vfunc_04(); + /* 08 */ virtual unk16 vfunc_08(); + /* 0c */ virtual unk8 vfunc_0c(); + /* 10 */ virtual void vfunc_10(); + /* 14 */ virtual void vfunc_14(); + /* 18 */ virtual unk32 vfunc_18(); + /* 1c */ virtual void vfunc_1c(); + /* 20 */ virtual void vfunc_20(); + /* 24 */ virtual void vfunc_24(); + /* 28 */ virtual void vfunc_28(); + /* 2c */ virtual void vfunc_2c(); + /* 30 */ virtual void vfunc_30(); + /* 34 */ virtual unk32 vfunc_34(); + /* 38 */ virtual unk32 vfunc_38(unk32 param1); + /* 3c */ virtual bool vfunc_3c(Vec3p* param1); + /* 40 */ virtual void vfunc_40(); + /* 44 */ virtual void vfunc_44(); + /* 48 */ virtual void vfunc_48(); + /* 4c */ virtual ~Actor(); + /* 54 */ + + Actor(); + void func_ov000_0209848c(UnkStruct_ov000_020b539c_30 *param1); + void func_ov000_020984b0(); + void func_ov000_020984b4(); + void func_ov000_020984b8(); + void func_ov000_020984bc(); + void func_ov000_020984c0(); + void func_ov000_020984c4(); + unk32 func_ov000_020984c8(); + void func_ov000_020984d0(); + void func_ov000_020984f0(); + + s32 func_ov000_02098518(unk32 *param1); + void func_ov000_0209853c(); + s32 func_ov000_02098554(); + s16 func_ov000_0209856c(); + s8 func_ov000_02098578(); + s32 func_ov000_02098584(); + s32 func_ov000_020985f0(void *param1); + void func_ov000_0209862c(unk32 param1); +}; + +extern UnkStruct_ov000_020b539c data_ov000_020b539c; diff --git a/include/Unknown/UnkStruct_027e0cd8.hpp b/include/Unknown/UnkStruct_027e0cd8.hpp new file mode 100644 index 00000000..998b082b --- /dev/null +++ b/include/Unknown/UnkStruct_027e0cd8.hpp @@ -0,0 +1,10 @@ +#pragma once + +#include "types.h" + +class UnkStruct_027e0cd8 { +public: + void func_ov000_02081ecc(unk16 param1, unk32 param2); +}; + +extern UnkStruct_027e0cd8* data_027e0cd8; diff --git a/include/Unknown/UnkStruct_027e0ce0.hpp b/include/Unknown/UnkStruct_027e0ce0.hpp new file mode 100644 index 00000000..6bcbaab8 --- /dev/null +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -0,0 +1,35 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" + +// PlayerManager? +class UnkStruct_027e0ce0 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1c */ unk32 mUnk_1c; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk32 mUnk_28; + /* 2c */ unk32 mUnk_2c; + /* 30 */ + + void func_01fff148(); + + void func_ov000_0208a318(unk32 param1, unk32 param2, unk32 param3); + + void func_ov024_020d3d98(unk32 param1, unk32 param2); + void func_ov024_020d3ee8(unk32, u16, unk32); + + void func_ov110_02185d3c(unk32 param1); +}; + +extern UnkStruct_027e0ce0 *data_027e0ce0; diff --git a/include/nitro/math.h b/include/nitro/math.h new file mode 100644 index 00000000..ea1d1d88 --- /dev/null +++ b/include/nitro/math.h @@ -0,0 +1,190 @@ +#ifndef _NDS_MATH_H +#define _NDS_MATH_H + +#include "global.h" +#include "types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ABS(x) ((x) < 0 ? -(x) : (x)) + +// Q20.12 fixed point number +typedef s32 q20; +// Q4.12 fixed point number +typedef s16 q4; + +#define INT_TO_Q20(n) ((s32) ((n) << 12)) +#define FLOAT_TO_Q21(n) ((s32) (((n) * 8192 + 1) / 4)) +#define FLOAT_TO_Q20(n) ((s32) (((n) * 8192 + 1) / 2)) +#define FLOAT_TO_Q19(n) ((s32) (((n) * 8192 + 1))) +#define ROUND_Q20(n) (((s32) (n) + 0x800) >> 12) +#define MUL_Q20(a, b) (q20)((((s64) (a)) * ((s64) (b)) + 0x800) >> 12) +#define DIV_Q20(a, b) (((a) << 12) / (b)) + +#define DEG_TO_ANG(n) ((n) * 0x10000 / 360) +#define SIN(n) (gSinCosTable[2 * ((n) >> 4)]) +#define COS(n) (gSinCosTable[2 * ((n) >> 4) + 1]) + +u32 func_01ff9f3c(s32 a, s32 b); +s32 Atan2(s32 x, s32 y); + +u32 CoDivide64By32(u32 a, u32 b); +u32 func_01ff98f0(u32 a, u32 b); +u32 CoReciprocal(u32 x); +u64 func_01ff992c(u32 x); +u32 CoSqrt(u32 x); +u32 CoInvSqrt(u32 x); +u32 AwaitDivisionResult(); +u32 GetDivisionResult(); +void StartReciprocal(u32 x); +void StartSqrt(u32 x); +void func_01ff9ac4(u32 x); +u32 AwaitSqrtResult(); +void StartDivision64By32(u32 a, u32 b); +u32 CoDivide32(u32 a, u32 b); +u32 CoRemainder(u32 a, u32 b); + +bool Approach(unk32 *src, unk32 dest, unk32 step); +bool Approach_thunk(unk32 *src, unk32 dest, unk32 step); +extern q4 gSinCosTable[]; + +typedef struct { + /* 0 */ u8 x; + /* 1 */ u8 y; + /* 2 */ +} Vec2b; + +typedef struct { + /* 0 */ s16 x; + /* 1 */ s16 y; + /* 2 */ +} Vec2s; + +typedef struct { + /* 0 */ q20 x; + /* 4 */ q20 y; + /* 8 */ +} Vec2p; + +typedef struct { + /* 0 */ q20 x; + /* 4 */ q20 y; + /* 8 */ q20 z; + /* c */ +} Vec3p; + +typedef struct { + /* 00 */ q20 x; + /* 04 */ q20 y; + /* 08 */ q20 z; + /* 0c */ q20 w; + /* 10 */ +} Vec4p; + +typedef struct { + /* 00 */ Vec2p xColumn; + /* 08 */ Vec2p yColumn; + /* 10 */ +} Mat2p; + +typedef struct { + /* 00 */ Vec3p xColumn; + /* 0c */ Vec3p yColumn; + /* 18 */ Vec3p zColumn; + /* 24 */ +} Mat3p; + +typedef struct { + /* 00 */ Vec3p xColumn; + /* 0c */ Vec3p yColumn; + /* 18 */ Vec3p zColumn; + /* 24 */ Vec3p wColumn; + /* 30 */ +} Mat4x3p; + +typedef struct { + /* 00 */ Vec4p xColumn; + /* 10 */ Vec4p yColumn; + /* 20 */ Vec4p zColumn; + /* 30 */ Vec4p wColumn; + /* 40 */ +} Mat4p; + +extern const Vec3p gVec3p_ZERO; + +void Vec3p_Add(Vec3p *a, Vec3p *b, Vec3p *out); +void Vec3p_Sub(Vec3p *a, Vec3p *b, Vec3p *out); +q20 Vec3p_Dot(Vec3p *a, Vec3p *b); +void Vec3p_Cross(Vec3p *a, Vec3p *b, Vec3p *out); +q20 Vec3p_Length(Vec3p *a); +void Vec3p_Normalize(Vec3p *vec, Vec3p *out); +void Vec3p_Axpy(q20 a, Vec3p *x, Vec3p *y, Vec3p *out); +q20 Vec3p_Distance(Vec3p *a, Vec3p *b); +bool Vec3p_TryNormalize(Vec3p *vec); +q20 Vec3p_DistanceSquared(Vec3p *a, Vec3p *b); +void Vec3p_Scale(Vec3p *vec, q20 scale); +bool Vec3p_CalculateNormal(Vec3p *vec, Vec3p *a, Vec3p *b, Vec3p *c); + +inline void Vec3p_Rotate(Vec3p *vec, q20 sin, q20 cos, Vec3p *out) { + out->x += MUL_Q20(vec->z, sin); + out->z += MUL_Q20(vec->z, cos); + out->x += MUL_Q20(vec->x, cos); + out->z += MUL_Q20(vec->x, -sin); +} + +inline void Vec3p_CopyXZ(Vec3p *vec, Vec3p *out) { + q20 z = vec->z; + q20 x = vec->x; + + out->x = x; + out->y = 0; + out->z = z; +} + +inline void Vec3p_Copy(Vec3p *vec, Vec3p *out) { + out->x = vec->x; + out->y = vec->y; + out->z = vec->z; +} + +void Mat2p_InitIdentity(Mat2p *m); +void Mat2p_InitRotation(Mat2p *m, q20 sin, q20 cos); +void Mat2p_Multiply(Mat2p *a, Mat2p *b, Mat2p *out); + +void Mat3p_InitIdentity(Mat3p *m); +void Mat3p_CopyToMat4x3p(Mat3p *m, Mat4x3p *out); +void Mat3p_InitScale(Mat3p *m, q20 x, q20 y, q20 z); +void Mat3p_ScaleColumns(Mat3p *m, Mat3p *out, q20 x, q20 y, q20 z); +void Mat3p_InitXRotation(Mat3p *m, q20 sin, q20 cos); +void Mat3p_InitYRotation(Mat3p *m, q20 sin, q20 cos); +void Mat3p_InitZRotation(Mat3p *m, q20 sin, q20 cos); +void Mat3p_func_01ff8248(Mat3p *m, Vec3p *v, q20 scale, q20 offset); +void Mat3p_func_01ff83a0(Mat3p *a, Mat3p *b); +void Mat3p_Multiply(Mat3p *a, Mat3p *b, Mat3p *out); +void Mat3p_MultiplyVec(Vec3p *v, Mat3p *m, Vec3p *out); + +void Mat4x3p_InitIdentity(Mat4x3p *m); +void Mat4x3p_CopyToMat4p(Mat4x3p *m, Mat4p *out); +void Mat4x3p_func_01ff8988(Mat4x3p *m, Mat4x3p *out, q20 x, q20 y, q20 z); +void Mat4x3p_InitScale(Mat4x3p *m, q20 x, q20 y, q20 z); +void Mat4x3p_ScaleColumns(Mat4x3p *m, Mat4x3p *out, q20 x, q20 y, q20 z); +void Mat4x3p_InitXRotation(Mat4x3p *m, q20 sin, q20 cos); +void Mat4x3p_InitYRotation(Mat4x3p *m, q20 sin, q20 cos); +void Mat4x3p_InitZRotation(Mat4x3p *m, q20 sin, q20 cos); +void Mat4x3p_func_01ff8ad8(Mat4x3p *m, Vec3p *v, q20 scale, q20 offset); +void Mat4x3p_func_01ff8af8(Mat4x3p *a, Mat4x3p *b); +void Mat4x3p_Multiply(Mat4x3p *a, Mat4x3p *b, Mat4x3p *out); +void Mat4x3p_MultiplyVec(Vec3p *v, Mat4x3p *m, Vec3p *out); + +void Mat4p_InitIdentity(Mat4p *m); +void Mat4p_CopyToMat4x3p(Mat4p *m, Mat4x3p *out); +void Mat4p_InitZRotation(Mat4p *m, q20 sin, q20 cos); +void Mat4p_Multiply(Mat4p *a, Mat4p *b, Mat4p *out); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/00_Second/Actor/Actor.cpp b/src/00_Second/Actor/Actor.cpp new file mode 100644 index 00000000..512c82ab --- /dev/null +++ b/src/00_Second/Actor/Actor.cpp @@ -0,0 +1,177 @@ +#include "Actor/Actor.hpp" +#include "Unknown/UnkStruct_027e0cd8.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" + +ARM Actor::Actor() { + unk32 temp_r2; + unk32 temp_ip; + unk32 temp_r3; + + this->mUnk_1c.x = 0; + this->mUnk_1c.y = 0; + this->mUnk_1c.z = 0; + this->mUnk_2c = 0xCD; + this->mUnk_38 = 0; + this->mUnk_3c = 0; + this->mUnk_40 = 0; + this->mUnk_48 = 4; + this->mUnk_4c = -1; + this->mUnk_50 = 0; + this->mUnk_52 = 0; + this->mUnk_54 = 0; + this->mUnk_58 = 0; + this->mUnk_84 = 0; + this->mUnk_5c.func_ov000_020975f8(); + this->mUnk_8c = 0; + this->mUnk_90 = 0; + data_ov000_020b539c.func_02028cdc(&this->mUnk_5c, 0x30); + temp_r2 = this->mUnk_5c.mUnk_00; + temp_ip = this->mUnk_60; + temp_r3 = this->mUnk_64; + this->mUnk_04 = temp_r2; + this->mUnk_10 = temp_r2; + this->mUnk_28 = this->mUnk_68; + this->mUnk_58 = 0x400B; + this->mUnk_44 = 0xFF; + this->mUnk_08 = temp_ip; + this->mUnk_0c = temp_r3; + this->mUnk_14 = temp_ip; + this->mUnk_18 = temp_r3; + this->mUnk_46 = 0; + this->func_ov000_0209862c(0); + this->func_ov000_0209848c(data_ov000_020b539c.mUnk_30); +} + +ARM Actor::~Actor() {} + +// non-matching (equivalent) +ARM void Actor::func_ov000_0209848c(UnkStruct_ov000_020b539c_30 *param1) { + s16 unk_1c; + unk32 *temp_r3; + + unk_1c = param1->mUnk_1c; + temp_r3 = ¶m1->mUnk_04; + + this->mUnk_90 = param1; + this->mUnk_30 = this->mUnk_34 = temp_r3; + this->mUnk_4e = unk_1c; +} + +ARM unk32 Actor::vfunc_18() { + return 1; +} + +ARM void Actor::vfunc_1c() {} + +ARM void Actor::vfunc_20() {} + +ARM void Actor::vfunc_24() {} + +ARM void Actor::vfunc_28() {} + +ARM void Actor::vfunc_2c() {} + +ARM void Actor::vfunc_30() {} + +ARM unk32 Actor::vfunc_34() { + return 1; +} + +ARM void Actor::func_ov000_020984d0() { + this->mUnk_58 &= ~1; + + if (this->mUnk_58 & 0x10000) { + this->func_ov000_020984f0(); + } +} + +ARM void Actor::func_ov000_020984f0() { + if (this->mUnk_80 >= 0) { + data_027e0cd8->func_ov000_02081ecc(this->mUnk_80, 1); + } +} + +// non-matching +ARM unk32 Actor::vfunc_00(UnkStruct_vfunc_00 *param1) { + unk32 iVar1; + unk32 uVar2; + + uVar2 = this->mUnk_0c; + iVar1 = this->mUnk_08 + this->mUnk_4e; + param1->mUnk_00 = this->mUnk_04; + param1->mUnk_04 = iVar1; + param1->mUnk_08 = uVar2; + return iVar1; +} + +ARM void Actor::func_ov000_0209853c(void) { + data_027e0ce0->func_01fff148(); +} + +ARM bool Actor::vfunc_04() { + return this->mUnk_90->mUnk_1e & 1; +} + +ARM unk16 Actor::vfunc_08() { + return this->mUnk_90->mUnk_1a; +} + +ARM unk8 Actor::vfunc_0c() { + return this->mUnk_90->mUnk_18; +} + +// non-matching +ARM unk32 Actor::vfunc_38(unk32 param1) { + u16 var_r3; + short stack_c; + + var_r3 = param1 >> 16; + + if (this->mUnk_58 & 0x100) { + return 0; + } + + this->mUnk_58 |= 0x100; + stack_c = this->mUnk_58; + + switch (stack_c) { + case 0x100: + case 0x101: + if (stack_c == 0x101) { + var_r3 = 0; + } + + // ??? + *(&this->mUnk_4a + var_r3) = 0; + break; + default: + break; + } + + return 1; +} + +// non-matching +ARM bool Actor::vfunc_3c(Vec3p *param1) { + if (this->mUnk_58 & 0x100) { + this->mUnk_1c.x = param1->x; + this->mUnk_1c.y = param1->y; + this->mUnk_1c.z = param1->z; + this->mUnk_58 &= ~0x100; + return true; + } + + return false; +} + +// non-matching +ARM void Actor::func_ov000_0209862c(unk32 param1) { + s8 var_ip; + void *temp_r2; + + var_ip = 0; + do { + var_ip += 1; + (&this->mUnk_4a)[var_ip] = param1; + } while (var_ip < 2); +} diff --git a/tools/mangle.py b/tools/mangle.py index 68d2aeb3..af18bcf5 100644 --- a/tools/mangle.py +++ b/tools/mangle.py @@ -17,7 +17,7 @@ libc_include_dir = libs_dir / 'c' / 'include' libcpp_include_dir = libs_dir / 'cpp' / 'include' if platform.system() == 'Windows': cc = [str(cc_path)] -else: cc = ['wine', str(cc_path)] +else: cc = ['./wibo', str(cc_path)] args = parser.parse_args() From e31b9b7455291959534e177c3508f00a3fd14aaf Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 17:45:37 +0200 Subject: [PATCH 03/10] remove unused struct --- include/Actor/Actor.hpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 531d7454..32423853 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -11,12 +11,6 @@ struct UnkStruct_vfunc_00 { unk32 mUnk_08; }; -struct UnkStruct_vfunc_3c { - unk32 mUnk_00; - unk32 mUnk_04; - unk32 mUnk_08; -}; - class Actor_5c { public: /* 00 */ unk32 mUnk_00; From 11d03951a17d59f8c8b8ecfde423edb8e8f5f88c Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 20:09:03 +0200 Subject: [PATCH 04/10] sig apply for itcm --- config/eur/arm9/itcm/symbols.txt | 44 +++++++++++------------ config/eur/arm9/overlays/ov110/relocs.txt | 10 +++--- config/eur/arm9/symbols.txt | 2 +- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/config/eur/arm9/itcm/symbols.txt b/config/eur/arm9/itcm/symbols.txt index 27c07d7a..73611beb 100644 --- a/config/eur/arm9/itcm/symbols.txt +++ b/config/eur/arm9/itcm/symbols.txt @@ -22,7 +22,7 @@ func_01ff92a8 kind:function(arm,size=0x64) addr:0x01ff92a8 func_01ff930c kind:function(arm,size=0xc) addr:0x01ff930c func_01ff9318 kind:function(arm,size=0x4c) addr:0x01ff9318 func_01ff9364 kind:function(arm,size=0x28) addr:0x01ff9364 -func_01ff938c kind:function(arm,size=0x34) addr:0x01ff938c +Vec3p_TryNormalize kind:function(arm,size=0x34) addr:0x01ff938c func_01ff93c0 kind:function(arm,size=0x5c) addr:0x01ff93c0 func_01ff941c kind:function(arm,size=0x60) addr:0x01ff941c func_01ff947c kind:function(arm,size=0x50) addr:0x01ff947c @@ -52,35 +52,35 @@ func_01ff9ec4 kind:function(arm,size=0x30) addr:0x01ff9ec4 func_01ff9ef4 kind:function(arm,size=0x10) addr:0x01ff9ef4 func_01ff9f04 kind:function(arm,size=0x10) addr:0x01ff9f04 func_01ff9f14 kind:function(arm,size=0x24) addr:0x01ff9f14 -func_01ff9f38 kind:function(arm,size=0x18) addr:0x01ff9f38 +Mat2p_InitIdentity kind:function(arm,size=0x18) addr:0x01ff9f38 func_01ff9f50 kind:function(thumb,size=0xc) addr:0x01ff9f50 -func_01ff9f5c kind:function(thumb,size=0xc) addr:0x01ff9f5c +Mat2p_InitRotation kind:function(thumb,size=0xc) addr:0x01ff9f5c func_01ff9f68 kind:function(arm,size=0x54) addr:0x01ff9f68 func_01ff9fbc kind:function(arm,size=0xb0) addr:0x01ff9fbc -func_01ffa06c kind:function(arm,size=0x24) addr:0x01ffa06c -func_01ffa090 kind:function(arm,size=0x2c) addr:0x01ffa090 +Mat3p_InitIdentity kind:function(arm,size=0x24) addr:0x01ffa06c +Mat3p_CopyToMat4x3p kind:function(arm,size=0x2c) addr:0x01ffa090 func_01ffa0bc kind:function(arm,size=0xc8) addr:0x01ffa0bc -func_01ffa184 kind:function(thumb,size=0x1c) addr:0x01ffa184 -func_01ffa1a0 kind:function(thumb,size=0x1c) addr:0x01ffa1a0 -func_01ffa1bc kind:function(thumb,size=0x18) addr:0x01ffa1bc -func_01ffa1d4 kind:function(arm,size=0x154) addr:0x01ffa1d4 +Mat3p_InitXRotation kind:function(thumb,size=0x1c) addr:0x01ffa184 +Mat3p_InitYRotation kind:function(thumb,size=0x1c) addr:0x01ffa1a0 +Mat3p_InitZRotation kind:function(thumb,size=0x18) addr:0x01ffa1bc +Mat3p_func_01ff8248 kind:function(arm,size=0x154) addr:0x01ffa1d4 func_01ffa328 kind:function(arm,size=0x2e4) addr:0x01ffa328 func_01ffa60c kind:function(arm,size=0x194) addr:0x01ffa60c func_01ffa7a0 kind:function(arm,size=0x7c) addr:0x01ffa7a0 -func_01ffa81c kind:function(arm,size=0x28) addr:0x01ffa81c -func_01ffa844 kind:function(arm,size=0x34) addr:0x01ffa844 -func_01ffa878 kind:function(arm,size=0xac) addr:0x01ffa878 -func_01ffa924 kind:function(thumb,size=0x16) addr:0x01ffa924 +Mat4x3p_InitIdentity kind:function(arm,size=0x28) addr:0x01ffa81c +Mat4x3p_CopyToMat4p kind:function(arm,size=0x34) addr:0x01ffa844 +Mat4x3p_func_01ff8988 kind:function(arm,size=0xac) addr:0x01ffa878 +Mat4x3p_InitScale kind:function(thumb,size=0x16) addr:0x01ffa924 func_01ffa93c kind:function(arm,size=0x34) addr:0x01ffa93c -func_01ffa970 kind:function(thumb,size=0x1e) addr:0x01ffa970 -func_01ffa990 kind:function(thumb,size=0x1a) addr:0x01ffa990 -func_01ffa9ac kind:function(thumb,size=0x1a) addr:0x01ffa9ac -func_01ffa9c8 kind:function(arm,size=0x20) addr:0x01ffa9c8 +Mat4x3p_InitXRotation kind:function(thumb,size=0x1e) addr:0x01ffa970 +Mat4x3p_InitYRotation kind:function(thumb,size=0x1a) addr:0x01ffa990 +Mat4x3p_InitZRotation kind:function(thumb,size=0x1a) addr:0x01ffa9ac +Mat4x3p_func_01ff8ad8 kind:function(arm,size=0x20) addr:0x01ffa9c8 func_01ffa9e8 kind:function(arm,size=0x374) addr:0x01ffa9e8 func_01ffad5c kind:function(arm,size=0x218) addr:0x01ffad5c func_01ffaf74 kind:function(arm,size=0x98) addr:0x01ffaf74 -func_01ffb00c kind:function(arm,size=0x2c) addr:0x01ffb00c -func_01ffb038 kind:function(arm,size=0x34) addr:0x01ffb038 +Mat4p_InitIdentity kind:function(arm,size=0x2c) addr:0x01ffb00c +Mat4p_CopyToMat4x3p kind:function(arm,size=0x34) addr:0x01ffb038 func_01ffb06c kind:function(arm,size=0x3bc) addr:0x01ffb06c func_01ffb428 kind:function(arm,size=0x10) addr:0x01ffb428 func_01ffb438 kind:function(arm,size=0x2c) addr:0x01ffb438 @@ -97,12 +97,12 @@ func_01ffb618 kind:function(arm,size=0x2c) addr:0x01ffb618 func_01ffb644 kind:function(arm,size=0x28) addr:0x01ffb644 func_01ffb66c kind:function(arm,size=0x3c) addr:0x01ffb66c func_01ffb6a8 kind:function(arm,size=0x3c) addr:0x01ffb6a8 -func_01ffb6e4 kind:function(arm,size=0x30) addr:0x01ffb6e4 +Vec3p_Add kind:function(arm,size=0x30) addr:0x01ffb6e4 func_01ffb714 kind:function(arm,size=0x30) addr:0x01ffb714 -func_01ffb744 kind:function(arm,size=0x3c) addr:0x01ffb744 +Vec3p_Dot kind:function(arm,size=0x3c) addr:0x01ffb744 func_01ffb780 kind:function(arm,size=0x80) addr:0x01ffb780 func_01ffb800 kind:function(arm,size=0x60) addr:0x01ffb800 -func_01ffb860 kind:function(arm,size=0x114) addr:0x01ffb860 +Vec3p_Normalize kind:function(arm,size=0x114) addr:0x01ffb860 func_01ffb974 kind:function(arm,size=0x58) addr:0x01ffb974 func_01ffb9cc kind:function(arm,size=0x7c) addr:0x01ffb9cc func_01ffba48 kind:function(arm,size=0x198) addr:0x01ffba48 diff --git a/config/eur/arm9/overlays/ov110/relocs.txt b/config/eur/arm9/overlays/ov110/relocs.txt index 68462a00..7cbd975f 100644 --- a/config/eur/arm9/overlays/ov110/relocs.txt +++ b/config/eur/arm9/overlays/ov110/relocs.txt @@ -19,7 +19,7 @@ from:0x02184d88 kind:load to:0x020afc43 module:overlay(0) from:0x02184d8c kind:load to:0x020afc40 module:overlay(0) from:0x02184d90 kind:load to:0x020d8698 module:overlay(24) from:0x02184d94 kind:load to:0x02185dc8 module:overlay(110) -from:0x02184d98 kind:load to:0x02185dca module:overlay(110) +from:0x02184d98 kind:load to:0x02185dc8 add:0x1 module:overlay(110) from:0x02184d9c kind:load to:0x027e09b8 module:dtcm from:0x02184da0 kind:load to:0x020b6510 module:overlay(0) from:0x02184da4 kind:load to:0x020d86b0 module:overlay(24) @@ -30,8 +30,8 @@ from:0x02184e10 kind:arm_call to:0x0208a0f0 module:overlay(0) from:0x02184e2c kind:arm_call to:0x020590e4 module:overlay(0) from:0x02184e44 kind:arm_call_thumb to:0x02057b70 module:overlay(0) from:0x02184e60 kind:arm_call to:0x0203d160 module:main -from:0x02184e6c kind:load to:0x0218620c module:overlay(110) -from:0x02184e70 kind:load to:0x02186200 module:overlay(110) +from:0x02184e6c kind:load to:0x02186204 add:0x8 module:overlay(110) +from:0x02184e70 kind:load to:0x021861f8 add:0x8 module:overlay(110) from:0x02184e74 kind:load to:0x020a02d4 module:overlay(0) from:0x02184e78 kind:load to:0x02185d30 module:overlay(110) from:0x02184e90 kind:arm_call to:0x0205ca74 module:overlay(0) @@ -41,7 +41,7 @@ from:0x02184f0c kind:arm_call to:0x0203d210 module:main from:0x02184f14 kind:arm_call_thumb to:0x02057b8c module:overlay(0) from:0x02184f1c kind:arm_call to:0x0208a164 module:overlay(0) from:0x02184f24 kind:arm_call to:0x0208f8c4 module:overlay(0) -from:0x02184f30 kind:load to:0x0218620c module:overlay(110) +from:0x02184f30 kind:load to:0x02186204 add:0x8 module:overlay(110) from:0x02184f34 kind:load to:0x027e0cec module:dtcm from:0x02184f3c kind:load to:0x020a02d4 module:overlay(0) from:0x02184f54 kind:arm_call to:0x0205ca74 module:overlay(0) @@ -52,7 +52,7 @@ from:0x02184fd8 kind:arm_call_thumb to:0x02057b8c module:overlay(0) from:0x02184fe0 kind:arm_call to:0x0208a164 module:overlay(0) from:0x02184fe8 kind:arm_call to:0x0208f8c4 module:overlay(0) from:0x02184ff0 kind:arm_call to:0x02011ff4 module:main -from:0x02184ffc kind:load to:0x0218620c module:overlay(110) +from:0x02184ffc kind:load to:0x02186204 add:0x8 module:overlay(110) from:0x02185000 kind:load to:0x027e0cec module:dtcm from:0x02185008 kind:load to:0x020a02d4 module:overlay(0) from:0x0218511c kind:arm_call to:0x020aa02c module:overlay(0) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index d6dbf2b6..b317d0a1 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1613,7 +1613,7 @@ func_02028c78 kind:function(arm,size=0x18) addr:0x02028c78 func_02028c90 kind:function(arm,size=0x4c) addr:0x02028c90 _ZN24UnkStruct_ov000_020b539c13func_02028cdcEP8Actor_5ci kind:function(arm,size=0x38) addr:0x02028cdc func_02028d14 kind:function(arm,size=0x1c) addr:0x02028d14 -func_02028d30 kind:function(arm,size=0x1c) addr:0x02028d30 +CopySingle288 kind:function(arm,size=0x1c) addr:0x02028d30 func_02028d4c kind:function(arm,size=0x24) addr:0x02028d4c func_02028d70 kind:function(arm,size=0x2c) addr:0x02028d70 func_02028d9c kind:function(arm,size=0x94) addr:0x02028d9c From 578d2f3cdb46a285b78ec1aa18b75d2d2f0e338a Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 20:34:08 +0200 Subject: [PATCH 05/10] sig apply (jp) --- config/jp/arm9/itcm/symbols.txt | 42 ++++++++++++++++----------------- config/jp/arm9/symbols.txt | 34 +++++++++++++------------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/config/jp/arm9/itcm/symbols.txt b/config/jp/arm9/itcm/symbols.txt index 27c07d7a..b68e6d9a 100644 --- a/config/jp/arm9/itcm/symbols.txt +++ b/config/jp/arm9/itcm/symbols.txt @@ -22,7 +22,7 @@ func_01ff92a8 kind:function(arm,size=0x64) addr:0x01ff92a8 func_01ff930c kind:function(arm,size=0xc) addr:0x01ff930c func_01ff9318 kind:function(arm,size=0x4c) addr:0x01ff9318 func_01ff9364 kind:function(arm,size=0x28) addr:0x01ff9364 -func_01ff938c kind:function(arm,size=0x34) addr:0x01ff938c +Vec3p_TryNormalize kind:function(arm,size=0x34) addr:0x01ff938c func_01ff93c0 kind:function(arm,size=0x5c) addr:0x01ff93c0 func_01ff941c kind:function(arm,size=0x60) addr:0x01ff941c func_01ff947c kind:function(arm,size=0x50) addr:0x01ff947c @@ -52,35 +52,35 @@ func_01ff9ec4 kind:function(arm,size=0x30) addr:0x01ff9ec4 func_01ff9ef4 kind:function(arm,size=0x10) addr:0x01ff9ef4 func_01ff9f04 kind:function(arm,size=0x10) addr:0x01ff9f04 func_01ff9f14 kind:function(arm,size=0x24) addr:0x01ff9f14 -func_01ff9f38 kind:function(arm,size=0x18) addr:0x01ff9f38 +Mat2p_InitIdentity kind:function(arm,size=0x18) addr:0x01ff9f38 func_01ff9f50 kind:function(thumb,size=0xc) addr:0x01ff9f50 -func_01ff9f5c kind:function(thumb,size=0xc) addr:0x01ff9f5c +Mat2p_InitRotation kind:function(thumb,size=0xc) addr:0x01ff9f5c func_01ff9f68 kind:function(arm,size=0x54) addr:0x01ff9f68 func_01ff9fbc kind:function(arm,size=0xb0) addr:0x01ff9fbc -func_01ffa06c kind:function(arm,size=0x24) addr:0x01ffa06c -func_01ffa090 kind:function(arm,size=0x2c) addr:0x01ffa090 +Mat3p_InitIdentity kind:function(arm,size=0x24) addr:0x01ffa06c +Mat3p_CopyToMat4x3p kind:function(arm,size=0x2c) addr:0x01ffa090 func_01ffa0bc kind:function(arm,size=0xc8) addr:0x01ffa0bc -func_01ffa184 kind:function(thumb,size=0x1c) addr:0x01ffa184 -func_01ffa1a0 kind:function(thumb,size=0x1c) addr:0x01ffa1a0 -func_01ffa1bc kind:function(thumb,size=0x18) addr:0x01ffa1bc -func_01ffa1d4 kind:function(arm,size=0x154) addr:0x01ffa1d4 +Mat3p_InitXRotation kind:function(thumb,size=0x1c) addr:0x01ffa184 +Mat3p_InitYRotation kind:function(thumb,size=0x1c) addr:0x01ffa1a0 +Mat3p_InitZRotation kind:function(thumb,size=0x18) addr:0x01ffa1bc +Mat3p_func_01ff8248 kind:function(arm,size=0x154) addr:0x01ffa1d4 func_01ffa328 kind:function(arm,size=0x2e4) addr:0x01ffa328 func_01ffa60c kind:function(arm,size=0x194) addr:0x01ffa60c func_01ffa7a0 kind:function(arm,size=0x7c) addr:0x01ffa7a0 -func_01ffa81c kind:function(arm,size=0x28) addr:0x01ffa81c -func_01ffa844 kind:function(arm,size=0x34) addr:0x01ffa844 -func_01ffa878 kind:function(arm,size=0xac) addr:0x01ffa878 -func_01ffa924 kind:function(thumb,size=0x16) addr:0x01ffa924 +Mat4x3p_InitIdentity kind:function(arm,size=0x28) addr:0x01ffa81c +Mat4x3p_CopyToMat4p kind:function(arm,size=0x34) addr:0x01ffa844 +Mat4x3p_func_01ff8988 kind:function(arm,size=0xac) addr:0x01ffa878 +Mat4x3p_InitScale kind:function(thumb,size=0x16) addr:0x01ffa924 func_01ffa93c kind:function(arm,size=0x34) addr:0x01ffa93c -func_01ffa970 kind:function(thumb,size=0x1e) addr:0x01ffa970 -func_01ffa990 kind:function(thumb,size=0x1a) addr:0x01ffa990 -func_01ffa9ac kind:function(thumb,size=0x1a) addr:0x01ffa9ac -func_01ffa9c8 kind:function(arm,size=0x20) addr:0x01ffa9c8 +Mat4x3p_InitXRotation kind:function(thumb,size=0x1e) addr:0x01ffa970 +Mat4x3p_InitYRotation kind:function(thumb,size=0x1a) addr:0x01ffa990 +Mat4x3p_InitZRotation kind:function(thumb,size=0x1a) addr:0x01ffa9ac +Mat4x3p_func_01ff8ad8 kind:function(arm,size=0x20) addr:0x01ffa9c8 func_01ffa9e8 kind:function(arm,size=0x374) addr:0x01ffa9e8 func_01ffad5c kind:function(arm,size=0x218) addr:0x01ffad5c func_01ffaf74 kind:function(arm,size=0x98) addr:0x01ffaf74 -func_01ffb00c kind:function(arm,size=0x2c) addr:0x01ffb00c -func_01ffb038 kind:function(arm,size=0x34) addr:0x01ffb038 +Mat4p_InitIdentity kind:function(arm,size=0x2c) addr:0x01ffb00c +Mat4p_CopyToMat4x3p kind:function(arm,size=0x34) addr:0x01ffb038 func_01ffb06c kind:function(arm,size=0x3bc) addr:0x01ffb06c func_01ffb428 kind:function(arm,size=0x10) addr:0x01ffb428 func_01ffb438 kind:function(arm,size=0x2c) addr:0x01ffb438 @@ -99,10 +99,10 @@ func_01ffb66c kind:function(arm,size=0x3c) addr:0x01ffb66c func_01ffb6a8 kind:function(arm,size=0x3c) addr:0x01ffb6a8 func_01ffb6e4 kind:function(arm,size=0x30) addr:0x01ffb6e4 func_01ffb714 kind:function(arm,size=0x30) addr:0x01ffb714 -func_01ffb744 kind:function(arm,size=0x3c) addr:0x01ffb744 +Vec3p_Dot kind:function(arm,size=0x3c) addr:0x01ffb744 func_01ffb780 kind:function(arm,size=0x80) addr:0x01ffb780 func_01ffb800 kind:function(arm,size=0x60) addr:0x01ffb800 -func_01ffb860 kind:function(arm,size=0x114) addr:0x01ffb860 +Vec3p_Normalize kind:function(arm,size=0x114) addr:0x01ffb860 func_01ffb974 kind:function(arm,size=0x58) addr:0x01ffb974 func_01ffb9cc kind:function(arm,size=0x7c) addr:0x01ffb9cc func_01ffba48 kind:function(arm,size=0x198) addr:0x01ffba48 diff --git a/config/jp/arm9/symbols.txt b/config/jp/arm9/symbols.txt index 6d566902..f2f65ddb 100644 --- a/config/jp/arm9/symbols.txt +++ b/config/jp/arm9/symbols.txt @@ -1327,10 +1327,10 @@ func_02024880 kind:function(arm,size=0x80) addr:0x02024880 func_02024900 kind:function(thumb,size=0xcc) addr:0x02024900 func_020249cc kind:function(arm,size=0x38) addr:0x020249cc func_02024a04 kind:function(arm,size=0x38) addr:0x02024a04 -func_02024a3c kind:function(arm,size=0x3c) addr:0x02024a3c +GX_DispOff kind:function(arm,size=0x3c) addr:0x02024a3c func_02024a78 kind:function(arm,size=0x44) addr:0x02024a78 -func_02024abc kind:function(arm,size=0x68) addr:0x02024abc -func_02024b24 kind:function(arm,size=0x1c) addr:0x02024b24 +GX_SetGraphicsMode kind:function(arm,size=0x68) addr:0x02024abc +GXS_SetGraphicsMode kind:function(arm,size=0x1c) addr:0x02024b24 func_02024b40 kind:function(arm,size=0x28) addr:0x02024b40 func_02024b68 kind:function(arm,size=0x40) addr:0x02024b68 func_02024ba8 kind:function(arm,size=0x60) addr:0x02024ba8 @@ -1344,7 +1344,7 @@ func_020252e0 kind:function(arm,size=0xdc) addr:0x020252e0 func_020253bc kind:function(arm,size=0x100) addr:0x020253bc func_020254bc kind:function(arm,size=0x24) addr:0x020254bc func_020254e0 kind:function(arm,size=0x9c) addr:0x020254e0 -func_0202557c kind:function(arm,size=0x70) addr:0x0202557c +GX_SetBankForSubOBJ kind:function(arm,size=0x70) addr:0x0202557c func_020255ec kind:function(arm,size=0x80) addr:0x020255ec func_0202566c kind:function(arm,size=0x80) addr:0x0202566c func_020256ec kind:function(arm,size=0x38) addr:0x020256ec @@ -1538,7 +1538,7 @@ func_02028700 kind:function(arm,size=0x28) addr:0x02028700 func_02028728 kind:function(arm,size=0x94) addr:0x02028728 func_020287bc kind:function(arm,size=0xa0) addr:0x020287bc func_0202885c kind:function(arm,size=0x9c) addr:0x0202885c -func_020288f8 kind:function(arm,size=0x18) addr:0x020288f8 +OS_InitMutex kind:function(arm,size=0x18) addr:0x020288f8 func_02028910 kind:function(arm,size=0x80) addr:0x02028910 func_02028990 kind:function(arm,size=0x5c) addr:0x02028990 func_020289ec kind:function(arm,size=0x3c) addr:0x020289ec @@ -1634,7 +1634,7 @@ func_0202a1a8 kind:function(arm,size=0x18) addr:0x0202a1a8 func_0202a1c0 kind:function(arm,size=0x4c) addr:0x0202a1c0 func_0202a20c kind:function(arm,size=0x38) addr:0x0202a20c func_0202a244 kind:function(arm,size=0x1c) addr:0x0202a244 -func_0202a260 kind:function(arm,size=0x1c) addr:0x0202a260 +CopySingle288 kind:function(arm,size=0x1c) addr:0x0202a260 func_0202a27c kind:function(arm,size=0x24) addr:0x0202a27c func_0202a2a0 kind:function(arm,size=0x2c) addr:0x0202a2a0 func_0202a2cc kind:function(arm,size=0x94) addr:0x0202a2cc @@ -1696,7 +1696,7 @@ func_0202bcac kind:function(arm,size=0x28) addr:0x0202bcac func_0202bcd4 kind:function(arm,size=0x28) addr:0x0202bcd4 func_0202bcfc kind:function(arm,size=0x20) addr:0x0202bcfc func_0202bd1c kind:function(arm,size=0x44) addr:0x0202bd1c -func_0202bd60 kind:function(arm,size=0x38) addr:0x0202bd60 +SND_Init kind:function(arm,size=0x38) addr:0x0202bd60 func_0202bd98 kind:function(arm,size=0x14) addr:0x0202bd98 func_0202bdac kind:function(arm,size=0x14) addr:0x0202bdac func_0202bdc0 kind:function(arm,size=0xd0) addr:0x0202bdc0 @@ -1772,7 +1772,7 @@ func_0202e250 kind:function(arm,size=0x9c) addr:0x0202e250 func_0202e2ec kind:function(arm,size=0x70) addr:0x0202e2ec func_0202e35c kind:function(arm,size=0x20) addr:0x0202e35c func_0202e37c kind:function(arm,size=0x84) addr:0x0202e37c -func_0202e400 kind:function(arm,size=0x28) addr:0x0202e400 +FS_Init kind:function(arm,size=0x28) addr:0x0202e400 func_0202e428 kind:function(arm,size=0x10) addr:0x0202e428 func_0202e438 kind:function(arm,size=0x28) addr:0x0202e438 func_0202e460 kind:function(arm,size=0x13c) addr:0x0202e460 @@ -2064,9 +2064,9 @@ func_0203a2c4 kind:function(arm,size=0x2c) addr:0x0203a2c4 func_0203a2f0 kind:function(arm,size=0x8c) addr:0x0203a2f0 func_0203a37c kind:function(arm,size=0x318) addr:0x0203a37c func_0203a6ac kind:function(arm,size=0x3b4) addr:0x0203a6ac -func_0203aa60 kind:function(arm,size=0x364) addr:0x0203aa60 -func_0203adc4 kind:function(arm,size=0x104) addr:0x0203adc4 -func_0203aec8 kind:function(arm,size=0x40) addr:0x0203aec8 +_dmul kind:function(arm,size=0x364) addr:0x0203aa60 +_fflt kind:function(arm,size=0x104) addr:0x0203adc4 +_dflt kind:function(arm,size=0x40) addr:0x0203aec8 func_0203af08 kind:function(arm,size=0x3c) addr:0x0203af08 func_0203af44 kind:function(arm,size=0x98) addr:0x0203af44 func_0203afdc kind:function(arm,size=0xa4) addr:0x0203afdc @@ -2082,11 +2082,11 @@ func_0203b434 kind:function(arm,size=0x48) addr:0x0203b434 func_0203b47c kind:function(arm,size=0x48) addr:0x0203b47c func_0203b4c4 kind:function(arm,size=0x10) addr:0x0203b4c4 func_0203b4d4 kind:function(arm,size=0x1b0) addr:0x0203b4d4 -func_0203b684 kind:function(arm,size=0xc) addr:0x0203b684 +_ll_udiv kind:function(arm,size=0xc) addr:0x0203b684 func_0203b690 kind:function(arm,size=0x3c) addr:0x0203b690 func_0203b6cc kind:function(arm,size=0x20) addr:0x0203b6cc -func_0203b6ec kind:function(arm,size=0x20c) addr:0x0203b6ec -func_0203b8f8 kind:function(arm,size=0x1e4) addr:0x0203b8f8 +_s32_div_f kind:function(arm,size=0x20c) addr:0x0203b6ec +_u32_div_f kind:function(arm,size=0x1e4) addr:0x0203b8f8 .L_0203b900 kind:label(arm) addr:0x0203b900 func_0203badc kind:function(arm,size=0x34) addr:0x0203badc func_0203bb10 kind:function(arm,size=0x40) addr:0x0203bb10 @@ -2100,7 +2100,7 @@ func_0203c2a4 kind:function(arm,size=0x8) addr:0x0203c2a4 func_0203c2b8 kind:function(arm,size=0x278) addr:0x0203c2b8 func_0203c53c kind:function(arm,size=0x3b8) addr:0x0203c53c .L_0203c5f0 kind:data(byte[0]) addr:0x0203c5f0 -func_0203c90c kind:function(arm,size=0x544) addr:0x0203c90c +_ddiv kind:function(arm,size=0x544) addr:0x0203c90c .L_0203ca44 kind:data(byte[0]) addr:0x0203ca44 func_0203ce50 kind:function(arm,size=0x4) addr:0x0203ce50 func_0203ce54 kind:function(arm,size=0xc) addr:0x0203ce54 @@ -2131,7 +2131,7 @@ func_0203e2a0 kind:function(arm,size=0x28) addr:0x0203e2a0 func_0203e2c8 kind:function(arm,size=0x14) addr:0x0203e2c8 func_0203e2dc kind:function(arm,size=0xc) addr:0x0203e2dc func_0203e2e8 kind:function(arm,size=0x30) addr:0x0203e2e8 -func_0203e318 kind:function(arm,size=0x44) addr:0x0203e318 +__destroy_global_chain kind:function(arm,size=0x44) addr:0x0203e318 func_0203e35c kind:function(arm,size=0xc) addr:0x0203e35c func_0203e368 kind:function(arm,size=0xc) addr:0x0203e368 func_0203e374 kind:function(arm,size=0x18) addr:0x0203e374 @@ -2141,7 +2141,7 @@ func_0203e3c4 kind:function(arm,size=0x1b4) addr:0x0203e3c4 func_0203e578 kind:function(arm,size=0x48) addr:0x0203e578 func_0203e5c0 kind:function(arm,size=0x14) addr:0x0203e5c0 func_0203e5d4 kind:function(arm,size=0xbc) addr:0x0203e5d4 -func_0203e690 kind:function(arm,size=0xb0) addr:0x0203e690 +__cxa_vec_ctor kind:function(arm,size=0xb0) addr:0x0203e690 func_0203e740 kind:function(arm,size=0x48) addr:0x0203e740 func_0203e788 kind:function(arm,size=0x14) addr:0x0203e788 func_0203e79c kind:function(arm,size=0x4) addr:0x0203e79c From c42637697a6b74fb00daa714dbfe2d6a71cdcea0 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 22:45:36 +0200 Subject: [PATCH 06/10] fix build issues --- config/eur/arm9/overlays/ov000/symbols.txt | 4 +-- config/eur/arm9/overlays/ov110/symbols.txt | 34 +++++++++++----------- config/jp/arm9/overlays/ov110/relocs.txt | 8 ++--- config/jp/arm9/overlays/ov110/symbols.txt | 34 +++++++++++----------- 4 files changed, 40 insertions(+), 40 deletions(-) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index aa0ae95f..2f7398b4 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -2326,13 +2326,13 @@ _ZN5Actor8vfunc_30Ev kind:function(arm,size=0x4) addr:0x020984c4 _ZN5Actor8vfunc_34Ev kind:function(arm,size=0x8) addr:0x020984c8 _ZN5Actor19func_ov000_020984d0Ev kind:function(arm,size=0x20) addr:0x020984d0 _ZN5Actor19func_ov000_020984f0Ev kind:function(arm,size=0x28) addr:0x020984f0 -_ZN5Actor8vfunc_00EP18UnkStruct_vfunc_00 kind:function(arm,size=0x24) addr:0x02098518 +_ZN5Actor8vfunc_00EP5Vec3p kind:function(arm,size=0x24) addr:0x02098518 _ZN5Actor19func_ov000_0209853cEv kind:function(arm,size=0x18) addr:0x0209853c _ZN5Actor8vfunc_04Ev kind:function(arm,size=0x18) addr:0x02098554 _ZN5Actor8vfunc_08Ev kind:function(arm,size=0xc) addr:0x0209856c _ZN5Actor8vfunc_0cEv kind:function(arm,size=0xc) addr:0x02098578 _ZN5Actor8vfunc_38Ei kind:function(arm,size=0x6c) addr:0x02098584 -_ZN5Actor8vfunc_3cEP5Vec3p kind:function(arm,size=0x3c) addr:0x020985f0 +_ZN5Actor8vfunc_3cEiP5Vec3p kind:function(arm,size=0x3c) addr:0x020985f0 _ZN5Actor19func_ov000_0209862cEi kind:function(arm,size=0x28) addr:0x0209862c func_ov000_02098654 kind:function(arm,size=0x28) addr:0x02098654 func_ov000_0209867c kind:function(arm,size=0x38) addr:0x0209867c diff --git a/config/eur/arm9/overlays/ov110/symbols.txt b/config/eur/arm9/overlays/ov110/symbols.txt index a70b1e92..e9aa6e0e 100644 --- a/config/eur/arm9/overlays/ov110/symbols.txt +++ b/config/eur/arm9/overlays/ov110/symbols.txt @@ -1,26 +1,26 @@ -func_ov110_02184a40 kind:function(arm,size=0x36c) addr:0x02184a40 -func_ov110_02184dac kind:function(arm,size=0x30) addr:0x02184dac -func_ov110_02184ddc kind:function(arm,size=0xa0) addr:0x02184ddc -func_ov110_02184e7c kind:function(arm,size=0xc4) addr:0x02184e7c -func_ov110_02184f40 kind:function(arm,size=0xcc) addr:0x02184f40 -func_ov110_0218500c kind:function(arm,size=0x5d8) addr:0x0218500c -func_ov110_021855e4 kind:function(arm,size=0x6d0) addr:0x021855e4 -func_ov110_02185cb4 kind:function(arm,size=0x7c) addr:0x02185cb4 -func_ov110_02185d30 kind:function(arm,size=0xc) addr:0x02185d30 -func_ov110_02185d3c kind:function(thumb,size=0x66) addr:0x02185d3c -func_ov110_02185da4 kind:function(arm,size=0x10) addr:0x02185da4 -func_ov110_02185db4 kind:function(arm,size=0x10) addr:0x02185db4 +_ZN9PlayerGet19func_ov110_02184a40Ev kind:function(arm,size=0x36c) addr:0x02184a40 +_ZN9PlayerGet19func_ov110_02184dacEiii kind:function(arm,size=0x30) addr:0x02184dac +_ZN9PlayerGetC2Ev kind:function(arm,size=0xa0) addr:0x02184ddc +_ZN9PlayerGetD1Ev kind:function(arm,size=0xc4) addr:0x02184e7c +_ZN9PlayerGetD0Ev kind:function(arm,size=0xcc) addr:0x02184f40 +_ZN9PlayerGet8vfunc_0cEv kind:function(arm,size=0x5d8) addr:0x0218500c +_ZN9PlayerGet8vfunc_10Ev kind:function(arm,size=0x6d0) addr:0x021855e4 +_ZN9PlayerGet8vfunc_18Eiii kind:function(arm,size=0x7c) addr:0x02185cb4 +_ZN22UnkStruct_PlayerGet_ecC1Ev kind:function(arm,size=0xc) addr:0x02185d30 +_ZN18UnkStruct_027e0ce019func_ov110_02185d3cEi kind:function(thumb,size=0x66) addr:0x02185d3c +_ZN9PlayerGet19func_ov110_02185da4Ei kind:function(arm,size=0x10) addr:0x02185da4 +_ZN9PlayerGet19func_ov110_02185db4Ei kind:function(arm,size=0x10) addr:0x02185db4 +data_ov110_02185dc4 kind:data(any) addr:0x02185dc4 data_ov110_02185dc8 kind:data(any) addr:0x02185dc8 -data_ov110_02185dca kind:data(any) addr:0x02185dca data_ov110_02185de8 kind:data(any) addr:0x02185de8 data_ov110_02185fbc kind:data(any) addr:0x02185fbc data_ov110_021860c4 kind:data(any) addr:0x021860c4 ambiguous -__sinit_ov110_02186190 kind:function(arm,size=0x2c) addr:0x02186190 -.p__sinit_ov110_02186190 kind:data(word) addr:0x021861bc +__sinit_PlayerGet.cpp kind:function(arm,size=0x2c) addr:0x02186190 +.p__sinit_PlayerGet.cpp kind:data(word) addr:0x021861bc data_ov110_021861e0 kind:data(any) addr:0x021861e0 data_ov110_021861ec kind:data(any) addr:0x021861ec -data_ov110_02186200 kind:data(any) addr:0x02186200 -data_ov110_0218620c kind:data(any) addr:0x0218620c +_ZTV22UnkStruct_PlayerGet_74 kind:data(any) addr:0x021861f8 +_ZTV9PlayerGet kind:data(any) addr:0x02186204 data_ov110_02186240 kind:bss addr:0x02186240 data_ov110_02188e48 kind:bss addr:0x02188e48 ambiguous data_ov110_02188f08 kind:bss addr:0x02188f08 ambiguous diff --git a/config/jp/arm9/overlays/ov110/relocs.txt b/config/jp/arm9/overlays/ov110/relocs.txt index 608fc4f1..b3622cfa 100644 --- a/config/jp/arm9/overlays/ov110/relocs.txt +++ b/config/jp/arm9/overlays/ov110/relocs.txt @@ -30,8 +30,8 @@ from:0x02186990 kind:arm_call to:0x0208b7c4 module:overlay(0) from:0x021869ac kind:arm_call to:0x0205a664 module:overlay(0) from:0x021869c4 kind:arm_call_thumb to:0x020590f0 module:overlay(0) from:0x021869e0 kind:arm_call to:0x0203e690 module:main -from:0x021869ec kind:load to:0x02187e0c module:overlay(110) -from:0x021869f0 kind:load to:0x02187e00 module:overlay(110) +from:0x021869ec kind:load to:0x02187e04 add:8 module:overlay(110) +from:0x021869f0 kind:load to:0x02187df8 add:8 module:overlay(110) from:0x021869f4 kind:load to:0x020a1aac module:overlay(0) from:0x021869f8 kind:load to:0x02187930 module:overlay(110) from:0x02186a10 kind:arm_call to:0x0205dffc module:overlay(0) @@ -41,7 +41,7 @@ from:0x02186a8c kind:arm_call to:0x0203e740 module:main from:0x02186a94 kind:arm_call_thumb to:0x0205910c module:overlay(0) from:0x02186a9c kind:arm_call to:0x0208b838 module:overlay(0) from:0x02186aa4 kind:arm_call to:0x02090fa0 module:overlay(0) -from:0x02186ab0 kind:load to:0x02187e0c module:overlay(110) +from:0x02186ab0 kind:load to:0x02187e04 add:8 module:overlay(110) from:0x02186ab4 kind:load to:0x027e0cec module:dtcm from:0x02186abc kind:load to:0x020a1aac module:overlay(0) from:0x02186ad4 kind:arm_call to:0x0205dffc module:overlay(0) @@ -52,7 +52,7 @@ from:0x02186b58 kind:arm_call_thumb to:0x0205910c module:overlay(0) from:0x02186b60 kind:arm_call to:0x0208b838 module:overlay(0) from:0x02186b68 kind:arm_call to:0x02090fa0 module:overlay(0) from:0x02186b70 kind:arm_call to:0x02011ff4 module:main -from:0x02186b7c kind:load to:0x02187e0c module:overlay(110) +from:0x02186b7c kind:load to:0x02187e04 add:8 module:overlay(110) from:0x02186b80 kind:load to:0x027e0cec module:dtcm from:0x02186b88 kind:load to:0x020a1aac module:overlay(0) from:0x02186cf0 kind:arm_call to:0x020ab82c module:overlay(0) diff --git a/config/jp/arm9/overlays/ov110/symbols.txt b/config/jp/arm9/overlays/ov110/symbols.txt index 36f4d7ff..7eec4604 100644 --- a/config/jp/arm9/overlays/ov110/symbols.txt +++ b/config/jp/arm9/overlays/ov110/symbols.txt @@ -1,27 +1,27 @@ -func_ov110_021865c0 kind:function(arm,size=0x36c) addr:0x021865c0 -func_ov110_0218692c kind:function(arm,size=0x30) addr:0x0218692c -func_ov110_0218695c kind:function(arm,size=0xa0) addr:0x0218695c -func_ov110_021869fc kind:function(arm,size=0xc4) addr:0x021869fc -func_ov110_02186ac0 kind:function(arm,size=0xcc) addr:0x02186ac0 -func_ov110_02186b8c kind:function(arm,size=0x54) addr:0x02186b8c -func_ov110_02186be0 kind:function(arm,size=0x5d8) addr:0x02186be0 -func_ov110_021871b8 kind:function(arm,size=0x6fc) addr:0x021871b8 -func_ov110_021878b4 kind:function(arm,size=0x7c) addr:0x021878b4 -func_ov110_02187930 kind:function(arm,size=0xc) addr:0x02187930 -func_ov110_0218793c kind:function(thumb,size=0x66) addr:0x0218793c -func_ov110_021879a4 kind:function(arm,size=0x10) addr:0x021879a4 -func_ov110_021879b4 kind:function(arm,size=0x10) addr:0x021879b4 +_ZN9PlayerGet19func_ov110_02184a40Ev kind:function(arm,size=0x36c) addr:0x021865c0 +_ZN9PlayerGet19func_ov110_02184dacEiii kind:function(arm,size=0x30) addr:0x0218692c +_ZN9PlayerGetC2Ev kind:function(arm,size=0xa0) addr:0x0218695c +_ZN9PlayerGetD1Ev kind:function(arm,size=0xc4) addr:0x021869fc +_ZN9PlayerGetD0Ev kind:function(arm,size=0xcc) addr:0x02186ac0 +_ZN9PlayerGet19func_ov110_02186b8cEv kind:function(arm,size=0x54) addr:0x02186b8c +_ZN9PlayerGet8vfunc_0cEv kind:function(arm,size=0x5d8) addr:0x02186be0 +_ZN9PlayerGet8vfunc_10Ev kind:function(arm,size=0x6fc) addr:0x021871b8 +_ZN9PlayerGet8vfunc_18Eiii kind:function(arm,size=0x7c) addr:0x021878b4 +_ZN22UnkStruct_PlayerGet_ecC1Ev kind:function(arm,size=0xc) addr:0x02187930 +_ZN18UnkStruct_027e0ce019func_ov110_02185d3cEi kind:function(thumb,size=0x66) addr:0x0218793c +_ZN9PlayerGet19func_ov110_02185da4Ei kind:function(arm,size=0x10) addr:0x021879a4 +_ZN9PlayerGet19func_ov110_02185db4Ei kind:function(arm,size=0x10) addr:0x021879b4 data_ov110_021879c8 kind:data(any) addr:0x021879c8 data_ov110_021879ca kind:data(any) addr:0x021879ca data_ov110_021879e8 kind:data(any) addr:0x021879e8 data_ov110_02187bbc kind:data(any) addr:0x02187bbc data_ov110_02187c44 kind:data(any) addr:0x02187c44 ambiguous -__sinit_ov110_02187d90 kind:function(arm,size=0x2c) addr:0x02187d90 -.p__sinit_ov110_02187d90 kind:data(word) addr:0x02187dbc +__sinit_PlayerGet.cpp kind:function(arm,size=0x2c) addr:0x02187d90 +.p__sinit_PlayerGet.cpp kind:data(word) addr:0x02187dbc data_ov110_02187de0 kind:data(any) addr:0x02187de0 data_ov110_02187dec kind:data(any) addr:0x02187dec -data_ov110_02187e00 kind:data(any) addr:0x02187e00 -data_ov110_02187e0c kind:data(any) addr:0x02187e0c +_ZTV22UnkStruct_PlayerGet_74 kind:data(any) addr:0x02187df8 +_ZTV9PlayerGet kind:data(any) addr:0x02187e04 data_ov110_02187e40 kind:bss addr:0x02187e40 data_ov110_0218a9c8 kind:bss addr:0x0218a9c8 ambiguous data_ov110_0218aa88 kind:bss addr:0x0218aa88 ambiguous From 182a7d879fba767f7b72b57ac8fa03fa44d824ad Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 22:46:10 +0200 Subject: [PATCH 07/10] improve Actor class --- include/Actor/Actor.hpp | 35 ++++++++--------------- src/00_Second/Actor/Actor.cpp | 54 +++++++++++++---------------------- 2 files changed, 32 insertions(+), 57 deletions(-) diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 32423853..a21a8d6b 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -5,15 +5,12 @@ #include "global.h" #include "types.h" -struct UnkStruct_vfunc_00 { - unk32 mUnk_00; - unk32 mUnk_04; - unk32 mUnk_08; -}; - class Actor_5c { public: - /* 00 */ unk32 mUnk_00; + /* 00 */ Vec3p mUnk_00; + /* 0c */ s16 mUnk_0c; + /* 0e */ unk16 mUnk_0e; // padding? + /* 10 */ void func_ov000_020975f8(); }; @@ -43,19 +40,15 @@ public: class Actor : public SysObject { public: /* 00 (vtable) */ - /* 04 */ unk32 mUnk_04; - /* 08 */ unk32 mUnk_08; - /* 0c */ unk32 mUnk_0c; - /* 10 */ unk32 mUnk_10; - /* 14 */ unk32 mUnk_14; - /* 18 */ unk32 mUnk_18; - /* 1c */ Vec3p mUnk_1c; - /* 28 */ u16 mUnk_28; + /* 04 */ Vec3p mPos; + /* 10 */ Vec3p mPrevPos; + /* 1c */ Vec3p mVel; + /* 28 */ u16 mAngle; /* 28 */ unk16 mUnk_2a; - /* 2c */ unk32 mUnk_2c; + /* 2c */ unk32 mUnk_2c; // gravity? /* 30 */ unk32 *mUnk_30; /* 34 */ unk32 *mUnk_34; - /* 38 */ unk32 mUnk_38; + /* 38 */ unk32 *mUnk_38; /* 3c */ unk32 mUnk_3c; /* 40 */ unk32 mUnk_40; /* 44 */ u16 mUnk_44; @@ -70,10 +63,6 @@ public: /* 54 */ unk32 mUnk_54; /* 58 */ unk32 mUnk_58; /* 5c */ Actor_5c mUnk_5c; - /* 60 */ unk32 mUnk_60; - /* 64 */ unk32 mUnk_64; - /* 68 */ s16 mUnk_68; - /* 68 */ unk16 mUnk_6a; /* 6c */ unk32 mUnk_6c; /* 70 */ unk32 mUnk_70; /* 74 */ unk32 mUnk_74; @@ -86,7 +75,7 @@ public: /* 8c */ unk32 mUnk_8c; /* 90 */ UnkStruct_ov000_020b539c_30 *mUnk_90; - /* 00 */ virtual unk32 vfunc_00(UnkStruct_vfunc_00 *param1); + /* 00 */ virtual void vfunc_00(Vec3p *param1); /* 04 */ virtual bool vfunc_04(); /* 08 */ virtual unk16 vfunc_08(); /* 0c */ virtual unk8 vfunc_0c(); @@ -101,7 +90,7 @@ public: /* 30 */ virtual void vfunc_30(); /* 34 */ virtual unk32 vfunc_34(); /* 38 */ virtual unk32 vfunc_38(unk32 param1); - /* 3c */ virtual bool vfunc_3c(Vec3p* param1); + /* 3c */ virtual bool vfunc_3c(unk32 param2, Vec3p* param3); /* 40 */ virtual void vfunc_40(); /* 44 */ virtual void vfunc_44(); /* 48 */ virtual void vfunc_48(); diff --git a/src/00_Second/Actor/Actor.cpp b/src/00_Second/Actor/Actor.cpp index 512c82ab..b8ca65d3 100644 --- a/src/00_Second/Actor/Actor.cpp +++ b/src/00_Second/Actor/Actor.cpp @@ -3,13 +3,9 @@ #include "Unknown/UnkStruct_027e0ce0.hpp" ARM Actor::Actor() { - unk32 temp_r2; - unk32 temp_ip; - unk32 temp_r3; - - this->mUnk_1c.x = 0; - this->mUnk_1c.y = 0; - this->mUnk_1c.z = 0; + this->mVel.x = 0; + this->mVel.y = 0; + this->mVel.z = 0; this->mUnk_2c = 0xCD; this->mUnk_38 = 0; this->mUnk_3c = 0; @@ -25,18 +21,10 @@ ARM Actor::Actor() { this->mUnk_8c = 0; this->mUnk_90 = 0; data_ov000_020b539c.func_02028cdc(&this->mUnk_5c, 0x30); - temp_r2 = this->mUnk_5c.mUnk_00; - temp_ip = this->mUnk_60; - temp_r3 = this->mUnk_64; - this->mUnk_04 = temp_r2; - this->mUnk_10 = temp_r2; - this->mUnk_28 = this->mUnk_68; + this->mPrevPos = this->mPos = this->mUnk_5c.mUnk_00; + this->mAngle = this->mUnk_5c.mUnk_0c; this->mUnk_58 = 0x400B; this->mUnk_44 = 0xFF; - this->mUnk_08 = temp_ip; - this->mUnk_0c = temp_r3; - this->mUnk_14 = temp_ip; - this->mUnk_18 = temp_r3; this->mUnk_46 = 0; this->func_ov000_0209862c(0); this->func_ov000_0209848c(data_ov000_020b539c.mUnk_30); @@ -92,16 +80,16 @@ ARM void Actor::func_ov000_020984f0() { } // non-matching -ARM unk32 Actor::vfunc_00(UnkStruct_vfunc_00 *param1) { - unk32 iVar1; - unk32 uVar2; +ARM void Actor::vfunc_00(Vec3p *param1) { + *param1 = mPos; + param1->y += mUnk_4e; + // short sVar1; + // int iVar2; + // int iVar3; - uVar2 = this->mUnk_0c; - iVar1 = this->mUnk_08 + this->mUnk_4e; - param1->mUnk_00 = this->mUnk_04; - param1->mUnk_04 = iVar1; - param1->mUnk_08 = uVar2; - return iVar1; + // param1->x = this->mPos.x; + // param1->y = this->mPos.y + this->mUnk_4e; + // param1->z = this->mPos.z; } ARM void Actor::func_ov000_0209853c(void) { @@ -152,16 +140,14 @@ ARM unk32 Actor::vfunc_38(unk32 param1) { } // non-matching -ARM bool Actor::vfunc_3c(Vec3p *param1) { - if (this->mUnk_58 & 0x100) { - this->mUnk_1c.x = param1->x; - this->mUnk_1c.y = param1->y; - this->mUnk_1c.z = param1->z; - this->mUnk_58 &= ~0x100; - return true; +ARM bool Actor::vfunc_3c(unk32 param2, Vec3p* param3) { + if (!(this->mUnk_58 & 0x100)) { + return false; } - return false; + this->mVel = *param3; + this->mUnk_58 &= ~0x100; + return true; } // non-matching From d99cabdfb5672ac60f73fede6ec93277da475443 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 22:51:26 +0200 Subject: [PATCH 08/10] Add badges to README.md Co-authored-by: encounter <549122+encounter@users.noreply.github.com> --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a754a2f6..2512199e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,13 @@ -# The Legend of Zelda: Spirit Tracks +The Legend of Zelda: Spirit Tracks +[![Build Status]][actions] [![Progress]][decomp.dev] [![Discord Badge]][discord] +============= + +[Build Status]: https://github.com/Yanis002/st/actions/workflows/build.yml/badge.svg +[actions]: https://github.com/Yanis002/st/actions/workflows/build.yml +[Progress]: https://decomp.dev/Yanis002/st.svg?mode=shield&label=Code +[decomp.dev]: https://decomp.dev/Yanis002/st +[Discord Badge]: https://img.shields.io/discord/688807550715560050?color=%237289DA&logo=discord&logoColor=%23FFFFFF +[discord]: https://discord.com/invite/DqwyCBYKqf/ **Work in progress!** This project aims to recreate source code for ***The Legend of Zelda: Spirit Tracks*** by decompiling its code by hand. **The repository does not contain assets or assembly code.** To build the ROM, you must own an existing copy of the game to extract assets from. From 7fa74389e54ca71ae0345c9b947ba7400c86cdb4 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 22:55:27 +0200 Subject: [PATCH 09/10] fix build issues for real --- config/eur/arm9/overlays/ov110/relocs.txt | 10 +++---- config/eur/arm9/overlays/ov110/symbols.txt | 34 +++++++++++----------- include/Actor/Actor.hpp | 4 +-- include/Unknown/UnkStruct_027e0cd8.hpp | 2 +- src/00_Second/Actor/Actor.cpp | 16 +++++----- 5 files changed, 33 insertions(+), 33 deletions(-) diff --git a/config/eur/arm9/overlays/ov110/relocs.txt b/config/eur/arm9/overlays/ov110/relocs.txt index 7cbd975f..68462a00 100644 --- a/config/eur/arm9/overlays/ov110/relocs.txt +++ b/config/eur/arm9/overlays/ov110/relocs.txt @@ -19,7 +19,7 @@ from:0x02184d88 kind:load to:0x020afc43 module:overlay(0) from:0x02184d8c kind:load to:0x020afc40 module:overlay(0) from:0x02184d90 kind:load to:0x020d8698 module:overlay(24) from:0x02184d94 kind:load to:0x02185dc8 module:overlay(110) -from:0x02184d98 kind:load to:0x02185dc8 add:0x1 module:overlay(110) +from:0x02184d98 kind:load to:0x02185dca module:overlay(110) from:0x02184d9c kind:load to:0x027e09b8 module:dtcm from:0x02184da0 kind:load to:0x020b6510 module:overlay(0) from:0x02184da4 kind:load to:0x020d86b0 module:overlay(24) @@ -30,8 +30,8 @@ from:0x02184e10 kind:arm_call to:0x0208a0f0 module:overlay(0) from:0x02184e2c kind:arm_call to:0x020590e4 module:overlay(0) from:0x02184e44 kind:arm_call_thumb to:0x02057b70 module:overlay(0) from:0x02184e60 kind:arm_call to:0x0203d160 module:main -from:0x02184e6c kind:load to:0x02186204 add:0x8 module:overlay(110) -from:0x02184e70 kind:load to:0x021861f8 add:0x8 module:overlay(110) +from:0x02184e6c kind:load to:0x0218620c module:overlay(110) +from:0x02184e70 kind:load to:0x02186200 module:overlay(110) from:0x02184e74 kind:load to:0x020a02d4 module:overlay(0) from:0x02184e78 kind:load to:0x02185d30 module:overlay(110) from:0x02184e90 kind:arm_call to:0x0205ca74 module:overlay(0) @@ -41,7 +41,7 @@ from:0x02184f0c kind:arm_call to:0x0203d210 module:main from:0x02184f14 kind:arm_call_thumb to:0x02057b8c module:overlay(0) from:0x02184f1c kind:arm_call to:0x0208a164 module:overlay(0) from:0x02184f24 kind:arm_call to:0x0208f8c4 module:overlay(0) -from:0x02184f30 kind:load to:0x02186204 add:0x8 module:overlay(110) +from:0x02184f30 kind:load to:0x0218620c module:overlay(110) from:0x02184f34 kind:load to:0x027e0cec module:dtcm from:0x02184f3c kind:load to:0x020a02d4 module:overlay(0) from:0x02184f54 kind:arm_call to:0x0205ca74 module:overlay(0) @@ -52,7 +52,7 @@ from:0x02184fd8 kind:arm_call_thumb to:0x02057b8c module:overlay(0) from:0x02184fe0 kind:arm_call to:0x0208a164 module:overlay(0) from:0x02184fe8 kind:arm_call to:0x0208f8c4 module:overlay(0) from:0x02184ff0 kind:arm_call to:0x02011ff4 module:main -from:0x02184ffc kind:load to:0x02186204 add:0x8 module:overlay(110) +from:0x02184ffc kind:load to:0x0218620c module:overlay(110) from:0x02185000 kind:load to:0x027e0cec module:dtcm from:0x02185008 kind:load to:0x020a02d4 module:overlay(0) from:0x0218511c kind:arm_call to:0x020aa02c module:overlay(0) diff --git a/config/eur/arm9/overlays/ov110/symbols.txt b/config/eur/arm9/overlays/ov110/symbols.txt index e9aa6e0e..a70b1e92 100644 --- a/config/eur/arm9/overlays/ov110/symbols.txt +++ b/config/eur/arm9/overlays/ov110/symbols.txt @@ -1,26 +1,26 @@ -_ZN9PlayerGet19func_ov110_02184a40Ev kind:function(arm,size=0x36c) addr:0x02184a40 -_ZN9PlayerGet19func_ov110_02184dacEiii kind:function(arm,size=0x30) addr:0x02184dac -_ZN9PlayerGetC2Ev kind:function(arm,size=0xa0) addr:0x02184ddc -_ZN9PlayerGetD1Ev kind:function(arm,size=0xc4) addr:0x02184e7c -_ZN9PlayerGetD0Ev kind:function(arm,size=0xcc) addr:0x02184f40 -_ZN9PlayerGet8vfunc_0cEv kind:function(arm,size=0x5d8) addr:0x0218500c -_ZN9PlayerGet8vfunc_10Ev kind:function(arm,size=0x6d0) addr:0x021855e4 -_ZN9PlayerGet8vfunc_18Eiii kind:function(arm,size=0x7c) addr:0x02185cb4 -_ZN22UnkStruct_PlayerGet_ecC1Ev kind:function(arm,size=0xc) addr:0x02185d30 -_ZN18UnkStruct_027e0ce019func_ov110_02185d3cEi kind:function(thumb,size=0x66) addr:0x02185d3c -_ZN9PlayerGet19func_ov110_02185da4Ei kind:function(arm,size=0x10) addr:0x02185da4 -_ZN9PlayerGet19func_ov110_02185db4Ei kind:function(arm,size=0x10) addr:0x02185db4 -data_ov110_02185dc4 kind:data(any) addr:0x02185dc4 +func_ov110_02184a40 kind:function(arm,size=0x36c) addr:0x02184a40 +func_ov110_02184dac kind:function(arm,size=0x30) addr:0x02184dac +func_ov110_02184ddc kind:function(arm,size=0xa0) addr:0x02184ddc +func_ov110_02184e7c kind:function(arm,size=0xc4) addr:0x02184e7c +func_ov110_02184f40 kind:function(arm,size=0xcc) addr:0x02184f40 +func_ov110_0218500c kind:function(arm,size=0x5d8) addr:0x0218500c +func_ov110_021855e4 kind:function(arm,size=0x6d0) addr:0x021855e4 +func_ov110_02185cb4 kind:function(arm,size=0x7c) addr:0x02185cb4 +func_ov110_02185d30 kind:function(arm,size=0xc) addr:0x02185d30 +func_ov110_02185d3c kind:function(thumb,size=0x66) addr:0x02185d3c +func_ov110_02185da4 kind:function(arm,size=0x10) addr:0x02185da4 +func_ov110_02185db4 kind:function(arm,size=0x10) addr:0x02185db4 data_ov110_02185dc8 kind:data(any) addr:0x02185dc8 +data_ov110_02185dca kind:data(any) addr:0x02185dca data_ov110_02185de8 kind:data(any) addr:0x02185de8 data_ov110_02185fbc kind:data(any) addr:0x02185fbc data_ov110_021860c4 kind:data(any) addr:0x021860c4 ambiguous -__sinit_PlayerGet.cpp kind:function(arm,size=0x2c) addr:0x02186190 -.p__sinit_PlayerGet.cpp kind:data(word) addr:0x021861bc +__sinit_ov110_02186190 kind:function(arm,size=0x2c) addr:0x02186190 +.p__sinit_ov110_02186190 kind:data(word) addr:0x021861bc data_ov110_021861e0 kind:data(any) addr:0x021861e0 data_ov110_021861ec kind:data(any) addr:0x021861ec -_ZTV22UnkStruct_PlayerGet_74 kind:data(any) addr:0x021861f8 -_ZTV9PlayerGet kind:data(any) addr:0x02186204 +data_ov110_02186200 kind:data(any) addr:0x02186200 +data_ov110_0218620c kind:data(any) addr:0x0218620c data_ov110_02186240 kind:bss addr:0x02186240 data_ov110_02188e48 kind:bss addr:0x02188e48 ambiguous data_ov110_02188f08 kind:bss addr:0x02188f08 ambiguous diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index a21a8d6b..4f05e920 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -1,8 +1,8 @@ #pragma once #include "System/SysNew.hpp" -#include "nitro/math.h" #include "global.h" +#include "nitro/math.h" #include "types.h" class Actor_5c { @@ -90,7 +90,7 @@ public: /* 30 */ virtual void vfunc_30(); /* 34 */ virtual unk32 vfunc_34(); /* 38 */ virtual unk32 vfunc_38(unk32 param1); - /* 3c */ virtual bool vfunc_3c(unk32 param2, Vec3p* param3); + /* 3c */ virtual bool vfunc_3c(unk32 param2, Vec3p *param3); /* 40 */ virtual void vfunc_40(); /* 44 */ virtual void vfunc_44(); /* 48 */ virtual void vfunc_48(); diff --git a/include/Unknown/UnkStruct_027e0cd8.hpp b/include/Unknown/UnkStruct_027e0cd8.hpp index 998b082b..e802c8a5 100644 --- a/include/Unknown/UnkStruct_027e0cd8.hpp +++ b/include/Unknown/UnkStruct_027e0cd8.hpp @@ -7,4 +7,4 @@ public: void func_ov000_02081ecc(unk16 param1, unk32 param2); }; -extern UnkStruct_027e0cd8* data_027e0cd8; +extern UnkStruct_027e0cd8 *data_027e0cd8; diff --git a/src/00_Second/Actor/Actor.cpp b/src/00_Second/Actor/Actor.cpp index b8ca65d3..0b8af2d8 100644 --- a/src/00_Second/Actor/Actor.cpp +++ b/src/00_Second/Actor/Actor.cpp @@ -3,9 +3,9 @@ #include "Unknown/UnkStruct_027e0ce0.hpp" ARM Actor::Actor() { - this->mVel.x = 0; - this->mVel.y = 0; - this->mVel.z = 0; + this->mVel.x = 0; + this->mVel.y = 0; + this->mVel.z = 0; this->mUnk_2c = 0xCD; this->mUnk_38 = 0; this->mUnk_3c = 0; @@ -22,10 +22,10 @@ ARM Actor::Actor() { this->mUnk_90 = 0; data_ov000_020b539c.func_02028cdc(&this->mUnk_5c, 0x30); this->mPrevPos = this->mPos = this->mUnk_5c.mUnk_00; - this->mAngle = this->mUnk_5c.mUnk_0c; - this->mUnk_58 = 0x400B; - this->mUnk_44 = 0xFF; - this->mUnk_46 = 0; + this->mAngle = this->mUnk_5c.mUnk_0c; + this->mUnk_58 = 0x400B; + this->mUnk_44 = 0xFF; + this->mUnk_46 = 0; this->func_ov000_0209862c(0); this->func_ov000_0209848c(data_ov000_020b539c.mUnk_30); } @@ -140,7 +140,7 @@ ARM unk32 Actor::vfunc_38(unk32 param1) { } // non-matching -ARM bool Actor::vfunc_3c(unk32 param2, Vec3p* param3) { +ARM bool Actor::vfunc_3c(unk32 param2, Vec3p *param3) { if (!(this->mUnk_58 & 0x100)) { return false; } From 793a69a9019b106734b75ffcb89ad72fe7d8ea0d Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Tue, 22 Jul 2025 22:57:17 +0200 Subject: [PATCH 10/10] fix readme badges position --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2512199e..ba615bcf 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -The Legend of Zelda: Spirit Tracks +The Legend of Zelda: Spirit Tracks [![Build Status]][actions] [![Progress]][decomp.dev] [![Discord Badge]][discord] =============