Merge pull request #113 from AetiasHax/game

`src/Main/Game/Game.cpp` 26%
This commit is contained in:
Aetias
2025-07-06 14:53:40 +02:00
committed by GitHub
30 changed files with 369 additions and 103 deletions
+1
View File
@@ -63,6 +63,7 @@ src/Main/Unknown/UnkStruct_02063220.cpp:
src/Main/Game/Game.cpp:
.text start:0x0202c6c8 end:0x0202d0cc
.rodata start:0x020561f4 end:0x020562d4
src/Main/Game/GameMode.cpp:
complete
+1 -1
View File
@@ -71,7 +71,7 @@ data_027e0698 kind:bss addr:0x027e0698
data_027e06d8 kind:bss addr:0x027e06d8
data_027e06e4 kind:bss addr:0x027e06e4
data_027e0718 kind:bss addr:0x027e0718
data_027e071c kind:bss addr:0x027e071c
gFadeController kind:bss addr:0x027e071c
gRandom kind:bss(size=0x18) addr:0x027e0764
data_027e077c kind:bss addr:0x027e077c
data_027e080c kind:bss addr:0x027e080c
+1 -1
View File
@@ -65,7 +65,7 @@ func_01ffa674 kind:function(arm,size=0xcc) addr:0x01ffa674
func_01ffa740 kind:function(arm,size=0x14) addr:0x01ffa740
func_01ffa754 kind:function(arm,size=0xa8) addr:0x01ffa754
func_01ffa7fc kind:function(arm,size=0xd8) addr:0x01ffa7fc
func_01ffa8d4 kind:function(arm,size=0x60) addr:0x01ffa8d4
FlushGfxQueue kind:function(arm,size=0x60) addr:0x01ffa8d4
func_01ffa934 kind:function(arm,size=0x18) addr:0x01ffa934
func_01ffa94c kind:function(arm,size=0xb0) addr:0x01ffa94c
PushGeometryCommand kind:function(arm,size=0xf0) addr:0x01ffa9fc
+6 -6
View File
@@ -179,7 +179,7 @@ func_ov000_0207a908 kind:function(thumb,size=0x30) addr:0x0207a908
func_ov000_0207a938 kind:function(thumb,size=0x18) addr:0x0207a938
func_ov000_0207a950 kind:function(arm,size=0x29c) addr:0x0207a950
func_ov000_0207abec kind:function(arm,size=0x38) addr:0x0207abec
_ZN12TouchControlC2Ev kind:function(thumb,size=0x3c) addr:0x0207ac24
_ZN12TouchControl4InitEv kind:function(thumb,size=0x3c) addr:0x0207ac24
_ZN12TouchControl13IncreaseSpeedEs kind:function(arm,size=0x18) addr:0x0207ac60
_ZN12TouchControl11UpdateFlagsEt kind:function(arm,size=0x118) addr:0x0207ac78
_ZN12TouchControl20UpdateWithStateFlagsEP15TouchStateFlagst kind:function(arm,size=0xdc) addr:0x0207ad90
@@ -199,7 +199,7 @@ func_ov000_0207b144 kind:function(thumb,size=0xa0) addr:0x0207b144
func_ov000_0207b1e4 kind:function(thumb,size=0x18) addr:0x0207b1e4
func_ov000_0207b1fc kind:function(thumb,size=0x7c) addr:0x0207b1fc
func_ov000_0207b278 kind:function(thumb,size=0x10) addr:0x0207b278
func_ov000_0207b288 kind:function(thumb,size=0x3c) addr:0x0207b288
_ZN15Struct_027e0db019func_ov000_0207b288Ei kind:function(thumb,size=0x3c) addr:0x0207b288
func_ov000_0207b2c4 kind:function(thumb,size=0x2c) addr:0x0207b2c4
func_ov000_0207b2f0 kind:function(thumb,size=0x44) addr:0x0207b2f0
func_ov000_0207b334 kind:function(thumb,size=0x44) addr:0x0207b334
@@ -227,7 +227,7 @@ func_ov000_0207bc48 kind:function(arm,size=0x20) addr:0x0207bc48
func_ov000_0207bc68 kind:function(arm,size=0x14) addr:0x0207bc68
func_ov000_0207bc7c kind:function(thumb,size=0x1e) addr:0x0207bc7c
func_ov000_0207bc9c kind:function(arm,size=0x18) addr:0x0207bc9c
func_ov000_0207bcb4 kind:function(thumb,size=0x28) addr:0x0207bcb4
_ZN18UnkStruct_027e0e2c19func_ov000_0207bcb4Ev kind:function(thumb,size=0x28) addr:0x0207bcb4
func_ov000_0207bcdc kind:function(thumb,size=0x70) addr:0x0207bcdc
func_ov000_0207bd4c kind:function(thumb,size=0x50) addr:0x0207bd4c
func_ov000_0207bd9c kind:function(thumb,size=0x38) addr:0x0207bd9c
@@ -3213,7 +3213,7 @@ func_ov000_020ce6b0 kind:function(arm,size=0x8) addr:0x020ce6b0
func_ov000_020ce6b8 kind:function(arm,size=0x1c) addr:0x020ce6b8
func_ov000_020ce6d4 kind:function(arm,size=0x14) addr:0x020ce6d4
func_ov000_020ce6e8 kind:function(arm,size=0x1c) addr:0x020ce6e8
func_ov000_020ce704 kind:function(thumb,size=0x3a) addr:0x020ce704
_ZN18UnkStruct_027e0ffc19func_ov000_020ce704Ev kind:function(thumb,size=0x3a) addr:0x020ce704
func_ov000_020ce740 kind:function(arm,size=0x1a4) addr:0x020ce740
func_ov000_020ce8e4 kind:function(arm,size=0x30) addr:0x020ce8e4
func_ov000_020ce914 kind:function(arm,size=0x5c) addr:0x020ce914
@@ -3551,8 +3551,8 @@ func_ov000_020d61b0 kind:function(arm,size=0x1e4) addr:0x020d61b0
func_ov000_020d6394 kind:function(arm,size=0x50) addr:0x020d6394
func_ov000_020d63e4 kind:function(arm,size=0x18) addr:0x020d63e4
func_ov000_020d63fc kind:function(arm,size=0x3c) addr:0x020d63fc
func_ov000_020d6438 kind:function(thumb,size=0x50) addr:0x020d6438
func_ov000_020d6488 kind:function(thumb,size=0x24) addr:0x020d6488
_ZN18UnkStruct_020ee73419func_ov000_020d6438Ei kind:function(thumb,size=0x50) addr:0x020d6438
_ZN18UnkStruct_020ee73419func_ov000_020d6488Ev kind:function(thumb,size=0x24) addr:0x020d6488
func_ov000_020d64ac kind:function(arm,size=0x94) addr:0x020d64ac
func_ov000_020d6540 kind:function(thumb,size=0x2c) addr:0x020d6540
func_ov000_020d656c kind:function(thumb,size=0x28) addr:0x020d656c
+7 -7
View File
@@ -1431,7 +1431,7 @@ _ZN18UnkStruct_0202e1a013func_0202e58cEv kind:function(arm,size=0x40) addr:0x020
_ZN18UnkStruct_0202e1a013func_0202e5ccEv kind:function(arm,size=0xa4) addr:0x0202e5cc
_ZN18UnkStruct_0202e1a013func_0202e670Ev kind:function(arm,size=0x34) addr:0x0202e670
func_0202e6a4 kind:function(thumb,size=0x8c) addr:0x0202e6a4
_ZN18UnkStruct_027e077cC2Ei kind:function(thumb,size=0x10) addr:0x0202e730
_ZN18UnkStruct_027e077c4InitEi kind:function(thumb,size=0x10) addr:0x0202e730
_ZN18UnkStruct_027e077c13func_0202e740Ei kind:function(arm,size=0x34) addr:0x0202e740
func_0202e774 kind:function(thumb,size=0x30) addr:0x0202e774
func_0202e7a4 kind:function(thumb,size=0x18) addr:0x0202e7a4
@@ -1790,7 +1790,7 @@ func_02036240 kind:function(arm,size=0x170) addr:0x02036240
func_020363b0 kind:function(arm,size=0x18) addr:0x020363b0
func_020363c8 kind:function(arm,size=0x74) addr:0x020363c8
_ZN14MessageManager13func_0203643cEPiPS_j kind:function(arm,size=0x54) addr:0x0203643c
_ZN14MessageManager13func_02036490Eiii kind:function(thumb,size=0x1cc) addr:0x02036490
_ZN14MessageManager13func_02036490Ev kind:function(thumb,size=0x1cc) addr:0x02036490
_ZN14MessageManager13func_0203665cEv kind:function(thumb,size=0x4a) addr:0x0203665c
func_020366a8 kind:function(arm,size=0x1c) addr:0x020366a8
_ZN14MessageManager13func_020366c4Ev kind:function(arm,size=0x3c) addr:0x020366c4
@@ -1828,7 +1828,7 @@ _ZN11BMGFileInfo13func_0203728cEi kind:function(arm,size=0x64) addr:0x0203728c
_ZN9BMGGroups13func_020372f0E12BMGFileIndexs kind:function(thumb,size=0xc4) addr:0x020372f0
_ZN9BMGGroups13func_020373b4Es kind:function(thumb,size=0x36) addr:0x020373b4
_ZN9BMGGroups13func_020373ecEi kind:function(arm,size=0x60) addr:0x020373ec
_ZN18UnkStruct_027e05f8C2Ev kind:function(thumb,size=0xa) addr:0x0203744c
_ZN18UnkStruct_027e05f84InitEv kind:function(thumb,size=0xa) addr:0x0203744c
_ZN18UnkStruct_027e05f813func_02037458Et kind:function(arm,size=0x28) addr:0x02037458
_ZN18UnkStruct_027e05f813func_02037480Ev kind:function(arm,size=0x10) addr:0x02037480
_ZN18UnkStruct_027e05f813func_02037490Ei kind:function(arm,size=0x24) addr:0x02037490
@@ -2005,15 +2005,15 @@ func_0203d448 kind:function(arm,size=0x1c) addr:0x0203d448
func_0203d464 kind:function(arm,size=0x4c) addr:0x0203d464
func_0203d4b0 kind:function(arm,size=0x88) addr:0x0203d4b0
func_0203d538 kind:function(arm,size=0x44) addr:0x0203d538
func_0203d57c kind:function(thumb,size=0x44) addr:0x0203d57c
func_0203d5c0 kind:function(thumb,size=0x1a) addr:0x0203d5c0
_ZN17UnkClass_027e0cbc13func_0203d57cEv kind:function(thumb,size=0x44) addr:0x0203d57c
_ZN17UnkClass_027e0cbc13func_0203d5c0Ev kind:function(thumb,size=0x1a) addr:0x0203d5c0
func_0203d5dc kind:function(thumb,size=0x24) addr:0x0203d5dc
func_0203d600 kind:function(arm,size=0x4c) addr:0x0203d600
func_0203d64c kind:function(arm,size=0x18) addr:0x0203d64c
func_0203d664 kind:function(arm,size=0x18) addr:0x0203d664
func_0203d67c kind:function(arm,size=0x1c) addr:0x0203d67c
func_0203d698 kind:function(thumb,size=0x38) addr:0x0203d698
func_0203d6d0 kind:function(thumb,size=0x6) addr:0x0203d6d0
_ZN17UnkClass_027e0cbc13func_0203d6d0Ev kind:function(thumb,size=0x6) addr:0x0203d6d0
func_0203d6d8 kind:function(thumb,size=0x58) addr:0x0203d6d8
func_0203d730 kind:function(thumb,size=0x4c) addr:0x0203d730
func_0203d77c kind:function(arm,size=0x3c) addr:0x0203d77c
@@ -2095,7 +2095,7 @@ func_0203f6dc kind:function(arm,size=0x28) addr:0x0203f6dc
func_0203f704 kind:function(arm,size=0xc8) addr:0x0203f704
func_0203f7cc kind:function(arm,size=0xd0) addr:0x0203f7cc
func_0203f89c kind:function(arm,size=0x68) addr:0x0203f89c
func_0203f904 kind:function(thumb,size=0x70) addr:0x0203f904
_ZN18UnkStruct_02075dac13func_0203f904Ev kind:function(thumb,size=0x70) addr:0x0203f904
func_0203f974 kind:function(arm,size=0x44) addr:0x0203f974
func_0203f9b8 kind:function(arm,size=0x9c) addr:0x0203f9b8
func_0203fa54 kind:function(arm,size=0x2c) addr:0x0203fa54
+1
View File
@@ -63,6 +63,7 @@ src/Main/Unknown/UnkStruct_02063220.cpp:
src/Main/Game/Game.cpp:
.text start:0x0202c6b0 end:0x0202d0b4
.rodata start:0x020561b0 end:0x02056290
src/Main/Game/GameMode.cpp:
complete
+1 -1
View File
@@ -71,7 +71,7 @@ data_027e0698 kind:bss addr:0x027e0698
data_027e06d8 kind:bss addr:0x027e06d8
data_027e06e4 kind:bss addr:0x027e06e4
data_027e0718 kind:bss addr:0x027e0718
data_027e071c kind:bss addr:0x027e071c
gFadeController kind:bss addr:0x027e071c
gRandom kind:bss addr:0x027e0764
data_027e077c kind:bss addr:0x027e077c
data_027e080c kind:bss addr:0x027e080c
+1 -1
View File
@@ -65,7 +65,7 @@ func_01ffa674 kind:function(arm,size=0xcc) addr:0x01ffa674
func_01ffa740 kind:function(arm,size=0x14) addr:0x01ffa740
func_01ffa754 kind:function(arm,size=0xa8) addr:0x01ffa754
func_01ffa7fc kind:function(arm,size=0xd8) addr:0x01ffa7fc
func_01ffa8d4 kind:function(arm,size=0x60) addr:0x01ffa8d4
FlushGfxQueue kind:function(arm,size=0x60) addr:0x01ffa8d4
func_01ffa934 kind:function(arm,size=0x18) addr:0x01ffa934
func_01ffa94c kind:function(arm,size=0xb0) addr:0x01ffa94c
PushGeometryCommand kind:function(arm,size=0xf0) addr:0x01ffa9fc
+6 -6
View File
@@ -179,7 +179,7 @@ func_ov000_0207a908 kind:function(thumb,size=0x30) addr:0x0207a8a8
func_ov000_0207a938 kind:function(thumb,size=0x18) addr:0x0207a8d8
func_ov000_0207a950 kind:function(arm,size=0x29c) addr:0x0207a8f0
func_ov000_0207abec kind:function(arm,size=0x38) addr:0x0207ab8c
_ZN12TouchControlC2Ev kind:function(thumb,size=0x3c) addr:0x0207abc4
_ZN12TouchControl4InitEv kind:function(thumb,size=0x3c) addr:0x0207abc4
_ZN12TouchControl13IncreaseSpeedEs kind:function(arm,size=0x18) addr:0x0207ac00
_ZN12TouchControl11UpdateFlagsEt kind:function(arm,size=0x118) addr:0x0207ac18
_ZN12TouchControl20UpdateWithStateFlagsEP15TouchStateFlagst kind:function(arm,size=0xdc) addr:0x0207ad30
@@ -199,7 +199,7 @@ func_ov000_0207b144 kind:function(thumb,size=0xa0) addr:0x0207b0e4
func_ov000_0207b1e4 kind:function(thumb,size=0x18) addr:0x0207b184
func_ov000_0207b1fc kind:function(thumb,size=0x7c) addr:0x0207b19c
func_ov000_0207b278 kind:function(thumb,size=0x10) addr:0x0207b218
func_ov000_0207b288 kind:function(thumb,size=0x3c) addr:0x0207b228
_ZN15Struct_027e0db019func_ov000_0207b288Ei kind:function(thumb,size=0x3c) addr:0x0207b228
func_ov000_0207b2c4 kind:function(thumb,size=0x2c) addr:0x0207b264
func_ov000_0207b2f0 kind:function(thumb,size=0x44) addr:0x0207b290
func_ov000_0207b334 kind:function(thumb,size=0x44) addr:0x0207b2d4
@@ -227,7 +227,7 @@ func_ov000_0207bc48 kind:function(arm,size=0x20) addr:0x0207bbe8
func_ov000_0207bc68 kind:function(arm,size=0x14) addr:0x0207bc08
func_ov000_0207bc7c kind:function(thumb,size=0x1e) addr:0x0207bc1c
func_ov000_0207bc9c kind:function(arm,size=0x18) addr:0x0207bc3c
func_ov000_0207bcb4 kind:function(thumb,size=0x28) addr:0x0207bc54
_ZN18UnkStruct_027e0e2c19func_ov000_0207bcb4Ev kind:function(thumb,size=0x28) addr:0x0207bc54
func_ov000_0207bcdc kind:function(thumb,size=0x70) addr:0x0207bc7c
func_ov000_0207bd4c kind:function(thumb,size=0x50) addr:0x0207bcec
func_ov000_0207bd9c kind:function(thumb,size=0x38) addr:0x0207bd3c
@@ -3213,7 +3213,7 @@ func_ov000_020ce6b0 kind:function(arm,size=0x8) addr:0x020ce650
func_ov000_020ce6b8 kind:function(arm,size=0x1c) addr:0x020ce658
func_ov000_020ce6d4 kind:function(arm,size=0x14) addr:0x020ce674
func_ov000_020ce6e8 kind:function(arm,size=0x1c) addr:0x020ce688
func_ov000_020ce704 kind:function(thumb,size=0x3a) addr:0x020ce6a4
_ZN18UnkStruct_027e0ffc19func_ov000_020ce704Ev kind:function(thumb,size=0x3a) addr:0x020ce6a4
func_ov000_020ce740 kind:function(arm,size=0x1a4) addr:0x020ce6e0
func_ov000_020ce8e4 kind:function(arm,size=0x30) addr:0x020ce884
func_ov000_020ce914 kind:function(arm,size=0x5c) addr:0x020ce8b4
@@ -3551,8 +3551,8 @@ func_ov000_020d61b0 kind:function(arm,size=0x1e4) addr:0x020d6150
func_ov000_020d6394 kind:function(arm,size=0x50) addr:0x020d6334
func_ov000_020d63e4 kind:function(arm,size=0x18) addr:0x020d6384
func_ov000_020d63fc kind:function(arm,size=0x3c) addr:0x020d639c
func_ov000_020d6438 kind:function(thumb,size=0x50) addr:0x020d63d8
func_ov000_020d6488 kind:function(thumb,size=0x24) addr:0x020d6428
_ZN18UnkStruct_020ee73419func_ov000_020d6438Ei kind:function(thumb,size=0x50) addr:0x020d63d8
_ZN18UnkStruct_020ee73419func_ov000_020d6488Ev kind:function(thumb,size=0x24) addr:0x020d6428
func_ov000_020d64ac kind:function(arm,size=0x94) addr:0x020d644c
func_ov000_020d6540 kind:function(thumb,size=0x2c) addr:0x020d64e0
func_ov000_020d656c kind:function(thumb,size=0x28) addr:0x020d650c
+7 -7
View File
@@ -1431,7 +1431,7 @@ _ZN18UnkStruct_0202e1a013func_0202e58cEv kind:function(arm,size=0x40) addr:0x020
_ZN18UnkStruct_0202e1a013func_0202e5ccEv kind:function(arm,size=0xa4) addr:0x0202e5c8
_ZN18UnkStruct_0202e1a013func_0202e670Ev kind:function(arm,size=0x34) addr:0x0202e66c
func_0202e6a4 kind:function(thumb,size=0x8c) addr:0x0202e6a0
_ZN18UnkStruct_027e077cC2Ei kind:function(thumb,size=0x10) addr:0x0202e72c
_ZN18UnkStruct_027e077c4InitEi kind:function(thumb,size=0x10) addr:0x0202e72c
_ZN18UnkStruct_027e077c13func_0202e740Ei kind:function(arm,size=0x34) addr:0x0202e73c
func_0202e774 kind:function(thumb,size=0x30) addr:0x0202e770
func_0202e7a4 kind:function(thumb,size=0x18) addr:0x0202e7a0
@@ -1790,7 +1790,7 @@ func_02036240 kind:function(arm,size=0x170) addr:0x020361fc
func_020363b0 kind:function(arm,size=0x18) addr:0x0203636c
func_020363c8 kind:function(arm,size=0x74) addr:0x02036384
_ZN14MessageManager13func_0203643cEPiPS_j kind:function(arm,size=0x54) addr:0x020363f8
_ZN14MessageManager13func_02036490Eiii kind:function(thumb,size=0x1cc) addr:0x0203644c
_ZN14MessageManager13func_02036490Ev kind:function(thumb,size=0x1cc) addr:0x0203644c
_ZN14MessageManager13func_0203665cEv kind:function(thumb,size=0x4a) addr:0x02036618
func_020366a8 kind:function(arm,size=0x1c) addr:0x02036664
_ZN14MessageManager13func_020366c4Ev kind:function(arm,size=0x3c) addr:0x02036680
@@ -1828,7 +1828,7 @@ _ZN11BMGFileInfo13func_0203728cEi kind:function(arm,size=0x64) addr:0x02037248
_ZN9BMGGroups13func_020372f0E12BMGFileIndexs kind:function(thumb,size=0xc4) addr:0x020372ac
_ZN9BMGGroups13func_020373b4Es kind:function(thumb,size=0x36) addr:0x02037370
_ZN9BMGGroups13func_020373ecEi kind:function(arm,size=0x60) addr:0x020373a8
_ZN18UnkStruct_027e05f8C2Ev kind:function(thumb,size=0xa) addr:0x02037408
_ZN18UnkStruct_027e05f84InitEv kind:function(thumb,size=0xa) addr:0x02037408
_ZN18UnkStruct_027e05f813func_02037458Et kind:function(arm,size=0x28) addr:0x02037414
_ZN18UnkStruct_027e05f813func_02037480Ev kind:function(arm,size=0x10) addr:0x0203743c
_ZN18UnkStruct_027e05f813func_02037490Ei kind:function(arm,size=0x24) addr:0x0203744c
@@ -2005,15 +2005,15 @@ func_0203d448 kind:function(arm,size=0x1c) addr:0x0203d404
func_0203d464 kind:function(arm,size=0x4c) addr:0x0203d420
func_0203d4b0 kind:function(arm,size=0x88) addr:0x0203d46c
func_0203d538 kind:function(arm,size=0x44) addr:0x0203d4f4
func_0203d57c kind:function(thumb,size=0x44) addr:0x0203d538
func_0203d5c0 kind:function(thumb,size=0x1a) addr:0x0203d57c
_ZN17UnkClass_027e0cbc13func_0203d57cEv kind:function(thumb,size=0x44) addr:0x0203d538
_ZN17UnkClass_027e0cbc13func_0203d5c0Ev kind:function(thumb,size=0x1a) addr:0x0203d57c
func_0203d5dc kind:function(thumb,size=0x24) addr:0x0203d598
func_0203d600 kind:function(arm,size=0x4c) addr:0x0203d5bc
func_0203d64c kind:function(arm,size=0x18) addr:0x0203d608
func_0203d664 kind:function(arm,size=0x18) addr:0x0203d620
func_0203d67c kind:function(arm,size=0x1c) addr:0x0203d638
func_0203d698 kind:function(thumb,size=0x38) addr:0x0203d654
func_0203d6d0 kind:function(thumb,size=0x6) addr:0x0203d68c
_ZN17UnkClass_027e0cbc13func_0203d6d0Ev kind:function(thumb,size=0x6) addr:0x0203d68c
func_0203d6d8 kind:function(thumb,size=0x58) addr:0x0203d694
func_0203d730 kind:function(thumb,size=0x4c) addr:0x0203d6ec
func_0203d77c kind:function(arm,size=0x3c) addr:0x0203d738
@@ -2095,7 +2095,7 @@ func_0203f6dc kind:function(arm,size=0x28) addr:0x0203f698
func_0203f704 kind:function(arm,size=0xc8) addr:0x0203f6c0
func_0203f7cc kind:function(arm,size=0xd0) addr:0x0203f788
func_0203f89c kind:function(arm,size=0x68) addr:0x0203f858
func_0203f904 kind:function(thumb,size=0x70) addr:0x0203f8c0
_ZN18UnkStruct_02075dac13func_0203f904Ev kind:function(thumb,size=0x70) addr:0x0203f8c0
func_0203f974 kind:function(arm,size=0x44) addr:0x0203f930
func_0203f9b8 kind:function(arm,size=0x9c) addr:0x0203f974
func_0203fa54 kind:function(arm,size=0x2c) addr:0x0203fa10
+1 -1
View File
@@ -13,7 +13,7 @@ struct UnkStruct_027e05f8 {
~UnkStruct_027e05f8();
// Big gap to next TU
UnkStruct_027e05f8();
void Init();
void func_02037458(u16 param1);
void func_02037480();
static unk32 func_02037490(unk32 param1);
+2 -4
View File
@@ -4,16 +4,14 @@
#include "types.h"
struct UnkStruct_027e077c {
private:
public:
/* 0 */ unk32 mUnk_0;
/* 4 */ unk32 mUnk_4;
public:
/* 8 */ unk16 mUnk_8;
/* a */ unk8 mUnk_a;
/* b */
UnkStruct_027e077c(unk32 param1);
void Init(unk32 param1);
bool func_0202e740(unk32 param1);
inline volatile unk32 GetUnk0() const {
+2
View File
@@ -17,6 +17,8 @@ struct UnkStruct_027e0e2c {
/* 24 */ unk32 mUnk_24;
/* 28 */ unk32 mUnk_28;
/* 2c */
void func_ov000_0207bcb4();
};
extern UnkStruct_027e0e2c data_027e0e2c;
+3
View File
@@ -3,6 +3,8 @@
#include "global.h"
#include "types.h"
#include "Physics/Cylinder.hpp"
struct UnkStruct_027e0ffc {
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04[0x4];
@@ -19,6 +21,7 @@ struct UnkStruct_027e0ffc {
/* 38 */ unk8 mUnk_38;
/* 39 */
void func_ov000_020ce704();
void func_ov000_020cebcc(u32 param1, unk16 param2, unk32 param3);
void func_ov000_020ced64(Cylinder *param1, u32 param2, u32 param3);
void func_ov000_020ced7c(Vec3p *param1, s32 param2, s32 param3, unk32 param4);
+23 -5
View File
@@ -5,11 +5,29 @@
#include "Game/GameMode.hpp"
#include "Render/FadeControl.hpp"
#include "System/OverlayManager.hpp"
typedef GameMode *(*GameModeCreateFunc)(GameModeId modeId);
struct GameModeData {
/* 00 */ u8 mUnk_00;
/* 01 */ u8 mUnk_01;
/* 02 */ u8 mUnk_02;
/* 03 */ u8 mUnk_03;
/* 04 */ OverlayId slot1Overlay;
/* 08 */ OverlayId slot2Overlay;
/* 0c */ OverlayId slot3Overlay;
/* 10 */ OverlayId slot12Overlay;
/* 14 */ GameModeCreateFunc mModeCreateFunc;
/* 18 */ void *mUnk_18;
/* 1c */
};
extern const GameModeData gGameModes[];
class Game {
public:
/* 000 */ s32 mModeId;
/* 004 */ s32 mPrevModeId;
/* 000 */ GameModeId mModeId;
/* 004 */ GameModeId mPrevModeId;
/* 008 */ GameMode *mMode;
/* 00c */ unk8 mUnk_00c[0xc0];
/* 0cc */ FadeControl mFadeControl;
@@ -17,8 +35,8 @@ public:
/* 0f2 */ u16 mUnk_0f2;
/* 0f4 */ s32 mUnk_0f4;
/* 0f8 */ s32 mUnk_0f8;
/* 0fc */ unk16 mUnk_0fc;
/* 0fe */ unk16 mUnk_0fe;
/* 0fc */ u16 mUnk_0fc;
/* 0fe */ u16 mUnk_0fe;
/* 100 */ unk8 mUnk_100;
/* 101 */ s8 mUnk_101;
/* 102 */ bool mUnk_102;
@@ -29,7 +47,7 @@ public:
~Game();
void EndGameMode();
void StartGameMode();
bool StartGameMode();
void func_0202c974();
void func_0202c97c();
void Run();
+1 -1
View File
@@ -40,7 +40,7 @@ public:
/* 0x4C */
static void func_0203643c(u32 *param_1, MessageManager *param_2, u32 param_3);
void func_02036490(unk32 param_2, unk32 param_3, unk32 param_4);
void func_02036490();
void func_0203665c(void);
MessageManager();
~MessageManager();
+9 -10
View File
@@ -1,9 +1,12 @@
#pragma once
#include "nds/math.h"
#include "DTCM/UnkStruct_027e077c.hpp"
#include "Game/Game.hpp"
#include "Message/BMG.hpp"
#include "System/SysNew.hpp"
#include "Unknown/func_ov000_020d0644.hpp"
#include "nds/math.h"
// temp
#define UNK_TYPE void
@@ -88,20 +91,16 @@ extern char *data_02057ed8; // "MSP:opening.nclr"
struct Struct_027e0db0 {
/* 0x00 */ unk32 mUnk_00;
/* 0x04 */ unk32 mUnk_04;
void func_ov000_0207b288(GameModeId modeId);
};
extern Struct_027e0db0 data_027e0db0;
// see Actor.cpp
struct UnkStruct2 {
/* 0 */ u32 mUnk_0;
/* 4 */ u32 mUnk_4;
/* 8 */
};
extern UnkStruct2 data_027e077c;
extern u8 data_02056be4[];
class UnkClass_027e0cbc {
public:
void func_0203d57c();
void func_0203d5c0();
void func_0203d6d0();
unk32 func_0203d7e0(unk32);
unk32 func_0203d77c(unk32, s32, s32);
};
+1 -1
View File
@@ -37,7 +37,7 @@ public:
/* 34 */ TouchFlags mFlags;
/* 36 */
TouchControl();
void Init();
void IncreaseSpeed(s16 increase);
void UpdateFlags(u16 speed);
void UpdateWithStateFlags(TouchStateFlags *state, u16 speed);
+2
View File
@@ -31,3 +31,5 @@ struct FadeController {
void ProcessFade(s32 param1);
void SetScreenBrightness(s32 param1);
};
extern FadeController gFadeController;
+12 -12
View File
@@ -75,21 +75,21 @@ typedef u32 OverlayId;
#define OverlayId_01 OVERLAY_ID(1)
#define OverlayId_02 OVERLAY_ID(2)
#define OverlayId_03 OVERLAY_ID(3)
#define OverlayId_Memory OVERLAY_ID(4)
#define OverlayId_Load OVERLAY_ID(4)
#define OverlayId_05 OVERLAY_ID(5)
#define OverlayId_06 OVERLAY_ID(6)
#define OverlayId_07 OVERLAY_ID(7)
#define OverlayId_08 OVERLAY_ID(8)
#define OverlayId_09 OVERLAY_ID(9)
#define OverlayId_10 OVERLAY_ID(10)
#define OverlayId_11 OVERLAY_ID(11)
#define OverlayId_12 OVERLAY_ID(12)
#define OverlayId_13 OVERLAY_ID(13)
#define OverlayId_DownloadPlay OVERLAY_ID(7)
#define OverlayId_GameStart OVERLAY_ID(8)
#define OverlayId_Adventure OVERLAY_ID(9)
#define OverlayId_FileSelect OVERLAY_ID(10)
#define OverlayId_DwcSetup OVERLAY_ID(11)
#define OverlayId_Battle OVERLAY_ID(12)
#define OverlayId_Contact OVERLAY_ID(13)
#define OverlayId_Land OVERLAY_ID(14)
#define OverlayId_15 OVERLAY_ID(15)
#define OverlayId_16 OVERLAY_ID(16)
#define OverlayId_17 OVERLAY_ID(17)
#define OverlayId_18 OVERLAY_ID(18)
#define OverlayId_Sea OVERLAY_ID(15)
#define OverlayId_Startup OVERLAY_ID(16)
#define OverlayId_Dungeon OVERLAY_ID(17)
#define OverlayId_Overworld OVERLAY_ID(18)
#define OverlayId_19 OVERLAY_ID(19)
#define OverlayId_20 OVERLAY_ID(20)
#define OverlayId_21 OVERLAY_ID(21)
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_02075dac {
public:
void func_0203f904();
unk32 func_0203f9b8(void *);
};
extern UnkStruct_02075dac data_02075dac;
+7
View File
@@ -1,7 +1,14 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Game/Game.hpp"
struct UnkStruct_020ee734 {
void func_ov000_020d6488();
void func_ov000_020d6620(void);
void func_ov000_020d6438(GameModeId modeId);
};
extern UnkStruct_020ee734 data_ov000_020ee734;
+1 -1
View File
@@ -1,6 +1,6 @@
#include "Player/TouchControl.hpp"
TouchControl::TouchControl() {}
void TouchControl::Init() {}
void TouchControl::IncreaseSpeed(s16 increase) {
this->mFlags = 0;
+1 -1
View File
@@ -1,6 +1,6 @@
#include "DTCM/UnkStruct_027e05f8.hpp"
UnkStruct_027e05f8::UnkStruct_027e05f8() {}
void UnkStruct_027e05f8::Init() {}
void UnkStruct_027e05f8::func_02037458(u16 param1) {}
void UnkStruct_027e05f8::func_02037480() {}
unk32 UnkStruct_027e05f8::func_02037490(unk32 param1) {}
+1 -1
View File
@@ -1,4 +1,4 @@
#include "DTCM/UnkStruct_027e077c.hpp"
UnkStruct_027e077c::UnkStruct_027e077c(unk32 param1) {}
void UnkStruct_027e077c::Init(unk32 param1) {}
bool UnkStruct_027e077c::func_0202e740(unk32 param1) {}
+251 -9
View File
@@ -1,11 +1,253 @@
#include "Game/Game.hpp"
#include "DTCM/UnkStruct_027e05f8.hpp"
#include "DTCM/UnkStruct_027e077c.hpp"
#include "DTCM/UnkStruct_027e0e2c.hpp"
#include "DTCM/UnkStruct_027e0ffc.hpp"
#include "Game/GameModeAdventure.hpp"
#include "Game/GameModeBattle.hpp"
#include "Message/MessageManager.hpp"
#include "Message/MsgProc.hpp"
#include "Player/TouchControl.hpp"
#include "Render/FadeController.hpp"
#include "System/OverlayManager.hpp"
#include "Unknown/UnkStruct_0203dae0.hpp"
#include "Unknown/UnkStruct_02075dac.hpp"
#include "Unknown/UnkStruct_020ee734.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() {}
#define FRAME_COUNTER (*(u32 *) 0x027ffc3c)
#define REG_POWER_CNT (*(u16 *) 0x04000304)
#define REG_DISPCNT_SUB (*(volatile u32 *) 0x04001000)
#define GAME_MODE_DATA(id) ((GameModeData *) (((u8 *) &gGameModes) + ((id) * sizeof(GameModeData))))
extern unk32 data_027e0dbc;
extern unk32 data_02068ed0;
extern unk32 data_02068e64;
extern unk32 data_02062d4c;
extern unk32 data_020683f4;
extern unk32 data_ov000_020ec7dc;
extern unk32 data_027e0d54;
extern bool data_027e0f8c;
extern unk32 data_ov009_0211e0c0;
extern unk32 data_ov010_0211e960;
extern unk32 data_ov007_02102920;
extern unk32 data_ov012_02134ea0;
extern unk32 data_ov013_021160b4;
extern "C" GameMode *func_ov008_02112c20(GameModeId modeId);
extern "C" GameMode *func_ov010_02112c20(GameModeId modeId);
extern "C" GameMode *func_ov011_0212b934(GameModeId modeId);
extern "C" GameMode *func_ov007_02100ae0(GameModeId modeId);
extern "C" GameMode *func_ov013_02114f78(GameModeId modeId);
const GameModeData gGameModes[] = {
{
.mUnk_00 = 1,
.mUnk_01 = 0,
.mUnk_02 = 0,
.mUnk_03 = 0,
.slot1Overlay = OverlayId_None,
.slot2Overlay = OverlayId_None,
.slot3Overlay = OverlayId_None,
.slot12Overlay = OverlayId_None,
.mModeCreateFunc = (GameModeCreateFunc) NULL,
.mUnk_18 = NULL,
},
{
.mUnk_00 = 1,
.mUnk_01 = 0,
.mUnk_02 = 0,
.mUnk_03 = 1,
.slot1Overlay = OverlayId_01,
.slot2Overlay = OverlayId_None,
.slot3Overlay = OverlayId_GameStart,
.slot12Overlay = OverlayId_None,
.mModeCreateFunc = (GameModeCreateFunc) func_ov008_02112c20,
.mUnk_18 = NULL,
},
{
.mUnk_00 = 2,
.mUnk_01 = 0,
.mUnk_02 = 1,
.mUnk_03 = 1,
.slot1Overlay = OverlayId_03,
.slot2Overlay = OverlayId_Load,
.slot3Overlay = OverlayId_Adventure,
.slot12Overlay = OverlayId_None,
.mModeCreateFunc = (GameModeCreateFunc) GameModeAdventure::Create,
.mUnk_18 = &data_ov009_0211e0c0,
},
{
.mUnk_00 = 1,
.mUnk_01 = 0,
.mUnk_02 = 0,
.mUnk_03 = 1,
.slot1Overlay = OverlayId_01,
.slot2Overlay = OverlayId_06,
.slot3Overlay = OverlayId_FileSelect,
.slot12Overlay = OverlayId_None,
.mModeCreateFunc = (GameModeCreateFunc) func_ov010_02112c20,
.mUnk_18 = &data_ov010_0211e960,
},
{
.mUnk_00 = 1,
.mUnk_01 = 0,
.mUnk_02 = 0,
.mUnk_03 = 1,
.slot1Overlay = OverlayId_01,
.slot2Overlay = OverlayId_None,
.slot3Overlay = OverlayId_DwcSetup,
.slot12Overlay = OverlayId_61,
.mModeCreateFunc = (GameModeCreateFunc) func_ov011_0212b934,
.mUnk_18 = NULL,
},
{
.mUnk_00 = 1,
.mUnk_01 = 0,
.mUnk_02 = 0,
.mUnk_03 = 1,
.slot1Overlay = OverlayId_01,
.slot2Overlay = OverlayId_DownloadPlay,
.slot3Overlay = OverlayId_None,
.slot12Overlay = OverlayId_None,
.mModeCreateFunc = (GameModeCreateFunc) func_ov007_02100ae0,
.mUnk_18 = &data_ov007_02102920,
},
{
.mUnk_00 = 1,
.mUnk_01 = 0,
.mUnk_02 = 0,
.mUnk_03 = 1,
.slot1Overlay = OverlayId_01,
.slot2Overlay = OverlayId_Load,
.slot3Overlay = OverlayId_Battle,
.slot12Overlay = OverlayId_60,
.mModeCreateFunc = (GameModeCreateFunc) GameModeBattle::Create,
.mUnk_18 = &data_ov012_02134ea0,
},
{
.mUnk_00 = 1,
.mUnk_01 = 0,
.mUnk_02 = 0,
.mUnk_03 = 1,
.slot1Overlay = OverlayId_01,
.slot2Overlay = OverlayId_None,
.slot3Overlay = OverlayId_Contact,
.slot12Overlay = OverlayId_None,
.mModeCreateFunc = (GameModeCreateFunc) func_ov013_02114f78,
.mUnk_18 = &data_ov013_021160b4,
},
};
extern "C" void func_ov000_0207b9c8(unk32 *param0);
extern "C" void func_ov000_020d6488(unk32 *param0);
extern "C" void func_0203d14c(unk32 *param0);
extern "C" void func_020355e4(unk32 *param0, unk32 param1);
extern "C" void func_02036050(u8 *param0);
THUMB void Game::EndGameMode() {
delete mMode;
mMode = NULL;
if (gOverlayManager.mLoadedOverlays[0] != -1) {
func_ov000_0207b9c8(&data_027e0dbc);
data_ov000_020ee734.func_ov000_020d6488();
}
gMessageManager.func_0203665c();
data_027e0cbc.func_0203d5c0();
func_0203d14c(&data_02068ed0);
func_020355e4(&data_02068e64, 2);
func_02036050(&data_027e0c54);
gOverlayManager.UnloadGameMode();
return;
}
extern "C" void func_0202c0cc();
extern "C" void func_0202c128(unk32 param1, u16 param2);
extern "C" void func_02017cb0(unk32 *param0, unk32 param1);
extern "C" void func_02031024(unk32 *param0);
extern "C" void Fill16(unk16 value, void *dest, s32 count);
extern "C" void func_02033d40(unk32 (*param0)[]);
extern "C" void func_ov000_0207c0f0(unk32 *param0, unk32 param1);
extern "C" void func_ov000_0207a2e8(unk32 *param0, unk32 param1);
extern "C" void func_02036014(u8 *param0, unk32 param1);
extern "C" void func_02035604(unk32 *param0, unk32 param1);
extern "C" void func_0203d0c0(unk32 *param0, unk32 param1);
extern "C" void func_ov000_0207b988(unk32 *param0, GameModeId modeId);
extern "C" void FlushGfxQueue();
extern "C" void func_0200eec8();
extern "C" void func_02005778();
extern "C" void func_02003a54();
THUMB bool Game::StartGameMode() {
func_0202c0cc();
bool bVar1 = (mModeId == 2) || (mModeId == 6);
unk16 uVar3 = bVar1 ? 0x7f72 : 0;
mUnk_0fe = uVar3;
mUnk_0fc = mUnk_0fe;
func_0202c128(1, mUnk_0fc);
func_02017cb0(&data_02062d4c, 0xc);
mUnk_0f0 = 0;
mUnk_0f4 = 0;
mUnk_101 = 0;
mUnk_103 = GAME_MODE_DATA(mModeId)->mUnk_03;
mUnk_0f2 = GAME_MODE_DATA(mModeId)->mUnk_00;
func_02031024(&data_020683f4);
data_027e077c.Init(0);
Fill16(0, &data_027e0d04, 6);
func_02033d40(&data_027e0c38);
data_027e05f8.Init();
if (gOverlayManager.mLoadedOverlays[0] != OverlayId_None) {
func_ov000_0207c0f0(&data_ov000_020ec7dc, mModeId);
gTouchControl.Init();
data_027e0e2c.func_ov000_0207bcb4();
data_027e0db0.func_ov000_0207b288(mModeId);
func_ov000_0207a2e8(&data_027e0d54, mModeId);
data_027e0ffc.func_ov000_020ce704();
data_027e0f8c = false;
}
gOverlayManager.LoadGameMode(mModeId);
func_02036014(&data_027e0c54, mModeId);
func_02035604(&data_02068e64, mModeId);
func_0203d0c0(&data_02068ed0, mModeId);
data_02075dac.func_0203f904();
data_027e0cbc.func_0203d57c();
gMessageManager.func_02036490();
if (gOverlayManager.mLoadedOverlays[0] != OverlayId_None) {
data_ov000_020ee734.func_ov000_020d6438(mModeId);
func_ov000_0207b988(&data_027e0dbc, mModeId);
}
mMode = GAME_MODE_DATA(mModeId)->mModeCreateFunc(mModeId);
mUnk_102 = 0;
data_027e0cbc.func_0203d6d0();
FlushGfxQueue();
func_0200eec8();
mUnk_0f8 = FRAME_COUNTER;
func_02005778();
bVar1 = (mModeId == 2) || (mModeId == 6);
if (!bVar1) {
REG_POWER_CNT |= 0x8000;
}
func_02003a54();
u8 unk1 = GAME_MODE_DATA(mModeId)->mUnk_03;
if (unk1 != 0) {
REG_DISPCNT_SUB |= 0x10000;
} else {
REG_DISPCNT_SUB &= ~0x10000;
}
gFadeController.func_0202d77c(&mFadeControl);
return mFadeControl.func_0202abdc(0x20, 0);
}
THUMB void Game::func_0202c974() {}
THUMB void Game::func_0202c97c() {}
ARM void Game::Run() {}
THUMB void Game::func_0202cec8(s32 param1, unk32 param2) {}
THUMB void Game::func_0202cf34() {}
ARM void Game::func_0202cf44() {}
ARM Game::~Game() {}
+1 -1
View File
@@ -29,7 +29,7 @@ ARM void MessageManager::func_0203643c(u32 *param_1, MessageManager *param_2, u3
}
// non-matching
THUMB void MessageManager::func_02036490(unk32 param_2, unk32 param_3, unk32 param_4) {
THUMB void MessageManager::func_02036490() {
this->mUnk_03 = 0;
this->mUnk_0c = 0;
+3 -19
View File
@@ -1,6 +1,5 @@
#include "System/OverlayManager.hpp"
#include "global.h"
#include "nds/overlay.h"
#include "Game/Game.hpp"
struct UnkStruct_020ee698 {
/* 00 */ unk8 mUnk_00[0x2C];
@@ -9,21 +8,6 @@ struct UnkStruct_020ee698 {
};
extern UnkStruct_020ee698 data_ov000_020ee698;
struct GameModeData {
/* 00 */ unk8 mUnk_00;
/* 01 */ unk8 mUnk_01;
/* 02 */ unk8 mUnk_02;
/* 03 */ unk8 mUnk_03;
/* 04 */ OverlayId slot1Overlay;
/* 08 */ OverlayId slot2Overlay;
/* 0c */ OverlayId slot3Overlay;
/* 10 */ OverlayId slot12Overlay;
/* 14 */ void *mUnk_14;
/* 18 */ void *mUnk_18;
/* 1c */
};
extern GameModeData gGameModes[];
extern u32 *data_027e0ce0[];
extern "C" void func_ov007_02102850(u32 **);
extern "C" void func_ov007_021028a0(u32 **);
@@ -54,7 +38,7 @@ THUMB void OverlayManager::Unload(OverlayIndex index) {
THUMB void OverlayManager::LoadGameMode(s32 mode) {
OverlayId overlayId;
GameModeData *pSetup;
const GameModeData *pSetup;
pSetup = &gGameModes[mode];
@@ -79,7 +63,7 @@ THUMB void OverlayManager::UnloadGameMode() {
this->Unload(OverlayIndex_12);
this->Unload(OverlayIndex_3);
if (this->mLoadedOverlays[2] == OverlayId_07) {
if (this->mLoadedOverlays[2] == OverlayId_DownloadPlay) {
func_ov007_021028a0(data_027e0ce0);
this->Unload(OverlayIndex_2);
}
+1 -6
View File
@@ -1,5 +1,6 @@
#include "Unknown/UnkStruct_0203dae0.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_02075dac.hpp"
extern u32 *data_027e0ce0[];
extern "C" void Fill256(unk32, unk16 *, unk32, unk32);
@@ -10,12 +11,6 @@ extern "C" void func_02029830(unk32 *, unk32, unk32, unk32, unk32);
extern "C" unk32 func_0203d400(u8);
extern "C" void func_02035440(u8);
class UnkStruct_02075dac {
public:
unk32 func_0203f9b8(void *);
};
extern UnkStruct_02075dac data_02075dac;
// non-matching
THUMB UnkStruct_0203dae0::UnkStruct_0203dae0(u8 param1) {
this->mUnk_114 = NULL;
+4 -1
View File
@@ -225,7 +225,10 @@ def main():
"json",
"delinks",
"--config-path", config_path / args.version / "arm9" / "config.yaml"
], capture_output=True, text=True, check=True)
], capture_output=True, text=True)
if out.returncode != 0:
print(f"Error running dsd:\n{out.stderr.strip()}")
return
delinks_json = json.loads(out.stdout)
project = Project(args.version, platform=platform, delinks_json=delinks_json)