diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index 8347c99d..26659d40 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -16,9 +16,27 @@ src/Main/System/SysNew.cpp: src/Main/System/OverlayManager.cpp: .text start:0x020147fc end:0x02014944 +src/Main/Game/GameModeLinkListNode.cpp: + complete + .text start:0x0201667c end:0x02016720 + src/Main/func_02017ea4.cpp: .text start:0x02017ea4 end:0x02017f38 +src/Main/Game/GameModeBase.cpp: + complete + .text start:0x020182e4 end:0x020183a4 + .data start:0x02044010 end:0x02044040 + +src/Main/UnkStruct_0204a060.cpp: + complete + .text start:0x020183a4 end:0x0201847c + .data start:0x02044040 end:0x0204405c + +src/Main/Game/GameModeManagerBase.cpp: + .text start:0x0201847c end:0x02018bc4 + .data start:0x0204405c end:0x0204409c + libs/c/src/abort_exit_arm_eabi.c: complete .text start:0x020336e8 end:0x02033870 diff --git a/config/eur/arm9/overlays/ov000/delinks.txt b/config/eur/arm9/overlays/ov000/delinks.txt index feef300b..211495cb 100644 --- a/config/eur/arm9/overlays/ov000/delinks.txt +++ b/config/eur/arm9/overlays/ov000/delinks.txt @@ -5,6 +5,15 @@ .data start:0x020b1960 end:0x020b4ec0 kind:data align:32 .bss start:0x020b4ec0 end:0x020b6520 kind:bss align:32 +src/000_Second/Game/GameModeManagerBase_104_0C.cpp: + complete + .text start:0x02061a8c end:0x02061ae4 + .data start:0x020b1e40 end:0x020b1e58 + +src/000_Second/Game/GameModeManagerBase_104.cpp: + .text start:0x02061ae4 end:0x02061ce0 + .data start:0x020b1e58 end:0x020b1e7c + src/000_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 52fc21f7..2d672ec5 100644 --- a/config/eur/arm9/overlays/ov000/relocs.txt +++ b/config/eur/arm9/overlays/ov000/relocs.txt @@ -1378,25 +1378,25 @@ from:0x02061ab8 kind:arm_call to:0x02011ff4 module:main from:0x02061ad0 kind:arm_call to:0x02016694 module:main from:0x02061af0 kind:arm_call to:0x0201667c module:main from:0x02061b00 kind:arm_call to:0x0201667c module:main -from:0x02061b24 kind:load to:0x020b1e60 module:overlay(0) -from:0x02061b28 kind:load to:0x020b1e48 module:overlay(0) +from:0x02061b24 kind:load to:0x020b1e58 add:8 module:overlay(0) +from:0x02061b28 kind:load to:0x020b1e40 add:8 module:overlay(0) from:0x02061b38 kind:arm_call to:0x0201667c module:main from:0x02061b48 kind:arm_call to:0x0201667c module:main -from:0x02061b6c kind:load to:0x020b1e60 module:overlay(0) -from:0x02061b70 kind:load to:0x020b1e48 module:overlay(0) +from:0x02061b6c kind:load to:0x020b1e58 add:8 module:overlay(0) +from:0x02061b70 kind:load to:0x020b1e40 add:8 module:overlay(0) from:0x02061bcc kind:arm_call to:0x02061a8c module:overlay(0) from:0x02061bd4 kind:arm_call to:0x02016694 module:main -from:0x02061be0 kind:load to:0x020b1e60 module:overlay(0) +from:0x02061be0 kind:load to:0x020b1e58 add:8 module:overlay(0) from:0x02061c3c kind:arm_call to:0x02061a8c module:overlay(0) from:0x02061c44 kind:arm_call to:0x02016694 module:main from:0x02061c4c kind:arm_call to:0x02011ff4 module:main -from:0x02061c58 kind:load to:0x020b1e60 module:overlay(0) +from:0x02061c58 kind:load to:0x020b1e58 add:8 module:overlay(0) from:0x02061cb4 kind:arm_call to:0x02061a8c module:overlay(0) from:0x02061cbc kind:arm_call to:0x02016694 module:main -from:0x02061cc8 kind:load to:0x020b1e60 module:overlay(0) +from:0x02061cc8 kind:load to:0x020b1e58 add:8 module:overlay(0) from:0x02061d08 kind:arm_call to:0x02028c4c module:main from:0x02061d18 kind:arm_call to:0x02028c4c module:main -from:0x02061d34 kind:load to:0x020b1e84 module:overlay(0) +from:0x02061d34 kind:load to:0x020b1e7c add:8 module:overlay(0) from:0x02061d48 kind:arm_call to:0x020090d4 module:main from:0x02061d64 kind:arm_call to:0x0200911c module:main from:0x02061dfc kind:arm_call to:0x02008a0c module:main diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index a437b1b7..8d597b35 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -492,15 +492,15 @@ func_ov000_02061a70 kind:function(arm,size=0xc) addr:0x02061a70 func_ov000_02061a7c kind:function(arm,size=0x10) addr:0x02061a7c _ZN26GameModeManagerBase_104_0CD1Ev kind:function(arm,size=0x18) addr:0x02061a8c _ZN26GameModeManagerBase_104_0CD0Ev kind:function(arm,size=0x20) addr:0x02061aa4 -_ZN26GameModeManagerBase_104_0C19func_ov000_02061ac4Ev kind:function(arm,size=0x18) addr:0x02061ac4 -_ZN26GameModeManagerBase_104_0C8vfunc_08Ev kind:function(arm,size=0x4) addr:0x02061adc -_ZN26GameModeManagerBase_104_0C8vfunc_0CEv kind:function(arm,size=0x4) addr:0x02061ae0 +_ZN26GameModeManagerBase_104_0CD2Ev kind:function(arm,size=0x18) addr:0x02061ac4 +_ZN26GameModeManagerBase_104_0C8vfunc_08EPv kind:function(arm,size=0x4) addr:0x02061adc +_ZN26GameModeManagerBase_104_0C8vfunc_0CEPv kind:function(arm,size=0x4) addr:0x02061ae0 _ZN23GameModeManagerBase_104C2Ev kind:function(arm,size=0x48) addr:0x02061ae4 _ZN23GameModeManagerBase_104C1Ev kind:function(arm,size=0x48) addr:0x02061b2c _ZN23GameModeManagerBase_104D1Ev kind:function(arm,size=0x70) addr:0x02061b74 _ZN23GameModeManagerBase_104D0Ev kind:function(arm,size=0x78) addr:0x02061be4 _ZN23GameModeManagerBase_104D2Ev kind:function(arm,size=0x70) addr:0x02061c5c -_ZN23GameModeManagerBase_1048vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x4) addr:0x02061ccc +_ZN23GameModeManagerBase_1048vfunc_08EP5InputP12TouchControl kind:function(arm,size=0x4) addr:0x02061ccc _ZN23GameModeManagerBase_1048vfunc_0CEi kind:function(arm,size=0x4) addr:0x02061cd0 _ZN23GameModeManagerBase_1048vfunc_10EPc kind:function(arm,size=0x4) addr:0x02061cd4 _ZN23GameModeManagerBase_1048vfunc_14EPc kind:function(arm,size=0x4) addr:0x02061cd8 @@ -735,7 +735,7 @@ _ZN24UnkStruct_ov000_020b504c19func_ov000_02067e60Ehi kind:function(arm,size=0xf func_ov000_02067f5c kind:function(arm,size=0x2c) addr:0x02067f5c func_ov000_02067f88 kind:function(arm,size=0xe0) addr:0x02067f88 func_ov000_02068068 kind:function(arm,size=0x14) addr:0x02068068 -_ZN24UnkStruct_ov000_020b504c19func_ov000_0206807cEiPv kind:function(arm,size=0x48) addr:0x0206807c +_ZN24UnkStruct_ov000_020b504c19func_ov000_0206807cEPvS0_ kind:function(arm,size=0x48) addr:0x0206807c func_ov000_020680c4 kind:function(arm,size=0xd0) addr:0x020680c4 func_ov000_02068194 kind:function(arm,size=0x98) addr:0x02068194 func_ov000_0206822c kind:function(arm,size=0x94) addr:0x0206822c @@ -792,8 +792,8 @@ func_ov000_02069c1c kind:function(arm,size=0x28) addr:0x02069c1c func_ov000_02069c44 kind:function(arm,size=0x34) addr:0x02069c44 func_ov000_02069c78 kind:function(arm,size=0x28) addr:0x02069c78 func_ov000_02069ca0 kind:function(arm,size=0x9c) addr:0x02069ca0 -func_ov000_02069d3c kind:function(arm,size=0x40) addr:0x02069d3c -func_ov000_02069d7c kind:function(arm,size=0x40) addr:0x02069d7c +_ZN24UnkStruct_ov000_020b50c019func_ov000_02069d3cEi kind:function(arm,size=0x40) addr:0x02069d3c +_ZN24UnkStruct_ov000_020b50c019func_ov000_02069d7cEv kind:function(arm,size=0x40) addr:0x02069d7c func_ov000_02069dbc kind:function(arm,size=0x84) addr:0x02069dbc func_ov000_02069e40 kind:function(arm,size=0xc) addr:0x02069e40 func_ov000_02069e4c kind:function(arm,size=0x50) addr:0x02069e4c @@ -3456,9 +3456,9 @@ data_ov000_020b1e0c kind:data(any) addr:0x020b1e0c data_ov000_020b1e10 kind:data(any) addr:0x020b1e10 data_ov000_020b1e20 kind:data(any) addr:0x020b1e20 data_ov000_020b1e30 kind:data(any) addr:0x020b1e30 -data_ov000_020b1e48 kind:data(any) addr:0x020b1e48 -data_ov000_020b1e60 kind:data(any) addr:0x020b1e60 -data_ov000_020b1e84 kind:data(any) addr:0x020b1e84 +_ZTV26GameModeManagerBase_104_0C kind:data(any) addr:0x020b1e40 +_ZTV23GameModeManagerBase_104 kind:data(any) addr:0x020b1e58 +data_ov000_020b1e84 kind:data(any) addr:0x020b1e7c data_ov000_020b1e9c kind:data(any) addr:0x020b1e9c data_ov000_020b1eb4 kind:data(any) addr:0x020b1eb4 data_ov000_020b1ecc kind:data(any) addr:0x020b1ecc diff --git a/config/eur/arm9/overlays/ov001/symbols.txt b/config/eur/arm9/overlays/ov001/symbols.txt index e2cc6832..27ce60e5 100644 --- a/config/eur/arm9/overlays/ov001/symbols.txt +++ b/config/eur/arm9/overlays/ov001/symbols.txt @@ -261,7 +261,7 @@ func_ov001_020bd388 kind:function(thumb,size=0x128) addr:0x020bd388 func_ov001_020bd4b0 kind:function(thumb,size=0x40) addr:0x020bd4b0 func_ov001_020bd4f0 kind:function(thumb,size=0x22) addr:0x020bd4f0 _ZN18UnkStruct_0204a11019func_ov001_020bd514EiPvii kind:function(thumb,size=0x78) addr:0x020bd514 -func_ov001_020bd58c kind:function(thumb,size=0x24) addr:0x020bd58c +_ZN18UnkStruct_0204a11019func_ov001_020bd58cEv kind:function(thumb,size=0x24) addr:0x020bd58c func_ov001_020bd5b0 kind:function(thumb,size=0x88) addr:0x020bd5b0 func_ov001_020bd638 kind:function(thumb,size=0x40) addr:0x020bd638 func_ov001_020bd678 kind:function(thumb,size=0x14) addr:0x020bd678 @@ -280,7 +280,7 @@ func_ov001_020bd83c kind:function(thumb,size=0xc) addr:0x020bd83c func_ov001_020bd848 kind:function(thumb,size=0xc) addr:0x020bd848 func_ov001_020bd854 kind:function(thumb,size=0x28) addr:0x020bd854 func_ov001_020bd87c kind:function(thumb,size=0x30) addr:0x020bd87c -func_ov001_020bd8ac kind:function(thumb,size=0x30) addr:0x020bd8ac +_ZN24UnkStruct_ov000_020b50c019func_ov001_020bd8acEv kind:function(thumb,size=0x30) addr:0x020bd8ac _ZN24UnkStruct_ov000_020b50c019func_ov001_020bd8dcEv kind:function(thumb,size=0xc) addr:0x020bd8dc func_ov001_020bd8e8 kind:function(thumb,size=0x28) addr:0x020bd8e8 func_ov001_020bd910 kind:function(thumb,size=0x24) addr:0x020bd910 diff --git a/config/eur/arm9/overlays/ov018/delinks.txt b/config/eur/arm9/overlays/ov018/delinks.txt index caf99a17..043c31c7 100644 --- a/config/eur/arm9/overlays/ov018/delinks.txt +++ b/config/eur/arm9/overlays/ov018/delinks.txt @@ -4,7 +4,6 @@ .bss start:0x020c5bc0 end:0x020c5c20 kind:bss align:32 src/018_StartUp/GameModeStartUp.cpp: - complete .text start:0x020c4840 end:0x020c4e8c .data start:0x020c5b20 end:0x020c5b84 .bss start:0x020c5bc0 end:0x020c5c20 diff --git a/config/eur/arm9/overlays/ov019/symbols.txt b/config/eur/arm9/overlays/ov019/symbols.txt index 8ae8889b..cc7af2f9 100644 --- a/config/eur/arm9/overlays/ov019/symbols.txt +++ b/config/eur/arm9/overlays/ov019/symbols.txt @@ -3,7 +3,7 @@ _ZN18GameModeFileSelectC1Ev kind:function(arm,size=0xb0) addr:0x020c4864 _ZN25UnkSystem1_ov019_Derived1D1Ev kind:function(arm,size=0x14) addr:0x020c4914 _ZN18GameModeFileSelectD1Ev kind:function(arm,size=0x84) addr:0x020c4928 _ZN18GameModeFileSelectD0Ev kind:function(arm,size=0x8c) addr:0x020c49ac -_ZN18GameModeFileSelect8vfunc_08Eiii kind:function(arm,size=0x70) addr:0x020c4a38 +_ZN18GameModeFileSelect8vfunc_08Ev kind:function(arm,size=0x70) addr:0x020c4a38 _ZN18GameModeFileSelect8vfunc_14Ev kind:function(arm,size=0x4) addr:0x020c4aa8 _ZN18GameModeFileSelect8vfunc_0CEv kind:function(arm,size=0x30) addr:0x020c4aac _ZN18GameModeFileSelect8vfunc_18Ev kind:function(arm,size=0x4) addr:0x020c4adc @@ -21,8 +21,8 @@ _ZN17FileSelectManager8vfunc_10Eiii kind:function(arm,size=0x120) addr:0x020c4ed _ZN17FileSelectManager8vfunc_24Ev kind:function(arm,size=0x40) addr:0x020c4ff8 _ZN17FileSelectManager19func_ov019_020c5038Ev kind:function(arm,size=0x4) addr:0x020c5038 _ZN17FileSelectManager19func_ov019_020c503cEv kind:function(arm,size=0x12c) addr:0x020c503c -_ZN17FileSelectManager8vfunc_28Ei kind:function(arm,size=0x20) addr:0x020c5168 -_ZN17FileSelectManager8vfunc_2CEi kind:function(arm,size=0x20) addr:0x020c5188 +_ZN17FileSelectManager8vfunc_28EPc kind:function(arm,size=0x20) addr:0x020c5168 +_ZN17FileSelectManager8vfunc_2CEPc kind:function(arm,size=0x20) addr:0x020c5188 _ZN17FileSelectManager19func_ov019_020c51a8Ev kind:function(arm,size=0x44) addr:0x020c51a8 _ZN23UnkStruct_0204a088_BaseD2Ev kind:function(arm,size=0x14) addr:0x020c51ec _ZN25UnkSystem1_ov019_Derived1C1Ev kind:function(arm,size=0x3c) addr:0x020c5200 @@ -73,7 +73,7 @@ _ZN14FileSelectMain19func_ov019_020c7dc8Ev kind:function(arm,size=0x314) addr:0x _ZN14FileSelectMain19func_ov019_020c80dcEv kind:function(arm,size=0xc) addr:0x020c80dc _ZN14FileSelectMain19func_ov019_020c80e8Ev kind:function(arm,size=0xc) addr:0x020c80e8 _ZN14FileSelectMain19func_ov019_020c80f4Ev kind:function(arm,size=0x4) addr:0x020c80f4 -_ZN14FileSelectMain8vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x198) addr:0x020c80f8 +_ZN14FileSelectMain8vfunc_08EP5InputP12TouchControl kind:function(arm,size=0x198) addr:0x020c80f8 _ZN14FileSelectMain19func_ov019_020c8290Ev kind:function(arm,size=0x34) addr:0x020c8290 _ZN14FileSelectMain19func_ov019_020c82c4Ev kind:function(arm,size=0x190) addr:0x020c82c4 _ZN14FileSelectMain19func_ov019_020c8454Ev kind:function(arm,size=0xd0) addr:0x020c8454 @@ -135,7 +135,7 @@ _ZN14FileSelectMain19func_ov019_020cb664Ev kind:function(arm,size=0x84) addr:0x0 _ZN14FileSelectMain19func_ov019_020cb6e8Ev kind:function(arm,size=0x30) addr:0x020cb6e8 _ZN14FileSelectMain19func_ov019_020cb718Ev kind:function(arm,size=0x30) addr:0x020cb718 _ZN14FileSelectMain19func_ov019_020cb748Ev kind:function(arm,size=0x20) addr:0x020cb748 -_ZN13UnkSubStruct9C2ENS_13stack_struct1E kind:function(arm,size=0x384) addr:0x020cb768 +_ZN13UnkSubStruct9C2E13stack_struct1 kind:function(arm,size=0x384) addr:0x020cb768 _ZN13UnkSubStruct919func_ov019_020cbaecEv kind:function(arm,size=0x24) addr:0x020cbaec _ZN13UnkSubStruct915IsPlayerNameSetEv kind:function(arm,size=0x30) addr:0x020cbb10 _ZN13UnkSubStruct919func_ov019_020cbb40Ev kind:function(arm,size=0x54) addr:0x020cbb40 @@ -146,14 +146,14 @@ _ZN24FileSelectOptionsManager6CreateEPvi kind:function(arm,size=0x34) addr:0x020 _ZN24FileSelectOptionsManagerC1EPvi kind:function(arm,size=0xb8) addr:0x020cc5f4 _ZN24FileSelectOptionsManagerD1Ev kind:function(arm,size=0x6c) addr:0x020cc6ac _ZN24FileSelectOptionsManagerD0Ev kind:function(arm,size=0x74) addr:0x020cc718 -_ZN24FileSelectOptionsManager8vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0xd0) addr:0x020cc78c +_ZN24FileSelectOptionsManager8vfunc_08EP5InputP12TouchControl kind:function(arm,size=0xd0) addr:0x020cc78c _ZN24FileSelectOptionsManager19func_ov019_020cc85cEi kind:function(arm,size=0x18) addr:0x020cc85c _ZN24FileSelectOptionsManager19func_ov019_020cc874Ev kind:function(arm,size=0xc) addr:0x020cc874 _ZN17FileSelectOptionsC1Ei kind:function(arm,size=0x298) addr:0x020cc880 _ZN17FileSelectOptionsD1Ev kind:function(arm,size=0x110) addr:0x020ccb18 _ZN17FileSelectOptionsD0Ev kind:function(arm,size=0x118) addr:0x020ccc28 _ZN17FileSelectOptions19func_ov019_020ccd40Ev kind:function(arm,size=0x38) addr:0x020ccd40 -_ZN17FileSelectOptions8vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x38) addr:0x020ccd78 +_ZN17FileSelectOptions8vfunc_08EP5InputP12TouchControl kind:function(arm,size=0x38) addr:0x020ccd78 _ZN17FileSelectOptions8vfunc_10EPc kind:function(arm,size=0x44) addr:0x020ccdb0 _ZN17FileSelectOptions19func_ov019_020ccdf4Ev kind:function(arm,size=0x10) addr:0x020ccdf4 _ZN17FileSelectOptions19func_ov019_020cce04Ev kind:function(arm,size=0x2c) addr:0x020cce04 @@ -195,7 +195,7 @@ _ZN17FileSelectMicTest19func_ov019_020cea70Ev kind:function(arm,size=0x4) addr:0 _ZN17FileSelectMicTest19func_ov019_020cea74Ev kind:function(arm,size=0x38) addr:0x020cea74 _ZN17FileSelectMicTest19func_ov019_020ceaacEv kind:function(arm,size=0x120) addr:0x020ceaac _ZN17FileSelectMicTest19func_ov019_020cebccEv kind:function(arm,size=0x98) addr:0x020cebcc -_ZN17FileSelectMicTest8vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x2a0) addr:0x020cec64 +_ZN17FileSelectMicTest8vfunc_08EP5InputP12TouchControl kind:function(arm,size=0x2a0) addr:0x020cec64 _ZN17FileSelectMicTest8vfunc_10EPc kind:function(arm,size=0x68) addr:0x020cef04 _ZN17FileSelectMicTest8vfunc_14EPc kind:function(arm,size=0x78) addr:0x020cef6c _ZN17FileSelectMicTest19func_ov019_020cefe4Ev kind:function(arm,size=0x14) addr:0x020cefe4 @@ -205,7 +205,7 @@ _ZN31UnkStruct_ov019_020d24c8_28_27019func_ov019_020cf130Ev kind:function(arm,si _ZN31UnkStruct_ov019_020d24c8_28_27019func_ov019_020cf168Ev kind:function(arm,size=0xb4) addr:0x020cf168 _ZN31UnkStruct_ov019_020d24c8_28_27019func_ov019_020cf21cEv kind:function(arm,size=0x70) addr:0x020cf21c _ZN19FileSelectSubScreenC1Ev kind:function(arm,size=0x35c) addr:0x020cf28c -_ZN19FileSelectSubScreen8vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x154) addr:0x020cf5e8 +_ZN19FileSelectSubScreen8vfunc_08EP5InputP12TouchControl kind:function(arm,size=0x154) addr:0x020cf5e8 _ZN19FileSelectSubScreen19func_ov019_020cf73cEii kind:function(arm,size=0x120) addr:0x020cf73c _ZN19FileSelectSubScreen8vfunc_10EPc kind:function(arm,size=0x14) addr:0x020cf85c _ZN13UnkStructSub2C1Ev kind:function(arm,size=0x18c) addr:0x020cf870 diff --git a/config/eur/arm9/overlays/ov025/symbols.txt b/config/eur/arm9/overlays/ov025/symbols.txt index 8561b3ea..6f34eb36 100644 --- a/config/eur/arm9/overlays/ov025/symbols.txt +++ b/config/eur/arm9/overlays/ov025/symbols.txt @@ -1,7 +1,7 @@ _ZN19GameModeTitleScreenC1Ev kind:function(arm,size=0x64) addr:0x020c4840 _ZN19GameModeTitleScreenD1Ev kind:function(arm,size=0x2c) addr:0x020c48a4 _ZN19GameModeTitleScreenD0Ev kind:function(arm,size=0x34) addr:0x020c48d0 -_ZN19GameModeTitleScreen8vfunc_08Eiii kind:function(arm,size=0x70) addr:0x020c4904 +_ZN19GameModeTitleScreen8vfunc_08Ev kind:function(arm,size=0x70) addr:0x020c4904 _ZN19GameModeTitleScreen8vfunc_0CEv kind:function(arm,size=0x24) addr:0x020c4974 _ZN19GameModeTitleScreen8vfunc_10Ev kind:function(arm,size=0x24) addr:0x020c4998 _ZN19GameModeTitleScreen8vfunc_14Ev kind:function(arm,size=0x20) addr:0x020c49bc @@ -14,8 +14,8 @@ _ZN18TitleScreenManagerC1Ei kind:function(arm,size=0x58) addr:0x020c4ab8 _ZN18TitleScreenManager8vfunc_14Ev kind:function(arm,size=0x78) addr:0x020c4b10 _ZN18TitleScreenManager8vfunc_18Ev kind:function(arm,size=0x34) addr:0x020c4b88 _ZN18TitleScreenManager8vfunc_24Ev kind:function(arm,size=0x20) addr:0x020c4bbc -_ZN18TitleScreenManager8vfunc_28Ei kind:function(arm,size=0x20) addr:0x020c4bdc -_ZN18TitleScreenManager8vfunc_2CEi kind:function(arm,size=0x20) addr:0x020c4bfc +_ZN18TitleScreenManager8vfunc_28EPc kind:function(arm,size=0x20) addr:0x020c4bdc +_ZN18TitleScreenManager8vfunc_2CEPc kind:function(arm,size=0x20) addr:0x020c4bfc _ZN18TitleScreenManager8vfunc_38Ev kind:function(arm,size=0x4) addr:0x020c4c1c _ZN18TitleScreenManager19func_ov025_020c4c20Ev kind:function(arm,size=0x10) addr:0x020c4c20 _ZN18TitleScreenManager19func_ov025_020c4c30Ev kind:function(arm,size=0x10) addr:0x020c4c30 @@ -28,13 +28,13 @@ _ZN11TitleScreen19func_ov025_020c4e54Ev kind:function(arm,size=0x18) addr:0x020c _ZN11TitleScreen19func_ov025_020c4e6cEv kind:function(arm,size=0x24) addr:0x020c4e6c _ZN11TitleScreen19func_ov025_020c4e90Ev kind:function(arm,size=0x10) addr:0x020c4e90 _ZN11TitleScreen19func_ov025_020c4ea0Ej kind:function(arm,size=0x298) addr:0x020c4ea0 -_ZN11TitleScreen8vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0xc8) addr:0x020c5138 -_ZN11TitleScreen19func_ov025_020c5200EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x4) addr:0x020c5200 -_ZN11TitleScreen19func_ov025_020c5204EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x3c) addr:0x020c5204 -_ZN11TitleScreen19func_ov025_020c5240EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x190) addr:0x020c5240 -_ZN11TitleScreen19func_ov025_020c53d0EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x1d4) addr:0x020c53d0 -_ZN11TitleScreen19func_ov025_020c55a4EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x40) addr:0x020c55a4 -_ZN11TitleScreen19func_ov025_020c55e4EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x68) addr:0x020c55e4 +_ZN11TitleScreen8vfunc_08EP5InputP12TouchControl kind:function(arm,size=0xc8) addr:0x020c5138 +_ZN11TitleScreen19func_ov025_020c5200EP5InputP12TouchControl kind:function(arm,size=0x4) addr:0x020c5200 +_ZN11TitleScreen19func_ov025_020c5204EP5InputP12TouchControl kind:function(arm,size=0x3c) addr:0x020c5204 +_ZN11TitleScreen19func_ov025_020c5240EP5InputP12TouchControl kind:function(arm,size=0x190) addr:0x020c5240 +_ZN11TitleScreen19func_ov025_020c53d0EP5InputP12TouchControl kind:function(arm,size=0x1d4) addr:0x020c53d0 +_ZN11TitleScreen19func_ov025_020c55a4EP5InputP12TouchControl kind:function(arm,size=0x40) addr:0x020c55a4 +_ZN11TitleScreen19func_ov025_020c55e4EP5InputP12TouchControl kind:function(arm,size=0x68) addr:0x020c55e4 _ZN11TitleScreen8vfunc_14EPc kind:function(arm,size=0x50) addr:0x020c564c _ZN11TitleScreen8vfunc_10EPc kind:function(arm,size=0x258) addr:0x020c569c _ZN11TitleScreen8vfunc_0CEi kind:function(arm,size=0x38) addr:0x020c58f4 diff --git a/config/eur/arm9/overlays/ov037/relocs.txt b/config/eur/arm9/overlays/ov037/relocs.txt index 587f4602..18065e11 100644 --- a/config/eur/arm9/overlays/ov037/relocs.txt +++ b/config/eur/arm9/overlays/ov037/relocs.txt @@ -194,7 +194,7 @@ from:0x0211ae64 kind:arm_call to:0x02061ae4 module:overlay(0) from:0x0211aeec kind:arm_call to:0x02060804 module:overlay(0) from:0x0211af00 kind:arm_call to:0x0201667c module:main from:0x0211af30 kind:load to:0x02121e44 module:overlay(37) -from:0x0211af34 kind:load to:0x020b1e48 module:overlay(0) +from:0x0211af34 kind:load to:0x020b1e40 add:8 module:overlay(0) from:0x0211af44 kind:arm_call to:0x02061a8c module:overlay(0) from:0x0211af4c kind:arm_call to:0x02061c5c module:overlay(0) from:0x0211af64 kind:arm_call to:0x02061a8c module:overlay(0) diff --git a/config/eur/arm9/overlays/ov068/relocs.txt b/config/eur/arm9/overlays/ov068/relocs.txt index d237aae5..f92a798c 100644 --- a/config/eur/arm9/overlays/ov068/relocs.txt +++ b/config/eur/arm9/overlays/ov068/relocs.txt @@ -1180,7 +1180,7 @@ from:0x0216173c kind:arm_call to:0x0209c9d8 module:overlay(0) from:0x02161750 kind:arm_call to:0x02061ae4 module:overlay(0) from:0x021617d4 kind:arm_call to:0x0201667c module:main from:0x021617fc kind:load to:0x02163aa4 module:overlay(68) -from:0x02161800 kind:load to:0x020b1e48 module:overlay(0) +from:0x02161800 kind:load to:0x020b1e40 add:8 module:overlay(0) from:0x02161810 kind:arm_call to:0x02061a8c module:overlay(0) from:0x02161818 kind:arm_call to:0x02061c5c module:overlay(0) from:0x02161830 kind:arm_call to:0x02061a8c module:overlay(0) diff --git a/config/eur/arm9/relocs.txt b/config/eur/arm9/relocs.txt index 24a9a550..e01bc7a4 100644 --- a/config/eur/arm9/relocs.txt +++ b/config/eur/arm9/relocs.txt @@ -2189,16 +2189,16 @@ from:0x02018274 kind:arm_call to:0x02019580 module:main from:0x020182a4 kind:arm_call to:0x02057688 module:overlay(0) from:0x020182c8 kind:arm_call to:0x02057640 module:overlay(0) from:0x020182e0 kind:load to:0x0204a110 module:main -from:0x020182f0 kind:load to:0x02044018 module:main +from:0x020182f0 kind:load to:0x02044010 add:8 module:main from:0x02018308 kind:arm_call_thumb to:0x020bd58c module:overlay(1) -from:0x02018314 kind:load to:0x02044018 module:main +from:0x02018314 kind:load to:0x02044010 add:8 module:main from:0x02018318 kind:load to:0x0204a110 module:main from:0x02018330 kind:arm_call_thumb to:0x020bd58c module:overlay(1) from:0x02018338 kind:arm_call to:0x02011ff4 module:main -from:0x02018344 kind:load to:0x02044018 module:main +from:0x02018344 kind:load to:0x02044010 add:8 module:main from:0x02018348 kind:load to:0x0204a110 module:main from:0x02018360 kind:arm_call_thumb to:0x020bd58c module:overlay(1) -from:0x0201836c kind:load to:0x02044018 module:main +from:0x0201836c kind:load to:0x02044010 add:8 module:main from:0x02018370 kind:load to:0x0204a110 module:main from:0x02018380 kind:load to:0x0204a110 module:main from:0x02018384 kind:load to:0x02018d34 module:main @@ -2225,27 +2225,27 @@ from:0x020184a4 kind:thumb_call_arm to:0x0201beb8 module:main from:0x020184b2 kind:thumb_call_arm to:0x02061b2c module:overlay(0) from:0x020184bc kind:thumb_call_arm to:0x02013b10 module:main from:0x020184c6 kind:thumb_call to:0x020141dc module:main -from:0x020184ec kind:load to:0x02044064 module:main +from:0x020184ec kind:load to:0x0204405c add:8 module:main from:0x020184f0 kind:load to:0x020b504c module:overlay(0) from:0x02018500 kind:thumb_call_arm to:0x0201beb8 module:main from:0x0201850e kind:thumb_call_arm to:0x02061b2c module:overlay(0) from:0x02018518 kind:thumb_call_arm to:0x02013b10 module:main from:0x02018522 kind:thumb_call to:0x020141dc module:main -from:0x02018548 kind:load to:0x02044064 module:main +from:0x02018548 kind:load to:0x0204405c add:8 module:main from:0x0201854c kind:load to:0x020b504c module:overlay(0) from:0x02018560 kind:thumb_call_arm to:0x02018a8c module:main from:0x0201856a kind:thumb_call_arm to:0x02061b74 module:overlay(0) from:0x02018570 kind:thumb_call_arm to:0x0201bee8 module:main -from:0x02018578 kind:load to:0x02044064 module:main +from:0x02018578 kind:load to:0x0204405c add:8 module:main from:0x02018584 kind:thumb_call_arm to:0x02018a8c module:main from:0x0201858e kind:thumb_call_arm to:0x02061b74 module:overlay(0) from:0x02018594 kind:thumb_call_arm to:0x0201bee8 module:main from:0x0201859a kind:thumb_call_arm to:0x02011ff4 module:main -from:0x020185a4 kind:load to:0x02044064 module:main +from:0x020185a4 kind:load to:0x0204405c add:8 module:main from:0x020185b0 kind:thumb_call_arm to:0x02018a8c module:main from:0x020185ba kind:thumb_call_arm to:0x02061b74 module:overlay(0) from:0x020185c0 kind:thumb_call_arm to:0x0201bee8 module:main -from:0x020185c8 kind:load to:0x02044064 module:main +from:0x020185c8 kind:load to:0x0204405c add:8 module:main from:0x020185f4 kind:arm_call to:0x02069d3c module:overlay(0) from:0x02018608 kind:load to:0x020b50c0 module:overlay(0) from:0x02018618 kind:arm_call to:0x02069d7c module:overlay(0) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index fbe8f675..85e4ca58 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -664,12 +664,12 @@ func_020138f4 kind:function(arm,size=0x140) addr:0x020138f4 func_02013a34 kind:function(arm,size=0x10) addr:0x02013a34 func_02013a44 kind:function(arm,size=0x98) addr:0x02013a44 func_02013adc kind:function(arm,size=0x34) addr:0x02013adc -_ZN21UnkStruct_02049b18_00C1Ev kind:function(arm,size=0x14) addr:0x02013b10 -func_02013b24 kind:function(arm,size=0x64) addr:0x02013b24 +_ZN5InputC1Ev kind:function(arm,size=0x14) addr:0x02013b10 +_ZN5Input13func_02013b24Ei kind:function(arm,size=0x64) addr:0x02013b24 func_02013b88 kind:function(arm,size=0x10) addr:0x02013b88 func_02013b98 kind:function(arm,size=0x24) addr:0x02013b98 func_02013bbc kind:function(arm,size=0x4c) addr:0x02013bbc -func_02013c08 kind:function(arm,size=0x1c) addr:0x02013c08 +_ZN5Input13func_02013c08Et kind:function(arm,size=0x1c) addr:0x02013c08 func_02013c24 kind:function(arm,size=0x58) addr:0x02013c24 func_02013c7c kind:function(arm,size=0x58) addr:0x02013c7c func_02013cd4 kind:function(arm,size=0x5c) addr:0x02013cd4 @@ -686,14 +686,14 @@ func_02013f80 kind:function(arm,size=0x6c) addr:0x02013f80 func_02013fec kind:function(arm,size=0xc) addr:0x02013fec func_02013ff8 kind:function(arm,size=0x12c) addr:0x02013ff8 func_02014124 kind:function(arm,size=0xb8) addr:0x02014124 -func_020141dc kind:function(thumb,size=0x3c) addr:0x020141dc +_ZN12TouchControlC1Ev kind:function(thumb,size=0x3c) addr:0x020141dc func_02014218 kind:function(arm,size=0x18) addr:0x02014218 func_02014230 kind:function(arm,size=0x12c) addr:0x02014230 func_0201435c kind:function(arm,size=0x44) addr:0x0201435c func_020143a0 kind:function(arm,size=0x50) addr:0x020143a0 func_020143f0 kind:function(arm,size=0x24) addr:0x020143f0 func_02014414 kind:function(arm,size=0x64) addr:0x02014414 -func_02014478 kind:function(arm,size=0x28) addr:0x02014478 +_ZN12TouchControl13func_02014478EP18UnkStruct_02049b4ci kind:function(arm,size=0x28) addr:0x02014478 func_020144a0 kind:function(thumb,size=0x10) addr:0x020144a0 func_020144b0 kind:function(thumb,size=0x1c) addr:0x020144b0 func_020144cc kind:function(thumb,size=0x6c) addr:0x020144cc @@ -713,7 +713,7 @@ _ZN14OverlayManager15LoadIfNotLoadedEjj kind:function(thumb,size=0x28) addr:0x02 _ZN14OverlayManager4LoadEjj kind:function(thumb,size=0x2c) addr:0x02014824 _ZN14OverlayManager6UnloadEj kind:function(thumb,size=0x28) addr:0x02014850 func_02014878 kind:function(thumb,size=0x58) addr:0x02014878 -func_020148d0 kind:function(thumb,size=0x46) addr:0x020148d0 +_ZN14OverlayManager13func_020148d0Ei kind:function(thumb,size=0x46) addr:0x020148d0 func_02014918 kind:function(thumb,size=0x2c) addr:0x02014918 func_02014944 kind:function(thumb,size=0x50) addr:0x02014944 _ZN14OverlayManager13func_02014994Ei kind:function(thumb,size=0x7c) addr:0x02014994 @@ -823,12 +823,12 @@ func_020165b0 kind:function(arm,size=0x50) addr:0x020165b0 func_02016600 kind:function(arm,size=0x20) addr:0x02016600 func_02016620 kind:function(arm,size=0x3c) addr:0x02016620 func_0201665c kind:function(arm,size=0x20) addr:0x0201665c -_ZN26GameModeManagerBase_104_04C1Ev kind:function(arm,size=0xc) addr:0x0201667c -func_02016688 kind:function(arm,size=0xc) addr:0x02016688 -_ZN26GameModeManagerBase_104_04D1Ev kind:function(arm,size=0x18) addr:0x02016694 -_ZN26GameModeManagerBase_104_0413func_020166acEv kind:function(arm,size=0x20) addr:0x020166ac -_ZN26GameModeManagerBase_104_0413func_020166ccEPv kind:function(arm,size=0x28) addr:0x020166cc -_ZN26GameModeManagerBase_104_0413func_020166f4EPv kind:function(arm,size=0x2c) addr:0x020166f4 +_ZN20GameModeLinkListNodeC2Ev kind:function(arm,size=0xc) addr:0x0201667c +_ZN20GameModeLinkListNodeC1Ev kind:function(arm,size=0xc) addr:0x02016688 +_ZN20GameModeLinkListNodeD2Ev kind:function(arm,size=0x18) addr:0x02016694 +_ZN20GameModeLinkListNode13func_020166acEPS_ kind:function(arm,size=0x20) addr:0x020166ac +_ZN20GameModeLinkListNode13func_020166ccEPS_ kind:function(arm,size=0x28) addr:0x020166cc +_ZN20GameModeLinkListNode13func_020166f4EPS_ kind:function(arm,size=0x2c) addr:0x020166f4 func_02016720 kind:function(arm,size=0x1c) addr:0x02016720 func_0201673c kind:function(arm,size=0x28) addr:0x0201673c func_02016764 kind:function(arm,size=0x34) addr:0x02016764 @@ -904,26 +904,26 @@ _ZN12GameModeBaseC2Ev kind:function(arm,size=0x10) addr:0x020182e4 _ZN12GameModeBaseD1Ev kind:function(arm,size=0x28) addr:0x020182f4 _ZN12GameModeBaseD0Ev kind:function(arm,size=0x30) addr:0x0201831c _ZN12GameModeBaseD2Ev kind:function(arm,size=0x28) addr:0x0201834c -_ZN12GameModeBase8vfunc_08Eiii kind:function(arm,size=0x14) addr:0x02018374 +_ZN12GameModeBase8vfunc_08Ev kind:function(arm,size=0x14) addr:0x02018374 _ZN12GameModeBase8vfunc_14Ev kind:function(arm,size=0x4) addr:0x02018388 _ZN12GameModeBase8vfunc_10Ev kind:function(arm,size=0x4) addr:0x0201838c _ZN12GameModeBase8vfunc_18Ev kind:function(arm,size=0x4) addr:0x02018390 _ZN12GameModeBase8vfunc_1CEv kind:function(arm,size=0x4) addr:0x02018394 _ZN12GameModeBase8vfunc_20Ev kind:function(arm,size=0x4) addr:0x02018398 _ZN12GameModeBase8vfunc_24Ev kind:function(arm,size=0x8) addr:0x0201839c -_ZN18UnkStruct_0204a0608vfunc_0CEi kind:function(thumb,size=0x14) addr:0x020183a4 -func_020183b8 kind:function(thumb,size=0x8) addr:0x020183b8 -func_020183c0 kind:function(thumb,size=0x14) addr:0x020183c0 +_ZN18UnkStruct_0204a0608vfunc_0CEv kind:function(thumb,size=0x14) addr:0x020183a4 +_ZN18UnkStruct_0204a06013func_020183b8Ev kind:function(thumb,size=0x8) addr:0x020183b8 +_ZN18UnkStruct_0204a06013func_020183c0Ev kind:function(thumb,size=0x14) addr:0x020183c0 _ZN18UnkStruct_0204a06013func_020183d4EbPvi kind:function(thumb,size=0x50) addr:0x020183d4 -func_02018424 kind:function(thumb,size=0x14) addr:0x02018424 +_ZN18UnkStruct_0204a06013func_02018424Ev kind:function(thumb,size=0x14) addr:0x02018424 _ZN18UnkStruct_0204a060D1Ev kind:function(arm,size=0x14) addr:0x02018438 _ZN18UnkStruct_0204a060D0Ev kind:function(arm,size=0x1c) addr:0x0201844c -func_02018468 kind:function(arm,size=0x14) addr:0x02018468 +_ZN18UnkStruct_0204a060D2Ev kind:function(arm,size=0x14) addr:0x02018468 _ZN19GameModeManagerBase6CreateEi kind:function(thumb,size=0x1c) addr:0x0201847c -_ZN19GameModeManagerBaseC2Ev kind:function(thumb,size=0x5c) addr:0x02018498 -_ZN19GameModeManagerBaseC1Ev kind:function(thumb,size=0x5c) addr:0x020184f4 -func_02018550 kind:function(thumb,size=0x2) addr:0x02018550 -func_02018554 kind:function(thumb,size=0x2) addr:0x02018554 +_ZN19GameModeManagerBaseC2Ei kind:function(thumb,size=0x5c) addr:0x02018498 +_ZN19GameModeManagerBaseC1Ei kind:function(thumb,size=0x5c) addr:0x020184f4 +_ZN19GameModeManagerBase13func_02018550Ev kind:function(thumb,size=0x2) addr:0x02018550 +_ZN19GameModeManagerBase13func_02018554Ev kind:function(thumb,size=0x2) addr:0x02018554 _ZN19GameModeManagerBaseD1Ev kind:function(thumb,size=0x24) addr:0x02018558 _ZN19GameModeManagerBaseD0Ev kind:function(thumb,size=0x2c) addr:0x0201857c _ZN19GameModeManagerBaseD2Ev kind:function(thumb,size=0x24) addr:0x020185a8 @@ -934,36 +934,36 @@ _ZN19GameModeManagerBase8vfunc_1CEv kind:function(thumb,size=0x2) addr:0x020185d _ZN19GameModeManagerBase8vfunc_20Ev kind:function(thumb,size=0x2) addr:0x020185dc _ZN19GameModeManagerBase8vfunc_00Ev kind:function(arm,size=0x2c) addr:0x020185e0 _ZN19GameModeManagerBase8vfunc_04Ev kind:function(arm,size=0x28) addr:0x0201860c -func_02018634 kind:function(arm,size=0x48) addr:0x02018634 +_ZN19GameModeManagerBase13func_02018634Ei kind:function(arm,size=0x48) addr:0x02018634 _ZN19GameModeManagerBase8vfunc_24Ev kind:function(arm,size=0x18) addr:0x0201867c -_ZN19GameModeManagerBase8vfunc_28Ei kind:function(arm,size=0x10) addr:0x02018694 -_ZN19GameModeManagerBase8vfunc_2CEi kind:function(arm,size=0x4) addr:0x020186a4 -_ZN19GameModeManagerBase8vfunc_30Ev kind:function(arm,size=0x4c) addr:0x020186a8 +_ZN19GameModeManagerBase8vfunc_28EPc kind:function(arm,size=0x10) addr:0x02018694 +_ZN19GameModeManagerBase8vfunc_2CEPc kind:function(arm,size=0x4) addr:0x020186a4 +_ZN19GameModeManagerBase8vfunc_30Ei kind:function(arm,size=0x4c) addr:0x020186a8 _ZN19GameModeManagerBase8vfunc_34Ev kind:function(arm,size=0x4) addr:0x020186f4 -func_020186f8 kind:function(arm,size=0xc) addr:0x020186f8 -func_02018704 kind:function(arm,size=0x10) addr:0x02018704 -func_02018714 kind:function(arm,size=0x28) addr:0x02018714 -func_0201873c kind:function(arm,size=0x10) addr:0x0201873c -func_0201874c kind:function(arm,size=0x10) addr:0x0201874c +_ZN19GameModeManagerBase13func_020186f8Ei kind:function(arm,size=0xc) addr:0x020186f8 +_ZN19GameModeManagerBase13func_02018704Ev kind:function(arm,size=0x10) addr:0x02018704 +_ZN19GameModeManagerBase13func_02018714Eiiiii kind:function(arm,size=0x28) addr:0x02018714 +_ZN19GameModeManagerBase13func_0201873cEv kind:function(arm,size=0x10) addr:0x0201873c +_ZN19GameModeManagerBase13func_0201874cEv kind:function(arm,size=0x10) addr:0x0201874c _ZN19GameModeManagerBase13func_0201875cEv kind:function(arm,size=0xd4) addr:0x0201875c -_ZN19GameModeManagerBase13func_02018830Ei kind:function(arm,size=0xd8) addr:0x02018830 +_ZN19GameModeManagerBase13func_02018830EPc kind:function(arm,size=0xd8) addr:0x02018830 _ZN19GameModeManagerBase13func_02018908Ev kind:function(arm,size=0x7c) addr:0x02018908 -_ZN19GameModeManagerBase13func_02018984Ei kind:function(arm,size=0x90) addr:0x02018984 -_ZN19GameModeManagerBase13func_02018a14Ei kind:function(arm,size=0x78) addr:0x02018a14 -func_02018a8c kind:function(arm,size=0x10) addr:0x02018a8c -func_02018a9c kind:function(arm,size=0x10) addr:0x02018a9c -func_02018aac kind:function(arm,size=0x18) addr:0x02018aac -func_02018ac4 kind:function(arm,size=0x10) addr:0x02018ac4 -func_02018ad4 kind:function(arm,size=0x1c) addr:0x02018ad4 -func_02018af0 kind:function(arm,size=0x64) addr:0x02018af0 -func_02018b54 kind:function(arm,size=0x3c) addr:0x02018b54 -func_02018b90 kind:function(arm,size=0x34) addr:0x02018b90 +_ZN19GameModeManagerBase13func_02018984EPc kind:function(arm,size=0x90) addr:0x02018984 +_ZN19GameModeManagerBase13func_02018a14EPc kind:function(arm,size=0x78) addr:0x02018a14 +_ZN19GameModeManagerBase13func_02018a8cEv kind:function(arm,size=0x10) addr:0x02018a8c +_ZN19GameModeManagerBase13func_02018a9cEii kind:function(arm,size=0x10) addr:0x02018a9c +_ZN19GameModeManagerBase13func_02018aacEi kind:function(arm,size=0x18) addr:0x02018aac +_ZN19GameModeManagerBase13func_02018ac4Ev kind:function(arm,size=0x10) addr:0x02018ac4 +_ZN19GameModeManagerBase13func_02018ad4Ev kind:function(arm,size=0x1c) addr:0x02018ad4 +_ZN19GameModeManagerBase13func_02018af0EP16GameModeLinkListI23GameModeManagerBase_104E kind:function(arm,size=0x64) addr:0x02018af0 +_ZN19GameModeManagerBase13func_02018b54EP16GameModeLinkListI23GameModeManagerBase_104E kind:function(arm,size=0x3c) addr:0x02018b54 +_ZN19GameModeManagerBase13func_02018b90EP16GameModeLinkListI23GameModeManagerBase_104EPc kind:function(arm,size=0x34) addr:0x02018b90 func_02018bc4 kind:function(arm,size=0x1c) addr:0x02018bc4 func_02018be0 kind:function(arm,size=0x4c) addr:0x02018be0 func_02018c2c kind:function(arm,size=0x4c) addr:0x02018c2c _ZN18UnkStruct_0204a11013func_02018c78Ei kind:function(arm,size=0x18) addr:0x02018c78 _ZN18UnkStruct_0204a11013func_02018c90Ei kind:function(arm,size=0xa4) addr:0x02018c90 -func_02018d34 kind:function(arm,size=0x44) addr:0x02018d34 +_ZN18UnkStruct_0204a11013func_02018d34Ev kind:function(arm,size=0x44) addr:0x02018d34 func_02018d78 kind:function(arm,size=0x174) addr:0x02018d78 func_02018eec kind:function(arm,size=0xac) addr:0x02018eec func_02018f98 kind:function(arm,size=0x368) addr:0x02018f98 @@ -1041,7 +1041,7 @@ _ZN24UnkStruct_0204a060_Base2C1Ev kind:function(arm,size=0x2c) addr:0x0201ba3c _ZN24UnkStruct_0204a060_Base3C1Ev kind:function(arm,size=0x2c) addr:0x0201ba68 _ZN24UnkStruct_0204a060_Base2D1Ev kind:function(arm,size=0x18) addr:0x0201ba94 _ZN24UnkStruct_0204a060_Base2D0Ev kind:function(arm,size=0x20) addr:0x0201baac -_ZN23UnkStruct_0204a060_BaseD1Ev kind:function(arm,size=0x18) addr:0x0201bacc +_ZN23UnkStruct_0204a060_BaseD2Ev kind:function(arm,size=0x18) addr:0x0201bacc _ZN24UnkStruct_0204a060_Base28vfunc_08Ei kind:function(arm,size=0x8) addr:0x0201bae4 _ZN23UnkStruct_0204a060_BaseC2Ev kind:function(arm,size=0x4c) addr:0x0201baec _ZN23UnkStruct_0204a060_BaseC1Ev kind:function(arm,size=0x4c) addr:0x0201bb38 @@ -1050,7 +1050,7 @@ _ZN23UnkStruct_0204a060_Base13func_0201bba4Eii kind:function(arm,size=0x28) addr _ZN23UnkStruct_0204a060_Base13func_0201bbccEv kind:function(arm,size=0x18) addr:0x0201bbcc _ZN23UnkStruct_0204a060_Base8vfunc_08Ei kind:function(arm,size=0x1a4) addr:0x0201bbe4 _ZN23UnkStruct_0204a060_Base8vfunc_0CEi kind:function(arm,size=0x4) addr:0x0201bd88 -_ZN23UnkStruct_0204a060_Base8vfunc_10Ei kind:function(arm,size=0x4) addr:0x0201bd8c +_ZN23UnkStruct_0204a060_Base8vfunc_10Ev kind:function(arm,size=0x4) addr:0x0201bd8c func_0201bd90 kind:function(arm,size=0x14) addr:0x0201bd90 _ZN23UnkStruct_0204a060_BaseD0Ev kind:function(arm,size=0x1c) addr:0x0201bda4 func_0201bdc0 kind:function(arm,size=0x10) addr:0x0201bdc0 @@ -1058,21 +1058,21 @@ func_0201bdd0 kind:function(arm,size=0x38) addr:0x0201bdd0 func_0201be08 kind:function(arm,size=0x18) addr:0x0201be08 func_0201be20 kind:function(arm,size=0xc) addr:0x0201be20 func_0201be2c kind:function(arm,size=0x8c) addr:0x0201be2c -func_0201beb8 kind:function(arm,size=0x30) addr:0x0201beb8 -func_0201bee8 kind:function(arm,size=0x3c) addr:0x0201bee8 -func_0201bf24 kind:function(arm,size=0x30) addr:0x0201bf24 -func_0201bf54 kind:function(arm,size=0x3c) addr:0x0201bf54 -func_0201bf90 kind:function(arm,size=0x5c) addr:0x0201bf90 -func_0201bfec kind:function(arm,size=0x20) addr:0x0201bfec +_ZN23GameModeManagerBase_004C1Ev kind:function(arm,size=0x30) addr:0x0201beb8 +_ZN23GameModeManagerBase_004D1Ev kind:function(arm,size=0x3c) addr:0x0201bee8 +_ZN23GameModeManagerBase_00413func_0201bf24Ev kind:function(arm,size=0x30) addr:0x0201bf24 +_ZN23GameModeManagerBase_00413func_0201bf54Ev kind:function(arm,size=0x3c) addr:0x0201bf54 +_ZN23GameModeManagerBase_00413func_0201bf90Ev kind:function(arm,size=0x5c) addr:0x0201bf90 +_ZN23GameModeManagerBase_00413func_0201bfecEv kind:function(arm,size=0x20) addr:0x0201bfec _ZN23GameModeManagerBase_00413func_0201c00cEii kind:function(arm,size=0x5c) addr:0x0201c00c -func_0201c068 kind:function(arm,size=0x3c) addr:0x0201c068 +_ZN23GameModeManagerBase_00413func_0201c068Es kind:function(arm,size=0x3c) addr:0x0201c068 func_0201c0a4 kind:function(arm,size=0x20) addr:0x0201c0a4 func_0201c0c4 kind:function(arm,size=0x20) addr:0x0201c0c4 func_0201c0e4 kind:function(arm,size=0x40) addr:0x0201c0e4 -func_0201c124 kind:function(arm,size=0x78) addr:0x0201c124 -func_0201c19c kind:function(arm,size=0x48) addr:0x0201c19c -func_0201c1e4 kind:function(arm,size=0x48) addr:0x0201c1e4 -func_0201c22c kind:function(arm,size=0x40) addr:0x0201c22c +_ZN23GameModeManagerBase_00413func_0201c124Eiiiii kind:function(arm,size=0x78) addr:0x0201c124 +_ZN23GameModeManagerBase_00413func_0201c19cEv kind:function(arm,size=0x48) addr:0x0201c19c +_ZN23GameModeManagerBase_00413func_0201c1e4Ev kind:function(arm,size=0x48) addr:0x0201c1e4 +_ZN23GameModeManagerBase_00413func_0201c22cEv kind:function(arm,size=0x40) addr:0x0201c22c func_0201c26c kind:function(arm,size=0x44) addr:0x0201c26c func_0201c2b0 kind:function(arm,size=0x30) addr:0x0201c2b0 func_0201c2e0 kind:function(arm,size=0xc4) addr:0x0201c2e0 @@ -2538,9 +2538,9 @@ data_02043fa8 kind:data(any) addr:0x02043fa8 data_02043fb8 kind:data(any) addr:0x02043fb8 data_02043fd4 kind:data(any) addr:0x02043fd4 data_02043ff0 kind:data(any) addr:0x02043ff0 -data_02044018 kind:data(any) addr:0x02044018 +_ZTV12GameModeBase kind:data(any) addr:0x02044010 _ZTV18UnkStruct_0204a060 kind:data(any) addr:0x02044040 -data_02044064 kind:data(any) addr:0x02044064 +_ZTV19GameModeManagerBase kind:data(any) addr:0x0204405c data_0204409c kind:data(any) addr:0x0204409c data_020440a0 kind:data(any) addr:0x020440a0 data_020440b0 kind:data(any) addr:0x020440b0 diff --git a/config/jp/arm9/delinks.txt b/config/jp/arm9/delinks.txt index c685fb98..22524e8f 100644 --- a/config/jp/arm9/delinks.txt +++ b/config/jp/arm9/delinks.txt @@ -16,9 +16,27 @@ src/Main/System/SysNew.cpp: src/Main/System/OverlayManager.cpp: .text start:0x02014800 end:0x02014948 +src/Main/Game/GameModeLinkListNode.cpp: + complete + .text start:0x02016614 end:0x020166b8 + src/Main/func_02017ea4.cpp: .text start:0x02017e3c end:0x02017ed0 +src/Main/Game/GameModeBase.cpp: + complete + .text start:0x0201827c end:0x0201833c + .data start:0x02045554 end:0x02045584 + +src/Main/UnkStruct_0204a060.cpp: + complete + .text start:0x0201833c end:0x02018414 + .data start:0x02045584 end:0x020455a0 + +src/Main/Game/GameModeManagerBase.cpp: + .text start:0x02018414 end:0x02018b5c + .data start:0x020455a0 end:0x020455e0 + libs/c/src/abort_exit_arm_eabi.c: complete .text start:0x02034c18 end:0x02034da0 diff --git a/config/jp/arm9/overlays/ov000/delinks.txt b/config/jp/arm9/overlays/ov000/delinks.txt index 19b018c2..88fcc3bb 100644 --- a/config/jp/arm9/overlays/ov000/delinks.txt +++ b/config/jp/arm9/overlays/ov000/delinks.txt @@ -5,6 +5,15 @@ .data start:0x020b3160 end:0x020b66c0 kind:data align:32 .bss start:0x020b66c0 end:0x020b7d40 kind:bss align:32 +src/000_Second/Game/GameModeManagerBase_104_0C.cpp: + complete + .text start:0x02063014 end:0x0206306c + .data start:0x020b3640 end:0x020b3658 + +src/000_Second/Game/GameModeManagerBase_104.cpp: + .text start:0x0206306c end:0x02063268 + .data start:0x020b3658 end:0x020b367c + src/000_Second/Actor/Actor.cpp: .text start:0x02099b30 end:0x02099dfc .data start:0x020b48e4 end:0x020b4948 diff --git a/config/jp/arm9/overlays/ov000/relocs.txt b/config/jp/arm9/overlays/ov000/relocs.txt index 74930974..d8b27fee 100644 --- a/config/jp/arm9/overlays/ov000/relocs.txt +++ b/config/jp/arm9/overlays/ov000/relocs.txt @@ -1378,25 +1378,25 @@ from:0x02063040 kind:arm_call to:0x02011ff4 module:main from:0x02063058 kind:arm_call to:0x0201662c module:main from:0x02063078 kind:arm_call to:0x02016614 module:main from:0x02063088 kind:arm_call to:0x02016614 module:main -from:0x020630ac kind:load to:0x020b3660 module:overlay(0) -from:0x020630b0 kind:load to:0x020b3648 module:overlay(0) +from:0x020630ac kind:load to:0x020b3658 add:8 module:overlay(0) +from:0x020630b0 kind:load to:0x020b3640 add:8 module:overlay(0) from:0x020630c0 kind:arm_call to:0x02016614 module:main from:0x020630d0 kind:arm_call to:0x02016614 module:main -from:0x020630f4 kind:load to:0x020b3660 module:overlay(0) -from:0x020630f8 kind:load to:0x020b3648 module:overlay(0) +from:0x020630f4 kind:load to:0x020b3658 add:8 module:overlay(0) +from:0x020630f8 kind:load to:0x020b3640 add:8 module:overlay(0) from:0x02063154 kind:arm_call to:0x02063014 module:overlay(0) from:0x0206315c kind:arm_call to:0x0201662c module:main -from:0x02063168 kind:load to:0x020b3660 module:overlay(0) +from:0x02063168 kind:load to:0x020b3658 add:8 module:overlay(0) from:0x020631c4 kind:arm_call to:0x02063014 module:overlay(0) from:0x020631cc kind:arm_call to:0x0201662c module:main from:0x020631d4 kind:arm_call to:0x02011ff4 module:main -from:0x020631e0 kind:load to:0x020b3660 module:overlay(0) +from:0x020631e0 kind:load to:0x020b3658 add:8 module:overlay(0) from:0x0206323c kind:arm_call to:0x02063014 module:overlay(0) from:0x02063244 kind:arm_call to:0x0201662c module:main -from:0x02063250 kind:load to:0x020b3660 module:overlay(0) +from:0x02063250 kind:load to:0x020b3658 add:8 module:overlay(0) from:0x02063290 kind:arm_call to:0x0202a17c module:main from:0x020632a0 kind:arm_call to:0x0202a17c module:main -from:0x020632bc kind:load to:0x020b3684 module:overlay(0) +from:0x020632bc kind:load to:0x020b367c add:8 module:overlay(0) from:0x020632d0 kind:arm_call to:0x020090d4 module:main from:0x020632ec kind:arm_call to:0x0200911c module:main from:0x02063384 kind:arm_call to:0x02008a0c module:main diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 9982d341..556edea6 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -492,15 +492,15 @@ func_ov000_02062ff8 kind:function(arm,size=0xc) addr:0x02062ff8 func_ov000_02063004 kind:function(arm,size=0x10) addr:0x02063004 _ZN26GameModeManagerBase_104_0CD1Ev kind:function(arm,size=0x18) addr:0x02063014 _ZN26GameModeManagerBase_104_0CD0Ev kind:function(arm,size=0x20) addr:0x0206302c -_ZN26GameModeManagerBase_104_0C19func_ov000_02061ac4Ev kind:function(arm,size=0x18) addr:0x0206304c -_ZN26GameModeManagerBase_104_0C8vfunc_08Ev kind:function(arm,size=0x4) addr:0x02063064 -_ZN26GameModeManagerBase_104_0C8vfunc_0CEv kind:function(arm,size=0x4) addr:0x02063068 +_ZN26GameModeManagerBase_104_0CD2Ev kind:function(arm,size=0x18) addr:0x0206304c +_ZN26GameModeManagerBase_104_0C8vfunc_08EPv kind:function(arm,size=0x4) addr:0x02063064 +_ZN26GameModeManagerBase_104_0C8vfunc_0CEPv kind:function(arm,size=0x4) addr:0x02063068 _ZN23GameModeManagerBase_104C2Ev kind:function(arm,size=0x48) addr:0x0206306c _ZN23GameModeManagerBase_104C1Ev kind:function(arm,size=0x48) addr:0x020630b4 _ZN23GameModeManagerBase_104D1Ev kind:function(arm,size=0x70) addr:0x020630fc _ZN23GameModeManagerBase_104D0Ev kind:function(arm,size=0x78) addr:0x0206316c _ZN23GameModeManagerBase_104D2Ev kind:function(arm,size=0x70) addr:0x020631e4 -_ZN23GameModeManagerBase_1048vfunc_08Ei kind:function(arm,size=0x4) addr:0x02063254 +_ZN23GameModeManagerBase_1048vfunc_08EP5InputP12TouchControl kind:function(arm,size=0x4) addr:0x02063254 _ZN23GameModeManagerBase_1048vfunc_0CEi kind:function(arm,size=0x4) addr:0x02063258 _ZN23GameModeManagerBase_1048vfunc_10EPc kind:function(arm,size=0x4) addr:0x0206325c _ZN23GameModeManagerBase_1048vfunc_14EPc kind:function(arm,size=0x4) addr:0x02063260 @@ -736,7 +736,7 @@ _ZN24UnkStruct_ov000_020b504c19func_ov000_02067e60Ehi kind:function(arm,size=0xf func_ov000_02069500 kind:function(arm,size=0x2c) addr:0x02069500 func_ov000_0206952c kind:function(arm,size=0xe0) addr:0x0206952c func_ov000_0206960c kind:function(arm,size=0x14) addr:0x0206960c -_ZN24UnkStruct_ov000_020b504c19func_ov000_0206807cEiPv kind:function(arm,size=0x48) addr:0x02069620 +_ZN24UnkStruct_ov000_020b504c19func_ov000_0206807cEPvS0_ kind:function(arm,size=0x48) addr:0x02069620 func_ov000_02069668 kind:function(arm,size=0xd0) addr:0x02069668 func_ov000_02069738 kind:function(arm,size=0x98) addr:0x02069738 func_ov000_020697d0 kind:function(arm,size=0x94) addr:0x020697d0 @@ -793,8 +793,8 @@ func_ov000_0206b1c0 kind:function(arm,size=0x28) addr:0x0206b1c0 func_ov000_0206b1e8 kind:function(arm,size=0x34) addr:0x0206b1e8 func_ov000_0206b21c kind:function(arm,size=0x28) addr:0x0206b21c func_ov000_0206b244 kind:function(arm,size=0x9c) addr:0x0206b244 -func_ov000_0206b2e0 kind:function(arm,size=0x40) addr:0x0206b2e0 -func_ov000_0206b320 kind:function(arm,size=0x40) addr:0x0206b320 +_ZN24UnkStruct_ov000_020b50c019func_ov000_02069d3cEi kind:function(arm,size=0x40) addr:0x0206b2e0 +_ZN24UnkStruct_ov000_020b50c019func_ov000_02069d7cEv kind:function(arm,size=0x40) addr:0x0206b320 func_ov000_0206b360 kind:function(arm,size=0x84) addr:0x0206b360 func_ov000_0206b3e4 kind:function(arm,size=0xc) addr:0x0206b3e4 func_ov000_0206b3f0 kind:function(arm,size=0x50) addr:0x0206b3f0 @@ -3456,9 +3456,9 @@ data_ov000_020b360c kind:data(any) addr:0x020b360c data_ov000_020b3610 kind:data(any) addr:0x020b3610 data_ov000_020b3620 kind:data(any) addr:0x020b3620 data_ov000_020b3630 kind:data(any) addr:0x020b3630 -data_ov000_020b3648 kind:data(any) addr:0x020b3648 -data_ov000_020b3660 kind:data(any) addr:0x020b3660 -data_ov000_020b3684 kind:data(any) addr:0x020b3684 +_ZTV26GameModeManagerBase_104_0C kind:data(any) addr:0x020b3640 +_ZTV23GameModeManagerBase_104 kind:data(any) addr:0x020b3658 +data_ov000_020b3684 kind:data(any) addr:0x020b367c data_ov000_020b369c kind:data(any) addr:0x020b369c data_ov000_020b36b4 kind:data(any) addr:0x020b36b4 data_ov000_020b36cc kind:data(any) addr:0x020b36cc diff --git a/config/jp/arm9/overlays/ov001/symbols.txt b/config/jp/arm9/overlays/ov001/symbols.txt index 1557ef6e..63d5c9d3 100644 --- a/config/jp/arm9/overlays/ov001/symbols.txt +++ b/config/jp/arm9/overlays/ov001/symbols.txt @@ -261,7 +261,7 @@ func_ov001_020bebd0 kind:function(thumb,size=0x128) addr:0x020bebd0 func_ov001_020becf8 kind:function(thumb,size=0x40) addr:0x020becf8 func_ov001_020bed38 kind:function(thumb,size=0x22) addr:0x020bed38 _ZN18UnkStruct_0204a11019func_ov001_020bd514EiPvii kind:function(thumb,size=0x78) addr:0x020bed5c -func_ov001_020bedd4 kind:function(thumb,size=0x24) addr:0x020bedd4 +_ZN18UnkStruct_0204a11019func_ov001_020bd58cEv kind:function(thumb,size=0x24) addr:0x020bedd4 func_ov001_020bedf8 kind:function(thumb,size=0x88) addr:0x020bedf8 func_ov001_020bee80 kind:function(thumb,size=0x40) addr:0x020bee80 func_ov001_020beec0 kind:function(thumb,size=0x14) addr:0x020beec0 @@ -280,7 +280,7 @@ func_ov001_020bf084 kind:function(thumb,size=0xc) addr:0x020bf084 func_ov001_020bf090 kind:function(thumb,size=0xc) addr:0x020bf090 func_ov001_020bf09c kind:function(thumb,size=0x28) addr:0x020bf09c func_ov001_020bf0c4 kind:function(thumb,size=0x30) addr:0x020bf0c4 -func_ov001_020bf0f4 kind:function(thumb,size=0x30) addr:0x020bf0f4 +_ZN24UnkStruct_ov000_020b50c019func_ov001_020bd8acEv kind:function(thumb,size=0x30) addr:0x020bf0f4 _ZN24UnkStruct_ov000_020b50c019func_ov001_020bd8dcEv kind:function(thumb,size=0xc) addr:0x020bf124 func_ov001_020bf130 kind:function(thumb,size=0x28) addr:0x020bf130 func_ov001_020bf158 kind:function(thumb,size=0x30) addr:0x020bf158 @@ -296,7 +296,7 @@ func_ov001_020bf7f4 kind:function(thumb,size=0x16) addr:0x020bf7f4 func_ov001_020bf80c kind:function(thumb,size=0x78) addr:0x020bf80c func_ov001_020bf884 kind:function(thumb,size=0x2) addr:0x020bf884 func_ov001_020bf888 kind:function(thumb,size=0x20) addr:0x020bf888 -func_ov001_020bf8a8 kind:function(thumb,size=0x60) addr:0x020bf8a8 +func_ov001_020be078 kind:function(thumb,size=0x60) addr:0x020bf8a8 func_ov001_020be054 kind:function(thumb,size=0x24) addr:0x020bf908 func_ov001_020be0d8 kind:function(thumb,size=0x14) addr:0x020bf92c func_ov001_020be0ec kind:function(thumb,size=0x14) addr:0x020bf940 diff --git a/config/jp/arm9/overlays/ov018/delinks.txt b/config/jp/arm9/overlays/ov018/delinks.txt index de12f5e9..9201597c 100644 --- a/config/jp/arm9/overlays/ov018/delinks.txt +++ b/config/jp/arm9/overlays/ov018/delinks.txt @@ -4,7 +4,6 @@ .bss start:0x020c7400 end:0x020c7460 kind:bss align:32 src/018_StartUp/GameModeStartUp.cpp: - complete .text start:0x020c6060 end:0x020c66ac .data start:0x020c7360 end:0x020c73c4 .bss start:0x020c7400 end:0x020c7460 diff --git a/config/jp/arm9/overlays/ov019/symbols.txt b/config/jp/arm9/overlays/ov019/symbols.txt index 42ecefe9..4191bd16 100644 --- a/config/jp/arm9/overlays/ov019/symbols.txt +++ b/config/jp/arm9/overlays/ov019/symbols.txt @@ -3,7 +3,7 @@ _ZN18GameModeFileSelectC1Ev kind:function(arm,size=0xb0) addr:0x020c6084 _ZN25UnkSystem1_ov019_Derived1D1Ev kind:function(arm,size=0x14) addr:0x020c6134 _ZN18GameModeFileSelectD1Ev kind:function(arm,size=0x84) addr:0x020c6148 _ZN18GameModeFileSelectD0Ev kind:function(arm,size=0x8c) addr:0x020c61cc -_ZN18GameModeFileSelect8vfunc_08Eiii kind:function(arm,size=0x70) addr:0x020c6258 +_ZN18GameModeFileSelect8vfunc_08Ev kind:function(arm,size=0x70) addr:0x020c6258 _ZN18GameModeFileSelect8vfunc_14Ev kind:function(arm,size=0x4) addr:0x020c62c8 _ZN18GameModeFileSelect8vfunc_0CEv kind:function(arm,size=0x30) addr:0x020c62cc _ZN18GameModeFileSelect8vfunc_18Ev kind:function(arm,size=0x4) addr:0x020c62fc @@ -21,8 +21,8 @@ _ZN17FileSelectManager8vfunc_10Eiii kind:function(arm,size=0x120) addr:0x020c66f _ZN17FileSelectManager8vfunc_24Ev kind:function(arm,size=0x40) addr:0x020c6818 _ZN17FileSelectManager19func_ov019_020c5038Ev kind:function(arm,size=0x4) addr:0x020c6858 _ZN17FileSelectManager19func_ov019_020c503cEv kind:function(arm,size=0x12c) addr:0x020c685c -_ZN17FileSelectManager8vfunc_28Ei kind:function(arm,size=0x20) addr:0x020c6988 -_ZN17FileSelectManager8vfunc_2CEi kind:function(arm,size=0x20) addr:0x020c69a8 +_ZN17FileSelectManager8vfunc_28EPc kind:function(arm,size=0x20) addr:0x020c6988 +_ZN17FileSelectManager8vfunc_2CEPc kind:function(arm,size=0x20) addr:0x020c69a8 _ZN17FileSelectManager19func_ov019_020c51a8Ev kind:function(arm,size=0x44) addr:0x020c69c8 _ZN23UnkStruct_0204a088_BaseD2Ev kind:function(arm,size=0x14) addr:0x020c6a0c _ZN25UnkSystem1_ov019_Derived1C1Ev kind:function(arm,size=0x3c) addr:0x020c6a20 @@ -73,7 +73,7 @@ _ZN14FileSelectMain19func_ov019_020c7dc8Ev kind:function(arm,size=0x314) addr:0x _ZN14FileSelectMain19func_ov019_020c80dcEv kind:function(arm,size=0xc) addr:0x020c98fc _ZN14FileSelectMain19func_ov019_020c80e8Ev kind:function(arm,size=0xc) addr:0x020c9908 _ZN14FileSelectMain19func_ov019_020c80f4Ev kind:function(arm,size=0x4) addr:0x020c9914 -_ZN14FileSelectMain8vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x198) addr:0x020c9918 +_ZN14FileSelectMain8vfunc_08EP5InputP12TouchControl kind:function(arm,size=0x198) addr:0x020c9918 _ZN14FileSelectMain19func_ov019_020c8290Ev kind:function(arm,size=0x34) addr:0x020c9ab0 _ZN14FileSelectMain19func_ov019_020c82c4Ev kind:function(arm,size=0x190) addr:0x020c9ae4 _ZN14FileSelectMain19func_ov019_020c8454Ev kind:function(arm,size=0xd0) addr:0x020c9c74 @@ -135,7 +135,7 @@ _ZN14FileSelectMain19func_ov019_020cb664Ev kind:function(arm,size=0x84) addr:0x0 _ZN14FileSelectMain19func_ov019_020cb6e8Ev kind:function(arm,size=0x30) addr:0x020ccf08 _ZN14FileSelectMain19func_ov019_020cb718Ev kind:function(arm,size=0x30) addr:0x020ccf38 _ZN14FileSelectMain19func_ov019_020cb748Ev kind:function(arm,size=0x20) addr:0x020ccf68 -_ZN13UnkSubStruct9C2ENS_13stack_struct1E kind:function(arm,size=0x384) addr:0x020ccf88 +_ZN13UnkSubStruct9C2E13stack_struct1 kind:function(arm,size=0x384) addr:0x020ccf88 _ZN13UnkSubStruct919func_ov019_020cbaecEv kind:function(arm,size=0x24) addr:0x020cd30c _ZN13UnkSubStruct915IsPlayerNameSetEv kind:function(arm,size=0x30) addr:0x020cd330 _ZN13UnkSubStruct919func_ov019_020cbb40Ev kind:function(arm,size=0x54) addr:0x020cd360 @@ -146,14 +146,14 @@ _ZN24FileSelectOptionsManager6CreateEPvi kind:function(arm,size=0x34) addr:0x020 _ZN24FileSelectOptionsManagerC1EPvi kind:function(arm,size=0xb8) addr:0x020cde14 _ZN24FileSelectOptionsManagerD1Ev kind:function(arm,size=0x6c) addr:0x020cdecc _ZN24FileSelectOptionsManagerD0Ev kind:function(arm,size=0x74) addr:0x020cdf38 -_ZN24FileSelectOptionsManager8vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0xd0) addr:0x020cdfac +_ZN24FileSelectOptionsManager8vfunc_08EP5InputP12TouchControl kind:function(arm,size=0xd0) addr:0x020cdfac _ZN24FileSelectOptionsManager19func_ov019_020cc85cEi kind:function(arm,size=0x18) addr:0x020ce07c _ZN24FileSelectOptionsManager19func_ov019_020cc874Ev kind:function(arm,size=0xc) addr:0x020ce094 _ZN17FileSelectOptionsC1Ei kind:function(arm,size=0x298) addr:0x020ce0a0 _ZN17FileSelectOptionsD1Ev kind:function(arm,size=0x110) addr:0x020ce338 _ZN17FileSelectOptionsD0Ev kind:function(arm,size=0x118) addr:0x020ce448 _ZN17FileSelectOptions19func_ov019_020ccd40Ev kind:function(arm,size=0x38) addr:0x020ce560 -_ZN17FileSelectOptions8vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x38) addr:0x020ce598 +_ZN17FileSelectOptions8vfunc_08EP5InputP12TouchControl kind:function(arm,size=0x38) addr:0x020ce598 _ZN17FileSelectOptions8vfunc_10EPc kind:function(arm,size=0x44) addr:0x020ce5d0 _ZN17FileSelectOptions19func_ov019_020ccdf4Ev kind:function(arm,size=0x10) addr:0x020ce614 _ZN17FileSelectOptions19func_ov019_020cce04Ev kind:function(arm,size=0x2c) addr:0x020ce624 @@ -195,7 +195,7 @@ _ZN17FileSelectMicTest19func_ov019_020cea70Ev kind:function(arm,size=0x4) addr:0 _ZN17FileSelectMicTest19func_ov019_020cea74Ev kind:function(arm,size=0x38) addr:0x020d0294 _ZN17FileSelectMicTest19func_ov019_020ceaacEv kind:function(arm,size=0x120) addr:0x020d02cc _ZN17FileSelectMicTest19func_ov019_020cebccEv kind:function(arm,size=0x98) addr:0x020d03ec -_ZN17FileSelectMicTest8vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x2a0) addr:0x020d0484 +_ZN17FileSelectMicTest8vfunc_08EP5InputP12TouchControl kind:function(arm,size=0x2a0) addr:0x020d0484 _ZN17FileSelectMicTest8vfunc_10EPc kind:function(arm,size=0x68) addr:0x020d0724 _ZN17FileSelectMicTest8vfunc_14EPc kind:function(arm,size=0x78) addr:0x020d078c _ZN17FileSelectMicTest19func_ov019_020cefe4Ev kind:function(arm,size=0x14) addr:0x020d0804 @@ -205,7 +205,7 @@ _ZN31UnkStruct_ov019_020d24c8_28_27019func_ov019_020cf130Ev kind:function(arm,si _ZN31UnkStruct_ov019_020d24c8_28_27019func_ov019_020cf168Ev kind:function(arm,size=0xb4) addr:0x020d0988 _ZN31UnkStruct_ov019_020d24c8_28_27019func_ov019_020cf21cEv kind:function(arm,size=0x70) addr:0x020d0a3c _ZN19FileSelectSubScreenC1Ev kind:function(arm,size=0x35c) addr:0x020d0aac -_ZN19FileSelectSubScreen8vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x154) addr:0x020d0e08 +_ZN19FileSelectSubScreen8vfunc_08EP5InputP12TouchControl kind:function(arm,size=0x154) addr:0x020d0e08 _ZN19FileSelectSubScreen19func_ov019_020cf73cEii kind:function(arm,size=0x120) addr:0x020d0f5c _ZN19FileSelectSubScreen8vfunc_10EPc kind:function(arm,size=0x14) addr:0x020d107c _ZN13UnkStructSub2C1Ev kind:function(arm,size=0x18c) addr:0x020d1090 diff --git a/config/jp/arm9/overlays/ov025/symbols.txt b/config/jp/arm9/overlays/ov025/symbols.txt index f9904203..8383b55b 100644 --- a/config/jp/arm9/overlays/ov025/symbols.txt +++ b/config/jp/arm9/overlays/ov025/symbols.txt @@ -1,7 +1,7 @@ _ZN19GameModeTitleScreenC1Ev kind:function(arm,size=0x64) addr:0x020c6060 _ZN19GameModeTitleScreenD1Ev kind:function(arm,size=0x2c) addr:0x020c60c4 _ZN19GameModeTitleScreenD0Ev kind:function(arm,size=0x34) addr:0x020c60f0 -_ZN19GameModeTitleScreen8vfunc_08Eiii kind:function(arm,size=0x70) addr:0x020c6124 +_ZN19GameModeTitleScreen8vfunc_08Ev kind:function(arm,size=0x70) addr:0x020c6124 _ZN19GameModeTitleScreen8vfunc_0CEv kind:function(arm,size=0x24) addr:0x020c6194 _ZN19GameModeTitleScreen8vfunc_10Ev kind:function(arm,size=0x24) addr:0x020c61b8 _ZN19GameModeTitleScreen8vfunc_14Ev kind:function(arm,size=0x20) addr:0x020c61dc @@ -14,8 +14,8 @@ _ZN18TitleScreenManagerC1Ei kind:function(arm,size=0x58) addr:0x020c62d8 _ZN18TitleScreenManager8vfunc_14Ev kind:function(arm,size=0x78) addr:0x020c6330 _ZN18TitleScreenManager8vfunc_18Ev kind:function(arm,size=0x34) addr:0x020c63a8 _ZN18TitleScreenManager8vfunc_24Ev kind:function(arm,size=0x20) addr:0x020c63dc -_ZN18TitleScreenManager8vfunc_28Ei kind:function(arm,size=0x20) addr:0x020c63fc -_ZN18TitleScreenManager8vfunc_2CEi kind:function(arm,size=0x20) addr:0x020c641c +_ZN18TitleScreenManager8vfunc_28EPc kind:function(arm,size=0x20) addr:0x020c63fc +_ZN18TitleScreenManager8vfunc_2CEPc kind:function(arm,size=0x20) addr:0x020c641c _ZN18TitleScreenManager8vfunc_38Ev kind:function(arm,size=0x4) addr:0x020c643c _ZN18TitleScreenManager19func_ov025_020c4c20Ev kind:function(arm,size=0x10) addr:0x020c6440 _ZN18TitleScreenManager19func_ov025_020c4c30Ev kind:function(arm,size=0x10) addr:0x020c6450 @@ -28,13 +28,13 @@ _ZN11TitleScreen19func_ov025_020c4e54Ev kind:function(arm,size=0x18) addr:0x020c _ZN11TitleScreen19func_ov025_020c4e6cEv kind:function(arm,size=0x24) addr:0x020c668c _ZN11TitleScreen19func_ov025_020c4e90Ev kind:function(arm,size=0x10) addr:0x020c66b0 _ZN11TitleScreen19func_ov025_020c4ea0Ej kind:function(arm,size=0x298) addr:0x020c66c0 -_ZN11TitleScreen8vfunc_08EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0xc8) addr:0x020c6958 -_ZN11TitleScreen19func_ov025_020c5200EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x4) addr:0x020c6a20 -_ZN11TitleScreen19func_ov025_020c5204EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x3c) addr:0x020c6a24 -_ZN11TitleScreen19func_ov025_020c5240EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x190) addr:0x020c6a60 -_ZN11TitleScreen19func_ov025_020c53d0EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x1d4) addr:0x020c6bf0 -_ZN11TitleScreen19func_ov025_020c55a4EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x40) addr:0x020c6dc4 -_ZN11TitleScreen19func_ov025_020c55e4EP24GameModePTMFParam2StructP12TouchControl kind:function(arm,size=0x68) addr:0x020c6e04 +_ZN11TitleScreen8vfunc_08EP5InputP12TouchControl kind:function(arm,size=0xc8) addr:0x020c6958 +_ZN11TitleScreen19func_ov025_020c5200EP5InputP12TouchControl kind:function(arm,size=0x4) addr:0x020c6a20 +_ZN11TitleScreen19func_ov025_020c5204EP5InputP12TouchControl kind:function(arm,size=0x3c) addr:0x020c6a24 +_ZN11TitleScreen19func_ov025_020c5240EP5InputP12TouchControl kind:function(arm,size=0x190) addr:0x020c6a60 +_ZN11TitleScreen19func_ov025_020c53d0EP5InputP12TouchControl kind:function(arm,size=0x1d4) addr:0x020c6bf0 +_ZN11TitleScreen19func_ov025_020c55a4EP5InputP12TouchControl kind:function(arm,size=0x40) addr:0x020c6dc4 +_ZN11TitleScreen19func_ov025_020c55e4EP5InputP12TouchControl kind:function(arm,size=0x68) addr:0x020c6e04 _ZN11TitleScreen8vfunc_14EPc kind:function(arm,size=0x50) addr:0x020c6e6c _ZN11TitleScreen8vfunc_10EPc kind:function(arm,size=0x2c0) addr:0x020c6ebc _ZN11TitleScreen8vfunc_0CEi kind:function(arm,size=0x38) addr:0x020c717c diff --git a/config/jp/arm9/overlays/ov037/relocs.txt b/config/jp/arm9/overlays/ov037/relocs.txt index fe1c1252..07bf96fb 100644 --- a/config/jp/arm9/overlays/ov037/relocs.txt +++ b/config/jp/arm9/overlays/ov037/relocs.txt @@ -194,7 +194,7 @@ from:0x0211cc0c kind:arm_call to:0x0206306c module:overlay(0) from:0x0211cc94 kind:arm_call to:0x02061d8c module:overlay(0) from:0x0211cca8 kind:arm_call to:0x02016614 module:main from:0x0211ccd8 kind:load to:0x02123c04 module:overlay(37) -from:0x0211ccdc kind:load to:0x020b3648 module:overlay(0) +from:0x0211ccdc kind:load to:0x020b3640 add:8 module:overlay(0) from:0x0211ccec kind:arm_call to:0x02063014 module:overlay(0) from:0x0211ccf4 kind:arm_call to:0x020631e4 module:overlay(0) from:0x0211cd0c kind:arm_call to:0x02063014 module:overlay(0) diff --git a/config/jp/arm9/overlays/ov068/relocs.txt b/config/jp/arm9/overlays/ov068/relocs.txt index d23bc350..7d7ef6f2 100644 --- a/config/jp/arm9/overlays/ov068/relocs.txt +++ b/config/jp/arm9/overlays/ov068/relocs.txt @@ -1198,7 +1198,7 @@ from:0x021637a0 kind:arm_call to:0x0209e19c module:overlay(0) from:0x021637b4 kind:arm_call to:0x0206306c module:overlay(0) from:0x02163838 kind:arm_call to:0x02016614 module:main from:0x02163860 kind:load to:0x02165b04 module:overlay(68) -from:0x02163864 kind:load to:0x020b3648 module:overlay(0) +from:0x02163864 kind:load to:0x020b3640 add:8 module:overlay(0) from:0x02163874 kind:arm_call to:0x02063014 module:overlay(0) from:0x0216387c kind:arm_call to:0x020631e4 module:overlay(0) from:0x02163894 kind:arm_call to:0x02063014 module:overlay(0) diff --git a/config/jp/arm9/relocs.txt b/config/jp/arm9/relocs.txt index df18c1f3..d49568cf 100644 --- a/config/jp/arm9/relocs.txt +++ b/config/jp/arm9/relocs.txt @@ -2189,16 +2189,16 @@ from:0x0201820c kind:arm_call to:0x02019518 module:main from:0x0201823c kind:arm_call to:0x02058c08 module:overlay(0) from:0x02018260 kind:arm_call to:0x02058bc0 module:overlay(0) from:0x02018278 kind:load to:0x0204b690 module:main -from:0x02018288 kind:load to:0x0204555c module:main +from:0x02018288 kind:load to:0x02045554 add:8 module:main from:0x020182a0 kind:arm_call_thumb to:0x020bedd4 module:overlay(1) -from:0x020182ac kind:load to:0x0204555c module:main +from:0x020182ac kind:load to:0x02045554 add:8 module:main from:0x020182b0 kind:load to:0x0204b690 module:main from:0x020182c8 kind:arm_call_thumb to:0x020bedd4 module:overlay(1) from:0x020182d0 kind:arm_call to:0x02011ff4 module:main -from:0x020182dc kind:load to:0x0204555c module:main +from:0x020182dc kind:load to:0x02045554 add:8 module:main from:0x020182e0 kind:load to:0x0204b690 module:main from:0x020182f8 kind:arm_call_thumb to:0x020bedd4 module:overlay(1) -from:0x02018304 kind:load to:0x0204555c module:main +from:0x02018304 kind:load to:0x02045554 add:8 module:main from:0x02018308 kind:load to:0x0204b690 module:main from:0x02018318 kind:load to:0x0204b690 module:main from:0x0201831c kind:load to:0x02018ccc module:main @@ -2225,27 +2225,27 @@ from:0x0201843c kind:thumb_call_arm to:0x0201bca8 module:main from:0x0201844a kind:thumb_call_arm to:0x020630b4 module:overlay(0) from:0x02018454 kind:thumb_call_arm to:0x02013b14 module:main from:0x0201845e kind:thumb_call to:0x020141e0 module:main -from:0x02018484 kind:load to:0x020455a8 module:main +from:0x02018484 kind:load to:0x020455a0 add:8 module:main from:0x02018488 kind:load to:0x020b684c module:overlay(0) from:0x02018498 kind:thumb_call_arm to:0x0201bca8 module:main from:0x020184a6 kind:thumb_call_arm to:0x020630b4 module:overlay(0) from:0x020184b0 kind:thumb_call_arm to:0x02013b14 module:main from:0x020184ba kind:thumb_call to:0x020141e0 module:main -from:0x020184e0 kind:load to:0x020455a8 module:main +from:0x020184e0 kind:load to:0x020455a0 add:8 module:main from:0x020184e4 kind:load to:0x020b684c module:overlay(0) from:0x020184f8 kind:thumb_call_arm to:0x02018a24 module:main from:0x02018502 kind:thumb_call_arm to:0x020630fc module:overlay(0) from:0x02018508 kind:thumb_call_arm to:0x0201bcd8 module:main -from:0x02018510 kind:load to:0x020455a8 module:main +from:0x02018510 kind:load to:0x020455a0 add:8 module:main from:0x0201851c kind:thumb_call_arm to:0x02018a24 module:main from:0x02018526 kind:thumb_call_arm to:0x020630fc module:overlay(0) from:0x0201852c kind:thumb_call_arm to:0x0201bcd8 module:main from:0x02018532 kind:thumb_call_arm to:0x02011ff4 module:main -from:0x0201853c kind:load to:0x020455a8 module:main +from:0x0201853c kind:load to:0x020455a0 add:8 module:main from:0x02018548 kind:thumb_call_arm to:0x02018a24 module:main from:0x02018552 kind:thumb_call_arm to:0x020630fc module:overlay(0) from:0x02018558 kind:thumb_call_arm to:0x0201bcd8 module:main -from:0x02018560 kind:load to:0x020455a8 module:main +from:0x02018560 kind:load to:0x020455a0 add:8 module:main from:0x0201858c kind:arm_call to:0x0206b2e0 module:overlay(0) from:0x020185a0 kind:load to:0x020b68c0 module:overlay(0) from:0x020185b0 kind:arm_call to:0x0206b320 module:overlay(0) diff --git a/config/jp/arm9/symbols.txt b/config/jp/arm9/symbols.txt index 2cef7240..f6c253ad 100644 --- a/config/jp/arm9/symbols.txt +++ b/config/jp/arm9/symbols.txt @@ -664,12 +664,12 @@ func_020138f8 kind:function(arm,size=0x140) addr:0x020138f8 func_02013a38 kind:function(arm,size=0x10) addr:0x02013a38 func_02013a48 kind:function(arm,size=0x98) addr:0x02013a48 func_02013ae0 kind:function(arm,size=0x34) addr:0x02013ae0 -_ZN21UnkStruct_02049b18_00C1Ev kind:function(arm,size=0x14) addr:0x02013b14 -func_02013b28 kind:function(arm,size=0x64) addr:0x02013b28 +_ZN5InputC1Ev kind:function(arm,size=0x14) addr:0x02013b14 +_ZN5Input13func_02013b24Ei kind:function(arm,size=0x64) addr:0x02013b28 func_02013b8c kind:function(arm,size=0x10) addr:0x02013b8c func_02013b9c kind:function(arm,size=0x24) addr:0x02013b9c func_02013bc0 kind:function(arm,size=0x4c) addr:0x02013bc0 -func_02013c0c kind:function(arm,size=0x1c) addr:0x02013c0c +_ZN5Input13func_02013c08Et kind:function(arm,size=0x1c) addr:0x02013c0c func_02013c28 kind:function(arm,size=0x58) addr:0x02013c28 func_02013c80 kind:function(arm,size=0x58) addr:0x02013c80 func_02013cd8 kind:function(arm,size=0x5c) addr:0x02013cd8 @@ -686,14 +686,14 @@ func_02013f84 kind:function(arm,size=0x6c) addr:0x02013f84 func_02013ff0 kind:function(arm,size=0xc) addr:0x02013ff0 func_02013ffc kind:function(arm,size=0x12c) addr:0x02013ffc func_02014128 kind:function(arm,size=0xb8) addr:0x02014128 -func_020141dc kind:function(thumb,size=0x3c) addr:0x020141e0 +_ZN12TouchControlC1Ev kind:function(thumb,size=0x3c) addr:0x020141e0 func_0201421c kind:function(arm,size=0x18) addr:0x0201421c func_02014234 kind:function(arm,size=0x12c) addr:0x02014234 func_02014360 kind:function(arm,size=0x44) addr:0x02014360 func_020143a4 kind:function(arm,size=0x50) addr:0x020143a4 func_020143f4 kind:function(arm,size=0x24) addr:0x020143f4 func_02014418 kind:function(arm,size=0x64) addr:0x02014418 -func_0201447c kind:function(arm,size=0x28) addr:0x0201447c +_ZN12TouchControl13func_02014478EP18UnkStruct_02049b4ci kind:function(arm,size=0x28) addr:0x0201447c func_020144a0 kind:function(thumb,size=0x10) addr:0x020144a4 func_020144b4 kind:function(thumb,size=0x1c) addr:0x020144b4 func_020144d0 kind:function(thumb,size=0x6c) addr:0x020144d0 @@ -713,7 +713,7 @@ _ZN14OverlayManager15LoadIfNotLoadedEjj kind:function(thumb,size=0x28) addr:0x02 _ZN14OverlayManager4LoadEjj kind:function(thumb,size=0x2c) addr:0x02014828 _ZN14OverlayManager6UnloadEj kind:function(thumb,size=0x28) addr:0x02014854 func_0201487c kind:function(thumb,size=0x58) addr:0x0201487c -func_020148d4 kind:function(thumb,size=0x46) addr:0x020148d4 +_ZN14OverlayManager13func_020148d0Ei kind:function(thumb,size=0x46) addr:0x020148d4 func_0201491c kind:function(thumb,size=0x2c) addr:0x0201491c func_02014948 kind:function(thumb,size=0x50) addr:0x02014948 _ZN14OverlayManager13func_02014994Ei kind:function(thumb,size=0x7c) addr:0x02014998 @@ -823,12 +823,12 @@ func_02016548 kind:function(arm,size=0x50) addr:0x02016548 func_02016598 kind:function(arm,size=0x20) addr:0x02016598 func_020165b8 kind:function(arm,size=0x3c) addr:0x020165b8 func_020165f4 kind:function(arm,size=0x20) addr:0x020165f4 -_ZN26GameModeManagerBase_104_04C1Ev kind:function(arm,size=0xc) addr:0x02016614 -func_02016620 kind:function(arm,size=0xc) addr:0x02016620 -_ZN26GameModeManagerBase_104_04D1Ev kind:function(arm,size=0x18) addr:0x0201662c -_ZN26GameModeManagerBase_104_0413func_020166acEv kind:function(arm,size=0x20) addr:0x02016644 -_ZN26GameModeManagerBase_104_0413func_020166ccEPv kind:function(arm,size=0x28) addr:0x02016664 -_ZN26GameModeManagerBase_104_0413func_020166f4EPv kind:function(arm,size=0x2c) addr:0x0201668c +_ZN20GameModeLinkListNodeC2Ev kind:function(arm,size=0xc) addr:0x02016614 +_ZN20GameModeLinkListNodeC1Ev kind:function(arm,size=0xc) addr:0x02016620 +_ZN20GameModeLinkListNodeD2Ev kind:function(arm,size=0x18) addr:0x0201662c +_ZN20GameModeLinkListNode13func_020166acEPS_ kind:function(arm,size=0x20) addr:0x02016644 +_ZN20GameModeLinkListNode13func_020166ccEPS_ kind:function(arm,size=0x28) addr:0x02016664 +_ZN20GameModeLinkListNode13func_020166f4EPS_ kind:function(arm,size=0x2c) addr:0x0201668c func_020166b8 kind:function(arm,size=0x1c) addr:0x020166b8 func_020166d4 kind:function(arm,size=0x28) addr:0x020166d4 func_020166fc kind:function(arm,size=0x34) addr:0x020166fc @@ -895,7 +895,7 @@ func_02017ed0 kind:function(arm,size=0x1c) addr:0x02017ed0 func_02017eec kind:function(arm,size=0x38) addr:0x02017eec func_02017f24 kind:function(arm,size=0x84) addr:0x02017f24 func_02017fa8 kind:function(arm,size=0x98) addr:0x02017fa8 -func_02018040 kind:function(arm,size=0x6c) addr:0x02018040 +func__ZN18UnkStruct_0204a11013func_02018d34Ev040 kind:function(arm,size=0x6c) addr:0x02018040 func_02018114 kind:function(arm,size=0xa0) addr:0x020180ac func_0201814c kind:function(arm,size=0x60) addr:0x0201814c func_020181ac kind:function(arm,size=0x54) addr:0x020181ac @@ -904,26 +904,26 @@ _ZN12GameModeBaseC2Ev kind:function(arm,size=0x10) addr:0x0201827c _ZN12GameModeBaseD1Ev kind:function(arm,size=0x28) addr:0x0201828c _ZN12GameModeBaseD0Ev kind:function(arm,size=0x30) addr:0x020182b4 _ZN12GameModeBaseD2Ev kind:function(arm,size=0x28) addr:0x020182e4 -_ZN12GameModeBase8vfunc_08Eiii kind:function(arm,size=0x14) addr:0x0201830c +_ZN12GameModeBase8vfunc_08Ev kind:function(arm,size=0x14) addr:0x0201830c _ZN12GameModeBase8vfunc_14Ev kind:function(arm,size=0x4) addr:0x02018320 _ZN12GameModeBase8vfunc_10Ev kind:function(arm,size=0x4) addr:0x02018324 _ZN12GameModeBase8vfunc_18Ev kind:function(arm,size=0x4) addr:0x02018328 _ZN12GameModeBase8vfunc_1CEv kind:function(arm,size=0x4) addr:0x0201832c _ZN12GameModeBase8vfunc_20Ev kind:function(arm,size=0x4) addr:0x02018330 _ZN12GameModeBase8vfunc_24Ev kind:function(arm,size=0x8) addr:0x02018334 -_ZN18UnkStruct_0204a0608vfunc_0CEi kind:function(thumb,size=0x14) addr:0x0201833c -func_020183b8 kind:function(thumb,size=0x8) addr:0x02018350 -func_02018358 kind:function(thumb,size=0x14) addr:0x02018358 +_ZN18UnkStruct_0204a0608vfunc_0CEv kind:function(thumb,size=0x14) addr:0x0201833c +_ZN18UnkStruct_0204a06013func_020183b8Ev kind:function(thumb,size=0x8) addr:0x02018350 +_ZN18UnkStruct_0204a06013func_020183c0Ev kind:function(thumb,size=0x14) addr:0x02018358 _ZN18UnkStruct_0204a06013func_020183d4EbPvi kind:function(thumb,size=0x50) addr:0x0201836c -func_02018424 kind:function(thumb,size=0x14) addr:0x020183bc +_ZN18UnkStruct_0204a06013func_02018424Ev kind:function(thumb,size=0x14) addr:0x020183bc _ZN18UnkStruct_0204a060D1Ev kind:function(arm,size=0x14) addr:0x020183d0 _ZN18UnkStruct_0204a060D0Ev kind:function(arm,size=0x1c) addr:0x020183e4 -func_02018400 kind:function(arm,size=0x14) addr:0x02018400 +_ZN18UnkStruct_0204a060D2Ev kind:function(arm,size=0x14) addr:0x02018400 _ZN19GameModeManagerBase6CreateEi kind:function(thumb,size=0x1c) addr:0x02018414 -_ZN19GameModeManagerBaseC2Ev kind:function(thumb,size=0x5c) addr:0x02018430 -_ZN19GameModeManagerBaseC1Ev kind:function(thumb,size=0x5c) addr:0x0201848c -func_020184e8 kind:function(thumb,size=0x2) addr:0x020184e8 -func_020184ec kind:function(thumb,size=0x2) addr:0x020184ec +_ZN19GameModeManagerBaseC2Ei kind:function(thumb,size=0x5c) addr:0x02018430 +_ZN19GameModeManagerBaseC1Ei kind:function(thumb,size=0x5c) addr:0x0201848c +_ZN19GameModeManagerBase13func_02018550Ev kind:function(thumb,size=0x2) addr:0x020184e8 +_ZN19GameModeManagerBase13func_02018554Ev kind:function(thumb,size=0x2) addr:0x020184ec _ZN19GameModeManagerBaseD1Ev kind:function(thumb,size=0x24) addr:0x020184f0 _ZN19GameModeManagerBaseD0Ev kind:function(thumb,size=0x2c) addr:0x02018514 _ZN19GameModeManagerBaseD2Ev kind:function(thumb,size=0x24) addr:0x02018540 @@ -934,36 +934,36 @@ _ZN19GameModeManagerBase8vfunc_1CEv kind:function(thumb,size=0x2) addr:0x0201857 _ZN19GameModeManagerBase8vfunc_20Ev kind:function(thumb,size=0x2) addr:0x02018574 _ZN19GameModeManagerBase8vfunc_00Ev kind:function(arm,size=0x2c) addr:0x02018578 _ZN19GameModeManagerBase8vfunc_04Ev kind:function(arm,size=0x28) addr:0x020185a4 -func_020185cc kind:function(arm,size=0x48) addr:0x020185cc +_ZN19GameModeManagerBase13func_02018634Ei kind:function(arm,size=0x48) addr:0x020185cc _ZN19GameModeManagerBase8vfunc_24Ev kind:function(arm,size=0x18) addr:0x02018614 -_ZN19GameModeManagerBase8vfunc_28Ei kind:function(arm,size=0x10) addr:0x0201862c -_ZN19GameModeManagerBase8vfunc_2CEi kind:function(arm,size=0x4) addr:0x0201863c -_ZN19GameModeManagerBase8vfunc_30Ev kind:function(arm,size=0x4c) addr:0x02018640 +_ZN19GameModeManagerBase8vfunc_28EPc kind:function(arm,size=0x10) addr:0x0201862c +_ZN19GameModeManagerBase8vfunc_2CEPc kind:function(arm,size=0x4) addr:0x0201863c +_ZN19GameModeManagerBase8vfunc_30Ei kind:function(arm,size=0x4c) addr:0x02018640 _ZN19GameModeManagerBase8vfunc_34Ev kind:function(arm,size=0x4) addr:0x0201868c -func_02018690 kind:function(arm,size=0xc) addr:0x02018690 -func_0201869c kind:function(arm,size=0x10) addr:0x0201869c -func_020186ac kind:function(arm,size=0x28) addr:0x020186ac -func_020186d4 kind:function(arm,size=0x10) addr:0x020186d4 -func_020186e4 kind:function(arm,size=0x10) addr:0x020186e4 +_ZN19GameModeManagerBase13func_020186f8Ei kind:function(arm,size=0xc) addr:0x02018690 +_ZN19GameModeManagerBase13func_02018704Ev kind:function(arm,size=0x10) addr:0x0201869c +_ZN19GameModeManagerBase13func_02018714Eiiiii kind:function(arm,size=0x28) addr:0x020186ac +_ZN19GameModeManagerBase13func_0201873cEv kind:function(arm,size=0x10) addr:0x020186d4 +_ZN19GameModeManagerBase13func_0201874cEv kind:function(arm,size=0x10) addr:0x020186e4 _ZN19GameModeManagerBase13func_0201875cEv kind:function(arm,size=0xd4) addr:0x020186f4 -_ZN19GameModeManagerBase13func_02018830Ei kind:function(arm,size=0xd8) addr:0x020187c8 +_ZN19GameModeManagerBase13func_02018830EPc kind:function(arm,size=0xd8) addr:0x020187c8 _ZN19GameModeManagerBase13func_02018908Ev kind:function(arm,size=0x7c) addr:0x020188a0 -_ZN19GameModeManagerBase13func_02018984Ei kind:function(arm,size=0x90) addr:0x0201891c -_ZN19GameModeManagerBase13func_02018a14Ei kind:function(arm,size=0x78) addr:0x020189ac -func_02018a24 kind:function(arm,size=0x10) addr:0x02018a24 -func_02018a34 kind:function(arm,size=0x10) addr:0x02018a34 -func_02018a44 kind:function(arm,size=0x18) addr:0x02018a44 -func_02018a5c kind:function(arm,size=0x10) addr:0x02018a5c -func_02018a6c kind:function(arm,size=0x1c) addr:0x02018a6c -func_02018a88 kind:function(arm,size=0x64) addr:0x02018a88 -func_02018aec kind:function(arm,size=0x3c) addr:0x02018aec -func_02018b28 kind:function(arm,size=0x34) addr:0x02018b28 +_ZN19GameModeManagerBase13func_02018984EPc kind:function(arm,size=0x90) addr:0x0201891c +_ZN19GameModeManagerBase13func_02018a14EPc kind:function(arm,size=0x78) addr:0x020189ac +_ZN19GameModeManagerBase13func_02018a8cEv kind:function(arm,size=0x10) addr:0x02018a24 +_ZN19GameModeManagerBase13func_02018a9cEii kind:function(arm,size=0x10) addr:0x02018a34 +_ZN19GameModeManagerBase13func_02018aacEi kind:function(arm,size=0x18) addr:0x02018a44 +_ZN19GameModeManagerBase13func_02018ac4Ev kind:function(arm,size=0x10) addr:0x02018a5c +_ZN19GameModeManagerBase13func_02018ad4Ev kind:function(arm,size=0x1c) addr:0x02018a6c +_ZN19GameModeManagerBase13func_02018af0EP16GameModeLinkListI23GameModeManagerBase_104E kind:function(arm,size=0x64) addr:0x02018a88 +_ZN19GameModeManagerBase13func_02018b54EP16GameModeLinkListI23GameModeManagerBase_104E kind:function(arm,size=0x3c) addr:0x02018aec +_ZN19GameModeManagerBase13func_02018b90EP16GameModeLinkListI23GameModeManagerBase_104EPc kind:function(arm,size=0x34) addr:0x02018b28 func_02018b5c kind:function(arm,size=0x1c) addr:0x02018b5c func_02018b78 kind:function(arm,size=0x4c) addr:0x02018b78 func_02018bc4 kind:function(arm,size=0x4c) addr:0x02018bc4 _ZN18UnkStruct_0204a11013func_02018c78Ei kind:function(arm,size=0x18) addr:0x02018c10 _ZN18UnkStruct_0204a11013func_02018c90Ei kind:function(arm,size=0xa4) addr:0x02018c28 -func_02018ccc kind:function(arm,size=0x44) addr:0x02018ccc +_ZN18UnkStruct_0204a11013func_02018d34Ev kind:function(arm,size=0x44) addr:0x02018ccc func_02018d10 kind:function(arm,size=0x174) addr:0x02018d10 func_02018e84 kind:function(arm,size=0xac) addr:0x02018e84 func_02018f30 kind:function(arm,size=0x368) addr:0x02018f30 @@ -1041,7 +1041,7 @@ _ZN24UnkStruct_0204a060_Base2C1Ev kind:function(arm,size=0x2c) addr:0x0201b82c _ZN24UnkStruct_0204a060_Base3C1Ev kind:function(arm,size=0x2c) addr:0x0201b858 _ZN24UnkStruct_0204a060_Base2D1Ev kind:function(arm,size=0x18) addr:0x0201b884 _ZN24UnkStruct_0204a060_Base2D0Ev kind:function(arm,size=0x20) addr:0x0201b89c -_ZN23UnkStruct_0204a060_BaseD1Ev kind:function(arm,size=0x18) addr:0x0201b8bc +_ZN23UnkStruct_0204a060_BaseD2Ev kind:function(arm,size=0x18) addr:0x0201b8bc _ZN24UnkStruct_0204a060_Base28vfunc_08Ei kind:function(arm,size=0x8) addr:0x0201b8d4 _ZN23UnkStruct_0204a060_BaseC2Ev kind:function(arm,size=0x4c) addr:0x0201b8dc _ZN23UnkStruct_0204a060_BaseC1Ev kind:function(arm,size=0x4c) addr:0x0201b928 @@ -1050,7 +1050,7 @@ _ZN23UnkStruct_0204a060_Base13func_0201bba4Eii kind:function(arm,size=0x28) addr _ZN23UnkStruct_0204a060_Base13func_0201bbccEv kind:function(arm,size=0x18) addr:0x0201b9bc _ZN23UnkStruct_0204a060_Base8vfunc_08Ei kind:function(arm,size=0x1a4) addr:0x0201b9d4 _ZN23UnkStruct_0204a060_Base8vfunc_0CEi kind:function(arm,size=0x4) addr:0x0201bb78 -_ZN23UnkStruct_0204a060_Base8vfunc_10Ei kind:function(arm,size=0x4) addr:0x0201bb7c +_ZN23UnkStruct_0204a060_Base8vfunc_10Ev kind:function(arm,size=0x4) addr:0x0201bb7c func_0201bb80 kind:function(arm,size=0x14) addr:0x0201bb80 _ZN23UnkStruct_0204a060_BaseD0Ev kind:function(arm,size=0x1c) addr:0x0201bb94 func_0201bbb0 kind:function(arm,size=0x10) addr:0x0201bbb0 @@ -1058,21 +1058,21 @@ func_0201bdd0 kind:function(arm,size=0x38) addr:0x0201bbc0 func_0201bbf8 kind:function(arm,size=0x18) addr:0x0201bbf8 func_0201bc10 kind:function(arm,size=0xc) addr:0x0201bc10 func_0201bc1c kind:function(arm,size=0x8c) addr:0x0201bc1c -func_0201bca8 kind:function(arm,size=0x30) addr:0x0201bca8 -func_0201bcd8 kind:function(arm,size=0x3c) addr:0x0201bcd8 -func_0201bd14 kind:function(arm,size=0x30) addr:0x0201bd14 -func_0201bd44 kind:function(arm,size=0x3c) addr:0x0201bd44 -func_0201bd80 kind:function(arm,size=0x5c) addr:0x0201bd80 -func_0201bddc kind:function(arm,size=0x20) addr:0x0201bddc +_ZN23GameModeManagerBase_004C1Ev kind:function(arm,size=0x30) addr:0x0201bca8 +_ZN23GameModeManagerBase_004D1Ev kind:function(arm,size=0x3c) addr:0x0201bcd8 +_ZN23GameModeManagerBase_00413func_0201bf24Ev kind:function(arm,size=0x30) addr:0x0201bd14 +_ZN23GameModeManagerBase_00413func_0201bf54Ev kind:function(arm,size=0x3c) addr:0x0201bd44 +_ZN23GameModeManagerBase_00413func_0201bf90Ev kind:function(arm,size=0x5c) addr:0x0201bd80 +_ZN23GameModeManagerBase_00413func_0201bfecEv kind:function(arm,size=0x20) addr:0x0201bddc _ZN23GameModeManagerBase_00413func_0201c00cEii kind:function(arm,size=0x5c) addr:0x0201bdfc -func_0201be58 kind:function(arm,size=0x3c) addr:0x0201be58 +_ZN23GameModeManagerBase_00413func_0201c068Es kind:function(arm,size=0x3c) addr:0x0201be58 func_0201be94 kind:function(arm,size=0x20) addr:0x0201be94 func_0201beb4 kind:function(arm,size=0x20) addr:0x0201beb4 func_0201bed4 kind:function(arm,size=0x40) addr:0x0201bed4 -func_0201bf14 kind:function(arm,size=0x78) addr:0x0201bf14 -func_0201bf8c kind:function(arm,size=0x48) addr:0x0201bf8c -func_0201bfd4 kind:function(arm,size=0x48) addr:0x0201bfd4 -func_0201c01c kind:function(arm,size=0x40) addr:0x0201c01c +_ZN23GameModeManagerBase_00413func_0201c124Eiiiii kind:function(arm,size=0x78) addr:0x0201bf14 +_ZN23GameModeManagerBase_00413func_0201c19cEv kind:function(arm,size=0x48) addr:0x0201bf8c +_ZN23GameModeManagerBase_00413func_0201c1e4Ev kind:function(arm,size=0x48) addr:0x0201bfd4 +_ZN23GameModeManagerBase_00413func_0201c22cEv kind:function(arm,size=0x40) addr:0x0201c01c func_0201c05c kind:function(arm,size=0x44) addr:0x0201c05c func_0201c0a0 kind:function(arm,size=0x30) addr:0x0201c0a0 func_0201c0d0 kind:function(arm,size=0xc4) addr:0x0201c0d0 @@ -2559,9 +2559,9 @@ data_020454ec kind:data(any) addr:0x020454ec data_020454fc kind:data(any) addr:0x020454fc data_02045518 kind:data(any) addr:0x02045518 data_02045534 kind:data(any) addr:0x02045534 -data_0204555c kind:data(any) addr:0x0204555c +_ZTV12GameModeBase kind:data(any) addr:0x02045554 _ZTV18UnkStruct_0204a060 kind:data(any) addr:0x02045584 -data_020455a8 kind:data(any) addr:0x020455a8 +_ZTV19GameModeManagerBase kind:data(any) addr:0x020455a0 data_020455e0 kind:data(any) addr:0x020455e0 data_020455e4 kind:data(any) addr:0x020455e4 data_020455f4 kind:data(any) addr:0x020455f4 @@ -2752,9 +2752,9 @@ data_0204af9c kind:bss addr:0x0204af9c data_0204afa0 kind:bss addr:0x0204afa0 data_02049a2c kind:bss addr:0x0204afac data_0204b094 kind:bss addr:0x0204b094 -data_0204b098 kind:bss addr:0x0204b098 +data_02049b18 kind:bss addr:0x0204b098 data_0204b0aa kind:bss addr:0x0204b0aa -data_0204b0cc kind:bss addr:0x0204b0cc +data_02049b4c kind:bss addr:0x0204b0cc data_0204b0d2 kind:bss addr:0x0204b0d2 data_0204b0f4 kind:bss addr:0x0204b0f4 data_0204b0fc kind:bss addr:0x0204b0fc diff --git a/include/FileSelect/FileSelect.hpp b/include/FileSelect/FileSelect.hpp index abed69a0..4e768f16 100644 --- a/include/FileSelect/FileSelect.hpp +++ b/include/FileSelect/FileSelect.hpp @@ -41,7 +41,7 @@ public: /* 00 */ virtual ~FileSelect_UnkClass2_Sub4_Base() override {} }; -class FileSelectSubScreen : public FileSelect_UnkClass2_Sub4_Base { +class FileSelectSubScreen : public SysObject, public FileSelect_UnkClass2_Sub4_Base { public: /* 0000 (base) */ /* 001C */ unk32 mUnk_001C; @@ -65,12 +65,20 @@ public: /* 0FE4 */ UnkSystem5 mUnk_0FE4; /* 1020 */ + GameModeLinkListNode *GetNode() { + GameModeLinkListNode *node = (GameModeLinkListNode *) this; + if (this != NULL) { + node = (GameModeLinkListNode *) ((u32 *) node + 1); + } + return node; + } + FileSelectSubScreen(); void func_ov019_020cf73c(unk32 param1, unk32 param2); // data_ov019_020d22b8 vtable /* 00 */ virtual ~FileSelectSubScreen() override {} - /* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) override; + /* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override; /* 10 */ virtual void vfunc_10(unk8 *param1) override; }; @@ -87,6 +95,7 @@ public: // clang-format off FileSelectManager(unk32 param1) NO_INLINE : + GameModeManagerBase(param1), mUnk_154(&this->mUnk_104), mUnk_158(NULL), mUnk_15C(NULL), @@ -111,8 +120,8 @@ public: /* 08 */ virtual ~FileSelectManager() override; /* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2, unk32 param3) override; /* 24 */ virtual void vfunc_24() override; - /* 28 */ virtual void vfunc_28(unk32 param1) override; - /* 2C */ virtual void vfunc_2C(unk32 param1) override; + /* 28 */ virtual void vfunc_28(unk8 *param1) override; + /* 2C */ virtual void vfunc_2C(unk8 *param1) override; static GameModeManagerBase *Create(unk32 param1); }; diff --git a/include/FileSelect/FileSelectMain.hpp b/include/FileSelect/FileSelectMain.hpp index 63a65a33..0257136c 100644 --- a/include/FileSelect/FileSelectMain.hpp +++ b/include/FileSelect/FileSelectMain.hpp @@ -148,6 +148,14 @@ public: return this->GetUnk03E0(this->mSaveSlotIndex); } + GameModeLinkListNode *GetNode() { + GameModeLinkListNode *node = (GameModeLinkListNode *) this; + if (this != NULL) { + node = (GameModeLinkListNode *) ((u32 *) node + 1); + } + return node; + } + FileSelectMain(); void func_ov019_020c61dc(); void func_ov019_020c63dc(); @@ -255,7 +263,7 @@ public: // data_ov019_020d1ec0 vtable /* 00 */ virtual ~FileSelectMain() override; - /* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) override; + /* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override; /* 10 */ virtual void vfunc_10(unk8 *param1) override; /* 18 */ virtual void vfunc_18(void) override; }; diff --git a/include/FileSelect/FileSelectMicTest.hpp b/include/FileSelect/FileSelectMicTest.hpp index 8db3fba5..89015491 100644 --- a/include/FileSelect/FileSelectMicTest.hpp +++ b/include/FileSelect/FileSelectMicTest.hpp @@ -74,6 +74,14 @@ public: /* 633 */ unk8 mUnk_633; /* 634 */ + GameModeLinkListNode *GetNode() { + GameModeLinkListNode *node = (GameModeLinkListNode *) this; + if (this != NULL) { + node = (GameModeLinkListNode *) ((u32 *) node + 1); + } + return node; + } + FileSelectMicTest(); void func_ov019_020cea74(); void func_ov019_020cefe4(); @@ -87,7 +95,7 @@ public: // data_ov019_020d2284 vtable /* 00 */ virtual ~FileSelectMicTest() override; - /* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) override; + /* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override; /* 10 */ virtual void vfunc_10(unk8 *param1) override; /* 14 */ virtual void vfunc_14(unk8 *param1) override; }; diff --git a/include/FileSelect/FileSelectOptions.hpp b/include/FileSelect/FileSelectOptions.hpp index f4bd31c6..1088ae57 100644 --- a/include/FileSelect/FileSelectOptions.hpp +++ b/include/FileSelect/FileSelectOptions.hpp @@ -138,6 +138,14 @@ public: /* 1CF7 */ unk8 mUnk_1CF7; /* 1CF8 */ + GameModeLinkListNode *GetNode() { + GameModeLinkListNode *node = (GameModeLinkListNode *) this; + if (this != NULL) { + node = (GameModeLinkListNode *) ((u32 *) node + 1); + } + return node; + } + FileSelectOptions(s32 saveSlotIndex); void func_ov019_020ccd40(); void func_ov019_020ccdf4(); @@ -166,7 +174,7 @@ public: // data_ov019_020d2200 vtable /* 00 */ virtual ~FileSelectOptions() override; - /* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) override; + /* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override; /* 10 */ virtual void vfunc_10(unk8 *param1) override; static GameModeManagerBase_104 *Create(void *param1, s32 saveSlotIndex); diff --git a/include/FileSelect/FileSelectOptionsManager.hpp b/include/FileSelect/FileSelectOptionsManager.hpp index 77835385..ce481a87 100644 --- a/include/FileSelect/FileSelectOptionsManager.hpp +++ b/include/FileSelect/FileSelectOptionsManager.hpp @@ -29,13 +29,21 @@ public: /* 2C */ FileSelectOptions *mpOptions; /* 30 */ + GameModeLinkListNode *GetNode() { + GameModeLinkListNode *node = (GameModeLinkListNode *) this; + if (this != NULL) { + node = (GameModeLinkListNode *) ((u32 *) node + 1); + } + return node; + } + FileSelectOptionsManager(void *param1, unk32 param2); void func_ov019_020cc85c(unk32 param1); unk32 func_ov019_020cc874(); // data_ov019_020d2224 vtable /* 00 */ virtual ~FileSelectOptionsManager() override; - /* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) override; + /* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override; static GameModeManagerBase_104 *Create(void *param1, s32 saveSlotIndex); }; diff --git a/include/FileSelect/FileSelectUnkDraw.hpp b/include/FileSelect/FileSelectUnkDraw.hpp index 0cda192c..81054031 100644 --- a/include/FileSelect/FileSelectUnkDraw.hpp +++ b/include/FileSelect/FileSelectUnkDraw.hpp @@ -8,7 +8,7 @@ class FileSelectManager_UnkDrawBase : public SysObject { public: /* 00 (vtable) */ - /* 04 */ GameModeManagerBase_104_04 mUnk_04; + /* 04 */ GameModeLinkListNode mUnk_04; /* 0C */ FileSelectManager_UnkDrawBase(); diff --git a/include/Game/GameMode.hpp b/include/Game/GameMode.hpp index 73a2ae8f..6182d8c7 100644 --- a/include/Game/GameMode.hpp +++ b/include/Game/GameMode.hpp @@ -12,15 +12,13 @@ public: // data_02044018 vtable /* 00 */ virtual ~GameModeBase(); - /* 08 */ virtual void vfunc_08(unk32 param1, unk32 param2, unk32 param3); + /* 08 */ virtual void vfunc_08(); /* 0C */ virtual void vfunc_0C() = 0; /* 10 */ virtual void vfunc_10(); /* 14 */ virtual void vfunc_14(); /* 18 */ virtual void vfunc_18(); /* 1C */ virtual void vfunc_1C(); /* 20 */ virtual void vfunc_20(); - /* 24 */ virtual void vfunc_24(); + /* 24 */ virtual unk32 vfunc_24(); /* 28 */ - - void func_02018374(void); }; diff --git a/include/Game/GameModeFileSelect.hpp b/include/Game/GameModeFileSelect.hpp index 187edb2b..c0cdfee6 100644 --- a/include/Game/GameModeFileSelect.hpp +++ b/include/Game/GameModeFileSelect.hpp @@ -30,7 +30,7 @@ public: // data_ov019_020d1d8c vtable /* 00 */ virtual ~GameModeFileSelect() override; - /* 08 */ virtual void vfunc_08(unk32 param1, unk32 param2, unk32 param3) override; + /* 08 */ virtual void vfunc_08() override; /* 0C */ virtual void vfunc_0C() override; /* 14 */ virtual void vfunc_14() override; /* 18 */ virtual void vfunc_18() override; diff --git a/include/Game/GameModeManager.hpp b/include/Game/GameModeManager.hpp index 4b8dc8d9..5faf09a1 100644 --- a/include/Game/GameModeManager.hpp +++ b/include/Game/GameModeManager.hpp @@ -2,75 +2,128 @@ #include "Player/TouchControl.hpp" #include "System/SysNew.hpp" +#include "Unknown/UnkStruct_02049b18.hpp" +#include "Unknown/UnkStruct_02049b4c.hpp" +#include "nitro/button.h" #include "nitro/math.h" #include "types.h" +class GameModeManagerBase; +class GameModeManagerBase_104; +class GameModeManagerBase_104_0C; + class GameModeManagerBase_004 : public SysObject { public: + unk32 *mUnk_00; + + GameModeManagerBase_004(); + ~GameModeManagerBase_004(); + + void func_0201bf24(); + void func_0201bf54(); + void func_0201bf90(); + void func_0201bfec(); + void func_0201c00c(unk32 param1, unk32 param2); + void func_0201c068(unk16 param1); + void func_0201c19c(); + void func_0201c124(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5); + void func_0201c1e4(); + void func_0201c22c(); + void func_ov001_020bd734(unk32 *param1); void func_ov001_020bd784(); - void func_0201c00c(unk32 param1, unk32 param2); }; -class GameModeManagerBase_104_04 { +class GameModeLinkListNode { public: - /* 00 */ void *mUnk_00; - /* 04 */ void *mUnk_04; + /* 00 */ GameModeLinkListNode *mNext; + /* 04 */ GameModeLinkListNode *mPrev; /* 08 */ - void func_020166ac(void); - void func_020166cc(void *param1); - void func_020166f4(void *param1); + GameModeLinkListNode(); + ~GameModeLinkListNode(); - GameModeManagerBase_104_04(); - ~GameModeManagerBase_104_04(); + void func_020166cc(GameModeLinkListNode *param1); + void func_020166f4(GameModeLinkListNode *param1); + + static void func_020166ac(GameModeLinkListNode *param1); }; -class GameModeManagerBase_104_0C_04 { +template class GameModeLinkList : public GameModeLinkListNode { public: - /* 00 */ GameModeManagerBase_104_04 mUnk_00; + GameModeLinkList *GetNext() { + GameModeLinkListNode *next = mNext; + if (next != NULL) { + next = (GameModeLinkListNode *) ((u32 *) next - 1); + } + return (GameModeLinkList *) next; + } - GameModeManagerBase_104_0C_04(); + GameModeLinkList *GetNext2() { + GameModeLinkListNode *next = (GameModeLinkListNode *) *((u8 **) this + 2); + if (next != NULL) { + next = (GameModeLinkListNode *) ((u32 *) next - 1); + } + return (GameModeLinkList *) next; + } + + GameModeLinkList *GetPrev() { + GameModeLinkListNode *prev = mPrev; + if (prev != NULL) { + prev = (GameModeLinkListNode *) ((u32 *) prev - 1); + } + return (GameModeLinkList *) prev; + } + + T *GetTarget() { + return (T *) this; + } }; -class GameModeManagerBase_104_0C { +class GameModeManagerBase_104_0C : public SysObject { public: - /* 00 (vtable) */ - /* 04 */ GameModeManagerBase_104_0C_04 mUnk_04; + GameModeLinkList mList; + + GameModeLinkList *GetOrigin() { + return (GameModeLinkList *) this; + } // data_ov000_020b1e48 vtable /* 00 */ virtual ~GameModeManagerBase_104_0C(); - /* 08 */ virtual void vfunc_08(); - /* 0C */ virtual void vfunc_0C(); + /* 08 */ virtual void vfunc_08(void *param1); + /* 0C */ virtual void vfunc_0C(void *param1); }; -struct GameModePTMFParam2Struct { - /* 00 */ unk16 mUnk_00; - /* 00 */ volatile u16 mButtons; +class GameModeManagerBase_104_00 : public SysObject { +public: + GameModeManagerBase_104_00() {} + + /* 04 */ GameModeLinkList mList; + /* 0C */ GameModeManagerBase_104_0C mUnk_0C; }; -class GameModeManagerBase_104 : public SysObject { +class GameModeManagerBase_104 : public GameModeManagerBase_104_00 { public: /* 00 (vtable) */ - /* 04 */ GameModeManagerBase_104_04 mUnk_04; - /* 0C */ GameModeManagerBase_104_0C mUnk_0C; - /* 18 */ unk8 mUnk_18; - /* 19 */ unk8 mUnk_19; - /* 1A */ unk8 mUnk_1A; + /* 18 */ bool mUnk_18; + /* 19 */ bool mUnk_19; + /* 1A */ bool mUnk_1A; /* 1B */ unk8 mUnk_1B; /* 1C */ + GameModeLinkList *GetOrigin() { + return (GameModeLinkList *) this; + } + GameModeManagerBase_104(); // data_ov000_020b1e60 vtable /* 00 */ virtual ~GameModeManagerBase_104(); - /* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl); + /* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl); /* 0C */ virtual void vfunc_0C(unk32 param1); /* 10 */ virtual void vfunc_10(unk8 *param1); /* 14 */ virtual void vfunc_14(unk8 *param1); /* 18 */ virtual void vfunc_18(void); - - static GameModeManagerBase_104 *Create(void *param1, s32 saveSlotIndex); }; class GameModeManagerBase : public SysObject { @@ -78,40 +131,54 @@ public: /* 000 (vtable) */ /* 004 */ GameModeManagerBase_004 mUnk_004; /* 008 */ void *mUnk_008; - /* 00C */ unk8 mUnk_00C[0x0E0 - 0x00C]; + /* 00C */ STRUCT_PAD(0x0C, 0x1A); + /* 01A */ bool mUnk_01A; + /* 01C */ STRUCT_PAD(0x1C, 0xE0); /* 0E0 */ void *mUnk_0E0; /* 0E4 */ void *mUnk_0E4; /* 0E8 */ void *mUnk_0E8; /* 0EC */ unk32 mUnk_0EC; /* 0F0 */ unk32 mUnk_0F0; - /* 0F4 */ unk32 mUnk_0F4; + /* 0F4 */ bool mUnk_0F4; + /* 0F4 */ bool mUnk_0F5; + /* 0F4 */ unk8 mUnk_0F6; + /* 0F4 */ unk8 mUnk_0F7; /* 0F8 */ unk32 mUnk_0F8; /* 0FC */ unk32 mUnk_0FC; /* 100 */ void *mUnk_100; /* 104 */ GameModeManagerBase_104 mUnk_104; - /* 120 */ unk32 mUnk_120; - /* 124 */ unk32 mUnk_124; - /* 128 */ unk16 mUnk_128; - /* 12A */ unk16 mUnk_12A; // timer that resets after the touchscreen was touched - /* 12C */ unk32 mUnk_12C; - /* 130 */ unk8 mUnk_130; - /* 131 */ unk8 mUnk_131; - /* 132 */ u8 mUnk_132; // bool? - /* 133 */ unk8 mUnk_133; - /* 134 */ Vec3p mUnk_134; // position of where the touchscreen is touched - /* 140 */ unk32 mUnk_140; - /* 144 */ unk32 mUnk_144; + /* 120 */ Input mButtons; + /* 126 */ TouchControl mTouchControl; /* 148 */ unk32 mUnk_148; /* 14C */ unk32 mUnk_14C; - /* 150 */ unk32 mUnk_150; + /* 150 */ bool mUnk_150; + /* 150 */ unk8 mUnk_151; + /* 150 */ unk8 mUnk_152; + /* 150 */ unk8 mUnk_153; /* 154 */ - GameModeManagerBase(); + GameModeManagerBase(unk32 param1); + void func_02018550(void); + void func_02018554(void); + void func_02018634(unk32 param1); + void *func_020186f8(unk32 param1); + void func_02018704(void); + void func_02018714(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5); + void func_0201873c(void); + void func_0201874c(void); void func_0201875c(void); - void func_02018908(void); - void func_02018a14(unk32 param2); - void func_02018830(unk32 param2); - void func_02018984(unk32 param1); + void func_02018830(unk8 *param1); + void func_02018908(); + void func_02018984(unk8 *param1); + void func_02018a14(unk8 *param1); + void func_02018a8c(void); + void func_02018a9c(unk32 param1, unk32 param2); + void func_02018aac(unk32 param1); + void func_02018ac4(void); + bool func_02018ad4(void); + bool func_02018af0(GameModeLinkList *param1); + bool func_02018b54(GameModeLinkList *param1); + bool func_02018b90(GameModeLinkList *param1, unk8 *param2); // data_02044064 vtable /* 00 */ virtual void vfunc_00(); @@ -123,9 +190,9 @@ public: /* 1C */ virtual void vfunc_1C(); /* 20 */ virtual void vfunc_20(); /* 24 */ virtual void vfunc_24(); - /* 28 */ virtual void vfunc_28(unk32 param1); - /* 2C */ virtual void vfunc_2C(unk32 param1); - /* 30 */ virtual void vfunc_30(); + /* 28 */ virtual void vfunc_28(unk8 *param1); + /* 2C */ virtual void vfunc_2C(unk8 *param1); + /* 30 */ virtual void vfunc_30(unk32 param1); /* 34 */ virtual void vfunc_34(); static GameModeManagerBase *Create(unk32 param1); diff --git a/include/Game/GameModeTitleScreen.hpp b/include/Game/GameModeTitleScreen.hpp index d028d47c..5c77793c 100644 --- a/include/Game/GameModeTitleScreen.hpp +++ b/include/Game/GameModeTitleScreen.hpp @@ -14,7 +14,7 @@ public: // data_ov025_020c5a68 vtable /* 00 */ virtual ~GameModeTitleScreen() override; - /* 08 */ virtual void vfunc_08(unk32 param1, unk32 param2, unk32 param3) override; + /* 08 */ virtual void vfunc_08() override; /* 0C */ virtual void vfunc_0C() override; /* 10 */ virtual void vfunc_10() override; /* 14 */ virtual void vfunc_14() override; diff --git a/include/Player/TouchControl.hpp b/include/Player/TouchControl.hpp index cb42c325..e403d130 100644 --- a/include/Player/TouchControl.hpp +++ b/include/Player/TouchControl.hpp @@ -1,5 +1,7 @@ #pragma once +#include "Unknown/UnkStruct_02049b4c.hpp" +#include "nitro/math.h" #include "types.h" typedef u16 TouchFlags; @@ -13,14 +15,23 @@ enum TouchFlag_ { class TouchControl { public: - /* 00 */ u16 mUnk_00; - /* 00 */ u16 mUnk_02; - /* 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; + /* 00 */ u16 mSpeed; + /* 02 */ u16 mTimeBetweenTouches; // gets set to mTimeSinceTouch when touching the screen + /* 04 */ u16 mTimeSinceTouch; // increases by mSpeed every frame + /* 06 */ unk16 mRepeatStart; + /* 08 */ unk16 mRepeatLoop; + // mRepeatTimer starts at mRepeatStart, decreases by mSpeed while touching the screen. + // if equal to 0, mRepeatTimer gets set to mRepeatLoop and the Repeat flag is set + /* 0A */ unk16 mRepeatTimer; + /* 0C */ bool mTouch; + /* 10 */ Vec2s mTouchPos; + /* 14 */ bool mTouchPrev; + /* 16 */ Vec2s mTouchPosPrev; + /* 18 */ Vec2s mTouchPosLast; + /* 1C */ Vec2s mTouchPosStart; /* 20 */ TouchFlags mFlags; + /* 22 */ + + TouchControl(); + void func_02014478(UnkStruct_02049b4c *param1, unk32 param2); }; diff --git a/include/System/OverlayManager.hpp b/include/System/OverlayManager.hpp index d92a556c..58bee618 100644 --- a/include/System/OverlayManager.hpp +++ b/include/System/OverlayManager.hpp @@ -1,9 +1,10 @@ #pragma once +#include "System/SysFault.hpp" #include "types.h" #include -// #include "Item/Item.hpp" + typedef u32 ItemFlag; EXTERN_OVERLAY_ID(0); @@ -394,6 +395,7 @@ public: void LoadEquipItem(ItemFlag equipId); + SysFault *func_020148d0(unk32 param1); void func_02014994(unk32 param1); }; diff --git a/include/TitleScreen/TitleScreen.hpp b/include/TitleScreen/TitleScreen.hpp index d1adc791..76d8ced3 100644 --- a/include/TitleScreen/TitleScreen.hpp +++ b/include/TitleScreen/TitleScreen.hpp @@ -10,7 +10,7 @@ void GX_SetGraphicsMode(unk32 param1, unk32 param2, unk32 param3); void GXS_SetGraphicsMode(unk32 param1); } -DECL_PTMF(TitleScreenPTMF, GameModePTMFParam2Struct *param1, TouchControl *pTouchControl); +DECL_PTMF(TitleScreenPTMF, Input *pButtons, TouchControl *pTouchControl); typedef u32 TitleScreenState; enum TitleScreenState_ { @@ -40,15 +40,7 @@ public: /* 48 */ }; -class TitleScreen_Sub2_Base { -public: - /* 00 */ GameModeManagerBase_104_04 mUnk_00; - /* 08 */ - - TitleScreen_Sub2_Base() {} -}; - -class TitleScreen_Sub2 : public TitleScreen_Sub2_Base { +class TitleScreen_Sub2 : public GameModeLinkListNode { public: /* 00 (vtable) */ /* 0C */ unk32 mUnk_0C; @@ -61,6 +53,10 @@ public: mUnk_0C(0), mUnk_10(false) {} + GameModeLinkListNode *GetNode() { + return this; + } + // data_ov025_020c5b24 vtable /* 00 */ virtual void vfunc_00(); }; @@ -144,7 +140,7 @@ public: } }; -class TitleScreen : public GameModeManagerBase_104 { // 0233c6d4 +class TitleScreen : public SysObject, public GameModeManagerBase_104 { // 0233c6d4 public: /* 000 (base) */ /* 01C */ TitleScreenState mState; @@ -164,6 +160,14 @@ public: /* 344 */ unk32 mUnk_344; /* 348 */ + GameModeLinkListNode *GetNode() { + GameModeLinkListNode *node = (GameModeLinkListNode *) this; + if (this != NULL) { + node = (GameModeLinkListNode *) ((u32 *) node + 1); + } + return node; + } + TitleScreen(); void func_ov025_020c4e54(); @@ -175,16 +179,16 @@ public: void func_ov025_020c5988(); // data_ov025_020c5aec - void func_ov025_020c5200(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl); - void func_ov025_020c5204(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl); - void func_ov025_020c5240(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl); - void func_ov025_020c53d0(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl); - void func_ov025_020c55a4(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl); - void func_ov025_020c55e4(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl); + void func_ov025_020c5200(Input *pButtons, TouchControl *pTouchControl); + void func_ov025_020c5204(Input *pButtons, TouchControl *pTouchControl); + void func_ov025_020c5240(Input *pButtons, TouchControl *pTouchControl); + void func_ov025_020c53d0(Input *pButtons, TouchControl *pTouchControl); + void func_ov025_020c55a4(Input *pButtons, TouchControl *pTouchControl); + void func_ov025_020c55e4(Input *pButtons, TouchControl *pTouchControl); // data_ov025_020c5b30 vtable /* 00 */ virtual ~TitleScreen() override; - /* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) override; + /* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override; /* 0C */ virtual void vfunc_0C(unk32 param1) override; /* 10 */ virtual void vfunc_10(unk8 *param1) override; /* 14 */ virtual void vfunc_14(unk8 *param1) override; @@ -211,8 +215,8 @@ public: /* 14 */ virtual void vfunc_14() override; /* 18 */ virtual void vfunc_18() override; /* 24 */ virtual void vfunc_24() override; - /* 28 */ virtual void vfunc_28(unk32 param1) override; - /* 2C */ virtual void vfunc_2C(unk32 param1) override; + /* 28 */ virtual void vfunc_28(unk8 *param1) override; + /* 2C */ virtual void vfunc_2C(unk8 *param1) override; /* 38 */ virtual void vfunc_38() override; static TitleScreenManager *Create(unk32 param1); diff --git a/include/Unknown/Common.hpp b/include/Unknown/Common.hpp index 9890a9e7..e63dba16 100644 --- a/include/Unknown/Common.hpp +++ b/include/Unknown/Common.hpp @@ -175,7 +175,7 @@ public: class UnkSystem2_UnkSubSystem1_Base { public: - /* 04 */ GameModeManagerBase_104_04 mUnk_04; + /* 04 */ GameModeLinkList mUnk_04; /* 0C */ void *mUnk_0C; /* 10 */ unk32 mUnk_10; /* 14 */ Vec2s mPos; // image position (among other things) diff --git a/include/Unknown/UnkStruct_02049a2c.hpp b/include/Unknown/UnkStruct_02049a2c.hpp index 90b2a81f..285c1189 100644 --- a/include/Unknown/UnkStruct_02049a2c.hpp +++ b/include/Unknown/UnkStruct_02049a2c.hpp @@ -22,7 +22,7 @@ public: class UnkStruct_02049a2c { public: /* 00 */ GameModeBase *mUnk_00; - /* 04 */ unk32 mUnk_04; + /* 04 */ void *mUnk_04; /* 08 */ unk32 mUnk_08; /* 0C */ unk32 mUnk_0C; /* 10 */ unk32 mUnk_10; @@ -37,7 +37,7 @@ public: void Run(void); void func_02013370(unk32 param1); - void func_02013724(void *param1); + bool func_02013724(void *param1); void func_ov018_020c48a4(unk32 param1); void func_ov018_020c48f8(); // loads overlay 0 diff --git a/include/Unknown/UnkStruct_02049b18.hpp b/include/Unknown/UnkStruct_02049b18.hpp index c8053511..ac5bee9d 100644 --- a/include/Unknown/UnkStruct_02049b18.hpp +++ b/include/Unknown/UnkStruct_02049b18.hpp @@ -1,29 +1,24 @@ #pragma once +#include "Player/TouchControl.hpp" #include "global.h" +#include "nitro/button.h" #include "types.h" class UnkStruct_02049b18_06 { public: - /* 00 */ unk16 mUnk_00; - /* 00 */ unk16 mUnk_02; + /* 00 */ TouchControl mTouchControl; + /* 22 */ UnkStruct_02049b18_06(); }; -class UnkStruct_02049b18_00 { -public: - /* 00 */ unk32 mUnk_00; - - UnkStruct_02049b18_00(); -}; - class UnkStruct_02049b18 { public: - /* 00 */ UnkStruct_02049b18_00 mUnk_00; - /* 04 */ unk16 mUnk_04; + /* 00 */ Input mButtons; /* 06 */ UnkStruct_02049b18_06 mUnk_06; - /* 0A */ STRUCT_PAD(0x0A, 0x58); + /* 28 */ unk16 mUnk_28; + /* 2A */ STRUCT_PAD(0x2A, 0x58); /* 58 */ unk16 mUnk_58; /* 5A */ unk16 mUnk_5A; diff --git a/include/Unknown/UnkStruct_02049b4c.hpp b/include/Unknown/UnkStruct_02049b4c.hpp new file mode 100644 index 00000000..6841bd35 --- /dev/null +++ b/include/Unknown/UnkStruct_02049b4c.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include "global.h" +#include "types.h" + +class UnkStruct_02049b4c { +public: + /* 00 */ unk32 mUnk_00; + + UnkStruct_02049b4c(); + ~UnkStruct_02049b4c(); +}; + +extern UnkStruct_02049b4c data_02049b4c; diff --git a/include/Unknown/UnkStruct_0204a060.hpp b/include/Unknown/UnkStruct_0204a060.hpp index f2593dfb..8d0b2179 100644 --- a/include/Unknown/UnkStruct_0204a060.hpp +++ b/include/Unknown/UnkStruct_0204a060.hpp @@ -9,8 +9,8 @@ class UnkStruct_0204a060_Base3 : public SysObject { public: /* 00 (vtable) */ - /* 04 */ GameModeManagerBase_104_04 mUnk_04; - /* 0C */ unk8 mUnk_0C; + /* 04 */ GameModeLinkListNode mUnk_04; + /* 0C */ bool mUnk_0C; /* 0D */ unk8 mUnk_0D; /* 0E */ unk8 mUnk_0E; /* 0F */ unk8 mUnk_0F; @@ -39,10 +39,9 @@ class UnkStruct_0204a060_Base : public UnkStruct_0204a060_Base2 { public: /* 00 (base) */ /* 14 */ unk32 mUnk_14; - // /* 14 */ unk16 mUnk_16; /* 18 */ unk8 mUnk_18; /* 19 */ unk8 mUnk_19; - /* 1A */ unk16 mUnk_1A; + /* 1A */ u16 mUnk_1A; /* 1C */ unk16 mUnk_1C; /* 1E */ unk16 mUnk_1E; /* 20 */ unk16 mUnk_20; @@ -69,12 +68,16 @@ public: UnkStruct_0204a060(); + void func_020183c0(void); bool func_020183d4(bool param1, void *param2, unk32 param3); + static void func_02018424(void); //! TODO: is it a PTMF? // data_02044048 vtable /* 00 */ virtual ~UnkStruct_0204a060() override; /* 0C */ virtual bool vfunc_0C(void) override; /* 14 */ + + static void func_020183b8(void); }; extern UnkStruct_0204a060 data_0204a060; diff --git a/include/Unknown/UnkStruct_0204a110.hpp b/include/Unknown/UnkStruct_0204a110.hpp index bc973c6e..c2535d70 100644 --- a/include/Unknown/UnkStruct_0204a110.hpp +++ b/include/Unknown/UnkStruct_0204a110.hpp @@ -1,10 +1,13 @@ #pragma once #include "System/SysNew.hpp" +#include "Unknown/Common.hpp" #include "Unknown/UnkMemFuncs.h" #include "global.h" #include "types.h" +class GameModeManagerBase; + struct UnkStruct_0204a110_Sub2_000_158 { u32 mUnk_00[3]; unk8 mUnk_0C; @@ -188,7 +191,7 @@ public: /* DAC */ STRUCT_PAD(0xDBC, 0xDC0); /* DC0 */ UnkStruct_0204a110_Sub7 mUnk_DC0; /* DDC */ UnkStruct_0204a110_Sub8 mUnk_DDC; - /* DEC */ unk32 mUnk_DEC; + /* DEC */ GameModeManagerBase *mUnk_DEC; /* DF0 */ unk16 mUnk_DF0; /* DF2 */ unk8 mUnk_DF2; /* DF3 */ unk8 mUnk_DF3; @@ -204,14 +207,18 @@ public: /* E04 */ unk16 mUnk_E04; UnkStruct_0204a110(); + unk32 func_01ff9b50(); + + void func_02018c78(unk32 param1); void func_02018c90(unk32 param1); + void func_02018d34(); void func_020195a0(const char *param1, unk32 param2, unk32 param3, unk32 param4); void func_0201967c(unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6); void func_02019538(unk32 param1, unk32 param2); - void func_02018c78(unk32 param1); void func_ov001_020bd514(unk32 param1, void *param2, unk32 param3, unk32 param4); + void func_ov001_020bd58c(void); void func_ov018_020c5300(void); }; diff --git a/include/Unknown/UnkStruct_0204e5f8.hpp b/include/Unknown/UnkStruct_0204e5f8.hpp index 8157ed20..f5e808ef 100644 --- a/include/Unknown/UnkStruct_0204e5f8.hpp +++ b/include/Unknown/UnkStruct_0204e5f8.hpp @@ -5,19 +5,20 @@ #include "global.h" #include "types.h" -class UnkStruct_0204e5f8_1C_Base { +class UnkStruct_0204e5f8_1C_Base : GameModeLinkListNode { public: - /* 20 */ GameModeManagerBase_104_04 mUnk_20; - /* 28 */ unk32 mUnk_28; + /* 00 (base) */ + /* 08 */ unk32 mUnk_08; + /* 0C */ UnkStruct_0204e5f8_1C_Base() : - mUnk_28(0) {} + mUnk_08(0) {} }; class UnkStruct_0204e5f8_1C : UnkStruct_0204e5f8_1C_Base { public: /* 00 (vtable) */ - /* 04 */ + /* 0C */ // data_020440e8 vtable /* 00 */ virtual ~UnkStruct_0204e5f8_1C(); @@ -26,9 +27,9 @@ public: class UnkStruct_0204e5f8 { public: /* 00 */ UnkStruct_0204a060_Base3 mUnk_00; - /* 14 */ unk32 mUnk_10; + /* 10 */ unk32 mUnk_10; /* 14 */ unk32 mUnk_14; - /* 18 */ unk8 mUnk_18; + /* 18 */ bool mUnk_18; /* 19 */ unk8 mUnk_19; /* 1A */ unk8 mUnk_1A; /* 1B */ unk8 mUnk_1B; @@ -36,6 +37,10 @@ public: /* 2C */ STRUCT_PAD(0x2C, 0x38); /* 38 */ unk8 mUnk_38; /* 39 */ unk8 mUnk_39; + /* 3A */ u16 mUnk_3A; + /* 3C */ unk8 mUnk_3C; + /* 3D */ unk8 mUnk_3D; + /* 3E */ u16 mUnk_3E; UnkStruct_0204e5f8(); void func_0201b9a8(void *param1); diff --git a/include/Unknown/UnkStruct_0204e64c.hpp b/include/Unknown/UnkStruct_0204e64c.hpp index b0122f65..214337a3 100644 --- a/include/Unknown/UnkStruct_0204e64c.hpp +++ b/include/Unknown/UnkStruct_0204e64c.hpp @@ -2,6 +2,7 @@ #include "Unknown/UnkStruct_02049b18.hpp" #include "global.h" +#include "nitro/button.h" #include "types.h" class UnkStruct_0204e64c_00 { @@ -29,8 +30,7 @@ public: class UnkStruct_0204e64c { public: /* 00 */ UnkStruct_0204e64c_00 mUnk_00; - /* 10 */ UnkStruct_02049b18_00 mUnk_10; - /* 14 */ unk16 mUnk_14; + /* 10 */ Input mButtons; /* 16 */ unk8 mUnk_16; UnkStruct_0204e64c(); diff --git a/include/Unknown/UnkStruct_027e0954.hpp b/include/Unknown/UnkStruct_027e0954.hpp index 0d65c0a9..3675014e 100644 --- a/include/Unknown/UnkStruct_027e0954.hpp +++ b/include/Unknown/UnkStruct_027e0954.hpp @@ -11,7 +11,7 @@ public: /* 08 */ unk32 mUnk_08; /* 0C */ unk32 mUnk_0C; /* 10 */ unk32 mUnk_10; - /* 14 */ GameModeManagerBase_104_04 mUnk_14; + /* 14 */ GameModeLinkListNode mUnk_14; UnkStruct_027e0954(); ~UnkStruct_027e0954(); diff --git a/include/Unknown/UnkStruct_ov000_02067bc4.hpp b/include/Unknown/UnkStruct_ov000_02067bc4.hpp index 6d6b4002..cec0bf94 100644 --- a/include/Unknown/UnkStruct_ov000_02067bc4.hpp +++ b/include/Unknown/UnkStruct_ov000_02067bc4.hpp @@ -1,9 +1,11 @@ #pragma once +#include "Game/GameModeManager.hpp" #include "Item/Item.hpp" #include "System/SysNew.hpp" #include "Unknown/UnkStruct_02049b18.hpp" #include "global.h" +#include "nitro/button.h" #include "types.h" class UnkStruct_ov000_02067bc4_Sub1 { @@ -89,16 +91,14 @@ public: class UnkStruct_ov000_020b504c { public: /* 000 */ UnkStruct_ov000_020b504c_Sub3 *mUnk_000; - /* 004 */ unk32 mUnk_004; + /* 004 */ GameModeManagerBase_004 *mUnk_004; /* 008 */ UnkStruct_ov000_02067bc4_Sub2 *mUnk_008; /* 00C */ UnkStruct_ov000_020b504c_Sub4 mUnk_00C[7]; /* 028 */ unk32 mUnk_028; /* 02C */ unk32 mUnk_02C; /* 030 */ unk32 mUnk_030; - /* 034 */ UnkStruct_02049b18_00 mUnk_034; - /* 038 */ unk16 mUnk_038; - /* 03A */ unk16 mUnk_03A; - /* 03C */ STRUCT_PAD(0x3C, 0x5C); + /* 034 */ Input mButtons; + /* 03A */ TouchControl mTouchControl; /* 05C */ unk8 mUnk_05C[0x10]; /* 06C */ unk8 mUnk_06C[2]; /* 06E */ unk8 mUnk_06E; diff --git a/include/Unknown/UnkStruct_ov000_020b50c0.hpp b/include/Unknown/UnkStruct_ov000_020b50c0.hpp index c23e7725..3be78572 100644 --- a/include/Unknown/UnkStruct_ov000_020b50c0.hpp +++ b/include/Unknown/UnkStruct_ov000_020b50c0.hpp @@ -45,11 +45,13 @@ public: void func_0200381c(const char *soundDataPath, unk32 param2, unk32 param3); + void func_ov000_02069d3c(unk32 param1); + void func_ov000_02069d7c(void); unk32 func_ov000_0206a5d8(unk32 param1); void func_ov000_0206a6a4(unk32 param1); void func_ov000_0206a758(void); void func_ov000_0206a77c(void); - void func_ov000_020bd8ac(void); + void func_ov001_020bd8ac(void); void func_ov001_020bd8dc(void); diff --git a/include/nitro/button.h b/include/nitro/button.h index 64a2a545..b4cdfeea 100644 --- a/include/nitro/button.h +++ b/include/nitro/button.h @@ -1,5 +1,7 @@ #pragma once +#include "types.h" + #define BTN_A (1 << 0) // 0x0001 #define BTN_B (1 << 1) // 0x0002 #define BTN_SELECT (1 << 2) // 0x0004 @@ -12,3 +14,14 @@ #define BTN_L (1 << 9) // 0x0200 #define CHECK_BUTTON_COMBO(value, btn) ((value) & (btn)) + +struct Input { + /* 00 */ u16 cur; + /* 02 */ volatile u16 press; + /* 04 */ u16 release; + /* 06 */ + + Input(); + unk32 func_02013c08(u16 param1); + unk32 func_02013b24(unk32 param1); +}; diff --git a/include/nitro/math.h b/include/nitro/math.h index e8e1f3e6..28254f53 100644 --- a/include/nitro/math.h +++ b/include/nitro/math.h @@ -48,8 +48,8 @@ struct Vec2b { struct Vec2s { /* 0 */ s16 x; - /* 1 */ s16 y; - /* 2 */ + /* 2 */ s16 y; + /* 4 */ Vec2s() {} Vec2s(s16 X, s16 Y) { diff --git a/src/000_Second/Game/GameModeManagerBase_104.cpp b/src/000_Second/Game/GameModeManagerBase_104.cpp new file mode 100644 index 00000000..8a699f98 --- /dev/null +++ b/src/000_Second/Game/GameModeManagerBase_104.cpp @@ -0,0 +1,28 @@ +#include "Game/GameModeManager.hpp" + +ARM GameModeManagerBase_104::GameModeManagerBase_104() : + mUnk_18(false), + mUnk_19(false), + mUnk_1A(false) {} + +ARM GameModeManagerBase_104::~GameModeManagerBase_104() { + GameModeLinkList *pNode = this->mUnk_0C.mList.GetPrev(); + GameModeLinkList *pOrigin = + (GameModeLinkList *) ((u8 *) this + offsetof(GameModeManagerBase_104, mUnk_0C)); + + while (pNode != pOrigin) { + GameModeLinkList *pNextNode = pNode->GetNext2(); + delete pNode->GetTarget(); + pNode = pNextNode; + } +} + +ARM void GameModeManagerBase_104::vfunc_08(Input *pButtons, TouchControl *pTouchControl) {} + +ARM void GameModeManagerBase_104::vfunc_0C(unk32 param1) {} + +ARM void GameModeManagerBase_104::vfunc_10(unk8 *param1) {} + +ARM void GameModeManagerBase_104::vfunc_14(unk8 *param1) {} + +ARM void GameModeManagerBase_104::vfunc_18(void) {} diff --git a/src/000_Second/Game/GameModeManagerBase_104_0C.cpp b/src/000_Second/Game/GameModeManagerBase_104_0C.cpp new file mode 100644 index 00000000..6eea8a86 --- /dev/null +++ b/src/000_Second/Game/GameModeManagerBase_104_0C.cpp @@ -0,0 +1,7 @@ +#include "Game/GameModeManager.hpp" + +GameModeManagerBase_104_0C::~GameModeManagerBase_104_0C() {} + +void GameModeManagerBase_104_0C::vfunc_08(void *param1) {} + +void GameModeManagerBase_104_0C::vfunc_0C(void *param1) {} diff --git a/src/018_StartUp/GameModeStartUp.cpp b/src/018_StartUp/GameModeStartUp.cpp index da9bd94c..810929a2 100644 --- a/src/018_StartUp/GameModeStartUp.cpp +++ b/src/018_StartUp/GameModeStartUp.cpp @@ -13,7 +13,6 @@ extern "C" { void func_02013768(void *param1); -void func_020141dc(unk16 *param1); void func_020261f0(unk32 param1, void *param2); void func_0201245c(); void func_02027a28(void *param1, unk32 param2); @@ -37,7 +36,6 @@ void func_0202e820(); unk32 func_020271b0(); unk32 func_0202e864(void *param1); void func_0202e8f8(void *param1); -void func_020183b8(); void func_0200a7b0(unk32 param1, void *param2, void *param3, void *param4, unk32 param5, unk32 param6, unk32 param7, unk32 param8); @@ -150,7 +148,6 @@ ARM UnkStruct_02049b80::UnkStruct_02049b80() { ARM UnkStruct_02049b18_06::UnkStruct_02049b18_06() { unk8 auStack_18[8]; - func_020141dc(&this->mUnk_00); func_0202e820(); if (func_020271b0() != 0) { @@ -208,7 +205,7 @@ ARM void GameModeStartUp::vfunc_0C() { this->mUnk_2C = SHARED_WORK_C3C; data_02049a2c.func_ov018_020c48f8(); } else if (!this->mUnk_2A && (SHARED_WORK_C3C - this->mUnk_2C) >= 0x3C) { - this->mUnk_2A = data_0204a060.func_020183d4(false, func_020183b8, 1); + this->mUnk_2A = data_0204a060.func_020183d4(false, UnkStruct_0204a060::func_020183b8, 1); if (data_ov018_020c5bc0 != 0) { data_0204a060.func_0201bb84(1, 0, 1); diff --git a/src/018_StartUp/StartUpInitializers.cpp b/src/018_StartUp/StartUpInitializers.cpp index e7bf278f..b3669a6a 100644 --- a/src/018_StartUp/StartUpInitializers.cpp +++ b/src/018_StartUp/StartUpInitializers.cpp @@ -24,7 +24,6 @@ extern "C" { unk32 func_02014fe0(); unk16 func_02026738(); void func_02023548(); -void func_020141dc(unk16 *param1); void func_020327c8(void *param1, unk32 param2); void func_02030d48(u16 param1); void func_02030d58(u16 param1); @@ -82,7 +81,6 @@ ARM UnkStruct_ov000_020b4f84_00::~UnkStruct_ov000_020b4f84_00() {} ARM UnkStruct_ov000_020b504c::UnkStruct_ov000_020b504c() : mUnk_008(NULL), mUnk_030(1) { - func_020141dc(&this->mUnk_03A); Fill32(0, this->mUnk_05C, sizeof(this->mUnk_05C)); this->mUnk_06F = 0; diff --git a/src/019_MainSelect/FileSelectMain.cpp b/src/019_MainSelect/FileSelectMain.cpp index 23bd9531..53747873 100644 --- a/src/019_MainSelect/FileSelectMain.cpp +++ b/src/019_MainSelect/FileSelectMain.cpp @@ -156,7 +156,7 @@ ARM FileSelectMain::FileSelectMain() : params.param1 = &this->mUnk_0C; this->mUnk_03E0.Init(¶ms); - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_0100.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_0100.mUnk_04); this->mUnk_0100.mUnk_2A = 0; this->mUnk_0488.mUnk_2C = 1; this->mUnk_07E4.mUnk_2C = 1; @@ -188,7 +188,7 @@ ARM FileSelectMain::FileSelectMain() : REG_DISPCNT &= 0xFFFFE0FF; REG_DISPCNT |= 0x00001C00; func_020249d4(®_BLDCNT, 4, 8, 0, 0x10); - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_005C.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_005C.mUnk_04); this->func_ov019_020c63dc(); this->func_ov019_020c6d10(); } @@ -200,31 +200,31 @@ ARM FileSelectMain::~FileSelectMain() { ARM void FileSelectMain::func_ov019_020c6c14() {} ARM void FileSelectMain::func_ov019_020c6c18() { - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_0488.mUnk_04); - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_07E4.mUnk_04); - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_0AC4.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_0488.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_07E4.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_0AC4.mUnk_04); } ARM void FileSelectMain::func_ov019_020c6c54() { - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_0DA4.mUnk_04); - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_11BC.mUnk_04); - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_15D4.mUnk_04); - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_18EC.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_0DA4.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_11BC.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_15D4.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_18EC.mUnk_04); } ARM void FileSelectMain::func_ov019_020c6c9c() {} ARM void FileSelectMain::func_ov019_020c6ca0() { - this->mUnk_0488.mUnk_04.func_020166ac(); - this->mUnk_07E4.mUnk_04.func_020166ac(); - this->mUnk_0AC4.mUnk_04.func_020166ac(); + GameModeLinkListNode::func_020166ac(&this->mUnk_0488.mUnk_04); + GameModeLinkListNode::func_020166ac(&this->mUnk_07E4.mUnk_04); + GameModeLinkListNode::func_020166ac(&this->mUnk_0AC4.mUnk_04); } ARM void FileSelectMain::func_ov019_020c6cd0() { - this->mUnk_0DA4.mUnk_04.func_020166ac(); - this->mUnk_11BC.mUnk_04.func_020166ac(); - this->mUnk_15D4.mUnk_04.func_020166ac(); - this->mUnk_18EC.mUnk_04.func_020166ac(); + GameModeLinkListNode::func_020166ac(&this->mUnk_0DA4.mUnk_04); + GameModeLinkListNode::func_020166ac(&this->mUnk_11BC.mUnk_04); + GameModeLinkListNode::func_020166ac(&this->mUnk_15D4.mUnk_04); + GameModeLinkListNode::func_020166ac(&this->mUnk_18EC.mUnk_04); } ARM void FileSelectMain::func_ov019_020c6d08() {} @@ -1112,7 +1112,7 @@ ARM void FileSelectMain::func_ov019_020c80e8() { ARM void FileSelectMain::func_ov019_020c80f4() {} // non-matching -ARM void FileSelectMain::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) { +ARM void FileSelectMain::vfunc_08(Input *pButtons, TouchControl *pTouchControl) { for (int i = 0; i < MAX_SAVE_SLOTS; i++) { this->mUnk_03E8[i].func_ov000_02063f64(); this->GetUnk03E0(i).func_ov019_020cbb94(); diff --git a/src/019_MainSelect/FileSelectManager.cpp b/src/019_MainSelect/FileSelectManager.cpp index f8e3562e..c72ee6ae 100644 --- a/src/019_MainSelect/FileSelectManager.cpp +++ b/src/019_MainSelect/FileSelectManager.cpp @@ -32,26 +32,16 @@ ARM FileSelectManager::~FileSelectManager() { } ARM void FileSelectManager::vfunc_10(unk32 param1, unk32 param2, unk32 param3) { - void *unkPtr; - this->mUnk_004.func_0201c00c(0x25, 1); FileSelectMain *newSub3 = new(HeapIndex_1) FileSelectMain(); - unkPtr = newSub3; - if (newSub3 != NULL) { - unkPtr = &newSub3->mUnk_04; - } - this->mUnk_158 = newSub3; - this->mUnk_154->mUnk_04.func_020166cc(unkPtr); + this->mUnk_158 = newSub3; + this->mUnk_154->mList.func_020166cc(newSub3->GetNode()); newSub3->vfunc_18(); FileSelectSubScreen *newSub4 = new(HeapIndex_1) FileSelectSubScreen(); - unkPtr = newSub4; - if (newSub4 != NULL) { - unkPtr = &newSub4->mUnk_04; - } - this->mUnk_15C = newSub4; - this->mUnk_154->mUnk_04.func_020166cc(unkPtr); + this->mUnk_15C = newSub4; + this->mUnk_154->mList.func_020166cc(newSub4->GetNode()); newSub4->vfunc_18(); this->mUnk_160 = new(HeapIndex_1) FileSelectManager_160(&this->mUnk_104, this->mUnk_158); @@ -65,7 +55,7 @@ ARM void FileSelectManager::vfunc_24() { this->func_0201875c(); this->func_02018908(); - if (this->mUnk_132 == 0) { + if (!this->mTouchControl.mTouch) { this->mUnk_148 = -1; } @@ -119,12 +109,12 @@ ARM void FileSelectManager::func_ov019_020c503c() { } } -ARM void FileSelectManager::vfunc_28(unk32 param1) { +ARM void FileSelectManager::vfunc_28(unk8 *param1) { this->GameModeManagerBase::vfunc_28(param1); this->func_02018a14(param1); } -ARM void FileSelectManager::vfunc_2C(unk32 param1) { +ARM void FileSelectManager::vfunc_2C(unk8 *param1) { this->func_02018984(param1); this->func_02018830(param1); } diff --git a/src/019_MainSelect/FileSelectManager_160.cpp b/src/019_MainSelect/FileSelectManager_160.cpp index ac2fd04e..e2381b51 100644 --- a/src/019_MainSelect/FileSelectManager_160.cpp +++ b/src/019_MainSelect/FileSelectManager_160.cpp @@ -48,7 +48,7 @@ ARM void FileSelectManager_160::vfunc_10() { data_0204999c.mUnk_60 = 0xD6D8; data_0204a088->func_ov000_02061248(); data_0204a110.func_02019538(0x27, 1); - this->mUnk_10->mUnk_04.func_020166ac(); + GameModeLinkListNode::func_020166ac(&this->mUnk_10->mList); this->mUnk_10->func_ov019_020cb664(); this->mUnk_14 = func_ov003_020b6520(&this->mUnk_18, this->mUnk_1C); REG_DISPCNT &= 0xFFFFE0FF; @@ -88,7 +88,7 @@ ARM void FileSelectManager_160::vfunc_20() { data_0204a110.func_02019538(0x25, 1); FileSelectMain *temp_r4 = this->mUnk_10; - this->mUnk_18->mUnk_04.func_020166cc(temp_r4 == NULL ? temp_r4 : (FileSelectMain *) ((unk32 *) temp_r4 + 1)); + this->mUnk_18->mList.func_020166cc(temp_r4->GetNode()); temp_r4->vfunc_18(); this->mUnk_10->func_ov019_020cb5dc(); diff --git a/src/019_MainSelect/FileSelectManager_164.cpp b/src/019_MainSelect/FileSelectManager_164.cpp index 802d494f..eb6b816c 100644 --- a/src/019_MainSelect/FileSelectManager_164.cpp +++ b/src/019_MainSelect/FileSelectManager_164.cpp @@ -50,14 +50,13 @@ ARM void FileSelectManager_164::vfunc_10() { data_0204999c.func_02013014(); data_0204999c.mUnk_60 = 0xD6D8; data_ov000_020b50c0.func_ov000_0206a758(); - this->mUnk_10->mUnk_04.func_020166ac(); + GameModeLinkListNode::func_020166ac(&this->mUnk_10->mList); this->mUnk_10->func_ov019_020cb664(); data_0204a110.func_02019538(0x26, 1); FileSelectOptionsManager::Create(this->mUnk_18, this->mUnk_10->mSaveSlotIndex); FileSelectOptionsManager *pVar1 = gpFSOptionsManager; - this->mUnk_14->mUnk_04.func_020166cc(gpFSOptionsManager == NULL ? (u32 *) gpFSOptionsManager - : (u32 *) gpFSOptionsManager + 1); + this->mUnk_14->mList.func_020166cc(pVar1->GetNode()); pVar1->vfunc_18(); data_0204999c.func_02013070(); @@ -98,7 +97,7 @@ ARM void FileSelectManager_164::vfunc_20() { data_0204a110.func_02019538(0x25, 1); FileSelectMain *temp_r4 = this->mUnk_10; - this->mUnk_14->mUnk_04.func_020166cc(temp_r4 == NULL ? temp_r4 : (FileSelectMain *) ((unk32 *) temp_r4 + 1)); + this->mUnk_14->mList.func_020166cc(temp_r4->GetNode()); temp_r4->vfunc_18(); this->mUnk_10->func_ov019_020cb5dc(); diff --git a/src/019_MainSelect/FileSelectMicTest.cpp b/src/019_MainSelect/FileSelectMicTest.cpp index 369323f5..175b25fd 100644 --- a/src/019_MainSelect/FileSelectMicTest.cpp +++ b/src/019_MainSelect/FileSelectMicTest.cpp @@ -56,7 +56,7 @@ ARM FileSelectMicTest::FileSelectMicTest() : mUnk_304(0x05, 0x8E, 0x00, 0x01, 0x8E, 0x00), mUnk_3F8(0x8D, 0x01), mUnk_630(1) { - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_304.mUnk_044.mUnk_04.mUnk_00); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_304.mUnk_044.mUnk_04); this->mUnk_020.func_0201f730(0x00020006); this->mUnk_3F8.mUnk_14E = 1; this->mUnk_3F8.func_0201f730(0x00020043); @@ -138,7 +138,7 @@ ARM void FileSelectMicTest::func_ov019_020cebcc() { this->mUnk_304.mUnk_0A4.func_ov000_0206415c(&local_10, 7, data_ov019_020d2248.mUnk_00, 0); } -ARM void FileSelectMicTest::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) { +ARM void FileSelectMicTest::vfunc_08(Input *pButtons, TouchControl *pTouchControl) { switch (this->mState) { case FSMicTestState_MicTestIdle: this->mUnk_270.func_ov019_020cf168(); diff --git a/src/019_MainSelect/FileSelectOptions.cpp b/src/019_MainSelect/FileSelectOptions.cpp index 84ae8595..bce0148d 100644 --- a/src/019_MainSelect/FileSelectOptions.cpp +++ b/src/019_MainSelect/FileSelectOptions.cpp @@ -97,7 +97,6 @@ ARM GameModeManagerBase_104 *FileSelectOptionsManager::Create(void *param1, s32 return new(HeapIndex_1) FileSelectOptionsManager(param1, saveSlotIndex); } -// non-matching //! TODO: move to class ARM FileSelectOptionsManager::FileSelectOptionsManager(void *param1, s32 saveSlotIndex) { this->mUnk_24 = (GameModeManagerBase_104 *) param1; @@ -106,9 +105,9 @@ ARM FileSelectOptionsManager::FileSelectOptionsManager(void *param1, s32 saveSlo this->mpMicTest = new(HeapIndex_1) FileSelectMicTest(); FileSelectOptions *var_r5 = new(HeapIndex_1) FileSelectOptions(saveSlotIndex); - this->mpOptions = var_r5 == NULL ? var_r5 : (FileSelectOptions *) &var_r5->mUnk_04; - this->mUnk_24->mUnk_04.func_020166cc(&var_r5->mUnk_04); - this->vfunc_18(); + this->mpOptions = var_r5; + this->mUnk_24->mList.func_020166cc(var_r5->GetNode()); + var_r5->vfunc_18(); } ARM FileSelectOptionsManager::~FileSelectOptionsManager() { @@ -119,7 +118,7 @@ ARM FileSelectOptionsManager::~FileSelectOptionsManager() { this->mpOptions = NULL; } -ARM void FileSelectOptionsManager::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) { +ARM void FileSelectOptionsManager::vfunc_08(Input *pButtons, TouchControl *pTouchControl) { if (this->mUnk_20 == 0) { return; } @@ -129,25 +128,17 @@ ARM void FileSelectOptionsManager::vfunc_08(GameModePTMFParam2Struct *param1, To switch (this->mUnk_1C) { case 0: FileSelectOptions *pFVar4 = this->mpOptions; - FileSelectOptions *pFVar2 = pFVar4; - if (pFVar4 != NULL) { - pFVar2 = (FileSelectOptions *) &pFVar4->mUnk_04; - } - this->mUnk_24->mUnk_04.func_020166cc(&pFVar2->mUnk_04); + this->mUnk_24->mList.func_020166cc(pFVar4->GetNode()); pFVar4->vfunc_18(); this->mpOptions->func_ov019_020cde9c(); - this->mpMicTest->mUnk_04.func_020166ac(); + GameModeLinkListNode::func_020166ac(&this->mpMicTest->mList); break; case 1: FileSelectMicTest *pFVar5 = this->mpMicTest; - FileSelectMicTest *pFVar3 = pFVar5; - if (pFVar5 != NULL) { - pFVar3 = (FileSelectMicTest *) &pFVar5->mUnk_04; - } - this->mUnk_24->mUnk_04.func_020166cc(&pFVar3->mUnk_04); + this->mUnk_24->mList.func_020166cc(pFVar5->GetNode()); pFVar5->vfunc_18(); this->mpMicTest->func_ov019_020cefe4(); - this->mpOptions->mUnk_04.func_020166ac(); + GameModeLinkListNode::func_020166ac(&this->mpOptions->mList); break; case 2: this->mpOptions->func_ov019_020ccdf4(); @@ -188,10 +179,10 @@ ARM FileSelectOptions::FileSelectOptions(s32 saveSlotIndex) : mUnk_1A68(&mUnk_19D0), mUnk_1AB8(&mUnk_19D0, 0x8C, 0x09, 0x00020007) { this->mUnk_1CF5 = false; - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_10A8.mUnk_04); - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_19D0.mUnk_04); - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_1388.mUnk_04); - this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_16AC.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_10A8.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_19D0.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_1388.mUnk_04); + this->mUnk_0C.mList.func_020166cc(&this->mUnk_16AC.mUnk_04); this->mUnk_10A8.mUnk_2A = false; this->mUnk_1388.mUnk_2C = true; this->mUnk_16AC.mUnk_2C = true; @@ -213,7 +204,7 @@ ARM void FileSelectOptions::func_ov019_020ccd40() { CALL_PTMF(PTMF, data_ov019_020d21c0[this->mState]); } -ARM void FileSelectOptions::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) { +ARM void FileSelectOptions::vfunc_08(Input *pButtons, TouchControl *pTouchControl) { CALL_PTMF(PTMF, data_ov019_020d2188[this->mState]); } @@ -632,12 +623,12 @@ ARM UnkStruct_ov019_020d24c8_2C_24::UnkStruct_ov019_020d24c8_2C_24(GameModeManag this->mUnk_FC2 = pSaveSub17->mUnk_02; this->mUnk_103E = pSaveSub17[1].mUnk_00; - param1->mUnk_04.mUnk_00.func_020166cc(&this->mUnk_490.mUnk_04); - param1->mUnk_04.mUnk_00.func_020166cc(&this->mUnk_4F0.mUnk_04); - param1->mUnk_04.mUnk_00.func_020166cc(&this->mUnk_9C0.mUnk_04); - param1->mUnk_04.mUnk_00.func_020166cc(&this->mUnk_A20.mUnk_04); - param1->mUnk_04.mUnk_00.func_020166cc(&this->mUnk_EF0.mUnk_04); - param1->mUnk_04.mUnk_00.func_020166cc(&this->mUnk_F50.mUnk_04); + param1->mList.func_020166cc(&this->mUnk_490.mUnk_04); + param1->mList.func_020166cc(&this->mUnk_4F0.mUnk_04); + param1->mList.func_020166cc(&this->mUnk_9C0.mUnk_04); + param1->mList.func_020166cc(&this->mUnk_A20.mUnk_04); + param1->mList.func_020166cc(&this->mUnk_EF0.mUnk_04); + param1->mList.func_020166cc(&this->mUnk_F50.mUnk_04); this->mUnk_490.mPosOffset.x = 0; this->mUnk_490.mPosOffset.y = 0; diff --git a/src/019_MainSelect/FileSelectSubScreen.cpp b/src/019_MainSelect/FileSelectSubScreen.cpp index 44a6cbc4..7b876882 100644 --- a/src/019_MainSelect/FileSelectSubScreen.cpp +++ b/src/019_MainSelect/FileSelectSubScreen.cpp @@ -77,7 +77,7 @@ ARM FileSelectSubScreen::FileSelectSubScreen() : this->func_ov019_020cf73c(2, 1); } -ARM void FileSelectSubScreen::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) { +ARM void FileSelectSubScreen::vfunc_08(Input *pButtons, TouchControl *pTouchControl) { this->mUnk_0024 = this->mUnk_0020; this->mUnk_0020 += 0x800; diff --git a/src/019_MainSelect/GameModeFileSelect.cpp b/src/019_MainSelect/GameModeFileSelect.cpp index 80ca278e..abe2bf3f 100644 --- a/src/019_MainSelect/GameModeFileSelect.cpp +++ b/src/019_MainSelect/GameModeFileSelect.cpp @@ -31,15 +31,15 @@ ARM GameModeFileSelect::~GameModeFileSelect() { } // https://decomp.me/scratch/bJVks -ARM void GameModeFileSelect::vfunc_08(unk32 param1, unk32 param2, unk32 param3) { +ARM void GameModeFileSelect::vfunc_08() { gSaveManager.func_ov019_020d0964(); - this->func_02018374(); + this->GameModeBase::vfunc_08(); const UnkStruct_ov019_020d1d80 *ptr2 = &data_ov019_020d1d80; this->mUnk_04.mUnk_14 = gSaveManager.mpSaveFile; data_ov000_020b504c.func_ov000_0206807c((void *) &data_ov019_020d1d80, &this->mUnk_04); - data_ov000_020b50c0.func_ov000_020bd8ac(); + data_ov000_020b50c0.func_ov001_020bd8ac(); data_ov000_020b51b8.func_ov000_0206c9a8(3, 0, 0x7F, 0); } diff --git a/src/025_Title/GameModeTitleScreen.cpp b/src/025_Title/GameModeTitleScreen.cpp index a421ebad..2db5c827 100644 --- a/src/025_Title/GameModeTitleScreen.cpp +++ b/src/025_Title/GameModeTitleScreen.cpp @@ -49,8 +49,8 @@ struct stack_struct { /* 14 */ }; -ARM void GameModeTitleScreen::vfunc_08(unk32 param1, unk32 param2, unk32 param3) { - this->GameModeBase::vfunc_08(param1, param2, param3); +ARM void GameModeTitleScreen::vfunc_08() { + this->GameModeBase::vfunc_08(); UnkStruct_ov000_020a782c *iVar1 = func_ov000_020a782c(0); u8 mUnk_04 = iVar1->mUnk_04; diff --git a/src/025_Title/TitleScreen.cpp b/src/025_Title/TitleScreen.cpp index 916e5f68..2dad4d58 100644 --- a/src/025_Title/TitleScreen.cpp +++ b/src/025_Title/TitleScreen.cpp @@ -12,7 +12,6 @@ #include extern "C" { -void func_02018424(); void func_ov000_0205be34(void *param1, unk32 param2); void func_ov000_0205bedc(void *param1, void *param2, void *param3, void *param4, unk32 param5, int); } @@ -168,7 +167,7 @@ void TitleScreen::func_ov025_020c4ea0(TitleScreenState state) { } } -void TitleScreen::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) { +void TitleScreen::vfunc_08(Input *pButtons, TouchControl *pTouchControl) { if (this->mShowUI) { this->mUnk_024.func_ov000_020609c4(); this->mUnk_09C.func_ov000_020609c4(); @@ -178,29 +177,29 @@ void TitleScreen::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouc this->mUnk_2CC.func_ov000_020609c4(); } - CALL_PTMF(TitleScreenPTMF, data_ov025_020c5aec[this->mState], param1, pTouchControl); + CALL_PTMF(TitleScreenPTMF, data_ov025_020c5aec[this->mState], pButtons, pTouchControl); data_0204aeac.func_0201c4d8(0, 0x0B, 8); data_0204aeac.func_0201c504(1, 10, 0x10, 8); } -void TitleScreen::func_ov025_020c5200(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {} +void TitleScreen::func_ov025_020c5200(Input *pButtons, TouchControl *pTouchControl) {} // https://decomp.me/scratch/6nDGM -void TitleScreen::func_ov025_020c5204(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) { +void TitleScreen::func_ov025_020c5204(Input *pButtons, TouchControl *pTouchControl) { if (pTouchControl->mFlags & 1) { this->mUnk_021 = 1U; } if ((pTouchControl->mFlags & 2) && (this->mUnk_021 != 0)) { goto test; } - if (!(param1->mButtons & 8)) { + if (!(pButtons->press & 8)) { return; } test: func_ov025_020c4e54(); } -void TitleScreen::func_ov025_020c5240(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) { +void TitleScreen::func_ov025_020c5240(Input *pButtons, TouchControl *pTouchControl) { this->mUnk_218.UnkOperations(); this->mUnk_204.mUnk_10 = this->mUnk_218.func_0201f04c(); @@ -223,7 +222,7 @@ void TitleScreen::func_ov025_020c5240(GameModePTMFParam2Struct *param1, TouchCon this->func_ov025_020c4ea0(TitleScreenState_IdleBeforeFileSelect); } -void TitleScreen::func_ov025_020c53d0(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) { +void TitleScreen::func_ov025_020c53d0(Input *pButtons, TouchControl *pTouchControl) { this->mUnk_344++; if (this->mUnk_344 == 15) { @@ -262,14 +261,14 @@ void TitleScreen::func_ov025_020c53d0(GameModePTMFParam2Struct *param1, TouchCon } } -void TitleScreen::func_ov025_020c55a4(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) { - if (CHECK_TOUCH_FLAGS(pTouchControl, TouchFlag_UntouchedNow) || CHECK_BUTTON_COMBO(param1->mButtons, BTN_START)) { +void TitleScreen::func_ov025_020c55a4(Input *pButtons, TouchControl *pTouchControl) { + if (CHECK_TOUCH_FLAGS(pTouchControl, TouchFlag_UntouchedNow) || CHECK_BUTTON_COMBO(pButtons->press, BTN_START)) { data_ov000_020b5214.func_ov000_0206db44(0x0B); this->func_ov025_020c4ea0(TitleScreenState_ToFileSelect); } } -void TitleScreen::func_ov025_020c55e4(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) { +void TitleScreen::func_ov025_020c55e4(Input *pButtons, TouchControl *pTouchControl) { if (this->mUnk_024.func_ov000_02060af8() == 0) { return; } @@ -286,7 +285,7 @@ void TitleScreen::func_ov025_020c55e4(GameModePTMFParam2Struct *param1, TouchCon return; } - data_0204a060.func_020183d4(true, func_02018424, 1); + data_0204a060.func_020183d4(true, UnkStruct_0204a060::func_02018424, 1); } void TitleScreen::vfunc_14(unk8 *param1) { @@ -348,17 +347,10 @@ void TitleScreen::vfunc_10(unk8 *param1) { } } -//! TODO: fake match? void TitleScreen::vfunc_0C(unk32 param1) { if (param1 == 1 && this->mShowUI) { UnkStruct_027e0954 *ptr = data_027e0954; - void *iVar1 = &this->mUnk_204; - - if (iVar1 != NULL) { - iVar1 = (u32 *) iVar1 + 1; - } - - ptr->mUnk_14.func_020166f4(iVar1); + ptr->mUnk_14.func_020166f4(this->mUnk_204.GetNode()); } } diff --git a/src/025_Title/TitleScreenManager.cpp b/src/025_Title/TitleScreenManager.cpp index 7b83426f..728386c2 100644 --- a/src/025_Title/TitleScreenManager.cpp +++ b/src/025_Title/TitleScreenManager.cpp @@ -17,13 +17,8 @@ ARM void TitleScreenManager::vfunc_14() { this->mUnk_004.func_0201c00c(0x24, 1); TitleScreen *pTitleScreen = new(HeapIndex_1) TitleScreen(); - void *pUVar2 = pTitleScreen; - if (pTitleScreen != NULL) { - pUVar2 = &pTitleScreen->mUnk_04; - } - this->mpTitleScreen = pTitleScreen; - - this->mUnk_104.mUnk_04.func_020166cc(pUVar2); + this->mpTitleScreen = pTitleScreen; + this->mUnk_104.mList.func_020166cc(pTitleScreen->GetNode()); pTitleScreen->vfunc_18(); } @@ -40,12 +35,12 @@ ARM void TitleScreenManager::vfunc_24() { this->func_02018908(); } -ARM void TitleScreenManager::vfunc_28(unk32 param1) { +ARM void TitleScreenManager::vfunc_28(unk8 *param1) { this->GameModeManagerBase::vfunc_28(param1); this->func_02018a14(param1); } -ARM void TitleScreenManager::vfunc_2C(unk32 param1) { +ARM void TitleScreenManager::vfunc_2C(unk8 *param1) { this->func_02018984(param1); this->func_02018830(param1); } diff --git a/src/Main/Game/GameModeBase.cpp b/src/Main/Game/GameModeBase.cpp new file mode 100644 index 00000000..bc2164cc --- /dev/null +++ b/src/Main/Game/GameModeBase.cpp @@ -0,0 +1,26 @@ +#include "Game/GameMode.hpp" +#include "Unknown/UnkStruct_0204a110.hpp" + +GameModeBase::GameModeBase() {} + +GameModeBase::~GameModeBase() { + data_0204a110.func_ov001_020bd58c(); +} + +void GameModeBase::vfunc_08() { + data_0204a110.func_02018d34(); +} + +void GameModeBase::vfunc_14() {} + +void GameModeBase::vfunc_10() {} + +void GameModeBase::vfunc_18() {} + +void GameModeBase::vfunc_1C() {} + +void GameModeBase::vfunc_20() {} + +unk32 GameModeBase::vfunc_24() { + return 1; +} diff --git a/src/Main/Game/GameModeLinkListNode.cpp b/src/Main/Game/GameModeLinkListNode.cpp new file mode 100644 index 00000000..7307703d --- /dev/null +++ b/src/Main/Game/GameModeLinkListNode.cpp @@ -0,0 +1,39 @@ +#include "Game/GameModeManager.hpp" + +ARM GameModeLinkListNode::GameModeLinkListNode() { + this->mNext = this; + this->mPrev = this; +} + +ARM GameModeLinkListNode::~GameModeLinkListNode() { + this->mNext->mPrev = this->mPrev; + this->mPrev->mNext = this->mNext; +} + +ARM void GameModeLinkListNode::func_020166ac(GameModeLinkListNode *node) { + node->mNext->mPrev = node->mPrev; + node->mPrev->mNext = node->mNext; + + node->mNext = node; + node->mPrev = node; +} + +ARM void GameModeLinkListNode::func_020166cc(GameModeLinkListNode *node) { + this->func_020166ac(node); + + GameModeLinkListNode *nextNode = this->mNext; + nextNode->mPrev = node; + node->mNext = nextNode; + node->mPrev = this; + this->mNext = node; +} + +ARM void GameModeLinkListNode::func_020166f4(GameModeLinkListNode *node) { + this->func_020166ac(node); + + GameModeLinkListNode *prevNode = this->mPrev; + prevNode->mNext = node; + node->mPrev = prevNode; + node->mNext = this; + this->mPrev = node; +} diff --git a/src/Main/Game/GameModeManagerBase.cpp b/src/Main/Game/GameModeManagerBase.cpp new file mode 100644 index 00000000..b91f4910 --- /dev/null +++ b/src/Main/Game/GameModeManagerBase.cpp @@ -0,0 +1,247 @@ +#include "Game/GameModeManager.hpp" +#include "Unknown/UnkStruct_02049b18.hpp" +#include "Unknown/UnkStruct_0204a110.hpp" +#include "Unknown/UnkStruct_0204e5f8.hpp" +#include "Unknown/UnkStruct_027e09b8.hpp" +#include "Unknown/UnkStruct_ov000_02067bc4.hpp" +#include "Unknown/UnkStruct_ov000_020b50c0.hpp" + +THUMB GameModeManagerBase *GameModeManagerBase::Create(unk32 param1) { + return new(HeapIndex_1) GameModeManagerBase(param1); +} + +THUMB GameModeManagerBase::GameModeManagerBase(unk32 param1) : + mUnk_100((void *) param1), + mUnk_148(-1), + mUnk_14C(-1), + mUnk_150(false) { + data_ov000_020b504c.mUnk_004 = &this->mUnk_004; +} + +THUMB void GameModeManagerBase::func_02018550(void) {} + +THUMB void GameModeManagerBase::func_02018554(void) {} + +THUMB GameModeManagerBase::~GameModeManagerBase() { + this->func_02018a8c(); +} + +THUMB void GameModeManagerBase::vfunc_10(unk32 param1, unk32 param2, unk32 param3) {} + +THUMB void GameModeManagerBase::vfunc_14() {} + +THUMB void GameModeManagerBase::vfunc_18() {} + +THUMB void GameModeManagerBase::vfunc_1C() {} + +THUMB void GameModeManagerBase::vfunc_20() {} + +ARM void GameModeManagerBase::vfunc_00() { + data_ov000_020b50c0.func_ov000_02069d3c(1); + + if (!this->mUnk_150) { + this->mUnk_150 = true; + } +} + +ARM void GameModeManagerBase::vfunc_04() { + data_ov000_020b50c0.func_ov000_02069d7c(); + + if (this->mUnk_150) { + this->mUnk_150 = false; + } +} + +ARM void GameModeManagerBase::func_02018634(unk32 param1) { + this->mButtons.func_02013b24(this->mButtons.func_02013c08(data_02049b18.mUnk_28)); + this->mTouchControl.func_02014478(&data_02049b4c, param1); +} + +ARM void GameModeManagerBase::vfunc_24() { + this->mUnk_14C = -1; + this->mUnk_004.func_0201bf24(); +} + +ARM void GameModeManagerBase::vfunc_28(unk8 *param1) { + this->mUnk_004.func_0201bf54(); +} + +ARM void GameModeManagerBase::vfunc_2C(unk8 *param1) {} + +ARM void GameModeManagerBase::vfunc_30(unk32 param1) { + GameModeLinkList *pNode; + + for (pNode = this->mUnk_104.mList.GetNext(); pNode != this->mUnk_104.GetOrigin(); pNode = pNode->GetPrev()) { + pNode->GetTarget()->vfunc_0C(param1); + } +} + +ARM void GameModeManagerBase::vfunc_34() {} + +struct UnkStruct3 { + unk32 mUnk_00; + unk32 *mUnk_04; +}; + +//! TODO: fake match +ARM void *GameModeManagerBase::func_020186f8(unk32 param1) { + return ((UnkStruct3 *) (((u32 *) this) + param1))->mUnk_04; +} + +ARM void GameModeManagerBase::func_02018704(void) { + this->mUnk_004.func_0201c22c(); +} + +ARM void GameModeManagerBase::func_02018714(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5) { + this->mUnk_004.func_0201c124(param1, param2, param3, param4, param5); +} + +ARM void GameModeManagerBase::func_0201873c(void) { + this->mUnk_004.func_0201c19c(); +} + +ARM void GameModeManagerBase::func_0201874c(void) { + this->mUnk_004.func_0201c1e4(); +} + +struct UnkStruct4 { + void *a; + void *b; + void *c; + void *d; +}; + +// non-matching +ARM void GameModeManagerBase::func_0201875c(void) { + GameModeLinkList *pNode2; + GameModeLinkList *pNode; + + UnkStruct4 local_30; + local_30.a = &this->mUnk_148; + local_30.b = &this->mUnk_14C; + local_30.c = &this->mButtons; + local_30.d = &this->mTouchControl; + + for (pNode = this->mUnk_104.mList.GetNext(); pNode != this->mUnk_104.GetOrigin(); pNode = pNode->GetPrev()) { + if (this->func_02018af0(pNode) && this->func_02018b54(pNode)) { + for (pNode2 = pNode->GetTarget()->mUnk_0C.mList.GetNext(); pNode2 != pNode->GetTarget()->mUnk_0C.GetOrigin(); + pNode2 = pNode2->GetPrev()) { + pNode2->GetTarget()->vfunc_08(&local_30); + } + } + } +} + +struct UnkStruct5 { + unk32 a; + void *b; +}; + +// non-matching +ARM void GameModeManagerBase::func_02018830(unk8 *param1) { + GameModeLinkList *pNode2; + GameModeLinkList *pNode; + + UnkStruct5 local_28; + local_28.a = this->mUnk_148; + local_28.b = param1; + + for (pNode = this->mUnk_104.mList.GetPrev(); pNode != this->mUnk_104.GetOrigin(); pNode = pNode->GetNext2()) { + if (this->func_02018af0(pNode) && this->func_02018b54(pNode) && this->func_02018b90(pNode, (unk8 *) param1)) { + for (pNode2 = pNode->GetTarget()->mUnk_0C.mList.GetPrev(); pNode2 != pNode->GetTarget()->mUnk_0C.GetOrigin(); + pNode2 = pNode2->GetNext2()) { + pNode2->GetTarget()->vfunc_0C(&local_28); + } + } + } +} + +ARM void GameModeManagerBase::func_02018908() { + GameModeLinkList *pNode; + + for (pNode = this->mUnk_104.mList.GetNext(); pNode != this->mUnk_104.GetOrigin(); pNode = pNode->GetPrev()) { + if (this->func_02018af0(pNode) && this->func_02018b54(pNode)) { + pNode->GetTarget()->vfunc_08(&this->mButtons, &this->mTouchControl); + } + } +} + +ARM void GameModeManagerBase::func_02018984(unk8 *param1) { + GameModeLinkList *pNode; + + for (pNode = this->mUnk_104.mList.GetPrev(); pNode != this->mUnk_104.GetOrigin(); pNode = pNode->GetNext2()) { + if (this->func_02018af0(pNode) && this->func_02018b54(pNode) && this->func_02018b90(pNode, param1)) { + pNode->GetTarget()->vfunc_10(param1); + } + } +} + +ARM void GameModeManagerBase::func_02018a14(unk8 *param1) { + GameModeLinkList *pNode; + + for (pNode = this->mUnk_104.mList.GetNext(); pNode != this->mUnk_104.GetOrigin(); pNode = pNode->GetPrev()) { + if (this->func_02018af0(pNode) && this->func_02018b54(pNode)) { + pNode->GetTarget()->vfunc_14(param1); + } + } +} + +ARM void GameModeManagerBase::func_02018a8c() { + this->mUnk_004.func_0201bf90(); +} + +void GameModeManagerBase::func_02018a9c(unk32 param1, unk32 param2) { + this->mUnk_004.func_0201c00c(param1, param2); +} + +void GameModeManagerBase::func_02018aac(unk32 param1) { + this->mUnk_004.func_0201c068(param1); +} + +void GameModeManagerBase::func_02018ac4(void) { + this->mUnk_004.func_0201bfec(); +} + +bool GameModeManagerBase::func_02018ad4(void) { + return !this->mUnk_0F4 && !this->mUnk_0F5; +} + +bool GameModeManagerBase::func_02018af0(GameModeLinkList *param1) { + if (param1->GetTarget()->mUnk_18) { + return true; + } + + if (data_027e09b8 != NULL) { + if (data_027e09b8->func_ov000_020732dc(0) != 0 || data_027e09b8->func_ov000_020732dc(4) != 0) { + return false; + } + + return true; + } + + return true; +} + +bool GameModeManagerBase::func_02018b54(GameModeLinkList *param1) { + if (param1->GetTarget()->mUnk_19) { + return true; + } + + if (data_0204e5f8.mUnk_18 || data_0204e5f8.mUnk_3A != 0 || data_0204e5f8.mUnk_3E != 0) { + return false; + } + + return true; +} + +bool GameModeManagerBase::func_02018b90(GameModeLinkList *param1, unk8 *param2) { + if (param1->GetTarget()->mUnk_1A) { + return true; + } + + if (data_0204a110.mUnk_008 == 1 && param2[1] == 0) { + return false; + } + + return true; +} diff --git a/src/Main/UnkStruct_0204a060.cpp b/src/Main/UnkStruct_0204a060.cpp new file mode 100644 index 00000000..33e19c9f --- /dev/null +++ b/src/Main/UnkStruct_0204a060.cpp @@ -0,0 +1,42 @@ +#include "Unknown/UnkStruct_0204a060.hpp" +#include "System/OverlayManager.hpp" +#include "Unknown/UnkStruct_02049a2c.hpp" +#include "Unknown/UnkStruct_0204e5f8.hpp" +#include "Unknown/UnkStruct_ov000_020b51b8.hpp" + +extern "C" void func_ov001_020be078(); + +THUMB bool UnkStruct_0204a060::vfunc_0C(void) { + return data_02049a2c.func_02013724(this->callback); +} + +THUMB void UnkStruct_0204a060::func_020183b8(void) { + func_ov001_020be078(); +} + +THUMB void UnkStruct_0204a060::func_020183c0(void) { + this->func_020183d4(false, func_ov001_020be078, 1); +} + +THUMB bool UnkStruct_0204a060::func_020183d4(bool param1, void *param2, unk32 param3) { + if (this->mUnk_0C) { + return false; + } + + this->mUnk_14 = param1 ? 0x00010000 : 0xFFFF0000; + this->callback = param2; + this->func_0201bb84(0x20, 4, 0x20); + + if (param3 != 0) { + data_ov000_020b51b8.func_ov000_0206d0bc(this->mUnk_1A); + } + + data_0204e5f8.func_0201b9a8(this); + return true; +} + +THUMB void UnkStruct_0204a060::func_02018424(void) { + data_02049ba0.func_020148d0(0x18)->func_ov018_020c4840(); +} + +ARM UnkStruct_0204a060::~UnkStruct_0204a060() {} diff --git a/tools/configure.py b/tools/configure.py index f7201860..0588603e 100755 --- a/tools/configure.py +++ b/tools/configure.py @@ -126,12 +126,18 @@ config.libs = [ Object("Main/Main.cpp"), Object("Main/System/SysNew.cpp"), Object("Main/System/OverlayManager.cpp"), + Object("Main/Game/GameModeLinkListNode.cpp"), Object("Main/func_02017ea4.cpp"), + Object("Main/Game/GameModeBase.cpp"), + Object("Main/UnkStruct_0204a060.cpp"), + Object("Main/Game/GameModeManagerBase.cpp"), ] ), GameLib( "Overlay 0", [ + Object("000_Second/Game/GameModeManagerBase_104_0C.cpp"), + Object("000_Second/Game/GameModeManagerBase_104.cpp"), Object("000_Second/Actor/Actor.cpp"), Object("000_Second/Actor/ActorManager.cpp"), Object("000_Second/Actor/ActorUnk_ov000_020a8bb0.cpp"), diff --git a/tools/objdiff_config.py b/tools/objdiff_config.py index f0bd20a2..ed8254ff 100644 --- a/tools/objdiff_config.py +++ b/tools/objdiff_config.py @@ -57,7 +57,7 @@ class ConfigVersion: entry = self.get_entry_from_name(units, self.objdiff_json["units"][i]["name"]) if entry is not None: - self.objdiff_json["units"][i]["scratch"]["c_flags"] = entry.get_all_cflags() + self.objdiff_json["units"][i]["scratch"]["c_flags"] = f"{entry.get_all_cflags()} -DVERSION={self.name.upper()}" self.objdiff_json["units"][i]["scratch"]["compiler"] = entry.mw_version def get_entry_from_name(self, units: list[ConfigUnit], base_name: str): diff --git a/tools/project.py b/tools/project.py index 30b4f37b..cc99da13 100644 --- a/tools/project.py +++ b/tools/project.py @@ -728,7 +728,7 @@ def create_objdiff_fixup_config(cfg: ProjectConfig, objects: Dict[str, Object]): out_json["units"][name] = {} for name, object in objects.items(): - out_json["units"][name]["cflags"] = object.options["cflags"] + [f"-DVERSION={version.upper()}"] + out_json["units"][name]["cflags"] = object.options["cflags"] out_json["units"][name]["extra_cflags"] = object.options["extra_cflags"] out_json["units"][name]["mw_version"] = COMPILER_MAP[object.options["mw_version"]]