Merge pull request #102 from AetiasHax/game-state

Delink Game, GameMode, GameModePlay, GameModeAdventure
This commit is contained in:
Aetias
2025-07-05 00:18:55 +02:00
committed by GitHub
31 changed files with 290 additions and 100 deletions
+7
View File
@@ -11,6 +11,7 @@ src/Main/Actor/ActorType.cpp:
.bss start:0x02069180 end:0x02069188
src/Main/System/OverlayManager.cpp:
complete
.text start:0x0202ff44 end:0x0203003c
libs/cpp/src/__register_global_object.cpp:
@@ -59,3 +60,9 @@ src/Main/Unknown/UnkStruct_02063220.cpp:
.text start:0x0202f3f0 end:0x0202f8e8
.rodata start:0x020562e0 end:0x02056300
.data start:0x0205772c end:0x02057808
src/Main/Game/Game.cpp:
.text start:0x0202c6c8 end:0x0202d0cc
src/Main/Game/GameMode.cpp:
.text start:0x0202c0a8 end:0x0202c0cc
@@ -148,3 +148,6 @@ src/00_Core/Save/AdventureFlags.cpp:
.text start:0x02097628 end:0x020980f4
.data start:0x020e310c end:0x020e3ad8
.bss start:0x020eaac4 end:0x020eaac8
src/00_Core/Game/GameModePlay.cpp:
.text start:0x02079d28 end:0x02079ddc
+6 -6
View File
@@ -125,12 +125,12 @@ func_ov000_02079c88 kind:function(thumb,size=0x50) addr:0x02079c88
func_ov000_02079cd8 kind:function(thumb,size=0xc) addr:0x02079cd8
func_ov000_02079ce4 kind:function(thumb,size=0xc) addr:0x02079ce4
func_ov000_02079cf0 kind:function(thumb,size=0x38) addr:0x02079cf0
func_ov000_02079d28 kind:function(thumb,size=0x2c) addr:0x02079d28
func_ov000_02079d54 kind:function(thumb,size=0x24) addr:0x02079d54
func_ov000_02079d78 kind:function(thumb,size=0x2c) addr:0x02079d78
func_ov000_02079da4 kind:function(thumb,size=0x24) addr:0x02079da4
func_ov000_02079dc8 kind:function(thumb,size=0x10) addr:0x02079dc8
func_ov000_02079dd8 kind:function(thumb,size=0x2) addr:0x02079dd8
_ZN12GameModePlayC1Ei kind:function(thumb,size=0x2c) addr:0x02079d28
_ZN12GameModePlayD1Ev kind:function(thumb,size=0x24) addr:0x02079d54
_ZN12GameModePlayD0Ev kind:function(thumb,size=0x2c) addr:0x02079d78
_ZN12GameModePlayD2Ev kind:function(thumb,size=0x24) addr:0x02079da4
_ZN12GameModePlay8vfunc_1cEv kind:function(thumb,size=0x10) addr:0x02079dc8
_ZN12GameModePlay8vfunc_20Ev kind:function(thumb,size=0x2) addr:0x02079dd8
func_ov000_02079ddc kind:function(thumb,size=0x14) addr:0x02079ddc
func_ov000_02079df0 kind:function(thumb,size=0x14) addr:0x02079df0
func_ov000_02079e04 kind:function(arm,size=0x38) addr:0x02079e04
@@ -5,3 +5,5 @@
.data start:0x0211e680 end:0x0211f520 kind:data align:32
.bss start:0x0211f520 end:0x0211f640 kind:bss align:32
src/09_Adventure/Game/GameModeAdventure.cpp:
.text start:0x02112c20 end:0x021132cc
+11 -11
View File
@@ -1,14 +1,14 @@
func_ov009_02112c20 kind:function(thumb,size=0x20) addr:0x02112c20
func_ov009_02112c40 kind:function(thumb,size=0x128) addr:0x02112c40
func_ov009_02112d68 kind:function(arm,size=0x4) addr:0x02112d68
func_ov009_02112d6c kind:function(thumb,size=0x88) addr:0x02112d6c
func_ov009_02112df4 kind:function(thumb,size=0x84) addr:0x02112df4
func_ov009_02112e78 kind:function(arm,size=0x17c) addr:0x02112e78
func_ov009_02112ff4 kind:function(arm,size=0xc8) addr:0x02112ff4
func_ov009_021130bc kind:function(arm,size=0xe0) addr:0x021130bc
func_ov009_0211319c kind:function(arm,size=0xc4) addr:0x0211319c
func_ov009_02113260 kind:function(thumb,size=0x3c) addr:0x02113260
func_ov009_0211329c kind:function(thumb,size=0x30) addr:0x0211329c
_ZN17GameModeAdventure6CreateEi kind:function(thumb,size=0x20) addr:0x02112c20
_ZN17GameModeAdventureC1Ei kind:function(thumb,size=0x128) addr:0x02112c40
_Z19func_ov009_02112d68v kind:function(arm,size=0x4) addr:0x02112d68
_ZN17GameModeAdventureD0Ev kind:function(thumb,size=0x88) addr:0x02112d6c
_ZN17GameModeAdventureD2Ev kind:function(thumb,size=0x84) addr:0x02112df4
_ZN17GameModeAdventure8vfunc_08Ei kind:function(arm,size=0x17c) addr:0x02112e78
_ZN17GameModeAdventure8vfunc_0cEPt kind:function(arm,size=0xc8) addr:0x02112ff4
_ZN17GameModeAdventure8vfunc_10EPt kind:function(arm,size=0xe0) addr:0x021130bc
_ZN17GameModeAdventure8vfunc_14EPt kind:function(arm,size=0xc4) addr:0x0211319c
_ZN17GameModeAdventure8vfunc_1cEv kind:function(thumb,size=0x3c) addr:0x02113260
_ZN17GameModeAdventure8vfunc_20Ev kind:function(thumb,size=0x30) addr:0x0211329c
func_ov009_021132cc kind:function(thumb,size=0x84) addr:0x021132cc
func_ov009_02113350 kind:function(arm,size=0x140) addr:0x02113350
func_ov009_02113490 kind:function(thumb,size=0xa4) addr:0x02113490
@@ -4,3 +4,5 @@
.data start:0x02120160 end:0x021201a0 kind:data align:32
.bss start:0x021201a0 end:0x021201a0 kind:bss align:32
src/16_Startup/Game/Game.cpp:
.text start:0x0211fcf8 end:0x0211fddc
+2 -2
View File
@@ -12,8 +12,8 @@ func_ov016_0211fb60 kind:function(arm,size=0x58) addr:0x0211fb60
func_ov016_0211fbb8 kind:function(arm,size=0x5c) addr:0x0211fbb8
func_ov016_0211fc14 kind:function(arm,size=0x78) addr:0x0211fc14
func_ov016_0211fc8c kind:function(arm,size=0x6c) addr:0x0211fc8c
func_ov016_0211fcf8 kind:function(arm,size=0x70) addr:0x0211fcf8
func_ov016_0211fd68 kind:function(arm,size=0x74) addr:0x0211fd68
_ZN4GameC1Ev kind:function(arm,size=0x70) addr:0x0211fcf8
_ZN4Game19func_ov016_0211fd68Ev kind:function(arm,size=0x74) addr:0x0211fd68
func_ov016_0211fddc kind:function(arm,size=0x4) addr:0x0211fddc
func_ov016_0211fde0 kind:function(arm,size=0xd4) addr:0x0211fde0
func_ov016_0211feb4 kind:function(arm,size=0x14) addr:0x0211feb4
+2
View File
@@ -3840,10 +3840,12 @@ from:0x0202fff0 kind:thumb_call to:0x0202ff44 module:main
from:0x0202fff8 kind:load to:0x020561f4 module:main
from:0x0202fffc kind:load to:0x027e0ce0 module:dtcm
from:0x02030000 kind:load to:0x020ee698 module:overlay(0)
from:0x02030004 kind:overlay_id to:61 module:none
from:0x0203000e kind:thumb_call to:0x0202ff84 module:main
from:0x02030016 kind:thumb_call to:0x0202ff84 module:main
from:0x02030024 kind:thumb_call_arm to:0x021028a0 module:overlay(7)
from:0x0203002c kind:thumb_call to:0x0202ff84 module:main
from:0x02030034 kind:overlay_id to:7 module:none
from:0x02030038 kind:load to:0x027e0ce0 module:dtcm
from:0x02030044 kind:thumb_call_arm to:0x0202ea0c module:main
from:0x0203006c kind:thumb_call to:0x0203004c module:main
+19 -19
View File
@@ -1353,13 +1353,13 @@ func_0202bc10 kind:function(arm,size=0x28) addr:0x0202bc10
func_0202bc38 kind:function(arm,size=0x320) addr:0x0202bc38
func_0202bf58 kind:function(arm,size=0x68) addr:0x0202bf58
func_0202bfc0 kind:function(arm,size=0xe8) addr:0x0202bfc0
func_0202c0a8 kind:function(thumb,size=0x2) addr:0x0202c0a8
func_0202c0ac kind:function(thumb,size=0xc) addr:0x0202c0ac
func_0202c0b8 kind:function(thumb,size=0x2) addr:0x0202c0b8
func_0202c0bc kind:function(thumb,size=0x2) addr:0x0202c0bc
func_0202c0c0 kind:function(thumb,size=0x2) addr:0x0202c0c0
func_0202c0c4 kind:function(thumb,size=0x2) addr:0x0202c0c4
func_0202c0c8 kind:function(thumb,size=0x2) addr:0x0202c0c8
_ZN8GameModeD0Ev kind:function(thumb,size=0x2) addr:0x0202c0a8
_ZN8GameModeD2Ev kind:function(thumb,size=0xc) addr:0x0202c0ac
_ZN8GameMode13func_0202c0b8Ev kind:function(thumb,size=0x2) addr:0x0202c0b8
_ZN8GameMode8vfunc_0cEPt kind:function(thumb,size=0x2) addr:0x0202c0bc
_ZN8GameMode8vfunc_10EPt kind:function(thumb,size=0x2) addr:0x0202c0c0
_ZN8GameMode8vfunc_14EPt kind:function(thumb,size=0x2) addr:0x0202c0c4
_ZN8GameMode8vfunc_18Ev kind:function(thumb,size=0x2) addr:0x0202c0c8
func_0202c0cc kind:function(thumb,size=0x5c) addr:0x0202c0cc
func_0202c128 kind:function(thumb,size=0x27c) addr:0x0202c128
func_0202c3a4 kind:function(arm,size=0x34) addr:0x0202c3a4
@@ -1379,15 +1379,15 @@ func_0202c5d0 kind:function(arm,size=0x18) addr:0x0202c5d0
func_0202c5e8 kind:function(thumb,size=0x90) addr:0x0202c5e8
func_0202c678 kind:function(thumb,size=0x24) addr:0x0202c678
func_0202c69c kind:function(thumb,size=0x2c) addr:0x0202c69c
func_0202c6c8 kind:function(thumb,size=0x74) addr:0x0202c6c8
func_0202c73c kind:function(thumb,size=0x238) addr:0x0202c73c
func_0202c974 kind:function(thumb,size=0x8) addr:0x0202c974
func_0202c97c kind:function(thumb,size=0x24) addr:0x0202c97c
func_0202c9a0 kind:function(arm,size=0x528) addr:0x0202c9a0
func_0202cec8 kind:function(thumb,size=0x6c) addr:0x0202cec8
func_0202cf34 kind:function(thumb,size=0x10) addr:0x0202cf34
func_0202cf44 kind:function(arm,size=0x170) addr:0x0202cf44
func_0202d0b4 kind:function(arm,size=0x18) addr:0x0202d0b4
_ZN4Game11EndGameModeEv kind:function(thumb,size=0x74) addr:0x0202c6c8
_ZN4Game13StartGameModeEv kind:function(thumb,size=0x238) addr:0x0202c73c
_ZN4Game13func_0202c974Ev kind:function(thumb,size=0x8) addr:0x0202c974
_ZN4Game13func_0202c97cEv kind:function(thumb,size=0x24) addr:0x0202c97c
_ZN4Game3RunEv kind:function(arm,size=0x528) addr:0x0202c9a0
_ZN4Game13func_0202cec8Eii kind:function(thumb,size=0x6c) addr:0x0202cec8
_ZN4Game13func_0202cf34Ev kind:function(thumb,size=0x10) addr:0x0202cf34
_ZN4Game13func_0202cf44Ev kind:function(arm,size=0x170) addr:0x0202cf44
_ZN4GameD1Ev kind:function(arm,size=0x18) addr:0x0202d0b4
func_0202d0cc kind:function(thumb,size=0x3a) addr:0x0202d0cc
func_0202d108 kind:function(thumb,size=0x38) addr:0x0202d108
func_0202d140 kind:function(thumb,size=0x24) addr:0x0202d140
@@ -1493,8 +1493,8 @@ func_0202ff30 kind:function(arm,size=0x14) addr:0x0202ff30
_ZN14OverlayManager4LoadEjj kind:function(thumb,size=0x1e) addr:0x0202ff44
_ZN14OverlayManager15LoadIfNotLoadedEjj kind:function(thumb,size=0x20) addr:0x0202ff64
_ZN14OverlayManager6UnloadEj kind:function(thumb,size=0x1e) addr:0x0202ff84
_ZN14OverlayManager16LoadOverlaySetupEi kind:function(thumb,size=0x64) addr:0x0202ffa4
_ZN14OverlayManager18UnloadOverlaySetupEv kind:function(thumb,size=0x34) addr:0x02030008
_ZN14OverlayManager12LoadGameModeEi kind:function(thumb,size=0x64) addr:0x0202ffa4
_ZN14OverlayManager14UnloadGameModeEv kind:function(thumb,size=0x34) addr:0x02030008
func_0203003c kind:function(thumb,size=0x2) addr:0x0203003c
func_02030040 kind:function(thumb,size=0xc) addr:0x02030040
func_0203004c kind:function(thumb,size=0x2) addr:0x0203004c
@@ -2536,7 +2536,7 @@ data_020561c4 kind:data(any) addr:0x020561c4
data_020561d4 kind:data(any) addr:0x020561d4
data_020561dc kind:data(any) addr:0x020561dc
data_020561f0 kind:data(any) addr:0x020561f0
gOverlaySetups kind:data(any) addr:0x020561f4
gGameModes kind:data(any) addr:0x020561f4
data_020562d4 kind:data(any) addr:0x020562d4
data_020562e2 kind:data(any) addr:0x020562e2
data_02056300 kind:data(any) addr:0x02056300
+7
View File
@@ -11,6 +11,7 @@ src/Main/Actor/ActorType.cpp:
.bss start:0x02069120 end:0x02069128
src/Main/System/OverlayManager.cpp:
complete
.text start:0x0202ff40 end:0x02030038
libs/cpp/src/__register_global_object.cpp:
@@ -59,3 +60,9 @@ src/Main/Unknown/UnkStruct_02063220.cpp:
.text start:0x0202f3ec end:0x0202f8e4
.rodata start:0x0205629c end:0x020562bc
.data start:0x020576e4 end:0x020577c0
src/Main/Game/Game.cpp:
.text start:0x0202c6b0 end:0x0202d0b4
src/Main/Game/GameMode.cpp:
.text start:0x0202c090 end:0x0202c0b4
@@ -148,3 +148,6 @@ src/00_Core/Save/AdventureFlags.cpp:
.text start:0x020975c8 end:0x02098094
.data start:0x020e30ac end:0x020e3a78
.bss start:0x020eaa64 end:0x020eaa68
src/00_Core/Game/GameModePlay.cpp:
.text start:0x02079cc8 end:0x02079d7c
+6 -6
View File
@@ -125,12 +125,12 @@ func_ov000_02079c88 kind:function(thumb,size=0x50) addr:0x02079c28
func_ov000_02079cd8 kind:function(thumb,size=0xc) addr:0x02079c78
func_ov000_02079ce4 kind:function(thumb,size=0xc) addr:0x02079c84
func_ov000_02079cf0 kind:function(thumb,size=0x38) addr:0x02079c90
func_ov000_02079d28 kind:function(thumb,size=0x2c) addr:0x02079cc8
func_ov000_02079d54 kind:function(thumb,size=0x24) addr:0x02079cf4
func_ov000_02079d78 kind:function(thumb,size=0x2c) addr:0x02079d18
func_ov000_02079da4 kind:function(thumb,size=0x24) addr:0x02079d44
func_ov000_02079dc8 kind:function(thumb,size=0x10) addr:0x02079d68
func_ov000_02079dd8 kind:function(thumb,size=0x2) addr:0x02079d78
_ZN12GameModePlayC1Ei kind:function(thumb,size=0x2c) addr:0x02079cc8
_ZN12GameModePlayD1Ev kind:function(thumb,size=0x24) addr:0x02079cf4
_ZN12GameModePlayD0Ev kind:function(thumb,size=0x2c) addr:0x02079d18
_ZN12GameModePlayD2Ev kind:function(thumb,size=0x24) addr:0x02079d44
_ZN12GameModePlay8vfunc_1cEv kind:function(thumb,size=0x10) addr:0x02079d68
_ZN12GameModePlay8vfunc_20Ev kind:function(thumb,size=0x2) addr:0x02079d78
func_ov000_02079ddc kind:function(thumb,size=0x14) addr:0x02079d7c
func_ov000_02079df0 kind:function(thumb,size=0x14) addr:0x02079d90
func_ov000_02079e04 kind:function(arm,size=0x38) addr:0x02079da4
@@ -5,3 +5,5 @@
.data start:0x0211e600 end:0x0211f4a0 kind:data align:32
.bss start:0x0211f4a0 end:0x0211f5c0 kind:bss align:32
src/09_Adventure/Game/GameModeAdventure.cpp:
.text start:0x02112ba0 end:0x0211324c
+11 -11
View File
@@ -1,14 +1,14 @@
func_ov009_02112c20 kind:function(thumb,size=0x20) addr:0x02112ba0
func_ov009_02112c40 kind:function(thumb,size=0x128) addr:0x02112bc0
func_ov009_02112d68 kind:function(arm,size=0x4) addr:0x02112ce8
func_ov009_02112d6c kind:function(thumb,size=0x88) addr:0x02112cec
func_ov009_02112df4 kind:function(thumb,size=0x84) addr:0x02112d74
func_ov009_02112e78 kind:function(arm,size=0x17c) addr:0x02112df8
func_ov009_02112ff4 kind:function(arm,size=0xc8) addr:0x02112f74
func_ov009_021130bc kind:function(arm,size=0xe0) addr:0x0211303c
func_ov009_0211319c kind:function(arm,size=0xc4) addr:0x0211311c
func_ov009_02113260 kind:function(thumb,size=0x3c) addr:0x021131e0
func_ov009_0211329c kind:function(thumb,size=0x30) addr:0x0211321c
_ZN17GameModeAdventure6CreateEi kind:function(thumb,size=0x20) addr:0x02112ba0
_ZN17GameModeAdventureC1Ei kind:function(thumb,size=0x128) addr:0x02112bc0
_Z19func_ov009_02112d68v kind:function(arm,size=0x4) addr:0x02112ce8
_ZN17GameModeAdventureD0Ev kind:function(thumb,size=0x88) addr:0x02112cec
_ZN17GameModeAdventureD2Ev kind:function(thumb,size=0x84) addr:0x02112d74
_ZN17GameModeAdventure8vfunc_08Ei kind:function(arm,size=0x17c) addr:0x02112df8
_ZN17GameModeAdventure8vfunc_0cEPt kind:function(arm,size=0xc8) addr:0x02112f74
_ZN17GameModeAdventure8vfunc_10EPt kind:function(arm,size=0xe0) addr:0x0211303c
_ZN17GameModeAdventure8vfunc_14EPt kind:function(arm,size=0xc4) addr:0x0211311c
_ZN17GameModeAdventure8vfunc_1cEv kind:function(thumb,size=0x3c) addr:0x021131e0
_ZN17GameModeAdventure8vfunc_20Ev kind:function(thumb,size=0x30) addr:0x0211321c
func_ov009_021132cc kind:function(thumb,size=0x84) addr:0x0211324c
func_ov009_02113350 kind:function(arm,size=0x140) addr:0x021132d0
func_ov009_02113490 kind:function(thumb,size=0xa4) addr:0x02113410
@@ -4,3 +4,5 @@
.data start:0x021200e0 end:0x02120120 kind:data align:32
.bss start:0x02120120 end:0x02120120 kind:bss align:32
src/16_Startup/Game/Game.cpp:
.text start:0x0211fc78 end:0x0211fd5c
+2 -2
View File
@@ -12,8 +12,8 @@ func_ov016_0211fb60 kind:function(arm,size=0x58) addr:0x0211fae0
func_ov016_0211fbb8 kind:function(arm,size=0x5c) addr:0x0211fb38
func_ov016_0211fc14 kind:function(arm,size=0x78) addr:0x0211fb94
func_ov016_0211fc8c kind:function(arm,size=0x6c) addr:0x0211fc0c
func_ov016_0211fcf8 kind:function(arm,size=0x70) addr:0x0211fc78
func_ov016_0211fd68 kind:function(arm,size=0x74) addr:0x0211fce8
_ZN4GameC1Ev kind:function(arm,size=0x70) addr:0x0211fc78
_ZN4Game19func_ov016_0211fd68Ev kind:function(arm,size=0x74) addr:0x0211fce8
func_ov016_0211fddc kind:function(arm,size=0x4) addr:0x0211fd5c
func_ov016_0211fde0 kind:function(arm,size=0xd4) addr:0x0211fd60
func_ov016_0211feb4 kind:function(arm,size=0x14) addr:0x0211fe34
+2
View File
@@ -3842,10 +3842,12 @@ from:0x0202ffec kind:thumb_call to:0x0202ff40 module:main
from:0x0202fff4 kind:load to:0x020561b0 module:main
from:0x0202fff8 kind:load to:0x027e0ce0 module:dtcm
from:0x0202fffc kind:load to:0x020ee638 module:overlay(0)
from:0x02030000 kind:overlay_id to:61 module:none
from:0x0203000a kind:thumb_call to:0x0202ff80 module:main
from:0x02030012 kind:thumb_call to:0x0202ff80 module:main
from:0x02030020 kind:thumb_call_arm to:0x02102820 module:overlay(7)
from:0x02030028 kind:thumb_call to:0x0202ff80 module:main
from:0x02030030 kind:overlay_id to:7 module:none
from:0x02030034 kind:load to:0x027e0ce0 module:dtcm
from:0x02030040 kind:thumb_call_arm to:0x0202ea08 module:main
from:0x02030068 kind:thumb_call to:0x02030048 module:main
+19 -19
View File
@@ -1353,13 +1353,13 @@ func_0202bc10 kind:function(arm,size=0x28) addr:0x0202bbf8
func_0202bc38 kind:function(arm,size=0x320) addr:0x0202bc20
func_0202bf58 kind:function(arm,size=0x68) addr:0x0202bf40
func_0202bfc0 kind:function(arm,size=0xe8) addr:0x0202bfa8
func_0202c0a8 kind:function(thumb,size=0x2) addr:0x0202c090
func_0202c0ac kind:function(thumb,size=0xc) addr:0x0202c094
func_0202c0b8 kind:function(thumb,size=0x2) addr:0x0202c0a0
func_0202c0bc kind:function(thumb,size=0x2) addr:0x0202c0a4
func_0202c0c0 kind:function(thumb,size=0x2) addr:0x0202c0a8
func_0202c0c4 kind:function(thumb,size=0x2) addr:0x0202c0ac
func_0202c0c8 kind:function(thumb,size=0x2) addr:0x0202c0b0
_ZN8GameModeD0Ev kind:function(thumb,size=0x2) addr:0x0202c090
_ZN8GameModeD2Ev kind:function(thumb,size=0xc) addr:0x0202c094
_ZN8GameMode13func_0202c0b8Ev kind:function(thumb,size=0x2) addr:0x0202c0a0
_ZN8GameMode8vfunc_0cEPt kind:function(thumb,size=0x2) addr:0x0202c0a4
_ZN8GameMode8vfunc_10EPt kind:function(thumb,size=0x2) addr:0x0202c0a8
_ZN8GameMode8vfunc_14EPt kind:function(thumb,size=0x2) addr:0x0202c0ac
_ZN8GameMode8vfunc_18Ev kind:function(thumb,size=0x2) addr:0x0202c0b0
func_0202c0cc kind:function(thumb,size=0x5c) addr:0x0202c0b4
func_0202c128 kind:function(thumb,size=0x27c) addr:0x0202c110
func_0202c3a4 kind:function(arm,size=0x34) addr:0x0202c38c
@@ -1379,15 +1379,15 @@ func_0202c5d0 kind:function(arm,size=0x18) addr:0x0202c5b8
func_0202c5e8 kind:function(thumb,size=0x90) addr:0x0202c5d0
func_0202c678 kind:function(thumb,size=0x24) addr:0x0202c660
func_0202c69c kind:function(thumb,size=0x2c) addr:0x0202c684
func_0202c6c8 kind:function(thumb,size=0x74) addr:0x0202c6b0
func_0202c73c kind:function(thumb,size=0x238) addr:0x0202c724
func_0202c974 kind:function(thumb,size=0x8) addr:0x0202c95c
func_0202c97c kind:function(thumb,size=0x24) addr:0x0202c964
func_0202c9a0 kind:function(arm,size=0x528) addr:0x0202c988
func_0202cec8 kind:function(thumb,size=0x6c) addr:0x0202ceb0
func_0202cf34 kind:function(thumb,size=0x10) addr:0x0202cf1c
func_0202cf44 kind:function(arm,size=0x170) addr:0x0202cf2c
func_0202d0b4 kind:function(arm,size=0x18) addr:0x0202d09c
_ZN4Game11EndGameModeEv kind:function(thumb,size=0x74) addr:0x0202c6b0
_ZN4Game13StartGameModeEv kind:function(thumb,size=0x238) addr:0x0202c724
_ZN4Game13func_0202c974Ev kind:function(thumb,size=0x8) addr:0x0202c95c
_ZN4Game13func_0202c97cEv kind:function(thumb,size=0x24) addr:0x0202c964
_ZN4Game3RunEv kind:function(arm,size=0x528) addr:0x0202c988
_ZN4Game13func_0202cec8Eii kind:function(thumb,size=0x6c) addr:0x0202ceb0
_ZN4Game13func_0202cf34Ev kind:function(thumb,size=0x10) addr:0x0202cf1c
_ZN4Game13func_0202cf44Ev kind:function(arm,size=0x170) addr:0x0202cf2c
_ZN4GameD1Ev kind:function(arm,size=0x18) addr:0x0202d09c
func_0202d0cc kind:function(thumb,size=0x3a) addr:0x0202d0b4
func_0202d108 kind:function(thumb,size=0x38) addr:0x0202d0f0
func_0202d140 kind:function(thumb,size=0x24) addr:0x0202d128
@@ -1493,8 +1493,8 @@ func_0202ff30 kind:function(arm,size=0x14) addr:0x0202ff2c
_ZN14OverlayManager4LoadEjj kind:function(thumb,size=0x1e) addr:0x0202ff40
_ZN14OverlayManager15LoadIfNotLoadedEjj kind:function(thumb,size=0x20) addr:0x0202ff60
_ZN14OverlayManager6UnloadEj kind:function(thumb,size=0x1e) addr:0x0202ff80
_ZN14OverlayManager16LoadOverlaySetupEi kind:function(thumb,size=0x64) addr:0x0202ffa0
_ZN14OverlayManager18UnloadOverlaySetupEv kind:function(thumb,size=0x34) addr:0x02030004
_ZN14OverlayManager12LoadGameModeEi kind:function(thumb,size=0x64) addr:0x0202ffa0
_ZN14OverlayManager14UnloadGameModeEv kind:function(thumb,size=0x34) addr:0x02030004
func_0203003c kind:function(thumb,size=0x2) addr:0x02030038
func_02030040 kind:function(thumb,size=0xc) addr:0x0203003c
func_0203004c kind:function(thumb,size=0x2) addr:0x02030048
@@ -2536,7 +2536,7 @@ data_020561c4 kind:data(any) addr:0x02056180
data_020561d4 kind:data(any) addr:0x02056190
data_020561dc kind:data(any) addr:0x02056198
data_020561f0 kind:data(any) addr:0x020561ac
gOverlaySetups kind:data(any) addr:0x020561b0
gGameModes kind:data(any) addr:0x020561b0
data_020562d4 kind:data(any) addr:0x02056290
data_020562e2 kind:data(any) addr:0x0205629e
data_02056300 kind:data(any) addr:0x020562bc
+12 -12
View File
@@ -11,13 +11,13 @@ contribute to this list!
`04` | Load | 2 | Scene loading
`05` | --- | 2 |
`06` | --- | 2 |
`07` | --- | 2 |
`08` | --- | 3 |
`09` | --- | 3 |
`10` | --- | 3 |
`11` | --- | 3 |
`12` | Battle | 3 | Handles battle mode.
`13` | --- | 3 |
`07` | DownloadPlay | 2 | Handles DS download play.
`08` | GameStart | 3 | Handles starting the game.
`09` | Adventure | 3 | Handles the adventure game mode.
`10` | FileSelect | 3 | Handles the file selection screen.
`11` | DwcSetup | 3 | Handles Wi-Fi connection setup.
`12` | Battle | 3 | Handles the battle game mode.
`13` | Contact | 3 | Handles contact mode.
`14` | Land | 4 | Link and essential land-based actors.
`15` | Sea | 4 | Handles the sea, Linebeck's ship, and sea-based actors.
`16` | Startup | N/A | Exists briefly on game startup. Initializes RNG, messages, and more.
@@ -67,16 +67,16 @@ contribute to this list!
`60` | --- | 12 |
`61` | --- | 12 |
## Overlay setups
The game contains a list of "overlay setups" which contain overlay IDs to load into slot 1, 2, 3 and 12.
## Game modes
There is a list of game mode called `gGameModes` which contain overlay IDs to load into slot 1, 2, 3 and 12.
Index | Slot 1 | Slot 2 | Slot 3 | Slot 12 | Usage
-------|--------|--------|--------|---------|-------
`0` | None | None | None | None | Game load
`1` | 1 | None | 8 | None | Startup screen (before title screen)
`2` | 3 | 4 | 9 | None | Scene load
`2` | 3 | 4 | 9 | None | Adventure mode
`3` | 1 | 6 | 10 | None | File selection
`4` | 1 | None | 11 | 61 | Wi-Fi connection setup
`5` | 1 | 7 | None | None | DS download play battle mode
`6` | 1 | 4 | 12 | 60 | Multi-card battle mode
`5` | 1 | 7 | None | None | DS download play
`6` | 1 | 4 | 12 | 60 | Battle mode
`7` | 1 | None | 13 | None | Contact mode (trading items)
+43
View File
@@ -0,0 +1,43 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Game/GameMode.hpp"
#include "Render/FadeControl.hpp"
class Game {
public:
/* 000 */ s32 mModeId;
/* 004 */ s32 mPrevModeId;
/* 008 */ GameMode *mMode;
/* 00c */ unk8 mUnk_00c[0xc0];
/* 0cc */ FadeControl mFadeControl;
/* 0f0 */ unk16 mUnk_0f0;
/* 0f2 */ u16 mUnk_0f2;
/* 0f4 */ s32 mUnk_0f4;
/* 0f8 */ s32 mUnk_0f8;
/* 0fc */ unk16 mUnk_0fc;
/* 0fe */ unk16 mUnk_0fe;
/* 100 */ unk8 mUnk_100;
/* 101 */ s8 mUnk_101;
/* 102 */ unk8 mUnk_102;
/* 103 */ u8 mUnk_103;
/* 104 */
Game();
~Game();
void EndGameMode();
void StartGameMode();
void func_0202c974();
void func_0202c97c();
void Run();
void func_0202cec8(s32 param1, unk32 param2);
void func_0202cf34();
void func_0202cf44();
void func_ov016_0211fd68();
};
extern Game gGame;
+27
View File
@@ -0,0 +1,27 @@
#pragma once
#include "global.h"
#include "types.h"
#include "System/SysNew.hpp"
class GameMode : public SysObject {
public:
/* 000 (vtable) */
/* 004 */ unk32 mUnk_000;
/* 008 */
/* 00 */ virtual ~GameMode();
/* 08 */ virtual unk32 vfunc_08(unk32 param1) = 0;
/* 0c */ virtual void vfunc_0c(u16 *param1);
/* 10 */ virtual void vfunc_10(u16 *param1);
/* 14 */ virtual void vfunc_14(u16 *param1);
/* 18 */ virtual void vfunc_18();
/* 1c */
inline GameMode() {}
inline GameMode(unk32 param1) :
mUnk_000(param1) {}
void func_0202c0b8();
};
+25
View File
@@ -0,0 +1,25 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Game/GameModePlay.hpp"
class GameModeAdventure : public GameModePlay {
/* 000 (base) */
/* 008 */ unk8 mUnk_008[0x10];
/* 018 */
public:
/* 00 */ virtual ~GameModeAdventure() override;
/* 08 */ virtual unk32 vfunc_08(unk32 param1) override;
/* 0c */ virtual void vfunc_0c(u16 *param1) override;
/* 10 */ virtual void vfunc_10(u16 *param1) override;
/* 14 */ virtual void vfunc_14(u16 *param1) override;
/* 1c */ virtual void vfunc_1c() override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */
GameModeAdventure(unk32 param1);
static GameModeAdventure *Create(unk32 param1);
};
+19
View File
@@ -0,0 +1,19 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Game/GameMode.hpp"
class GameModePlay : public GameMode {
public:
/* 000 (base) */
/* 008 */
/* 00 */ virtual ~GameModePlay() override;
/* 1c */ virtual void vfunc_1c();
/* 20 */ virtual void vfunc_20();
/* 24 */
GameModePlay(unk32 param1);
};
+2 -2
View File
@@ -159,8 +159,8 @@ public:
void Load(OverlayIndex index, OverlayId id);
void LoadIfNotLoaded(OverlayIndex index, OverlayId id);
void Unload(OverlayIndex index);
void LoadOverlaySetup(s32 index);
void UnloadOverlaySetup();
void LoadGameMode(s32 mode);
void UnloadGameMode();
void LoadEquipItem(ItemFlag equipId);
};
+3
View File
@@ -1,5 +1,6 @@
#pragma once
#include "global.h"
#include "types.h"
struct UnkStruct_0202e894 {
@@ -21,3 +22,5 @@ public:
static void operator delete(void *ptr);
static void operator delete[](void *ptr);
};
extern UnkStruct_0202e894 *data_027e0ce4;
+7
View File
@@ -0,0 +1,7 @@
#include "Game/GameModePlay.hpp"
GameModePlay::GameModePlay(unk32 param1) :
GameMode(param1) {}
GameModePlay::~GameModePlay() {}
void GameModePlay::vfunc_1c() {}
void GameModePlay::vfunc_20() {}
@@ -0,0 +1,13 @@
#include "Game/GameModeAdventure.hpp"
GameModeAdventure *GameModeAdventure::Create(unk32 param1) {}
GameModeAdventure::GameModeAdventure(unk32 param1) :
GameModePlay(param1) {}
void func_ov009_02112d68() {}
GameModeAdventure::~GameModeAdventure() {}
unk32 GameModeAdventure::vfunc_08(unk32 param1) {}
void GameModeAdventure::vfunc_0c(u16 *param1) {}
void GameModeAdventure::vfunc_10(u16 *param1) {}
void GameModeAdventure::vfunc_14(u16 *param1) {}
void GameModeAdventure::vfunc_1c() {}
void GameModeAdventure::vfunc_20() {}
+4
View File
@@ -0,0 +1,4 @@
#include "Game/Game.hpp"
Game::Game() {}
void Game::func_ov016_0211fd68() {}
+11
View File
@@ -0,0 +1,11 @@
#include "Game/Game.hpp"
void Game::EndGameMode() {}
void Game::StartGameMode() {}
void Game::func_0202c974() {}
void Game::func_0202c97c() {}
void Game::Run() {}
void Game::func_0202cec8(s32 param1, unk32 param2) {}
void Game::func_0202cf34() {}
void Game::func_0202cf44() {}
Game::~Game() {}
+8
View File
@@ -0,0 +1,8 @@
#include "Game/GameMode.hpp"
GameMode::~GameMode() {}
void GameMode::func_0202c0b8() {}
void GameMode::vfunc_0c(u16 *param1) {}
void GameMode::vfunc_10(u16 *param1) {}
void GameMode::vfunc_14(u16 *param1) {}
void GameMode::vfunc_18() {}
+8 -10
View File
@@ -9,7 +9,7 @@ struct UnkStruct_020ee698 {
};
extern UnkStruct_020ee698 data_ov000_020ee698;
struct OverlaySetup {
struct GameModeData {
/* 00 */ unk8 mUnk_00;
/* 01 */ unk8 mUnk_01;
/* 02 */ unk8 mUnk_02;
@@ -22,7 +22,7 @@ struct OverlaySetup {
/* 18 */ void *mUnk_18;
/* 1c */
};
extern OverlaySetup gOverlaySetups[];
extern GameModeData gGameModes[];
extern u32 *data_027e0ce0[];
extern "C" void func_ov007_02102850(u32 **);
@@ -52,23 +52,21 @@ THUMB void OverlayManager::Unload(OverlayIndex index) {
}
}
//! TODO: solve the .word issue with the overlay IDs
//! both functions should match otherwise
THUMB void OverlayManager::LoadOverlaySetup(s32 index) {
THUMB void OverlayManager::LoadGameMode(s32 mode) {
OverlayId overlayId;
OverlaySetup *pSetup;
GameModeData *pSetup;
pSetup = &gOverlaySetups[index];
pSetup = &gGameModes[mode];
this->LoadIfNotLoaded(OverlayIndex_1, pSetup->slot1Overlay);
this->LoadIfNotLoaded(OverlayIndex_2, pSetup->slot2Overlay);
if (index == 5) {
if (mode == 5) {
func_ov007_02102850(data_027e0ce0);
} else {
overlayId = pSetup->slot12Overlay;
if (index == 6 && data_ov000_020ee698.mUnk_2c == 2) {
if (mode == 6 && data_ov000_020ee698.mUnk_2c == 2) {
overlayId = OverlayId_61;
}
@@ -77,7 +75,7 @@ THUMB void OverlayManager::LoadOverlaySetup(s32 index) {
}
}
THUMB void OverlayManager::UnloadOverlaySetup() {
THUMB void OverlayManager::UnloadGameMode() {
this->Unload(OverlayIndex_12);
this->Unload(OverlayIndex_3);