Misc Stuff 2 (#33)

* match UnkStruct_ov000_020b4f84_00_Base

* lots of random stuff

* match other funcs from game.cpp

* data_02049a2c -> gGame, UnkStruct_02049a2c -> Game

* match operator new

* fix regressions

* fix some warnings

* another round of random things

* another round of random things 2

* complete slots column in overlays.md

* add scene indices

* gamemode stuff

* misc stuff

* fix build issues

* document random things

* fix regressions

* final round of random things (for now)
This commit is contained in:
Yanis
2026-02-18 22:23:42 +01:00
committed by GitHub
parent 0b367ecdfb
commit 804b25cb90
72 changed files with 1758 additions and 553 deletions
+14
View File
@@ -13,12 +13,23 @@ src/Main/Main.cpp:
src/Main/System/SysNew.cpp:
.text start:0x02011e10 end:0x0201200c
src/Main/System/SysFault.cpp:
.text start:0x020127f0 end:0x02012b00
src/Main/Game/Game.cpp:
.text start:0x02013370 end:0x0201373c
src/Main/Player/TouchControl.cpp:
.text start:0x02014124 end:0x020144a0
src/Main/System/OverlayManager.cpp:
.text start:0x020147fc end:0x02014944
src/Main/UnkStruct_ov000_020b4f84_00_Base.cpp:
complete
.text start:0x02015528 end:0x02015628
.data start:0x02043f00 end:0x02043f1c
src/Main/System/Random.cpp:
.text start:0x02016384 end:0x02016404
@@ -43,6 +54,9 @@ src/Main/Game/GameModeManagerBase.cpp:
.text start:0x0201847c end:0x02018bc4
.data start:0x0204405c end:0x0204409c
src/Main/func_020196fc.cpp:
.text start:0x020196fc end:0x02019934
libs/c/src/abort_exit_arm_eabi.c:
complete
.text start:0x020336e8 end:0x02033870
+12 -12
View File
@@ -59,8 +59,8 @@ func_ov000_02057608 kind:function(arm,size=0x8) addr:0x02057608
func_ov000_02057610 kind:function(arm,size=0x30) addr:0x02057610
func_ov000_02057640 kind:function(arm,size=0x48) addr:0x02057640
func_ov000_02057688 kind:function(arm,size=0x48) addr:0x02057688
func_ov000_020576d0 kind:function(arm,size=0x3c) addr:0x020576d0
func_ov000_0205770c kind:function(arm,size=0x14) addr:0x0205770c
_ZN4Game19func_ov000_020576d0Ev kind:function(arm,size=0x3c) addr:0x020576d0
_ZN4Game19func_ov000_0205770cEv kind:function(arm,size=0x14) addr:0x0205770c
func_ov000_02057720 kind:function(arm,size=0x14) addr:0x02057720
func_ov000_02057734 kind:function(arm,size=0x1c) addr:0x02057734
func_ov000_02057750 kind:function(thumb,size=0xc) addr:0x02057750
@@ -532,8 +532,8 @@ func_ov000_020625c4 kind:function(arm,size=0x120) addr:0x020625c4
func_ov000_020626e4 kind:function(arm,size=0x124) addr:0x020626e4
func_ov000_02062808 kind:function(arm,size=0x30) addr:0x02062808
func_ov000_02062838 kind:function(arm,size=0x8c) addr:0x02062838
func_ov000_020628c4 kind:function(arm,size=0x20) addr:0x020628c4
func_ov000_020628e4 kind:function(arm,size=0xcc) addr:0x020628e4
_ZN17struct_aStack_2d8C1Ev kind:function(arm,size=0x20) addr:0x020628c4
_ZN17struct_aStack_2d819func_ov000_020628e4Eiiiiiiiii kind:function(arm,size=0xcc) addr:0x020628e4
func_ov000_020629b0 kind:function(arm,size=0x8c) addr:0x020629b0
func_ov000_02062a3c kind:function(arm,size=0x8c) addr:0x02062a3c
_ZN29UnkSystem2_UnkSubSystem1_BaseC2Ev kind:function(arm,size=0x74) addr:0x02062ac8
@@ -718,7 +718,7 @@ func_ov000_02067804 kind:function(arm,size=0xdc) addr:0x02067804
func_ov000_020678e0 kind:function(arm,size=0x90) addr:0x020678e0
func_ov000_02067970 kind:function(arm,size=0xbc) addr:0x02067970
func_ov000_02067a2c kind:function(arm,size=0x34) addr:0x02067a2c
func_ov000_02067a60 kind:function(arm,size=0x44) addr:0x02067a60
_ZN17struct_aStack_2e0C1EP24UnkStruct_ov000_020b504ci kind:function(arm,size=0x44) addr:0x02067a60
func_ov000_02067aa4 kind:function(arm,size=0x7c) addr:0x02067aa4
func_ov000_02067b20 kind:function(arm,size=0x40) addr:0x02067b20
func_ov000_02067b60 kind:function(arm,size=0x54) addr:0x02067b60
@@ -749,14 +749,14 @@ func_ov000_020684c8 kind:function(arm,size=0x14) addr:0x020684c8
func_ov000_020684dc kind:function(arm,size=0x28) addr:0x020684dc
func_ov000_02068504 kind:function(arm,size=0x14) addr:0x02068504
func_ov000_02068518 kind:function(arm,size=0xb4) addr:0x02068518
func_ov000_020685cc kind:function(arm,size=0xb4) addr:0x020685cc
_ZN32UnkSystem2_UnkSubSystem5_Base_10C1Ev kind:function(arm,size=0xb4) addr:0x020685cc
_ZN32UnkSystem2_UnkSubSystem5_Base_10D1Ev kind:function(arm,size=0x4) addr:0x02068680
_ZN32UnkSystem2_UnkSubSystem5_Base_10D0Ev kind:function(arm,size=0x14) addr:0x02068684
func_ov000_02068698 kind:function(arm,size=0x4) addr:0x02068698
func_ov000_0206869c kind:function(arm,size=0x8) addr:0x0206869c
func_ov000_020686a4 kind:function(arm,size=0x34) addr:0x020686a4
_ZN17struct_aStack_2d819func_ov000_0206869cEv kind:function(arm,size=0x8) addr:0x0206869c
_ZN17struct_aStack_2d819func_ov000_020686a4Ei kind:function(arm,size=0x34) addr:0x020686a4
func_ov000_020686d8 kind:function(arm,size=0xb4) addr:0x020686d8
func_ov000_0206878c kind:function(arm,size=0xc) addr:0x0206878c
_ZN17struct_aStack_2d819func_ov000_0206878cEv kind:function(arm,size=0xc) addr:0x0206878c
func_ov000_02068798 kind:function(arm,size=0x1c) addr:0x02068798
func_ov000_020687b4 kind:function(arm,size=0x48) addr:0x020687b4
func_ov000_020687fc kind:function(arm,size=0x6c) addr:0x020687fc
@@ -770,7 +770,7 @@ func_ov000_02068bd4 kind:function(arm,size=0xac) addr:0x02068bd4
func_ov000_02068c80 kind:function(arm,size=0xb0) addr:0x02068c80
func_ov000_02068d30 kind:function(arm,size=0x20) addr:0x02068d30
func_ov000_02068d50 kind:function(arm,size=0x29c) addr:0x02068d50
func_ov000_02068fec kind:function(arm,size=0x1c8) addr:0x02068fec
_ZN17struct_aStack_2d819func_ov000_02068fecEv kind:function(arm,size=0x1c8) addr:0x02068fec
func_ov000_020691b4 kind:function(arm,size=0x24) addr:0x020691b4
func_ov000_020691d8 kind:function(arm,size=0x8) addr:0x020691d8
func_ov000_020691e0 kind:function(arm,size=0x3f4) addr:0x020691e0
@@ -799,7 +799,7 @@ func_ov000_02069e40 kind:function(arm,size=0xc) addr:0x02069e40
func_ov000_02069e4c kind:function(arm,size=0x50) addr:0x02069e4c
func_ov000_02069e9c kind:function(arm,size=0x78) addr:0x02069e9c
func_ov000_02069f14 kind:function(arm,size=0x44) addr:0x02069f14
func_ov000_02069f58 kind:function(arm,size=0x6c) addr:0x02069f58
_ZN24UnkStruct_ov000_020b50c019func_ov000_02069f58Ev kind:function(arm,size=0x6c) addr:0x02069f58
func_ov000_02069fc4 kind:function(arm,size=0x50) addr:0x02069fc4
func_ov000_0206a014 kind:function(arm,size=0x20) addr:0x0206a014
func_ov000_0206a034 kind:function(arm,size=0x50) addr:0x0206a034
@@ -3489,7 +3489,7 @@ data_ov000_020b20d0 kind:data(any) addr:0x020b20d0
data_ov000_020b20dc kind:data(any) addr:0x020b20dc
data_ov000_020b20e4 kind:data(any) addr:0x020b20e4
data_ov000_020b20ec kind:data(any) addr:0x020b20ec
data_ov000_020b20fc kind:data(any) addr:0x020b20f4
_ZTV32UnkSystem2_UnkSubSystem5_Base_10 kind:data(any) addr:0x020b20f4
data_ov000_020b2148 kind:data(any) addr:0x020b2148
data_ov000_020b214c kind:data(any) addr:0x020b214c
data_ov000_020b2150 kind:data(any) addr:0x020b2150
+4 -4
View File
@@ -1,7 +1,7 @@
_ZN8SysFault19func_ov018_020c4840Ev kind:function(arm,size=0x30) addr:0x020c4840
_ZN18UnkStruct_02049a2cC1Ev kind:function(arm,size=0x34) addr:0x020c4870
_ZN18UnkStruct_02049a2c19func_ov018_020c48a4Ei kind:function(arm,size=0x54) addr:0x020c48a4
_ZN18UnkStruct_02049a2c19func_ov018_020c48f8Ev kind:function(arm,size=0x58) addr:0x020c48f8
_ZN4GameC1Ev kind:function(arm,size=0x34) addr:0x020c4870
_ZN4Game19func_ov018_020c48a4Ev kind:function(arm,size=0x54) addr:0x020c48a4
_ZN4Game19func_ov018_020c48f8Ev kind:function(arm,size=0x58) addr:0x020c48f8
_ZN18UnkStruct_02049b18C1Ev kind:function(arm,size=0x30) addr:0x020c4950
_ZN18UnkStruct_02011e1019func_ov018_020c4980Ev kind:function(arm,size=0xdc) addr:0x020c4980
_ZN18UnkStruct_02011e1019func_ov018_020c4a5cEv kind:function(arm,size=0x6c) addr:0x020c4a5c
@@ -10,7 +10,7 @@ _ZN18UnkStruct_02049b80C1Ev kind:function(arm,size=0x2c) addr:0x020c4adc
_ZN21UnkStruct_02049b18_06C1Ev kind:function(arm,size=0x50) addr:0x020c4b08
_ZN21UnkStruct_0204e64c_00C1Ev kind:function(arm,size=0x2c) addr:0x020c4b58
_ZN18UnkStruct_0204e64cC1Ev kind:function(arm,size=0x24) addr:0x020c4b84
_ZN18UnkStruct_02049a2c19func_ov018_020c4ba8Ev kind:function(arm,size=0x54) addr:0x020c4ba8
_ZN4Game19func_ov018_020c4ba8Ev kind:function(arm,size=0x54) addr:0x020c4ba8
_ZN15GameModeStartUpD1Ev kind:function(arm,size=0x20) addr:0x020c4bfc
_ZN15GameModeStartUpC1Ev kind:function(arm,size=0x180) addr:0x020c4c1c
_ZN15GameModeStartUp8vfunc_0CEv kind:function(arm,size=0xcc) addr:0x020c4d9c
+1 -1
View File
@@ -16,7 +16,7 @@ _ZN18TitleScreenManager8vfunc_18Ev kind:function(arm,size=0x34) addr:0x020c4b88
_ZN18TitleScreenManager8vfunc_24Ev kind:function(arm,size=0x20) addr:0x020c4bbc
_ZN18TitleScreenManager8vfunc_28EPc kind:function(arm,size=0x20) addr:0x020c4bdc
_ZN18TitleScreenManager8vfunc_2CEPc kind:function(arm,size=0x20) addr:0x020c4bfc
_ZN18TitleScreenManager8vfunc_38Ev kind:function(arm,size=0x4) addr:0x020c4c1c
_ZN18TitleScreenManager8vfunc_38Eiiii kind:function(arm,size=0x4) addr:0x020c4c1c
_ZN18TitleScreenManager19func_ov025_020c4c20Ev kind:function(arm,size=0x10) addr:0x020c4c20
_ZN18TitleScreenManager19func_ov025_020c4c30Ev kind:function(arm,size=0x10) addr:0x020c4c30
_ZN18TitleScreenManagerD1Ev kind:function(arm,size=0x14) addr:0x020c4c40
+10 -10
View File
@@ -1942,19 +1942,19 @@ from:0x020154e4 kind:thumb_call_arm to:0x020153c4 module:main
from:0x020154f4 kind:thumb_call_arm to:0x02015338 module:main
from:0x0201550a kind:thumb_call to:0x02012f08 module:main
from:0x02015520 kind:thumb_call_arm to:0x02011ff4 module:main
from:0x0201554c kind:load to:0x02043f08 module:main
from:0x02015568 kind:load to:0x02043f08 module:main
from:0x0201554c kind:load to:0x02043f00 add:8 module:main
from:0x02015568 kind:load to:0x02043f00 add:8 module:main
from:0x0201557c kind:thumb_call to:0x02015528 module:main
from:0x02015584 kind:load to:0x02043f08 module:main
from:0x02015584 kind:load to:0x02043f00 add:8 module:main
from:0x02015598 kind:thumb_call to:0x02015528 module:main
from:0x0201559e kind:thumb_call_arm to:0x02011ff4 module:main
from:0x020155a8 kind:load to:0x02043f08 module:main
from:0x020155a8 kind:load to:0x02043f00 add:8 module:main
from:0x020155ca kind:thumb_call to:0x02012ec8 module:main
from:0x020155e4 kind:thumb_call_arm to:0x02011ff4 module:main
from:0x020155ea kind:thumb_call to:0x0201552c module:main
from:0x02015616 kind:thumb_call to:0x020010e0 module:main
from:0x02015620 kind:load to:0x0204999c module:main
from:0x02015640 kind:load to:0x02043f24 module:main
from:0x02015640 kind:load to:0x02043f1c add:8 module:main
from:0x02015648 kind:thumb_call to:0x02015528 module:main
from:0x02015654 kind:thumb_call to:0x02015528 module:main
from:0x0201565a kind:thumb_call_arm to:0x02011ff4 module:main
@@ -2213,7 +2213,7 @@ from:0x02018410 kind:thumb_call_arm to:0x0201b9a8 module:main
from:0x0201841c kind:load to:0x020b51b8 module:overlay(0)
from:0x02018420 kind:load to:0x0204e5f8 module:main
from:0x0201842a kind:thumb_call to:0x020148d0 module:main
from:0x0201842e kind:thumb_call_arm to:0x020c4840 module:overlays(18,19,20,25)
from:0x0201842e kind:thumb_call_arm to:0x020c4840 module:overlay(19)
from:0x02018434 kind:load to:0x02049ba0 module:main
from:0x02018440 kind:arm_call to:0x0201bacc module:main
from:0x02018454 kind:arm_call to:0x0201bacc module:main
@@ -2924,19 +2924,19 @@ from:0x0201f634 kind:arm_call to:0x02062408 module:overlay(0)
from:0x0201f63c kind:load to:0x0204a110 module:main
from:0x0201f64c kind:arm_call to:0x0201f244 module:main
from:0x0201f65c kind:arm_call to:0x02061f30 module:overlay(0)
from:0x0201f670 kind:load to:0x0204439c module:main
from:0x0201f670 kind:load to:0x02044394 add:8 module:main
from:0x0201f674 kind:load to:0x020443a8 module:main
from:0x0201f684 kind:arm_call to:0x0201f244 module:main
from:0x0201f694 kind:arm_call to:0x02061f30 module:overlay(0)
from:0x0201f6a8 kind:load to:0x0204439c module:main
from:0x0201f6a8 kind:load to:0x02044394 add:8 module:main
from:0x0201f6ac kind:load to:0x020443a8 module:main
from:0x0201f6c4 kind:arm_call to:0x0201f288 module:main
from:0x0201f6d4 kind:arm_call to:0x02061f30 module:overlay(0)
from:0x0201f6e8 kind:load to:0x0204439c module:main
from:0x0201f6e8 kind:load to:0x02044394 add:8 module:main
from:0x0201f6ec kind:load to:0x020443a8 module:main
from:0x0201f704 kind:arm_call to:0x0201f288 module:main
from:0x0201f714 kind:arm_call to:0x02061f30 module:overlay(0)
from:0x0201f728 kind:load to:0x0204439c module:main
from:0x0201f728 kind:load to:0x02044394 add:8 module:main
from:0x0201f72c kind:load to:0x020443a8 module:main
from:0x0201f748 kind:arm_call to:0x02067a2c module:overlay(0)
from:0x0201f780 kind:arm_call to:0x02019590 module:main
+38 -38
View File
@@ -616,10 +616,10 @@ func_0201245c kind:function(thumb,size=0x10) addr:0x0201245c
func_0201246c kind:function(thumb,size=0x54) addr:0x0201246c
func_020124c0 kind:function(thumb,size=0x30) addr:0x020124c0
DisplayAssertError kind:function(thumb,size=0xb4) addr:0x020124f0
func_020125a4 kind:function(thumb,size=0x24) addr:0x020125a4
_ZN8SysFault13func_020125a4EPctS0_z kind:function(thumb,size=0x24) addr:0x020125a4
func_020125c8 kind:function(thumb,size=0xc) addr:0x020125c8
func_020125d4 kind:function(thumb,size=0x21c) addr:0x020125d4
func_020127f0 kind:function(thumb,size=0x310) addr:0x020127f0
_ZN8SysFault13func_020127f0Ei kind:function(thumb,size=0x310) addr:0x020127f0
func_02012b00 kind:function(thumb,size=0x188) addr:0x02012b00
func_02012c88 kind:function(thumb,size=0xac) addr:0x02012c88
func_02012d34 kind:function(thumb,size=0xce) addr:0x02012d34
@@ -651,24 +651,24 @@ func_0201328c kind:function(arm,size=0x3c) addr:0x0201328c
func_020132c8 kind:function(arm,size=0x14) addr:0x020132c8
func_020132dc kind:function(arm,size=0x78) addr:0x020132dc
func_02013354 kind:function(arm,size=0x1c) addr:0x02013354
_ZN18UnkStruct_02049a2c13func_02013370Ei kind:function(arm,size=0x24) addr:0x02013370
_ZN18UnkStruct_02049a2c3RunEv kind:function(arm,size=0x390) addr:0x02013394
_ZN18UnkStruct_02049a2c13func_02013724EPv kind:function(arm,size=0x18) addr:0x02013724
_ZN4Game13func_02013370Ei kind:function(arm,size=0x24) addr:0x02013370
_ZN4Game3RunEv kind:function(arm,size=0x390) addr:0x02013394
_ZN4Game20TrySetCreateCallbackEPFP12GameModeBasevE kind:function(arm,size=0x18) addr:0x02013724
func_0201373c kind:function(arm,size=0x18) addr:0x0201373c
func_02013754 kind:function(arm,size=0x14) addr:0x02013754
func_02013768 kind:function(arm,size=0x60) addr:0x02013768
_ZN18UnkStruct_02049b1813func_02013768Ev kind:function(arm,size=0x60) addr:0x02013768
func_020137c8 kind:function(arm,size=0x1c) addr:0x020137c8
func_020137e4 kind:function(arm,size=0x5c) addr:0x020137e4
func_02013840 kind:function(arm,size=0xb4) addr:0x02013840
func_020138f4 kind:function(arm,size=0x140) addr:0x020138f4
_ZN18UnkStruct_02049b1813func_02013840Eti kind:function(arm,size=0xb4) addr:0x02013840
_ZN18UnkStruct_02049b1813func_020138f4Ei kind:function(arm,size=0x140) addr:0x020138f4
func_02013a34 kind:function(arm,size=0x10) addr:0x02013a34
func_02013a44 kind:function(arm,size=0x98) addr:0x02013a44
_ZN18UnkStruct_02049b7413func_02013a44Ei kind:function(arm,size=0x98) addr:0x02013a44
func_02013adc kind:function(arm,size=0x34) addr:0x02013adc
_ZN5InputC1Ev kind:function(arm,size=0x14) addr:0x02013b10
_ZN5Input13func_02013b24Ei kind:function(arm,size=0x64) addr:0x02013b24
func_02013b88 kind:function(arm,size=0x10) addr:0x02013b88
func_02013b98 kind:function(arm,size=0x24) addr:0x02013b98
func_02013bbc kind:function(arm,size=0x4c) addr:0x02013bbc
_ZN5Input13func_02013bbcEv kind:function(arm,size=0x4c) addr:0x02013bbc
_ZN5Input13func_02013c08Et kind:function(arm,size=0x1c) addr:0x02013c08
func_02013c24 kind:function(arm,size=0x58) addr:0x02013c24
func_02013c7c kind:function(arm,size=0x58) addr:0x02013c7c
@@ -676,7 +676,7 @@ func_02013cd4 kind:function(arm,size=0x5c) addr:0x02013cd4
func_02013d30 kind:function(arm,size=0x64) addr:0x02013d30
func_02013d94 kind:function(arm,size=0x5c) addr:0x02013d94
func_02013df0 kind:function(arm,size=0x28) addr:0x02013df0
func_02013e18 kind:function(arm,size=0x1c) addr:0x02013e18
_ZN21UnkStruct_02049a2c_1C13func_02013e18EPvi kind:function(arm,size=0x1c) addr:0x02013e18
func_02013e34 kind:function(arm,size=0x10) addr:0x02013e34
func_02013e44 kind:function(arm,size=0x3c) addr:0x02013e44
func_02013e80 kind:function(arm,size=0x4c) addr:0x02013e80
@@ -713,7 +713,7 @@ _ZN14OverlayManager15LoadIfNotLoadedEjj kind:function(thumb,size=0x28) addr:0x02
_ZN14OverlayManager4LoadEjj kind:function(thumb,size=0x2c) addr:0x02014824
_ZN14OverlayManager6UnloadEj kind:function(thumb,size=0x28) addr:0x02014850
func_02014878 kind:function(thumb,size=0x58) addr:0x02014878
_ZN14OverlayManager13func_020148d0Ei kind:function(thumb,size=0x46) addr:0x020148d0
_ZN14OverlayManager13func_020148d0Ej kind:function(thumb,size=0x46) addr:0x020148d0
func_02014918 kind:function(thumb,size=0x2c) addr:0x02014918
func_02014944 kind:function(thumb,size=0x50) addr:0x02014944
_ZN14OverlayManager13func_02014994Ei kind:function(thumb,size=0x7c) addr:0x02014994
@@ -731,7 +731,7 @@ func_02014c3c kind:function(arm,size=0x24) addr:0x02014c3c
_ZN18UnkStruct_02049bd413func_02014c60Ei kind:function(arm,size=0x7c) addr:0x02014c60
_ZN18UnkStruct_02049bd413func_02014cdcEi kind:function(arm,size=0x5c) addr:0x02014cdc
func_02014d38 kind:function(arm,size=0x60) addr:0x02014d38
func_02014d98 kind:function(arm,size=0x108) addr:0x02014d98
_ZN18UnkStruct_02049bd413func_02014d98Ev kind:function(arm,size=0x108) addr:0x02014d98
func_02014ea0 kind:function(arm,size=0x5c) addr:0x02014ea0
func_02014efc kind:function(arm,size=0x58) addr:0x02014efc
func_02014f54 kind:function(arm,size=0x18) addr:0x02014f54
@@ -747,9 +747,9 @@ func_02015244 kind:function(arm,size=0x40) addr:0x02015244
func_02015284 kind:function(arm,size=0x7c) addr:0x02015284
func_02015300 kind:function(arm,size=0x38) addr:0x02015300
func_02015338 kind:function(arm,size=0x10) addr:0x02015338
func_02015348 kind:function(arm,size=0x38) addr:0x02015348
_ZN18SomeSaveFileStructC1Ei kind:function(arm,size=0x38) addr:0x02015348
func_02015380 kind:function(arm,size=0x24) addr:0x02015380
func_020153a4 kind:function(arm,size=0x20) addr:0x020153a4
_ZN18SomeSaveFileStructD1Ev kind:function(arm,size=0x20) addr:0x020153a4
func_020153c4 kind:function(arm,size=0x20) addr:0x020153c4
func_020153e4 kind:function(arm,size=0x18) addr:0x020153e4
func_020153fc kind:function(thumb,size=0x12) addr:0x020153fc
@@ -764,16 +764,16 @@ func_020154d8 kind:function(thumb,size=0x14) addr:0x020154d8
_ZN10UnkStruct213func_020154ecEPKc kind:function(thumb,size=0x2a) addr:0x020154ec
func_02015518 kind:function(thumb,size=0x2) addr:0x02015518
func_0201551c kind:function(thumb,size=0xc) addr:0x0201551c
func_02015528 kind:function(thumb,size=0x2) addr:0x02015528
func_0201552c kind:function(thumb,size=0x8) addr:0x0201552c
func_02015534 kind:function(thumb,size=0x4) addr:0x02015534
func_02015538 kind:function(thumb,size=0x18) addr:0x02015538
func_02015550 kind:function(thumb,size=0x1c) addr:0x02015550
_ZN32UnkStruct_ov000_020b4f84_00_BaseD2Ev kind:function(thumb,size=0x1c) addr:0x0201556c
func_02015588 kind:function(thumb,size=0x24) addr:0x02015588
func_020155ac kind:function(thumb,size=0x2a) addr:0x020155ac
func_020155d8 kind:function(thumb,size=0x18) addr:0x020155d8
func_020155f0 kind:function(thumb,size=0x38) addr:0x020155f0
_ZN32UnkStruct_ov000_020b4f84_00_Base13func_02015528Ev kind:function(thumb,size=0x2) addr:0x02015528
_ZN32UnkStruct_ov000_020b4f84_00_Base13func_0201552cEv kind:function(thumb,size=0x8) addr:0x0201552c
_ZN32UnkStruct_ov000_020b4f84_00_Base13func_02015534Ev kind:function(thumb,size=0x4) addr:0x02015534
_ZN32UnkStruct_ov000_020b4f84_00_BaseC1Ev kind:function(thumb,size=0x18) addr:0x02015538
_ZN32UnkStruct_ov000_020b4f84_00_BaseC1EPviih kind:function(thumb,size=0x1c) addr:0x02015550
_ZN32UnkStruct_ov000_020b4f84_00_BaseD1Ev kind:function(thumb,size=0x1c) addr:0x0201556c
_ZN32UnkStruct_ov000_020b4f84_00_BaseD0Ev kind:function(thumb,size=0x24) addr:0x02015588
_ZN32UnkStruct_ov000_020b4f84_00_Base8vfunc_08Ei kind:function(thumb,size=0x2a) addr:0x020155ac
_ZN32UnkStruct_ov000_020b4f84_00_Base8vfunc_0CEv kind:function(thumb,size=0x18) addr:0x020155d8
_ZN32UnkStruct_ov000_020b4f84_00_Base8vfunc_10Ei kind:function(thumb,size=0x38) addr:0x020155f0
func_02015628 kind:function(thumb,size=0x1c) addr:0x02015628
func_02015644 kind:function(thumb,size=0xc) addr:0x02015644
func_02015650 kind:function(thumb,size=0x12) addr:0x02015650
@@ -914,7 +914,7 @@ _ZN12GameModeBase8vfunc_24Ev kind:function(arm,size=0x8) addr:0x0201839c
_ZN18UnkStruct_0204a0608vfunc_0CEv kind:function(thumb,size=0x14) addr:0x020183a4
_ZN18UnkStruct_0204a06013func_020183b8Ev kind:function(thumb,size=0x8) addr:0x020183b8
_ZN18UnkStruct_0204a06013func_020183c0Ev kind:function(thumb,size=0x14) addr:0x020183c0
_ZN18UnkStruct_0204a06013func_020183d4EbPvi kind:function(thumb,size=0x50) addr:0x020183d4
_ZN18UnkStruct_0204a06013func_020183d4EbPFP12GameModeBasevEi kind:function(thumb,size=0x50) addr:0x020183d4
_ZN18UnkStruct_0204a06013func_02018424Ev kind:function(thumb,size=0x14) addr:0x02018424
_ZN18UnkStruct_0204a060D1Ev kind:function(arm,size=0x14) addr:0x02018438
_ZN18UnkStruct_0204a060D0Ev kind:function(arm,size=0x1c) addr:0x0201844c
@@ -939,7 +939,7 @@ _ZN19GameModeManagerBase8vfunc_24Ev kind:function(arm,size=0x18) addr:0x0201867c
_ZN19GameModeManagerBase8vfunc_28EPc kind:function(arm,size=0x10) addr:0x02018694
_ZN19GameModeManagerBase8vfunc_2CEPc kind:function(arm,size=0x4) addr:0x020186a4
_ZN19GameModeManagerBase8vfunc_30Ei kind:function(arm,size=0x4c) addr:0x020186a8
_ZN19GameModeManagerBase8vfunc_34Ev kind:function(arm,size=0x4) addr:0x020186f4
_ZN19GameModeManagerBase8vfunc_34Eii kind:function(arm,size=0x4) addr:0x020186f4
_ZN19GameModeManagerBase13func_020186f8Ei kind:function(arm,size=0xc) addr:0x020186f8
_ZN19GameModeManagerBase13func_02018704Ev kind:function(arm,size=0x10) addr:0x02018704
_ZN19GameModeManagerBase13func_02018714Eiiiii kind:function(arm,size=0x28) addr:0x02018714
@@ -967,13 +967,13 @@ _ZN18UnkStruct_0204a11013func_02018d34Ev kind:function(arm,size=0x44) addr:0x020
func_02018d78 kind:function(arm,size=0x174) addr:0x02018d78
func_02018eec kind:function(arm,size=0xac) addr:0x02018eec
func_02018f98 kind:function(arm,size=0x368) addr:0x02018f98
func_02019300 kind:function(arm,size=0x40) addr:0x02019300
_ZN18UnkStruct_0204a11013func_02019300Ei kind:function(arm,size=0x40) addr:0x02019300
func_02019340 kind:function(arm,size=0x10) addr:0x02019340
func_02019350 kind:function(arm,size=0xb8) addr:0x02019350
func_02019408 kind:function(arm,size=0x4c) addr:0x02019408
func_02019454 kind:function(arm,size=0x88) addr:0x02019454
func_020194dc kind:function(arm,size=0x38) addr:0x020194dc
func_02019514 kind:function(arm,size=0x14) addr:0x02019514
_ZN18UnkStruct_0204a11013func_02019350Ev kind:function(arm,size=0xb8) addr:0x02019350
_ZN18UnkStruct_0204a11013func_02019408Ev kind:function(arm,size=0x4c) addr:0x02019408
_ZN18UnkStruct_0204a11013func_02019454Ev kind:function(arm,size=0x88) addr:0x02019454
_ZN18UnkStruct_0204a11013func_020194dcEv kind:function(arm,size=0x38) addr:0x020194dc
_ZN18UnkStruct_0204a11013func_02019514Ev kind:function(arm,size=0x14) addr:0x02019514
func_02019528 kind:function(arm,size=0x10) addr:0x02019528
_ZN18UnkStruct_0204a11013func_02019538Eii kind:function(arm,size=0x10) addr:0x02019538
func_02019548 kind:function(arm,size=0x10) addr:0x02019548
@@ -1200,7 +1200,7 @@ func_0201ff4c kind:function(arm,size=0xf8) addr:0x0201ff4c
func_02020044 kind:function(arm,size=0xcc) addr:0x02020044
func_02020110 kind:function(thumb,size=0x90) addr:0x02020110
func_020201a0 kind:function(thumb,size=0x24) addr:0x020201a0
func_020201c4 kind:function(arm,size=0xa4) addr:0x020201c4
_ZN18UnkStruct_0204e64c13func_020201c4Ei kind:function(arm,size=0xa4) addr:0x020201c4
func_02020268 kind:function(arm,size=0x30) addr:0x02020268
func_02020298 kind:function(arm,size=0x54) addr:0x02020298
func_020202ec kind:function(arm,size=0x5c) addr:0x020202ec
@@ -2525,8 +2525,8 @@ data_02043ed0 kind:data(any) addr:0x02043ed0
data_02043ed8 kind:data(any) addr:0x02043ed8
data_02043ee0 kind:data(any) addr:0x02043ee0
data_02043efc kind:data(any) addr:0x02043efc
data_02043f08 kind:data(any) addr:0x02043f08
data_02043f24 kind:data(any) addr:0x02043f24
_ZTV32UnkStruct_ov000_020b4f84_00_Base kind:data(any) addr:0x02043f00
data_02043f24 kind:data(any) addr:0x02043f1c
data_02043f40 kind:data(any) addr:0x02043f40
data_02043f5c kind:data(any) addr:0x02043f5c
data_02043f78 kind:data(any) addr:0x02043f78
@@ -2561,7 +2561,7 @@ data_0204433c kind:data(any) addr:0x0204433c
data_02044340 kind:data(any) addr:0x02044340
data_02044384 kind:data(any) addr:0x02044384
data_02044390 kind:data(any) addr:0x02044390
data_0204439c kind:data(any) addr:0x0204439c
_ZTV24UnkSystem2_UnkSubSystem5 kind:data(any) addr:0x02044394
data_020443a8 kind:data(any) addr:0x020443a8
data_020443c0 kind:data(any) addr:0x020443c0
_ZTV21UnkStruct_0204e64c_00 kind:data(any) addr:0x020443d0
@@ -2727,7 +2727,7 @@ data_020499c8 kind:bss addr:0x020499c8
data_020499e0 kind:bss addr:0x020499e0
data_02049a1c kind:bss addr:0x02049a1c
data_02049a20 kind:bss addr:0x02049a20
data_02049a2c kind:bss addr:0x02049a2c
gGame kind:bss addr:0x02049a2c
data_02049b14 kind:bss addr:0x02049b14
data_02049b18 kind:bss addr:0x02049b18
data_02049b2a kind:bss addr:0x02049b2a
+14
View File
@@ -13,12 +13,23 @@ src/Main/Main.cpp:
src/Main/System/SysNew.cpp:
.text start:0x02011e10 end:0x0201200c
src/Main/System/SysFault.cpp:
.text start:0x020127f0 end:0x02012b00
src/Main/Game/Game.cpp:
.text start:0x02013370 end:0x02013740
src/Main/Player/TouchControl.cpp:
.text start:0x02014128 end:0x020144a4
src/Main/System/OverlayManager.cpp:
.text start:0x02014800 end:0x02014948
src/Main/UnkStruct_ov000_020b4f84_00_Base.cpp:
complete
.text start:0x020154c0 end:0x020155c0
.data start:0x02045444 end:0x02045460
src/Main/System/Random.cpp:
.text start:0x0201631c end:0x0201639c
@@ -43,6 +54,9 @@ src/Main/Game/GameModeManagerBase.cpp:
.text start:0x02018414 end:0x02018b5c
.data start:0x020455a0 end:0x020455e0
src/Main/func_020196fc.cpp:
.text start:0x02019694 end:0x020198cc
libs/c/src/abort_exit_arm_eabi.c:
complete
.text start:0x02034c18 end:0x02034da0
+2 -2
View File
@@ -1959,9 +1959,9 @@ from:0x02069a68 kind:load to:0x0204b6a0 module:main
from:0x02069a7c kind:load to:0x0201beb4 module:main
from:0x02069aa4 kind:load to:0x0204b690 module:main
from:0x02069aec kind:arm_call to:0x02069aa8 module:overlay(0)
from:0x02069b68 kind:load to:0x020b38fc module:overlay(0)
from:0x02069b68 kind:load to:0x020b38f4 add:8 module:overlay(0)
from:0x02069ba0 kind:arm_call to:0x02069aa8 module:overlay(0)
from:0x02069c1c kind:load to:0x020b38fc module:overlay(0)
from:0x02069c1c kind:load to:0x020b38f4 add:8 module:overlay(0)
from:0x02069c30 kind:arm_call to:0x02011ff4 module:main
from:0x02069c84 kind:arm_call to:0x0206adc0 module:overlay(0)
from:0x02069d24 kind:arm_call to:0x02067d14 module:overlay(0)
+14 -14
View File
@@ -59,8 +59,8 @@ func_ov000_02058b88 kind:function(arm,size=0x8) addr:0x02058b88
func_ov000_02058b90 kind:function(arm,size=0x30) addr:0x02058b90
func_ov000_02058bc0 kind:function(arm,size=0x48) addr:0x02058bc0
func_ov000_02058c08 kind:function(arm,size=0x48) addr:0x02058c08
func_ov000_02058c50 kind:function(arm,size=0x3c) addr:0x02058c50
func_ov000_02058c8c kind:function(arm,size=0x14) addr:0x02058c8c
_ZN4Game19func_ov000_020576d0Ev kind:function(arm,size=0x3c) addr:0x02058c50
_ZN4Game19func_ov000_0205770cEv kind:function(arm,size=0x14) addr:0x02058c8c
func_ov000_02058ca0 kind:function(arm,size=0x14) addr:0x02058ca0
func_ov000_02058cb4 kind:function(arm,size=0x1c) addr:0x02058cb4
func_ov000_02058cd0 kind:function(thumb,size=0xc) addr:0x02058cd0
@@ -532,8 +532,8 @@ func_ov000_02063b4c kind:function(arm,size=0x120) addr:0x02063b4c
func_ov000_02063c6c kind:function(arm,size=0x124) addr:0x02063c6c
func_ov000_02063d90 kind:function(arm,size=0x30) addr:0x02063d90
func_ov000_02063dc0 kind:function(arm,size=0x8c) addr:0x02063dc0
func_ov000_02063e4c kind:function(arm,size=0x20) addr:0x02063e4c
func_ov000_02063e6c kind:function(arm,size=0xcc) addr:0x02063e6c
_ZN17struct_aStack_2d8C1Ev kind:function(arm,size=0x20) addr:0x02063e4c
_ZN17struct_aStack_2d819func_ov000_020628e4Eiiiiiiiii kind:function(arm,size=0xcc) addr:0x02063e6c
func_ov000_02063f38 kind:function(arm,size=0x8c) addr:0x02063f38
func_ov000_02063fc4 kind:function(arm,size=0x8c) addr:0x02063fc4
_ZN29UnkSystem2_UnkSubSystem1_BaseC2Ev kind:function(arm,size=0x74) addr:0x02064050
@@ -718,7 +718,7 @@ func_ov000_02068da0 kind:function(arm,size=0xdc) addr:0x02068da0
func_ov000_02068e7c kind:function(arm,size=0x90) addr:0x02068e7c
func_ov000_02068f0c kind:function(arm,size=0xbc) addr:0x02068f0c
func_ov000_02068fc8 kind:function(arm,size=0x34) addr:0x02068fc8
func_ov000_02068ffc kind:function(arm,size=0x44) addr:0x02068ffc
_ZN17struct_aStack_2e0C1EP24UnkStruct_ov000_020b504ci kind:function(arm,size=0x44) addr:0x02068ffc
func_ov000_02069040 kind:function(arm,size=0x7c) addr:0x02069040
func_ov000_020690bc kind:function(arm,size=0x40) addr:0x020690bc
func_ov000_020690fc kind:function(arm,size=0x54) addr:0x020690fc
@@ -750,14 +750,14 @@ func_ov000_02069a6c kind:function(arm,size=0x14) addr:0x02069a6c
func_ov000_02069a80 kind:function(arm,size=0x28) addr:0x02069a80
func_ov000_02069aa8 kind:function(arm,size=0x14) addr:0x02069aa8
func_ov000_02069abc kind:function(arm,size=0xb4) addr:0x02069abc
func_ov000_02069b70 kind:function(arm,size=0xb4) addr:0x02069b70
func_ov000_02069c24 kind:function(arm,size=0x4) addr:0x02069c24
func_ov000_02069c28 kind:function(arm,size=0x14) addr:0x02069c28
_ZN32UnkSystem2_UnkSubSystem5_Base_10C1Ev kind:function(arm,size=0xb4) addr:0x02069b70
_ZN32UnkSystem2_UnkSubSystem5_Base_10D1Ev kind:function(arm,size=0x4) addr:0x02069c24
_ZN32UnkSystem2_UnkSubSystem5_Base_10D0Ev kind:function(arm,size=0x14) addr:0x02069c28
func_ov000_02069c3c kind:function(arm,size=0x4) addr:0x02069c3c
func_ov000_02069c40 kind:function(arm,size=0x8) addr:0x02069c40
func_ov000_02069c48 kind:function(arm,size=0x34) addr:0x02069c48
_ZN17struct_aStack_2d819func_ov000_0206869cEv kind:function(arm,size=0x8) addr:0x02069c40
_ZN17struct_aStack_2d819func_ov000_020686a4Ei kind:function(arm,size=0x34) addr:0x02069c48
func_ov000_02069c7c kind:function(arm,size=0xb4) addr:0x02069c7c
func_ov000_02069d30 kind:function(arm,size=0xc) addr:0x02069d30
_ZN17struct_aStack_2d819func_ov000_0206878cEv kind:function(arm,size=0xc) addr:0x02069d30
func_ov000_02069d3c kind:function(arm,size=0x1c) addr:0x02069d3c
func_ov000_02069d58 kind:function(arm,size=0x48) addr:0x02069d58
func_ov000_02069da0 kind:function(arm,size=0x6c) addr:0x02069da0
@@ -771,7 +771,7 @@ func_ov000_0206a178 kind:function(arm,size=0xac) addr:0x0206a178
func_ov000_0206a224 kind:function(arm,size=0xb0) addr:0x0206a224
func_ov000_0206a2d4 kind:function(arm,size=0x20) addr:0x0206a2d4
func_ov000_0206a2f4 kind:function(arm,size=0x29c) addr:0x0206a2f4
func_ov000_0206a590 kind:function(arm,size=0x1c8) addr:0x0206a590
_ZN17struct_aStack_2d819func_ov000_02068fecEv kind:function(arm,size=0x1c8) addr:0x0206a590
func_ov000_0206a758 kind:function(arm,size=0x24) addr:0x0206a758
func_ov000_0206a77c kind:function(arm,size=0x8) addr:0x0206a77c
func_ov000_0206a784 kind:function(arm,size=0x3f4) addr:0x0206a784
@@ -800,7 +800,7 @@ func_ov000_0206b3e4 kind:function(arm,size=0xc) addr:0x0206b3e4
func_ov000_0206b3f0 kind:function(arm,size=0x50) addr:0x0206b3f0
func_ov000_0206b440 kind:function(arm,size=0x78) addr:0x0206b440
func_ov000_0206b4b8 kind:function(arm,size=0x44) addr:0x0206b4b8
func_ov000_0206b4fc kind:function(arm,size=0x6c) addr:0x0206b4fc
_ZN24UnkStruct_ov000_020b50c019func_ov000_02069f58Ev kind:function(arm,size=0x6c) addr:0x0206b4fc
func_ov000_0206b568 kind:function(arm,size=0x50) addr:0x0206b568
func_ov000_0206b5b8 kind:function(arm,size=0x20) addr:0x0206b5b8
func_ov000_0206b5d8 kind:function(arm,size=0x50) addr:0x0206b5d8
@@ -3489,7 +3489,7 @@ data_ov000_020b38d0 kind:data(any) addr:0x020b38d0
data_ov000_020b38dc kind:data(any) addr:0x020b38dc
data_ov000_020b38e4 kind:data(any) addr:0x020b38e4
data_ov000_020b38ec kind:data(any) addr:0x020b38ec
data_ov000_020b38fc kind:data(any) addr:0x020b38fc
_ZTV32UnkSystem2_UnkSubSystem5_Base_10 kind:data(any) addr:0x020b38f4
data_ov000_020b3948 kind:data(any) addr:0x020b3948
data_ov000_020b394c kind:data(any) addr:0x020b394c
data_ov000_020b3950 kind:data(any) addr:0x020b3950
+4 -4
View File
@@ -1,7 +1,7 @@
_ZN8SysFault19func_ov018_020c4840Ev kind:function(arm,size=0x30) addr:0x020c6060
_ZN18UnkStruct_02049a2cC1Ev kind:function(arm,size=0x34) addr:0x020c6090
_ZN18UnkStruct_02049a2c19func_ov018_020c48a4Ei kind:function(arm,size=0x54) addr:0x020c60c4
_ZN18UnkStruct_02049a2c19func_ov018_020c48f8Ev kind:function(arm,size=0x58) addr:0x020c6118
_ZN4GameC1Ev kind:function(arm,size=0x34) addr:0x020c6090
_ZN4Game19func_ov018_020c48a4Ev kind:function(arm,size=0x54) addr:0x020c60c4
_ZN4Game19func_ov018_020c48f8Ev kind:function(arm,size=0x58) addr:0x020c6118
_ZN18UnkStruct_02049b18C1Ev kind:function(arm,size=0x30) addr:0x020c6170
_ZN18UnkStruct_02011e1019func_ov018_020c4980Ev kind:function(arm,size=0xdc) addr:0x020c61a0
_ZN18UnkStruct_02011e1019func_ov018_020c4a5cEv kind:function(arm,size=0x6c) addr:0x020c627c
@@ -10,7 +10,7 @@ _ZN18UnkStruct_02049b80C1Ev kind:function(arm,size=0x2c) addr:0x020c62fc
_ZN21UnkStruct_02049b18_06C1Ev kind:function(arm,size=0x50) addr:0x020c6328
_ZN21UnkStruct_0204e64c_00C1Ev kind:function(arm,size=0x2c) addr:0x020c6378
_ZN18UnkStruct_0204e64cC1Ev kind:function(arm,size=0x24) addr:0x020c63a4
_ZN18UnkStruct_02049a2c19func_ov018_020c4ba8Ev kind:function(arm,size=0x54) addr:0x020c63c8
_ZN4Game19func_ov018_020c4ba8Ev kind:function(arm,size=0x54) addr:0x020c63c8
_ZN15GameModeStartUpD1Ev kind:function(arm,size=0x20) addr:0x020c641c
_ZN15GameModeStartUpC1Ev kind:function(arm,size=0x180) addr:0x020c643c
_ZN15GameModeStartUp8vfunc_0CEv kind:function(arm,size=0xcc) addr:0x020c65bc
+1 -1
View File
@@ -16,7 +16,7 @@ _ZN18TitleScreenManager8vfunc_18Ev kind:function(arm,size=0x34) addr:0x020c63a8
_ZN18TitleScreenManager8vfunc_24Ev kind:function(arm,size=0x20) addr:0x020c63dc
_ZN18TitleScreenManager8vfunc_28EPc kind:function(arm,size=0x20) addr:0x020c63fc
_ZN18TitleScreenManager8vfunc_2CEPc kind:function(arm,size=0x20) addr:0x020c641c
_ZN18TitleScreenManager8vfunc_38Ev kind:function(arm,size=0x4) addr:0x020c643c
_ZN18TitleScreenManager8vfunc_38Eiiii kind:function(arm,size=0x4) addr:0x020c643c
_ZN18TitleScreenManager19func_ov025_020c4c20Ev kind:function(arm,size=0x10) addr:0x020c6440
_ZN18TitleScreenManager19func_ov025_020c4c30Ev kind:function(arm,size=0x10) addr:0x020c6450
_ZN18TitleScreenManagerD1Ev kind:function(arm,size=0x14) addr:0x020c6460
+10 -10
View File
@@ -1942,19 +1942,19 @@ from:0x0201547c kind:thumb_call_arm to:0x0201535c module:main
from:0x0201548c kind:thumb_call_arm to:0x020152d0 module:main
from:0x020154a2 kind:thumb_call to:0x02012f08 module:main
from:0x020154b8 kind:thumb_call_arm to:0x02011ff4 module:main
from:0x020154e4 kind:load to:0x0204544c module:main
from:0x02015500 kind:load to:0x0204544c module:main
from:0x020154e4 kind:load to:0x02045444 add:8 module:main
from:0x02015500 kind:load to:0x02045444 add:8 module:main
from:0x02015514 kind:thumb_call to:0x020154c0 module:main
from:0x0201551c kind:load to:0x0204544c module:main
from:0x0201551c kind:load to:0x02045444 add:8 module:main
from:0x02015530 kind:thumb_call to:0x020154c0 module:main
from:0x02015536 kind:thumb_call_arm to:0x02011ff4 module:main
from:0x02015540 kind:load to:0x0204544c module:main
from:0x02015540 kind:load to:0x02045444 add:8 module:main
from:0x02015562 kind:thumb_call to:0x02012ec8 module:main
from:0x0201557c kind:thumb_call_arm to:0x02011ff4 module:main
from:0x02015582 kind:thumb_call to:0x020154c4 module:main
from:0x020155ae kind:thumb_call to:0x020010e0 module:main
from:0x020155b8 kind:load to:0x0204af1c module:main
from:0x020155d8 kind:load to:0x02045468 module:main
from:0x020155d8 kind:load to:0x02045460 add:8 module:main
from:0x020155e0 kind:thumb_call to:0x020154c0 module:main
from:0x020155ec kind:thumb_call to:0x020154c0 module:main
from:0x020155f2 kind:thumb_call_arm to:0x02011ff4 module:main
@@ -2213,7 +2213,7 @@ from:0x020183a8 kind:thumb_call_arm to:0x0201b798 module:main
from:0x020183b4 kind:load to:0x020b69b8 module:overlay(0)
from:0x020183b8 kind:load to:0x0204fb78 module:main
from:0x020183c2 kind:thumb_call to:0x020148d4 module:main
from:0x020183c6 kind:thumb_call_arm to:0x020c6060 module:overlays(18,20,25)
from:0x020183c6 kind:thumb_call_arm to:0x020c6060 module:overlay(19)
from:0x020183cc kind:load to:0x0204b120 module:main
from:0x020183d8 kind:arm_call to:0x0201b8bc module:main
from:0x020183ec kind:arm_call to:0x0201b8bc module:main
@@ -2924,19 +2924,19 @@ from:0x0201f424 kind:arm_call to:0x02063990 module:overlay(0)
from:0x0201f42c kind:load to:0x0204b690 module:main
from:0x0201f43c kind:arm_call to:0x0201f034 module:main
from:0x0201f44c kind:arm_call to:0x020634b8 module:overlay(0)
from:0x0201f460 kind:load to:0x020458e0 module:main
from:0x0201f460 kind:load to:0x020458d8 add:8 module:main
from:0x0201f464 kind:load to:0x020458ec module:main
from:0x0201f474 kind:arm_call to:0x0201f034 module:main
from:0x0201f484 kind:arm_call to:0x020634b8 module:overlay(0)
from:0x0201f498 kind:load to:0x020458e0 module:main
from:0x0201f498 kind:load to:0x020458d8 add:8 module:main
from:0x0201f49c kind:load to:0x020458ec module:main
from:0x0201f4b4 kind:arm_call to:0x0201f078 module:main
from:0x0201f4c4 kind:arm_call to:0x020634b8 module:overlay(0)
from:0x0201f4d8 kind:load to:0x020458e0 module:main
from:0x0201f4d8 kind:load to:0x020458d8 add:8 module:main
from:0x0201f4dc kind:load to:0x020458ec module:main
from:0x0201f4f4 kind:arm_call to:0x0201f078 module:main
from:0x0201f504 kind:arm_call to:0x020634b8 module:overlay(0)
from:0x0201f518 kind:load to:0x020458e0 module:main
from:0x0201f518 kind:load to:0x020458d8 add:8 module:main
from:0x0201f51c kind:load to:0x020458ec module:main
from:0x0201f538 kind:arm_call to:0x02068fc8 module:overlay(0)
from:0x0201f570 kind:arm_call to:0x02019528 module:main
+39 -39
View File
@@ -615,11 +615,11 @@ func_0201233c kind:function(arm,size=0x120) addr:0x0201233c
func_0201245c kind:function(thumb,size=0x10) addr:0x0201245c
func_0201246c kind:function(thumb,size=0x54) addr:0x0201246c
func_020124c0 kind:function(thumb,size=0x30) addr:0x020124c0
func_020124f0 kind:function(thumb,size=0xb4) addr:0x020124f0
func_020125a4 kind:function(thumb,size=0x24) addr:0x020125a4
DisplayAssertError kind:function(thumb,size=0xb4) addr:0x020124f0
_ZN8SysFault13func_020125a4EPctS0_z kind:function(thumb,size=0x24) addr:0x020125a4
func_020125c8 kind:function(thumb,size=0xc) addr:0x020125c8
func_020125d4 kind:function(thumb,size=0x21c) addr:0x020125d4
func_020127f0 kind:function(thumb,size=0x310) addr:0x020127f0
_ZN8SysFault13func_020127f0Ei kind:function(thumb,size=0x310) addr:0x020127f0
func_02012b00 kind:function(thumb,size=0x188) addr:0x02012b00
func_02012c88 kind:function(thumb,size=0xac) addr:0x02012c88
func_02012d34 kind:function(thumb,size=0xce) addr:0x02012d34
@@ -651,24 +651,24 @@ func_0201328c kind:function(arm,size=0x3c) addr:0x0201328c
func_020132c8 kind:function(arm,size=0x14) addr:0x020132c8
func_020132dc kind:function(arm,size=0x78) addr:0x020132dc
func_02013354 kind:function(arm,size=0x1c) addr:0x02013354
_ZN18UnkStruct_02049a2c13func_02013370Ei kind:function(arm,size=0x24) addr:0x02013370
_ZN18UnkStruct_02049a2c3RunEv kind:function(arm,size=0x394) addr:0x02013394
_ZN18UnkStruct_02049a2c13func_02013724EPv kind:function(arm,size=0x18) addr:0x02013728
_ZN4Game13func_02013370Ei kind:function(arm,size=0x24) addr:0x02013370
_ZN4Game3RunEv kind:function(arm,size=0x394) addr:0x02013394
_ZN4Game20TrySetCreateCallbackEPFP12GameModeBasevE kind:function(arm,size=0x18) addr:0x02013728
func_02013740 kind:function(arm,size=0x18) addr:0x02013740
func_02013758 kind:function(arm,size=0x14) addr:0x02013758
func_02013768 kind:function(arm,size=0x60) addr:0x0201376c
_ZN18UnkStruct_02049b1813func_02013768Ev kind:function(arm,size=0x60) addr:0x0201376c
func_020137cc kind:function(arm,size=0x1c) addr:0x020137cc
func_020137e8 kind:function(arm,size=0x5c) addr:0x020137e8
func_02013844 kind:function(arm,size=0xb4) addr:0x02013844
func_020138f8 kind:function(arm,size=0x140) addr:0x020138f8
_ZN18UnkStruct_02049b1813func_02013840Eti kind:function(arm,size=0xb4) addr:0x02013844
_ZN18UnkStruct_02049b1813func_020138f4Ei kind:function(arm,size=0x140) addr:0x020138f8
func_02013a38 kind:function(arm,size=0x10) addr:0x02013a38
func_02013a48 kind:function(arm,size=0x98) addr:0x02013a48
_ZN18UnkStruct_02049b7413func_02013a44Ei kind:function(arm,size=0x98) addr:0x02013a48
func_02013ae0 kind:function(arm,size=0x34) addr:0x02013ae0
_ZN5InputC1Ev kind:function(arm,size=0x14) addr:0x02013b14
_ZN5Input13func_02013b24Ei kind:function(arm,size=0x64) addr:0x02013b28
func_02013b8c kind:function(arm,size=0x10) addr:0x02013b8c
func_02013b9c kind:function(arm,size=0x24) addr:0x02013b9c
func_02013bc0 kind:function(arm,size=0x4c) addr:0x02013bc0
_ZN5Input13func_02013bbcEv kind:function(arm,size=0x4c) addr:0x02013bc0
_ZN5Input13func_02013c08Et kind:function(arm,size=0x1c) addr:0x02013c0c
func_02013c28 kind:function(arm,size=0x58) addr:0x02013c28
func_02013c80 kind:function(arm,size=0x58) addr:0x02013c80
@@ -676,7 +676,7 @@ func_02013cd8 kind:function(arm,size=0x5c) addr:0x02013cd8
func_02013d34 kind:function(arm,size=0x64) addr:0x02013d34
func_02013d98 kind:function(arm,size=0x5c) addr:0x02013d98
func_02013df4 kind:function(arm,size=0x28) addr:0x02013df4
func_02013e1c kind:function(arm,size=0x1c) addr:0x02013e1c
_ZN21UnkStruct_02049a2c_1C13func_02013e18EPvi kind:function(arm,size=0x1c) addr:0x02013e1c
func_02013e38 kind:function(arm,size=0x10) addr:0x02013e38
func_02013e48 kind:function(arm,size=0x3c) addr:0x02013e48
func_02013e84 kind:function(arm,size=0x4c) addr:0x02013e84
@@ -713,7 +713,7 @@ _ZN14OverlayManager15LoadIfNotLoadedEjj kind:function(thumb,size=0x28) addr:0x02
_ZN14OverlayManager4LoadEjj kind:function(thumb,size=0x2c) addr:0x02014828
_ZN14OverlayManager6UnloadEj kind:function(thumb,size=0x28) addr:0x02014854
func_0201487c kind:function(thumb,size=0x58) addr:0x0201487c
_ZN14OverlayManager13func_020148d0Ei kind:function(thumb,size=0x46) addr:0x020148d4
_ZN14OverlayManager13func_020148d0Ej kind:function(thumb,size=0x46) addr:0x020148d4
func_0201491c kind:function(thumb,size=0x2c) addr:0x0201491c
func_02014948 kind:function(thumb,size=0x50) addr:0x02014948
_ZN14OverlayManager13func_02014994Ei kind:function(thumb,size=0x7c) addr:0x02014998
@@ -731,7 +731,7 @@ func_02014c40 kind:function(arm,size=0x24) addr:0x02014c40
_ZN18UnkStruct_02049bd413func_02014c60Ei kind:function(arm,size=0x7c) addr:0x02014c64
_ZN18UnkStruct_02049bd413func_02014cdcEi kind:function(arm,size=0x5c) addr:0x02014ce0
func_02014d3c kind:function(arm,size=0x60) addr:0x02014d3c
func_02014d9c kind:function(arm,size=0x108) addr:0x02014d9c
_ZN18UnkStruct_02049bd413func_02014d98Ev kind:function(arm,size=0x108) addr:0x02014d9c
func_02014ea4 kind:function(arm,size=0x5c) addr:0x02014ea4
func_02014f00 kind:function(arm,size=0x58) addr:0x02014f00
func_02014f58 kind:function(arm,size=0x18) addr:0x02014f58
@@ -747,9 +747,9 @@ func_02015244 kind:function(arm,size=0x40) addr:0x020151dc
func_0201521c kind:function(arm,size=0x7c) addr:0x0201521c
func_02015298 kind:function(arm,size=0x38) addr:0x02015298
func_020152d0 kind:function(arm,size=0x10) addr:0x020152d0
func_020152e0 kind:function(arm,size=0x38) addr:0x020152e0
_ZN18SomeSaveFileStructC1Ei kind:function(arm,size=0x38) addr:0x020152e0
func_02015318 kind:function(arm,size=0x24) addr:0x02015318
func_0201533c kind:function(arm,size=0x20) addr:0x0201533c
_ZN18SomeSaveFileStructD1Ev kind:function(arm,size=0x20) addr:0x0201533c
func_0201535c kind:function(arm,size=0x20) addr:0x0201535c
func_0201537c kind:function(arm,size=0x18) addr:0x0201537c
func_02015394 kind:function(thumb,size=0x12) addr:0x02015394
@@ -764,16 +764,16 @@ func_02015470 kind:function(thumb,size=0x14) addr:0x02015470
_ZN10UnkStruct213func_020154ecEPKc kind:function(thumb,size=0x2a) addr:0x02015484
func_020154b0 kind:function(thumb,size=0x2) addr:0x020154b0
func_020154b4 kind:function(thumb,size=0xc) addr:0x020154b4
func_020154c0 kind:function(thumb,size=0x2) addr:0x020154c0
func_020154c4 kind:function(thumb,size=0x8) addr:0x020154c4
func_020154cc kind:function(thumb,size=0x4) addr:0x020154cc
func_020154d0 kind:function(thumb,size=0x18) addr:0x020154d0
func_020154e8 kind:function(thumb,size=0x1c) addr:0x020154e8
_ZN32UnkStruct_ov000_020b4f84_00_BaseD2Ev kind:function(thumb,size=0x1c) addr:0x02015504
func_02015520 kind:function(thumb,size=0x24) addr:0x02015520
func_02015544 kind:function(thumb,size=0x2a) addr:0x02015544
func_02015570 kind:function(thumb,size=0x18) addr:0x02015570
func_02015588 kind:function(thumb,size=0x38) addr:0x02015588
_ZN32UnkStruct_ov000_020b4f84_00_Base13func_02015528Ev kind:function(thumb,size=0x2) addr:0x020154c0
_ZN32UnkStruct_ov000_020b4f84_00_Base13func_0201552cEv kind:function(thumb,size=0x8) addr:0x020154c4
_ZN32UnkStruct_ov000_020b4f84_00_Base13func_02015534Ev kind:function(thumb,size=0x4) addr:0x020154cc
_ZN32UnkStruct_ov000_020b4f84_00_BaseC1Ev kind:function(thumb,size=0x18) addr:0x020154d0
_ZN32UnkStruct_ov000_020b4f84_00_BaseC1EPviih kind:function(thumb,size=0x1c) addr:0x020154e8
_ZN32UnkStruct_ov000_020b4f84_00_BaseD1Ev kind:function(thumb,size=0x1c) addr:0x02015504
_ZN32UnkStruct_ov000_020b4f84_00_BaseD0Ev kind:function(thumb,size=0x24) addr:0x02015520
_ZN32UnkStruct_ov000_020b4f84_00_Base8vfunc_08Ei kind:function(thumb,size=0x2a) addr:0x02015544
_ZN32UnkStruct_ov000_020b4f84_00_Base8vfunc_0CEv kind:function(thumb,size=0x18) addr:0x02015570
_ZN32UnkStruct_ov000_020b4f84_00_Base8vfunc_10Ei kind:function(thumb,size=0x38) addr:0x02015588
func_020155c0 kind:function(thumb,size=0x1c) addr:0x020155c0
func_020155dc kind:function(thumb,size=0xc) addr:0x020155dc
func_020155e8 kind:function(thumb,size=0x12) addr:0x020155e8
@@ -914,7 +914,7 @@ _ZN12GameModeBase8vfunc_24Ev kind:function(arm,size=0x8) addr:0x02018334
_ZN18UnkStruct_0204a0608vfunc_0CEv kind:function(thumb,size=0x14) addr:0x0201833c
_ZN18UnkStruct_0204a06013func_020183b8Ev kind:function(thumb,size=0x8) addr:0x02018350
_ZN18UnkStruct_0204a06013func_020183c0Ev kind:function(thumb,size=0x14) addr:0x02018358
_ZN18UnkStruct_0204a06013func_020183d4EbPvi kind:function(thumb,size=0x50) addr:0x0201836c
_ZN18UnkStruct_0204a06013func_020183d4EbPFP12GameModeBasevEi kind:function(thumb,size=0x50) addr:0x0201836c
_ZN18UnkStruct_0204a06013func_02018424Ev kind:function(thumb,size=0x14) addr:0x020183bc
_ZN18UnkStruct_0204a060D1Ev kind:function(arm,size=0x14) addr:0x020183d0
_ZN18UnkStruct_0204a060D0Ev kind:function(arm,size=0x1c) addr:0x020183e4
@@ -939,7 +939,7 @@ _ZN19GameModeManagerBase8vfunc_24Ev kind:function(arm,size=0x18) addr:0x02018614
_ZN19GameModeManagerBase8vfunc_28EPc kind:function(arm,size=0x10) addr:0x0201862c
_ZN19GameModeManagerBase8vfunc_2CEPc kind:function(arm,size=0x4) addr:0x0201863c
_ZN19GameModeManagerBase8vfunc_30Ei kind:function(arm,size=0x4c) addr:0x02018640
_ZN19GameModeManagerBase8vfunc_34Ev kind:function(arm,size=0x4) addr:0x0201868c
_ZN19GameModeManagerBase8vfunc_34Eii kind:function(arm,size=0x4) addr:0x0201868c
_ZN19GameModeManagerBase13func_020186f8Ei kind:function(arm,size=0xc) addr:0x02018690
_ZN19GameModeManagerBase13func_02018704Ev kind:function(arm,size=0x10) addr:0x0201869c
_ZN19GameModeManagerBase13func_02018714Eiiiii kind:function(arm,size=0x28) addr:0x020186ac
@@ -967,13 +967,13 @@ _ZN18UnkStruct_0204a11013func_02018d34Ev kind:function(arm,size=0x44) addr:0x020
func_02018d10 kind:function(arm,size=0x174) addr:0x02018d10
func_02018e84 kind:function(arm,size=0xac) addr:0x02018e84
func_02018f30 kind:function(arm,size=0x368) addr:0x02018f30
func_02019298 kind:function(arm,size=0x40) addr:0x02019298
_ZN18UnkStruct_0204a11013func_02019300Ei kind:function(arm,size=0x40) addr:0x02019298
func_020192d8 kind:function(arm,size=0x10) addr:0x020192d8
func_020192e8 kind:function(arm,size=0xb8) addr:0x020192e8
func_020193a0 kind:function(arm,size=0x4c) addr:0x020193a0
func_020193ec kind:function(arm,size=0x88) addr:0x020193ec
func_02019474 kind:function(arm,size=0x38) addr:0x02019474
func_020194ac kind:function(arm,size=0x14) addr:0x020194ac
_ZN18UnkStruct_0204a11013func_02019350Ev kind:function(arm,size=0xb8) addr:0x020192e8
_ZN18UnkStruct_0204a11013func_02019408Ev kind:function(arm,size=0x4c) addr:0x020193a0
_ZN18UnkStruct_0204a11013func_02019454Ev kind:function(arm,size=0x88) addr:0x020193ec
_ZN18UnkStruct_0204a11013func_020194dcEv kind:function(arm,size=0x38) addr:0x02019474
_ZN18UnkStruct_0204a11013func_02019514Ev kind:function(arm,size=0x14) addr:0x020194ac
func_020194c0 kind:function(arm,size=0x10) addr:0x020194c0
_ZN18UnkStruct_0204a11013func_02019538Eii kind:function(arm,size=0x10) addr:0x020194d0
func_020194e0 kind:function(arm,size=0x10) addr:0x020194e0
@@ -1200,7 +1200,7 @@ func_0201fd60 kind:function(arm,size=0xf8) addr:0x0201fd60
func_0201fe58 kind:function(arm,size=0xcc) addr:0x0201fe58
func_0201ff24 kind:function(thumb,size=0x90) addr:0x0201ff24
func_0201ffb4 kind:function(thumb,size=0x24) addr:0x0201ffb4
func_0201ffd8 kind:function(arm,size=0xa4) addr:0x0201ffd8
_ZN18UnkStruct_0204e64c13func_020201c4Ei kind:function(arm,size=0xa4) addr:0x0201ffd8
func_0202007c kind:function(arm,size=0x30) addr:0x0202007c
func_020200ac kind:function(arm,size=0x54) addr:0x020200ac
func_02020100 kind:function(arm,size=0x5c) addr:0x02020100
@@ -2546,8 +2546,8 @@ data_02045408 kind:data(any) addr:0x02045408
data_02045418 kind:data(any) addr:0x02045418
data_02045424 kind:data(any) addr:0x02045424
data_02045440 kind:data(any) addr:0x02045440
data_0204544c kind:data(any) addr:0x0204544c
data_02045468 kind:data(any) addr:0x02045468
_ZTV32UnkStruct_ov000_020b4f84_00_Base kind:data(any) addr:0x02045444
data_02045468 kind:data(any) addr:0x02045460
data_02045484 kind:data(any) addr:0x02045484
data_020454a0 kind:data(any) addr:0x020454a0
data_020454bc kind:data(any) addr:0x020454bc
@@ -2582,7 +2582,7 @@ data_02045880 kind:data(any) addr:0x02045880
data_02045884 kind:data(any) addr:0x02045884
data_020458c8 kind:data(any) addr:0x020458c8
data_020458d4 kind:data(any) addr:0x020458d4
data_020458e0 kind:data(any) addr:0x020458e0
_ZTV24UnkSystem2_UnkSubSystem5 kind:data(any) addr:0x020458d8
data_020458ec kind:data(any) addr:0x020458ec
data_02045904 kind:data(any) addr:0x02045904
_ZTV21UnkStruct_0204e64c_00 kind:data(any) addr:0x02045914
@@ -2750,7 +2750,7 @@ data_0204af48 kind:bss addr:0x0204af48
data_0204af60 kind:bss addr:0x0204af60
data_0204af9c kind:bss addr:0x0204af9c
data_0204afa0 kind:bss addr:0x0204afa0
data_02049a2c kind:bss addr:0x0204afac
gGame kind:bss addr:0x0204afac
data_0204b094 kind:bss addr:0x0204b094
data_02049b18 kind:bss addr:0x0204b098
data_0204b0aa kind:bss addr:0x0204b0aa
+107 -107
View File
@@ -10,115 +10,115 @@ Each overlay is tied to an index which is used to access the overlay in two diff
------|-------------------|---------|------|-------------
`000` | Second | `000` | `0` | Core game engine
`001` | SceneInit | `001` | `1` |
`002` | Collect | `002` | |
`003` | SoftKeyboard | `003` | |
`004` | Factory | `014` | |
`005` | NormalScreen | `004` | |
`006` | Paint | `005` | |
`007` | RailEdit | `006` | |
`008` | GameOver | `007` | |
`009` | CloseUp | `009` | |
`010` | TabMenu | `008` | |
`011` | WorldMap | `010` | |
`012` | PanFlute | `011` | |
`013` | TetsuoMap | `012` | |
`014` | Stamp | `013` | |
`015` | Shop | `015` | |
`016` | RabbitCapture | `016` | |
`017` | CourseExec | `017` | |
`002` | Collect | `002` | `1` |
`003` | SoftKeyboard | `003` | `1` |
`004` | Factory | `014` | `1` | The train part screen, either when editing the train or preview the parts
`005` | NormalScreen | `004` | `1` |
`006` | Paint | `005` | `1` | Map drawing
`007` | RailEdit | `006` | `1` |
`008` | GameOver | `007` | `1` |
`009` | CloseUp | `009` | `1` |
`010` | TabMenu | `008` | `1` |
`011` | WorldMap | `010` | `1` |
`012` | PanFlute | `011` | `1` |
`013` | TetsuoMap | `012` | `1` |
`014` | Stamp | `013` | `1` |
`015` | Shop | `015` | `1` |
`016` | RabbitCapture | `016` | `1` |
`017` | CourseExec | `017` | `2` |
`018` | StartUp | `021` | `4` | Exists briefly on game startup. Initializes RNG, messages, and more.
`019` | MainSelect | `024` | | File Select
`020` | WirelessCommon | `025` | |
`021` | BattleGame | `026` | |
`022` | Download | `027` | | Handles DS download play.
`023` | Wxc | `028` | |
`024` | MainGame | `022` | |
`019` | MainSelect | `024` | `4` | File Select
`020` | WirelessCommon | `025` | `4` |
`021` | BattleGame | `026` | `5` |
`022` | Download | `027` | `5` | Handles DS download play.
`023` | Wxc | `028` | `5` |
`024` | MainGame | `022` | `4` |
`025` | Title | `023` | `4` | Title Screen
`026` | Train | `030` | |
`027` | TrainForest | `058` | |
`028` | TrainSnow | `059` | |
`029` | TrainWater | `060` | |
`030` | TrainFlame | `061` | |
`031` | Land | `029` | |
`032` | MapA1 | `077` | |
`033` | MapA2 | `078` | |
`034` | MapA3 | `079` | |
`035` | MapA4 | `080` | |
`036` | MapA5 | `081` | |
`037` | MapA6 | `082` | |
`038` | MapA7 | `083` | |
`039` | MapA8 | `084` | |
`040` | MapB1 | `085` | |
`041` | MapB2 | `086` | |
`042` | MapB3 | `087` | |
`043` | MapB4 | `088` | |
`044` | MapB5 | `089` | |
`045` | MapB6 | `090` | |
`046` | MapB7 | `091` | |
`047` | MapC1 | `092` | |
`048` | MapC2 | `093` | |
`049` | MapC3 | `094` | |
`050` | MapC4 | `095` | |
`051` | MapC5 | `096` | |
`052` | MapC6 | `097` | |
`053` | MapD1 | `098` | |
`054` | MapD2 | `099` | |
`055` | MapD3 | `100` | |
`056` | MapD4 | `101` | |
`057` | MapD5 | `102` | |
`058` | Field | `032` | |
`059` | InTrain | `047` | |
`060` | Castle | `048` | |
`061` | CastleTown | `049` | |
`062` | Village | `050` | |
`063` | Shrine | `051` | |
`064` | FldForest | `052` | |
`065` | FldSnow | `053` | |
`066` | FldWater | `054` | |
`067` | FldFlame | `055` | |
`068` | FldAjito | `056` | |
`069` | FldRabbit | `057` | |
`070` | Dungeon | `031` | |
`071` | Tower | `033` | `8` |
`072` | TowerLobby | `034` | |
`026` | Train | `030` | `6` |
`027` | TrainForest | `058` | `8` |
`028` | TrainSnow | `059` | `8` |
`029` | TrainWater | `060` | `8` |
`030` | TrainFlame | `061` | `8` |
`031` | Land | `029` | `6` |
`032` | MapA1 | `077` | `13` |
`033` | MapA2 | `078` | `13` |
`034` | MapA3 | `079` | `13` |
`035` | MapA4 | `080` | `13` |
`036` | MapA5 | `081` | `13` |
`037` | MapA6 | `082` | `13` |
`038` | MapA7 | `083` | `13` |
`039` | MapA8 | `084` | `13` |
`040` | MapB1 | `085` | `14` |
`041` | MapB2 | `086` | `14` |
`042` | MapB3 | `087` | `14` |
`043` | MapB4 | `088` | `14` |
`044` | MapB5 | `089` | `14` |
`045` | MapB6 | `090` | `14` |
`046` | MapB7 | `091` | `14` |
`047` | MapC1 | `092` | `15` |
`048` | MapC2 | `093` | `15` |
`049` | MapC3 | `094` | `15` |
`050` | MapC4 | `095` | `15` |
`051` | MapC5 | `096` | `15` |
`052` | MapC6 | `097` | `15` |
`053` | MapD1 | `098` | `16` |
`054` | MapD2 | `099` | `16` |
`055` | MapD3 | `100` | `16` |
`056` | MapD4 | `101` | `16` |
`057` | MapD5 | `102` | `16` |
`058` | Field | `032` | `7` |
`059` | InTrain | `047` | `8` |
`060` | Castle | `048` | `8` |
`061` | CastleTown | `049` | `8` |
`062` | Village | `050` | `8` |
`063` | Shrine | `051` | `8` |
`064` | FldForest | `052` | `8` |
`065` | FldSnow | `053` | `8` |
`066` | FldWater | `054` | `8` |
`067` | FldFlame | `055` | `8` |
`068` | FldAjito | `056` | `8` |
`069` | FldRabbit | `057` | `8` |
`070` | Dungeon | `031` | `7` |
`071` | Tower | `033` | `8` | Tower of Spirit staircase
`072` | TowerLobby | `034` | `8` | Tower of Spirit train station
`073` | BossDeago | `040` | `8` |
`074` | BossLast1 | `041` | `8` |
`075` | BossLast2 | `042` | `8` |
`076` | DgnLv1 | `071` | |
`077` | DgnForest | `043` | |
`078` | BossForest | `035` | |
`079` | DgnSnow | `044` | |
`080` | BossSnow | `036` | |
`081` | DgnLv3 | `072` | |
`082` | DgnWater | `045` | |
`083` | BossWater | `037` | |
`084` | BossFlame | `038` | |
`085` | DgnLv5 | `073` | |
`086` | DgnDesert | `046` | |
`087` | BossDesert | `039` | |
`088` | Stb | `062` | |
`089` | ASR | `063` | |
`090` | TrainNormal | `066` | |
`091` | TrainExtra | `067` | |
`092` | TrainDark | `068` | |
`093` | PlayerSub | `064` | |
`094` | Land2 | `065` | |
`095` | PlayerPhantom | `069` | |
`096` | PlayerZelda | `070` | |
`097` | TrainMsg | `076` | |
`098` | MapWater | `074` | |
`099` | MapLava | `075` | |
`100` | CollectMsg | `020` | |
`101` | SceneInitLand | `018` | |
`102` | CourseExecLand | `019` | |
`103` | PlayerTornado | `103` | | Handles the Whirlwind.
`104` | PlayerBoomerang | `104` | | Handles the Boomerang.
`105` | PlayerWhip | `105` | | Handles the Whip.
`106` | PlayerBow | `106` | | Handles the Bow.
`107` | PlayerSandrock | `107` | | Handles the Sand Wand.
`108` | PlayerPanFlute | `109` | | Handles the Spirit Flute.
`109` | PlayerBomb | `108` | | Handles the Bombs (and potions?)
`110` | PlayerGet | `110` | |
`111` | PlayerDown | `111` | |
`112` | PlayerSceneChange | `112` | |
`113` | PlayerDemo | `113` | |
`076` | DgnLv1 | `071` | `11` |
`077` | DgnForest | `043` | `8` |
`078` | BossForest | `035` | `8` |
`079` | DgnSnow | `044` | `8` |
`080` | BossSnow | `036` | `8` |
`081` | DgnLv3 | `072` | `11` |
`082` | DgnWater | `045` | `8` |
`083` | BossWater | `037` | `8` |
`084` | BossFlame | `038` | `8` |
`085` | DgnLv5 | `073` | `11` |
`086` | DgnDesert | `046` | `8` |
`087` | BossDesert | `039` | `8` |
`088` | Stb | `062` | `9` |
`089` | ASR | `063` | `9` |
`090` | TrainNormal | `066` | `9` |
`091` | TrainExtra | `067` | `9` |
`092` | TrainDark | `068` | `9` |
`093` | PlayerSub | `064` | `9` |
`094` | Land2 | `065` | `9` |
`095` | PlayerPhantom | `069` | `10` |
`096` | PlayerZelda | `070` | `10` |
`097` | TrainMsg | `076` | `12` |
`098` | MapWater | `074` | `12` |
`099` | MapLava | `075` | `12` |
`100` | CollectMsg | `020` | `3` |
`101` | SceneInitLand | `018` | `3` |
`102` | CourseExecLand | `019` | `3` |
`103` | PlayerTornado | `103` | `17` | Handles the Whirlwind.
`104` | PlayerBoomerang | `104` | `17` | Handles the Boomerang.
`105` | PlayerWhip | `105` | `17` | Handles the Whip.
`106` | PlayerBow | `106` | `17` | Handles the Bow.
`107` | PlayerSandrock | `107` | `17` | Handles the Sand Wand.
`108` | PlayerPanFlute | `109` | `17` | Handles the Spirit Flute.
`109` | PlayerBomb | `108` | `17` | Handles the Bombs (and potions?)
`110` | PlayerGet | `110` | `17` |
`111` | PlayerDown | `111` | `17` |
`112` | PlayerSceneChange | `112` | `17` |
`113` | PlayerDemo | `113` | `17` |
+61
View File
@@ -0,0 +1,61 @@
#pragma once
#include "Game/GameMode.hpp"
#include "Game/GameModeStartUp.hpp"
#include "Save/SaveManager.hpp"
#include "global.h"
#include "types.h"
typedef void (*GameUnkCallback1)(void);
typedef void (*GameUnkCallback2)(void);
typedef unk32 (*GameUnkCallback3)(void);
class GameModeFileSelect;
class UnkStruct_02049a2c_1C {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_04;
/* 08 */ STRUCT_PAD(0x08, 0xCC);
/* CC */
UnkStruct_02049a2c_1C();
unk32 func_02013e18(void *param1, unk32 param2);
// data_020437d8 vtable
/* 00 */ virtual ~UnkStruct_02049a2c_1C();
/* 08 */ virtual void vfunc_08();
};
class Game {
public:
/* 00 */ GameModeBase *mpCurrentGameMode;
/* 04 */ GameModeCreateCallback createCallback;
/* 08 */ GameUnkCallback1 mUnk_08; // seems related to entering and leaving houses/grottos??
/* 0C */ unk32 mFrameCounter;
/* 10 */ SaveFile *mpSaveFile;
/* 14 */ GameUnkCallback2 mUnk_14; // only set for wireless stuff?
/* 18 */ GameUnkCallback3 mUnk_18; // same as above
/* 1C */ UnkStruct_02049a2c_1C mUnk_1C;
/* E8 */
Game();
void Run();
void func_02013370(unk32 param1);
bool TrySetCreateCallback(GameModeCreateCallback createCallback);
void func_ov000_020576d0();
void func_ov000_0205770c();
void func_ov018_020c48a4();
void func_ov018_020c48f8(); // loads overlay 0
GameModeFileSelect *GetGameModeFileSelect() {
return (GameModeFileSelect *) this->mpCurrentGameMode;
}
static GameModeStartUp *func_ov018_020c4ba8();
};
extern Game gGame;
+4 -2
View File
@@ -12,8 +12,8 @@ public:
// data_02044018 vtable
/* 00 */ virtual ~GameModeBase();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C() = 0;
/* 08 */ virtual void vfunc_08(); // Init
/* 0C */ virtual void vfunc_0C() = 0; // Update
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
@@ -22,3 +22,5 @@ public:
/* 24 */ virtual unk32 vfunc_24();
/* 28 */
};
typedef GameModeBase *(*GameModeCreateCallback)(void);
+2 -2
View File
@@ -1,8 +1,8 @@
#pragma once
#include "FileSelect/FileSelect.hpp"
#include "Game/Game.hpp"
#include "Game/GameModeManager.hpp"
#include "Unknown/UnkStruct_02049a2c.hpp"
#include "Unknown/UnkStruct_02049bd4.hpp"
#include "Unknown/UnkStruct_0204a110.hpp"
@@ -18,7 +18,7 @@ public:
this->mSaveSlotIndex = 0;
data_02049bd4.func_02014cdc(2);
data_02049bd4.mUnk_02 &= 0xFFFB;
data_02049a2c.func_02013370(1);
gGame.func_02013370(1);
data_0204999c.mUnk_60 = 0xD6D8;
data_ov000_020b504c.func_ov001_020be668();
data_0204a110.func_ov001_020bd514(2, FileSelectManager::Create, 0, 1);
+32 -1
View File
@@ -1,5 +1,6 @@
#pragma once
#include "Game/GameMode.hpp"
#include "Player/TouchControl.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_02049b18.hpp"
@@ -193,7 +194,37 @@ public:
/* 28 */ virtual void vfunc_28(unk8 *param1);
/* 2C */ virtual void vfunc_2C(unk8 *param1);
/* 30 */ virtual void vfunc_30(unk32 param1);
/* 34 */ virtual void vfunc_34();
/* 34 */ virtual void vfunc_34(unk32 param1, unk32 param2);
static GameModeManagerBase *Create(unk32 param1);
};
class TitleScreen;
class MainGame;
class TitleScreenManager_Base : public GameModeManagerBase {
public:
/* 000 (base) */
/* 154 */ GameModeBase *mpGameMode;
TitleScreenManager_Base();
TitleScreen *GetTitleScreen() {
return (TitleScreen *) this->mpGameMode;
}
MainGame *GetMainGame() {
return (MainGame *) this->mpGameMode;
}
// data_ov000_020b1d14 vtable
/* 08 */ virtual ~TitleScreenManager_Base() override;
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2, unk32 param3) override;
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
/* 3C */ virtual void vfunc_3C();
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */
};
extern TitleScreenManager_Base *data_027e0994;
+23
View File
@@ -0,0 +1,23 @@
#pragma once
#include "Game/GameModeManager.hpp"
class MainGameManager : public TitleScreenManager_Base {
public:
/* 000 (base) */
/* 154 */
// data_ov024_020d7c18 vtable
/* 08 */ virtual ~MainGameManager() override;
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2, unk32 param3) override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18() override;
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
/* 2C */ virtual void vfunc_2C(unk8 *param1) override;
/* 30 */ virtual void vfunc_30(unk32 param1) override;
/* 34 */ virtual void vfunc_34(unk32 param1, unk32 param2) override;
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3, unk32 param4) override;
};
+18
View File
@@ -0,0 +1,18 @@
#pragma once
#include "nitro/math.h"
#include "types.h"
// incomplete
class PlayerActor {
public:
/* 00 */ Vec3p mPos;
/* 0C */ Vec3p mPrevPos;
/* 18 */ Vec3p mVel;
/* 24 */ Vec3p mAccel;
/* 30 */ u16 mAngle;
/* 32 */ u8 mInvincibilityTimer;
/* 33 */ u8 mInvincibilityIconTimer; // the blinking icon on top-screen
void func_ov001_020bc820(); // TODO: params
};
+3 -3
View File
@@ -425,9 +425,9 @@ enum AdventureFlag_ {
/* 0x18F */ AdventureFlag_Unk_18F = FLAG(12, 15),
/* 0x190 */ AdventureFlag_Unk_190 = FLAG(12, 16),
/* 0x191 */ AdventureFlag_Unk_191 = FLAG(12, 17),
/* 0x192 */ AdventureFlag_Unk_192 = FLAG(12, 18),
/* 0x193 */ AdventureFlag_Unk_193 = FLAG(12, 19),
/* 0x194 */ AdventureFlag_Unk_194 = FLAG(12, 20),
/* 0x192 */ AdventureFlag_ObtainedBeedleFreebieCard = FLAG(12, 18),
/* 0x193 */ AdventureFlag_ObtainedBeedleQuintuplePointsCard = FLAG(12, 19),
/* 0x194 */ AdventureFlag_ObtainedBeedlePointsCard = FLAG(12, 20),
/* 0x195 */ AdventureFlag_Unk_195 = FLAG(12, 21),
/* 0x196 */ AdventureFlag_Unk_196 = FLAG(12, 22),
/* 0x197 */ AdventureFlag_Unk_197 = FLAG(12, 23),
+1 -1
View File
@@ -395,7 +395,7 @@ public:
void LoadEquipItem(ItemFlag equipId);
SysFault *func_020148d0(unk32 param1);
void func_020148d0(OverlayIndex index);
void func_02014994(unk32 param1);
};
+7
View File
@@ -52,6 +52,7 @@ struct Random {
return result;
}
#ifdef __MWERKS__
Vec2us &NextPos(u16 xMax, u16 yMax) {
Vec2us pos;
@@ -60,6 +61,12 @@ struct Random {
return pos;
}
#else
const Vec2us NextPos(u16 xMax, u16 yMax) {
const Vec2us pos = {(u16) this->Next32(0, xMax), (u16) this->Next32(0, yMax)};
return pos;
}
#endif
void Init();
};
+3 -2
View File
@@ -5,10 +5,11 @@
class SysFault {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk8 mUnk_04;
/* 05 */ unk8 mUnk_05;
/* 04 */ u8 mUnk_04;
/* 05 */ u8 mUnk_05;
void func_020125a4(char *file, u16 line, char *msg, ...);
void func_020127f0(unk32 param1);
void func_ov018_020c4840();
};
+26 -18
View File
@@ -1,37 +1,45 @@
#pragma once
#include "System/SysFault.hpp"
#include "global.h"
#include "types.h"
#include <stddef.h>
#define GAME_ASSERT(cond, line, msg, ...) \
(!(cond) ? data_02049984.func_020125a4(__FILE__, (line), (msg), __VA_ARGS__) : ((void) 0))
#define ASSERT(cond, msg, ...) GAME_ASSERT(cond, __LINE__, msg, __VA_ARGS__)
typedef u32 UnkId;
enum __UnkId {
UnkId_EXPH = 'EXPH',
UnkId_FRMH = 'FRMH',
UnkId_UNTH = 'UNTH',
UnkId_UNSH = 'UNSH',
UnkId_EXPH = 'EXPH', // Expanded Heap?
UnkId_FRMH = 'FRMH', // Frame Heap?
UnkId_UNTH = 'UNTH', // Unit Heap?
UnkId_UNSH = 'UNSH', // Unspecified Heap?
};
typedef u32 HeapIndex;
typedef s16 HeapIndex16;
enum HeapIndex_ {
HeapIndex_0 = 0,
HeapIndex_1 = 1,
HeapIndex_2 = 2,
HeapIndex_3 = 3,
HeapIndex_4 = 4,
HeapIndex_5 = 5,
HeapIndex_6 = 6,
HeapIndex_7 = 7,
HeapIndex_8 = 8,
HeapIndex_Max = 9
HeapIndex_Main = 0, // UnkId_FRMH
HeapIndex_1 = 1, // UnkId_EXPH
HeapIndex_2 = 2, // UnkId_UNSH
HeapIndex_ITCM = 3, // UnkId_UNSH
HeapIndex_DTCM = 4, // ?
HeapIndex_5 = 5, // ?
HeapIndex_6 = 6, // UnkId_FRMH
HeapIndex_7 = 7, // ?
HeapIndex_8 = 8, // ?
HeapIndex_Max = 9
};
class SysObject {
public:
static void operator delete[](void *ptr);
void operator delete[](void *ptr);
};
static void *operator new(unsigned long length, u32 id, u32 idLength = 4);
static void *operator new[](unsigned long length, u32 id, u32 idLength = 4);
void *operator new(size_t length, u32 id, u32 idLength = 4);
void *operator new[](size_t length, u32 id, u32 idLength = 4);
class UnkStruct_02011e10_Sub1 {
public:
@@ -51,7 +59,7 @@ public:
class UnkStruct_02011e10 : public SysObject {
public:
/* 00 */ UnkStruct_02011e10_Sub1 *mUnk_00[HeapIndex_Max];
/* 00 */ UnkStruct_02011e10_Sub1 *mUnk_00[HeapIndex_Max]; // the pointer seems to match arena lo
/* 24 */ unk32 mUnk_24[2];
/* 28 */ STRUCT_PAD(0x2C, 0x5C);
/* 5C */ unk32 mUnk_5C;
+3 -22
View File
@@ -1,6 +1,7 @@
#pragma once
#include "Game/GameModeManager.hpp"
#include "System/SysNew.hpp"
#include "Unknown/Common.hpp"
#include "regs.h"
#include "types.h"
@@ -23,23 +24,6 @@ enum TitleScreenState_ {
TitleScreenState_Max = 6
};
class TitleScreenManager_Base : public GameModeManagerBase {
public:
/* 000 (base) */
/* 154 */
TitleScreenManager_Base();
// data_ov000_020b1d14 vtable
/* 08 */ virtual ~TitleScreenManager_Base() override;
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2, unk32 param3) override;
/* 38 */ virtual void vfunc_38();
/* 3C */ virtual void vfunc_3C();
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */
};
class TitleScreen_Sub2 : public GameModeLinkListNode {
public:
/* 00 (vtable) */
@@ -197,11 +181,10 @@ public:
class TitleScreenManager : public TitleScreenManager_Base {
public:
/* 000 (base) */
/* 154 */ TitleScreen *mpTitleScreen;
/* 158 */
TitleScreenManager(unk32 param1) NO_INLINE {
this->mpTitleScreen = NULL;
this->mpGameMode = NULL;
GX_SetGraphicsMode(1, 0, 1);
GXS_SetGraphicsMode(5);
REG_BG3CNT_SUB = (REG_BG3CNT_SUB & 0x0043) | 0x4E14;
@@ -217,9 +200,7 @@ public:
/* 24 */ virtual void vfunc_24() override;
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
/* 2C */ virtual void vfunc_2C(unk8 *param1) override;
/* 38 */ virtual void vfunc_38() override;
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3, unk32 param4) override;
static TitleScreenManager *Create(unk32 param1);
};
extern TitleScreenManager *data_027e0994;
+48 -32
View File
@@ -4,6 +4,7 @@
#include "System/SysNew.hpp"
#include "global.h"
#include "nitro/math.h"
#include "nns/text.h"
#include "types.h"
extern "C" void func_0201e8d4(void *param1, void *param2);
@@ -566,13 +567,15 @@ public:
/* 044 */ unk32 mUnk_044;
/* 048 */ unk32 mUnk_048;
/* 04C */ unk32 mUnk_04C;
/* 050 */ STRUCT_PAD(0x50, 0x130);
/* 050 */ STRUCT_PAD(0x50, 0x130); // e0
UnkSystem2_UnkSubSystem5_Base_10();
// data_ov000_020b20fc (vtable)
/* 00 */ virtual ~UnkSystem2_UnkSubSystem5_Base_10();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10();
/* 10 */ virtual void vfunc_10(void *param1);
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 1C */ virtual void vfunc_1C();
@@ -590,35 +593,18 @@ public:
/* 4C */
};
class UnkSystem2_UnkSubSystem5_Base {
public:
/* 000 (vtable) */
/* 004 */ wchar_t *mpString; // in this context it points to the player's name
/* 008 */ unk16 mUnk_008;
/* 00A */ unk16 mUnk_00A;
/* 00C */ void *mUnk_00C;
/* 010 */ UnkSystem2_UnkSubSystem5_Base_10 mUnk_010;
~UnkSystem2_UnkSubSystem5_Base();
/* 00 */ virtual void vfunc_00();
/* 04 */
struct UnkSystem2_UnkSubSystem11_Base_1C {
u8 pad[0x10];
};
class UnkSystem2_UnkSubSystem11 {
class UnkSystem2_UnkSubSystem11_Base {
public:
/* 00 (vtable) */
/* 04 */ void *mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */ void *mUnk_18;
/* 1C */ void *mUnk_1C;
/* 20 */
/* 04 */ Text_UnkStruct2 mUnk_04;
/* 1C */ UnkSystem2_UnkSubSystem11_Base_1C mUnk_1C; // +0x24: space between characters, set from BMG INF1 entry
/* 2C */
void func_ov000_02061f60();
~UnkSystem2_UnkSubSystem11();
UnkSystem2_UnkSubSystem11_Base(); // func_ov000_02061ce0
// data_ov000_020b1e9c vtable
/* 00 */ virtual void vfunc_00();
@@ -627,10 +613,31 @@ public:
/* 0C */ virtual void vfunc_0C();
};
// this class seems related to drawing strings?
class UnkSystem2_UnkSubSystem5 : public UnkSystem2_UnkSubSystem5_Base {
class UnkSystem2_UnkSubSystem11 : public UnkSystem2_UnkSubSystem11_Base {
public:
/* 000 (base) */
/* 00 (base) */
/* 2C */ STRUCT_PAD(0x2C, 0xE8);
/* E8 */
UnkSystem2_UnkSubSystem11(); // func_ov000_02061f30
~UnkSystem2_UnkSubSystem11();
void func_ov000_02061f60();
// data_ov000_020b1e9c vtable
/* 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 UnkSystem2_UnkSubSystem5_Base {
public:
/* 000 (vtable) */
/* 004 */ wchar_t *mpString; // in this context it points to the player's name
/* 008 */ unk16 mUnk_008; // UnkSystem2_UnkSubSystem5()'s param1
/* 00A */ unk16 mUnk_00A; // UnkSystem2_UnkSubSystem5()'s param2
/* 00C */ void *mUnk_00C;
/* 010 */ UnkSystem2_UnkSubSystem5_Base_10 mUnk_010;
/* 130 */ STRUCT_PAD(0x130, 0x140);
/* 140 */ unk16 mUnk_140;
/* 142 */ unk16 mUnk_142;
@@ -641,12 +648,21 @@ public:
/* 14D */ unk8 mUnk_14D; // 0x545
/* 14E */ unk8 mUnk_14E; // 0x546
/* 14F */ unk8 mUnk_14F; // 0x547
UnkSystem2_UnkSubSystem5_Base(UnkSystem2_UnkSubSystem11 *param1, unk32 param2, unk32 param3); // func_0201f288
~UnkSystem2_UnkSubSystem5_Base();
/* 00 */ virtual void vfunc_00();
/* 04 */
};
// this class seems related to drawing strings?
class UnkSystem2_UnkSubSystem5 : public UnkSystem2_UnkSubSystem5_Base {
public:
/* 000 (base) */
/* 150 */ UnkSystem2_UnkSubSystem11 mUnk_150;
/* 170 */ void *mUnk_170;
/* 144 */ STRUCT_PAD(0x174, 0x238);
/* 238 */
UnkSystem2_UnkSubSystem5() {}
UnkSystem2_UnkSubSystem5(unk32 param1, unk32 param2);
~UnkSystem2_UnkSubSystem5() {}
-52
View File
@@ -1,52 +0,0 @@
#pragma once
#include "Game/GameMode.hpp"
#include "Game/GameModeStartUp.hpp"
#include "global.h"
#include "types.h"
class GameModeFileSelect;
class UnkStruct_02049a2c_1C {
public:
/* 00 (vtable) */
/* 04 */
UnkStruct_02049a2c_1C();
// data_020437d8 vtable
/* 00 */ virtual ~UnkStruct_02049a2c_1C();
/* 08 */ virtual void vfunc_08();
};
class UnkStruct_02049a2c {
public:
/* 00 */ GameModeBase *mUnk_00;
/* 04 */ void *mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1C */ UnkStruct_02049a2c_1C mUnk_1C;
/* 20 */ unk32 mUnk_20;
/* 24 */ STRUCT_PAD(0x24, 0xE8);
/* E8 */
UnkStruct_02049a2c();
void Run(void);
void func_02013370(unk32 param1);
bool func_02013724(void *param1);
void func_ov018_020c48a4(unk32 param1);
void func_ov018_020c48f8(); // loads overlay 0
GameModeFileSelect *GetUnk00_FileSelect() {
return (GameModeFileSelect *) this->mUnk_00;
}
static GameModeStartUp *func_ov018_020c4ba8();
};
extern UnkStruct_02049a2c data_02049a2c;
+3
View File
@@ -24,6 +24,9 @@ public:
UnkStruct_02049b18();
~UnkStruct_02049b18();
void func_02013768();
void func_02013840(u16 param1, unk32 param2);
void func_020138f4(unk32 param1);
};
extern UnkStruct_02049b18 data_02049b18;
+15
View File
@@ -0,0 +1,15 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_02049b74 {
public:
/* 00 */ unk32 mUnk_00;
UnkStruct_02049b74();
~UnkStruct_02049b74();
void func_02013a44(unk32 param1);
};
extern UnkStruct_02049b74 data_02049b74;
+1
View File
@@ -10,6 +10,7 @@ public:
void func_02014c60(unk32 param1);
void func_02014cdc(unk32 param1);
void func_02014d98();
};
extern UnkStruct_02049bd4 data_02049bd4;
+6 -3
View File
@@ -1,11 +1,14 @@
#pragma once
#include "Game/GameMode.hpp"
#include "Game/GameModeManager.hpp"
#include "System/SysNew.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
#include "types.h"
class GameModeFileSelect;
class UnkStruct_0204a060_Base3 : public SysObject {
public:
/* 00 (vtable) */
@@ -64,13 +67,13 @@ public:
class UnkStruct_0204a060 : public UnkStruct_0204a060_Base {
public:
/* 00 (base) */
/* 24 */ void *callback; //! TODO: is it a PTMF?
/* 24 */ GameModeCreateCallback createCallback;
UnkStruct_0204a060();
void func_020183c0(void);
bool func_020183d4(bool param1, void *param2, unk32 param3);
static void func_02018424(void); //! TODO: is it a PTMF?
bool func_020183d4(bool param1, GameModeCreateCallback createFunc, unk32 param3);
static GameModeFileSelect *func_02018424(void);
// data_02044048 vtable
/* 00 */ virtual ~UnkStruct_0204a060() override;
+7 -5
View File
@@ -13,18 +13,20 @@ public:
~UnkStruct_0204a088_Base(); //! TODO: most likely inlined but can't make it work for some reasons
};
// members 00 04 and 08 are used in data_ov000_020b1d74 to figure out which overlay to load next in slot 1
class UnkStruct_0204a088 : public UnkStruct_0204a088_Base {
public:
/* 000 */ unk32 mUnk_00;
/* 000 */ unk32 mUnk_04;
/* 000 */ unk32 mUnk_08;
/* 00C */ FileSelectManager_UnkDrawBase mUnk_0C[23];
/* 000 */ unk32 mUnk_00; // current index
/* 000 */ unk32 mUnk_04; // prev index
/* 000 */ unk32 mUnk_08; // next index
/* 00C */ FileSelectManager_UnkDrawBase mUnk_0C[23]; // 23 possible overlays
/* 120 */ u16 mUnk_120;
/* 122 */ unk16 mUnk_122;
/* 123 */ unk8 mUnk_123;
void func_ov000_02061098(void);
void func_ov000_020611dc(void *param1, unk32 param2);
void func_ov000_020611fc(unk32 param2);
void func_ov000_020611fc(unk32 param2); // sets new index
void func_ov000_02061224(void);
void func_ov000_02061230(void);
void func_ov000_02061248(void);
+8 -1
View File
@@ -175,7 +175,8 @@ public:
class UnkStruct_0204a110 {
public:
/* 000 */ unk32 mUnk_000;
/* 004 */ unk32 mUnk_004;
/* 004 */ u16 mUnk_004;
/* 004 */ unk16 mUnk_006;
/* 008 */ unk32 mUnk_008;
/* 00C */ unk32 mUnk_00C;
/* 010 */ UnkStruct_0204a110_Sub2 mUnk_010;
@@ -216,6 +217,12 @@ public:
void func_020195a0(const char *param1, unk32 param2, unk32 param3, unk32 param4);
void func_0201967c(unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
void func_02019538(unk32 param1, unk32 param2);
unk32 func_02019300(unk32 param1);
void func_02019350();
void func_020194dc();
void func_02019408();
void func_02019454();
unk32 func_02019514();
void func_ov001_020bd514(unk32 param1, void *param2, unk32 param3, unk32 param4);
void func_ov001_020bd58c(void);
+2 -1
View File
@@ -12,7 +12,7 @@ public:
/* 06 */ unk16 mUnk_06;
/* 08 */ unk16 mUnk_08;
/* 0A */ unk8 mUnk_0A;
/* 0B */ unk8 mUnk_0B;
/* 0B */ u8 mUnk_0B; // bool?
/* 0C */ unk8 mUnk_0C;
/* 0D */ unk8 mUnk_0D;
/* 0E */ unk8 mUnk_0E;
@@ -35,6 +35,7 @@ public:
UnkStruct_0204e64c();
~UnkStruct_0204e64c();
void func_020201c4(unk32 param1);
};
extern UnkStruct_0204e64c data_0204e64c;
+23
View File
@@ -0,0 +1,23 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_027e0208 {
public:
/* 000 */ unk32 mUnk_000;
/* 004 */ STRUCT_PAD(0x04, 0xE0);
/* 0E0 */ unk32 mUnk_0E0;
/* 0E4 */ unk32 mUnk_0E4;
/* 0E8 */ unk32 mUnk_0E8;
/* 0EC */ unk32 mUnk_0EC;
/* 0F0 */ unk32 mUnk_0F0;
/* 0F4 */ unk32 mUnk_0F4;
/* 0F4 */ unk32 mUnk_0F8;
/* 0F4 */ unk32 mUnk_0FC;
UnkStruct_027e0208();
~UnkStruct_027e0208();
};
extern UnkStruct_027e0208 data_027e0208;
+35
View File
@@ -0,0 +1,35 @@
#pragma once
#include "Item/ItemManager.hpp"
#include "Player/Player.hpp"
#include "Player/TouchControl.hpp"
#include "global.h"
#include "nitro/button.h"
// incomplete
class UnkStruct_027e0478 {
public:
/* 000 */ void *mUnk_000; // set to -1 on land and to a pointer on train?
/* 004 */ void *mUnk_004;
/* 008 */ ItemManager *mpItemManager;
/* 00C */ Input mButtons;
/* 012 */ unk16 mUnk_012;
/* 014 */ TouchControl mTouchControl;
/* 036 */ STRUCT_PAD(0x36, 0xF0);
/* 0F0 */ unk32 mUnk_0F0; // seems to be the walking speed of link??
/* 0F4 */ unk32 mUnk_0F4;
/* 0F8 */ unk32 mUnk_0F8;
/* 0FC */ unk32 mUnk_0FC;
/* 100 */ unk32 mUnk_100;
/* 104 */ unk8 mUnk_104;
/* 105 */ unk8 mUnk_105; // set to 0 on idle, set to 3 when pulling out an item
/* 106 */ unk8 mUnk_106;
/* 107 */ unk8 mUnk_107;
/* 108 */ void *mUnk_108; // vtable
/* 10C */ void *mUnk_10C; // linklist?
/* 110 */ void *mUnk_110;
/* 114 */ STRUCT_PAD(0x114, 0x154);
/* 154 */ PlayerActor mPlayer;
};
extern UnkStruct_027e0478 data_027e0478;
+210 -17
View File
@@ -1,9 +1,144 @@
#pragma once
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_0204a060.hpp"
#include "global.h"
#include "types.h"
/*
naming scheme:
- test_xxx: debug area
- e3_xxx: E3 demo area
- t_xxx: "T" for "Train" -> overworld area
- d_xxx: "D" for "Dungeon" -> dungeon area
- b_xxx: "B" for "Boss" -> dungeon boss area
- f_xxx: "F" for "Field" -> normal gameplay area (also known as a "land" area)
*/
enum SceneIndex {
/* 0 */ SceneIndex_test_trn = 0x00, //
/* 1 */ SceneIndex_test_trn2 = 0x01, //
/* 2 */ SceneIndex_test_pre = 0x02, //
/* 3 */ SceneIndex_test_iwa = 0x03, //
/* 4 */ SceneIndex_t_area0 = 0x04, // Forest Realm
/* 5 */ SceneIndex_t_area1 = 0x05, // Snow Realm
/* 6 */ SceneIndex_t_area2 = 0x06, // Ocean Realm
/* 7 */ SceneIndex_t_area3 = 0x07, // Fire Realm
/* 8 */ SceneIndex_t_tutorial = 0x08, //
/* 9 */ SceneIndex_t_forest = 0x09, //
/* 10 */ SceneIndex_t_smarine = 0x0A, //
/* 11 */ SceneIndex_t_smount = 0x0B, // rocktite scene?
/* 12 */ SceneIndex_t_smount2 = 0x0C, // rocktite scene?
/* 13 */ SceneIndex_t_smount3 = 0x0D, // rocktite fire realm scene?
/* 14 */ SceneIndex_t_minigame = 0x0E, // goron target range minigame
/* 15 */ SceneIndex_t_dark = 0x0F, // Dark Realm
/* 16 */ SceneIndex_t_eviltrain = 0x10, // train cole fight
/* 17 */ SceneIndex_t_eviltrain2 = 0x11, // same as above
/* 18 */ SceneIndex_t_eviltrain3 = 0x12, // same as above
/* 19 */ SceneIndex_d_main = 0x13, // Tower Of Spirits
/* 20 */ SceneIndex_d_main_f = 0x14, // ToS base
/* 21 */ SceneIndex_d_main_s = 0x15, // ToS top stairs
/* 22 */ SceneIndex_d_main_a = 0x16, // ToS altar
/* 23 */ SceneIndex_d_main_w = 0x17, // ToS inner Stairs
/* 24 */ SceneIndex_d_tutorial = 0x18, // Tunnel to ToS
/* 25 */ SceneIndex_d_forest = 0x19, // Forest Temple
/* 26 */ SceneIndex_d_snow26 = 0x1A, // Snow Temple
/* 27 */ SceneIndex_d_water27 = 0x1B, // Water Temple
/* 28 */ SceneIndex_d_flame = 0x1C, // Fire Temple
/* 29 */ SceneIndex_d_sand = 0x1D, // Sand Temple
/* 30 */ SceneIndex_b_forest = 0x1E, // Stagnox
/* 31 */ SceneIndex_b_snow = 0x1F, // Fraaz
/* 32 */ SceneIndex_b_water = 0x20, // Phytops
/* 33 */ SceneIndex_b_flame = 0x21, // Cragma
/* 34 */ SceneIndex_b_sand = 0x22, // Skeldritch
/* 35 */ SceneIndex_b_deago = 0x23, // Byrne
/* 36 */ SceneIndex_b_last1 = 0x24, // demon zelda train
/* 37 */ SceneIndex_b_last2 = 0x25, // malladus beast 1
/* 38 */ SceneIndex_b_last22 = 0x26, // malladus song
/* 39 */ SceneIndex_b_last23 = 0x27, // mallasdus beast 2
/* 40 */ SceneIndex_f_hyral = 0x28, // hyrule castle
/* 41 */ SceneIndex_f_htown = 0x29, // castle town
/* 42 */ SceneIndex_f_forest1 = 0x2A, // Whittleton
/* 43 */ SceneIndex_f_snow = 0x2B, // Anouki Village
/* 44 */ SceneIndex_f_water = 0x2C, // Papuchia Village
/* 45 */ SceneIndex_f_flame = 0x2D, // Goron Village
/* 46 */ SceneIndex_f_flame5 = 0x2E,
/* 47 */ SceneIndex_f_first = 0x2F, // Aboda Village
/* 48 */ SceneIndex_f_forest2 = 0x30, // Forest Sanctuary
/* 49 */ SceneIndex_f_snow2 = 0x31, // Snow Sanctuary
/* 50 */ SceneIndex_f_water2 = 0x32, // Water Sanctuary
/* 51 */ SceneIndex_f_flame2 = 0x33, // Fire Sanctuary
/* 52 */ SceneIndex_f_sand = 0x34, // Sand Sanctuary
/* 53 */ SceneIndex_f_tetsuo = 0x35, // Icy Spring
/* 54 */ SceneIndex_f_bridge = 0x36, // Bridge Worker's House
/* 55 */ SceneIndex_f_bridge2 = 0x37, // Trading Post
/* 56 */ SceneIndex_f_forest3 = 0x38, // whittleton forest
/* 57 */ SceneIndex_f_water3 = 0x39, // papuchia south
/* 58 */ SceneIndex_f_ajito = 0x3A, // Pirate Hideout
/* 59 */ SceneIndex_f_ajito2 = 0x3B, // same as above
/* 60 */ SceneIndex_f_flame3 = 0x3C, // Goron Target Range
/* 61 */ SceneIndex_f_flame4 = 0x3D, // Dark Ore Mine
/* 62 */ SceneIndex_f_rabbit = 0x3E, // Rabbit Haven
/* 63 */ SceneIndex_f_kakushi1 = 0x3F, // Snowdrift Station
/* 64 */ SceneIndex_f_kakushi2 = 0x40, // Disorientation Station
/* 65 */ SceneIndex_f_kakushi3 = 0x41, // Ends of the Earth Station
/* 66 */ SceneIndex_f_kakushi4 = 0x42, // train required?
/* 67 */ SceneIndex_f_pirate = 0x43, // Train passenger pirate attack (including Carben)
/* 68 */ SceneIndex_f_passenger = 0x44, // Anjean force gem
/* 69 */ SceneIndex_f_trnnpc = 0x45, // Ferrus encounter
/* 70 */ SceneIndex_tekiya00 = 0x46, // take em all on?
/* 71 */ SceneIndex_tekiya01 = 0x47, // take em all on?
/* 72 */ SceneIndex_tekiya02 = 0x48, // take em all on?
/* 73 */ SceneIndex_tekiya03 = 0x49, // take em all on?
/* 74 */ SceneIndex_tekiya04 = 0x4A, // take em all on?
/* 75 */ SceneIndex_tekiya05 = 0x4B, // take em all on?
/* 76 */ SceneIndex_tekiya06 = 0x4C, // take em all on?
/* 77 */ SceneIndex_tekiya07 = 0x4D, // take em all on?
/* 78 */ SceneIndex_tekiya08 = 0x4E, // take em all on?
/* 79 */ SceneIndex_tekiya09 = 0x4F, // take em all on?
/* 80 */ SceneIndex_demo_train = 0x50, // title screen?
/* 81 */ SceneIndex_e3_train = 0x51, // ?
/* 82 */ SceneIndex_e3_dungeon = 0x52, // ?
/* 83 */ SceneIndex_e3_boss = 0x53, // forest temple boss
/* 84 */ SceneIndex_e3_bossm = 0x54, // fake forest temple room
/* 85 */ SceneIndex_e3_smount = 0x55, // ?
/* 86 */ SceneIndex_test_hiratsu = 0x56, // ?
/* 87 */ SceneIndex_test_sik = 0x57, // ?
/* 88 */ SceneIndex_test_fuj = 0x58, // ?
/* 89 */ SceneIndex_test_nit = 0x59, // ?
/* 90 */ SceneIndex_test_mri = 0x5A, // ?
/* 91 */ SceneIndex_test_morita = 0x5B, // ?
/* 92 */ SceneIndex_test_yamaz = 0x5C, // ?
/* 93 */ SceneIndex_test_sako = 0x5D, // ?
/* 94 */ SceneIndex_test_kita = 0x5E, // ?
/* 95 */ SceneIndex_test_take = 0x5F, // ?
/* 96 */ SceneIndex_test_suzuki = 0x60, // ?
/* 97 */ SceneIndex_test_okane = 0x61, // ?
/* 98 */ SceneIndex_test_dera = 0x62, // ?
/* 99 */ SceneIndex_test_hosaka = 0x63, // ?
/* 100 */ SceneIndex_test_hosaka_f = 0x64, // ?
/* 101 */ SceneIndex_test_kato = 0x65, // ?
/* 102 */ SceneIndex_test_okane_f = 0x66, // ?
/* 103 */ SceneIndex_test_yamaz_f = 0x67, // ?
/* 104 */ SceneIndex_test_sako_f = 0x68, // ?
/* 105 */ SceneIndex_test_take_f = 0x69, // ?
/* 106 */ SceneIndex_test_kiuchi = 0x6A, // ?
/* 107 */ SceneIndex_test_dera_f = 0x6B, // ?
/* 108 */ SceneIndex_test_slope = 0x6C, // ?
/* 109 */ SceneIndex_battle01 = 0x6D, // battle mode?
/* 110 */ SceneIndex_battle02 = 0x6E, // battle mode?
/* 111 */ SceneIndex_battle03 = 0x6F, // battle mode?
/* 112 */ SceneIndex_battle04 = 0x70, // battle mode?
/* 113 */ SceneIndex_battle05 = 0x71, // battle mode?
/* 114 */ SceneIndex_battle06 = 0x72, // battle mode?
/* 115 */ SceneIndex_battle07 = 0x73, // battle mode?
/* 116 */ SceneIndex_battle08 = 0x74, // battle mode?
/* 117 */ SceneIndex_battle09 = 0x75, // battle mode?
/* 118 */ SceneIndex_battle10 = 0x76, // battle mode?
/* 119 */ SceneIndex_battle11 = 0x77, // battle mode?
/* 120 */ SceneIndex_battle12 = 0x78, // battle mode?
/* 121 */ SceneIndex_Max = 0x79
};
struct UnkStruct_027e09a4_58_78 {
unk32 mUnk_00;
unk32 mUnk_04;
@@ -22,31 +157,89 @@ struct UnkStruct_func_01ffd400 {
/* 1B */ u8 mUnk_1B;
};
struct UnkStruct_SceneChange1 {
/* 00 */ unk32 nextSceneIndex;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk16 mUnk_08;
/* 0A */ unk8 mUnk_0A;
/* 0B */ unk8 mUnk_0B;
/* 0C */ unk8 mUnk_0C;
/* 0D */ unk8 mUnk_0D;
/* 0E */ unk8 mUnk_0E;
/* 0F */ unk8 mUnk_0F;
/* 10 */ unk8 mUnk_10;
/* 11 */ unk8 mUnk_11;
/* 12 */ unk8 mUnk_12;
/* 13 */ unk8 mUnk_13;
/* 14 */
UnkStruct_SceneChange1() {
this->nextSceneIndex = SceneIndex_Max;
this->mUnk_04 = 0;
this->mUnk_08 = 0;
this->mUnk_0A = 0xFF;
this->mUnk_0B = 0;
this->mUnk_0C = 0;
this->mUnk_0D = 0;
this->mUnk_0E = 0x2B;
this->mUnk_0F = 0;
this->mUnk_10 = 0;
}
};
class UnkStruct_WarpUnk1 : public UnkStruct_0204a060_Base {
public:
/* 00 (base) */
/* 24 */ STRUCT_PAD(0x24, 0x78);
/* 78 */ UnkStruct_SceneChange1 mUnk_78;
/* 8C */ unk32 mNextSceneIndex;
/* 90 */ STRUCT_PAD(0x90, 0xB4);
/* B4 */ unk32
mSpawnTransitionType; // the behavior of Link when entering a new scene (walk from the entrance, stay still etc)
};
class UnkStruct_027e09a4 : public SysObject {
public:
/* 00 */ unk32 mUnk_00;
/* 00 */ unk32 mSceneIndex; // the scene index of the current area, this isn't saved when you save the game
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ u8 mUnk_0C;
/* 0D */ STRUCT_PAD(0x0D, 0x60);
/* 0D */ unk8 mUnk_0D;
/* 0E */ unk8 mUnk_0E;
/* 0F */ unk8 mUnk_0F;
/* 10 */ unk32 *mUnk_10;
/* 14 */ unk32 mSavedSceneIndex;
/* 18 */ unk32 mUnk_18;
/* 1C */ unk8 mUnk_1C;
/* 1D */ unk8 mUnk_1D;
/* 1E */ unk8 mSavedHouseIndex; // this changes when you enter a house, it's not clear if it has another purpose yet
/* 1F */ unk8 mSavedSpawnIndex; // changing this then saving will change your spawn location after opening the save again
// (not the area)
/* 20 */ unk32 mUnk_20;
/* 24 */ STRUCT_PAD(0x24, 0x54);
/* 54 */ void *mUnk_54; // vtable
/* 58 */ UnkStruct_WarpUnk1 *mpWarpUnk1;
/* 5C */ unk32 mUnk_5C;
/* 60 */ unk32 mUnk_60;
/* 64 */ unk32 mUnk_64;
/* 68 */
bool UnkCheck(unk32 value) {
switch (value) {
case 0x03:
case 0x13:
case 0x42:
case 0x5A:
case 0x5B:
case 0x5D:
case 0x63:
bool UnkCheck(unk32 sceneIndex) {
switch (sceneIndex) {
case SceneIndex_test_iwa:
case SceneIndex_d_main:
case SceneIndex_f_kakushi4:
case SceneIndex_test_mri:
case SceneIndex_test_morita:
case SceneIndex_test_sako:
case SceneIndex_test_hosaka:
return true;
case 0x5C:
case 0x5E:
case 0x5F:
case 0x60:
case 0x61:
case 0x62:
case SceneIndex_test_yamaz:
case SceneIndex_test_kita:
case SceneIndex_test_take:
case SceneIndex_test_suzuki:
case SceneIndex_test_okane:
case SceneIndex_test_dera:
default:
break;
}
+1 -1
View File
@@ -37,7 +37,7 @@ public:
/* 03 */ unk8 mUnk_03;
/* 04 */ unk32 *mUnk_04;
/* 08 */ unk32 *mUnk_08;
/* 0c */ unk32 *mUnk_0c;
/* 0c */ unk32 *mUnk_0c; // vtable
/* 10 */ unk32 *mUnk_10;
/* 14 */ unk32 *mUnk_14;
/* 18 */ unk32 *mUnk_18;
+3 -3
View File
@@ -10,11 +10,11 @@ public:
class UnkStruct_027e0ce8 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 00 */ void *mUnk_00; // pointer to polygon list?
/* 04 */ void *mUnk_04; // pointer to the end of that list
/* 08 */ UnkStruct_func_01fff520_ret **mUnk_08;
UnkStruct_func_01fff520_ret **func_01fff520(UnkStruct_ov000_020b34c4 *param1, unk32);
UnkStruct_func_01fff520_ret **func_01fff520(UnkStruct_ov000_020b34c4 *param1, void *);
unk32 func_01fff498(UnkStruct_ov000_0208f820_04 param1);
};
+1 -1
View File
@@ -103,7 +103,7 @@ public:
/* 004 */ GameModeManagerBase_004 *mUnk_004;
/* 008 */ UnkStruct_ov000_02067bc4_Sub2 *mUnk_008;
/* 00C */ UnkStruct_ov000_020b504c_Sub4 mUnk_00C[7];
/* 028 */ unk32 mUnk_028;
/* 028 */ unk32 mUnk_028; // pointer to the subsystem that handles drawing the textboxes
/* 02C */ unk32 mUnk_02C;
/* 030 */ unk32 mUnk_030;
/* 034 */ Input mButtons;
+62 -11
View File
@@ -1,32 +1,82 @@
#pragma once
#include "System/SysNew.hpp"
#include "nns/font.h"
#include "types.h"
class UnkStruct_ov000_020b4f84_00_Base : public SysObject {
public:
/* 00 (vtable) */
// data_02043f08 vtable
/* 00 */ virtual ~UnkStruct_ov000_020b4f84_00_Base();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10();
enum {
FontIndex_DSZ2_msg = 0,
FontIndex_LC_Font_s = 1, // unused?
FontIndex_DSZ2_endL = 2,
FontIndex_DSZ2_endS = 3,
FontIndex_04 = 4,
FontIndex_LC_Font_s_Name = 5,
FontIndex_Max = 6
};
class UnkStruct_ov000_020b4f84_00_Base2 {
public:
/* 00 (vtable) */
/* 04 */ void *mUnk_04;
/* 08 */ union {
void *mpFile;
void *volatile mpFile2;
};
/* 0C */ size_t mFileSize;
/* 10 */ HeapIndex16 mHeapIndex;
UnkStruct_ov000_020b4f84_00_Base2() {}
UnkStruct_ov000_020b4f84_00_Base2(void *param1, unk32 param2) :
mUnk_04(param1),
mpFile(NULL),
mFileSize(0),
mHeapIndex(param2) {}
/* 00 */ virtual ~UnkStruct_ov000_020b4f84_00_Base2() {}
/* 08 */ virtual void *vfunc_08(unk32 param1); // file open?
/* 0C */ virtual void vfunc_0C(void); // allocate?
/* 10 */ virtual size_t vfunc_10(unk32 param1);
};
// file handler? doesn't seem to be specifically tied to fonts
class UnkStruct_ov000_020b4f84_00_Base : public UnkStruct_ov000_020b4f84_00_Base2 {
public:
/* 12 */ unk8 mUnk_12;
/* 13 */ unk8 mUnk_13;
/* 14 */
UnkStruct_ov000_020b4f84_00_Base();
UnkStruct_ov000_020b4f84_00_Base(void *param1, unk32 param2, unk32 param3, u8 param4);
// data_02043f08 vtable
/* 00 */ virtual ~UnkStruct_ov000_020b4f84_00_Base() override;
/* 08 */ virtual void *vfunc_08(unk32 param1) override;
/* 0C */ virtual void vfunc_0C(void) override;
/* 10 */ virtual size_t vfunc_10(unk32 param1) override;
void func_02015528();
void func_0201552c();
unk32 func_02015534();
};
// FontEntry?
class UnkStruct_ov000_020b4f84_00 : public UnkStruct_ov000_020b4f84_00_Base {
public:
/* 00 (base) */
/* 04 */ unk8 mUnk_04[0x1C];
/* 14 */ Font_UnkStruct1 mUnk_14;
/* 1C */ unk16 mUnk_1C;
/* 1E */ unk16 mUnk_1E;
/* 20 */
UnkStruct_ov000_020b4f84_00();
~UnkStruct_ov000_020b4f84_00();
void func_ov000_02066610(const char *fontPath, unk32 param2, unk32 param3);
};
// FontManager?
class UnkStruct_ov000_020b4f84 {
public:
/* 00 */ UnkStruct_ov000_020b4f84_00 mUnk_00[6];
/* 00 */ UnkStruct_ov000_020b4f84_00 mUnk_00[FontIndex_Max];
/* C0 */ unk16 mUnk_C0;
/* C2 */ unk16 mUnk_C2;
@@ -34,4 +84,5 @@ public:
void func_ov000_0206667c(unk32 param1, unk32 param2);
};
// gFontManager?
extern UnkStruct_ov000_020b4f84 data_ov000_020b4f84;
+2 -1
View File
@@ -47,12 +47,13 @@ public:
void func_ov000_02069d3c(unk32 param1);
void func_ov000_02069d7c(void);
void func_ov000_02069f58(void);
unk32 func_ov000_0206a5d8(unk32 param1);
void func_ov000_0206a6a4(unk32 param1);
void func_ov000_0206a758(void);
void func_ov000_0206a77c(void);
void func_ov001_020bd8ac(void);
void func_ov001_020bd8ac(void);
void func_ov001_020bd8dc(void);
UnkStruct_ov018_020c5ac0 *func_ov018_020c5718(void);
+1 -1
View File
@@ -47,7 +47,7 @@ public:
void func_ov000_0206d6b4(unk32 param1, unk32 param2);
void func_ov000_0206d83c(unk32 param1);
void func_ov000_0206db44(unk32 param1);
void func_ov000_0206db44(unk32 param1); // play sfx?
};
extern UnkStruct_ov000_020b5214 data_ov000_020b5214;
@@ -0,0 +1,15 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_ov024_020d86b0 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x7E);
/* 7E */ s8 mNumPostcards; // current amount of postcards
/* 7F */ s8 mNumPostedCards; // current amount of posted postcards
/* 80 */ STRUCT_PAD(0x80, 0x90);
/* 90 */
};
extern UnkStruct_ov024_020d86b0 *data_ov024_020d86b0;
+2 -2
View File
@@ -26,9 +26,8 @@
#define SBSS_BEGIN _Pragma("section sbss begin")
#define SBSS_END _Pragma("section sbss end")
#define NO_INLINE __attribute__((never_inline))
#ifdef __MWERKS__
#define NO_INLINE __attribute__((never_inline))
#define AT_ADDRESS(xyz) : (xyz)
#define DECL_SECTION(x) __declspec(section x)
#define EXPORT __declspec(export)
@@ -40,6 +39,7 @@
#define EXPORT
#define WEAK
#define ASM
#define NO_INLINE
#endif
#define STRUCT_PAD(from, to) unsigned char _pad_##from[(to) - (from)]
+3
View File
@@ -12,6 +12,8 @@
#define BTN_DDOWN (1 << 7) // 0x0080
#define BTN_R (1 << 8) // 0x0100
#define BTN_L (1 << 9) // 0x0200
#define BTN_X (1 << 10) // 0x0400
#define BTN_Y (1 << 11) // 0x0800
#define CHECK_BUTTON_COMBO(value, btn) ((value) & (btn))
@@ -24,4 +26,5 @@ struct Input {
Input();
unk32 func_02013c08(u16 param1);
unk32 func_02013b24(unk32 param1);
unk32 func_02013bbc();
};
+20
View File
@@ -0,0 +1,20 @@
#ifndef _NNS_FONT_H
#define _NNS_FONT_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct Font_UnkStruct1 {
/* 00 */ void *mpFINF; // pointer to the FINF section of the FNTR file
/* 04 */ void *mUnk_04; // pointer to a function
/* 08 */
} Font_UnkStruct1;
void func_020090b0(Font_UnkStruct1 *pFont_UnkStruct1, void *pFontFile);
#ifdef __cplusplus
}
#endif
#endif
+59
View File
@@ -0,0 +1,59 @@
#ifndef _NNS_TEXT_H
#define _NNS_TEXT_H
#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
struct Text_UnkStruct2;
struct Text_UnkStruct4;
typedef void (*Text_UnkCallback1)(Text_UnkStruct2 *param1, void *param2, unk32 param3, unk32 param4, unk32 param5,
Text_UnkStruct4 *param6);
typedef void (*Text_UnkCallback2)(Text_UnkStruct2 *param1, unk32 param2);
typedef void (*Text_UnkCallback3)(Text_UnkStruct2 *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5,
unk32 param6);
typedef struct Text_UnkStruct5 {
/* 00 */ unk8 unk_00;
/* 01 */ unk8 unk_01;
/* 02 */ unk8 unk_02;
} Text_UnkStruct5;
typedef struct Text_UnkStruct4 {
/* 00 */ Text_UnkStruct5 *unk_00;
/* 04 */ void *unk_04;
} Text_UnkStruct4;
typedef struct Text_UnkStruct3 {
/* 00 */ Text_UnkCallback1 func_00;
/* 04 */ Text_UnkCallback2 func_04;
/* 08 */ Text_UnkCallback3 func_08;
} Text_UnkStruct3;
typedef struct Text_UnkStruct2 {
/* 00 */ void *unk_00;
/* 04 */ unk32 unk_04;
/* 08 */ unk32 unk_08;
/* 0C */ unk8 unk_0C;
/* 0D */ unk8 unk_0D;
/* 0E */ unk8 unk_0E;
/* 0F */ unk8 unk_0F;
/* 10 */ unk32 unk_10;
/* 14 */ Text_UnkStruct3 *unk_14;
} Text_UnkStruct2;
typedef struct Text_UnkStruct1 {
/* 00 */ Text_UnkStruct2 *unk_00;
/* 04 */ void *unk_04;
/* 08 */ unk32 unk_08;
/* 0C */ unk32 unk_0C;
} Text_UnkStruct1;
#ifdef __cplusplus
}
#endif
#endif
+134 -25
View File
@@ -1,36 +1,145 @@
#pragma once
#ifndef _NITRO_REG_H
#define _NITRO_REG_H
#define ARM9_IO_BASE 0x04000000
#define SHARED_WORK_BASE 0x027FF000
#ifdef __cplusplus
extern "C" {
#endif
#define REG_WORD_PTR(addr) ((u32 *) (addr))
#define REG_WORD(addr) (*(REG_WORD_PTR(addr)))
#include "types.h"
#define REG_HALFWORD_PTR(addr) ((u16 *) (addr))
#define REG_HALFWORD(addr) (*(REG_HALFWORD_PTR(addr)))
#define REG_POWER_CNT (*(vu16 *) 0x04000304)
#define REG_IME (*(vu16 *) 0x04000208)
#define REG_IME REG_WORD(*(u32 *) 0x04000208)
#define REG_VCOUNT REG_WORD_PTR(*(u32 *) 0x04000006)
#define RAM_PALETTES REG_WORD_PTR((u32 *) 0x05000000)
#define RAM_OAM REG_WORD_PTR((u32 *) 0x07000000)
#define REG_DISPSTAT (*(vu16 *) 0x4000004)
#define REG_VCOUNT (*(vu16 *) 0x04000006)
#define REG_DISPCNT REG_WORD(ARM9_IO_BASE)
#define REG_DISPCNT_SUB REG_WORD(ARM9_IO_BASE | 0x00001000)
#define REG_VRAM_CNT_ABCD (*(vu32 *) 0x04000240)
#define REG_VRAM_CNT_A (*(vu8 *) 0x04000240)
#define REG_VRAM_CNT_B (*(vu8 *) 0x04000241)
#define REG_VRAM_CNT_C (*(vu8 *) 0x04000242)
#define REG_VRAM_CNT_D (*(vu8 *) 0x04000243)
#define REG_VRAM_CNT_E (*(vu8 *) 0x04000244)
#define REG_VRAM_CNT_F (*(vu8 *) 0x04000245)
#define REG_VRAM_CNT_G (*(vu8 *) 0x04000246)
#define REG_WRAM_CNT (*(vu8 *) 0x04000247)
#define REG_VRAM_CNT_HI (*(vu16 *) 0x04000248)
#define REG_VRAM_CNT_H (*(vu8 *) 0x04000248)
#define REG_VRAM_CNT_I (*(vu8 *) 0x04000249)
#define REG_BLDCNT REG_WORD(ARM9_IO_BASE | 0x00000050)
#define REG_BLDCNT_SUB REG_WORD(ARM9_IO_BASE | 0x00001050)
#define REG_PAD (*(u16 *) 0x027FFFA8)
#define REG_KEYINPUT (*(u16 *) 0x04000130)
#define REG_BG1HOFS_SUB REG_WORD(ARM9_IO_BASE | 0x00001014)
#define REG_BG2HOFS_SUB REG_WORD(ARM9_IO_BASE | 0x00001018)
#define REG_BG3HOFS_SUB REG_WORD(ARM9_IO_BASE | 0x0000101C)
#define REG_FRAME_COUNTER (*(u32 *) 0x027FFC3C)
#define REG_027FFC40 (*(u16 *) 0x027FFC40)
#define REG_FNT_ROM_OFFSET (*(u32 *) 0x027FFE40)
#define REG_FNT_SIZE (*(u32 *) 0x027FFE44)
#define REG_FAT_ROM_OFFSET (*(u32 *) 0x027FFE48)
#define REG_FAT_SIZE (*(u32 *) 0x027FFE4C)
#define REG_BLDALPHA REG_HALFWORD(ARM9_IO_BASE | 0x00000052)
extern u32 _DTCM_BASE; // TODO: Provide address via LCF
#define DTCM_BASE ((u8 *) &_DTCM_BASE)
#define REG_IRQ (*(u32 *) (DTCM_BASE + 0x3FF8))
#define REG_WININ REG_HALFWORD(ARM9_IO_BASE | 0x00000048)
#define REG_WINOUT REG_HALFWORD(ARM9_IO_BASE | 0x0000004A)
#define REG_WININ_SUB REG_HALFWORD(ARM9_IO_BASE | 0x00001048)
#define REG_WINOUT_SUB REG_HALFWORD(ARM9_IO_BASE | 0x0000104A)
#define _MAIN_REG_BASE 0x04000000
#define _SUB_REG_BASE 0x04001000
#define REG_BG3CNT_SUB REG_HALFWORD(ARM9_IO_BASE | 0x0000100E)
#define _REG_DISPCNT(base) (*(u32 *) ((base) | 0x0))
#define _REG_BG0CNT(base) (*(vu16 *) ((base) | 0x8))
#define _REG_BG1CNT(base) (*(vu16 *) ((base) | 0xa))
#define _REG_BG2CNT(base) (*(vu16 *) ((base) | 0xc))
#define _REG_BG3CNT(base) (*(vu16 *) ((base) | 0xe))
#define _REG_BG0OFS(base) (*(u32 *) ((base) | 0x10))
#define _REG_BG1OFS(base) (*(u32 *) ((base) | 0x14))
#define _REG_BG2OFS(base) (*(u32 *) ((base) | 0x18))
#define _REG_BG3OFS(base) (*(u32 *) ((base) | 0x1c))
#define _REG_BG2PA(base) (*(u16 *) ((base) | 0x20))
#define _REG_BG2PB(base) (*(u16 *) ((base) | 0x22))
#define _REG_BG2PC(base) (*(u16 *) ((base) | 0x24))
#define _REG_BG2PD(base) (*(u16 *) ((base) | 0x26))
#define _REG_BG2X(base) (*(u32 *) ((base) | 0x28))
#define _REG_BG2Y(base) (*(u32 *) ((base) | 0x2c))
#define _REG_BG3PA(base) (*(u16 *) ((base) | 0x30))
#define _REG_BG3PB(base) (*(u16 *) ((base) | 0x32))
#define _REG_BG3PC(base) (*(u16 *) ((base) | 0x34))
#define _REG_BG3PD(base) (*(u16 *) ((base) | 0x36))
#define _REG_BG3X(base) (*(u32 *) ((base) | 0x38))
#define _REG_BG3Y(base) (*(u32 *) ((base) | 0x3c))
#define _REG_WININ(base) (*(u16 *) ((base) | 0x48))
#define _REG_WINOUT(base) (*(u16 *) ((base) | 0x4a))
#define _REG_MOSAIC(base) (*(u8 *) ((base) | 0x4c))
#define _REG_OBJMOSAIC(base) (*(u8 *) ((base) | 0x4d))
#define _REG_BLDCNT(base) (*(u16 *) ((base) | 0x50))
#define _REG_BLDALPHA(base) (*(u16 *) ((base) | 0x52))
#define _REG_MASTER_BRIGHT(base) (*(u16 *) ((base) | 0x6c))
#define SHARED_WORK_C3C REG_WORD(SHARED_WORK_BASE | 0xC3C)
#define REG_DISPCNT _REG_DISPCNT(_MAIN_REG_BASE)
#define REG_BG0CNT _REG_BG0CNT(_MAIN_REG_BASE)
#define REG_BG1CNT _REG_BG1CNT(_MAIN_REG_BASE)
#define REG_BG2CNT _REG_BG2CNT(_MAIN_REG_BASE)
#define REG_BG3CNT _REG_BG3CNT(_MAIN_REG_BASE)
#define REG_BG0OFS _REG_BG0OFS(_MAIN_REG_BASE)
#define REG_BG1OFS _REG_BG1OFS(_MAIN_REG_BASE)
#define REG_BG2OFS _REG_BG2OFS(_MAIN_REG_BASE)
#define REG_BG3OFS _REG_BG3OFS(_MAIN_REG_BASE)
#define REG_BG2PA _REG_BG2PA(_MAIN_REG_BASE)
#define REG_BG2PB _REG_BG2PB(_MAIN_REG_BASE)
#define REG_BG2PC _REG_BG2PC(_MAIN_REG_BASE)
#define REG_BG2PD _REG_BG2PD(_MAIN_REG_BASE)
#define REG_BG2X _REG_BG2X(_MAIN_REG_BASE)
#define REG_BG2Y _REG_BG2Y(_MAIN_REG_BASE)
#define REG_BG3PA _REG_BG3PA(_MAIN_REG_BASE)
#define REG_BG3PB _REG_BG3PB(_MAIN_REG_BASE)
#define REG_BG3PC _REG_BG3PC(_MAIN_REG_BASE)
#define REG_BG3PD _REG_BG3PD(_MAIN_REG_BASE)
#define REG_BG3X _REG_BG3X(_MAIN_REG_BASE)
#define REG_BG3Y _REG_BG3Y(_MAIN_REG_BASE)
#define REG_WININ _REG_WININ(_MAIN_REG_BASE)
#define REG_WINOUT _REG_WINOUT(_MAIN_REG_BASE)
#define REG_MOSAIC _REG_MOSAIC(_MAIN_REG_BASE)
#define REG_OBJMOSAIC _REG_OBJMOSAIC(_MAIN_REG_BASE)
#define REG_BLDCNT _REG_BLDCNT(_MAIN_REG_BASE)
#define REG_BLDALPHA _REG_BLDALPHA(_MAIN_REG_BASE)
#define REG_MASTER_BRIGHT _REG_MASTER_BRIGHT(_MAIN_REG_BASE)
#define REG_DISPCNT_SUB _REG_DISPCNT(_SUB_REG_BASE)
#define REG_BG0CNT_SUB _REG_BG0CNT(_SUB_REG_BASE)
#define REG_BG1CNT_SUB _REG_BG1CNT(_SUB_REG_BASE)
#define REG_BG2CNT_SUB _REG_BG2CNT(_SUB_REG_BASE)
#define REG_BG3CNT_SUB _REG_BG3CNT(_SUB_REG_BASE)
#define REG_BG0OFS_SUB _REG_BG0OFS(_SUB_REG_BASE)
#define REG_BG1OFS_SUB _REG_BG1OFS(_SUB_REG_BASE)
#define REG_BG2OFS_SUB _REG_BG2OFS(_SUB_REG_BASE)
#define REG_BG3OFS_SUB _REG_BG3OFS(_SUB_REG_BASE)
#define REG_BG2PA_SUB _REG_BG2PA(_SUB_REG_BASE)
#define REG_BG2PB_SUB _REG_BG2PB(_SUB_REG_BASE)
#define REG_BG2PC_SUB _REG_BG2PC(_SUB_REG_BASE)
#define REG_BG2PD_SUB _REG_BG2PD(_SUB_REG_BASE)
#define REG_BG2X_SUB _REG_BG2X(_SUB_REG_BASE)
#define REG_BG2Y_SUB _REG_BG2Y(_SUB_REG_BASE)
#define REG_BG3PA_SUB _REG_BG3PA(_SUB_REG_BASE)
#define REG_BG3PB_SUB _REG_BG3PB(_SUB_REG_BASE)
#define REG_BG3PC_SUB _REG_BG3PC(_SUB_REG_BASE)
#define REG_BG3PD_SUB _REG_BG3PD(_SUB_REG_BASE)
#define REG_BG3X_SUB _REG_BG3X(_SUB_REG_BASE)
#define REG_BG3Y_SUB _REG_BG3Y(_SUB_REG_BASE)
#define REG_WININ_SUB _REG_WININ(_SUB_REG_BASE)
#define REG_WINOUT_SUB _REG_WINOUT(_SUB_REG_BASE)
#define REG_MOSAIC_SUB _REG_MOSAIC(_SUB_REG_BASE)
#define REG_OBJMOSAIC_SUB _REG_OBJMOSAIC(_SUB_REG_BASE)
#define REG_BLDCNT_SUB _REG_BLDCNT(_SUB_REG_BASE)
#define REG_BLDALPHA_SUB _REG_BLDALPHA(_SUB_REG_BASE)
#define REG_MASTER_BRIGHT_SUB _REG_MASTER_BRIGHT(_SUB_REG_BASE)
#define REG_SWAP_BUFFERS (*(((u32 *) (_MAIN_REG_BASE | 0x00000540))))
#define REG_VRAM (*(((u32 *) (0x06800000))))
#define REG_PALETTE_A (*(((u32 *) (0x05000000))))
#define REG_PALETTE_B (*(((u32 *) (0x05000400))))
#define REG_OAM_A (*(((u32 *) (0x07000000))))
#define REG_OAM_B (*(((u32 *) (0x07000400))))
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+17
View File
@@ -16,6 +16,23 @@ typedef char s8;
typedef float f32;
typedef double f64;
typedef volatile u64 vu64;
typedef volatile u32 vu32;
typedef volatile u16 vu16;
typedef volatile u8 vu8;
typedef volatile s64 vs64;
typedef volatile s32 vs32;
typedef volatile s16 vs16;
typedef volatile s8 vs8;
typedef volatile f32 vf32;
typedef volatile f64 vf64;
typedef u32 BOOL;
#define ATTRIBUTE_ALIGN(x) __attribute__((aligned(x)))
typedef s8 unk8;
typedef s16 unk16;
typedef s32 unk32;
+6
View File
@@ -19,7 +19,13 @@ typedef signed long intptr_t;
typedef unsigned long uintptr_t;
typedef intptr_t ptrdiff_t;
// gcc want size_t to be an unsigned int, and metrowerks want it to be an unsigned long (oh and vscode also doesn't
// agree....................)
#if defined(__MWERKS__) || defined(__INTELLISENSE__)
typedef unsigned long size_t;
#else
typedef unsigned int size_t;
#endif
#ifndef __cplusplus
typedef int bool;
+2 -2
View File
@@ -1,12 +1,12 @@
#ifndef _C_STRING_H
#define _C_STRING_H
#include <stddef.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef unsigned int size_t;
size_t strlen(const char *str);
char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t num);
+6 -6
View File
@@ -98,7 +98,7 @@ THUMB void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param
int aligned0A = ALIGN_NEXT(unk_0A, 8);
int aligned08 = ALIGN_NEXT(unk_08, 8);
int iVar5 = data_027e09a0->func_ov000_020702a8(data_027e09a4->mUnk_00)->mUnk_20;
int iVar5 = data_027e09a0->func_ov000_020702a8(data_027e09a4->mSceneIndex)->mUnk_20;
s32 allocCount;
if (data_027e09a4->mUnk_60 == 0) {
@@ -124,7 +124,7 @@ THUMB void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param
unk32 iVar5;
if (func_01ffd3b0() != 0) {
iVar5 = data_027e09a4->mUnk_00;
iVar5 = data_027e09a4->mSceneIndex;
if (iVar5 == 0x3E) {
this->mUnk_34 = 0xFFFFECCD; // ~0x1332
@@ -199,7 +199,7 @@ THUMB void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param
}
}
if (data_027e09a4->UnkCheck(data_027e09a4->mUnk_00)) {
if (data_027e09a4->UnkCheck(data_027e09a4->mSceneIndex)) {
func_ov071_0215e8d4();
}
@@ -212,7 +212,7 @@ THUMB void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param
THUMB void ActorManager::func_ov001_020bb414(ActorManager *instance) {
func_ov001_020ba59c(&data_0204999c);
if (data_027e09a4->UnkCheck(data_027e09a4->mUnk_00)) {
if (data_027e09a4->UnkCheck(data_027e09a4->mSceneIndex)) {
instance->func_ov001_020bb844();
}
@@ -244,7 +244,7 @@ THUMB void ActorManager::func_ov001_020bb488() {
data_027e0cf4->func_ov021_020f8cdc();
}
if (data_027e09a4->UnkCheck(data_027e09a4->mUnk_00)) {
if (data_027e09a4->UnkCheck(data_027e09a4->mSceneIndex)) {
data_027e0d70->func_ov068_0215e8f8();
}
}
@@ -264,7 +264,7 @@ THUMB void ActorManager::func_ov001_020bb548() {
i++;
}
unk32 value = data_027e09a4->mUnk_00;
unk32 value = data_027e09a4->mSceneIndex;
if (data_027e09a4->UnkCheck(value)) {
data_027e0d70->func_ov071_0215e9ac();
+23 -24
View File
@@ -1,8 +1,8 @@
#include "Game/GameModeStartUp.hpp"
#include "Game/Game.hpp"
#include "System/OverlayManager.hpp"
#include "System/SysFault.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_02049a2c.hpp"
#include "Unknown/UnkStruct_02049b80.hpp"
#include "Unknown/UnkStruct_0204a110.hpp"
#include "Unknown/UnkStruct_0204e5f8.hpp"
@@ -12,7 +12,6 @@
#include "regs.h"
extern "C" {
void func_02013768(void *param1);
void func_020261f0(unk32 param1, void *param2);
void func_0201245c();
void func_02027a28(void *param1, unk32 param2);
@@ -51,24 +50,24 @@ ARM void SysFault::func_ov018_020c4840() {
this->mUnk_04 = 0;
}
ARM UnkStruct_02049a2c::UnkStruct_02049a2c() :
mUnk_00(NULL),
mUnk_04(0),
mUnk_08(0),
mUnk_10(0),
mUnk_14(0),
mUnk_18(0) {}
ARM Game::Game() :
mpCurrentGameMode(NULL),
createCallback(NULL),
mUnk_08(NULL),
mpSaveFile(NULL),
mUnk_14(NULL),
mUnk_18(NULL) {}
ARM void UnkStruct_02049a2c::func_ov018_020c48a4(unk32 param1) {
ARM void Game::func_ov018_020c48a4() {
func_020261f0(1, func_02013184);
func_020263bc(1);
func_020234d4(1);
func_02026ef0(&this->mUnk_20);
func_02026ef0(&this->mUnk_1C.mUnk_04);
func_02031e48(func_020131b0);
this->func_02013724(UnkStruct_02049a2c::func_ov018_020c4ba8);
this->TrySetCreateCallback((GameModeCreateCallback) Game::func_ov018_020c4ba8);
}
ARM void UnkStruct_02049a2c::func_ov018_020c48f8() {
ARM void Game::func_ov018_020c48f8() {
if (gOverlayManager.mLoadedOverlays[OverlaySlot_Second] != OverlayIndex_Second) {
data_02049ba0.LoadIfNotLoaded(OverlaySlot_Second, OverlayIndex_Second);
data_0204999c.func_ov018_020c4a5c();
@@ -80,12 +79,12 @@ ARM void UnkStruct_02049a2c::func_ov018_020c48f8() {
ARM UnkStruct_02049b18::UnkStruct_02049b18() {
this->mUnk_58 = 0;
this->mUnk_5A = 0;
func_02013768(this);
this->func_02013768();
}
ARM void UnkStruct_02011e10::func_ov018_020c4980() {
unk32 iVar1 = func_02027818(0);
unk32 iVar2 = func_0202780c(0);
unk32 arenaLo = func_02027818(0);
unk32 arenaHi = func_0202780c(0);
for (int i = 0; i < HeapIndex_Max; i++) {
this->mUnk_00[i] = NULL;
@@ -95,9 +94,9 @@ ARM void UnkStruct_02011e10::func_ov018_020c4980() {
this->mUnk_24[i] = 0;
}
this->mUnk_00[HeapIndex_0] = func_020012e0(iVar1, iVar2 - iVar1, 2);
unk32 length = func_0202d624(NULL, 0);
void *ptr = ::operator new(length, 0);
this->mUnk_00[HeapIndex_Main] = func_020012e0(arenaLo, arenaHi - arenaLo, 2);
unk32 length = func_0202d624(NULL, 0);
void *ptr = ::operator new(length, 0);
func_0202d624(ptr, length);
ptr = ::operator new(0xBE000, 0);
void *uVar3 = func_02001fd4(ptr, 0xBE000);
@@ -170,7 +169,7 @@ ARM UnkStruct_0204e64c::UnkStruct_0204e64c() {
this->mUnk_16 = 0;
}
ARM GameModeStartUp *UnkStruct_02049a2c::func_ov018_020c4ba8() {
ARM GameModeStartUp *Game::func_ov018_020c4ba8() {
static GameModeStartUp data_ov018_020c5bd4;
return &data_ov018_020c5bd4;
}
@@ -202,10 +201,10 @@ ARM GameModeStartUp::GameModeStartUp() {
ARM void GameModeStartUp::vfunc_0C() {
if (this->mUnk_04.mUnk_0D == this->mUnk_04.mUnk_10) {
if (this->mUnk_28 == 0) {
this->mUnk_2C = SHARED_WORK_C3C;
data_02049a2c.func_ov018_020c48f8();
} else if (!this->mUnk_2A && (SHARED_WORK_C3C - this->mUnk_2C) >= 0x3C) {
this->mUnk_2A = data_0204a060.func_020183d4(false, UnkStruct_0204a060::func_020183b8, 1);
this->mUnk_2C = REG_FRAME_COUNTER;
gGame.func_ov018_020c48f8();
} else if (!this->mUnk_2A && (REG_FRAME_COUNTER - this->mUnk_2C) >= 0x3C) {
this->mUnk_2A = data_0204a060.func_020183d4(false, (GameModeCreateCallback) UnkStruct_0204a060::func_020183b8, 1);
if (data_ov018_020c5bc0 != 0) {
data_0204a060.func_0201bb84(1, 0, 1);
+8 -8
View File
@@ -56,7 +56,7 @@ ARM void func_ov018_020c4e8c(void) {
}
THUMB UnkStruct_0204a060::UnkStruct_0204a060() {
this->callback = NULL;
this->createCallback = NULL;
}
ARM UnkStruct_ov000_020b4eec::UnkStruct_ov000_020b4eec() {
@@ -69,10 +69,10 @@ ARM UnkStruct_ov000_020b4f84::UnkStruct_ov000_020b4f84() {
int *arg0 = 0;
this->mUnk_C0 = (int) arg0 + 1;
this->func_ov000_0206667c(0, 0);
this->func_ov000_0206667c(FontIndex_DSZ2_msg, 0);
if (func_02014fe0() == 0) {
this->func_ov000_0206667c(1, 0);
this->func_ov000_0206667c(FontIndex_LC_Font_s, 0);
}
}
@@ -84,7 +84,7 @@ ARM UnkStruct_ov000_020b504c::UnkStruct_ov000_020b504c() :
Fill32(0, this->mUnk_05C, sizeof(this->mUnk_05C));
this->mUnk_06F = 0;
this->mUnk_000 = new(HeapIndex_0) UnkStruct_ov000_020b504c_Sub3(0x21);
this->mUnk_000 = new(HeapIndex_Main) UnkStruct_ov000_020b504c_Sub3(0x21);
Fill32(0, this->mUnk_00C, sizeof(this->mUnk_00C));
@@ -176,7 +176,7 @@ ARM UnkStruct_0204a110::UnkStruct_0204a110() :
mUnk_000(0),
mUnk_008(-1),
mUnk_00C(-1),
mUnk_DEC(0),
mUnk_DEC(NULL),
mUnk_DF2(-1),
mUnk_DF3(-1),
mUnk_DFC(0),
@@ -275,15 +275,15 @@ ARM UnkStruct_0204a110_Sub7::UnkStruct_0204a110_Sub7() {
this->mUnk_00 = 0;
this->mUnk_01 = 0;
this->mUnk_0C = data_027e0120;
this->mUnk_04 = new(HeapIndex_0) UnkSystem2_UnkSubSystem9();
this->mUnk_08 = new(HeapIndex_0) UnkStruct_0204a110_Sub7_08();
this->mUnk_04 = new(HeapIndex_Main) UnkSystem2_UnkSubSystem9();
this->mUnk_08 = new(HeapIndex_Main) UnkStruct_0204a110_Sub7_08();
}
ARM UnkStruct_0204a110_Sub8::UnkStruct_0204a110_Sub8() {
this->mUnk_00 = 1;
this->mUnk_04 = 0;
this->mUnk_08 = 0;
this->mUnk_0C = new(HeapIndex_0) UnkSystem2_UnkSubSystem9();
this->mUnk_0C = new(HeapIndex_Main) UnkSystem2_UnkSubSystem9();
}
ARM UnkStruct_02049f04::UnkStruct_02049f04() {
+5 -5
View File
@@ -1,7 +1,7 @@
#include "FileSelect/FileSelect.hpp"
#include "Game/Game.hpp"
#include "Game/GameModeFileSelect.hpp"
#include "Save/SaveManager.hpp"
#include "Unknown/UnkStruct_02049a2c.hpp"
#include "Unknown/UnkStruct_0204a088.hpp"
#include "Unknown/UnkStruct_0204a110.hpp"
#include "Unknown/UnkStruct_0204af1c.hpp"
@@ -1131,7 +1131,7 @@ ARM void FileSelectMain::vfunc_08(Input *pButtons, TouchControl *pTouchControl)
}
ARM void FileSelectMain::func_ov019_020c8290() {
if ((data_02049a2c.GetUnk00_FileSelect()->mUnk_04.mUnk_08 & 0xFFFF) == 0xFFFF) {
if ((gGame.GetGameModeFileSelect()->mUnk_04.mUnk_08 & 0xFFFF) == 0xFFFF) {
this->SetState(FileSelectState_Init);
}
}
@@ -1342,7 +1342,7 @@ ARM void FileSelectMain::func_ov019_020c9c70() {
break;
case BTN_ID_FILE_SELECT_CONTACT_MODE:
this->SetState(FileSelectState_ChooseModeToContactMode);
data_02049a2c.GetUnk00_FileSelect()->LoadContactMode(this->mSaveSlotIndex);
gGame.GetGameModeFileSelect()->LoadContactMode(this->mSaveSlotIndex);
data_ov000_020b5214.func_ov000_0206db44(0x1C);
break;
case BTN_ID_FILE_SELECT_OPTIONS:
@@ -1405,10 +1405,10 @@ ARM void FileSelectMain::func_ov019_020c9e08() {
this->mUnk_155C.func_ov000_020609c4();
if (this->mExitMode == FileSelectExitMode_AdventureMode && this->mUnk_00BC.mUnk_0C) {
data_02049a2c.GetUnk00_FileSelect()->LoadAdventureMode(this->mSaveSlotIndex);
gGame.GetGameModeFileSelect()->LoadAdventureMode(this->mSaveSlotIndex);
this->mExitMode = FileSelectExitMode_Unk_3;
} else if (this->mExitMode == FileSelectExitMode_BattleMode && this->mUnk_00BC.mUnk_0C) {
data_02049a2c.GetUnk00_FileSelect()->LoadBattleMode(this->mSaveSlotIndex);
gGame.GetGameModeFileSelect()->LoadBattleMode(this->mSaveSlotIndex);
this->mExitMode = FileSelectExitMode_Unk_3;
}
}
+3 -3
View File
@@ -75,9 +75,9 @@ ARM void FileSelectSubScreen::vfunc_08(Input *pButtons, TouchControl *pTouchCont
this->mUnk_0024 = this->mUnk_0020;
this->mUnk_0020 += 0x800;
REG_BG1HOFS_SUB = ROUND_Q20(this->mUnk_0020) & 0x1FF;
REG_BG2HOFS_SUB = (ROUND_Q20(this->mUnk_0020) + 0x100) & 0x1FF;
REG_BG3HOFS_SUB = (ROUND_Q20(this->mUnk_0020) / 2) & 0x1FF;
REG_BG1OFS_SUB = ROUND_Q20(this->mUnk_0020) & 0x1FF;
REG_BG2OFS_SUB = (ROUND_Q20(this->mUnk_0020) + 0x100) & 0x1FF;
REG_BG3OFS_SUB = (ROUND_Q20(this->mUnk_0020) / 2) & 0x1FF;
if (!(ROUND_Q20(this->mUnk_0020) % 256) && (ROUND_Q20(this->mUnk_0024) % 256)) {
switch (this->mUnk_001C) {
+4 -4
View File
@@ -1,7 +1,7 @@
#include "Game/GameModeFileSelect.hpp"
#include "FileSelect/FileSelect.hpp"
#include "Game/Game.hpp"
#include "Save/AdventureFlags.hpp"
#include "Unknown/UnkStruct_02049a2c.hpp"
#include "Unknown/UnkStruct_02049bd4.hpp"
#include "Unknown/UnkStruct_0204a060.hpp"
#include "Unknown/UnkStruct_0204a088.hpp"
@@ -58,15 +58,15 @@ ARM void GameModeFileSelect::vfunc_20() {}
ARM void GameModeFileSelect::LoadAdventureMode(u16 saveSlotIndex) {
this->mSaveSlotIndex = saveSlotIndex;
data_0204a060.func_020183d4(gSaveManager.GetSaveSlot(saveSlotIndex)->GetAdventureFlag(AdventureFlag_WatchedIntroCS),
func_ov001_020be054, 1);
(GameModeCreateCallback) func_ov001_020be054, 1);
}
ARM void GameModeFileSelect::LoadBattleMode(u16 saveSlotIndex) {
this->mSaveSlotIndex = saveSlotIndex;
data_0204a060.func_020183d4(true, func_ov001_020be0ec, 1);
data_0204a060.func_020183d4(true, (GameModeCreateCallback) func_ov001_020be0ec, 1);
}
ARM void GameModeFileSelect::LoadContactMode(u16 saveSlotIndex) {
this->mSaveSlotIndex = saveSlotIndex;
data_0204a060.func_020183d4(true, func_ov001_020be0d8, 1);
data_0204a060.func_020183d4(true, (GameModeCreateCallback) func_ov001_020be0d8, 1);
}
+2 -2
View File
@@ -1,6 +1,6 @@
#include "Game/GameModeTitleScreen.hpp"
#include "Game/Game.hpp"
#include "TitleScreen/TitleScreen.hpp"
#include "Unknown/UnkStruct_02049a2c.hpp"
#include "Unknown/UnkStruct_0204a088.hpp"
#include "Unknown/UnkStruct_0204a110.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
@@ -22,7 +22,7 @@ UnkStruct_ov000_020a782c *func_ov000_020a782c(unk32 param1);
ARM GameModeTitleScreen::GameModeTitleScreen() {
func_0201659c();
data_02049a2c.func_02013370(2);
gGame.func_02013370(2);
data_0204a110.func_ov001_020bd514(0, TitleScreenManager::Create, 0, 1);
func_ov001_020b6520(2);
}
+2 -1
View File
@@ -1,4 +1,5 @@
#include "TitleScreen/TitleScreen.hpp"
#include "Game/GameMode.hpp"
#include "Unknown/UnkStruct_02049be0.hpp"
#include "Unknown/UnkStruct_0204a060.hpp"
#include "Unknown/UnkStruct_0204aeac.hpp"
@@ -277,7 +278,7 @@ void TitleScreen::func_ov025_020c55e4(Input *pButtons, TouchControl *pTouchContr
return;
}
data_0204a060.func_020183d4(true, UnkStruct_0204a060::func_02018424, 1);
data_0204a060.func_020183d4(true, (GameModeCreateCallback) UnkStruct_0204a060::func_02018424, 1);
}
void TitleScreen::vfunc_14(unk8 *param1) {
+6 -6
View File
@@ -17,7 +17,7 @@ ARM void TitleScreenManager::vfunc_14() {
this->mUnk_004.func_0201c00c(0x24, 1);
TitleScreen *pTitleScreen = new(HeapIndex_1) TitleScreen();
this->mpTitleScreen = pTitleScreen;
this->mpGameMode = (GameModeBase *) pTitleScreen;
this->mUnk_104.mList.func_020166cc(pTitleScreen->GetNode());
pTitleScreen->vfunc_18();
}
@@ -25,8 +25,8 @@ ARM void TitleScreenManager::vfunc_14() {
ARM void TitleScreenManager::vfunc_18() {
this->mUnk_004.func_ov001_020bd784();
delete this->mpTitleScreen;
this->mpTitleScreen = NULL;
delete this->mpGameMode;
this->mpGameMode = NULL;
}
ARM void TitleScreenManager::vfunc_24() {
@@ -45,14 +45,14 @@ ARM void TitleScreenManager::vfunc_2C(unk8 *param1) {
this->func_02018830(param1);
}
ARM void TitleScreenManager::vfunc_38() {}
ARM void TitleScreenManager::vfunc_38(unk32 param1, unk32 param2, unk32 param3, unk32 param4) {}
ARM void TitleScreenManager::func_ov025_020c4c20() {
this->mpTitleScreen->func_ov025_020c4e6c();
((TitleScreen *) this->mpGameMode)->func_ov025_020c4e6c();
}
ARM void TitleScreenManager::func_ov025_020c4c30() {
this->mpTitleScreen->func_ov025_020c4e90();
((TitleScreen *) this->mpGameMode)->func_ov025_020c4e90();
}
TitleScreenManager::~TitleScreenManager() {}
+1 -1
View File
@@ -660,7 +660,7 @@ ARM void PlayerGet::vfunc_10(unk32 param1) {
break;
case ItemId_RecruitUniform2:
case ItemId_EngineerUniform:
if (data_027e09a4->mUnk_00 == 0x2F) {
if (data_027e09a4->mSceneIndex == SceneIndex_f_first) {
this->mUnk_28->func_ov058_02152a24();
}
break;
+172
View File
@@ -0,0 +1,172 @@
#include "Game/Game.hpp"
#include "System/OverlayManager.hpp"
#include "System/Random.hpp"
#include "Unknown/UnkStruct_02049b74.hpp"
#include "Unknown/UnkStruct_02049bd4.hpp"
#include "Unknown/UnkStruct_0204a110.hpp"
#include "Unknown/UnkStruct_0204e64c.hpp"
#include "Unknown/UnkStruct_027e0208.hpp"
#include "Unknown/UnkStruct_ov000_020b50c0.hpp"
#include "regs.h"
#include "versions.h"
extern "C" void func_020196fc();
extern "C" unk32 func_02031e58();
extern "C" void func_02031e68();
extern "C" void func_01ff8d38();
extern "C" void func_020132c8();
extern "C" void func_020132dc();
extern "C" void func_02013354();
extern "C" void func_0201328c();
extern "C" int func_020280ec();
extern "C" void func_02028100(int enabled);
extern Mat3p data_027e02c4;
struct SomeSaveFileStruct {
/* 00 */ SaveFile *mpSaveFiles[MAX_SAVE_SLOTS];
SomeSaveFileStruct(unk32 param1);
~SomeSaveFileStruct();
};
ARM void Game::func_02013370(unk32 param1) {
data_0204a110.func_02018c78(param1);
data_ov000_020b50c0.mUnk_9C = param1;
}
ARM void Game::Run() {
this->func_ov018_020c48a4();
do {
// initialization of the next game mode
if (this->createCallback != NULL) {
data_0204999c.func_02013014();
{
SomeSaveFileStruct local_28(0x1300);
this->mpSaveFile = local_28.mpSaveFiles[0];
if (this->mpCurrentGameMode != NULL) {
delete this->mpCurrentGameMode;
}
func_020196fc();
data_02049b18.func_02013768();
this->mFrameCounter = REG_FRAME_COUNTER;
this->mpCurrentGameMode = this->createCallback();
this->createCallback = NULL;
this->mpCurrentGameMode->vfunc_08();
this->mpSaveFile = NULL;
}
data_0204999c.func_02013070();
}
// update of the current game mode
if (this->mpCurrentGameMode != NULL) {
if (this->mUnk_08 != NULL) {
this->mUnk_08();
this->mUnk_08 = NULL;
}
if (func_02031e58() != 0) {
func_02031e68();
}
data_02049bd4.func_02014d98();
data_0204a110.func_02019300(data_0204a110.mUnk_DF8);
gRandom.UpdateRandomValue();
unk32 uVar4 = data_0204a110.func_02019300(data_0204a110.mUnk_DF8);
data_02049b74.func_02013a44(data_0204a110.mUnk_004);
if (this->mUnk_14 == NULL) {
data_02049b18.func_02013840(data_0204a110.mUnk_004, uVar4);
} else {
data_02049b18.func_020138f4(uVar4);
}
data_0204e64c.func_020201c4(1);
data_0204a110.func_02019350();
if (data_0204a110.func_02019514() == 0 && data_0204e64c.mUnk_00.mUnk_0B == 0) {
this->mpCurrentGameMode->vfunc_0C();
}
data_027e0208.mUnk_0EC = 0x1000;
data_027e0208.mUnk_0F0 = 0x1000;
data_027e0208.mUnk_0F4 = 0x1000;
data_027e0208.mUnk_0E0 = 0;
data_027e0208.mUnk_0E4 = 0;
data_027e0208.mUnk_0E8 = 0;
Mat3p_InitIdentity(&data_027e02c4);
data_027e0208.mUnk_0FC = 0;
func_01ff8d38();
this->mpCurrentGameMode->vfunc_18();
data_0204a110.func_020194dc();
if (data_0204a110.func_02019514() == 0) {
this->mpCurrentGameMode->vfunc_10();
}
#if IS_JP
func_01ff8d38();
#endif
if (data_0204e64c.mUnk_00.mUnk_0B == 0) {
data_0204a110.func_02019408();
}
this->mpCurrentGameMode->vfunc_1C();
func_01ff8d38();
data_0204a110.func_02019454();
this->mpCurrentGameMode->vfunc_20();
if (gOverlayManager.mLoadedOverlays[OverlaySlot_Second] == OverlayIndex_Second) {
this->func_ov000_020576d0();
this->func_ov000_0205770c();
}
}
if (this->mFrameCounter + data_0204a110.mUnk_004 - (s32) REG_FRAME_COUNTER > 1) {
func_0201328c();
}
while (this->mFrameCounter + data_0204a110.mUnk_004 - (s32) REG_FRAME_COUNTER > 1) {
func_020132c8();
}
{
int enabled = func_020280ec();
this->mUnk_1C.func_02013e18(func_020132dc, 0);
REG_SWAP_BUFFERS = 3;
func_02028100(enabled);
}
func_020132c8();
if (this->mUnk_18 != NULL) {
while (this->mUnk_18() != 0) {
while (this->mUnk_1C.func_02013e18(func_02013354, 0) == 0) {
}
func_020132c8();
}
}
this->mFrameCounter = REG_FRAME_COUNTER;
} while (true);
}
bool Game::TrySetCreateCallback(GameModeCreateCallback createCallback) {
if (this->createCallback == NULL) {
this->createCallback = createCallback;
return true;
}
return false;
}
+1 -1
View File
@@ -76,7 +76,7 @@ ARM void GameModeManagerBase::vfunc_30(unk32 param1) {
}
}
ARM void GameModeManagerBase::vfunc_34() {}
ARM void GameModeManagerBase::vfunc_34(unk32 param1, unk32 param2) {}
struct UnkStruct3 {
unk32 mUnk_00;
+10 -9
View File
@@ -1,4 +1,4 @@
#include "Unknown/UnkStruct_02049a2c.hpp"
#include "Game/Game.hpp"
#include "global.h"
#include "regs.h"
#include "types.h"
@@ -6,7 +6,6 @@
void func_0203b920(void);
void func_02011da0(void);
void CallStaticInitializers(void);
void main(void);
void func_02000a78(void);
void *func_0200093c(unk32, u32 *, unk32);
@@ -14,6 +13,8 @@ void func_020009fc(void);
void func_02000950(unk32 *);
void func_01ffbd70(void);
void main();
#define UNK_027FFF9C (*(u32 *) 0x027FFF9C)
typedef void (*UnkStruct_027e0000_Callback)(void);
@@ -44,7 +45,7 @@ struct RomBuildInfo {
extern RomBuildInfo BuildInfo;
// non-matching
ARM void Entry(void) {
extern "C" ARM void Entry(void) {
unk32 *puVar1;
unk32 *puVar2;
u32 uVar3;
@@ -57,8 +58,8 @@ ARM void Entry(void) {
func_02000a78();
func_0200093c(0, (u32 *) data_027e0000, 0x4000);
func_0200093c(0, RAM_PALETTES, 0x400);
func_0200093c(0x200, RAM_OAM, 0x400);
func_0200093c(0, &REG_PALETTE_A, 0x400);
func_0200093c(0x200, &REG_OAM_A, 0x400);
func_02000950(BuildInfo.mUnk_14);
func_020009fc();
puVar4 = BuildInfo.mUnk_10;
@@ -98,9 +99,9 @@ ARM void *func_0200093c(unk32 param1, u32 *param2, unk32 param3) {
return param2;
}
void AutoloadCallback(void) {}
extern "C" void AutoloadCallback(void) {}
void func_02000b60(void) {}
extern "C" void func_02000b60(void) {}
RomBuildInfo BuildInfo = {
.mUnk_00 = data_0204cde0,
@@ -116,6 +117,6 @@ RomBuildInfo BuildInfo = {
"[SDK+MEI:libASR_V1.0.5-CW2.0-SDK4.0]",
};
void main(void) {
data_02049a2c.Run();
void main() {
gGame.Run();
}
+207
View File
@@ -0,0 +1,207 @@
#include "System/SysFault.hpp"
#include "System/OverlayManager.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkMemFuncs.h"
#include "Unknown/UnkStruct_02049b18.hpp"
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
#include "Unknown/UnkStruct_ov000_020b4f84.hpp"
#include "Unknown/UnkStruct_ov000_020b50c0.hpp"
#include "global.h"
#include "regs.h"
extern "C" void func_0202851c();
extern "C" void func_020131ec();
extern "C" void func_02013214();
extern "C" void func_ov020_020c86d8(void *);
extern "C" void func_02014d38(void *, int);
extern "C" void func_020196fc();
extern "C" void func_02023770(int);
extern "C" void func_02023fb0(int);
extern "C" void func_02023f8c(int);
extern "C" void GX_SetGraphicsMode(int, int, int);
extern "C" void GXS_SetGraphicsMode(int);
extern "C" unk32 func_ov000_02068504(int);
extern "C" unk32 func_020147a8();
extern "C" void *func_020244f8();
extern "C" void func_0201b278(bool, bool);
extern "C" void func_0201b180(bool, bool);
extern "C" void func_02025050(void *, int, int);
extern "C" void SetBrightColor(void *, int);
extern int data_02049bd4;
extern u16 data_0203e0c4[];
extern int data_0203e0be;
extern int data_ov020_20e8580;
struct struct_aStack_2e0 {
int mUnk_00;
struct_aStack_2e0(void *, int);
};
struct struct_aStack_2d8 {
struct_aStack_2d8();
void func_ov000_020685cc();
void func_ov000_0206869c();
void func_ov000_020686a4(int);
void func_ov000_02068fec();
void func_ov000_0206878c();
void func_ov000_020628e4(int, int, int, int, int, int, int, int, int);
u8 pad[0x20];
Font_UnkStruct1 *mUnk_20;
};
THUMB void SysFault::func_020127f0(unk32 param1) {
bool doDraw = false;
func_02013214();
func_02014d38(&data_02049bd4, 0);
func_02014d38(&data_02049bd4, 1);
func_02014d38(&data_02049bd4, 3);
func_020196fc();
func_02023770(2);
func_02023fb0(4);
func_02023f8c(0x100);
GX_SetGraphicsMode(1, 0, 0);
GXS_SetGraphicsMode(0);
REG_DISPCNT = ((REG_DISPCNT & ~0x1F00) | 0x100);
REG_DISPCNT_SUB = (REG_DISPCNT_SUB & ~0x1F00) | 0x100;
REG_BG0CNT = (REG_BG0CNT & 0x43) | 4;
REG_BG0CNT_SUB = (REG_BG0CNT_SUB & 0x43) | 4;
if (this->mUnk_05 < 0xFF) {
this->mUnk_05 = 0xFF;
switch (param1) {
case 0:
case 1:
func_0201b180(true, true);
// fallthrough
case 2:
case 3:
this->mUnk_04 = 0;
break;
default:
break;
}
}
while (!doDraw) {
func_020131ec();
bool sequenceComplete = false;
switch (param1) {
case 0:
case 1:
data_02049b18.mButtons.func_02013b24(data_02049b18.mButtons.func_02013bbc());
u16 expected = data_0203e0c4[this->mUnk_04];
if (data_02049b18.mButtons.press & expected) {
if ((data_02049b18.mButtons.press & (~(expected & 0x3FF))) == 0) {
this->mUnk_04++;
if (this->mUnk_04 > 10) {
doDraw = true;
break;
}
} else {
this->mUnk_04 = 0;
}
} else {
if (data_02049b18.mButtons.press & 0x3FF) {
this->mUnk_04 = 0;
}
}
doDraw = false;
break;
case 2:
case 3:
default:
doDraw = true;
break;
}
}
while (true) {
func_020131ec();
switch (param1) {
case 0:
case 1:
func_0201b278(true, true);
break;
case 2: {
// "data could not be read" error
struct_aStack_2d8 aStack_2d8;
func_02025050(&data_0203e0be, func_ov000_02068504(0) << 1, 6);
Fill32(0, func_020244f8(), 0x800);
aStack_2d8.mUnk_20 = &data_ov000_020b4f84.mUnk_00[FontIndex_DSZ2_msg].mUnk_14;
aStack_2d8.func_ov000_020628e4(0, 0, 256, 192, 0, 0, 1, 0, 0);
{
UnkSystem2_UnkSubSystem5_Base_10 aStack_278;
aStack_2d8.func_ov000_0206869c();
struct_aStack_2e0 uStack_2e0(data_ov000_020b504c.mUnk_000, 0x25);
aStack_2d8.func_ov000_020686a4(uStack_2e0.mUnk_00);
aStack_2d8.func_ov000_02068fec();
aStack_2d8.func_ov000_0206878c();
}
break;
}
case 3: {
// "data could not be written" error
struct_aStack_2d8 aStack_2d8;
func_02025050(&data_0203e0be, func_ov000_02068504(0) << 1, 6);
Fill32(0, func_020244f8(), 0x800);
aStack_2d8.mUnk_20 = &data_ov000_020b4f84.mUnk_00[FontIndex_DSZ2_msg].mUnk_14;
aStack_2d8.func_ov000_020628e4(0, 0, 256, 192, 0, 0, 1, 0, 0);
{
UnkSystem2_UnkSubSystem5_Base_10 aStack_278;
aStack_2d8.func_ov000_0206869c();
struct_aStack_2e0 uStack_2e0(data_ov000_020b504c.mUnk_000, 0x26);
aStack_2d8.func_ov000_020686a4(uStack_2e0.mUnk_00);
aStack_2d8.func_ov000_02068fec();
aStack_2d8.func_ov000_0206878c();
}
break;
}
default:
break;
}
SetBrightColor((void *) &REG_MASTER_BRIGHT, 0);
SetBrightColor((void *) &REG_MASTER_BRIGHT_SUB, 0);
if (gOverlayManager.mLoadedOverlays[OverlaySlot_4] == OverlayIndex_WirelessCommon) {
func_ov020_020c86d8(&data_ov020_20e8580);
}
if (func_020147a8() != 0) {
data_ov000_020b50c0.func_ov000_02069f58();
}
int waitTimer = 0;
while (waitTimer < 0x7FFFFFFF) {
int limit = (waitTimer < 2) ? 0x3C : 0x7FFFFFFF;
if (waitTimer >= limit) {
break;
}
func_020131ec();
waitTimer++;
}
this->mUnk_05 = 0;
func_0202851c();
}
}
+16 -24
View File
@@ -1,35 +1,33 @@
#include "System/SysNew.hpp"
#include "System/SysFault.hpp"
#include "global.h"
extern "C" {
void *func_02001654(void);
void *func_02001654(void *);
void *func_020145b0(UnkId *, s32);
void *func_020010c0(void);
void *func_02001308(void);
void *func_020010c0(void *);
void *func_02001308(void *);
UnkId *func_02001488(void);
UnkId *func_02014704(void);
UnkId *func_02014704();
UnkId *func_020011c8(UnkId *, void *);
UnkId *func_02014630(UnkId *, void *);
UnkId *func_02001684(UnkId *, void *);
void func_020011f4(void *);
unk32 func_020011f4(void *);
}
extern char *data_0204372c[];
// non-matching
ARM void *SysNew(UnkStruct_02011e10_Sub1 *param1, s32 length, s32 param3) {
void *newPtr = NULL;
void *ret;
switch (param1->mId) {
case UnkId_EXPH:
newPtr = func_020010c0();
newPtr = func_020010c0(param1);
break;
case UnkId_FRMH:
newPtr = func_02001308();
newPtr = func_02001308(param1);
break;
case UnkId_UNTH:
newPtr = func_02001654();
newPtr = func_02001654(param1);
break;
case UnkId_UNSH:
newPtr = func_020145b0(func_02014704(), length);
@@ -71,24 +69,22 @@ ARM void *func_02011f30(s32 length) {
return func_02011f10(length);
}
// non-matching
ARM void *operator new(unsigned long length, u32 id, u32 idLength) {
void *pvVar1;
char *uVar2;
u16 line;
char *uVar4;
UnkStruct_02011e10_Sub1 *pUVar5;
pUVar5 = data_0204999c.mUnk_00[id];
pvVar1 = SysNew(pUVar5, length, idLength);
if (pvVar1 == NULL) {
if (id == 1) {
func_020011f4(pUVar5);
data_02049984.func_020125a4(__FILE__, 183, "%sノメモリガタリマセン.\nサイズ=%d\nノコリ =%d", data_0204372c[id],
length);
} else if (id == 0) {
data_02049984.func_020125a4(__FILE__, 187, "%sノメモリガタリマセン.\nサイズ=%d", data_0204372c[id], length);
switch (id) {
case HeapIndex_1:
GAME_ASSERT(pvVar1 != NULL, 183, "%sノメモリガタリマセン.\nサイズ=%d\nノコリ =%d", data_0204372c[id], length,
func_020011f4(pUVar5));
break;
default:
GAME_ASSERT(pvVar1 != NULL, 187, "%sノメモリガタリマセン.\nサイズ=%d", data_0204372c[id], length);
break;
}
}
@@ -102,7 +98,3 @@ ARM void operator delete(void *ptr) {
ARM void SysObject::operator delete[](void *ptr) {
SysDelete(ptr);
}
void dummy() {
::operator new(1, 1);
}
+11 -8
View File
@@ -1,13 +1,15 @@
#include "Unknown/UnkStruct_0204a060.hpp"
#include "Game/Game.hpp"
#include "Game/GameMode.hpp"
#include "Game/GameModeFileSelect.hpp"
#include "System/OverlayManager.hpp"
#include "Unknown/UnkStruct_02049a2c.hpp"
#include "Unknown/UnkStruct_0204e5f8.hpp"
#include "Unknown/UnkStruct_ov000_020b51b8.hpp"
extern "C" void func_ov001_020be078();
THUMB bool UnkStruct_0204a060::vfunc_0C(void) {
return data_02049a2c.func_02013724(this->callback);
return gGame.TrySetCreateCallback(this->createCallback);
}
THUMB void UnkStruct_0204a060::func_020183b8(void) {
@@ -15,16 +17,16 @@ THUMB void UnkStruct_0204a060::func_020183b8(void) {
}
THUMB void UnkStruct_0204a060::func_020183c0(void) {
this->func_020183d4(false, func_ov001_020be078, 1);
this->func_020183d4(false, (GameModeCreateCallback) func_ov001_020be078, 1);
}
THUMB bool UnkStruct_0204a060::func_020183d4(bool param1, void *param2, unk32 param3) {
THUMB bool UnkStruct_0204a060::func_020183d4(bool param1, GameModeCreateCallback createFunc, unk32 param3) {
if (this->mUnk_0C) {
return false;
}
this->mUnk_14 = param1 ? 0x00010000 : 0xFFFF0000;
this->callback = param2;
this->mUnk_14 = param1 ? 0x00010000 : 0xFFFF0000;
this->createCallback = createFunc;
this->func_0201bb84(0x20, 4, 0x20);
if (param3 != 0) {
@@ -35,8 +37,9 @@ THUMB bool UnkStruct_0204a060::func_020183d4(bool param1, void *param2, unk32 pa
return true;
}
THUMB void UnkStruct_0204a060::func_02018424(void) {
data_02049ba0.func_020148d0(0x18)->func_ov018_020c4840();
THUMB GameModeFileSelect *UnkStruct_0204a060::func_02018424(void) {
data_02049ba0.func_020148d0(OverlayIndex_MainSelect);
return GameModeFileSelect::Create();
}
ARM UnkStruct_0204a060::~UnkStruct_0204a060() {}
@@ -0,0 +1,61 @@
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_ov000_020b4f84.hpp"
extern "C" void *func_02012ec8(unk32, unk16, void *, size_t *, unk32, u8);
extern "C" size_t func_020010e0(UnkStruct_02011e10_Sub1 *heapID, void *pFile, unk32 param3);
THUMB void UnkStruct_ov000_020b4f84_00_Base::func_02015528() {}
THUMB void UnkStruct_ov000_020b4f84_00_Base::func_0201552c() {
this->mpFile = NULL;
this->mFileSize = 0;
}
THUMB unk32 UnkStruct_ov000_020b4f84_00_Base::func_02015534() {
return this->mFileSize;
}
THUMB UnkStruct_ov000_020b4f84_00_Base::UnkStruct_ov000_020b4f84_00_Base() {
this->mUnk_04 = NULL;
this->mpFile = NULL;
this->mFileSize = 0;
this->mHeapIndex = HeapIndex_1;
this->mUnk_12 = 0;
}
THUMB UnkStruct_ov000_020b4f84_00_Base::UnkStruct_ov000_020b4f84_00_Base(void *param1, unk32 param2, unk32 param3, u8 param4) :
UnkStruct_ov000_020b4f84_00_Base2(param1, param3) {
this->mUnk_12 = param4;
}
THUMB UnkStruct_ov000_020b4f84_00_Base::~UnkStruct_ov000_020b4f84_00_Base() {
this->vfunc_0C();
this->func_02015528();
}
THUMB void *UnkStruct_ov000_020b4f84_00_Base::vfunc_08(unk32 param1) {
if (this->mpFile == NULL) {
this->mpFile = func_02012ec8(0, this->mHeapIndex, this->mUnk_04, &this->mFileSize, param1, this->mUnk_12);
}
return this->mpFile;
}
THUMB void UnkStruct_ov000_020b4f84_00_Base::vfunc_0C(void) {
if (this->mpFile2 != NULL) {
delete this->mpFile;
this->func_0201552c();
}
}
THUMB size_t UnkStruct_ov000_020b4f84_00_Base::vfunc_10(unk32 param1) {
size_t prevFileSize = this->mFileSize;
if (this->mpFile2 != NULL && param1 < this->mFileSize) {
if (data_0204999c.mUnk_00[this->mHeapIndex]->mId == UnkId_EXPH) {
this->mFileSize = func_020010e0(data_0204999c.mUnk_00[this->mHeapIndex], this->mpFile, param1);
}
}
return prevFileSize;
}
+77
View File
@@ -0,0 +1,77 @@
#include "Unknown/UnkMemFuncs.h"
#include "regs.h"
#include "types.h"
extern "C" void GX_SetGraphicsMode(int, int, int);
extern "C" void GXS_SetGraphicsMode(int);
extern "C" void func_02024934(void *, void *, int, int, int, int);
extern "C" void func_020242a0();
extern "C" void func_020241f4();
extern "C" void func_0202421c();
extern "C" void func_0202428c();
extern "C" void func_02024208();
extern "C" void func_02024240();
extern "C" void func_020242b4();
extern "C" void func_020242dc();
extern "C" void func_020242c8();
extern "C" void func_02024304();
extern "C" void func_02024264();
extern "C" void func_02024278();
extern "C" void func_02023f8c(int);
extern "C" void func_020243ec();
extern int data_027e0120;
extern "C" void func_020196fc() {
GX_SetGraphicsMode(1, 0, 0);
GXS_SetGraphicsMode(0);
REG_BG0OFS = 0;
REG_BG1OFS = 0;
REG_BG2OFS = 0;
REG_BG3OFS = 0;
REG_BG0OFS_SUB = 0;
REG_BG1OFS_SUB = 0;
REG_BG2OFS_SUB = 0;
REG_BG3OFS_SUB = 0;
func_02024934(&REG_BG2PA, &data_027e0120, 0x80, 0x60, 0, 0);
func_02024934(&REG_BG3PA, &data_027e0120, 0x80, 0x60, 0, 0);
func_02024934(&REG_BG2PA_SUB, &data_027e0120, 0x80, 0x60, 0, 0);
func_02024934(&REG_BG3PA_SUB, &data_027e0120, 0x80, 0x60, 0, 0);
REG_BG0CNT = REG_BG0CNT & 0xffbf;
REG_BG1CNT = REG_BG1CNT & 0xffbf;
REG_BG2CNT = REG_BG2CNT & 0xffbf;
REG_BG3CNT = REG_BG3CNT & 0xffbf;
REG_BG0CNT_SUB = REG_BG0CNT_SUB & 0xffbf;
REG_BG1CNT_SUB = REG_BG1CNT_SUB & 0xffbf;
REG_BG2CNT_SUB = REG_BG2CNT_SUB & 0xffbf;
REG_BG3CNT_SUB = REG_BG3CNT_SUB & 0xffbf;
REG_MOSAIC = 0;
REG_MOSAIC_SUB = 0;
REG_OBJMOSAIC = 0;
REG_OBJMOSAIC_SUB = 0;
REG_BLDCNT = 0;
REG_BLDCNT_SUB = 0;
REG_DISPCNT &= 0xffff1fff;
REG_DISPCNT_SUB &= 0xffff1fff;
func_020242a0();
func_020241f4();
func_0202421c();
func_0202428c();
func_02024208();
func_02024240();
func_020242b4();
func_020242dc();
func_020242c8();
func_02024304();
func_02024264();
func_02024278();
func_02023f8c(0x1ff);
Fill256(0, &REG_VRAM, 0xa4000);
func_020243ec();
Fill256(0xc0, &REG_OAM_A, 0x400);
Fill256(0, &REG_PALETTE_A, 0x400);
Fill256(0xc0, &REG_OAM_B, 0x400);
Fill256(0, &REG_PALETTE_B, 0x400);
}
+4
View File
@@ -125,14 +125,18 @@ config.libs = [
[
Object("Main/Main.cpp"),
Object("Main/System/SysNew.cpp"),
Object("Main/System/SysFault.cpp"),
Object("Main/Game/Game.cpp"),
Object("Main/Player/TouchControl.cpp"),
Object("Main/System/OverlayManager.cpp"),
Object("Main/UnkStruct_ov000_020b4f84_00_Base.cpp"),
Object("Main/System/Random.cpp"),
Object("Main/Game/GameModeLinkListNode.cpp"),
Object("Main/func_02017ea4.cpp"),
Object("Main/Game/GameModeBase.cpp"),
Object("Main/UnkStruct_0204a060.cpp"),
Object("Main/Game/GameModeManagerBase.cpp"),
Object("Main/func_020196fc.cpp"),
]
),
GameLib(