diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index ffcae4b3..3d2d1925 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -44,6 +44,9 @@ src/Main/Unknown/UnkStruct_02037750.cpp: src/Main/Unknown/UnkStruct_02038aa0.cpp: .text start:0x0203881c end:0x02039578 +src/Main/Unknown/UnkStruct_020397f8.cpp: + .text start:0x020395b4 end:0x0203c358 + src/Main/Message/func_0203c358.cpp: .text start:0x0203c358 end:0x0203c72c @@ -64,6 +67,7 @@ src/Main/Unknown/UnkStruct_02063220.cpp: src/Main/Game/Game.cpp: .text start:0x0202c6c8 end:0x0202d0cc .rodata start:0x020561f4 end:0x020562d4 + .bss start:0x02062d40 end:0x02062e20 src/Main/Game/GameMode.cpp: complete diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 48f35300..63cd6cb6 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -149,7 +149,7 @@ func_ov000_0207a1a4 kind:function(arm,size=0x24) addr:0x0207a1a4 _ZN19Actor_UnkStruct_0a419func_ov000_0207a1c8EiP5Vec3p kind:function(arm,size=0xcc) addr:0x0207a1c8 func_ov000_0207a294 kind:function(thumb,size=0x44) addr:0x0207a294 func_ov000_0207a2d8 kind:function(arm,size=0x10) addr:0x0207a2d8 -func_ov000_0207a2e8 kind:function(thumb,size=0x14) addr:0x0207a2e8 +_ZN18UnkStruct_027e0d5419func_ov000_0207a2e8Ei kind:function(thumb,size=0x14) addr:0x0207a2e8 func_ov000_0207a2fc kind:function(arm,size=0x4) addr:0x0207a2fc func_ov000_0207a300 kind:function(thumb,size=0x8c) addr:0x0207a300 _ZN13SaveInventory4InitEv kind:function(thumb,size=0x56) addr:0x0207a38c @@ -204,7 +204,7 @@ func_ov000_0207b2c4 kind:function(thumb,size=0x2c) addr:0x0207b2c4 func_ov000_0207b2f0 kind:function(thumb,size=0x44) addr:0x0207b2f0 func_ov000_0207b334 kind:function(thumb,size=0x44) addr:0x0207b334 _ZN15Struct_027e0db019func_ov000_0207b378Ei kind:function(arm,size=0xc4) addr:0x0207b378 -func_ov000_0207b43c kind:function(arm,size=0xf4) addr:0x0207b43c +_ZN15Struct_027e0db019func_ov000_0207b43cEv kind:function(arm,size=0xf4) addr:0x0207b43c func_ov000_0207b530 kind:function(thumb,size=0x2c) addr:0x0207b530 func_ov000_0207b55c kind:function(thumb,size=0x60) addr:0x0207b55c func_ov000_0207b5bc kind:function(thumb,size=0x264) addr:0x0207b5bc @@ -212,8 +212,8 @@ func_ov000_0207b820 kind:function(arm,size=0x7c) addr:0x0207b820 func_ov000_0207b89c kind:function(arm,size=0x60) addr:0x0207b89c func_ov000_0207b8fc kind:function(arm,size=0x10) addr:0x0207b8fc func_ov000_0207b90c kind:function(arm,size=0x7c) addr:0x0207b90c -func_ov000_0207b988 kind:function(thumb,size=0x40) addr:0x0207b988 -func_ov000_0207b9c8 kind:function(thumb,size=0x14) addr:0x0207b9c8 +_ZN18UnkStruct_027e0dbc19func_ov000_0207b988Ei kind:function(thumb,size=0x40) addr:0x0207b988 +_ZN18UnkStruct_027e0dbc19func_ov000_0207b9c8Ev kind:function(thumb,size=0x14) addr:0x0207b9c8 _ZN18UnkStruct_027e0dbc19func_ov000_0207b9dcEv kind:function(arm,size=0xb4) addr:0x0207b9dc func_ov000_0207ba90 kind:function(thumb,size=0x4) addr:0x0207ba90 func_ov000_0207ba94 kind:function(thumb,size=0x20) addr:0x0207ba94 @@ -240,7 +240,7 @@ func_ov000_0207c030 kind:function(thumb,size=0x44) addr:0x0207c030 func_ov000_0207c074 kind:function(thumb,size=0x38) addr:0x0207c074 func_ov000_0207c0ac kind:function(thumb,size=0x20) addr:0x0207c0ac func_ov000_0207c0cc kind:function(thumb,size=0x24) addr:0x0207c0cc -func_ov000_0207c0f0 kind:function(thumb,size=0x28) addr:0x0207c0f0 +_ZN18UnkStruct_020ec7dc19func_ov000_0207c0f0Ei kind:function(thumb,size=0x28) addr:0x0207c0f0 func_ov000_0207c118 kind:function(thumb,size=0x58) addr:0x0207c118 _ZN18UnkStruct_020ec7dc19func_ov000_0207c170Ev kind:function(thumb,size=0x1e) addr:0x0207c170 func_ov000_0207c190 kind:function(thumb,size=0x1e) addr:0x0207c190 @@ -3220,11 +3220,11 @@ func_ov000_020ce914 kind:function(arm,size=0x5c) addr:0x020ce914 func_ov000_020ce970 kind:function(arm,size=0xcc) addr:0x020ce970 func_ov000_020cea3c kind:function(arm,size=0x44) addr:0x020cea3c func_ov000_020cea80 kind:function(arm,size=0x4c) addr:0x020cea80 -func_ov000_020ceacc kind:function(arm,size=0x58) addr:0x020ceacc +_ZN18UnkStruct_027e0ffc19func_ov000_020ceaccEiP5Vec3pi kind:function(arm,size=0x58) addr:0x020ceacc func_ov000_020ceb24 kind:function(arm,size=0xa8) addr:0x020ceb24 _ZN18UnkStruct_027e0ffc19func_ov000_020cebccEjsi kind:function(arm,size=0x3c) addr:0x020cebcc func_ov000_020cec08 kind:function(arm,size=0x58) addr:0x020cec08 -func_ov000_020cec60 kind:function(arm,size=0x78) addr:0x020cec60 +_ZN18UnkStruct_027e0ffc19func_ov000_020cec60EtP5Vec3pP5Actori kind:function(arm,size=0x78) addr:0x020cec60 func_ov000_020cecd8 kind:function(arm,size=0x8c) addr:0x020cecd8 _ZN18UnkStruct_027e0ffc19func_ov000_020ced64EP8Cylinderjj kind:function(arm,size=0x18) addr:0x020ced64 _ZN18UnkStruct_027e0ffc19func_ov000_020ced7cEP5Vec3piii kind:function(arm,size=0x40) addr:0x020ced7c @@ -3588,19 +3588,19 @@ func_ov000_020d6c5c kind:function(arm,size=0xd4) addr:0x020d6c5c func_ov000_020d6d30 kind:function(arm,size=0xe4) addr:0x020d6d30 func_ov000_020d6e14 kind:function(arm,size=0x2c) addr:0x020d6e14 func_ov000_020d6e40 kind:function(arm,size=0x264) addr:0x020d6e40 -_Z19func_ov000_020d70a4Piiii kind:function(arm,size=0xc8) addr:0x020d70a4 -func_ov000_020d716c kind:function(arm,size=0x14) addr:0x020d716c +_ZN18UnkStruct_020eec6819func_ov000_020d70a4Eiii kind:function(arm,size=0xc8) addr:0x020d70a4 +_ZN18UnkStruct_020eec6819func_ov000_020d716cEi kind:function(arm,size=0x14) addr:0x020d716c func_ov000_020d7180 kind:function(arm,size=0x20) addr:0x020d7180 func_ov000_020d71a0 kind:function(arm,size=0xc8) addr:0x020d71a0 func_ov000_020d7268 kind:function(arm,size=0xc) addr:0x020d7268 func_ov000_020d7274 kind:function(arm,size=0x44) addr:0x020d7274 -_Z19func_ov000_020d72b8Pi kind:function(arm,size=0x70) addr:0x020d72b8 +_ZN18UnkStruct_020eec6819func_ov000_020d72b8Ev kind:function(arm,size=0x70) addr:0x020d72b8 func_ov000_020d7328 kind:function(arm,size=0x6c) addr:0x020d7328 func_ov000_020d7394 kind:function(arm,size=0x28) addr:0x020d7394 -PlaySoundEffect kind:function(arm,size=0x34) addr:0x020d73bc +_ZN18UnkStruct_020eec6815PlaySoundEffectEj kind:function(arm,size=0x34) addr:0x020d73bc func_ov000_020d73f0 kind:function(arm,size=0x14) addr:0x020d73f0 func_ov000_020d7404 kind:function(arm,size=0x20) addr:0x020d7404 -_Z19func_ov000_020d7424Pi kind:function(arm,size=0xc) addr:0x020d7424 +_ZN18UnkStruct_020eec6819func_ov000_020d7424Ev kind:function(arm,size=0xc) addr:0x020d7424 func_ov000_020d7430 kind:function(arm,size=0x40) addr:0x020d7430 func_ov000_020d7470 kind:function(arm,size=0x1c) addr:0x020d7470 func_ov000_020d748c kind:function(arm,size=0x20) addr:0x020d748c diff --git a/config/eur/arm9/overlays/ov009/symbols.txt b/config/eur/arm9/overlays/ov009/symbols.txt index 43eebc06..ffe10f40 100644 --- a/config/eur/arm9/overlays/ov009/symbols.txt +++ b/config/eur/arm9/overlays/ov009/symbols.txt @@ -147,7 +147,7 @@ func_ov009_02116230 kind:function(thumb,size=0x98) addr:0x02116230 func_ov009_021162c8 kind:function(thumb,size=0x3c) addr:0x021162c8 func_ov009_02116304 kind:function(thumb,size=0x5e) addr:0x02116304 _ZN18UnkStruct_027e077c19func_ov009_02116364Ev kind:function(arm,size=0x1d8) addr:0x02116364 -func_ov009_0211653c kind:function(arm,size=0x30) addr:0x0211653c +_ZN18UnkStruct_027e077c19func_ov009_0211653cEv kind:function(arm,size=0x30) addr:0x0211653c func_ov009_0211656c kind:function(arm,size=0xb4) addr:0x0211656c func_ov009_02116620 kind:function(arm,size=0x44) addr:0x02116620 func_ov009_02116664 kind:function(arm,size=0x80) addr:0x02116664 diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index ddadcf9c..b7af30d3 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1377,11 +1377,11 @@ func_0202c58c kind:function(arm,size=0x28) addr:0x0202c58c func_0202c5b4 kind:function(arm,size=0x1c) addr:0x0202c5b4 func_0202c5d0 kind:function(arm,size=0x18) addr:0x0202c5d0 func_0202c5e8 kind:function(thumb,size=0x90) addr:0x0202c5e8 -func_0202c678 kind:function(thumb,size=0x24) addr:0x0202c678 -func_0202c69c kind:function(thumb,size=0x2c) addr:0x0202c69c +_ZN4Game13func_0202c678Ev kind:function(thumb,size=0x24) addr:0x0202c678 +_ZN4Game13func_0202c69cEv kind:function(thumb,size=0x2c) addr:0x0202c69c _ZN4Game11EndGameModeEv kind:function(thumb,size=0x74) addr:0x0202c6c8 _ZN4Game13StartGameModeEv kind:function(thumb,size=0x238) addr:0x0202c73c -_ZN4Game13func_0202c974Ev kind:function(thumb,size=0x8) addr:0x0202c974 +_ZN4Game13func_0202c974EPS_ kind:function(thumb,size=0x8) addr:0x0202c974 _ZN4Game13func_0202c97cEv kind:function(thumb,size=0x24) addr:0x0202c97c _ZN4Game3RunEv kind:function(arm,size=0x528) addr:0x0202c9a0 _ZN4Game13func_0202cec8Eii kind:function(thumb,size=0x6c) addr:0x0202cec8 @@ -1462,16 +1462,16 @@ func_0202ece0 kind:function(thumb,size=0x34) addr:0x0202ece0 func_0202ed14 kind:function(arm,size=0x44) addr:0x0202ed14 func_0202ed58 kind:function(arm,size=0x164) addr:0x0202ed58 _ZN18UnkStruct_027e080c13func_0202eebcEi kind:function(arm,size=0x3c) addr:0x0202eebc -func_0202eef8 kind:function(arm,size=0x23c) addr:0x0202eef8 +_ZN18UnkStruct_027e080c13func_0202eef8Ev kind:function(arm,size=0x23c) addr:0x0202eef8 func_0202f134 kind:function(thumb,size=0x20) addr:0x0202f134 func_0202f154 kind:function(thumb,size=0x3e) addr:0x0202f154 func_0202f194 kind:function(thumb,size=0x5c) addr:0x0202f194 func_0202f1f0 kind:function(thumb,size=0x6c) addr:0x0202f1f0 func_0202f25c kind:function(thumb,size=0x2c) addr:0x0202f25c func_0202f288 kind:function(thumb,size=0x24) addr:0x0202f288 -func_0202f2ac kind:function(arm,size=0x4c) addr:0x0202f2ac +_ZN18UnkStruct_027e08e413func_0202f2acEv kind:function(arm,size=0x4c) addr:0x0202f2ac func_0202f2f8 kind:function(arm,size=0x30) addr:0x0202f2f8 -func_0202f328 kind:function(arm,size=0x38) addr:0x0202f328 +_ZN18UnkStruct_027e08e413func_0202f328Ev kind:function(arm,size=0x38) addr:0x0202f328 func_0202f360 kind:function(thumb,size=0x14) addr:0x0202f360 func_0202f374 kind:function(thumb,size=0x7c) addr:0x0202f374 _ZN18UnkStruct_0206322013func_0202f3f0Ei kind:function(thumb,size=0x10) addr:0x0202f3f0 @@ -1606,7 +1606,7 @@ func_020320ec kind:function(arm,size=0xec) addr:0x020320ec func_020321d8 kind:function(arm,size=0xec) addr:0x020321d8 func_020322c4 kind:function(arm,size=0x40) addr:0x020322c4 func_02032304 kind:function(thumb,size=0x56) addr:0x02032304 -func_0203235c kind:function(arm,size=0x8c) addr:0x0203235c +_ZN18UnkStruct_0206889413func_0203235cEv kind:function(arm,size=0x8c) addr:0x0203235c func_020323e8 kind:function(thumb,size=0x48) addr:0x020323e8 func_02032430 kind:function(thumb,size=0x1a) addr:0x02032430 func_0203244c kind:function(thumb,size=0x3c) addr:0x0203244c @@ -1679,10 +1679,10 @@ _ZN18UnkStruct_02032f0c13func_02033c6cEv kind:function(arm,size=0x1c) addr:0x020 _ZN18UnkStruct_02032f0c13func_02033c88Ej kind:function(arm,size=0x34) addr:0x02033c88 _ZN18UnkStruct_02032f0c13func_02033cbcEPs kind:function(arm,size=0x70) addr:0x02033cbc _ZN18UnkStruct_02032e7cD0Ev kind:function(arm,size=0x14) addr:0x02033d2c -func_02033d40 kind:function(arm,size=0x18) addr:0x02033d40 +_ZN18UnkStruct_027e0c3813func_02033d40Ev kind:function(arm,size=0x18) addr:0x02033d40 func_02033d58 kind:function(arm,size=0x18) addr:0x02033d58 _ZN18UnkStruct_027e0c3813func_02033d70Ei kind:function(arm,size=0x14) addr:0x02033d70 -func_02033d84 kind:function(arm,size=0xec) addr:0x02033d84 +_ZN18UnkStruct_027e0c3813func_02033d84EPt kind:function(arm,size=0xec) addr:0x02033d84 func_02033e70 kind:function(arm,size=0x1c) addr:0x02033e70 func_02033e8c kind:function(arm,size=0x30) addr:0x02033e8c func_02033ebc kind:function(arm,size=0x40) addr:0x02033ebc @@ -1776,8 +1776,8 @@ func_02035f2c kind:function(arm,size=0x10) addr:0x02035f2c func_02035f3c kind:function(arm,size=0x20) addr:0x02035f3c func_02035f5c kind:function(arm,size=0xb0) addr:0x02035f5c func_0203600c kind:function(thumb,size=0x8) addr:0x0203600c -func_02036014 kind:function(thumb,size=0x3c) addr:0x02036014 -func_02036050 kind:function(thumb,size=0x22) addr:0x02036050 +_ZN18UnkStruct_027e0c5413func_02036014Ei kind:function(thumb,size=0x3c) addr:0x02036014 +_ZN18UnkStruct_027e0c5413func_02036050Ev kind:function(thumb,size=0x22) addr:0x02036050 func_02036074 kind:function(arm,size=0x18) addr:0x02036074 func_0203608c kind:function(arm,size=0x1c) addr:0x0203608c func_020360a8 kind:function(arm,size=0x28) addr:0x020360a8 @@ -1786,7 +1786,7 @@ func_0203611c kind:function(thumb,size=0x24) addr:0x0203611c func_02036140 kind:function(thumb,size=0x34) addr:0x02036140 _ZN18UnkStruct_027e0c5413func_02036174Ev kind:function(arm,size=0x5c) addr:0x02036174 _ZN18UnkStruct_027e0c5413func_020361d0Ev kind:function(arm,size=0x70) addr:0x020361d0 -func_02036240 kind:function(arm,size=0x170) addr:0x02036240 +_ZN18UnkStruct_027e0c5413func_02036240EPt kind:function(arm,size=0x170) addr:0x02036240 _ZN18UnkStruct_027e0c5413func_020363b0Ev kind:function(arm,size=0x18) addr:0x020363b0 func_020363c8 kind:function(arm,size=0x74) addr:0x020363c8 _ZN14MessageManager13func_0203643cEPiPS_j kind:function(arm,size=0x54) addr:0x0203643c @@ -1807,7 +1807,7 @@ _ZN14MessageManager13func_02036888EP18UnkStruct_020386d8 kind:function(arm,size= _ZN14MessageManager13func_020368f4EP18UnkStruct_02037750 kind:function(arm,size=0x18) addr:0x020368f4 _ZN14MessageManager13func_0203690cEi kind:function(arm,size=0x2b0) addr:0x0203690c _ZN14MessageManager13func_02036bbcEv kind:function(arm,size=0x94) addr:0x02036bbc -_ZN14MessageManager13func_02036c50Ei kind:function(arm,size=0x54) addr:0x02036c50 +_ZN14MessageManager13func_02036c50EPt kind:function(arm,size=0x54) addr:0x02036c50 _ZN14MessageManager13func_02036ca4Ei kind:function(arm,size=0x40) addr:0x02036ca4 _ZN14MessageManager13func_02036ce4EP18UnkStruct_020386d8i kind:function(arm,size=0x4c) addr:0x02036ce4 _ZN14MessageManager13func_02036d30EP18UnkStruct_02037750 kind:function(arm,size=0x1c) addr:0x02036d30 @@ -1913,7 +1913,7 @@ _ZN18UnkStruct_020397f8C1Ev kind:function(thumb,size=0x244) addr:0x020397f8 _ZN18UnkStruct_020397f88vfunc_4cEv kind:function(thumb,size=0x20) addr:0x02039a3c _ZN18UnkStruct_020397f88vfunc_2cEv kind:function(arm,size=0x24c) addr:0x02039a5c _ZN18UnkStruct_020397f813func_02039ca8Ev kind:function(arm,size=0x24) addr:0x02039ca8 -_ZN18UnkStruct_020397f88vfunc_3cEv kind:function(arm,size=0xa8) addr:0x02039ccc +_ZN18UnkStruct_020397f88vfunc_3cEPt kind:function(arm,size=0xa8) addr:0x02039ccc _ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0x414) addr:0x02039d74 _ZN18UnkStruct_020397f813func_0203a188Eii kind:function(arm,size=0x138) addr:0x0203a188 _ZN18UnkStruct_020397f813func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x0203a2c0 @@ -1948,7 +1948,7 @@ _ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x40) addr:0x0203c310 _ZN18UnkStruct_020397f88vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203c350 _ZN13MsgProc_Type2C1Eisi kind:function(thumb,size=0x44) addr:0x0203c358 _ZN13MsgProc_Type213func_0203c39cEii kind:function(thumb,size=0x78) addr:0x0203c39c -_ZN13MsgProc_Type28vfunc_3CEi kind:function(arm,size=0x4c) addr:0x0203c414 +_ZN13MsgProc_Type28vfunc_3CEPt kind:function(arm,size=0x4c) addr:0x0203c414 _ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c460 _ZN13MsgProc_Type213func_0203c4acEii kind:function(arm,size=0x118) addr:0x0203c4ac _ZN13MsgProc_Type28vfunc_14Eii kind:function(arm,size=0x18) addr:0x0203c5c4 @@ -2011,7 +2011,7 @@ func_0203d5dc kind:function(thumb,size=0x24) addr:0x0203d5dc func_0203d600 kind:function(arm,size=0x4c) addr:0x0203d600 _ZN17UnkClass_027e0cbc13func_0203d64cEi kind:function(arm,size=0x18) addr:0x0203d64c _ZN17UnkClass_027e0cbc13func_0203d664Ei kind:function(arm,size=0x18) addr:0x0203d664 -func_0203d67c kind:function(arm,size=0x1c) addr:0x0203d67c +_ZN17UnkClass_027e0cbc13func_0203d67cEPt kind:function(arm,size=0x1c) addr:0x0203d67c func_0203d698 kind:function(thumb,size=0x38) addr:0x0203d698 _ZN17UnkClass_027e0cbc13func_0203d6d0Ev kind:function(thumb,size=0x6) addr:0x0203d6d0 func_0203d6d8 kind:function(thumb,size=0x58) addr:0x0203d6d8 @@ -2034,7 +2034,7 @@ _ZN18UnkStruct_0203dae08vfunc_14Eii kind:function(arm,size=0x48) addr:0x0203dcb4 _ZN18UnkStruct_0203dae013func_0203dcfcEhiii kind:function(arm,size=0xf0) addr:0x0203dcfc _ZN18UnkStruct_0203dae013func_0203ddecEv kind:function(arm,size=0x10) addr:0x0203ddec _ZN18UnkStruct_0203dae013func_0203ddfcEv kind:function(arm,size=0x18) addr:0x0203ddfc -_ZN18UnkStruct_02038aa013func_0203de14Ei kind:function(arm,size=0x10) addr:0x0203de14 +_ZN18UnkStruct_02038aa013func_0203de14EPt kind:function(arm,size=0x10) addr:0x0203de14 _ZN18UnkStruct_0203dae013func_0203de24Ev kind:function(arm,size=0x34) addr:0x0203de24 _ZN18UnkStruct_0203dae013func_0203de58Ei kind:function(arm,size=0x208) addr:0x0203de58 _ZN18UnkStruct_0203dae08vfunc_10Eji kind:function(arm,size=0x30) addr:0x0203e060 @@ -2096,7 +2096,7 @@ func_0203f704 kind:function(arm,size=0xc8) addr:0x0203f704 func_0203f7cc kind:function(arm,size=0xd0) addr:0x0203f7cc func_0203f89c kind:function(arm,size=0x68) addr:0x0203f89c _ZN18UnkStruct_02075dac13func_0203f904Ev kind:function(thumb,size=0x70) addr:0x0203f904 -func_0203f974 kind:function(arm,size=0x44) addr:0x0203f974 +_ZN18UnkStruct_02075dac13func_0203f974Ev kind:function(arm,size=0x44) addr:0x0203f974 func_0203f9b8 kind:function(arm,size=0x9c) addr:0x0203f9b8 func_0203fa54 kind:function(arm,size=0x2c) addr:0x0203fa54 func_0203fa80 kind:function(arm,size=0x30) addr:0x0203fa80 diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 66617da6..a2744d4d 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -149,7 +149,7 @@ func_ov000_0207a1a4 kind:function(arm,size=0x24) addr:0x0207a144 _ZN19Actor_UnkStruct_0a419func_ov000_0207a1c8EiP5Vec3p kind:function(arm,size=0xcc) addr:0x0207a168 func_ov000_0207a294 kind:function(thumb,size=0x44) addr:0x0207a234 func_ov000_0207a2d8 kind:function(arm,size=0x10) addr:0x0207a278 -func_ov000_0207a2e8 kind:function(thumb,size=0x14) addr:0x0207a288 +_ZN18UnkStruct_027e0d5419func_ov000_0207a2e8Ei kind:function(thumb,size=0x14) addr:0x0207a288 func_ov000_0207a2fc kind:function(arm,size=0x4) addr:0x0207a29c func_ov000_0207a300 kind:function(thumb,size=0x8c) addr:0x0207a2a0 _ZN13SaveInventory4InitEv kind:function(thumb,size=0x56) addr:0x0207a32c @@ -204,7 +204,7 @@ func_ov000_0207b2c4 kind:function(thumb,size=0x2c) addr:0x0207b264 func_ov000_0207b2f0 kind:function(thumb,size=0x44) addr:0x0207b290 func_ov000_0207b334 kind:function(thumb,size=0x44) addr:0x0207b2d4 _ZN15Struct_027e0db019func_ov000_0207b378Ei kind:function(arm,size=0xc4) addr:0x0207b318 -func_ov000_0207b43c kind:function(arm,size=0xf4) addr:0x0207b3dc +_ZN15Struct_027e0db019func_ov000_0207b43cEv kind:function(arm,size=0xf4) addr:0x0207b3dc func_ov000_0207b530 kind:function(thumb,size=0x2c) addr:0x0207b4d0 func_ov000_0207b55c kind:function(thumb,size=0x60) addr:0x0207b4fc func_ov000_0207b5bc kind:function(thumb,size=0x264) addr:0x0207b55c @@ -212,8 +212,8 @@ func_ov000_0207b820 kind:function(arm,size=0x7c) addr:0x0207b7c0 func_ov000_0207b89c kind:function(arm,size=0x60) addr:0x0207b83c func_ov000_0207b8fc kind:function(arm,size=0x10) addr:0x0207b89c func_ov000_0207b90c kind:function(arm,size=0x7c) addr:0x0207b8ac -func_ov000_0207b988 kind:function(thumb,size=0x40) addr:0x0207b928 -func_ov000_0207b9c8 kind:function(thumb,size=0x14) addr:0x0207b968 +_ZN18UnkStruct_027e0dbc19func_ov000_0207b988Ei kind:function(thumb,size=0x40) addr:0x0207b928 +_ZN18UnkStruct_027e0dbc19func_ov000_0207b9c8Ev kind:function(thumb,size=0x14) addr:0x0207b968 _ZN18UnkStruct_027e0dbc19func_ov000_0207b9dcEv kind:function(arm,size=0xb4) addr:0x0207b97c func_ov000_0207ba90 kind:function(thumb,size=0x4) addr:0x0207ba30 func_ov000_0207ba94 kind:function(thumb,size=0x20) addr:0x0207ba34 @@ -240,7 +240,7 @@ func_ov000_0207c030 kind:function(thumb,size=0x44) addr:0x0207bfd0 func_ov000_0207c074 kind:function(thumb,size=0x38) addr:0x0207c014 func_ov000_0207c0ac kind:function(thumb,size=0x20) addr:0x0207c04c func_ov000_0207c0cc kind:function(thumb,size=0x24) addr:0x0207c06c -func_ov000_0207c0f0 kind:function(thumb,size=0x28) addr:0x0207c090 +_ZN18UnkStruct_020ec7dc19func_ov000_0207c0f0Ei kind:function(thumb,size=0x28) addr:0x0207c090 func_ov000_0207c118 kind:function(thumb,size=0x58) addr:0x0207c0b8 _ZN18UnkStruct_020ec7dc19func_ov000_0207c170Ev kind:function(thumb,size=0x1e) addr:0x0207c110 func_ov000_0207c190 kind:function(thumb,size=0x1e) addr:0x0207c130 @@ -3220,11 +3220,11 @@ func_ov000_020ce914 kind:function(arm,size=0x5c) addr:0x020ce8b4 func_ov000_020ce970 kind:function(arm,size=0xcc) addr:0x020ce910 func_ov000_020cea3c kind:function(arm,size=0x44) addr:0x020ce9dc func_ov000_020cea80 kind:function(arm,size=0x4c) addr:0x020cea20 -func_ov000_020ceacc kind:function(arm,size=0x58) addr:0x020cea6c +_ZN18UnkStruct_027e0ffc19func_ov000_020ceaccEiP5Vec3pi kind:function(arm,size=0x58) addr:0x020cea6c func_ov000_020ceb24 kind:function(arm,size=0xa8) addr:0x020ceac4 _ZN18UnkStruct_027e0ffc19func_ov000_020cebccEjsi kind:function(arm,size=0x3c) addr:0x020ceb6c func_ov000_020cec08 kind:function(arm,size=0x58) addr:0x020ceba8 -func_ov000_020cec60 kind:function(arm,size=0x78) addr:0x020cec00 +_ZN18UnkStruct_027e0ffc19func_ov000_020cec60EtP5Vec3pP5Actori kind:function(arm,size=0x78) addr:0x020cec00 func_ov000_020cecd8 kind:function(arm,size=0x8c) addr:0x020cec78 _ZN18UnkStruct_027e0ffc19func_ov000_020ced64EP8Cylinderjj kind:function(arm,size=0x18) addr:0x020ced04 _ZN18UnkStruct_027e0ffc19func_ov000_020ced7cEP5Vec3piii kind:function(arm,size=0x40) addr:0x020ced1c @@ -3588,19 +3588,19 @@ func_ov000_020d6c5c kind:function(arm,size=0xd4) addr:0x020d6bfc func_ov000_020d6d30 kind:function(arm,size=0xe4) addr:0x020d6cd0 func_ov000_020d6e14 kind:function(arm,size=0x2c) addr:0x020d6db4 func_ov000_020d6e40 kind:function(arm,size=0x264) addr:0x020d6de0 -func_ov000_020d70a4 kind:function(arm,size=0xc8) addr:0x020d7044 -func_ov000_020d716c kind:function(arm,size=0x14) addr:0x020d710c +_ZN18UnkStruct_020eec6819func_ov000_020d70a4Eiii kind:function(arm,size=0xc8) addr:0x020d7044 +_ZN18UnkStruct_020eec6819func_ov000_020d716cEi kind:function(arm,size=0x14) addr:0x020d710c func_ov000_020d7180 kind:function(arm,size=0x20) addr:0x020d7120 func_ov000_020d71a0 kind:function(arm,size=0xc8) addr:0x020d7140 func_ov000_020d7268 kind:function(arm,size=0xc) addr:0x020d7208 func_ov000_020d7274 kind:function(arm,size=0x44) addr:0x020d7214 -func_ov000_020d72b8 kind:function(arm,size=0x70) addr:0x020d7258 +_ZN18UnkStruct_020eec6819func_ov000_020d72b8Ev kind:function(arm,size=0x70) addr:0x020d7258 func_ov000_020d7328 kind:function(arm,size=0x6c) addr:0x020d72c8 func_ov000_020d7394 kind:function(arm,size=0x28) addr:0x020d7334 -PlaySoundEffect kind:function(arm,size=0x34) addr:0x020d735c +_ZN18UnkStruct_020eec6815PlaySoundEffectEj kind:function(arm,size=0x34) addr:0x020d735c func_ov000_020d73f0 kind:function(arm,size=0x14) addr:0x020d7390 func_ov000_020d7404 kind:function(arm,size=0x20) addr:0x020d73a4 -func_ov000_020d7424 kind:function(arm,size=0xc) addr:0x020d73c4 +_ZN18UnkStruct_020eec6819func_ov000_020d7424Ev kind:function(arm,size=0xc) addr:0x020d73c4 func_ov000_020d7430 kind:function(arm,size=0x40) addr:0x020d73d0 func_ov000_020d7470 kind:function(arm,size=0x1c) addr:0x020d7410 func_ov000_020d748c kind:function(arm,size=0x20) addr:0x020d742c diff --git a/config/usa/arm9/overlays/ov009/symbols.txt b/config/usa/arm9/overlays/ov009/symbols.txt index 2975274d..06b4789e 100644 --- a/config/usa/arm9/overlays/ov009/symbols.txt +++ b/config/usa/arm9/overlays/ov009/symbols.txt @@ -147,7 +147,7 @@ func_ov009_02116230 kind:function(thumb,size=0x98) addr:0x021161b0 func_ov009_021162c8 kind:function(thumb,size=0x3c) addr:0x02116248 func_ov009_02116304 kind:function(thumb,size=0x5e) addr:0x02116284 _ZN18UnkStruct_027e077c19func_ov009_02116364Ev kind:function(arm,size=0x1d8) addr:0x021162e4 -func_ov009_0211653c kind:function(arm,size=0x30) addr:0x021164bc +_ZN18UnkStruct_027e077c19func_ov009_0211653cEv kind:function(arm,size=0x30) addr:0x021164bc func_ov009_0211656c kind:function(arm,size=0xb4) addr:0x021164ec func_ov009_02116620 kind:function(arm,size=0x44) addr:0x021165a0 func_ov009_02116664 kind:function(arm,size=0x80) addr:0x021165e4 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 03ac5f10..77a88d8f 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1377,11 +1377,11 @@ func_0202c58c kind:function(arm,size=0x28) addr:0x0202c574 func_0202c5b4 kind:function(arm,size=0x1c) addr:0x0202c59c func_0202c5d0 kind:function(arm,size=0x18) addr:0x0202c5b8 func_0202c5e8 kind:function(thumb,size=0x90) addr:0x0202c5d0 -func_0202c678 kind:function(thumb,size=0x24) addr:0x0202c660 -func_0202c69c kind:function(thumb,size=0x2c) addr:0x0202c684 +_ZN4Game13func_0202c678Ev kind:function(thumb,size=0x24) addr:0x0202c660 +_ZN4Game13func_0202c69cEv kind:function(thumb,size=0x2c) addr:0x0202c684 _ZN4Game11EndGameModeEv kind:function(thumb,size=0x74) addr:0x0202c6b0 _ZN4Game13StartGameModeEv kind:function(thumb,size=0x238) addr:0x0202c724 -_ZN4Game13func_0202c974Ev kind:function(thumb,size=0x8) addr:0x0202c95c +_ZN4Game13func_0202c974EPS_ kind:function(thumb,size=0x8) addr:0x0202c95c _ZN4Game13func_0202c97cEv kind:function(thumb,size=0x24) addr:0x0202c964 _ZN4Game3RunEv kind:function(arm,size=0x528) addr:0x0202c988 _ZN4Game13func_0202cec8Eii kind:function(thumb,size=0x6c) addr:0x0202ceb0 @@ -1462,16 +1462,16 @@ func_0202ece0 kind:function(thumb,size=0x34) addr:0x0202ecdc func_0202ed14 kind:function(arm,size=0x44) addr:0x0202ed10 func_0202ed58 kind:function(arm,size=0x164) addr:0x0202ed54 _ZN18UnkStruct_027e080c13func_0202eebcEi kind:function(arm,size=0x3c) addr:0x0202eeb8 -func_0202eef8 kind:function(arm,size=0x23c) addr:0x0202eef4 +_ZN18UnkStruct_027e080c13func_0202eef8Ev kind:function(arm,size=0x23c) addr:0x0202eef4 func_0202f134 kind:function(thumb,size=0x20) addr:0x0202f130 func_0202f154 kind:function(thumb,size=0x3e) addr:0x0202f150 func_0202f194 kind:function(thumb,size=0x5c) addr:0x0202f190 func_0202f1f0 kind:function(thumb,size=0x6c) addr:0x0202f1ec func_0202f25c kind:function(thumb,size=0x2c) addr:0x0202f258 func_0202f288 kind:function(thumb,size=0x24) addr:0x0202f284 -func_0202f2ac kind:function(arm,size=0x4c) addr:0x0202f2a8 +_ZN18UnkStruct_027e08e413func_0202f2acEv kind:function(arm,size=0x4c) addr:0x0202f2a8 func_0202f2f8 kind:function(arm,size=0x30) addr:0x0202f2f4 -func_0202f328 kind:function(arm,size=0x38) addr:0x0202f324 +_ZN18UnkStruct_027e08e413func_0202f328Ev kind:function(arm,size=0x38) addr:0x0202f324 func_0202f360 kind:function(thumb,size=0x14) addr:0x0202f35c func_0202f374 kind:function(thumb,size=0x7c) addr:0x0202f370 _ZN18UnkStruct_0206322013func_0202f3f0Ei kind:function(thumb,size=0x10) addr:0x0202f3ec @@ -1606,7 +1606,7 @@ func_020320ec kind:function(arm,size=0xec) addr:0x020320e8 func_020321d8 kind:function(arm,size=0xec) addr:0x020321d4 func_020322c4 kind:function(arm,size=0x40) addr:0x020322c0 func_02032304 kind:function(thumb,size=0x56) addr:0x02032300 -func_0203235c kind:function(arm,size=0x8c) addr:0x02032358 +_ZN18UnkStruct_0206889413func_0203235cEv kind:function(arm,size=0x8c) addr:0x02032358 func_020323e8 kind:function(thumb,size=0x48) addr:0x020323e4 func_02032430 kind:function(thumb,size=0x1a) addr:0x0203242c func_0203244c kind:function(thumb,size=0x3c) addr:0x02032448 @@ -1679,10 +1679,10 @@ _ZN18UnkStruct_02032f0c13func_02033c6cEv kind:function(arm,size=0x1c) addr:0x020 _ZN18UnkStruct_02032f0c13func_02033c88Ej kind:function(arm,size=0x34) addr:0x02033c44 _ZN18UnkStruct_02032f0c13func_02033cbcEPs kind:function(arm,size=0x70) addr:0x02033c78 _ZN18UnkStruct_02032e7cD0Ev kind:function(arm,size=0x14) addr:0x02033ce8 -func_02033d40 kind:function(arm,size=0x18) addr:0x02033cfc +_ZN18UnkStruct_027e0c3813func_02033d40Ev kind:function(arm,size=0x18) addr:0x02033cfc func_02033d58 kind:function(arm,size=0x18) addr:0x02033d14 _ZN18UnkStruct_027e0c3813func_02033d70Ei kind:function(arm,size=0x14) addr:0x02033d2c -func_02033d84 kind:function(arm,size=0xec) addr:0x02033d40 +_ZN18UnkStruct_027e0c3813func_02033d84EPt kind:function(arm,size=0xec) addr:0x02033d40 func_02033e70 kind:function(arm,size=0x1c) addr:0x02033e2c func_02033e8c kind:function(arm,size=0x30) addr:0x02033e48 func_02033ebc kind:function(arm,size=0x40) addr:0x02033e78 @@ -1776,8 +1776,8 @@ func_02035f2c kind:function(arm,size=0x10) addr:0x02035ee8 func_02035f3c kind:function(arm,size=0x20) addr:0x02035ef8 func_02035f5c kind:function(arm,size=0xb0) addr:0x02035f18 func_0203600c kind:function(thumb,size=0x8) addr:0x02035fc8 -func_02036014 kind:function(thumb,size=0x3c) addr:0x02035fd0 -func_02036050 kind:function(thumb,size=0x22) addr:0x0203600c +_ZN18UnkStruct_027e0c5413func_02036014Ei kind:function(thumb,size=0x3c) addr:0x02035fd0 +_ZN18UnkStruct_027e0c5413func_02036050Ev kind:function(thumb,size=0x22) addr:0x0203600c func_02036074 kind:function(arm,size=0x18) addr:0x02036030 func_0203608c kind:function(arm,size=0x1c) addr:0x02036048 func_020360a8 kind:function(arm,size=0x28) addr:0x02036064 @@ -1786,7 +1786,7 @@ func_0203611c kind:function(thumb,size=0x24) addr:0x020360d8 func_02036140 kind:function(thumb,size=0x34) addr:0x020360fc _ZN18UnkStruct_027e0c5413func_02036174Ev kind:function(arm,size=0x5c) addr:0x02036130 _ZN18UnkStruct_027e0c5413func_020361d0Ev kind:function(arm,size=0x70) addr:0x0203618c -func_02036240 kind:function(arm,size=0x170) addr:0x020361fc +_ZN18UnkStruct_027e0c5413func_02036240EPt kind:function(arm,size=0x170) addr:0x020361fc _ZN18UnkStruct_027e0c5413func_020363b0Ev kind:function(arm,size=0x18) addr:0x0203636c func_020363c8 kind:function(arm,size=0x74) addr:0x02036384 _ZN14MessageManager13func_0203643cEPiPS_j kind:function(arm,size=0x54) addr:0x020363f8 @@ -1807,7 +1807,7 @@ _ZN14MessageManager13func_02036888EP18UnkStruct_020386d8 kind:function(arm,size= _ZN14MessageManager13func_020368f4EP18UnkStruct_02037750 kind:function(arm,size=0x18) addr:0x020368b0 _ZN14MessageManager13func_0203690cEi kind:function(arm,size=0x2b0) addr:0x020368c8 _ZN14MessageManager13func_02036bbcEv kind:function(arm,size=0x94) addr:0x02036b78 -_ZN14MessageManager13func_02036c50Ei kind:function(arm,size=0x54) addr:0x02036c0c +_ZN14MessageManager13func_02036c50EPt kind:function(arm,size=0x54) addr:0x02036c0c _ZN14MessageManager13func_02036ca4Ei kind:function(arm,size=0x40) addr:0x02036c60 _ZN14MessageManager13func_02036ce4EP18UnkStruct_020386d8i kind:function(arm,size=0x4c) addr:0x02036ca0 _ZN14MessageManager13func_02036d30EP18UnkStruct_02037750 kind:function(arm,size=0x1c) addr:0x02036cec @@ -1913,7 +1913,7 @@ _ZN18UnkStruct_020397f8C1Ev kind:function(thumb,size=0x244) addr:0x020397b4 _ZN18UnkStruct_020397f88vfunc_4cEv kind:function(thumb,size=0x20) addr:0x020399f8 _ZN18UnkStruct_020397f88vfunc_2cEv kind:function(arm,size=0x24c) addr:0x02039a18 _ZN18UnkStruct_020397f813func_02039ca8Ev kind:function(arm,size=0x24) addr:0x02039c64 -_ZN18UnkStruct_020397f88vfunc_3cEv kind:function(arm,size=0xa8) addr:0x02039c88 +_ZN18UnkStruct_020397f88vfunc_3cEPt kind:function(arm,size=0xa8) addr:0x02039c88 _ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0x414) addr:0x02039d30 _ZN18UnkStruct_020397f813func_0203a188Eii kind:function(arm,size=0x138) addr:0x0203a144 _ZN18UnkStruct_020397f813func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x0203a27c @@ -1948,7 +1948,7 @@ _ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x40) addr:0x0203c2cc _ZN18UnkStruct_020397f88vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203c30c _ZN13MsgProc_Type2C1Eisi kind:function(thumb,size=0x44) addr:0x0203c314 _ZN13MsgProc_Type213func_0203c39cEii kind:function(thumb,size=0x78) addr:0x0203c358 -_ZN13MsgProc_Type28vfunc_3CEi kind:function(arm,size=0x4c) addr:0x0203c3d0 +_ZN13MsgProc_Type28vfunc_3CEPt kind:function(arm,size=0x4c) addr:0x0203c3d0 _ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c41c _ZN13MsgProc_Type213func_0203c4acEii kind:function(arm,size=0x118) addr:0x0203c468 _ZN13MsgProc_Type28vfunc_14Eii kind:function(arm,size=0x18) addr:0x0203c580 @@ -2011,7 +2011,7 @@ func_0203d5dc kind:function(thumb,size=0x24) addr:0x0203d598 func_0203d600 kind:function(arm,size=0x4c) addr:0x0203d5bc _ZN17UnkClass_027e0cbc13func_0203d64cEi kind:function(arm,size=0x18) addr:0x0203d608 _ZN17UnkClass_027e0cbc13func_0203d664Ei kind:function(arm,size=0x18) addr:0x0203d620 -func_0203d67c kind:function(arm,size=0x1c) addr:0x0203d638 +_ZN17UnkClass_027e0cbc13func_0203d67cEPt kind:function(arm,size=0x1c) addr:0x0203d638 func_0203d698 kind:function(thumb,size=0x38) addr:0x0203d654 _ZN17UnkClass_027e0cbc13func_0203d6d0Ev kind:function(thumb,size=0x6) addr:0x0203d68c func_0203d6d8 kind:function(thumb,size=0x58) addr:0x0203d694 @@ -2034,7 +2034,7 @@ _ZN18UnkStruct_0203dae08vfunc_14Eii kind:function(arm,size=0x48) addr:0x0203dc70 _ZN18UnkStruct_0203dae013func_0203dcfcEhiii kind:function(arm,size=0xf0) addr:0x0203dcb8 _ZN18UnkStruct_0203dae013func_0203ddecEv kind:function(arm,size=0x10) addr:0x0203dda8 _ZN18UnkStruct_0203dae013func_0203ddfcEv kind:function(arm,size=0x18) addr:0x0203ddb8 -_ZN18UnkStruct_02038aa013func_0203de14Ei kind:function(arm,size=0x10) addr:0x0203ddd0 +_ZN18UnkStruct_02038aa013func_0203de14EPt kind:function(arm,size=0x10) addr:0x0203ddd0 _ZN18UnkStruct_0203dae013func_0203de24Ev kind:function(arm,size=0x34) addr:0x0203dde0 _ZN18UnkStruct_0203dae013func_0203de58Ei kind:function(arm,size=0x208) addr:0x0203de14 _ZN18UnkStruct_0203dae08vfunc_10Eji kind:function(arm,size=0x30) addr:0x0203e01c @@ -2096,7 +2096,7 @@ func_0203f704 kind:function(arm,size=0xc8) addr:0x0203f6c0 func_0203f7cc kind:function(arm,size=0xd0) addr:0x0203f788 func_0203f89c kind:function(arm,size=0x68) addr:0x0203f858 _ZN18UnkStruct_02075dac13func_0203f904Ev kind:function(thumb,size=0x70) addr:0x0203f8c0 -func_0203f974 kind:function(arm,size=0x44) addr:0x0203f930 +_ZN18UnkStruct_02075dac13func_0203f974Ev kind:function(arm,size=0x44) addr:0x0203f930 func_0203f9b8 kind:function(arm,size=0x9c) addr:0x0203f974 func_0203fa54 kind:function(arm,size=0x2c) addr:0x0203fa10 func_0203fa80 kind:function(arm,size=0x30) addr:0x0203fa3c diff --git a/include/DTCM/UnkStruct_027e077c.hpp b/include/DTCM/UnkStruct_027e077c.hpp index f7f2cf32..1e5a2aff 100644 --- a/include/DTCM/UnkStruct_027e077c.hpp +++ b/include/DTCM/UnkStruct_027e077c.hpp @@ -15,6 +15,7 @@ public: bool func_0202e740(unk32 param1); void func_ov009_02116364(); + void func_ov009_0211653c(); inline volatile unk32 GetUnk0() const { return mUnk_0; diff --git a/include/DTCM/UnkStruct_027e080c.hpp b/include/DTCM/UnkStruct_027e080c.hpp index 8c021336..66fa5c94 100644 --- a/include/DTCM/UnkStruct_027e080c.hpp +++ b/include/DTCM/UnkStruct_027e080c.hpp @@ -19,11 +19,12 @@ public: /* 02 */ u8 mUnk_02; /* 04 */ unk32 mUnk_04; /* 08 */ unk32 mUnk_08; - /* 0c */ unk8 mUnk_0c[0x4]; + /* 0c */ unk32 mUnk_0c; /* 10 */ UnkStruct_027e080c_010 mUnk_10[2]; /* d8 */ void func_0202eebc(unk32); + unk32 func_0202eef8(); }; extern UnkStruct_027e080c data_027e080c; diff --git a/include/DTCM/UnkStruct_027e08e4.hpp b/include/DTCM/UnkStruct_027e08e4.hpp new file mode 100644 index 00000000..1c4bb934 --- /dev/null +++ b/include/DTCM/UnkStruct_027e08e4.hpp @@ -0,0 +1,11 @@ +#pragma once + +#include "global.h" +#include "types.h" + +struct UnkStruct_027e08e4 { + void func_0202f2ac(); + unk32 func_0202f328(); +}; + +extern UnkStruct_027e08e4 data_027e08e4; diff --git a/include/DTCM/UnkStruct_027e08f8.hpp b/include/DTCM/UnkStruct_027e08f8.hpp index c4f91b86..f7ac25a0 100644 --- a/include/DTCM/UnkStruct_027e08f8.hpp +++ b/include/DTCM/UnkStruct_027e08f8.hpp @@ -3,6 +3,10 @@ #include "types.h" struct UnkStruct_027e08f8 { + /* 0 */ bool mUnk_0; + /* 1 */ bool mUnk_1; + /* 2 */ + void func_0202f9a0(unk32); }; diff --git a/include/DTCM/UnkStruct_027e0c38.hpp b/include/DTCM/UnkStruct_027e0c38.hpp index 8957bc80..e42d0d10 100644 --- a/include/DTCM/UnkStruct_027e0c38.hpp +++ b/include/DTCM/UnkStruct_027e0c38.hpp @@ -15,6 +15,7 @@ public: void func_02033d70(s32 param1); void func_02033d40(); + void func_02033d84(u16 *param0); }; extern "C" UnkStruct_027e0c38 data_027e0c38; diff --git a/include/DTCM/UnkStruct_027e0c54.hpp b/include/DTCM/UnkStruct_027e0c54.hpp index 57a5db1f..5f0c85b5 100644 --- a/include/DTCM/UnkStruct_027e0c54.hpp +++ b/include/DTCM/UnkStruct_027e0c54.hpp @@ -15,6 +15,7 @@ public: void func_02036050(); bool func_02036174(); bool func_020361d0(); + void func_02036240(u16 *param0); void func_020363b0(); }; diff --git a/include/DTCM/UnkStruct_027e0ffc.hpp b/include/DTCM/UnkStruct_027e0ffc.hpp index 571c3761..e8d5b4df 100644 --- a/include/DTCM/UnkStruct_027e0ffc.hpp +++ b/include/DTCM/UnkStruct_027e0ffc.hpp @@ -3,6 +3,7 @@ #include "global.h" #include "types.h" +#include "Actor/Actor.hpp" #include "Physics/Cylinder.hpp" struct UnkStruct_027e0ffc { @@ -22,7 +23,9 @@ struct UnkStruct_027e0ffc { /* 39 */ void func_ov000_020ce704(); + void func_ov000_020ceacc(unk32 param1, Vec3p *param2, unk32 param3); void func_ov000_020cebcc(u32 param1, unk16 param2, unk32 param3); + void func_ov000_020cec60(u16, Vec3p *, Actor *, unk32); void func_ov000_020ced64(Cylinder *param1, u32 param2, u32 param3); void func_ov000_020ced7c(Vec3p *param1, s32 param2, s32 param3, unk32 param4); }; diff --git a/include/Game/Game.hpp b/include/Game/Game.hpp index 53c03988..607d13a3 100644 --- a/include/Game/Game.hpp +++ b/include/Game/Game.hpp @@ -32,12 +32,12 @@ public: /* 00c */ unk8 mUnk_00c[0xc0]; /* 0cc */ FadeControl mFadeControl; /* 0f0 */ u16 mUnk_0f0; - /* 0f2 */ u16 mUnk_0f2; + /* 0f2 */ vu16 mUnk_0f2; /* 0f4 */ s32 mUnk_0f4; - /* 0f8 */ s32 mUnk_0f8; + /* 0f8 */ vs32 mUnk_0f8; /* 0fc */ u16 mUnk_0fc; /* 0fe */ u16 mUnk_0fe; - /* 100 */ unk8 mUnk_100; + /* 100 */ bool mUnk_100; /* 101 */ u8 mUnk_101; /* 102 */ bool mUnk_102; /* 103 */ u8 mUnk_103; @@ -46,12 +46,14 @@ public: Game(); ~Game(); + void func_0202c678(); + void func_0202c69c(); void EndGameMode(); bool StartGameMode(); - void func_0202c974(); + static void func_0202c974(Game *game); void func_0202c97c(); void Run(); - void func_0202cec8(s32 param1, unk32 param2); + bool func_0202cec8(s32 param1, bool param2); void func_0202cf34(); void func_0202cf44(); diff --git a/include/Message/MessageManager.hpp b/include/Message/MessageManager.hpp index d7cbc98e..221d6c31 100644 --- a/include/Message/MessageManager.hpp +++ b/include/Message/MessageManager.hpp @@ -58,7 +58,7 @@ public: bool func_020368f4(UnkStruct_02037750 *param_2); void func_0203690c(unk32 param_2); void func_02036bbc(void); - void func_02036c50(unk32 param_2); + void func_02036c50(u16 *param_2); void func_02036ca4(unk32 param_2); bool func_02036ce4(UnkStruct_020386d8 *param_2, unk32 param_3); bool func_02036d30(UnkStruct_02037750 *param_2); diff --git a/include/Message/MsgProc.hpp b/include/Message/MsgProc.hpp index 81497633..81cea949 100644 --- a/include/Message/MsgProc.hpp +++ b/include/Message/MsgProc.hpp @@ -79,10 +79,8 @@ extern "C" u32 func_01ff9b4c(unk32, unk32); extern "C" unk32 func_0203c084(void); extern "C" unk32 func_ov000_02079e04(void); extern "C" unk32 func_02016fcc(unk32); -extern "C" void func_02032304(unk32 *, char *, unk32, unk32, unk32); extern "C" unk32 func_0202d5b4(char *, char *, unk32, unk32, unk32); extern unk32 data_020691a0; -extern unk32 *data_02068894; extern unk32 data_02056af0; extern unk32 *data_02056a00; extern char *data_02057f08; // "MSP" @@ -95,6 +93,7 @@ struct Struct_027e0db0 { void func_ov000_0207b288(GameModeId modeId); void func_ov000_0207b378(unk32 param_1); + void func_ov000_0207b43c(); }; extern Struct_027e0db0 data_027e0db0; @@ -104,6 +103,7 @@ public: void func_0203d5c0(); void func_0203d64c(s32); void func_0203d664(s32); + void func_0203d67c(u16 *); void func_0203d6d0(); unk32 func_0203d7e0(unk32); unk32 func_0203d77c(unk32, s32, s32); diff --git a/include/Unknown/UnkStruct_02038aa0.hpp b/include/Unknown/UnkStruct_02038aa0.hpp index c0f31f16..b43a2908 100644 --- a/include/Unknown/UnkStruct_02038aa0.hpp +++ b/include/Unknown/UnkStruct_02038aa0.hpp @@ -144,7 +144,7 @@ public: unk32 func_0203cb5c(unk8, s16); void func_0203dcfc(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5); - unk32 func_0203de14(unk32); + unk32 func_0203de14(u16 *); void func_0203e090(void); void func_0203e1b0(unk32, unk32, unk32); diff --git a/include/Unknown/UnkStruct_020397f8.hpp b/include/Unknown/UnkStruct_020397f8.hpp index 668f1922..1448176a 100644 --- a/include/Unknown/UnkStruct_020397f8.hpp +++ b/include/Unknown/UnkStruct_020397f8.hpp @@ -90,7 +90,7 @@ public: /* 4c */ virtual void vfunc_4c(); /* 2c */ virtual void vfunc_2c(); void func_02039ca8(); - /* 3c */ virtual void vfunc_3c(unk32 param1); + /* 3c */ virtual void vfunc_3c(u16 *param1); /* 40 */ virtual void vfunc_40(s32 param1, s32 param2); void func_0203a188(s32 param1, s32 param2); // void func_0203a188(unk32 param_2, unk32 param_3, unk32 param_4); bool func_0203a2c0(); @@ -201,7 +201,7 @@ public: MsgProc_Type2(unk32 param_2, unk16 param_3, unk32 param_4); /* 00 */ virtual ~MsgProc_Type2(); /* 14 */ /* func_0203c5c4 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; - /* 3c */ /* func_0203c414 */ virtual void vfunc_3C(unk32 param_2) override; + /* 3c */ /* func_0203c414 */ virtual void vfunc_3C(u16 *param_2) override; /* 40 */ /* func_0203c460 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; /* 4c */ /* func_0203c39c */ virtual void vfunc_4C(void) override; // func_02039a3c? diff --git a/include/Unknown/UnkStruct_02068894.hpp b/include/Unknown/UnkStruct_02068894.hpp new file mode 100644 index 00000000..7a51e9b8 --- /dev/null +++ b/include/Unknown/UnkStruct_02068894.hpp @@ -0,0 +1,11 @@ +#pragma once + +#include "global.h" +#include "types.h" + +struct UnkStruct_02068894 { + void func_0203235c(); + void func_02032304(char *param1, unk32 param2, unk32 param3, unk32 param4); +}; + +extern UnkStruct_02068894 data_02068894; diff --git a/include/Unknown/UnkStruct_02075dac.hpp b/include/Unknown/UnkStruct_02075dac.hpp index 934a2919..3e933b5e 100644 --- a/include/Unknown/UnkStruct_02075dac.hpp +++ b/include/Unknown/UnkStruct_02075dac.hpp @@ -6,6 +6,7 @@ class UnkStruct_02075dac { public: void func_0203f904(); + void func_0203f974(); unk32 func_0203f9b8(void *); }; extern UnkStruct_02075dac data_02075dac; diff --git a/include/Unknown/UnkStruct_020eec68.hpp b/include/Unknown/UnkStruct_020eec68.hpp index d8bf62d4..4d13abc3 100644 --- a/include/Unknown/UnkStruct_020eec68.hpp +++ b/include/Unknown/UnkStruct_020eec68.hpp @@ -1,9 +1,11 @@ #pragma once -#include "Unknown/UnkStruct_func_0201f704.hpp" #include "global.h" #include "types.h" +#include "Sound/Sfx.hpp" +#include "Unknown/UnkStruct_func_0201f704.hpp" + struct UnkStruct_020eec68_0c { unk32 mUnk_00; @@ -31,6 +33,12 @@ public: UnkStruct_020eec68(); + void func_ov000_020d70a4(unk32 param1, unk32 param2, unk32 param3); + void func_ov000_020d716c(unk32 param1); + void func_ov000_020d72b8(); + void PlaySoundEffect(SfxId sfx); + unk32 func_ov000_020d7424(); + void func_ov008_021132cc(); }; diff --git a/include/types.h b/include/types.h index 06b45bbb..b5ca70bb 100644 --- a/include/types.h +++ b/include/types.h @@ -7,16 +7,28 @@ typedef unsigned long long u64; typedef unsigned int u32; typedef unsigned short u16; typedef unsigned char u8; +typedef volatile u64 vu64; +typedef volatile u32 vu32; +typedef volatile u16 vu16; +typedef volatile u8 vu8; typedef long long s64; typedef int s32; typedef short s16; typedef char s8; +typedef volatile s64 vs64; +typedef volatile s32 vs32; +typedef volatile s16 vs16; +typedef volatile s8 vs8; typedef s8 unk8; typedef s16 unk16; typedef s32 unk32; typedef s64 unk64; +typedef volatile unk8 vunk8; +typedef volatile unk16 vunk16; +typedef volatile unk32 vunk32; +typedef volatile unk64 vunk64; #ifndef __cplusplus typedef s32 bool; diff --git a/libs/nds/include/nds/gfx.h b/libs/nds/include/nds/gfx.h index 3992a4e1..dea3eca5 100644 --- a/libs/nds/include/nds/gfx.h +++ b/libs/nds/include/nds/gfx.h @@ -10,6 +10,8 @@ extern "C" { #define GFX_FIFO_SWAP_BUFFERS (*(volatile u32 *) 0x04000540) #define GFX_FIFO_VIEWPORT (*(volatile u32 *) 0x04000580) +#define REG_GFX_RAM_COUNT (*(volatile u16 *) 0x04000604) +#define REG_GFX_RAM_COUNT_2 (*(volatile u16 *) 0x04000606) #define REG_VCOUNT (*(volatile u16 *) 0x04000006) #ifdef __cplusplus diff --git a/src/00_Core/Item/ItemManager.cpp b/src/00_Core/Item/ItemManager.cpp index e4201979..7b63966b 100644 --- a/src/00_Core/Item/ItemManager.cpp +++ b/src/00_Core/Item/ItemManager.cpp @@ -9,6 +9,7 @@ #include "Player/PlayerManager.hpp" #include "Save/AdventureFlags.hpp" #include "System/OverlayManager.hpp" +#include "Unknown/UnkStruct_020eec68.hpp" static const char *sShipPartTypes[] = {"anc", "bow", "hul", "can", "dco", "pdl", "fnl", "brg"}; @@ -1056,8 +1057,6 @@ THUMB void ItemManager::LoadDungeonItemModels() { } } -extern unk32 data_ov000_020eec68; -extern "C" void PlaySoundEffect(void *param1, SfxId sfx); THUMB void ItemManager::PlayItemFanfareSfx(ItemId item) { if (gItemManager->mMuteNextFanfare == true) { gItemManager->mMuteNextFanfare = false; @@ -1105,7 +1104,7 @@ THUMB void ItemManager::PlayItemFanfareSfx(ItemId item) { gItemManager->mFanfareSfx = SfxId_None; } - PlaySoundEffect(&data_ov000_020eec68, sfx); + data_ov000_020eec68.PlaySoundEffect(sfx); } THUMB bool ItemManager::HasShipPartPriceShown(ShipPart part, ShipType type) const { diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp index e6799530..69dcfc96 100644 --- a/src/00_Core/Map/MapManager.cpp +++ b/src/00_Core/Map/MapManager.cpp @@ -6,12 +6,14 @@ #include "Actor/Actor.hpp" #include "Actor/ActorManager.hpp" #include "Actor/ActorSpawner.hpp" +#include "DTCM/UnkStruct_027e077c.hpp" #include "DTCM/UnkStruct_027e0d38.hpp" #include "DTCM/UnkStruct_027e0fd4.hpp" #include "DTCM/UnkStruct_027e103c.hpp" #include "Player/PlayerBase.hpp" #include "Save/AdventureFlags.hpp" #include "Unknown/UnkStruct_02037750.hpp" +#include "Unknown/UnkStruct_020eec68.hpp" #include "stdio.h" extern bool func_01ffbe78(Vec3p *param1, Vec3p *param2, Vec3p *param3, Vec4p *param4); @@ -48,7 +50,6 @@ extern s32 func_ov000_0209d71c(s32 *param_1, s32 param_2); extern void func_ov000_020c3348(ActorSpawnOptions *param_1); extern void func_ov000_020d70a4(unk32 *param_1, unk32 param_2, unk32 param_3, unk32 param_4); extern void func_ov000_020d72b8(unk32 *param_1); -extern unk32 func_ov000_020d7424(unk32 *param_1); extern void func_ov004_021024c4(MapManager *param_1, s32 param_2, bool param_3, s32 param_4); extern void func_ov004_02102770(s32 *param_1); @@ -84,13 +85,6 @@ struct astruct_16 { /* 2c */ }; // What is this struct? -struct UnkStruct_027e077c { - /* 00 */ unk32 mUnk_00; - /* 04 */ unk32 mUnk_04; - /* 08 */ unk16 mUnk_08; - /* 0a */ unk8 mUnk_0a; -}; - class Case_0 : public MapBase { public: char pad[0x790 - 0x1B0]; @@ -112,7 +106,6 @@ public: virtual ~Case_Default() override; }; -extern UnkStruct_027e077c *data_027e077c; extern unk32 *data_027e0c68; extern u32 *data_027e0ce0[]; extern UnkStruct_0202e894 *data_027e0ce4; @@ -128,7 +121,6 @@ extern UnkStruct_027e103c *data_027e103c; extern unk32 *data_ov000_020e24a4; extern MapManager_Unk2 data_ov000_020e24c8[]; extern MapManager_Unk2 data_ov000_020e24e8[]; -extern unk32 data_ov000_020eec68; extern unk32 data_ov015_02190458; MapManager::MapManager() { @@ -446,19 +438,19 @@ ARM void MapManager::func_ov00_02082808(bool param_2) { if (iVar2 == 0) { func_ov015_021849a4(&data_ov015_02190458); } - func_ov000_020d70a4(&data_ov000_020eec68, iVar1, 0, 0x7f); + data_ov000_020eec68.func_ov000_020d70a4(iVar1, 0, 0x7f); } else { - iVar2 = func_ov000_020d7424(&data_ov000_020eec68); + iVar2 = data_ov000_020eec68.func_ov000_020d7424(); if (iVar1 == iVar2) { return; } - func_ov000_020d70a4(&data_ov000_020eec68, iVar1, 0, 0x7f); + data_ov000_020eec68.func_ov000_020d70a4(iVar1, 0, 0x7f); } iVar1 = data_027e0d38->mUnk_0c.func_ov000_020a5e9c(); if (iVar1 == 0) { return; } - func_ov000_020d72b8(&data_ov000_020eec68); + data_ov000_020eec68.func_ov000_020d72b8(); } ARM s32 MapManager::MapData_vfunc_7c(s32 param_1, unk32 *param_2, s32 param_3, short param_4[4]) { @@ -2390,8 +2382,8 @@ void MapManager::func_ov00_0208583c(MapManager *param_1, Vec3p *param_2, unk32 p if (piVar1 == NULL) { return; } - if (data_027e077c->mUnk_00 == 1) { - if (data_027e077c->mUnk_04 == 1) { + if (data_027e077c.mUnk_0 == 1) { + if (data_027e077c.mUnk_4 == 1) { //(**(code **) (*piVar1 + 0x30))(piVar1, param_3); return; } diff --git a/src/05/Player/LinkStateMove_05.cpp b/src/05/Player/LinkStateMove_05.cpp index dbf69656..805685b3 100644 --- a/src/05/Player/LinkStateMove_05.cpp +++ b/src/05/Player/LinkStateMove_05.cpp @@ -1,4 +1,5 @@ #include "DTCM/UnkStruct_027e0d38.hpp" +#include "DTCM/UnkStruct_027e0ffc.hpp" #include "Game/Game.hpp" #include "Player/LinkStateDamage.hpp" #include "Player/LinkStateFollow.hpp" @@ -52,7 +53,6 @@ static const volatile q20 data_ov005_021123b8 = FLOAT_TO_Q20(15.0); extern LinkStateFollow *GetLinkStateFollow(); extern "C" bool Lerp(s32 *pValue, s32 dest, s32 factor, unk32 param4, u32 step); -extern unk32 data_027e0ffc; extern "C" void func_ov000_020ceacc(unk32 *param1, unk32 param2, Vec3p *param3, unk32 param4); ARM void LinkStateMove::vfunc_1c() { Actor *grabActor = this->GetGrabActor(); @@ -169,7 +169,7 @@ ARM void LinkStateMove::vfunc_1c() { } else if (mUnk_10 > 0) { *(unk16 *) ((u32) this->func_ov00_020a8d40() + 0xa8) = 0x4CD; if (mUnk_10 == 0x19) { - func_ov000_020ceacc(&data_027e0ffc, 0x23D, this->GetPlayerPos(), 0); + data_027e0ffc.func_ov000_020ceacc(0x23D, this->GetPlayerPos(), 0); } mUnk_10 -= 1; } else { diff --git a/src/Main/Game/Game.cpp b/src/Main/Game/Game.cpp index b88ab53d..d702f191 100644 --- a/src/Main/Game/Game.cpp +++ b/src/Main/Game/Game.cpp @@ -7,6 +7,7 @@ #include "DTCM/UnkStruct_027e05f8.hpp" #include "DTCM/UnkStruct_027e077c.hpp" #include "DTCM/UnkStruct_027e080c.hpp" +#include "DTCM/UnkStruct_027e08e4.hpp" #include "DTCM/UnkStruct_027e08f8.hpp" #include "DTCM/UnkStruct_027e08fc.hpp" #include "DTCM/UnkStruct_027e0c38.hpp" @@ -24,25 +25,23 @@ #include "System/Random.hpp" #include "Unknown/UnkStruct_0203dae0.hpp" #include "Unknown/UnkStruct_02063220.hpp" +#include "Unknown/UnkStruct_02068894.hpp" #include "Unknown/UnkStruct_02075dac.hpp" #include "Unknown/UnkStruct_020ec7dc.hpp" #include "Unknown/UnkStruct_020ee734.hpp" +#include "Unknown/UnkStruct_020eec68.hpp" #include "Unknown/UnkStruct_027e0d54.hpp" #include "Unknown/UnkStruct_027e0dbc.hpp" -#define FRAME_COUNTER (*(u32 *) 0x027ffc3c) +#define FRAME_COUNTER (*(vu32 *) 0x027ffc3c) #define REG_POWER_CNT (*(u16 *) 0x04000304) #define REG_DISPCNT_SUB (*(volatile u32 *) 0x04001000) -#define GAME_MODE_DATA(id) ((GameModeData *) (((u8 *) &gGameModes) + ((id) * sizeof(GameModeData)))) - extern unk32 data_02068ed0; extern unk32 data_02068e64; -extern unk32 data_02062d4c; extern unk32 data_020683f4; extern unk32 data_02063e4c; extern unk32 data_02068780; -extern unk32 data_027e08e4; extern bool data_027e0f8c; extern unk32 data_ov009_0211e0c0; extern unk32 data_ov010_0211e960; @@ -154,6 +153,18 @@ const GameModeData gGameModes[] = { }, }; +extern "C" void func_02005a30(u16, u16, u16, u16, u16); +THUMB void Game::func_0202c678() { + mUnk_0fc = mUnk_0fe; + func_02005a30(mUnk_0fc, 31, 0x7fff, 0, 0); +} + +THUMB void Game::func_0202c69c() { + bool bVar1 = (mModeId == GameModeId_Adventure) || (mModeId == GameModeId_Battle); + mUnk_0fe = bVar1 ? 0x7f72 : 0; + this->func_0202c678(); +} + extern "C" void func_ov000_020d6488(unk32 *param0); extern "C" void func_0203d14c(unk32 *param0); extern "C" void func_020355e4(unk32 *param0, unk32 param1); @@ -173,9 +184,23 @@ THUMB void Game::EndGameMode() { return; } +struct SchedulerTask { + /* 0 */ void (*mFunc)(); + /* 4 */ void *mObject; + /* 8 */ SchedulerTask *mNext; + /* c */ +}; + +SchedulerTask data_02062d40; +unk8 data_02062d4c[0xd4]; + +inline const GameModeData *GetGameMode(GameModeId id) { + return &gGameModes[id]; +} + extern "C" void func_0202c0cc(); extern "C" void func_0202c128(unk32 param1, u16 param2); -extern "C" void func_02017cb0(unk32 *param0, unk32 param1); +extern "C" void func_02017cb0(unk8 *param0, unk32 param1); extern "C" void func_02031024(unk32 *param0); extern "C" void Fill16(int value, unsigned short *dst, int size); extern "C" void func_ov000_0207c0f0(unk32 *param0, unk32 param1); @@ -187,6 +212,7 @@ extern "C" void FlushGfxQueue(); extern "C" void func_0200eec8(); extern "C" void func_02005778(); extern "C" void func_02003a54(); +extern "C" void _ZN18UnkStruct_027e05f8C1Ev(UnkStruct_027e05f8 *); THUMB bool Game::StartGameMode() { func_0202c0cc(); @@ -196,18 +222,19 @@ THUMB bool Game::StartGameMode() { mUnk_0fe = uVar3; mUnk_0fc = mUnk_0fe; func_0202c128(1, mUnk_0fc); - func_02017cb0(&data_02062d4c, 0xc); + func_02017cb0(data_02062d4c, 0xc); mUnk_0f0 = 0; mUnk_0f4 = 0; mUnk_101 = 0; - mUnk_103 = GAME_MODE_DATA(mModeId)->mUnk_03; - mUnk_0f2 = GAME_MODE_DATA(mModeId)->mUnk_00; + mUnk_103 = GetGameMode(mModeId)->mUnk_03; + mUnk_0f2 = GetGameMode(mModeId)->mUnk_00; func_02031024(&data_020683f4); data_027e077c.Init(0); Fill16(0, (u16 *) &data_027e0d04, 6); data_027e0c38.func_02033d40(); - data_027e05f8 = UnkStruct_027e05f8(); + // HACK to rerun the constructor + _ZN18UnkStruct_027e05f8C1Ev(&data_027e05f8); if (gOverlayManager.mLoadedOverlays[0] != OverlayId_None) { data_ov000_020ec7dc.func_ov000_0207c0f0(mModeId); gTouchControl.Init(); @@ -230,7 +257,7 @@ THUMB bool Game::StartGameMode() { data_027e0dbc.func_ov000_0207b988(mModeId); } - mMode = GAME_MODE_DATA(mModeId)->mModeCreateFunc(mModeId); + mMode = GetGameMode(mModeId)->mModeCreateFunc(mModeId); mUnk_102 = 0; data_027e0cbc.func_0203d6d0(); @@ -245,8 +272,7 @@ THUMB bool Game::StartGameMode() { } func_02003a54(); - u8 unk1 = GAME_MODE_DATA(mModeId)->mUnk_03; - if (unk1 != 0) { + if (GetGameMode(mModeId)->mUnk_03 != 0) { REG_DISPCNT_SUB |= 0x10000; } else { REG_DISPCNT_SUB &= ~0x10000; @@ -256,18 +282,22 @@ THUMB bool Game::StartGameMode() { return mFadeControl.func_0202abdc(0x20, 0); } -THUMB void Game::func_0202c974() { - this->func_0202cf34(); +THUMB void Game::func_0202c974(Game *game) { + game->func_0202cf34(); } -THUMB void Game::func_0202c97c() {} +extern "C" void func_0200b934(SchedulerTask *param0); +THUMB void Game::func_0202c97c() { + data_02062d40.mFunc = (void (*)()) &Game::func_0202c974; + data_02062d40.mObject = (void *) &gGame; + func_0200b934(&data_02062d40); +} extern "C" void func_0200a440(); extern "C" void func_020310fc(unk32 *param0); extern "C" void func_02025c7c(unk32 *param0); extern "C" void func_020363c8(u16 *param0, UnkStruct_027e0c54 *param1); extern "C" void func_02025d2c(); -extern "C" void func_0202f2ac(unk32 *param0); extern "C" bool func_0202f328(unk32 *param0); ARM void Game::Run() { bool bVar2; @@ -293,7 +323,7 @@ ARM void Game::Run() { } data_027e05f8.func_0202adf4(this->mUnk_0f2, bVar2); data_027e08f8.func_0202f9a0(0); - bVar6 = data_027e080c.mUnk_04 == 3 || data_027e080c.mUnk_10[0].mUnk_00 == 3; + bVar6 = data_027e080c.mUnk_04 == 3 || data_027e080c.mUnk_08 == 3; data_027e080c.func_0202eebc(this->mUnk_0f2); data_027e0d04.func_0203fe00(); data_027e0c38.func_02033d70(bVar2); @@ -320,7 +350,7 @@ ARM void Game::Run() { data_ov000_020ee734.func_ov000_020d64ac(); } } - if (bVar6) { + if (!bVar6) { gFadeController.ProcessFade((u32) this->mUnk_0f2); if ((this->mUnk_101 == 0) && (ov00Loaded)) { data_027e0e2c.func_ov000_0207be84(bVar2); @@ -352,26 +382,42 @@ ARM void Game::Run() { data_027e103c->func_ov005_02103e58(&this->mUnk_0f0); } func_02025d2c(); - bool unk = (this->mUnk_0f2 >= 1); - bVar2 = (s32) (this->mUnk_0f2 - (FRAME_COUNTER - this->mUnk_0f8) - 1) > 0; - if (unk && bVar2) { + u16 uVar5 = this->mUnk_0f2; + bool bVar6 = false; + if (uVar5 > 1) { + u32 frameCounter = FRAME_COUNTER; + u32 unk_0f8 = this->mUnk_0f8; + s32 iVar7 = frameCounter - unk_0f8; + uVar5 = ((s32) (mUnk_0f2 - iVar7 - 1) > 0); + if (uVar5 != 0) { + bVar6 = true; + } + } + if (bVar6) { do { if ((s32) REG_VCOUNT < 0xb0) { break; } } while ((s32) REG_VCOUNT <= 0xc5); - bVar2 = (u32) this->mUnk_0f2 - (FRAME_COUNTER - this->mUnk_0f8); - while ((0 < bVar2 + -1) ? 1 : 0) { - func_0202f2ac(&data_027e08e4); - bVar2 = (u32) this->mUnk_0f2 - (FRAME_COUNTER - this->mUnk_0f8); + u32 frameCounter = FRAME_COUNTER; + u32 unk_0f8 = this->mUnk_0f8; + s32 iVar7 = frameCounter - unk_0f8; + bool bVar3 = (s32) (this->mUnk_0f2 - iVar7 - 1) > 0; + while (bVar3 > 0) { + data_027e08e4.func_0202f2ac(); + + frameCounter = FRAME_COUNTER; + unk_0f8 = this->mUnk_0f8; + iVar7 = frameCounter - unk_0f8; + bVar3 = (s32) (this->mUnk_0f2 - iVar7 - 1) > 0; } } uVar4 = OS_DisableInterrupts_Irq(); - this->mUnk_100 = 1; + this->mUnk_100 = true; GFX_FIFO_SWAP_BUFFERS = 3; OS_RestoreInterrupts(uVar4); - func_0202f2ac(&data_027e08e4); - this->mUnk_100 = 0; + data_027e08e4.func_0202f2ac(); + this->mUnk_100 = false; this->mUnk_0f8 = FRAME_COUNTER; if (gOverlayManager.mLoadedOverlays[0] != -1) { switch (data_027e0d54.mUnk_0f) { @@ -384,8 +430,8 @@ ARM void Game::Run() { } } } while (nextGameMode == 0); - while (func_0202f328(&data_027e08e4)) { - func_0202f2ac(&data_027e08e4); + while (data_027e08e4.func_0202f328()) { + data_027e08e4.func_0202f2ac(); } FlushGfxQueue(); this->EndGameMode(); @@ -395,7 +441,69 @@ ARM void Game::Run() { } while (true); } -THUMB void Game::func_0202cec8(s32 param1, unk32 param2) {} -THUMB void Game::func_0202cf34() {} -ARM void Game::func_0202cf44() {} -ARM Game::~Game() {} +THUMB bool Game::func_0202cec8(s32 param1, bool param2) { + bool result = false; + if (mFadeControl.func_0202abf4(32, 0)) { + mUnk_102 = param2; + if (param1 != 0) { + mFadeControl.mUnk_20 = false; + } else { + mFadeControl.mUnk_20 = true; + } + gFadeController.func_0202d77c(&mFadeControl); + if (gOverlayManager.mLoadedOverlays[0] != OverlayId_None) { + data_ov000_020eec68.func_ov000_020d716c(32); + data_027e0ffc.mUnk_14 = -1; + } + result = true; + } + return result; +} + +THUMB void Game::func_0202cf34() { + if (mMode) { + mMode->vfunc_18(); + } +} + +extern "C" void func_02017cd0(); +ARM void Game::func_0202cf44() { + while (true) { + if (mUnk_100) { + mUnk_0f4 += 1; + while (REG_GFX_RAM_COUNT_2 != 0) { + } + func_02005778(); + func_02017cd0(); + if (mUnk_0fc != mUnk_0fe) { + this->func_0202c678(); + } + if (data_027e080c.func_0202eef8()) { + data_027e08f8.mUnk_1 = true; + } else { + data_027e0c54.func_02036240(&mUnk_0f0); + data_027e0c38.func_02033d84(&mUnk_0f0); + mMode->vfunc_0c(&mUnk_0f0); + gMessageManager.func_02036c50(&mUnk_0f0); + if ((s32) (data_027e080c.mUnk_04 == 3 || data_027e080c.mUnk_08 == 3) == 0) { + gFadeController.SetScreenBrightness(mUnk_103); + } + data_027e0cbc.func_0203d67c(&mUnk_0f0); + if (gOverlayManager.mLoadedOverlays[0] != OverlayId_None) { + data_027e0db0.func_ov000_0207b43c(); + } + if (mModeId == 2) { + data_027e077c.func_ov009_0211653c(); + } + data_02068894.func_0203235c(); + data_02075dac.func_0203f974(); + } + mUnk_100 = false; + } + data_027e08e4.func_0202f2ac(); + } +} + +ARM Game::~Game() { + mFadeControl.Unregister(); +} diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 705b773b..bf1e30ca 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -1,6 +1,7 @@ #include "Message/MessageManager.hpp" #include "Actor/ActorManager.hpp" #include "DTCM/UnkStruct_027e0c54.hpp" +#include "DTCM/UnkStruct_027e0ffc.hpp" #include "Game/Game.hpp" #include "Player/TouchControl.hpp" #include "System/SysNew.hpp" @@ -15,11 +16,6 @@ extern UnkStruct_MsgProc_Base_unk_2C *data_02068e8c; extern u16 data_02056918[]; extern ActorTypeId data_0205691c[]; -struct UnkStruct_027e0ffc { - void func_ov000_020cec60(u16, Vec3p *, Actor *, unk32); -}; -extern UnkStruct_027e0ffc *data_027e0ffc; - // non-matching ARM void MessageManager::func_0203643c(u32 *param_1, MessageManager *param_2, u32 param_3) { BMGGroups *pBVar2 = param_2->pGroups; @@ -327,7 +323,7 @@ ARM void MessageManager::func_0203690c(unk32 param_2) { pActor = gActorManager->GetActor(&actorRef); if (pActor != NULL) { - data_027e0ffc->func_ov000_020cec60(data_02056918[this->mUnk_10], &pActor->mPos, pActor, 0); + data_027e0ffc.func_ov000_020cec60(data_02056918[this->mUnk_10], &pActor->mPos, pActor, 0); } } } @@ -354,7 +350,7 @@ ARM void MessageManager::func_02036bbc(void) { } } -ARM void MessageManager::func_02036c50(unk32 param_2) { +ARM void MessageManager::func_02036c50(u16 *param_2) { s32 i; for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { diff --git a/src/Main/Message/func_0203c358.cpp b/src/Main/Message/func_0203c358.cpp index ee80f15e..52366f78 100644 --- a/src/Main/Message/func_0203c358.cpp +++ b/src/Main/Message/func_0203c358.cpp @@ -53,7 +53,7 @@ THUMB void MsgProc_Type2::func_0203c39c(unk32 param_2, unk32 param_3) { } } -ARM void MsgProc_Type2::vfunc_3C(unk32 param_2) { +ARM void MsgProc_Type2::vfunc_3C(u16 *param_2) { if (this->mUnk_15c > 0 && this->mUnk_122 != 1) { if (this->func_0203de14(param_2) != 0) { this->vfunc_40(0, 0); diff --git a/src/Main/Unknown/UnkStruct_020397f8.cpp b/src/Main/Unknown/UnkStruct_020397f8.cpp index ef07a377..941f5d0b 100644 --- a/src/Main/Unknown/UnkStruct_020397f8.cpp +++ b/src/Main/Unknown/UnkStruct_020397f8.cpp @@ -7,6 +7,7 @@ #include "Message/MsgProc.hpp" #include "Player/TouchControl.hpp" #include "Save/AdventureFlags.hpp" +#include "Unknown/UnkStruct_02068894.hpp" extern "C" void func_ov000_020d0460(void *); extern "C" void func_0203efd8(void *, void *); @@ -174,7 +175,7 @@ ARM void UnkStruct_020397f8::func_02039ca8() { } } -ARM void UnkStruct_020397f8::vfunc_3c(unk32 param1) { +ARM void UnkStruct_020397f8::vfunc_3c(u16 *param1) { if (this->mUnk_15c > 0 && this->func_0203de14(param1) != 0) { if (this->mUnk_124->mUnk_29 != 3) { if ((this->mUnk_50 == 0) && func_ov000_02079e04() != 0) { @@ -814,7 +815,7 @@ ARM void UnkStruct_020397f8::vfunc_60(func_0203b410_param1 *param1, unk32 param2 if (this->mUnk_15e == 7) { uVar5 = func_0202d5b4(data_02057f08, data_02057eec, data_020691a0, 0xCC00, 1); - func_02032304(data_02068894, data_02057ed8, data_02056af0, 1, param3); + data_02068894.func_02032304(data_02057ed8, data_02056af0, 1, param3); iVar3 = func_02016fcc(uVar5); } else { if (this->func_02032fa4() != 0) {