From 767b0b099fc192b20953947cc9179b5cb70b07fa Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 5 Jul 2025 11:52:32 +0200 Subject: [PATCH 1/2] Delink GameModeBattle --- config/eur/arm9/overlays/ov012/delinks.txt | 2 ++ config/eur/arm9/overlays/ov012/symbols.txt | 22 ++++++++-------- config/usa/arm9/overlays/ov012/delinks.txt | 2 ++ config/usa/arm9/overlays/ov012/symbols.txt | 22 ++++++++-------- include/Game/GameModeBattle.hpp | 30 ++++++++++++++++++++++ src/12_Battle/Game/GameModeBattle.cpp | 12 +++++++++ 6 files changed, 68 insertions(+), 22 deletions(-) create mode 100644 include/Game/GameModeBattle.hpp create mode 100644 src/12_Battle/Game/GameModeBattle.cpp diff --git a/config/eur/arm9/overlays/ov012/delinks.txt b/config/eur/arm9/overlays/ov012/delinks.txt index 756c7714..00b4bba1 100644 --- a/config/eur/arm9/overlays/ov012/delinks.txt +++ b/config/eur/arm9/overlays/ov012/delinks.txt @@ -5,3 +5,5 @@ .data start:0x02135920 end:0x02137c60 kind:data align:32 .bss start:0x02137c60 end:0x0213dec0 kind:bss align:32 +src/12_Battle/Game/GameModeBattle.cpp: + .text start:0x02112d20 end:0x02113208 diff --git a/config/eur/arm9/overlays/ov012/symbols.txt b/config/eur/arm9/overlays/ov012/symbols.txt index 573e63ce..c089527e 100644 --- a/config/eur/arm9/overlays/ov012/symbols.txt +++ b/config/eur/arm9/overlays/ov012/symbols.txt @@ -1,16 +1,16 @@ func_ov012_02112c20 kind:function(arm,size=0x38) addr:0x02112c20 func_ov012_02112c58 kind:function(arm,size=0x50) addr:0x02112c58 func_ov012_02112ca8 kind:function(arm,size=0x78) addr:0x02112ca8 -func_ov012_02112d20 kind:function(arm,size=0x34) addr:0x02112d20 -func_ov012_02112d54 kind:function(arm,size=0x184) addr:0x02112d54 -func_ov012_02112ed8 kind:function(arm,size=0xec) addr:0x02112ed8 -func_ov012_02112fc4 kind:function(arm,size=0xf4) addr:0x02112fc4 -func_ov012_021130b8 kind:function(arm,size=0x18) addr:0x021130b8 -func_ov012_021130d0 kind:function(arm,size=0xe4) addr:0x021130d0 -func_ov012_021131b4 kind:function(arm,size=0x10) addr:0x021131b4 -func_ov012_021131c4 kind:function(arm,size=0x1c) addr:0x021131c4 -func_ov012_021131e0 kind:function(arm,size=0x10) addr:0x021131e0 -func_ov012_021131f0 kind:function(arm,size=0x18) addr:0x021131f0 +_ZN14GameModeBattle6CreateEi kind:function(arm,size=0x34) addr:0x02112d20 +_ZN14GameModeBattleC1Ei kind:function(arm,size=0x184) addr:0x02112d54 +_ZN14GameModeBattleD0Ev kind:function(arm,size=0xec) addr:0x02112ed8 +_ZN14GameModeBattleD2Ev kind:function(arm,size=0xf4) addr:0x02112fc4 +_ZN14GameModeBattle8vfunc_24Ev kind:function(arm,size=0x18) addr:0x021130b8 +_ZN14GameModeBattle8vfunc_08Ei kind:function(arm,size=0xe4) addr:0x021130d0 +_ZN14GameModeBattle8vfunc_0cEPt kind:function(arm,size=0x10) addr:0x021131b4 +_ZN14GameModeBattle8vfunc_10EPt kind:function(arm,size=0x1c) addr:0x021131c4 +_ZN14GameModeBattle8vfunc_14EPt kind:function(arm,size=0x10) addr:0x021131e0 +_ZN14GameModeBattle8vfunc_18Ev kind:function(arm,size=0x18) addr:0x021131f0 func_ov012_02113208 kind:function(arm,size=0x24) addr:0x02113208 func_ov012_0211322c kind:function(arm,size=0x24) addr:0x0211322c func_ov012_02113250 kind:function(arm,size=0x48) addr:0x02113250 @@ -1099,7 +1099,7 @@ data_ov012_02135930 kind:data(any) addr:0x02135930 data_ov012_02135934 kind:data(any) addr:0x02135934 data_ov012_02135938 kind:data(any) addr:0x02135938 data_ov012_0213593c kind:data(any) addr:0x0213593c -data_ov012_02135968 kind:data(any) addr:0x02135968 +_ZTV14GameModeBattle kind:data(any) addr:0x02135968 data_ov012_02135990 kind:data(any) addr:0x02135990 data_ov012_02135994 kind:data(any) addr:0x02135994 data_ov012_02135998 kind:data(any) addr:0x02135998 diff --git a/config/usa/arm9/overlays/ov012/delinks.txt b/config/usa/arm9/overlays/ov012/delinks.txt index 42eb8bf6..5898db70 100644 --- a/config/usa/arm9/overlays/ov012/delinks.txt +++ b/config/usa/arm9/overlays/ov012/delinks.txt @@ -5,3 +5,5 @@ .data start:0x021358a0 end:0x02137be0 kind:data align:32 .bss start:0x02137be0 end:0x0213de40 kind:bss align:32 +src/12_Battle/Game/GameModeBattle.cpp: + .text start:0x02112ca0 end:0x02113188 diff --git a/config/usa/arm9/overlays/ov012/symbols.txt b/config/usa/arm9/overlays/ov012/symbols.txt index e9ed37b7..25616797 100644 --- a/config/usa/arm9/overlays/ov012/symbols.txt +++ b/config/usa/arm9/overlays/ov012/symbols.txt @@ -1,16 +1,16 @@ func_ov012_02112c20 kind:function(arm,size=0x38) addr:0x02112ba0 func_ov012_02112c58 kind:function(arm,size=0x50) addr:0x02112bd8 func_ov012_02112ca8 kind:function(arm,size=0x78) addr:0x02112c28 -func_ov012_02112d20 kind:function(arm,size=0x34) addr:0x02112ca0 -func_ov012_02112d54 kind:function(arm,size=0x184) addr:0x02112cd4 -func_ov012_02112ed8 kind:function(arm,size=0xec) addr:0x02112e58 -func_ov012_02112fc4 kind:function(arm,size=0xf4) addr:0x02112f44 -func_ov012_021130b8 kind:function(arm,size=0x18) addr:0x02113038 -func_ov012_021130d0 kind:function(arm,size=0xe4) addr:0x02113050 -func_ov012_021131b4 kind:function(arm,size=0x10) addr:0x02113134 -func_ov012_021131c4 kind:function(arm,size=0x1c) addr:0x02113144 -func_ov012_021131e0 kind:function(arm,size=0x10) addr:0x02113160 -func_ov012_021131f0 kind:function(arm,size=0x18) addr:0x02113170 +_ZN14GameModeBattle6CreateEi kind:function(arm,size=0x34) addr:0x02112ca0 +_ZN14GameModeBattleC1Ei kind:function(arm,size=0x184) addr:0x02112cd4 +_ZN14GameModeBattleD0Ev kind:function(arm,size=0xec) addr:0x02112e58 +_ZN14GameModeBattleD2Ev kind:function(arm,size=0xf4) addr:0x02112f44 +_ZN14GameModeBattle8vfunc_24Ev kind:function(arm,size=0x18) addr:0x02113038 +_ZN14GameModeBattle8vfunc_08Ei kind:function(arm,size=0xe4) addr:0x02113050 +_ZN14GameModeBattle8vfunc_0cEPt kind:function(arm,size=0x10) addr:0x02113134 +_ZN14GameModeBattle8vfunc_10EPt kind:function(arm,size=0x1c) addr:0x02113144 +_ZN14GameModeBattle8vfunc_14EPt kind:function(arm,size=0x10) addr:0x02113160 +_ZN14GameModeBattle8vfunc_18Ev kind:function(arm,size=0x18) addr:0x02113170 func_ov012_02113208 kind:function(arm,size=0x24) addr:0x02113188 func_ov012_0211322c kind:function(arm,size=0x24) addr:0x021131ac func_ov012_02113250 kind:function(arm,size=0x48) addr:0x021131d0 @@ -1099,7 +1099,7 @@ data_ov012_02135930 kind:data(any) addr:0x021358b0 data_ov012_02135934 kind:data(any) addr:0x021358b4 data_ov012_02135938 kind:data(any) addr:0x021358b8 data_ov012_0213593c kind:data(any) addr:0x021358bc -data_ov012_02135968 kind:data(any) addr:0x021358e8 +_ZTV14GameModeBattle kind:data(any) addr:0x021358e8 data_ov012_02135990 kind:data(any) addr:0x02135910 data_ov012_02135994 kind:data(any) addr:0x02135914 data_ov012_02135998 kind:data(any) addr:0x02135918 diff --git a/include/Game/GameModeBattle.hpp b/include/Game/GameModeBattle.hpp new file mode 100644 index 00000000..e45d5210 --- /dev/null +++ b/include/Game/GameModeBattle.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include "Game/GameModePlay.hpp" + +class GameModeBattle : public GameModePlay { +public: + /* 000 (base) */ + /* 008 */ unk8 mUnk_008[0x878]; + /* 880 */ unk16 mUnk_880; + /* 882 */ unk8 mUnk_882[0xa]; + /* 88c */ unk16 mUnk_88c; + /* 88e */ unk8 mUnk_88e[0x102]; + /* 990 */ unk32 mUnk_990; + /* 994 */ unk32 mUnk_994; + /* 998 */ unk32 mUnk_998; + /* 99c */ unk8 mUnk_99c[0x4]; + /* 9a0 */ + + /* 00 */ virtual ~GameModeBattle() override; + /* 08 */ virtual unk32 vfunc_08(unk32 param1) override; + /* 0c */ virtual void vfunc_0c(u16 *param1) override; + /* 10 */ virtual void vfunc_10(u16 *param1) override; + /* 14 */ virtual void vfunc_14(u16 *param1) override; + /* 18 */ virtual void vfunc_18() override; + /* 24 */ virtual void vfunc_24(); + /* 28 */ + + GameModeBattle(unk32 param1); + static GameModeBattle *Create(unk32 param1); +}; diff --git a/src/12_Battle/Game/GameModeBattle.cpp b/src/12_Battle/Game/GameModeBattle.cpp new file mode 100644 index 00000000..2e48a190 --- /dev/null +++ b/src/12_Battle/Game/GameModeBattle.cpp @@ -0,0 +1,12 @@ +#include "Game/GameModeBattle.hpp" + +GameModeBattle *GameModeBattle::Create(unk32 param1) {} +GameModeBattle::GameModeBattle(unk32 param1) : + GameModePlay(param1) {} +GameModeBattle::~GameModeBattle() {} +void GameModeBattle::vfunc_24() {} +unk32 GameModeBattle::vfunc_08(unk32 param1) {} +void GameModeBattle::vfunc_0c(u16 *param1) {} +void GameModeBattle::vfunc_10(u16 *param1) {} +void GameModeBattle::vfunc_14(u16 *param1) {} +void GameModeBattle::vfunc_18() {} From f6b308ed82a89de31f90166215e0a88a5cdb1ad7 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sun, 6 Jul 2025 12:18:40 +0200 Subject: [PATCH 2/2] Update `GameMode::vfunc_14` --- config/eur/arm9/symbols.txt | 2 +- config/usa/arm9/symbols.txt | 2 +- include/Game/GameMode.hpp | 4 ++-- include/Game/GameModeAdventure.hpp | 2 +- src/09_Adventure/Game/GameModeAdventure.cpp | 2 +- src/Main/Game/GameMode.cpp | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index ef196184..3dfe41b7 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1358,7 +1358,7 @@ _ZN8GameModeD0Ev kind:function(thumb,size=0xc) addr:0x0202c0ac _ZN8GameMode13func_0202c0b8Ev kind:function(thumb,size=0x2) addr:0x0202c0b8 _ZN8GameMode8vfunc_0cEPt kind:function(thumb,size=0x2) addr:0x0202c0bc _ZN8GameMode8vfunc_10EPt kind:function(thumb,size=0x2) addr:0x0202c0c0 -_ZN8GameMode8vfunc_14EPt kind:function(thumb,size=0x2) addr:0x0202c0c4 +_ZN8GameMode8vfunc_14Eb kind:function(thumb,size=0x2) addr:0x0202c0c4 _ZN8GameMode8vfunc_18Ev kind:function(thumb,size=0x2) addr:0x0202c0c8 func_0202c0cc kind:function(thumb,size=0x5c) addr:0x0202c0cc func_0202c128 kind:function(thumb,size=0x27c) addr:0x0202c128 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index b8b242ee..02f69854 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1358,7 +1358,7 @@ _ZN8GameModeD0Ev kind:function(thumb,size=0xc) addr:0x0202c094 _ZN8GameMode13func_0202c0b8Ev kind:function(thumb,size=0x2) addr:0x0202c0a0 _ZN8GameMode8vfunc_0cEPt kind:function(thumb,size=0x2) addr:0x0202c0a4 _ZN8GameMode8vfunc_10EPt kind:function(thumb,size=0x2) addr:0x0202c0a8 -_ZN8GameMode8vfunc_14EPt kind:function(thumb,size=0x2) addr:0x0202c0ac +_ZN8GameMode8vfunc_14Eb kind:function(thumb,size=0x2) addr:0x0202c0ac _ZN8GameMode8vfunc_18Ev kind:function(thumb,size=0x2) addr:0x0202c0b0 func_0202c0cc kind:function(thumb,size=0x5c) addr:0x0202c0b4 func_0202c128 kind:function(thumb,size=0x27c) addr:0x0202c110 diff --git a/include/Game/GameMode.hpp b/include/Game/GameMode.hpp index 2a80d115..d1f5c4e9 100644 --- a/include/Game/GameMode.hpp +++ b/include/Game/GameMode.hpp @@ -24,10 +24,10 @@ public: /* 008 */ /* 00 */ virtual ~GameMode(); - /* 08 */ virtual unk32 vfunc_08(unk32 param1) = 0; + /* 08 */ virtual GameModeId vfunc_08(bool param1) = 0; /* 0c */ virtual void vfunc_0c(u16 *param1); /* 10 */ virtual void vfunc_10(u16 *param1); - /* 14 */ virtual void vfunc_14(u16 *param1); + /* 14 */ virtual void vfunc_14(bool param1); /* 18 */ virtual void vfunc_18(); /* 1c */ diff --git a/include/Game/GameModeAdventure.hpp b/include/Game/GameModeAdventure.hpp index 934a6a10..18ef4981 100644 --- a/include/Game/GameModeAdventure.hpp +++ b/include/Game/GameModeAdventure.hpp @@ -102,7 +102,7 @@ public: /* 018 */ /* 00 */ virtual ~GameModeAdventure() override; - /* 08 */ virtual unk32 vfunc_08(unk32 param1) override; + /* 08 */ virtual unk32 vfunc_08(bool param1) override; /* 0c */ virtual void vfunc_0c(u16 *param1) override; /* 10 */ virtual void vfunc_10(u16 *param1) override; /* 14 */ virtual void vfunc_14(u16 *param1) override; diff --git a/src/09_Adventure/Game/GameModeAdventure.cpp b/src/09_Adventure/Game/GameModeAdventure.cpp index dbfa9690..4bfa2526 100644 --- a/src/09_Adventure/Game/GameModeAdventure.cpp +++ b/src/09_Adventure/Game/GameModeAdventure.cpp @@ -100,7 +100,7 @@ THUMB GameModeAdventure::~GameModeAdventure() { } // non-matching -ARM unk32 GameModeAdventure::vfunc_08(unk32 param1) { +ARM unk32 GameModeAdventure::vfunc_08(bool param1) { unk32 uVar2 = 0; if (data_027e0d38->mUnk_14 == 1) { diff --git a/src/Main/Game/GameMode.cpp b/src/Main/Game/GameMode.cpp index fd68c708..6e1792bb 100644 --- a/src/Main/Game/GameMode.cpp +++ b/src/Main/Game/GameMode.cpp @@ -4,5 +4,5 @@ THUMB GameMode::~GameMode() {} THUMB void GameMode::func_0202c0b8() {} THUMB void GameMode::vfunc_0c(u16 *param1) {} THUMB void GameMode::vfunc_10(u16 *param1) {} -THUMB void GameMode::vfunc_14(u16 *param1) {} +THUMB void GameMode::vfunc_14(bool param1) {} THUMB void GameMode::vfunc_18() {}