diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index 26b32b43..738730c9 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -14,7 +14,9 @@ libs/nns/src/g3d/sbc.c: .text start:0x0200c8cc end:0x0200e2ec src/Main/System/SysNew.cpp: + complete .text start:0x02011e10 end:0x0201200c + .data start:0x020434f0 end:0x02043550 src/Main/System/SysFault.cpp: .text start:0x020127f0 end:0x02012b00 diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 6a6116a4..7141dd3e 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -31,12 +31,12 @@ func_ov000_02054648 kind:function(arm,size=0x24) addr:0x02054648 func_ov000_0205466c kind:function(arm,size=0x24) addr:0x0205466c func_ov000_02054690 kind:function(thumb,size=0x108) addr:0x02054690 func_ov000_02054798 kind:function(thumb,size=0x1f4) addr:0x02054798 -func_ov000_0205498c kind:function(thumb,size=0xc) addr:0x0205498c -func_ov000_02054998 kind:function(thumb,size=0xc) addr:0x02054998 +_ZN24UnkStruct_027e0cec_18_0419func_ov000_0205498cEPv kind:function(thumb,size=0xc) addr:0x0205498c +_ZN24UnkStruct_027e0cec_18_0419func_ov000_02054998EPv kind:function(thumb,size=0xc) addr:0x02054998 func_ov000_020549a4 kind:function(thumb,size=0x70) addr:0x020549a4 func_ov000_02054a14 kind:function(thumb,size=0x64) addr:0x02054a14 -func_ov000_02054a78 kind:function(thumb,size=0x10) addr:0x02054a78 -func_ov000_02054a88 kind:function(thumb,size=0x10) addr:0x02054a88 +_ZN24UnkStruct_027e0cec_18_0419func_ov000_02054a78Ev kind:function(thumb,size=0x10) addr:0x02054a78 +_ZN24UnkStruct_027e0cec_18_0419func_ov000_02054a88Ev kind:function(thumb,size=0x10) addr:0x02054a88 func_ov000_02054a98 kind:function(arm,size=0x8c) addr:0x02054a98 func_ov000_02054b24 kind:function(arm,size=0x78) addr:0x02054b24 func_ov000_02054b9c kind:function(arm,size=0x4c) addr:0x02054b9c @@ -164,7 +164,7 @@ func_ov000_02058be8 kind:function(arm,size=0x14) addr:0x02058be8 _ZN19func_ov000_02058bfcD1Ev kind:function(arm,size=0x14) addr:0x02058bfc _ZN19func_ov000_02058c10D0Ev kind:function(arm,size=0x1c) addr:0x02058c10 func_ov000_02058c2c kind:function(thumb,size=0x1c) addr:0x02058c2c -func_ov000_02058c48 kind:function(thumb,size=0x2c) addr:0x02058c48 +_ZN21UnkStruct_027e0d00_00C1Eiiih kind:function(thumb,size=0x2c) addr:0x02058c48 func_ov000_02058c74 kind:function(thumb,size=0x7c) addr:0x02058c74 func_ov000_02058cf0 kind:function(thumb,size=0x2c) addr:0x02058cf0 func_ov000_02058d1c kind:function(thumb,size=0x104) addr:0x02058d1c @@ -1039,9 +1039,9 @@ _ZN19func_ov000_020712a4D1Ev kind:function(arm,size=0x14) addr:0x020712a4 _ZN19func_ov000_020712b8D0Ev kind:function(arm,size=0x1c) addr:0x020712b8 func_ov000_020712d4 kind:function(arm,size=0x14) addr:0x020712d4 _ZN19func_ov000_020712e8D0Ev kind:function(arm,size=0x1c) addr:0x020712e8 -func_ov000_02071304 kind:function(arm,size=0x24) addr:0x02071304 +_ZN18UnkStruct_027e09a86CreateEv kind:function(arm,size=0x24) addr:0x02071304 func_ov000_02071328 kind:function(arm,size=0x94) addr:0x02071328 -func_ov000_020713bc kind:function(arm,size=0xc) addr:0x020713bc +_ZN18UnkStruct_027e09a819func_ov000_020713bcEv kind:function(arm,size=0xc) addr:0x020713bc func_ov000_020713c8 kind:function(arm,size=0x84) addr:0x020713c8 func_ov000_0207144c kind:function(arm,size=0x30) addr:0x0207144c func_ov000_0207147c kind:function(arm,size=0x118) addr:0x0207147c @@ -1083,12 +1083,12 @@ func_ov000_0207269c kind:function(arm,size=0x54) addr:0x0207269c _ZN18UnkStruct_027e09ac19func_ov000_020726f0Etii kind:function(arm,size=0x2d4) addr:0x020726f0 _ZN18UnkStruct_027e09ac19func_ov000_020729c4EP21UnkStruct_027e09ac_14ttss kind:function(arm,size=0x88) addr:0x020729c4 func_ov000_02072a4c kind:function(arm,size=0xbc) addr:0x02072a4c -func_ov000_02072b08 kind:function(arm,size=0x1c) addr:0x02072b08 +_ZN18UnkStruct_027e09ac19func_ov000_02072b08Eii kind:function(arm,size=0x1c) addr:0x02072b08 func_ov000_02072b24 kind:function(arm,size=0xc) addr:0x02072b24 func_ov000_02072b30 kind:function(arm,size=0x78) addr:0x02072b30 -func_ov000_02072ba8 kind:function(arm,size=0x24) addr:0x02072ba8 +_ZN18UnkStruct_027e09b06CreateEv kind:function(arm,size=0x24) addr:0x02072ba8 func_ov000_02072bcc kind:function(arm,size=0xa4) addr:0x02072bcc -func_ov000_02072c70 kind:function(arm,size=0x44) addr:0x02072c70 +_ZN18UnkStruct_027e09b0D1Ev kind:function(arm,size=0x44) addr:0x02072c70 func_ov000_02072cb4 kind:function(arm,size=0x10) addr:0x02072cb4 _ZN18UnkStruct_027e09b019func_ov000_02072cc4Eii kind:function(arm,size=0x10) addr:0x02072cc4 func_ov000_02072cd4 kind:function(arm,size=0x24) addr:0x02072cd4 @@ -1099,7 +1099,7 @@ func_ov000_02072d3c kind:function(arm,size=0x2c) addr:0x02072d3c func_ov000_02072d68 kind:function(arm,size=0x7c) addr:0x02072d68 func_ov000_02072de4 kind:function(arm,size=0x60) addr:0x02072de4 func_ov000_02072e44 kind:function(arm,size=0x114) addr:0x02072e44 -func_ov000_02072f58 kind:function(arm,size=0x40) addr:0x02072f58 +_ZN23UnkStruct_027e09ac_BaseC2Ev kind:function(arm,size=0x40) addr:0x02072f58 func_ov000_02072f98 kind:function(arm,size=0x24) addr:0x02072f98 func_ov000_02072fbc kind:function(arm,size=0x14) addr:0x02072fbc func_ov000_02072fd0 kind:function(arm,size=0xb0) addr:0x02072fd0 @@ -2227,7 +2227,7 @@ func_ov000_020969b4 kind:function(arm,size=0xe8) addr:0x020969b4 _ZN29UnkStruct_027e0ce0_40_Base_1419func_ov000_02096a9cEv kind:function(arm,size=0x58) addr:0x02096a9c func_ov000_02096af4 kind:function(arm,size=0x28) addr:0x02096af4 func_ov000_02096b1c kind:function(arm,size=0x78) addr:0x02096b1c -func_ov000_02096b94 kind:function(arm,size=0x14) addr:0x02096b94 +_ZN9PassengerC1Ev kind:function(arm,size=0x14) addr:0x02096b94 _ZN9Passenger5ResetEv kind:function(arm,size=0x24) addr:0x02096ba8 func_ov000_02096bcc kind:function(arm,size=0x48) addr:0x02096bcc _ZN27SaveFile_00000_0000_Data_D8C1Ev kind:function(arm,size=0x14) addr:0x02096c14 @@ -2687,7 +2687,7 @@ func_ov000_020a038c kind:function(arm,size=0x24) addr:0x020a038c func_ov000_020a03b0 kind:function(arm,size=0x3c) addr:0x020a03b0 func_ov000_020a03ec kind:function(arm,size=0x4c) addr:0x020a03ec func_ov000_020a0438 kind:function(arm,size=0x28) addr:0x020a0438 -func_ov000_020a0460 kind:function(thumb,size=0x32) addr:0x020a0460 +_ZN21UnkStruct_027e0cec_1819func_ov000_020a0460Ev kind:function(thumb,size=0x32) addr:0x020a0460 func_ov000_020a0494 kind:function(arm,size=0x20) addr:0x020a0494 func_ov000_020a04b4 kind:function(arm,size=0x5c) addr:0x020a04b4 func_ov000_020a0510 kind:function(arm,size=0x2c4) addr:0x020a0510 @@ -2703,7 +2703,7 @@ _ZN11SaveManager19func_ov000_020a0b70EPvi kind:function(thumb,size=0xa8) addr:0x func_ov000_020a0c18 kind:function(thumb,size=0x2c) addr:0x020a0c18 func_ov000_020a0c44 kind:function(thumb,size=0x34) addr:0x020a0c44 func_ov000_020a0c78 kind:function(thumb,size=0x7c) addr:0x020a0c78 -func_ov000_020a0cf4 kind:function(thumb,size=0x26) addr:0x020a0cf4 +_ZN27SaveFile_00000_0000_Data_D819func_ov000_020a0cf4Ev kind:function(thumb,size=0x26) addr:0x020a0cf4 func_ov000_020a0d1c kind:function(thumb,size=0x30) addr:0x020a0d1c func_ov000_020a0d4c kind:function(thumb,size=0x5c) addr:0x020a0d4c func_ov000_020a0da8 kind:function(thumb,size=0xb0) addr:0x020a0da8 diff --git a/config/eur/arm9/overlays/ov001/delinks.txt b/config/eur/arm9/overlays/ov001/delinks.txt index 6b8005c0..c97bf07d 100644 --- a/config/eur/arm9/overlays/ov001/delinks.txt +++ b/config/eur/arm9/overlays/ov001/delinks.txt @@ -135,21 +135,30 @@ src/001_SceneInit/UnkStruct_ov000_020b504c_001.cpp: .data start:0x020c2c80 end:0x020c2dec src/001_SceneInit/UnkStruct_027e09b4_001.cpp: + complete .text start:0x020bea40 end:0x020beae4 src/001_SceneInit/UnkStruct_027e09ac_001.cpp: + complete .text start:0x020beae4 end:0x020bed14 + .data start:0x020c2dec end:0x020c2e2c src/001_SceneInit/UnkStruct_027e0cec_001.cpp: + complete .text start:0x020bed14 end:0x020bf0a0 + .data start:0x020c2e2c end:0x020c2fc4 -src/001_SceneInit/code_020bf0a0.cpp: +src/001_SceneInit/UnkStruct_027e0cec_18_001.cpp: + complete .text start:0x020bf0a0 end:0x020bf1b8 + .data start:0x020c2fc4 end:0x020c2fd4 src/001_SceneInit/UnkStruct_027e0ce0_34_001.cpp: + complete .text start:0x020bf1b8 end:0x020bf4ac src/001_SceneInit/UnkStruct_027e0d00_001.cpp: + complete .text start:0x020bf4ac end:0x020bf800 src/001_SceneInit/CargoManager_001.cpp: @@ -157,16 +166,24 @@ src/001_SceneInit/CargoManager_001.cpp: .text start:0x020bf800 end:0x020bf870 src/001_SceneInit/PassengerManager_001.cpp: + complete .text start:0x020bf870 end:0x020bfa50 src/001_SceneInit/UnkStruct_027e0cf8_08_00_001.cpp: + complete .text start:0x020bfa50 end:0x020bfcc0 src/001_SceneInit/UnkStruct_ov020_020e8544_001.cpp: + complete .text start:0x020bfcc0 end:0x020bfdd0 src/001_SceneInit/code_020bfdd0.cpp: - .text start:0x020bfdd0 end:0x020bff74 + complete + .text start:0x020bfdd0 end:0x020bfeec + +src/001_SceneInit/code_020bfeec.cpp: + complete + .text start:0x020bfeec end:0x020bff74 src/001_SceneInit/Game/AdventureModeManager_001.cpp: .text start:0x020bff74 end:0x020c0944 @@ -176,4 +193,5 @@ src/001_SceneInit/Game/GameModeAdventure_001.cpp: .text start:0x020c0944 end:0x020c099c src/001_SceneInit/code_020c099c.cpp: + complete .text start:0x020c099c end:0x020c0a24 diff --git a/config/eur/arm9/overlays/ov001/relocs.txt b/config/eur/arm9/overlays/ov001/relocs.txt index 7896509b..3a6cd803 100644 --- a/config/eur/arm9/overlays/ov001/relocs.txt +++ b/config/eur/arm9/overlays/ov001/relocs.txt @@ -1917,7 +1917,7 @@ from:0x020bf01a kind:thumb_call_arm to:0x02016694 module:main from:0x020bf020 kind:thumb_call_arm to:0x020bf08c module:overlay(1) from:0x020bf038 kind:thumb_call to:0x020a0460 module:overlay(0) from:0x020bf054 kind:arm_call to:0x0201667c module:main -from:0x020bf078 kind:load to:0x020c3f38 module:overlay(17) +from:0x020bf078 kind:load to:0x020c3f30 module:overlay(17) add:0x8 from:0x020bf088 kind:load to:0x027e0cec module:dtcm from:0x020bf09c kind:load to:0x027e0cec module:dtcm from:0x020bf0ac kind:load to:0x0204999c module:main @@ -1934,7 +1934,7 @@ from:0x020bf154 kind:thumb_call to:0x02054a88 module:overlay(0) from:0x020bf176 kind:thumb_call_arm to:0x02011f3c module:main from:0x020bf182 kind:thumb_call_arm to:0x02028c60 module:main from:0x020bf18a kind:thumb_call to:0x02054998 module:overlay(0) -from:0x020bf194 kind:load to:0x020c2fcc module:overlay(1) +from:0x020bf194 kind:load to:0x020c2fc4 module:overlay(1) add:0x8 from:0x020bf198 kind:load to:0x027e09a4 module:dtcm from:0x020bf19c kind:load to:0x027e09a0 module:dtcm from:0x020bf1a0 kind:load to:0x020bf0a1 module:overlay(1) @@ -1968,7 +1968,7 @@ from:0x020bf320 kind:thumb_call_arm to:0x01ffd3d8 module:itcm from:0x020bf32a kind:thumb_call to:0x020d3d20 module:overlay(24) from:0x020bf332 kind:thumb_call to:0x020d3d80 module:overlay(24) from:0x020bf33e kind:thumb_call_arm to:0x0205c984 module:overlay(0) -from:0x020bf342 kind:thumb_call_arm to:0x020f4c9c module:overlays(21,26) +from:0x020bf342 kind:thumb_call_arm to:0x020f4c9c module:overlay(26) from:0x020bf354 kind:thumb_call_arm to:0x02011f3c module:main from:0x020bf35c kind:thumb_call_arm to:0x020eb4d0 module:overlay(26) from:0x020bf364 kind:load to:0x027e09b8 module:dtcm @@ -2114,18 +2114,18 @@ from:0x020bfdcc kind:load to:0x020e8544 module:overlay(20) from:0x020bfdda kind:thumb_call_arm to:0x02011ff4 module:main from:0x020bfdec kind:thumb_call_arm to:0x02011f3c module:main from:0x020bfe04 kind:load to:0x020c46f4 module:overlay(1) -from:0x020bfe08 kind:load to:0x020f1b5c module:overlays(22,23) +from:0x020bfe08 kind:load to:0x020f1b54 module:overlay(23) add:0x8 from:0x020bfe16 kind:thumb_call_arm to:0x02011ff4 module:main from:0x020bfe28 kind:thumb_call_arm to:0x02011f3c module:main from:0x020bfe40 kind:load to:0x020c46f4 module:overlay(1) -from:0x020bfe44 kind:load to:0x020f1b5c module:overlays(22,23) +from:0x020bfe44 kind:load to:0x020f1b54 module:overlay(23) add:0x8 from:0x020bfe52 kind:thumb_call_arm to:0x02011ff4 module:main from:0x020bfe64 kind:thumb_call_arm to:0x02011f3c module:main from:0x020bfe7c kind:load to:0x020c46f4 module:overlay(1) -from:0x020bfe80 kind:load to:0x020f1b5c module:overlays(22,23) +from:0x020bfe80 kind:load to:0x020f1b54 module:overlay(23) add:0x8 from:0x020bfe94 kind:thumb_call_arm to:0x02011f3c module:main from:0x020bfea8 kind:load to:0x020c46f4 module:overlay(1) -from:0x020bfeac kind:load to:0x020f1b74 module:overlay(23) +from:0x020bfeac kind:load to:0x020f1b6c module:overlay(23) add:0x8 from:0x020bfeb6 kind:thumb_call_arm to:0x020c1014 module:overlay(1) from:0x020bfebc kind:thumb_call_arm to:0x020c0f9c module:overlay(1) from:0x020bfec4 kind:thumb_call to:0x020bfe0c module:overlay(1) @@ -2315,9 +2315,7 @@ from:0x020c09ee kind:thumb_call_arm to:0x020c1014 module:overlay(1) from:0x020c0a18 kind:load to:0x020c099d module:overlay(1) from:0x020c0a1c kind:load to:0x020c09c1 module:overlay(1) from:0x020c0a20 kind:load to:0x020c46fc module:overlay(1) -from:0x020c0c40 kind:load to:0x020c2f4c module:overlay(1) from:0x020c0c44 kind:load to:0x020c2928 module:overlays(2,4) -from:0x020c0cf8 kind:load to:0x020c2fc4 module:overlay(1) from:0x020c0e9c kind:load to:0x020c4701 module:overlay(1) from:0x020c0f14 kind:load to:0x020c4701 module:overlay(1) from:0x020c0f8c kind:load to:0x020c4701 module:overlay(1) @@ -2325,8 +2323,6 @@ from:0x020c1004 kind:load to:0x020c4701 module:overlay(1) from:0x020c107c kind:load to:0x020c4701 module:overlay(1) from:0x020c10f4 kind:load to:0x020c4701 module:overlay(1) from:0x020c111c kind:load to:0x020c22ac module:overlay(1) -from:0x020c1224 kind:load to:0x020c2f4c module:overlay(1) -from:0x020c1338 kind:load to:0x020c2fc4 module:overlay(1) from:0x020c1590 kind:load to:0x020c4701 module:overlay(1) from:0x020c1608 kind:load to:0x020c4701 module:overlay(1) from:0x020c1680 kind:load to:0x020c4701 module:overlay(1) @@ -2340,10 +2336,8 @@ 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: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: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:0x020c1ef8 kind:load to:0x020c4701 module:overlay(1) @@ -2352,8 +2346,6 @@ from:0x020c20f8 kind:load to:0x020c4701 module:overlay(1) from:0x020c2100 kind:load to:0x020d22ea module:overlay(19) from:0x020c2170 kind:load to:0x020c4701 module:overlay(1) from:0x020c2178 kind:load to:0x020d22ea module:overlay(19) -from:0x020c21a0 kind:load to:0x020c2f4c module:overlay(1) -from:0x020c21a8 kind:load to:0x020c2fc4 module:overlay(1) from:0x020c258c kind:load to:0x020c5b4c module:overlay(20) from:0x020c2822 kind:thumb_call to:0x020b7430 module:overlay(1) from:0x020c2830 kind:load to:0x020c2fe0 module:overlay(1) diff --git a/config/eur/arm9/overlays/ov001/symbols.txt b/config/eur/arm9/overlays/ov001/symbols.txt index c9ad3c03..6ee2c840 100644 --- a/config/eur/arm9/overlays/ov001/symbols.txt +++ b/config/eur/arm9/overlays/ov001/symbols.txt @@ -222,7 +222,7 @@ _ZN29UnkStruct_027e0ce0_40_Base_94D1Ev kind:function(thumb,size=0x12) addr:0x020 _ZN18UnkStruct_027e0ce06CreateEv kind:function(thumb,size=0x16) addr:0x020bc34c _ZN18UnkStruct_027e0ce0C1Ev kind:function(thumb,size=0xec) addr:0x020bc364 _ZN18UnkStruct_027e0ce0D1Ev kind:function(thumb,size=0x86) addr:0x020bc450 -_ZN18UnkStruct_027e0ce019func_ov001_020bc4d8EP13InvImportDataii kind:function(thumb,size=0x4c) addr:0x020bc4d8 +_ZN18UnkStruct_027e0ce019func_ov001_020bc4d8EP13InvImportDataP27SaveFile_00000_0000_Data_D8i kind:function(thumb,size=0x4c) addr:0x020bc4d8 _ZN18UnkStruct_027e0ce019func_ov001_020bc524Eb kind:function(thumb,size=0xd4) addr:0x020bc524 _ZN18UnkStruct_027e0ce019func_ov001_020bc5f8Ev kind:function(thumb,size=0x62) addr:0x020bc5f8 _ZN18UnkStruct_027e0ce019func_ov001_020bc65cEv kind:function(thumb,size=0x40) addr:0x020bc65c @@ -335,58 +335,58 @@ _ZN24UnkStruct_ov000_020b504c19func_ov001_020be94cEv kind:function(thumb,size=0x _ZN24UnkStruct_ov000_020b504c19func_ov001_020be998Ev kind:function(thumb,size=0x64) addr:0x020be998 _ZN24UnkStruct_ov000_020b504c19func_ov001_020be9fcEv kind:function(thumb,size=0x30) addr:0x020be9fc _ZN24UnkStruct_ov000_020b504c19func_ov001_020bea2cEv kind:function(thumb,size=0x14) addr:0x020bea2c -func_ov001_020bea40 kind:function(thumb,size=0x18) addr:0x020bea40 -func_ov001_020bea58 kind:function(thumb,size=0x2c) addr:0x020bea58 -func_ov001_020bea84 kind:function(thumb,size=0x48) addr:0x020bea84 -func_ov001_020beacc kind:function(thumb,size=0xc) addr:0x020beacc -func_ov001_020bead8 kind:function(thumb,size=0xc) addr:0x020bead8 +_ZN18UnkStruct_027e09b46CreateEv kind:function(thumb,size=0x18) addr:0x020bea40 +_ZN18UnkStruct_027e09b4C1Ev kind:function(thumb,size=0x2c) addr:0x020bea58 +_ZN18UnkStruct_027e09b419func_ov001_020bea84Ev kind:function(thumb,size=0x48) addr:0x020bea84 +_ZN8InstanceI18UnkStruct_027e09b4EC2Ev kind:function(thumb,size=0xc) addr:0x020beacc +_ZN8InstanceI18UnkStruct_027e09b4ED2Ev kind:function(thumb,size=0xc) addr:0x020bead8 _ZN18UnkStruct_027e09ac6CreateEv kind:function(thumb,size=0x18) addr:0x020beae4 -func_ov001_020beafc kind:function(thumb,size=0x90) addr:0x020beafc +_ZN18UnkStruct_027e09acC1Ev kind:function(thumb,size=0x90) addr:0x020beafc _ZN18UnkStruct_027e09acD1Ev kind:function(thumb,size=0x2c) addr:0x020beb8c _ZN18UnkStruct_027e09ac19func_ov001_020bebb8Ev kind:function(thumb,size=0xd4) addr:0x020bebb8 _ZN18UnkStruct_027e09ac19func_ov001_020bec8cEv kind:function(thumb,size=0x2) addr:0x020bec8c -func_ov001_020bec90 kind:function(thumb,size=0x20) addr:0x020bec90 -func_ov001_020becb0 kind:function(thumb,size=0x20) addr:0x020becb0 -func_ov001_020becd0 kind:function(thumb,size=0x20) addr:0x020becd0 -func_ov001_020becf0 kind:function(thumb,size=0xc) addr:0x020becf0 -func_ov001_020becfc kind:function(thumb,size=0xc) addr:0x020becfc -func_ov001_020bed08 kind:function(thumb,size=0xc) addr:0x020bed08 +_ZN18UnkStruct_027e09a87DestroyEv kind:function(thumb,size=0x20) addr:0x020bec90 +_ZN18UnkStruct_027e09b47DestroyEv kind:function(thumb,size=0x20) addr:0x020becb0 +_ZN18UnkStruct_027e09b07DestroyEv kind:function(thumb,size=0x20) addr:0x020becd0 +_ZN8InstanceI18UnkStruct_027e09acEC2Ev kind:function(thumb,size=0xc) addr:0x020becf0 +_ZN8InstanceI18UnkStruct_027e09acED2Ev kind:function(thumb,size=0xc) addr:0x020becfc +_ZN8InstanceI18UnkStruct_027e09a8ED2Ev kind:function(thumb,size=0xc) addr:0x020bed08 _ZN18UnkStruct_027e0cec6CreateEv kind:function(thumb,size=0x20) addr:0x020bed14 -func_ov001_020bed34 kind:function(thumb,size=0x1c) addr:0x020bed34 -func_ov001_020bed50 kind:function(thumb,size=0x248) addr:0x020bed50 -func_ov001_020bef98 kind:function(thumb,size=0x7c) addr:0x020bef98 -func_ov001_020bf014 kind:function(thumb,size=0x14) addr:0x020bf014 +_ZN18UnkStruct_027e0cec19func_ov001_020bed34Ev kind:function(thumb,size=0x1c) addr:0x020bed34 +_ZN18UnkStruct_027e0cecC1Ev kind:function(thumb,size=0x248) addr:0x020bed50 +_ZN18UnkStruct_027e0cec19func_ov001_020bef98Ev kind:function(thumb,size=0x7c) addr:0x020bef98 +_ZN18UnkStruct_027e0cecD1Ev kind:function(thumb,size=0x14) addr:0x020bf014 _ZN18UnkStruct_027e0cec19func_ov001_020bf028Ev kind:function(thumb,size=0x1c) addr:0x020bf028 -func_ov001_020bf044 kind:function(arm,size=0x38) addr:0x020bf044 -func_ov001_020bf07c kind:function(arm,size=0x10) addr:0x020bf07c -func_ov001_020bf08c kind:function(arm,size=0x14) addr:0x020bf08c -func_ov001_020bf0a0 kind:function(thumb,size=0x14) addr:0x020bf0a0 -func_ov001_020bf0b4 kind:function(thumb,size=0xf4) addr:0x020bf0b4 -func_ov001_020bf1a8 kind:function(thumb,size=0x2) addr:0x020bf1a8 -_ZN19func_ov001_020bf1acD0Ev kind:function(thumb,size=0xc) addr:0x020bf1ac +_ZN21UnkStruct_027e0cec_00C1EPv kind:function(arm,size=0x38) addr:0x020bf044 +_ZN8InstanceI18UnkStruct_027e0cecEC2Ev kind:function(arm,size=0x10) addr:0x020bf07c +_ZN8InstanceI18UnkStruct_027e0cecED2Ev kind:function(arm,size=0x14) addr:0x020bf08c +_ZN21UnkStruct_027e0cec_1819func_ov001_020bf0a0Em kind:function(thumb,size=0x14) addr:0x020bf0a0 +_ZN21UnkStruct_027e0cec_18C1EP14UnkFileSystem1bi kind:function(thumb,size=0xf4) addr:0x020bf0b4 +_ZN21UnkStruct_027e0cec_18D1Ev kind:function(thumb,size=0x2) addr:0x020bf1a8 +_ZN21UnkStruct_027e0cec_18D0Ev kind:function(thumb,size=0xc) addr:0x020bf1ac _ZN21UnkStruct_027e0ce0_34C1Ev kind:function(thumb,size=0x60) addr:0x020bf1b8 _ZN21UnkStruct_027e0ce0_34D1Ev kind:function(thumb,size=0x14) addr:0x020bf218 -_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf22cEii kind:function(thumb,size=0x8c) addr:0x020bf22c +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf22cEP27SaveFile_00000_0000_Data_D8i kind:function(thumb,size=0x8c) addr:0x020bf22c _ZN21UnkStruct_027e0ce0_3419func_ov001_020bf2b8Eb kind:function(thumb,size=0xc0) addr:0x020bf2b8 _ZN21UnkStruct_027e0ce0_3419func_ov001_020bf378Ev kind:function(thumb,size=0x44) addr:0x020bf378 _ZN21UnkStruct_027e0ce0_3419func_ov001_020bf3bcEv kind:function(thumb,size=0xe) addr:0x020bf3bc _ZN21UnkStruct_027e0ce0_3419func_ov001_020bf3ccEv kind:function(thumb,size=0x30) addr:0x020bf3cc -func_ov001_020bf3fc kind:function(thumb,size=0x2c) addr:0x020bf3fc -func_ov001_020bf428 kind:function(arm,size=0x2c) addr:0x020bf428 -func_ov001_020bf454 kind:function(arm,size=0x2c) addr:0x020bf454 -func_ov001_020bf480 kind:function(arm,size=0x2c) addr:0x020bf480 +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf3fcEv kind:function(thumb,size=0x2c) addr:0x020bf3fc +_ZN12CargoManager7DestroyEv kind:function(arm,size=0x2c) addr:0x020bf428 +_ZN18UnkStruct_027e0d007DestroyEv kind:function(arm,size=0x2c) addr:0x020bf454 +_ZN16PassengerManager7DestroyEv kind:function(arm,size=0x2c) addr:0x020bf480 _ZN18UnkStruct_027e0d00C1Ev kind:function(thumb,size=0x76) addr:0x020bf4ac _ZN18UnkStruct_027e0d00D1Ev kind:function(thumb,size=0xc) addr:0x020bf524 -func_ov001_020bf530 kind:function(thumb,size=0x38) addr:0x020bf530 -func_ov001_020bf568 kind:function(thumb,size=0x28) addr:0x020bf568 -func_ov001_020bf590 kind:function(thumb,size=0x10c) addr:0x020bf590 -func_ov001_020bf69c kind:function(thumb,size=0x94) addr:0x020bf69c -func_ov001_020bf730 kind:function(thumb,size=0x20) addr:0x020bf730 -func_ov001_020bf750 kind:function(thumb,size=0x16) addr:0x020bf750 -func_ov001_020bf768 kind:function(thumb,size=0x50) addr:0x020bf768 -func_ov001_020bf7b8 kind:function(thumb,size=0x2e) addr:0x020bf7b8 -func_ov001_020bf7e8 kind:function(thumb,size=0xc) addr:0x020bf7e8 -func_ov001_020bf7f4 kind:function(thumb,size=0xc) addr:0x020bf7f4 +_ZN18UnkStruct_027e0d0019func_ov001_020bf530Ev kind:function(thumb,size=0x38) addr:0x020bf530 +_ZN18UnkStruct_027e0d0019func_ov001_020bf568Ev kind:function(thumb,size=0x28) addr:0x020bf568 +_ZN18UnkStruct_027e0d0019func_ov001_020bf590Ev kind:function(thumb,size=0x10c) addr:0x020bf590 +_ZN18UnkStruct_027e0d0019func_ov001_020bf69cEv kind:function(thumb,size=0x94) addr:0x020bf69c +_ZN18UnkStruct_027e0d0019func_ov001_020bf730Ev kind:function(thumb,size=0x20) addr:0x020bf730 +_ZN18UnkStruct_027e0d0019func_ov001_020bf750Ev kind:function(thumb,size=0x16) addr:0x020bf750 +_ZN18UnkStruct_027e0d0019func_ov001_020bf768Ev kind:function(thumb,size=0x50) addr:0x020bf768 +_ZN18UnkStruct_027e0d0019func_ov001_020bf7b8Ev kind:function(thumb,size=0x2e) addr:0x020bf7b8 +_ZN8InstanceI18UnkStruct_027e0d00EC2Ev kind:function(thumb,size=0xc) addr:0x020bf7e8 +_ZN8InstanceI18UnkStruct_027e0d00ED2Ev kind:function(thumb,size=0xc) addr:0x020bf7f4 _ZN12CargoManagerC1Ev kind:function(thumb,size=0x22) addr:0x020bf800 _ZN12CargoManagerD1Ev kind:function(thumb,size=0xc) addr:0x020bf824 _ZN12CargoManager19func_ov001_020bf830Ev kind:function(thumb,size=0x28) addr:0x020bf830 @@ -404,22 +404,22 @@ _ZN8InstanceI16PassengerManagerED2Ev kind:function(thumb,size=0xc) addr:0x020bfa _ZN24UnkStruct_027e0cf8_08_00C1Eh kind:function(thumb,size=0xc2) addr:0x020bfa50 _ZN24UnkStruct_027e0cf8_08_00D1Ev kind:function(thumb,size=0xc) addr:0x020bfb14 _ZN24UnkStruct_027e0cf8_08_0019func_ov001_020bfb20Ev kind:function(thumb,size=0x1a0) addr:0x020bfb20 -func_ov001_020bfcc0 kind:function(thumb,size=0x30) addr:0x020bfcc0 -func_ov001_020bfcf0 kind:function(thumb,size=0x30) addr:0x020bfcf0 -func_ov001_020bfd20 kind:function(thumb,size=0x34) addr:0x020bfd20 -func_ov001_020bfd54 kind:function(thumb,size=0x30) addr:0x020bfd54 -func_ov001_020bfd84 kind:function(thumb,size=0x4c) addr:0x020bfd84 -func_ov001_020bfdd0 kind:function(thumb,size=0x3c) addr:0x020bfdd0 -func_ov001_020bfe0c kind:function(thumb,size=0x3c) addr:0x020bfe0c -func_ov001_020bfe48 kind:function(thumb,size=0x3c) addr:0x020bfe48 -func_ov001_020bfe84 kind:function(thumb,size=0x2c) addr:0x020bfe84 -func_ov001_020bfeb0 kind:function(thumb,size=0x3c) addr:0x020bfeb0 -func_ov001_020bfeec kind:function(thumb,size=0x10) addr:0x020bfeec -func_ov001_020bfefc kind:function(thumb,size=0x10) addr:0x020bfefc -func_ov001_020bff0c kind:function(thumb,size=0x10) addr:0x020bff0c -func_ov001_020bff1c kind:function(thumb,size=0x10) addr:0x020bff1c -func_ov001_020bff2c kind:function(thumb,size=0x8) addr:0x020bff2c -func_ov001_020bff34 kind:function(thumb,size=0x40) addr:0x020bff34 +_Z19func_ov001_020bfcc0v kind:function(thumb,size=0x30) addr:0x020bfcc0 +_Z19func_ov001_020bfcf0v kind:function(thumb,size=0x30) addr:0x020bfcf0 +_Z19func_ov001_020bfd20v kind:function(thumb,size=0x34) addr:0x020bfd20 +_Z19func_ov001_020bfd54v kind:function(thumb,size=0x30) addr:0x020bfd54 +_ZN14GameModeBattle19func_ov001_020bfd84Ei kind:function(thumb,size=0x4c) addr:0x020bfd84 +_Z19func_ov001_020bfdd0v kind:function(thumb,size=0x3c) addr:0x020bfdd0 +_Z19func_ov001_020bfe0cv kind:function(thumb,size=0x3c) addr:0x020bfe0c +_Z19func_ov001_020bfe48v kind:function(thumb,size=0x3c) addr:0x020bfe48 +_Z19func_ov001_020bfe84v kind:function(thumb,size=0x2c) addr:0x020bfe84 +_ZN24UnkStruct_ov023_020f1d9419func_ov001_020bfeb0Ev kind:function(thumb,size=0x3c) addr:0x020bfeb0 +_Z19func_ov001_020bfeecv kind:function(thumb,size=0x10) addr:0x020bfeec +_Z19func_ov001_020bfefcv kind:function(thumb,size=0x10) addr:0x020bfefc +_Z19func_ov001_020bff0cv kind:function(thumb,size=0x10) addr:0x020bff0c +_Z19func_ov001_020bff1cv kind:function(thumb,size=0x10) addr:0x020bff1c +_ZN14Actor_Derived119func_ov001_020bff2cEv kind:function(thumb,size=0x8) addr:0x020bff2c +_ZN12ActorUnkLBCK19func_ov001_020bff34Ev kind:function(thumb,size=0x40) addr:0x020bff34 _ZN20AdventureModeManager6CreateEP23UnkStruct_0204a110_Sub2 kind:function(thumb,size=0x1c) addr:0x020bff74 _ZN20AdventureModeManagerC1EP23UnkStruct_0204a110_Sub2 kind:function(thumb,size=0x134) addr:0x020bff90 _ZN20AdventureModeManager8vfunc_10Eiii kind:function(thumb,size=0x10) addr:0x020c00c4 @@ -439,9 +439,9 @@ _ZN24UnkStruct_ov000_020b4f70D1Ev kind:function(thumb,size=0xc) addr:0x020c08ac _ZN24AdventureModeManager_15CC1Ev kind:function(thumb,size=0x68) addr:0x020c08b8 _ZN24AdventureModeManager_15CD1Ev kind:function(thumb,size=0x22) addr:0x020c0920 _ZN17GameModeAdventureC1Ev kind:function(thumb,size=0x58) addr:0x020c0944 -func_ov001_020c099c kind:function(thumb,size=0x24) addr:0x020c099c -func_ov001_020c09c0 kind:function(thumb,size=0x1c) addr:0x020c09c0 -func_ov001_020c09dc kind:function(thumb,size=0x48) addr:0x020c09dc +_Z19func_ov001_020c099cv kind:function(thumb,size=0x24) addr:0x020c099c +_Z19func_ov001_020c09c0v kind:function(thumb,size=0x1c) addr:0x020c09c0 +_ZN20GameModeDownloadPlay19func_ov001_020c09dcEv kind:function(thumb,size=0x48) addr:0x020c09dc DetectFlashcart kind:function(arm,size=0xb8,unknown) addr:0x020c0a24 DetectNotFlashcart kind:function(arm,size=0xb8,unknown) addr:0x020c0adc DetectEmulator kind:function(arm,size=0xb8,unknown) addr:0x020c0b94 @@ -602,34 +602,31 @@ data_ov001_020c2cf4 kind:data(any) addr:0x020c2cf4 local @2373 kind:data(byte[10]) addr:0x020c2dd0 local @2374 kind:data(byte[5]) addr:0x020c2ddc local @2375 kind:data(byte[5]) addr:0x020c2de4 local -data_ov001_020c2dec kind:data(any) addr:0x020c2dec -data_ov001_020c2e00 kind:data(any) addr:0x020c2e00 -data_ov001_020c2e08 kind:data(any) addr:0x020c2e08 -data_ov001_020c2e10 kind:data(any) addr:0x020c2e10 -data_ov001_020c2e18 kind:data(any) addr:0x020c2e18 -data_ov001_020c2e20 kind:data(any) addr:0x020c2e20 -data_ov001_020c2e2c kind:data(any) addr:0x020c2e2c -data_ov001_020c2e40 kind:data(any) addr:0x020c2e40 -data_ov001_020c2e54 kind:data(any) addr:0x020c2e54 -data_ov001_020c2e68 kind:data(any) addr:0x020c2e68 -data_ov001_020c2e80 kind:data(any) addr:0x020c2e80 -data_ov001_020c2e98 kind:data(any) addr:0x020c2e98 -data_ov001_020c2e9c kind:data(any) addr:0x020c2e9c -data_ov001_020c2eb0 kind:data(any) addr:0x020c2eb0 -data_ov001_020c2ec8 kind:data(any) addr:0x020c2ec8 -data_ov001_020c2ee0 kind:data(any) addr:0x020c2ee0 -data_ov001_020c2ef8 kind:data(any) addr:0x020c2ef8 -data_ov001_020c2f10 kind:data(any) addr:0x020c2f10 -data_ov001_020c2f28 kind:data(any) addr:0x020c2f28 -data_ov001_020c2f4c kind:data(any) addr:0x020c2f4c -data_ov001_020c2f58 kind:data(any) addr:0x020c2f58 -data_ov001_020c2f70 kind:data(any) addr:0x020c2f70 -data_ov001_020c2f84 kind:data(any) addr:0x020c2f84 -data_ov001_020c2f9c kind:data(any) addr:0x020c2f9c -data_ov001_020c2fac kind:data(any) addr:0x020c2fac -data_ov001_020c2fb4 kind:data(any) addr:0x020c2fb4 -data_ov001_020c2fc4 kind:data(any) addr:0x020c2fc4 -data_ov001_020c2fcc kind:data(any) addr:0x020c2fcc +@2664 kind:data(byte[0x14]) addr:0x020c2dec local +@2665 kind:data(byte[7]) addr:0x020c2e00 local +@2666 kind:data(byte[8]) addr:0x020c2e08 local +@2667 kind:data(byte[6]) addr:0x020c2e10 local +@2668 kind:data(byte[6]) addr:0x020c2e18 local +@2669 kind:data(byte[9]) addr:0x020c2e20 local +@0 kind:data(byte[0x11]) addr:0x020c2e2c local +@1 kind:data(byte[0x12]) addr:0x020c2e40 local +@2 kind:data(byte[0x13]) addr:0x020c2e54 local +@3 kind:data(byte[0x15]) addr:0x020c2e68 local +@4 kind:data(byte[0x16]) addr:0x020c2e80 local +@5 kind:data(byte[0x16]) addr:0x020c2e98 local +@7 kind:data(byte[0x16]) addr:0x020c2eb0 local +@8 kind:data(byte[0x16]) addr:0x020c2ec8 local +@9 kind:data(byte[0x16]) addr:0x020c2ee0 local +@10 kind:data(byte[0x17]) addr:0x020c2ef8 local +@11 kind:data(byte[0x17]) addr:0x020c2f10 local +data_ov001_020c2f28 kind:data(any) addr:0x020c2f28 local +@13 kind:data(byte[0x15]) addr:0x020c2f58 local +@14 kind:data(byte[0x11]) addr:0x020c2f70 local +@15 kind:data(byte[0x16]) addr:0x020c2f84 local +@16 kind:data(byte[0xd]) addr:0x020c2f9c local +@17 kind:data(byte[0x5]) addr:0x020c2fac local +@18 kind:data(byte[0x10]) addr:0x020c2fb4 local +_ZTV21UnkStruct_027e0cec_18 kind:data(any) addr:0x020c2fc4 data_ov001_020c2fd4 kind:data(any) addr:0x020c2fd4 _ZGVN14StaticInstanceI16CourseInitBinaryE9sInstanceE kind:bss addr:0x020c2fe0 _ZN14StaticInstanceI16CourseInitBinaryE9sInstanceE kind:bss addr:0x020c2fe4 diff --git a/config/eur/arm9/overlays/ov017/relocs.txt b/config/eur/arm9/overlays/ov017/relocs.txt index 67af0e52..b14f9da0 100644 --- a/config/eur/arm9/overlays/ov017/relocs.txt +++ b/config/eur/arm9/overlays/ov017/relocs.txt @@ -745,7 +745,6 @@ from:0x020c3034 kind:load to:0x020b62a8 add:0x200 module:overlay(0) from:0x020c303c kind:load to:0x020b62a8 module:overlay(0) from:0x020c307c kind:arm_call to:0x020328c8 module:main from:0x020c309c kind:arm_call_thumb to:0x020a0b2c module:overlay(0) -from:0x020c30ac kind:load to:0x020c2fc4 module:overlay(17) from:0x020c30fc kind:arm_call to:0x02018ac4 module:main from:0x020c3108 kind:arm_call_thumb to:0x0201ca28 module:main from:0x020c3110 kind:load to:0x027e0994 module:dtcm diff --git a/config/eur/arm9/overlays/ov017/symbols.txt b/config/eur/arm9/overlays/ov017/symbols.txt index dd6b179d..b375064d 100644 --- a/config/eur/arm9/overlays/ov017/symbols.txt +++ b/config/eur/arm9/overlays/ov017/symbols.txt @@ -177,7 +177,7 @@ __sinit_ov017_020c3ec8 kind:function(arm,size=0x18) addr:0x020c3ec8 .p__sinit_ov017_020c3ec8 kind:data(word) addr:0x020c3ee8 data_ov017_020c3f08 kind:data(any) addr:0x020c3f08 data_ov017_020c3f14 kind:data(any) addr:0x020c3f14 -data_ov017_020c3f38 kind:data(any) addr:0x020c3f38 +_ZTV21UnkStruct_027e0cec_00 kind:data(any) addr:0x020c3f30 data_ov017_020c3f3c kind:data(any) addr:0x020c3f3c data_ov017_020c3f40 kind:data(any) addr:0x020c3f40 data_ov017_020c3f60 kind:bss addr:0x020c3f60 diff --git a/config/eur/arm9/overlays/ov020/symbols.txt b/config/eur/arm9/overlays/ov020/symbols.txt index a1ea1e47..e7ba7710 100644 --- a/config/eur/arm9/overlays/ov020/symbols.txt +++ b/config/eur/arm9/overlays/ov020/symbols.txt @@ -133,7 +133,7 @@ func_ov020_020c7514 kind:function(arm,size=0x70) addr:0x020c7514 func_ov020_020c7584 kind:function(arm,size=0x11c) addr:0x020c7584 func_ov020_020c76a0 kind:function(arm,size=0x98) addr:0x020c76a0 func_ov020_020c7738 kind:function(arm,size=0xa4) addr:0x020c7738 -func_ov020_020c77dc kind:function(arm,size=0xd4) addr:0x020c77dc +_ZN33UnkStruct_ov020_020e8544_Derived2C1Ev kind:function(arm,size=0xd4) addr:0x020c77dc _ZN19func_ov020_020c78b0D1Ev kind:function(arm,size=0x40) addr:0x020c78b0 _ZN19func_ov020_020c78f0D0Ev kind:function(arm,size=0x48) addr:0x020c78f0 func_ov020_020c7938 kind:function(arm,size=0x204) addr:0x020c7938 @@ -161,7 +161,7 @@ func_ov020_020c81bc kind:function(arm,size=0x50) addr:0x020c81bc func_ov020_020c820c kind:function(arm,size=0x50) addr:0x020c820c func_ov020_020c825c kind:function(arm,size=0x70) addr:0x020c825c func_ov020_020c82cc kind:function(arm,size=0xc0) addr:0x020c82cc -func_ov020_020c838c kind:function(arm,size=0x2c) addr:0x020c838c +_ZN33UnkStruct_ov020_020e8544_Derived1C1Ev kind:function(arm,size=0x2c) addr:0x020c838c _ZN19func_ov020_020c83b8D1Ev kind:function(arm,size=0x14) addr:0x020c83b8 _ZN19func_ov020_020c83ccD0Ev kind:function(arm,size=0x1c) addr:0x020c83cc func_ov020_020c83e8 kind:function(arm,size=0x4) addr:0x020c83e8 diff --git a/config/eur/arm9/overlays/ov022/symbols.txt b/config/eur/arm9/overlays/ov022/symbols.txt index 66b34b22..9fddb8dd 100644 --- a/config/eur/arm9/overlays/ov022/symbols.txt +++ b/config/eur/arm9/overlays/ov022/symbols.txt @@ -114,7 +114,7 @@ func_ov022_020ecfe0 kind:function(arm,size=0x20) addr:0x020ecfe0 func_ov022_020ed000 kind:function(arm,size=0x10) addr:0x020ed000 _ZN19func_ov022_020ed010D0Ev kind:function(arm,size=0x1c) addr:0x020ed010 _ZN19func_ov022_020ed02cD0Ev kind:function(arm,size=0x1c) addr:0x020ed02c -func_ov022_020ed048 kind:function(arm,size=0x80) addr:0x020ed048 +_ZN24UnkStruct_ov001_020c46fcC1Ev kind:function(arm,size=0x80) addr:0x020ed048 func_ov022_020ed0c8 kind:function(arm,size=0x14) addr:0x020ed0c8 _ZN19func_ov022_020ed0dcD0Ev kind:function(arm,size=0x24) addr:0x020ed0dc func_ov022_020ed100 kind:function(arm,size=0x30) addr:0x020ed100 diff --git a/config/eur/arm9/overlays/ov023/symbols.txt b/config/eur/arm9/overlays/ov023/symbols.txt index 2a0f5688..cb214743 100644 --- a/config/eur/arm9/overlays/ov023/symbols.txt +++ b/config/eur/arm9/overlays/ov023/symbols.txt @@ -221,8 +221,8 @@ data_ov023_020f1b28 kind:data(any) addr:0x020f1b28 data_ov023_020f1b30 kind:data(any) addr:0x020f1b30 data_ov023_020f1b38 kind:data(any) addr:0x020f1b38 data_ov023_020f1b4c kind:data(any) addr:0x020f1b4c -data_ov023_020f1b5c kind:data(any) addr:0x020f1b5c ambiguous -data_ov023_020f1b74 kind:data(any) addr:0x020f1b74 ambiguous +_ZTV33UnkStruct_ov001_020c46f4_Derived1 kind:data(any) addr:0x020f1b54 ambiguous +_ZTV33UnkStruct_ov001_020c46f4_Derived2 kind:data(any) addr:0x020f1b6c ambiguous data_ov023_020f1b84 kind:data(any) addr:0x020f1b84 data_ov023_020f1b88 kind:data(any) addr:0x020f1b88 data_ov023_020f1bc0 kind:bss addr:0x020f1bc0 diff --git a/config/eur/arm9/overlays/ov024/symbols.txt b/config/eur/arm9/overlays/ov024/symbols.txt index 007fb011..8feeb0f6 100644 --- a/config/eur/arm9/overlays/ov024/symbols.txt +++ b/config/eur/arm9/overlays/ov024/symbols.txt @@ -632,7 +632,7 @@ _ZN18UnkStruct_027e0d0019func_ov024_020d4e3cEi kind:function(arm,size=0x60) addr _ZN21UnkStruct_027e0d00_2019func_ov024_020d4e9cEPwib kind:function(arm,size=0x40) addr:0x020d4e9c _ZN21UnkStruct_027e0d00_2019func_ov024_020d4edcEPwS0_i kind:function(arm,size=0x2c) addr:0x020d4edc _ZN21UnkStruct_027e0d00_20C1Eii kind:function(arm,size=0x98) addr:0x020d4f08 -_ZN21UnkStruct_027e0d00_2019func_ov024_020d4fa0Eii kind:function(arm,size=0x1c0) addr:0x020d4fa0 +_ZN21UnkStruct_027e0d00_2019func_ov024_020d4fa0EPvi kind:function(arm,size=0x1c0) addr:0x020d4fa0 _ZN20ModelRender_Derived2D1Ev kind:function(arm,size=0x14) addr:0x020d5160 _ZN21UnkStruct_027e0d00_2019func_ov024_020d5174Ev kind:function(arm,size=0x1c) addr:0x020d5174 _ZN21UnkStruct_027e0d00_20D0Ev kind:function(arm,size=0x30) addr:0x020d5190 diff --git a/config/eur/arm9/overlays/ov026/symbols.txt b/config/eur/arm9/overlays/ov026/symbols.txt index 78effc08..da8d0bf3 100644 --- a/config/eur/arm9/overlays/ov026/symbols.txt +++ b/config/eur/arm9/overlays/ov026/symbols.txt @@ -391,10 +391,10 @@ func_ov026_020eb360 kind:function(arm,size=0x128) addr:0x020eb360 func_ov026_020eb488 kind:function(arm,size=0x20) addr:0x020eb488 func_ov026_020eb4a8 kind:function(arm,size=0xc) addr:0x020eb4a8 func_ov026_020eb4b4 kind:function(arm,size=0x1c) addr:0x020eb4b4 -func_ov026_020eb4d0 kind:function(arm,size=0x94) addr:0x020eb4d0 -func_ov026_020eb564 kind:function(arm,size=0x54) addr:0x020eb564 -func_ov026_020eb5b8 kind:function(arm,size=0xf0) addr:0x020eb5b8 -func_ov026_020eb6a8 kind:function(arm,size=0x64) addr:0x020eb6a8 +_ZN24UnkStruct_027e0ce0_34_20C1Ev kind:function(arm,size=0x94) addr:0x020eb4d0 +_ZN24UnkStruct_027e0ce0_34_20D1Ev kind:function(arm,size=0x54) addr:0x020eb564 +_ZN24UnkStruct_027e0ce0_34_2019func_ov026_020eb5b8Ev kind:function(arm,size=0xf0) addr:0x020eb5b8 +_ZN24UnkStruct_027e0ce0_34_2019func_ov026_020eb6a8Ev kind:function(arm,size=0x64) addr:0x020eb6a8 func_ov026_020eb70c kind:function(arm,size=0x1b8) addr:0x020eb70c func_ov026_020eb8c4 kind:function(arm,size=0x34) addr:0x020eb8c4 func_ov026_020eb8f8 kind:function(arm,size=0xfc) addr:0x020eb8f8 @@ -912,9 +912,9 @@ func_ov026_020fb418 kind:function(arm,size=0x1c) addr:0x020fb418 func_ov026_020fb434 kind:function(arm,size=0x14) addr:0x020fb434 func_ov026_020fb448 kind:function(arm,size=0x134) addr:0x020fb448 func_ov026_020fb57c kind:function(arm,size=0x364) addr:0x020fb57c -func_ov026_020fb8e0 kind:function(arm,size=0x84) addr:0x020fb8e0 -func_ov026_020fb964 kind:function(arm,size=0xd8) addr:0x020fb964 -func_ov026_020fba3c kind:function(arm,size=0x1c) addr:0x020fba3c +_ZN21UnkStruct_027e0d00_E0C1Eb kind:function(arm,size=0x84) addr:0x020fb8e0 +_ZN21UnkStruct_027e0d00_E019func_ov026_020fb964Ev kind:function(arm,size=0xd8) addr:0x020fb964 +_ZN21UnkStruct_027e0d00_E019func_ov026_020fba3cEv kind:function(arm,size=0x1c) addr:0x020fba3c _ZN19func_ov026_020fba58D1Ev kind:function(arm,size=0x28) addr:0x020fba58 _ZN19func_ov026_020fba80D0Ev kind:function(arm,size=0x30) addr:0x020fba80 func_ov026_020fbab0 kind:function(arm,size=0x20) addr:0x020fbab0 diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 0e5c4015..6662190a 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -601,7 +601,7 @@ 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 -_Z6SysNewP23UnkStruct_02011e10_Sub1ii kind:function(arm,size=0x94) addr:0x02011e10 +_Z6SysNewP23UnkStruct_02011e10_Sub1jj 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 @@ -718,7 +718,7 @@ _ZN14OverlayManager13func_02014918Ej kind:function(thumb,size=0x2c) addr:0x02014 func_02014944 kind:function(thumb,size=0x50) addr:0x02014944 _ZN14OverlayManager13func_02014994Ei kind:function(thumb,size=0x7c) addr:0x02014994 func_02014a10 kind:function(arm,size=0x24) addr:0x02014a10 -_ZN18UnkStruct_02049bac13func_02014a34EPv kind:function(arm,size=0xcc) addr:0x02014a34 +_ZN18UnkStruct_02049bac13func_02014a34EP4Date kind:function(arm,size=0xcc) addr:0x02014a34 _ZN18UnkStruct_02049bac13func_02014b00Ev kind:function(arm,size=0x54) addr:0x02014b00 func_02014b54 kind:function(arm,size=0x10) addr:0x02014b54 func_02014b64 kind:function(arm,size=0x1c) addr:0x02014b64 @@ -2341,9 +2341,9 @@ data_02043400 kind:data(any) addr:0x02043400 _ZZ17G3d_SBCRender_007P16G3d_RenderState_jE8funcArgs kind:data(any) addr:0x02043440 _ZZ17G3d_SBCRender_008P16G3d_RenderState_jE8funcArgs kind:data(any) addr:0x02043488 data_020434d0 kind:data(any) addr:0x020434d0 -data_020434f0 kind:data(any) addr:0x020434f0 -data_020434fc kind:data(any) addr:0x020434fc -data_0204352c kind:data(any) addr:0x0204352c +@171 kind:data(byte[0xb]) addr:0x020434f0 local +@172 kind:data(byte[0x2d]) addr:0x020434fc local +@173 kind:data(byte[0x22]) addr:0x0204352c local data_02043550 kind:data(any) addr:0x02043550 data_02043558 kind:data(any) addr:0x02043558 data_02043560 kind:data(any) addr:0x02043560 diff --git a/config/jp/arm9/delinks.txt b/config/jp/arm9/delinks.txt index f0c01e2c..8b29399c 100644 --- a/config/jp/arm9/delinks.txt +++ b/config/jp/arm9/delinks.txt @@ -14,7 +14,9 @@ libs/nns/src/g3d/sbc.c: .text start:0x0200c8cc end:0x0200e2ec src/Main/System/SysNew.cpp: + complete .text start:0x02011e10 end:0x0201200c + .data start:0x02044a50 end:0x02044ab0 src/Main/System/SysFault.cpp: .text start:0x020127f0 end:0x02012b00 diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index b3929316..649ed263 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -29,14 +29,14 @@ func_ov000_02055b08 kind:function(arm,size=0x48) addr:0x02055b08 func_ov000_02055b50 kind:function(arm,size=0x78) addr:0x02055b50 func_ov000_02055bc8 kind:function(arm,size=0x24) addr:0x02055bc8 func_ov000_02055bec kind:function(arm,size=0x24) addr:0x02055bec -func_ov000_02055c10 kind:function(thumb,size=0x108) addr:0x02055c10 +func_ov000_02054690 kind:function(thumb,size=0x108) addr:0x02055c10 func_ov000_02055d18 kind:function(thumb,size=0x1f4) addr:0x02055d18 -func_ov000_02055f0c kind:function(thumb,size=0xc) addr:0x02055f0c -func_ov000_02055f18 kind:function(thumb,size=0xc) addr:0x02055f18 +_ZN24UnkStruct_027e0cec_18_0419func_ov000_0205498cEPv kind:function(thumb,size=0xc) addr:0x02055f0c +_ZN24UnkStruct_027e0cec_18_0419func_ov000_02054998EPv kind:function(thumb,size=0xc) addr:0x02055f18 func_ov000_02055f24 kind:function(thumb,size=0x70) addr:0x02055f24 func_ov000_02055f94 kind:function(thumb,size=0x64) addr:0x02055f94 -func_ov000_02055ff8 kind:function(thumb,size=0x10) addr:0x02055ff8 -func_ov000_02056008 kind:function(thumb,size=0x10) addr:0x02056008 +_ZN24UnkStruct_027e0cec_18_0419func_ov000_02054a78Ev kind:function(thumb,size=0x10) addr:0x02055ff8 +_ZN24UnkStruct_027e0cec_18_0419func_ov000_02054a88Ev kind:function(thumb,size=0x10) addr:0x02056008 func_ov000_02056018 kind:function(arm,size=0x8c) addr:0x02056018 func_ov000_020560a4 kind:function(arm,size=0x78) addr:0x020560a4 func_ov000_0205611c kind:function(arm,size=0x4c) addr:0x0205611c @@ -164,7 +164,7 @@ func_ov000_0205a168 kind:function(arm,size=0x14) addr:0x0205a168 _ZN19func_ov000_0205a17cD1Ev kind:function(arm,size=0x14) addr:0x0205a17c _ZN19func_ov000_0205a190D0Ev kind:function(arm,size=0x1c) addr:0x0205a190 func_ov000_0205a1ac kind:function(thumb,size=0x1c) addr:0x0205a1ac -func_ov000_0205a1c8 kind:function(thumb,size=0x2c) addr:0x0205a1c8 +_ZN21UnkStruct_027e0d00_00C1Eiiih kind:function(thumb,size=0x2c) addr:0x0205a1c8 func_ov000_0205a1f4 kind:function(thumb,size=0x7c) addr:0x0205a1f4 func_ov000_0205a270 kind:function(thumb,size=0x2c) addr:0x0205a270 func_ov000_0205a29c kind:function(thumb,size=0x104) addr:0x0205a29c @@ -1040,9 +1040,9 @@ _ZN19func_ov000_0207295cD1Ev kind:function(arm,size=0x14) addr:0x0207295c _ZN19func_ov000_02072970D0Ev kind:function(arm,size=0x1c) addr:0x02072970 func_ov000_0207298c kind:function(arm,size=0x14) addr:0x0207298c _ZN19func_ov000_020729a0D0Ev kind:function(arm,size=0x1c) addr:0x020729a0 -func_ov000_020729bc kind:function(arm,size=0x24) addr:0x020729bc +_ZN18UnkStruct_027e09a86CreateEv kind:function(arm,size=0x24) addr:0x020729bc func_ov000_020729e0 kind:function(arm,size=0x94) addr:0x020729e0 -func_ov000_02072a74 kind:function(arm,size=0xc) addr:0x02072a74 +_ZN18UnkStruct_027e09a819func_ov000_020713bcEv kind:function(arm,size=0xc) addr:0x02072a74 func_ov000_02072a80 kind:function(arm,size=0x84) addr:0x02072a80 func_ov000_02072b04 kind:function(arm,size=0x30) addr:0x02072b04 func_ov000_02072b34 kind:function(arm,size=0x118) addr:0x02072b34 @@ -1075,7 +1075,7 @@ func_ov000_020735f0 kind:function(arm,size=0x50) addr:0x020735f0 func_ov000_02073640 kind:function(arm,size=0x10) addr:0x02073640 _ZN21UnkStruct_027e09ac_1419func_ov000_02071f98Ev kind:function(arm,size=0x13c) addr:0x02073650 func_ov000_0207378c kind:function(arm,size=0x270) addr:0x0207378c -func_ov000_020739fc kind:function(arm,size=0xb0) addr:0x020739fc +func_ov000_02072344 kind:function(arm,size=0xb0) addr:0x020739fc func_ov000_02073aac kind:function(arm,size=0x78) addr:0x02073aac func_ov000_02073b24 kind:function(arm,size=0x204) addr:0x02073b24 func_ov000_02073d28 kind:function(arm,size=0x14) addr:0x02073d28 @@ -1084,12 +1084,12 @@ func_ov000_02073d54 kind:function(arm,size=0x54) addr:0x02073d54 _ZN18UnkStruct_027e09ac19func_ov000_020726f0Etii kind:function(arm,size=0x2d4) addr:0x02073da8 _ZN18UnkStruct_027e09ac19func_ov000_020729c4EP21UnkStruct_027e09ac_14ttss kind:function(arm,size=0x88) addr:0x0207407c func_ov000_02074104 kind:function(arm,size=0xbc) addr:0x02074104 -func_ov000_020741c0 kind:function(arm,size=0x1c) addr:0x020741c0 +_ZN18UnkStruct_027e09ac19func_ov000_02072b08Eii kind:function(arm,size=0x1c) addr:0x020741c0 func_ov000_020741dc kind:function(arm,size=0xc) addr:0x020741dc func_ov000_020741e8 kind:function(arm,size=0x78) addr:0x020741e8 -func_ov000_02074260 kind:function(arm,size=0x24) addr:0x02074260 +_ZN18UnkStruct_027e09b06CreateEv kind:function(arm,size=0x24) addr:0x02074260 func_ov000_02074284 kind:function(arm,size=0xa4) addr:0x02074284 -func_ov000_02074328 kind:function(arm,size=0x44) addr:0x02074328 +_ZN18UnkStruct_027e09b0D1Ev kind:function(arm,size=0x44) addr:0x02074328 func_ov000_0207436c kind:function(arm,size=0x10) addr:0x0207436c _ZN18UnkStruct_027e09b019func_ov000_02072cc4Eii kind:function(arm,size=0x10) addr:0x0207437c func_ov000_0207438c kind:function(arm,size=0x24) addr:0x0207438c @@ -1100,7 +1100,7 @@ func_ov000_020743f4 kind:function(arm,size=0x2c) addr:0x020743f4 func_ov000_02074420 kind:function(arm,size=0x7c) addr:0x02074420 func_ov000_0207449c kind:function(arm,size=0x60) addr:0x0207449c func_ov000_020744fc kind:function(arm,size=0x114) addr:0x020744fc -func_ov000_02074610 kind:function(arm,size=0x40) addr:0x02074610 +_ZN23UnkStruct_027e09ac_BaseC2Ev kind:function(arm,size=0x40) addr:0x02074610 func_ov000_02074650 kind:function(arm,size=0x24) addr:0x02074650 func_ov000_02074674 kind:function(arm,size=0x14) addr:0x02074674 func_ov000_02074688 kind:function(arm,size=0xb0) addr:0x02074688 @@ -2225,7 +2225,7 @@ func_ov000_02098168 kind:function(arm,size=0xe8) addr:0x02098168 _ZN29UnkStruct_027e0ce0_40_Base_1419func_ov000_02096a9cEv kind:function(arm,size=0x58) addr:0x02098250 func_ov000_020982a8 kind:function(arm,size=0x28) addr:0x020982a8 func_ov000_020982d0 kind:function(arm,size=0x78) addr:0x020982d0 -func_ov000_02098348 kind:function(arm,size=0x14) addr:0x02098348 +_ZN9PassengerC1Ev kind:function(arm,size=0x14) addr:0x02098348 _ZN9Passenger5ResetEv kind:function(arm,size=0x24) addr:0x0209835c func_ov000_02098380 kind:function(arm,size=0x48) addr:0x02098380 _ZN27SaveFile_00000_0000_Data_D8C1Ev kind:function(arm,size=0x14) addr:0x020983c8 @@ -2685,7 +2685,7 @@ func_ov000_020a1b64 kind:function(arm,size=0x24) addr:0x020a1b64 func_ov000_020a1b88 kind:function(arm,size=0x3c) addr:0x020a1b88 func_ov000_020a1bc4 kind:function(arm,size=0x4c) addr:0x020a1bc4 func_ov000_020a1c10 kind:function(arm,size=0x28) addr:0x020a1c10 -func_ov000_020a1c38 kind:function(thumb,size=0x32) addr:0x020a1c38 +_ZN21UnkStruct_027e0cec_1819func_ov000_020a0460Ev kind:function(thumb,size=0x32) addr:0x020a1c38 func_ov000_020a1c6c kind:function(arm,size=0x20) addr:0x020a1c6c func_ov000_020a1c8c kind:function(arm,size=0x5c) addr:0x020a1c8c func_ov000_020a1ce8 kind:function(arm,size=0x2c4) addr:0x020a1ce8 @@ -2701,7 +2701,7 @@ _ZN11SaveManager19func_ov000_020a0b70EPvi kind:function(thumb,size=0xa8) addr:0x func_ov000_020a23f0 kind:function(thumb,size=0x2c) addr:0x020a23f0 func_ov000_020a241c kind:function(thumb,size=0x34) addr:0x020a241c func_ov000_020a2450 kind:function(thumb,size=0x7c) addr:0x020a2450 -func_ov000_020a24cc kind:function(thumb,size=0x26) addr:0x020a24cc +_ZN27SaveFile_00000_0000_Data_D819func_ov000_020a0cf4Ev kind:function(thumb,size=0x26) addr:0x020a24cc func_ov000_020a24f4 kind:function(thumb,size=0x30) addr:0x020a24f4 func_ov000_020a2524 kind:function(thumb,size=0x5c) addr:0x020a2524 func_ov000_020a2580 kind:function(thumb,size=0xb0) addr:0x020a2580 diff --git a/config/jp/arm9/overlays/ov001/delinks.txt b/config/jp/arm9/overlays/ov001/delinks.txt index 0cff7aa9..412ef756 100644 --- a/config/jp/arm9/overlays/ov001/delinks.txt +++ b/config/jp/arm9/overlays/ov001/delinks.txt @@ -135,21 +135,30 @@ src/001_SceneInit/UnkStruct_ov000_020b504c_001.cpp: .data start:0x020c44c0 end:0x020c462c src/001_SceneInit/UnkStruct_027e09b4_001.cpp: + complete .text start:0x020c0294 end:0x020c0338 src/001_SceneInit/UnkStruct_027e09ac_001.cpp: + complete .text start:0x020c0338 end:0x020c0568 + .data start:0x020c462c end:0x020c466c src/001_SceneInit/UnkStruct_027e0cec_001.cpp: + complete .text start:0x020c0568 end:0x020c08f4 + .data start:0x020c466c end:0x020c4804 -src/001_SceneInit/code_020bf0a0.cpp: +src/001_SceneInit/UnkStruct_027e0cec_18_001.cpp: + complete .text start:0x020c08f4 end:0x020c0a0c + .data start:0x020c4804 end:0x020c4814 src/001_SceneInit/UnkStruct_027e0ce0_34_001.cpp: + complete .text start:0x020c0a0c end:0x020c0d00 src/001_SceneInit/UnkStruct_027e0d00_001.cpp: + complete .text start:0x020c0d00 end:0x020c1054 src/001_SceneInit/CargoManager_001.cpp: @@ -157,16 +166,24 @@ src/001_SceneInit/CargoManager_001.cpp: .text start:0x020c1054 end:0x020c10c4 src/001_SceneInit/PassengerManager_001.cpp: + complete .text start:0x020c10c4 end:0x020c12a4 src/001_SceneInit/UnkStruct_027e0cf8_08_00_001.cpp: + complete .text start:0x020c12a4 end:0x020c1514 src/001_SceneInit/UnkStruct_ov020_020e8544_001.cpp: + complete .text start:0x020c1514 end:0x020c1624 src/001_SceneInit/code_020bfdd0.cpp: - .text start:0x020c1624 end:0x020c17c8 + complete + .text start:0x020c1624 end:0x020c1740 + +src/001_SceneInit/code_020bfeec.cpp: + complete + .text start:0x020c1740 end:0x020c17c8 src/001_SceneInit/Game/AdventureModeManager_001.cpp: .text start:0x020c17c8 end:0x020c2198 @@ -176,4 +193,5 @@ src/001_SceneInit/Game/GameModeAdventure_001.cpp: .text start:0x020c2198 end:0x020c21f0 src/001_SceneInit/code_020c099c.cpp: + complete .text start:0x020c21f0 end:0x020c2278 diff --git a/config/jp/arm9/overlays/ov001/relocs.txt b/config/jp/arm9/overlays/ov001/relocs.txt index 90efc0ee..3bbe49b4 100644 --- a/config/jp/arm9/overlays/ov001/relocs.txt +++ b/config/jp/arm9/overlays/ov001/relocs.txt @@ -1920,7 +1920,7 @@ from:0x020c086e kind:thumb_call_arm to:0x0201662c module:main from:0x020c0874 kind:thumb_call_arm to:0x020c08e0 module:overlay(1) from:0x020c088c kind:thumb_call to:0x020a1c38 module:overlay(0) from:0x020c08a8 kind:arm_call to:0x02016614 module:main -from:0x020c08cc kind:load to:0x020c5758 module:overlay(17) +from:0x020c08cc kind:load to:0x020c5750 module:overlay(17) add:0x8 from:0x020c08dc kind:load to:0x027e0cec module:dtcm from:0x020c08f0 kind:load to:0x027e0cec module:dtcm from:0x020c0900 kind:load to:0x0204af1c module:main @@ -1937,7 +1937,7 @@ from:0x020c09a8 kind:thumb_call to:0x02056008 module:overlay(0) from:0x020c09ca kind:thumb_call_arm to:0x02011f3c module:main from:0x020c09d6 kind:thumb_call_arm to:0x0202a190 module:main from:0x020c09de kind:thumb_call to:0x02055f18 module:overlay(0) -from:0x020c09e8 kind:load to:0x020c480c module:overlay(1) +from:0x020c09e8 kind:load to:0x020c4804 module:overlay(1) add:0x8 from:0x020c09ec kind:load to:0x027e09a4 module:dtcm from:0x020c09f0 kind:load to:0x027e09a0 module:dtcm from:0x020c09f4 kind:load to:0x020c08f5 module:overlay(1) @@ -2117,18 +2117,18 @@ from:0x020c1620 kind:load to:0x020e9dc4 module:overlay(20) from:0x020c162e kind:thumb_call_arm to:0x02011ff4 module:main from:0x020c1640 kind:thumb_call_arm to:0x02011f3c module:main from:0x020c1658 kind:load to:0x020c5f34 module:overlay(1) -from:0x020c165c kind:load to:0x020f33dc module:overlays(22,23) +from:0x020c165c kind:load to:0x020f33d4 module:overlay(23) add:0x8 from:0x020c166a kind:thumb_call_arm to:0x02011ff4 module:main from:0x020c167c kind:thumb_call_arm to:0x02011f3c module:main from:0x020c1694 kind:load to:0x020c5f34 module:overlay(1) -from:0x020c1698 kind:load to:0x020f33dc module:overlays(22,23) +from:0x020c1698 kind:load to:0x020f33d4 module:overlay(23) add:0x8 from:0x020c16a6 kind:thumb_call_arm to:0x02011ff4 module:main from:0x020c16b8 kind:thumb_call_arm to:0x02011f3c module:main from:0x020c16d0 kind:load to:0x020c5f34 module:overlay(1) -from:0x020c16d4 kind:load to:0x020f33dc module:overlays(22,23) +from:0x020c16d4 kind:load to:0x020f33d4 module:overlay(23) add:0x8 from:0x020c16e8 kind:thumb_call_arm to:0x02011f3c module:main from:0x020c16fc kind:load to:0x020c5f34 module:overlay(1) -from:0x020c1700 kind:load to:0x020f33f4 module:overlays(22,23) +from:0x020c1700 kind:load to:0x020f33ec module:overlay(23) add:0x8 from:0x020c170a kind:thumb_call_arm to:0x020c2868 module:overlay(1) from:0x020c1710 kind:thumb_call_arm to:0x020c27f0 module:overlay(1) from:0x020c1718 kind:thumb_call to:0x020c1660 module:overlay(1) @@ -2318,7 +2318,6 @@ from:0x020c2242 kind:thumb_call_arm to:0x020c2868 module:overlay(1) from:0x020c226c kind:load to:0x020c21f1 module:overlay(1) from:0x020c2270 kind:load to:0x020c2215 module:overlay(1) from:0x020c2274 kind:load to:0x020c5f3c module:overlay(1) -from:0x020c2494 kind:load to:0x020c47a0 module:overlay(1) from:0x020c2498 kind:load to:0x020c417c module:overlays(2,4) from:0x020c254c kind:load to:0x020c4818 module:overlay(1) from:0x020c26f0 kind:load to:0x020c5f41 module:overlay(1) @@ -2328,7 +2327,6 @@ from:0x020c2858 kind:load to:0x020c5f41 module:overlay(1) from:0x020c28d0 kind:load to:0x020c5f41 module:overlay(1) from:0x020c2948 kind:load to:0x020c5f41 module:overlay(1) from:0x020c2970 kind:load to:0x020c3b00 module:overlay(1) -from:0x020c2a78 kind:load to:0x020c47a0 module:overlay(1) from:0x020c2b8c kind:load to:0x020c4818 module:overlay(1) from:0x020c2de4 kind:load to:0x020c5f41 module:overlay(1) from:0x020c2e5c kind:load to:0x020c5f41 module:overlay(1) @@ -2344,10 +2342,8 @@ 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: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: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:0x020c374c kind:load to:0x020c5f41 module:overlay(1) @@ -2357,7 +2353,6 @@ from:0x020c394c kind:load to:0x020c5f41 module:overlay(1) from:0x020c3954 kind:load to:0x020d3b2a module:overlay(19) from:0x020c39c4 kind:load to:0x020c5f41 module:overlay(1) from:0x020c39cc kind:load to:0x020d3b2a module:overlay(19) -from:0x020c39f4 kind:load to:0x020c47a0 module:overlay(1) from:0x020c39fc kind:load to:0x020c4818 module:overlay(1) from:0x020c3de0 kind:load to:0x020c738c module:overlay(25) from:0x020c3e00 kind:load to:0x020c7398 module:overlay(25) diff --git a/config/jp/arm9/overlays/ov001/symbols.txt b/config/jp/arm9/overlays/ov001/symbols.txt index 62508328..6a04966e 100644 --- a/config/jp/arm9/overlays/ov001/symbols.txt +++ b/config/jp/arm9/overlays/ov001/symbols.txt @@ -222,7 +222,7 @@ _ZN29UnkStruct_027e0ce0_40_Base_94D1Ev kind:function(thumb,size=0x12) addr:0x020 _ZN18UnkStruct_027e0ce06CreateEv kind:function(thumb,size=0x16) addr:0x020bdb94 _ZN18UnkStruct_027e0ce0C1Ev kind:function(thumb,size=0xec) addr:0x020bdbac _ZN18UnkStruct_027e0ce0D1Ev kind:function(thumb,size=0x86) addr:0x020bdc98 -_ZN18UnkStruct_027e0ce019func_ov001_020bc4d8EP13InvImportDataii kind:function(thumb,size=0x4c) addr:0x020bdd20 +_ZN18UnkStruct_027e0ce019func_ov001_020bc4d8EP13InvImportDataP27SaveFile_00000_0000_Data_D8i kind:function(thumb,size=0x4c) addr:0x020bdd20 _ZN18UnkStruct_027e0ce019func_ov001_020bc524Eb kind:function(thumb,size=0xd4) addr:0x020bdd6c _ZN18UnkStruct_027e0ce019func_ov001_020bc5f8Ev kind:function(thumb,size=0x62) addr:0x020bde40 _ZN18UnkStruct_027e0ce019func_ov001_020bc65cEv kind:function(thumb,size=0x40) addr:0x020bdea4 @@ -335,58 +335,58 @@ _ZN24UnkStruct_ov000_020b504c19func_ov001_020be94cEv kind:function(thumb,size=0x _ZN24UnkStruct_ov000_020b504c19func_ov001_020be998Ev kind:function(thumb,size=0x64) addr:0x020c01ec _ZN24UnkStruct_ov000_020b504c19func_ov001_020be9fcEv kind:function(thumb,size=0x30) addr:0x020c0250 _ZN24UnkStruct_ov000_020b504c19func_ov001_020bea2cEv kind:function(thumb,size=0x14) addr:0x020c0280 -func_ov001_020bea40 kind:function(thumb,size=0x18) addr:0x020c0294 -func_ov001_020bea58 kind:function(thumb,size=0x2c) addr:0x020c02ac -func_ov001_020bea84 kind:function(thumb,size=0x48) addr:0x020c02d8 -func_ov001_020beacc kind:function(thumb,size=0xc) addr:0x020c0320 -func_ov001_020bead8 kind:function(thumb,size=0xc) addr:0x020c032c +_ZN18UnkStruct_027e09b46CreateEv kind:function(thumb,size=0x18) addr:0x020c0294 +_ZN18UnkStruct_027e09b4C1Ev kind:function(thumb,size=0x2c) addr:0x020c02ac +_ZN18UnkStruct_027e09b419func_ov001_020bea84Ev kind:function(thumb,size=0x48) addr:0x020c02d8 +_ZN8InstanceI18UnkStruct_027e09b4EC2Ev kind:function(thumb,size=0xc) addr:0x020c0320 +_ZN8InstanceI18UnkStruct_027e09b4ED2Ev kind:function(thumb,size=0xc) addr:0x020c032c _ZN18UnkStruct_027e09ac6CreateEv kind:function(thumb,size=0x18) addr:0x020c0338 -func_ov001_020beafc kind:function(thumb,size=0x90) addr:0x020c0350 +_ZN18UnkStruct_027e09acC1Ev kind:function(thumb,size=0x90) addr:0x020c0350 _ZN18UnkStruct_027e09acD1Ev kind:function(thumb,size=0x2c) addr:0x020c03e0 _ZN18UnkStruct_027e09ac19func_ov001_020bebb8Ev kind:function(thumb,size=0xd4) addr:0x020c040c _ZN18UnkStruct_027e09ac19func_ov001_020bec8cEv kind:function(thumb,size=0x2) addr:0x020c04e0 -func_ov001_020bec90 kind:function(thumb,size=0x20) addr:0x020c04e4 -func_ov001_020becb0 kind:function(thumb,size=0x20) addr:0x020c0504 -func_ov001_020becd0 kind:function(thumb,size=0x20) addr:0x020c0524 -func_ov001_020becf0 kind:function(thumb,size=0xc) addr:0x020c0544 -func_ov001_020becfc kind:function(thumb,size=0xc) addr:0x020c0550 -func_ov001_020bed08 kind:function(thumb,size=0xc) addr:0x020c055c +_ZN18UnkStruct_027e09a87DestroyEv kind:function(thumb,size=0x20) addr:0x020c04e4 +_ZN18UnkStruct_027e09b47DestroyEv kind:function(thumb,size=0x20) addr:0x020c0504 +_ZN18UnkStruct_027e09b07DestroyEv kind:function(thumb,size=0x20) addr:0x020c0524 +_ZN8InstanceI18UnkStruct_027e09acEC2Ev kind:function(thumb,size=0xc) addr:0x020c0544 +_ZN8InstanceI18UnkStruct_027e09acED2Ev kind:function(thumb,size=0xc) addr:0x020c0550 +_ZN8InstanceI18UnkStruct_027e09a8ED2Ev kind:function(thumb,size=0xc) addr:0x020c055c _ZN18UnkStruct_027e0cec6CreateEv kind:function(thumb,size=0x20) addr:0x020c0568 -func_ov001_020bed34 kind:function(thumb,size=0x1c) addr:0x020c0588 -func_ov001_020bed50 kind:function(thumb,size=0x248) addr:0x020c05a4 -func_ov001_020bef98 kind:function(thumb,size=0x7c) addr:0x020c07ec -func_ov001_020bf014 kind:function(thumb,size=0x14) addr:0x020c0868 +_ZN18UnkStruct_027e0cec19func_ov001_020bed34Ev kind:function(thumb,size=0x1c) addr:0x020c0588 +_ZN18UnkStruct_027e0cecC1Ev kind:function(thumb,size=0x248) addr:0x020c05a4 +_ZN18UnkStruct_027e0cec19func_ov001_020bef98Ev kind:function(thumb,size=0x7c) addr:0x020c07ec +_ZN18UnkStruct_027e0cecD1Ev kind:function(thumb,size=0x14) addr:0x020c0868 _ZN18UnkStruct_027e0cec19func_ov001_020bf028Ev kind:function(thumb,size=0x1c) addr:0x020c087c -func_ov001_020bf044 kind:function(arm,size=0x38) addr:0x020c0898 -func_ov001_020bf07c kind:function(arm,size=0x10) addr:0x020c08d0 -func_ov001_020bf08c kind:function(arm,size=0x14) addr:0x020c08e0 -func_ov001_020bf0a0 kind:function(thumb,size=0x14) addr:0x020c08f4 -func_ov001_020bf0b4 kind:function(thumb,size=0xf4) addr:0x020c0908 -func_ov001_020bf1a8 kind:function(thumb,size=0x2) addr:0x020c09fc -_ZN19func_ov001_020bf1acD0Ev kind:function(thumb,size=0xc) addr:0x020c0a00 +_ZN21UnkStruct_027e0cec_00C1EPv kind:function(arm,size=0x38) addr:0x020c0898 +_ZN8InstanceI18UnkStruct_027e0cecEC2Ev kind:function(arm,size=0x10) addr:0x020c08d0 +_ZN8InstanceI18UnkStruct_027e0cecED2Ev kind:function(arm,size=0x14) addr:0x020c08e0 +_ZN21UnkStruct_027e0cec_1819func_ov001_020bf0a0Em kind:function(thumb,size=0x14) addr:0x020c08f4 +_ZN21UnkStruct_027e0cec_18C1EP14UnkFileSystem1bi kind:function(thumb,size=0xf4) addr:0x020c0908 +_ZN21UnkStruct_027e0cec_18D1Ev kind:function(thumb,size=0x2) addr:0x020c09fc +_ZN21UnkStruct_027e0cec_18D0Ev kind:function(thumb,size=0xc) addr:0x020c0a00 _ZN21UnkStruct_027e0ce0_34C1Ev kind:function(thumb,size=0x60) addr:0x020c0a0c _ZN21UnkStruct_027e0ce0_34D1Ev kind:function(thumb,size=0x14) addr:0x020c0a6c -_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf22cEii kind:function(thumb,size=0x8c) addr:0x020c0a80 +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf22cEP27SaveFile_00000_0000_Data_D8i kind:function(thumb,size=0x8c) addr:0x020c0a80 _ZN21UnkStruct_027e0ce0_3419func_ov001_020bf2b8Eb kind:function(thumb,size=0xc0) addr:0x020c0b0c _ZN21UnkStruct_027e0ce0_3419func_ov001_020bf378Ev kind:function(thumb,size=0x44) addr:0x020c0bcc _ZN21UnkStruct_027e0ce0_3419func_ov001_020bf3bcEv kind:function(thumb,size=0xe) addr:0x020c0c10 _ZN21UnkStruct_027e0ce0_3419func_ov001_020bf3ccEv kind:function(thumb,size=0x30) addr:0x020c0c20 -func_ov001_020bf3fc kind:function(thumb,size=0x2c) addr:0x020c0c50 -func_ov001_020bf428 kind:function(arm,size=0x2c) addr:0x020c0c7c -func_ov001_020bf454 kind:function(arm,size=0x2c) addr:0x020c0ca8 -func_ov001_020bf480 kind:function(arm,size=0x2c) addr:0x020c0cd4 +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf3fcEv kind:function(thumb,size=0x2c) addr:0x020c0c50 +_ZN12CargoManager7DestroyEv kind:function(arm,size=0x2c) addr:0x020c0c7c +_ZN18UnkStruct_027e0d007DestroyEv kind:function(arm,size=0x2c) addr:0x020c0ca8 +_ZN16PassengerManager7DestroyEv kind:function(arm,size=0x2c) addr:0x020c0cd4 _ZN18UnkStruct_027e0d00C1Ev kind:function(thumb,size=0x76) addr:0x020c0d00 _ZN18UnkStruct_027e0d00D1Ev kind:function(thumb,size=0xc) addr:0x020c0d78 -func_ov001_020bf530 kind:function(thumb,size=0x38) addr:0x020c0d84 -func_ov001_020bf568 kind:function(thumb,size=0x28) addr:0x020c0dbc -func_ov001_020bf590 kind:function(thumb,size=0x10c) addr:0x020c0de4 -func_ov001_020bf69c kind:function(thumb,size=0x94) addr:0x020c0ef0 -func_ov001_020bf730 kind:function(thumb,size=0x20) addr:0x020c0f84 -func_ov001_020bf750 kind:function(thumb,size=0x16) addr:0x020c0fa4 -func_ov001_020bf768 kind:function(thumb,size=0x50) addr:0x020c0fbc -func_ov001_020bf7b8 kind:function(thumb,size=0x2e) addr:0x020c100c -func_ov001_020bf7e8 kind:function(thumb,size=0xc) addr:0x020c103c -func_ov001_020bf7f4 kind:function(thumb,size=0xc) addr:0x020c1048 +_ZN18UnkStruct_027e0d0019func_ov001_020bf530Ev kind:function(thumb,size=0x38) addr:0x020c0d84 +_ZN18UnkStruct_027e0d0019func_ov001_020bf568Ev kind:function(thumb,size=0x28) addr:0x020c0dbc +_ZN18UnkStruct_027e0d0019func_ov001_020bf590Ev kind:function(thumb,size=0x10c) addr:0x020c0de4 +_ZN18UnkStruct_027e0d0019func_ov001_020bf69cEv kind:function(thumb,size=0x94) addr:0x020c0ef0 +_ZN18UnkStruct_027e0d0019func_ov001_020bf730Ev kind:function(thumb,size=0x20) addr:0x020c0f84 +_ZN18UnkStruct_027e0d0019func_ov001_020bf750Ev kind:function(thumb,size=0x16) addr:0x020c0fa4 +_ZN18UnkStruct_027e0d0019func_ov001_020bf768Ev kind:function(thumb,size=0x50) addr:0x020c0fbc +_ZN18UnkStruct_027e0d0019func_ov001_020bf7b8Ev kind:function(thumb,size=0x2e) addr:0x020c100c +_ZN8InstanceI18UnkStruct_027e0d00EC2Ev kind:function(thumb,size=0xc) addr:0x020c103c +_ZN8InstanceI18UnkStruct_027e0d00ED2Ev kind:function(thumb,size=0xc) addr:0x020c1048 _ZN12CargoManagerC1Ev kind:function(thumb,size=0x22) addr:0x020c1054 _ZN12CargoManagerD1Ev kind:function(thumb,size=0xc) addr:0x020c1078 _ZN12CargoManager19func_ov001_020bf830Ev kind:function(thumb,size=0x28) addr:0x020c1084 @@ -404,22 +404,22 @@ _ZN8InstanceI16PassengerManagerED2Ev kind:function(thumb,size=0xc) addr:0x020c12 _ZN24UnkStruct_027e0cf8_08_00C1Eh kind:function(thumb,size=0xc2) addr:0x020c12a4 _ZN24UnkStruct_027e0cf8_08_00D1Ev kind:function(thumb,size=0xc) addr:0x020c1368 _ZN24UnkStruct_027e0cf8_08_0019func_ov001_020bfb20Ev kind:function(thumb,size=0x1a0) addr:0x020c1374 -func_ov001_020bfcc0 kind:function(thumb,size=0x30) addr:0x020c1514 -func_ov001_020bfcf0 kind:function(thumb,size=0x30) addr:0x020c1544 -func_ov001_020bfd20 kind:function(thumb,size=0x34) addr:0x020c1574 -func_ov001_020bfd54 kind:function(thumb,size=0x30) addr:0x020c15a8 -func_ov001_020bfd84 kind:function(thumb,size=0x4c) addr:0x020c15d8 -func_ov001_020bfdd0 kind:function(thumb,size=0x3c) addr:0x020c1624 -func_ov001_020bfe0c kind:function(thumb,size=0x3c) addr:0x020c1660 -func_ov001_020bfe48 kind:function(thumb,size=0x3c) addr:0x020c169c -func_ov001_020bfe84 kind:function(thumb,size=0x2c) addr:0x020c16d8 -func_ov001_020bfeb0 kind:function(thumb,size=0x3c) addr:0x020c1704 -func_ov001_020bfeec kind:function(thumb,size=0x10) addr:0x020c1740 -func_ov001_020bfefc kind:function(thumb,size=0x10) addr:0x020c1750 -func_ov001_020bff0c kind:function(thumb,size=0x10) addr:0x020c1760 -func_ov001_020bff1c kind:function(thumb,size=0x10) addr:0x020c1770 -func_ov001_020bff2c kind:function(thumb,size=0x8) addr:0x020c1780 -func_ov001_020bff34 kind:function(thumb,size=0x40) addr:0x020c1788 +_Z19func_ov001_020bfcc0v kind:function(thumb,size=0x30) addr:0x020c1514 +_Z19func_ov001_020bfcf0v kind:function(thumb,size=0x30) addr:0x020c1544 +_Z19func_ov001_020bfd20v kind:function(thumb,size=0x34) addr:0x020c1574 +_Z19func_ov001_020bfd54v kind:function(thumb,size=0x30) addr:0x020c15a8 +_ZN14GameModeBattle19func_ov001_020bfd84Ei kind:function(thumb,size=0x4c) addr:0x020c15d8 +_Z19func_ov001_020bfdd0v kind:function(thumb,size=0x3c) addr:0x020c1624 +_Z19func_ov001_020bfe0cv kind:function(thumb,size=0x3c) addr:0x020c1660 +_Z19func_ov001_020bfe48v kind:function(thumb,size=0x3c) addr:0x020c169c +_Z19func_ov001_020bfe84v kind:function(thumb,size=0x2c) addr:0x020c16d8 +_ZN24UnkStruct_ov023_020f1d9419func_ov001_020bfeb0Ev kind:function(thumb,size=0x3c) addr:0x020c1704 +_Z19func_ov001_020bfeecv kind:function(thumb,size=0x10) addr:0x020c1740 +_Z19func_ov001_020bfefcv kind:function(thumb,size=0x10) addr:0x020c1750 +_Z19func_ov001_020bff0cv kind:function(thumb,size=0x10) addr:0x020c1760 +_Z19func_ov001_020bff1cv kind:function(thumb,size=0x10) addr:0x020c1770 +_ZN14Actor_Derived119func_ov001_020bff2cEv kind:function(thumb,size=0x8) addr:0x020c1780 +_ZN12ActorUnkLBCK19func_ov001_020bff34Ev kind:function(thumb,size=0x40) addr:0x020c1788 _ZN20AdventureModeManager6CreateEP23UnkStruct_0204a110_Sub2 kind:function(thumb,size=0x1c) addr:0x020c17c8 _ZN20AdventureModeManagerC1EP23UnkStruct_0204a110_Sub2 kind:function(thumb,size=0x134) addr:0x020c17e4 _ZN20AdventureModeManager8vfunc_10Eiii kind:function(thumb,size=0x10) addr:0x020c1918 @@ -439,9 +439,9 @@ _ZN24UnkStruct_ov000_020b4f70D1Ev kind:function(thumb,size=0xc) addr:0x020c2100 _ZN24AdventureModeManager_15CC1Ev kind:function(thumb,size=0x68) addr:0x020c210c _ZN24AdventureModeManager_15CD1Ev kind:function(thumb,size=0x22) addr:0x020c2174 _ZN17GameModeAdventureC1Ev kind:function(thumb,size=0x58) addr:0x020c2198 -func_ov001_020c099c kind:function(thumb,size=0x24) addr:0x020c21f0 -func_ov001_020c09c0 kind:function(thumb,size=0x1c) addr:0x020c2214 -func_ov001_020c09dc kind:function(thumb,size=0x48) addr:0x020c2230 +_Z19func_ov001_020c099cv kind:function(thumb,size=0x24) addr:0x020c21f0 +_Z19func_ov001_020c09c0v kind:function(thumb,size=0x1c) addr:0x020c2214 +_ZN20GameModeDownloadPlay19func_ov001_020c09dcEv kind:function(thumb,size=0x48) addr:0x020c2230 DetectFlashcart kind:function(arm,size=0xb8,unknown) addr:0x020c2278 DetectNotFlashcart kind:function(arm,size=0xb8,unknown) addr:0x020c2330 DetectEmulator kind:function(arm,size=0xb8,unknown) addr:0x020c23e8 @@ -500,8 +500,8 @@ data_ov001_020c2638 kind:data(any) addr:0x020c3e8c local data_ov001_020c264c kind:data(any) addr:0x020c3ea0 data_ov001_020c26bc kind:data(any) addr:0x020c3f10 data_ov001_020c3f90 kind:data(any) addr:0x020c3f90 -data_ov001_020c3fa4 kind:data(any) addr:0x020c3fa4 -data_ov001_020c3fb2 kind:data(any) addr:0x020c3fb2 +data_ov001_020c2750 kind:data(any) addr:0x020c3fa4 +data_ov001_020c275e kind:data(any) addr:0x020c3fb2 data_ov001_020c276c kind:data(any) addr:0x020c3fc0 data_ov001_020c27a8 kind:data(any) addr:0x020c3ffc data_ov001_020c4060 kind:data(any) addr:0x020c4060 @@ -602,40 +602,39 @@ data_ov001_020c2cf4 kind:data(any) addr:0x020c4534 local @2373 kind:data(byte[10]) addr:0x020c4610 local @2374 kind:data(byte[5]) addr:0x020c461c local @2375 kind:data(byte[5]) addr:0x020c4624 local -data_ov001_020c462c kind:data(any) addr:0x020c462c -data_ov001_020c4640 kind:data(any) addr:0x020c4640 -data_ov001_020c4648 kind:data(any) addr:0x020c4648 -data_ov001_020c4650 kind:data(any) addr:0x020c4650 -data_ov001_020c4658 kind:data(any) addr:0x020c4658 -data_ov001_020c4660 kind:data(any) addr:0x020c4660 -data_ov001_020c466c kind:data(any) addr:0x020c466c -data_ov001_020c4680 kind:data(any) addr:0x020c4680 -data_ov001_020c4694 kind:data(any) addr:0x020c4694 -data_ov001_020c46a8 kind:data(any) addr:0x020c46a8 -data_ov001_020c46c0 kind:data(any) addr:0x020c46c0 -data_ov001_020c46d8 kind:data(any) addr:0x020c46d8 -data_ov001_020c46f0 kind:data(any) addr:0x020c46f0 -data_ov001_020c4708 kind:data(any) addr:0x020c4708 -data_ov001_020c4720 kind:data(any) addr:0x020c4720 -data_ov001_020c4738 kind:data(any) addr:0x020c4738 -data_ov001_020c4750 kind:data(any) addr:0x020c4750 -data_ov001_020c4768 kind:data(any) addr:0x020c4768 -data_ov001_020c4798 kind:data(any) addr:0x020c4798 -data_ov001_020c47a0 kind:data(any) addr:0x020c47a0 -data_ov001_020c47b0 kind:data(any) addr:0x020c47b0 -data_ov001_020c47c4 kind:data(any) addr:0x020c47c4 -data_ov001_020c47dc kind:data(any) addr:0x020c47dc -data_ov001_020c47ec kind:data(any) addr:0x020c47ec -data_ov001_020c47f4 kind:data(any) addr:0x020c47f4 -data_ov001_020c480c kind:data(any) addr:0x020c480c +@2664 kind:data(byte[0x14]) addr:0x020c462c local +@2665 kind:data(byte[7]) addr:0x020c4640 local +@2666 kind:data(byte[8]) addr:0x020c4648 local +@2667 kind:data(byte[6]) addr:0x020c4650 local +@2668 kind:data(byte[6]) addr:0x020c4658 local +@2669 kind:data(byte[9]) addr:0x020c4660 local +@0 kind:data(byte[0x11]) addr:0x020c466c local +@1 kind:data(byte[0x12]) addr:0x020c4680 local +@2 kind:data(byte[0x13]) addr:0x020c4694 local +@3 kind:data(byte[0x15]) addr:0x020c46a8 local +@4 kind:data(byte[0x16]) addr:0x020c46c0 local +@5 kind:data(byte[0x16]) addr:0x020c46d8 local +@6 kind:data(byte[0x16]) addr:0x020c46f0 local +@7 kind:data(byte[0x16]) addr:0x020c4708 local +@8 kind:data(byte[0x16]) addr:0x020c4720 local +@9 kind:data(byte[0x17]) addr:0x020c4738 local +@10 kind:data(byte[0x17]) addr:0x020c4750 local +data_ov001_020c2f28 kind:data(any) addr:0x020c4768 local +@11 kind:data(byte[0x15]) addr:0x020c4798 local +@14 kind:data(byte[0x11]) addr:0x020c47b0 local +@15 kind:data(byte[0x16]) addr:0x020c47c4 local +@16 kind:data(byte[0xd]) addr:0x020c47dc local +@17 kind:data(byte[0x5]) addr:0x020c47ec local +@18 kind:data(byte[0x10]) addr:0x020c47f4 local +_ZTV21UnkStruct_027e0cec_18 kind:data(any) addr:0x020c4804 data_ov001_020c4814 kind:data(any) addr:0x020c4814 data_ov001_020c4818 kind:data(any) addr:0x020c4818 _ZGVN14StaticInstanceI16CourseInitBinaryE9sInstanceE kind:bss addr:0x020c4820 _ZN14StaticInstanceI16CourseInitBinaryE9sInstanceE kind:bss addr:0x020c4824 @4613 kind:bss addr:0x020c5928 local data_ov001_020c40f4 kind:bss addr:0x020c5934 local -data_ov001_020c5f34 kind:bss addr:0x020c5f34 -data_ov001_020c5f38 kind:bss addr:0x020c5f38 -data_ov001_020c5f3c kind:bss addr:0x020c5f3c +data_ov001_020c46f4 kind:bss addr:0x020c5f34 +data_ov001_020c46f8 kind:bss addr:0x020c5f38 +data_ov001_020c46fc kind:bss addr:0x020c5f3c data_ov001_020c5f40 kind:bss addr:0x020c5f40 data_ov001_020c5f41 kind:bss addr:0x020c5f41 diff --git a/config/jp/arm9/overlays/ov017/symbols.txt b/config/jp/arm9/overlays/ov017/symbols.txt index 281c5a9a..5373cd82 100644 --- a/config/jp/arm9/overlays/ov017/symbols.txt +++ b/config/jp/arm9/overlays/ov017/symbols.txt @@ -177,7 +177,7 @@ __sinit_ov017_020c56f4 kind:function(arm,size=0x18) addr:0x020c56f4 .p__sinit_ov017_020c56f4 kind:data(word) addr:0x020c5714 data_ov017_020c5728 kind:data(any) addr:0x020c5728 data_ov017_020c5734 kind:data(any) addr:0x020c5734 -data_ov017_020c5758 kind:data(any) addr:0x020c5758 +_ZTV21UnkStruct_027e0cec_00 kind:data(any) addr:0x020c5750 data_ov017_020c575c kind:data(any) addr:0x020c575c data_ov017_020c5760 kind:data(any) addr:0x020c5760 data_ov017_020c5780 kind:bss addr:0x020c5780 diff --git a/config/jp/arm9/overlays/ov020/symbols.txt b/config/jp/arm9/overlays/ov020/symbols.txt index 2f6cee77..b18fb3ba 100644 --- a/config/jp/arm9/overlays/ov020/symbols.txt +++ b/config/jp/arm9/overlays/ov020/symbols.txt @@ -133,7 +133,7 @@ func_ov020_020c8d34 kind:function(arm,size=0x70) addr:0x020c8d34 func_ov020_020c8da4 kind:function(arm,size=0x11c) addr:0x020c8da4 func_ov020_020c8ec0 kind:function(arm,size=0x98) addr:0x020c8ec0 func_ov020_020c8f58 kind:function(arm,size=0xa4) addr:0x020c8f58 -func_ov020_020c8ffc kind:function(arm,size=0xd4) addr:0x020c8ffc +_ZN33UnkStruct_ov020_020e8544_Derived2C1Ev kind:function(arm,size=0xd4) addr:0x020c8ffc _ZN19func_ov020_020c90d0D1Ev kind:function(arm,size=0x40) addr:0x020c90d0 _ZN19func_ov020_020c9110D0Ev kind:function(arm,size=0x48) addr:0x020c9110 func_ov020_020c9158 kind:function(arm,size=0x204) addr:0x020c9158 @@ -161,7 +161,7 @@ func_ov020_020c99dc kind:function(arm,size=0x50) addr:0x020c99dc func_ov020_020c9a2c kind:function(arm,size=0x50) addr:0x020c9a2c func_ov020_020c9a7c kind:function(arm,size=0x70) addr:0x020c9a7c func_ov020_020c9aec kind:function(arm,size=0xc0) addr:0x020c9aec -func_ov020_020c9bac kind:function(arm,size=0x2c) addr:0x020c9bac +_ZN33UnkStruct_ov020_020e8544_Derived1C1Ev kind:function(arm,size=0x2c) addr:0x020c9bac _ZN19func_ov020_020c9bd8D1Ev kind:function(arm,size=0x14) addr:0x020c9bd8 _ZN19func_ov020_020c9becD0Ev kind:function(arm,size=0x1c) addr:0x020c9bec func_ov020_020c9c08 kind:function(arm,size=0x4) addr:0x020c9c08 diff --git a/config/jp/arm9/overlays/ov022/symbols.txt b/config/jp/arm9/overlays/ov022/symbols.txt index 620603b0..b0686f03 100644 --- a/config/jp/arm9/overlays/ov022/symbols.txt +++ b/config/jp/arm9/overlays/ov022/symbols.txt @@ -114,7 +114,7 @@ func_ov022_020ee860 kind:function(arm,size=0x20) addr:0x020ee860 func_ov022_020ee880 kind:function(arm,size=0x10) addr:0x020ee880 _ZN19func_ov022_020ee890D0Ev kind:function(arm,size=0x1c) addr:0x020ee890 _ZN19func_ov022_020ee8acD0Ev kind:function(arm,size=0x1c) addr:0x020ee8ac -func_ov022_020ee8c8 kind:function(arm,size=0x80) addr:0x020ee8c8 +_ZN24UnkStruct_ov001_020c46fcC1Ev kind:function(arm,size=0x80) addr:0x020ee8c8 func_ov022_020ee948 kind:function(arm,size=0x14) addr:0x020ee948 _ZN19func_ov022_020ee95cD0Ev kind:function(arm,size=0x24) addr:0x020ee95c func_ov022_020ee980 kind:function(arm,size=0x30) addr:0x020ee980 diff --git a/config/jp/arm9/overlays/ov023/symbols.txt b/config/jp/arm9/overlays/ov023/symbols.txt index a887c391..4723cbb5 100644 --- a/config/jp/arm9/overlays/ov023/symbols.txt +++ b/config/jp/arm9/overlays/ov023/symbols.txt @@ -221,8 +221,8 @@ data_ov023_020f33a8 kind:data(any) addr:0x020f33a8 data_ov023_020f33b0 kind:data(any) addr:0x020f33b0 data_ov023_020f33b8 kind:data(any) addr:0x020f33b8 data_ov023_020f33cc kind:data(any) addr:0x020f33cc -data_ov023_020f33dc kind:data(any) addr:0x020f33dc ambiguous -data_ov023_020f33f4 kind:data(any) addr:0x020f33f4 ambiguous +_ZTV33UnkStruct_ov001_020c46f4_Derived1 kind:data(any) addr:0x020f33d4 ambiguous +_ZTV33UnkStruct_ov001_020c46f4_Derived2 kind:data(any) addr:0x020f33ec ambiguous data_ov023_020f3404 kind:data(any) addr:0x020f3404 data_ov023_020f3408 kind:data(any) addr:0x020f3408 data_ov023_020f3440 kind:bss addr:0x020f3440 diff --git a/config/jp/arm9/overlays/ov024/symbols.txt b/config/jp/arm9/overlays/ov024/symbols.txt index de5a0dfa..ec2236ad 100644 --- a/config/jp/arm9/overlays/ov024/symbols.txt +++ b/config/jp/arm9/overlays/ov024/symbols.txt @@ -632,7 +632,7 @@ _ZN18UnkStruct_027e0d0019func_ov024_020d4e3cEi kind:function(arm,size=0x60) addr _ZN21UnkStruct_027e0d00_2019func_ov024_020d4e9cEPwib kind:function(arm,size=0x40) addr:0x020d6840 _ZN21UnkStruct_027e0d00_2019func_ov024_020d4edcEPwS0_i kind:function(arm,size=0x2c) addr:0x020d6880 _ZN21UnkStruct_027e0d00_20C1Eii kind:function(arm,size=0x98) addr:0x020d68ac -_ZN21UnkStruct_027e0d00_2019func_ov024_020d4fa0Eii kind:function(arm,size=0x1c0) addr:0x020d6944 +_ZN21UnkStruct_027e0d00_2019func_ov024_020d4fa0EPvi kind:function(arm,size=0x1c0) addr:0x020d6944 _ZN20ModelRender_Derived2D1Ev kind:function(arm,size=0x14) addr:0x020d6b04 _ZN21UnkStruct_027e0d00_2019func_ov024_020d5174Ev kind:function(arm,size=0x1c) addr:0x020d6b18 _ZN21UnkStruct_027e0d00_20D0Ev kind:function(arm,size=0x30) addr:0x020d6b34 diff --git a/config/jp/arm9/overlays/ov026/symbols.txt b/config/jp/arm9/overlays/ov026/symbols.txt index 19cf6375..7727e30f 100644 --- a/config/jp/arm9/overlays/ov026/symbols.txt +++ b/config/jp/arm9/overlays/ov026/symbols.txt @@ -391,10 +391,10 @@ func_ov026_020ed2f4 kind:function(arm,size=0x128) addr:0x020ed2f4 func_ov026_020ed41c kind:function(arm,size=0x20) addr:0x020ed41c func_ov026_020ed43c kind:function(arm,size=0xc) addr:0x020ed43c func_ov026_020ed448 kind:function(arm,size=0x1c) addr:0x020ed448 -func_ov026_020ed464 kind:function(arm,size=0x94) addr:0x020ed464 -func_ov026_020ed4f8 kind:function(arm,size=0x54) addr:0x020ed4f8 -func_ov026_020ed54c kind:function(arm,size=0xf0) addr:0x020ed54c -func_ov026_020ed63c kind:function(arm,size=0x6c) addr:0x020ed63c +_ZN24UnkStruct_027e0ce0_34_20C1Ev kind:function(arm,size=0x94) addr:0x020ed464 +_ZN24UnkStruct_027e0ce0_34_20D1Ev kind:function(arm,size=0x54) addr:0x020ed4f8 +_ZN24UnkStruct_027e0ce0_34_2019func_ov026_020eb5b8Ev kind:function(arm,size=0xf0) addr:0x020ed54c +_ZN24UnkStruct_027e0ce0_34_2019func_ov026_020eb6a8Ev kind:function(arm,size=0x6c) addr:0x020ed63c func_ov026_020ed6a8 kind:function(arm,size=0x1b8) addr:0x020ed6a8 func_ov026_020ed860 kind:function(arm,size=0x34) addr:0x020ed860 func_ov026_020ed894 kind:function(arm,size=0xc) addr:0x020ed894 @@ -517,7 +517,7 @@ func_ov026_020f1674 kind:function(arm,size=0x30) addr:0x020f1674 func_ov026_020f16a4 kind:function(arm,size=0x7c) addr:0x020f16a4 func_ov026_020f1720 kind:function(arm,size=0x178) addr:0x020f1720 func_ov026_020f1898 kind:function(arm,size=0x2d8) addr:0x020f1898 -func_ov026_020f1b70 kind:function(arm,size=0x144) addr:0x020f1b70 +func_ov026_020efc40 kind:function(arm,size=0x144) addr:0x020f1b70 func_ov026_020f1cb4 kind:function(arm,size=0x68) addr:0x020f1cb4 func_ov026_020f1d1c kind:function(arm,size=0xe4) addr:0x020f1d1c func_ov026_020f1e00 kind:function(arm,size=0x1a0) addr:0x020f1e00 @@ -695,7 +695,7 @@ func_ov026_020f6b40 kind:function(arm,size=0x44) addr:0x020f6b40 func_ov026_020f6b84 kind:function(arm,size=0x18) addr:0x020f6b84 func_ov026_020f6b9c kind:function(arm,size=0x18) addr:0x020f6b9c func_ov026_020f6bb4 kind:function(arm,size=0x18) addr:0x020f6bb4 -func_ov026_020f6bcc kind:function(arm,size=0x18) addr:0x020f6bcc +func_ov026_020f4c9c kind:function(arm,size=0x18) addr:0x020f6bcc func_ov026_020f6be4 kind:function(arm,size=0x34) addr:0x020f6be4 func_ov026_020f6c18 kind:function(arm,size=0x4) addr:0x020f6c18 func_ov026_020f6c1c kind:function(arm,size=0x144) addr:0x020f6c1c @@ -916,9 +916,9 @@ func_ov026_020fd640 kind:function(arm,size=0x1c) addr:0x020fd640 func_ov026_020fd65c kind:function(arm,size=0x14) addr:0x020fd65c func_ov026_020fd670 kind:function(arm,size=0x134) addr:0x020fd670 func_ov026_020fd7a4 kind:function(arm,size=0x38c) addr:0x020fd7a4 -func_ov026_020fdb30 kind:function(arm,size=0x84) addr:0x020fdb30 -func_ov026_020fdbb4 kind:function(arm,size=0xd8) addr:0x020fdbb4 -func_ov026_020fdc8c kind:function(arm,size=0x1c) addr:0x020fdc8c +_ZN21UnkStruct_027e0d00_E0C1Eb kind:function(arm,size=0x84) addr:0x020fdb30 +_ZN21UnkStruct_027e0d00_E019func_ov026_020fb964Ev kind:function(arm,size=0xd8) addr:0x020fdbb4 +_ZN21UnkStruct_027e0d00_E019func_ov026_020fba3cEv kind:function(arm,size=0x1c) addr:0x020fdc8c _ZN19func_ov026_020fdca8D1Ev kind:function(arm,size=0x28) addr:0x020fdca8 _ZN19func_ov026_020fdcd0D0Ev kind:function(arm,size=0x30) addr:0x020fdcd0 func_ov026_020fdd00 kind:function(arm,size=0x20) addr:0x020fdd00 diff --git a/config/jp/arm9/symbols.txt b/config/jp/arm9/symbols.txt index 7ee2191b..565f605f 100644 --- a/config/jp/arm9/symbols.txt +++ b/config/jp/arm9/symbols.txt @@ -601,7 +601,7 @@ 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 -_Z6SysNewP23UnkStruct_02011e10_Sub1ii kind:function(arm,size=0x94) addr:0x02011e10 +_Z6SysNewP23UnkStruct_02011e10_Sub1jj 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 @@ -699,10 +699,10 @@ func_020144b4 kind:function(thumb,size=0x1c) addr:0x020144b4 _ZN21UnkStruct_02011e10_2C13func_020144ccEiii kind:function(thumb,size=0x6c) addr:0x020144d0 _ZN21UnkStruct_02011e10_2C13func_02014538Ev kind:function(thumb,size=0x34) addr:0x0201453c func_02014570 kind:function(arm,size=0x44) addr:0x02014570 -func_020145b4 kind:function(arm,size=0x80) addr:0x020145b4 -func_02014634 kind:function(arm,size=0x58) addr:0x02014634 +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_02014708 kind:function(arm,size=0x28) addr:0x02014708 +func_02014704 kind:function(arm,size=0x28) addr:0x02014708 _ZN21UnkStruct_02049a2c_1CC1Ev kind:function(arm,size=0x4c) addr:0x02014730 func_0201477c kind:function(arm,size=0x14) addr:0x0201477c _ZN13func_02014790D0Ev kind:function(arm,size=0x1c) addr:0x02014790 @@ -718,7 +718,7 @@ _ZN14OverlayManager13func_02014918Ej kind:function(thumb,size=0x2c) addr:0x02014 func_02014948 kind:function(thumb,size=0x50) addr:0x02014948 _ZN14OverlayManager13func_02014994Ei kind:function(thumb,size=0x7c) addr:0x02014998 func_02014a14 kind:function(arm,size=0x24) addr:0x02014a14 -_ZN18UnkStruct_02049bac13func_02014a34EPv kind:function(arm,size=0xcc) addr:0x02014a38 +_ZN18UnkStruct_02049bac13func_02014a34EP4Date kind:function(arm,size=0xcc) addr:0x02014a38 _ZN18UnkStruct_02049bac13func_02014b00Ev kind:function(arm,size=0x54) addr:0x02014b04 func_02014b58 kind:function(arm,size=0x10) addr:0x02014b58 func_02014b68 kind:function(arm,size=0x1c) addr:0x02014b68 @@ -1402,7 +1402,7 @@ func_02026294 kind:function(arm,size=0x30) addr:0x02026294 func_020262c4 kind:function(arm,size=0x30) addr:0x020262c4 func_020262f4 kind:function(arm,size=0x18) addr:0x020262f4 func_0202630c kind:function(arm,size=0x14) addr:0x0202630c -func_02026320 kind:function(arm,size=0x18) addr:0x02026320 +func_02024df0 kind:function(arm,size=0x18) addr:0x02026320 func_02026338 kind:function(arm,size=0x28) addr:0x02026338 func_02026360 kind:function(arm,size=0xa8) addr:0x02026360 func_02026408 kind:function(arm,size=0x2c) addr:0x02026408 @@ -2372,9 +2372,9 @@ data_020449f4 kind:data(any) addr:0x020449f4 data_02044a18 kind:data(any) addr:0x02044a18 data_02044a24 kind:data(any) addr:0x02044a24 data_02044a30 kind:data(any) addr:0x02044a30 -data_02044a50 kind:data(any) addr:0x02044a50 -data_02044a5c kind:data(any) addr:0x02044a5c -data_02044a8c kind:data(any) addr:0x02044a8c +@171 kind:data(byte[0xb]) kind:data(any) addr:0x02044a50 local +@172 kind:data(byte[0x2d]) kind:data(any) addr:0x02044a5c local +@173 kind:data(byte[0x22]) kind:data(any) addr:0x02044a8c local data_02044ab0 kind:data(any) addr:0x02044ab0 data_02044ab8 kind:data(any) addr:0x02044ab8 data_02044ac0 kind:data(any) addr:0x02044ac0 @@ -2410,7 +2410,7 @@ data_02044c34 kind:data(any) addr:0x02044c34 data_02044c48 kind:data(any) addr:0x02044c48 data_02044c5c kind:data(any) addr:0x02044c5c data_02044c74 kind:data(any) addr:0x02044c74 -data_02044c8c kind:data(any) addr:0x02044c8c +data_0204372c kind:data(any) addr:0x02044c8c data_02044cb0 kind:data(any) addr:0x02044cb0 data_02044cb1 kind:data(any) addr:0x02044cb1 data_02044cbc kind:data(any) addr:0x02044cbc @@ -2740,7 +2740,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 diff --git a/include/Actor/ActorUnkLBCK.hpp b/include/Actor/ActorUnkLBCK.hpp index a02670ea..61a3dc3e 100644 --- a/include/Actor/ActorUnkLBCK.hpp +++ b/include/Actor/ActorUnkLBCK.hpp @@ -2,8 +2,8 @@ #pragma once -#include "Actor/Actor.hpp" #include "Actor/ActorProfile.hpp" +#include "Actor/Actor_Derived1.hpp" #include "global.h" #include "types.h" @@ -17,7 +17,7 @@ public: /* 0C */ virtual void vfunc_0C(unk32 param1) override; }; -class ActorUnkLBCK : public Actor { +class ActorUnkLBCK : public Actor_Derived1 { public: /* 00 (base) */ /* 94 */ @@ -25,7 +25,12 @@ public: ActorUnkLBCK(); /* 4C */ virtual ~ActorUnkLBCK() override; + /* 58 */ virtual void vfunc_58(unk32 param1) override; + // overlay 1 + void func_ov001_020bff34(); + + // overlay 62 void func_ov062_02159044(void); void func_ov062_02159078(void); void func_ov062_02159248(void); diff --git a/include/Actor/Actor_Derived1.hpp b/include/Actor/Actor_Derived1.hpp index f12a8ec0..6143c4a2 100644 --- a/include/Actor/Actor_Derived1.hpp +++ b/include/Actor/Actor_Derived1.hpp @@ -182,6 +182,9 @@ public: static void func_ov000_020a9804(); + // overlay 1 + void func_ov001_020bff2c(); + // overlay 31 void func_ov031_020e3ca4(); }; diff --git a/include/Game/GameModeBattle.hpp b/include/Game/GameModeBattle.hpp index d674a063..334fb098 100644 --- a/include/Game/GameModeBattle.hpp +++ b/include/Game/GameModeBattle.hpp @@ -23,5 +23,7 @@ public: /* 24 */ virtual unk32 vfunc_24() override; // overlay 1 + void func_ov001_020bfd84(unk32 param1); + static GameModeBase *Create(); }; diff --git a/include/Game/GameModeDownloadPlay.hpp b/include/Game/GameModeDownloadPlay.hpp index 4bb1b2dc..0a4f98e4 100644 --- a/include/Game/GameModeDownloadPlay.hpp +++ b/include/Game/GameModeDownloadPlay.hpp @@ -5,10 +5,25 @@ #include "global.h" #include "types.h" +class UnkStruct_ov001_020c46fc { +public: + /* 00000 (vtable) */ + /* 00004 */ STRUCT_PAD(0x04, 0xAF054); + /* AF054 */ + + UnkStruct_ov001_020c46fc(); + + /* 00 */ virtual ~UnkStruct_ov001_020c46fc(); +}; + +extern UnkStruct_ov001_020c46fc *data_ov001_020c46fc; + class GameModeDownloadPlay : public GameModeBase { public: /* 00 (base) */ - /* 04 */ STRUCT_PAD(0x04, 0x6C); + /* 04 */ STRUCT_PAD(0x04, 0x48); + /* 48 */ UnkStruct_ov001_020c46fc *mUnk_48; + /* 4C */ STRUCT_PAD(0x4C, 0x6C); /* 6C */ GameModeDownloadPlay(); @@ -16,6 +31,8 @@ public: /* 00 */ virtual ~GameModeDownloadPlay() override; // overlay 1 + void func_ov001_020c09dc(); + static GameModeBase *Create(); // overlay 22 diff --git a/include/MainGame/CargoManager.hpp b/include/MainGame/CargoManager.hpp index dbb2c02d..75dd71e1 100644 --- a/include/MainGame/CargoManager.hpp +++ b/include/MainGame/CargoManager.hpp @@ -69,7 +69,7 @@ public: void func_ov001_020bf830(); - static void Destroy(); // func_ov001_020bf428 + static void Destroy(); // overlay 17 void Update(); diff --git a/include/MainGame/MiscAdvManager.hpp b/include/MainGame/MiscAdvManager.hpp index 76c1fcef..035e296f 100644 --- a/include/MainGame/MiscAdvManager.hpp +++ b/include/MainGame/MiscAdvManager.hpp @@ -2,6 +2,7 @@ #include "Item/Item.hpp" #include "Save/AdventureFlags.hpp" +#include "Unknown/UnkStruct_02049bac.hpp" #include "global.h" #include "types.h" @@ -61,9 +62,9 @@ enum StampType_ { class MiscAdvManager : public AutoInstance { public: - /* 00 */ u16 mStampDates[StampType_Max]; - /* 28 */ u16 mUnk_28; - /* 2A */ u16 mPostDate; + /* 00 */ Date mStampDates[StampType_Max]; + /* 28 */ Date mUnk_28; + /* 2A */ Date mPostDate; /* 2C */ union { Vec2bCpp mStampPositions[StampType_Max]; u16 mStampPos[StampType_Max]; diff --git a/include/MainGame/PassengerManager.hpp b/include/MainGame/PassengerManager.hpp index ac4d52ed..cc75f0b1 100644 --- a/include/MainGame/PassengerManager.hpp +++ b/include/MainGame/PassengerManager.hpp @@ -56,6 +56,7 @@ public: void func_ov001_020bf910(); bool func_ov001_020bfa1c(); + static void Destroy(); static bool func_ov001_020bf870(); // overlay 24 diff --git a/include/Save/SaveFile.hpp b/include/Save/SaveFile.hpp index 3eca1ba0..91de9f65 100644 --- a/include/Save/SaveFile.hpp +++ b/include/Save/SaveFile.hpp @@ -36,6 +36,9 @@ struct SaveFile_00000_0000_Data_D8 { /* 80 */ SaveFile_00000_0000_Data_D8(); + + // overlay 0 + s32 func_ov000_020a0cf4(); }; // related to scene flags? @@ -92,20 +95,25 @@ struct SaveMiscAdvManager { songs(0) {} }; +struct SaveInventoryData { + /* 00 */ unk32 unk_00; + /* 04 */ u32 unk_04[2]; + /* 0C */ u16 numRupees; + /* 0E */ u16 unk_0E; + /* 10 */ ItemFlag equippedItem; + /* 14 */ unk32 unk_14; + /* 18 */ +}; + struct SaveInventory { /* 00 */ u32 adventureFlags[32]; - /* 80 */ unk32 unk_80; - /* 84 */ u32 unk_84[2]; - /* 8C */ u16 numRupees; - /* 8E */ u16 unk_8E; - /* 90 */ ItemFlag equippedItem; - /* 94 */ unk32 unk_94; + /* 80 */ SaveInventoryData data; /* 98 */ SaveInventory() { MI_CpuFill32(0, this->adventureFlags, sizeof(this->adventureFlags)); - MI_CpuFill32(0, this->unk_84, sizeof(this->unk_84)); - this->unk_8E = 0; + MI_CpuFill32(0, this->data.unk_04, sizeof(this->data.unk_04)); + this->data.unk_0E = 0; } }; diff --git a/include/System/OverlayManager.hpp b/include/System/OverlayManager.hpp index 83200bb1..542e6e1f 100644 --- a/include/System/OverlayManager.hpp +++ b/include/System/OverlayManager.hpp @@ -388,6 +388,8 @@ public: /* 48 */ // clang-format off + const bool IsField() const { return this->mLoadedOverlays[OverlaySlot_7] == OverlayIndex_Field; } + const bool IsTower() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_Tower; } const bool IsBossDesert() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_BossDesert; } const bool IsBossDeago() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_BossDeago; } @@ -399,6 +401,7 @@ public: const bool IsASR() const { return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_ASR; } const bool IsPlayerSub() const { return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_PlayerSub; } + const bool IsTrainDark() const { return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_TrainDark; } const bool IsPlayerPhantom() const { return this->mLoadedOverlays[OverlaySlot_10] == OverlayIndex_PlayerPhantom; } const bool IsPlayerZelda() const { return this->mLoadedOverlays[OverlaySlot_10] == OverlayIndex_PlayerZelda; } diff --git a/include/System/SysNew.hpp b/include/System/SysNew.hpp index 7f95fdda..052b978b 100644 --- a/include/System/SysNew.hpp +++ b/include/System/SysNew.hpp @@ -117,7 +117,7 @@ public: extern UnkStruct_02011e10 data_0204999c; -void *SysNew(UnkStruct_02011e10_Sub1 *param1, s32 length, s32 param3); +void *SysNew(UnkStruct_02011e10_Sub1 *param1, u32 length, u32 idLength); void SysDelete(void *ptr); void *func_02011f10(s32 length); void *func_02011f30(s32 length); diff --git a/include/Unknown/UnkStruct_02049bac.hpp b/include/Unknown/UnkStruct_02049bac.hpp index b828e61e..1544edba 100644 --- a/include/Unknown/UnkStruct_02049bac.hpp +++ b/include/Unknown/UnkStruct_02049bac.hpp @@ -3,6 +3,39 @@ #include "global.h" #include "types.h" +union Date { + struct { + u16 day : 5; + u16 month : 4; + u16 year : 7; + }; + u16 data[1]; + + void operator=(Date &from) { + this->data = from.data; + } + + void operator=(s16 from) { + this->data[0] = from; + } + + bool operator==(u16 other) { + return other == this->data[0]; + } + + bool operator!=(u16 other) { + return !(*this == other); + } + + bool operator==(Date &other) { + return this->data[0] == other.data[0]; + } + + bool operator!=(Date &other) { + return !(*this == other); + } +}; + class UnkStruct_02049bac { public: /* 00 */ unk32 mUnk_00; @@ -10,7 +43,7 @@ public: UnkStruct_02049bac(); ~UnkStruct_02049bac(); - void func_02014a34(void *param1); + void func_02014a34(Date *param1); u64 func_02014b00(); }; diff --git a/include/Unknown/UnkStruct_027e09a0.hpp b/include/Unknown/UnkStruct_027e09a0.hpp index fca4ba6b..16da469c 100644 --- a/include/Unknown/UnkStruct_027e09a0.hpp +++ b/include/Unknown/UnkStruct_027e09a0.hpp @@ -11,8 +11,11 @@ struct UnkStruct_func_ov000_020702a8 { /* 00 */ STRUCT_PAD(0x00, 0x10); /* 10 */ Vec2s mUnk_10; /* 14 */ u8 mUnk_14; - /* 18 */ unk32 mUnk_18; - /* 1C */ unk32 mUnk_1C; + /* 15 */ STRUCT_PAD(0x15, 0x18); + /* 18 */ u16 mUnk_18; + /* 1A */ u16 mUnk_1A; + /* 1C */ u16 mUnk_1C; + /* 1E */ u16 mUnk_1E; /* 20 */ unk16 mUnk_20; /* 22 */ unk16 mUnk_22; }; diff --git a/include/Unknown/UnkStruct_027e09a4.hpp b/include/Unknown/UnkStruct_027e09a4.hpp index a84daf3d..19dff354 100644 --- a/include/Unknown/UnkStruct_027e09a4.hpp +++ b/include/Unknown/UnkStruct_027e09a4.hpp @@ -244,7 +244,7 @@ public: const u8 CurrentCSIndex() const { return this->mUnk_00.csIndex; } const SceneIndex CurrentSceneIndex() const { return this->mUnk_00.sceneIndex; } - const bool IsDarkRealm() const { + const bool IsDarkRealm() { return this->mUnk_00.sceneIndex <= SceneIndex_t_eviltrain3 && this->mUnk_00.sceneIndex >= SceneIndex_t_eviltrain; } diff --git a/include/Unknown/UnkStruct_027e09a8.hpp b/include/Unknown/UnkStruct_027e09a8.hpp index e5e14842..f127d75e 100644 --- a/include/Unknown/UnkStruct_027e09a8.hpp +++ b/include/Unknown/UnkStruct_027e09a8.hpp @@ -3,11 +3,18 @@ #include "math.hpp" #include "types.h" -class UnkStruct_027e09a8 { +class UnkStruct_027e09a8 : public AutoInstance { public: + // overlay 0 + void func_ov000_020713bc(); void func_ov000_02071b30(unk32 param1, VecFx32 *pPos, unk32 param3); void func_ov000_02071d34(void *param1, unk32 param2, VecFx32 *pPos, unk32 param4); void func_ov000_02071eac(VecFx32 *pPos); + + static UnkStruct_027e09a8 *Create(); + + // overlay 1 + static void Destroy(); }; extern UnkStruct_027e09a8 *data_027e09a8; diff --git a/include/Unknown/UnkStruct_027e09ac.hpp b/include/Unknown/UnkStruct_027e09ac.hpp index 49e272e4..15596ee7 100644 --- a/include/Unknown/UnkStruct_027e09ac.hpp +++ b/include/Unknown/UnkStruct_027e09ac.hpp @@ -8,9 +8,8 @@ struct UnkStruct_027e09ac_Base_00 { /* 00 */ unk16 mUnk_00[2]; - /* 04 */ unk16 mUnk_04[3]; - /* 0A */ unk16 mUnk_0A; - /* 0C */ unk32 mUnk_0C; + /* 04 */ unk16 mUnk_04[6]; + /* 10 */ }; class UnkStruct_027e09ac_Base { @@ -81,10 +80,11 @@ public: // overlay 0 void func_ov000_020726f0(u16 param1, unk32 param2, unk32 param3); void func_ov000_020729c4(UnkStruct_027e09ac_14 *param1, u16 param2, u16 param3, s16 param4, s16 param5); + void func_ov000_02072b08(unk32 param1, unk32 param2); // overlay 1 - void func_ov001_020bec8c(); void func_ov001_020bebb8(); + void func_ov001_020bec8c(); static UnkStruct_027e09ac *Create(); static void Destroy(); diff --git a/include/Unknown/UnkStruct_027e09b0.hpp b/include/Unknown/UnkStruct_027e09b0.hpp index 18de6b8a..663c57a3 100644 --- a/include/Unknown/UnkStruct_027e09b0.hpp +++ b/include/Unknown/UnkStruct_027e09b0.hpp @@ -3,7 +3,7 @@ #include "global.h" #include "types.h" -class UnkStruct_027e09b0 { +class UnkStruct_027e09b0 : public AutoInstance { public: /* 00 */ unk32 mUnk_00; @@ -11,6 +11,11 @@ public: ~UnkStruct_027e09b0(); void func_ov000_02072cc4(unk32 param1, unk32 param2); + + static UnkStruct_027e09b0 *Create(); + + // overlay 1 + static void Destroy(); }; extern UnkStruct_027e09b0 *data_027e09b0; diff --git a/include/Unknown/UnkStruct_027e09b4.hpp b/include/Unknown/UnkStruct_027e09b4.hpp index 7b7874bc..518d87f0 100644 --- a/include/Unknown/UnkStruct_027e09b4.hpp +++ b/include/Unknown/UnkStruct_027e09b4.hpp @@ -1,16 +1,31 @@ #pragma once #include "global.h" +#include "math.hpp" #include "types.h" -class UnkStruct_027e09b4 { +class UnkStruct_027e09b4 : public AutoInstance { public: - /* 00 */ unk32 mUnk_00; + /* 000 */ unk32 mUnk_000; + /* 004 */ STRUCT_PAD(0x04, 0x300); + /* 300 */ void *mUnk_300; + /* 304 */ unk32 mUnk_304; + /* 308 */ unk16 mUnk_308; + /* 30A */ unk16 mUnk_30A; + /* 30C */ UnkStruct_027e09b4(); - ~UnkStruct_027e09b4(); + // main void func_01fff60c(VecFx32 *param1, unk32 param2, unk32 param3, u8 param4, unk32 param5, unk32 param6); + + // overlay 1 + void func_ov001_020bea84(); + + static UnkStruct_027e09b4 *Create(); + static void Destroy(); + + // overlay 17 void func_ov017_020c08c4(VecFx32 *param1, unk32 param2, unk32 param3, s32 param4, s32 param5, s32 param6); }; diff --git a/include/Unknown/UnkStruct_027e0ce0.hpp b/include/Unknown/UnkStruct_027e0ce0.hpp index 3291f6e0..0e3d4ddb 100644 --- a/include/Unknown/UnkStruct_027e0ce0.hpp +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -181,29 +181,46 @@ public: void func_ov001_020bbff4(UnkStruct_027e0ce0_38 *param1); }; +class UnkStruct_027e0ce0_34_20 { +public: + /* 000 */ STRUCT_PAD(0x00, 0x960); + /* 960 */ + + UnkStruct_027e0ce0_34_20(); + ~UnkStruct_027e0ce0_34_20(); + + // overlay 26 + void func_ov026_020eb5b8(); + void func_ov026_020eb6a8(); +}; + class UnkStruct_027e0ce0_34 { public: /* 00 */ unk32 mUnk_00[4]; /* 10 */ unk32 mUnk_10[4]; - /* 20 */ unk32 mUnk_20; + /* 20 */ UnkStruct_027e0ce0_34_20 *mUnk_20; /* 24 */ unk32 mUnk_24; /* 28 */ unk32 mUnk_28; /* 2C */ s32 mUnk_2C; - /* 30 */ u32 mSpiritTrackFlags; + /* 30 */ u32 mSpiritTrackFlags; //! TODO: rename (actually handles train parts?) /* 34 */ unk32 mUnk_34; /* 38 */ u32 mTrackFlags[3]; - /* 44 */ STRUCT_PAD(0x44, 0xF4); + /* 44 */ STRUCT_PAD(0x44, 0xE8); + /* E8 */ unk32 mUnk_E8; + /* EC */ unk32 mUnk_EC; + /* F0 */ unk32 mUnk_F0; /* F4 */ UnkStruct_027e0ce0_34(); ~UnkStruct_027e0ce0_34(); // overlay 1 - void func_ov001_020bf22c(unk32 param1, unk32 param2); + void func_ov001_020bf22c(SaveFile_00000_0000_Data_D8 *param1, unk32 param2); void func_ov001_020bf2b8(bool param1); void func_ov001_020bf378(); void func_ov001_020bf3bc(); void func_ov001_020bf3cc(); + void func_ov001_020bf3fc(); // overlay 8 void func_ov008_020b6a50(); @@ -736,7 +753,7 @@ public: static UnkStruct_027e0ce0_34 *func_ov000_0205c904(); // overlay 1 - void func_ov001_020bc4d8(InvImportData *pInvData, unk32 param2, unk32 param3); + void func_ov001_020bc4d8(InvImportData *pInvData, SaveFile_00000_0000_Data_D8 *param2, unk32 param3); void func_ov001_020bc524(bool param1); void func_ov001_020bc5f8(); void func_ov001_020bc65c(); diff --git a/include/Unknown/UnkStruct_027e0cec.hpp b/include/Unknown/UnkStruct_027e0cec.hpp index 9dd7ceb5..d0d905f7 100644 --- a/include/Unknown/UnkStruct_027e0cec.hpp +++ b/include/Unknown/UnkStruct_027e0cec.hpp @@ -1,13 +1,77 @@ #pragma once +#include "LinkList.hpp" +#include "Unknown/UnkFileSystem.hpp" #include "math.hpp" #include "types.h" +class UnkStruct_027e0cec_00_00 : public LinkList { +public: + /* 00 (vtable) */ + /* 04 (base) */ + /* 0C */ unk32 mUnk_0C; + + UnkStruct_027e0cec_00_00() : + mUnk_0C(0) {} +}; + +class UnkStruct_027e0cec_00 : public UnkStruct_027e0cec_00_00 { +public: + /* 00 (base) */ + /* 10 */ void *mUnk_10; + /* 14 */ unk32 mUnk_14; + /* 18 */ + + UnkStruct_027e0cec_00(void *param1); + + /* 00 */ virtual void vfunc_00(); +}; + +struct UnkStruct_027e0cec_18_04 { + /* 00 */ STRUCT_PAD(0x00, 0x3C); + /* 3C */ unk32 mUnk_3C; + /* 40 */ unk32 mUnk_40; + /* 44 */ void *mUnk_44; + + // overlay 0 + void func_ov000_02054a78(); + void func_ov000_02054a88(); + void func_ov000_0205498c(void *pFile); + void func_ov000_02054998(void *param1); +}; + +class UnkStruct_027e0cec_18 { +public: + /* 00 (vtable) */ + /* 04 */ UnkStruct_027e0cec_18_04 *mUnk_04; + /* 08 */ unk16 mUnk_08; + /* 0A */ unk16 mUnk_0A; // pad? + /* 0C */ + + UnkStruct_027e0cec_18(UnkFileSystem1 *param1, bool param2, unk32 param3); + + // data_ov001_020c2fcc + /* 00 */ virtual ~UnkStruct_027e0cec_18(); + /* 08 */ + + // overlay 0 + void func_ov000_020a0460(); + + // overlay 1 + static void *func_ov001_020bf0a0(size_t length); +}; + class UnkStruct_027e0cec : public AutoInstance { public: + /* 00 */ UnkStruct_027e0cec_00 mUnk_00; + /* 18 */ UnkStruct_027e0cec_18 *mUnk_18[2]; + /* 20 */ unk32 mUnk_20; + /* 24 */ + UnkStruct_027e0cec(); ~UnkStruct_027e0cec(); + // overlay 0 void func_ov000_0209feac(unk32 param1, VecFx32 *param2, unk32 param3, unk32 param4, unk32 param5); void func_ov000_0209ff24(unk32 param1, VecFx32 *param2, VecFx16 *param3, unk32 param4); void func_ov000_0209ff8c(UnkStruct_PlayerGet_ec *param1, unk32 param2, VecFx32 *param3, unk32 param4); @@ -16,10 +80,13 @@ public: unk32 param6); void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1); void func_ov000_020a0220(void *param1, void *param2); - void func_ov001_020bf028(); // overlay 1 + const char *func_ov001_020bef98(); + void func_ov001_020bf028(); + static UnkStruct_027e0cec *Create(); + static void func_ov001_020bed34(); }; extern UnkStruct_027e0cec *data_027e0cec; diff --git a/include/Unknown/UnkStruct_027e0d00.hpp b/include/Unknown/UnkStruct_027e0d00.hpp index fe674e3f..d6885d6e 100644 --- a/include/Unknown/UnkStruct_027e0d00.hpp +++ b/include/Unknown/UnkStruct_027e0d00.hpp @@ -16,6 +16,8 @@ struct UnkStruct_027e0d00_00 { /* 20 */ unk32 mUnk_20; /* 24 */ unk32 mUnk_24; /* 28 */ + + UnkStruct_027e0d00_00(unk32 param1, unk32 param2, unk32 param3, u8 param4); }; struct UnkStruct_027e0d00_10 { @@ -38,25 +40,43 @@ public: /* 00 */ virtual ~UnkStruct_027e0d00_20() override {} - void func_ov024_020d4fa0(unk32 param1, unk32 param2); + void func_ov024_020d4fa0(void *param1, unk32 param2); void func_ov024_020d5174(); static void func_ov024_020d4e9c(wchar_t *param1, unk32 param2, bool param3); static void func_ov024_020d4edc(wchar_t *param1, wchar_t *param2, unk32 param3); }; +class UnkStruct_027e0d00_E0 : public MapObjectProfile_Derived2_20_Base { +public: + /* 00 (base) */ + /* 94 */ STRUCT_PAD(0x94, 0xA8); + /* A8 */ + + UnkStruct_027e0d00_E0(bool hasRecruitUniform); + + // overlay 26 + void func_ov026_020fb964(); + void func_ov026_020fba3c(); +}; + +struct UnkStruct_027e0d00_FC { + /* 000 */ STRUCT_PAD(0x00, 0xD30); + /* D30 */ +}; + class UnkStruct_027e0d00 : public AutoInstance { public: /* 000 */ UnkStruct_027e0d00_00 *mUnk_000[MAX_TRAIN_PARTS]; /* 010 */ UnkStruct_027e0d00_10 *mUnk_010[MAX_TRAIN_PARTS]; /* 020 */ UnkStruct_027e0d00_20 *mUnk_020[MAX_TRAIN_PARTS][MAX_TRAIN_SETS]; - /* 0A0 */ unk32 mUnk_0A0[MAX_TRAIN_PARTS]; + /* 0A0 */ void *mUnk_0A0[MAX_TRAIN_PARTS]; /* 0B0 */ MapObjectProfile_Derived5 *mUnk_0B0[12]; // train parts models - /* 0E0 */ unk32 mUnk_0E0; + /* 0E0 */ UnkStruct_027e0d00_E0 *mUnk_0E0; /* 0E4 */ UnkStruct_027e0d00_20 *mUnk_0E4[MAX_TRAIN_PARTS]; /* 0F4 */ MapObjectProfile_Derived5 *mUnk_0F4; // cargo models /* 0F8 */ UnkStruct_027e0d00_00 *mUnk_0F8; - /* 0FC */ void *mUnk_0FC; + /* 0FC */ UnkStruct_027e0d00_FC *mUnk_0FC; /* 100 */ MapObjectProfile_Derived5 *mUnk_100; /* 104 */ bool mUnk_104; /* 104 */ unk8 mUnk_105; @@ -84,9 +104,20 @@ public: UnkStruct_027e0d00(); ~UnkStruct_027e0d00(); - // overlay 0 static UnkStruct_027e0d00 *GetInstance(); + // overlay 1 + void func_ov001_020bf530(); + void func_ov001_020bf568(); + void func_ov001_020bf590(); + void func_ov001_020bf69c(); + void func_ov001_020bf730(); + void func_ov001_020bf750(); + void func_ov001_020bf768(); + void func_ov001_020bf7b8(); + + static void Destroy(); + // overlay 24 unk32 func_ov024_020d485c(unk32 param1, unk32 param2); u8 func_ov024_020d48c8(unk32 param1); diff --git a/include/Unknown/UnkStruct_ov020_020e8544.hpp b/include/Unknown/UnkStruct_ov020_020e8544.hpp index 51fb18f7..d624b748 100644 --- a/include/Unknown/UnkStruct_ov020_020e8544.hpp +++ b/include/Unknown/UnkStruct_ov020_020e8544.hpp @@ -3,12 +3,10 @@ #include "global.h" #include "types.h" -class UnkStruct_ov020_020e8544 { +class UnkStruct_ov020_020e8544_Base { public: /* 00 (vtable) */ - - UnkStruct_ov020_020e8544(); - ~UnkStruct_ov020_020e8544(); + /* 04 */ /* 00 */ virtual void vfunc_00(); /* 04 */ virtual void vfunc_04(); @@ -21,4 +19,22 @@ public: /* 20 */ virtual unk32 vfunc_20(); }; -extern UnkStruct_ov020_020e8544 *data_ov020_020e8544; +class UnkStruct_ov020_020e8544_Derived1 : public UnkStruct_ov020_020e8544_Base { +public: + /* 00 (base) */ + /* 04 */ STRUCT_PAD(0x04, 0x30); + /* 30 */ + + UnkStruct_ov020_020e8544_Derived1(); +}; + +class UnkStruct_ov020_020e8544_Derived2 : public UnkStruct_ov020_020e8544_Base { +public: + /* 00 (base) */ + /* 04 */ STRUCT_PAD(0x04, 0x2E4); + /* 2E4 */ + + UnkStruct_ov020_020e8544_Derived2(); +}; + +extern UnkStruct_ov020_020e8544_Base *data_ov020_020e8544; diff --git a/include/Unknown/UnkStruct_ov023_020f1d94.hpp b/include/Unknown/UnkStruct_ov023_020f1d94.hpp new file mode 100644 index 00000000..4e9f5438 --- /dev/null +++ b/include/Unknown/UnkStruct_ov023_020f1d94.hpp @@ -0,0 +1,65 @@ +#pragma once + +#include "global.h" +#include "types.h" + +class UnkStruct_ov001_020c46f4_Base { +public: + /* 00 (vtable) */ + /* 04 */ + + UnkStruct_ov001_020c46f4_Base() {} + + // data_ov023_020f1b5c + /* 00 */ virtual void vfunc_00(); + /* 04 */ virtual void vfunc_04(); + /* 08 */ virtual void vfunc_08(); + /* 0C */ virtual void vfunc_0C(); + /* 10 */ +}; + +class UnkStruct_ov001_020c46f4_Derived1 : public UnkStruct_ov001_020c46f4_Base { +public: + /* 04 */ bool mUnk_04; + /* 08 */ + + UnkStruct_ov001_020c46f4_Derived1() : + mUnk_04(false) {} + + // data_ov023_020f1b5c + /* 00 */ virtual void vfunc_00() override; + /* 04 */ virtual void vfunc_04() override; + /* 08 */ virtual void vfunc_08() override; + /* 0C */ virtual void vfunc_0C() override; +}; + +class UnkStruct_ov001_020c46f4_Derived2 : public UnkStruct_ov001_020c46f4_Base { +public: + /* 00 (base) */ + /* 04 */ + + UnkStruct_ov001_020c46f4_Derived2() {} + + // data_ov023_020f1b74 + /* 00 */ virtual void vfunc_00() override; + /* 04 */ virtual void vfunc_04() override; + /* 08 */ virtual void vfunc_08() override; + /* 0C */ virtual void vfunc_0C() override; +}; + +extern UnkStruct_ov001_020c46f4_Base *data_ov001_020c46f4; + +class UnkStruct_ov023_020f1d94 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ UnkStruct_ov001_020c46f4_Base *mUnk_04; + /* 08 */ + + UnkStruct_ov023_020f1d94(); + ~UnkStruct_ov023_020f1d94(); + + // overlay 1 + void func_ov001_020bfeb0(); +}; + +extern UnkStruct_ov023_020f1d94 data_ov023_020f1d94; diff --git a/include/global.h b/include/global.h index 33be9854..0b4a98e1 100644 --- a/include/global.h +++ b/include/global.h @@ -7,9 +7,11 @@ // start of thumb region, using thumb instructions #define THUMB_BEGIN _Pragma("thumb on") +#define ARM_END THUMB_BEGIN // end of thumb region, using arm instructions #define THUMB_END _Pragma("thumb off") +#define ARM_BEGIN THUMB_END // `override` was added in C++11 before the DS, so we only use the keyword to indicate overriden functions #define override @@ -52,6 +54,13 @@ // to force things in .data to align properly #define DATA_ALIGN_FIX() int DF_UNIQUE_IDENT(__data_align_fix) +// for cases where `DATA_ALIGN_FIX` doesn't work +#define DATA_ALIGN_FIX2() \ + static const int DF_UNIQUE_IDENT(__data_align_fix) = 0; \ + void DF_UNIQUE_IDENT(__data_align_fix_func)() { \ + *(int *) &DF_UNIQUE_IDENT(__data_align_fix) = 0; \ + } + #ifndef typeof #define typeof __typeof__ #endif @@ -103,4 +112,11 @@ } \ (void) 0 +#define DELETE_ARRAY2(ptr) \ + { \ + ::operator delete[](ptr); \ + ptr = NULL; \ + } \ + (void) 0 + #endif diff --git a/include/types.h b/include/types.h index e82faf1b..bda24fec 100644 --- a/include/types.h +++ b/include/types.h @@ -73,4 +73,21 @@ template struct StaticInstance { #endif +//! TODO: move elsewhere +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct SPAHeader { + /* 00 */ u32 magic; // always 'SPA ' + /* 04 */ unk32 mUnk_04; + /* 08 */ u16 mUnk_08; + /* 0A */ char pad[0x18 - 0x0A]; + /* 18 */ unk32 mUnk_18; +} SPAHeader; + +#ifdef __cplusplus +} +#endif + #endif diff --git a/libs/nitro/include/nitro/g3.h b/libs/nitro/include/nitro/g3.h index 8d264d2a..3e900b33 100644 --- a/libs/nitro/include/nitro/g3.h +++ b/libs/nitro/include/nitro/g3.h @@ -58,7 +58,7 @@ inline void G3_ViewPort(u32 left, u32 top, u32 right, u32 bottom) { } void _G3_Ortho(fx32 top, fx32 bottom, fx32 left, fx32 right, fx32 near, fx32 far, fx32 param7, BOOL param8, void *param9); inline void G3_Ortho(fx32 top, fx32 bottom, fx32 left, fx32 right, fx32 near, fx32 far, void *param7) { - _G3_Ortho(top, bottom, left, right, near, far, FX32_ONE, TRUE, param7); + _G3_Ortho(top, bottom, left, right, near, far, FX32_ONE, true, param7); } inline void G3_StoreMtx(u32 param1) { REG_GFX_FIFO_MATRIX_STORE = param1; @@ -109,10 +109,19 @@ inline BOOL G3X_IsGeometryBusy(void) { } inline void G3X_AntiAlias(BOOL param1) { - REG_DISP3DCNT = REG_DISP3DCNT & ~0x3000 | (param1 << 0x4); + REG_DISP3DCNT = REG_DISP3DCNT & ~0x3000 | (param1 << 4); } + inline void G3X_AlphaBlend(BOOL param1) { - REG_DISP3DCNT = REG_DISP3DCNT & ~0x3000 | (param1 << 0x3); + REG_DISP3DCNT = REG_DISP3DCNT & ~0x3000 | (param1 << 3); +} + +inline void G3X_Unk1(unk32 param1) { + REG_DISP3DCNT = REG_DISP3DCNT & ~(0x3000 | (param1 << 1)); +} + +inline void G3X_Unk2(unk32 param1) { + REG_DISP3DCNT &= ~(0x3000 | (param1 << 5)); } #ifdef __cplusplus diff --git a/src/001_SceneInit/PassengerManager_001.cpp b/src/001_SceneInit/PassengerManager_001.cpp index 03b33d16..dcd0acbe 100644 --- a/src/001_SceneInit/PassengerManager_001.cpp +++ b/src/001_SceneInit/PassengerManager_001.cpp @@ -1,49 +1,37 @@ #include "MainGame/PassengerManager.hpp" +#include "Unknown/UnkStruct_02049bac.hpp" +#include "Unknown/UnkStruct_027e09b8.hpp" -inline bool Test(s32 val) { - bool ret = false; +extern "C" bool func_ov000_0205c9d0(unk32 stationSceneIdx); - if (val > 18 || val >= 16) { - ret = true; - } - - return ret; -} - -inline bool Test2(s32 val) { - bool ret = true; - - if (val != 15 && !Test(val)) { - ret = false; - } - - return ret; -} - -inline bool Test3(s32 val) { - bool ret = true; - - if (!Test2(val)) { - if (*((volatile unk32 *) &data_027e09a4->mUnk_00.sceneIndex) != 36) { - ret = false; - } - } - - return ret; -} - -// https://decomp.me/scratch/svwnb bool PassengerManager::func_ov001_020bf870() { - s32 sceneIndex = data_027e09a4->mUnk_00.sceneIndex; - bool ret = true; + s32 *pSceneIndex = &data_027e09a4->mUnk_00.sceneIndex; - if (!Test3(sceneIndex)) { - if (*((volatile unk32 *) &data_027e09a4->mUnk_00.sceneIndex) != 37) { - ret = false; + bool var_r0 = true; + bool var_r3 = true; + bool var_r4 = true; + + if (data_027e09a4->mUnk_00.sceneIndex != SceneIndex_t_dark) { + bool var_r5 = false; + + if (data_027e09a4->IsDarkRealm()) { + var_r5 = true; + } + + if (!var_r5) { + var_r4 = false; } } - return ret; + if (!var_r4 && *pSceneIndex != SceneIndex_b_last1) { + var_r3 = false; + } + + if (!var_r3 && *pSceneIndex != SceneIndex_b_last2) { + var_r0 = false; + } + + return var_r0; } PassengerManager::PassengerManager() { @@ -65,15 +53,110 @@ void PassengerManager::func_ov001_020bf8e4() { void PassengerManager::func_ov001_020bf90c() {} -void PassengerManager::func_ov001_020bf910() {} +void PassengerManager::func_ov001_020bf910() { + union Pair { + struct { + s32 a; + s32 b; + }; + s32 data[2]; + }; + + struct LocalStack { + Pair sp14[20]; + Pair *spB4; + } stack; + + int spC_10[2]; + Date sp4[4]; + const s16 *new_var7; + s32 temp_r0; + s32 temp_r1; + s32 temp_r4; + bool temp_r5; + s32 var_r2; + Pair(*new_var2)[20]; + bool var_r6; + s32 var_r7; + Date temp_r2; + Pair(*new_var)[20]; + + temp_r4 = this->IsDateUnset(); + temp_r5 = func_ov000_0205c9d0(SceneIndex_f_flame5); + + var_r6 = true; + if (data_027e09b8->HasAdventureFlag(AdventureFlag_CompletedSnowRestorationSong)) { + if (this->GetActorId() != ActorId_OLDS) { + sp4[1] = this->GetDate(); + sp4[3].data = sp4[1].data; + + if (sp4[1] != this->mDate) { + var_r6 = false; + } + } + } + + if (var_r6) { + this->func_ov024_020d4554(); + return; + } + + if (!temp_r4 && !this->func_ov001_020bfa1c()) { + this->func_ov024_020d4554(); + return; + } + + new_var7 = data_ov024_020d7598; + stack.spB4 = stack.sp14; + + for (var_r7 = 0; var_r7 < 5; var_r7++) { + for (var_r2 = 0; var_r2 < 5; var_r2++) { + if (temp_r4 && (new_var7[var_r7] != 0x29)) { + continue; + } + + if (new_var7[var_r7] == new_var7[var_r2]) { + continue; + } + + if (!temp_r5 && (new_var7[var_r7] == 0x2E || new_var7[var_r2] == 0x2E)) { + continue; + } + + if (new_var7[var_r7] == 0x2E && new_var7[var_r2] == 0x29) { + continue; + } + + if (new_var7[var_r7] == 0x29 && new_var7[var_r2] == 0x2E) { + continue; + } + + spC_10[0] = new_var7[var_r7]; + spC_10[1] = new_var7[var_r2]; + + if (stack.spB4 != NULL) { + stack.spB4->data = spC_10; + } + + stack.spB4++; + } + } + + temp_r1 = stack.spB4 - stack.sp14; + sp4[0].data[0] = this->GetDate(); + sp4[2].data = sp4[0].data; + temp_r0 = this->GetRandomIndex(temp_r1, sp4[2].data[0]); + + new_var2 = &stack.sp14; + this->mUnk_2C = (*new_var2)[temp_r0].a; + this->mUnk_30 = (*(new_var = &stack.sp14))[temp_r0].b; +} -// non-matching bool PassengerManager::func_ov001_020bfa1c() { - volatile u16 date[2]; - u16 date2; - date[1] = date[0] = this->GetDate(); - - return !((date2 << 0x1B) & 1); + Date date; + s16 result = this->GetDate(); + date = *(u16 *) &result; + return !(date.day & 1); } DECL_INSTANCE(PassengerManager, gpPassengerManager); diff --git a/src/001_SceneInit/UnkStruct_027e09ac_001.cpp b/src/001_SceneInit/UnkStruct_027e09ac_001.cpp index e69de29b..1b49ac95 100644 --- a/src/001_SceneInit/UnkStruct_027e09ac_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e09ac_001.cpp @@ -0,0 +1,100 @@ +#include "System/SysNew.hpp" +#include "Unknown/Common.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" +#include "Unknown/UnkStruct_027e09a8.hpp" +#include "Unknown/UnkStruct_027e09ac.hpp" +#include "Unknown/UnkStruct_027e09b0.hpp" +#include "Unknown/UnkStruct_027e09b4.hpp" +#include "Unknown/UnkStruct_027e09bc.hpp" + +#include +#include +#include + +extern "C" void func_ov000_02072344(u16 *, UnkStruct_027e09ac_14 *); +extern "C" void func_02024df0(u16 *); + +UnkStruct_027e09ac *UnkStruct_027e09ac::Create() { + return new(HeapIndex_1) UnkStruct_027e09ac(); +} + +UnkStruct_027e09ac::UnkStruct_027e09ac() { + this->mUnk_14C = 0; + this->mUnk_14E = 0; + this->mUnk_150 = -1; + this->mUnk_154 = 0; + this->mUnk_156 = false; + this->mUnk_014.func_ov000_02071f98(); + this->mUnk_0E4.func_ov000_02071f98(); + + UnkStruct_027e09b0::Create(); + UnkStruct_027e09b4::Create(); + + G3X_Unk1(1); + + u16 auStack_50[32]; + func_ov000_02072344(auStack_50, &this->mUnk_014); + func_02024df0(auStack_50); + + if (data_027e09bc != NULL && data_027e09bc != NULL) { + UnkStruct_027e09a8::Create(); + } + + MI_CpuFill16(0x190A, &this->mUnk_000.mUnk_04, sizeof(this->mUnk_000.mUnk_04)); +} + +UnkStruct_027e09ac::~UnkStruct_027e09ac() { + UnkStruct_027e09a8::Destroy(); + UnkStruct_027e09b4::Destroy(); + UnkStruct_027e09b0::Destroy(); + G3X_Unk2(1); +} + +void UnkStruct_027e09ac::func_ov001_020bebb8() { + UnkStruct_StackTitleScreen auStack_28("Environment/tex.bin", 0x01); + auStack_28.func_ov000_02059270(0x00, "shadow", 0x192F0000); + auStack_28.func_ov000_02059270(0x01, "shadow2", 0x192F0000); + auStack_28.func_ov000_02059270(0x02, "wipeA", 0x39BF0000); + + switch ((s32) data_027e09a4->CurrentSceneIndex()) { + case SceneIndex_d_main: + case SceneIndex_f_flame4: + case SceneIndex_f_kakushi1: + case SceneIndex_f_kakushi4: + auStack_28.func_ov000_02059270(0x03, "light", 0x25BF0000); + break; + default: + break; + } + + if (data_027e09a4->IsLand()) { + auStack_28.func_ov000_02059270(0x04, "srod_tex", 0x389F0000); + } + + this->func_ov000_02072b08(0x00, 0x00); + data_027e09a8->func_ov000_020713bc(); + data_027e09b4->func_ov001_020bea84(); +} + +void UnkStruct_027e09ac::func_ov001_020bec8c() {} + +void UnkStruct_027e09a8::Destroy() { + if (data_027e09a8 != NULL) { + delete data_027e09a8; + } +} + +void UnkStruct_027e09b4::Destroy() { + if (data_027e09b4 != NULL) { + delete data_027e09b4; + } +} + +void UnkStruct_027e09b0::Destroy() { + if (data_027e09b0 != NULL) { + delete data_027e09b0; + } +} + +DECL_INSTANCE(UnkStruct_027e09ac, data_027e09ac); +DECL_INSTANCE_DTOR(UnkStruct_027e09a8, data_027e09a8); diff --git a/src/001_SceneInit/UnkStruct_027e09b4_001.cpp b/src/001_SceneInit/UnkStruct_027e09b4_001.cpp index e69de29b..958d9416 100644 --- a/src/001_SceneInit/UnkStruct_027e09b4_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e09b4_001.cpp @@ -0,0 +1,28 @@ +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" +#include "Unknown/UnkStruct_027e09b4.hpp" + +UnkStruct_027e09b4 *UnkStruct_027e09b4::Create() { + return new(HeapIndex_1) UnkStruct_027e09b4(); +} + +UnkStruct_027e09b4::UnkStruct_027e09b4() { + this->mUnk_300 = this; + this->mUnk_304 = 0x6000; + this->mUnk_308 = 0x019A; + this->mUnk_30A = 0x00CD; +} + +void UnkStruct_027e09b4::func_ov001_020bea84() { + if (data_027e09a4->IsTrain()) { + this->mUnk_308 = 0x0052; + this->mUnk_30A = 0x0029; + this->mUnk_304 = 0x1000; + } else { + this->mUnk_308 = 0x019A; + this->mUnk_30A = 0x00CD; + this->mUnk_304 = 0x6000; + } +} + +DECL_INSTANCE(UnkStruct_027e09b4, data_027e09b4); diff --git a/src/001_SceneInit/UnkStruct_027e0ce0_001.cpp b/src/001_SceneInit/UnkStruct_027e0ce0_001.cpp index 8f2c1b3e..71463bd1 100644 --- a/src/001_SceneInit/UnkStruct_027e0ce0_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e0ce0_001.cpp @@ -63,7 +63,7 @@ UnkStruct_027e0ce0::~UnkStruct_027e0ce0() { delete this->mUnk_1C; } -void UnkStruct_027e0ce0::func_ov001_020bc4d8(InvImportData *pInvData, unk32 param2, unk32 param3) { +void UnkStruct_027e0ce0::func_ov001_020bc4d8(InvImportData *pInvData, SaveFile_00000_0000_Data_D8 *param2, unk32 param3) { UnkStruct_027e09bc *ptr = data_027e09bc; UnkStruct_027e0ce0_0C *pList = GetLinkListRef(this->mUnk_0C); ptr->mUnk_48.Prepend(pList); diff --git a/src/001_SceneInit/UnkStruct_027e0ce0_34_001.cpp b/src/001_SceneInit/UnkStruct_027e0ce0_34_001.cpp index e69de29b..54ef2d95 100644 --- a/src/001_SceneInit/UnkStruct_027e0ce0_34_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e0ce0_34_001.cpp @@ -0,0 +1,150 @@ +#include "MainGame/CargoManager.hpp" +#include "MainGame/PassengerManager.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" +#include "Unknown/UnkStruct_027e09b8.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" +#include "Unknown/UnkStruct_027e0d00.hpp" + +extern "C" SceneIndex func_ov000_0205c984(); +extern "C" unk32 func_ov026_020f4c9c(SceneIndex); + +UnkStruct_027e0ce0_34::UnkStruct_027e0ce0_34() { + this->mUnk_20 = NULL; + this->mUnk_24 = 0x03; + this->mUnk_28 = 0x03; + this->mUnk_2C = 0x01; + this->mSpiritTrackFlags = this->func_ov024_020d3dc0(0x00, 0x01); + this->mUnk_34 = 0x04; + this->mUnk_E8 = 0x00; + this->mUnk_EC = -1; + this->mUnk_F0 = 0x00; + + for (int i = 0; i < ARRAY_LEN(this->mUnk_00); i++) { + this->mUnk_00[i] = -1; + this->mUnk_10[i] = -1; + } + + for (u32 i = 0; i < ARRAY_LEN(this->mTrackFlags); i++) { + this->mTrackFlags[i] = 0x00; + } + + UnkStruct_027e0d00::Create(); + PassengerManager::Create(); + CargoManager::Create(); +} + +UnkStruct_027e0ce0_34::~UnkStruct_027e0ce0_34() { + CargoManager::Destroy(); + PassengerManager::Destroy(); + UnkStruct_027e0d00::Destroy(); +} + +void UnkStruct_027e0ce0_34::func_ov001_020bf22c(SaveFile_00000_0000_Data_D8 *param1, unk32 param2) { + this->mUnk_2C = param1->func_ov000_020a0cf4(); + this->mSpiritTrackFlags = param1->spiritTrackFlags; + + for (int i = 0; i < param1->func_ov000_020a0cf4(); i++) { + this->mUnk_00[i] = param1->unk_60[i]; + this->mUnk_10[i] = param1->unk_64[i]; + } + + gpPassengerManager->func_ov024_020d41bc(¶m1->unk_40); + this->mUnk_34 = param1->unk_69; + + for (u32 i = 0; i < ARRAY_LEN(this->mTrackFlags); i++) { + this->mTrackFlags[i] = param1->trackFlags[i]; + } + + gpCargoManager->SetCargo(param1->cargoType, param1->cargoAmount); + this->func_ov024_020d3d80(this->func_ov024_020d3d20()); + this->mUnk_28 = this->mUnk_24; +} + +void UnkStruct_027e0ce0_34::func_ov001_020bf2b8(bool param1) { + this->func_ov001_020bf3fc(); + + if (this->mUnk_2C == 0x02 && data_027e09b8->HasAdventureFlag(AdventureFlag_ObtainedTrainCannon)) { + this->func_ov024_020d3f8c(); + } + + if (this->mUnk_2C == 0x03 && data_027e09b8->HasAdventureFlag(AdventureFlag_ObtainedTrainWagon)) { + this->func_ov024_020d3fc8(); + } + + data_027e0d00->func_ov001_020bf530(); + gpPassengerManager->func_ov001_020bf8e4(); + gpCargoManager->func_ov001_020bf830(); + + if (param1) { + gpPassengerManager->func_ov024_020d4258(); + gpCargoManager->func_ov024_020d591c(); + } + + if (data_027e09a4->IsTrain()) { + this->func_ov024_020d3d80(this->func_ov024_020d3d20()); + + if (param1) { + this->mUnk_28 = this->mUnk_24; + } + + SceneIndex sceneIndex = func_ov000_0205c984(); + this->mUnk_F0 = func_ov026_020f4c9c(sceneIndex); + this->mUnk_20 = new(HeapIndex_1) UnkStruct_027e0ce0_34_20(); + } +} + +void UnkStruct_027e0ce0_34::func_ov001_020bf378() { + if (data_027e09a4->IsTrain()) { + DELETE(this->mUnk_20); + } + + gpPassengerManager->func_ov001_020bf90c(); + data_027e0d00->func_ov001_020bf568(); +} + +void UnkStruct_027e0ce0_34::func_ov001_020bf3bc() { + if (this->mUnk_20 != NULL) { + this->mUnk_20->func_ov026_020eb5b8(); + } +} + +void UnkStruct_027e0ce0_34::func_ov001_020bf3cc() { + if (this->mUnk_20 != NULL) { + this->mUnk_20->func_ov026_020eb6a8(); + } + + if (this->mUnk_2C == 0x02 && data_027e09b8->HasAdventureFlag(AdventureFlag_ObtainedTrainCannon)) { + this->func_ov024_020d3f8c(); + } +} + +void UnkStruct_027e0ce0_34::func_ov001_020bf3fc() { + bool isTowerSplit = data_027e09b8->HasAdventureFlag(AdventureFlag_WatchedSpiritTowerSplitCS); + + if (!data_027e09b8->HasAdventureFlag(AdventureFlag_MetAnjeanFirstTime) && isTowerSplit) { + this->func_ov024_020d404c(); + } +} + +ARM_BEGIN + +void CargoManager::Destroy() { + if (gpCargoManager != NULL) { + delete gpCargoManager; + } +} + +void UnkStruct_027e0d00::Destroy() { + if (data_027e0d00 != NULL) { + delete data_027e0d00; + } +} + +void PassengerManager::Destroy() { + if (gpPassengerManager != NULL) { + delete gpPassengerManager; + } +} + +ARM_END diff --git a/src/001_SceneInit/UnkStruct_027e0cec_001.cpp b/src/001_SceneInit/UnkStruct_027e0cec_001.cpp index e69de29b..af25bd14 100644 --- a/src/001_SceneInit/UnkStruct_027e0cec_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e0cec_001.cpp @@ -0,0 +1,205 @@ +#include "Cutscene/Cutscene.hpp" +#include "System/OverlayManager.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_0204a110.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" +#include "Unknown/UnkStruct_027e0cec.hpp" + +#include + +extern "C" BOOL func_02012fa8(const char *); + +DATA_ALIGN_FIX2(); + +enum EffectPathIndex_ { + EffectPathIndex_Dungeon1 = 0, + EffectPathIndex_Field = 1, + EffectPathIndex_Dungeon2 = 2, + EffectPathIndex_Battle = 3, + EffectPathIndex_BossForest = 4, + EffectPathIndex_BossSnow = 5, + EffectPathIndex_BossWater = 6, + EffectPathIndex_BossFlame = 7, + EffectPathIndex_BossDesert = 8, + EffectPathIndex_BossDeago = 9, + EffectPathIndex_BossLast1 = 10, + EffectPathIndex_BossLast2 = 11, +}; + +static const char *data_ov001_020c2f28[] = { + "Effect/dungeon.spa", // EffectPathIndex_Dungeon1 + "Effect/field.spa", // EffectPathIndex_Field + "Effect/dungeon.spa", // EffectPathIndex_Dungeon2 + "Effect/battle.spa", // EffectPathIndex_Battle + "Effect/boss_forest.spa", // EffectPathIndex_BossForest + "Effect/boss_snow.spa", // EffectPathIndex_BossSnow + "Effect/boss_water.spa", // EffectPathIndex_BossWater + "Effect/boss_flame.spa", // EffectPathIndex_BossFlame + "Effect/boss_desert.spa", // EffectPathIndex_BossDesert + "Effect/boss_deago.spa", // EffectPathIndex_BossDeago + "Effect/boss_last1.spa", // EffectPathIndex_BossLast1 + "Effect/boss_last2.spa", // EffectPathIndex_BossLast2 +}; + +UnkStruct_027e0cec *UnkStruct_027e0cec::Create() { + data_0204999c.func_ov001_020ba620(); + return new(HeapIndex_5) UnkStruct_027e0cec(); +} + +void UnkStruct_027e0cec::func_ov001_020bed34() { + data_027e0cec->~UnkStruct_027e0cec(); + data_0204999c.func_ov001_020ba658(); +} + +UnkStruct_027e0cec::UnkStruct_027e0cec() : + mUnk_00(this), + mUnk_20(0) { + for (int i = 0; i < ARRAY_LEN(this->mUnk_18); i++) { + this->mUnk_18[i] = NULL; + } + + this->mUnk_20 = 0x00; + + UnkFileSystem2 *pUnkFs2; + if (data_027e09a4->IsSceneModeBattle()) { + UnkFileSystem2 local_2c(NULL, 0x00); + pUnkFs2 = &local_2c; + const char *path = "Effect/multiboot.spa"; + pUnkFs2->vfunc_0C(); + pUnkFs2->mUnk_04 = path; + this->mUnk_18[0] = new(HeapIndex_5) UnkStruct_027e0cec_18(pUnkFs2, true, 0); + this->mUnk_20 = 0x02; + } else if (data_027e09a4->IsTrain()) { + { + UnkFileSystem2 local_44(NULL, 0x00); + pUnkFs2 = &local_44; + const char *path = "Effect/train.spa"; + pUnkFs2->vfunc_0C(); + pUnkFs2->mUnk_04 = path; + this->mUnk_18[0] = new(HeapIndex_5) UnkStruct_027e0cec_18(pUnkFs2, true, 0); + } + + if (gOverlayManager.IsTrainDark()) { + UnkFileSystem2 local_5c(NULL, 0x00); + pUnkFs2 = &local_5c; + const char *path = "Effect/train_dark.spa"; + pUnkFs2->vfunc_0C(); + pUnkFs2->mUnk_04 = path; + this->mUnk_18[1] = new(HeapIndex_5) UnkStruct_027e0cec_18(pUnkFs2, true, 1); + } + } else if (data_027e09a4->IsCutscene()) { + this->mUnk_20 = 0x01; + const char *unk_00 = Cutscene_GetParamEntry(data_027e09a4->CurrentCSIndex())->mUnk_00; + + wchar_t aStack_9c[32]; + aStack_9c[ARRAY_LEN(aStack_9c) - 1] = L'\0'; + strncpy((char *) aStack_9c, "Effect/demo_", sizeof(aStack_9c) - 1); + + size_t len1 = strlen((char *) aStack_9c); + strncpy((char *) aStack_9c + len1, unk_00, sizeof(aStack_9c) - 1 - len1); + + const char *ext = ".spa"; + size_t len2 = strlen((char *) aStack_9c); + strncpy((char *) aStack_9c + len2, ext, sizeof(aStack_9c) - 1 - len2); + + UnkFileSystem2 local_b4(NULL, 0x00); + pUnkFs2 = &local_b4; + pUnkFs2->vfunc_0C(); + pUnkFs2->mUnk_04 = (char *) aStack_9c; + + const char *local_b0 = (char *) aStack_9c; + + if (func_02012fa8(local_b0)) { + this->mUnk_18[0] = new(HeapIndex_5) UnkStruct_027e0cec_18(pUnkFs2, true, 0); + } + } else { + const char *iVar4; + + for (int i = 0; i < ARRAY_LEN(this->mUnk_18); i++) { + switch (i) { + case 0: { + UnkFileSystem2 local_cc(NULL, 0x00); + pUnkFs2 = &local_cc; + const char *path = "Effect/land.spa"; + pUnkFs2->vfunc_0C(); + pUnkFs2->mUnk_04 = path; + this->mUnk_18[i] = new(HeapIndex_5) UnkStruct_027e0cec_18(pUnkFs2, true, i); + break; + } + case 1: + iVar4 = this->func_ov001_020bef98(); + + if (iVar4 != NULL) { + UnkFileSystem2 local_e4(NULL, 0x00); + pUnkFs2 = &local_e4; + pUnkFs2->vfunc_0C(); + pUnkFs2->mUnk_04 = iVar4; + this->mUnk_18[i] = new(HeapIndex_5) UnkStruct_027e0cec_18(pUnkFs2, true, i); + } + break; + default: + break; + } + } + } + + data_0204999c.func_ov001_020ba640(); +} + +const char *UnkStruct_027e0cec::func_ov001_020bef98() { + SceneIndex sceneIndex = data_027e09a4->CurrentSceneIndex(); + if (sceneIndex == SceneIndex_b_last22) { + return data_ov001_020c2f28[EffectPathIndex_BossLast2]; + } + + if (gOverlayManager.IsField()) { + return data_ov001_020c2f28[EffectPathIndex_Field]; + } + + switch (gOverlayManager.mLoadedOverlays[OverlaySlot_8]) { + case OverlayIndex_BossForest: + return data_ov001_020c2f28[EffectPathIndex_BossForest]; + case OverlayIndex_BossSnow: + return data_ov001_020c2f28[EffectPathIndex_BossSnow]; + case OverlayIndex_BossWater: + return data_ov001_020c2f28[EffectPathIndex_BossWater]; + case OverlayIndex_BossFlame: + if (sceneIndex == SceneIndex_d_flame || sceneIndex == SceneIndex_tekiya03) { + return data_ov001_020c2f28[EffectPathIndex_Dungeon2]; + } + + return data_ov001_020c2f28[EffectPathIndex_BossFlame]; + case OverlayIndex_BossDesert: + return data_ov001_020c2f28[EffectPathIndex_BossDesert]; + case OverlayIndex_BossDeago: + return data_ov001_020c2f28[EffectPathIndex_BossDeago]; + case OverlayIndex_BossLast1: + return data_ov001_020c2f28[EffectPathIndex_BossLast1]; + case OverlayIndex_BossLast2: + return data_ov001_020c2f28[EffectPathIndex_BossLast2]; + default: + break; + } + + return data_ov001_020c2f28[2]; +} + +UnkStruct_027e0cec::~UnkStruct_027e0cec() {} + +void UnkStruct_027e0cec::func_ov001_020bf028() { + for (int i = 0; i < ARRAY_LEN(this->mUnk_18); i++) { + if (this->mUnk_18[i] != NULL) { + this->mUnk_18[i]->func_ov000_020a0460(); + } + } +} + +ARM_BEGIN + +UnkStruct_027e0cec_00::UnkStruct_027e0cec_00(void *param1) : + mUnk_10(param1), + mUnk_14(0) {} + +DECL_INSTANCE(UnkStruct_027e0cec, data_027e0cec); + +ARM_END diff --git a/src/001_SceneInit/UnkStruct_027e0cec_18_001.cpp b/src/001_SceneInit/UnkStruct_027e0cec_18_001.cpp new file mode 100644 index 00000000..aefb25b1 --- /dev/null +++ b/src/001_SceneInit/UnkStruct_027e0cec_18_001.cpp @@ -0,0 +1,63 @@ +#include "Unknown/UnkStruct_0204a110.hpp" +#include "Unknown/UnkStruct_027e09a0.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" +#include "Unknown/UnkStruct_027e0cec.hpp" + +#include +#include + +extern "C" void *func_02001308(void *, size_t, u32); +extern "C" UnkStruct_027e0cec_18_04 *func_ov000_02054690(void *, unk32, unk32, unk32, unk32, unk32); +extern unk32 data_027e0154; + +void *UnkStruct_027e0cec_18::func_ov001_020bf0a0(size_t length) { + return func_02001308(data_0204999c.mUnk_00[HeapIndex_5], length, 4); +} + +UnkStruct_027e0cec_18::UnkStruct_027e0cec_18(UnkFileSystem1 *param1, bool param2, unk32 param3) : + mUnk_04(0), + mUnk_08(0) { + + unk32 uVar5; + unk32 uVar3; + if (data_027e09a4 == NULL) { + uVar5 = 0x32; + uVar3 = 0x64; + } else { + SceneIndex sceneIndex = data_027e09a4->CurrentSceneIndex(); + + if (param3 == 0) { + uVar5 = data_027e09a0->func_ov000_020702a8(sceneIndex)->mUnk_18; + uVar3 = data_027e09a0->func_ov000_020702a8(sceneIndex)->mUnk_1A; + } else { + uVar5 = data_027e09a0->func_ov000_020702a8(sceneIndex)->mUnk_1C; + uVar3 = data_027e09a0->func_ov000_020702a8(sceneIndex)->mUnk_1E; + } + } + + this->mUnk_04 = func_ov000_02054690(UnkStruct_027e0cec_18::func_ov001_020bf0a0, uVar5, uVar3, 0x00, 0x24, 0x3F); + this->mUnk_04->mUnk_44 = &data_027e0154; + this->mUnk_04->mUnk_3C = 0x8000; + + param1->vfunc_08(0x10); + size_t size = param1->mFileSize; + DC_FlushAll(); + + this->mUnk_04->func_ov000_0205498c(param1->mpFile); + this->mUnk_08 = ((SPAHeader *) param1->mpFile)->mUnk_08; + this->mUnk_04->func_ov000_02054a78(); + this->mUnk_04->func_ov000_02054a88(); + + if (((SPAHeader *) param1->mpFile)->mUnk_18 < size) { + param1->vfunc_10(((SPAHeader *) param1->mpFile)->mUnk_18); + size = param1->mFileSize; + } + + if (param2) { + void *ptr = ::operator new(size, HeapIndex_5); + MI_CpuCopy32(param1->mpFile, ptr, size); + this->mUnk_04->func_ov000_02054998(ptr); + } +} + +UnkStruct_027e0cec_18::~UnkStruct_027e0cec_18() {} diff --git a/src/001_SceneInit/UnkStruct_027e0d00_001.cpp b/src/001_SceneInit/UnkStruct_027e0d00_001.cpp index e69de29b..46f190a2 100644 --- a/src/001_SceneInit/UnkStruct_027e0d00_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e0d00_001.cpp @@ -0,0 +1,138 @@ +#include "MainGame/CargoManager.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" +#include "Unknown/UnkStruct_027e0d00.hpp" + +extern "C" unk32 func_ov000_0205c984(); +extern "C" void func_ov026_020efc40(unk32 param1); + +UnkStruct_027e0d00::UnkStruct_027e0d00() { + this->mUnk_0E0 = NULL; + this->mUnk_0F4 = NULL; + this->mUnk_0F8 = NULL; + this->mUnk_0FC = NULL; + this->mUnk_100 = NULL; + this->mUnk_104 = false; + + for (int i = 0; i < MAX_TRAIN_PARTS; i++) { + this->mUnk_000[i] = NULL; + this->mUnk_010[i] = NULL; + this->mUnk_0A0[i] = NULL; + this->mUnk_0E4[i] = NULL; + } + + for (int i = 0; i < MAX_TRAIN_PARTS; i++) { + for (int j = 0; j < MAX_TRAIN_SETS; j++) { + this->mUnk_020[i][j] = NULL; + } + } + + for (int i = 0; i < ARRAY_LEN(this->mUnk_0B0); i++) { + this->mUnk_0B0[i] = NULL; + } +} + +UnkStruct_027e0d00::~UnkStruct_027e0d00() {} + +void UnkStruct_027e0d00::func_ov001_020bf530() { + if (data_027e09a4->IsTrain()) { + this->func_ov001_020bf730(); + + unk32 uVar2 = func_ov000_0205c984(); + this->func_ov024_020d4d6c(uVar2); + func_ov026_020efc40(uVar2); + this->func_ov001_020bf768(); + } +} + +void UnkStruct_027e0d00::func_ov001_020bf568() { + if (data_027e09a4->IsTrain()) { + this->func_ov001_020bf7b8(); + this->func_ov024_020d4df8(); + this->func_ov001_020bf750(); + } +} + +void UnkStruct_027e0d00::func_ov001_020bf590() { + for (int i = 0; i < MAX_TRAIN_PARTS; i++) { + unk32 uVar1 = this->func_ov024_020d485c(i, 0); + unk32 uVar2 = this->func_ov024_020d485c(i, 1); + unk32 uVar3 = this->func_ov024_020d485c(i, 2); + + const u8 *ptr = data_ov024_020d7624.unk_01; + this->mUnk_000[i] = new(HeapIndex_1) UnkStruct_027e0d00_00(uVar1, uVar2, uVar3, ptr[i]); + } + + for (int i = 0; i < MAX_TRAIN_PARTS; i++) { + this->mUnk_010[i] = (UnkStruct_027e0d00_10 *) ::operator new(this->func_ov024_020d485c(i, 3), HeapIndex_1); + } + + for (int i = 0; i < MAX_TRAIN_PARTS; i++) { + this->mUnk_0E4[i] = (UnkStruct_027e0d00_20 *) ::operator new(sizeof(UnkStruct_027e0d00_20), HeapIndex_1); + } + + for (int i = 0; i < MAX_TRAIN_PARTS; i++) { + this->mUnk_0A0[i] = ::operator new(data_ov024_020d766c[i], HeapIndex_1); + } + + this->mUnk_0F8 = new(HeapIndex_1) UnkStruct_027e0d00_00(0x00, SUBSCREEN_WIDTH, SUBSCREEN_HEIGHT, 0x00); + this->mUnk_0FC = (UnkStruct_027e0d00_FC *) ::operator new(sizeof(UnkStruct_027e0d00_FC), HeapIndex_1); + this->mUnk_100 = (MapObjectProfile_Derived5 *) ::operator new(sizeof(MapObjectProfile_Derived5), HeapIndex_1); + this->mUnk_104 = true; +} + +void UnkStruct_027e0d00::func_ov001_020bf69c() { + this->mUnk_104 = false; + DELETE_ARRAY2(this->mUnk_100); + DELETE_ARRAY2(this->mUnk_0FC); + DELETE(this->mUnk_0F8); + + for (int i = 0; i < MAX_TRAIN_PARTS; i++) { + DELETE_ARRAY(this->mUnk_0A0[i]); + } + + for (int i = 0; i < MAX_TRAIN_PARTS; i++) { + DELETE_ARRAY2(this->mUnk_0E4[i]); + } + + for (int i = 0; i < MAX_TRAIN_PARTS; i++) { + DELETE_ARRAY(this->mUnk_010[i]); + } + + for (int i = 0; i < MAX_TRAIN_PARTS; i++) { + DELETE(this->mUnk_000[i]); + } +} + +void UnkStruct_027e0d00::func_ov001_020bf730() { + this->func_ov001_020bf590(); + this->func_ov024_020d4a50(); + this->func_ov024_020d4cc0(gpCargoManager->GetCargo()->GetType()); +} + +void UnkStruct_027e0d00::func_ov001_020bf750() { + this->func_ov024_020d4d10(); + this->func_ov024_020d4ab4(); + this->func_ov001_020bf69c(); +} + +void UnkStruct_027e0d00::func_ov001_020bf768() { + bool result = data_027e0ce0->mUnk_2C->GetInventory()->HasRecruitUniform(); + + bool hasRecruitUniform = false; + if (result != true) { + hasRecruitUniform = true; + } + + this->mUnk_0E0 = new(HeapIndex_1) UnkStruct_027e0d00_E0(hasRecruitUniform); + this->mUnk_0E0->func_ov000_020586b4(0x0, 0x00, 0x00, 0x00); + this->mUnk_0E0->func_ov026_020fb964(); +} + +void UnkStruct_027e0d00::func_ov001_020bf7b8() { + this->mUnk_0E0->func_ov026_020fba3c(); + this->mUnk_0E0->func_ov000_020589e4(); + DELETE(this->mUnk_0E0); +} + +DECL_INSTANCE(UnkStruct_027e0d00, data_027e0d00); diff --git a/src/001_SceneInit/UnkStruct_ov020_020e8544_001.cpp b/src/001_SceneInit/UnkStruct_ov020_020e8544_001.cpp index e69de29b..5a60d708 100644 --- a/src/001_SceneInit/UnkStruct_ov020_020e8544_001.cpp +++ b/src/001_SceneInit/UnkStruct_ov020_020e8544_001.cpp @@ -0,0 +1,77 @@ +#include "Game/GameModeBattle.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_ov020_020e8544.hpp" + +#include + +void func_ov001_020bfcc0() { + BOOL status; + + if (data_ov020_020e8544 == NULL) { + status = false; + } else { + status = true; + } + + if (!status) { + data_ov020_020e8544 = new(HeapIndex_1) UnkStruct_ov020_020e8544_Derived1(); + } +} + +void func_ov001_020bfcf0() { + BOOL status; + + if (data_ov020_020e8544 == NULL) { + status = false; + } else { + status = true; + } + + if (!status) { + data_ov020_020e8544 = new(HeapIndex_1) UnkStruct_ov020_020e8544_Derived1(); + } +} + +void func_ov001_020bfd20() { + BOOL status; + + if (data_ov020_020e8544 == NULL) { + status = false; + } else { + status = true; + } + + if (!status) { + data_ov020_020e8544 = new(HeapIndex_1) UnkStruct_ov020_020e8544_Derived2(); + } +} + +void func_ov001_020bfd54() { + BOOL status; + + if (data_ov020_020e8544 == NULL) { + status = false; + } else { + status = true; + } + + if (!status) { + data_ov020_020e8544 = new(HeapIndex_1) UnkStruct_ov020_020e8544_Derived1(); + } +} + +void GameModeBattle::func_ov001_020bfd84(unk32 param1) { + switch (param1) { + case 0: + DSProt_DetectEmulator(func_ov001_020bfcc0); + DSProt_DetectFlashcart(func_ov001_020bfcf0); + DSProt_DetectNotDummy(func_ov001_020bfd20); + func_ov001_020bfd54(); + break; + case 1: + data_ov020_020e8544 = new(HeapIndex_1) UnkStruct_ov020_020e8544_Derived1(); + break; + default: + break; + } +} diff --git a/src/001_SceneInit/code_020bf0a0.cpp b/src/001_SceneInit/code_020bf0a0.cpp deleted file mode 100644 index e69de29b..00000000 diff --git a/src/001_SceneInit/code_020bfdd0.cpp b/src/001_SceneInit/code_020bfdd0.cpp index e69de29b..0a48e4d8 100644 --- a/src/001_SceneInit/code_020bfdd0.cpp +++ b/src/001_SceneInit/code_020bfdd0.cpp @@ -0,0 +1,54 @@ +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_ov023_020f1d94.hpp" +#include "global.h" +#include "types.h" + +#include + +void func_ov001_020bfdd0() { + if (data_ov001_020c46f4 != NULL) { + DELETE(data_ov001_020c46f4); + } + + if (data_ov001_020c46f4 == NULL) { + data_ov001_020c46f4 = new(HeapIndex_1) UnkStruct_ov001_020c46f4_Derived1(); + } +} + +void func_ov001_020bfe0c() { + if (data_ov001_020c46f4 != NULL) { + DELETE(data_ov001_020c46f4); + } + + if (data_ov001_020c46f4 == NULL) { + data_ov001_020c46f4 = new(HeapIndex_1) UnkStruct_ov001_020c46f4_Derived1(); + } +} + +void func_ov001_020bfe48() { + if (data_ov001_020c46f4 != NULL) { + DELETE(data_ov001_020c46f4); + } + + if (data_ov001_020c46f4 == NULL) { + data_ov001_020c46f4 = new(HeapIndex_1) UnkStruct_ov001_020c46f4_Derived1(); + } +} + +void func_ov001_020bfe84() { + if (data_ov001_020c46f4 == NULL) { + data_ov001_020c46f4 = new(HeapIndex_1) UnkStruct_ov001_020c46f4_Derived2(); + } +} + +void UnkStruct_ov023_020f1d94::func_ov001_020bfeb0() { + DSProt_DetectDummy(func_ov001_020bfdd0); + + if (!DSProt_DetectNotEmulator(func_ov001_020bfe84)) { + func_ov001_020bfe0c(); + } + + DSProt_DetectFlashcart(func_ov001_020bfe48); + this->mUnk_04 = data_ov001_020c46f4; + data_ov001_020c46f4 = NULL; +} diff --git a/src/001_SceneInit/code_020bfeec.cpp b/src/001_SceneInit/code_020bfeec.cpp new file mode 100644 index 00000000..73b3aa77 --- /dev/null +++ b/src/001_SceneInit/code_020bfeec.cpp @@ -0,0 +1,40 @@ +#include "Actor/ActorUnkLBCK.hpp" +#include "Actor/Actor_Derived1.hpp" + +#include + +extern ActorUnkLBCK *data_ov001_020c46f8; + +void func_ov001_020bfeec(void) { + data_ov001_020c46f8->func_ov000_020984d0(); +} + +void func_ov001_020bfefc(void) { + data_ov001_020c46f8->func_ov000_020984d0(); +} + +void func_ov001_020bff0c(void) { + data_ov001_020c46f8->func_ov001_020bff2c(); +} + +void func_ov001_020bff1c(void) { + data_ov001_020c46f8->func_ov000_020984d0(); +} + +void Actor_Derived1::func_ov001_020bff2c(void) { + this->Actor_Derived1::vfunc_1C(); +} + +void ActorUnkLBCK::func_ov001_020bff34() { + data_ov001_020c46f8 = this; + + DSProt_DetectFlashcart(func_ov001_020bfeec); + + if (DSProt_DetectNotEmulator(func_ov001_020bff0c) != true) { + func_ov001_020bfefc(); + } + + DSProt_DetectDummy(func_ov001_020bff1c); + data_ov001_020c46f8 = NULL; + this->func_ov062_02159618(); +} diff --git a/src/001_SceneInit/code_020c099c.cpp b/src/001_SceneInit/code_020c099c.cpp index e69de29b..dd573dac 100644 --- a/src/001_SceneInit/code_020c099c.cpp +++ b/src/001_SceneInit/code_020c099c.cpp @@ -0,0 +1,24 @@ +#include "Game/GameModeDownloadPlay.hpp" +#include "System/SysNew.hpp" + +#include + +void func_ov001_020c099c(void) { + data_ov001_020c46fc = new(HeapIndex_1) UnkStruct_ov001_020c46fc(); +} + +void func_ov001_020c09c0(void) { + DELETE(data_ov001_020c46fc); +} + +void GameModeDownloadPlay::func_ov001_020c09dc() { + DSProt_DetectNotFlashcart(func_ov001_020c099c); + DSProt_DetectEmulator(func_ov001_020c09c0); + + if (DSProt_DetectDummy(NULL)) { + DELETE(data_ov001_020c46fc); + } + + this->mUnk_48 = data_ov001_020c46fc; + data_ov001_020c46fc = NULL; +} diff --git a/src/019_MainSelect/019_UnkSubStruct9.cpp b/src/019_MainSelect/019_UnkSubStruct9.cpp index afabb35f..d95b03f7 100644 --- a/src/019_MainSelect/019_UnkSubStruct9.cpp +++ b/src/019_MainSelect/019_UnkSubStruct9.cpp @@ -157,13 +157,13 @@ void UnkSubStruct9::func_ov019_020cbc0c() { } unk32 uVar10 = 0; - unk32 uVar6 = (pSlot->mInfoData[0].inventory.unk_80 << 4) >> 26; + unk32 uVar6 = (pSlot->mInfoData[0].inventory.data.unk_00 << 4) >> 26; if (uVar6 == 0) { uVar6 = 0x40; } - unk32 uVar13 = (pSlot->mInfoData[0].inventory.unk_80 << 10) >> 26; + unk32 uVar13 = (pSlot->mInfoData[0].inventory.data.unk_00 << 10) >> 26; if (uVar13 == 0) { uVar13 = uVar6; } diff --git a/src/024_MainGame/MiscAdvManager.cpp b/src/024_MainGame/MiscAdvManager.cpp index 48ef5eaa..2b4f602d 100644 --- a/src/024_MainGame/MiscAdvManager.cpp +++ b/src/024_MainGame/MiscAdvManager.cpp @@ -1,7 +1,7 @@ #include "MainGame/MiscAdvManager.hpp" #include "Item/ItemManager.hpp" #include "System/SysNew.hpp" -#include "Unknown/UnkStruct_02049bac.hpp" + #include extern "C" u8 func_ov000_020a9a50(); @@ -21,7 +21,7 @@ MiscAdvManager::MiscAdvManager() { MiscAdvManager::~MiscAdvManager() {} void MiscAdvManager::func_ov024_020d6310(MiscAdvManager *pSrc) { - u16 local_10; + Date local_10; MI_CpuCopyFast(pSrc, this, sizeof(MiscAdvManager)); data_02049bac.func_02014a34(&local_10); @@ -129,16 +129,18 @@ void MiscAdvManager::func_ov024_020d64b4(s8 param1, unk32 param2, const u16 *par } } - u16 local_18; + Date local_18; data_02049bac.func_02014a34(&local_18); this->mObtainedStamps[param2] = param1; - u16 new_var2 = this->mStampDates[param2]; - u16 temp = local_18; - this->mStampDates[param2] = temp; - this->mStampDates[param2] = new_var2; - this->mStampDates[param2] = temp; + Date new_var2; + Date temp; + new_var2.data[0] = this->mStampDates[param2].data[0]; + temp.data[0] = local_18.data[0]; + this->mStampDates[param2].data[0] = temp.data[0]; + this->mStampDates[param2].data[0] = new_var2.data[0]; + this->mStampDates[param2].data[0] = temp.data[0]; u16 new_var3 = this->mStampPos[param2]; u16 temp2 = *param3; @@ -188,7 +190,7 @@ void MiscAdvManager::PostPriceCard(unk32 amount, unk32 param2) { this->mNumPostedPriceCards += amount; } - u16 date; + Date date; data_02049bac.func_02014a34(&date); this->mPostDate = date; diff --git a/src/024_MainGame/Train/PassengerManager.cpp b/src/024_MainGame/Train/PassengerManager.cpp index 80db9650..ee632039 100644 --- a/src/024_MainGame/Train/PassengerManager.cpp +++ b/src/024_MainGame/Train/PassengerManager.cpp @@ -320,9 +320,9 @@ bool PassengerManager::IsDateUnset() { } s16 PassengerManager::GetDate() { - u16 date; + Date date; data_02049bac.func_02014a34(&date); - return date; + return date.data[0]; } u32 PassengerManager::GetRandomIndex(u32 param1, u32 seed) { diff --git a/src/024_MainGame/Train/UnkStruct_027e0d00_20.cpp b/src/024_MainGame/Train/UnkStruct_027e0d00_20.cpp index faf66506..43450e0a 100644 --- a/src/024_MainGame/Train/UnkStruct_027e0d00_20.cpp +++ b/src/024_MainGame/Train/UnkStruct_027e0d00_20.cpp @@ -40,7 +40,7 @@ UnkStruct_027e0d00_20::UnkStruct_027e0d00_20(unk32 param1, unk32 param2) : mUnk_B0(0), mUnk_B4(0) {} -void UnkStruct_027e0d00_20::func_ov024_020d4fa0(unk32 param1, unk32 param2) { +void UnkStruct_027e0d00_20::func_ov024_020d4fa0(void *param1, unk32 param2) { u8 unknown[0x90]; ModelRender_Derived2 local_120(G3d_GetModelPtr(this->mUnk_50), 0x0C, unknown); void *iVar2; @@ -62,7 +62,7 @@ void UnkStruct_027e0d00_20::func_ov024_020d4fa0(unk32 param1, unk32 param2) { UnkStruct_027e0d00_20::func_ov024_020d4e9c(local_160, this->mUnk_94, true); this->mUnk_A4.~UnkSystem3(); this->mUnk_A4.mUnk_00 = local_160; - this->mUnk_A4.func_02015460((const char *) &this->mUnk_9C.mUnk_00, (void *) param1, param2); + this->mUnk_A4.func_02015460((const char *) &this->mUnk_9C.mUnk_00, param1, param2); for (int i = 0; i < ARRAY_LEN(data_ov000_020aa250); i++) { UnkStruct_027e0d00_20::func_ov024_020d4edc(local_160, (wchar_t *) &this->mUnk_9C.mUnk_00, i); diff --git a/src/062_Village/Actor/ActorUnkLBCK.cpp b/src/062_Village/Actor/ActorUnkLBCK.cpp index a4b28b73..d454dca1 100644 --- a/src/062_Village/Actor/ActorUnkLBCK.cpp +++ b/src/062_Village/Actor/ActorUnkLBCK.cpp @@ -12,7 +12,8 @@ Actor *ActorProfileUnkLBCK::Create() { ActorProfileUnkLBCK::ActorProfileUnkLBCK() : ActorProfile_Derived1(ActorId_LBCK) {} -ActorUnkLBCK::ActorUnkLBCK() {} +ActorUnkLBCK::ActorUnkLBCK() : + Actor_Derived1(NULL, 0) {} void ActorUnkLBCK::func_ov062_02159044(void) {} void ActorUnkLBCK::func_ov062_02159078(void) {} diff --git a/src/Main/System/SysNew.cpp b/src/Main/System/SysNew.cpp index 42f656dc..aae831c6 100644 --- a/src/Main/System/SysNew.cpp +++ b/src/Main/System/SysNew.cpp @@ -4,8 +4,8 @@ extern "C" { void *func_02001654(void *); void *func_020145b0(UnkId *, s32); -void *func_020010c0(void *); -void *func_02001308(void *); +void *func_020010c0(void *, size_t, u32); +void *func_02001308(void *, size_t, u32); UnkId *func_02001488(void); UnkId *func_02014704(); UnkId *func_020011c8(UnkId *, void *); @@ -15,16 +15,15 @@ unk32 func_020011f4(void *); } extern char *data_0204372c[]; -// non-matching -void *SysNew(UnkStruct_02011e10_Sub1 *param1, s32 length, s32 param3) { +void *SysNew(UnkStruct_02011e10_Sub1 *param1, u32 length, u32 idLength) { void *newPtr = NULL; switch (param1->mId) { case UnkId_EXPH: - newPtr = func_020010c0(param1); + newPtr = func_020010c0(param1, length, idLength); break; case UnkId_FRMH: - newPtr = func_02001308(param1); + newPtr = func_02001308(param1, length, idLength); break; case UnkId_UNTH: newPtr = func_02001654(param1); diff --git a/tools/configure.py b/tools/configure.py index 2df51171..ea4cfe65 100755 --- a/tools/configure.py +++ b/tools/configure.py @@ -221,7 +221,7 @@ config.libs = [ Object("001_SceneInit/UnkStruct_027e09b4_001.cpp"), Object("001_SceneInit/UnkStruct_027e09ac_001.cpp"), Object("001_SceneInit/UnkStruct_027e0cec_001.cpp"), - Object("001_SceneInit/code_020bf0a0.cpp"), + Object("001_SceneInit/UnkStruct_027e0cec_18_001.cpp"), Object("001_SceneInit/UnkStruct_027e0ce0_34_001.cpp"), Object("001_SceneInit/UnkStruct_027e0d00_001.cpp"), Object("001_SceneInit/CargoManager_001.cpp"), @@ -229,6 +229,7 @@ config.libs = [ Object("001_SceneInit/UnkStruct_027e0cf8_08_00_001.cpp"), Object("001_SceneInit/UnkStruct_ov020_020e8544_001.cpp"), Object("001_SceneInit/code_020bfdd0.cpp"), + Object("001_SceneInit/code_020bfeec.cpp"), Object("001_SceneInit/Game/AdventureModeManager_001.cpp"), Object("001_SceneInit/Game/GameModeAdventure_001.cpp"), Object("001_SceneInit/code_020c099c.cpp"),