Update dsd to v0.12.0; dsprot OK (#135)

* `Actor::mType` field

* Remove fake symbol `data_027e0254`

* `dsd format`

* eur: Enable dsprot decomp

* jp: Enable dsprot decomp

* dsprot OK

* `dsd format`

* Use new `weak` attribute

* Add relocations for exception table link-time constants

* Add exception table symbols

* Bump dsd to v0.12.0

* `#define FALSE 1` ???
Why did I make it 1?

* Truncate `data_ov001_020c27a8`
That data belongs to dsprot
This commit is contained in:
Aetias
2026-08-15 01:07:14 +02:00
committed by GitHub
parent ce24ddfc4e
commit 521100caed
104 changed files with 4547 additions and 2014 deletions
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -73,14 +73,6 @@ libs/c/src/ansi_files.c:
.data start:0x020446a8 end:0x0204478c
.bss start:0x020517a0 end:0x02051aa0
libs/c/src/float.c:
complete
.data start:0x0204478c end:0x02044790
libs/c/src/locale.c:
complete
.data start:0x02044790 end:0x020449ac
libs/c/src/arith.c:
complete
.text start:0x020338d4 end:0x020338ec
@@ -109,6 +101,14 @@ libs/c/src/mem_funcs.c:
complete
.text start:0x02033d7c end:0x02033e28
libs/c/src/float.c:
complete
.data start:0x0204478c end:0x02044790
libs/c/src/locale.c:
complete
.data start:0x02044790 end:0x020449ac
libs/c/src/secure_error.c:
complete
.text start:0x02033e28 end:0x02033e54
-1
View File
@@ -29,7 +29,6 @@ data_027e0200 kind:bss addr:0x027e0200
data_027e0204 kind:bss addr:0x027e0204
data_027e0208 kind:bss addr:0x027e0208
data_027e0210 kind:bss addr:0x027e0210
data_027e0254 kind:bss addr:0x027e0254
data_027e0288 kind:bss addr:0x027e0288
data_027e02b0 kind:bss addr:0x027e02b0
gGeomMatrix kind:bss addr:0x027e02c4
@@ -3316,6 +3316,9 @@ from:0x0207477c kind:arm_call to:0x02073148 module:overlay(0)
from:0x02074784 kind:arm_call to:0x02011ff4 module:main
from:0x0207479c kind:arm_call to:0x020616c8 module:overlay(0)
from:0x020747a4 kind:arm_call to:0x02073148 module:overlay(0)
from:0x020747b8 kind:arm_branch to:0x02074768 module:overlay(0)
from:0x020747c8 kind:arm_branch to:0x0207475c module:overlay(0)
from:0x020747d8 kind:arm_branch to:0x02074790 module:overlay(0)
from:0x020747f0 kind:arm_call to:0x02073154 module:overlay(0)
from:0x02074814 kind:arm_call to:0x020166ac module:main
from:0x02074820 kind:arm_call to:0x0206738c module:overlay(0)
+82 -3
View File
@@ -1,9 +1,9 @@
.text start:0x020b6520 end:0x020c25c0 kind:code align:32
.rodata start:0x020c25c0 end:0x020c2814 kind:rodata align:4
.rodata start:0x020c25c0 end:0x020c2812 kind:rodata align:4
.init start:0x020c2814 end:0x020c2900 kind:code align:4
.ctor start:0x020c2900 end:0x020c2920 kind:rodata align:4
.data start:0x020c2940 end:0x020c2fe0 kind:data align:32
.bss start:0x020c2fe0 end:0x020c4720 kind:bss align:32
.bss start:0x020c2fe0 end:0x020c4704 kind:bss align:32
src/001_SceneInit/SceneInitializers_001.cpp:
.text start:0x020b6520 end:0x020b7430
@@ -102,6 +102,11 @@ src/001_SceneInit/Player/PlayerLinkActor_001.cpp:
complete
.text start:0x020bc99c end:0x020bcca0
libs/dsprot/src/extra.c:
complete
.rodata start:0x020c27f4 end:0x020c280c
.bss start:0x020c4700 end:0x020c4704
src/001_SceneInit/UnkStruct_027e0ce0_1C_001.cpp:
.text start:0x020bcca0 end:0x020bd514
.data start:0x020c2c70 end:0x020c2c80
@@ -191,7 +196,7 @@ src/001_SceneInit/code_020bfeec.cpp:
src/001_SceneInit/Game/AdventureModeManager_001.cpp:
.text start:0x020bff74 end:0x020c0944
.rodata start:0x020c276c end:0x020c280c
.rodata start:0x020c276c end:0x020c27f4
src/001_SceneInit/Game/GameModeAdventure_001.cpp:
complete
@@ -204,3 +209,77 @@ src/001_SceneInit/code_020c099c.cpp:
.init start:0x020c28f0 end:0x020c2900
.ctor start:0x020c2908 end:0x020c290c
.data start:0x020c2fd4 end:0x020c2fe0
libs/dsprot/src/dsprot_main.c:
complete
.text start:0x020c0a24 end:0x020c0e34
libs/dsprot/src/dsprot_main_decryptor.s:
complete
.text start:0x020c0e34 end:0x020c1104
libs/dsprot/src/dsprot_main_decoder.s:
complete
.text start:0x020c1104 end:0x020c1150
.ctor start:0x020c290c end:0x020c2910
libs/dsprot/src/integrity.c:
complete
.text start:0x020c1150 end:0x020c1528
libs/dsprot/src/integrity_decryptor.s:
complete
.text start:0x020c1528 end:0x020c1708
libs/dsprot/src/integrity_decoder.s:
complete
.text start:0x020c1708 end:0x020c1740
.ctor start:0x020c2910 end:0x020c2914
libs/dsprot/src/encryptor.c:
complete
.text start:0x020c1740 end:0x020c19c4
libs/dsprot/src/encryptor_decryptor.s:
complete
.text start:0x020c19c4 end:0x020c19ec
.ctor start:0x020c2914 end:0x020c2918
libs/dsprot/src/mac_owner.c:
complete
.text start:0x020c19ec end:0x020c1b4c
.rodata start:0x020c280c end:0x020c2812
libs/dsprot/src/mac_owner_decryptor.s:
complete
.text start:0x020c1b4c end:0x020c1c3c
libs/dsprot/src/rom_util.c:
complete
.text start:0x020c1c3c end:0x020c1e18
libs/dsprot/src/rom_util_decryptor.s:
complete
.text start:0x020c1e18 end:0x020c1f08
libs/dsprot/src/rom_test.c:
complete
.text start:0x020c1f08 end:0x020c2090
libs/dsprot/src/rom_test_decryptor.s:
complete
.text start:0x020c2090 end:0x020c2180
libs/dsprot/src/coretests_decoder.s:
complete
.text start:0x020c2180 end:0x020c21c8
.ctor start:0x020c2918 end:0x020c291c
libs/dsprot/src/rc4.c:
complete
.text start:0x020c21c8 end:0x020c2570
libs/dsprot/src/rc4_decoder.s:
complete
.text start:0x020c2570 end:0x020c25c0
.ctor start:0x020c291c end:0x020c2920
+201 -26
View File
@@ -1917,7 +1917,7 @@ from:0x020bf01a kind:thumb_call_arm to:0x02016694 module:main
from:0x020bf020 kind:thumb_call_arm to:0x020bf08c module:overlay(1)
from:0x020bf038 kind:thumb_call to:0x020a0460 module:overlay(0)
from:0x020bf054 kind:arm_call to:0x0201667c module:main
from:0x020bf078 kind:load to:0x020c3f30 module:overlay(17) add:0x8
from:0x020bf078 kind:load to:0x020c2fe4 add:0xf54 module:overlay(1)
from:0x020bf088 kind:load to:0x027e0cec module:dtcm
from:0x020bf09c kind:load to:0x027e0cec module:dtcm
from:0x020bf0ac kind:load to:0x0204999c module:main
@@ -2315,37 +2315,207 @@ from:0x020c09ee kind:thumb_call_arm to:0x020c1014 module:overlay(1)
from:0x020c0a18 kind:load to:0x020c099d module:overlay(1)
from:0x020c0a1c kind:load to:0x020c09c1 module:overlay(1)
from:0x020c0a20 kind:load to:0x020c46fc module:overlay(1)
from:0x020c0c44 kind:load to:0x020c2928 module:overlays(2,4)
from:0x020c0e9c kind:load to:0x020c4701 module:overlay(1)
from:0x020c0f14 kind:load to:0x020c4701 module:overlay(1)
from:0x020c0f8c kind:load to:0x020c4701 module:overlay(1)
from:0x020c1004 kind:load to:0x020c4701 module:overlay(1)
from:0x020c107c kind:load to:0x020c4701 module:overlay(1)
from:0x020c10f4 kind:load to:0x020c4701 module:overlay(1)
from:0x020c111c kind:load to:0x020c22ac module:overlay(1)
from:0x020c1590 kind:load to:0x020c4701 module:overlay(1)
from:0x020c1608 kind:load to:0x020c4701 module:overlay(1)
from:0x020c1680 kind:load to:0x020c4701 module:overlay(1)
from:0x020c16f8 kind:load to:0x020c4701 module:overlay(1)
from:0x020c0ad0 kind:load to:0x020c2090 add:0x1400 module:overlay(1)
from:0x020c0ad4 kind:load to:0x020c1618 add:0x1400 module:overlay(1)
from:0x020c0b88 kind:load to:0x020c2108 add:0x1400 module:overlay(1)
from:0x020c0b8c kind:load to:0x020c1690 add:0x1400 module:overlay(1)
from:0x020c0c40 kind:load to:0x020c1b4c add:0x1400 module:overlay(1)
from:0x020c0c44 kind:load to:0x020c1528 add:0x1400 module:overlay(1)
from:0x020c0cf8 kind:load to:0x020c1bc4 add:0x1400 module:overlay(1)
from:0x020c0cfc kind:load to:0x020c15a0 add:0x1400 module:overlay(1)
from:0x020c0e54 kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c0e80 kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c0e9c kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c0ea0 kind:load to:0x020c4700 add:0x14ac module:overlay(1)
from:0x020c0ea4 kind:load to:0x020c4700 add:0x428b module:overlay(1)
from:0x020c0ea8 kind:load to:0x020c0a24 add:0x1400 module:overlay(1)
from:0x020c0ecc kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c0ef8 kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c0f14 kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c0f18 kind:load to:0x020c4700 add:0x14ac module:overlay(1)
from:0x020c0f1c kind:load to:0x020c4700 add:0x428b module:overlay(1)
from:0x020c0f20 kind:load to:0x020c0adc add:0x1400 module:overlay(1)
from:0x020c0f44 kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c0f70 kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c0f8c kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c0f90 kind:load to:0x020c4700 add:0x14ac module:overlay(1)
from:0x020c0f94 kind:load to:0x020c4700 add:0x428b module:overlay(1)
from:0x020c0f98 kind:load to:0x020c0b94 add:0x1400 module:overlay(1)
from:0x020c0fbc kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c0fe8 kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c1004 kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c1008 kind:load to:0x020c4700 add:0x14ac module:overlay(1)
from:0x020c100c kind:load to:0x020c4700 add:0x428b module:overlay(1)
from:0x020c1010 kind:load to:0x020c0c4c add:0x1400 module:overlay(1)
from:0x020c1034 kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c1060 kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c107c kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c1080 kind:load to:0x020c4700 add:0x1494 module:overlay(1)
from:0x020c1084 kind:load to:0x020c4700 add:0x428b module:overlay(1)
from:0x020c1088 kind:load to:0x020c0d04 add:0x1400 module:overlay(1)
from:0x020c10ac kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c10d8 kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c10f4 kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c10f8 kind:load to:0x020c4700 add:0x1494 module:overlay(1)
from:0x020c10fc kind:load to:0x020c4700 add:0x428b module:overlay(1)
from:0x020c1100 kind:load to:0x020c0d9c add:0x1400 module:overlay(1)
from:0x020c110c kind:arm_call to:0x020c179c module:overlay(1)
from:0x020c1114 kind:load to:0x020c0e34 add:0x1400 module:overlay(1)
from:0x020c1118 kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c111c kind:load to:0x020c0eac add:0x1400 module:overlay(1)
from:0x020c1120 kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c1124 kind:load to:0x020c0f24 add:0x1400 module:overlay(1)
from:0x020c1128 kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c112c kind:load to:0x020c0f9c add:0x1400 module:overlay(1)
from:0x020c1130 kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c1134 kind:load to:0x020c1014 add:0x1400 module:overlay(1)
from:0x020c1138 kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c113c kind:load to:0x020c108c add:0x1400 module:overlay(1)
from:0x020c1140 kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c114c kind:load to:0x020c27f4 add:0x1400 module:overlay(1)
from:0x020c1224 kind:load to:0x020c1b4c add:0x1400 module:overlay(1)
from:0x020c1338 kind:load to:0x020c1bc4 add:0x1400 module:overlay(1)
from:0x020c1410 kind:load to:0x020c2090 add:0x1400 module:overlay(1)
from:0x020c1524 kind:load to:0x020c2108 add:0x1400 module:overlay(1)
from:0x020c1548 kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c1574 kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c1590 kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c1594 kind:load to:0x020c4700 add:0x14d4 module:overlay(1)
from:0x020c1598 kind:load to:0x020c4700 add:0xd228 module:overlay(1)
from:0x020c159c kind:load to:0x020c1150 add:0x1400 module:overlay(1)
from:0x020c15c0 kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c15ec kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c1608 kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c160c kind:load to:0x020c4700 add:0x1510 module:overlay(1)
from:0x020c1610 kind:load to:0x020c4700 add:0xd228 module:overlay(1)
from:0x020c1614 kind:load to:0x020c1228 add:0x1400 module:overlay(1)
from:0x020c1638 kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c1664 kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c1680 kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c1684 kind:load to:0x020c4700 add:0x14d4 module:overlay(1)
from:0x020c1688 kind:load to:0x020c4700 add:0xd228 module:overlay(1)
from:0x020c168c kind:load to:0x020c133c add:0x1400 module:overlay(1)
from:0x020c16b0 kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c16dc kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c16f8 kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c16fc kind:load to:0x020c4700 add:0x1510 module:overlay(1)
from:0x020c1700 kind:load to:0x020c4700 add:0xd228 module:overlay(1)
from:0x020c1704 kind:load to:0x020c1414 add:0x1400 module:overlay(1)
from:0x020c1710 kind:arm_call to:0x020c179c module:overlay(1)
from:0x020c1718 kind:load to:0x020c1528 add:0x1400 module:overlay(1)
from:0x020c171c kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c1720 kind:load to:0x020c15a0 add:0x1400 module:overlay(1)
from:0x020c1724 kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c1728 kind:load to:0x020c1618 add:0x1400 module:overlay(1)
from:0x020c172c kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c1730 kind:load to:0x020c1690 add:0x1400 module:overlay(1)
from:0x020c1734 kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c174c kind:arm_call to:0x02027654 module:main
from:0x020c1758 kind:arm_call to:0x02027690 module:main
from:0x020c17e4 kind:arm_call to:0x020c1760 module:overlay(1)
from:0x020c1890 kind:arm_call to:0x020c1740 module:overlay(1)
from:0x020c18a4 kind:load to:0x020c4700 module:overlay(1)
from:0x020c1914 kind:arm_call to:0x020c2518 module:overlay(1)
from:0x020c1920 kind:arm_call to:0x020c1740 module:overlay(1)
from:0x020c1930 kind:load to:0x020c4700 module:overlay(1)
from:0x020c19a4 kind:arm_call to:0x020c24c0 module:overlay(1)
from:0x020c19b0 kind:arm_call to:0x020c1740 module:overlay(1)
from:0x020c19c0 kind:load to:0x020c4700 module:overlay(1)
from:0x020c19cc kind:arm_call to:0x020c179c module:overlay(1)
from:0x020c19d4 kind:load to:0x020c1934 add:0x1400 module:overlay(1)
from:0x020c19d8 kind:load to:0x020c4700 add:0x148c module:overlay(1)
from:0x020c19dc kind:load to:0x020c18ac add:0x1400 module:overlay(1)
from:0x020c19e0 kind:load to:0x020c4700 add:0x1484 module:overlay(1)
from:0x020c19f8 kind:arm_call to:0x020282f4 module:main
from:0x020c1a34 kind:arm_call to:0x02028310 module:main
from:0x020c1a98 kind:load to:0x020c280c module:overlay(1)
from:0x020c1aa8 kind:arm_call to:0x020282f4 module:main
from:0x020c1ae4 kind:arm_call to:0x02028310 module:main
from:0x020c1b48 kind:load to:0x020c280c module:overlay(1)
from:0x020c1bb4 kind:load to:0x020c4701 module:overlay(1)
from:0x020c1bbc kind:load to:0x020d22ea module:overlay(19)
from:0x020c1c2c kind:load to:0x020c4701 module:overlay(1)
from:0x020c1c34 kind:load to:0x020d22ea module:overlay(19)
from:0x020c1e80 kind:load to:0x020c4701 module:overlay(1)
from:0x020c1e88 kind:load to:0x020d22ea module:overlay(19)
from:0x020c1ef8 kind:load to:0x020c4701 module:overlay(1)
from:0x020c1f00 kind:load to:0x020d22ea module:overlay(19)
from:0x020c20f8 kind:load to:0x020c4701 module:overlay(1)
from:0x020c2100 kind:load to:0x020d22ea module:overlay(19)
from:0x020c2170 kind:load to:0x020c4701 module:overlay(1)
from:0x020c2178 kind:load to:0x020d22ea module:overlay(19)
from:0x020c258c kind:load to:0x020c5b4c module:overlay(20)
from:0x020c1b6c kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c1b98 kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c1bb4 kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c1bb8 kind:load to:0x020c4700 add:0x14ac module:overlay(1)
from:0x020c1bbc kind:load to:0x020c4700 add:0xdbea module:overlay(1)
from:0x020c1bc0 kind:load to:0x020c19ec add:0x1400 module:overlay(1)
from:0x020c1be4 kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c1c10 kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c1c2c kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c1c30 kind:load to:0x020c4700 add:0x14ac module:overlay(1)
from:0x020c1c34 kind:load to:0x020c4700 add:0xdbea module:overlay(1)
from:0x020c1c38 kind:load to:0x020c1a9c add:0x1400 module:overlay(1)
from:0x020c1c50 kind:arm_call to:0x02026738 module:main
from:0x020c1c60 kind:arm_call to:0x02030d10 module:main
from:0x020c1da4 kind:arm_call to:0x02030d2c module:main
from:0x020c1dac kind:arm_call to:0x02026790 module:main
from:0x020c1e38 kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c1e64 kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c1e80 kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c1e84 kind:load to:0x020c4700 add:0x157c module:overlay(1)
from:0x020c1e88 kind:load to:0x020c4700 add:0xdbea module:overlay(1)
from:0x020c1e8c kind:load to:0x020c1c3c add:0x1400 module:overlay(1)
from:0x020c1eb0 kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c1edc kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c1ef8 kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c1efc kind:load to:0x020c4700 add:0x1454 module:overlay(1)
from:0x020c1f00 kind:load to:0x020c4700 add:0xdbea module:overlay(1)
from:0x020c1f04 kind:load to:0x020c1dc0 add:0x1400 module:overlay(1)
from:0x020c1f3c kind:arm_call to:0x020c1e18 module:overlay(1)
from:0x020c1f48 kind:arm_call to:0x020c1e90 module:overlay(1)
from:0x020c2000 kind:arm_call to:0x020c1e18 module:overlay(1)
from:0x020c200c kind:arm_call to:0x020c1e90 module:overlay(1)
from:0x020c20b0 kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c20dc kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c20f8 kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c20fc kind:load to:0x020c4700 add:0x14c4 module:overlay(1)
from:0x020c2100 kind:load to:0x020c4700 add:0xdbea module:overlay(1)
from:0x020c2104 kind:load to:0x020c1f08 add:0x1400 module:overlay(1)
from:0x020c2128 kind:arm_call to:0x020c18ac module:overlay(1)
from:0x020c2154 kind:arm_call to:0x020c1934 module:overlay(1)
from:0x020c2170 kind:load to:0x020c4700 add:0x1 module:overlay(1)
from:0x020c2174 kind:load to:0x020c4700 add:0x14c4 module:overlay(1)
from:0x020c2178 kind:load to:0x020c4700 add:0xdbea module:overlay(1)
from:0x020c217c kind:load to:0x020c1fcc add:0x1400 module:overlay(1)
from:0x020c2188 kind:arm_call to:0x020c179c module:overlay(1)
from:0x020c2190 kind:load to:0x020c2090 add:0x1400 module:overlay(1)
from:0x020c2194 kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c2198 kind:load to:0x020c2108 add:0x1400 module:overlay(1)
from:0x020c219c kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c21a0 kind:load to:0x020c1b4c add:0x1400 module:overlay(1)
from:0x020c21a4 kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c21a8 kind:load to:0x020c1bc4 add:0x1400 module:overlay(1)
from:0x020c21ac kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c21b0 kind:load to:0x020c1e18 add:0x1400 module:overlay(1)
from:0x020c21b4 kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c21b8 kind:load to:0x020c1e90 add:0x1400 module:overlay(1)
from:0x020c21bc kind:load to:0x020c4700 add:0x1468 module:overlay(1)
from:0x020c22d8 kind:arm_call to:0x020c2288 module:overlay(1)
from:0x020c22f4 kind:arm_call to:0x020c1760 module:overlay(1)
from:0x020c2364 kind:arm_call to:0x020c223c module:overlay(1)
from:0x020c2378 kind:arm_call to:0x020c223c module:overlay(1)
from:0x020c23e0 kind:arm_call to:0x020c2288 module:overlay(1)
from:0x020c23fc kind:arm_call to:0x020c1760 module:overlay(1)
from:0x020c246c kind:arm_call to:0x020c223c module:overlay(1)
from:0x020c2480 kind:arm_call to:0x020c223c module:overlay(1)
from:0x020c24e4 kind:arm_call to:0x020c21c8 module:overlay(1)
from:0x020c24f8 kind:arm_call to:0x020c22ac module:overlay(1)
from:0x020c253c kind:arm_call to:0x020c21c8 module:overlay(1)
from:0x020c2550 kind:arm_call to:0x020c23b4 module:overlay(1)
from:0x020c2578 kind:arm_call to:0x020c179c module:overlay(1)
from:0x020c2580 kind:load to:0x020c21c8 add:0x1400 module:overlay(1)
from:0x020c2584 kind:load to:0x020c4700 add:0x1474 module:overlay(1)
from:0x020c2588 kind:load to:0x020c223c add:0x1400 module:overlay(1)
from:0x020c258c kind:load to:0x020c4700 add:0x144c module:overlay(1)
from:0x020c2590 kind:load to:0x020c2288 add:0x1400 module:overlay(1)
from:0x020c2594 kind:load to:0x020c4700 add:0x1424 module:overlay(1)
from:0x020c2598 kind:load to:0x020c22ac add:0x1400 module:overlay(1)
from:0x020c259c kind:load to:0x020c4700 add:0x1508 module:overlay(1)
from:0x020c25a0 kind:load to:0x020c23b4 add:0x1400 module:overlay(1)
from:0x020c25a4 kind:load to:0x020c4700 add:0x1508 module:overlay(1)
from:0x020c25a8 kind:load to:0x020c24c0 add:0x1400 module:overlay(1)
from:0x020c25ac kind:load to:0x020c4700 add:0x1458 module:overlay(1)
from:0x020c25b0 kind:load to:0x020c2518 add:0x1400 module:overlay(1)
from:0x020c25b4 kind:load to:0x020c4700 add:0x1458 module:overlay(1)
from:0x020c2822 kind:thumb_call to:0x020b7430 module:overlay(1)
from:0x020c2830 kind:load to:0x020c2fe0 module:overlay(1)
from:0x020c2834 kind:load to:0x020c2fe4 module:overlay(1)
@@ -2364,6 +2534,11 @@ from:0x020c28fc kind:load to:0x020c2fd4 module:overlay(1)
from:0x020c2900 kind:load to:0x020c2815 module:overlay(1)
from:0x020c2904 kind:load to:0x020c2839 module:overlay(1)
from:0x020c2908 kind:load to:0x020c28f1 module:overlay(1)
from:0x020c290c kind:load to:0x020c1104 module:overlay(1)
from:0x020c2910 kind:load to:0x020c1708 module:overlay(1)
from:0x020c2914 kind:load to:0x020c19c4 module:overlay(1)
from:0x020c2918 kind:load to:0x020c2180 module:overlay(1)
from:0x020c291c kind:load to:0x020c2570 module:overlay(1)
from:0x020c29fc kind:load to:0x020b83f9 module:overlay(1)
from:0x020c2a00 kind:load to:0x020b8491 module:overlay(1)
from:0x020c2a04 kind:load to:0x020b85cd module:overlay(1)
+57 -57
View File
@@ -442,55 +442,55 @@ _ZN17GameModeAdventureC1Ev kind:function(thumb,size=0x58) addr:0x020c0944
_Z19func_ov001_020c099cv kind:function(thumb,size=0x24) addr:0x020c099c
_Z19func_ov001_020c09c0v kind:function(thumb,size=0x1c) addr:0x020c09c0
_ZN20GameModeDownloadPlay19func_ov001_020c09dcEv kind:function(thumb,size=0x48) addr:0x020c09dc
DetectFlashcart kind:function(arm,size=0xb8,unknown) addr:0x020c0a24
DetectNotFlashcart kind:function(arm,size=0xb8,unknown) addr:0x020c0adc
DetectEmulator kind:function(arm,size=0xb8,unknown) addr:0x020c0b94
DetectNotEmulator kind:function(arm,size=0xb8,unknown) addr:0x020c0c4c
DetectDummy kind:function(arm,size=0x98,unknown) addr:0x020c0d04
DetectNotDummy kind:function(arm,size=0x98,unknown) addr:0x020c0d9c
DSProt_DetectFlashcart kind:function(arm,size=0x78,unknown) addr:0x020c0e34
DSProt_DetectNotFlashcart kind:function(arm,size=0x78,unknown) addr:0x020c0eac
DSProt_DetectEmulator kind:function(arm,size=0x78,unknown) addr:0x020c0f24
DSProt_DetectNotEmulator kind:function(arm,size=0x78,unknown) addr:0x020c0f9c
DSProt_DetectDummy kind:function(arm,size=0x78,unknown) addr:0x020c1014
DSProt_DetectNotDummy kind:function(arm,size=0x78,unknown) addr:0x020c108c
NitroStaticInit kind:function(arm,size=0x4c,unknown) addr:0x020c1104 local
Integrity_MACOwner_IsBad kind:function(arm,size=0xd8,unknown) addr:0x020c1150
Integrity_MACOwner_IsGood kind:function(arm,size=0x114,unknown) addr:0x020c1228
Integrity_ROMTest_IsBad kind:function(arm,size=0xd8,unknown) addr:0x020c133c
Integrity_ROMTest_IsGood kind:function(arm,size=0x114,unknown) addr:0x020c1414
RunEncrypted_Integrity_MACOwner_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c1528
RunEncrypted_Integrity_MACOwner_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c15a0
RunEncrypted_Integrity_ROMTest_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c1618
RunEncrypted_Integrity_ROMTest_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c1690
NitroStaticInit kind:function(arm,size=0x38,unknown) addr:0x020c1708 local
clearDataAndInstructionCache kind:function(arm,size=0x20,unknown) addr:0x020c1740
Encryptor_CategorizeInstruction kind:function(arm,size=0x3c,unknown) addr:0x020c1760
Encryptor_DecodeFunctionTable kind:function(arm,size=0x110,unknown) addr:0x020c179c
Encryptor_DecryptFunction kind:function(arm,size=0x88,unknown) addr:0x020c18ac
Encryptor_EncryptFunction kind:function(arm,size=0x90,unknown) addr:0x020c1934
NitroStaticInit kind:function(arm,size=0x28,unknown) addr:0x020c19c4 local
MACOwner_IsBad kind:function(arm,size=0xb0,unknown) addr:0x020c19ec
MACOwner_IsGood kind:function(arm,size=0xb0,unknown) addr:0x020c1a9c
RunEncrypted_MACOwner_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c1b4c
RunEncrypted_MACOwner_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c1bc4
ROMUtil_Read kind:function(arm,size=0x184,unknown) addr:0x020c1c3c
ROMUtil_CRC32 kind:function(arm,size=0x58,unknown) addr:0x020c1dc0
RunEncrypted_ROMUtil_Read kind:function(arm,size=0x78,unknown) addr:0x020c1e18
RunEncrypted_ROMUtil_CRC32 kind:function(arm,size=0x78,unknown) addr:0x020c1e90
ROMTest_IsBad kind:function(arm,size=0xc4,unknown) addr:0x020c1f08
ROMTest_IsGood kind:function(arm,size=0xc4,unknown) addr:0x020c1fcc
RunEncrypted_ROMTest_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c2090
RunEncrypted_ROMTest_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c2108
NitroStaticInit kind:function(arm,size=0x48,unknown) addr:0x020c2180 local
RC4_Init kind:function(arm,size=0x74,unknown) addr:0x020c21c8
RC4_Byte kind:function(arm,size=0x4c,unknown) addr:0x020c223c
RC4_InitSBox kind:function(arm,size=0x24,unknown) addr:0x020c2288
RC4_EncryptInstructions kind:function(arm,size=0x108,unknown) addr:0x020c22ac
RC4_DecryptInstructions kind:function(arm,size=0x10c,unknown) addr:0x020c23b4
RC4_InitAndEncryptInstructions kind:function(arm,size=0x58,unknown) addr:0x020c24c0
RC4_InitAndDecryptInstructions kind:function(arm,size=0x58,unknown) addr:0x020c2518
NitroStaticInit kind:function(arm,size=0x50,unknown) addr:0x020c2570 local
DetectFlashcart kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c0a24
DetectNotFlashcart kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c0adc
DetectEmulator kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c0b94
DetectNotEmulator kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c0c4c
DetectDummy kind:function(arm,size=0x98,dsprot=(0x94,0x2e8b)) addr:0x020c0d04
DetectNotDummy kind:function(arm,size=0x98,dsprot=(0x94,0x2e8b)) addr:0x020c0d9c
DSProt_DetectFlashcart kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c0e34
DSProt_DetectNotFlashcart kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c0eac
DSProt_DetectEmulator kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c0f24
DSProt_DetectNotEmulator kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c0f9c
DSProt_DetectDummy kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1014
DSProt_DetectNotDummy kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c108c
NitroStaticInit kind:function(arm,size=0x4c) addr:0x020c1104 local
Integrity_MACOwner_IsBad kind:function(arm,size=0xd8,dsprot=(0xd4,0xbe28)) addr:0x020c1150
Integrity_MACOwner_IsGood kind:function(arm,size=0x114,dsprot=(0x110,0xbe28)) addr:0x020c1228
Integrity_ROMTest_IsBad kind:function(arm,size=0xd8,dsprot=(0xd4,0xbe28)) addr:0x020c133c
Integrity_ROMTest_IsGood kind:function(arm,size=0x114,dsprot=(0x110,0xbe28)) addr:0x020c1414
RunEncrypted_Integrity_MACOwner_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1528
RunEncrypted_Integrity_MACOwner_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c15a0
RunEncrypted_Integrity_ROMTest_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1618
RunEncrypted_Integrity_ROMTest_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1690
NitroStaticInit kind:function(arm,size=0x38) addr:0x020c1708 local
clearDataAndInstructionCache kind:function(arm,size=0x20) addr:0x020c1740 local
Encryptor_CategorizeInstruction kind:function(arm,size=0x3c) addr:0x020c1760
Encryptor_DecodeFunctionTable kind:function(arm,size=0x110) addr:0x020c179c
Encryptor_DecryptFunction kind:function(arm,size=0x88,dsprot=0x84) addr:0x020c18ac
Encryptor_EncryptFunction kind:function(arm,size=0x90,dsprot=0x8c) addr:0x020c1934
NitroStaticInit kind:function(arm,size=0x28) addr:0x020c19c4 local
MACOwner_IsBad kind:function(arm,size=0xb0,dsprot=(0xac,0xc7ea)) addr:0x020c19ec
MACOwner_IsGood kind:function(arm,size=0xb0,dsprot=(0xac,0xc7ea)) addr:0x020c1a9c
RunEncrypted_MACOwner_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1b4c
RunEncrypted_MACOwner_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1bc4
ROMUtil_Read kind:function(arm,size=0x184,dsprot=(0x17c,0xc7ea)) addr:0x020c1c3c
ROMUtil_CRC32 kind:function(arm,size=0x58,dsprot=(0x54,0xc7ea)) addr:0x020c1dc0
RunEncrypted_ROMUtil_Read kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1e18
RunEncrypted_ROMUtil_CRC32 kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c1e90
ROMTest_IsBad kind:function(arm,size=0xc4,dsprot=(0xc4,0xc7ea)) addr:0x020c1f08
ROMTest_IsGood kind:function(arm,size=0xc4,dsprot=(0xc4,0xc7ea)) addr:0x020c1fcc
RunEncrypted_ROMTest_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2090
RunEncrypted_ROMTest_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2108
NitroStaticInit kind:function(arm,size=0x48) addr:0x020c2180 local
RC4_Init kind:function(arm,size=0x74,dsprot=0x74) addr:0x020c21c8
RC4_Byte kind:function(arm,size=0x4c,dsprot=0x4c) addr:0x020c223c
RC4_InitSBox kind:function(arm,size=0x24,dsprot=0x24) addr:0x020c2288
RC4_EncryptInstructions kind:function(arm,size=0x108,dsprot=0x108) addr:0x020c22ac
RC4_DecryptInstructions kind:function(arm,size=0x10c,dsprot=0x108) addr:0x020c23b4
RC4_InitAndEncryptInstructions kind:function(arm,size=0x58,dsprot=0x58) addr:0x020c24c0
RC4_InitAndDecryptInstructions kind:function(arm,size=0x58,dsprot=0x58) addr:0x020c2518
NitroStaticInit kind:function(arm,size=0x50) addr:0x020c2570 local
data_ov001_020c25c0 kind:data(any) addr:0x020c25c0
data_ov001_020c25d4 kind:data(any) addr:0x020c25d4
data_ov001_020c25fc kind:data(any) addr:0x020c25fc
@@ -504,18 +504,19 @@ data_ov001_020c2750 kind:data(any) addr:0x020c2750 local
data_ov001_020c275e kind:data(any) addr:0x020c275e local
data_ov001_020c276c kind:data(any) addr:0x020c276c
data_ov001_020c27a8 kind:data(any) addr:0x020c27a8
bad_mac_addr kind:data(any) addr:0x020c280c
DSProt_Garbage kind:data(any) addr:0x020c27f4
bad_mac_addr kind:data(any) addr:0x020c280c local
__sinit_CourseList.cpp kind:function(thumb,size=0x24) addr:0x020c2814 local
__sinit_UnkStruct_027e0cd8_0C_001.cpp kind:function(thumb,size=0xb8) addr:0x020c2838
__sinit_code_020c099c.cpp kind:function(thumb,size=0x10) addr:0x020c28f0 local
.p__sinit_CourseList.cpp kind:data(word) addr:0x020c2900 local
.p__sinit_UnkStruct_027e0cd8_0C_001.cpp kind:data(word) addr:0x020c2904
.p__sinit_code_020c099c.cpp kind:data(word) addr:0x020c2908 local
.p__sinit_ov001_020c1104 kind:data(word) addr:0x020c290c local
.p__sinit_ov001_020c1708 kind:data(word) addr:0x020c2910 local
.p__sinit_ov001_020c19c4 kind:data(word) addr:0x020c2914 local
.p__sinit_ov001_020c2180 kind:data(word) addr:0x020c2918 local
.p__sinit_ov001_020c2570 kind:data(word) addr:0x020c291c local
NitroStaticInit_11 kind:data(word) addr:0x020c290c local
NitroStaticInit_8 kind:data(word) addr:0x020c2910 local
NitroStaticInit_6 kind:data(word) addr:0x020c2914 local
NitroStaticInit_10 kind:data(word) addr:0x020c2918 local
NitroStaticInit_11 kind:data(word) addr:0x020c291c local
@433 kind:data(byte[22]) addr:0x020c2940 local
@450 kind:data(byte[22]) addr:0x020c2958 local
@3570 kind:data(byte[18]) addr:0x020c2970 local
@@ -635,5 +636,4 @@ data_ov001_020c40f4 kind:bss addr:0x020c40f4 local
data_ov001_020c46f4 kind:bss addr:0x020c46f4 local
data_ov001_020c46f8 kind:bss addr:0x020c46f8 local
data_ov001_020c46fc kind:bss addr:0x020c46fc local
data_ov001_020c4700 kind:bss addr:0x020c4700
data_ov001_020c4701 kind:bss addr:0x020c4701
DSProt_BSS kind:bss addr:0x020c4700
+3 -3
View File
@@ -31,7 +31,7 @@ _ZN25UnkSystem1_ov019_Derived18vfunc_1CEjii kind:function(arm,size=0x1ac) addr:0
_ZN25UnkSystem1_ov019_Derived18vfunc_20Eiii kind:function(arm,size=0x110) addr:0x020c5430
_ZN25UnkSystem1_ov019_Derived119func_ov019_020c5540Ebs kind:function(arm,size=0x50) addr:0x020c5540
_ZN25UnkSystem1_ov019_Derived119func_ov019_020c5590Eiii kind:function(arm,size=0x84) addr:0x020c5590
_ZN25UnkSystem1_ov019_Derived1D0Ev kind:function(arm,size=0x1c) addr:0x020c5614
_ZN25UnkSystem1_ov019_Derived1D0Ev kind:function(arm,size=0x1c) addr:0x020c5614 weak
_ZN14FileSelectMainC1Ev kind:function(arm,size=0x9a0) addr:0x020c5630
_ZN25UnkSystem1_ov019_Derived3D1Ev kind:function(arm,size=0x14) addr:0x020c5fd0
_ZN14FileSelectMainD1Ev kind:function(arm,size=0x1f8) addr:0x020c5fe4
@@ -237,12 +237,12 @@ _ZN21FileSelectManager_16419func_ov019_020d02f4Ev kind:function(arm,size=0x28) a
_ZN25UnkSystem1_ov019_Derived2C1Ev kind:function(arm,size=0x40) addr:0x020d031c
_ZN25UnkSystem1_ov019_Derived28vfunc_08Ei kind:function(arm,size=0x48) addr:0x020d035c
_ZN25UnkSystem1_ov019_Derived28vfunc_1CEjii kind:function(arm,size=0x1f0) addr:0x020d03a4
_ZN25UnkSystem1_ov019_Derived2D0Ev kind:function(arm,size=0x1c) addr:0x020d0594
_ZN25UnkSystem1_ov019_Derived2D0Ev kind:function(arm,size=0x1c) addr:0x020d0594 weak
_ZN25UnkSystem1_ov019_Derived3C2Ev kind:function(arm,size=0x4c) addr:0x020d05b0
_ZN25UnkSystem1_ov019_Derived38vfunc_04Ev kind:function(arm,size=0x14) addr:0x020d05fc
_ZN25UnkSystem1_ov019_Derived38vfunc_08Ei kind:function(arm,size=0x48) addr:0x020d0610
_ZN25UnkSystem1_ov019_Derived38vfunc_1CEjii kind:function(arm,size=0x1f8) addr:0x020d0658
_ZN25UnkSystem1_ov019_Derived3D0Ev kind:function(arm,size=0x1c) addr:0x020d0850
_ZN25UnkSystem1_ov019_Derived3D0Ev kind:function(arm,size=0x1c) addr:0x020d0850 weak
_ZN11SaveManager19func_ov019_020d086cEt kind:function(arm,size=0x90) addr:0x020d086c
_ZN11SaveManager19func_ov019_020d08fcEiM8SaveFileFvvE kind:function(arm,size=0x68) addr:0x020d08fc
_ZN11SaveManager19func_ov019_020d0964Ev kind:function(arm,size=0x78) addr:0x020d0964
+4 -4
View File
@@ -213,6 +213,10 @@ src/024_MainGame/Train/code_020d51dc_024.cpp:
.data start:0x020d851c end:0x020d8550
.bss start:0x020d86a4 end:0x020d86a8
src/024_MainGame/Train/data_ov024_020d8550.cpp:
complete
.data start:0x020d8550 end:0x020d85d4
src/024_MainGame/Train/UnkTrainSystem1_024.cpp:
complete
.text start:0x020d54a0 end:0x020d58b4
@@ -248,10 +252,6 @@ src/024_MainGame/Actor/Actor_Derived1_EC_024.cpp:
.text start:0x020d6650 end:0x020d6e9c
.bss start:0x020d86b4 end:0x020d86b8
src/024_MainGame/Train/data_ov024_020d8550.cpp:
complete
.data start:0x020d8550 end:0x020d85d4
src/024_MainGame/Actor/ActorUnkOBPC.cpp:
complete
.text start:0x020d6e9c end:0x020d7318
@@ -9197,6 +9197,9 @@ from:0x0212e438 kind:load to:0x0214173c module:overlay(26)
from:0x0212e43c kind:load to:0x02138a14 module:overlay(26)
from:0x0212e440 kind:load to:0x021417e0 module:overlay(26)
from:0x0212e44c kind:arm_call to:0x0209790c module:overlay(0)
from:0x0212e460 kind:arm_branch to:0x0212bbf8 module:overlay(26)
from:0x0212e470 kind:arm_branch to:0x0212c478 module:overlay(26)
from:0x0212e480 kind:arm_branch to:0x0212bb68 module:overlay(26)
from:0x0212e490 kind:arm_call to:0x0212fb14 module:overlay(26)
from:0x0212e540 kind:arm_call to:0x0212fb24 module:overlay(26)
from:0x0212e568 kind:arm_call to:0x0212e488 module:overlay(26)
+1 -1
View File
@@ -2860,7 +2860,7 @@ _ZTV19data_ov026_021384b4 kind:data(any) addr:0x021384b4
_ZTV19data_ov026_021384d8 kind:data(any) addr:0x021384d8
data_ov026_0213853c kind:data(any) addr:0x0213853c
data_ov026_0213855c kind:data(any) addr:0x0213855c
_ZTV19data_ov026_0213855c kind:data(any) addr:0x0213855c ambiguous
_ZTV19data_ov026_0213855c kind:data(any) addr:0x0213855c
_ZTV19data_ov026_02138578 kind:data(any) addr:0x02138578
_ZTV19data_ov026_02138594 kind:data(any) addr:0x02138594 ambiguous
_ZTV19data_ov026_021385dc kind:data(any) addr:0x021385dc
+23
View File
@@ -1268,6 +1268,8 @@ from:0x020e450c kind:load to:0x027e09b8 module:dtcm
from:0x020e4510 kind:load to:0x027e0d34 module:dtcm
from:0x020e4550 kind:arm_call to:0x02098a88 module:overlay(0)
from:0x020e4578 kind:arm_call to:0x02097724 module:overlay(0)
from:0x020e458c kind:arm_branch to:0x020e42f0 module:overlay(31)
from:0x020e459c kind:arm_branch to:0x020e42ac module:overlay(31)
from:0x020e45ac kind:load to:0x021164f8 module:overlay(31)
from:0x020e45c0 kind:arm_call to:0x02011f3c module:main
from:0x020e45cc kind:arm_call to:0x020e4620 module:overlay(31)
@@ -3823,6 +3825,12 @@ from:0x020fb26c kind:arm_call to:0x02011ff4 module:main
from:0x020fb284 kind:arm_call to:0x020616c8 module:overlay(0)
from:0x020fb28c kind:arm_call to:0x02098488 module:overlay(0)
from:0x020fb2a0 kind:arm_call to:0x02097724 module:overlay(0)
from:0x020fb2b4 kind:arm_branch to:0x020fb250 module:overlay(31)
from:0x020fb2c4 kind:arm_branch to:0x020fae08 module:overlay(31)
from:0x020fb2d4 kind:arm_branch to:0x020fada8 module:overlay(31)
from:0x020fb2e4 kind:arm_branch to:0x020fadb4 module:overlay(31)
from:0x020fb2f4 kind:arm_branch to:0x020fad88 module:overlay(31)
from:0x020fb304 kind:arm_branch to:0x020fb278 module:overlay(31)
from:0x020fb314 kind:load to:0x02116ff8 module:overlay(31)
from:0x020fb328 kind:arm_call to:0x02011f3c module:main
from:0x020fb334 kind:arm_call to:0x020fb364 module:overlay(31)
@@ -3974,6 +3982,8 @@ from:0x020fd0a4 kind:arm_call to:0x0209d0ac module:overlay(0)
from:0x020fd0bc kind:arm_call to:0x020a02d4 module:overlay(0)
from:0x020fd0c4 kind:arm_call to:0x0209d0ac module:overlay(0)
from:0x020fd0cc kind:arm_call to:0x02011ff4 module:main
from:0x020fd0e0 kind:arm_branch to:0x020fcf78 module:overlay(31)
from:0x020fd0f0 kind:arm_branch to:0x020fcf74 module:overlay(31)
from:0x020fd100 kind:load to:0x0211728c module:overlay(31)
from:0x020fd114 kind:arm_call to:0x02011f3c module:main
from:0x020fd120 kind:arm_call to:0x020fd178 module:overlay(31)
@@ -4159,6 +4169,8 @@ from:0x020fe6e4 kind:arm_call to:0x020a02d4 module:overlay(0)
from:0x020fe6ec kind:arm_call to:0x0209d0ac module:overlay(0)
from:0x020fe6f4 kind:arm_call to:0x02011ff4 module:main
from:0x020fe708 kind:arm_call to:0x0209c9d8 module:overlay(0)
from:0x020fe71c kind:arm_branch to:0x020fd404 module:overlay(31)
from:0x020fe72c kind:arm_branch to:0x020fd3f8 module:overlay(31)
from:0x020fe73c kind:load to:0x02117370 module:overlay(31)
from:0x020fe750 kind:arm_call to:0x02011f3c module:main
from:0x020fe75c kind:arm_call to:0x020fe7b8 module:overlay(31)
@@ -4937,6 +4949,9 @@ from:0x02104ed0 kind:arm_call to:0x0207eca8 module:overlay(0)
from:0x02104ed8 kind:arm_call to:0x02103158 module:overlay(31)
from:0x02104ee0 kind:arm_call to:0x02011ff4 module:main
from:0x02104ef4 kind:arm_call to:0x0209c9d8 module:overlay(0)
from:0x02104f08 kind:arm_branch to:0x02104a30 module:overlay(31)
from:0x02104f18 kind:arm_branch to:0x0210481c module:overlay(31)
from:0x02104f28 kind:arm_branch to:0x021047f8 module:overlay(31)
from:0x02104f38 kind:load to:0x02117f3c module:overlay(31)
from:0x02104f4c kind:arm_call to:0x02011f3c module:main
from:0x02104f58 kind:arm_call to:0x02104fec module:overlay(31)
@@ -5697,6 +5712,11 @@ from:0x0210ba34 kind:arm_call_thumb to:0x02057b8c module:overlay(0)
from:0x0210ba3c kind:arm_call to:0x020616c8 module:overlay(0)
from:0x0210ba44 kind:arm_call to:0x0209d0ac module:overlay(0)
from:0x0210ba58 kind:arm_call to:0x0209c9d8 module:overlay(0)
from:0x0210ba6c kind:arm_branch to:0x0210b9f8 module:overlay(31)
from:0x0210ba7c kind:arm_branch to:0x0210b920 module:overlay(31)
from:0x0210ba8c kind:arm_branch to:0x0210b8a8 module:overlay(31)
from:0x0210ba9c kind:arm_branch to:0x0210ba28 module:overlay(31)
from:0x0210baac kind:arm_branch to:0x0210b9c0 module:overlay(31)
from:0x0210babc kind:load to:0x02118da8 module:overlay(31)
from:0x0210bad0 kind:arm_call to:0x02011f3c module:main
from:0x0210badc kind:arm_call to:0x0210bb84 module:overlay(31)
@@ -5867,6 +5887,9 @@ from:0x0210ce8c kind:arm_call_thumb to:0x02057b8c module:overlay(0)
from:0x0210ce94 kind:arm_call to:0x0209d0ac module:overlay(0)
from:0x0210ce9c kind:arm_call to:0x02011ff4 module:main
from:0x0210ceb0 kind:arm_call to:0x0209c9d8 module:overlay(0)
from:0x0210cec4 kind:arm_branch to:0x0210caf0 module:overlay(31)
from:0x0210ced4 kind:arm_branch to:0x0210cb7c module:overlay(31)
from:0x0210cee4 kind:arm_branch to:0x0210cac4 module:overlay(31)
from:0x0210cef4 kind:load to:0x02118eac module:overlay(31)
from:0x0210cf08 kind:arm_call to:0x02011f3c module:main
from:0x0210cf14 kind:arm_call to:0x0210d2d8 module:overlay(31)
@@ -297,6 +297,12 @@ from:0x0211b6f0 kind:arm_call to:0x0205b224 module:overlay(0)
from:0x0211b6fc kind:load to:0x021216bc module:overlay(33)
from:0x0211b710 kind:arm_call to:0x02119044 module:overlay(33)
from:0x0211b718 kind:arm_call to:0x0209c9d8 module:overlay(0)
from:0x0211b72c kind:arm_branch to:0x0211a144 module:overlay(33)
from:0x0211b73c kind:arm_branch to:0x0211b480 module:overlay(33)
from:0x0211b74c kind:arm_branch to:0x0211b43c module:overlay(33)
from:0x0211b75c kind:arm_branch to:0x0211b3cc module:overlay(33)
from:0x0211b76c kind:arm_branch to:0x0211b458 module:overlay(33)
from:0x0211b77c kind:arm_branch to:0x0211a0e4 module:overlay(33)
from:0x0211b78c kind:load to:0x02122650 module:overlay(33)
from:0x0211b7a0 kind:arm_call to:0x02011f3c module:main
from:0x0211b7ac kind:arm_call to:0x0211b860 module:overlay(33)
+1 -1
View File
@@ -246,7 +246,7 @@ __sinit_MapObjectUnkGELG.cpp kind:function(arm,size=0x84) addr:0x02122748
.p__sinit_MapObjectUnkWPHL.cpp kind:data(word) addr:0x021227e4
.p__sinit_MapObjectUnkGELG.cpp kind:data(word) addr:0x021227e8
data_ov034_02122808 kind:data(any) addr:0x02122808
_ZTV19data_ov034_02122808 kind:data(any) addr:0x02122808 ambiguous
_ZTV19data_ov034_02122808 kind:data(any) addr:0x02122808
_ZTV19data_ov034_02122824 kind:data(any) addr:0x02122824
_ZTV19data_ov034_02122888 kind:data(any) addr:0x02122888
data_ov034_021228ac kind:data(any) addr:0x021228ac
+42
View File
@@ -291,6 +291,16 @@ from:0x0211aea8 kind:arm_call to:0x020e7434 module:overlay(31)
from:0x0211aeb0 kind:arm_call to:0x02011ff4 module:main
from:0x0211aec8 kind:arm_call_thumb to:0x0209a248 module:overlay(0)
from:0x0211aed0 kind:arm_call to:0x020e7434 module:overlay(31)
from:0x0211aee4 kind:arm_branch to:0x0211add0 module:overlay(36)
from:0x0211aef4 kind:arm_branch to:0x0211ab30 module:overlay(36)
from:0x0211af04 kind:arm_branch to:0x0211aa88 module:overlay(36)
from:0x0211af14 kind:arm_branch to:0x0211aa84 module:overlay(36)
from:0x0211af24 kind:arm_branch to:0x0211aa80 module:overlay(36)
from:0x0211af34 kind:arm_branch to:0x0211aa68 module:overlay(36)
from:0x0211af44 kind:arm_branch to:0x0211a93c module:overlay(36)
from:0x0211af54 kind:arm_branch to:0x0211a938 module:overlay(36)
from:0x0211af64 kind:arm_branch to:0x0211a934 module:overlay(36)
from:0x0211af74 kind:arm_branch to:0x0211ae00 module:overlay(36)
from:0x0211af84 kind:load to:0x02122774 module:overlay(36)
from:0x0211af98 kind:arm_call to:0x02011f3c module:main
from:0x0211afa4 kind:arm_call to:0x0211b008 module:overlay(36)
@@ -318,6 +328,8 @@ from:0x0211b1f8 kind:arm_call to:0x020616c8 module:overlay(0)
from:0x0211b200 kind:arm_call_thumb to:0x0209a248 module:overlay(0)
from:0x0211b208 kind:arm_call to:0x020e7434 module:overlay(31)
from:0x0211b21c kind:arm_call to:0x0209790c module:overlay(0)
from:0x0211b230 kind:arm_branch to:0x0211b1ac module:overlay(36)
from:0x0211b240 kind:arm_branch to:0x0211b1e4 module:overlay(36)
from:0x0211b250 kind:load to:0x0212285c module:overlay(36)
from:0x0211b264 kind:arm_call to:0x02011f3c module:main
from:0x0211b270 kind:arm_call to:0x0211b2d0 module:overlay(36)
@@ -345,6 +357,8 @@ from:0x0211b4d0 kind:arm_call to:0x020616c8 module:overlay(0)
from:0x0211b4d8 kind:arm_call_thumb to:0x0209a248 module:overlay(0)
from:0x0211b4e0 kind:arm_call to:0x020e7434 module:overlay(31)
from:0x0211b4f4 kind:arm_call to:0x0209790c module:overlay(0)
from:0x0211b508 kind:arm_branch to:0x0211b484 module:overlay(36)
from:0x0211b518 kind:arm_branch to:0x0211b4bc module:overlay(36)
from:0x0211b528 kind:load to:0x02122944 module:overlay(36)
from:0x0211b53c kind:arm_call to:0x02011f3c module:main
from:0x0211b548 kind:arm_call to:0x0211b5ac module:overlay(36)
@@ -372,6 +386,8 @@ from:0x0211b7bc kind:arm_call to:0x020616c8 module:overlay(0)
from:0x0211b7c4 kind:arm_call_thumb to:0x0209a248 module:overlay(0)
from:0x0211b7cc kind:arm_call to:0x020e7434 module:overlay(31)
from:0x0211b7e0 kind:arm_call to:0x0209790c module:overlay(0)
from:0x0211b7f4 kind:arm_branch to:0x0211b770 module:overlay(36)
from:0x0211b804 kind:arm_branch to:0x0211b7a8 module:overlay(36)
from:0x0211b814 kind:load to:0x02122a2c module:overlay(36)
from:0x0211b828 kind:arm_call to:0x02011f3c module:main
from:0x0211b834 kind:arm_call to:0x0211b898 module:overlay(36)
@@ -397,6 +413,8 @@ from:0x0211ba84 kind:arm_call to:0x020616c8 module:overlay(0)
from:0x0211ba8c kind:arm_call_thumb to:0x0209a248 module:overlay(0)
from:0x0211ba94 kind:arm_call to:0x020e7434 module:overlay(31)
from:0x0211baa8 kind:arm_call to:0x0209790c module:overlay(0)
from:0x0211babc kind:arm_branch to:0x0211ba38 module:overlay(36)
from:0x0211bacc kind:arm_branch to:0x0211ba70 module:overlay(36)
from:0x0211badc kind:load to:0x02122b14 module:overlay(36)
from:0x0211baf0 kind:arm_call to:0x02011f3c module:main
from:0x0211bafc kind:arm_call to:0x0211bb64 module:overlay(36)
@@ -424,6 +442,8 @@ from:0x0211bd90 kind:arm_call to:0x020616c8 module:overlay(0)
from:0x0211bd98 kind:arm_call_thumb to:0x0209a248 module:overlay(0)
from:0x0211bda0 kind:arm_call to:0x020e7434 module:overlay(31)
from:0x0211bdb4 kind:arm_call to:0x0209790c module:overlay(0)
from:0x0211bdc8 kind:arm_branch to:0x0211bd44 module:overlay(36)
from:0x0211bdd8 kind:arm_branch to:0x0211bd7c module:overlay(36)
from:0x0211bde8 kind:load to:0x02122bfc module:overlay(36)
from:0x0211bdfc kind:arm_call to:0x02011f3c module:main
from:0x0211be08 kind:arm_call to:0x0211becc module:overlay(36)
@@ -463,6 +483,8 @@ from:0x0211c154 kind:arm_call to:0x020616c8 module:overlay(0)
from:0x0211c15c kind:arm_call_thumb to:0x0209a248 module:overlay(0)
from:0x0211c164 kind:arm_call to:0x020e7434 module:overlay(31)
from:0x0211c178 kind:arm_call to:0x0209790c module:overlay(0)
from:0x0211c18c kind:arm_branch to:0x0211c108 module:overlay(36)
from:0x0211c19c kind:arm_branch to:0x0211c140 module:overlay(36)
from:0x0211c1ac kind:load to:0x02122ce4 module:overlay(36)
from:0x0211c1c0 kind:arm_call to:0x02011f3c module:main
from:0x0211c1cc kind:arm_call to:0x0211c63c module:overlay(36)
@@ -614,6 +636,16 @@ from:0x0211d74c kind:arm_call to:0x020a8768 module:overlay(0)
from:0x0211d754 kind:load to:0x027e0ce0 module:dtcm
from:0x0211d758 kind:load to:0x027e09b8 module:dtcm
from:0x0211d7a4 kind:arm_call to:0x0209790c module:overlay(0)
from:0x0211d7b8 kind:arm_branch to:0x0211c794 module:overlay(36)
from:0x0211d7c8 kind:arm_branch to:0x0211c994 module:overlay(36)
from:0x0211d7d8 kind:arm_branch to:0x0211c984 module:overlay(36)
from:0x0211d7e8 kind:arm_branch to:0x0211c980 module:overlay(36)
from:0x0211d7f8 kind:arm_branch to:0x0211c97c module:overlay(36)
from:0x0211d808 kind:arm_branch to:0x0211c978 module:overlay(36)
from:0x0211d818 kind:arm_branch to:0x0211c974 module:overlay(36)
from:0x0211d828 kind:arm_branch to:0x0211c970 module:overlay(36)
from:0x0211d838 kind:arm_branch to:0x0211c96c module:overlay(36)
from:0x0211d848 kind:arm_branch to:0x0211c754 module:overlay(36)
from:0x0211d858 kind:load to:0x02122dd8 module:overlay(36)
from:0x0211d86c kind:arm_call to:0x02011f3c module:main
from:0x0211d878 kind:arm_call to:0x0211d8a8 module:overlay(36)
@@ -672,6 +704,16 @@ from:0x0211dd58 kind:arm_call to:0x0200f37c module:main
from:0x0211dd60 kind:arm_call to:0x0200bed8 module:main
from:0x0211dd68 kind:arm_call_thumb to:0x020156f4 module:main
from:0x0211dd7c kind:arm_call to:0x02097724 module:overlay(0)
from:0x0211dd90 kind:arm_branch to:0x0211daf0 module:overlay(36)
from:0x0211dda0 kind:arm_branch to:0x0211dd08 module:overlay(36)
from:0x0211ddb0 kind:arm_branch to:0x0211dcf8 module:overlay(36)
from:0x0211ddc0 kind:arm_branch to:0x0211dcf4 module:overlay(36)
from:0x0211ddd0 kind:arm_branch to:0x0211dcf0 module:overlay(36)
from:0x0211dde0 kind:arm_branch to:0x0211dcec module:overlay(36)
from:0x0211ddf0 kind:arm_branch to:0x0211dce8 module:overlay(36)
from:0x0211de00 kind:arm_branch to:0x0211dce4 module:overlay(36)
from:0x0211de10 kind:arm_branch to:0x0211dce0 module:overlay(36)
from:0x0211de20 kind:arm_branch to:0x0211dac0 module:overlay(36)
from:0x0211de30 kind:load to:0x02122e24 module:overlay(36)
from:0x0211de44 kind:arm_call to:0x02011f3c module:main
from:0x0211de50 kind:arm_call to:0x0211de80 module:overlay(36)
@@ -477,6 +477,8 @@ from:0x0213441c kind:arm_call to:0x021343e4 module:overlay(49)
from:0x02134424 kind:arm_call to:0x02098488 module:overlay(0)
from:0x0213442c kind:arm_call to:0x02011ff4 module:main
from:0x02134440 kind:arm_call to:0x02097724 module:overlay(0)
from:0x02134454 kind:arm_branch to:0x021342f0 module:overlay(49)
from:0x02134464 kind:arm_branch to:0x0213420c module:overlay(49)
from:0x02134488 kind:load to:0x027e09b8 module:dtcm
from:0x021344a8 kind:load to:0x027e09b8 module:dtcm
from:0x021344c8 kind:load to:0x027e09b8 module:dtcm
+10
View File
@@ -241,6 +241,16 @@ from:0x0213b21c kind:arm_call to:0x02078484 module:overlay(0)
from:0x0213b228 kind:load to:0x027e09bc module:dtcm
from:0x0213b230 kind:load to:0x027e09b8 module:dtcm
from:0x0213b240 kind:arm_call to:0x02097724 module:overlay(0)
from:0x0213b254 kind:arm_branch to:0x0213aeac module:overlay(56)
from:0x0213b264 kind:arm_branch to:0x0213b234 module:overlay(56)
from:0x0213b274 kind:arm_branch to:0x0213b148 module:overlay(56)
from:0x0213b284 kind:arm_branch to:0x0213b144 module:overlay(56)
from:0x0213b294 kind:arm_branch to:0x0213b140 module:overlay(56)
from:0x0213b2a4 kind:arm_branch to:0x0213b13c module:overlay(56)
from:0x0213b2b4 kind:arm_branch to:0x0213b138 module:overlay(56)
from:0x0213b2c4 kind:arm_branch to:0x0213b134 module:overlay(56)
from:0x0213b2d4 kind:arm_branch to:0x0213b0e4 module:overlay(56)
from:0x0213b2e4 kind:arm_branch to:0x0213ae54 module:overlay(56)
from:0x0213b318 kind:arm_call to:0x020d3dec module:overlay(24)
from:0x0213b33c kind:load to:0x027e0ce0 module:dtcm
from:0x0213b360 kind:arm_call to:0x0213c40c module:overlay(56)
@@ -419,6 +419,8 @@ from:0x0214297c kind:arm_call to:0x02142944 module:overlay(58)
from:0x02142984 kind:arm_call to:0x02098488 module:overlay(0)
from:0x0214298c kind:arm_call to:0x02011ff4 module:main
from:0x021429a0 kind:arm_call to:0x02097724 module:overlay(0)
from:0x021429b4 kind:arm_branch to:0x021428c8 module:overlay(58)
from:0x021429c4 kind:arm_branch to:0x0214286c module:overlay(58)
from:0x021429d4 kind:load to:0x02156040 module:overlay(58)
from:0x021429e8 kind:arm_call to:0x02011f3c module:main
from:0x021429f4 kind:arm_call to:0x02142a2c module:overlay(58)
@@ -1252,6 +1254,8 @@ from:0x0214ab64 kind:load to:0x020d86b0 module:overlay(24)
from:0x0214ab74 kind:load to:0x027e0d48 module:dtcm
from:0x0214ab88 kind:load to:0x027e0d48 module:dtcm
from:0x0214ab94 kind:arm_call to:0x02097724 module:overlay(0)
from:0x0214aba8 kind:arm_branch to:0x0214ab34 module:overlay(58)
from:0x0214abb8 kind:arm_branch to:0x0214ab04 module:overlay(58)
from:0x0214abc8 kind:load to:0x02157124 module:overlay(58)
from:0x0214abdc kind:arm_call to:0x02011f3c module:main
from:0x0214abe8 kind:arm_call to:0x0214acf4 module:overlay(58)
@@ -1560,6 +1564,8 @@ from:0x0214d6cc kind:arm_call to:0x0214d694 module:overlay(58)
from:0x0214d6d4 kind:arm_call to:0x02098488 module:overlay(0)
from:0x0214d6dc kind:arm_call to:0x02011ff4 module:main
from:0x0214d6f0 kind:arm_call to:0x02097724 module:overlay(0)
from:0x0214d704 kind:arm_branch to:0x0214d558 module:overlay(58)
from:0x0214d714 kind:arm_branch to:0x0214d540 module:overlay(58)
from:0x0214d724 kind:load to:0x02157258 module:overlay(58)
from:0x0214d738 kind:arm_call to:0x02011f3c module:main
from:0x0214d744 kind:arm_call to:0x0214d774 module:overlay(58)
+1 -1
View File
@@ -828,7 +828,7 @@ data_ov058_02155190 kind:data(any) addr:0x02155190
_ZTV19data_ov058_021551a4 kind:data(any) addr:0x021551a4
data_ov058_021551c8 kind:data(any) addr:0x021551c8
_ZTV19data_ov058_02155208 kind:data(any) addr:0x02155208
_ZTV19data_ov058_02155210 kind:data(any) addr:0x02155210 ambiguous
_ZTV19data_ov058_02155210 kind:data(any) addr:0x02155210
_ZTV19data_ov058_02155264 kind:data(any) addr:0x02155264
_ZTV19data_ov058_02155288 kind:data(any) addr:0x02155288
_ZTV19data_ov058_021552bc kind:data(any) addr:0x021552bc ambiguous
+1 -1
View File
@@ -484,7 +484,7 @@ data_ov062_02160734 kind:data(any) addr:0x02160734
data_ov062_02160750 kind:data(any) addr:0x02160750
_ZTV19data_ov062_02160788 kind:data(any) addr:0x02160788
data_ov062_021607c0 kind:data(any) addr:0x021607c0
_ZTV19data_ov062_021607c0 kind:data(any) addr:0x021607c0 ambiguous
_ZTV19data_ov062_021607c0 kind:data(any) addr:0x021607c0
_ZTV19data_ov062_021607e8 kind:data(any) addr:0x021607e8
data_ov062_02160818 kind:data(any) addr:0x02160818
data_ov062_0216081c kind:data(any) addr:0x0216081c
@@ -1168,6 +1168,13 @@ from:0x02160a30 kind:arm_call_thumb to:0x02057ed4 module:overlay(0)
from:0x02160a38 kind:arm_call to:0x020616c8 module:overlay(0)
from:0x02160a40 kind:arm_call to:0x0209d0ac module:overlay(0)
from:0x02160a54 kind:arm_call to:0x0209c9d8 module:overlay(0)
from:0x02160a68 kind:arm_branch to:0x021609c4 module:overlay(63)
from:0x02160a78 kind:arm_branch to:0x0216095c module:overlay(63)
from:0x02160a88 kind:arm_branch to:0x02160938 module:overlay(63)
from:0x02160a98 kind:arm_branch to:0x02160918 module:overlay(63)
from:0x02160aa8 kind:arm_branch to:0x021608a8 module:overlay(63)
from:0x02160ab8 kind:arm_branch to:0x02160880 module:overlay(63)
from:0x02160ac8 kind:arm_branch to:0x02160a0c module:overlay(63)
from:0x02160ad8 kind:load to:0x02164708 module:overlay(63)
from:0x02160aec kind:arm_call to:0x02011f3c module:main
from:0x02160af8 kind:arm_call to:0x02160bd0 module:overlay(63)
@@ -320,6 +320,12 @@ from:0x02159be8 kind:arm_call_thumb to:0x02057ed4 module:overlay(0)
from:0x02159bf0 kind:arm_call to:0x020616c8 module:overlay(0)
from:0x02159bf8 kind:arm_call to:0x0209d0ac module:overlay(0)
from:0x02159c0c kind:arm_call to:0x0209c8b4 module:overlay(0)
from:0x02159c20 kind:arm_branch to:0x02159b8c module:overlay(65)
from:0x02159c30 kind:arm_branch to:0x02159b40 module:overlay(65)
from:0x02159c40 kind:arm_branch to:0x02159b20 module:overlay(65)
from:0x02159c50 kind:arm_branch to:0x02159ad8 module:overlay(65)
from:0x02159c60 kind:arm_branch to:0x02159ab8 module:overlay(65)
from:0x02159c70 kind:arm_branch to:0x02159bcc module:overlay(65)
from:0x02159c80 kind:load to:0x0215b80c module:overlay(65)
from:0x02159c94 kind:arm_call to:0x02011f3c module:main
from:0x02159ca0 kind:arm_call to:0x02159cf0 module:overlay(65)
+1 -1
View File
@@ -286,7 +286,7 @@ data_ov067_0215cf68 kind:data(any) addr:0x0215cf68 ambiguous
data_ov067_0215cfa0 kind:data(any) addr:0x0215cfa0
data_ov067_0215cfb5 kind:data(any) addr:0x0215cfb5 ambiguous
data_ov067_0215cfc0 kind:data(any) addr:0x0215cfc0
_ZTV19data_ov067_0215cfc0 kind:data(any) addr:0x0215cfc0 ambiguous
_ZTV19data_ov067_0215cfc0 kind:data(any) addr:0x0215cfc0
data_ov067_0215cfe4 kind:data(any) addr:0x0215cfe4
data_ov067_0215d024 kind:data(any) addr:0x0215d024
data_ov067_0215d07c kind:data(any) addr:0x0215d07c
@@ -610,6 +610,8 @@ from:0x02143f88 kind:arm_call to:0x02098488 module:overlay(0)
from:0x02143f9c kind:arm_call to:0x02098488 module:overlay(0)
from:0x02143fa4 kind:arm_call to:0x02011ff4 module:main
from:0x02143fb8 kind:arm_call to:0x02097724 module:overlay(0)
from:0x02143fcc kind:arm_branch to:0x02143f2c module:overlay(70)
from:0x02143fdc kind:arm_branch to:0x02143eac module:overlay(70)
from:0x02143ff0 kind:load to:0x0214dc74 module:overlay(70)
from:0x02143ffc kind:load to:0x0214fdb4 module:overlay(70)
from:0x02144010 kind:arm_call to:0x02011f3c module:main
@@ -1465,6 +1467,7 @@ from:0x0214b2f0 kind:arm_call_thumb to:0x02057ed4 module:overlay(0)
from:0x0214b2f8 kind:arm_call to:0x0209d0ac module:overlay(0)
from:0x0214b300 kind:arm_call to:0x02011ff4 module:main
from:0x0214b314 kind:arm_call to:0x0209c9d8 module:overlay(0)
from:0x0214b328 kind:arm_branch to:0x0214a33c module:overlay(70)
from:0x0214b338 kind:load to:0x02150968 module:overlay(70)
from:0x0214b34c kind:arm_call to:0x02011f3c module:main
from:0x0214b358 kind:arm_call to:0x0214b3a4 module:overlay(70)
@@ -1784,6 +1784,10 @@ from:0x0216344c kind:arm_call to:0x02011ff4 module:main
from:0x02163464 kind:arm_call to:0x020616c8 module:overlay(0)
from:0x0216346c kind:arm_call to:0x02098488 module:overlay(0)
from:0x02163480 kind:arm_call to:0x0209790c module:overlay(0)
from:0x02163494 kind:arm_branch to:0x02163430 module:overlay(73)
from:0x021634a4 kind:arm_branch to:0x02163388 module:overlay(73)
from:0x021634b4 kind:arm_branch to:0x02163368 module:overlay(73)
from:0x021634c4 kind:arm_branch to:0x02163458 module:overlay(73)
from:0x0216351c kind:arm_call to:0x01fff1a4 module:itcm
from:0x02163534 kind:arm_call to:0x01fff148 module:itcm
from:0x02163544 kind:arm_call to:0x01fff148 module:itcm
+1 -1
View File
@@ -277,7 +277,7 @@ data_ov083_0215d800 kind:data(any) addr:0x0215d800
_ZTV19data_ov083_0215d808 kind:data(any) addr:0x0215d808
data_ov083_0215d834 kind:data(any) addr:0x0215d834
_ZTV19data_ov083_0215d878 kind:data(any) addr:0x0215d878
_ZTV19data_ov083_0215d880 kind:data(any) addr:0x0215d880 ambiguous
_ZTV19data_ov083_0215d880 kind:data(any) addr:0x0215d880
data_ov083_0215d8d8 kind:data(any) addr:0x0215d8d8
data_ov083_0215d8f0 kind:data(any) addr:0x0215d8f0
data_ov083_0215d908 kind:data(any) addr:0x0215d908
+1 -1
View File
@@ -733,7 +733,7 @@ _ZTV19data_ov088_02175184 kind:data(any) addr:0x02175184
_ZTV19data_ov088_021751a8 kind:data(any) addr:0x021751a8
_ZTV19data_ov088_02175214 kind:data(any) addr:0x02175214
_ZTV19data_ov088_02175238 kind:data(any) addr:0x02175238
_ZTV19data_ov088_02175240 kind:data(any) addr:0x02175240 ambiguous
_ZTV19data_ov088_02175240 kind:data(any) addr:0x02175240
_ZTV19data_ov088_021752a8 kind:data(any) addr:0x021752a8
_ZTV19data_ov088_021752cc kind:data(any) addr:0x021752cc
_ZTV19data_ov088_021752ec kind:data(any) addr:0x021752ec ambiguous
+1 -1
View File
@@ -546,7 +546,7 @@ data_ov091_02177aa0 kind:data(any) addr:0x02177aa0 ambiguous
_ZTV19data_ov091_02177aac kind:data(any) addr:0x02177aac
_ZTV19data_ov091_02177ad0 kind:data(any) addr:0x02177ad0
data_ov091_02177b40 kind:data(any) addr:0x02177b40
_ZTV19data_ov091_02177b40 kind:data(any) addr:0x02177b40 ambiguous
_ZTV19data_ov091_02177b40 kind:data(any) addr:0x02177b40
_ZTV19data_ov091_02177b5c kind:data(any) addr:0x02177b5c
data_ov091_02177bb8 kind:data(any) addr:0x02177bb8
data_ov091_02177bd0 kind:data(any) addr:0x02177bd0
+16
View File
@@ -1345,6 +1345,8 @@ from:0x02171038 kind:arm_call to:0x020672ac module:overlay(0)
from:0x02171040 kind:arm_call_thumb to:0x02057ed4 module:overlay(0)
from:0x02171048 kind:arm_call to:0x020616c8 module:overlay(0)
from:0x02171050 kind:arm_call to:0x0209d0ac module:overlay(0)
from:0x02171064 kind:arm_branch to:0x02170ff4 module:overlay(94)
from:0x02171074 kind:arm_branch to:0x0217102c module:overlay(94)
from:0x02171084 kind:load to:0x02179258 module:overlay(94)
from:0x02171098 kind:arm_call to:0x02011f3c module:main
from:0x021710a4 kind:arm_call to:0x02171190 module:overlay(94)
@@ -1414,6 +1416,11 @@ from:0x0217177c kind:arm_call to:0x02011ff4 module:main
from:0x02171790 kind:arm_call to:0x0209cc80 module:overlay(0)
from:0x02171798 kind:arm_call to:0x02011ff4 module:main
from:0x021717ac kind:arm_call to:0x0209cc80 module:overlay(0)
from:0x021717c0 kind:arm_branch to:0x021716e0 module:overlay(94)
from:0x021717d0 kind:arm_branch to:0x02171694 module:overlay(94)
from:0x021717e0 kind:arm_branch to:0x02171674 module:overlay(94)
from:0x021717f0 kind:arm_branch to:0x02171604 module:overlay(94)
from:0x02171800 kind:arm_branch to:0x02171720 module:overlay(94)
from:0x02171810 kind:load to:0x021792f0 module:overlay(94)
from:0x02171824 kind:arm_call to:0x02011f3c module:main
from:0x02171830 kind:arm_call to:0x021718cc module:overlay(94)
@@ -1699,6 +1706,15 @@ from:0x021738ac kind:load to:0x027e09bc module:dtcm
from:0x021738b0 kind:load to:0x02176190 module:overlay(94)
from:0x021738bc kind:load to:0x0203e964 module:main
from:0x021738cc kind:arm_call to:0x0209c9d8 module:overlay(0)
from:0x021738e0 kind:arm_branch to:0x02172af4 module:overlay(94)
from:0x021738f0 kind:arm_branch to:0x02171ca8 module:overlay(94)
from:0x02173900 kind:arm_branch to:0x02173574 module:overlay(94)
from:0x02173910 kind:arm_branch to:0x02173514 module:overlay(94)
from:0x02173920 kind:arm_branch to:0x02173520 module:overlay(94)
from:0x02173930 kind:arm_branch to:0x021734fc module:overlay(94)
from:0x02173940 kind:arm_branch to:0x02171c0c module:overlay(94)
from:0x02173950 kind:arm_branch to:0x02172a44 module:overlay(94)
from:0x02173960 kind:arm_branch to:0x02172a18 module:overlay(94)
from:0x02173970 kind:load to:0x02179614 module:overlay(94)
from:0x02173984 kind:arm_call to:0x02011f3c module:main
from:0x02173990 kind:arm_call to:0x02173b08 module:overlay(94)
@@ -137,6 +137,8 @@ from:0x0217ab30 kind:arm_call to:0x02098488 module:overlay(0)
from:0x0217ab44 kind:arm_call to:0x02098488 module:overlay(0)
from:0x0217ab4c kind:arm_call to:0x02011ff4 module:main
from:0x0217ab60 kind:arm_call to:0x02097724 module:overlay(0)
from:0x0217ab74 kind:arm_branch to:0x0217a910 module:overlay(96)
from:0x0217ab84 kind:arm_branch to:0x0217a8cc module:overlay(96)
from:0x0217ab94 kind:load to:0x0217e2e8 module:overlay(96)
from:0x0217aba8 kind:arm_call to:0x02011f3c module:main
from:0x0217abb4 kind:arm_call to:0x0217abe4 module:overlay(96)
+4 -2
View File
@@ -5624,10 +5624,12 @@ from:0x0203d300 kind:arm_call to:0x0203d2d0 module:main
from:0x0203d308 kind:arm_call to:0x02011ff4 module:main
from:0x0203d3d0 kind:arm_call to:0x0203ba64 module:main
from:0x0203d3e0 kind:arm_call to:0x0203ba64 module:main
from:0x0203d428 kind:load to:0x0203d5fc module:main
from:0x0203d42c kind:load to:0x0203d824 module:main
from:0x0203d428 kind:link_time_const(__exception_table_start__)
from:0x0203d42c kind:link_time_const(__exception_table_end__)
from:0x0203d440 kind:arm_call to:0x0203ba64 module:main
from:0x0203d450 kind:arm_call to:0x0203ba64 module:main
from:0x0203d4cc kind:arm_branch to:0x0203cc7c module:main
from:0x0203d518 kind:arm_branch to:0x0203cc7c module:main
from:0x0203d564 kind:load to:0x02038cd4 module:main
from:0x0203d5fc kind:load to:0x02038bac module:main
from:0x0203d604 kind:load to:0x0203d51c module:main
+71 -26
View File
@@ -1474,7 +1474,7 @@ OS_func_0032 kind:function(arm,size=0x18) addr:0x02026700
OS_func_0033 kind:function(arm,size=0x18) addr:0x02026718
OS_func_0034 kind:function(arm,size=0x8) addr:0x02026730
OS_GetLockID kind:function(arm,size=0x58) addr:0x02026738
func_02026790 kind:function(arm,size=0x30) addr:0x02026790
OS_func_0178 kind:function(arm,size=0x30) addr:0x02026790
sscanf kind:function(arm,size=0x28) addr:0x020267c0
vsscanf kind:function(arm,size=0x18) addr:0x020267e8
snprintf kind:function(arm,size=0x28) addr:0x02026800
@@ -1527,12 +1527,12 @@ func_0202758c kind:function(arm,size=0x24) addr:0x0202758c
DC_func_0001 kind:function(arm,size=0xc) addr:0x020275b0
DC_func_0002 kind:function(arm,size=0x2c) addr:0x020275bc
DC_FlushAll kind:function(arm,size=0x34) addr:0x020275e8
DC_func_0003 kind:function(arm,size=0x1c) addr:0x0202761c
DC_InvalidateRange kind:function(arm,size=0x1c) addr:0x0202761c
DC_StoreRange kind:function(arm,size=0x1c) addr:0x02027638
DC_func_0004 kind:function(arm,size=0x24) addr:0x02027654
DC_FlushRange kind:function(arm,size=0x24) addr:0x02027654
DC_func_0005 kind:function(arm,size=0xc) addr:0x02027678
IC_func_0001 kind:function(arm,size=0xc) addr:0x02027684
IC_func_0002 kind:function(arm,size=0x1c) addr:0x02027690
IC_InvalidateRange kind:function(arm,size=0x1c) addr:0x02027690
OS_func_0069 kind:function(arm,size=0x20) addr:0x020276ac
OS_Init kind:function(thumb,size=0x44) addr:0x020276cc
OS_func_0070 kind:function(thumb,size=0xb0) addr:0x02027710
@@ -1582,8 +1582,8 @@ OS_func_0104 kind:function(arm,size=0x54) addr:0x02028188
OS_func_0105 kind:function(arm,size=0x30) addr:0x020281dc
OS_func_0106 kind:function(arm,size=0x2c) addr:0x0202820c
OS_ResetSystem kind:function(arm,size=0xbc) addr:0x02028238
func_020282f4 kind:function(arm,size=0x1c) addr:0x020282f4
func_02028310 kind:function(arm,size=0x80) addr:0x02028310
OS_func_0176 kind:function(arm,size=0x1c) addr:0x020282f4
OS_func_0177 kind:function(arm,size=0x80) addr:0x02028310
OS_func_0107 kind:function(arm,size=0x8) addr:0x02028390
OS_func_0108 kind:function(arm,size=0x34) addr:0x02028398
OS_func_0110 kind:function(arm,size=0x84) addr:0x020283cc
@@ -2058,10 +2058,10 @@ func_02039e18 kind:function(arm,size=0x68) addr:0x02039e18
_f2d kind:function(arm,size=0x84) addr:0x02039e80
func_02039f04 kind:function(arm,size=0x48) addr:0x02039f04
func_02039f4c kind:function(arm,size=0x48) addr:0x02039f4c
func_02039f94 kind:function(arm,size=0x10) addr:0x02039f94
func_02039fa4 kind:function(arm,size=0x1b0) addr:0x02039fa4
_ll_udiv kind:function(arm,size=0xc) addr:0x0203a154
_ull_mod kind:function(arm,size=0x3c) addr:0x0203a160
func_02039f94 kind:function(arm,size=0x1c0) addr:0x02039f94
.L_02039fa4 kind:label(arm) addr:0x02039fa4
_ll_udiv kind:function(arm,size=0x48) addr:0x0203a154
_ull_mod kind:label(arm) addr:0x0203a160
_ull_mul kind:function(arm,size=0x20) addr:0x0203a19c
_s32_div_f kind:function(arm,size=0x20c) addr:0x0203a1bc
_u32_div_f kind:function(arm,size=0x1e4) addr:0x0203a3c8
@@ -2129,26 +2129,71 @@ _ZN13func_0203d2e4D1Ev kind:function(arm,size=0x14) addr:0x0203d2e4
_ZN13func_0203d2f8D0Ev kind:function(arm,size=0x1c) addr:0x0203d2f8
func_0203d314 kind:function(arm,size=0x5c) addr:0x0203d314
func_0203d370 kind:function(arm,size=0xa0) addr:0x0203d370
func_0203d410 kind:function(arm,size=0x20) addr:0x0203d410
__FindExceptionTable kind:function(arm,size=0x20) addr:0x0203d410
func_0203d430 kind:function(arm,size=0x28) addr:0x0203d430
func_0203d458 kind:function(arm,size=0x30) addr:0x0203d458
func_0203d488 kind:function(arm,size=0x48) addr:0x0203d488
func_0204fc68 kind:function(arm,size=0x4c) addr:0x0203d4d0
data_0203d51c kind:data(any) addr:0x0203d51c
data_0203d52c kind:data(any) addr:0x0203d52c
data_0203d540 kind:data(any) addr:0x0203d540
data_0203d550 kind:data(any) addr:0x0203d550
data_0203d568 kind:data(any) addr:0x0203d568
data_0203d570 kind:data(any) addr:0x0203d570
data_0203d580 kind:data(any) addr:0x0203d580
data_0203d588 kind:data(any) addr:0x0203d588
data_0203d59c kind:data(any) addr:0x0203d59c
data_0203d5a4 kind:data(any) addr:0x0203d5a4
data_0203d5ac kind:data(any) addr:0x0203d5ac
data_0203d5c0 kind:data(any) addr:0x0203d5c0
data_0203d5d4 kind:data(any) addr:0x0203d5d4
data_0203d5e8 kind:data(any) addr:0x0203d5e8
data_0203d5fc kind:data(any) addr:0x0203d5fc
@ET@02038bac kind:data(any) addr:0x0203d51c
@ET@02038c5c kind:data(any) addr:0x0203d52c
@ET@02038d0c kind:data(any) addr:0x0203d540
@ET@02038dc0 kind:data(any) addr:0x0203d550
@ET@0203bc70 kind:data(any) addr:0x0203d568
@ET@0203bf2c kind:data(any) addr:0x0203d570
@ET@0203c760 kind:data(any) addr:0x0203d580
@ET@0203c934 kind:data(any) addr:0x0203d588
@ET@0203c9e4 kind:data(any) addr:0x0203d59c
@ET@0203ca44 kind:data(any) addr:0x0203d5a4
@ET@0203d048 kind:data(any) addr:0x0203d5ac
@ET@0203d0a4 kind:data(any) addr:0x0203d5c0
@ET@0203d160 kind:data(any) addr:0x0203d5d4
@ET@0203d210 kind:data(any) addr:0x0203d5e8
@EX@02038bac kind:data(word[3]) addr:0x0203d5fc
@EX@02038c24 kind:data(word[3]) addr:0x0203d608
@EX@02038c4c kind:data(word[3]) addr:0x0203d614
@EX@02038c5c kind:data(word[3]) addr:0x0203d620
@EX@02038c9c kind:data(word[3]) addr:0x0203d62c
@EX@02038cbc kind:data(word[3]) addr:0x0203d638
@EX@02038cd8 kind:data(word[3]) addr:0x0203d644
@EX@02038cf4 kind:data(word[3]) addr:0x0203d650
@EX@02038d0c kind:data(word[3]) addr:0x0203d65c
@EX@02038d2c kind:data(word[3]) addr:0x0203d668
@EX@02038d44 kind:data(word[3]) addr:0x0203d674
@EX@02038d64 kind:data(word[3]) addr:0x0203d680
@EX@02038d94 kind:data(word[3]) addr:0x0203d68c
@EX@02038dc0 kind:data(word[3]) addr:0x0203d698
@EX@0203b924 kind:data(word[3]) addr:0x0203d6a4
@EX@0203b944 kind:data(word[3]) addr:0x0203d6b0
@EX@0203b994 kind:data(word[3]) addr:0x0203d6bc
@EX@0203bb4c kind:data(word[3]) addr:0x0203d6c8
@EX@0203bc70 kind:data(word[3]) addr:0x0203d6d4
@EX@0203bf2c kind:data(word[3]) addr:0x0203d6e0
@EX@0203c760 kind:data(word[3]) addr:0x0203d6ec
@EX@0203c8b4 kind:data(word[3]) addr:0x0203d6f8
@EX@0203c934 kind:data(word[3]) addr:0x0203d704
@EX@0203c9e4 kind:data(word[3]) addr:0x0203d710
@EX@0203ca44 kind:data(word[3]) addr:0x0203d71c
@EX@0203cc7c kind:data(word[3]) addr:0x0203d728
@EX@0203cd70 kind:data(word[3]) addr:0x0203d734
@EX@0203cd98 kind:data(word[3]) addr:0x0203d740
@EX@0203cdb8 kind:data(word[3]) addr:0x0203d74c
@EX@0203cde8 kind:data(word[3]) addr:0x0203d758
@EX@0203ce2c kind:data(word[3]) addr:0x0203d764
@EX@0203ce38 kind:data(word[3]) addr:0x0203d770
@EX@0203ce44 kind:data(word[3]) addr:0x0203d77c
@EX@0203ce5c kind:data(word[3]) addr:0x0203d788
@EX@0203d048 kind:data(word[3]) addr:0x0203d794
@EX@0203d0a4 kind:data(word[3]) addr:0x0203d7a0
@EX@0203d160 kind:data(word[3]) addr:0x0203d7ac
@EX@0203d210 kind:data(word[3]) addr:0x0203d7b8
@EX@0203d270 kind:data(word[3]) addr:0x0203d7c4
@EX@0203d2a0 kind:data(word[3]) addr:0x0203d7d0
@EX@0203d2b4 kind:data(word[3]) addr:0x0203d7dc
@EX@0203d2d0 kind:data(word[3]) addr:0x0203d7e8
@EX@0203d2e4 kind:data(word[3]) addr:0x0203d7f4
@EX@0203d2f8 kind:data(word[3]) addr:0x0203d800
@EX@0203d370 kind:data(word[3]) addr:0x0203d80c
@EX@0203d430 kind:data(word[3]) addr:0x0203d818
__sinit_0203d824 kind:function(arm,size=0x1c) addr:0x0203d824
__sinit_0203d840 kind:function(arm,size=0x60) addr:0x0203d840
__sinit_0203d8a0 kind:function(arm,size=0x50) addr:0x0203d8a0
+818 -817
View File
File diff suppressed because it is too large Load Diff
-1
View File
@@ -29,7 +29,6 @@ data_027e0200 kind:bss addr:0x027e0200
data_027e0204 kind:bss addr:0x027e0204
data_027e0208 kind:bss addr:0x027e0208
data_027e0210 kind:bss addr:0x027e0210
data_027e0254 kind:bss addr:0x027e0254
data_027e0288 kind:bss addr:0x027e0288
data_027e02b0 kind:bss addr:0x027e02b0
gGeomMatrix kind:bss addr:0x027e02c4
+7
View File
@@ -3316,6 +3316,9 @@ from:0x02075e34 kind:arm_call to:0x02074800 module:overlay(0)
from:0x02075e3c kind:arm_call to:0x02011ff4 module:main
from:0x02075e54 kind:arm_call to:0x02062c50 module:overlay(0)
from:0x02075e5c kind:arm_call to:0x02074800 module:overlay(0)
from:0x02075e70 kind:arm_branch to:0x02075e20 module:overlay(0)
from:0x02075e80 kind:arm_branch to:0x02075e14 module:overlay(0)
from:0x02075e90 kind:arm_branch to:0x02075e48 module:overlay(0)
from:0x02075ea8 kind:arm_call to:0x0207480c module:overlay(0)
from:0x02075ecc kind:arm_call to:0x02016644 module:main
from:0x02075ed8 kind:arm_call to:0x02068928 module:overlay(0)
@@ -9189,6 +9192,7 @@ from:0x020b0af4 kind:load to:0x02123c90 module:overlay(34)
from:0x020b0af8 kind:load to:0x021602f0 module:overlay(86)
from:0x020b0afc kind:load to:0x02102d54 module:overlay(31)
from:0x020b0b00 kind:load to:0x021531bc module:overlay(58)
from:0x020b0b04 kind:load to:0x0210d81c module:overlay(31)
from:0x020b0b08 kind:load to:0x0211e4a4 module:overlay(39)
from:0x020b0b0c kind:load to:0x0215c5d8 module:overlay(69)
from:0x020b0b10 kind:load to:0x0215ce70 module:overlay(77)
@@ -9898,16 +9902,19 @@ from:0x020b3b04 kind:load to:0x02074824 module:overlay(0)
from:0x020b3b08 kind:load to:0x02075dcc module:overlay(0)
from:0x020b3b0c kind:load to:0x02074830 module:overlay(0)
from:0x020b3b10 kind:load to:0x02075e14 module:overlay(0)
from:0x020b3b1c kind:load to:0x02075e88 module:overlay(0)
from:0x020b3b20 kind:load to:0x02075e68 module:overlay(0)
from:0x020b3b24 kind:load to:0x02062c68 module:overlay(0)
from:0x020b3b28 kind:load to:0x02062c6c module:overlay(0)
from:0x020b3b2c kind:load to:0x02062c70 module:overlay(0)
from:0x020b3b30 kind:load to:0x02075e78 module:overlay(0)
from:0x020b3b34 kind:load to:0x02062c78 module:overlay(0)
from:0x020b3b38 kind:load to:0x02062c7c module:overlay(0)
from:0x020b3b3c kind:load to:0x02062c80 module:overlay(0)
from:0x020b3b40 kind:load to:0x02062c84 module:overlay(0)
from:0x020b3b4c kind:load to:0x0207662c module:overlay(0)
from:0x020b3b50 kind:load to:0x020766a0 module:overlay(0)
from:0x020b3b54 kind:load to:0x02075e98 module:overlay(0)
from:0x020b3b58 kind:load to:0x02075ea0 module:overlay(0)
from:0x020b3b5c kind:load to:0x02075ee4 module:overlay(0)
from:0x020b3b60 kind:load to:0x02076130 module:overlay(0)
+4 -1
View File
@@ -1168,7 +1168,10 @@ func_ov000_02075dcc kind:function(arm,size=0x48) addr:0x02075dcc
func_ov000_02075e14 kind:function(arm,size=0xc) addr:0x02075e14
_ZN19func_ov000_02075e20D0Ev kind:function(arm,size=0x28) addr:0x02075e20
_ZN19func_ov000_02075e48D2Ev kind:function(arm,size=0x20) addr:0x02075e48
func_ov000_02075e68 kind:function(arm,size=0x38) addr:0x02075e68
func_ov000_02075e68 kind:function(arm,size=0x10) addr:0x02075e68
func_ov000_02075e78 kind:function(arm,size=0x10) addr:0x02075e78
func_ov000_02075e88 kind:function(arm,size=0x10) addr:0x02075e88
func_ov000_02075e98 kind:function(arm,size=0x8) addr:0x02075e98
func_ov000_02075ea0 kind:function(arm,size=0x44) addr:0x02075ea0
func_ov000_02075ee4 kind:function(arm,size=0x24c) addr:0x02075ee4
func_ov000_02076130 kind:function(arm,size=0x18) addr:0x02076130
+83 -4
View File
@@ -1,9 +1,9 @@
.text start:0x020b7d40 end:0x020c2278 kind:code align:32
.rodata start:0x020c2278 end:0x020c4068 kind:rodata align:4
.text start:0x020b7d40 end:0x020c3e14 kind:code align:32
.rodata start:0x020c3e14 end:0x020c4066 kind:rodata align:4
.init start:0x020c4068 end:0x020c4154 kind:code align:4
.ctor start:0x020c4154 end:0x020c4174 kind:rodata align:4
.data start:0x020c4180 end:0x020c4820 kind:data align:32
.bss start:0x020c4820 end:0x020c5f60 kind:bss align:32
.bss start:0x020c4820 end:0x020c5f44 kind:bss align:32
src/001_SceneInit/SceneInitializers_001.cpp:
.text start:0x020b7d40 end:0x020b8c58
@@ -191,7 +191,7 @@ src/001_SceneInit/code_020bfeec.cpp:
src/001_SceneInit/Game/AdventureModeManager_001.cpp:
.text start:0x020c17c8 end:0x020c2198
.rodata start:0x020c3fc0 end:0x020c4060
.rodata start:0x020c3fc0 end:0x020c4048
src/001_SceneInit/Game/GameModeAdventure_001.cpp:
complete
@@ -204,3 +204,82 @@ src/001_SceneInit/code_020c099c.cpp:
.init start:0x020c4144 end:0x020c4154
.ctor start:0x020c415c end:0x020c4160
.data start:0x020c4814 end:0x020c4818
libs/dsprot/src/dsprot_main.c:
complete
.text start:0x020c2278 end:0x020c2688
libs/dsprot/src/dsprot_main_decryptor.s:
complete
.text start:0x020c2688 end:0x020c2958
libs/dsprot/src/dsprot_main_decoder.s:
complete
.text start:0x020c2958 end:0x020c29a4
.ctor start:0x020c4160 end:0x020c4164
libs/dsprot/src/integrity.c:
complete
.text start:0x020c29a4 end:0x020c2d7c
libs/dsprot/src/integrity_decryptor.s:
complete
.text start:0x020c2d7c end:0x020c2f5c
libs/dsprot/src/integrity_decoder.s:
complete
.text start:0x020c2f5c end:0x020c2f94
.ctor start:0x020c4164 end:0x020c4168
libs/dsprot/src/encryptor.c:
complete
.text start:0x020c2f94 end:0x020c3218
libs/dsprot/src/encryptor_decryptor.s:
complete
.text start:0x020c3218 end:0x020c3240
.ctor start:0x020c4168 end:0x020c416c
libs/dsprot/src/mac_owner.c:
complete
.text start:0x020c3240 end:0x020c33a0
.rodata start:0x020c4060 end:0x020c4066
libs/dsprot/src/mac_owner_decryptor.s:
complete
.text start:0x020c33a0 end:0x020c3490
libs/dsprot/src/rom_util.c:
complete
.text start:0x020c3490 end:0x020c366c
libs/dsprot/src/rom_util_decryptor.s:
complete
.text start:0x020c366c end:0x020c375c
libs/dsprot/src/rom_test.c:
complete
.text start:0x020c375c end:0x020c38e4
libs/dsprot/src/rom_test_decryptor.s:
complete
.text start:0x020c38e4 end:0x020c39d4
libs/dsprot/src/coretests_decoder.s:
complete
.text start:0x020c39d4 end:0x020c3a1c
.ctor start:0x020c416c end:0x020c4170
libs/dsprot/src/rc4.c:
complete
.text start:0x020c3a1c end:0x020c3dc4
libs/dsprot/src/rc4_decoder.s:
complete
.text start:0x020c3dc4 end:0x020c3e14
.ctor start:0x020c4170 end:0x020c4174
libs/dsprot/src/extra.c:
complete
.rodata start:0x020c4048 end:0x020c4060
.bss start:0x020c5f40 end:0x020c5f44
+202 -31
View File
@@ -1920,7 +1920,7 @@ from:0x020c086e kind:thumb_call_arm to:0x0201662c module:main
from:0x020c0874 kind:thumb_call_arm to:0x020c08e0 module:overlay(1)
from:0x020c088c kind:thumb_call to:0x020a1c38 module:overlay(0)
from:0x020c08a8 kind:arm_call to:0x02016614 module:main
from:0x020c08cc kind:load to:0x020c5750 module:overlay(17) add:0x8
from:0x020c08cc kind:load to:0x020c4824 add:0xf34 module:overlay(1)
from:0x020c08dc kind:load to:0x027e0cec module:dtcm
from:0x020c08f0 kind:load to:0x027e0cec module:dtcm
from:0x020c0900 kind:load to:0x0204af1c module:main
@@ -2318,41 +2318,207 @@ from:0x020c2242 kind:thumb_call_arm to:0x020c2868 module:overlay(1)
from:0x020c226c kind:load to:0x020c21f1 module:overlay(1)
from:0x020c2270 kind:load to:0x020c2215 module:overlay(1)
from:0x020c2274 kind:load to:0x020c5f3c module:overlay(1)
from:0x020c2498 kind:load to:0x020c417c module:overlays(2,4)
from:0x020c26f0 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c2768 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c27e0 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c2858 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c28d0 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c2948 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c2970 kind:load to:0x020c3b00 module:overlay(1)
from:0x020c2de4 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c2e5c kind:load to:0x020c5f41 module:overlay(1)
from:0x020c2ed4 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c2f4c kind:load to:0x020c5f41 module:overlay(1)
from:0x020c2f6c kind:load to:0x020c417c module:overlays(2,4)
from:0x020c2324 kind:load to:0x020c38e4 add:0x1400 module:overlay(1)
from:0x020c2328 kind:load to:0x020c2e6c add:0x1400 module:overlay(1)
from:0x020c23dc kind:load to:0x020c395c add:0x1400 module:overlay(1)
from:0x020c23e0 kind:load to:0x020c2ee4 add:0x1400 module:overlay(1)
from:0x020c2494 kind:load to:0x020c33a0 add:0x1400 module:overlay(1)
from:0x020c2498 kind:load to:0x020c2d7c add:0x1400 module:overlay(1)
from:0x020c254c kind:load to:0x020c3418 add:0x1400 module:overlay(1)
from:0x020c2550 kind:load to:0x020c2df4 add:0x1400 module:overlay(1)
from:0x020c26a8 kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c26d4 kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c26f0 kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c26f4 kind:load to:0x020c5f40 add:0x14ac module:overlay(1)
from:0x020c26f8 kind:load to:0x020c5f40 add:0x428b module:overlay(1)
from:0x020c26fc kind:load to:0x020c2278 add:0x1400 module:overlay(1)
from:0x020c2720 kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c274c kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c2768 kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c276c kind:load to:0x020c5f40 add:0x14ac module:overlay(1)
from:0x020c2770 kind:load to:0x020c5f40 add:0x428b module:overlay(1)
from:0x020c2774 kind:load to:0x020c2330 add:0x1400 module:overlay(1)
from:0x020c2798 kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c27c4 kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c27e0 kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c27e4 kind:load to:0x020c5f40 add:0x14ac module:overlay(1)
from:0x020c27e8 kind:load to:0x020c5f40 add:0x428b module:overlay(1)
from:0x020c27ec kind:load to:0x020c23e8 add:0x1400 module:overlay(1)
from:0x020c2810 kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c283c kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c2858 kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c285c kind:load to:0x020c5f40 add:0x14ac module:overlay(1)
from:0x020c2860 kind:load to:0x020c5f40 add:0x428b module:overlay(1)
from:0x020c2864 kind:load to:0x020c24a0 add:0x1400 module:overlay(1)
from:0x020c2888 kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c28b4 kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c28d0 kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c28d4 kind:load to:0x020c5f40 add:0x1494 module:overlay(1)
from:0x020c28d8 kind:load to:0x020c5f40 add:0x428b module:overlay(1)
from:0x020c28dc kind:load to:0x020c2558 add:0x1400 module:overlay(1)
from:0x020c2900 kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c292c kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c2948 kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c294c kind:load to:0x020c5f40 add:0x1494 module:overlay(1)
from:0x020c2950 kind:load to:0x020c5f40 add:0x428b module:overlay(1)
from:0x020c2954 kind:load to:0x020c25f0 add:0x1400 module:overlay(1)
from:0x020c2960 kind:arm_call to:0x020c2ff0 module:overlay(1)
from:0x020c2968 kind:load to:0x020c2688 add:0x1400 module:overlay(1)
from:0x020c296c kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c2970 kind:load to:0x020c2700 add:0x1400 module:overlay(1)
from:0x020c2974 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c2978 kind:load to:0x020c2778 add:0x1400 module:overlay(1)
from:0x020c297c kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c2980 kind:load to:0x020c27f0 add:0x1400 module:overlay(1)
from:0x020c2984 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c2988 kind:load to:0x020c2868 add:0x1400 module:overlay(1)
from:0x020c298c kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c2990 kind:load to:0x020c28e0 add:0x1400 module:overlay(1)
from:0x020c2994 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c29a0 kind:load to:0x020c4048 add:0x1400 module:overlay(1)
from:0x020c2a78 kind:load to:0x020c33a0 add:0x1400 module:overlay(1)
from:0x020c2b8c kind:load to:0x020c3418 add:0x1400 module:overlay(1)
from:0x020c2c64 kind:load to:0x020c38e4 add:0x1400 module:overlay(1)
from:0x020c2d78 kind:load to:0x020c395c add:0x1400 module:overlay(1)
from:0x020c2d9c kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c2dc8 kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c2de4 kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c2de8 kind:load to:0x020c5f40 add:0x14d4 module:overlay(1)
from:0x020c2dec kind:load to:0x020c5f40 add:0xd228 module:overlay(1)
from:0x020c2df0 kind:load to:0x020c29a4 add:0x1400 module:overlay(1)
from:0x020c2e14 kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c2e40 kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c2e5c kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c2e60 kind:load to:0x020c5f40 add:0x1510 module:overlay(1)
from:0x020c2e64 kind:load to:0x020c5f40 add:0xd228 module:overlay(1)
from:0x020c2e68 kind:load to:0x020c2a7c add:0x1400 module:overlay(1)
from:0x020c2e8c kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c2eb8 kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c2ed4 kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c2ed8 kind:load to:0x020c5f40 add:0x14d4 module:overlay(1)
from:0x020c2edc kind:load to:0x020c5f40 add:0xd228 module:overlay(1)
from:0x020c2ee0 kind:load to:0x020c2b90 add:0x1400 module:overlay(1)
from:0x020c2f04 kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c2f30 kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c2f4c kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c2f50 kind:load to:0x020c5f40 add:0x1510 module:overlay(1)
from:0x020c2f54 kind:load to:0x020c5f40 add:0xd228 module:overlay(1)
from:0x020c2f58 kind:load to:0x020c2c68 add:0x1400 module:overlay(1)
from:0x020c2f64 kind:arm_call to:0x020c2ff0 module:overlay(1)
from:0x020c2f6c kind:load to:0x020c2d7c add:0x1400 module:overlay(1)
from:0x020c2f70 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c2f74 kind:load to:0x020c2df4 add:0x1400 module:overlay(1)
from:0x020c2f78 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c2f7c kind:load to:0x020c2e6c add:0x1400 module:overlay(1)
from:0x020c2f80 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c2f84 kind:load to:0x020c2ee4 add:0x1400 module:overlay(1)
from:0x020c2f88 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c2fa0 kind:arm_call to:0x02028b84 module:main
from:0x020c2fac kind:arm_call to:0x02028bc0 module:main
from:0x020c3038 kind:arm_call to:0x020c2fb4 module:overlay(1)
from:0x020c30e4 kind:arm_call to:0x020c2f94 module:overlay(1)
from:0x020c30f8 kind:load to:0x020c5f40 module:overlay(1)
from:0x020c3168 kind:arm_call to:0x020c3d6c module:overlay(1)
from:0x020c3174 kind:arm_call to:0x020c2f94 module:overlay(1)
from:0x020c3184 kind:load to:0x020c5f40 module:overlay(1)
from:0x020c31f8 kind:arm_call to:0x020c3d14 module:overlay(1)
from:0x020c3204 kind:arm_call to:0x020c2f94 module:overlay(1)
from:0x020c3214 kind:load to:0x020c5f40 module:overlay(1)
from:0x020c322c kind:load to:0x020c73cc module:overlay(25)
from:0x020c3220 kind:arm_call to:0x020c2ff0 module:overlay(1)
from:0x020c3228 kind:load to:0x020c3188 add:0x1400 module:overlay(1)
from:0x020c322c kind:load to:0x020c5f40 add:0x148c module:overlay(1)
from:0x020c3230 kind:load to:0x020c3100 add:0x1400 module:overlay(1)
from:0x020c3234 kind:load to:0x020c5f40 add:0x1484 module:overlay(1)
from:0x020c324c kind:arm_call to:0x02029824 module:main
from:0x020c3288 kind:arm_call to:0x02029840 module:main
from:0x020c32ec kind:load to:0x020c4060 module:overlay(1)
from:0x020c32fc kind:arm_call to:0x02029824 module:main
from:0x020c3338 kind:arm_call to:0x02029840 module:main
from:0x020c339c kind:load to:0x020c4060 module:overlay(1)
from:0x020c3408 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c3410 kind:load to:0x020d3b2a module:overlay(19)
from:0x020c3480 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c3488 kind:load to:0x020d3b2a module:overlay(19)
from:0x020c36d4 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c36dc kind:load to:0x020d3b2a module:overlay(19)
from:0x020c374c kind:load to:0x020c5f41 module:overlay(1)
from:0x020c3750 kind:load to:0x020c7394 module:overlay(25)
from:0x020c3754 kind:load to:0x020d3b2a module:overlay(19)
from:0x020c394c kind:load to:0x020c5f41 module:overlay(1)
from:0x020c3954 kind:load to:0x020d3b2a module:overlay(19)
from:0x020c39c4 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c39cc kind:load to:0x020d3b2a module:overlay(19)
from:0x020c3de0 kind:load to:0x020c738c module:overlay(25)
from:0x020c3e00 kind:load to:0x020c7398 module:overlay(25)
from:0x020c3e08 kind:load to:0x020c7398 module:overlay(25)
from:0x020c33c0 kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c33ec kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c3408 kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c340c kind:load to:0x020c5f40 add:0x14ac module:overlay(1)
from:0x020c3410 kind:load to:0x020c5f40 add:0xdbea module:overlay(1)
from:0x020c3414 kind:load to:0x020c3240 add:0x1400 module:overlay(1)
from:0x020c3438 kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c3464 kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c3480 kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c3484 kind:load to:0x020c5f40 add:0x14ac module:overlay(1)
from:0x020c3488 kind:load to:0x020c5f40 add:0xdbea module:overlay(1)
from:0x020c348c kind:load to:0x020c32f0 add:0x1400 module:overlay(1)
from:0x020c34a4 kind:arm_call to:0x02027c68 module:main
from:0x020c34b4 kind:arm_call to:0x02032240 module:main
from:0x020c35f8 kind:arm_call to:0x0203225c module:main
from:0x020c3600 kind:arm_call to:0x02027cc0 module:main
from:0x020c368c kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c36b8 kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c36d4 kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c36d8 kind:load to:0x020c5f40 add:0x157c module:overlay(1)
from:0x020c36dc kind:load to:0x020c5f40 add:0xdbea module:overlay(1)
from:0x020c36e0 kind:load to:0x020c3490 add:0x1400 module:overlay(1)
from:0x020c3704 kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c3730 kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c374c kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c3750 kind:load to:0x020c5f40 add:0x1454 module:overlay(1)
from:0x020c3754 kind:load to:0x020c5f40 add:0xdbea module:overlay(1)
from:0x020c3758 kind:load to:0x020c3614 add:0x1400 module:overlay(1)
from:0x020c3790 kind:arm_call to:0x020c366c module:overlay(1)
from:0x020c379c kind:arm_call to:0x020c36e4 module:overlay(1)
from:0x020c3854 kind:arm_call to:0x020c366c module:overlay(1)
from:0x020c3860 kind:arm_call to:0x020c36e4 module:overlay(1)
from:0x020c3904 kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c3930 kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c394c kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c3950 kind:load to:0x020c5f40 add:0x14c4 module:overlay(1)
from:0x020c3954 kind:load to:0x020c5f40 add:0xdbea module:overlay(1)
from:0x020c3958 kind:load to:0x020c375c add:0x1400 module:overlay(1)
from:0x020c397c kind:arm_call to:0x020c3100 module:overlay(1)
from:0x020c39a8 kind:arm_call to:0x020c3188 module:overlay(1)
from:0x020c39c4 kind:load to:0x020c5f40 add:0x1 module:overlay(1)
from:0x020c39c8 kind:load to:0x020c5f40 add:0x14c4 module:overlay(1)
from:0x020c39cc kind:load to:0x020c5f40 add:0xdbea module:overlay(1)
from:0x020c39d0 kind:load to:0x020c3820 add:0x1400 module:overlay(1)
from:0x020c39dc kind:arm_call to:0x020c2ff0 module:overlay(1)
from:0x020c39e4 kind:load to:0x020c38e4 add:0x1400 module:overlay(1)
from:0x020c39e8 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c39ec kind:load to:0x020c395c add:0x1400 module:overlay(1)
from:0x020c39f0 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c39f4 kind:load to:0x020c33a0 add:0x1400 module:overlay(1)
from:0x020c39f8 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c39fc kind:load to:0x020c3418 add:0x1400 module:overlay(1)
from:0x020c3a00 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c3a04 kind:load to:0x020c366c add:0x1400 module:overlay(1)
from:0x020c3a08 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c3a0c kind:load to:0x020c36e4 add:0x1400 module:overlay(1)
from:0x020c3a10 kind:load to:0x020c5f40 add:0x1468 module:overlay(1)
from:0x020c3b2c kind:arm_call to:0x020c3adc module:overlay(1)
from:0x020c3b48 kind:arm_call to:0x020c2fb4 module:overlay(1)
from:0x020c3bb8 kind:arm_call to:0x020c3a90 module:overlay(1)
from:0x020c3bcc kind:arm_call to:0x020c3a90 module:overlay(1)
from:0x020c3c34 kind:arm_call to:0x020c3adc module:overlay(1)
from:0x020c3c50 kind:arm_call to:0x020c2fb4 module:overlay(1)
from:0x020c3cc0 kind:arm_call to:0x020c3a90 module:overlay(1)
from:0x020c3cd4 kind:arm_call to:0x020c3a90 module:overlay(1)
from:0x020c3d38 kind:arm_call to:0x020c3a1c module:overlay(1)
from:0x020c3d4c kind:arm_call to:0x020c3b00 module:overlay(1)
from:0x020c3d90 kind:arm_call to:0x020c3a1c module:overlay(1)
from:0x020c3da4 kind:arm_call to:0x020c3c08 module:overlay(1)
from:0x020c3dcc kind:arm_call to:0x020c2ff0 module:overlay(1)
from:0x020c3dd4 kind:load to:0x020c3a1c add:0x1400 module:overlay(1)
from:0x020c3dd8 kind:load to:0x020c5f40 add:0x1474 module:overlay(1)
from:0x020c3ddc kind:load to:0x020c3a90 add:0x1400 module:overlay(1)
from:0x020c3de0 kind:load to:0x020c5f40 add:0x144c module:overlay(1)
from:0x020c3de4 kind:load to:0x020c3adc add:0x1400 module:overlay(1)
from:0x020c3de8 kind:load to:0x020c5f40 add:0x1424 module:overlay(1)
from:0x020c3dec kind:load to:0x020c3b00 add:0x1400 module:overlay(1)
from:0x020c3df0 kind:load to:0x020c5f40 add:0x1508 module:overlay(1)
from:0x020c3df4 kind:load to:0x020c3c08 add:0x1400 module:overlay(1)
from:0x020c3df8 kind:load to:0x020c5f40 add:0x1508 module:overlay(1)
from:0x020c3dfc kind:load to:0x020c3d14 add:0x1400 module:overlay(1)
from:0x020c3e00 kind:load to:0x020c5f40 add:0x1458 module:overlay(1)
from:0x020c3e04 kind:load to:0x020c3d6c add:0x1400 module:overlay(1)
from:0x020c3e08 kind:load to:0x020c5f40 add:0x1458 module:overlay(1)
from:0x020c4076 kind:thumb_call to:0x020b8c58 module:overlay(1)
from:0x020c4084 kind:load to:0x020c4820 module:overlay(1)
from:0x020c4088 kind:load to:0x020c4824 module:overlay(1)
@@ -2371,6 +2537,11 @@ from:0x020c4150 kind:load to:0x020c4814 module:overlay(1)
from:0x020c4154 kind:load to:0x020c4069 module:overlay(1)
from:0x020c4158 kind:load to:0x020c408d module:overlay(1)
from:0x020c415c kind:load to:0x020c4145 module:overlay(1)
from:0x020c4160 kind:load to:0x020c2958 module:overlay(1)
from:0x020c4164 kind:load to:0x020c2f5c module:overlay(1)
from:0x020c4168 kind:load to:0x020c3218 module:overlay(1)
from:0x020c416c kind:load to:0x020c39d4 module:overlay(1)
from:0x020c4170 kind:load to:0x020c3dc4 module:overlay(1)
from:0x020c423c kind:load to:0x020b9c39 module:overlay(1)
from:0x020c4240 kind:load to:0x020b9cd1 module:overlay(1)
from:0x020c4244 kind:load to:0x020b9e0d module:overlay(1)
+57 -57
View File
@@ -442,55 +442,55 @@ _ZN17GameModeAdventureC1Ev kind:function(thumb,size=0x58) addr:0x020c2198
_Z19func_ov001_020c099cv kind:function(thumb,size=0x24) addr:0x020c21f0
_Z19func_ov001_020c09c0v kind:function(thumb,size=0x1c) addr:0x020c2214
_ZN20GameModeDownloadPlay19func_ov001_020c09dcEv kind:function(thumb,size=0x48) addr:0x020c2230
DetectFlashcart kind:function(arm,size=0xb8,unknown) addr:0x020c2278
DetectNotFlashcart kind:function(arm,size=0xb8,unknown) addr:0x020c2330
DetectEmulator kind:function(arm,size=0xb8,unknown) addr:0x020c23e8
DetectNotEmulator kind:function(arm,size=0xb8,unknown) addr:0x020c24a0
DetectDummy kind:function(arm,size=0x98,unknown) addr:0x020c2558
DetectNotDummy kind:function(arm,size=0x98,unknown) addr:0x020c25f0
DSProt_DetectFlashcart kind:function(arm,size=0x78,unknown) addr:0x020c2688
DSProt_DetectNotFlashcart kind:function(arm,size=0x78,unknown) addr:0x020c2700
DSProt_DetectEmulator kind:function(arm,size=0x78,unknown) addr:0x020c2778
DSProt_DetectNotEmulator kind:function(arm,size=0x78,unknown) addr:0x020c27f0
DSProt_DetectDummy kind:function(arm,size=0x78,unknown) addr:0x020c2868
DSProt_DetectNotDummy kind:function(arm,size=0x78,unknown) addr:0x020c28e0
NitroStaticInit kind:function(arm,size=0x4c,unknown) addr:0x020c2958 local
Integrity_MACOwner_IsBad kind:function(arm,size=0xd8,unknown) addr:0x020c29a4
Integrity_MACOwner_IsGood kind:function(arm,size=0x114,unknown) addr:0x020c2a7c
Integrity_ROMTest_IsBad kind:function(arm,size=0xd8,unknown) addr:0x020c2b90
Integrity_ROMTest_IsGood kind:function(arm,size=0x114,unknown) addr:0x020c2c68
RunEncrypted_Integrity_MACOwner_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c2d7c
RunEncrypted_Integrity_MACOwner_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c2df4
RunEncrypted_Integrity_ROMTest_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c2e6c
RunEncrypted_Integrity_ROMTest_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c2ee4
NitroStaticInit kind:function(arm,size=0x38,unknown) addr:0x020c2f5c local
clearDataAndInstructionCache kind:function(arm,size=0x20,unknown) addr:0x020c2f94
Encryptor_CategorizeInstruction kind:function(arm,size=0x3c,unknown) addr:0x020c2fb4
Encryptor_DecodeFunctionTable kind:function(arm,size=0x110,unknown) addr:0x020c2ff0
Encryptor_DecryptFunction kind:function(arm,size=0x88,unknown) addr:0x020c3100
Encryptor_EncryptFunction kind:function(arm,size=0x90,unknown) addr:0x020c3188
NitroStaticInit kind:function(arm,size=0x28,unknown) addr:0x020c3218 local
MACOwner_IsBad kind:function(arm,size=0xb0,unknown) addr:0x020c3240
MACOwner_IsGood kind:function(arm,size=0xb0,unknown) addr:0x020c32f0
RunEncrypted_MACOwner_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c33a0
RunEncrypted_MACOwner_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c3418
ROMUtil_Read kind:function(arm,size=0x184,unknown) addr:0x020c3490
ROMUtil_CRC32 kind:function(arm,size=0x58,unknown) addr:0x020c3614
RunEncrypted_ROMUtil_Read kind:function(arm,size=0x78,unknown) addr:0x020c366c
RunEncrypted_ROMUtil_CRC32 kind:function(arm,size=0x78,unknown) addr:0x020c36e4
ROMTest_IsBad kind:function(arm,size=0xc4,unknown) addr:0x020c375c
ROMTest_IsGood kind:function(arm,size=0xc4,unknown) addr:0x020c3820
RunEncrypted_ROMTest_IsBad kind:function(arm,size=0x78,unknown) addr:0x020c38e4
RunEncrypted_ROMTest_IsGood kind:function(arm,size=0x78,unknown) addr:0x020c395c
NitroStaticInit kind:function(arm,size=0x48,unknown) addr:0x020c39d4 local
RC4_Init kind:function(arm,size=0x74,unknown) addr:0x020c3a1c
RC4_Byte kind:function(arm,size=0x4c,unknown) addr:0x020c3a90
RC4_InitSBox kind:function(arm,size=0x24,unknown) addr:0x020c3adc
RC4_EncryptInstructions kind:function(arm,size=0x108,unknown) addr:0x020c3b00
RC4_DecryptInstructions kind:function(arm,size=0x10c,unknown) addr:0x020c3c08
RC4_InitAndEncryptInstructions kind:function(arm,size=0x58,unknown) addr:0x020c3d14
RC4_InitAndDecryptInstructions kind:function(arm,size=0x58,unknown) addr:0x020c3d6c
NitroStaticInit kind:function(arm,size=0x50,unknown) addr:0x020c3dc4 local
DetectFlashcart kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c2278
DetectNotFlashcart kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c2330
DetectEmulator kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c23e8
DetectNotEmulator kind:function(arm,size=0xb8,dsprot=(0xac,0x2e8b)) addr:0x020c24a0
DetectDummy kind:function(arm,size=0x98,dsprot=(0x94,0x2e8b)) addr:0x020c2558
DetectNotDummy kind:function(arm,size=0x98,dsprot=(0x94,0x2e8b)) addr:0x020c25f0
DSProt_DetectFlashcart kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2688
DSProt_DetectNotFlashcart kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2700
DSProt_DetectEmulator kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2778
DSProt_DetectNotEmulator kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c27f0
DSProt_DetectDummy kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2868
DSProt_DetectNotDummy kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c28e0
NitroStaticInit kind:function(arm,size=0x4c) addr:0x020c2958 local
Integrity_MACOwner_IsBad kind:function(arm,size=0xd8,dsprot=(0xd4,0xbe28)) addr:0x020c29a4
Integrity_MACOwner_IsGood kind:function(arm,size=0x114,dsprot=(0x110,0xbe28)) addr:0x020c2a7c
Integrity_ROMTest_IsBad kind:function(arm,size=0xd8,dsprot=(0xd4,0xbe28)) addr:0x020c2b90
Integrity_ROMTest_IsGood kind:function(arm,size=0x114,dsprot=(0x110,0xbe28)) addr:0x020c2c68
RunEncrypted_Integrity_MACOwner_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2d7c
RunEncrypted_Integrity_MACOwner_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2df4
RunEncrypted_Integrity_ROMTest_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2e6c
RunEncrypted_Integrity_ROMTest_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c2ee4
NitroStaticInit kind:function(arm,size=0x38) addr:0x020c2f5c local
clearDataAndInstructionCache kind:function(arm,size=0x20) addr:0x020c2f94 local
Encryptor_CategorizeInstruction kind:function(arm,size=0x3c) addr:0x020c2fb4
Encryptor_DecodeFunctionTable kind:function(arm,size=0x110) addr:0x020c2ff0
Encryptor_DecryptFunction kind:function(arm,size=0x88,dsprot=0x84) addr:0x020c3100
Encryptor_EncryptFunction kind:function(arm,size=0x90,dsprot=0x8c) addr:0x020c3188
NitroStaticInit kind:function(arm,size=0x28) addr:0x020c3218 local
MACOwner_IsBad kind:function(arm,size=0xb0,dsprot=(0xac,0xc7ea)) addr:0x020c3240
MACOwner_IsGood kind:function(arm,size=0xb0,dsprot=(0xac,0xc7ea)) addr:0x020c32f0
RunEncrypted_MACOwner_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c33a0
RunEncrypted_MACOwner_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c3418
ROMUtil_Read kind:function(arm,size=0x184,dsprot=(0x17c,0xc7ea)) addr:0x020c3490
ROMUtil_CRC32 kind:function(arm,size=0x58,dsprot=(0x54,0xc7ea)) addr:0x020c3614
RunEncrypted_ROMUtil_Read kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c366c
RunEncrypted_ROMUtil_CRC32 kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c36e4
ROMTest_IsBad kind:function(arm,size=0xc4,dsprot=(0xc4,0xc7ea)) addr:0x020c375c
ROMTest_IsGood kind:function(arm,size=0xc4,dsprot=(0xc4,0xc7ea)) addr:0x020c3820
RunEncrypted_ROMTest_IsBad kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c38e4
RunEncrypted_ROMTest_IsGood kind:function(arm,size=0x78,dsprot=0x68) addr:0x020c395c
NitroStaticInit kind:function(arm,size=0x48) addr:0x020c39d4 local
RC4_Init kind:function(arm,size=0x74,dsprot=0x74) addr:0x020c3a1c
RC4_Byte kind:function(arm,size=0x4c,dsprot=0x4c) addr:0x020c3a90
RC4_InitSBox kind:function(arm,size=0x24,dsprot=0x24) addr:0x020c3adc
RC4_EncryptInstructions kind:function(arm,size=0x108,dsprot=0x108) addr:0x020c3b00
RC4_DecryptInstructions kind:function(arm,size=0x10c,dsprot=0x108) addr:0x020c3c08
RC4_InitAndEncryptInstructions kind:function(arm,size=0x58,dsprot=0x58) addr:0x020c3d14
RC4_InitAndDecryptInstructions kind:function(arm,size=0x58,dsprot=0x58) addr:0x020c3d6c
NitroStaticInit kind:function(arm,size=0x50) addr:0x020c3dc4 local
data_ov001_020c25c0 kind:data(any) addr:0x020c3e14
data_ov001_020c25d4 kind:data(any) addr:0x020c3e28
data_ov001_020c25fc kind:data(any) addr:0x020c3e50
@@ -504,18 +504,19 @@ data_ov001_020c2750 kind:data(any) addr:0x020c3fa4 local
data_ov001_020c275e kind:data(any) addr:0x020c3fb2 local
data_ov001_020c276c kind:data(any) addr:0x020c3fc0
data_ov001_020c27a8 kind:data(any) addr:0x020c3ffc
bad_mac_addr kind:data(any) addr:0x020c4060
DSProt_Garbage kind:data(any) addr:0x020c4048
bad_mac_addr kind:data(any) addr:0x020c4060 local
__sinit_CourseList.cpp kind:function(thumb,size=0x24) addr:0x020c4068 local
__sinit_UnkStruct_027e0cd8_0C_001.cpp kind:function(thumb,size=0xb8) addr:0x020c408c
__sinit_code_020c099c.cpp kind:function(thumb,size=0x10) addr:0x020c4144 local
.p__sinit_CourseList.cpp kind:data(word) addr:0x020c4154 local
.p__sinit_UnkStruct_027e0cd8_0C_001.cpp kind:data(word) addr:0x020c4158
.p__sinit_code_020c099c.cpp kind:data(word) addr:0x020c415c local
.p__sinit_ov001_020c2958 kind:data(word) addr:0x020c4160 local
.p__sinit_ov001_020c2f5c kind:data(word) addr:0x020c4164 local
.p__sinit_ov001_020c3218 kind:data(word) addr:0x020c4168 local
.p__sinit_ov001_020c39d4 kind:data(word) addr:0x020c416c local
.p__sinit_ov001_020c3dc4 kind:data(word) addr:0x020c4170 local
NitroStaticInit_11 kind:data(word) addr:0x020c4160 local
NitroStaticInit_8 kind:data(word) addr:0x020c4164 local
NitroStaticInit_6 kind:data(word) addr:0x020c4168 local
NitroStaticInit_10 kind:data(word) addr:0x020c416c local
NitroStaticInit_11 kind:data(word) addr:0x020c4170 local
@433 kind:data(byte[22]) addr:0x020c4180 local
@450 kind:data(byte[22]) addr:0x020c4198 local
@3570 kind:data(byte[18]) addr:0x020c41b0 local
@@ -635,5 +636,4 @@ data_ov001_020c40f4 kind:bss addr:0x020c5934 local
data_ov001_020c46f4 kind:bss addr:0x020c5f34 local
data_ov001_020c46f8 kind:bss addr:0x020c5f38 local
data_ov001_020c46fc kind:bss addr:0x020c5f3c local
data_ov001_020c5f40 kind:bss addr:0x020c5f40
data_ov001_020c5f41 kind:bss addr:0x020c5f41
DSProt_BSS kind:bss addr:0x020c5f40
+3 -3
View File
@@ -31,7 +31,7 @@ _ZN25UnkSystem1_ov019_Derived18vfunc_1CEjii kind:function(arm,size=0x1ac) addr:0
_ZN25UnkSystem1_ov019_Derived18vfunc_20Eiii kind:function(arm,size=0x110) addr:0x020c6c50
_ZN25UnkSystem1_ov019_Derived119func_ov019_020c5540Ebs kind:function(arm,size=0x50) addr:0x020c6d60
_ZN25UnkSystem1_ov019_Derived119func_ov019_020c5590Eiii kind:function(arm,size=0x84) addr:0x020c6db0
_ZN25UnkSystem1_ov019_Derived1D0Ev kind:function(arm,size=0x1c) addr:0x020c6e34
_ZN25UnkSystem1_ov019_Derived1D0Ev kind:function(arm,size=0x1c) addr:0x020c6e34 weak
_ZN14FileSelectMainC1Ev kind:function(arm,size=0x9a0) addr:0x020c6e50
_ZN25UnkSystem1_ov019_Derived3D1Ev kind:function(arm,size=0x14) addr:0x020c77f0
_ZN14FileSelectMainD1Ev kind:function(arm,size=0x1f8) addr:0x020c7804
@@ -237,12 +237,12 @@ _ZN21FileSelectManager_16419func_ov019_020d02f4Ev kind:function(arm,size=0x28) a
_ZN25UnkSystem1_ov019_Derived2C1Ev kind:function(arm,size=0x40) addr:0x020d1b3c
_ZN25UnkSystem1_ov019_Derived28vfunc_08Ei kind:function(arm,size=0x48) addr:0x020d1b7c
_ZN25UnkSystem1_ov019_Derived28vfunc_1CEjii kind:function(arm,size=0x1f0) addr:0x020d1bc4
_ZN25UnkSystem1_ov019_Derived2D0Ev kind:function(arm,size=0x1c) addr:0x020d1db4
_ZN25UnkSystem1_ov019_Derived2D0Ev kind:function(arm,size=0x1c) addr:0x020d1db4 weak
_ZN25UnkSystem1_ov019_Derived3C2Ev kind:function(arm,size=0x4c) addr:0x020d1dd0
_ZN25UnkSystem1_ov019_Derived38vfunc_04Ev kind:function(arm,size=0x14) addr:0x020d1e1c
_ZN25UnkSystem1_ov019_Derived38vfunc_08Ei kind:function(arm,size=0x48) addr:0x020d1e30
_ZN25UnkSystem1_ov019_Derived38vfunc_1CEjii kind:function(arm,size=0x1f8) addr:0x020d1e78
_ZN25UnkSystem1_ov019_Derived3D0Ev kind:function(arm,size=0x1c) addr:0x020d2070
_ZN25UnkSystem1_ov019_Derived3D0Ev kind:function(arm,size=0x1c) addr:0x020d2070 weak
_ZN11SaveManager19func_ov019_020d086cEt kind:function(arm,size=0x90) addr:0x020d208c
_ZN11SaveManager19func_ov019_020d08fcEiM8SaveFileFvvE kind:function(arm,size=0x68) addr:0x020d211c
_ZN11SaveManager19func_ov019_020d0964Ev kind:function(arm,size=0x78) addr:0x020d2184
+3
View File
@@ -9259,6 +9259,9 @@ from:0x0213075c kind:load to:0x02143abc module:overlay(26)
from:0x02130760 kind:load to:0x0213ad94 module:overlay(26)
from:0x02130764 kind:load to:0x02143b60 module:overlay(26)
from:0x02130770 kind:arm_call to:0x020990b4 module:overlay(0)
from:0x02130784 kind:arm_branch to:0x0212df00 module:overlay(26)
from:0x02130794 kind:arm_branch to:0x0212e79c module:overlay(26)
from:0x021307a4 kind:arm_branch to:0x0212de70 module:overlay(26)
from:0x021307b4 kind:arm_call to:0x02131e38 module:overlay(26)
from:0x02130864 kind:arm_call to:0x02131e48 module:overlay(26)
from:0x0213088c kind:arm_call to:0x021307ac module:overlay(26)
+1 -1
View File
@@ -501,7 +501,7 @@ data_ov030_02154074 kind:data(any) addr:0x02154074 ambiguous
data_ov030_02154094 kind:data(any) addr:0x02154094 ambiguous
_ZTV19data_ov030_02154094 kind:data(any) addr:0x02154094
data_ov030_02154100 kind:data(any) addr:0x02154100
_ZTV19data_ov030_02154100 kind:data(any) addr:0x02154100 ambiguous
_ZTV19data_ov030_02154100 kind:data(any) addr:0x02154100
_ZGVN15ProfileInstanceI23MapObjectProfileUnkETTVE8sProfileE kind:bss addr:0x02154120
@30680 kind:bss addr:0x02154124
_ZN15ProfileInstanceI23MapObjectProfileUnkETTVE8sProfileE kind:bss addr:0x02154130
+23
View File
@@ -1269,6 +1269,8 @@ from:0x020e5ef8 kind:load to:0x027e09b8 module:dtcm
from:0x020e5efc kind:load to:0x027e0d34 module:dtcm
from:0x020e5f3c kind:arm_call to:0x0209a230 module:overlay(0)
from:0x020e5f64 kind:arm_call to:0x02098ecc module:overlay(0)
from:0x020e5f78 kind:arm_branch to:0x020e5cdc module:overlay(31)
from:0x020e5f88 kind:arm_branch to:0x020e5c98 module:overlay(31)
from:0x020e5f98 kind:load to:0x02118298 module:overlay(31)
from:0x020e5fac kind:arm_call to:0x02011f3c module:main
from:0x020e5fb8 kind:arm_call to:0x020e600c module:overlay(31)
@@ -3822,6 +3824,12 @@ from:0x020fccc4 kind:arm_call to:0x02011ff4 module:main
from:0x020fccdc kind:arm_call to:0x02062c50 module:overlay(0)
from:0x020fcce4 kind:arm_call to:0x02099c30 module:overlay(0)
from:0x020fccf8 kind:arm_call to:0x02098ecc module:overlay(0)
from:0x020fcd0c kind:arm_branch to:0x020fcca8 module:overlay(31)
from:0x020fcd1c kind:arm_branch to:0x020fc860 module:overlay(31)
from:0x020fcd2c kind:arm_branch to:0x020fc800 module:overlay(31)
from:0x020fcd3c kind:arm_branch to:0x020fc80c module:overlay(31)
from:0x020fcd4c kind:arm_branch to:0x020fc7e0 module:overlay(31)
from:0x020fcd5c kind:arm_branch to:0x020fccd0 module:overlay(31)
from:0x020fcd6c kind:load to:0x02118d98 module:overlay(31)
from:0x020fcd80 kind:arm_call to:0x02011f3c module:main
from:0x020fcd8c kind:arm_call to:0x020fcdbc module:overlay(31)
@@ -3973,6 +3981,8 @@ from:0x020feaec kind:arm_call to:0x0209e870 module:overlay(0)
from:0x020feb04 kind:arm_call to:0x020a1aac module:overlay(0)
from:0x020feb0c kind:arm_call to:0x0209e870 module:overlay(0)
from:0x020feb14 kind:arm_call to:0x02011ff4 module:main
from:0x020feb28 kind:arm_branch to:0x020fe9c0 module:overlay(31)
from:0x020feb38 kind:arm_branch to:0x020fe9bc module:overlay(31)
from:0x020feb48 kind:load to:0x0211902c module:overlay(31)
from:0x020feb5c kind:arm_call to:0x02011f3c module:main
from:0x020feb68 kind:arm_call to:0x020febc0 module:overlay(31)
@@ -4161,6 +4171,8 @@ from:0x0210018c kind:arm_call to:0x020a1aac module:overlay(0)
from:0x02100194 kind:arm_call to:0x0209e870 module:overlay(0)
from:0x0210019c kind:arm_call to:0x02011ff4 module:main
from:0x021001b0 kind:arm_call to:0x0209e19c module:overlay(0)
from:0x021001c4 kind:arm_branch to:0x020feeac module:overlay(31)
from:0x021001d4 kind:arm_branch to:0x020feea0 module:overlay(31)
from:0x021001e4 kind:load to:0x02119110 module:overlay(31)
from:0x021001f8 kind:arm_call to:0x02011f3c module:main
from:0x02100204 kind:arm_call to:0x02100260 module:overlay(31)
@@ -4946,6 +4958,9 @@ from:0x02106c2c kind:arm_call to:0x02080360 module:overlay(0)
from:0x02106c34 kind:arm_call to:0x02104eb4 module:overlay(31)
from:0x02106c3c kind:arm_call to:0x02011ff4 module:main
from:0x02106c50 kind:arm_call to:0x0209e19c module:overlay(0)
from:0x02106c64 kind:arm_branch to:0x0210678c module:overlay(31)
from:0x02106c74 kind:arm_branch to:0x02106578 module:overlay(31)
from:0x02106c84 kind:arm_branch to:0x02106554 module:overlay(31)
from:0x02106c94 kind:load to:0x02119cdc module:overlay(31)
from:0x02106ca8 kind:arm_call to:0x02011f3c module:main
from:0x02106cb4 kind:arm_call to:0x02106d48 module:overlay(31)
@@ -5708,6 +5723,11 @@ from:0x0210d79c kind:arm_call_thumb to:0x0205910c module:overlay(0)
from:0x0210d7a4 kind:arm_call to:0x02062c50 module:overlay(0)
from:0x0210d7ac kind:arm_call to:0x0209e870 module:overlay(0)
from:0x0210d7c0 kind:arm_call to:0x0209e19c module:overlay(0)
from:0x0210d7d4 kind:arm_branch to:0x0210d760 module:overlay(31)
from:0x0210d7e4 kind:arm_branch to:0x0210d688 module:overlay(31)
from:0x0210d7f4 kind:arm_branch to:0x0210d610 module:overlay(31)
from:0x0210d804 kind:arm_branch to:0x0210d790 module:overlay(31)
from:0x0210d814 kind:arm_branch to:0x0210d728 module:overlay(31)
from:0x0210d824 kind:load to:0x0211ab48 module:overlay(31)
from:0x0210d838 kind:arm_call to:0x02011f3c module:main
from:0x0210d844 kind:arm_call to:0x0210d8ec module:overlay(31)
@@ -5878,6 +5898,9 @@ from:0x0210ebf4 kind:arm_call_thumb to:0x0205910c module:overlay(0)
from:0x0210ebfc kind:arm_call to:0x0209e870 module:overlay(0)
from:0x0210ec04 kind:arm_call to:0x02011ff4 module:main
from:0x0210ec18 kind:arm_call to:0x0209e19c module:overlay(0)
from:0x0210ec2c kind:arm_branch to:0x0210e858 module:overlay(31)
from:0x0210ec3c kind:arm_branch to:0x0210e8e4 module:overlay(31)
from:0x0210ec4c kind:arm_branch to:0x0210e82c module:overlay(31)
from:0x0210ec5c kind:load to:0x0211ac4c module:overlay(31)
from:0x0210ec70 kind:arm_call to:0x02011f3c module:main
from:0x0210ec7c kind:arm_call to:0x0210f040 module:overlay(31)
+6
View File
@@ -297,6 +297,12 @@ from:0x0211d490 kind:arm_call to:0x0205c7ac module:overlay(0)
from:0x0211d49c kind:load to:0x0212349c module:overlay(33)
from:0x0211d4b0 kind:arm_call to:0x0211ade4 module:overlay(33)
from:0x0211d4b8 kind:arm_call to:0x0209e19c module:overlay(0)
from:0x0211d4cc kind:arm_branch to:0x0211bee4 module:overlay(33)
from:0x0211d4dc kind:arm_branch to:0x0211d220 module:overlay(33)
from:0x0211d4ec kind:arm_branch to:0x0211d1dc module:overlay(33)
from:0x0211d4fc kind:arm_branch to:0x0211d16c module:overlay(33)
from:0x0211d50c kind:arm_branch to:0x0211d1f8 module:overlay(33)
from:0x0211d51c kind:arm_branch to:0x0211be84 module:overlay(33)
from:0x0211d52c kind:load to:0x02124430 module:overlay(33)
from:0x0211d540 kind:arm_call to:0x02011f3c module:main
from:0x0211d54c kind:arm_call to:0x0211d600 module:overlay(33)
+1 -1
View File
@@ -246,7 +246,7 @@ __sinit_MapObjectUnkGELG.cpp kind:function(arm,size=0x84) addr:0x02124504
.p__sinit_MapObjectUnkWPHL.cpp kind:data(word) addr:0x021245a0
.p__sinit_MapObjectUnkGELG.cpp kind:data(word) addr:0x021245a4
data_ov034_021245c8 kind:data(any) addr:0x021245c8
_ZTV19data_ov034_021245c8 kind:data(any) addr:0x021245c8 ambiguous
_ZTV19data_ov034_021245c8 kind:data(any) addr:0x021245c8
_ZTV19data_ov034_021245e4 kind:data(any) addr:0x021245e4
_ZTV19data_ov034_02124648 kind:data(any) addr:0x02124648
data_ov034_0212466c kind:data(any) addr:0x0212466c
+42
View File
@@ -291,6 +291,16 @@ from:0x0211cc4c kind:arm_call to:0x020e8e20 module:overlay(31)
from:0x0211cc54 kind:arm_call to:0x02011ff4 module:main
from:0x0211cc6c kind:arm_call_thumb to:0x0209ba14 module:overlay(0)
from:0x0211cc74 kind:arm_call to:0x020e8e20 module:overlay(31)
from:0x0211cc88 kind:arm_branch to:0x0211cb74 module:overlay(36)
from:0x0211cc98 kind:arm_branch to:0x0211c8d4 module:overlay(36)
from:0x0211cca8 kind:arm_branch to:0x0211c82c module:overlay(36)
from:0x0211ccb8 kind:arm_branch to:0x0211c828 module:overlay(36)
from:0x0211ccc8 kind:arm_branch to:0x0211c824 module:overlay(36)
from:0x0211ccd8 kind:arm_branch to:0x0211c80c module:overlay(36)
from:0x0211cce8 kind:arm_branch to:0x0211c6e0 module:overlay(36)
from:0x0211ccf8 kind:arm_branch to:0x0211c6dc module:overlay(36)
from:0x0211cd08 kind:arm_branch to:0x0211c6d8 module:overlay(36)
from:0x0211cd18 kind:arm_branch to:0x0211cba4 module:overlay(36)
from:0x0211cd28 kind:load to:0x02124514 module:overlay(36)
from:0x0211cd3c kind:arm_call to:0x02011f3c module:main
from:0x0211cd48 kind:arm_call to:0x0211cdac module:overlay(36)
@@ -318,6 +328,8 @@ from:0x0211cf9c kind:arm_call to:0x02062c50 module:overlay(0)
from:0x0211cfa4 kind:arm_call_thumb to:0x0209ba14 module:overlay(0)
from:0x0211cfac kind:arm_call to:0x020e8e20 module:overlay(31)
from:0x0211cfc0 kind:arm_call to:0x020990b4 module:overlay(0)
from:0x0211cfd4 kind:arm_branch to:0x0211cf50 module:overlay(36)
from:0x0211cfe4 kind:arm_branch to:0x0211cf88 module:overlay(36)
from:0x0211cff4 kind:load to:0x021245fc module:overlay(36)
from:0x0211d008 kind:arm_call to:0x02011f3c module:main
from:0x0211d014 kind:arm_call to:0x0211d074 module:overlay(36)
@@ -345,6 +357,8 @@ from:0x0211d274 kind:arm_call to:0x02062c50 module:overlay(0)
from:0x0211d27c kind:arm_call_thumb to:0x0209ba14 module:overlay(0)
from:0x0211d284 kind:arm_call to:0x020e8e20 module:overlay(31)
from:0x0211d298 kind:arm_call to:0x020990b4 module:overlay(0)
from:0x0211d2ac kind:arm_branch to:0x0211d228 module:overlay(36)
from:0x0211d2bc kind:arm_branch to:0x0211d260 module:overlay(36)
from:0x0211d2cc kind:load to:0x021246e4 module:overlay(36)
from:0x0211d2e0 kind:arm_call to:0x02011f3c module:main
from:0x0211d2ec kind:arm_call to:0x0211d350 module:overlay(36)
@@ -372,6 +386,8 @@ from:0x0211d560 kind:arm_call to:0x02062c50 module:overlay(0)
from:0x0211d568 kind:arm_call_thumb to:0x0209ba14 module:overlay(0)
from:0x0211d570 kind:arm_call to:0x020e8e20 module:overlay(31)
from:0x0211d584 kind:arm_call to:0x020990b4 module:overlay(0)
from:0x0211d598 kind:arm_branch to:0x0211d514 module:overlay(36)
from:0x0211d5a8 kind:arm_branch to:0x0211d54c module:overlay(36)
from:0x0211d5b8 kind:load to:0x021247cc module:overlay(36)
from:0x0211d5cc kind:arm_call to:0x02011f3c module:main
from:0x0211d5d8 kind:arm_call to:0x0211d63c module:overlay(36)
@@ -397,6 +413,8 @@ from:0x0211d828 kind:arm_call to:0x02062c50 module:overlay(0)
from:0x0211d830 kind:arm_call_thumb to:0x0209ba14 module:overlay(0)
from:0x0211d838 kind:arm_call to:0x020e8e20 module:overlay(31)
from:0x0211d84c kind:arm_call to:0x020990b4 module:overlay(0)
from:0x0211d860 kind:arm_branch to:0x0211d7dc module:overlay(36)
from:0x0211d870 kind:arm_branch to:0x0211d814 module:overlay(36)
from:0x0211d880 kind:load to:0x021248b4 module:overlay(36)
from:0x0211d894 kind:arm_call to:0x02011f3c module:main
from:0x0211d8a0 kind:arm_call to:0x0211d908 module:overlay(36)
@@ -424,6 +442,8 @@ from:0x0211db34 kind:arm_call to:0x02062c50 module:overlay(0)
from:0x0211db3c kind:arm_call_thumb to:0x0209ba14 module:overlay(0)
from:0x0211db44 kind:arm_call to:0x020e8e20 module:overlay(31)
from:0x0211db58 kind:arm_call to:0x020990b4 module:overlay(0)
from:0x0211db6c kind:arm_branch to:0x0211dae8 module:overlay(36)
from:0x0211db7c kind:arm_branch to:0x0211db20 module:overlay(36)
from:0x0211db8c kind:load to:0x0212499c module:overlay(36)
from:0x0211dba0 kind:arm_call to:0x02011f3c module:main
from:0x0211dbac kind:arm_call to:0x0211dc70 module:overlay(36)
@@ -463,6 +483,8 @@ from:0x0211def8 kind:arm_call to:0x02062c50 module:overlay(0)
from:0x0211df00 kind:arm_call_thumb to:0x0209ba14 module:overlay(0)
from:0x0211df08 kind:arm_call to:0x020e8e20 module:overlay(31)
from:0x0211df1c kind:arm_call to:0x020990b4 module:overlay(0)
from:0x0211df30 kind:arm_branch to:0x0211deac module:overlay(36)
from:0x0211df40 kind:arm_branch to:0x0211dee4 module:overlay(36)
from:0x0211df50 kind:load to:0x02124a84 module:overlay(36)
from:0x0211df64 kind:arm_call to:0x02011f3c module:main
from:0x0211df70 kind:arm_call to:0x0211e3e0 module:overlay(36)
@@ -614,6 +636,16 @@ from:0x0211f4f0 kind:arm_call to:0x020a9f68 module:overlay(0)
from:0x0211f4f8 kind:load to:0x027e0ce0 module:dtcm
from:0x0211f4fc kind:load to:0x027e09b8 module:dtcm
from:0x0211f548 kind:arm_call to:0x020990b4 module:overlay(0)
from:0x0211f55c kind:arm_branch to:0x0211e538 module:overlay(36)
from:0x0211f56c kind:arm_branch to:0x0211e738 module:overlay(36)
from:0x0211f57c kind:arm_branch to:0x0211e728 module:overlay(36)
from:0x0211f58c kind:arm_branch to:0x0211e724 module:overlay(36)
from:0x0211f59c kind:arm_branch to:0x0211e720 module:overlay(36)
from:0x0211f5ac kind:arm_branch to:0x0211e71c module:overlay(36)
from:0x0211f5bc kind:arm_branch to:0x0211e718 module:overlay(36)
from:0x0211f5cc kind:arm_branch to:0x0211e714 module:overlay(36)
from:0x0211f5dc kind:arm_branch to:0x0211e710 module:overlay(36)
from:0x0211f5ec kind:arm_branch to:0x0211e4f8 module:overlay(36)
from:0x0211f5fc kind:load to:0x02124b78 module:overlay(36)
from:0x0211f610 kind:arm_call to:0x02011f3c module:main
from:0x0211f61c kind:arm_call to:0x0211f64c module:overlay(36)
@@ -672,6 +704,16 @@ from:0x0211fafc kind:arm_call to:0x0200f37c module:main
from:0x0211fb04 kind:arm_call to:0x0200bed8 module:main
from:0x0211fb0c kind:arm_call_thumb to:0x0201568c module:main
from:0x0211fb20 kind:arm_call to:0x02098ecc module:overlay(0)
from:0x0211fb34 kind:arm_branch to:0x0211f894 module:overlay(36)
from:0x0211fb44 kind:arm_branch to:0x0211faac module:overlay(36)
from:0x0211fb54 kind:arm_branch to:0x0211fa9c module:overlay(36)
from:0x0211fb64 kind:arm_branch to:0x0211fa98 module:overlay(36)
from:0x0211fb74 kind:arm_branch to:0x0211fa94 module:overlay(36)
from:0x0211fb84 kind:arm_branch to:0x0211fa90 module:overlay(36)
from:0x0211fb94 kind:arm_branch to:0x0211fa8c module:overlay(36)
from:0x0211fba4 kind:arm_branch to:0x0211fa88 module:overlay(36)
from:0x0211fbb4 kind:arm_branch to:0x0211fa84 module:overlay(36)
from:0x0211fbc4 kind:arm_branch to:0x0211f864 module:overlay(36)
from:0x0211fbd4 kind:load to:0x02124bc4 module:overlay(36)
from:0x0211fbe8 kind:arm_call to:0x02011f3c module:main
from:0x0211fbf4 kind:arm_call to:0x0211fc24 module:overlay(36)
+1 -1
View File
@@ -218,7 +218,7 @@ data_ov038_02122d2c kind:data(any) addr:0x02122d2c
_ZTV19data_ov038_02122e0c kind:data(any) addr:0x02122e0c
data_ov038_02122e38 kind:data(any) addr:0x02122e38
_ZTV19data_ov038_02122e58 kind:data(any) addr:0x02122e58
_ZTV19data_ov038_02122e60 kind:data(any) addr:0x02122e60 ambiguous
_ZTV19data_ov038_02122e60 kind:data(any) addr:0x02122e60
data_ov038_02122ed8 kind:data(any) addr:0x02122ed8
data_ov038_02122ef4 kind:data(any) addr:0x02122ef4
data_ov038_02122f10 kind:data(any) addr:0x02122f10
+2
View File
@@ -481,6 +481,8 @@ from:0x02135e6c kind:arm_call to:0x02135e34 module:overlay(49)
from:0x02135e74 kind:arm_call to:0x02099c30 module:overlay(0)
from:0x02135e7c kind:arm_call to:0x02011ff4 module:main
from:0x02135e90 kind:arm_call to:0x02098ecc module:overlay(0)
from:0x02135ea4 kind:arm_branch to:0x02135d40 module:overlay(49)
from:0x02135eb4 kind:arm_branch to:0x02135c5c module:overlay(49)
from:0x02135ed8 kind:load to:0x027e09b8 module:dtcm
from:0x02135ef8 kind:load to:0x027e09b8 module:dtcm
from:0x02135f18 kind:load to:0x027e09b8 module:dtcm
+10
View File
@@ -246,6 +246,16 @@ from:0x0213cda4 kind:arm_call to:0x02079b3c module:overlay(0)
from:0x0213cdb0 kind:load to:0x027e09bc module:dtcm
from:0x0213cdb8 kind:load to:0x027e09b8 module:dtcm
from:0x0213cdc8 kind:arm_call to:0x02098ecc module:overlay(0)
from:0x0213cddc kind:arm_branch to:0x0213ca34 module:overlay(56)
from:0x0213cdec kind:arm_branch to:0x0213cdbc module:overlay(56)
from:0x0213cdfc kind:arm_branch to:0x0213ccd0 module:overlay(56)
from:0x0213ce0c kind:arm_branch to:0x0213cccc module:overlay(56)
from:0x0213ce1c kind:arm_branch to:0x0213ccc8 module:overlay(56)
from:0x0213ce2c kind:arm_branch to:0x0213ccc4 module:overlay(56)
from:0x0213ce3c kind:arm_branch to:0x0213ccc0 module:overlay(56)
from:0x0213ce4c kind:arm_branch to:0x0213ccbc module:overlay(56)
from:0x0213ce5c kind:arm_branch to:0x0213cc6c module:overlay(56)
from:0x0213ce6c kind:arm_branch to:0x0213c9dc module:overlay(56)
from:0x0213cea0 kind:arm_call to:0x020d5740 module:overlay(24)
from:0x0213cec4 kind:load to:0x027e0ce0 module:dtcm
from:0x0213cee8 kind:arm_call to:0x0213df94 module:overlay(56)
+6
View File
@@ -419,6 +419,8 @@ from:0x0214455c kind:arm_call to:0x02144524 module:overlay(58)
from:0x02144564 kind:arm_call to:0x02099c30 module:overlay(0)
from:0x0214456c kind:arm_call to:0x02011ff4 module:main
from:0x02144580 kind:arm_call to:0x02098ecc module:overlay(0)
from:0x02144594 kind:arm_branch to:0x021444a8 module:overlay(58)
from:0x021445a4 kind:arm_branch to:0x0214444c module:overlay(58)
from:0x021445b4 kind:load to:0x02157d80 module:overlay(58)
from:0x021445c8 kind:arm_call to:0x02011f3c module:main
from:0x021445d4 kind:arm_call to:0x0214460c module:overlay(58)
@@ -1254,6 +1256,8 @@ from:0x0214c7a8 kind:load to:0x020da050 module:overlay(24)
from:0x0214c7b8 kind:load to:0x027e0d48 module:dtcm
from:0x0214c7cc kind:load to:0x027e0d48 module:dtcm
from:0x0214c7d8 kind:arm_call to:0x02098ecc module:overlay(0)
from:0x0214c7ec kind:arm_branch to:0x0214c778 module:overlay(58)
from:0x0214c7fc kind:arm_branch to:0x0214c748 module:overlay(58)
from:0x0214c80c kind:load to:0x02158e64 module:overlay(58)
from:0x0214c820 kind:arm_call to:0x02011f3c module:main
from:0x0214c82c kind:arm_call to:0x0214c938 module:overlay(58)
@@ -1562,6 +1566,8 @@ from:0x0214f310 kind:arm_call to:0x0214f2d8 module:overlay(58)
from:0x0214f318 kind:arm_call to:0x02099c30 module:overlay(0)
from:0x0214f320 kind:arm_call to:0x02011ff4 module:main
from:0x0214f334 kind:arm_call to:0x02098ecc module:overlay(0)
from:0x0214f348 kind:arm_branch to:0x0214f19c module:overlay(58)
from:0x0214f358 kind:arm_branch to:0x0214f184 module:overlay(58)
from:0x0214f368 kind:load to:0x02158f98 module:overlay(58)
from:0x0214f37c kind:arm_call to:0x02011f3c module:main
from:0x0214f388 kind:arm_call to:0x0214f3b8 module:overlay(58)
+1 -1
View File
@@ -389,7 +389,7 @@ __sinit_MapObjectUnkEXCT.cpp kind:function(arm,size=0x50) addr:0x021630dc
_ZTV19data_ov060_02163180 kind:data(any) addr:0x02163180
_ZTV19data_ov060_021631a4 kind:data(any) addr:0x021631a4
data_ov060_021631d0 kind:data(any) addr:0x021631d0
_ZTV19data_ov060_021631d0 kind:data(any) addr:0x021631d0 ambiguous
_ZTV19data_ov060_021631d0 kind:data(any) addr:0x021631d0
data_ov060_021631f4 kind:data(any) addr:0x021631f4
data_ov060_02163238 kind:data(any) addr:0x02163238
data_ov060_02163248 kind:data(any) addr:0x02163248 ambiguous
+7
View File
@@ -1176,6 +1176,13 @@ from:0x02162848 kind:arm_call_thumb to:0x02059454 module:overlay(0)
from:0x02162850 kind:arm_call to:0x02062c50 module:overlay(0)
from:0x02162858 kind:arm_call to:0x0209e870 module:overlay(0)
from:0x0216286c kind:arm_call to:0x0209e19c module:overlay(0)
from:0x02162880 kind:arm_branch to:0x021627dc module:overlay(63)
from:0x02162890 kind:arm_branch to:0x02162774 module:overlay(63)
from:0x021628a0 kind:arm_branch to:0x02162750 module:overlay(63)
from:0x021628b0 kind:arm_branch to:0x02162730 module:overlay(63)
from:0x021628c0 kind:arm_branch to:0x021626c0 module:overlay(63)
from:0x021628d0 kind:arm_branch to:0x02162698 module:overlay(63)
from:0x021628e0 kind:arm_branch to:0x02162824 module:overlay(63)
from:0x021628f0 kind:load to:0x02166528 module:overlay(63)
from:0x02162904 kind:arm_call to:0x02011f3c module:main
from:0x02162910 kind:arm_call to:0x021629e8 module:overlay(63)
+1 -1
View File
@@ -157,7 +157,7 @@ _ZTV19data_ov064_0215c434 kind:data(any) addr:0x0215c434
_ZTV19data_ov064_0215c458 kind:data(any) addr:0x0215c458
_ZTV19data_ov064_0215c468 kind:data(any) addr:0x0215c468 ambiguous
data_ov064_0215c4c0 kind:data(any) addr:0x0215c4c0
_ZTV19data_ov064_0215c4c0 kind:data(any) addr:0x0215c4c0 ambiguous
_ZTV19data_ov064_0215c4c0 kind:data(any) addr:0x0215c4c0
_ZTV19data_ov064_0215c4dc kind:data(any) addr:0x0215c4dc
_ZTV19data_ov064_0215c53c kind:data(any) addr:0x0215c53c
_ZTV19data_ov064_0215c560 kind:data(any) addr:0x0215c560
+6
View File
@@ -320,6 +320,12 @@ from:0x0215b928 kind:arm_call_thumb to:0x02059454 module:overlay(0)
from:0x0215b930 kind:arm_call to:0x02062c50 module:overlay(0)
from:0x0215b938 kind:arm_call to:0x0209e870 module:overlay(0)
from:0x0215b94c kind:arm_call to:0x0209e078 module:overlay(0)
from:0x0215b960 kind:arm_branch to:0x0215b8cc module:overlay(65)
from:0x0215b970 kind:arm_branch to:0x0215b880 module:overlay(65)
from:0x0215b980 kind:arm_branch to:0x0215b860 module:overlay(65)
from:0x0215b990 kind:arm_branch to:0x0215b818 module:overlay(65)
from:0x0215b9a0 kind:arm_branch to:0x0215b7f8 module:overlay(65)
from:0x0215b9b0 kind:arm_branch to:0x0215b90c module:overlay(65)
from:0x0215b9c0 kind:load to:0x0215d54c module:overlay(65)
from:0x0215b9d4 kind:arm_call to:0x02011f3c module:main
from:0x0215b9e0 kind:arm_call to:0x0215ba30 module:overlay(65)
+1 -1
View File
@@ -270,7 +270,7 @@ __sinit_MapObjectUnkDRVT.cpp kind:function(arm,size=0x50) addr:0x0215e7ac
.p__sinit_MapObjectUnkMTOR.cpp kind:data(word) addr:0x0215e824
.p__sinit_MapObjectUnkDRVT.cpp kind:data(word) addr:0x0215e828
data_ov067_0215e848 kind:data(any) addr:0x0215e848
_ZTV19data_ov067_0215e848 kind:data(any) addr:0x0215e848 ambiguous
_ZTV19data_ov067_0215e848 kind:data(any) addr:0x0215e848
data_ov067_0215e858 kind:data(any) addr:0x0215e858 ambiguous
_ZTV19data_ov067_0215e864 kind:data(any) addr:0x0215e864
_ZTV19data_ov067_0215e888 kind:data(any) addr:0x0215e888
+3
View File
@@ -610,6 +610,8 @@ from:0x02145d10 kind:arm_call to:0x02099c30 module:overlay(0)
from:0x02145d24 kind:arm_call to:0x02099c30 module:overlay(0)
from:0x02145d2c kind:arm_call to:0x02011ff4 module:main
from:0x02145d40 kind:arm_call to:0x02098ecc module:overlay(0)
from:0x02145d54 kind:arm_branch to:0x02145cb4 module:overlay(70)
from:0x02145d64 kind:arm_branch to:0x02145c34 module:overlay(70)
from:0x02145d78 kind:load to:0x0214fcac module:overlay(70)
from:0x02145d84 kind:load to:0x02151dd4 module:overlay(70)
from:0x02145d98 kind:arm_call to:0x02011f3c module:main
@@ -1475,6 +1477,7 @@ from:0x0214d198 kind:arm_call_thumb to:0x02059454 module:overlay(0)
from:0x0214d1a0 kind:arm_call to:0x0209e870 module:overlay(0)
from:0x0214d1a8 kind:arm_call to:0x02011ff4 module:main
from:0x0214d1bc kind:arm_call to:0x0209e19c module:overlay(0)
from:0x0214d1d0 kind:arm_branch to:0x0214c1a0 module:overlay(70)
from:0x0214d1e0 kind:load to:0x02152988 module:overlay(70)
from:0x0214d1f4 kind:arm_call to:0x02011f3c module:main
from:0x0214d200 kind:arm_call to:0x0214d24c module:overlay(70)
+4
View File
@@ -1784,6 +1784,10 @@ from:0x0216546c kind:arm_call to:0x02011ff4 module:main
from:0x02165484 kind:arm_call to:0x02062c50 module:overlay(0)
from:0x0216548c kind:arm_call to:0x02099c30 module:overlay(0)
from:0x021654a0 kind:arm_call to:0x020990b4 module:overlay(0)
from:0x021654b4 kind:arm_branch to:0x02165450 module:overlay(73)
from:0x021654c4 kind:arm_branch to:0x021653a8 module:overlay(73)
from:0x021654d4 kind:arm_branch to:0x02165388 module:overlay(73)
from:0x021654e4 kind:arm_branch to:0x02165478 module:overlay(73)
from:0x0216553c kind:arm_call to:0x01fff1a4 module:itcm
from:0x02165554 kind:arm_call to:0x01fff148 module:itcm
from:0x02165564 kind:arm_call to:0x01fff148 module:itcm
+2 -2
View File
@@ -270,7 +270,7 @@ data_ov077_0215d784 kind:data(any) addr:0x0215d784
data_ov077_0215d798 kind:data(any) addr:0x0215d798 ambiguous
_ZTV19data_ov077_0215d798 kind:data(any) addr:0x0215d798
_ZTV19data_ov077_0215d7bc kind:data(any) addr:0x0215d7bc
_ZTV19data_ov077_0215d7c4 kind:data(any) addr:0x0215d7c4 ambiguous
_ZTV19data_ov077_0215d7c4 kind:data(any) addr:0x0215d7c4
_ZTV19data_ov077_0215d7d0 kind:data(any) addr:0x0215d7d0 ambiguous
data_ov077_0215d820 kind:data(any) addr:0x0215d820
_ZTV19data_ov077_0215d834 kind:data(any) addr:0x0215d834
@@ -295,7 +295,7 @@ data_ov077_0215da0c kind:data(any) addr:0x0215da0c
data_ov077_0215da24 kind:data(any) addr:0x0215da24
data_ov077_0215da44 kind:data(any) addr:0x0215da44
_ZTV19data_ov077_0215da88 kind:data(any) addr:0x0215da88
_ZTV19data_ov077_0215da90 kind:data(any) addr:0x0215da90 ambiguous
_ZTV19data_ov077_0215da90 kind:data(any) addr:0x0215da90
data_ov077_0215dae0 kind:data(any) addr:0x0215dae0 ambiguous
data_ov077_0215dae8 kind:data(any) addr:0x0215dae8
data_ov077_0215daec kind:data(any) addr:0x0215daec
+16
View File
@@ -1346,6 +1346,8 @@ from:0x021732b0 kind:arm_call to:0x02068848 module:overlay(0)
from:0x021732b8 kind:arm_call_thumb to:0x02059454 module:overlay(0)
from:0x021732c0 kind:arm_call to:0x02062c50 module:overlay(0)
from:0x021732c8 kind:arm_call to:0x0209e870 module:overlay(0)
from:0x021732dc kind:arm_branch to:0x0217326c module:overlay(94)
from:0x021732ec kind:arm_branch to:0x021732a4 module:overlay(94)
from:0x021732fc kind:load to:0x0217b518 module:overlay(94)
from:0x02173310 kind:arm_call to:0x02011f3c module:main
from:0x0217331c kind:arm_call to:0x02173414 module:overlay(94)
@@ -1413,6 +1415,11 @@ from:0x02173a3c kind:arm_call to:0x02011ff4 module:main
from:0x02173a50 kind:arm_call to:0x0209e444 module:overlay(0)
from:0x02173a58 kind:arm_call to:0x02011ff4 module:main
from:0x02173a6c kind:arm_call to:0x0209e444 module:overlay(0)
from:0x02173a80 kind:arm_branch to:0x021739a0 module:overlay(94)
from:0x02173a90 kind:arm_branch to:0x02173954 module:overlay(94)
from:0x02173aa0 kind:arm_branch to:0x02173934 module:overlay(94)
from:0x02173ab0 kind:arm_branch to:0x021738c4 module:overlay(94)
from:0x02173ac0 kind:arm_branch to:0x021739e0 module:overlay(94)
from:0x02173ad0 kind:load to:0x0217b5b0 module:overlay(94)
from:0x02173ae4 kind:arm_call to:0x02011f3c module:main
from:0x02173af0 kind:arm_call to:0x02173b8c module:overlay(94)
@@ -1698,6 +1705,15 @@ from:0x02175b6c kind:load to:0x027e09bc module:dtcm
from:0x02175b70 kind:load to:0x02178450 module:overlay(94)
from:0x02175b7c kind:load to:0x0203feb0 module:main
from:0x02175b8c kind:arm_call to:0x0209e19c module:overlay(0)
from:0x02175ba0 kind:arm_branch to:0x02174db4 module:overlay(94)
from:0x02175bb0 kind:arm_branch to:0x02173f68 module:overlay(94)
from:0x02175bc0 kind:arm_branch to:0x02175834 module:overlay(94)
from:0x02175bd0 kind:arm_branch to:0x021757d4 module:overlay(94)
from:0x02175be0 kind:arm_branch to:0x021757e0 module:overlay(94)
from:0x02175bf0 kind:arm_branch to:0x021757bc module:overlay(94)
from:0x02175c00 kind:arm_branch to:0x02173ecc module:overlay(94)
from:0x02175c10 kind:arm_branch to:0x02174d04 module:overlay(94)
from:0x02175c20 kind:arm_branch to:0x02174cd8 module:overlay(94)
from:0x02175c30 kind:load to:0x0217b8d4 module:overlay(94)
from:0x02175c44 kind:arm_call to:0x02011f3c module:main
from:0x02175c50 kind:arm_call to:0x02175dc8 module:overlay(94)
+2
View File
@@ -137,6 +137,8 @@ from:0x0217cdf0 kind:arm_call to:0x02099c30 module:overlay(0)
from:0x0217ce04 kind:arm_call to:0x02099c30 module:overlay(0)
from:0x0217ce0c kind:arm_call to:0x02011ff4 module:main
from:0x0217ce20 kind:arm_call to:0x02098ecc module:overlay(0)
from:0x0217ce34 kind:arm_branch to:0x0217cbd0 module:overlay(96)
from:0x0217ce44 kind:arm_branch to:0x0217cb8c module:overlay(96)
from:0x0217ce54 kind:load to:0x021805a8 module:overlay(96)
from:0x0217ce68 kind:arm_call to:0x02011f3c module:main
from:0x0217ce74 kind:arm_call to:0x0217cea4 module:overlay(96)
+4 -2
View File
@@ -5738,10 +5738,12 @@ from:0x0203e830 kind:arm_call to:0x0203e800 module:main
from:0x0203e838 kind:arm_call to:0x02011ff4 module:main
from:0x0203e900 kind:arm_call to:0x0203cf94 module:main
from:0x0203e910 kind:arm_call to:0x0203cf94 module:main
from:0x0203e958 kind:load to:0x0203eb2c module:main
from:0x0203e95c kind:load to:0x0203ed54 module:main
from:0x0203e958 kind:link_time_const(__exception_table_start__)
from:0x0203e95c kind:link_time_const(__exception_table_end__)
from:0x0203e970 kind:arm_call to:0x0203cf94 module:main
from:0x0203e980 kind:arm_call to:0x0203cf94 module:main
from:0x0203e9fc kind:arm_branch to:0x0203e1ac module:main
from:0x0203ea48 kind:arm_branch to:0x0203e1ac module:main
from:0x0203ea94 kind:load to:0x0203a204 module:main
from:0x0203eb2c kind:load to:0x0203a0dc module:main
from:0x0203eb34 kind:load to:0x0203ea4c module:main
+71 -26
View File
@@ -1495,7 +1495,7 @@ OS_func_0032 kind:function(arm,size=0x18) addr:0x02027c30
OS_func_0033 kind:function(arm,size=0x18) addr:0x02027c48
OS_func_0034 kind:function(arm,size=0x8) addr:0x02027c60
OS_GetLockID kind:function(arm,size=0x58) addr:0x02027c68
func_02027cc0 kind:function(arm,size=0x30) addr:0x02027cc0
OS_func_0178 kind:function(arm,size=0x30) addr:0x02027cc0
sscanf kind:function(arm,size=0x28) addr:0x02027cf0
vsscanf kind:function(arm,size=0x18) addr:0x02027d18
snprintf kind:function(arm,size=0x28) addr:0x02027d30
@@ -1548,12 +1548,12 @@ func_02028abc kind:function(arm,size=0x24) addr:0x02028abc
DC_func_0001 kind:function(arm,size=0xc) addr:0x02028ae0
DC_func_0002 kind:function(arm,size=0x2c) addr:0x02028aec
DC_FlushAll kind:function(arm,size=0x34) addr:0x02028b18
DC_func_0003 kind:function(arm,size=0x1c) addr:0x02028b4c
DC_InvalidateRange kind:function(arm,size=0x1c) addr:0x02028b4c
DC_StoreRange kind:function(arm,size=0x1c) addr:0x02028b68
DC_func_0004 kind:function(arm,size=0x24) addr:0x02028b84
DC_FlushRange kind:function(arm,size=0x24) addr:0x02028b84
DC_func_0005 kind:function(arm,size=0xc) addr:0x02028ba8
IC_func_0001 kind:function(arm,size=0xc) addr:0x02028bb4
IC_func_0002 kind:function(arm,size=0x1c) addr:0x02028bc0
IC_InvalidateRange kind:function(arm,size=0x1c) addr:0x02028bc0
OS_func_0069 kind:function(arm,size=0x20) addr:0x02028bdc
OS_Init kind:function(thumb,size=0x44) addr:0x02028bfc
OS_func_0070 kind:function(thumb,size=0xb0) addr:0x02028c40
@@ -1603,8 +1603,8 @@ OS_func_0104 kind:function(arm,size=0x54) addr:0x020296b8
OS_func_0105 kind:function(arm,size=0x30) addr:0x0202970c
OS_func_0106 kind:function(arm,size=0x2c) addr:0x0202973c
OS_ResetSystem kind:function(arm,size=0xbc) addr:0x02029768
func_02029824 kind:function(arm,size=0x1c) addr:0x02029824
func_02029840 kind:function(arm,size=0x80) addr:0x02029840
OS_func_0176 kind:function(arm,size=0x1c) addr:0x02029824
OS_func_0177 kind:function(arm,size=0x80) addr:0x02029840
OS_func_0107 kind:function(arm,size=0x8) addr:0x020298c0
OS_func_0108 kind:function(arm,size=0x34) addr:0x020298c8
OS_func_0110 kind:function(arm,size=0x84) addr:0x020298fc
@@ -2079,10 +2079,10 @@ func_0203b348 kind:function(arm,size=0x68) addr:0x0203b348
_f2d kind:function(arm,size=0x84) addr:0x0203b3b0
func_0203b434 kind:function(arm,size=0x48) addr:0x0203b434
func_0203b47c kind:function(arm,size=0x48) addr:0x0203b47c
func_0203b4c4 kind:function(arm,size=0x10) addr:0x0203b4c4
func_0203b4d4 kind:function(arm,size=0x1b0) addr:0x0203b4d4
_ll_udiv kind:function(arm,size=0xc) addr:0x0203b684
_ull_mod kind:function(arm,size=0x3c) addr:0x0203b690
func_0203b4c4 kind:function(arm,size=0x1c0) addr:0x0203b4c4
.L_0203b4d4 kind:label(arm) addr:0x0203b4d4
_ll_udiv kind:function(arm,size=0x48) addr:0x0203b684
_ull_mod kind:label(arm) addr:0x0203b690
_ull_mul kind:function(arm,size=0x20) addr:0x0203b6cc
_s32_div_f kind:function(arm,size=0x20c) addr:0x0203b6ec
_u32_div_f kind:function(arm,size=0x1e4) addr:0x0203b8f8
@@ -2150,26 +2150,71 @@ _ZN13func_0203e814D1Ev kind:function(arm,size=0x14) addr:0x0203e814
_ZN13func_0203e828D0Ev kind:function(arm,size=0x1c) addr:0x0203e828
func_0203e844 kind:function(arm,size=0x5c) addr:0x0203e844
func_0203e8a0 kind:function(arm,size=0xa0) addr:0x0203e8a0
func_0203e940 kind:function(arm,size=0x20) addr:0x0203e940
__FindExceptionTable kind:function(arm,size=0x20) addr:0x0203e940
func_0203e960 kind:function(arm,size=0x28) addr:0x0203e960
func_0203e988 kind:function(arm,size=0x30) addr:0x0203e988
func_0203e9b8 kind:function(arm,size=0x48) addr:0x0203e9b8
func_0203ea00 kind:function(arm,size=0x4c) addr:0x0203ea00
data_0203ea4c kind:data(any) addr:0x0203ea4c
data_0203ea5c kind:data(any) addr:0x0203ea5c
data_0203ea70 kind:data(any) addr:0x0203ea70
data_0203ea80 kind:data(any) addr:0x0203ea80
data_0203ea98 kind:data(any) addr:0x0203ea98
data_0203eaa0 kind:data(any) addr:0x0203eaa0
data_0203eab0 kind:data(any) addr:0x0203eab0
data_0203eab8 kind:data(any) addr:0x0203eab8
data_0203eacc kind:data(any) addr:0x0203eacc
data_0203ead4 kind:data(any) addr:0x0203ead4
data_0203eadc kind:data(any) addr:0x0203eadc
data_0203eaf0 kind:data(any) addr:0x0203eaf0
data_0203eb04 kind:data(any) addr:0x0203eb04
data_0203eb18 kind:data(any) addr:0x0203eb18
data_0203eb2c kind:data(any) addr:0x0203eb2c
@ET@0203a0dc kind:data(any) addr:0x0203ea4c
@ET@0203a18c kind:data(any) addr:0x0203ea5c
@ET@0203a23c kind:data(any) addr:0x0203ea70
@ET@0203a2f0 kind:data(any) addr:0x0203ea80
@ET@0203d1a0 kind:data(any) addr:0x0203ea98
@ET@0203d45c kind:data(any) addr:0x0203eaa0
@ET@0203dc90 kind:data(any) addr:0x0203eab0
@ET@0203de64 kind:data(any) addr:0x0203eab8
@ET@0203df14 kind:data(any) addr:0x0203eacc
@ET@0203df74 kind:data(any) addr:0x0203ead4
@ET@0203e578 kind:data(any) addr:0x0203eadc
@ET@0203e5d4 kind:data(any) addr:0x0203eaf0
@ET@0203e690 kind:data(any) addr:0x0203eb04
@ET@0203e740 kind:data(any) addr:0x0203eb18
@EX@0203a0dc kind:data(word[3]) addr:0x0203eb2c
@EX@0203a154 kind:data(word[3]) addr:0x0203eb38
@EX@0203a17c kind:data(word[3]) addr:0x0203eb44
@EX@0203a18c kind:data(word[3]) addr:0x0203eb50
@EX@0203a1cc kind:data(word[3]) addr:0x0203eb5c
@EX@0203a1ec kind:data(word[3]) addr:0x0203eb68
@EX@0203a208 kind:data(word[3]) addr:0x0203eb74
@EX@0203a224 kind:data(word[3]) addr:0x0203eb80
@EX@0203a23c kind:data(word[3]) addr:0x0203eb8c
@EX@0203a25c kind:data(word[3]) addr:0x0203eb98
@EX@0203a274 kind:data(word[3]) addr:0x0203eba4
@EX@0203a294 kind:data(word[3]) addr:0x0203ebb0
@EX@0203a2c4 kind:data(word[3]) addr:0x0203ebbc
@EX@0203a2f0 kind:data(word[3]) addr:0x0203ebc8
@EX@0203ce54 kind:data(word[3]) addr:0x0203ebd4
@EX@0203ce74 kind:data(word[3]) addr:0x0203ebe0
@EX@0203cec4 kind:data(word[3]) addr:0x0203ebec
@EX@0203d07c kind:data(word[3]) addr:0x0203ebf8
@EX@0203d1a0 kind:data(word[3]) addr:0x0203ec04
@EX@0203d45c kind:data(word[3]) addr:0x0203ec10
@EX@0203dc90 kind:data(word[3]) addr:0x0203ec1c
@EX@0203dde4 kind:data(word[3]) addr:0x0203ec28
@EX@0203de64 kind:data(word[3]) addr:0x0203ec34
@EX@0203df14 kind:data(word[3]) addr:0x0203ec40
@EX@0203df74 kind:data(word[3]) addr:0x0203ec4c
@EX@0203e1ac kind:data(word[3]) addr:0x0203ec58
@EX@0203e2a0 kind:data(word[3]) addr:0x0203ec64
@EX@0203e2c8 kind:data(word[3]) addr:0x0203ec70
@EX@0203e2e8 kind:data(word[3]) addr:0x0203ec7c
@EX@0203e318 kind:data(word[3]) addr:0x0203ec88
@EX@0203e35c kind:data(word[3]) addr:0x0203ec94
@EX@0203e368 kind:data(word[3]) addr:0x0203eca0
@EX@0203e374 kind:data(word[3]) addr:0x0203ecac
@EX@0203e38c kind:data(word[3]) addr:0x0203ecb8
@EX@0203e578 kind:data(word[3]) addr:0x0203ecc4
@EX@0203e5d4 kind:data(word[3]) addr:0x0203ecd0
@EX@0203e690 kind:data(word[3]) addr:0x0203ecdc
@EX@0203e740 kind:data(word[3]) addr:0x0203ece8
@EX@0203e7a0 kind:data(word[3]) addr:0x0203ecf4
@EX@0203e7d0 kind:data(word[3]) addr:0x0203ed00
@EX@0203e7e4 kind:data(word[3]) addr:0x0203ed0c
@EX@0203e800 kind:data(word[3]) addr:0x0203ed18
@EX@0203e814 kind:data(word[3]) addr:0x0203ed24
@EX@0203e828 kind:data(word[3]) addr:0x0203ed30
@EX@0203e8a0 kind:data(word[3]) addr:0x0203ed3c
@EX@0203e960 kind:data(word[3]) addr:0x0203ed48
__sinit_0203ed54 kind:function(arm,size=0x1c) addr:0x0203ed54
__sinit_0203ed70 kind:function(arm,size=0x60) addr:0x0203ed70
__sinit_0203edd0 kind:function(arm,size=0x50) addr:0x0203edd0
+8
View File
@@ -0,0 +1,8 @@
CompileFlags:
Add:
- -Wno-int-to-pointer-cast
Diagnostics:
Suppress:
- sizeof_alignof_function_type
- bad_reinterpret_cast_small_int
- typecheck_pointer_arith_void_type
+1
View File
@@ -0,0 +1 @@
Credits to taxicat1 aka Mow: https://github.com/taxicat1/dsprot/
@@ -17,7 +17,7 @@
#ifndef DSP_NO_NITRO
#include <types.h> // For u32
#include <nitro/types.h> // For u32
#else /* DSP_NO_NITRO */
@@ -113,8 +113,14 @@ extern u32 DSProt_DetectNotDummy(void *callback);
#else /* SDK_ASM */
.public DSProt_DetectFlashcart.public DSProt_DetectNotFlashcart.public DSProt_DetectEmulator.public DSProt_DetectNotEmulator
.public DSProt_DetectDummy.public DSProt_DetectNotDummy
// clang-format off
.public DSProt_DetectFlashcart
.public DSProt_DetectNotFlashcart
.public DSProt_DetectEmulator
.public DSProt_DetectNotEmulator
.public DSProt_DetectDummy
.public DSProt_DetectNotDummy
// clang-format on
#endif /* SDK_ASM */
+91
View File
@@ -0,0 +1,91 @@
#pragma once
#include "dsprot/encoding_constants.h"
.macro arm_func_start name
.balign 4, 0
.global \name
.type \name, @function
.arm
.endm
.macro local_arm_func_start name
.balign 4, 0
.type \name, @function
.arm
.endm
.macro arm_func_end name
.size \name, .-\name
.endm
.macro sinit sinit_func
.type NitroStaticInit_\@, @object
NitroStaticInit_\@:
.word \sinit_func
.size NitroStaticInit_\@, .-NitroStaticInit_\@
.endm
.public DSProt_BSS
.public Encryptor_DecryptFunction
.public Encryptor_EncryptFunction
.macro run_encrypted_func func, length, key
stmfd sp!, {r4-r7} ; `r0`-`r3` contain the arguments that must be passed into the inner function.
stmfd sp!, {r0-r3} ; Stack manipulation to move `r0`-`r3` into `r4`-`r7` for storage.
ldmfd sp!, {r4-r7} ; Original values of `r4`-`r7` get pushed onto the stack.
ldr r1, func_\@ ; Get second function decrypter argument, obfuscated function address.
adr r3, storage_\@ ; `lr` cannot be stored on the stack when we call the inner function,
str lr, [r3] ; so it is stored in the pool below.
ldr r2, length_\@ ; Get third function decrypter argument, obfuscated length.
ldr r0, key_\@ ; Get first function decrypter argument, obfuscated key.
bl Encryptor_DecryptFunction ; Call function decrypter with args (key, addr, len).
mov ip, r0 ; Function decrypter returns the de-obfuscated function address. Save it in `ip`.
stmfd sp!, {r4-r7} ; Stack manipulation again to restore the original `r0`-`r3`.
ldmfd sp!, {r0-r3} ;
ldmfd sp!, {r4-r7} ; Stack is now restored, so `sp` is correct for the inner function call.
blx ip ; Call inner function.
stmfd sp!, {r4} ; `r4` about to be used as storage space for the inner function return, so save it on the stack.
mov r4, r0 ; Copy the return from the inner function into `r4` so we can can run the function re-encrypter.
ldr r1, func_\@ ; Get second function encrypter argument, obfuscated function address.
ldr r2, length_\@ ; Get third function encrypter argument, obfuscated length.
ldr r0, key_\@ ; Get first function encrypter argument, obfuscated key.
bl Encryptor_EncryptFunction ; Call function encrypter.
str r0, key_\@ ; Function encrypter returns the new key it used, store this back into the pool for next time.
mov r0, r4 ; Restore the return value from the inner function from `r4` to `r0`.
ldmfd sp!, {r4} ; Restore the original value of `r4` from the stack.
ldr lr, storage_\@ ; Load `lr` return address back from the storage space in the pool.
str pc, storage_\@ ; Store `pc` in its place, presumably just to overwrite the return address.
bx lr ; Return with return value from inner function.
storage_\@:
.word DSProt_BSS + 1
length_\@:
.word DSProt_BSS + \length + ENC_VAL_1
key_\@:
.word DSProt_BSS + \key + ENC_VAL_1
func_\@:
.word \func + ENC_VAL_1
.endm
.public Encryptor_DecodeFunctionTable
.macro decode_func_table table
stmdb sp!, {lr}
adr r0, \table
bl Encryptor_DecodeFunctionTable
ldmia sp!, {pc}
.endm
.macro func_table_entry func, size
.word \func + ENC_VAL_1, DSProt_BSS + \size + ENC_VAL_1
.endm
.macro func_table_end
.word 0, 0
.endm
.macro garbage_ref ref
.word \ref + ENC_VAL_1
.endm
+8
View File
@@ -0,0 +1,8 @@
#ifndef BSS_H
#define BSS_H
#include <nitro/types.h>
extern u8 DSProt_BSS[4];
#endif
@@ -0,0 +1,21 @@
#ifndef ENCODING_CONSTANTS_H
#define ENCODING_CONSTANTS_H
#define INS_OPCODE_LINKBIT (0x01)
#define INS_OPCODE_MASK (0xFF000000)
#define INS_OPCODE_SHIFT (24)
#define INS_OPERANDS_MASK (0x00FFFFFF)
#define ADDR_PLUS_ADDEND(ref, addend) ((u32) (&ref + ((addend) / sizeof(ref))))
#define ENC_VAL_1 (0x1400)
#define ENC_VAL_2 ((ENC_VAL_1 >> 2) + 2)
#define ENC_BYTE_A (0x65)
#define ENC_BYTE_B (0x56)
#define ENC_BYTE_C (0x68)
#define ENC_BYTE_D (0xD0)
#define ENC_SBOX_XOR (0x01)
#endif
+23
View File
@@ -0,0 +1,23 @@
#ifndef ENCRYPTOR_H
#define ENCRYPTOR_H
#include <nitro/types.h>
typedef struct {
u32 obfs_addr;
u32 obfs_size;
} FuncInfo;
enum {
INS_TYPE_OTHER = 0,
INS_TYPE_BLXIMM,
INS_TYPE_BL,
INS_TYPE_B
};
u32 Encryptor_CategorizeInstruction(u32 instruction);
void Encryptor_DecodeFunctionTable(FuncInfo *functions);
void *Encryptor_DecryptFunction(u32 key, u32 func_addr, u32 size);
u32 Encryptor_EncryptFunction(u32 key, u32 func_addr, u32 size);
#endif
+8
View File
@@ -0,0 +1,8 @@
#ifndef GARBAGE_H
#define GARBAGE_H
#include <nitro/types.h>
extern const u32 DSProt_Garbage[6];
#endif
+12
View File
@@ -0,0 +1,12 @@
#ifndef INTEGRITY_H
#define INTEGRITY_H
#include <nitro/types.h>
// Assembly decryption wrappers
extern u32 RunEncrypted_Integrity_MACOwner_IsBad(void);
extern u32 RunEncrypted_Integrity_MACOwner_IsGood(void);
extern u32 RunEncrypted_Integrity_ROMTest_IsBad(void);
extern u32 RunEncrypted_Integrity_ROMTest_IsGood(void);
#endif
+10
View File
@@ -0,0 +1,10 @@
#ifndef MAC_OWNER_H
#define MAC_OWNER_H
#include <nitro/types.h>
// Assembly decryption wrappers
extern u32 RunEncrypted_MACOwner_IsBad(void);
extern u32 RunEncrypted_MACOwner_IsGood(void);
#endif
+9
View File
@@ -0,0 +1,9 @@
#ifndef RC4_H
#define RC4_H
#include <nitro/types.h>
u32 RC4_InitAndEncryptInstructions(void *key, void *dst, void *src, u32 size);
u32 RC4_InitAndDecryptInstructions(void *key, void *dst, void *src, u32 size);
#endif
+10
View File
@@ -0,0 +1,10 @@
#ifndef ROM_TEST_H
#define ROM_TEST_H
#include <nitro/types.h>
// Assembly decryption wrappers
extern u32 RunEncrypted_ROMTest_IsBad(void);
extern u32 RunEncrypted_ROMTest_IsGood(void);
#endif
+10
View File
@@ -0,0 +1,10 @@
#ifndef ROM_UTIL_H
#define ROM_UTIL_H
#include <nitro/types.h>
// Assembly decryption wrappers
extern void RunEncrypted_ROMUtil_Read(void *dest, u32 addr, s32 num_bytes);
extern u32 RunEncrypted_ROMUtil_CRC32(void *buf, u32 size);
#endif
+152
View File
@@ -0,0 +1,152 @@
/* No dedicated header */
#include "dsprot.h"
#include "dsprot/encoding_constants.h"
#include "dsprot/encryptor.h"
#include "dsprot/integrity.h"
#include "dsprot/mac_owner.h"
#include "dsprot/rom_test.h"
// Functions to be encrypted (cannot be called directly)
u32 DetectFlashcart(void *callback);
u32 DetectNotFlashcart(void *callback);
u32 DetectEmulator(void *callback);
u32 DetectNotEmulator(void *callback);
u32 DetectDummy(void *callback);
u32 DetectNotDummy(void *callback);
#define DSP_OBFS_OFFSET (0x320)
#define FUNC_QUEUE_END (0)
typedef u32 (*TaskFunc)(void);
typedef void (*CallbackFunc)(void);
enum {
EXPECT_FALSE,
EXPECT_TRUE
};
// This was likely not originally an inline, but an inline is able to match here nicely
static inline u32 dsprotMain(u32 *func_queue, int expected_result, void *callback) {
BOOL ret;
BOOL func_result;
s32 compare_sum;
u32 i;
s32 func_result_sum;
// These two bit arrays must be signed to match
compare_sum = 0;
func_result_sum = 0;
for (i = 0; func_queue[i] != FUNC_QUEUE_END; i++) {
func_result = ((TaskFunc) (func_queue[i] - ENC_VAL_1 - DSP_OBFS_OFFSET))() != 0;
func_result_sum += func_result;
func_result_sum <<= 1;
compare_sum += TRUE;
compare_sum <<= 1;
}
if (expected_result == EXPECT_TRUE) {
ret = (func_result_sum >> 1) == (compare_sum >> 1);
} else {
ret = ((func_result_sum & compare_sum) >> 1) != 0;
}
if (callback != NULL && ret) {
((CallbackFunc) callback)();
}
return (u32) ret;
}
u32 DetectFlashcart(void *callback) {
u32 func_queue[32];
func_queue[2] = FUNC_QUEUE_END;
func_queue[0] = ADDR_PLUS_ADDEND(RunEncrypted_ROMTest_IsBad, ENC_VAL_1) + DSP_OBFS_OFFSET;
func_queue[1] = ADDR_PLUS_ADDEND(RunEncrypted_Integrity_ROMTest_IsBad, ENC_VAL_1) + DSP_OBFS_OFFSET;
return dsprotMain(&func_queue[0], EXPECT_FALSE, callback);
}
u32 DetectNotFlashcart(void *callback) {
u32 func_queue[32];
func_queue[2] = FUNC_QUEUE_END;
func_queue[0] = ADDR_PLUS_ADDEND(RunEncrypted_ROMTest_IsGood, ENC_VAL_1) + DSP_OBFS_OFFSET;
func_queue[1] = ADDR_PLUS_ADDEND(RunEncrypted_Integrity_ROMTest_IsGood, ENC_VAL_1) + DSP_OBFS_OFFSET;
return dsprotMain(&func_queue[0], EXPECT_TRUE, callback);
}
u32 DetectEmulator(void *callback) {
u32 func_queue[32];
func_queue[2] = FUNC_QUEUE_END;
func_queue[0] = ADDR_PLUS_ADDEND(RunEncrypted_MACOwner_IsBad, ENC_VAL_1) + DSP_OBFS_OFFSET;
func_queue[1] = ADDR_PLUS_ADDEND(RunEncrypted_Integrity_MACOwner_IsBad, ENC_VAL_1) + DSP_OBFS_OFFSET;
return dsprotMain(&func_queue[0], EXPECT_FALSE, callback);
}
u32 DetectNotEmulator(void *callback) {
u32 func_queue[32];
func_queue[2] = FUNC_QUEUE_END;
func_queue[0] = ADDR_PLUS_ADDEND(RunEncrypted_MACOwner_IsGood, ENC_VAL_1) + DSP_OBFS_OFFSET;
func_queue[1] = ADDR_PLUS_ADDEND(RunEncrypted_Integrity_MACOwner_IsGood, ENC_VAL_1) + DSP_OBFS_OFFSET;
return dsprotMain(&func_queue[0], EXPECT_TRUE, callback);
}
u32 DetectDummy(void *callback) {
u32 func_queue[32];
// Prevent optimization of the function queue processing
*(u32 *) &func_queue[0] = FUNC_QUEUE_END;
return dsprotMain(&func_queue[0], EXPECT_FALSE, callback);
}
u32 DetectNotDummy(void *callback) {
u32 func_queue[32];
// Prevent optimization of the function queue processing
*(u32 *) &func_queue[0] = FUNC_QUEUE_END;
return dsprotMain(&func_queue[0], EXPECT_TRUE, callback);
}
// DECRYPTION_WRAPPER(DetectFlashcart, 0xac, 0x2e8b, DSProt_)
// DECRYPTION_WRAPPER(DetectNotFlashcart, 0xac, 0x2e8b, DSProt_)
// DECRYPTION_WRAPPER(DetectEmulator, 0xac, 0x2e8b, DSProt_)
// DECRYPTION_WRAPPER(DetectNotEmulator, 0xac, 0x2e8b, DSProt_)
// DECRYPTION_WRAPPER(DetectDummy, 0x94, 0x2e8b, DSProt_)
// DECRYPTION_WRAPPER(DetectNotDummy, 0x94, 0x2e8b, DSProt_)
// // clang-format off
// asm void NitroStaticInit() {
// stmdb sp!, {lr};
// add r0, pc, #0x4;
// bl Encryptor_DecodeFunctionTable;
// ldmia sp!, {pc};
// dcd DSProt_DetectFlashcart + ENC_VAL_1
// dcd DSProt_BSS + 0x68 + ENC_VAL_1
// dcd DSProt_DetectNotFlashcart + ENC_VAL_1
// dcd DSProt_BSS + 0x68 + ENC_VAL_1
// dcd DSProt_DetectEmulator + ENC_VAL_1
// dcd DSProt_BSS + 0x68 + ENC_VAL_1
// dcd DSProt_DetectNotEmulator + ENC_VAL_1
// dcd DSProt_BSS + 0x68 + ENC_VAL_1
// dcd DSProt_DetectDummy + ENC_VAL_1
// dcd DSProt_BSS + 0x68 + ENC_VAL_1
// dcd DSProt_DetectNotDummy + ENC_VAL_1
// dcd DSProt_BSS + 0x68 + ENC_VAL_1
// dcd 0
// dcd 0
// dcd DSProt_Garbage + 0x1400
// }
// // clang-format on
+137
View File
@@ -0,0 +1,137 @@
#include "dsprot/encryptor.h"
#include <nitro/os/cache.h>
#include "dsprot/bss.h"
#include "dsprot/encoding_constants.h"
#include "dsprot/rc4.h"
#define ROTL(x, a) ((a) == 0 ? (x) : (((x) << (a)) | ((x) >> (32 - (a)))))
static void clearDataAndInstructionCache(void *start_addr, u32 num_bytes);
static void clearDataAndInstructionCache(void *start_addr, u32 num_bytes) {
DC_FlushRange(start_addr, num_bytes);
IC_InvalidateRange(start_addr, num_bytes);
}
u32 Encryptor_CategorizeInstruction(u32 instruction) {
u8 opcode;
opcode = instruction >> INS_OPCODE_SHIFT;
// Branch instruction
if ((opcode & 0x0E) == 0x0A) {
// BLX immediate type
if ((opcode & 0xF0) == 0xF0) {
return INS_TYPE_BLXIMM;
}
// Link bit
if (opcode & INS_OPCODE_LINKBIT) {
return INS_TYPE_BL;
} else {
return INS_TYPE_B;
}
}
return INS_TYPE_OTHER;
}
void Encryptor_DecodeFunctionTable(FuncInfo *functions) {
u32 *addr;
u32 size;
u32 *end_addr;
if (functions == NULL) {
return;
}
for (; functions->obfs_addr != 0; functions++) {
addr = (u32 *) functions->obfs_addr;
size = functions->obfs_size - (u32) &DSProt_BSS - ENC_VAL_1;
if (addr == NULL) {
break;
}
addr = (u32 *) ((u32) addr - ENC_VAL_1);
end_addr = addr + (size / 4);
for (; addr < end_addr; addr++) {
switch (Encryptor_CategorizeInstruction(*addr)) {
case INS_TYPE_BLXIMM:
case INS_TYPE_BL: {
u32 opcode = (*addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT);
u32 operands = ((*addr & INS_OPERANDS_MASK) - ENC_VAL_1) & INS_OPERANDS_MASK;
*addr = opcode | operands;
} break;
case INS_TYPE_B: {
u32 opcode = (*addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT);
u32 operands = ((*addr & INS_OPERANDS_MASK) - ENC_VAL_2) & INS_OPERANDS_MASK;
*addr = opcode | operands;
} break;
default: {
u8 *addr_bytes = (u8 *) addr;
*addr = (addr_bytes[0] ^ ENC_BYTE_A) | ((addr_bytes[1] ^ ENC_BYTE_B) << 8) |
((addr_bytes[2] ^ ENC_BYTE_C) << 16) | ((addr_bytes[3] ^ ENC_BYTE_D) << 24);
} break;
}
}
clearDataAndInstructionCache((void *) (functions->obfs_addr - ENC_VAL_1), size);
}
}
static inline void expandRC4Key(u32 seed_key, u32 size, u32 *expanded_key) {
expanded_key[0] = ROTL(seed_key, 0) ^ size;
expanded_key[1] = ROTL(seed_key, 8) ^ size;
expanded_key[2] = ROTL(seed_key, 16) ^ size;
expanded_key[3] = ROTL(seed_key, 24) ^ size;
}
void *Encryptor_DecryptFunction(u32 key, u32 func_addr, u32 size) {
u32 expanded_key[4];
void *func_ptr;
// Deobfuscate arguments
func_ptr = (void *) func_addr;
func_ptr -= ENC_VAL_1;
size -= (u32) &DSProt_BSS + ENC_VAL_1;
key -= (u32) &DSProt_BSS + ENC_VAL_1;
expandRC4Key(key, size, &expanded_key[0]);
RC4_InitAndDecryptInstructions(&expanded_key[0], func_ptr, func_ptr, size);
clearDataAndInstructionCache(func_ptr, size);
return func_ptr;
}
u32 Encryptor_EncryptFunction(u32 key, u32 func_addr, u32 size) {
u32 expanded_key[4];
void *func_ptr;
// Deobfuscate arguments
func_ptr = (void *) func_addr;
func_ptr -= ENC_VAL_1;
size -= (u32) &DSProt_BSS + ENC_VAL_1;
key -= (u32) &DSProt_BSS + ENC_VAL_1;
// Change key
key += func_addr >> 20;
expandRC4Key(key, size, &expanded_key[0]);
RC4_InitAndEncryptInstructions(&expanded_key[0], func_ptr, func_ptr, size);
clearDataAndInstructionCache(func_ptr, size);
// Re-obfuscate key
key += (u32) &DSProt_BSS + ENC_VAL_1;
return key;
}
+8
View File
@@ -0,0 +1,8 @@
#include "dsprot/bss.h"
#include "dsprot/garbage.h"
u8 DSProt_BSS[4];
const u32 DSProt_Garbage[6] = {
0xebaa0114, 0x40064eb7, 0x5f013696, 0xe5211f83, 0xe7ef335b, 0xe84b197c,
};
+120
View File
@@ -0,0 +1,120 @@
#include "dsprot/integrity.h"
#include "dsprot/encoding_constants.h"
#include "dsprot/mac_owner.h"
#include "dsprot/rom_test.h"
// Functions to be encrypted (cannot be called directly)
u32 Integrity_MACOwner_IsBad(void);
u32 Integrity_MACOwner_IsGood(void);
u32 Integrity_ROMTest_IsBad(void);
u32 Integrity_ROMTest_IsGood(void);
#define INTEGRITY_OBFS_OFFSET (ENC_VAL_1 & ~0xFFF)
// This was likely not originally an inline, but an inline is able to match here nicely
static inline u32 checkDecryptionWrapper(u8 *addr, u32 match_ret, u32 mismatch_ret) {
u32 offset;
addr += INTEGRITY_OBFS_OFFSET;
offset = ENC_VAL_1 - INTEGRITY_OBFS_OFFSET;
// The bytes checked here are from the `run_encrypted_func` macro defined in asm_macro.inc:
// e92d00f0 stmfd sp!, {r4-r7}
// e92d000f stmfd sp!, {r0-r3}
// e8bd00f0 ldmfd sp!, {r4-r7}
// e59f103c ldr r1, [pc, #60]
if (addr[offset++] != 0xF0) {
return mismatch_ret;
}
if (addr[offset++] != 0x00) {
return mismatch_ret;
}
if (addr[offset++] != 0x2D) {
return mismatch_ret;
}
if (addr[offset++] != 0xE9) {
return mismatch_ret;
}
if (addr[offset++] != 0x0F) {
return mismatch_ret;
}
if (addr[offset++] != 0x00) {
return mismatch_ret;
}
if (addr[offset++] != 0x2D) {
return mismatch_ret;
}
if (addr[offset++] != 0xE9) {
return mismatch_ret;
}
if (addr[offset++] != 0xF0) {
return mismatch_ret;
}
if (addr[offset++] != 0x00) {
return mismatch_ret;
}
if (addr[offset++] != 0xBD) {
return mismatch_ret;
}
if (addr[offset++] != 0xE8) {
return mismatch_ret;
}
if (addr[offset++] != 0x60) {
return mismatch_ret;
}
if (addr[offset++] != 0x10) {
return mismatch_ret;
}
if (addr[offset++] != 0x9F) {
return mismatch_ret;
}
if (addr[offset++] != 0xE5) {
return mismatch_ret;
}
return match_ret;
}
u32 Integrity_MACOwner_IsBad(void) {
u8 *addr;
u32 ret;
addr = (u8 *) ADDR_PLUS_ADDEND(RunEncrypted_MACOwner_IsBad, ENC_VAL_1) - (ENC_VAL_1 * 2);
ret = (u32) addr + 1;
return checkDecryptionWrapper(addr, 0, ret);
}
u32 Integrity_MACOwner_IsGood(void) {
u8 *addr;
u32 ret;
addr = (u8 *) ADDR_PLUS_ADDEND(RunEncrypted_MACOwner_IsGood, ENC_VAL_1) - (ENC_VAL_1 * 2);
ret = (u32) addr;
return checkDecryptionWrapper(addr, ret + 1, 0);
}
u32 Integrity_ROMTest_IsBad(void) {
u8 *addr;
u32 ret;
addr = (u8 *) ADDR_PLUS_ADDEND(RunEncrypted_ROMTest_IsBad, ENC_VAL_1) - (ENC_VAL_1 * 2);
ret = (u32) addr + 1;
return checkDecryptionWrapper(addr, 0, ret);
}
u32 Integrity_ROMTest_IsGood(void) {
u8 *addr;
u32 ret;
addr = (u8 *) ADDR_PLUS_ADDEND(RunEncrypted_ROMTest_IsGood, ENC_VAL_1) - (ENC_VAL_1 * 2);
ret = (u32) addr;
return checkDecryptionWrapper(addr, ret + 1, 0);
}
+55
View File
@@ -0,0 +1,55 @@
#include "dsprot/mac_owner.h"
#include <nitro/os.h>
// Functions to be encrypted (cannot be called directly)
u32 MACOwner_IsBad(void);
u32 MACOwner_IsGood(void);
#define MAC_ADDR_SIZE (6)
#define ENC_MAC_ADDR_BYTE (0xFF)
static const u8 bad_mac_addr[MAC_ADDR_SIZE] = {0x00 ^ ENC_MAC_ADDR_BYTE, 0x09 ^ ENC_MAC_ADDR_BYTE, 0xBF ^ ENC_MAC_ADDR_BYTE,
0x00 ^ ENC_MAC_ADDR_BYTE, 0x00 ^ ENC_MAC_ADDR_BYTE, 0x31 ^ ENC_MAC_ADDR_BYTE};
static inline u32 testMACOwner(u32 pass_ret, u32 fail_ret) {
u8 mac_addr[MAC_ADDR_SIZE];
OSOwnerInfo owner_info;
int i;
u32 ret;
OS_func_0176(&mac_addr[0]);
for (i = 0; i < MAC_ADDR_SIZE; i++) {
if (bad_mac_addr[i] != (mac_addr[i] ^ ENC_MAC_ADDR_BYTE)) {
break;
}
}
OS_func_0177(&owner_info);
if (i == MAC_ADDR_SIZE && owner_info.birthday.month == 1 && owner_info.birthday.day == 1 &&
owner_info.nickNameLength == 0) {
ret = fail_ret;
goto EXIT;
}
for (i = 0; i < MAC_ADDR_SIZE; i++) {
if (mac_addr[i] != 0x00) {
ret = pass_ret;
goto EXIT;
}
}
ret = fail_ret;
EXIT:
return ret;
}
u32 MACOwner_IsBad(void) {
return testMACOwner(0, 1);
}
u32 MACOwner_IsGood(void) {
return testMACOwner(1, 0);
}
+210
View File
@@ -0,0 +1,210 @@
#include "dsprot/rc4.h"
#include "dsprot/encoding_constants.h"
#include "dsprot/encryptor.h"
#define RC4_KEY_SIZE (16)
typedef struct {
int i;
int j;
u8 S[256];
} RC4_Ctx;
// Functions to be encoded (cannot be static)
void RC4_Init(RC4_Ctx *ctx, const void *key, u32 key_len);
u8 RC4_Byte(RC4_Ctx *ctx);
u32 RC4_InitSBox(u8 *sbox);
u32 RC4_EncryptInstructions(RC4_Ctx *ctx, void *src, void *dst, u32 size);
u32 RC4_DecryptInstructions(RC4_Ctx *ctx, void *src, void *dst, u32 size);
void RC4_Init(RC4_Ctx *ctx, const void *key, u32 key_len) {
u8 tmp1;
u8 tmp2;
int Ki;
u8 Si;
int i;
int j;
Ki = 0;
Si = 0;
ctx->i = 0;
ctx->j = 0;
for (j = 0; j < 256; j++) {
ctx->S[j] = j;
}
// Modification to RC4: i = 255 -> 0, instead of 0 -> 255
for (i = 255; i >= 0; i--) {
tmp1 = ctx->S[i];
Si = Si + ((u8 *) key)[Ki] + tmp1;
tmp2 = ctx->S[Si];
ctx->S[Si] = tmp1;
ctx->S[i] = tmp2;
Ki++;
if (Ki >= key_len) {
Ki = 0;
}
}
}
u8 RC4_Byte(RC4_Ctx *ctx) {
u8 i;
u8 ival;
u8 j;
u8 jval;
i = ctx->i + 1;
ival = ctx->S[i];
j = ival + ctx->j;
jval = ctx->S[j];
ctx->i = i;
ctx->j = j;
ctx->S[j] = ival;
ctx->S[i] = jval;
return ctx->S[(ival + jval) & 0xFF];
}
u32 RC4_InitSBox(u8 *sbox) {
int i;
for (i = 0; i < 256; i++) {
sbox[i] = (u8) i ^ ENC_SBOX_XOR;
}
return 0;
}
u32 RC4_EncryptInstructions(RC4_Ctx *ctx, void *src, void *dst, u32 size) {
u8 sbox[256];
ulong offset;
u8 *src_bytes;
u8 *dst_bytes;
if (size & 3) {
return -1;
}
src_bytes = (u8 *) src;
dst_bytes = (u8 *) dst;
RC4_InitSBox(&sbox[0]);
for (offset = 0; offset < size; offset += 4) {
switch (Encryptor_CategorizeInstruction(*(u32 *) (src_bytes + offset))) {
case INS_TYPE_BLXIMM:
case INS_TYPE_BL: {
u32 opcode;
u32 operands;
u32 *src_addr = (u32 *) (src_bytes + offset);
u32 *dst_addr = (u32 *) (dst_bytes + offset);
*dst_addr = *src_addr;
opcode = (*dst_addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT);
operands = ((*dst_addr & INS_OPERANDS_MASK) + ENC_VAL_2) & INS_OPERANDS_MASK;
*dst_addr = opcode | operands;
} break;
case INS_TYPE_B: {
u32 opcode;
u32 operands;
u32 *src_addr = (u32 *) (src_bytes + offset);
u32 *dst_addr = (u32 *) (dst_bytes + offset);
*dst_addr = *src_addr;
opcode = (*dst_addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT);
operands = ((*dst_addr & INS_OPERANDS_MASK) + ENC_VAL_1) & INS_OPERANDS_MASK;
*dst_addr = opcode | operands;
} break;
default:
dst_bytes[offset] = src_bytes[offset] ^ RC4_Byte(ctx);
dst_bytes[offset + 1] = src_bytes[offset + 1] ^ RC4_Byte(ctx);
dst_bytes[offset + 2] = sbox[src_bytes[offset + 2]];
dst_bytes[offset + 3] = src_bytes[offset + 3];
break;
}
}
return 0;
}
u32 RC4_DecryptInstructions(RC4_Ctx *ctx, void *src, void *dst, u32 size) {
u8 sbox[256];
ulong offset;
u8 *src_bytes;
u8 *dst_bytes;
if (size & 3) {
return -1;
}
src_bytes = (u8 *) src;
dst_bytes = (u8 *) dst;
RC4_InitSBox(&sbox[0]);
for (offset = 0; offset < size; offset += 4) {
switch (Encryptor_CategorizeInstruction(*(u32 *) (src_bytes + offset))) {
case INS_TYPE_BLXIMM:
case INS_TYPE_BL: {
u32 opcode;
u32 operands;
u32 *src_addr = (u32 *) (src_bytes + offset);
u32 *dst_addr = (u32 *) (dst_bytes + offset);
*dst_addr = *src_addr;
opcode = (*dst_addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT);
operands = ((*dst_addr & INS_OPERANDS_MASK) - ENC_VAL_1) & INS_OPERANDS_MASK;
*dst_addr = opcode | operands;
} break;
case INS_TYPE_B: {
u32 opcode;
u32 operands;
u32 *src_addr = (u32 *) (src_bytes + offset);
u32 *dst_addr = (u32 *) (dst_bytes + offset);
*dst_addr = *src_addr;
opcode = (*dst_addr & INS_OPCODE_MASK) ^ (INS_OPCODE_LINKBIT << INS_OPCODE_SHIFT);
operands = ((*dst_addr & INS_OPERANDS_MASK) - ENC_VAL_2) & INS_OPERANDS_MASK;
*dst_addr = opcode | operands;
} break;
default:
dst_bytes[offset] = src_bytes[offset] ^ RC4_Byte(ctx);
dst_bytes[offset + 1] = src_bytes[offset + 1] ^ RC4_Byte(ctx);
dst_bytes[offset + 2] = sbox[src_bytes[offset + 2]];
dst_bytes[offset + 3] = src_bytes[offset + 3];
break;
}
}
return 0;
}
u32 RC4_InitAndEncryptInstructions(void *key, void *dst, void *src, u32 size) {
RC4_Ctx ctx;
RC4_Init(&ctx, key, RC4_KEY_SIZE);
// Must coerce output to -1 or 0 like this to match
return RC4_EncryptInstructions(&ctx, dst, src, size) == -1 ? -1 : 0;
}
u32 RC4_InitAndDecryptInstructions(void *key, void *dst, void *src, u32 size) {
RC4_Ctx ctx;
RC4_Init(&ctx, key, RC4_KEY_SIZE);
// Must coerce output to -1 or 0 like this to match
return RC4_DecryptInstructions(&ctx, dst, src, size) == -1 ? -1 : 0;
}
+67
View File
@@ -0,0 +1,67 @@
#include "dsprot/rom_test.h"
#include "dsprot/rom_util.h"
#include <nitro/card.h>
// Functions to be encrypted (cannot be called directly)
u32 ROMTest_IsBad(void);
u32 ROMTest_IsGood(void);
#define ROM_BLOCK_SIZE CARD_ROM_PAGE_SIZE
static inline u32 testROM(u32 pass_ret, u32 fail_ret) {
// Extra CRC entry is required to match
u32 crcs[7];
u8 rom_buf[ROM_BLOCK_SIZE];
int i;
u32 rom_addr;
u32 ret;
rom_addr = 0x1000;
for (i = 0; i < 6; i++) {
RunEncrypted_ROMUtil_Read(&rom_buf[0], rom_addr, ROM_BLOCK_SIZE);
crcs[i] = RunEncrypted_ROMUtil_CRC32(&rom_buf[0], ROM_BLOCK_SIZE);
if (i == 2) {
// Has to be like this to match
rom_addr = 1;
rom_addr <<= 15;
} else {
rom_addr += ROM_BLOCK_SIZE;
}
}
// Checking the ROM reading results were as expected:
// 0 == 1 == 2 == 3
// 3 != 4 and 3 != 5
for (i = 0; i < 3; i++) {
if (crcs[i] != crcs[3]) {
ret = fail_ret;
goto EXIT;
}
}
if (crcs[3] == crcs[4] && crcs[3] == crcs[5]) {
ret = fail_ret;
} else {
ret = pass_ret;
}
EXIT:
// Erasing read buffer
for (i = 0; i < ROM_BLOCK_SIZE; i++) {
rom_buf[i] = 0;
}
return ret;
}
u32 ROMTest_IsBad(void) {
return testROM(0, 1);
}
u32 ROMTest_IsGood(void) {
return testROM(1, 0);
}
+150
View File
@@ -0,0 +1,150 @@
#include "dsprot/rom_util.h"
#include <nitro/card.h>
#include <nitro/os.h>
#include <nitro/reg.h>
// Functions to be encrypted (cannot be called directly)
void ROMUtil_Read(void *dest, u32 addr, s32 num_bytes);
u32 ROMUtil_CRC32(void *buf, u32 size);
void ROMUtil_Read(void *dest, u32 addr, s32 num_bytes) {
u8 buffer[8];
vu8 *vnull;
u32 register_base_1;
vu8 *register_base_2;
u32 card_ctrl_13;
s32 addr_offset;
u16 lock_id;
u16 ext_mem_register_val_original;
u32 output;
s32 card_ctrl_cmd;
int i;
lock_id = OS_GetLockID();
CARD_func_0010(lock_id);
// Alias for volatile null pointer
vnull = NULL;
// Alias for register base (0x04000000)
register_base_1 = 1;
register_base_1 <<= 26;
// Another alias for register base (0x04000000)
register_base_2 = (vu8 *) REG_BASE;
// External memory control register (0x04000204)
// Save value to rewrite later
ext_mem_register_val_original = REG_EXMEM_CNT;
// Set current processor accessing the gamecard bus to the ARM9
OS_SetNdsSlotAccess(OS_CPU_ARM9);
// Obfuscated, create address 0x027FFE60
// This is offset 0x60 in the ROM header: port 0x040001A4 / setting for normal commands
card_ctrl_13 = 5;
card_ctrl_13 <<= 18;
card_ctrl_13 -= 13;
// Detect if the system is in DSi mode. If so, change the address to 0x02FFFE60
if (*(vu8 *) (register_base_1 + REG_A9ROM_OFFSET) & 1) {
card_ctrl_13 |= 0x40000;
}
card_ctrl_13 <<= 5;
// Read port setting and set page read flags
card_ctrl_cmd = (*(vs32 *) card_ctrl_13 & ~CARD_CTL_CMD_MASK) | (CARD_CTL_CMD_PAGE | CARD_CTL_READ | CARD_CTL_START);
// Calculate offset to round back to nearest 0x200-byte block.
// E.G. if we want to read starting from 0x1208, we actually need to
// request the block at 0x1200 and then ignore the first 8 bytes of the result.
// This would set `addr_offset` to -8.
addr_offset = 0 - (addr & (CARD_ROM_PAGE_SIZE - 1));
// Wait for card to not be busy
while (*(vu32 *) (register_base_1 + REG_CARD_CNT_OFFSET) & CARD_CTL_START) {
continue;
}
// Write enable flag to card ROM and SPI control register
*(vu8 *) (register_base_1 + REG_CARD_AUX_SPI_CNT_OFFSET + 1) = CARDMST_ENABLE;
// Read 8-byte command out from gamecard bus, write this back later
for (i = 0; i < 8; i++) {
buffer[i] = *(vnull + _MAIN_REG_BASE + REG_CARD_CMD_OFFSET + i);
}
addr += addr_offset;
while (addr_offset < num_bytes) {
// Read a 0x200-byte data block from ROM
// Write 8-byte command to registers
// B7XXXXXXXX000000 -> 0x200-byte encrypted data read from address XXXXXXXX
register_base_2[REG_CARD_CMD_OFFSET + 0] = CARD_CMD_ENCRYPTED_READ;
register_base_2[REG_CARD_CMD_OFFSET + 1] = addr >> 24;
register_base_2[REG_CARD_CMD_OFFSET + 2] = addr >> 16;
register_base_2[REG_CARD_CMD_OFFSET + 3] = addr >> 8;
register_base_2[REG_CARD_CMD_OFFSET + 4] = addr;
register_base_2[REG_CARD_CMD_OFFSET + 5] = 0x00;
register_base_2[REG_CARD_CMD_OFFSET + 6] = 0x00;
register_base_2[REG_CARD_CMD_OFFSET + 7] = 0x00;
// Submit command
*(vu32 *) (register_base_1 + REG_CARD_CNT_OFFSET) = card_ctrl_cmd;
// Copy the output into the destination buffer, within the bounds of num_bytes
// (Must read the output out of the I/O register regardless)
do {
if (*(vu32 *) (register_base_1 + REG_CARD_CNT_OFFSET) & CARD_DATA_READY) {
output = *(vu32 *) (register_base_1 + REG_CARD_DATA_OFFSET);
if (addr_offset >= 0 && addr_offset < num_bytes) {
*(u32 *) ((u32) dest + addr_offset) = output;
}
addr_offset += 4;
}
} while (*(vu32 *) (register_base_1 + REG_CARD_CNT_OFFSET) & CARD_CTL_START);
// Advance address to next block
addr += CARD_ROM_PAGE_SIZE;
}
// Done reading, restore everything how it was before
// Write original command back to gamecard bus
for (i = 0; i < 8; i++) {
*(vnull + _MAIN_REG_BASE + REG_CARD_CMD_OFFSET + i) = buffer[i];
}
// Write original value back to to external memory control register
*(vu16 *) (register_base_1 + REG_EXMEM_CNT_OFFSET) = ext_mem_register_val_original;
CARD_func_0011(lock_id);
OS_func_0178(lock_id);
}
u32 ROMUtil_CRC32(void *buf, u32 size) {
int i;
u32 crc;
u32 poly;
u8 *byte_ptr;
byte_ptr = (u8 *) buf;
crc = 0xFFFFFFFF;
poly = 0xEDB88320;
while (size-- != 0) {
crc ^= *byte_ptr++;
for (i = 0; i < 8; i++) {
if (crc & 1) {
crc = (crc >> 1);
} else {
crc = poly ^ (crc >> 1);
}
}
}
return ~crc;
}
+254
View File
@@ -0,0 +1,254 @@
import sys
from argparse import ArgumentParser, Namespace
from bisect import bisect_left, bisect_right
from collections.abc import Generator
from io import TextIOWrapper
from pathlib import Path
from typing import Never
import elftools.construct
import elftools.elf.sections
from elftools.elf.elffile import ELFFile
from elftools.elf.sections import SymbolTableSection
ASM_COMMON_INCLUDE = "dsprot/asm_macro.inc"
STATIC_INIT_FN_NAME = "NitroStaticInit"
def address(symbol: elftools.elf.sections.Symbol) -> int:
value = symbol.entry.get("st_value")
if type(value) is not int:
panic(
f"Expected st_value of symbol {symbol.name} to be an int but got {type(value)} = {value}"
)
return value
class Symbol:
def __init__(self, symbol: elftools.elf.sections.Symbol):
self.symbol = symbol
self.address = address(symbol)
self.section: Section | None = None
def name(self) -> str:
return self.symbol.name
def size(self) -> int:
size = self.symbol.entry.get("st_size")
if type(size) is not int:
panic(
f"Expected st_size of symbol {self.symbol.name} to be an int but got {type(size)} = {size}"
)
return size
def _st_info(self) -> elftools.construct.Container:
st_info = self.symbol.entry.get("st_info")
if type(st_info) is not elftools.construct.Container:
panic(
f"Expected st_info of symbol {self.symbol.name} to be a Container but got {type(st_info)} = {st_info}"
)
return st_info
def section_index(self) -> int | None:
shndx = self.symbol.entry.get("st_shndx")
if shndx in ["SHN_UNDEF", "SHN_ABS"]:
return None
if type(shndx) is not int:
panic(
f"Expected st_shndx of symbol {self.symbol.name} to be an int but got {type(shndx)} = {shndx}"
)
return shndx
def type(self) -> str:
st_info = self._st_info()
st_type = st_info.get("type")
if type(st_type) is not str:
panic(
f"Expected st_info.type of symbol {self.symbol.name} to be a str but got {type(st_type)} = {st_type}"
)
return st_type
def code_size(self) -> int:
if self.type() != "STT_FUNC":
return 0
address = self.address
size = self.size()
end_address = address + size
# Look for constant pool inside this function
if self.section is not None:
for next_symbol in self.section.symbols_by_address(address + 1):
if next_symbol.address >= end_address:
break
if next_symbol.name() == "$d":
return next_symbol.address - self.address
# If no constant pool exists, this function's size is st_size
return size
class Section:
def __init__(self, elf: "Elf", section: elftools.elf.sections.Section):
self.elf = elf
self.section = section
self.symbols: list[Symbol] = []
self.symbol_indices_by_address: list[int] = []
def name(self) -> str:
return self.section.name
def add_symbol(self, symbol: Symbol):
index = len(self.symbols)
self.symbols.append(symbol)
pos = bisect_right(
self.symbol_indices_by_address,
symbol.address,
key=lambda s: self.symbols[s].address,
)
self.symbol_indices_by_address.insert(pos, index)
def symbols_by_address(self, start_address=0) -> Generator[Symbol]:
start_index = bisect_left(
self.symbol_indices_by_address,
start_address,
key=lambda i: self.symbols[i].address,
)
for i in range(start_index, len(self.symbols)):
yield self.symbols[self.symbol_indices_by_address[i]]
class Elf:
def __init__(self, elf: ELFFile):
self.elf = elf
self.sections: list[Section] = [
Section(self, section) for section in elf.iter_sections()
]
for section in elf.iter_sections():
if not isinstance(section, SymbolTableSection):
continue
for symbol in section.iter_symbols():
symbol = Symbol(symbol)
section_index = symbol.section_index()
if section_index is not None:
symbol.section = self.sections[section_index]
symbol.section.add_symbol(symbol)
def symbol_by_name(self, name: str) -> Generator[Symbol]:
for section in self.sections:
for symbol in section.symbols:
if symbol.name() == name:
yield symbol
class Args:
def __init__(self, args: Namespace):
self.output = Path(args.output)
self.garbage: str | None = args.garbage
self.prefix: str = args.prefix
self.inputs = list(map(Path, args.input))
for input in self.inputs:
if not input.exists():
raise ValueError(f"Input file '{input}' does not exist")
key: str | None = args.key
if key is None:
self.key = None
elif key.startswith("0x"):
self.key = int(key, base=16)
else:
self.key = int(key, base=10)
if args.key is None:
self.symbols = [f"{args.prefix}{symbol}" for symbol in args.symbols]
else:
self.symbols = list(map(str, args.symbols))
def panic(message) -> Never:
print(message)
sys.exit(1)
def write_assembly(f: TextIOWrapper, args: Args, symbols: list[Symbol]) -> None:
f.write("; Generated by libs/dsprot/tools/asmwriter.py\n")
f.write("\n")
f.write(f'.include "{ASM_COMMON_INCLUDE}"\n')
f.write("\n")
for symbol in symbols:
f.write(f".public {symbol.name()}\n")
if args.garbage is not None:
f.write(f".public {args.garbage}\n")
f.write("\n")
f.write(" .text\n")
f.write(" .balign 4, 0\n")
f.write("\n")
if args.key is not None:
for symbol in symbols:
f.write(f" arm_func_start {args.prefix}{symbol.name()}\n")
f.write(f"{args.prefix}{symbol.name()}:\n")
f.write(
f" run_encrypted_func {symbol.name()}, {symbol.code_size():#x}, {args.key:#x}\n"
)
f.write(f" arm_func_end {args.prefix}{symbol.name()}\n")
f.write("\n")
else:
f.write(f" local_arm_func_start {STATIC_INIT_FN_NAME}\n")
f.write(f"{STATIC_INIT_FN_NAME}:\n")
f.write(" decode_func_table encoded_func_table\n")
f.write("encoded_func_table:\n")
for symbol in symbols:
symbol_name = symbol.name()
if args.key is not None:
symbol_name = args.prefix + symbol_name
f.write(f" func_table_entry {symbol_name}, {symbol.code_size():#x}\n")
f.write(" func_table_end\n")
if args.garbage is not None:
f.write(f" garbage_ref {args.garbage}\n")
f.write(f" arm_func_end {STATIC_INIT_FN_NAME}\n")
f.write("\n")
f.write(" .section .ctor, 4\n")
f.write(f" sinit {STATIC_INIT_FN_NAME}\n")
f.write("\n")
def main():
parser = ArgumentParser()
parser.add_argument("-i", "--input", required=True, nargs="+")
parser.add_argument("-o", "--output", required=True)
parser.add_argument("-s", "--symbols", required=True, nargs="+")
parser.add_argument("-g", "--garbage")
parser.add_argument("-k", "--key")
parser.add_argument("-p", "--prefix", default="RunEncrypted_")
try:
args = Args(parser.parse_args())
except ValueError as e:
panic(e)
symbols = {}
missing_symbols = args.symbols.copy()
for input in args.inputs:
with input.open("rb") as f:
elf = Elf(ELFFile(f))
for symbol_name in missing_symbols.copy():
matches = list(elf.symbol_by_name(symbol_name))
if len(matches) == 0:
continue
symbols[symbol_name] = matches[0]
missing_symbols.remove(symbol_name)
if len(missing_symbols) > 0:
panic(f"Symbol {missing_symbols[0]} does not exist")
symbols = [symbols[name] for name in args.symbols]
with args.output.open("w") as f:
write_assembly(f, args, symbols)
if __name__ == "__main__":
main()
-1
View File
@@ -2,7 +2,6 @@
#include <stddef.h>
#include "nitro/card.h"
#include "nitro/dc.h"
#include "nitro/fs.h"
#include "nitro/fx.h"
#include "nitro/g2.h"
+16
View File
@@ -29,6 +29,19 @@ extern "C" {
#define CARD_RESULT_NO_RESPONSE
#define CARD_RESULT_ERROR
#define CARD_ROM_PAGE_SIZE 0x200
#define CARD_DATA_READY 0x800000
#define CARD_CTL_CMD_MASK 0x7000000
#define CARD_CTL_CMD_PAGE 0x1000000
#define CARD_CTL_READ 0x20000000
#define CARD_CTL_START 0x80000000
#define CARD_CMD_ENCRYPTED_READ 0xb7
#define CARDMST_ENABLE 0x80
typedef u32 CARDBackupType;
typedef u32 CARDResult;
@@ -45,6 +58,9 @@ CARDResult CARD_GetResultCode(void);
BOOL CARD_func_0033();
void CARD_func_0034();
void CARD_func_0010(u32);
void CARD_func_0011(u32);
inline BOOL CARD_ReadEepromAsync(u32 offset, void *buf, u32 size, void *param4, void *param5) {
return CARD_ReadWriteBackupAsync(offset, buf, size, param4, param5, 1, 6, 1, 0);
}
+18
View File
@@ -7,8 +7,10 @@ extern "C" {
#include <stdarg.h>
#include "nitro/os/cache.h"
#include "nitro/os/context.h"
#include "nitro/os/mutex.h"
#include "nitro/os/owner.h"
#include "nitro/os/thread.h"
#include "nitro/reg.h"
@@ -30,6 +32,12 @@ extern "C" {
#define OS_THREAD_LAUNCHER_PRIORITY 0x10
#define OS_EXMEM_CNT_NDS_SLOT_ACCESS_SHIFT 11
#define OS_EXMEM_CNT_NDS_SLOT_ACCESS (1 << OS_EXMEM_CNT_NDS_SLOT_ACCESS_SHIFT)
#define OS_CPU_ARM9 0
#define OS_CPU_ARM7 1
typedef struct OSLinkedList {
/* 00 */ void *head;
/* 04 */ void *tail;
@@ -166,6 +174,9 @@ s32 OS_func_0171(u32, u32, u32);
s32 OS_func_0174(void);
BOOL OS_func_0065(void);
void OS_func_0176(u8 *);
void OS_func_0178(u32);
inline void OS_SetIrqCheckFlag(void) {
REG_IRQ |= 1;
}
@@ -228,9 +239,16 @@ inline BOOL OS_IsRunOnTwl(void) {
return false;
#else
// Probably checks some reg here
#define REG_A9ROM_OFFSET 0x4000
#define REG_SCFG_A9ROM_SEC_MASK 1
#endif
}
inline void OS_SetNdsSlotAccess(u32 processor) {
REG_EXMEM_CNT = (REG_EXMEM_CNT & ~OS_EXMEM_CNT_NDS_SLOT_ACCESS) | (processor << OS_EXMEM_CNT_NDS_SLOT_ACCESS_SHIFT);
}
#ifdef __cplusplus
} // extern "C"
#endif
@@ -1,12 +1,14 @@
#ifndef _NITRO_DC_H
#define _NITRO_DC_H
#include "nitro/types.h"
#ifndef _NITRO_OS_CACHE_H
#define _NITRO_OS_CACHE_H
#ifdef __cplusplus
extern "C" {
#endif
#include "nitro/types.h"
#define OS_CACHE_LINE_SIZE 0x20
void DC_StoreAll(void);
void DC_StoreRange(void *ptr, u32 size);
@@ -15,9 +17,10 @@ void DC_FlushRange(void *ptr, u32 size);
void DC_InvalidateRange(void *ptr, u32 size);
void DC_func_0004(void *, int);
void DC_func_0002();
void IC_InvalidateRange(void *ptr, u32 size);
#ifdef __cplusplus
} // extern "C"
#endif
+1 -1
View File
@@ -1,7 +1,7 @@
#ifndef _NITRO_CONTEXT_H
#define _NITRO_CONTEXT_H
#include <types.h>
#include "nitro/types.h"
typedef struct OSContext {
/* 0x00 */ u32 cpsr;
+2 -2
View File
@@ -1,8 +1,8 @@
#ifndef NITROSDK_OS_MUTEX_H
#define NITROSDK_OS_MUTEX_H
#include <nitro/os/thread.h>
#include <types.h>
#include "nitro/os/thread.h"
#include "nitro/types.h"
typedef struct OSMutex {
/* 0x00 */ OSThreadQueue queue;
+28
View File
@@ -0,0 +1,28 @@
#ifndef _NITRO_OS_OWNER_H
#define _NITRO_OS_OWNER_H
#ifdef __cplusplus
extern "C" {
#endif
#include "nitro/types.h"
typedef struct OSOwnerInfo {
/* 00 */ u8 unk_00[0x2];
struct {
/* 02 */ u8 month;
/* 03 */ u8 day;
} birthday;
/* 04 */ u8 unk_04[0x16];
/* 1a */ u16 nickNameLength;
/* 1c */ u8 unk_1c[0x38];
/* 54 */
} OSOwnerInfo;
void OS_func_0177(OSOwnerInfo *info);
#ifdef __cplusplus
} // extern "C"
#endif
#endif
+64 -47
View File
@@ -7,32 +7,37 @@ extern "C" {
#include "nitro/types.h"
#define REG_POWER_CNT (*(vu16 *) 0x04000304)
#define REG_IME (*(vu16 *) 0x04000208)
#define REG_BASE 0x4000000
#define REG_DISPSTAT (*(vu16 *) 0x4000004)
#define REG_VCOUNT (*(vu16 *) 0x04000006)
#define REG_DISP3DCNT (*(vu16 *) 0x04000060)
#define REG_DISPCAPCNT (*(vu32 *) 0x04000064)
#define REG_GFX_STATUS (*(vu32 *) 0x04000600)
#define REG_POWER_CNT (*(vu16 *) (REG_BASE | 0x304))
#define REG_IME (*(vu16 *) (REG_BASE | 0x208))
#define REG_DMA ((OSDma *) 0x040000B0)
#define REG_DMA0SAD (*(vu32 *) 0x040000B0)
#define REG_DMA0DAD (*(vu32 *) 0x040000B4)
#define REG_DMA0CNT (*(vu32 *) 0x040000B8)
#define REG_DISPSTAT (*(vu16 *) (REG_BASE | 0x4))
#define REG_VCOUNT (*(vu16 *) (REG_BASE | 0x6))
#define REG_DISP3DCNT (*(vu16 *) (REG_BASE | 0x60))
#define REG_DISPCAPCNT (*(vu32 *) (REG_BASE | 0x64))
#define REG_GFX_STATUS (*(vu32 *) (REG_BASE | 0x600))
#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_DMA ((OSDma *) (REG_BASE | 0xB0))
#define REG_DMA0SAD (*(vu32 *) (REG_BASE | 0xB0))
#define REG_DMA0DAD (*(vu32 *) (REG_BASE | 0xB4))
#define REG_DMA0CNT (*(vu32 *) (REG_BASE | 0xB8))
#define REG_VRAM_CNT_ABCD (*(vu32 *) (REG_BASE | 0x240))
#define REG_VRAM_CNT_A (*(vu8 *) (REG_BASE | 0x240))
#define REG_VRAM_CNT_B (*(vu8 *) (REG_BASE | 0x241))
#define REG_VRAM_CNT_C (*(vu8 *) (REG_BASE | 0x242))
#define REG_VRAM_CNT_D (*(vu8 *) (REG_BASE | 0x243))
#define REG_VRAM_CNT_E (*(vu8 *) (REG_BASE | 0x244))
#define REG_VRAM_CNT_F (*(vu8 *) (REG_BASE | 0x245))
#define REG_VRAM_CNT_G (*(vu8 *) (REG_BASE | 0x246))
#define REG_WRAM_CNT (*(vu8 *) (REG_BASE | 0x247))
#define REG_VRAM_CNT_HI (*(vu16 *) (REG_BASE | 0x248))
#define REG_VRAM_CNT_H (*(vu8 *) (REG_BASE | 0x248))
#define REG_VRAM_CNT_I (*(vu8 *) (REG_BASE | 0x249))
#define REG_EXMEM_CNT_OFFSET 0x204
#define REG_EXMEM_CNT (*(vu16 *) (REG_BASE | REG_EXMEM_CNT_OFFSET))
#if NITRO_VERSION >= 0x05057533
#define _BIOS_REG_BASE 0x02FFF000
@@ -41,7 +46,16 @@ extern "C" {
#endif
#define REG_PAD (*(u16 *) (_BIOS_REG_BASE | 0xFA8))
#define REG_KEYINPUT (*(u16 *) 0x04000130)
#define REG_KEYINPUT (*(u16 *) (REG_BASE | 0x130))
#define REG_CARD_AUX_SPI_CNT_OFFSET 0x1A0
#define REG_CARD_AUX_SPI_CNT (*(vu16 *) (REG_BASE | 0x1A0))
#define REG_CARD_CNT_OFFSET 0x1A4
#define REG_CARD_CNT (*(vu32 *) (REG_BASE | REG_CARD_CNT_OFFSET))
#define REG_CARD_CMD_OFFSET 0x1A8
#define REG_CARD_CMD (*(vu8 *) (REG_BASE | REG_CARD_CMD_OFFSET))
#define REG_CARD_DATA_OFFSET 0x100010
#define REG_CARD_DATA (*(vu32 *) (REG_BASE | REG_CARD_DATA_OFFSET))
#define REG_FRAME_COUNTER (*(u32 *) (_BIOS_REG_BASE | 0xC3C))
#define REG_027FFC40 (*(u16 *) (_BIOS_REG_BASE | 0xC40))
@@ -56,33 +70,33 @@ extern "C" {
#define REG_027FFF9C (*(u32 *) (_BIOS_REG_BASE | 0xF9C))
#define REG_027FFFA0 (*(u32 *) (_BIOS_REG_BASE | 0xFA0))
#define REG_GFX_FIFO (*(vu32 *) 0x04000400)
#define REG_GFX_FIFO_MATRIX_MODE (*(vu32 *) 0x04000440)
#define REG_GFX_FIFO_MATRIX_PUSH (*(vu32 *) 0x04000444)
#define REG_GFX_FIFO_MATRIX_POP (*(vu32 *) 0x04000448)
#define REG_GFX_FIFO_MATRIX_STORE (*(vu32 *) 0x0400044C)
#define REG_GFX_FIFO_MATRIX_RESTORE (*(vu32 *) 0x04000450)
#define REG_GFX_FIFO_MATRIX_IDENTITY (*(vu32 *) 0x04000454)
#define REG_GFX_FIFO_MATRIX_TRANSLATE (*(vu32 *) 0x04000470)
#define REG_GFX_FIFO_VERTEX_COLOR (*(vu32 *) 0x04000480)
#define REG_GFX_FIFO_VERTEX_TEXCOORD (*(vu32 *) 0x04000488)
#define REG_GFX_FIFO_VERTEX_16 (*(vu32 *) 0x0400048C)
#define REG_GFX_FIFO_VERTEX_XZ (*(vu32 *) 0x04000498)
#define REG_GFX_FIFO_POLYGON_ATTR (*(vu32 *) 0x040004A4)
#define REG_GFX_FIFO_TEXTURE_PARAM (*(vu32 *) 0x040004A8)
#define REG_GFX_FIFO_TEXTURE_PALETTE (*(vu32 *) 0x040004AC)
#define REG_GFX_FIFO_DIFFUSE_AMBIENT_REFLECT (*(vu32 *) 0x040004C0)
#define REG_GFX_FIFO_POLYGONS_BEGIN (*(vu32 *) 0x04000500)
#define REG_GFX_FIFO_POLYGONS_END (*(vu32 *) 0x04000504)
#define REG_GFX_FIFO_SWAP_BUFFERS (*(vu32 *) 0x04000540)
#define REG_GFX_FIFO_VIEWPORT (*(vu32 *) 0x04000580)
#define REG_GFX_FIFO (*(vu32 *) (REG_BASE | 0x400))
#define REG_GFX_FIFO_MATRIX_MODE (*(vu32 *) (REG_BASE | 0x440))
#define REG_GFX_FIFO_MATRIX_PUSH (*(vu32 *) (REG_BASE | 0x444))
#define REG_GFX_FIFO_MATRIX_POP (*(vu32 *) (REG_BASE | 0x448))
#define REG_GFX_FIFO_MATRIX_STORE (*(vu32 *) (REG_BASE | 0x44C))
#define REG_GFX_FIFO_MATRIX_RESTORE (*(vu32 *) (REG_BASE | 0x450))
#define REG_GFX_FIFO_MATRIX_IDENTITY (*(vu32 *) (REG_BASE | 0x454))
#define REG_GFX_FIFO_MATRIX_TRANSLATE (*(vu32 *) (REG_BASE | 0x470))
#define REG_GFX_FIFO_VERTEX_COLOR (*(vu32 *) (REG_BASE | 0x480))
#define REG_GFX_FIFO_VERTEX_TEXCOORD (*(vu32 *) (REG_BASE | 0x488))
#define REG_GFX_FIFO_VERTEX_16 (*(vu32 *) (REG_BASE | 0x48C))
#define REG_GFX_FIFO_VERTEX_XZ (*(vu32 *) (REG_BASE | 0x498))
#define REG_GFX_FIFO_POLYGON_ATTR (*(vu32 *) (REG_BASE | 0x4A4))
#define REG_GFX_FIFO_TEXTURE_PARAM (*(vu32 *) (REG_BASE | 0x4A8))
#define REG_GFX_FIFO_TEXTURE_PALETTE (*(vu32 *) (REG_BASE | 0x4AC))
#define REG_GFX_FIFO_DIFFUSE_AMBIENT_REFLECT (*(vu32 *) (REG_BASE | 0x4C0))
#define REG_GFX_FIFO_POLYGONS_BEGIN (*(vu32 *) (REG_BASE | 0x500))
#define REG_GFX_FIFO_POLYGONS_END (*(vu32 *) (REG_BASE | 0x504))
#define REG_GFX_FIFO_SWAP_BUFFERS (*(vu32 *) (REG_BASE | 0x540))
#define REG_GFX_FIFO_VIEWPORT (*(vu32 *) (REG_BASE | 0x580))
extern u32 __DTCM_LO;
#define DTCM_LO ((u8 *) &__DTCM_LO)
#define REG_IRQ (*(u32 *) (DTCM_LO + 0x3FF8))
#define _MAIN_REG_BASE 0x04000000
#define _SUB_REG_BASE 0x04001000
#define _MAIN_REG_BASE REG_BASE
#define _SUB_REG_BASE (REG_BASE | 0x1000)
#define _REG_DISPCNT(base) (*(u32 *) ((base) | 0x0))
#define _REG_BG0CNT(base) (*(vu16 *) ((base) | 0x8))
@@ -171,7 +185,10 @@ extern u32 __DTCM_LO;
#define REG_BLDALPHA_SUB _REG_BLDALPHA(_SUB_REG_BASE)
#define REG_MASTER_BRIGHT_SUB _REG_MASTER_BRIGHT(_SUB_REG_BASE)
#define REG_04FFF200 (*(vu32 *) 0x04FFF200)
#define REG_A9ROM_OFFSET 0x4000
#define REG_A9ROM (*(vu16 *) (REG_BASE | REG_A9ROM_OFFSET))
#define REG_04FFF200 (*(vu32 *) (REG_BASE | 0xFFF200))
#ifdef __cplusplus
} // extern "C"
+6
View File
@@ -9,11 +9,13 @@ extern "C" {
#endif
typedef unsigned long long u64;
typedef unsigned long ulong;
typedef unsigned int u32;
typedef unsigned short u16;
typedef unsigned char u8;
typedef long long s64;
typedef long long slong;
typedef int s32;
typedef short s16;
typedef char s8;
@@ -22,11 +24,13 @@ typedef float f32;
typedef double f64;
typedef volatile u64 vu64;
typedef volatile u64 vulong;
typedef volatile u32 vu32;
typedef volatile u16 vu16;
typedef volatile u8 vu8;
typedef volatile s64 vs64;
typedef volatile s64 vslong;
typedef volatile s32 vs32;
typedef volatile s16 vs16;
typedef volatile s8 vs8;
@@ -35,6 +39,8 @@ typedef volatile f32 vf32;
typedef volatile f64 vf64;
typedef s32 BOOL;
#define TRUE 1
#define FALSE 0
#define ATTRIBUTE_ALIGN(x) __attribute__((aligned(x)))
@@ -20,8 +20,7 @@ extern "C" void *func_ov000_02066294();
static const s16 data_ov001_020c27a8[] = {
0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E,
0x000F, 0x0010, 0x0011, 0x0012, 0x0014, 0x0015, 0x0018, 0x001C, 0x0019, 0x001A, 0x001D, 0x001E, 0x001F,
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0017, 0x0028, 0x003C, 0x0000, 0x0114,
0xEBAA, 0x4EB7, 0x4006, 0x3696, 0x5F01, 0x1F83, 0xE521, 0x335B, 0xE7EF, 0x197C, 0xE84B,
0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0017, 0x0028, 0x003C, 0x0000,
};
static const s16 data_ov001_020c276c[] = {
@@ -3,8 +3,8 @@
#include "Unknown/UnkStruct_027e09a4.hpp"
#include "Unknown/UnkStruct_027e0cec.hpp"
#include <nitro/dc.h>
#include <nitro/mi.h>
#include <nitro/os.h>
extern "C" void *func_02001308(void *, size_t, u32);
extern "C" UnkStruct_027e0cec_18_04 *func_ov000_02054690(void *, unk32, unk32, unk32, unk32, unk32);
-1
View File
@@ -10,7 +10,6 @@
#include "Unknown/UnkStruct_ov000_020b4ec4.hpp"
#include "Unknown/UnkStruct_ov000_020b50c0.hpp"
#include <nitro/dc.h>
#include <nitro/gx.h>
#include <nitro/os.h>
#include <nitro/reg.h>
+1 -1
View File
@@ -4,8 +4,8 @@
#include "Unknown/UnkStruct_0204af1c.hpp"
#include "global.h"
#include <nitro/dc.h>
#include <nitro/g2.h>
#include <nitro/os.h>
extern "C" {
void func_0200a7b0(unk32 param1, void *param2, void *param3, void *param4, unk32 param5, unk32 param6, unk32 param7,
@@ -27,8 +27,8 @@
#include "Unknown/UnkStruct_ov031_02118fa4.hpp"
#include "versions.h"
#include <nitro/dc.h>
#include <nitro/g2.h>
#include <nitro/os.h>
extern "C" {
void func_02019b3c();
@@ -7,8 +7,8 @@
#include "Unknown/UnkStruct_ov017_020c3f70.hpp"
#include <nitro/mi.h>
#include <nitro/dc.h>
#include <nitro/gx.h>
#include <nitro/os.h>
extern "C" {
void func_ov000_0205a950(u8 bgType, bool isTopScreen, bool);
@@ -397,7 +397,7 @@ bool AdventureModeManager_1B8_Base::func_ov024_020d0df8(unk32 param1, unk32 para
}
void AdventureModeManager_1B8_Base::func_ov024_020d0e64(void *ptr, u32 size) {
DC_func_0004(ptr, size * 2);
DC_FlushRange(ptr, size * 2);
GXS_BeginLoadBGExtPltt();
GXS_LoadBGExtPltt(ptr, 0x4000, size * 2);
GXS_EndLoadBGExtPltt();
@@ -2,7 +2,7 @@
#include "Unknown/UnkStruct_027e0d08.hpp"
#include "Unknown/UnkStruct_ov000_020b50c0.hpp"
#include <nitro/dc.h>
#include <nitro/os.h>
#include <nitro/snd.h>
extern "C" BOOL func_0200169c(void *, int, int, int, int, void *, int);
@@ -193,8 +193,8 @@ void UnkStruct_027e0d08::func_ov024_020d5fe4(s16 *param1, s16 *param2, u32 param
this->mUnk_14 -= 0x1000;
}
DC_func_0004(param1, param3);
DC_func_0004(param2, param3);
DC_FlushRange(param1, param3);
DC_FlushRange(param2, param3);
}
DECL_INSTANCE(UnkStruct_027e0d08, data_027e0d08);

Some files were not shown because too many files have changed in this diff Show More