From 76c1ec9acf9f359238ec1b00702f2c8ec65672f0 Mon Sep 17 00:00:00 2001 From: Yanis <35189056+Yanis002@users.noreply.github.com> Date: Tue, 13 Jan 2026 15:04:52 +0100 Subject: [PATCH] Decompile `018_StartUp` overlay (#19) * Decompile StartUp overlay (99%) * jp delinks * regression fix --- config/eur/arm9/overlays/ov000/symbols.txt | 28 +- config/eur/arm9/overlays/ov001/relocs.txt | 64 +-- config/eur/arm9/overlays/ov001/symbols.txt | 4 +- config/eur/arm9/overlays/ov018/delinks.txt | 9 + config/eur/arm9/overlays/ov018/relocs.txt | 8 +- config/eur/arm9/overlays/ov018/symbols.txt | 133 +++--- config/eur/arm9/symbols.txt | 62 +-- config/jp/arm9/delinks.txt | 3 + config/jp/arm9/overlays/ov000/symbols.txt | 34 +- config/jp/arm9/overlays/ov001/relocs.txt | 78 ++- config/jp/arm9/overlays/ov018/delinks.txt | 9 + config/jp/arm9/overlays/ov018/relocs.txt | 10 +- config/jp/arm9/overlays/ov018/symbols.txt | 135 +++--- config/jp/arm9/symbols.txt | 132 ++--- docs/overlays.md | 8 +- include/FileSelect/Common.hpp | 33 +- include/Game/GameModeManager.hpp | 3 + include/Game/GameModeStartUp.hpp | 31 ++ include/Save/SaveManager.hpp | 7 +- include/System/OverlayManager.hpp | 3 + include/System/Random.hpp | 2 + include/System/SysFault.hpp | 6 + include/System/SysNew.hpp | 58 ++- include/Unknown/UnkStruct_02049a2c.hpp | 32 +- include/Unknown/UnkStruct_02049b18.hpp | 34 ++ include/Unknown/UnkStruct_02049b80.hpp | 9 + include/Unknown/UnkStruct_02049f04.hpp | 16 + include/Unknown/UnkStruct_0204a060.hpp | 27 +- include/Unknown/UnkStruct_0204a090.hpp | 12 + include/Unknown/UnkStruct_0204a110.hpp | 209 +++++++- include/Unknown/UnkStruct_0204af1c.hpp | 15 +- include/Unknown/UnkStruct_0204e5f8.hpp | 44 ++ include/Unknown/UnkStruct_0204e640.hpp | 13 + include/Unknown/UnkStruct_0204e64c.hpp | 40 ++ include/Unknown/UnkStruct_ov000_02067bc4.hpp | 61 ++- include/Unknown/UnkStruct_ov000_020b4ec4.hpp | 19 + include/Unknown/UnkStruct_ov000_020b4eec.hpp | 14 + include/Unknown/UnkStruct_ov000_020b4f84.hpp | 37 ++ include/Unknown/UnkStruct_ov000_020b50c0.hpp | 45 ++ include/Unknown/UnkStruct_ov000_020b51b8.hpp | 64 ++- include/Unknown/UnkStruct_ov000_020b5214.hpp | 39 ++ include/Unknown/UnkStruct_ov000_020b52b4.hpp | 24 + include/Unknown/UnkStruct_ov000_020b52e8.hpp | 20 + include/Unknown/UnkStruct_ov000_020b5300.hpp | 38 ++ include/Unknown/UnkStruct_ov000_020b5340.hpp | 33 ++ include/regs.h | 11 +- src/018_StartUp/GameModeStartUp.cpp | 224 +++++++++ src/018_StartUp/StartUpInitializers.cpp | 478 +++++++++++++++++++ src/019_MainSelect/FileSelectManager_164.cpp | 4 +- src/019_MainSelect/FileSelectSubScreen.cpp | 10 - src/110_PlayerGet/PlayerGet.cpp | 2 +- src/Main/System/SysNew.cpp | 19 +- tools/new_class.py | 51 ++ 53 files changed, 2058 insertions(+), 446 deletions(-) create mode 100644 include/Game/GameModeStartUp.hpp create mode 100644 include/Unknown/UnkStruct_02049b18.hpp create mode 100644 include/Unknown/UnkStruct_02049f04.hpp create mode 100644 include/Unknown/UnkStruct_0204a090.hpp create mode 100644 include/Unknown/UnkStruct_0204e5f8.hpp create mode 100644 include/Unknown/UnkStruct_0204e640.hpp create mode 100644 include/Unknown/UnkStruct_0204e64c.hpp create mode 100644 include/Unknown/UnkStruct_ov000_020b4ec4.hpp create mode 100644 include/Unknown/UnkStruct_ov000_020b4eec.hpp create mode 100644 include/Unknown/UnkStruct_ov000_020b4f84.hpp create mode 100644 include/Unknown/UnkStruct_ov000_020b52b4.hpp create mode 100644 include/Unknown/UnkStruct_ov000_020b52e8.hpp create mode 100644 include/Unknown/UnkStruct_ov000_020b5300.hpp create mode 100644 include/Unknown/UnkStruct_ov000_020b5340.hpp create mode 100644 src/018_StartUp/GameModeStartUp.cpp create mode 100644 src/018_StartUp/StartUpInitializers.cpp create mode 100755 tools/new_class.py diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 2bd46356..a0e9d318 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -187,7 +187,7 @@ func_ov000_02059108 kind:function(arm,size=0x30) addr:0x02059108 func_ov000_02059138 kind:function(arm,size=0x30) addr:0x02059138 func_ov000_02059168 kind:function(arm,size=0x28) addr:0x02059168 func_ov000_02059190 kind:function(arm,size=0x3c) addr:0x02059190 -func_ov000_020591cc kind:function(arm,size=0x20) addr:0x020591cc +_ZN29UnkStruct_ov000_020b4ec4_BaseC2Ev kind:function(arm,size=0x20) addr:0x020591cc func_ov000_020591ec kind:function(arm,size=0x54) addr:0x020591ec func_ov000_02059240 kind:function(arm,size=0x30) addr:0x02059240 func_ov000_02059270 kind:function(arm,size=0x18) addr:0x02059270 @@ -678,10 +678,10 @@ func_ov000_0206645c kind:function(arm,size=0xf0) addr:0x0206645c func_ov000_0206654c kind:function(arm,size=0x6c) addr:0x0206654c func_ov000_020665b8 kind:function(arm,size=0x14) addr:0x020665b8 func_ov000_020665cc kind:function(arm,size=0x10) addr:0x020665cc -func_ov000_020665dc kind:function(arm,size=0x34) addr:0x020665dc +_ZN27UnkStruct_ov000_020b4f84_00C1Ev kind:function(arm,size=0x34) addr:0x020665dc func_ov000_02066610 kind:function(arm,size=0x4c) addr:0x02066610 func_ov000_0206665c kind:function(arm,size=0x20) addr:0x0206665c -func_ov000_0206667c kind:function(arm,size=0x98) addr:0x0206667c +_ZN24UnkStruct_ov000_020b4f8419func_ov000_0206667cEii kind:function(arm,size=0x98) addr:0x0206667c func_ov000_02066714 kind:function(arm,size=0x40) addr:0x02066714 func_ov000_02066754 kind:function(arm,size=0x24) addr:0x02066754 func_ov000_02066778 kind:function(arm,size=0x14) addr:0x02066778 @@ -711,8 +711,8 @@ _ZN25UnkSystem1_ov000_Derived18vfunc_10Ev kind:function(arm,size=0x34) addr:0x02 func_ov000_020674a8 kind:function(arm,size=0xc0) addr:0x020674a8 func_ov000_02067568 kind:function(arm,size=0x14) addr:0x02067568 func_ov000_0206757c kind:function(arm,size=0x60) addr:0x0206757c -func_ov000_020675dc kind:function(arm,size=0x11c) addr:0x020675dc -func_ov000_020676f8 kind:function(arm,size=0xb8) addr:0x020676f8 +_ZN29UnkStruct_ov000_020b504c_Sub3C1Ei kind:function(arm,size=0x11c) addr:0x020675dc +_ZN29UnkStruct_ov000_020b504c_Sub319func_ov000_020676f8EPKci kind:function(arm,size=0xb8) addr:0x020676f8 func_ov000_020677b0 kind:function(arm,size=0x54) addr:0x020677b0 func_ov000_02067804 kind:function(arm,size=0xdc) addr:0x02067804 func_ov000_020678e0 kind:function(arm,size=0x90) addr:0x020678e0 @@ -722,16 +722,16 @@ func_ov000_02067a60 kind:function(arm,size=0x44) addr:0x02067a60 func_ov000_02067aa4 kind:function(arm,size=0x7c) addr:0x02067aa4 func_ov000_02067b20 kind:function(arm,size=0x40) addr:0x02067b20 func_ov000_02067b60 kind:function(arm,size=0x54) addr:0x02067b60 -_ZN24UnkStruct_ov000_02067bc419func_ov000_02067bb4Ei kind:function(arm,size=0x10) addr:0x02067bb4 -_ZN24UnkStruct_ov000_02067bc419func_ov000_02067bc4Ei kind:function(arm,size=0x1c) addr:0x02067bc4 +_ZN24UnkStruct_ov000_020b504c19func_ov000_02067bb4Ei kind:function(arm,size=0x10) addr:0x02067bb4 +_ZN24UnkStruct_ov000_020b504c19func_ov000_02067bc4Ei kind:function(arm,size=0x1c) addr:0x02067bc4 func_ov000_02067be0 kind:function(arm,size=0x10) addr:0x02067be0 func_ov000_02067bf0 kind:function(arm,size=0x8) addr:0x02067bf0 func_ov000_02067bf8 kind:function(arm,size=0x8) addr:0x02067bf8 func_ov000_02067c00 kind:function(arm,size=0x98) addr:0x02067c00 func_ov000_02067c98 kind:function(arm,size=0x4) addr:0x02067c98 func_ov000_02067c9c kind:function(arm,size=0x5c) addr:0x02067c9c -_ZN24UnkStruct_ov000_02067bc419func_ov000_02067cf8EiiPNS_10UnkStruct1E kind:function(arm,size=0x168) addr:0x02067cf8 -_ZN24UnkStruct_ov000_02067bc419func_ov000_02067e60Ehi kind:function(arm,size=0xfc) addr:0x02067e60 +_ZN24UnkStruct_ov000_020b504c19func_ov000_02067cf8EiiPN24UnkStruct_ov000_02067bc410UnkStruct1E kind:function(arm,size=0x168) addr:0x02067cf8 +_ZN24UnkStruct_ov000_020b504c19func_ov000_02067e60Ehi kind:function(arm,size=0xfc) addr:0x02067e60 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 @@ -811,7 +811,7 @@ func_ov000_0206a508 kind:function(arm,size=0x24) addr:0x0206a508 func_ov000_0206a52c kind:function(arm,size=0x94) addr:0x0206a52c func_ov000_0206a5c0 kind:function(arm,size=0xc) addr:0x0206a5c0 func_ov000_0206a5cc kind:function(arm,size=0xc) addr:0x0206a5cc -func_ov000_0206a5d8 kind:function(arm,size=0x24) addr:0x0206a5d8 +_ZN24UnkStruct_ov000_020b50c019func_ov000_0206a5d8Ei kind:function(arm,size=0x24) addr:0x0206a5d8 func_ov000_0206a5fc kind:function(arm,size=0xa8) addr:0x0206a5fc _ZN24UnkStruct_ov000_020b50c019func_ov000_0206a6a4Ei kind:function(arm,size=0x60) addr:0x0206a6a4 func_ov000_0206a704 kind:function(arm,size=0x3c) addr:0x0206a704 @@ -842,7 +842,7 @@ func_ov000_0206af94 kind:function(arm,size=0x34) addr:0x0206af94 func_ov000_0206afc8 kind:function(arm,size=0xcc) addr:0x0206afc8 func_ov000_0206b094 kind:function(arm,size=0xac) addr:0x0206b094 func_ov000_0206b140 kind:function(arm,size=0x1e4) addr:0x0206b140 -func_ov000_0206b324 kind:function(arm,size=0x28) addr:0x0206b324 +_ZN27UnkStruct_ov000_020b51b8_00C1EPv kind:function(arm,size=0x28) addr:0x0206b324 func_ov000_0206b34c kind:function(arm,size=0x1c) addr:0x0206b34c func_ov000_0206b368 kind:function(arm,size=0x80) addr:0x0206b368 func_ov000_0206b3e8 kind:function(arm,size=0x160) addr:0x0206b3e8 @@ -850,7 +850,7 @@ func_ov000_0206b548 kind:function(arm,size=0xe0) addr:0x0206b548 func_ov000_0206b628 kind:function(arm,size=0x60) addr:0x0206b628 func_ov000_0206b688 kind:function(arm,size=0x364) addr:0x0206b688 func_ov000_0206b9ec kind:function(arm,size=0x78) addr:0x0206b9ec -func_ov000_0206ba64 kind:function(arm,size=0x20) addr:0x0206ba64 +_ZN27UnkStruct_ov000_020b51b8_04C1EPv kind:function(arm,size=0x20) addr:0x0206ba64 func_ov000_0206ba84 kind:function(arm,size=0xc) addr:0x0206ba84 func_ov000_0206ba90 kind:function(arm,size=0xc) addr:0x0206ba90 func_ov000_0206ba9c kind:function(arm,size=0x14) addr:0x0206ba9c @@ -956,7 +956,7 @@ func_ov000_0206f5a0 kind:function(arm,size=0x34) addr:0x0206f5a0 func_ov000_0206f5d4 kind:function(arm,size=0x24) addr:0x0206f5d4 func_ov000_0206f5f8 kind:function(arm,size=0x24) addr:0x0206f5f8 func_ov000_0206f61c kind:function(arm,size=0x90) addr:0x0206f61c -func_ov000_0206f6ac kind:function(arm,size=0x2c) addr:0x0206f6ac +_ZN24UnkStruct_ov000_020b52b419func_ov000_0206f6acEv kind:function(arm,size=0x2c) addr:0x0206f6ac func_ov000_0206f6d8 kind:function(arm,size=0x34) addr:0x0206f6d8 func_ov000_0206f70c kind:function(arm,size=0x48) addr:0x0206f70c func_ov000_0206f754 kind:function(arm,size=0x24) addr:0x0206f754 @@ -976,7 +976,7 @@ func_ov000_0206ff0c kind:function(arm,size=0x28) addr:0x0206ff0c func_ov000_0206ff34 kind:function(arm,size=0x10) addr:0x0206ff34 func_ov000_0206ff44 kind:function(arm,size=0x10) addr:0x0206ff44 func_ov000_0206ff54 kind:function(arm,size=0x6c) addr:0x0206ff54 -func_ov000_0206ffc0 kind:function(arm,size=0x84) addr:0x0206ffc0 +_ZN24UnkStruct_ov000_020b534019func_ov000_0206ffc0Ev kind:function(arm,size=0x84) addr:0x0206ffc0 func_ov000_02070044 kind:function(arm,size=0x74) addr:0x02070044 func_ov000_020700b8 kind:function(arm,size=0x1c) addr:0x020700b8 func_ov000_020700d4 kind:function(arm,size=0x30) addr:0x020700d4 diff --git a/config/eur/arm9/overlays/ov001/relocs.txt b/config/eur/arm9/overlays/ov001/relocs.txt index 0986fefe..b9f6a0b7 100644 --- a/config/eur/arm9/overlays/ov001/relocs.txt +++ b/config/eur/arm9/overlays/ov001/relocs.txt @@ -1647,7 +1647,7 @@ from:0x020be086 kind:thumb_call to:0x020a1028 module:overlay(0) from:0x020be09a kind:thumb_call_arm to:0x02028c90 module:main from:0x020be0b6 kind:thumb_call_arm to:0x020a10f4 module:overlay(0) from:0x020be0c0 kind:thumb_call_arm to:0x02011f3c module:main -from:0x020be0c8 kind:thumb_call_arm to:0x020c4840 module:overlays(18,20,25) +from:0x020be0c8 kind:thumb_call_arm to:0x020c4840 module:overlays(20,25) from:0x020be0d0 kind:load to:0x02049ba0 module:main from:0x020be0d4 kind:load to:0x02049a2c module:main from:0x020be0de kind:thumb_call to:0x020148d0 module:main @@ -2324,117 +2324,99 @@ from:0x020c0c44 kind:load to:0x020c2928 module:overlays(2,4) from:0x020c0cf8 kind:load to:0x020c2fc4 module:overlay(1) from:0x020c0cfc kind:load to:0x020c29a0 module:overlay(1) from:0x020c0e9c kind:load to:0x020c4701 module:overlay(1) -from:0x020c0ea0 kind:load to:0x020c5bac module:overlay(18) from:0x020c0ea8 kind:load to:0x020c1e24 module:overlay(1) from:0x020c0f14 kind:load to:0x020c4701 module:overlay(1) -from:0x020c0f18 kind:load to:0x020c5bac module:overlay(18) from:0x020c0f20 kind:load to:0x020c1edc module:overlay(1) from:0x020c0f8c kind:load to:0x020c4701 module:overlay(1) -from:0x020c0f90 kind:load to:0x020c5bac module:overlay(18) from:0x020c0f98 kind:load to:0x020c1f94 module:overlay(1) from:0x020c1004 kind:load to:0x020c4701 module:overlay(1) -from:0x020c1008 kind:load to:0x020c5bac module:overlay(18) from:0x020c1010 kind:load to:0x020c204c module:overlay(1) from:0x020c107c kind:load to:0x020c4701 module:overlay(1) -from:0x020c1080 kind:load to:0x020c5b94 module:overlay(18) from:0x020c1088 kind:load to:0x020c2104 module:overlay(1) from:0x020c10f4 kind:load to:0x020c4701 module:overlay(1) -from:0x020c10f8 kind:load to:0x020c5b94 module:overlay(18) from:0x020c1100 kind:load to:0x020c219c module:overlay(1) from:0x020c1114 kind:load to:0x020c2234 module:overlay(1) -from:0x020c1118 kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c1118 kind:load to:0x020c5b68 module:overlay(25) from:0x020c111c kind:load to:0x020c22ac module:overlay(1) -from:0x020c1120 kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c1120 kind:load to:0x020c5b68 module:overlay(25) from:0x020c1124 kind:load to:0x020c2324 module:overlay(1) -from:0x020c1128 kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c1128 kind:load to:0x020c5b68 module:overlay(25) from:0x020c112c kind:load to:0x020c239c module:overlay(1) -from:0x020c1130 kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c1130 kind:load to:0x020c5b68 module:overlay(25) from:0x020c1134 kind:load to:0x020c2414 module:overlay(1) -from:0x020c1138 kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c1138 kind:load to:0x020c5b68 module:overlay(25) from:0x020c113c kind:load to:0x020c248c module:overlay(1) -from:0x020c1140 kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c1140 kind:load to:0x020c5b68 module:overlay(25) from:0x020c114c kind:load to:0x020c3bf4 module:overlay(1) from:0x020c1224 kind:load to:0x020c2f4c module:overlay(1) from:0x020c1338 kind:load to:0x020c2fc4 module:overlay(1) from:0x020c1410 kind:load to:0x020c3490 module:overlay(1) from:0x020c1524 kind:load to:0x020c3508 module:overlay(1) from:0x020c1590 kind:load to:0x020c4701 module:overlay(1) -from:0x020c1594 kind:load to:0x020c5bd4 module:overlay(18) from:0x020c159c kind:load to:0x020c2550 module:overlay(1) from:0x020c1608 kind:load to:0x020c4701 module:overlay(1) -from:0x020c160c kind:load to:0x020c5c10 module:overlay(18) from:0x020c1614 kind:load to:0x020c2628 module:overlay(1) from:0x020c1680 kind:load to:0x020c4701 module:overlay(1) -from:0x020c1684 kind:load to:0x020c5bd4 module:overlay(18) from:0x020c168c kind:load to:0x020c273c module:overlay(1) from:0x020c16f8 kind:load to:0x020c4701 module:overlay(1) -from:0x020c16fc kind:load to:0x020c5c10 module:overlay(18) from:0x020c1718 kind:load to:0x020c1528 add:0x1400 module:overlay(1) -from:0x020c171c kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c171c kind:load to:0x020c5b68 module:overlay(25) from:0x020c1720 kind:load to:0x020c29a0 module:overlay(1) -from:0x020c1724 kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c1724 kind:load to:0x020c5b68 module:overlay(25) from:0x020c1728 kind:load to:0x020c2a18 module:overlay(1) -from:0x020c172c kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c172c kind:load to:0x020c5b68 module:overlay(25) from:0x020c1730 kind:load to:0x020c2a90 module:overlay(1) -from:0x020c1734 kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c1734 kind:load to:0x020c5b68 module:overlay(25) from:0x020c18a4 kind:load to:0x020c4700 module:overlay(1) from:0x020c1930 kind:load to:0x020c4700 module:overlay(1) from:0x020c19c0 kind:load to:0x020c4700 module:overlay(1) from:0x020c19d4 kind:load to:0x020c2d34 module:overlay(1) -from:0x020c19d8 kind:load to:0x020c5b8c module:overlay(18) from:0x020c19dc kind:load to:0x020c2cac module:overlay(1) -from:0x020c19e0 kind:load to:0x020c5b84 module:overlay(18) from:0x020c1a98 kind:load to:0x020c280c module:overlay(1) from:0x020c1b48 kind:load to:0x020c280c module:overlay(1) from:0x020c1bb4 kind:load to:0x020c4701 module:overlay(1) -from:0x020c1bb8 kind:load to:0x020c5bac module:overlay(18) from:0x020c1bbc kind:load to:0x020d22ea module:overlay(19) from:0x020c1bc0 kind:load to:0x020c2dec module:overlay(1) from:0x020c1c2c kind:load to:0x020c4701 module:overlay(1) -from:0x020c1c30 kind:load to:0x020c5bac module:overlay(18) from:0x020c1c34 kind:load to:0x020d22ea module:overlay(19) from:0x020c1c38 kind:load to:0x020c2e9c module:overlay(1) from:0x020c1e80 kind:load to:0x020c4701 module:overlay(1) from:0x020c1e88 kind:load to:0x020d22ea module:overlay(19) from:0x020c1e8c kind:load to:0x020c303c module:overlay(1) from:0x020c1ef8 kind:load to:0x020c4701 module:overlay(1) -from:0x020c1efc kind:load to:0x020c5b54 module:overlays(18,25) +from:0x020c1efc kind:load to:0x020c5b54 module:overlay(25) from:0x020c1f00 kind:load to:0x020d22ea module:overlay(19) from:0x020c1f04 kind:load to:0x020c31c0 module:overlay(1) from:0x020c20f8 kind:load to:0x020c4701 module:overlay(1) -from:0x020c20fc kind:load to:0x020c5bc4 module:overlay(18) from:0x020c2100 kind:load to:0x020d22ea module:overlay(19) from:0x020c2104 kind:load to:0x020c3308 module:overlay(1) from:0x020c2170 kind:load to:0x020c4701 module:overlay(1) -from:0x020c2174 kind:load to:0x020c5bc4 module:overlay(18) from:0x020c2178 kind:load to:0x020d22ea module:overlay(19) from:0x020c217c kind:load to:0x020c33cc module:overlay(1) from:0x020c2190 kind:load to:0x020c3490 module:overlay(1) -from:0x020c2194 kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c2194 kind:load to:0x020c5b68 module:overlay(25) from:0x020c2198 kind:load to:0x020c3508 module:overlay(1) -from:0x020c219c kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c219c kind:load to:0x020c5b68 module:overlay(25) from:0x020c21a0 kind:load to:0x020c2f4c module:overlay(1) -from:0x020c21a4 kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c21a4 kind:load to:0x020c5b68 module:overlay(25) from:0x020c21a8 kind:load to:0x020c2fc4 module:overlay(1) -from:0x020c21ac kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c21ac kind:load to:0x020c5b68 module:overlay(25) from:0x020c21b0 kind:load to:0x020c3218 module:overlay(1) -from:0x020c21b4 kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c21b4 kind:load to:0x020c5b68 module:overlay(25) from:0x020c21b8 kind:load to:0x020c3290 module:overlay(1) -from:0x020c21bc kind:load to:0x020c5b68 module:overlays(18,25) +from:0x020c21bc kind:load to:0x020c5b68 module:overlay(25) from:0x020c2580 kind:load to:0x020c35c8 module:overlay(1) -from:0x020c2584 kind:load to:0x020c5b74 module:overlays(18,25) +from:0x020c2584 kind:load to:0x020c5b74 module:overlay(25) from:0x020c2588 kind:load to:0x020c363c module:overlay(1) -from:0x020c258c kind:load to:0x020c5b4c module:overlays(18,20,25) +from:0x020c258c kind:load to:0x020c5b4c module:overlays(20,25) from:0x020c2590 kind:load to:0x020c3688 module:overlay(1) -from:0x020c2594 kind:load to:0x020c5b24 module:overlays(18,25) +from:0x020c2594 kind:load to:0x020c5b24 module:overlay(25) from:0x020c2598 kind:load to:0x020c36ac module:overlay(1) -from:0x020c259c kind:load to:0x020c5c08 module:overlay(18) from:0x020c25a0 kind:load to:0x020c37b4 module:overlay(1) -from:0x020c25a4 kind:load to:0x020c5c08 module:overlay(18) from:0x020c25a8 kind:load to:0x020c38c0 module:overlay(1) -from:0x020c25ac kind:load to:0x020c5b58 module:overlays(18,25) +from:0x020c25ac kind:load to:0x020c5b58 module:overlay(25) from:0x020c25b0 kind:load to:0x020c3918 module:overlay(1) -from:0x020c25b4 kind:load to:0x020c5b58 module:overlays(18,25) +from:0x020c25b4 kind:load to:0x020c5b58 module:overlay(25) from:0x020c2822 kind:thumb_call to:0x020b7430 module:overlay(1) from:0x020c2830 kind:load to:0x020c2fe0 module:overlay(1) from:0x020c2834 kind:load to:0x020c2fe4 module:overlay(1) diff --git a/config/eur/arm9/overlays/ov001/symbols.txt b/config/eur/arm9/overlays/ov001/symbols.txt index 62fb6b3b..e2cc6832 100644 --- a/config/eur/arm9/overlays/ov001/symbols.txt +++ b/config/eur/arm9/overlays/ov001/symbols.txt @@ -323,9 +323,9 @@ func_ov001_020be4e4 kind:function(thumb,size=0x1e) addr:0x020be4e4 func_ov001_020be504 kind:function(thumb,size=0xc) addr:0x020be504 func_ov001_020be510 kind:function(thumb,size=0xd8) addr:0x020be510 func_ov001_020be5e8 kind:function(thumb,size=0x80) addr:0x020be5e8 -_ZN24UnkStruct_ov000_02067bc419func_ov001_020be668Ev kind:function(thumb,size=0x70) addr:0x020be668 +_ZN24UnkStruct_ov000_020b504c19func_ov001_020be668Ev kind:function(thumb,size=0x70) addr:0x020be668 func_ov001_020be6d8 kind:function(thumb,size=0x1c) addr:0x020be6d8 -_ZN24UnkStruct_ov000_02067bc419func_ov001_020be6f4Ev kind:function(thumb,size=0xa8) addr:0x020be6f4 +_ZN24UnkStruct_ov000_020b504c19func_ov001_020be6f4Ev kind:function(thumb,size=0xa8) addr:0x020be6f4 func_ov001_020be79c kind:function(thumb,size=0x90) addr:0x020be79c func_ov001_020be82c kind:function(thumb,size=0x54) addr:0x020be82c func_ov001_020be880 kind:function(thumb,size=0x60) addr:0x020be880 diff --git a/config/eur/arm9/overlays/ov018/delinks.txt b/config/eur/arm9/overlays/ov018/delinks.txt index dc15cd39..caf99a17 100644 --- a/config/eur/arm9/overlays/ov018/delinks.txt +++ b/config/eur/arm9/overlays/ov018/delinks.txt @@ -3,3 +3,12 @@ .data start:0x020c5b20 end:0x020c5bc0 kind:data align:32 .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 + +src/018_StartUp/StartUpInitializers.cpp: + .text start:0x020c4e8c end:0x020c5b18 + .data start:0x020c5b84 end:0x020c5bc0 diff --git a/config/eur/arm9/overlays/ov018/relocs.txt b/config/eur/arm9/overlays/ov018/relocs.txt index 990fb3ba..341f4a38 100644 --- a/config/eur/arm9/overlays/ov018/relocs.txt +++ b/config/eur/arm9/overlays/ov018/relocs.txt @@ -42,7 +42,7 @@ from:0x020c4b18 kind:arm_call_thumb to:0x0202e820 module:main from:0x020c4b1c kind:arm_call to:0x020271b0 module:main from:0x020c4b38 kind:arm_call to:0x0202e864 module:main from:0x020c4b48 kind:arm_call to:0x0202e8f8 module:main -from:0x020c4b80 kind:load to:0x020443d8 module:main +from:0x020c4b80 kind:load to:0x020443d0 add:8 module:main from:0x020c4b8c kind:arm_call to:0x020c4b58 module:overlay(18) from:0x020c4b94 kind:arm_call to:0x02013b10 module:main from:0x020c4bc4 kind:arm_call to:0x020c4c1c module:overlay(18) @@ -73,7 +73,7 @@ from:0x020c4d44 kind:arm_call_thumb to:0x0201568c module:main from:0x020c4d4c kind:arm_call_thumb to:0x020154c4 module:main from:0x020c4d60 kind:arm_call to:0x0201bba4 module:main from:0x020c4d6c kind:arm_call to:0x0201b9a8 module:main -from:0x020c4d7c kind:load to:0x020c5b28 module:overlay(18) +from:0x020c4d7c kind:load to:0x020c5b20 add:8 module:overlay(18) from:0x020c4d80 kind:load to:0x0204a110 module:main from:0x020c4d84 kind:load to:0x020c5bc0 module:overlay(18) from:0x020c4d88 kind:load to:0x020c5b50 module:overlay(18) @@ -145,9 +145,9 @@ from:0x020c53cc kind:arm_call to:0x0201af10 module:main from:0x020c53e0 kind:arm_call to:0x0201a800 module:main from:0x020c53f8 kind:arm_call to:0x0201ba68 module:main from:0x020c5408 kind:arm_call to:0x0201667c module:main -from:0x020c5480 kind:load to:0x020440e8 module:main +from:0x020c5480 kind:load to:0x020440e0 add:8 module:main from:0x020c54b0 kind:arm_call to:0x02028c18 module:main -from:0x020c55a0 kind:load to:0x020442b4 module:main +from:0x020c55a0 kind:load to:0x020442ac add:8 module:main from:0x020c55d4 kind:arm_call to:0x02011f3c module:main from:0x020c55e0 kind:arm_call to:0x0201e6d0 module:main from:0x020c55f4 kind:arm_call to:0x02011f3c module:main diff --git a/config/eur/arm9/overlays/ov018/symbols.txt b/config/eur/arm9/overlays/ov018/symbols.txt index aa9b8fcb..2d05436a 100644 --- a/config/eur/arm9/overlays/ov018/symbols.txt +++ b/config/eur/arm9/overlays/ov018/symbols.txt @@ -1,72 +1,63 @@ -func_ov018_020c4840 kind:function(arm,size=0x30) addr:0x020c4840 -func_ov018_020c4870 kind:function(arm,size=0x34) addr:0x020c4870 -func_ov018_020c48a4 kind:function(arm,size=0x54) addr:0x020c48a4 -func_ov018_020c48f8 kind:function(arm,size=0x58) addr:0x020c48f8 -func_ov018_020c4950 kind:function(arm,size=0x30) addr:0x020c4950 -func_ov018_020c4980 kind:function(arm,size=0xdc) addr:0x020c4980 -func_ov018_020c4a5c kind:function(arm,size=0x6c) addr:0x020c4a5c -func_ov018_020c4ac8 kind:function(arm,size=0x14) addr:0x020c4ac8 -func_ov018_020c4adc kind:function(arm,size=0x2c) addr:0x020c4adc -func_ov018_020c4b08 kind:function(arm,size=0x50) addr:0x020c4b08 -func_ov018_020c4b58 kind:function(arm,size=0x2c) addr:0x020c4b58 -func_ov018_020c4b84 kind:function(arm,size=0x24) addr:0x020c4b84 -func_ov018_020c4ba8 kind:function(arm,size=0x54) addr:0x020c4ba8 -func_ov018_020c4bfc kind:function(arm,size=0x20) addr:0x020c4bfc -func_ov018_020c4c1c kind:function(arm,size=0x180) addr:0x020c4c1c -func_ov018_020c4d9c kind:function(arm,size=0xcc) addr:0x020c4d9c -func_ov018_020c4e68 kind:function(arm,size=0x4) addr:0x020c4e68 -func_ov018_020c4e6c kind:function(arm,size=0x20) addr:0x020c4e6c -func_ov018_020c4e8c kind:function(arm,size=0x30) addr:0x020c4e8c +_ZN8SysFault19func_ov018_020c4840Ev kind:function(arm,size=0x30) addr:0x020c4840 +_ZN18UnkStruct_02049a2cC1Ev kind:function(arm,size=0x34) addr:0x020c4870 +_ZN18UnkStruct_02049a2c19func_ov018_020c48a4Ei kind:function(arm,size=0x54) addr:0x020c48a4 +_ZN18UnkStruct_02049a2c19func_ov018_020c48f8Ev kind:function(arm,size=0x58) addr:0x020c48f8 +_ZN18UnkStruct_02049b18C1Ev kind:function(arm,size=0x30) addr:0x020c4950 +_ZN18UnkStruct_02011e1019func_ov018_020c4980Ev kind:function(arm,size=0xdc) addr:0x020c4980 +_ZN18UnkStruct_02011e1019func_ov018_020c4a5cEv kind:function(arm,size=0x6c) addr:0x020c4a5c +_ZN24UnkStruct_ov000_020b4ec4C1Ev kind:function(arm,size=0x14) addr:0x020c4ac8 +_ZN18UnkStruct_02049b80C1Ev kind:function(arm,size=0x2c) addr:0x020c4adc +_ZN21UnkStruct_02049b18_06C1Ev kind:function(arm,size=0x50) addr:0x020c4b08 +_ZN21UnkStruct_0204e64c_00C1Ev kind:function(arm,size=0x2c) addr:0x020c4b58 +_ZN18UnkStruct_0204e64cC1Ev kind:function(arm,size=0x24) addr:0x020c4b84 +_ZN18UnkStruct_02049a2c19func_ov018_020c4ba8Ev kind:function(arm,size=0x54) addr:0x020c4ba8 +_ZN15GameModeStartUpD1Ev kind:function(arm,size=0x20) addr:0x020c4bfc +_ZN15GameModeStartUpC1Ev kind:function(arm,size=0x180) addr:0x020c4c1c +_ZN15GameModeStartUp8vfunc_0CEv kind:function(arm,size=0xcc) addr:0x020c4d9c +_ZN15GameModeStartUp8vfunc_20Ev kind:function(arm,size=0x4) addr:0x020c4e68 +_ZN15GameModeStartUpD0Ev kind:function(arm,size=0x20) addr:0x020c4e6c +_Z19func_ov018_020c4e8cv kind:function(arm,size=0x30) addr:0x020c4e8c _ZN18UnkStruct_0204a060C1Ev kind:function(thumb,size=0x18) addr:0x020c4ebc -func_ov018_020c4ed4 kind:function(arm,size=0x24) addr:0x020c4ed4 -func_ov018_020c4ef8 kind:function(arm,size=0x68) addr:0x020c4ef8 -func_ov018_020c4f60 kind:function(arm,size=0x14) addr:0x020c4f60 -func_ov018_020c4f74 kind:function(arm,size=0xcc) addr:0x020c4f74 -func_ov018_020c5040 kind:function(arm,size=0x210) addr:0x020c5040 -func_ov018_020c5250 kind:function(arm,size=0xb0) addr:0x020c5250 -func_ov018_020c5300 kind:function(arm,size=0x54) addr:0x020c5300 -func_ov018_020c5354 kind:function(arm,size=0x2c) addr:0x020c5354 -func_ov018_020c5380 kind:function(arm,size=0x70) addr:0x020c5380 -func_ov018_020c53f0 kind:function(arm,size=0x9c) addr:0x020c53f0 -func_ov018_020c548c kind:function(arm,size=0x6c) addr:0x020c548c -func_ov018_020c54f8 kind:function(arm,size=0x74) addr:0x020c54f8 -func_ov018_020c556c kind:function(arm,size=0x38) addr:0x020c556c -func_ov018_020c55a4 kind:function(arm,size=0x70) addr:0x020c55a4 -func_ov018_020c5614 kind:function(arm,size=0x40) addr:0x020c5614 -func_ov018_020c5654 kind:function(arm,size=0x28) addr:0x020c5654 -func_ov018_020c567c kind:function(arm,size=0x9c) addr:0x020c567c -func_ov018_020c5718 kind:function(arm,size=0xa8) addr:0x020c5718 -func_ov018_020c57c0 kind:function(arm,size=0x3c) addr:0x020c57c0 -func_ov018_020c57fc kind:function(arm,size=0x18) addr:0x020c57fc -func_ov018_020c5814 kind:function(arm,size=0x28) addr:0x020c5814 -func_ov018_020c583c kind:function(arm,size=0x38) addr:0x020c583c -func_ov018_020c5874 kind:function(arm,size=0x8c) addr:0x020c5874 -func_ov018_020c5900 kind:function(arm,size=0x40) addr:0x020c5900 -func_ov018_020c5940 kind:function(arm,size=0x80) addr:0x020c5940 -func_ov018_020c59c0 kind:function(arm,size=0x84) addr:0x020c59c0 -func_ov018_020c5a44 kind:function(arm,size=0x30) addr:0x020c5a44 -func_ov018_020c5a74 kind:function(arm,size=0x34) addr:0x020c5a74 -func_ov018_020c5aa8 kind:function(arm,size=0x18) addr:0x020c5aa8 -func_ov018_020c5ac0 kind:function(arm,size=0x24) addr:0x020c5ac0 -func_ov018_020c5ae4 kind:function(arm,size=0x24) addr:0x020c5ae4 -func_ov018_020c5b08 kind:function(arm,size=0x10) addr:0x020c5b08 -data_ov018_020c5b24 kind:data(any) addr:0x020c5b24 ambiguous -data_ov018_020c5b28 kind:data(any) addr:0x020c5b28 -data_ov018_020c5b4c kind:data(any) addr:0x020c5b4c ambiguous -data_ov018_020c5b50 kind:data(any) addr:0x020c5b50 -data_ov018_020c5b54 kind:data(any) addr:0x020c5b54 ambiguous -data_ov018_020c5b58 kind:data(any) addr:0x020c5b58 ambiguous -data_ov018_020c5b64 kind:data(any) addr:0x020c5b64 -data_ov018_020c5b68 kind:data(any) addr:0x020c5b68 -data_ov018_020c5b74 kind:data(any) addr:0x020c5b74 ambiguous -data_ov018_020c5b78 kind:data(any) addr:0x020c5b78 -data_ov018_020c5b84 kind:data(any) addr:0x020c5b84 -data_ov018_020c5b8c kind:data(any) addr:0x020c5b8c -data_ov018_020c5b94 kind:data(any) addr:0x020c5b94 -data_ov018_020c5bac kind:data(any) addr:0x020c5bac -data_ov018_020c5bc0 kind:bss addr:0x020c5bc0 -data_ov018_020c5bc4 kind:bss addr:0x020c5bc4 -data_ov018_020c5bc8 kind:bss addr:0x020c5bc8 -data_ov018_020c5bd4 kind:bss addr:0x020c5bd4 -data_ov018_020c5c08 kind:bss addr:0x020c5c08 -data_ov018_020c5c10 kind:bss addr:0x020c5c10 +_ZN24UnkStruct_ov000_020b4eecC1Ev kind:function(arm,size=0x24) addr:0x020c4ed4 +_ZN24UnkStruct_ov000_020b4f84C1Ev kind:function(arm,size=0x68) addr:0x020c4ef8 +_ZN27UnkStruct_ov000_020b4f84_00D1Ev kind:function(arm,size=0x14) addr:0x020c4f60 +_ZN24UnkStruct_ov000_020b504cC1Ev kind:function(arm,size=0xcc) addr:0x020c4f74 +_ZN11SaveManagerC1Ev kind:function(arm,size=0x210) addr:0x020c5040 +_ZN18UnkStruct_0204a110C1Ev kind:function(arm,size=0xb0) addr:0x020c5250 +_ZN18UnkStruct_0204a11019func_ov018_020c5300Ev kind:function(arm,size=0x54) addr:0x020c5300 +_ZN18UnkStruct_0204e640C1Ev kind:function(arm,size=0x2c) addr:0x020c5354 +_ZN18UnkStruct_0204af1cC1Ev kind:function(arm,size=0x70) addr:0x020c5380 +_ZN18UnkStruct_0204e5f8C1Ev kind:function(arm,size=0x9c) addr:0x020c53f0 +_ZN23UnkStruct_0204a110_Sub3C1Ev kind:function(arm,size=0x6c) addr:0x020c548c +_ZN23UnkStruct_0204a110_Sub2C1Ev kind:function(arm,size=0x74) addr:0x020c54f8 +_ZN23UnkStruct_0204a110_Sub6C1Ev kind:function(arm,size=0x38) addr:0x020c556c +_ZN23UnkStruct_0204a110_Sub7C1Ev kind:function(arm,size=0x70) addr:0x020c55a4 +_ZN23UnkStruct_0204a110_Sub8C1Ev kind:function(arm,size=0x40) addr:0x020c5614 +_ZN18UnkStruct_02049f04C1Ev kind:function(arm,size=0x28) addr:0x020c5654 +_ZN24UnkStruct_ov000_020b50c0C1Ev kind:function(arm,size=0x9c) addr:0x020c567c +_ZN24UnkStruct_ov000_020b50c019func_ov018_020c5718Ev kind:function(arm,size=0xa8) addr:0x020c5718 +_ZN24UnkStruct_ov000_020b5340C1Ev kind:function(arm,size=0x3c) addr:0x020c57c0 +_ZN24UnkStruct_ov000_020b534019func_ov018_020c57fcEv kind:function(arm,size=0x18) addr:0x020c57fc +_ZN24UnkStruct_ov000_020b5300C1Ev kind:function(arm,size=0x28) addr:0x020c5814 +_ZN24UnkStruct_ov000_020b530019func_ov018_020c583cEi kind:function(arm,size=0x38) addr:0x020c583c +_ZN24UnkStruct_ov000_020b51b8C1Ev kind:function(arm,size=0x8c) addr:0x020c5874 +_ZN24UnkStruct_ov000_020b51b8D1Ev kind:function(arm,size=0x40) addr:0x020c5900 +_ZN24UnkStruct_ov000_020b51b819func_ov018_020c5940Ev kind:function(arm,size=0x80) addr:0x020c5940 +_ZN24UnkStruct_ov000_020b5214C1Ev kind:function(arm,size=0x84) addr:0x020c59c0 +_ZN24UnkStruct_ov000_020b52b4C1Ev kind:function(arm,size=0x30) addr:0x020c5a44 +_ZN24UnkStruct_ov000_020b52e8C1Ev kind:function(arm,size=0x34) addr:0x020c5a74 +_ZN24UnkStruct_ov000_020b52e8D1Ev kind:function(arm,size=0x18) addr:0x020c5aa8 +_ZN24UnkStruct_ov018_020c5ac0C1Ev kind:function(arm,size=0x24) addr:0x020c5ac0 +_ZN24UnkStruct_ov018_020c5ac06CreateEv kind:function(arm,size=0x24) addr:0x020c5ae4 +_ZN24UnkStruct_ov018_020c5ac011SetInstanceEv kind:function(arm,size=0x10) addr:0x020c5b08 +_ZTV15GameModeStartUp kind:data(any) addr:0x020c5b20 +@1618 kind:data(any) addr:0x020c5b50 local +@1619 kind:data(any) addr:0x020c5b64 local +@1620 kind:data(any) addr:0x020c5b68 local +@1621 kind:data(any) addr:0x020c5b78 local +@1676 kind:data(any) addr:0x020c5b84 local +@1845 kind:data(any) addr:0x020c5b8c local +data_ov018_020c5bc0 kind:bss(size=0x1) addr:0x020c5bc0 local +_ZGVZN18UnkStruct_02049a2c19func_ov018_020c4ba8EvE19data_ov018_020c5bd4 kind:bss addr:0x020c5bc4 local +@978 kind:bss addr:0x020c5bc8 local +_ZZN18UnkStruct_02049a2c19func_ov018_020c4ba8EvE19data_ov018_020c5bd4 kind:bss(size=0x34) addr:0x020c5bd4 local diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 064e1539..8c335b34 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -175,7 +175,7 @@ func_0200375c kind:function(arm,size=0x44) addr:0x0200375c func_020037a0 kind:function(arm,size=0x20) addr:0x020037a0 func_020037c0 kind:function(arm,size=0x1c) addr:0x020037c0 func_020037dc kind:function(arm,size=0x40) addr:0x020037dc -func_0200381c kind:function(arm,size=0x80) addr:0x0200381c +_ZN24UnkStruct_ov000_020b50c013func_0200381cEPKcii kind:function(arm,size=0x80) addr:0x0200381c func_0200389c kind:function(arm,size=0x1a0) addr:0x0200389c func_02003a3c kind:function(arm,size=0x18) addr:0x02003a3c func_02003a54 kind:function(arm,size=0x10) addr:0x02003a54 @@ -345,7 +345,7 @@ func_02007314 kind:function(arm,size=0x3c) addr:0x02007314 func_02007350 kind:function(arm,size=0x10) addr:0x02007350 func_02007360 kind:function(arm,size=0x10) addr:0x02007360 func_02007370 kind:function(arm,size=0x3c) addr:0x02007370 -func_020073ac kind:function(arm,size=0x24) addr:0x020073ac +_ZN18UnkStruct_0204a09013func_020073acEi kind:function(arm,size=0x24) addr:0x020073ac func_020073d0 kind:function(arm,size=0x60) addr:0x020073d0 func_02007430 kind:function(arm,size=0x68) addr:0x02007430 func_02007498 kind:function(arm,size=0x110) addr:0x02007498 @@ -601,11 +601,11 @@ func_02011c04 kind:function(arm,size=0x40) addr:0x02011c04 func_02011c44 kind:function(arm,size=0x24) addr:0x02011c44 func_02011c68 kind:function(arm,size=0x138) addr:0x02011c68 func_02011da0 kind:function(arm,size=0x70) addr:0x02011da0 -_Z6SysNewP18UnkStruct_02011e10ii kind:function(arm,size=0x94) addr:0x02011e10 +_Z6SysNewP23UnkStruct_02011e10_Sub1ii kind:function(arm,size=0x94) addr:0x02011e10 _Z9SysDeletePv kind:function(arm,size=0x6c) addr:0x02011ea4 _Z13func_02011f10i kind:function(arm,size=0x20) addr:0x02011f10 _Z13func_02011f30i kind:function(arm,size=0xc) addr:0x02011f30 -_ZN9SysObjectnwEmjj kind:function(arm,size=0xb8) addr:0x02011f3c +_Znwmjj kind:function(arm,size=0xb8) addr:0x02011f3c _ZN9SysObjectdlEPv kind:function(arm,size=0xc) addr:0x02011ff4 _ZN9SysObjectdaEPv kind:function(arm,size=0xc) addr:0x02012000 func_0201200c kind:function(arm,size=0x15c) addr:0x0201200c @@ -653,7 +653,7 @@ func_020132dc kind:function(arm,size=0x78) addr:0x020132dc func_02013354 kind:function(arm,size=0x1c) addr:0x02013354 _ZN18UnkStruct_02049a2c13func_02013370Ei kind:function(arm,size=0x24) addr:0x02013370 _ZN18UnkStruct_02049a2c3RunEv kind:function(arm,size=0x390) addr:0x02013394 -func_02013724 kind:function(arm,size=0x18) addr:0x02013724 +_ZN18UnkStruct_02049a2c13func_02013724EPv kind:function(arm,size=0x18) addr:0x02013724 func_0201373c kind:function(arm,size=0x18) addr:0x0201373c func_02013754 kind:function(arm,size=0x14) addr:0x02013754 func_02013768 kind:function(arm,size=0x60) addr:0x02013768 @@ -664,7 +664,7 @@ 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 -func_02013b10 kind:function(arm,size=0x14) addr:0x02013b10 +_ZN21UnkStruct_02049b18_00C1Ev kind:function(arm,size=0x14) addr:0x02013b10 func_02013b24 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 @@ -703,7 +703,7 @@ func_020145b0 kind:function(arm,size=0x80) addr:0x020145b0 func_02014630 kind:function(arm,size=0x58) addr:0x02014630 func_02014688 kind:function(arm,size=0x7c) addr:0x02014688 func_02014704 kind:function(arm,size=0x28) addr:0x02014704 -func_0201472c kind:function(arm,size=0x4c) addr:0x0201472c +_ZN21UnkStruct_02049a2c_1CC1Ev kind:function(arm,size=0x4c) addr:0x0201472c func_02014778 kind:function(arm,size=0x14) addr:0x02014778 func_0201478c kind:function(arm,size=0x1c) addr:0x0201478c func_020147a8 kind:function(arm,size=0x1c) addr:0x020147a8 @@ -716,7 +716,7 @@ func_02014878 kind:function(thumb,size=0x58) addr:0x02014878 func_020148d0 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 -func_02014994 kind:function(thumb,size=0x7c) addr:0x02014994 +_ZN14OverlayManager13func_02014994Ei kind:function(thumb,size=0x7c) addr:0x02014994 func_02014a10 kind:function(arm,size=0x24) addr:0x02014a10 func_02014a34 kind:function(arm,size=0xcc) addr:0x02014a34 func_02014b00 kind:function(arm,size=0x54) addr:0x02014b00 @@ -769,7 +769,7 @@ func_0201552c kind:function(thumb,size=0x8) addr:0x0201552c func_02015534 kind:function(thumb,size=0x4) addr:0x02015534 func_02015538 kind:function(thumb,size=0x18) addr:0x02015538 func_02015550 kind:function(thumb,size=0x1c) addr:0x02015550 -func_0201556c kind:function(thumb,size=0x1c) addr:0x0201556c +_ZN32UnkStruct_ov000_020b4f84_00_BaseD2Ev kind:function(thumb,size=0x1c) addr:0x0201556c func_02015588 kind:function(thumb,size=0x24) addr:0x02015588 func_020155ac kind:function(thumb,size=0x2a) addr:0x020155ac func_020155d8 kind:function(thumb,size=0x18) addr:0x020155d8 @@ -808,7 +808,7 @@ func_02016028 kind:function(arm,size=0x134) addr:0x02016028 func_0201615c kind:function(arm,size=0xf4) addr:0x0201615c func_02016250 kind:function(arm,size=0xe0) addr:0x02016250 func_02016330 kind:function(arm,size=0x54) addr:0x02016330 -func_02016384 kind:function(arm,size=0x80) addr:0x02016384 +_ZN6Random4InitEv kind:function(arm,size=0x80) addr:0x02016384 func_02016404 kind:function(thumb,size=0x18) addr:0x02016404 func_0201641c kind:function(thumb,size=0x30) addr:0x0201641c func_0201644c kind:function(thumb,size=0x34) addr:0x0201644c @@ -853,7 +853,7 @@ func_020170ac kind:function(arm,size=0xac) addr:0x020170ac func_02017158 kind:function(arm,size=0x38) addr:0x02017158 func_02017190 kind:function(arm,size=0x54) addr:0x02017190 _ZN10UnkSystem513func_020171e4Ev kind:function(arm,size=0x4c) addr:0x020171e4 -func_02017230 kind:function(arm,size=0x16c) addr:0x02017230 +_ZN9UnkResultC1EPKc kind:function(arm,size=0x16c) addr:0x02017230 _ZN10UnkSystem5C1EPKcS1_S1_ kind:function(arm,size=0x184) addr:0x0201739c _ZN10UnkSystem513func_02017520EPKcS1_S1_ kind:function(arm,size=0x140) addr:0x02017520 func_02017660 kind:function(arm,size=0x1c) addr:0x02017660 @@ -961,8 +961,8 @@ func_02018b90 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 -func_02018c78 kind:function(arm,size=0x18) addr:0x02018c78 -func_02018c90 kind:function(arm,size=0xa4) addr:0x02018c90 +_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 func_02018d78 kind:function(arm,size=0x174) addr:0x02018d78 func_02018eec kind:function(arm,size=0xac) addr:0x02018eec @@ -1007,7 +1007,7 @@ func_0201a710 kind:function(arm,size=0x18) addr:0x0201a710 func_0201a728 kind:function(arm,size=0x44) addr:0x0201a728 func_0201a76c kind:function(arm,size=0x4c) addr:0x0201a76c func_0201a7b8 kind:function(arm,size=0x48) addr:0x0201a7b8 -func_0201a800 kind:function(arm,size=0x7c) addr:0x0201a800 +_ZN18UnkStruct_0204af1c13func_0201a800Ev kind:function(arm,size=0x7c) addr:0x0201a800 func_0201a87c kind:function(arm,size=0xf8) addr:0x0201a87c func_0201a974 kind:function(arm,size=0xd0) addr:0x0201a974 _ZN18UnkStruct_0204af1c13func_0201aa44EPvS0_iS0_ kind:function(arm,size=0x48) addr:0x0201aa44 @@ -1018,8 +1018,8 @@ func_0201adac kind:function(arm,size=0x50) addr:0x0201adac func_0201adfc kind:function(arm,size=0xb0) addr:0x0201adfc func_0201aeac kind:function(arm,size=0x10) addr:0x0201aeac func_0201aebc kind:function(arm,size=0x10) addr:0x0201aebc -func_0201aecc kind:function(arm,size=0x44) addr:0x0201aecc -func_0201af10 kind:function(arm,size=0x60) addr:0x0201af10 +_ZN21UnkStruct_0204af1c_00C1Ev kind:function(arm,size=0x44) addr:0x0201aecc +_ZN21UnkStruct_0204af1c_0013func_0201af10Ei kind:function(arm,size=0x60) addr:0x0201af10 func_0201af70 kind:function(arm,size=0x4c) addr:0x0201af70 func_0201afbc kind:function(arm,size=0xc8) addr:0x0201afbc func_0201b084 kind:function(arm,size=0x4c) addr:0x0201b084 @@ -1034,24 +1034,24 @@ func_0201b5c8 kind:function(arm,size=0x15c) addr:0x0201b5c8 func_0201b724 kind:function(arm,size=0x8c) addr:0x0201b724 func_0201b7b0 kind:function(arm,size=0x1b4) addr:0x0201b7b0 func_0201b964 kind:function(arm,size=0x44) addr:0x0201b964 -func_0201b9a8 kind:function(arm,size=0x34) addr:0x0201b9a8 +_ZN18UnkStruct_0204e5f813func_0201b9a8EPv kind:function(arm,size=0x34) addr:0x0201b9a8 func_0201b9dc kind:function(arm,size=0x40) addr:0x0201b9dc func_0201ba1c kind:function(arm,size=0x20) addr:0x0201ba1c _ZN24UnkStruct_0204a060_Base2C1Ev kind:function(arm,size=0x2c) addr:0x0201ba3c -_ZN24UnkStruct_0204a060_Base213func_0201ba68Ev kind:function(arm,size=0x2c) addr:0x0201ba68 +_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 -_ZN24UnkStruct_0204a060_Base213func_0201baccEv kind:function(arm,size=0x18) addr:0x0201bacc +_ZN23UnkStruct_0204a060_BaseD1Ev kind:function(arm,size=0x18) addr:0x0201bacc _ZN24UnkStruct_0204a060_Base28vfunc_08Ei kind:function(arm,size=0x8) addr:0x0201bae4 -_ZN23UnkStruct_0204a060_BaseC1Ev kind:function(arm,size=0x4c) addr:0x0201baec -_ZN23UnkStruct_0204a060_Base13func_0201bb38Ev kind:function(arm,size=0x4c) addr:0x0201bb38 -_ZN23UnkStruct_0204a060_Base13func_0201bb84Ev kind:function(arm,size=0x20) addr:0x0201bb84 -_ZN23UnkStruct_0204a060_Base13func_0201bba4Ev kind:function(arm,size=0x28) addr:0x0201bba4 +_ZN23UnkStruct_0204a060_BaseC2Ev kind:function(arm,size=0x4c) addr:0x0201baec +_ZN23UnkStruct_0204a060_BaseC1Ev kind:function(arm,size=0x4c) addr:0x0201bb38 +_ZN23UnkStruct_0204a060_Base13func_0201bb84Eiii kind:function(arm,size=0x20) addr:0x0201bb84 +_ZN23UnkStruct_0204a060_Base13func_0201bba4Eii kind:function(arm,size=0x28) addr:0x0201bba4 _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_BaseD1Ev kind:function(arm,size=0x14) addr:0x0201bd90 +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 func_0201bdd0 kind:function(arm,size=0x38) addr:0x0201bdd0 @@ -1077,7 +1077,7 @@ 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 func_0201c3a4 kind:function(arm,size=0xac) addr:0x0201c3a4 -func_0201c450 kind:function(thumb,size=0x10) addr:0x0201c450 +_ZN23UnkStruct_0204a110_Sub5C1Ev kind:function(thumb,size=0x10) addr:0x0201c450 func_0201c460 kind:function(thumb,size=0x34) addr:0x0201c460 func_0201c494 kind:function(arm,size=0x14) addr:0x0201c494 func_0201c4a8 kind:function(arm,size=0x30) addr:0x0201c4a8 @@ -1088,7 +1088,7 @@ func_0201c6cc kind:function(thumb,size=0x6e) addr:0x0201c6cc func_0201c73c kind:function(arm,size=0x44) addr:0x0201c73c func_0201c780 kind:function(arm,size=0x84) addr:0x0201c780 func_0201c804 kind:function(arm,size=0x8c) addr:0x0201c804 -func_0201c890 kind:function(thumb,size=0x40) addr:0x0201c890 +_ZN23UnkStruct_0204a110_Sub213func_0201c890Eiiiii kind:function(thumb,size=0x40) addr:0x0201c890 func_0201c8d0 kind:function(thumb,size=0x94) addr:0x0201c8d0 func_0201c964 kind:function(thumb,size=0x16) addr:0x0201c964 func_0201c97c kind:function(thumb,size=0x2) addr:0x0201c97c @@ -1104,7 +1104,7 @@ func_0201cb7c kind:function(arm,size=0x148) addr:0x0201cb7c func_0201ccc4 kind:function(arm,size=0xa4) addr:0x0201ccc4 func_0201cd68 kind:function(arm,size=0x4) addr:0x0201cd68 func_0201cd6c kind:function(arm,size=0x14) addr:0x0201cd6c -func_0201cd80 kind:function(arm,size=0x58) addr:0x0201cd80 +_ZN23UnkStruct_0204a110_Sub4C1Ev kind:function(arm,size=0x58) addr:0x0201cd80 func_0201cdd8 kind:function(arm,size=0x88) addr:0x0201cdd8 func_0201ce60 kind:function(arm,size=0x40) addr:0x0201ce60 func_0201cea0 kind:function(arm,size=0x38) addr:0x0201cea0 @@ -1140,7 +1140,7 @@ _ZN13UnkSubStruct113func_0201eaa0Ev kind:function(arm,size=0x14) addr:0x0201eaa0 func_0201eab4 kind:function(arm,size=0x70) addr:0x0201eab4 func_0201eb24 kind:function(arm,size=0x14) addr:0x0201eb24 func_0201eb38 kind:function(arm,size=0x14) addr:0x0201eb38 -func_0201eb4c kind:function(arm,size=0x60) addr:0x0201eb4c +_ZN26UnkStruct_0204a110_Sub7_08C1Ev kind:function(arm,size=0x60) addr:0x0201eb4c func_0201ebac kind:function(arm,size=0x4c) addr:0x0201ebac func_0201ebf8 kind:function(arm,size=0x38) addr:0x0201ebf8 func_0201ec30 kind:function(arm,size=0x8) addr:0x0201ec30 @@ -2545,11 +2545,11 @@ data_0204409c kind:data(any) addr:0x0204409c data_020440a0 kind:data(any) addr:0x020440a0 data_020440b0 kind:data(any) addr:0x020440b0 data_020440c4 kind:data(any) addr:0x020440c4 -data_020440e8 kind:data(any) addr:0x020440e8 +_ZTV21UnkStruct_0204e5f8_1C kind:data(any) addr:0x020440e0 _ZTV24UnkStruct_0204a060_Base2 kind:data(any) addr:0x020440ec _ZTV23UnkStruct_0204a060_Base kind:data(any) addr:0x02044100 data_0204411c kind:data(any) addr:0x0204411c -data_020442b4 kind:data(any) addr:0x020442b4 +_ZTV23UnkStruct_0204a110_Sub6 kind:data(any) addr:0x020442ac data_020442c4 kind:data(any) addr:0x020442c4 data_020442d4 kind:data(any) addr:0x020442d4 data_020442e4 kind:data(any) addr:0x020442e4 @@ -2564,7 +2564,7 @@ data_02044390 kind:data(any) addr:0x02044390 data_0204439c kind:data(any) addr:0x0204439c data_020443a8 kind:data(any) addr:0x020443a8 data_020443c0 kind:data(any) addr:0x020443c0 -data_020443d8 kind:data(any) addr:0x020443d8 +_ZTV21UnkStruct_0204e64c_00 kind:data(any) addr:0x020443d0 data_020443e8 kind:data(any) addr:0x020443e8 data_02044408 kind:data(any) addr:0x02044408 data_02044410 kind:data(any) addr:0x02044410 diff --git a/config/jp/arm9/delinks.txt b/config/jp/arm9/delinks.txt index 1ac852ef..c685fb98 100644 --- a/config/jp/arm9/delinks.txt +++ b/config/jp/arm9/delinks.txt @@ -10,6 +10,9 @@ src/Main/Main.cpp: .text start:0x02000800 end:0x02000bdc +src/Main/System/SysNew.cpp: + .text start:0x02011e10 end:0x0201200c + src/Main/System/OverlayManager.cpp: .text start:0x02014800 end:0x02014948 diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 142a390d..8583eace 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -187,7 +187,7 @@ func_ov000_0205a688 kind:function(arm,size=0x30) addr:0x0205a688 func_ov000_0205a6b8 kind:function(arm,size=0x30) addr:0x0205a6b8 func_ov000_0205a6e8 kind:function(arm,size=0x28) addr:0x0205a6e8 func_ov000_0205a710 kind:function(arm,size=0x3c) addr:0x0205a710 -func_ov000_0205a74c kind:function(arm,size=0x20) addr:0x0205a74c +_ZN29UnkStruct_ov000_020b4ec4_BaseC2Ev kind:function(arm,size=0x20) addr:0x0205a74c func_ov000_0205a76c kind:function(arm,size=0x54) addr:0x0205a76c func_ov000_0205a7c0 kind:function(arm,size=0x30) addr:0x0205a7c0 func_ov000_0205a7f0 kind:function(arm,size=0x18) addr:0x0205a7f0 @@ -678,10 +678,10 @@ func_ov000_020679e4 kind:function(arm,size=0xf0) addr:0x020679e4 func_ov000_02067ad4 kind:function(arm,size=0x6c) addr:0x02067ad4 func_ov000_02067b40 kind:function(arm,size=0x14) addr:0x02067b40 func_ov000_02067b54 kind:function(arm,size=0x10) addr:0x02067b54 -func_ov000_02067b64 kind:function(arm,size=0x34) addr:0x02067b64 +_ZN27UnkStruct_ov000_020b4f84_00C1Ev kind:function(arm,size=0x34) addr:0x02067b64 func_ov000_02067b98 kind:function(arm,size=0x4c) addr:0x02067b98 func_ov000_02067be4 kind:function(arm,size=0x20) addr:0x02067be4 -func_ov000_02067c04 kind:function(arm,size=0x98) addr:0x02067c04 +_ZN24UnkStruct_ov000_020b4f8419func_ov000_0206667cEii kind:function(arm,size=0x98) addr:0x02067c04 func_ov000_02067c9c kind:function(arm,size=0x40) addr:0x02067c9c func_ov000_02067cdc kind:function(arm,size=0x24) addr:0x02067cdc func_ov000_02067d00 kind:function(arm,size=0x14) addr:0x02067d00 @@ -711,8 +711,8 @@ _ZN25UnkSystem1_ov000_Derived18vfunc_10Ev kind:function(arm,size=0x34) addr:0x02 func_ov000_02068a44 kind:function(arm,size=0xc0) addr:0x02068a44 func_ov000_02068b04 kind:function(arm,size=0x14) addr:0x02068b04 func_ov000_02068b18 kind:function(arm,size=0x60) addr:0x02068b18 -func_ov000_02068b78 kind:function(arm,size=0x11c) addr:0x02068b78 -func_ov000_02068c94 kind:function(arm,size=0xb8) addr:0x02068c94 +_ZN29UnkStruct_ov000_020b504c_Sub3C1Ei kind:function(arm,size=0x11c) addr:0x02068b78 +_ZN29UnkStruct_ov000_020b504c_Sub319func_ov000_020676f8EPKci kind:function(arm,size=0xb8) addr:0x02068c94 func_ov000_02068d4c kind:function(arm,size=0x54) addr:0x02068d4c func_ov000_02068da0 kind:function(arm,size=0xdc) addr:0x02068da0 func_ov000_02068e7c kind:function(arm,size=0x90) addr:0x02068e7c @@ -723,7 +723,7 @@ func_ov000_02069040 kind:function(arm,size=0x7c) addr:0x02069040 func_ov000_020690bc kind:function(arm,size=0x40) addr:0x020690bc func_ov000_020690fc kind:function(arm,size=0x54) addr:0x020690fc _ZN24UnkStruct_ov000_02067bc419func_ov000_02067bb4Ei kind:function(arm,size=0x10) addr:0x02069150 -_ZN24UnkStruct_ov000_02067bc419func_ov000_02067bc4Ei kind:function(arm,size=0x1c) addr:0x02069160 +_ZN24UnkStruct_ov000_020b504c19func_ov000_02067bc4Ei kind:function(arm,size=0x1c) addr:0x02069160 func_ov000_0206917c kind:function(arm,size=0x10) addr:0x0206917c func_ov000_0206918c kind:function(arm,size=0x8) addr:0x0206918c func_ov000_02069194 kind:function(arm,size=0x8) addr:0x02069194 @@ -731,8 +731,8 @@ func_ov000_0206919c kind:function(arm,size=0x8) addr:0x0206919c func_ov000_020691a4 kind:function(arm,size=0x98) addr:0x020691a4 func_ov000_0206923c kind:function(arm,size=0x4) addr:0x0206923c func_ov000_02069240 kind:function(arm,size=0x5c) addr:0x02069240 -_ZN24UnkStruct_ov000_02067bc419func_ov000_02067cf8EiiPNS_10UnkStruct1E kind:function(arm,size=0x168) addr:0x0206929c -_ZN24UnkStruct_ov000_02067bc419func_ov000_02067e60Ehi kind:function(arm,size=0xfc) addr:0x02069404 +_ZN24UnkStruct_ov000_020b504c19func_ov000_02067cf8EiiPN24UnkStruct_ov000_02067bc410UnkStruct1E kind:function(arm,size=0x168) addr:0x0206929c +_ZN24UnkStruct_ov000_020b504c19func_ov000_02067e60Ehi kind:function(arm,size=0xfc) addr:0x02069404 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 @@ -812,7 +812,7 @@ func_ov000_0206baac kind:function(arm,size=0x24) addr:0x0206baac func_ov000_0206bad0 kind:function(arm,size=0x94) addr:0x0206bad0 func_ov000_0206bb64 kind:function(arm,size=0xc) addr:0x0206bb64 func_ov000_0206bb70 kind:function(arm,size=0xc) addr:0x0206bb70 -func_ov000_0206bb7c kind:function(arm,size=0x24) addr:0x0206bb7c +_ZN24UnkStruct_ov000_020b50c019func_ov000_0206a5d8Ei kind:function(arm,size=0x24) addr:0x0206bb7c func_ov000_0206bba0 kind:function(arm,size=0xa8) addr:0x0206bba0 _ZN24UnkStruct_ov000_020b50c019func_ov000_0206a6a4Ei kind:function(arm,size=0x60) addr:0x0206bc48 func_ov000_0206bca8 kind:function(arm,size=0x3c) addr:0x0206bca8 @@ -843,7 +843,7 @@ func_ov000_0206c538 kind:function(arm,size=0x34) addr:0x0206c538 func_ov000_0206c56c kind:function(arm,size=0xcc) addr:0x0206c56c func_ov000_0206c638 kind:function(arm,size=0xac) addr:0x0206c638 func_ov000_0206c6e4 kind:function(arm,size=0x1e4) addr:0x0206c6e4 -func_ov000_0206c8c8 kind:function(arm,size=0x28) addr:0x0206c8c8 +_ZN27UnkStruct_ov000_020b51b8_00C1EPv kind:function(arm,size=0x28) addr:0x0206c8c8 func_ov000_0206c8f0 kind:function(arm,size=0x1c) addr:0x0206c8f0 func_ov000_0206c90c kind:function(arm,size=0x80) addr:0x0206c90c func_ov000_0206c98c kind:function(arm,size=0x160) addr:0x0206c98c @@ -851,7 +851,7 @@ func_ov000_0206caec kind:function(arm,size=0xe0) addr:0x0206caec func_ov000_0206cbcc kind:function(arm,size=0x60) addr:0x0206cbcc func_ov000_0206cc2c kind:function(arm,size=0x364) addr:0x0206cc2c func_ov000_0206cf90 kind:function(arm,size=0x78) addr:0x0206cf90 -func_ov000_0206d008 kind:function(arm,size=0x20) addr:0x0206d008 +_ZN27UnkStruct_ov000_020b51b8_04C1EPv kind:function(arm,size=0x20) addr:0x0206d008 func_ov000_0206d028 kind:function(arm,size=0xc) addr:0x0206d028 func_ov000_0206d034 kind:function(arm,size=0xc) addr:0x0206d034 func_ov000_0206d040 kind:function(arm,size=0x14) addr:0x0206d040 @@ -957,7 +957,7 @@ func_ov000_02070c18 kind:function(arm,size=0x34) addr:0x02070c18 func_ov000_02070c4c kind:function(arm,size=0x24) addr:0x02070c4c func_ov000_02070c70 kind:function(arm,size=0x24) addr:0x02070c70 func_ov000_02070c94 kind:function(arm,size=0x90) addr:0x02070c94 -func_ov000_02070d24 kind:function(arm,size=0x2c) addr:0x02070d24 +_ZN24UnkStruct_ov000_020b52b419func_ov000_0206f6acEv kind:function(arm,size=0x2c) addr:0x02070d24 func_ov000_02070d50 kind:function(arm,size=0x34) addr:0x02070d50 func_ov000_02070d84 kind:function(arm,size=0x48) addr:0x02070d84 func_ov000_02070dcc kind:function(arm,size=0x24) addr:0x02070dcc @@ -977,7 +977,7 @@ func_ov000_020715c4 kind:function(arm,size=0x28) addr:0x020715c4 func_ov000_020715ec kind:function(arm,size=0x10) addr:0x020715ec func_ov000_020715fc kind:function(arm,size=0x10) addr:0x020715fc func_ov000_0207160c kind:function(arm,size=0x6c) addr:0x0207160c -func_ov000_02071678 kind:function(arm,size=0x84) addr:0x02071678 +_ZN24UnkStruct_ov000_020b534019func_ov000_0206ffc0Ev kind:function(arm,size=0x84) addr:0x02071678 func_ov000_020716fc kind:function(arm,size=0x74) addr:0x020716fc func_ov000_02071770 kind:function(arm,size=0x1c) addr:0x02071770 func_ov000_0207178c kind:function(arm,size=0x30) addr:0x0207178c @@ -4020,10 +4020,10 @@ data_ov000_020b6848 kind:bss addr:0x020b6848 data_ov000_020b684c kind:bss addr:0x020b684c data_ov000_020b68a8 kind:bss addr:0x020b68a8 data_ov000_020b68bc kind:bss addr:0x020b68bc -data_ov000_020b68c0 kind:bss addr:0x020b68c0 +data_ov000_020b50c0 kind:bss addr:0x020b68c0 data_ov000_020b69a8 kind:bss addr:0x020b69a8 data_ov000_020b69ac kind:bss addr:0x020b69ac -data_ov000_020b69b8 kind:bss addr:0x020b69b8 +data_ov000_020b51b8 kind:bss addr:0x020b69b8 data_ov000_020b69c0 kind:bss addr:0x020b69c0 data_ov000_020b69c4 kind:bss addr:0x020b69c4 data_ov000_020b69c8 kind:bss addr:0x020b69c8 @@ -4035,10 +4035,10 @@ data_ov000_020b6ad8 kind:bss addr:0x020b6ad8 data_ov000_020b6adc kind:bss addr:0x020b6adc data_ov000_020b6ae8 kind:bss addr:0x020b6ae8 data_ov000_020b6afc kind:bss addr:0x020b6afc -data_ov000_020b6b00 kind:bss addr:0x020b6b00 +data_ov000_020b5300 kind:bss addr:0x020b6b00 data_ov000_020b6b40 kind:bss addr:0x020b6b40 data_ov000_020b6b44 kind:bss addr:0x020b6b44 -data_ov000_020b6b48 kind:bss addr:0x020b6b48 +data_ov000_020b5340 kind:bss addr:0x020b6b48 data_ov000_020b6b78 kind:bss addr:0x020b6b78 data_ov000_020b6b88 kind:bss addr:0x020b6b88 data_ov000_020b6b90 kind:bss addr:0x020b6b90 diff --git a/config/jp/arm9/overlays/ov001/relocs.txt b/config/jp/arm9/overlays/ov001/relocs.txt index 9fa77058..6fc58416 100644 --- a/config/jp/arm9/overlays/ov001/relocs.txt +++ b/config/jp/arm9/overlays/ov001/relocs.txt @@ -1646,7 +1646,7 @@ from:0x020bf8b6 kind:thumb_call to:0x020a2800 module:overlay(0) from:0x020bf8ca kind:thumb_call_arm to:0x0202a1c0 module:main from:0x020bf8e6 kind:thumb_call_arm to:0x020a28cc module:overlay(0) from:0x020bf8f0 kind:thumb_call_arm to:0x02011f3c module:main -from:0x020bf8f8 kind:thumb_call_arm to:0x020c6060 module:overlays(18,20,25) +from:0x020bf8f8 kind:thumb_call_arm to:0x020c6060 module:overlays(20,25) from:0x020bf900 kind:load to:0x0204b120 module:main from:0x020bf904 kind:load to:0x0204afac module:main from:0x020bf90e kind:thumb_call to:0x020148d4 module:main @@ -2327,117 +2327,113 @@ from:0x020c2498 kind:load to:0x020c417c module:overlays(2,4) from:0x020c254c kind:load to:0x020c4818 module:overlay(1) from:0x020c2550 kind:load to:0x020c41f4 module:overlay(1) from:0x020c26f0 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c26f4 kind:load to:0x020c73ec module:overlays(18,25) +from:0x020c26f4 kind:load to:0x020c73ec module:overlay(25) from:0x020c26fc kind:load to:0x020c3678 module:overlay(1) from:0x020c2768 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c276c kind:load to:0x020c73ec module:overlays(18,25) +from:0x020c276c kind:load to:0x020c73ec module:overlay(25) from:0x020c2774 kind:load to:0x020c3730 module:overlay(1) from:0x020c27e0 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c27e4 kind:load to:0x020c73ec module:overlays(18,25) +from:0x020c27e4 kind:load to:0x020c73ec module:overlay(25) from:0x020c27ec kind:load to:0x020c37e8 module:overlay(1) from:0x020c2858 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c285c kind:load to:0x020c73ec module:overlays(18,25) +from:0x020c285c kind:load to:0x020c73ec module:overlay(25) from:0x020c2864 kind:load to:0x020c38a0 module:overlay(1) from:0x020c28d0 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c28d4 kind:load to:0x020c73d4 module:overlays(18,25) +from:0x020c28d4 kind:load to:0x020c73d4 module:overlay(25) from:0x020c28dc kind:load to:0x020c3958 module:overlay(1) from:0x020c2948 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c294c kind:load to:0x020c73d4 module:overlays(18,25) +from:0x020c294c kind:load to:0x020c73d4 module:overlay(25) from:0x020c2954 kind:load to:0x020c39f0 module:overlay(1) from:0x020c2968 kind:load to:0x020c3a88 module:overlay(1) -from:0x020c296c kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c296c kind:load to:0x020c73a8 module:overlay(25) from:0x020c2970 kind:load to:0x020c3b00 module:overlay(1) -from:0x020c2974 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c2974 kind:load to:0x020c73a8 module:overlay(25) from:0x020c2978 kind:load to:0x020c3b78 module:overlay(1) -from:0x020c297c kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c297c kind:load to:0x020c73a8 module:overlay(25) from:0x020c2980 kind:load to:0x020c3bf0 module:overlay(1) -from:0x020c2984 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c2984 kind:load to:0x020c73a8 module:overlay(25) from:0x020c2988 kind:load to:0x020c3c68 module:overlay(1) -from:0x020c298c kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c298c kind:load to:0x020c73a8 module:overlay(25) from:0x020c2990 kind:load to:0x020c3ce0 module:overlay(1) -from:0x020c2994 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c2994 kind:load to:0x020c73a8 module:overlay(25) from:0x020c29a0 kind:load to:0x020c5448 module:overlay(1) from:0x020c2a78 kind:load to:0x020c47a0 module:overlay(1) from:0x020c2b8c kind:load to:0x020c4818 module:overlay(1) from:0x020c2c64 kind:load to:0x020c4ce4 module:overlay(1) from:0x020c2d78 kind:load to:0x020c4d5c module:overlay(1) from:0x020c2de4 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c2de8 kind:load to:0x020c7414 module:overlays(18,25) +from:0x020c2de8 kind:load to:0x020c7414 module:overlay(25) from:0x020c2df0 kind:load to:0x020c3da4 module:overlay(1) from:0x020c2e5c kind:load to:0x020c5f41 module:overlay(1) -from:0x020c2e60 kind:load to:0x020c7450 module:overlay(18) from:0x020c2e68 kind:load to:0x020c3e7c module:overlay(1) from:0x020c2ed4 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c2ed8 kind:load to:0x020c7414 module:overlays(18,25) +from:0x020c2ed8 kind:load to:0x020c7414 module:overlay(25) from:0x020c2ee0 kind:load to:0x020c3f90 module:overlay(1) from:0x020c2f4c kind:load to:0x020c5f41 module:overlay(1) -from:0x020c2f50 kind:load to:0x020c7450 module:overlay(18) from:0x020c2f6c kind:load to:0x020c417c module:overlays(2,4) -from:0x020c2f70 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c2f70 kind:load to:0x020c73a8 module:overlay(25) from:0x020c2f74 kind:load to:0x020c41f4 module:overlay(1) -from:0x020c2f78 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c2f78 kind:load to:0x020c73a8 module:overlay(25) from:0x020c2f7c kind:load to:0x020c426c module:overlay(1) -from:0x020c2f80 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c2f80 kind:load to:0x020c73a8 module:overlay(25) from:0x020c2f84 kind:load to:0x020c42e4 module:overlay(1) -from:0x020c2f88 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c2f88 kind:load to:0x020c73a8 module:overlay(25) from:0x020c30f8 kind:load to:0x020c5f40 module:overlay(1) from:0x020c3184 kind:load to:0x020c5f40 module:overlay(1) from:0x020c3214 kind:load to:0x020c5f40 module:overlay(1) from:0x020c3228 kind:load to:0x020c4588 module:overlay(1) -from:0x020c322c kind:load to:0x020c73cc module:overlays(18,25) +from:0x020c322c kind:load to:0x020c73cc module:overlay(25) from:0x020c3230 kind:load to:0x020c4500 module:overlay(1) -from:0x020c3234 kind:load to:0x020c73c4 module:overlays(18,25) +from:0x020c3234 kind:load to:0x020c73c4 module:overlay(25) from:0x020c32ec kind:load to:0x020c4060 module:overlay(1) from:0x020c339c kind:load to:0x020c4060 module:overlay(1) from:0x020c3408 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c340c kind:load to:0x020c73ec module:overlays(18,25) +from:0x020c340c kind:load to:0x020c73ec module:overlay(25) from:0x020c3410 kind:load to:0x020d3b2a module:overlay(19) from:0x020c3414 kind:load to:0x020c4640 module:overlay(1) from:0x020c3480 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c3484 kind:load to:0x020c73ec module:overlays(18,25) +from:0x020c3484 kind:load to:0x020c73ec module:overlay(25) from:0x020c3488 kind:load to:0x020d3b2a module:overlay(19) from:0x020c348c kind:load to:0x020c46f0 module:overlay(1) from:0x020c36d4 kind:load to:0x020c5f41 module:overlay(1) from:0x020c36dc kind:load to:0x020d3b2a module:overlay(19) from:0x020c36e0 kind:load to:0x020c4890 module:overlay(1) from:0x020c374c kind:load to:0x020c5f41 module:overlay(1) -from:0x020c3750 kind:load to:0x020c7394 module:overlays(18,25) +from:0x020c3750 kind:load to:0x020c7394 module:overlay(25) from:0x020c3754 kind:load to:0x020d3b2a module:overlay(19) from:0x020c3758 kind:load to:0x020c4a14 module:overlay(1) from:0x020c394c kind:load to:0x020c5f41 module:overlay(1) -from:0x020c3950 kind:load to:0x020c7404 module:overlays(18,25) +from:0x020c3950 kind:load to:0x020c7404 module:overlay(25) from:0x020c3954 kind:load to:0x020d3b2a module:overlay(19) from:0x020c3958 kind:load to:0x020c4b5c module:overlay(1) from:0x020c39c4 kind:load to:0x020c5f41 module:overlay(1) -from:0x020c39c8 kind:load to:0x020c7404 module:overlays(18,25) +from:0x020c39c8 kind:load to:0x020c7404 module:overlay(25) from:0x020c39cc kind:load to:0x020d3b2a module:overlay(19) from:0x020c39d0 kind:load to:0x020c4c20 module:overlay(1) from:0x020c39e4 kind:load to:0x020c4ce4 module:overlay(1) -from:0x020c39e8 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c39e8 kind:load to:0x020c73a8 module:overlay(25) from:0x020c39ec kind:load to:0x020c4d5c module:overlay(1) -from:0x020c39f0 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c39f0 kind:load to:0x020c73a8 module:overlay(25) from:0x020c39f4 kind:load to:0x020c47a0 module:overlay(1) -from:0x020c39f8 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c39f8 kind:load to:0x020c73a8 module:overlay(25) from:0x020c39fc kind:load to:0x020c4818 module:overlay(1) -from:0x020c3a00 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c3a00 kind:load to:0x020c73a8 module:overlay(25) from:0x020c3a04 kind:load to:0x020c4a6c module:overlay(1) -from:0x020c3a08 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c3a08 kind:load to:0x020c73a8 module:overlay(25) from:0x020c3a0c kind:load to:0x020c4ae4 module:overlay(1) -from:0x020c3a10 kind:load to:0x020c73a8 module:overlays(18,25) +from:0x020c3a10 kind:load to:0x020c73a8 module:overlay(25) from:0x020c3dd4 kind:load to:0x020c4e1c module:overlay(1) -from:0x020c3dd8 kind:load to:0x020c73b4 module:overlays(18,25) +from:0x020c3dd8 kind:load to:0x020c73b4 module:overlay(25) from:0x020c3ddc kind:load to:0x020c4e90 module:overlay(1) -from:0x020c3de0 kind:load to:0x020c738c module:overlays(18,25) +from:0x020c3de0 kind:load to:0x020c738c module:overlay(25) from:0x020c3de4 kind:load to:0x020c4edc module:overlay(1) -from:0x020c3de8 kind:load to:0x020c7364 module:overlays(18,25) +from:0x020c3de8 kind:load to:0x020c7364 module:overlay(25) from:0x020c3dec kind:load to:0x020c4f00 module:overlay(1) -from:0x020c3df0 kind:load to:0x020c7448 module:overlay(18) from:0x020c3df4 kind:load to:0x020c5008 module:overlay(1) -from:0x020c3df8 kind:load to:0x020c7448 module:overlay(18) from:0x020c3dfc kind:load to:0x020c5114 module:overlay(1) -from:0x020c3e00 kind:load to:0x020c7398 module:overlays(18,25) +from:0x020c3e00 kind:load to:0x020c7398 module:overlay(25) from:0x020c3e04 kind:load to:0x020c516c module:overlay(1) -from:0x020c3e08 kind:load to:0x020c7398 module:overlays(18,25) +from:0x020c3e08 kind:load to:0x020c7398 module:overlay(25) from:0x020c4076 kind:thumb_call to:0x020b8c58 module:overlay(1) from:0x020c4084 kind:load to:0x020c4820 module:overlay(1) from:0x020c4088 kind:load to:0x020c4824 module:overlay(1) diff --git a/config/jp/arm9/overlays/ov018/delinks.txt b/config/jp/arm9/overlays/ov018/delinks.txt index 3ad531da..de12f5e9 100644 --- a/config/jp/arm9/overlays/ov018/delinks.txt +++ b/config/jp/arm9/overlays/ov018/delinks.txt @@ -3,3 +3,12 @@ .data start:0x020c7360 end:0x020c7400 kind:data align:32 .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 + +src/018_StartUp/StartUpInitializers.cpp: + .text start:0x020c66ac end:0x020c7340 + .data start:0x020c73c4 end:0x020c7400 diff --git a/config/jp/arm9/overlays/ov018/relocs.txt b/config/jp/arm9/overlays/ov018/relocs.txt index 66764021..1b882221 100644 --- a/config/jp/arm9/overlays/ov018/relocs.txt +++ b/config/jp/arm9/overlays/ov018/relocs.txt @@ -42,7 +42,7 @@ from:0x020c6338 kind:arm_call_thumb to:0x0202fd50 module:main from:0x020c633c kind:arm_call to:0x020286e0 module:main from:0x020c6358 kind:arm_call to:0x0202fd94 module:main from:0x020c6368 kind:arm_call to:0x0202fe28 module:main -from:0x020c63a0 kind:load to:0x0204591c module:main +from:0x020c63a0 kind:load to:0x02045914 add:8 module:main from:0x020c63ac kind:arm_call to:0x020c6378 module:overlay(18) from:0x020c63b4 kind:arm_call to:0x02013b14 module:main from:0x020c63e4 kind:arm_call to:0x020c643c module:overlay(18) @@ -73,7 +73,7 @@ from:0x020c6564 kind:arm_call_thumb to:0x02015624 module:main from:0x020c656c kind:arm_call_thumb to:0x0201545c module:main from:0x020c6580 kind:arm_call to:0x0201b994 module:main from:0x020c658c kind:arm_call to:0x0201b798 module:main -from:0x020c659c kind:load to:0x020c7368 module:overlay(18) +from:0x020c659c kind:load to:0x020c7360 add:8 module:overlay(18) from:0x020c65a0 kind:load to:0x0204b690 module:main from:0x020c65a4 kind:load to:0x020c7400 module:overlay(18) from:0x020c65a8 kind:load to:0x020c7390 module:overlay(18) @@ -98,7 +98,7 @@ from:0x020c66d0 kind:load to:0x0204b164 module:main from:0x020c66d4 kind:load to:0x0204af1c module:main from:0x020c66d8 kind:load to:0x0204af04 module:main from:0x020c66e0 kind:thumb_call_arm to:0x0201b8dc module:main -from:0x020c66f0 kind:load to:0x0204558c module:main +from:0x020c66f0 kind:load to:0x02045584 add:8 module:main from:0x020c670c kind:arm_call to:0x0202a17c module:main from:0x020c6734 kind:arm_call to:0x0203e690 module:main from:0x020c6750 kind:arm_call to:0x02067c04 module:overlay(0) @@ -145,9 +145,9 @@ from:0x020c6bec kind:arm_call to:0x0201aea8 module:main from:0x020c6c00 kind:arm_call to:0x0201a798 module:main from:0x020c6c18 kind:arm_call to:0x0201b858 module:main from:0x020c6c28 kind:arm_call to:0x02016614 module:main -from:0x020c6ca0 kind:load to:0x0204562c module:main +from:0x020c6ca0 kind:load to:0x02045624 add:8 module:main from:0x020c6cd0 kind:arm_call to:0x0202a148 module:main -from:0x020c6dc0 kind:load to:0x020457f8 module:main +from:0x020c6dc0 kind:load to:0x020457f0 add:8 module:main from:0x020c6df4 kind:arm_call to:0x02011f3c module:main from:0x020c6e00 kind:arm_call to:0x0201e4c0 module:main from:0x020c6e14 kind:arm_call to:0x02011f3c module:main diff --git a/config/jp/arm9/overlays/ov018/symbols.txt b/config/jp/arm9/overlays/ov018/symbols.txt index 2bd107a9..59ed30e5 100644 --- a/config/jp/arm9/overlays/ov018/symbols.txt +++ b/config/jp/arm9/overlays/ov018/symbols.txt @@ -1,72 +1,63 @@ -func_ov018_020c6060 kind:function(arm,size=0x30) addr:0x020c6060 -func_ov018_020c6090 kind:function(arm,size=0x34) addr:0x020c6090 -func_ov018_020c60c4 kind:function(arm,size=0x54) addr:0x020c60c4 -func_ov018_020c6118 kind:function(arm,size=0x58) addr:0x020c6118 -func_ov018_020c6170 kind:function(arm,size=0x30) addr:0x020c6170 -func_ov018_020c61a0 kind:function(arm,size=0xdc) addr:0x020c61a0 -func_ov018_020c627c kind:function(arm,size=0x6c) addr:0x020c627c -func_ov018_020c62e8 kind:function(arm,size=0x14) addr:0x020c62e8 -func_ov018_020c62fc kind:function(arm,size=0x2c) addr:0x020c62fc -func_ov018_020c6328 kind:function(arm,size=0x50) addr:0x020c6328 -func_ov018_020c6378 kind:function(arm,size=0x2c) addr:0x020c6378 -func_ov018_020c63a4 kind:function(arm,size=0x24) addr:0x020c63a4 -func_ov018_020c63c8 kind:function(arm,size=0x54) addr:0x020c63c8 -func_ov018_020c641c kind:function(arm,size=0x20) addr:0x020c641c -func_ov018_020c643c kind:function(arm,size=0x180) addr:0x020c643c -func_ov018_020c65bc kind:function(arm,size=0xcc) addr:0x020c65bc -func_ov018_020c6688 kind:function(arm,size=0x4) addr:0x020c6688 -func_ov018_020c668c kind:function(arm,size=0x20) addr:0x020c668c -func_ov018_020c66ac kind:function(arm,size=0x30) addr:0x020c66ac -func_ov018_020c66dc kind:function(thumb,size=0x18) addr:0x020c66dc -func_ov018_020c66f4 kind:function(arm,size=0x24) addr:0x020c66f4 -func_ov018_020c6718 kind:function(arm,size=0x68) addr:0x020c6718 -func_ov018_020c6780 kind:function(arm,size=0x14) addr:0x020c6780 -func_ov018_020c6794 kind:function(arm,size=0xcc) addr:0x020c6794 -func_ov018_020c6860 kind:function(arm,size=0x210) addr:0x020c6860 -func_ov018_020c6a70 kind:function(arm,size=0xb0) addr:0x020c6a70 -func_ov018_020c6b20 kind:function(arm,size=0x54) addr:0x020c6b20 -func_ov018_020c6b74 kind:function(arm,size=0x2c) addr:0x020c6b74 -func_ov018_020c6ba0 kind:function(arm,size=0x70) addr:0x020c6ba0 -func_ov018_020c6c10 kind:function(arm,size=0x9c) addr:0x020c6c10 -func_ov018_020c6cac kind:function(arm,size=0x6c) addr:0x020c6cac -func_ov018_020c6d18 kind:function(arm,size=0x74) addr:0x020c6d18 -func_ov018_020c6d8c kind:function(arm,size=0x38) addr:0x020c6d8c -func_ov018_020c6dc4 kind:function(arm,size=0x70) addr:0x020c6dc4 -func_ov018_020c6e34 kind:function(arm,size=0x40) addr:0x020c6e34 -func_ov018_020c6e74 kind:function(arm,size=0x28) addr:0x020c6e74 -func_ov018_020c6e9c kind:function(arm,size=0x9c) addr:0x020c6e9c -func_ov018_020c6f38 kind:function(arm,size=0xa8) addr:0x020c6f38 -func_ov018_020c6fe0 kind:function(arm,size=0x3c) addr:0x020c6fe0 -func_ov018_020c701c kind:function(arm,size=0x18) addr:0x020c701c -func_ov018_020c7034 kind:function(arm,size=0x30) addr:0x020c7034 -func_ov018_020c7064 kind:function(arm,size=0x38) addr:0x020c7064 -func_ov018_020c709c kind:function(arm,size=0x8c) addr:0x020c709c -func_ov018_020c7128 kind:function(arm,size=0x40) addr:0x020c7128 -func_ov018_020c7168 kind:function(arm,size=0x80) addr:0x020c7168 -func_ov018_020c71e8 kind:function(arm,size=0x84) addr:0x020c71e8 -func_ov018_020c726c kind:function(arm,size=0x30) addr:0x020c726c -func_ov018_020c729c kind:function(arm,size=0x34) addr:0x020c729c -func_ov018_020c72d0 kind:function(arm,size=0x18) addr:0x020c72d0 -func_ov018_020c72e8 kind:function(arm,size=0x24) addr:0x020c72e8 -func_ov018_020c730c kind:function(arm,size=0x24) addr:0x020c730c -func_ov018_020c7330 kind:function(arm,size=0x10) addr:0x020c7330 -data_ov018_020c7364 kind:data(any) addr:0x020c7364 ambiguous -data_ov018_020c7368 kind:data(any) addr:0x020c7368 -data_ov018_020c738c kind:data(any) addr:0x020c738c ambiguous -data_ov018_020c7390 kind:data(any) addr:0x020c7390 -data_ov018_020c7394 kind:data(any) addr:0x020c7394 ambiguous -data_ov018_020c7398 kind:data(any) addr:0x020c7398 ambiguous -data_ov018_020c73a4 kind:data(any) addr:0x020c73a4 -data_ov018_020c73a8 kind:data(any) addr:0x020c73a8 -data_ov018_020c73b4 kind:data(any) addr:0x020c73b4 ambiguous -data_ov018_020c73b8 kind:data(any) addr:0x020c73b8 -data_ov018_020c73c4 kind:data(any) addr:0x020c73c4 -data_ov018_020c73cc kind:data(any) addr:0x020c73cc -data_ov018_020c73d4 kind:data(any) addr:0x020c73d4 ambiguous -data_ov018_020c73ec kind:data(any) addr:0x020c73ec ambiguous -data_ov018_020c7400 kind:bss addr:0x020c7400 -data_ov018_020c7404 kind:bss addr:0x020c7404 ambiguous -data_ov018_020c7408 kind:bss addr:0x020c7408 -data_ov018_020c7414 kind:bss addr:0x020c7414 -data_ov018_020c7448 kind:bss addr:0x020c7448 -data_ov018_020c7450 kind:bss addr:0x020c7450 +_ZN8SysFault19func_ov018_020c4840Ev kind:function(arm,size=0x30) addr:0x020c6060 +_ZN18UnkStruct_02049a2cC1Ev kind:function(arm,size=0x34) addr:0x020c6090 +_ZN18UnkStruct_02049a2c19func_ov018_020c48a4Ei kind:function(arm,size=0x54) addr:0x020c60c4 +_ZN18UnkStruct_02049a2c19func_ov018_020c48f8Ev kind:function(arm,size=0x58) addr:0x020c6118 +_ZN18UnkStruct_02049b18C1Ev kind:function(arm,size=0x30) addr:0x020c6170 +_ZN18UnkStruct_02011e1019func_ov018_020c4980Ev kind:function(arm,size=0xdc) addr:0x020c61a0 +_ZN18UnkStruct_02011e1019func_ov018_020c4a5cEv kind:function(arm,size=0x6c) addr:0x020c627c +_ZN24UnkStruct_ov000_020b4ec4C1Ev kind:function(arm,size=0x14) addr:0x020c62e8 +_ZN18UnkStruct_02049b80C1Ev kind:function(arm,size=0x2c) addr:0x020c62fc +_ZN21UnkStruct_02049b18_06C1Ev kind:function(arm,size=0x50) addr:0x020c6328 +_ZN21UnkStruct_0204e64c_00C1Ev kind:function(arm,size=0x2c) addr:0x020c6378 +_ZN18UnkStruct_0204e64cC1Ev kind:function(arm,size=0x24) addr:0x020c63a4 +_ZN18UnkStruct_02049a2c19func_ov018_020c4ba8Ev kind:function(arm,size=0x54) addr:0x020c63c8 +_ZN15GameModeStartUpD1Ev kind:function(arm,size=0x20) addr:0x020c641c +_ZN15GameModeStartUpC1Ev kind:function(arm,size=0x180) addr:0x020c643c +_ZN15GameModeStartUp8vfunc_0CEv kind:function(arm,size=0xcc) addr:0x020c65bc +_ZN15GameModeStartUp8vfunc_20Ev kind:function(arm,size=0x4) addr:0x020c6688 +_ZN15GameModeStartUpD0Ev kind:function(arm,size=0x20) addr:0x020c668c +_Z19func_ov018_020c4e8cv kind:function(arm,size=0x30) addr:0x020c66ac +_ZN18UnkStruct_0204a060C1Ev kind:function(thumb,size=0x18) addr:0x020c66dc +_ZN24UnkStruct_ov000_020b4eecC1Ev kind:function(arm,size=0x24) addr:0x020c66f4 +_ZN24UnkStruct_ov000_020b4f84C1Ev kind:function(arm,size=0x68) addr:0x020c6718 +_ZN27UnkStruct_ov000_020b4f84_00D1Ev kind:function(arm,size=0x14) addr:0x020c6780 +_ZN24UnkStruct_ov000_020b504cC1Ev kind:function(arm,size=0xcc) addr:0x020c6794 +_ZN11SaveManagerC1Ev kind:function(arm,size=0x210) addr:0x020c6860 +_ZN18UnkStruct_0204a110C1Ev kind:function(arm,size=0xb0) addr:0x020c6a70 +_ZN18UnkStruct_0204a11019func_ov018_020c5300Ev kind:function(arm,size=0x54) addr:0x020c6b20 +_ZN18UnkStruct_0204e640C1Ev kind:function(arm,size=0x2c) addr:0x020c6b74 +_ZN18UnkStruct_0204af1cC1Ev kind:function(arm,size=0x70) addr:0x020c6ba0 +_ZN18UnkStruct_0204e5f8C1Ev kind:function(arm,size=0x9c) addr:0x020c6c10 +_ZN23UnkStruct_0204a110_Sub3C1Ev kind:function(arm,size=0x6c) addr:0x020c6cac +_ZN23UnkStruct_0204a110_Sub2C1Ev kind:function(arm,size=0x74) addr:0x020c6d18 +_ZN23UnkStruct_0204a110_Sub6C1Ev kind:function(arm,size=0x38) addr:0x020c6d8c +_ZN23UnkStruct_0204a110_Sub7C1Ev kind:function(arm,size=0x70) addr:0x020c6dc4 +_ZN23UnkStruct_0204a110_Sub8C1Ev kind:function(arm,size=0x40) addr:0x020c6e34 +_ZN18UnkStruct_02049f04C1Ev kind:function(arm,size=0x28) addr:0x020c6e74 +_ZN24UnkStruct_ov000_020b50c0C1Ev kind:function(arm,size=0x9c) addr:0x020c6e9c +_ZN24UnkStruct_ov000_020b50c019func_ov018_020c5718Ev kind:function(arm,size=0xa8) addr:0x020c6f38 +_ZN24UnkStruct_ov000_020b5340C1Ev kind:function(arm,size=0x3c) addr:0x020c6fe0 +_ZN24UnkStruct_ov000_020b534019func_ov018_020c57fcEv kind:function(arm,size=0x18) addr:0x020c701c +_ZN24UnkStruct_ov000_020b5300C1Ev kind:function(arm,size=0x30) addr:0x020c7034 +_ZN24UnkStruct_ov000_020b530019func_ov018_020c583cEi kind:function(arm,size=0x38) addr:0x020c7064 +_ZN24UnkStruct_ov000_020b51b8C1Ev kind:function(arm,size=0x8c) addr:0x020c709c +_ZN24UnkStruct_ov000_020b51b8D1Ev kind:function(arm,size=0x40) addr:0x020c7128 +_ZN24UnkStruct_ov000_020b51b819func_ov018_020c5940Ev kind:function(arm,size=0x80) addr:0x020c7168 +_ZN24UnkStruct_ov000_020b5214C1Ev kind:function(arm,size=0x84) addr:0x020c71e8 +_ZN24UnkStruct_ov000_020b52b4C1Ev kind:function(arm,size=0x30) addr:0x020c726c +_ZN24UnkStruct_ov000_020b52e8C1Ev kind:function(arm,size=0x34) addr:0x020c729c +_ZN24UnkStruct_ov000_020b52e8D1Ev kind:function(arm,size=0x18) addr:0x020c72d0 +_ZN24UnkStruct_ov018_020c5ac0C1Ev kind:function(arm,size=0x24) addr:0x020c72e8 +_ZN24UnkStruct_ov018_020c5ac06CreateEv kind:function(arm,size=0x24) addr:0x020c730c +_ZN24UnkStruct_ov018_020c5ac011SetInstanceEv kind:function(arm,size=0x10) addr:0x020c7330 +_ZTV15GameModeStartUp kind:data(any) addr:0x020c7360 +@893 kind:data(any) addr:0x020c7390 local +@894 kind:data(any) addr:0x020c73a4 local +@895 kind:data(any) addr:0x020c73a8 local +@896 kind:data(any) addr:0x020c73b8 local +@1289 kind:data(any) addr:0x020c73c4 local +@1544 kind:data(any) addr:0x020c73cc local +data_ov018_020c5bc0 kind:bss(size=0x1) addr:0x020c7400 local +_ZGVZN18UnkStruct_02049a2c19func_ov018_020c4ba8EvE19data_ov018_020c5bd4 kind:bss addr:0x020c7404 local +@729 kind:bss addr:0x020c7408 local +_ZZN18UnkStruct_02049a2c19func_ov018_020c4ba8EvE19data_ov018_020c5bd4 kind:bss(size=0x34) addr:0x020c7414 local diff --git a/config/jp/arm9/symbols.txt b/config/jp/arm9/symbols.txt index 82c93b2f..d8955665 100644 --- a/config/jp/arm9/symbols.txt +++ b/config/jp/arm9/symbols.txt @@ -175,7 +175,7 @@ func_0200375c kind:function(arm,size=0x44) addr:0x0200375c func_020037a0 kind:function(arm,size=0x20) addr:0x020037a0 func_020037c0 kind:function(arm,size=0x1c) addr:0x020037c0 func_020037dc kind:function(arm,size=0x40) addr:0x020037dc -func_0200381c kind:function(arm,size=0x80) addr:0x0200381c +_ZN24UnkStruct_ov000_020b50c013func_0200381cEPKcii kind:function(arm,size=0x80) addr:0x0200381c func_0200389c kind:function(arm,size=0x1a0) addr:0x0200389c func_02003a3c kind:function(arm,size=0x18) addr:0x02003a3c func_02003a54 kind:function(arm,size=0x10) addr:0x02003a54 @@ -345,7 +345,7 @@ func_02007314 kind:function(arm,size=0x3c) addr:0x02007314 func_02007350 kind:function(arm,size=0x10) addr:0x02007350 func_02007360 kind:function(arm,size=0x10) addr:0x02007360 func_02007370 kind:function(arm,size=0x3c) addr:0x02007370 -func_020073ac kind:function(arm,size=0x24) addr:0x020073ac +_ZN18UnkStruct_0204a09013func_020073acEi kind:function(arm,size=0x24) addr:0x020073ac func_020073d0 kind:function(arm,size=0x60) addr:0x020073d0 func_02007430 kind:function(arm,size=0x68) addr:0x02007430 func_02007498 kind:function(arm,size=0x110) addr:0x02007498 @@ -601,13 +601,13 @@ func_02011c04 kind:function(arm,size=0x40) addr:0x02011c04 func_02011c44 kind:function(arm,size=0x24) addr:0x02011c44 func_02011c68 kind:function(arm,size=0x138) addr:0x02011c68 func_02011da0 kind:function(arm,size=0x70) addr:0x02011da0 -_Z6SysNewP18UnkStruct_02011e10ii kind:function(arm,size=0x94) addr:0x02011e10 +_Z6SysNewP23UnkStruct_02011e10_Sub1ii kind:function(arm,size=0x94) addr:0x02011e10 _Z9SysDeletePv kind:function(arm,size=0x6c) addr:0x02011ea4 _Z13func_02011f10i kind:function(arm,size=0x20) addr:0x02011f10 -func_02011f30 kind:function(arm,size=0xc) addr:0x02011f30 -_ZN9SysObjectnwEmjj kind:function(arm,size=0xb8) addr:0x02011f3c +_Z13func_02011f30i kind:function(arm,size=0xc) addr:0x02011f30 +_Znwmjj kind:function(arm,size=0xb8) addr:0x02011f3c _ZN9SysObjectdlEPv kind:function(arm,size=0xc) addr:0x02011ff4 -func_02012000 kind:function(arm,size=0xc) addr:0x02012000 +_ZN9SysObjectdaEPv kind:function(arm,size=0xc) addr:0x02012000 func_0201200c kind:function(arm,size=0x15c) addr:0x0201200c func_02012168 kind:function(arm,size=0x198) addr:0x02012168 func_02012300 kind:function(arm,size=0x3c) addr:0x02012300 @@ -653,10 +653,10 @@ func_020132dc kind:function(arm,size=0x78) addr:0x020132dc func_02013354 kind:function(arm,size=0x1c) addr:0x02013354 _ZN18UnkStruct_02049a2c13func_02013370Ei kind:function(arm,size=0x24) addr:0x02013370 _ZN18UnkStruct_02049a2c3RunEv kind:function(arm,size=0x394) addr:0x02013394 -func_02013728 kind:function(arm,size=0x18) addr:0x02013728 +_ZN18UnkStruct_02049a2c13func_02013724EPv kind:function(arm,size=0x18) addr:0x02013728 func_02013740 kind:function(arm,size=0x18) addr:0x02013740 func_02013758 kind:function(arm,size=0x14) addr:0x02013758 -func_0201376c kind:function(arm,size=0x60) addr:0x0201376c +func_02013768 kind:function(arm,size=0x60) addr:0x0201376c func_020137cc kind:function(arm,size=0x1c) addr:0x020137cc func_020137e8 kind:function(arm,size=0x5c) addr:0x020137e8 func_02013844 kind:function(arm,size=0xb4) addr:0x02013844 @@ -664,7 +664,7 @@ 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 -func_02013b14 kind:function(arm,size=0x14) addr:0x02013b14 +_ZN21UnkStruct_02049b18_00C1Ev kind:function(arm,size=0x14) addr:0x02013b14 func_02013b28 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 @@ -686,7 +686,7 @@ 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_020141e0 kind:function(thumb,size=0x3c) addr:0x020141e0 +func_020141dc 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 @@ -703,7 +703,7 @@ func_020145b0 kind:function(arm,size=0x80) addr:0x020145b4 func_02014630 kind:function(arm,size=0x58) addr:0x02014634 func_0201468c kind:function(arm,size=0x7c) addr:0x0201468c func_02014704 kind:function(arm,size=0x28) addr:0x02014708 -func_02014730 kind:function(arm,size=0x4c) addr:0x02014730 +_ZN21UnkStruct_02049a2c_1CC1Ev kind:function(arm,size=0x4c) addr:0x02014730 func_0201477c kind:function(arm,size=0x14) addr:0x0201477c func_02014790 kind:function(arm,size=0x1c) addr:0x02014790 func_020147ac kind:function(arm,size=0x1c) addr:0x020147ac @@ -716,7 +716,7 @@ func_0201487c kind:function(thumb,size=0x58) addr:0x0201487c func_020148d4 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 -func_02014998 kind:function(thumb,size=0x7c) addr:0x02014998 +_ZN14OverlayManager13func_02014994Ei kind:function(thumb,size=0x7c) addr:0x02014998 func_02014a14 kind:function(arm,size=0x24) addr:0x02014a14 func_02014a38 kind:function(arm,size=0xcc) addr:0x02014a38 func_02014b04 kind:function(arm,size=0x54) addr:0x02014b04 @@ -736,7 +736,7 @@ func_02014ea4 kind:function(arm,size=0x5c) addr:0x02014ea4 func_02014f00 kind:function(arm,size=0x58) addr:0x02014f00 func_02014f58 kind:function(arm,size=0x18) addr:0x02014f58 func_02014f70 kind:function(arm,size=0x8) addr:0x02014f70 -func_02014f78 kind:function(arm,size=0x8) addr:0x02014f78 +func_02014fe0 kind:function(arm,size=0x8) addr:0x02014f78 func_02014f80 kind:function(arm,size=0xc) addr:0x02014f80 func_02014f8c kind:function(arm,size=0x14) addr:0x02014f8c func_02014fa0 kind:function(arm,size=0x28) addr:0x02014fa0 @@ -769,7 +769,7 @@ func_020154c4 kind:function(thumb,size=0x8) addr:0x020154c4 func_020154cc kind:function(thumb,size=0x4) addr:0x020154cc func_020154d0 kind:function(thumb,size=0x18) addr:0x020154d0 func_020154e8 kind:function(thumb,size=0x1c) addr:0x020154e8 -func_02015504 kind:function(thumb,size=0x1c) addr:0x02015504 +_ZN32UnkStruct_ov000_020b4f84_00_BaseD2Ev kind:function(thumb,size=0x1c) addr:0x02015504 func_02015520 kind:function(thumb,size=0x24) addr:0x02015520 func_02015544 kind:function(thumb,size=0x2a) addr:0x02015544 func_02015570 kind:function(thumb,size=0x18) addr:0x02015570 @@ -808,7 +808,7 @@ func_02015fc0 kind:function(arm,size=0x134) addr:0x02015fc0 func_020160f4 kind:function(arm,size=0xf4) addr:0x020160f4 func_020161e8 kind:function(arm,size=0xe0) addr:0x020161e8 func_020162c8 kind:function(arm,size=0x54) addr:0x020162c8 -func_0201631c kind:function(arm,size=0x80) addr:0x0201631c +_ZN6Random4InitEv kind:function(arm,size=0x80) addr:0x0201631c func_0201639c kind:function(thumb,size=0x18) addr:0x0201639c func_020163b4 kind:function(thumb,size=0x30) addr:0x020163b4 func_020163e4 kind:function(thumb,size=0x34) addr:0x020163e4 @@ -853,7 +853,7 @@ func_02017044 kind:function(arm,size=0xac) addr:0x02017044 func_02017158 kind:function(arm,size=0x38) addr:0x020170f0 func_02017128 kind:function(arm,size=0x54) addr:0x02017128 func_0201717c kind:function(arm,size=0x4c) addr:0x0201717c -func_020171c8 kind:function(arm,size=0x16c) addr:0x020171c8 +_ZN9UnkResultC1EPKc kind:function(arm,size=0x16c) addr:0x020171c8 func_02017334 kind:function(arm,size=0x184) addr:0x02017334 func_020174b8 kind:function(arm,size=0x140) addr:0x020174b8 func_020175f8 kind:function(arm,size=0x1c) addr:0x020175f8 @@ -912,7 +912,7 @@ _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_02018350 kind:function(thumb,size=0x8) addr:0x02018350 +func_020183b8 kind:function(thumb,size=0x8) addr:0x02018350 func_02018358 kind:function(thumb,size=0x14) addr:0x02018358 _ZN18UnkStruct_0204a06013func_020183d4EbPvi kind:function(thumb,size=0x50) addr:0x0201836c func_020183bc kind:function(thumb,size=0x14) addr:0x020183bc @@ -961,8 +961,8 @@ func_02018b28 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 -func_02018c10 kind:function(arm,size=0x18) addr:0x02018c10 -func_02018c28 kind:function(arm,size=0xa4) addr:0x02018c28 +_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 func_02018d10 kind:function(arm,size=0x174) addr:0x02018d10 func_02018e84 kind:function(arm,size=0xac) addr:0x02018e84 @@ -1007,7 +1007,7 @@ func_0201a6a8 kind:function(arm,size=0x18) addr:0x0201a6a8 func_0201a6c0 kind:function(arm,size=0x44) addr:0x0201a6c0 func_0201a704 kind:function(arm,size=0x4c) addr:0x0201a704 func_0201a750 kind:function(arm,size=0x48) addr:0x0201a750 -func_0201a798 kind:function(arm,size=0x7c) addr:0x0201a798 +_ZN18UnkStruct_0204af1c13func_0201a800Ev kind:function(arm,size=0x7c) addr:0x0201a798 func_0201a814 kind:function(arm,size=0xf8) addr:0x0201a814 func_0201a90c kind:function(arm,size=0xd0) addr:0x0201a90c _ZN18UnkStruct_0204af1c13func_0201aa44EPvS0_iS0_ kind:function(arm,size=0x48) addr:0x0201a9dc @@ -1018,8 +1018,8 @@ func_0201ad44 kind:function(arm,size=0x50) addr:0x0201ad44 func_0201ad94 kind:function(arm,size=0xb0) addr:0x0201ad94 func_0201ae44 kind:function(arm,size=0x10) addr:0x0201ae44 func_0201ae54 kind:function(arm,size=0x10) addr:0x0201ae54 -func_0201ae64 kind:function(arm,size=0x44) addr:0x0201ae64 -func_0201aea8 kind:function(arm,size=0x60) addr:0x0201aea8 +_ZN21UnkStruct_0204af1c_00C1Ev kind:function(arm,size=0x44) addr:0x0201ae64 +_ZN21UnkStruct_0204af1c_0013func_0201af10Ei kind:function(arm,size=0x60) addr:0x0201aea8 func_0201af08 kind:function(arm,size=0x4c) addr:0x0201af08 func_0201af54 kind:function(arm,size=0xc8) addr:0x0201af54 func_0201b01c kind:function(thumb,size=0x2a) addr:0x0201b01c @@ -1034,27 +1034,27 @@ func_0201b3b8 kind:function(arm,size=0x15c) addr:0x0201b3b8 func_0201b514 kind:function(arm,size=0x8c) addr:0x0201b514 func_0201b5a0 kind:function(arm,size=0x1b4) addr:0x0201b5a0 func_0201b754 kind:function(arm,size=0x44) addr:0x0201b754 -func_0201b798 kind:function(arm,size=0x34) addr:0x0201b798 +_ZN18UnkStruct_0204e5f813func_0201b9a8EPv kind:function(arm,size=0x34) addr:0x0201b798 func_0201b7cc kind:function(arm,size=0x40) addr:0x0201b7cc func_0201b80c kind:function(arm,size=0x20) addr:0x0201b80c _ZN24UnkStruct_0204a060_Base2C1Ev kind:function(arm,size=0x2c) addr:0x0201b82c -_ZN24UnkStruct_0204a060_Base213func_0201ba68Ev kind:function(arm,size=0x2c) addr:0x0201b858 +_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 -_ZN24UnkStruct_0204a060_Base213func_0201baccEv kind:function(arm,size=0x18) addr:0x0201b8bc +_ZN23UnkStruct_0204a060_BaseD1Ev kind:function(arm,size=0x18) addr:0x0201b8bc _ZN24UnkStruct_0204a060_Base28vfunc_08Ei kind:function(arm,size=0x8) addr:0x0201b8d4 -_ZN23UnkStruct_0204a060_BaseC1Ev kind:function(arm,size=0x4c) addr:0x0201b8dc -_ZN23UnkStruct_0204a060_Base13func_0201bb38Ev kind:function(arm,size=0x4c) addr:0x0201b928 -_ZN23UnkStruct_0204a060_Base13func_0201bb84Ev kind:function(arm,size=0x20) addr:0x0201b974 -_ZN23UnkStruct_0204a060_Base13func_0201bba4Ev kind:function(arm,size=0x28) addr:0x0201b994 +_ZN23UnkStruct_0204a060_BaseC2Ev kind:function(arm,size=0x4c) addr:0x0201b8dc +_ZN23UnkStruct_0204a060_BaseC1Ev kind:function(arm,size=0x4c) addr:0x0201b928 +_ZN23UnkStruct_0204a060_Base13func_0201bb84Eiii kind:function(arm,size=0x20) addr:0x0201b974 +_ZN23UnkStruct_0204a060_Base13func_0201bba4Eii kind:function(arm,size=0x28) addr:0x0201b994 _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_BaseD1Ev kind:function(arm,size=0x14) addr:0x0201bb80 +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 -func_0201bbc0 kind:function(arm,size=0x38) addr:0x0201bbc0 +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 @@ -1077,7 +1077,7 @@ 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 func_0201c194 kind:function(arm,size=0xac) addr:0x0201c194 -func_0201c240 kind:function(thumb,size=0x10) addr:0x0201c240 +_ZN23UnkStruct_0204a110_Sub5C1Ev kind:function(thumb,size=0x10) addr:0x0201c240 func_0201c250 kind:function(thumb,size=0x34) addr:0x0201c250 func_0201c284 kind:function(arm,size=0x14) addr:0x0201c284 func_0201c298 kind:function(arm,size=0x30) addr:0x0201c298 @@ -1088,7 +1088,7 @@ func_0201c4bc kind:function(thumb,size=0x6e) addr:0x0201c4bc func_0201c52c kind:function(arm,size=0x44) addr:0x0201c52c func_0201c570 kind:function(arm,size=0x84) addr:0x0201c570 func_0201c5f4 kind:function(arm,size=0x8c) addr:0x0201c5f4 -func_0201c680 kind:function(thumb,size=0x40) addr:0x0201c680 +_ZN23UnkStruct_0204a110_Sub213func_0201c890Eiiiii kind:function(thumb,size=0x40) addr:0x0201c680 func_0201c6c0 kind:function(thumb,size=0x94) addr:0x0201c6c0 func_0201c754 kind:function(thumb,size=0x16) addr:0x0201c754 func_0201c76c kind:function(thumb,size=0x2) addr:0x0201c76c @@ -1104,7 +1104,7 @@ func_0201c96c kind:function(arm,size=0x148) addr:0x0201c96c func_0201cab4 kind:function(arm,size=0xa4) addr:0x0201cab4 func_0201cb58 kind:function(arm,size=0x4) addr:0x0201cb58 func_0201cb5c kind:function(arm,size=0x14) addr:0x0201cb5c -func_0201cb70 kind:function(arm,size=0x58) addr:0x0201cb70 +_ZN23UnkStruct_0204a110_Sub4C1Ev kind:function(arm,size=0x58) addr:0x0201cb70 func_0201cbc8 kind:function(arm,size=0x88) addr:0x0201cbc8 func_0201cc50 kind:function(arm,size=0x40) addr:0x0201cc50 func_0201cc90 kind:function(arm,size=0x38) addr:0x0201cc90 @@ -1140,7 +1140,7 @@ _ZN13UnkSubStruct113func_0201eaa0Ev kind:function(arm,size=0x14) addr:0x0201e890 func_0201e8a4 kind:function(arm,size=0x70) addr:0x0201e8a4 func_0201e914 kind:function(arm,size=0x14) addr:0x0201e914 func_0201e928 kind:function(arm,size=0x14) addr:0x0201e928 -func_0201e93c kind:function(arm,size=0x60) addr:0x0201e93c +_ZN26UnkStruct_0204a110_Sub7_08C1Ev kind:function(arm,size=0x60) addr:0x0201e93c func_0201e99c kind:function(arm,size=0x4c) addr:0x0201e99c func_0201e9e8 kind:function(arm,size=0x38) addr:0x0201e9e8 func_0201ea20 kind:function(arm,size=0x8) addr:0x0201ea20 @@ -1326,9 +1326,9 @@ func_02024808 kind:function(arm,size=0x78) addr:0x02024808 func_02024880 kind:function(arm,size=0x80) addr:0x02024880 func_02024900 kind:function(thumb,size=0xcc) addr:0x02024900 func_020249cc kind:function(arm,size=0x38) addr:0x020249cc -func_02024a04 kind:function(arm,size=0x38) addr:0x02024a04 +func_020234d4 kind:function(arm,size=0x38) addr:0x02024a04 GX_DispOff kind:function(arm,size=0x3c) addr:0x02024a3c -func_02024a78 kind:function(arm,size=0x44) addr:0x02024a78 +func_02023548 kind:function(arm,size=0x44) addr:0x02024a78 GX_SetGraphicsMode kind:function(arm,size=0x68) addr:0x02024abc GXS_SetGraphicsMode kind:function(arm,size=0x1c) addr:0x02024b24 SetBrightColor kind:function(arm,size=0x28) addr:0x02024b40 @@ -1469,12 +1469,12 @@ func_020276d8 kind:function(arm,size=0x10) addr:0x020276d8 func_020276e8 kind:function(arm,size=0x10) addr:0x020276e8 func_020276f8 kind:function(arm,size=0x10) addr:0x020276f8 func_02027708 kind:function(arm,size=0x18) addr:0x02027708 -func_02027720 kind:function(arm,size=0x88) addr:0x02027720 +func_020261f0 kind:function(arm,size=0x88) addr:0x02027720 func_020277a8 kind:function(arm,size=0x8c) addr:0x020277a8 func_02027834 kind:function(arm,size=0x48) addr:0x02027834 func_0202787c kind:function(arm,size=0x44) addr:0x0202787c func_020278c0 kind:function(arm,size=0x2c) addr:0x020278c0 -func_020278ec kind:function(arm,size=0x30) addr:0x020278ec +func_020263bc kind:function(arm,size=0x30) addr:0x020278ec func_0202791c kind:function(arm,size=0x30) addr:0x0202791c func_0202794c kind:function(arm,size=0x2c) addr:0x0202794c func_02027978 kind:function(arm,size=0x34) addr:0x02027978 @@ -1494,7 +1494,7 @@ func_02027c14 kind:function(arm,size=0x1c) addr:0x02027c14 func_02027c30 kind:function(arm,size=0x18) addr:0x02027c30 func_02027c48 kind:function(arm,size=0x18) addr:0x02027c48 func_02027c60 kind:function(arm,size=0x8) addr:0x02027c60 -func_02027c68 kind:function(arm,size=0x58) addr:0x02027c68 +func_02026738 kind:function(arm,size=0x58) addr:0x02027c68 func_02027cc0 kind:function(arm,size=0x30) addr:0x02027cc0 sscanf kind:function(arm,size=0x28) addr:0x02027cf0 vsscanf kind:function(arm,size=0x18) addr:0x02027d18 @@ -1519,7 +1519,7 @@ func_02028320 kind:function(arm,size=0x18) addr:0x02028320 func_02028338 kind:function(arm,size=0x30) addr:0x02028338 func_02028368 kind:function(arm,size=0x50) addr:0x02028368 func_020283b8 kind:function(arm,size=0x68) addr:0x020283b8 -func_02028420 kind:function(arm,size=0x28) addr:0x02028420 +func_02026ef0 kind:function(arm,size=0x28) addr:0x02028420 func_02028448 kind:function(arm,size=0x2c) addr:0x02028448 func_02028474 kind:function(arm,size=0x1c) addr:0x02028474 func_02028490 kind:function(arm,size=0xa8) addr:0x02028490 @@ -1532,7 +1532,7 @@ func_020285dc kind:function(arm,size=0x8) addr:0x020285dc func_020285e4 kind:function(arm,size=0x6c) addr:0x020285e4 func_02028650 kind:function(arm,size=0x4c) addr:0x02028650 func_0202869c kind:function(arm,size=0x44) addr:0x0202869c -func_020286e0 kind:function(arm,size=0x8) addr:0x020286e0 +func_020271b0 kind:function(arm,size=0x8) addr:0x020286e0 func_020286e8 kind:function(arm,size=0x18) addr:0x020286e8 func_02028700 kind:function(arm,size=0x28) addr:0x02028700 func_02028728 kind:function(arm,size=0x94) addr:0x02028728 @@ -1547,7 +1547,7 @@ func_02028a98 kind:function(arm,size=0x24) addr:0x02028a98 func_02028abc kind:function(arm,size=0x24) addr:0x02028abc func_02028ae0 kind:function(arm,size=0xc) addr:0x02028ae0 func_02028aec kind:function(arm,size=0x2c) addr:0x02028aec -func_02028b18 kind:function(arm,size=0x34) addr:0x02028b18 +func_020275e8 kind:function(arm,size=0x34) addr:0x02028b18 func_02028b4c kind:function(arm,size=0x1c) addr:0x02028b4c func_02028b68 kind:function(arm,size=0x1c) addr:0x02028b68 func_02027654 kind:function(arm,size=0x24) addr:0x02028b84 @@ -1558,12 +1558,12 @@ func_02028bdc kind:function(arm,size=0x20) addr:0x02028bdc func_02028bfc kind:function(thumb,size=0x44) addr:0x02028bfc func_02028c40 kind:function(thumb,size=0xb0) addr:0x02028c40 func_02028cf0 kind:function(thumb,size=0x4c) addr:0x02028cf0 -func_02028d3c kind:function(thumb,size=0xc) addr:0x02028d3c -func_02028d48 kind:function(thumb,size=0xc) addr:0x02028d48 +func_0202780c kind:function(thumb,size=0xc) addr:0x02028d3c +func_02027818 kind:function(thumb,size=0xc) addr:0x02028d48 func_02028d54 kind:function(thumb,size=0x9c) addr:0x02028d54 func_02028df0 kind:function(thumb,size=0x70) addr:0x02028df0 func_02028e60 kind:function(thumb,size=0xc) addr:0x02028e60 -func_02028e6c kind:function(thumb,size=0xc) addr:0x02028e6c +func_0202793c kind:function(thumb,size=0xc) addr:0x02028e6c func_02028e78 kind:function(thumb,size=0x44) addr:0x02028e78 func_02028ebc kind:function(arm,size=0x14) addr:0x02028ebc func_02028ed0 kind:function(arm,size=0x10) addr:0x02028ed0 @@ -1572,7 +1572,7 @@ func_02028ef0 kind:function(arm,size=0x14) addr:0x02028ef0 func_02028f04 kind:function(arm,size=0x8) addr:0x02028f04 func_02028f0c kind:function(arm,size=0x8) addr:0x02028f0c func_02028f14 kind:function(thumb,size=0x44) addr:0x02028f14 -func_02028f58 kind:function(arm,size=0x14) addr:0x02028f58 +func_02027a28 kind:function(arm,size=0x14) addr:0x02028f58 func_02028f6c kind:function(arm,size=0x74) addr:0x02028f6c func_02028fe0 kind:function(arm,size=0x14) addr:0x02028fe0 func_02028ff4 kind:function(arm,size=0x90) addr:0x02028ff4 @@ -1794,7 +1794,7 @@ func_0202e994 kind:function(arm,size=0x6c) addr:0x0202e994 func_0202ea00 kind:function(arm,size=0x8) addr:0x0202ea00 func_0202ea08 kind:function(arm,size=0x8) addr:0x0202ea08 func_0202d4e0 kind:function(arm,size=0x144) addr:0x0202ea10 -func_0202eb54 kind:function(arm,size=0x20) addr:0x0202eb54 +func_0202d624 kind:function(arm,size=0x20) addr:0x0202eb54 func_0202eb74 kind:function(arm,size=0x30) addr:0x0202eb74 func_0202d674 kind:function(arm,size=0x1c) addr:0x0202eba4 func_0202d690 kind:function(arm,size=0x3c) addr:0x0202ebc0 @@ -1817,16 +1817,16 @@ func_0202f7e0 kind:function(arm,size=0x280) addr:0x0202f7e0 func_0202fa60 kind:function(arm,size=0x40) addr:0x0202fa60 func_0202faa0 kind:function(arm,size=0x3c) addr:0x0202faa0 func_0202fadc kind:function(arm,size=0x274) addr:0x0202fadc -func_0202fd50 kind:function(thumb,size=0x44) addr:0x0202fd50 -func_0202fd94 kind:function(arm,size=0x94) addr:0x0202fd94 -func_0202fe28 kind:function(arm,size=0xf0) addr:0x0202fe28 +func_0202e820 kind:function(thumb,size=0x44) addr:0x0202fd50 +func_0202e864 kind:function(arm,size=0x94) addr:0x0202fd94 +func_0202e8f8 kind:function(arm,size=0xf0) addr:0x0202fe28 func_0202ff18 kind:function(arm,size=0x9c) addr:0x0202ff18 func_0202ffb4 kind:function(arm,size=0x4c) addr:0x0202ffb4 func_02030000 kind:function(arm,size=0x1c) addr:0x02030000 func_0203001c kind:function(arm,size=0x1ec) addr:0x0203001c func_02030208 kind:function(arm,size=0x11c) addr:0x02030208 func_02030324 kind:function(arm,size=0x18) addr:0x02030324 -func_0203033c kind:function(thumb,size=0x44) addr:0x0203033c +func_0202ee0c kind:function(thumb,size=0x44) addr:0x0203033c func_02030380 kind:function(arm,size=0x12c) addr:0x02030380 func_020304ac kind:function(arm,size=0x38) addr:0x020304ac func_020304e4 kind:function(arm,size=0x58) addr:0x020304e4 @@ -1856,9 +1856,9 @@ func_02030d34 kind:function(arm,size=0x34) addr:0x02030d34 func_02030d68 kind:function(arm,size=0x48) addr:0x02030d68 func_02030db0 kind:function(arm,size=0x54) addr:0x02030db0 func_02030e04 kind:function(arm,size=0x3c) addr:0x02030e04 -func_02030e40 kind:function(arm,size=0x18) addr:0x02030e40 +func_0202f910 kind:function(arm,size=0x18) addr:0x02030e40 func_02030e58 kind:function(arm,size=0x30) addr:0x02030e58 -func_02030e88 kind:function(arm,size=0x1c) addr:0x02030e88 +func_0202f958 kind:function(arm,size=0x1c) addr:0x02030e88 func_02030ea4 kind:function(arm,size=0x70) addr:0x02030ea4 func_02030f14 kind:function(arm,size=0x50) addr:0x02030f14 func_02030f64 kind:function(arm,size=0x2c) addr:0x02030f64 @@ -1875,7 +1875,7 @@ func_020313a8 kind:function(thumb,size=0x10) addr:0x020313a8 func_020313b8 kind:function(thumb,size=0x10) addr:0x020313b8 func_020313c8 kind:function(thumb,size=0x10) addr:0x020313c8 func_020313d8 kind:function(arm,size=0x8c) addr:0x020313d8 -func_02031464 kind:function(arm,size=0x6c) addr:0x02031464 +func_0202ff34 kind:function(arm,size=0x6c) addr:0x02031464 func_020314d0 kind:function(arm,size=0x6c) addr:0x020314d0 func_0203153c kind:function(arm,size=0x38) addr:0x0203153c func_02031574 kind:function(arm,size=0x78) addr:0x02031574 @@ -1914,7 +1914,7 @@ func_020322bc kind:function(arm,size=0x348) addr:0x020322bc func_02032604 kind:function(arm,size=0x1e4) addr:0x02032604 func_020312b8 kind:function(arm,size=0xe8) addr:0x020327e8 func_020328d0 kind:function(arm,size=0x14) addr:0x020328d0 -func_020328e4 kind:function(arm,size=0x138) addr:0x020328e4 +func_020313b4 kind:function(arm,size=0x138) addr:0x020328e4 func_02032a1c kind:function(arm,size=0xc) addr:0x02032a1c func_02032a28 kind:function(arm,size=0xc) addr:0x02032a28 func_02032a34 kind:function(arm,size=0x8c) addr:0x02032a34 @@ -1934,7 +1934,7 @@ func_02033164 kind:function(arm,size=0x50) addr:0x02033164 func_020331b4 kind:function(arm,size=0x144) addr:0x020331b4 func_020332f8 kind:function(arm,size=0x2c) addr:0x020332f8 func_02033324 kind:function(arm,size=0x54) addr:0x02033324 -func_02033378 kind:function(arm,size=0x10) addr:0x02033378 +func_02031e48 kind:function(arm,size=0x10) addr:0x02033378 func_02033388 kind:function(arm,size=0x10) addr:0x02033388 func_02033398 kind:function(arm,size=0x8c) addr:0x02033398 func_02033424 kind:function(arm,size=0x60) addr:0x02033424 @@ -1959,7 +1959,7 @@ func_02033b24 kind:function(arm,size=0x8c) addr:0x02033b24 func_02033bb0 kind:function(arm,size=0x14) addr:0x02033bb0 func_02033bc4 kind:function(arm,size=0xf0) addr:0x02033bc4 func_02033cb4 kind:function(arm,size=0x44) addr:0x02033cb4 -func_02033cf8 kind:function(arm,size=0x44) addr:0x02033cf8 +func_020327c8 kind:function(arm,size=0x44) addr:0x02033cf8 func_02033d3c kind:function(arm,size=0x40) addr:0x02033d3c func_02033d7c kind:function(arm,size=0x40) addr:0x02033d7c func_02033dbc kind:function(arm,size=0x3c) addr:0x02033dbc @@ -2560,17 +2560,17 @@ 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 -data_0204558c kind:data(any) addr:0x0204558c +_ZTV18UnkStruct_0204a060 kind:data(any) addr:0x02045584 data_020455a8 kind:data(any) addr:0x020455a8 data_020455e0 kind:data(any) addr:0x020455e0 data_020455e4 kind:data(any) addr:0x020455e4 data_020455f4 kind:data(any) addr:0x020455f4 data_02045608 kind:data(any) addr:0x02045608 -data_0204562c kind:data(any) addr:0x0204562c +_ZTV21UnkStruct_0204e5f8_1C kind:data(any) addr:0x02045624 data_02045638 kind:data(any) addr:0x02045638 data_0204564c kind:data(any) addr:0x0204564c data_02045660 kind:data(any) addr:0x02045660 -data_020457f8 kind:data(any) addr:0x020457f8 +_ZTV23UnkStruct_0204a110_Sub6 kind:data(any) addr:0x020457f0 data_02045808 kind:data(any) addr:0x02045808 data_02045818 kind:data(any) addr:0x02045818 data_02045828 kind:data(any) addr:0x02045828 @@ -2585,7 +2585,7 @@ data_020458d4 kind:data(any) addr:0x020458d4 data_020458e0 kind:data(any) addr:0x020458e0 data_020458ec kind:data(any) addr:0x020458ec data_02045904 kind:data(any) addr:0x02045904 -data_0204591c kind:data(any) addr:0x0204591c +_ZTV21UnkStruct_0204e64c_00 kind:data(any) addr:0x02045914 data_0204592c kind:data(any) addr:0x0204592c data_0204594c kind:data(any) addr:0x0204594c data_02045954 kind:data(any) addr:0x02045954 @@ -2742,7 +2742,7 @@ data_02049014 kind:bss addr:0x02049014 data_02049600 kind:bss addr:0x02049600 data_02049640 kind:bss addr:0x02049640 data_0204af00 kind:bss addr:0x0204af00 -data_0204af04 kind:bss addr:0x0204af04 +data_02049984 kind:bss addr:0x0204af04 data_0204af0c kind:bss addr:0x0204af0c data_0204af10 kind:bss addr:0x0204af10 data_0204999c kind:bss addr:0x0204af1c @@ -2759,7 +2759,7 @@ data_0204b0d2 kind:bss addr:0x0204b0d2 data_0204b0f4 kind:bss addr:0x0204b0f4 data_0204b0fc kind:bss addr:0x0204b0fc data_02049b80 kind:bss addr:0x0204b100 -data_0204b120 kind:bss addr:0x0204b120 +data_02049ba0 kind:bss addr:0x0204b120 data_0204b128 kind:bss addr:0x0204b128 data_0204b12c kind:bss addr:0x0204b12c data_0204b150 kind:bss addr:0x0204b150 @@ -2775,7 +2775,7 @@ data_0204b5d0 kind:bss addr:0x0204b5d0 data_0204b5d4 kind:bss addr:0x0204b5d4 data_0204a060 kind:bss addr:0x0204b5e0 data_0204a088 kind:bss addr:0x0204b608 -data_0204b610 kind:bss addr:0x0204b610 +data_0204a090 kind:bss addr:0x0204b610 data_0204a110 kind:bss addr:0x0204b690 data_0204b6a0 kind:bss addr:0x0204b6a0 data_0204ba00 kind:bss addr:0x0204ba00 @@ -2801,7 +2801,7 @@ data_0204f55c kind:bss addr:0x0204f55c data_0204f568 kind:bss addr:0x0204f568 data_0204fb68 kind:bss addr:0x0204fb68 data_0204fb6c kind:bss addr:0x0204fb6c -data_0204fb78 kind:bss addr:0x0204fb78 +data_0204e5f8 kind:bss addr:0x0204fb78 data_0204fb88 kind:bss addr:0x0204fb88 data_0204fb8c kind:bss addr:0x0204fb8c data_0204fbbc kind:bss addr:0x0204fbbc diff --git a/docs/overlays.md b/docs/overlays.md index 329d531d..8957e22a 100644 --- a/docs/overlays.md +++ b/docs/overlays.md @@ -8,8 +8,8 @@ Each overlay is tied to an index which is used to access the overlay in two diff ID | Internal Name | Index | Slot | Description ------|-------------------|---------|------|------------- -`000` | Second | `000` | | Core game engine -`001` | SceneInit | `001` | | +`000` | Second | `000` | `0` | Core game engine +`001` | SceneInit | `001` | `1` | `002` | Collect | `002` | | `003` | SoftKeyboard | `003` | | `004` | Factory | `014` | | @@ -26,14 +26,14 @@ Each overlay is tied to an index which is used to access the overlay in two diff `015` | Shop | `015` | | `016` | RabbitCapture | `016` | | `017` | CourseExec | `017` | | -`018` | StartUp | `021` | | Exists briefly on game startup. Initializes RNG, messages, and more. +`018` | StartUp | `021` | `4` | Exists briefly on game startup. Initializes RNG, messages, and more. `019` | MainSelect | `024` | | File Select `020` | WirelessCommon | `025` | | `021` | BattleGame | `026` | | `022` | Download | `027` | | Handles DS download play. `023` | Wxc | `028` | | `024` | MainGame | `022` | | -`025` | Title | `023` | | +`025` | Title | `023` | `4` | Title Screen `026` | Train | `030` | | `027` | TrainForest | `058` | | `028` | TrainSnow | `059` | | diff --git a/include/FileSelect/Common.hpp b/include/FileSelect/Common.hpp index eaae313e..a317a8bb 100644 --- a/include/FileSelect/Common.hpp +++ b/include/FileSelect/Common.hpp @@ -70,7 +70,7 @@ struct Vec2us_cpp { } }; -class UnkSubStruct1 { +class UnkSubStruct1 : public SysObject { public: /* 00 (vtable) */ /* 04 */ u16 mUnk_04; @@ -102,6 +102,16 @@ public: /* 08 */ virtual void vfunc_08(); /* 0C */ + bool UnkCheck1() { + bool value = true; + + if (mUnk_0A == false && mUnk_0B == false) { + value = false; + } + + return value; + } + void UnkOperations(Vec2s *pPos, bool doSetPos) { int iVar1; @@ -486,3 +496,24 @@ public: void func_020171e4(); void func_02017520(const char *nscrPath, const char *ncgrPath, const char *nclrPath); }; + +class UnkStruct2 { +public: + /* 00 */ unk8 pad[0x10]; + /* 10 */ + + UnkStruct2(const char *path, unk32 param2); + ~UnkStruct2(); + void func_020154ec(const char *param1); +}; + +struct UnkResult { + void *mUnk_00; + void *mUnk_04; + void *mUnk_08; + UnkSystem4 mUnk_0C; + UnkSystem4 mUnk_1C; + UnkSystem4 mUnk_2C; + + UnkResult(const char *path); +}; diff --git a/include/Game/GameModeManager.hpp b/include/Game/GameModeManager.hpp index 60675aee..32663078 100644 --- a/include/Game/GameModeManager.hpp +++ b/include/Game/GameModeManager.hpp @@ -15,9 +15,12 @@ class GameModeManagerBase_104_04 { public: /* 00 */ void *mUnk_00; /* 04 */ void *mUnk_04; + /* 08 */ void func_020166ac(void); void func_020166cc(void *param1); + + GameModeManagerBase_104_04(); }; class GameModeManagerBase_104_0C_04 { diff --git a/include/Game/GameModeStartUp.hpp b/include/Game/GameModeStartUp.hpp new file mode 100644 index 00000000..e80962d0 --- /dev/null +++ b/include/Game/GameModeStartUp.hpp @@ -0,0 +1,31 @@ +#pragma once + +#include "Game/GameMode.hpp" +#include "Unknown/UnkStruct_0204a060.hpp" +#include "global.h" +#include "types.h" + +class GameModeStartUp : public GameModeBase { +public: + /* 00 (base) */ + /* 04 */ UnkStruct_0204a060_Base mUnk_04; + /* 28 */ u16 mUnk_28; + /* 2A */ bool mUnk_2A; + /* 2B */ unk8 mUnk_2B; + /* 2C */ unk32 mUnk_2C; + /* 30 */ unk32 mUnk_30; + /* 34 */ + + GameModeStartUp(); + + // data_ov018_020c5b28 vtable + /* 00 */ virtual ~GameModeStartUp() override {} + /* 0C */ virtual void vfunc_0C() override; + /* 20 */ virtual void vfunc_20() override; + + // gets rid of the operator delete call in D0 + void operator delete(void *ptr) {} +}; + +extern void func_ov018_020c4b08(unk16 *param1); +extern void func_ov018_020c4e8c(void); diff --git a/include/Save/SaveManager.hpp b/include/Save/SaveManager.hpp index e5f67a78..f6f06394 100644 --- a/include/Save/SaveManager.hpp +++ b/include/Save/SaveManager.hpp @@ -362,8 +362,7 @@ public: /* 000 */ unk8 mUnk_004[0x204 - 0x004]; /* 204 */ unk16 mUnk_204; /* 206 */ unk16 mUnk_206; - /* 208 */ unk8 mUnk_208; - /* 208 */ unk8 mUnk_209; + /* 208 */ unk16 mUnk_208; /* 20A */ u8 mUnk_20A; // bool? /* 20B */ unk8 mUnk_20B; /* 20C */ unk32 mUnk_20C; @@ -372,7 +371,7 @@ public: /* 218 */ SaveFile *mpSaveFile; /* 21C */ unk8 mUnk_21C[0x23C - 0x21C]; /* 23C */ PTMF::PTMFCallback mUnk_23C; - // /* 240 */ void* mUnk_240; + /* 244 */ unk32 mUnk_244; bool IsUnk20A() { return mUnk_20A == 0; @@ -390,6 +389,8 @@ public: return this->mpSaveFile->mSlots; } + SaveManager(); + void func_ov000_020a0b2c(UnkCallback param1, unk32 param2); void func_ov000_020ba7c8(u16 saveSlotIndex); diff --git a/include/System/OverlayManager.hpp b/include/System/OverlayManager.hpp index 682a3e66..d92a556c 100644 --- a/include/System/OverlayManager.hpp +++ b/include/System/OverlayManager.hpp @@ -393,8 +393,11 @@ public: void UnloadOverlaySetup(); void LoadEquipItem(ItemFlag equipId); + + void func_02014994(unk32 param1); }; extern OverlayManager gOverlayManager; +extern OverlayManager data_02049ba0; extern OverlayId data_0203e0e8[OverlayIndex_COUNT]; extern char *data_02043c88[OverlayIndex_COUNT]; diff --git a/include/System/Random.hpp b/include/System/Random.hpp index 167267ab..dd6af589 100644 --- a/include/System/Random.hpp +++ b/include/System/Random.hpp @@ -22,6 +22,8 @@ struct Random { } return (result >> 32) + min; } + + void Init(); }; extern Random gRandom; diff --git a/include/System/SysFault.hpp b/include/System/SysFault.hpp index e315d86a..63f3b34c 100644 --- a/include/System/SysFault.hpp +++ b/include/System/SysFault.hpp @@ -4,7 +4,13 @@ class SysFault { public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk8 mUnk_04; + /* 05 */ unk8 mUnk_05; + void func_020125a4(char *file, u16 line, char *msg, ...); + + void func_ov018_020c4840(); }; extern SysFault data_02049984; diff --git a/include/System/SysNew.hpp b/include/System/SysNew.hpp index f9b8bc33..d929c401 100644 --- a/include/System/SysNew.hpp +++ b/include/System/SysNew.hpp @@ -17,24 +17,66 @@ enum HeapIndex_ { HeapIndex_1 = 1, HeapIndex_2 = 2, HeapIndex_3 = 3, - HeapIndex_Max = 4 + HeapIndex_4 = 4, + HeapIndex_5 = 5, + HeapIndex_6 = 6, + HeapIndex_7 = 7, + HeapIndex_8 = 8, + HeapIndex_Max = 9 }; +class SysObject { +public: + static void operator delete(void *ptr); + static void operator delete[](void *ptr); +}; + +static void *operator new(unsigned long length, u32 id, u32 idLength = 4); +static void *operator new[](unsigned long length, u32 id, u32 idLength = 4); + class UnkStruct_02011e10_Sub1 { public: /* 00 */ UnkId mId; - /* 04 */ unk8 mUnk_04[0x28]; + /* 04 */ unk32 mUnk_04; + /* 04 */ unk32 mUnk_08; + /* 04 */ unk32 mUnk_0C; + /* 04 */ unk32 mUnk_10; + /* 04 */ unk32 mUnk_14; + /* 04 */ unk32 mUnk_18; + /* 04 */ unk32 mUnk_1C; + /* 04 */ unk32 mUnk_20; + /* 04 */ unk32 mUnk_24; + /* 04 */ unk32 mUnk_28; /* 2C */ unk8 mUnk_2C[0x60 - 0x2C]; }; -class UnkStruct_02011e10 { +class UnkStruct_02011e10 : public SysObject { public: /* 00 */ UnkStruct_02011e10_Sub1 *mUnk_00[HeapIndex_Max]; - /* 10 */ STRUCT_PAD(0x10, 0x60); + /* 24 */ unk32 mUnk_24[2]; + /* 28 */ STRUCT_PAD(0x2C, 0x5C); + /* 5C */ unk32 mUnk_5C; /* 60 */ unk32 mUnk_60; + /* 64 */ unk32 mUnk_64; + /* 68 */ unk32 mUnk_68; + /* 6C */ unk32 mUnk_6C; + /* 70 */ unk32 mUnk_70; + /* 74 */ unk32 mUnk_74; + /* 78 */ unk32 mUnk_78; + /* 7C */ unk8 mUnk_7C; + /* 7C */ unk8 mUnk_7D; + /* 7C */ unk8 mUnk_7E; + /* 7C */ unk8 mUnk_7F; + /* 80 */ unk8 mUnk_80; + /* 81 */ unk8 mUnk_81; + /* 82 */ unk8 mUnk_82; + /* 83 */ unk8 mUnk_83; void func_02013014(); void func_02013070(); + + void func_ov018_020c4980(); + void func_ov018_020c4a5c(); }; extern UnkStruct_02011e10 data_0204999c; @@ -43,11 +85,3 @@ void *SysNew(UnkStruct_02011e10_Sub1 *param1, s32 length, s32 param3); void SysDelete(void *ptr); void *func_02011f10(s32 length); void *func_02011f30(s32 length); - -class SysObject { -public: - static void *operator new(unsigned long length, u32 id, u32 idLength = 4); - static void *operator new[](unsigned long length, u32 *id, u32 idLength = 4); - static void operator delete(void *ptr); - static void operator delete[](void *ptr); -}; diff --git a/include/Unknown/UnkStruct_02049a2c.hpp b/include/Unknown/UnkStruct_02049a2c.hpp index 9e583f21..90b2a81f 100644 --- a/include/Unknown/UnkStruct_02049a2c.hpp +++ b/include/Unknown/UnkStruct_02049a2c.hpp @@ -1,22 +1,52 @@ #pragma once #include "Game/GameMode.hpp" +#include "Game/GameModeStartUp.hpp" +#include "global.h" #include "types.h" class GameModeFileSelect; +class UnkStruct_02049a2c_1C { +public: + /* 00 (vtable) */ + /* 04 */ + + UnkStruct_02049a2c_1C(); + + // data_020437d8 vtable + /* 00 */ virtual ~UnkStruct_02049a2c_1C(); + /* 08 */ virtual void vfunc_08(); +}; + class UnkStruct_02049a2c { public: /* 00 */ GameModeBase *mUnk_00; - /* 04 */ unk8 mUnk_04[0xE8 - 0x04]; + /* 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 */ UnkStruct_02049a2c_1C mUnk_1C; + /* 20 */ unk32 mUnk_20; + /* 24 */ STRUCT_PAD(0x24, 0xE8); /* E8 */ + UnkStruct_02049a2c(); + void Run(void); void func_02013370(unk32 param1); + void func_02013724(void *param1); + + void func_ov018_020c48a4(unk32 param1); + void func_ov018_020c48f8(); // loads overlay 0 GameModeFileSelect *GetUnk00_FileSelect() { return (GameModeFileSelect *) this->mUnk_00; } + + static GameModeStartUp *func_ov018_020c4ba8(); }; extern UnkStruct_02049a2c data_02049a2c; diff --git a/include/Unknown/UnkStruct_02049b18.hpp b/include/Unknown/UnkStruct_02049b18.hpp new file mode 100644 index 00000000..c8053511 --- /dev/null +++ b/include/Unknown/UnkStruct_02049b18.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include "global.h" +#include "types.h" + +class UnkStruct_02049b18_06 { +public: + /* 00 */ unk16 mUnk_00; + /* 00 */ unk16 mUnk_02; + + 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; + /* 06 */ UnkStruct_02049b18_06 mUnk_06; + /* 0A */ STRUCT_PAD(0x0A, 0x58); + /* 58 */ unk16 mUnk_58; + /* 5A */ unk16 mUnk_5A; + + UnkStruct_02049b18(); + ~UnkStruct_02049b18(); +}; + +extern UnkStruct_02049b18 data_02049b18; diff --git a/include/Unknown/UnkStruct_02049b80.hpp b/include/Unknown/UnkStruct_02049b80.hpp index 3497b1ac..2ac5d51c 100644 --- a/include/Unknown/UnkStruct_02049b80.hpp +++ b/include/Unknown/UnkStruct_02049b80.hpp @@ -4,6 +4,15 @@ class UnkStruct_02049b80 { public: + /* 00*/ unk32 mUnk_00; + /* 04*/ unk32 mUnk_04; + /* 08*/ void *mUnk_08; + /* 0C */ unk32 mUnk_0C[2]; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1C */ unk16 mUnk_1C[2]; + + UnkStruct_02049b80(); void func_02013ecc(unk32 param1, UnkCallback param2, unk32 param3); void func_02013ee8(unk32 param1, unk32 param2); }; diff --git a/include/Unknown/UnkStruct_02049f04.hpp b/include/Unknown/UnkStruct_02049f04.hpp new file mode 100644 index 00000000..3075087a --- /dev/null +++ b/include/Unknown/UnkStruct_02049f04.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include "global.h" +#include "types.h" + +class UnkStruct_02049f04 { +public: + /* 00 */ unk8 mUnk_00[0x80]; + /* 80 */ unk16 mUnk_80; + /* 82 */ unk16 mUnk_82; + + UnkStruct_02049f04(); + ~UnkStruct_02049f04(); +}; + +extern UnkStruct_02049f04 data_02049f04; diff --git a/include/Unknown/UnkStruct_0204a060.hpp b/include/Unknown/UnkStruct_0204a060.hpp index 81df213c..331e9607 100644 --- a/include/Unknown/UnkStruct_0204a060.hpp +++ b/include/Unknown/UnkStruct_0204a060.hpp @@ -6,7 +6,7 @@ #include "Unknown/UnkStruct_ov000_02067bc4.hpp" #include "types.h" -class UnkStruct_0204a060_Base2 : public SysObject { +class UnkStruct_0204a060_Base3 : public SysObject { public: /* 00 (vtable) */ /* 04 */ GameModeManagerBase_104_04 mUnk_04; @@ -14,24 +14,32 @@ public: /* 0D */ unk8 mUnk_0D; /* 0E */ unk8 mUnk_0E; /* 0F */ unk8 mUnk_0F; + /* 10 */ + + UnkStruct_0204a060_Base3(); + + // data_020440f4 vtable + /* 00 */ virtual ~UnkStruct_0204a060_Base3(); + /* 08 */ virtual bool vfunc_08(unk32 param1); + /* 0C */ +}; + +class UnkStruct_0204a060_Base2 : public UnkStruct_0204a060_Base3 { +public: + /* 00 (vtable) */ /* 10 */ unk16 mUnk_10; /* 12 */ unk16 mUnk_12; /* 14 */ UnkStruct_0204a060_Base2(); void func_0201ba68(); - void func_0201bacc(); - - // data_020440f4 vtable - /* 00 */ virtual ~UnkStruct_0204a060_Base2(); - /* 08 */ virtual bool vfunc_08(unk32 param1); - /* 0C */ }; 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; @@ -42,9 +50,8 @@ public: /* 24 */ UnkStruct_0204a060_Base(); - void func_0201bb38(); - void func_0201bb84(unk32 param1, unk32 param2, unk32 param3, unk32 param4); - void func_0201bba4(); + void func_0201bb84(unk32 param1, unk32 param2, unk32 param3); + void func_0201bba4(unk32 param1, unk32 param2); void func_0201bbcc(); // data_02044108 vtable diff --git a/include/Unknown/UnkStruct_0204a090.hpp b/include/Unknown/UnkStruct_0204a090.hpp new file mode 100644 index 00000000..9be118b4 --- /dev/null +++ b/include/Unknown/UnkStruct_0204a090.hpp @@ -0,0 +1,12 @@ +#pragma once + +#include "types.h" + +class UnkStruct_0204a090 { +public: + /* 00 */ unk32 mUnk_00; + + void func_020073ac(unk32 param1); +}; + +extern UnkStruct_0204a090 data_0204a090; diff --git a/include/Unknown/UnkStruct_0204a110.hpp b/include/Unknown/UnkStruct_0204a110.hpp index ba375729..9ea4846b 100644 --- a/include/Unknown/UnkStruct_0204a110.hpp +++ b/include/Unknown/UnkStruct_0204a110.hpp @@ -1,41 +1,222 @@ #pragma once +#include "System/SysNew.hpp" +#include "Unknown/UnkMemFuncs.h" #include "global.h" #include "types.h" -class UnkStruct_0204a110_Sub1 { +struct UnkStruct_0204a110_Sub2_000_158 { + u32 mUnk_00[3]; + unk8 mUnk_0C; + u8 pad[3]; +}; + +struct UnkStruct_0204a110_Sub2_000 { + unk32 mUnk_00[2]; + unk32 mUnk_08[2]; + unk32 mUnk_10[2]; + unk32 mUnk_18[2]; + unk32 mUnk_20; + unk32 mUnk_24[2]; + unk32 mUnk_2C[2]; + unk32 mUnk_34[2]; + unk32 mUnk_3C[2]; + unk32 mUnk_44[2]; + STRUCT_PAD(0x4C, 0x150); + unk32 mUnk_150; + unk32 mUnk_154; + UnkStruct_0204a110_Sub2_000_158 mUnk_158[16]; + STRUCT_PAD(0x258, 0x358); + unk32 mUnk_358; +}; + +struct UnkStruct_0204a110_Sub2_158 { + /* 00 */ unk32 mUnk_00[3]; + /* 0C */ u8 mUnk_0C; + /* 0D */ u8 pad[3]; + /* 10 */ +}; + +class UnkStruct_0204a110_Sub2 { public: - /* 00 */ unk8 mUnk_00[0x0A]; - /* 0A */ u8 mUnk_0A; // bools? - /* 0B */ u8 mUnk_0B; // bools? + /* 000 */ unk32 mUnk_000[2]; + /* 008 */ unk32 mUnk_008[2]; + /* 010 */ unk32 mUnk_010[2]; + /* 018 */ unk32 mUnk_018[2]; + /* 020 */ unk32 mUnk_020; + /* 024 */ unk32 mUnk_024[2]; + /* 02C */ unk32 mUnk_02C[2]; + /* 034 */ unk32 mUnk_034[2]; + /* 03C */ unk32 mUnk_03C[2]; + /* 044 */ unk32 mUnk_044[2]; + /* 04C */ STRUCT_PAD(0x4C, 0x150); + /* 150 */ unk32 mUnk_150[2]; + /* 158 */ UnkStruct_0204a110_Sub2_158 mUnk_158[2][16]; + /* 358 */ unk32 mUnk_358[2]; + /* 360 */ - bool UnkCheck1() { - bool value = true; + UnkStruct_0204a110_Sub2(); + void func_0201c890(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5); +}; - if (mUnk_0A == 0 && mUnk_0B == 0) { - value = false; - } +class UnkStruct_0204a110_Sub3_00 { +public: + /* 000 */ unk8 mUnk_000[0x200]; + /* 200 */ - return value; + UnkStruct_0204a110_Sub3_00() { + Fill16(0, (u16 *) this->mUnk_000, sizeof(this->mUnk_000)); } }; +struct UnkStruct_0204a110_Sub3_400 { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ UnkStruct_0204a110_Sub3_00 *mUnk_0C; + /* 10 */ +}; + +class UnkStruct_0204a110_Sub3 { +public: + /* 000 */ UnkStruct_0204a110_Sub3_00 mUnk_00[2]; + /* 400 */ UnkStruct_0204a110_Sub3_400 mUnk_400[2]; + /* 420 */ unk8 mUnk_420[2]; + /* 422 */ unk16 mUnk_422; + /* 424 */ + + UnkStruct_0204a110_Sub3(); +}; + +class UnkStruct_0204a110_Sub4 { +public: + /* 00 */ unk32 mUnk_00; + + UnkStruct_0204a110_Sub4(); +}; + +class UnkStruct_0204a110_Sub5 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + + UnkStruct_0204a110_Sub5(); +}; + +class UnkStruct_0204a110_Sub6 { +public: + /* 00 (vtable) */ + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ unk16 mUnk_0C; + /* 0E */ unk16 mUnk_0E; + /* 10 */ unk16 mUnk_10; + /* 12 */ unk8 mUnk_12; + /* 13 */ unk8 mUnk_13; + + UnkStruct_0204a110_Sub6(); + + // data_020442b4 vtable + /* 00 */ virtual void vfunc_00(); + /* 04 */ virtual void vfunc_04(); +}; + +class UnkStruct_0204a110_Sub7_08 : public SysObject { +public: + /* 00 (vtable) */ + /* 04 */ STRUCT_PAD(0x04, 0x30); + /* 30 */ + + UnkStruct_0204a110_Sub7_08(); + + // data_0204431c vtable + /* 00 */ virtual void vfunc_00(); + /* 04 */ virtual void vfunc_04(); + /* 08 */ virtual void vfunc_08(); +}; + +struct UnkStruct_027e0120 { + /* 00 */ unk32 mUnk_00[4]; + /* 10 */ +}; + +extern UnkStruct_027e0120 data_027e0120; + +class UnkStruct_0204a110_Sub7 { +public: + /* 00 */ unk8 mUnk_00; + /* 01 */ unk8 mUnk_01; + /* 02 */ unk8 mUnk_02; + /* 03 */ unk8 mUnk_03; + /* 04 */ UnkSystem2_UnkSubSystem9 *mUnk_04; + /* 08 */ UnkStruct_0204a110_Sub7_08 *mUnk_08; + /* 0C */ UnkStruct_027e0120 mUnk_0C; + /* 1C */ + + UnkStruct_0204a110_Sub7(); +}; + +class UnkStruct_0204a110_Sub8 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk8 mUnk_08; + /* 08 */ unk8 mUnk_09; + /* 08 */ unk8 mUnk_0A; + /* 08 */ unk8 mUnk_0B; + /* 0C */ UnkSystem2_UnkSubSystem9 *mUnk_0C; + + UnkStruct_0204a110_Sub8(); +}; + class UnkStruct_0204a110 { public: /* 000 */ unk32 mUnk_000; - /* 004 */ STRUCT_PAD(0x04, 0xDA4); + /* 004 */ unk32 mUnk_004; + /* 008 */ unk32 mUnk_008; + /* 00C */ unk32 mUnk_00C; + /* 010 */ UnkStruct_0204a110_Sub2 mUnk_010; + /* 370 */ UnkStruct_0204a110_Sub3 mUnk_370; + /* 794 */ UnkStruct_0204a110_Sub4 mUnk_794; + /* 798 */ STRUCT_PAD(0x798, 0xD9C); + /* D9C */ UnkStruct_0204a110_Sub5 mUnk_D9C; /* DA4 */ unk8 mUnk_DA4; /* DA5 */ unk8 mUnk_DA5; /* DA6 */ unk8 mUnk_DA6; /* DA7 */ unk8 mUnk_DA7; - /* DA8 */ unk8 mUnk_DA8[0xDE8 - 0xDA8]; - /* DE8 */ UnkStruct_0204a110_Sub1 *mUnk_DE8; + /* DA8 */ UnkStruct_0204a110_Sub6 mUnk_DA8; + /* DAC */ STRUCT_PAD(0xDBC, 0xDC0); + /* DC0 */ UnkStruct_0204a110_Sub7 mUnk_DC0; + /* DDC */ UnkStruct_0204a110_Sub8 mUnk_DDC; + /* DEC */ unk32 mUnk_DEC; + /* DF0 */ unk16 mUnk_DF0; + /* DF2 */ unk8 mUnk_DF2; + /* DF3 */ unk8 mUnk_DF3; + /* DF4 */ unk32 mUnk_DF4; + /* DF8 */ unk8 mUnk_DF8; + /* DF9 */ unk8 mUnk_DF9; + /* DFA */ unk8 mUnk_DFA; + /* DFB */ unk8 mUnk_DFB; + /* DFC */ unk8 mUnk_DFC; + /* DFD */ unk8 mUnk_DFD; + /* DFE */ unk8 mUnk_DFE; + /* DFF */ unk8 mUnk_DFF; + /* E00 */ unk8 mUnk_E00; + /* E00 */ unk8 mUnk_E01; + /* E02 */ unk16 mUnk_E02; + /* E04 */ unk16 mUnk_E04; + UnkStruct_0204a110(); unk32 func_01ff9b50(); - void func_ov001_020bd514(unk32 param1, void *param2, unk32 param3, unk32 param4); + void func_02018c90(unk32 param1); 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_ov018_020c5300(void); }; extern UnkStruct_0204a110 data_0204a110; diff --git a/include/Unknown/UnkStruct_0204af1c.hpp b/include/Unknown/UnkStruct_0204af1c.hpp index 4cc176cf..e5469444 100644 --- a/include/Unknown/UnkStruct_0204af1c.hpp +++ b/include/Unknown/UnkStruct_0204af1c.hpp @@ -2,10 +2,23 @@ #include "types.h" +class UnkStruct_0204af1c_00 { +public: + /* 0000 */ unk8 mUnk_0000[0x1490]; + /* 1490 */ + + UnkStruct_0204af1c_00(); + void func_0201af10(unk32 param1); +}; + class UnkStruct_0204af1c { public: - /* 00 */ unk32 mUnk_00; + /* 0000 */ UnkStruct_0204af1c_00 mUnk_0000[2]; + /* 2920 */ unk8 mUnk_2920[0x194]; + /* 2AB4 */ + UnkStruct_0204af1c(); + void func_0201a800(); void func_0201aa44(void *param1, void *param2, unk32 param3, void *param4); void func_0201aad0(void *param1, void *param2, unk32 param3, void *param4); }; diff --git a/include/Unknown/UnkStruct_0204e5f8.hpp b/include/Unknown/UnkStruct_0204e5f8.hpp new file mode 100644 index 00000000..8157ed20 --- /dev/null +++ b/include/Unknown/UnkStruct_0204e5f8.hpp @@ -0,0 +1,44 @@ +#pragma once + +#include "Game/GameModeManager.hpp" +#include "Unknown/UnkStruct_0204a060.hpp" +#include "global.h" +#include "types.h" + +class UnkStruct_0204e5f8_1C_Base { +public: + /* 20 */ GameModeManagerBase_104_04 mUnk_20; + /* 28 */ unk32 mUnk_28; + + UnkStruct_0204e5f8_1C_Base() : + mUnk_28(0) {} +}; + +class UnkStruct_0204e5f8_1C : UnkStruct_0204e5f8_1C_Base { +public: + /* 00 (vtable) */ + /* 04 */ + + // data_020440e8 vtable + /* 00 */ virtual ~UnkStruct_0204e5f8_1C(); +}; + +class UnkStruct_0204e5f8 { +public: + /* 00 */ UnkStruct_0204a060_Base3 mUnk_00; + /* 14 */ unk32 mUnk_10; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk8 mUnk_18; + /* 19 */ unk8 mUnk_19; + /* 1A */ unk8 mUnk_1A; + /* 1B */ unk8 mUnk_1B; + /* 1C */ UnkStruct_0204e5f8_1C mUnk_1C; + /* 2C */ STRUCT_PAD(0x2C, 0x38); + /* 38 */ unk8 mUnk_38; + /* 39 */ unk8 mUnk_39; + + UnkStruct_0204e5f8(); + void func_0201b9a8(void *param1); +}; + +extern UnkStruct_0204e5f8 data_0204e5f8; diff --git a/include/Unknown/UnkStruct_0204e640.hpp b/include/Unknown/UnkStruct_0204e640.hpp new file mode 100644 index 00000000..554f6357 --- /dev/null +++ b/include/Unknown/UnkStruct_0204e640.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include "types.h" + +class UnkStruct_0204e640 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk8 mUnk_04; + + UnkStruct_0204e640(); +}; + +extern UnkStruct_0204e640 data_0204e640; diff --git a/include/Unknown/UnkStruct_0204e64c.hpp b/include/Unknown/UnkStruct_0204e64c.hpp new file mode 100644 index 00000000..b0122f65 --- /dev/null +++ b/include/Unknown/UnkStruct_0204e64c.hpp @@ -0,0 +1,40 @@ +#pragma once + +#include "Unknown/UnkStruct_02049b18.hpp" +#include "global.h" +#include "types.h" + +class UnkStruct_0204e64c_00 { +public: + /* 00 (vtable) */ + /* 04 */ unk16 mUnk_04; + /* 06 */ unk16 mUnk_06; + /* 08 */ unk16 mUnk_08; + /* 0A */ unk8 mUnk_0A; + /* 0B */ unk8 mUnk_0B; + /* 0C */ unk8 mUnk_0C; + /* 0D */ unk8 mUnk_0D; + /* 0E */ unk8 mUnk_0E; + /* 0F */ unk8 mUnk_0F; + /* 10 */ + + UnkStruct_0204e64c_00(); + ~UnkStruct_0204e64c_00(); + + // data_020443d8 vtable + /* 00 */ virtual void vfunc_00(); + /* 04 */ virtual void vfunc_04(); +}; + +class UnkStruct_0204e64c { +public: + /* 00 */ UnkStruct_0204e64c_00 mUnk_00; + /* 10 */ UnkStruct_02049b18_00 mUnk_10; + /* 14 */ unk16 mUnk_14; + /* 16 */ unk8 mUnk_16; + + UnkStruct_0204e64c(); + ~UnkStruct_0204e64c(); +}; + +extern UnkStruct_0204e64c data_0204e64c; diff --git a/include/Unknown/UnkStruct_ov000_02067bc4.hpp b/include/Unknown/UnkStruct_ov000_02067bc4.hpp index a30b969e..6d6b4002 100644 --- a/include/Unknown/UnkStruct_ov000_02067bc4.hpp +++ b/include/Unknown/UnkStruct_ov000_02067bc4.hpp @@ -1,6 +1,9 @@ #pragma once #include "Item/Item.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_02049b18.hpp" +#include "global.h" #include "types.h" class UnkStruct_ov000_02067bc4_Sub1 { @@ -49,10 +52,8 @@ public: public: /* 000 (vtable) */ /* 004 */ unk32 mUnk_004; - /* 004 */ UnkStruct_ov000_02067bc4_Sub2 *mUnk_008; - /* 004 */ unk8 mUnk_00C[0x30 - 0x00C]; - /* 030 */ unk32 mUnk_030; - /* 034 */ unk8 mUnk_034[0x160 - 0x034]; + /* 008 */ UnkStruct_ov000_02067bc4_Sub2 *mUnk_008; + /* 00C */ STRUCT_PAD(0x0C, 0x160); /* 160 */ UnkStruct_ov000_02067bc4_Sub1 mUnk_160; /* 00 */ virtual unk32 vfunc_00(); @@ -62,20 +63,64 @@ public: void func_02021bec(unk16 param1); void func_02021c08(); void func_02021c2c(); +}; + +typedef void (*UnkCallback2)(); + +class UnkStruct_ov000_020b504c_Sub3 : public SysObject { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ unk32 mUnk_0C; + /* 10 */ unk32 mUnk_10; + /* 14 */ + + UnkStruct_ov000_020b504c_Sub3(unk32 param1); + void func_ov000_020676f8(const char *bmgFileName, unk32 param2); +}; + +class UnkStruct_ov000_020b504c_Sub4 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ +}; + +class UnkStruct_ov000_020b504c { +public: + /* 000 */ UnkStruct_ov000_020b504c_Sub3 *mUnk_000; + /* 004 */ unk32 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); + /* 05C */ unk8 mUnk_05C[0x10]; + /* 06C */ unk8 mUnk_06C[2]; + /* 06E */ unk8 mUnk_06E; + /* 06F */ unk8 mUnk_06F; + + UnkStruct_ov000_020b504c(); - UnkStruct_ov000_02067bc4 *func_ov000_02067bc4(unk32); - unk8 func_ov000_02067cf8(unk32 param1, unk32 param2, UnkStruct1 *param3); void *func_ov000_02067bb4(unk32 param1); + UnkStruct_ov000_02067bc4 *func_ov000_02067bc4(unk32); + unk8 func_ov000_02067cf8(unk32 param1, unk32 param2, UnkStruct_ov000_02067bc4::UnkStruct1 *param3); void func_ov000_02067e60(u8 param1, unk32 param2); + unk32 func_ov000_020682c0(unk32 param1); + + //! TODO: figure this out void func_ov000_0206807c(unk32 param1, void *param2, unk32 param3, unk32 param4); void func_ov000_0206807c(unk32 param1, void *param2, unk32 param3); void func_ov000_0206807c(unk32 param1, void *param2); void func_ov000_0206807c(void *param1, void *param2); void func_ov000_0206807c(void *param1, unk32 param2); - unk32 func_ov000_020682c0(unk32 param1); void func_ov001_020be668(void); void func_ov001_020be6f4(void); }; -extern UnkStruct_ov000_02067bc4 data_ov000_020b504c; +extern UnkStruct_ov000_020b504c data_ov000_020b504c; diff --git a/include/Unknown/UnkStruct_ov000_020b4ec4.hpp b/include/Unknown/UnkStruct_ov000_020b4ec4.hpp new file mode 100644 index 00000000..35e5d45c --- /dev/null +++ b/include/Unknown/UnkStruct_ov000_020b4ec4.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include "global.h" +#include "types.h" + +class UnkStruct_ov000_020b4ec4_Base { +public: + UnkStruct_ov000_020b4ec4_Base(); +}; + +class UnkStruct_ov000_020b4ec4 : public UnkStruct_ov000_020b4ec4_Base { +public: + /* 00 */ unk32 mUnk_00; + + UnkStruct_ov000_020b4ec4(); + ~UnkStruct_ov000_020b4ec4(); +}; + +extern UnkStruct_ov000_020b4ec4 data_ov000_020b4ec4; diff --git a/include/Unknown/UnkStruct_ov000_020b4eec.hpp b/include/Unknown/UnkStruct_ov000_020b4eec.hpp new file mode 100644 index 00000000..d5de5e58 --- /dev/null +++ b/include/Unknown/UnkStruct_ov000_020b4eec.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include "types.h" + +class UnkStruct_ov000_020b4eec { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk8 mUnk_04[0x80]; + /* 84 */ + + UnkStruct_ov000_020b4eec(); +}; + +extern UnkStruct_ov000_020b4eec data_ov000_020b4eec; diff --git a/include/Unknown/UnkStruct_ov000_020b4f84.hpp b/include/Unknown/UnkStruct_ov000_020b4f84.hpp new file mode 100644 index 00000000..c197577a --- /dev/null +++ b/include/Unknown/UnkStruct_ov000_020b4f84.hpp @@ -0,0 +1,37 @@ +#pragma once + +#include "System/SysNew.hpp" +#include "types.h" + +class UnkStruct_ov000_020b4f84_00_Base : public SysObject { +public: + /* 00 (vtable) */ + + // data_02043f08 vtable + /* 00 */ virtual ~UnkStruct_ov000_020b4f84_00_Base(); + /* 08 */ virtual void vfunc_08(); + /* 0C */ virtual void vfunc_0C(); + /* 10 */ virtual void vfunc_10(); +}; + +class UnkStruct_ov000_020b4f84_00 : public UnkStruct_ov000_020b4f84_00_Base { +public: + /* 00 (base) */ + /* 04 */ unk8 mUnk_04[0x1C]; + /* 20 */ + + UnkStruct_ov000_020b4f84_00(); + ~UnkStruct_ov000_020b4f84_00(); +}; + +class UnkStruct_ov000_020b4f84 { +public: + /* 00 */ UnkStruct_ov000_020b4f84_00 mUnk_00[6]; + /* C0 */ unk16 mUnk_C0; + /* C2 */ unk16 mUnk_C2; + + UnkStruct_ov000_020b4f84(); + void func_ov000_0206667c(unk32 param1, unk32 param2); +}; + +extern UnkStruct_ov000_020b4f84 data_ov000_020b4f84; diff --git a/include/Unknown/UnkStruct_ov000_020b50c0.hpp b/include/Unknown/UnkStruct_ov000_020b50c0.hpp index 69f6c9cb..c23e7725 100644 --- a/include/Unknown/UnkStruct_ov000_020b50c0.hpp +++ b/include/Unknown/UnkStruct_ov000_020b50c0.hpp @@ -1,14 +1,59 @@ #pragma once +#include "System/SysNew.hpp" #include "types.h" +class UnkStruct_ov018_020c5ac0 : public SysObject { +public: + /* 00 */ unk8 mUnk_00; + /* 00 */ unk8 mUnk_01; + /* 00 */ unk16 mUnk_02; + /* 04 */ + + UnkStruct_ov018_020c5ac0(); + void SetInstance(); + + static UnkStruct_ov018_020c5ac0 *Create(void); +}; + +extern UnkStruct_ov018_020c5ac0 *data_027e099c; + class UnkStruct_ov000_020b50c0 { public: + /* 00 */ STRUCT_PAD(0x00, 0x94); + /* 94 */ unk32 mUnk_94; + /* 98 */ unk32 mUnk_98; + /* 9C */ unk16 mUnk_9C; + /* 9E */ unk8 mUnk_9E; + /* 9F */ unk8 mUnk_9F; + /* A0 */ unk8 mUnk_A0; + /* A1 */ unk8 mUnk_A1; + /* A2 */ unk8 mUnk_A2; + /* A3 */ unk8 mUnk_A3; + /* A4 */ unk16 mUnk_A4; + /* A6 */ unk16 mUnk_A6; + /* A8 */ unk32 mUnk_A8[9]; + /* CC */ unk32 mUnk_CC; + /* D0 */ unk32 mUnk_D0; + /* D4 */ unk32 mUnk_D4; + /* D8 */ unk32 mUnk_D8; + /* DC */ unk32 mUnk_DC; + /* E0 */ unk32 mUnk_E0; + /* E4 */ unk32 mUnk_E4; + + UnkStruct_ov000_020b50c0(); + + void func_0200381c(const char *soundDataPath, unk32 param2, unk32 param3); + + 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_020bd8dc(void); + + UnkStruct_ov018_020c5ac0 *func_ov018_020c5718(void); }; extern UnkStruct_ov000_020b50c0 data_ov000_020b50c0; diff --git a/include/Unknown/UnkStruct_ov000_020b51b8.hpp b/include/Unknown/UnkStruct_ov000_020b51b8.hpp index af6072a6..4baa8597 100644 --- a/include/Unknown/UnkStruct_ov000_020b51b8.hpp +++ b/include/Unknown/UnkStruct_ov000_020b51b8.hpp @@ -1,20 +1,74 @@ #pragma once +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_ov000_020b5214.hpp" #include "types.h" +class UnkStruct_ov000_020b51b8_00 : public SysObject { +public: + /* 00 (vtable) */ + /* 04 */ STRUCT_PAD(0x04, 0xA0); + + UnkStruct_ov000_020b51b8_00(void *param1); + + // data_ov000_020b215c vtable + /* 00 */ virtual ~UnkStruct_ov000_020b51b8_00(); + /* 08 */ virtual void vfunc_08(); + /* 0C */ virtual void vfunc_0C(unk32 param1); +}; + +class UnkStruct_ov000_020b51b8_04 : public SysObject { +public: + /* 00 (vtable) */ + /* 04 */ STRUCT_PAD(0x04, 0x98); + + UnkStruct_ov000_020b51b8_04(void *param1); + + // data_ov000_020b2174 vtable + /* 00 */ virtual ~UnkStruct_ov000_020b51b8_04(); + /* 08 */ virtual void vfunc_08(); + /* 0C */ virtual void vfunc_0C(unk32 param1); +}; + class UnkStruct_ov000_020b51b8 { public: - /* 00 */ unk32 mUnk_00; - /* 04 */ unk32 mUnk_04; - /* 08 */ unk32 mUnk_08; - /* 0c */ unk32 mUnk_0c; - /* 10 */ unk32 mUnk_10; + /* 00 */ UnkStruct_ov000_020b51b8_00 *mUnk_00; + /* 04 */ UnkStruct_ov000_020b51b8_04 *mUnk_04; + /* 08 */ UnkStruct_ov000_020b5214 *mUnk_08[3]; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1C */ unk16 mUnk_1C; + /* 1E */ unk8 mUnk_1E; + /* 1F */ unk8 mUnk_1F; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk32 mUnk_28; + /* 2C */ unk32 mUnk_2C; + /* 30 */ unk32 mUnk_30; + /* 34 */ unk32 mUnk_34; + /* 38 */ unk32 mUnk_38; + /* 3C */ unk32 mUnk_3C; + /* 40 */ unk8 mUnk_40; + /* 41 */ unk8 mUnk_41; + /* 41 */ unk8 mUnk_42; + /* 41 */ unk8 mUnk_43; + /* 44 */ unk32 mUnk_44; + /* 48 */ unk32 mUnk_48; + /* 4C */ unk32 mUnk_4C; + /* 50 */ unk32 mUnk_50; + /* 54 */ unk16 mUnk_54; + /* 56 */ unk16 mUnk_56; + + UnkStruct_ov000_020b51b8(); + ~UnkStruct_ov000_020b51b8(); void func_ov000_0206d0bc(unk32 param1); void func_ov000_0206d274(unk32 param1); void func_ov000_0206c96c(unk32 param1); void func_ov000_0206c9a8(unk32 param1, unk32 param2, unk32 param3, unk32 param4); void func_ov000_0206c608(unk32 param1, unk32 param2, unk32 param3); + + void func_ov018_020c5940(); }; extern UnkStruct_ov000_020b51b8 data_ov000_020b51b8; diff --git a/include/Unknown/UnkStruct_ov000_020b5214.hpp b/include/Unknown/UnkStruct_ov000_020b5214.hpp index 109d8ce6..25ac79a4 100644 --- a/include/Unknown/UnkStruct_ov000_020b5214.hpp +++ b/include/Unknown/UnkStruct_ov000_020b5214.hpp @@ -1,10 +1,49 @@ #pragma once +#include "global.h" #include "types.h" +class UnkStruct_ov000_020b5214_04 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk16 mUnk_04; + /* 06 */ unk8 mUnk_06; + /* 07 */ unk8 mUnk_07; + /* 08 */ unk32 mUnk_08; + /* 0C */ + + UnkStruct_ov000_020b5214_04() { + this->mUnk_00 = 0; + this->mUnk_04 = 0; + this->mUnk_06 = 0; + this->mUnk_07 = 0; + } +}; + +struct UnkStruct_ov000_020b5214_70 { + /* 00 */ unk16 mUnk_00; + /* 02 */ unk16 mUnk_02; + /* 04 */ +}; + class UnkStruct_ov000_020b5214 { public: /* 00 */ unk32 mUnk_00; + /* 04 */ UnkStruct_ov000_020b5214_04 mUnk_04[8]; + /* 64 */ unk16 mUnk_64; + /* 66 */ unk8 mUnk_66; + /* 67 */ unk8 mUnk_67; + /* 68 */ unk32 mUnk_68; + /* 6C */ unk32 mUnk_6C; + /* 70 */ UnkStruct_ov000_020b5214_70 mUnk_70[8]; + /* 90 */ unk32 mUnk_90; + /* 94 */ unk8 mUnk_94; + /* 95 */ unk8 mUnk_95; + /* 96 */ unk8 mUnk_96; + /* 97 */ unk8 mUnk_97; + /* 98 */ unk32 mUnk_98; + + UnkStruct_ov000_020b5214(); void func_ov000_0206db44(unk32 param1); void func_ov000_0206d6b4(unk32 param1, unk32 param2); diff --git a/include/Unknown/UnkStruct_ov000_020b52b4.hpp b/include/Unknown/UnkStruct_ov000_020b52b4.hpp new file mode 100644 index 00000000..74d7df83 --- /dev/null +++ b/include/Unknown/UnkStruct_ov000_020b52b4.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include "global.h" +#include "types.h" + +class UnkStruct_ov000_020b52b4 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ unk32 mUnk_0C; + /* 10 */ unk32 mUnk_10; + /* 10 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1C */ unk32 mUnk_1C; + /* 20 */ unk32 mUnk_20; + + UnkStruct_ov000_020b52b4(); + ~UnkStruct_ov000_020b52b4(); + + void func_ov000_0206f6ac(); +}; + +extern UnkStruct_ov000_020b52b4 data_ov000_020b52b4; diff --git a/include/Unknown/UnkStruct_ov000_020b52e8.hpp b/include/Unknown/UnkStruct_ov000_020b52e8.hpp new file mode 100644 index 00000000..23098269 --- /dev/null +++ b/include/Unknown/UnkStruct_ov000_020b52e8.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include "global.h" +#include "types.h" + +class UnkStruct_ov000_020b52e8 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ unk32 mUnk_0C; + /* 10 */ unk16 mUnk_10; + /* 10 */ unk8 mUnk_12; + /* 10 */ unk8 mUnk_13; + + UnkStruct_ov000_020b52e8(); + ~UnkStruct_ov000_020b52e8(); +}; + +extern UnkStruct_ov000_020b52e8 data_ov000_020b52e8; diff --git a/include/Unknown/UnkStruct_ov000_020b5300.hpp b/include/Unknown/UnkStruct_ov000_020b5300.hpp new file mode 100644 index 00000000..69a0f6e2 --- /dev/null +++ b/include/Unknown/UnkStruct_ov000_020b5300.hpp @@ -0,0 +1,38 @@ +#pragma once + +#include "global.h" +#include "types.h" +#include "versions.h" + +class UnkStruct_ov000_020b5300 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ unk32 mUnk_0C; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1C */ unk32 mUnk_1C; + /* 20 */ unk16 mUnk_20; + /* 20 */ unk16 mUnk_22; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk8 mUnk_28; + /* 29 */ unk8 mUnk_29; + /* 29 */ unk8 mUnk_2A; + /* 29 */ unk8 mUnk_2B; + /* 2C */ unk32 mUnk_2C; + /* 30 */ unk32 mUnk_30; + /* 34 */ unk32 mUnk_34; +#if IS_JP //! TODO: confirm if this is present on the other versions + /* 38 */ unk32 mUnk_38; + /* 3C */ unk32 mUnk_3C; +#endif + + UnkStruct_ov000_020b5300(); + ~UnkStruct_ov000_020b5300(); + + void func_ov018_020c583c(unk32 param1); +}; + +extern UnkStruct_ov000_020b5300 data_ov000_020b5300; diff --git a/include/Unknown/UnkStruct_ov000_020b5340.hpp b/include/Unknown/UnkStruct_ov000_020b5340.hpp new file mode 100644 index 00000000..ec95300e --- /dev/null +++ b/include/Unknown/UnkStruct_ov000_020b5340.hpp @@ -0,0 +1,33 @@ +#pragma once + +#include "Unknown/UnkStruct_ov000_020b5300.hpp" +#include "global.h" +#include "types.h" + +class UnkStruct_ov000_020b5340 { +public: + /* 00 */ UnkStruct_ov000_020b5300 *mUnk_00; + /* 04 */ unk8 mUnk_04; + /* 05 */ unk8 mUnk_05; + /* 06 */ unk8 mUnk_06; + /* 07 */ unk8 mUnk_07; + /* 08 */ unk32 mUnk_08; + /* 0C */ unk32 mUnk_0C; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1C */ unk32 mUnk_1C; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk32 mUnk_28; + /* 2C */ unk32 mUnk_2C; + + UnkStruct_ov000_020b5340(); + ~UnkStruct_ov000_020b5340(); + + void func_ov000_0206ffc0(); + + void func_ov018_020c57fc(); +}; + +extern UnkStruct_ov000_020b5340 data_ov000_020b5340; diff --git a/include/regs.h b/include/regs.h index bead457b..308e71cb 100644 --- a/include/regs.h +++ b/include/regs.h @@ -1,5 +1,8 @@ #pragma once +#define ARM9_IO_BASE 0x04000000 +#define SHARED_WORK_BASE 0x027FF000 + #define REG_WORD_PTR(addr) ((u32 *) (addr)) #define REG_WORD(addr) (*(REG_WORD_PTR(addr))) @@ -11,7 +14,6 @@ #define RAM_PALETTES REG_WORD_PTR((u32 *) 0x05000000) #define RAM_OAM REG_WORD_PTR((u32 *) 0x07000000) -#define ARM9_IO_BASE 0x04000000 #define REG_DISPCNT REG_WORD(ARM9_IO_BASE) #define REG_DISPCNT_SUB REG_WORD(ARM9_IO_BASE | 0x00001000) @@ -23,3 +25,10 @@ #define REG_BG3HOFS_SUB REG_WORD(ARM9_IO_BASE | 0x0000101C) #define REG_BLDALPHA REG_HALFWORD(ARM9_IO_BASE | 0x00000052) + +#define REG_WININ REG_HALFWORD(ARM9_IO_BASE | 0x00000048) +#define REG_WINOUT REG_HALFWORD(ARM9_IO_BASE | 0x0000004A) +#define REG_WININ_SUB REG_HALFWORD(ARM9_IO_BASE | 0x00001048) +#define REG_WINOUT_SUB REG_HALFWORD(ARM9_IO_BASE | 0x0000104A) + +#define SHARED_WORK_C3C REG_WORD(SHARED_WORK_BASE | 0xC3C) diff --git a/src/018_StartUp/GameModeStartUp.cpp b/src/018_StartUp/GameModeStartUp.cpp new file mode 100644 index 00000000..6319142a --- /dev/null +++ b/src/018_StartUp/GameModeStartUp.cpp @@ -0,0 +1,224 @@ +#include "Game/GameModeStartUp.hpp" +#include "System/OverlayManager.hpp" +#include "System/SysFault.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_02049a2c.hpp" +#include "Unknown/UnkStruct_02049b80.hpp" +#include "Unknown/UnkStruct_0204a110.hpp" +#include "Unknown/UnkStruct_0204e5f8.hpp" +#include "Unknown/UnkStruct_0204e64c.hpp" +#include "Unknown/UnkStruct_ov000_020b4ec4.hpp" +#include "Unknown/UnkStruct_ov000_020b50c0.hpp" +#include "regs.h" + +#pragma dont_reuse_strings off + +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); +void func_020275e8(); +void func_02013184(); +void func_020131b0(); +void func_020263bc(unk32 param1); +void func_020234d4(unk32 param1); +void func_02031e48(void *param1); +void func_02026ef0(void *param1); +unk32 func_02027818(unk32 param1); +unk32 func_0202780c(unk32 param1); +UnkStruct_02011e10_Sub1 *func_020012e0(unk32 param1, unk32 param2, unk32 param3); +unk32 func_0202d624(void *param1, unk32 param2); +void *func_02001fd4(void *param1, size_t param2); +void func_020013ac(void *param1); +UnkStruct_02011e10_Sub1 *func_02001098(unk32 param1, unk32 param2, unk32 param3); +unk32 func_020011f4(); +void func_0202793c(unk32 param1, unk32 param2); +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); +} + +static u8 data_ov018_020c5bc0; + +ARM void SysFault::func_ov018_020c4840() { + this->mUnk_05 = 0; + func_02027a28(func_0201245c, 0); + func_020275e8(); + this->mUnk_00 = 0; + this->mUnk_04 = 0; +} + +ARM UnkStruct_02049a2c::UnkStruct_02049a2c() : + mUnk_00(NULL), + mUnk_04(0), + mUnk_08(0), + mUnk_10(0), + mUnk_14(0), + mUnk_18(0) {} + +ARM void UnkStruct_02049a2c::func_ov018_020c48a4(unk32 param1) { + func_020261f0(1, func_02013184); + func_020263bc(1); + func_020234d4(1); + func_02026ef0(&this->mUnk_20); + func_02031e48(func_020131b0); + this->func_02013724(UnkStruct_02049a2c::func_ov018_020c4ba8); +} + +ARM void UnkStruct_02049a2c::func_ov018_020c48f8() { + if (gOverlayManager.mLoadedOverlays[OverlaySlot_Second] != OverlayIndex_Second) { + data_02049ba0.LoadIfNotLoaded(OverlaySlot_Second, OverlayIndex_Second); + data_0204999c.func_ov018_020c4a5c(); + data_ov000_020b50c0.func_ov018_020c5718(); + data_02049ba0.func_02014994(1); + } +} + +ARM UnkStruct_02049b18::UnkStruct_02049b18() { + this->mUnk_58 = 0; + this->mUnk_5A = 0; + func_02013768(this); +} + +ARM void UnkStruct_02011e10::func_ov018_020c4980() { + unk32 iVar1 = func_02027818(0); + unk32 iVar2 = func_0202780c(0); + + for (int i = 0; i < HeapIndex_Max; i++) { + this->mUnk_00[i] = NULL; + } + + for (int i = 0; i < ARRAY_LEN(this->mUnk_24); i++) { + this->mUnk_24[i] = 0; + } + + this->mUnk_00[HeapIndex_0] = func_020012e0(iVar1, iVar2 - iVar1, 2); + unk32 length = func_0202d624(NULL, 0); + void *ptr = ::operator new(length, 0); + func_0202d624(ptr, length); + ptr = ::operator new(0xBE000, 0); + void *uVar3 = func_02001fd4(ptr, 0xBE000); + + this->mUnk_24[0] = (unk32) uVar3; + this->mUnk_5C = 0; + this->mUnk_60 = 0xD2F0; + this->mUnk_64 = 0; + this->mUnk_68 = 0; + this->mUnk_6C = 0; + this->mUnk_70 = 0; + this->mUnk_74 = 0; + this->mUnk_78 = 0; + this->mUnk_7C = 0; +} + +ARM void UnkStruct_02011e10::func_ov018_020c4a5c() { + UnkStruct_02011e10_Sub1 *temp_r2; + int temp_r5; + int temp_r7; + int temp_r0; + + func_020013ac(this->mUnk_00[0]); + temp_r2 = this->mUnk_00[0]; + + temp_r5 = ((uintptr_t) temp_r2->mUnk_1C - (uintptr_t) temp_r2); //! TODO: fake match? + temp_r7 = func_02027818(0); + temp_r7 += temp_r5; + + temp_r0 = func_0202780c(0); + this->mUnk_00[1] = func_02001098(temp_r7, temp_r0 - temp_r7, 2); + this->mUnk_5C = func_020011f4(); + func_0202793c(0, temp_r0); + this->mUnk_74 = 1; +} + +ARM UnkStruct_ov000_020b4ec4::UnkStruct_ov000_020b4ec4() {} + +ARM UnkStruct_02049b80::UnkStruct_02049b80() { + this->mUnk_08 = this; + + for (int i = 0; i < ARRAY_LEN(this->mUnk_0C); i++) { + this->mUnk_0C[i] = 0; + this->mUnk_1C[i] = 0; + } +} + +ARM UnkStruct_02049b18_06::UnkStruct_02049b18_06() { + unk8 auStack_18[8]; + + func_020141dc(&this->mUnk_00); + func_0202e820(); + + if (func_020271b0() != 0) { + func_0202e8f8(NULL); + } else if (func_0202e864(auStack_18) != 0) { + func_0202e8f8(auStack_18); + } +} + +ARM UnkStruct_0204e64c_00::UnkStruct_0204e64c_00() { + this->mUnk_04 = 0; + this->mUnk_06 = 0; + this->mUnk_08 = 0; + this->mUnk_0A = 0; + this->mUnk_0B = 0; + this->mUnk_0C = 0; +} + +ARM UnkStruct_0204e64c::UnkStruct_0204e64c() { + this->mUnk_16 = 0; +} + +ARM GameModeStartUp *UnkStruct_02049a2c::func_ov018_020c4ba8() { + static GameModeStartUp data_ov018_020c5bd4; + return &data_ov018_020c5bd4; +} + +ARM GameModeStartUp::GameModeStartUp() { + this->mUnk_28 = 0; + this->mUnk_2A = 0; + data_0204a110.func_02018c78(1); + data_0204a110.func_ov018_020c5300(); + + if (data_ov018_020c5bc0 == 0) { + UnkStruct2 stack_narc("Screen/Bg/Nlogo.bin", 1); + stack_narc.func_020154ec("NLG"); + UnkResult stack_allrights("NLG:AllRights"); + UnkResult stack_logo("NLG:Nlogo"); + + func_0200a7b0(0, stack_allrights.mUnk_00, stack_allrights.mUnk_04, stack_allrights.mUnk_08, 0, 0, 0, 2); + func_0200a7b0(4, stack_logo.mUnk_00, stack_logo.mUnk_04, stack_logo.mUnk_08, 0, 0, 0, 2); + + this->mUnk_04.mUnk_14 = 0x00010000; + this->mUnk_04.func_0201bba4(0, 0x14); + } else { + this->mUnk_04.func_0201bba4(0, 0x01); + } + + data_0204e5f8.func_0201b9a8(&this->mUnk_04); +} + +ARM void GameModeStartUp::vfunc_0C() { + if (this->mUnk_04.mUnk_0D == this->mUnk_04.mUnk_10) { + if (this->mUnk_28 == 0) { + 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); + + if (data_ov018_020c5bc0 != 0) { + data_0204a060.func_0201bb84(1, 0, 1); + } + } + + this->mUnk_28++; + } +} + +ARM void GameModeStartUp::vfunc_20() {} diff --git a/src/018_StartUp/StartUpInitializers.cpp b/src/018_StartUp/StartUpInitializers.cpp new file mode 100644 index 00000000..443d0b79 --- /dev/null +++ b/src/018_StartUp/StartUpInitializers.cpp @@ -0,0 +1,478 @@ +#include "Save/SaveManager.hpp" +#include "System/Random.hpp" +#include "System/SysFault.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkMemFuncs.h" +#include "Unknown/UnkStruct_02049f04.hpp" +#include "Unknown/UnkStruct_0204a060.hpp" +#include "Unknown/UnkStruct_0204a090.hpp" +#include "Unknown/UnkStruct_0204a110.hpp" +#include "Unknown/UnkStruct_0204af1c.hpp" +#include "Unknown/UnkStruct_0204e5f8.hpp" +#include "Unknown/UnkStruct_0204e640.hpp" +#include "Unknown/UnkStruct_ov000_020b4eec.hpp" +#include "Unknown/UnkStruct_ov000_020b4f84.hpp" +#include "Unknown/UnkStruct_ov000_020b50c0.hpp" +#include "Unknown/UnkStruct_ov000_020b51b8.hpp" +#include "Unknown/UnkStruct_ov000_020b52b4.hpp" +#include "Unknown/UnkStruct_ov000_020b52e8.hpp" +#include "Unknown/UnkStruct_ov000_020b5340.hpp" +#include "regs.h" +#include "versions.h" + +#pragma dont_reuse_strings off + +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); +unk32 func_020313b4(unk32 param1); +unk32 func_020312b8(void *param1, void *param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6, unk32 param7, + unk32 param8, unk32 param9); +unk32 func_02030cfc(); +void func_0201bdd0(); +void func_020261f0(unk32 param1, void *param2); +void func_02002354(); +void func_02004a00(unk32 param1); +void func_02004d2c(unk32 param1, unk32 param2); +void func_02001778(unk32 param1); +void func_02003f98(unk32 param1, unk32 param2); +void func_02002184(unk32 param1); +void func_0202ee0c(); +void func_0202f910(unk32 param1); +void func_0202f958(unk32 param1); +void func_02005030(void *param1); +void func_02002c80(void *param1); +void func_02002b08(void *param1, unk32 param2); +void func_0202ff34(); +} + +ARM void func_ov018_020c4e8c(void) { + func_0202ff34(); + gRandom.Init(); + data_0204999c.func_ov018_020c4980(); + data_02049984.func_ov018_020c4840(); +} + +THUMB UnkStruct_0204a060::UnkStruct_0204a060() { + this->callback = NULL; +} + +ARM UnkStruct_ov000_020b4eec::UnkStruct_ov000_020b4eec() { + this->mUnk_00 = 0; + Fill32(0, this->mUnk_04, sizeof(this->mUnk_04)); +} + +ARM UnkStruct_ov000_020b4f84::UnkStruct_ov000_020b4f84() { + // fake match? + int *arg0 = 0; + this->mUnk_C0 = (int) arg0 + 1; + + this->func_ov000_0206667c(0, 0); + + if (func_02014fe0() == 0) { + this->func_ov000_0206667c(1, 0); + } +} + +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; + this->mUnk_000 = new(HeapIndex_0) UnkStruct_ov000_020b504c_Sub3(0x21); + + Fill32(0, this->mUnk_00C, sizeof(this->mUnk_00C)); + + this->mUnk_000->func_ov000_020676f8("regular", 0); + + for (int i = 0; i < ARRAY_LEN(this->mUnk_06C); i++) { + this->mUnk_06C[i] = 0; + } + + this->mUnk_06E = 0; + + for (int i = 0; i < ARRAY_LEN(this->mUnk_00C); i++) { + this->mUnk_00C[i].mUnk_00 = 0; + } + + this->mUnk_028 = 0; + this->mUnk_02C = 0; +} + +struct stack_struct { + /* 00 */ unk32 mUnk_00; + /* 04 */ u16 mUnk_04; + /* 08 */ unk8 mUnk_06[0x14]; + /* 1C */ unk32 mUnk_1C; + + bool UnkCheck() { + return this->mUnk_00 == 0x0C1D2E3F && this->mUnk_1C == 0xF4E5D6C7 && this->mUnk_04 >= 0x1A; + } +}; + +// non-matching +ARM SaveManager::SaveManager() { + this->mUnk_210 = 0; + this->mUnk_000 = NULL; + this->mUnk_206 = 0xFFFF; + this->mUnk_208 = 0xFFFF; + this->mUnk_20A = 0; + this->mUnk_214 = 0; + this->mpSaveFile = NULL; + this->mUnk_244 = 0; + + func_020327c8(this->mUnk_004, 0x1021); + + this->mUnk_204 = func_02026738(); + int uVar8 = 1; + func_02030d48(this->mUnk_204); + + if (func_020313b4(0x1402) != 0) { + stack_struct stack[MAX_SAVE_SLOTS]; + int cVar1; + + if (func_020312b8((void *) 0xF4E00, &stack[0], 0x40, 0, 0, 0, 6, 1, 0) == 1) { + if (!stack[0].UnkCheck() && !stack[1].UnkCheck()) { + cVar1 = 1; + } else { + cVar1 = 0; + } + + this->mUnk_20A = cVar1; + + if ((cVar1 & 0xFF) == 0) { + if (!stack[0].UnkCheck() || !stack[1].UnkCheck()) { + stack[0].mUnk_00 = 0x0C1D2E3F; + stack[0].mUnk_1C = 0xF4E5D6C7; + stack[0].mUnk_04 = 0x1A; + Fill16(0, (u16 *) stack[0].mUnk_06, 0x16); + + stack[1].mUnk_00 = 0x0C1D2E3F; + stack[1].mUnk_1C = 0xF4E5D6C7; + stack[1].mUnk_04 = 0x1A; + Fill16(0, (u16 *) stack[1].mUnk_06, 0x16); + + uVar8 = 2; + func_020312b8(stack, (void *) 0xF4E00, 0x40, 0, 0, 0, 7, 10, 2); + } + } + } + } + + this->mUnk_20C = func_02030cfc(); + func_02030d58(this->mUnk_204); + + if (this->mUnk_20C != 0) { + this->mUnk_214 = uVar8; + } +} + +ARM UnkStruct_0204a110::UnkStruct_0204a110() : + mUnk_000(0), + mUnk_008(-1), + mUnk_00C(-1), + mUnk_DEC(0), + mUnk_DF2(-1), + mUnk_DF3(-1), + mUnk_DFC(0), + mUnk_DFD(0), + mUnk_DFE(0), + mUnk_DFF(0), + mUnk_E00(0) { + this->mUnk_DF0 = 0; + this->mUnk_E02 = 0; + this->mUnk_E04 = 0; + data_0204a090.func_020073ac(8); +} + +ARM void UnkStruct_0204a110::func_ov018_020c5300() { + func_02018c90(2); + this->mUnk_010.func_0201c890(0x0004800, 0x00016800, 1, 1, 0); + func_02023548(); + REG_DISPCNT_SUB |= 0x00010000; +} + +ARM UnkStruct_0204e640::UnkStruct_0204e640() { + this->mUnk_00 = 0; + this->mUnk_04 = 0; + func_020261f0(2, func_0201bdd0); +} + +ARM UnkStruct_0204af1c::UnkStruct_0204af1c() { + Fill16(0, (u16 *) this->mUnk_2920, sizeof(this->mUnk_2920)); + + for (u32 i = 0; i < ARRAY_LEN(this->mUnk_0000); i++) { + this->mUnk_0000[i].func_0201af10(i); + } + + this->func_0201a800(); +} + +ARM UnkStruct_0204e5f8::UnkStruct_0204e5f8() : + mUnk_18(0) { + this->mUnk_10 = 0; + this->mUnk_14 = 0; + this->mUnk_38 = 1; + this->mUnk_39 = 1; + + REG_WININ = (REG_WININ & ~0x3F) | 0x3F; + REG_WINOUT = (REG_WINOUT & ~0x3F) | 0x30; + REG_WININ_SUB = (REG_WININ_SUB & ~0x3F) | 0x3F; + REG_WINOUT_SUB = (REG_WINOUT_SUB & ~0x3F) | 0x30; +} + +ARM UnkStruct_0204a110_Sub3::UnkStruct_0204a110_Sub3() { + for (u32 i = 0; i < ARRAY_LEN(this->mUnk_00); i++) { + this->mUnk_400[i].mUnk_00 = 0; + this->mUnk_400[i].mUnk_04 = 0; + this->mUnk_400[i].mUnk_08 = 0; + this->mUnk_400[i].mUnk_0C = &this->mUnk_00[i]; + this->mUnk_420[i] = 0; + } +} + +ARM UnkStruct_0204a110_Sub2::UnkStruct_0204a110_Sub2() { + u32 i; + int j; + UnkStruct_0204a110_Sub2_158 *pUnk158; + + for (i = 0; i < 2; i++) { + this->mUnk_000[i] = 0; + this->mUnk_008[i] = 0; + this->mUnk_010[i] = 0; + this->mUnk_018[i] = 0; + this->mUnk_024[i] = 0; + this->mUnk_02C[i] = 0; + this->mUnk_034[i] = 0; + this->mUnk_03C[i] = 0; + this->mUnk_044[i] = 0; + this->mUnk_150[i] = -1; + this->mUnk_358[i] = -1; + + pUnk158 = this->mUnk_158[i]; + for (j = 0; j < ARRAY_LEN(this->mUnk_158[i]); j++) { + pUnk158[j].mUnk_0C = 0; + } + } +} + +ARM UnkStruct_0204a110_Sub6::UnkStruct_0204a110_Sub6() { + this->mUnk_04 = 1; + this->mUnk_08 = 0; + this->mUnk_0C = -1; + this->mUnk_0E = 0; + this->mUnk_10 = 0; + this->mUnk_12 = 0; + this->mUnk_13 = 0; +} + +ARM UnkStruct_0204a110_Sub7::UnkStruct_0204a110_Sub7() { + this->mUnk_00 = 0; + this->mUnk_01 = 0; + this->mUnk_0C = data_027e0120; + this->mUnk_04 = new(HeapIndex_0) UnkSystem2_UnkSubSystem9(); + this->mUnk_08 = new(HeapIndex_0) UnkStruct_0204a110_Sub7_08(); +} + +ARM UnkStruct_0204a110_Sub8::UnkStruct_0204a110_Sub8() { + this->mUnk_00 = 1; + this->mUnk_04 = 0; + this->mUnk_08 = 0; + this->mUnk_0C = new(HeapIndex_0) UnkSystem2_UnkSubSystem9(); +} + +ARM UnkStruct_02049f04::UnkStruct_02049f04() { + Fill32(0, this->mUnk_00, sizeof(this->mUnk_00)); + this->mUnk_80 = 0; +} + +ARM UnkStruct_ov000_020b50c0::UnkStruct_ov000_020b50c0() { + this->mUnk_94 = 0; + this->mUnk_98 = 0; + this->mUnk_9C = 2; + this->mUnk_9E = 0; + this->mUnk_9F = 0; + this->mUnk_A0 = 0; + this->mUnk_A1 = 0; + this->mUnk_A2 = 0; + this->mUnk_A3 = 0; + this->mUnk_A4 = -1; + this->mUnk_CC = 0; + this->mUnk_D0 = 0; + this->mUnk_D4 = 0; + this->mUnk_D8 = 0; + this->mUnk_DC = 0; + this->mUnk_E0 = 0; + this->mUnk_E4 = 0; + + for (int i = 0; i < ARRAY_LEN(this->mUnk_A8); i++) { + this->mUnk_A8[i] = 0; + } + + func_02002354(); + this->func_0200381c("SoundData/final_sound_data.sdat", data_0204999c.mUnk_24[0], 0); +} + +ARM UnkStruct_ov018_020c5ac0 *UnkStruct_ov000_020b50c0::func_ov018_020c5718() { + unk32 uVar1 = data_0204999c.mUnk_24[0]; + + data_ov000_020b51b8.func_ov018_020c5940(); + func_02004a00(uVar1); + func_02004d2c(0x0C, uVar1); + func_02001778(3); + this->mUnk_CC = this->func_ov000_0206a5d8(0x800); + this->mUnk_D0 = this->func_ov000_0206a5d8(0x400); + func_02003f98(1, uVar1); + this->mUnk_A8[1] = 1; + func_02002184(uVar1); + data_ov000_020b5300.func_ov018_020c583c(this->mUnk_D0); + data_ov000_020b5340.func_ov018_020c57fc(); + data_ov000_020b5340.func_ov000_0206ffc0(); + return UnkStruct_ov018_020c5ac0::Create(); +} + +ARM UnkStruct_ov000_020b5340::UnkStruct_ov000_020b5340() : + mUnk_04(0), + mUnk_05(0), + mUnk_08(-1), + mUnk_28(0), + mUnk_2C(0) { + func_0202ee0c(); + this->mUnk_00 = &data_ov000_020b5300; +} + +ARM void UnkStruct_ov000_020b5340::func_ov018_020c57fc() { + func_0202f910(1); + func_0202f958(3); +} + +ARM UnkStruct_ov000_020b5300::UnkStruct_ov000_020b5300() { + this->mUnk_1C = 0; + this->mUnk_20 = 0; + this->mUnk_24 = 0; + this->mUnk_28 = 0; + this->mUnk_29 = 0; + this->mUnk_2C = 0; + this->mUnk_30 = 0; + this->mUnk_34 = 0; +#if IS_JP + this->mUnk_38 = 0; + this->mUnk_3C = 0; +#endif +} + +ARM void UnkStruct_ov000_020b5300::func_ov018_020c583c(unk32 param1) { + this->mUnk_1C = param1; + this->mUnk_00 = 0; + this->mUnk_04 = param1; + this->mUnk_08 = 0x0400; + this->mUnk_0C = 0x105D; + this->mUnk_10 = 1; + this->mUnk_14 = 0; + this->mUnk_18 = 0; +} + +ARM UnkStruct_ov000_020b51b8::UnkStruct_ov000_020b51b8() { + this->mUnk_18 = 0x7F; + this->mUnk_1C = 0; + this->mUnk_1E = 0; + this->mUnk_20 = 0; + this->mUnk_24 = 0; + this->mUnk_28 = 0; + this->mUnk_2C = 0; + this->mUnk_30 = 0x18; + this->mUnk_34 = -1; + this->mUnk_38 = -1; + this->mUnk_40 = 0; + this->mUnk_41 = 0; + this->mUnk_44 = 0; + this->mUnk_48 = 1; + this->mUnk_4C = -1; + this->mUnk_50 = 0; + this->mUnk_54 = 0; + this->mUnk_56 = 0x7F; + + for (int i = 0; i < ARRAY_LEN(this->mUnk_08); i++) { + func_02002c80(&this->mUnk_08[i]); + } + + func_02005030(&this->mUnk_14); +} + +ARM UnkStruct_ov000_020b51b8::~UnkStruct_ov000_020b51b8() { + delete this->mUnk_00; + delete this->mUnk_04; +} + +ARM void UnkStruct_ov000_020b51b8::func_ov018_020c5940() { + this->mUnk_00 = new(HeapIndex_1) UnkStruct_ov000_020b51b8_00(&this->mUnk_08[0]); + this->mUnk_04 = new(HeapIndex_1) UnkStruct_ov000_020b51b8_04(&this->mUnk_08[1]); + + this->mUnk_00->vfunc_0C(0); + this->mUnk_04->vfunc_0C(0); +} + +ARM UnkStruct_ov000_020b5214::UnkStruct_ov000_020b5214() { + this->mUnk_64 = 0; + this->mUnk_66 = 0; + this->mUnk_67 = 0; + this->mUnk_68 = -1; + this->mUnk_6C = 0x7F; + this->mUnk_90 = 0; + this->mUnk_94 = 0; + this->mUnk_95 = 0; + this->mUnk_98 = 0; + + func_02002c80(this); + + for (int i = 0; i < ARRAY_LEN(this->mUnk_70); i++) { + this->mUnk_70[i].mUnk_00 = 0; + } +} + +ARM UnkStruct_ov000_020b52b4::UnkStruct_ov000_020b52b4() { + this->mUnk_00 = 0; + this->mUnk_10 = 0; + this->mUnk_18 = 0; + this->mUnk_1C = 0x10; + this->mUnk_20 = 0x10; + this->func_ov000_0206f6ac(); +} + +ARM UnkStruct_ov000_020b52e8::UnkStruct_ov000_020b52e8() : + mUnk_0C(-1), + mUnk_10(0), + mUnk_12(0), + mUnk_13(0) { + func_02002c80(this); + this->mUnk_04 = 0; + this->mUnk_08 = 0; +} + +ARM UnkStruct_ov000_020b52e8::~UnkStruct_ov000_020b52e8() { + func_02002b08(this, 1); +} + +ARM UnkStruct_ov018_020c5ac0::UnkStruct_ov018_020c5ac0() { + this->SetInstance(); + this->mUnk_00 = 0; + this->mUnk_01 = 0; + this->mUnk_02 = 0; +} + +ARM UnkStruct_ov018_020c5ac0 *UnkStruct_ov018_020c5ac0::Create() { + return new(HeapIndex_1) UnkStruct_ov018_020c5ac0(); +} + +ARM void UnkStruct_ov018_020c5ac0::SetInstance() { + data_027e099c = this; +} diff --git a/src/019_MainSelect/FileSelectManager_164.cpp b/src/019_MainSelect/FileSelectManager_164.cpp index 265e7c71..802d494f 100644 --- a/src/019_MainSelect/FileSelectManager_164.cpp +++ b/src/019_MainSelect/FileSelectManager_164.cpp @@ -30,7 +30,7 @@ ARM void FileSelectManager_164::vfunc_0C(unk32 param1) { if (param1 == 0) { switch (this->mUnk_0C) { case 0: - if (this->mUnk_10->func_ov019_020cb748() && !data_0204a110.mUnk_DE8->UnkCheck1()) { + if (this->mUnk_10->func_ov019_020cb748() && !data_0204a110.mUnk_DDC.mUnk_0C->UnkCheck1()) { data_0204a088->func_ov000_02061224(); this->mUnk_0C = 1; } @@ -75,7 +75,7 @@ ARM void FileSelectManager_164::vfunc_1C(unk32 param1) { if (param1 == 0) { switch (this->mUnk_0C) { case 1: - if (gpFSOptionsManager->func_ov019_020cc874() != 0 && !data_0204a110.mUnk_DE8->UnkCheck1()) { + if (gpFSOptionsManager->func_ov019_020cc874() != 0 && !data_0204a110.mUnk_DDC.mUnk_0C->UnkCheck1()) { data_0204a088->func_ov000_02061224(); this->mUnk_0C = 0; } diff --git a/src/019_MainSelect/FileSelectSubScreen.cpp b/src/019_MainSelect/FileSelectSubScreen.cpp index e105b1d8..78214d6b 100644 --- a/src/019_MainSelect/FileSelectSubScreen.cpp +++ b/src/019_MainSelect/FileSelectSubScreen.cpp @@ -27,16 +27,6 @@ static unk8 data_ov019_021094cc[0xDC00]; const unk32 data_ov019_020d1bcc[] = {0x00010000, 0x00000002}; -class UnkStruct2 { -public: - /* 00 */ unk8 mUnk_00[0x10]; - /* 10 */ - - UnkStruct2(const char *path, unk32 param2); - ~UnkStruct2(); - void func_020154ec(const char *param1); -}; - ARM FileSelectSubScreen::FileSelectSubScreen() : mUnk_001C(0), mUnk_0020(0), diff --git a/src/110_PlayerGet/PlayerGet.cpp b/src/110_PlayerGet/PlayerGet.cpp index a34d247d..61ba2f32 100644 --- a/src/110_PlayerGet/PlayerGet.cpp +++ b/src/110_PlayerGet/PlayerGet.cpp @@ -743,7 +743,7 @@ ARM void PlayerGet::vfunc_10(unk32 param1) { temp_r5 = data_027e0cd8->mUnk_0c->func_ov000_02080a44(); - if (data_ov000_020b51b8.mUnk_10 != 0) { + if (data_ov000_020b51b8.mUnk_08[2] != NULL) { var_r0 = 1; } else { var_r0 = 0; diff --git a/src/Main/System/SysNew.cpp b/src/Main/System/SysNew.cpp index 6d747e5b..a2fe20d7 100644 --- a/src/Main/System/SysNew.cpp +++ b/src/Main/System/SysNew.cpp @@ -2,6 +2,8 @@ #include "System/SysFault.hpp" #include "global.h" +#pragma dont_reuse_strings off + extern "C" { void *func_02001654(void); void *func_020145b0(UnkId *, s32); @@ -72,7 +74,7 @@ ARM void *func_02011f30(s32 length) { } // non-matching -ARM void *SysObject::operator new(unsigned long length, u32 id, u32 idLength) { +ARM void *operator new(unsigned long length, u32 id, u32 idLength) { void *pvVar1; char *uVar2; u16 line; @@ -85,16 +87,11 @@ ARM void *SysObject::operator new(unsigned long length, u32 id, u32 idLength) { if (pvVar1 == NULL) { if (id == 1) { func_020011f4(pUVar5); - uVar2 = data_0204372c[id]; - uVar4 = "%sノメモリガタリマセン.\nサイズ=%d\nノコリ =%d"; - line = 183; + data_02049984.func_020125a4(__FILE__, 183, "%sノメモリガタリマセン.\nサイズ=%d\nノコリ =%d", data_0204372c[id], + length); } else if (id == 0) { - uVar2 = data_0204372c[id]; - uVar4 = "%sノメモリガタリマセン.\nサイズ=%d"; - line = 187; + data_02049984.func_020125a4(__FILE__, 187, "%sノメモリガタリマセン.\nサイズ=%d", data_0204372c[id], length); } - - data_02049984.func_020125a4(__FILE__, line, uVar4, uVar2, length); } return pvVar1; @@ -107,3 +104,7 @@ ARM void SysObject::operator delete(void *ptr) { ARM void SysObject::operator delete[](void *ptr) { SysDelete(ptr); } + +void dummy() { + ::operator new(1, 1); +} diff --git a/tools/new_class.py b/tools/new_class.py new file mode 100755 index 00000000..79f54ec8 --- /dev/null +++ b/tools/new_class.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 + +import argparse + +from pathlib import Path + +INDENT = " " * 4 + +def main(): + parser = argparse.ArgumentParser(description="Add new header") + parser.add_argument("--suffix", "-s", dest="suffix", help="Suffix") + parser.add_argument("--pointer", "-p", dest="pointer", help="Make the symbol a pointer", action="store_true", default=False) + parser.add_argument("--base", "-b", dest="base", help="Add a base class", action="store_true", default=False) + args = parser.parse_args() + + name = f"UnkStruct_{args.suffix}" + + base_class_def = ( + f"class {name}_Base " + + "{\n" + + "public:\n" + + f"{INDENT}{name}_Base();\n" + + f"{INDENT}~{name}_Base();\n" + + "};\n" + ) + + class_def = ( + f"class {name} {f': public {name}_Base ' if args.base else ''}" + + "{\n" + + "public:\n" + + f"{INDENT}/* 00 */ unk32 mUnk_00;\n\n" + + f"{INDENT}{name}();\n" + + f"{INDENT}~{name}();\n" + + "};\n" + ) + + content = [ + "#pragma once\n", + '#include "global.h"', + '#include "types.h"\n', + base_class_def if args.base else "", + class_def, + f"extern {name} {'*' if args.pointer else ''}data_{args.suffix};" + ] + + new_path = Path(f"include/Unknown/{name}.hpp") + new_path.write_text("\n".join(line for line in content if len(line) > 0) + "\n") + + +if __name__ == "__main__": + main()