summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build.yml36
-rw-r--r--.gitignore2
-rw-r--r--INSTALL.md12
-rw-r--r--config/eur/arm9/delinks.txt7
-rw-r--r--config/eur/arm9/overlays/ov000/delinks.txt54
-rw-r--r--config/eur/arm9/overlays/ov000/relocs.txt4
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt244
-rw-r--r--config/eur/arm9/overlays/ov001/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov002/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov003/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov004/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov004/relocs.txt2
-rw-r--r--config/eur/arm9/overlays/ov005/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov006/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov007/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov008/delinks.txt2
-rw-r--r--config/eur/arm9/overlays/ov009/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov010/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov011/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov012/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov013/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov014/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov015/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov016/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov017/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov018/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov018/symbols.txt74
-rw-r--r--config/eur/arm9/overlays/ov019/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov020/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov021/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov022/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov023/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov024/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov025/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov026/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov027/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov028/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov029/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov030/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov031/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov032/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov033/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov034/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov035/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov036/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov037/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov038/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov039/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov040/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov041/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov042/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov043/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov044/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov045/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov046/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov047/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov048/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov049/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov050/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov051/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov052/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov053/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov054/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov055/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov056/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov057/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov058/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov059/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov060/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov061/delinks.txt4
-rw-r--r--config/usa/arm9/delinks.txt7
-rw-r--r--config/usa/arm9/overlays/ov000/delinks.txt54
-rw-r--r--config/usa/arm9/overlays/ov000/relocs.txt4
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt146
-rw-r--r--config/usa/arm9/overlays/ov001/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov002/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov003/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov004/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov004/relocs.txt2
-rw-r--r--config/usa/arm9/overlays/ov005/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov006/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov007/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov008/delinks.txt2
-rw-r--r--config/usa/arm9/overlays/ov009/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov010/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov011/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov012/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov013/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov014/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov015/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov016/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov017/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov018/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov018/symbols.txt74
-rw-r--r--config/usa/arm9/overlays/ov019/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov020/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov021/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov022/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov023/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov024/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov025/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov026/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov027/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov028/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov029/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov030/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov031/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov032/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov033/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov034/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov035/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov036/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov037/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov038/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov039/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov040/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov041/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov042/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov043/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov044/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov045/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov046/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov047/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov048/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov049/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov050/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov051/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov052/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov053/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov054/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov055/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov056/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov057/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov058/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov059/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov060/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov061/delinks.txt4
-rw-r--r--docs/decompiling.md2
-rw-r--r--docs/overlays.md8
-rw-r--r--include/Actor/Actor.hpp2
-rw-r--r--include/Actor/ActorType.hpp1
-rw-r--r--include/Actor/Dungeon/ActorActionObject.hpp20
-rw-r--r--include/Actor/Navi/ActorForceNavi.hpp15
-rw-r--r--include/Actor/Navi/ActorNavi.hpp64
-rw-r--r--include/Actor/Navi/ActorNaviBase.hpp37
-rw-r--r--include/Actor/Navi/ActorWisdomNavi.hpp15
-rw-r--r--include/Item/ItemManager.hpp15
-rw-r--r--include/Map/MapOverworld.hpp75
-rw-r--r--include/Player/PlayerBase.hpp2
-rw-r--r--include/Player/PlayerLinkBase.hpp2
-rw-r--r--include/System/OverlayManager.hpp1
-rw-r--r--include/Unknown/UnkStruct_ov000_020c0c08.hpp21
-rw-r--r--libs/c/include/stddef.h2
-rw-r--r--libs/nds/include/nds/Overlay.h8
-rw-r--r--src/00_Core/Actor/Actor.cpp4
-rw-r--r--src/00_Core/Actor/Dungeon/ActorActionObject.cpp85
-rw-r--r--src/00_Core/Actor/Dungeon/ActorEventIcon.cpp2
-rw-r--r--src/00_Core/Actor/Navi/ActorForceNavi.cpp14
-rw-r--r--src/00_Core/Actor/Navi/ActorNavi.cpp32
-rw-r--r--src/00_Core/Actor/Navi/ActorWisdomNavi.cpp14
-rw-r--r--src/00_Core/Item/ItemManager.cpp2
-rw-r--r--src/00_Core/Player/PlayerLinkBase.cpp2
-rw-r--r--src/04_Load/Actor/Navi/ActorNavi.cpp3
-rw-r--r--src/18_Overworld/Map/MapOverworld.cpp38
-rw-r--r--src/Main/System/OverlayManager.cpp91
-rwxr-xr-x[-rw-r--r--]tools/configure.py356
-rw-r--r--tools/download_tool.py53
-rw-r--r--tools/get_platform.py31
-rwxr-xr-xtools/m2ctx.py2
-rw-r--r--tools/ninja_syntax.py2
-rw-r--r--tools/setup.py54
-rwxr-xr-x[-rw-r--r--]tools/sha1.py2
172 files changed, 1506 insertions, 777 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 00000000..ab144e57
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,36 @@
+name: Build
+
+on:
+ push:
+ pull_request:
+
+jobs:
+ build:
+ container: ghcr.io/zeldaret/ph-build:main
+
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ version: [eur, usa]
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: Prepare
+ run: |
+ mv /extract/* ./extract
+
+ - name: Build
+ run: |
+ python tools/configure.py ${{ matrix.version }} -w wibo --compiler /mwccarm --no-extract
+ ninja arm9 report check
+
+ - name: Upload report
+ uses: actions/upload-artifact@v4
+ with:
+ name: ${{ matrix.version }}_report
+ path: build/${{ matrix.version }}/report.json
diff --git a/.gitignore b/.gitignore
index 337d78bd..8681601b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,8 @@ ph_*/
*.sav
*.xMAP
objdiff.json
+/objdiff-cli
+/objdiff-cli.exe
/dsd
/dsd.exe
/dsd.pdb
diff --git a/INSTALL.md b/INSTALL.md
index 91c4a96c..525f22f6 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -24,23 +24,19 @@ python -m pip install -r tools/requirements.txt
```shell
pre-commit install
```
-5. Run the setup script:
-```shell
-python tools/setup.py
-```
-6. Run the Ninja configure script:
+5. Run the Ninja configure script:
```shell
python tools/configure.py <eur|usa>
```
+6. Put one or more base ROMs in the [`/extract/`](/extract/README.md) directory of this repository.
+
+Now you can run `ninja` to build a ROM for the chosen version.
> [!IMPORTANT]
> Rerun `configure.py` often to ensure that all C/C++ code gets compiled.
> [!NOTE]
> For Linux users: Wibo is used by default. If you want to use Wine instead, run `configure.py` with `-w <path/to/wine>`.
-7. Put one or more base ROMs in the [`/extract/`](/extract/README.md) directory of this repository.
-
-Now you can run `ninja` to build a ROM for the chosen version.
### Matching the base ROM
diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt
index 97a31c17..bea20dd6 100644
--- a/config/eur/arm9/delinks.txt
+++ b/config/eur/arm9/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02000000 end:0x02050ca0 kind:code align:32
.init start:0x02050ca0 end:0x02050f54 kind:code align:4
- .rodata start:0x02050f54 end:0x0205725c kind:data align:4
- .ctor start:0x0205725c end:0x020572c4 kind:data align:4
+ .rodata start:0x02050f54 end:0x0205725c kind:rodata align:4
+ .ctor start:0x0205725c end:0x020572c4 kind:rodata align:4
.data start:0x020572e0 end:0x02058e20 kind:data align:32
.bss start:0x02058e20 end:0x020773c0 kind:bss align:32
@@ -10,6 +10,9 @@ src/Main/Actor/ActorType.cpp:
.text start:0x0203e784 end:0x0203e8a0
.bss start:0x02069180 end:0x02069188
+src/Main/System/OverlayManager.cpp:
+ .text start:0x0202ff44 end:0x0203003c
+
libs/cpp/src/__register_global_object.cpp:
complete
.text start:0x0204f8d4 end:0x0204f8f4
diff --git a/config/eur/arm9/overlays/ov000/delinks.txt b/config/eur/arm9/overlays/ov000/delinks.txt
index 78534402..558720d1 100644
--- a/config/eur/arm9/overlays/ov000/delinks.txt
+++ b/config/eur/arm9/overlays/ov000/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x020773c0 end:0x020d8770 kind:code align:32
- .rodata start:0x020d8770 end:0x020df338 kind:data align:4
+ .rodata start:0x020d8770 end:0x020df338 kind:rodata align:4
.init start:0x020df338 end:0x020e1e88 kind:code align:4
- .ctor start:0x020e1e88 end:0x020e1f6c kind:data align:4
+ .ctor start:0x020e1e88 end:0x020e1f6c kind:rodata align:4
.data start:0x020e1f80 end:0x020e9320 kind:data align:32
.bss start:0x020e9320 end:0x020ec81c kind:bss align:32
.sbss start:0x020ec81c end:0x020eed40 kind:bss align:4
@@ -16,6 +16,56 @@ src/00_Core/Actor/ActorManager.cpp:
.text start:0x020c33d4 end:0x020c3e54
.data start:0x020e72a8 end:0x020e72f4
+src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp:
+ .text start:0x0208fa70 end:0x020903a8
+ .init start:0x020df678 end:0x020df6b8
+ .ctor start:0x020e1ec4 end:0x020e1ec8
+ .data start:0x020e2928 end:0x020e29e4
+ .sbss start:0x020ecd64 end:0x020ecd84
+
+src/00_Core/Actor/Dungeon/ActorEventIcon.cpp:
+ .text start:0x020904f4 end:0x020908f8
+ .init start:0x020df6f8 end:0x020df738
+ .ctor start:0x020e1ecc end:0x020e1ed0
+ .data start:0x020e2aa0 end:0x020e2b5c
+ .sbss start:0x020ecda4 end:0x020ecdc4
+
+src/00_Core/Actor/Navi/ActorNavi.cpp:
+ .text start:0x020b80e0 end:0x020b85d8
+ .init start:0x020e12d8 end:0x020e133c
+ .ctor start:0x020e1f08 end:0x020e1f0c
+ .data start:0x020e6514 end:0x020e6674
+ .sbss start:0x020ee1a0 end:0x020ee1d8
+
+src/00_Core/Actor/Navi/ActorForceNavi.cpp:
+ complete
+ .text start:0x020b862c end:0x020b86a4
+ .init start:0x020e133c end:0x020e137c
+ .ctor start:0x020e1f0c end:0x020e1f10
+ .data start:0x020e6674 end:0x020e676c
+ .sbss start:0x020ee1d8 end:0x020ee1f8
+
+src/00_Core/Actor/Navi/ActorNaviBase.cpp:
+ .text start:0x020b885c end:0x020bb118
+ .rodata start:0x020dc81c end:0x020dc858
+ .data start:0x020e676c end:0x020e68d4
+ .sbss start:0x020ee1f8 end:0x020ee1fc
+
+src/00_Core/Actor/Dungeon/ActorActionObject.cpp:
+ .text start:0x020be198 end:0x020be418
+ .init start:0x020e1b14 end:0x020e1b54
+ .ctor start:0x020e1f14 end:0x020e1f18
+ .data start:0x020e6d3c end:0x020e6df8
+ .sbss start:0x020ee55c end:0x020ee57c
+
+src/00_Core/Actor/Navi/ActorWisdomNavi.cpp:
+ complete
+ .text start:0x020c0b64 end:0x020c0bdc
+ .init start:0x020e1b54 end:0x020e1b94
+ .ctor start:0x020e1f18 end:0x020e1f1c
+ .data start:0x020e7098 end:0x020e7190
+ .sbss start:0x020ee590 end:0x020ee5b0
+
src/00_Core/Item/Item.cpp:
.text start:0x020ad020 end:0x020ad090
.rodata start:0x020dc574 end:0x020dc6c4
diff --git a/config/eur/arm9/overlays/ov000/relocs.txt b/config/eur/arm9/overlays/ov000/relocs.txt
index 6ec33322..5513c2e0 100644
--- a/config/eur/arm9/overlays/ov000/relocs.txt
+++ b/config/eur/arm9/overlays/ov000/relocs.txt
@@ -6526,7 +6526,7 @@ from:0x020b8628 kind:load to:0x020dc7f8 module:overlay(0)
from:0x020b8644 kind:arm_call to:0x0202e9dc module:main
from:0x020b8650 kind:arm_call_thumb to:0x02107810 module:overlay(4)
from:0x020b8664 kind:load to:0x027e0fe0 module:dtcm
-from:0x020b8668 kind:load to:0x020e667c module:overlay(0)
+from:0x020b8668 kind:load to:0x020e6674 add:8 module:overlay(0)
from:0x020b867c kind:arm_call_thumb to:0x02107994 module:overlay(4)
from:0x020b8684 kind:arm_call to:0x0202ea0c module:main
from:0x020b8698 kind:arm_call_thumb to:0x02107994 module:overlay(4)
@@ -7436,7 +7436,7 @@ from:0x020c0b5c kind:load to:0x02050f54 module:main
from:0x020c0b7c kind:arm_call to:0x0202e9dc module:main
from:0x020c0b88 kind:arm_call_thumb to:0x02107810 module:overlay(4)
from:0x020c0b9c kind:load to:0x027e0fe0 module:dtcm
-from:0x020c0ba0 kind:load to:0x020e70a0 module:overlay(0)
+from:0x020c0ba0 kind:load to:0x020e7098 add:8 module:overlay(0)
from:0x020c0bb4 kind:arm_call_thumb to:0x02107994 module:overlay(4)
from:0x020c0bbc kind:arm_call to:0x0202ea0c module:main
from:0x020c0bd0 kind:arm_call_thumb to:0x02107994 module:overlay(4)
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index 137aa6ad..4a84f67e 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -965,7 +965,7 @@ _ZN14ActorEventIcon8vfunc_08Ev kind:function(arm,size=0xb0) addr:0x2090580
_ZN14ActorEventIcon8vfunc_14Ej kind:function(arm,size=0xc) addr:0x2090630
_ZN14ActorEventIcon8vfunc_18Ej kind:function(arm,size=0xc) addr:0x209063c
_ZN14ActorEventIcon19func_ov000_02090648Ej kind:function(arm,size=0x12c) addr:0x2090648
-_Z19func_ov000_02090774j kind:function(arm,size=0x2c) addr:0x2090774
+_ZN14ActorEventIcon19func_ov000_02090774Ej kind:function(arm,size=0x2c) addr:0x2090774
_ZN14ActorEventIcon8vfunc_1cEPt kind:function(arm,size=0x110) addr:0x20907a0
_ZN14ActorEventIconD1Ev kind:function(arm,size=0x20) addr:0x20908b0
_ZN14ActorEventIconD0Ev kind:function(arm,size=0x28) addr:0x20908d0
@@ -2397,40 +2397,40 @@ func_ov000_020b7fe8 kind:function(arm,size=0x14) addr:0x20b7fe8
_ZN13PlayerManager4SaveEP15SaveItemManager kind:function(thumb,size=0x50) addr:0x20b7ffc
_ZN13PlayerManager17IncreaseMaxHealthEs kind:function(thumb,size=0x14) addr:0x20b804c
_ZN13PlayerManager19UpdateShipMaxHealthEv kind:function(thumb,size=0x80) addr:0x20b8060
-func_ov000_020b80e0 kind:function(arm,size=0x30) addr:0x20b80e0
-func_ov000_020b8110 kind:function(arm,size=0x24) addr:0x20b8110
-func_ov000_020b8134 kind:function(arm,size=0x14) addr:0x20b8134
-func_ov000_020b8148 kind:function(arm,size=0x1c) addr:0x20b8148
-func_ov000_020b8164 kind:function(arm,size=0x50) addr:0x20b8164
-func_ov000_020b81b4 kind:function(arm,size=0x40) addr:0x20b81b4
-func_ov000_020b81f4 kind:function(arm,size=0xc) addr:0x20b81f4
-func_ov000_020b8200 kind:function(arm,size=0x10) addr:0x20b8200
-func_ov000_020b8210 kind:function(arm,size=0x38) addr:0x20b8210
-func_ov000_020b8248 kind:function(arm,size=0x38) addr:0x20b8248
-func_ov000_020b8280 kind:function(arm,size=0x8) addr:0x20b8280
-func_ov000_020b8288 kind:function(arm,size=0x8) addr:0x20b8288
-func_ov000_020b8290 kind:function(arm,size=0x2c) addr:0x20b8290
-func_ov000_020b82bc kind:function(arm,size=0x2c) addr:0x20b82bc
-func_ov000_020b82e8 kind:function(arm,size=0x58) addr:0x20b82e8
-func_ov000_020b8340 kind:function(arm,size=0xb8) addr:0x20b8340
-func_ov000_020b83f8 kind:function(arm,size=0x20) addr:0x20b83f8
-func_ov000_020b8418 kind:function(arm,size=0x3c) addr:0x20b8418
-func_ov000_020b8454 kind:function(arm,size=0x24) addr:0x20b8454
-func_ov000_020b8478 kind:function(arm,size=0x24) addr:0x20b8478
-func_ov000_020b849c kind:function(arm,size=0x34) addr:0x20b849c
-func_ov000_020b84d0 kind:function(arm,size=0x8) addr:0x20b84d0
-func_ov000_020b84d8 kind:function(arm,size=0x54) addr:0x20b84d8
-func_ov000_020b852c kind:function(arm,size=0x10) addr:0x20b852c
-func_ov000_020b853c kind:function(arm,size=0x14) addr:0x20b853c
-func_ov000_020b8550 kind:function(arm,size=0x48) addr:0x20b8550
-func_ov000_020b8598 kind:function(arm,size=0x40) addr:0x20b8598
+_ZN9ActorNavi6CreateEv kind:function(arm,size=0x30) addr:0x20b80e0
+_ZN24UnkStruct_ov000_020b8110C2Ev kind:function(arm,size=0x24) addr:0x20b8110
+_ZN24UnkStruct_ov000_020b8110D1Ev kind:function(arm,size=0x14) addr:0x20b8134
+_ZN24UnkStruct_ov000_020b8110D0Ev kind:function(arm,size=0x1c) addr:0x20b8148
+_ZN24UnkStruct_ov000_020b81108vfunc_08EPs kind:function(arm,size=0x50) addr:0x20b8164
+_ZN24UnkStruct_ov000_020b81108vfunc_18EPi kind:function(arm,size=0x40) addr:0x20b81b4
+_ZN24UnkStruct_ov000_020b81108vfunc_14EPt kind:function(arm,size=0xc) addr:0x20b81f4
+_ZN9ActorNavi19func_ov000_020b8200Ev kind:function(arm,size=0x10) addr:0x20b8200
+_ZN9ActorNavi8vfunc_c4Ev kind:function(arm,size=0x38) addr:0x20b8210
+_ZN9ActorNavi8vfunc_c8Ev kind:function(arm,size=0x38) addr:0x20b8248
+_ZN9ActorNavi10GetFairyIdEv kind:function(arm,size=0x8) addr:0x20b8280
+_ZN9ActorNavi8vfunc_b8Ev kind:function(arm,size=0x8) addr:0x20b8288
+_ZN9ActorNavi8vfunc_d4Ev kind:function(arm,size=0x2c) addr:0x20b8290
+_ZN9ActorNavi8vfunc_d0Ev kind:function(arm,size=0x2c) addr:0x20b82bc
+_ZN9ActorNavi9SetActiveEb kind:function(arm,size=0x58) addr:0x20b82e8
+_ZN9ActorNavi8vfunc_e0Ev kind:function(arm,size=0xb8) addr:0x20b8340
+_ZN9ActorNavi8vfunc_d8Ev kind:function(arm,size=0x20) addr:0x20b83f8
+_ZN9ActorNavi8vfunc_20Eb kind:function(arm,size=0x3c) addr:0x20b8418
+_ZN9ActorNavi8vfunc_ccEPi kind:function(arm,size=0x24) addr:0x20b8454
+_ZN9ActorNavi8vfunc_c0EP5Vec3p kind:function(arm,size=0x24) addr:0x20b8478
+_ZN9ActorNavi8vfunc_e8Ev kind:function(arm,size=0x34) addr:0x20b849c
+_ZN9ActorNavi8vfunc_8cEv kind:function(arm,size=0x8) addr:0x20b84d0
+_ZN9ActorNavi8vfunc_ecEv kind:function(arm,size=0x54) addr:0x20b84d8
+_Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x20b852c local
+_ZN9ActorNavi19func_ov000_020b853cEv kind:function(arm,size=0x14) addr:0x20b853c
+_ZN9ActorNaviD1Ev kind:function(arm,size=0x48) addr:0x20b8550
+_ZN9ActorNaviD0Ev kind:function(arm,size=0x40) addr:0x20b8598
func_ov000_020b85d8 kind:function(thumb,size=0x28) addr:0x20b85d8
func_ov000_020b8600 kind:function(arm,size=0x10) addr:0x20b8600
func_ov000_020b8610 kind:function(arm,size=0x1c) addr:0x20b8610
-func_ov000_020b862c kind:function(arm,size=0x40) addr:0x20b862c
-func_ov000_020b866c kind:function(arm,size=0x8) addr:0x20b866c
-func_ov000_020b8674 kind:function(arm,size=0x1c) addr:0x20b8674
-func_ov000_020b8690 kind:function(arm,size=0x14) addr:0x20b8690
+_ZN14ActorForceNavi6CreateEv kind:function(arm,size=0x40) addr:0x20b862c
+_ZN14ActorForceNavi10GetFairyIdEv kind:function(arm,size=0x8) addr:0x20b866c
+_ZN14ActorForceNaviD0Ev kind:function(arm,size=0x1c) addr:0x20b8674
+_ZN14ActorForceNaviD1Ev kind:function(arm,size=0x14) addr:0x20b8690
func_ov000_020b86a4 kind:function(arm,size=0x44) addr:0x20b86a4
func_ov000_020b86e8 kind:function(arm,size=0x30) addr:0x20b86e8
func_ov000_020b8718 kind:function(arm,size=0x8) addr:0x20b8718
@@ -2502,104 +2502,6 @@ _ZN15ItemModelLoader19func_ov000_020bb3f4EPc kind:function(thumb,size=0x20) addr
_ZN15ItemModelLoader19func_ov000_020bb414Ei kind:function(thumb,size=0xc) addr:0x20bb414
_ZN15ItemModelLoader19func_ov000_020bb420Ei kind:function(thumb,size=0xc) addr:0x20bb420
_ZN15ItemModelLoader19func_ov000_020bb42cEi kind:function(thumb,size=0x20) addr:0x20bb42c
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
_ZN14PlayerLinkBase12GetMaxHealthEv kind:function(arm,size=0x20) addr:0x20bb44c
_ZN14PlayerLinkBase8vfunc_10EP8Cylinder kind:function(arm,size=0x70) addr:0x20bb46c
_ZN14PlayerLinkBase8vfunc_14EP8Cylinder kind:function(arm,size=0x30) addr:0x20bb4dc
@@ -2715,13 +2617,13 @@ func_ov000_020bd958 kind:function(arm,size=0x4fc) addr:0x20bd958
func_ov000_020bde54 kind:function(arm,size=0x60) addr:0x20bde54
func_ov000_020bdeb4 kind:function(arm,size=0x10c) addr:0x20bdeb4
func_ov000_020bdfc0 kind:function(arm,size=0x1d8) addr:0x20bdfc0
-func_ov000_020be198 kind:function(arm,size=0x30) addr:0x20be198
-func_ov000_020be1c8 kind:function(arm,size=0x20) addr:0x20be1c8
-func_ov000_020be1e8 kind:function(arm,size=0x14) addr:0x20be1e8
-func_ov000_020be1fc kind:function(arm,size=0x1c) addr:0x20be1fc
-func_ov000_020be218 kind:function(arm,size=0x7c) addr:0x20be218
-func_ov000_020be294 kind:function(arm,size=0x178) addr:0x20be294
-func_ov000_020be40c kind:function(arm,size=0xc) addr:0x20be40c
+_ZN17ActorActionObject6CreateEv kind:function(arm,size=0x30) addr:0x20be198
+_ZN17ActorActionObjectC1Ev kind:function(arm,size=0x20) addr:0x20be1c8
+_ZN17ActorActionObjectD1Ev kind:function(arm,size=0x14) addr:0x20be1e8
+_ZN17ActorActionObjectD0Ev kind:function(arm,size=0x1c) addr:0x20be1fc
+_ZN17ActorActionObject8vfunc_08Ev kind:function(arm,size=0x7c) addr:0x20be218
+_ZN17ActorActionObject8vfunc_14Ej kind:function(arm,size=0x178) addr:0x20be294
+_ZN17ActorActionObject8vfunc_18Ej kind:function(arm,size=0xc) addr:0x20be40c
func_ov000_020be418 kind:function(arm,size=0x4c) addr:0x20be418
func_ov000_020be464 kind:function(arm,size=0x78) addr:0x20be464
func_ov000_020be4dc kind:function(arm,size=0x64) addr:0x20be4dc
@@ -2794,10 +2696,10 @@ _ZN11EquipShield8vfunc_1cEv kind:function(arm,size=0xc) addr:0x20c07f8
_ZN11EquipShield8vfunc_30Ev kind:function(arm,size=0x68) addr:0x20c0804
_ZN11EquipShield8vfunc_38Ei kind:function(arm,size=0x21c) addr:0x20c086c
_ZNK11EquipShield9GetHitboxEP8Cylinder kind:function(arm,size=0xdc) addr:0x20c0a88
-func_ov000_020c0b64 kind:function(arm,size=0x40) addr:0x20c0b64
-func_ov000_020c0ba4 kind:function(arm,size=0x8) addr:0x20c0ba4
-func_ov000_020c0bac kind:function(arm,size=0x1c) addr:0x20c0bac
-func_ov000_020c0bc8 kind:function(arm,size=0x14) addr:0x20c0bc8
+_ZN15ActorWisdomNavi6CreateEv kind:function(arm,size=0x40) addr:0x20c0b64
+_ZN15ActorWisdomNavi10GetFairyIdEv kind:function(arm,size=0x8) addr:0x20c0ba4
+_ZN15ActorWisdomNaviD0Ev kind:function(arm,size=0x1c) addr:0x20c0bac
+_ZN15ActorWisdomNaviD1Ev kind:function(arm,size=0x14) addr:0x20c0bc8
func_ov000_020c0bdc kind:function(arm,size=0x2c) addr:0x20c0bdc
func_ov000_020c0c08 kind:function(thumb,size=0x28) addr:0x20c0c08
func_ov000_020c0c30 kind:function(thumb,size=0x4) addr:0x20c0c30
@@ -2843,7 +2745,7 @@ _ZN5Actor8vfunc_30Ev kind:function(arm,size=0x8) addr:0x20c17b0
_ZN5Actor8vfunc_14Ej kind:function(arm,size=0x4) addr:0x20c17b8
_ZN5Actor8vfunc_18Ej kind:function(arm,size=0x18) addr:0x20c17bc
_ZN5Actor8vfunc_1cEPt kind:function(arm,size=0xc0) addr:0x20c17d4
-_ZN5Actor8vfunc_20Ei kind:function(arm,size=0x4) addr:0x20c1894
+_ZN5Actor8vfunc_20Eb kind:function(arm,size=0x4) addr:0x20c1894
_ZN5Actor10SetUnk_129Eb kind:function(arm,size=0x10) addr:0x20c1898
_ZN5Actor10SetUnk_11bEv kind:function(arm,size=0x1c) addr:0x20c18a8
_ZN5Actor11SetVelocityEP5Vec3p kind:function(arm,size=0x38) addr:0x20c18c4
@@ -2871,7 +2773,7 @@ _ZN5Actor20KillPickupItemActorsEv kind:function(arm,size=0x54) addr:0x20c1b18
_ZN5Actor15TrySetTransformEP9Transform kind:function(arm,size=0x48) addr:0x20c1b6c
_ZN5Actor12SetTransformEP9Transform kind:function(arm,size=0x44) addr:0x20c1bb4
_ZN5Actor8vfunc_a8Ev kind:function(arm,size=0x4) addr:0x20c1bf8
-_ZN5Actor18func_Ov00_020c1bfcEi kind:function(arm,size=0x24) addr:0x20c1bfc
+_ZN5Actor18func_ov00_020c1bfcEi kind:function(arm,size=0x24) addr:0x20c1bfc
_ZN5Actor18func_ov00_020c1c20Eii kind:function(arm,size=0x28) addr:0x20c1c20
_ZN5Actor8vfunc_48EP9Knockback kind:function(arm,size=0x8) addr:0x20c1c48
_ZN5Actor8vfunc_4cEPi kind:function(arm,size=0x44) addr:0x20c1c50
@@ -4038,7 +3940,7 @@ __sinit_ov000_020df4cc kind:function(arm,size=0x174) addr:0x20df4cc
__sinit_ov000_020df640 kind:function(arm,size=0x38) addr:0x20df640
__sinit_ActorSwitchObject.cpp kind:function(arm,size=0x40) addr:0x20df678
__sinit_ov000_020df6b8 kind:function(arm,size=0x40) addr:0x20df6b8
-__sinit_ov000_020df6f8 kind:function(arm,size=0x40) addr:0x20df6f8
+__sinit_ActorEventIcon.cpp kind:function(arm,size=0x40) addr:0x20df6f8
__sinit_ov000_020df738 kind:function(arm,size=0x38) addr:0x20df738
__sinit_ov000_020df770 kind:function(arm,size=0x20) addr:0x20df770
__sinit_ov000_020df790 kind:function(arm,size=0x1718) addr:0x20df790
@@ -4053,11 +3955,11 @@ __sinit_ov000_020e11d8 kind:function(arm,size=0x34) addr:0x20e11d8
__sinit_ov000_020e120c kind:function(arm,size=0x44) addr:0x20e120c
__sinit_ov000_020e1250 kind:function(arm,size=0x40) addr:0x20e1250
__sinit_ov000_020e1290 kind:function(arm,size=0x48) addr:0x20e1290
-__sinit_ov000_020e12d8 kind:function(arm,size=0x64) addr:0x20e12d8
-__sinit_ov000_020e133c kind:function(arm,size=0x40) addr:0x20e133c
+__sinit_ActorNavi.cpp kind:function(arm,size=0x64) addr:0x20e12d8 local
+__sinit_ActorForceNavi.cpp kind:function(arm,size=0x40) addr:0x20e133c local
__sinit_ov000_020e137c kind:function(arm,size=0x798) addr:0x20e137c
-__sinit_ov000_020e1b14 kind:function(arm,size=0x40) addr:0x20e1b14
-__sinit_ov000_020e1b54 kind:function(arm,size=0x40) addr:0x20e1b54
+__sinit_ActorActionObject.cpp kind:function(arm,size=0x40) addr:0x20e1b14 local
+__sinit_ActorWisdomNavi.cpp kind:function(arm,size=0x40) addr:0x20e1b54 local
__sinit_ov000_020e1b94 kind:function(arm,size=0x40) addr:0x20e1b94
__sinit_ov000_020e1bd4 kind:function(arm,size=0x40) addr:0x20e1bd4
__sinit_ov000_020e1c14 kind:function(arm,size=0x40) addr:0x20e1c14
@@ -4866,7 +4768,7 @@ data_ov000_020e59fc kind:data(any) addr:0x20e59fc
data_ov000_020e5a0c kind:data(any) addr:0x20e5a0c
data_ov000_020e5a20 kind:data(any) addr:0x20e5a20
data_ov000_020e5a34 kind:data(any) addr:0x20e5a34
-_ZTV13LinkStateItem kind:data(any) addr:0x20e5a48
+_ZTV13LinkStateItem kind:data(any) addr:0x20e5a40
data_ov000_020e5a8c kind:data(any) addr:0x20e5a8c
data_ov000_020e5a90 kind:data(any) addr:0x20e5a90
data_ov000_020e5a94 kind:data(any) addr:0x20e5a94
@@ -5054,9 +4956,9 @@ data_ov000_020e6528 kind:data(any) addr:0x20e6528
data_ov000_020e652c kind:data(any) addr:0x20e652c
data_ov000_020e6530 kind:data(any) addr:0x20e6530
data_ov000_020e6534 kind:data(any) addr:0x20e6534
-data_ov000_020e6560 kind:data(any) addr:0x20e6560
-data_ov000_020e6658 kind:data(any) addr:0x20e6658
-data_ov000_020e667c kind:data(any) addr:0x20e667c
+_ZTV9ActorNavi kind:data(any) addr:0x20e6560
+_ZTV24UnkStruct_ov000_020b8110 kind:data(any) addr:0x20e6658
+_ZTV14ActorForceNavi kind:data(any) addr:0x20e6674
data_ov000_020e676c kind:data(any) addr:0x20e676c
data_ov000_020e6770 kind:data(any) addr:0x20e6770
data_ov000_020e6774 kind:data(any) addr:0x20e6774
@@ -5115,7 +5017,7 @@ data_ov000_020e6c58 kind:data(any) addr:0x20e6c58
data_ov000_020e6c5c kind:data(any) addr:0x20e6c5c
_ZTV14PlayerLinkBase kind:data(any) addr:0x20e6c88
data_ov000_020e6d18 kind:data(any) addr:0x20e6d18
-data_ov000_020e6d44 kind:data(any) addr:0x20e6d44
+_ZTV17ActorActionObject kind:data(any) addr:0x20e6d44
data_ov000_020e6df8 kind:data(any) addr:0x20e6df8
data_ov000_020e6dfc kind:data(any) addr:0x20e6dfc
data_ov000_020e6e08 kind:data(any) addr:0x20e6e08
@@ -5155,7 +5057,7 @@ data_ov000_020e7014 kind:data(any) addr:0x20e7014
data_ov000_020e7018 kind:data(any) addr:0x20e7018
data_ov000_020e701c kind:data(any) addr:0x20e701c
data_ov000_020e7048 kind:data(any) addr:0x20e7048
-data_ov000_020e70a0 kind:data(any) addr:0x20e70a0
+_ZTV15ActorWisdomNavi kind:data(any) addr:0x20e7098
data_ov000_020e7198 kind:data(any) addr:0x20e7198
data_ov000_020e71a0 kind:data(any) addr:0x20e71a0
data_ov000_020e71a4 kind:data(any) addr:0x20e71a4
@@ -5168,14 +5070,14 @@ data_ov000_020e71bc kind:data(any) addr:0x20e71bc
sShipTypes kind:data(any) addr:0x20e71c0
_ZTV17KillPickupsFilter kind:data(any) addr:0x20e71e8
_ZTV5Actor kind:data(any) addr:0x20e71f4
-data_ov000_020e72a8 kind:data(any) addr:0x20e72a8
-data_ov000_020e72ac kind:data(any) addr:0x20e72ac
-data_ov000_020e72b0 kind:data(any) addr:0x20e72b0
-data_ov000_020e72b4 kind:data(any) addr:0x20e72b4
-data_ov000_020e72b8 kind:data(any) addr:0x20e72b8
-data_ov000_020e72bc kind:data(any) addr:0x20e72bc
-data_ov000_020e72c0 kind:data(any) addr:0x20e72c0
-data_ov000_020e72c4 kind:data(any) addr:0x20e72c4
+@965 kind:data(any) addr:0x20e72a8 local
+@964 kind:data(any) addr:0x20e72ac local
+@963 kind:data(any) addr:0x20e72b0 local
+@962 kind:data(any) addr:0x20e72b4 local
+@961 kind:data(any) addr:0x20e72b8 local
+@960 kind:data(any) addr:0x20e72bc local
+@959 kind:data(any) addr:0x20e72c0 local
+@958 kind:data(any) addr:0x20e72c4 local
_ZTV11FilterActor kind:data(any) addr:0x20e72e8
data_ov000_020e72fc kind:data(any) addr:0x20e72fc
data_ov000_020e7300 kind:data(any) addr:0x20e7300
@@ -5973,12 +5875,12 @@ data_ov000_020ee16c kind:bss addr:0x20ee16c
data_ov000_020ee178 kind:bss addr:0x20ee178
data_ov000_020ee184 kind:bss addr:0x20ee184
data_ov000_020ee198 kind:bss addr:0x20ee198
-data_ov000_020ee1a0 kind:bss addr:0x20ee1a0
-data_ov000_020ee1ac kind:bss addr:0x20ee1ac
-data_ov000_020ee1c0 kind:bss addr:0x20ee1c0
+@418 kind:bss addr:0x20ee1a0 local
+_ZN9ActorNavi5gTypeE kind:bss addr:0x20ee1ac
+@419 kind:bss addr:0x20ee1c0 local
data_ov000_020ee1cc kind:bss addr:0x20ee1cc
-data_ov000_020ee1d8 kind:bss addr:0x20ee1d8
-data_ov000_020ee1e4 kind:bss addr:0x20ee1e4
+@403 kind:bss addr:0x20ee1d8 local
+_ZN14ActorForceNavi5gTypeE kind:bss addr:0x20ee1e4
data_ov000_020ee1f8 kind:bss addr:0x20ee1f8
data_ov000_020ee1fc kind:bss addr:0x20ee1fc
data_ov000_020ee208 kind:bss addr:0x20ee208
@@ -6037,12 +5939,12 @@ data_ov000_020ee50c kind:bss addr:0x20ee50c
data_ov000_020ee520 kind:bss addr:0x20ee520
data_ov000_020ee534 kind:bss addr:0x20ee534
data_ov000_020ee548 kind:bss addr:0x20ee548
-data_ov000_020ee55c kind:bss addr:0x20ee55c
-data_ov000_020ee568 kind:bss addr:0x20ee568
+@360 kind:bss addr:0x20ee55c local
+_ZN17ActorActionObject5gTypeE kind:bss addr:0x20ee568
gPlayerAnimHandler kind:bss addr:0x20ee57c
data_ov000_020ee588 kind:bss addr:0x20ee588
-data_ov000_020ee590 kind:bss addr:0x20ee590
-data_ov000_020ee59c kind:bss addr:0x20ee59c
+@403 kind:bss addr:0x20ee590 local
+_ZN15ActorWisdomNavi5gTypeE kind:bss addr:0x20ee59c
data_ov000_020ee5b0 kind:bss addr:0x20ee5b0
data_ov000_020ee5bc kind:bss addr:0x20ee5bc
data_ov000_020ee5d0 kind:bss addr:0x20ee5d0
diff --git a/config/eur/arm9/overlays/ov001/delinks.txt b/config/eur/arm9/overlays/ov001/delinks.txt
index 40006dbe..020be41c 100644
--- a/config/eur/arm9/overlays/ov001/delinks.txt
+++ b/config/eur/arm9/overlays/ov001/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x020eed40 end:0x020f86b4 kind:code align:32
- .rodata start:0x020f86b4 end:0x020f88f4 kind:data align:4
- .ctor start:0x020f88f4 end:0x020f88f8 kind:data align:4
+ .rodata start:0x020f86b4 end:0x020f88f4 kind:rodata align:4
+ .ctor start:0x020f88f4 end:0x020f88f8 kind:rodata align:4
.data start:0x020f8900 end:0x020f8b60 kind:data align:32
.bss start:0x020f8b60 end:0x020ff1a0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov002/delinks.txt b/config/eur/arm9/overlays/ov002/delinks.txt
index 884d78b3..f533848b 100644
--- a/config/eur/arm9/overlays/ov002/delinks.txt
+++ b/config/eur/arm9/overlays/ov002/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x020eed40 end:0x020f672c kind:code align:32
- .rodata start:0x020f672c end:0x020f6978 kind:data align:4
+ .rodata start:0x020f672c end:0x020f6978 kind:rodata align:4
.init start:0x020f6978 end:0x020f69a4 kind:code align:4
- .ctor start:0x020f69a4 end:0x020f69ac kind:data align:4
+ .ctor start:0x020f69a4 end:0x020f69ac kind:rodata align:4
.data start:0x020f69c0 end:0x020f7160 kind:data align:32
.bss start:0x020f7160 end:0x02100180 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov003/delinks.txt b/config/eur/arm9/overlays/ov003/delinks.txt
index a7c88d15..7016907a 100644
--- a/config/eur/arm9/overlays/ov003/delinks.txt
+++ b/config/eur/arm9/overlays/ov003/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x020eed40 end:0x020fc454 kind:code align:32
- .rodata start:0x020fc454 end:0x020ffe28 kind:data align:4
+ .rodata start:0x020fc454 end:0x020ffe28 kind:rodata align:4
.init start:0x020ffe28 end:0x020fffcc kind:code align:4
- .ctor start:0x020fffcc end:0x020ffff4 kind:data align:4
+ .ctor start:0x020fffcc end:0x020ffff4 kind:rodata align:4
.data start:0x02100000 end:0x02100a80 kind:data align:32
.bss start:0x02100a80 end:0x02100ae0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov004/delinks.txt b/config/eur/arm9/overlays/ov004/delinks.txt
index 3df0adbc..7d3bb7ad 100644
--- a/config/eur/arm9/overlays/ov004/delinks.txt
+++ b/config/eur/arm9/overlays/ov004/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02100ae0 end:0x0210f824 kind:code align:32
- .rodata start:0x0210f824 end:0x0210fd58 kind:data align:4
+ .rodata start:0x0210f824 end:0x0210fd58 kind:rodata align:4
.init start:0x0210fd58 end:0x0210fd90 kind:code align:4
- .ctor start:0x0210fd90 end:0x0210fd9c kind:data align:4
+ .ctor start:0x0210fd90 end:0x0210fd9c kind:rodata align:4
.data start:0x0210fda0 end:0x021113e0 kind:data align:32
.bss start:0x021113e0 end:0x021113e0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov004/relocs.txt b/config/eur/arm9/overlays/ov004/relocs.txt
index ce85e811..d277363f 100644
--- a/config/eur/arm9/overlays/ov004/relocs.txt
+++ b/config/eur/arm9/overlays/ov004/relocs.txt
@@ -1960,7 +1960,7 @@ from:0x02109a4c kind:thumb_call_arm to:0x020d0530 module:overlay(0)
from:0x02109a52 kind:thumb_call to:0x021099b0 module:overlay(4)
from:0x02109a5e kind:thumb_call to:0x0210add4 module:overlay(4)
from:0x02109aba kind:thumb_call_arm to:0x0204f614 module:main
-from:0x02109ad8 kind:load to:0x020e5a48 add:8 module:overlay(0)
+from:0x02109ad8 kind:load to:0x020e5a40 add:8 module:overlay(0)
from:0x02109adc kind:load to:0x021079d5 module:overlay(4)
from:0x02109ae0 kind:load to:0x02057200 module:main
from:0x02109ae4 kind:load to:0x020b7d74 module:overlay(0)
diff --git a/config/eur/arm9/overlays/ov005/delinks.txt b/config/eur/arm9/overlays/ov005/delinks.txt
index 37358df1..cd744ee4 100644
--- a/config/eur/arm9/overlays/ov005/delinks.txt
+++ b/config/eur/arm9/overlays/ov005/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02100ae0 end:0x021122a0 kind:code align:32
- .rodata start:0x021122a0 end:0x021123bc kind:data align:4
+ .rodata start:0x021122a0 end:0x021123bc kind:rodata align:4
.init start:0x021123bc end:0x02112464 kind:code align:4
- .ctor start:0x02112464 end:0x02112478 kind:data align:4
+ .ctor start:0x02112464 end:0x02112478 kind:rodata align:4
.data start:0x02112480 end:0x02112c20 kind:data align:32
.bss start:0x02112c20 end:0x02112c20 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov006/delinks.txt b/config/eur/arm9/overlays/ov006/delinks.txt
index 4d3863bd..bcf568d7 100644
--- a/config/eur/arm9/overlays/ov006/delinks.txt
+++ b/config/eur/arm9/overlays/ov006/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x02100ae0 end:0x02102ffc kind:code align:32
- .rodata start:0x02102ffc end:0x021039ac kind:data align:4
- .ctor start:0x021039ac end:0x021039b0 kind:data align:4
+ .rodata start:0x02102ffc end:0x021039ac kind:rodata align:4
+ .ctor start:0x021039ac end:0x021039b0 kind:rodata align:4
.data start:0x021039c0 end:0x02104000 kind:data align:32
.bss start:0x02104000 end:0x02104020 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov007/delinks.txt b/config/eur/arm9/overlays/ov007/delinks.txt
index 5de92741..48eb7448 100644
--- a/config/eur/arm9/overlays/ov007/delinks.txt
+++ b/config/eur/arm9/overlays/ov007/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x02100ae0 end:0x021028c8 kind:code align:32
- .rodata start:0x021028c8 end:0x02102938 kind:data align:4
- .ctor start:0x02102938 end:0x0210293c kind:data align:4
+ .rodata start:0x021028c8 end:0x02102938 kind:rodata align:4
+ .ctor start:0x02102938 end:0x0210293c kind:rodata align:4
.data start:0x02102940 end:0x02102aa0 kind:data align:32
.bss start:0x02102aa0 end:0x0210eb40 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov008/delinks.txt b/config/eur/arm9/overlays/ov008/delinks.txt
index 84cf4871..0abc0500 100644
--- a/config/eur/arm9/overlays/ov008/delinks.txt
+++ b/config/eur/arm9/overlays/ov008/delinks.txt
@@ -1,5 +1,5 @@
.text start:0x02112c20 end:0x02113af4 kind:code align:32
- .ctor start:0x02113af4 end:0x02113af8 kind:data align:4
+ .ctor start:0x02113af4 end:0x02113af8 kind:rodata align:4
.data start:0x02113b00 end:0x02113b80 kind:data align:32
.bss start:0x02113b80 end:0x02113b80 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov009/delinks.txt b/config/eur/arm9/overlays/ov009/delinks.txt
index be6e1916..9ed9eb3f 100644
--- a/config/eur/arm9/overlays/ov009/delinks.txt
+++ b/config/eur/arm9/overlays/ov009/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02112c20 end:0x0211d98c kind:code align:32
- .rodata start:0x0211d98c end:0x0211e4a4 kind:data align:4
+ .rodata start:0x0211d98c end:0x0211e4a4 kind:rodata align:4
.init start:0x0211e4a4 end:0x0211e660 kind:code align:4
- .ctor start:0x0211e660 end:0x0211e680 kind:data align:4
+ .ctor start:0x0211e660 end:0x0211e680 kind:rodata align:4
.data start:0x0211e680 end:0x0211f520 kind:data align:32
.bss start:0x0211f520 end:0x0211f640 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov010/delinks.txt b/config/eur/arm9/overlays/ov010/delinks.txt
index db92de38..885e1605 100644
--- a/config/eur/arm9/overlays/ov010/delinks.txt
+++ b/config/eur/arm9/overlays/ov010/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x02112c20 end:0x0211e750 kind:code align:32
- .rodata start:0x0211e750 end:0x0211ea18 kind:data align:4
- .ctor start:0x0211ea18 end:0x0211ea1c kind:data align:4
+ .rodata start:0x0211e750 end:0x0211ea18 kind:rodata align:4
+ .ctor start:0x0211ea18 end:0x0211ea1c kind:rodata align:4
.data start:0x0211ea20 end:0x0211f400 kind:data align:32
.bss start:0x0211f400 end:0x0211f460 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov011/delinks.txt b/config/eur/arm9/overlays/ov011/delinks.txt
index 7b8a3367..f15ef98a 100644
--- a/config/eur/arm9/overlays/ov011/delinks.txt
+++ b/config/eur/arm9/overlays/ov011/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x02112c20 end:0x0212ba0c kind:code align:32
- .rodata start:0x0212ba0c end:0x0212ed00 kind:data align:4
- .ctor start:0x0212ed00 end:0x0212ed04 kind:data align:4
+ .rodata start:0x0212ba0c end:0x0212ed00 kind:rodata align:4
+ .ctor start:0x0212ed00 end:0x0212ed04 kind:rodata align:4
.data start:0x0212ed20 end:0x02130820 kind:data align:32
.bss start:0x02130820 end:0x02132ee0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov012/delinks.txt b/config/eur/arm9/overlays/ov012/delinks.txt
index 33d2d934..756c7714 100644
--- a/config/eur/arm9/overlays/ov012/delinks.txt
+++ b/config/eur/arm9/overlays/ov012/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02112c20 end:0x021344ac kind:code align:32
- .rodata start:0x021344ac end:0x021354cc kind:data align:4
+ .rodata start:0x021344ac end:0x021354cc kind:rodata align:4
.init start:0x021354cc end:0x021358f4 kind:code align:4
- .ctor start:0x021358f4 end:0x02135920 kind:data align:4
+ .ctor start:0x021358f4 end:0x02135920 kind:rodata align:4
.data start:0x02135920 end:0x02137c60 kind:data align:32
.bss start:0x02137c60 end:0x0213dec0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov013/delinks.txt b/config/eur/arm9/overlays/ov013/delinks.txt
index 7d9da21e..8731e1f2 100644
--- a/config/eur/arm9/overlays/ov013/delinks.txt
+++ b/config/eur/arm9/overlays/ov013/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x02112c20 end:0x02116004 kind:code align:32
- .rodata start:0x02116004 end:0x021160ec kind:data align:4
- .ctor start:0x021160ec end:0x021160f4 kind:data align:4
+ .rodata start:0x02116004 end:0x021160ec kind:rodata align:4
+ .ctor start:0x021160ec end:0x021160f4 kind:rodata align:4
.data start:0x02116100 end:0x02116200 kind:data align:32
.bss start:0x02116200 end:0x021163a0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov014/delinks.txt b/config/eur/arm9/overlays/ov014/delinks.txt
index 07c0b3f4..60aa7fc6 100644
--- a/config/eur/arm9/overlays/ov014/delinks.txt
+++ b/config/eur/arm9/overlays/ov014/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0211f640 end:0x02153b50 kind:code align:32
- .rodata start:0x02153b50 end:0x021541ec kind:data align:4
+ .rodata start:0x02153b50 end:0x021541ec kind:rodata align:4
.init start:0x021541ec end:0x0215584c kind:code align:4
- .ctor start:0x0215584c end:0x0215598c kind:data align:4
+ .ctor start:0x0215584c end:0x0215598c kind:rodata align:4
.data start:0x021559a0 end:0x0215abc0 kind:data align:32
.bss start:0x0215abc0 end:0x0215b4a0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov015/delinks.txt b/config/eur/arm9/overlays/ov015/delinks.txt
index 67672a0b..60df5596 100644
--- a/config/eur/arm9/overlays/ov015/delinks.txt
+++ b/config/eur/arm9/overlays/ov015/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0211f640 end:0x02185b1c kind:code align:32
- .rodata start:0x02185b1c end:0x02187384 kind:data align:4
+ .rodata start:0x02185b1c end:0x02187384 kind:rodata align:4
.init start:0x02187384 end:0x021892d0 kind:code align:4
- .ctor start:0x021892d0 end:0x02189420 kind:data align:4
+ .ctor start:0x021892d0 end:0x02189420 kind:rodata align:4
.data start:0x02189420 end:0x0218ebe0 kind:data align:32
.bss start:0x0218ebe0 end:0x021904a0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov016/delinks.txt b/config/eur/arm9/overlays/ov016/delinks.txt
index 8c4b2e68..5ab20a36 100644
--- a/config/eur/arm9/overlays/ov016/delinks.txt
+++ b/config/eur/arm9/overlays/ov016/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x0211f640 end:0x02120134 kind:code align:32
- .rodata start:0x02120134 end:0x02120150 kind:data align:4
- .ctor start:0x02120150 end:0x02120154 kind:data align:4
+ .rodata start:0x02120134 end:0x02120150 kind:rodata align:4
+ .ctor start:0x02120150 end:0x02120154 kind:rodata align:4
.data start:0x02120160 end:0x021201a0 kind:data align:32
.bss start:0x021201a0 end:0x021201a0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov017/delinks.txt b/config/eur/arm9/overlays/ov017/delinks.txt
index b91c64bb..4c6e3c89 100644
--- a/config/eur/arm9/overlays/ov017/delinks.txt
+++ b/config/eur/arm9/overlays/ov017/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0215b4a0 end:0x0216b098 kind:code align:32
- .rodata start:0x0216b098 end:0x0216b2c4 kind:data align:4
+ .rodata start:0x0216b098 end:0x0216b2c4 kind:rodata align:4
.init start:0x0216b2c4 end:0x0216b964 kind:code align:4
- .ctor start:0x0216b964 end:0x0216b9d4 kind:data align:4
+ .ctor start:0x0216b964 end:0x0216b9d4 kind:rodata align:4
.data start:0x0216b9e0 end:0x0216cea0 kind:data align:32
.bss start:0x0216cea0 end:0x0216d120 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov018/delinks.txt b/config/eur/arm9/overlays/ov018/delinks.txt
index 7c6e4a27..cd18e2d7 100644
--- a/config/eur/arm9/overlays/ov018/delinks.txt
+++ b/config/eur/arm9/overlays/ov018/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0215b4a0 end:0x0216b42c kind:code align:32
- .rodata start:0x0216b42c end:0x0216b780 kind:data align:4
+ .rodata start:0x0216b42c end:0x0216b780 kind:rodata align:4
.init start:0x0216b780 end:0x0216c04c kind:code align:4
- .ctor start:0x0216c04c end:0x0216c0ac kind:data align:4
+ .ctor start:0x0216c04c end:0x0216c0ac kind:rodata align:4
.data start:0x0216c0c0 end:0x0216d440 kind:data align:32
.bss start:0x0216d440 end:0x0216d6a0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov018/symbols.txt b/config/eur/arm9/overlays/ov018/symbols.txt
index e5840916..605800d5 100644
--- a/config/eur/arm9/overlays/ov018/symbols.txt
+++ b/config/eur/arm9/overlays/ov018/symbols.txt
@@ -1,39 +1,39 @@
-func_ov018_0215b4a0 kind:function(arm,size=0x1ac) addr:0x215b4a0
-func_ov018_0215b64c kind:function(arm,size=0x10c) addr:0x215b64c
-func_ov018_0215b758 kind:function(arm,size=0x114) addr:0x215b758
-func_ov018_0215b86c kind:function(arm,size=0x518) addr:0x215b86c
-func_ov018_0215bd84 kind:function(arm,size=0x134) addr:0x215bd84
-func_ov018_0215beb8 kind:function(arm,size=0x110) addr:0x215beb8
-func_ov018_0215bfc8 kind:function(arm,size=0x17c) addr:0x215bfc8
-func_ov018_0215c144 kind:function(arm,size=0x84) addr:0x215c144
-func_ov018_0215c1c8 kind:function(arm,size=0xb4) addr:0x215c1c8
-func_ov018_0215c27c kind:function(arm,size=0x8) addr:0x215c27c
-func_ov018_0215c284 kind:function(arm,size=0xc) addr:0x215c284
-func_ov018_0215c290 kind:function(arm,size=0x20) addr:0x215c290
-func_ov018_0215c2b0 kind:function(arm,size=0x30) addr:0x215c2b0
-func_ov018_0215c2e0 kind:function(arm,size=0x20) addr:0x215c2e0
-func_ov018_0215c300 kind:function(arm,size=0x2c) addr:0x215c300
-func_ov018_0215c32c kind:function(arm,size=0x20) addr:0x215c32c
-func_ov018_0215c34c kind:function(arm,size=0x1c) addr:0x215c34c
-func_ov018_0215c368 kind:function(arm,size=0x18) addr:0x215c368
-func_ov018_0215c380 kind:function(arm,size=0x20) addr:0x215c380
-func_ov018_0215c3a0 kind:function(arm,size=0x20) addr:0x215c3a0
-func_ov018_0215c3c0 kind:function(arm,size=0x68) addr:0x215c3c0
-func_ov018_0215c428 kind:function(arm,size=0x20) addr:0x215c428
-func_ov018_0215c448 kind:function(arm,size=0x18) addr:0x215c448
-func_ov018_0215c460 kind:function(arm,size=0x164) addr:0x215c460
-func_ov018_0215c5c4 kind:function(arm,size=0x44) addr:0x215c5c4
-func_ov018_0215c608 kind:function(arm,size=0x48) addr:0x215c608
-func_ov018_0215c650 kind:function(arm,size=0x5c) addr:0x215c650
-func_ov018_0215c6ac kind:function(arm,size=0x24) addr:0x215c6ac
-func_ov018_0215c6d0 kind:function(arm,size=0x24c) addr:0x215c6d0
-func_ov018_0215c91c kind:function(arm,size=0x48) addr:0x215c91c
-func_ov018_0215c964 kind:function(arm,size=0x48) addr:0x215c964
-func_ov018_0215c9ac kind:function(arm,size=0x78) addr:0x215c9ac
-func_ov018_0215ca24 kind:function(arm,size=0x18) addr:0x215ca24
-func_ov018_0215ca3c kind:function(arm,size=0x50) addr:0x215ca3c
-func_ov018_0215ca8c kind:function(arm,size=0x18) addr:0x215ca8c
-func_ov018_0215caa4 kind:function(arm,size=0x8) addr:0x215caa4
+_ZN12MapOverworldC2Ejj kind:function(arm,size=0x1ac) addr:0x215b4a0
+_ZN12MapOverworldD1Ev kind:function(arm,size=0x10c) addr:0x215b64c
+_ZN12MapOverworldD0Ev kind:function(arm,size=0x114) addr:0x215b758
+_ZN12MapOverworld8vfunc_08EjjP6Course kind:function(arm,size=0x518) addr:0x215b86c
+_ZN12MapOverworld8vfunc_14Ev kind:function(arm,size=0x134) addr:0x215bd84
+_ZN12MapOverworld8vfunc_1cEb kind:function(arm,size=0x110) addr:0x215beb8
+_ZN12MapOverworld19func_ov018_0215bfc8Ev kind:function(arm,size=0x17c) addr:0x215bfc8
+_ZN12MapOverworld8vfunc_20Ei kind:function(arm,size=0x84) addr:0x215c144
+_ZN12MapOverworld8vfunc_2cEv kind:function(arm,size=0xb4) addr:0x215c1c8
+_ZN12MapOverworld8vfunc_94Ev kind:function(arm,size=0x8) addr:0x215c27c
+_ZN12MapOverworld8vfunc_a4Ev kind:function(arm,size=0xc) addr:0x215c284
+_ZN12MapOverworld8vfunc_54Ev kind:function(arm,size=0x20) addr:0x215c290
+_ZN12MapOverworld8vfunc_58Ev kind:function(arm,size=0x30) addr:0x215c2b0
+_ZN12MapOverworld8vfunc_5cEv kind:function(arm,size=0x20) addr:0x215c2e0
+_ZN12MapOverworld8vfunc_60Ev kind:function(arm,size=0x2c) addr:0x215c300
+_ZN12MapOverworld8vfunc_64Ev kind:function(arm,size=0x20) addr:0x215c32c
+_ZN12MapOverworld19func_ov018_0215c34cEv kind:function(arm,size=0x1c) addr:0x215c34c
+_ZN12MapOverworld19func_ov018_0215c368Ev kind:function(arm,size=0x18) addr:0x215c368
+_ZN12MapOverworld19func_ov018_0215c380EPh kind:function(arm,size=0x20) addr:0x215c380
+_ZN12MapOverworld8vfunc_bcEv kind:function(arm,size=0x20) addr:0x215c3a0
+_ZN12MapOverworld8vfunc_98Ev kind:function(arm,size=0x68) addr:0x215c3c0
+_ZN12MapOverworld8vfunc_c0Ev kind:function(arm,size=0x20) addr:0x215c428
+_ZN12MapOverworld8vfunc_78Ev kind:function(arm,size=0x18) addr:0x215c448
+_ZN12MapOverworld8vfunc_7cEv kind:function(arm,size=0x164) addr:0x215c460
+_ZN12MapOverworld8vfunc_80Ev kind:function(arm,size=0x44) addr:0x215c5c4
+_ZN12MapOverworld8vfunc_b0Eii kind:function(arm,size=0x48) addr:0x215c608
+_ZN12MapOverworld19func_ov018_0215c650Ev kind:function(arm,size=0x5c) addr:0x215c650
+_ZN12MapOverworld19func_ov018_0215c6acEv kind:function(arm,size=0x24) addr:0x215c6ac
+_ZN12MapOverworld19func_ov018_0215c6d0Ev kind:function(arm,size=0x24c) addr:0x215c6d0
+_ZN17MapOverworld_Unk1C2EjPhi kind:function(arm,size=0x48) addr:0x215c91c
+_ZN17MapOverworld_Unk1C1EjPhi kind:function(arm,size=0x48) addr:0x215c964
+_ZN12MapOverworld19func_ov018_0215c9acEv kind:function(arm,size=0x78) addr:0x215c9ac
+_Z19func_ov018_0215ca24i kind:function(arm,size=0x18) addr:0x215ca24
+_Z19func_ov018_0215ca3ciiii kind:function(arm,size=0x50) addr:0x215ca3c
+_Z19func_ov018_0215ca8ci kind:function(arm,size=0x18) addr:0x215ca8c
+_ZN12MapOverworld8vfunc_4cEv kind:function(arm,size=0x8) addr:0x215caa4
func_ov018_0215caac kind:function(arm,size=0x7c) addr:0x215caac
func_ov018_0215cb28 kind:function(arm,size=0x4c) addr:0x215cb28
func_ov018_0215cb74 kind:function(arm,size=0xcc) addr:0x215cb74
@@ -514,7 +514,7 @@ __sinit_ov018_0216bf54 kind:function(arm,size=0x38) addr:0x216bf54
__sinit_ov018_0216bf8c kind:function(arm,size=0x80) addr:0x216bf8c
__sinit_ov018_0216c00c kind:function(arm,size=0x40) addr:0x216c00c
data_ov018_0216c0c0 kind:data(any) addr:0x216c0c0
-data_ov018_0216c0e0 kind:data(any) addr:0x216c0e0
+_ZTV12MapOverworld kind:data(any) addr:0x216c0e0
data_ov018_0216c1a4 kind:data(any) addr:0x216c1a4
data_ov018_0216c1a8 kind:data(any) addr:0x216c1a8
data_ov018_0216c1bc kind:data(any) addr:0x216c1bc
diff --git a/config/eur/arm9/overlays/ov019/delinks.txt b/config/eur/arm9/overlays/ov019/delinks.txt
index c5693aaa..d8d542da 100644
--- a/config/eur/arm9/overlays/ov019/delinks.txt
+++ b/config/eur/arm9/overlays/ov019/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d6a0 end:0x02175c50 kind:code align:32
- .rodata start:0x02175c50 end:0x02175f04 kind:data align:4
+ .rodata start:0x02175c50 end:0x02175f04 kind:rodata align:4
.init start:0x02175f04 end:0x021762d4 kind:code align:4
- .ctor start:0x021762d4 end:0x021762fc kind:data align:4
+ .ctor start:0x021762d4 end:0x021762fc kind:rodata align:4
.data start:0x02176300 end:0x02176e80 kind:data align:32
.bss start:0x02176e80 end:0x02177680 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov020/delinks.txt b/config/eur/arm9/overlays/ov020/delinks.txt
index 10bd7e54..3d4742f0 100644
--- a/config/eur/arm9/overlays/ov020/delinks.txt
+++ b/config/eur/arm9/overlays/ov020/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d6a0 end:0x02177868 kind:code align:32
- .rodata start:0x02177868 end:0x02177af4 kind:data align:4
+ .rodata start:0x02177868 end:0x02177af4 kind:rodata align:4
.init start:0x02177af4 end:0x02178298 kind:code align:4
- .ctor start:0x02178298 end:0x021782e0 kind:data align:4
+ .ctor start:0x02178298 end:0x021782e0 kind:rodata align:4
.data start:0x021782e0 end:0x02179500 kind:data align:32
.bss start:0x02179500 end:0x02179740 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov021/delinks.txt b/config/eur/arm9/overlays/ov021/delinks.txt
index 6402c9ca..3eb325b9 100644
--- a/config/eur/arm9/overlays/ov021/delinks.txt
+++ b/config/eur/arm9/overlays/ov021/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d6a0 end:0x02170bd4 kind:code align:32
- .rodata start:0x02170bd4 end:0x02170cec kind:data align:4
+ .rodata start:0x02170bd4 end:0x02170cec kind:rodata align:4
.init start:0x02170cec end:0x02170f64 kind:code align:4
- .ctor start:0x02170f64 end:0x02170f84 kind:data align:4
+ .ctor start:0x02170f64 end:0x02170f84 kind:rodata align:4
.data start:0x02170fa0 end:0x02171ae0 kind:data align:32
.bss start:0x02171ae0 end:0x02171cc0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov022/delinks.txt b/config/eur/arm9/overlays/ov022/delinks.txt
index cde2c294..58ef429a 100644
--- a/config/eur/arm9/overlays/ov022/delinks.txt
+++ b/config/eur/arm9/overlays/ov022/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d6a0 end:0x021785b8 kind:code align:32
- .rodata start:0x021785b8 end:0x021789c8 kind:data align:4
+ .rodata start:0x021785b8 end:0x021789c8 kind:rodata align:4
.init start:0x021789c8 end:0x02178ff4 kind:code align:4
- .ctor start:0x02178ff4 end:0x0217903c kind:data align:4
+ .ctor start:0x02178ff4 end:0x0217903c kind:rodata align:4
.data start:0x02179040 end:0x0217a400 kind:data align:32
.bss start:0x0217a400 end:0x0217a640 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov023/delinks.txt b/config/eur/arm9/overlays/ov023/delinks.txt
index ad04c7fa..5edf281b 100644
--- a/config/eur/arm9/overlays/ov023/delinks.txt
+++ b/config/eur/arm9/overlays/ov023/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d6a0 end:0x02179030 kind:code align:32
- .rodata start:0x02179030 end:0x02179698 kind:data align:4
+ .rodata start:0x02179030 end:0x02179698 kind:rodata align:4
.init start:0x02179698 end:0x02179ce0 kind:code align:4
- .ctor start:0x02179ce0 end:0x02179d18 kind:data align:4
+ .ctor start:0x02179ce0 end:0x02179d18 kind:rodata align:4
.data start:0x02179d20 end:0x0217ab60 kind:data align:32
.bss start:0x0217ab60 end:0x0217ad80 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov024/delinks.txt b/config/eur/arm9/overlays/ov024/delinks.txt
index ed85c2d1..68d1e512 100644
--- a/config/eur/arm9/overlays/ov024/delinks.txt
+++ b/config/eur/arm9/overlays/ov024/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d6a0 end:0x021791d4 kind:code align:32
- .rodata start:0x021791d4 end:0x021795d0 kind:data align:4
+ .rodata start:0x021791d4 end:0x021795d0 kind:rodata align:4
.init start:0x021795d0 end:0x02179e1c kind:code align:4
- .ctor start:0x02179e1c end:0x02179e5c kind:data align:4
+ .ctor start:0x02179e1c end:0x02179e5c kind:rodata align:4
.data start:0x02179e60 end:0x0217af60 kind:data align:32
.bss start:0x0217af60 end:0x0217b160 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov025/delinks.txt b/config/eur/arm9/overlays/ov025/delinks.txt
index 4426b815..df4aadeb 100644
--- a/config/eur/arm9/overlays/ov025/delinks.txt
+++ b/config/eur/arm9/overlays/ov025/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d6a0 end:0x0217933c kind:code align:32
- .rodata start:0x0217933c end:0x02179680 kind:data align:4
+ .rodata start:0x0217933c end:0x02179680 kind:rodata align:4
.init start:0x02179680 end:0x02179b98 kind:code align:4
- .ctor start:0x02179b98 end:0x02179bc8 kind:data align:4
+ .ctor start:0x02179b98 end:0x02179bc8 kind:rodata align:4
.data start:0x02179be0 end:0x0217a880 kind:data align:32
.bss start:0x0217a880 end:0x0217aa20 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov026/delinks.txt b/config/eur/arm9/overlays/ov026/delinks.txt
index fcbc09d6..fe99e306 100644
--- a/config/eur/arm9/overlays/ov026/delinks.txt
+++ b/config/eur/arm9/overlays/ov026/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d6a0 end:0x02179260 kind:code align:32
- .rodata start:0x02179260 end:0x021797dc kind:data align:4
+ .rodata start:0x02179260 end:0x021797dc kind:rodata align:4
.init start:0x021797dc end:0x0217a020 kind:code align:4
- .ctor start:0x0217a020 end:0x0217a060 kind:data align:4
+ .ctor start:0x0217a020 end:0x0217a060 kind:rodata align:4
.data start:0x0217a060 end:0x0217b2c0 kind:data align:32
.bss start:0x0217b2c0 end:0x0217b5c0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov027/delinks.txt b/config/eur/arm9/overlays/ov027/delinks.txt
index 7cdc16db..3bd15fdf 100644
--- a/config/eur/arm9/overlays/ov027/delinks.txt
+++ b/config/eur/arm9/overlays/ov027/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d6a0 end:0x02178cfc kind:code align:32
- .rodata start:0x02178cfc end:0x0217913c kind:data align:4
+ .rodata start:0x02178cfc end:0x0217913c kind:rodata align:4
.init start:0x0217913c end:0x02179474 kind:code align:4
- .ctor start:0x02179474 end:0x02179498 kind:data align:4
+ .ctor start:0x02179474 end:0x02179498 kind:rodata align:4
.data start:0x021794a0 end:0x0217a0c0 kind:data align:32
.bss start:0x0217a0c0 end:0x0217a1c0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov028/delinks.txt b/config/eur/arm9/overlays/ov028/delinks.txt
index c82b0263..7a4401e4 100644
--- a/config/eur/arm9/overlays/ov028/delinks.txt
+++ b/config/eur/arm9/overlays/ov028/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d6a0 end:0x0217807c kind:code align:32
- .rodata start:0x0217807c end:0x02178504 kind:data align:4
+ .rodata start:0x0217807c end:0x02178504 kind:rodata align:4
.init start:0x02178504 end:0x02178894 kind:code align:4
- .ctor start:0x02178894 end:0x021788c8 kind:data align:4
+ .ctor start:0x02178894 end:0x021788c8 kind:rodata align:4
.data start:0x021788e0 end:0x02179b00 kind:data align:32
.bss start:0x02179b00 end:0x02179ce0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov029/delinks.txt b/config/eur/arm9/overlays/ov029/delinks.txt
index 4d29edf6..f067ea1b 100644
--- a/config/eur/arm9/overlays/ov029/delinks.txt
+++ b/config/eur/arm9/overlays/ov029/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d6a0 end:0x02179298 kind:code align:32
- .rodata start:0x02179298 end:0x021794b0 kind:data align:4
+ .rodata start:0x02179298 end:0x021794b0 kind:rodata align:4
.init start:0x021794b0 end:0x02179824 kind:code align:4
- .ctor start:0x02179824 end:0x0217985c kind:data align:4
+ .ctor start:0x02179824 end:0x0217985c kind:rodata align:4
.data start:0x02179860 end:0x0217a4a0 kind:data align:32
.bss start:0x0217a4a0 end:0x0217bd80 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov030/delinks.txt b/config/eur/arm9/overlays/ov030/delinks.txt
index 1f43f935..4ab40a5e 100644
--- a/config/eur/arm9/overlays/ov030/delinks.txt
+++ b/config/eur/arm9/overlays/ov030/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bd80 end:0x021885d4 kind:code align:32
- .rodata start:0x021885d4 end:0x02188824 kind:data align:4
+ .rodata start:0x021885d4 end:0x02188824 kind:rodata align:4
.init start:0x02188824 end:0x02188a2c kind:code align:4
- .ctor start:0x02188a2c end:0x02188a38 kind:data align:4
+ .ctor start:0x02188a2c end:0x02188a38 kind:rodata align:4
.data start:0x02188a40 end:0x021894a0 kind:data align:32
.bss start:0x021894a0 end:0x02189560 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov031/delinks.txt b/config/eur/arm9/overlays/ov031/delinks.txt
index 4f9880d0..6e0c2bbe 100644
--- a/config/eur/arm9/overlays/ov031/delinks.txt
+++ b/config/eur/arm9/overlays/ov031/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bd80 end:0x021818a0 kind:code align:32
- .rodata start:0x021818a0 end:0x02181b6c kind:data align:4
+ .rodata start:0x021818a0 end:0x02181b6c kind:rodata align:4
.init start:0x02181b6c end:0x02182080 kind:code align:4
- .ctor start:0x02182080 end:0x02182094 kind:data align:4
+ .ctor start:0x02182080 end:0x02182094 kind:rodata align:4
.data start:0x021820a0 end:0x02183e80 kind:data align:32
.bss start:0x02183e80 end:0x02184200 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov032/delinks.txt b/config/eur/arm9/overlays/ov032/delinks.txt
index 2ca78f8f..4937f85c 100644
--- a/config/eur/arm9/overlays/ov032/delinks.txt
+++ b/config/eur/arm9/overlays/ov032/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bd80 end:0x02184ba8 kind:code align:32
- .rodata start:0x02184ba8 end:0x02184d3c kind:data align:4
+ .rodata start:0x02184ba8 end:0x02184d3c kind:rodata align:4
.init start:0x02184d3c end:0x021853c8 kind:code align:4
- .ctor start:0x021853c8 end:0x021853ec kind:data align:4
+ .ctor start:0x021853c8 end:0x021853ec kind:rodata align:4
.data start:0x02185400 end:0x021861e0 kind:data align:32
.bss start:0x021861e0 end:0x02186320 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov033/delinks.txt b/config/eur/arm9/overlays/ov033/delinks.txt
index c8391dfd..5c38ed26 100644
--- a/config/eur/arm9/overlays/ov033/delinks.txt
+++ b/config/eur/arm9/overlays/ov033/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bd80 end:0x0217facc kind:code align:32
- .rodata start:0x0217facc end:0x0217fb90 kind:data align:4
+ .rodata start:0x0217facc end:0x0217fb90 kind:rodata align:4
.init start:0x0217fb90 end:0x0217fe94 kind:code align:4
- .ctor start:0x0217fe94 end:0x0217feac kind:data align:4
+ .ctor start:0x0217fe94 end:0x0217feac kind:rodata align:4
.data start:0x0217fec0 end:0x02180580 kind:data align:32
.bss start:0x02180580 end:0x02180640 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov034/delinks.txt b/config/eur/arm9/overlays/ov034/delinks.txt
index 3ea2d481..d1364a8b 100644
--- a/config/eur/arm9/overlays/ov034/delinks.txt
+++ b/config/eur/arm9/overlays/ov034/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bd80 end:0x02185740 kind:code align:32
- .rodata start:0x02185740 end:0x02185818 kind:data align:4
+ .rodata start:0x02185740 end:0x02185818 kind:rodata align:4
.init start:0x02185818 end:0x02185a64 kind:code align:4
- .ctor start:0x02185a64 end:0x02185a74 kind:data align:4
+ .ctor start:0x02185a64 end:0x02185a74 kind:rodata align:4
.data start:0x02185a80 end:0x021861a0 kind:data align:32
.bss start:0x021861a0 end:0x021863c0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov035/delinks.txt b/config/eur/arm9/overlays/ov035/delinks.txt
index 4fcb63a7..776671d5 100644
--- a/config/eur/arm9/overlays/ov035/delinks.txt
+++ b/config/eur/arm9/overlays/ov035/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bd80 end:0x0218512c kind:code align:32
- .rodata start:0x0218512c end:0x02185668 kind:data align:4
+ .rodata start:0x0218512c end:0x02185668 kind:rodata align:4
.init start:0x02185668 end:0x02185900 kind:code align:4
- .ctor start:0x02185900 end:0x02185914 kind:data align:4
+ .ctor start:0x02185900 end:0x02185914 kind:rodata align:4
.data start:0x02185920 end:0x02185ec0 kind:data align:32
.bss start:0x02185ec0 end:0x02187020 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov036/delinks.txt b/config/eur/arm9/overlays/ov036/delinks.txt
index 3d0a7186..c310fd44 100644
--- a/config/eur/arm9/overlays/ov036/delinks.txt
+++ b/config/eur/arm9/overlays/ov036/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bd80 end:0x02186698 kind:code align:32
- .rodata start:0x02186698 end:0x02186bb4 kind:data align:4
+ .rodata start:0x02186698 end:0x02186bb4 kind:rodata align:4
.init start:0x02186bb4 end:0x02186c34 kind:code align:4
- .ctor start:0x02186c34 end:0x02186c40 kind:data align:4
+ .ctor start:0x02186c34 end:0x02186c40 kind:rodata align:4
.data start:0x02186c40 end:0x02186fa0 kind:data align:32
.bss start:0x02186fa0 end:0x02186fe0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov037/delinks.txt b/config/eur/arm9/overlays/ov037/delinks.txt
index a679b136..62529715 100644
--- a/config/eur/arm9/overlays/ov037/delinks.txt
+++ b/config/eur/arm9/overlays/ov037/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bd80 end:0x02187dc8 kind:code align:32
- .rodata start:0x02187dc8 end:0x02188690 kind:data align:4
+ .rodata start:0x02187dc8 end:0x02188690 kind:rodata align:4
.init start:0x02188690 end:0x021889b4 kind:code align:4
- .ctor start:0x021889b4 end:0x021889cc kind:data align:4
+ .ctor start:0x021889b4 end:0x021889cc kind:rodata align:4
.data start:0x021889e0 end:0x02189160 kind:data align:32
.bss start:0x02189160 end:0x02189240 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov038/delinks.txt b/config/eur/arm9/overlays/ov038/delinks.txt
index 5cca0d2c..44c4aca1 100644
--- a/config/eur/arm9/overlays/ov038/delinks.txt
+++ b/config/eur/arm9/overlays/ov038/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bd80 end:0x02188908 kind:code align:32
- .rodata start:0x02188908 end:0x02188ae4 kind:data align:4
+ .rodata start:0x02188908 end:0x02188ae4 kind:rodata align:4
.init start:0x02188ae4 end:0x02188c60 kind:code align:4
- .ctor start:0x02188c60 end:0x02188c6c kind:data align:4
+ .ctor start:0x02188c60 end:0x02188c6c kind:rodata align:4
.data start:0x02188c80 end:0x021891e0 kind:data align:32
.bss start:0x021891e0 end:0x021894a0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov039/delinks.txt b/config/eur/arm9/overlays/ov039/delinks.txt
index 87fd8241..9463b213 100644
--- a/config/eur/arm9/overlays/ov039/delinks.txt
+++ b/config/eur/arm9/overlays/ov039/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bd80 end:0x02186124 kind:code align:32
- .rodata start:0x02186124 end:0x02186968 kind:data align:4
+ .rodata start:0x02186124 end:0x02186968 kind:rodata align:4
.init start:0x02186968 end:0x021869bc kind:code align:4
- .ctor start:0x021869bc end:0x021869c4 kind:data align:4
+ .ctor start:0x021869bc end:0x021869c4 kind:rodata align:4
.data start:0x021869e0 end:0x02186cc0 kind:data align:32
.bss start:0x02186cc0 end:0x02186d00 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov040/delinks.txt b/config/eur/arm9/overlays/ov040/delinks.txt
index d716794f..0d19381b 100644
--- a/config/eur/arm9/overlays/ov040/delinks.txt
+++ b/config/eur/arm9/overlays/ov040/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bd80 end:0x02187ffc kind:code align:32
- .rodata start:0x02187ffc end:0x02188360 kind:data align:4
+ .rodata start:0x02187ffc end:0x02188360 kind:rodata align:4
.init start:0x02188360 end:0x02188604 kind:code align:4
- .ctor start:0x02188604 end:0x02188630 kind:data align:4
+ .ctor start:0x02188604 end:0x02188630 kind:rodata align:4
.data start:0x02188640 end:0x02189ac0 kind:data align:32
.bss start:0x02189ac0 end:0x0219a1a0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov041/delinks.txt b/config/eur/arm9/overlays/ov041/delinks.txt
index b4d097d7..b3c949d8 100644
--- a/config/eur/arm9/overlays/ov041/delinks.txt
+++ b/config/eur/arm9/overlays/ov041/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02189560 end:0x0218dec4 kind:code align:32
- .rodata start:0x0218dec4 end:0x0218e098 kind:data align:4
+ .rodata start:0x0218dec4 end:0x0218e098 kind:rodata align:4
.init start:0x0218e098 end:0x0218e30c kind:code align:4
- .ctor start:0x0218e30c end:0x0218e328 kind:data align:4
+ .ctor start:0x0218e30c end:0x0218e328 kind:rodata align:4
.data start:0x0218e340 end:0x0218ea80 kind:data align:32
.bss start:0x0218ea80 end:0x0218eb60 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov042/delinks.txt b/config/eur/arm9/overlays/ov042/delinks.txt
index 07530a75..744eb0ca 100644
--- a/config/eur/arm9/overlays/ov042/delinks.txt
+++ b/config/eur/arm9/overlays/ov042/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02189560 end:0x0218c6f4 kind:code align:32
- .rodata start:0x0218c6f4 end:0x0218c744 kind:data align:4
+ .rodata start:0x0218c6f4 end:0x0218c744 kind:rodata align:4
.init start:0x0218c744 end:0x0218c7f8 kind:code align:4
- .ctor start:0x0218c7f8 end:0x0218c804 kind:data align:4
+ .ctor start:0x0218c7f8 end:0x0218c804 kind:rodata align:4
.data start:0x0218c820 end:0x0218cd20 kind:data align:32
.bss start:0x0218cd20 end:0x0218cda0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov043/delinks.txt b/config/eur/arm9/overlays/ov043/delinks.txt
index 7ddd6d6d..69562b42 100644
--- a/config/eur/arm9/overlays/ov043/delinks.txt
+++ b/config/eur/arm9/overlays/ov043/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02189560 end:0x0218d340 kind:code align:32
- .rodata start:0x0218d340 end:0x0218d414 kind:data align:4
+ .rodata start:0x0218d340 end:0x0218d414 kind:rodata align:4
.init start:0x0218d414 end:0x0218d5c0 kind:code align:4
- .ctor start:0x0218d5c0 end:0x0218d5cc kind:data align:4
+ .ctor start:0x0218d5c0 end:0x0218d5cc kind:rodata align:4
.data start:0x0218d5e0 end:0x0218db00 kind:data align:32
.bss start:0x0218db00 end:0x0218db80 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov044/delinks.txt b/config/eur/arm9/overlays/ov044/delinks.txt
index 1f307847..188fb140 100644
--- a/config/eur/arm9/overlays/ov044/delinks.txt
+++ b/config/eur/arm9/overlays/ov044/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02189560 end:0x0218e984 kind:code align:32
- .rodata start:0x0218e984 end:0x0218ea9c kind:data align:4
+ .rodata start:0x0218e984 end:0x0218ea9c kind:rodata align:4
.init start:0x0218ea9c end:0x0218f1cc kind:code align:4
- .ctor start:0x0218f1cc end:0x0218f1f0 kind:data align:4
+ .ctor start:0x0218f1cc end:0x0218f1f0 kind:rodata align:4
.data start:0x0218f200 end:0x0218fee0 kind:data align:32
.bss start:0x0218fee0 end:0x02190040 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov045/delinks.txt b/config/eur/arm9/overlays/ov045/delinks.txt
index 266968cc..359004dd 100644
--- a/config/eur/arm9/overlays/ov045/delinks.txt
+++ b/config/eur/arm9/overlays/ov045/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02189560 end:0x0218e278 kind:code align:32
- .rodata start:0x0218e278 end:0x0218e3e8 kind:data align:4
+ .rodata start:0x0218e278 end:0x0218e3e8 kind:rodata align:4
.init start:0x0218e3e8 end:0x0218e4a8 kind:code align:4
- .ctor start:0x0218e4a8 end:0x0218e4b8 kind:data align:4
+ .ctor start:0x0218e4a8 end:0x0218e4b8 kind:rodata align:4
.data start:0x0218e4c0 end:0x0218ed80 kind:data align:32
.bss start:0x0218ed80 end:0x0218ee00 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov046/delinks.txt b/config/eur/arm9/overlays/ov046/delinks.txt
index df810b40..aeeafe31 100644
--- a/config/eur/arm9/overlays/ov046/delinks.txt
+++ b/config/eur/arm9/overlays/ov046/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02190040 end:0x021942f4 kind:code align:32
- .rodata start:0x021942f4 end:0x021944ac kind:data align:4
+ .rodata start:0x021942f4 end:0x021944ac kind:rodata align:4
.init start:0x021944ac end:0x0219463c kind:code align:4
- .ctor start:0x0219463c end:0x02194650 kind:data align:4
+ .ctor start:0x0219463c end:0x02194650 kind:rodata align:4
.data start:0x02194660 end:0x02194ba0 kind:data align:32
.bss start:0x02194ba0 end:0x02194ca0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov047/delinks.txt b/config/eur/arm9/overlays/ov047/delinks.txt
index 19a45f1c..608eaf50 100644
--- a/config/eur/arm9/overlays/ov047/delinks.txt
+++ b/config/eur/arm9/overlays/ov047/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02190040 end:0x021941f0 kind:code align:32
- .rodata start:0x021941f0 end:0x021942f0 kind:data align:4
+ .rodata start:0x021941f0 end:0x021942f0 kind:rodata align:4
.init start:0x021942f0 end:0x021944e8 kind:code align:4
- .ctor start:0x021944e8 end:0x021944fc kind:data align:4
+ .ctor start:0x021944e8 end:0x021944fc kind:rodata align:4
.data start:0x02194500 end:0x02194a00 kind:data align:32
.bss start:0x02194a00 end:0x02194aa0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov048/delinks.txt b/config/eur/arm9/overlays/ov048/delinks.txt
index e267f969..bc429bc7 100644
--- a/config/eur/arm9/overlays/ov048/delinks.txt
+++ b/config/eur/arm9/overlays/ov048/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02190040 end:0x0219465c kind:code align:32
- .rodata start:0x0219465c end:0x021946c0 kind:data align:4
+ .rodata start:0x0219465c end:0x021946c0 kind:rodata align:4
.init start:0x021946c0 end:0x02194ad4 kind:code align:4
- .ctor start:0x02194ad4 end:0x02194af0 kind:data align:4
+ .ctor start:0x02194ad4 end:0x02194af0 kind:rodata align:4
.data start:0x02194b00 end:0x02195400 kind:data align:32
.bss start:0x02195400 end:0x02195500 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov049/delinks.txt b/config/eur/arm9/overlays/ov049/delinks.txt
index b4fdabac..f15c743c 100644
--- a/config/eur/arm9/overlays/ov049/delinks.txt
+++ b/config/eur/arm9/overlays/ov049/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02195500 end:0x021981e0 kind:code align:32
- .rodata start:0x021981e0 end:0x021982c8 kind:data align:4
+ .rodata start:0x021981e0 end:0x021982c8 kind:rodata align:4
.init start:0x021982c8 end:0x02198474 kind:code align:4
- .ctor start:0x02198474 end:0x02198484 kind:data align:4
+ .ctor start:0x02198474 end:0x02198484 kind:rodata align:4
.data start:0x021984a0 end:0x02198920 kind:data align:32
.bss start:0x02198920 end:0x021989a0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov050/delinks.txt b/config/eur/arm9/overlays/ov050/delinks.txt
index 7f715155..c2053033 100644
--- a/config/eur/arm9/overlays/ov050/delinks.txt
+++ b/config/eur/arm9/overlays/ov050/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02195500 end:0x021987cc kind:code align:32
- .rodata start:0x021987cc end:0x0219882c kind:data align:4
+ .rodata start:0x021987cc end:0x0219882c kind:rodata align:4
.init start:0x0219882c end:0x021989a8 kind:code align:4
- .ctor start:0x021989a8 end:0x021989b4 kind:data align:4
+ .ctor start:0x021989a8 end:0x021989b4 kind:rodata align:4
.data start:0x021989c0 end:0x02198ca0 kind:data align:32
.bss start:0x02198ca0 end:0x02198d00 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov051/delinks.txt b/config/eur/arm9/overlays/ov051/delinks.txt
index d870fbf0..52689ec7 100644
--- a/config/eur/arm9/overlays/ov051/delinks.txt
+++ b/config/eur/arm9/overlays/ov051/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02195500 end:0x02198268 kind:code align:32
- .rodata start:0x02198268 end:0x021982a0 kind:data align:4
+ .rodata start:0x02198268 end:0x021982a0 kind:rodata align:4
.init start:0x021982a0 end:0x021984b0 kind:code align:4
- .ctor start:0x021984b0 end:0x021984c8 kind:data align:4
+ .ctor start:0x021984b0 end:0x021984c8 kind:rodata align:4
.data start:0x021984e0 end:0x02198a60 kind:data align:32
.bss start:0x02198a60 end:0x02198b20 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov052/delinks.txt b/config/eur/arm9/overlays/ov052/delinks.txt
index 88e1edf0..6614fab2 100644
--- a/config/eur/arm9/overlays/ov052/delinks.txt
+++ b/config/eur/arm9/overlays/ov052/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02195500 end:0x02197888 kind:code align:32
- .rodata start:0x02197888 end:0x021978d4 kind:data align:4
+ .rodata start:0x02197888 end:0x021978d4 kind:rodata align:4
.init start:0x021978d4 end:0x02197954 kind:code align:4
- .ctor start:0x02197954 end:0x02197960 kind:data align:4
+ .ctor start:0x02197954 end:0x02197960 kind:rodata align:4
.data start:0x02197960 end:0x02197c40 kind:data align:32
.bss start:0x02197c40 end:0x02197ca0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov053/delinks.txt b/config/eur/arm9/overlays/ov053/delinks.txt
index 0852c01d..4bc4c519 100644
--- a/config/eur/arm9/overlays/ov053/delinks.txt
+++ b/config/eur/arm9/overlays/ov053/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02198d00 end:0x02199fb8 kind:code align:32
- .rodata start:0x02199fb8 end:0x02199fc4 kind:data align:4
+ .rodata start:0x02199fb8 end:0x02199fc4 kind:rodata align:4
.init start:0x02199fc4 end:0x0219a070 kind:code align:4
- .ctor start:0x0219a070 end:0x0219a078 kind:data align:4
+ .ctor start:0x0219a070 end:0x0219a078 kind:rodata align:4
.data start:0x0219a080 end:0x0219a180 kind:data align:32
.bss start:0x0219a180 end:0x0219a6a0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov054/delinks.txt b/config/eur/arm9/overlays/ov054/delinks.txt
index 00b36bb6..2f7ed216 100644
--- a/config/eur/arm9/overlays/ov054/delinks.txt
+++ b/config/eur/arm9/overlays/ov054/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02198d00 end:0x02199914 kind:code align:32
- .rodata start:0x02199914 end:0x02199924 kind:data align:4
+ .rodata start:0x02199914 end:0x02199924 kind:rodata align:4
.init start:0x02199924 end:0x02199954 kind:code align:4
- .ctor start:0x02199954 end:0x0219995c kind:data align:4
+ .ctor start:0x02199954 end:0x0219995c kind:rodata align:4
.data start:0x02199960 end:0x02199a20 kind:data align:32
.bss start:0x02199a20 end:0x02199aa0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov055/delinks.txt b/config/eur/arm9/overlays/ov055/delinks.txt
index 815d5a56..8eeb83ee 100644
--- a/config/eur/arm9/overlays/ov055/delinks.txt
+++ b/config/eur/arm9/overlays/ov055/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02198d00 end:0x021997b0 kind:code align:32
- .rodata start:0x021997b0 end:0x021997ec kind:data align:4
+ .rodata start:0x021997b0 end:0x021997ec kind:rodata align:4
.init start:0x021997ec end:0x0219981c kind:code align:4
- .ctor start:0x0219981c end:0x02199824 kind:data align:4
+ .ctor start:0x0219981c end:0x02199824 kind:rodata align:4
.data start:0x02199840 end:0x021998a0 kind:data align:32
.bss start:0x021998a0 end:0x02199920 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov056/delinks.txt b/config/eur/arm9/overlays/ov056/delinks.txt
index 04bb0a92..20159d47 100644
--- a/config/eur/arm9/overlays/ov056/delinks.txt
+++ b/config/eur/arm9/overlays/ov056/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02198d00 end:0x0219931c kind:code align:32
- .rodata start:0x0219931c end:0x02199328 kind:data align:4
+ .rodata start:0x0219931c end:0x02199328 kind:rodata align:4
.init start:0x02199328 end:0x0219937c kind:code align:4
- .ctor start:0x0219937c end:0x02199384 kind:data align:4
+ .ctor start:0x0219937c end:0x02199384 kind:rodata align:4
.data start:0x021993a0 end:0x02199400 kind:data align:32
.bss start:0x02199400 end:0x02199500 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov057/delinks.txt b/config/eur/arm9/overlays/ov057/delinks.txt
index 71435e87..a6315de5 100644
--- a/config/eur/arm9/overlays/ov057/delinks.txt
+++ b/config/eur/arm9/overlays/ov057/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02198d00 end:0x0219a994 kind:code align:32
- .rodata start:0x0219a994 end:0x0219a9a0 kind:data align:4
+ .rodata start:0x0219a994 end:0x0219a9a0 kind:rodata align:4
.init start:0x0219a9a0 end:0x0219aa10 kind:code align:4
- .ctor start:0x0219aa10 end:0x0219aa1c kind:data align:4
+ .ctor start:0x0219aa10 end:0x0219aa1c kind:rodata align:4
.data start:0x0219aa20 end:0x0219ab00 kind:data align:32
.bss start:0x0219ab00 end:0x0219ab40 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov058/delinks.txt b/config/eur/arm9/overlays/ov058/delinks.txt
index fe87a28e..f53e0902 100644
--- a/config/eur/arm9/overlays/ov058/delinks.txt
+++ b/config/eur/arm9/overlays/ov058/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02198d00 end:0x0219ad68 kind:code align:32
- .rodata start:0x0219ad68 end:0x0219ad80 kind:data align:4
+ .rodata start:0x0219ad68 end:0x0219ad80 kind:rodata align:4
.init start:0x0219ad80 end:0x0219ae7c kind:code align:4
- .ctor start:0x0219ae7c end:0x0219ae84 kind:data align:4
+ .ctor start:0x0219ae7c end:0x0219ae84 kind:rodata align:4
.data start:0x0219aea0 end:0x0219afc0 kind:data align:32
.bss start:0x0219afc0 end:0x0219b120 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov059/delinks.txt b/config/eur/arm9/overlays/ov059/delinks.txt
index 4554202b..ff7e5c38 100644
--- a/config/eur/arm9/overlays/ov059/delinks.txt
+++ b/config/eur/arm9/overlays/ov059/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x02198d00 end:0x0219b110 kind:code align:32
- .rodata start:0x0219b110 end:0x0219b124 kind:data align:4
- .ctor start:0x0219b124 end:0x0219b128 kind:data align:4
+ .rodata start:0x0219b110 end:0x0219b124 kind:rodata align:4
+ .ctor start:0x0219b124 end:0x0219b128 kind:rodata align:4
.data start:0x0219b140 end:0x0219b1c0 kind:data align:32
.bss start:0x0219b1c0 end:0x0219b1c0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov060/delinks.txt b/config/eur/arm9/overlays/ov060/delinks.txt
index 6b3ab4cc..ffeee978 100644
--- a/config/eur/arm9/overlays/ov060/delinks.txt
+++ b/config/eur/arm9/overlays/ov060/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x0213dec0 end:0x021476b8 kind:code align:32
- .rodata start:0x021476b8 end:0x021476ec kind:data align:4
- .ctor start:0x021476ec end:0x021476f0 kind:data align:4
+ .rodata start:0x021476b8 end:0x021476ec kind:rodata align:4
+ .ctor start:0x021476ec end:0x021476f0 kind:rodata align:4
.data start:0x02147700 end:0x021477e0 kind:data align:32
.bss start:0x021477e0 end:0x021485a0 kind:bss align:32
diff --git a/config/eur/arm9/overlays/ov061/delinks.txt b/config/eur/arm9/overlays/ov061/delinks.txt
index ee44ae97..8903a646 100644
--- a/config/eur/arm9/overlays/ov061/delinks.txt
+++ b/config/eur/arm9/overlays/ov061/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x0213dec0 end:0x0217a210 kind:code align:32
- .rodata start:0x0217a210 end:0x0217a608 kind:data align:4
- .ctor start:0x0217a608 end:0x0217a60c kind:data align:4
+ .rodata start:0x0217a210 end:0x0217a608 kind:rodata align:4
+ .ctor start:0x0217a608 end:0x0217a60c kind:rodata align:4
.data start:0x0217a620 end:0x0217ea20 kind:data align:32
.bss start:0x0217ea20 end:0x021819e0 kind:bss align:32
diff --git a/config/usa/arm9/delinks.txt b/config/usa/arm9/delinks.txt
index 5c30acbc..d3ab3589 100644
--- a/config/usa/arm9/delinks.txt
+++ b/config/usa/arm9/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02000000 end:0x02050c5c kind:code align:32
.init start:0x02050c5c end:0x02050f10 kind:code align:4
- .rodata start:0x02050f10 end:0x02057214 kind:data align:4
- .ctor start:0x02057214 end:0x0205727c kind:data align:4
+ .rodata start:0x02050f10 end:0x02057214 kind:rodata align:4
+ .ctor start:0x02057214 end:0x0205727c kind:rodata align:4
.data start:0x02057280 end:0x02058dc0 kind:data align:32
.bss start:0x02058dc0 end:0x02077360 kind:bss align:32
@@ -10,6 +10,9 @@ src/Main/Actor/ActorType.cpp:
.text start:0x0203e740 end:0x0203e85c
.bss start:0x02069120 end:0x02069128
+src/Main/System/OverlayManager.cpp:
+ .text start:0x0202ff40 end:0x02030038
+
libs/cpp/src/__register_global_object.cpp:
complete
.text start:0x0204f890 end:0x0204f8b0
diff --git a/config/usa/arm9/overlays/ov000/delinks.txt b/config/usa/arm9/overlays/ov000/delinks.txt
index 356452b7..442437bd 100644
--- a/config/usa/arm9/overlays/ov000/delinks.txt
+++ b/config/usa/arm9/overlays/ov000/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02077360 end:0x020d8710 kind:code align:32
- .rodata start:0x020d8710 end:0x020df2d8 kind:data align:4
+ .rodata start:0x020d8710 end:0x020df2d8 kind:rodata align:4
.init start:0x020df2d8 end:0x020e1e28 kind:code align:4
- .ctor start:0x020e1e28 end:0x020e1f0c kind:data align:4
+ .ctor start:0x020e1e28 end:0x020e1f0c kind:rodata align:4
.data start:0x020e1f20 end:0x020e92c0 kind:data align:32
.bss start:0x020e92c0 end:0x020ec718 kind:bss align:32
.sbss start:0x020ec718 end:0x020eece0 kind:bss align:4
@@ -16,6 +16,56 @@ src/00_Core/Actor/ActorManager.cpp:
.text start:0x020c3374 end:0x020c3df4
.data start:0x020e7248 end:0x020e7294
+src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp:
+ .text start:0x0208fa10 end:0x02090348
+ .init start:0x020df618 end:0x020df658
+ .ctor start:0x020e1e64 end:0x020e1e68
+ .data start:0x020e28c8 end:0x020e2984
+ .sbss start:0x020ecd04 end:0x020ecd24
+
+src/00_Core/Actor/Dungeon/ActorEventIcon.cpp:
+ .text start:0x02090494 end:0x02090898
+ .init start:0x020df698 end:0x020df6d8
+ .ctor start:0x020e1e6c end:0x020e1e70
+ .data start:0x020e2a40 end:0x020e2afc
+ .sbss start:0x020ecd44 end:0x020ecd64
+
+src/00_Core/Actor/Navi/ActorNavi.cpp:
+ .text start:0x020b8080 end:0x020b8578
+ .init start:0x020e1278 end:0x020e12dc
+ .ctor start:0x020e1ea8 end:0x020e1eac
+ .data start:0x020e64b4 end:0x020e6614
+ .sbss start:0x020ee140 end:0x020ee178
+
+src/00_Core/Actor/Navi/ActorForceNavi.cpp:
+ complete
+ .text start:0x020b85cc end:0x020b8644
+ .init start:0x020e12dc end:0x020e131c
+ .ctor start:0x020e1eac end:0x020e1eb0
+ .data start:0x020e6614 end:0x020e670c
+ .sbss start:0x020ee178 end:0x020ee198
+
+src/00_Core/Actor/Navi/ActorNaviBase.cpp:
+ .text start:0x020b87fc end:0x020bb0b8
+ .rodata start:0x020dc7bc end:0x020dc7f8
+ .data start:0x020e670c end:0x020e6874
+ .sbss start:0x020ee198 end:0x020ee19c
+
+src/00_Core/Actor/Dungeon/ActorActionObject.cpp:
+ .text start:0x020be138 end:0x020be3b8
+ .init start:0x020e1ab4 end:0x020e1af4
+ .ctor start:0x020e1eb4 end:0x020e1eb8
+ .data start:0x020e6cdc end:0x020e6d98
+ .sbss start:0x020ee4fc end:0x020ee51c
+
+src/00_Core/Actor/Navi/ActorWisdomNavi.cpp:
+ complete
+ .text start:0x020c0b04 end:0x020c0b7c
+ .init start:0x020e1af4 end:0x020e1b34
+ .ctor start:0x020e1eb8 end:0x020e1ebc
+ .data start:0x020e7038 end:0x020e7130
+ .sbss start:0x020ee530 end:0x020ee550
+
src/00_Core/Item/Item.cpp:
.text start:0x020acfc0 end:0x020ad030
.rodata start:0x020dc514 end:0x020dc664
diff --git a/config/usa/arm9/overlays/ov000/relocs.txt b/config/usa/arm9/overlays/ov000/relocs.txt
index eb606487..5ae92103 100644
--- a/config/usa/arm9/overlays/ov000/relocs.txt
+++ b/config/usa/arm9/overlays/ov000/relocs.txt
@@ -6526,7 +6526,7 @@ from:0x020b85c8 kind:load to:0x020dc798 module:overlay(0)
from:0x020b85e4 kind:arm_call to:0x0202e9d8 module:main
from:0x020b85f0 kind:arm_call_thumb to:0x02107790 module:overlay(4)
from:0x020b8604 kind:load to:0x027e0fe0 module:dtcm
-from:0x020b8608 kind:load to:0x020e661c module:overlay(0)
+from:0x020b8608 kind:load to:0x020e6614 add:8 module:overlay(0)
from:0x020b861c kind:arm_call_thumb to:0x02107914 module:overlay(4)
from:0x020b8624 kind:arm_call to:0x0202ea08 module:main
from:0x020b8638 kind:arm_call_thumb to:0x02107914 module:overlay(4)
@@ -7436,7 +7436,7 @@ from:0x020c0afc kind:load to:0x02050f10 module:main
from:0x020c0b1c kind:arm_call to:0x0202e9d8 module:main
from:0x020c0b28 kind:arm_call_thumb to:0x02107790 module:overlay(4)
from:0x020c0b3c kind:load to:0x027e0fe0 module:dtcm
-from:0x020c0b40 kind:load to:0x020e7040 module:overlay(0)
+from:0x020c0b40 kind:load to:0x020e7038 add:8 module:overlay(0)
from:0x020c0b54 kind:arm_call_thumb to:0x02107914 module:overlay(4)
from:0x020c0b5c kind:arm_call to:0x0202ea08 module:main
from:0x020c0b70 kind:arm_call_thumb to:0x02107914 module:overlay(4)
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index f22f0ea2..46c2987c 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -965,7 +965,7 @@ _ZN14ActorEventIcon8vfunc_08Ev kind:function(arm,size=0xb0) addr:0x2090520
_ZN14ActorEventIcon8vfunc_14Ej kind:function(arm,size=0xc) addr:0x20905d0
_ZN14ActorEventIcon8vfunc_18Ej kind:function(arm,size=0xc) addr:0x20905dc
_ZN14ActorEventIcon19func_ov000_02090648Ej kind:function(arm,size=0x12c) addr:0x20905e8
-_Z19func_ov000_02090774j kind:function(arm,size=0x2c) addr:0x2090714
+_ZN14ActorEventIcon19func_ov000_02090774Ej kind:function(arm,size=0x2c) addr:0x2090714
_ZN14ActorEventIcon8vfunc_1cEPt kind:function(arm,size=0x110) addr:0x2090740
_ZN14ActorEventIconD1Ev kind:function(arm,size=0x20) addr:0x2090850
_ZN14ActorEventIconD0Ev kind:function(arm,size=0x28) addr:0x2090870
@@ -2397,40 +2397,40 @@ func_ov000_020b7fe8 kind:function(arm,size=0x14) addr:0x20b7f88
_ZN13PlayerManager4SaveEP15SaveItemManager kind:function(thumb,size=0x50) addr:0x20b7f9c
_ZN13PlayerManager17IncreaseMaxHealthEs kind:function(thumb,size=0x14) addr:0x20b7fec
_ZN13PlayerManager19UpdateShipMaxHealthEv kind:function(thumb,size=0x80) addr:0x20b8000
-func_ov000_020b80e0 kind:function(arm,size=0x30) addr:0x20b8080
-func_ov000_020b8110 kind:function(arm,size=0x24) addr:0x20b80b0
-func_ov000_020b8134 kind:function(arm,size=0x14) addr:0x20b80d4
-func_ov000_020b8148 kind:function(arm,size=0x1c) addr:0x20b80e8
-func_ov000_020b8164 kind:function(arm,size=0x50) addr:0x20b8104
-func_ov000_020b81b4 kind:function(arm,size=0x40) addr:0x20b8154
-func_ov000_020b81f4 kind:function(arm,size=0xc) addr:0x20b8194
-func_ov000_020b8200 kind:function(arm,size=0x10) addr:0x20b81a0
-func_ov000_020b8210 kind:function(arm,size=0x38) addr:0x20b81b0
-func_ov000_020b8248 kind:function(arm,size=0x38) addr:0x20b81e8
-func_ov000_020b8280 kind:function(arm,size=0x8) addr:0x20b8220
-func_ov000_020b8288 kind:function(arm,size=0x8) addr:0x20b8228
-func_ov000_020b8290 kind:function(arm,size=0x2c) addr:0x20b8230
-func_ov000_020b82bc kind:function(arm,size=0x2c) addr:0x20b825c
-func_ov000_020b82e8 kind:function(arm,size=0x58) addr:0x20b8288
-func_ov000_020b8340 kind:function(arm,size=0xb8) addr:0x20b82e0
-func_ov000_020b83f8 kind:function(arm,size=0x20) addr:0x20b8398
-func_ov000_020b8418 kind:function(arm,size=0x3c) addr:0x20b83b8
-func_ov000_020b8454 kind:function(arm,size=0x24) addr:0x20b83f4
-func_ov000_020b8478 kind:function(arm,size=0x24) addr:0x20b8418
-func_ov000_020b849c kind:function(arm,size=0x34) addr:0x20b843c
-func_ov000_020b84d0 kind:function(arm,size=0x8) addr:0x20b8470
-func_ov000_020b84d8 kind:function(arm,size=0x54) addr:0x20b8478
-func_ov000_020b852c kind:function(arm,size=0x10) addr:0x20b84cc
-func_ov000_020b853c kind:function(arm,size=0x14) addr:0x20b84dc
-func_ov000_020b8550 kind:function(arm,size=0x48) addr:0x20b84f0
-func_ov000_020b8598 kind:function(arm,size=0x40) addr:0x20b8538
+_ZN9ActorNavi6CreateEv kind:function(arm,size=0x30) addr:0x20b8080
+_ZN24UnkStruct_ov000_020b8110C2Ev kind:function(arm,size=0x24) addr:0x20b80b0
+_ZN24UnkStruct_ov000_020b8110D1Ev kind:function(arm,size=0x14) addr:0x20b80d4
+_ZN24UnkStruct_ov000_020b8110D0Ev kind:function(arm,size=0x1c) addr:0x20b80e8
+_ZN24UnkStruct_ov000_020b81108vfunc_08EPs kind:function(arm,size=0x50) addr:0x20b8104
+_ZN24UnkStruct_ov000_020b81108vfunc_18EPi kind:function(arm,size=0x40) addr:0x20b8154
+_ZN24UnkStruct_ov000_020b81108vfunc_14EPt kind:function(arm,size=0xc) addr:0x20b8194
+_ZN9ActorNavi19func_ov000_020b8200Ev kind:function(arm,size=0x10) addr:0x20b81a0
+_ZN9ActorNavi8vfunc_c4Ev kind:function(arm,size=0x38) addr:0x20b81b0
+_ZN9ActorNavi8vfunc_c8Ev kind:function(arm,size=0x38) addr:0x20b81e8
+_ZN9ActorNavi10GetFairyIdEv kind:function(arm,size=0x8) addr:0x20b8220
+_ZN9ActorNavi8vfunc_b8Ev kind:function(arm,size=0x8) addr:0x20b8228
+_ZN9ActorNavi8vfunc_d4Ev kind:function(arm,size=0x2c) addr:0x20b8230
+_ZN9ActorNavi8vfunc_d0Ev kind:function(arm,size=0x2c) addr:0x20b825c
+_ZN9ActorNavi9SetActiveEb kind:function(arm,size=0x58) addr:0x20b8288
+_ZN9ActorNavi8vfunc_e0Ev kind:function(arm,size=0xb8) addr:0x20b82e0
+_ZN9ActorNavi8vfunc_d8Ev kind:function(arm,size=0x20) addr:0x20b8398
+_ZN9ActorNavi8vfunc_20Eb kind:function(arm,size=0x3c) addr:0x20b83b8
+_ZN9ActorNavi8vfunc_ccEPi kind:function(arm,size=0x24) addr:0x20b83f4
+_ZN9ActorNavi8vfunc_c0EP5Vec3p kind:function(arm,size=0x24) addr:0x20b8418
+_ZN9ActorNavi8vfunc_e8Ev kind:function(arm,size=0x34) addr:0x20b843c
+_ZN9ActorNavi8vfunc_8cEv kind:function(arm,size=0x8) addr:0x20b8470
+_ZN9ActorNavi8vfunc_ecEv kind:function(arm,size=0x54) addr:0x20b8478
+_Z14GetEquipHammerv kind:function(arm,size=0x10) addr:0x20b84cc local
+_ZN9ActorNavi19func_ov000_020b853cEv kind:function(arm,size=0x14) addr:0x20b84dc
+_ZN9ActorNaviD1Ev kind:function(arm,size=0x48) addr:0x20b84f0
+_ZN9ActorNaviD0Ev kind:function(arm,size=0x40) addr:0x20b8538
func_ov000_020b85d8 kind:function(thumb,size=0x28) addr:0x20b8578
func_ov000_020b8600 kind:function(arm,size=0x10) addr:0x20b85a0
func_ov000_020b8610 kind:function(arm,size=0x1c) addr:0x20b85b0
-func_ov000_020b862c kind:function(arm,size=0x40) addr:0x20b85cc
-func_ov000_020b866c kind:function(arm,size=0x8) addr:0x20b860c
-func_ov000_020b8674 kind:function(arm,size=0x1c) addr:0x20b8614
-func_ov000_020b8690 kind:function(arm,size=0x14) addr:0x20b8630
+_ZN14ActorForceNavi6CreateEv kind:function(arm,size=0x40) addr:0x20b85cc
+_ZN14ActorForceNavi10GetFairyIdEv kind:function(arm,size=0x8) addr:0x20b860c
+_ZN14ActorForceNaviD0Ev kind:function(arm,size=0x1c) addr:0x20b8614
+_ZN14ActorForceNaviD1Ev kind:function(arm,size=0x14) addr:0x20b8630
func_ov000_020b86a4 kind:function(arm,size=0x44) addr:0x20b8644
func_ov000_020b86e8 kind:function(arm,size=0x30) addr:0x20b8688
func_ov000_020b8718 kind:function(arm,size=0x8) addr:0x20b86b8
@@ -2617,13 +2617,13 @@ func_ov000_020bd958 kind:function(arm,size=0x4fc) addr:0x20bd8f8
func_ov000_020bde54 kind:function(arm,size=0x60) addr:0x20bddf4
func_ov000_020bdeb4 kind:function(arm,size=0x10c) addr:0x20bde54
func_ov000_020bdfc0 kind:function(arm,size=0x1d8) addr:0x20bdf60
-func_ov000_020be198 kind:function(arm,size=0x30) addr:0x20be138
-func_ov000_020be1c8 kind:function(arm,size=0x20) addr:0x20be168
-func_ov000_020be1e8 kind:function(arm,size=0x14) addr:0x20be188
-func_ov000_020be1fc kind:function(arm,size=0x1c) addr:0x20be19c
-func_ov000_020be218 kind:function(arm,size=0x7c) addr:0x20be1b8
-func_ov000_020be294 kind:function(arm,size=0x178) addr:0x20be234
-func_ov000_020be40c kind:function(arm,size=0xc) addr:0x20be3ac
+_ZN17ActorActionObject6CreateEv kind:function(arm,size=0x30) addr:0x20be138
+_ZN17ActorActionObjectC1Ev kind:function(arm,size=0x20) addr:0x20be168
+_ZN17ActorActionObjectD1Ev kind:function(arm,size=0x14) addr:0x20be188
+_ZN17ActorActionObjectD0Ev kind:function(arm,size=0x1c) addr:0x20be19c
+_ZN17ActorActionObject8vfunc_08Ev kind:function(arm,size=0x7c) addr:0x20be1b8
+_ZN17ActorActionObject8vfunc_14Ej kind:function(arm,size=0x178) addr:0x20be234
+_ZN17ActorActionObject8vfunc_18Ej kind:function(arm,size=0xc) addr:0x20be3ac
func_ov000_020be418 kind:function(arm,size=0x4c) addr:0x20be3b8
func_ov000_020be464 kind:function(arm,size=0x78) addr:0x20be404
func_ov000_020be4dc kind:function(arm,size=0x64) addr:0x20be47c
@@ -2696,10 +2696,10 @@ _ZN11EquipShield8vfunc_1cEv kind:function(arm,size=0xc) addr:0x20c0798
_ZN11EquipShield8vfunc_30Ev kind:function(arm,size=0x68) addr:0x20c07a4
_ZN11EquipShield8vfunc_38Ei kind:function(arm,size=0x21c) addr:0x20c080c
_ZNK11EquipShield9GetHitboxEP8Cylinder kind:function(arm,size=0xdc) addr:0x20c0a28
-func_ov000_020c0b64 kind:function(arm,size=0x40) addr:0x20c0b04
-func_ov000_020c0ba4 kind:function(arm,size=0x8) addr:0x20c0b44
-func_ov000_020c0bac kind:function(arm,size=0x1c) addr:0x20c0b4c
-func_ov000_020c0bc8 kind:function(arm,size=0x14) addr:0x20c0b68
+_ZN15ActorWisdomNavi6CreateEv kind:function(arm,size=0x40) addr:0x20c0b04
+_ZN15ActorWisdomNavi10GetFairyIdEv kind:function(arm,size=0x8) addr:0x20c0b44
+_ZN15ActorWisdomNaviD0Ev kind:function(arm,size=0x1c) addr:0x20c0b4c
+_ZN15ActorWisdomNaviD1Ev kind:function(arm,size=0x14) addr:0x20c0b68
func_ov000_020c0bdc kind:function(arm,size=0x2c) addr:0x20c0b7c
func_ov000_020c0c08 kind:function(thumb,size=0x28) addr:0x20c0ba8
func_ov000_020c0c30 kind:function(thumb,size=0x4) addr:0x20c0bd0
@@ -2745,7 +2745,7 @@ _ZN5Actor8vfunc_30Ev kind:function(arm,size=0x8) addr:0x20c1750
_ZN5Actor8vfunc_14Ej kind:function(arm,size=0x4) addr:0x20c1758
_ZN5Actor8vfunc_18Ej kind:function(arm,size=0x18) addr:0x20c175c
_ZN5Actor8vfunc_1cEPt kind:function(arm,size=0xc0) addr:0x20c1774
-_ZN5Actor8vfunc_20Ei kind:function(arm,size=0x4) addr:0x20c1834
+_ZN5Actor8vfunc_20Eb kind:function(arm,size=0x4) addr:0x20c1834
_ZN5Actor10SetUnk_129Eb kind:function(arm,size=0x10) addr:0x20c1838
_ZN5Actor10SetUnk_11bEv kind:function(arm,size=0x1c) addr:0x20c1848
_ZN5Actor11SetVelocityEP5Vec3p kind:function(arm,size=0x38) addr:0x20c1864
@@ -2773,7 +2773,7 @@ _ZN5Actor20KillPickupItemActorsEv kind:function(arm,size=0x54) addr:0x20c1ab8
_ZN5Actor15TrySetTransformEP9Transform kind:function(arm,size=0x48) addr:0x20c1b0c
_ZN5Actor12SetTransformEP9Transform kind:function(arm,size=0x44) addr:0x20c1b54
_ZN5Actor8vfunc_a8Ev kind:function(arm,size=0x4) addr:0x20c1b98
-_ZN5Actor18func_Ov00_020c1bfcEi kind:function(arm,size=0x24) addr:0x20c1b9c
+_ZN5Actor18func_ov00_020c1bfcEi kind:function(arm,size=0x24) addr:0x20c1b9c
_ZN5Actor18func_ov00_020c1c20Eii kind:function(arm,size=0x28) addr:0x20c1bc0
_ZN5Actor8vfunc_48EP9Knockback kind:function(arm,size=0x8) addr:0x20c1be8
_ZN5Actor8vfunc_4cEPi kind:function(arm,size=0x44) addr:0x20c1bf0
@@ -3940,7 +3940,7 @@ __sinit_ov000_020df4cc kind:function(arm,size=0x174) addr:0x20df46c
__sinit_ov000_020df640 kind:function(arm,size=0x38) addr:0x20df5e0
__sinit_ActorSwitchObject.cpp kind:function(arm,size=0x40) addr:0x20df618
__sinit_ov000_020df6b8 kind:function(arm,size=0x40) addr:0x20df658
-__sinit_ov000_020df6f8 kind:function(arm,size=0x40) addr:0x20df698
+__sinit_ActorEventIcon.cpp kind:function(arm,size=0x40) addr:0x20df698
__sinit_ov000_020df738 kind:function(arm,size=0x38) addr:0x20df6d8
__sinit_ov000_020df770 kind:function(arm,size=0x20) addr:0x20df710
__sinit_ov000_020df790 kind:function(arm,size=0x1718) addr:0x20df730
@@ -3955,11 +3955,11 @@ __sinit_ov000_020e11d8 kind:function(arm,size=0x34) addr:0x20e1178
__sinit_ov000_020e120c kind:function(arm,size=0x44) addr:0x20e11ac
__sinit_ov000_020e1250 kind:function(arm,size=0x40) addr:0x20e11f0
__sinit_ov000_020e1290 kind:function(arm,size=0x48) addr:0x20e1230
-__sinit_ov000_020e12d8 kind:function(arm,size=0x64) addr:0x20e1278
-__sinit_ov000_020e133c kind:function(arm,size=0x40) addr:0x20e12dc
+__sinit_ActorNavi.cpp kind:function(arm,size=0x64) addr:0x20e1278 local
+__sinit_ActorForceNavi.cpp kind:function(arm,size=0x40) addr:0x20e12dc local
__sinit_ov000_020e137c kind:function(arm,size=0x798) addr:0x20e131c
-__sinit_ov000_020e1b14 kind:function(arm,size=0x40) addr:0x20e1ab4
-__sinit_ov000_020e1b54 kind:function(arm,size=0x40) addr:0x20e1af4
+__sinit_ActorActionObject.cpp kind:function(arm,size=0x40) addr:0x20e1ab4 local
+__sinit_ActorWisdomNavi.cpp kind:function(arm,size=0x40) addr:0x20e1af4 local
__sinit_ov000_020e1b94 kind:function(arm,size=0x40) addr:0x20e1b34
__sinit_ov000_020e1bd4 kind:function(arm,size=0x40) addr:0x20e1b74
__sinit_ov000_020e1c14 kind:function(arm,size=0x40) addr:0x20e1bb4
@@ -4768,7 +4768,7 @@ data_ov000_020e59fc kind:data(any) addr:0x20e599c
data_ov000_020e5a0c kind:data(any) addr:0x20e59ac
data_ov000_020e5a20 kind:data(any) addr:0x20e59c0
data_ov000_020e5a34 kind:data(any) addr:0x20e59d4
-_ZTV13LinkStateItem kind:data(any) addr:0x20e59e8
+_ZTV13LinkStateItem kind:data(any) addr:0x20e59e0
data_ov000_020e5a8c kind:data(any) addr:0x20e5a2c
data_ov000_020e5a90 kind:data(any) addr:0x20e5a30
data_ov000_020e5a94 kind:data(any) addr:0x20e5a34
@@ -4956,9 +4956,9 @@ data_ov000_020e6528 kind:data(any) addr:0x20e64c8
data_ov000_020e652c kind:data(any) addr:0x20e64cc
data_ov000_020e6530 kind:data(any) addr:0x20e64d0
data_ov000_020e6534 kind:data(any) addr:0x20e64d4
-data_ov000_020e6560 kind:data(any) addr:0x20e6500
-data_ov000_020e6658 kind:data(any) addr:0x20e65f8
-data_ov000_020e667c kind:data(any) addr:0x20e661c
+_ZTV9ActorNavi kind:data(any) addr:0x20e6500
+_ZTV24UnkStruct_ov000_020b8110 kind:data(any) addr:0x20e65f8
+_ZTV14ActorForceNavi kind:data(any) addr:0x20e6614
data_ov000_020e676c kind:data(any) addr:0x20e670c
data_ov000_020e6770 kind:data(any) addr:0x20e6710
data_ov000_020e6774 kind:data(any) addr:0x20e6714
@@ -5017,7 +5017,7 @@ data_ov000_020e6c58 kind:data(any) addr:0x20e6bf8
data_ov000_020e6c5c kind:data(any) addr:0x20e6bfc
_ZTV14PlayerLinkBase kind:data(any) addr:0x20e6c28
data_ov000_020e6d18 kind:data(any) addr:0x20e6cb8
-data_ov000_020e6d44 kind:data(any) addr:0x20e6ce4
+_ZTV17ActorActionObject kind:data(any) addr:0x20e6ce4
data_ov000_020e6df8 kind:data(any) addr:0x20e6d98
data_ov000_020e6dfc kind:data(any) addr:0x20e6d9c
data_ov000_020e6e08 kind:data(any) addr:0x20e6da8
@@ -5057,7 +5057,7 @@ data_ov000_020e7014 kind:data(any) addr:0x20e6fb4
data_ov000_020e7018 kind:data(any) addr:0x20e6fb8
data_ov000_020e701c kind:data(any) addr:0x20e6fbc
data_ov000_020e7048 kind:data(any) addr:0x20e6fe8
-data_ov000_020e70a0 kind:data(any) addr:0x20e7040
+_ZTV15ActorWisdomNavi kind:data(any) addr:0x20e7038
data_ov000_020e7198 kind:data(any) addr:0x20e7138
data_ov000_020e71a0 kind:data(any) addr:0x20e7140
data_ov000_020e71a4 kind:data(any) addr:0x20e7144
@@ -5070,14 +5070,14 @@ data_ov000_020e71bc kind:data(any) addr:0x20e715c
sShipTypes kind:data(any) addr:0x20e7160
_ZTV17KillPickupsFilter kind:data(any) addr:0x20e7188
_ZTV5Actor kind:data(any) addr:0x20e7194
-data_ov000_020e72a8 kind:data(any) addr:0x20e7248
-data_ov000_020e72ac kind:data(any) addr:0x20e724c
-data_ov000_020e72b0 kind:data(any) addr:0x20e7250
-data_ov000_020e72b4 kind:data(any) addr:0x20e7254
-data_ov000_020e72b8 kind:data(any) addr:0x20e7258
-data_ov000_020e72bc kind:data(any) addr:0x20e725c
-data_ov000_020e72c0 kind:data(any) addr:0x20e7260
-data_ov000_020e72c4 kind:data(any) addr:0x20e7264
+@965 kind:data(any) addr:0x20e7248 local
+@964 kind:data(any) addr:0x20e724c local
+@963 kind:data(any) addr:0x20e7250 local
+@962 kind:data(any) addr:0x20e7254 local
+@961 kind:data(any) addr:0x20e7258 local
+@960 kind:data(any) addr:0x20e725c local
+@959 kind:data(any) addr:0x20e7260 local
+@958 kind:data(any) addr:0x20e7264 local
_ZTV11FilterActor kind:data(any) addr:0x20e7288
data_ov000_020e72fc kind:data(any) addr:0x20e729c
data_ov000_020e7300 kind:data(any) addr:0x20e72a0
@@ -5875,12 +5875,12 @@ data_ov000_020ee16c kind:bss addr:0x20ee10c
data_ov000_020ee178 kind:bss addr:0x20ee118
data_ov000_020ee184 kind:bss addr:0x20ee124
data_ov000_020ee198 kind:bss addr:0x20ee138
-data_ov000_020ee1a0 kind:bss addr:0x20ee140
-data_ov000_020ee1ac kind:bss addr:0x20ee14c
-data_ov000_020ee1c0 kind:bss addr:0x20ee160
+@418 kind:bss addr:0x20ee140 local
+_ZN9ActorNavi5gTypeE kind:bss addr:0x20ee14c
+@419 kind:bss addr:0x20ee160 local
data_ov000_020ee1cc kind:bss addr:0x20ee16c
-data_ov000_020ee1d8 kind:bss addr:0x20ee178
-data_ov000_020ee1e4 kind:bss addr:0x20ee184
+@403 kind:bss addr:0x20ee178 local
+_ZN14ActorForceNavi5gTypeE kind:bss addr:0x20ee184
data_ov000_020ee1f8 kind:bss addr:0x20ee198
data_ov000_020ee1fc kind:bss addr:0x20ee19c
data_ov000_020ee208 kind:bss addr:0x20ee1a8
@@ -5939,12 +5939,12 @@ data_ov000_020ee50c kind:bss addr:0x20ee4ac
data_ov000_020ee520 kind:bss addr:0x20ee4c0
data_ov000_020ee534 kind:bss addr:0x20ee4d4
data_ov000_020ee548 kind:bss addr:0x20ee4e8
-data_ov000_020ee55c kind:bss addr:0x20ee4fc
-data_ov000_020ee568 kind:bss addr:0x20ee508
+@360 kind:bss addr:0x20ee4fc local
+_ZN17ActorActionObject5gTypeE kind:bss addr:0x20ee508
gPlayerAnimHandler kind:bss addr:0x20ee51c
data_ov000_020ee588 kind:bss addr:0x20ee528
-data_ov000_020ee590 kind:bss addr:0x20ee530
-data_ov000_020ee59c kind:bss addr:0x20ee53c
+@403 kind:bss addr:0x20ee530 local
+_ZN15ActorWisdomNavi5gTypeE kind:bss addr:0x20ee53c
data_ov000_020ee5b0 kind:bss addr:0x20ee550
data_ov000_020ee5bc kind:bss addr:0x20ee55c
data_ov000_020ee5d0 kind:bss addr:0x20ee570
diff --git a/config/usa/arm9/overlays/ov001/delinks.txt b/config/usa/arm9/overlays/ov001/delinks.txt
index 24709b61..12545356 100644
--- a/config/usa/arm9/overlays/ov001/delinks.txt
+++ b/config/usa/arm9/overlays/ov001/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x020eece0 end:0x020f8654 kind:code align:32
- .rodata start:0x020f8654 end:0x020f8894 kind:data align:4
- .ctor start:0x020f8894 end:0x020f8898 kind:data align:4
+ .rodata start:0x020f8654 end:0x020f8894 kind:rodata align:4
+ .ctor start:0x020f8894 end:0x020f8898 kind:rodata align:4
.data start:0x020f88a0 end:0x020f8b00 kind:data align:32
.bss start:0x020f8b00 end:0x020ff140 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov002/delinks.txt b/config/usa/arm9/overlays/ov002/delinks.txt
index 539058e7..bb08ad8c 100644
--- a/config/usa/arm9/overlays/ov002/delinks.txt
+++ b/config/usa/arm9/overlays/ov002/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x020eece0 end:0x020f66cc kind:code align:32
- .rodata start:0x020f66cc end:0x020f6918 kind:data align:4
+ .rodata start:0x020f66cc end:0x020f6918 kind:rodata align:4
.init start:0x020f6918 end:0x020f6944 kind:code align:4
- .ctor start:0x020f6944 end:0x020f694c kind:data align:4
+ .ctor start:0x020f6944 end:0x020f694c kind:rodata align:4
.data start:0x020f6960 end:0x020f7100 kind:data align:32
.bss start:0x020f7100 end:0x02100120 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov003/delinks.txt b/config/usa/arm9/overlays/ov003/delinks.txt
index fc653fb6..a19cf6ed 100644
--- a/config/usa/arm9/overlays/ov003/delinks.txt
+++ b/config/usa/arm9/overlays/ov003/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x020eece0 end:0x020fc3c8 kind:code align:32
- .rodata start:0x020fc3c8 end:0x020ffd9c kind:data align:4
+ .rodata start:0x020fc3c8 end:0x020ffd9c kind:rodata align:4
.init start:0x020ffd9c end:0x020fff40 kind:code align:4
- .ctor start:0x020fff40 end:0x020fff68 kind:data align:4
+ .ctor start:0x020fff40 end:0x020fff68 kind:rodata align:4
.data start:0x020fff80 end:0x02100a00 kind:data align:32
.bss start:0x02100a00 end:0x02100a60 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov004/delinks.txt b/config/usa/arm9/overlays/ov004/delinks.txt
index 4d0af9ea..70de7a14 100644
--- a/config/usa/arm9/overlays/ov004/delinks.txt
+++ b/config/usa/arm9/overlays/ov004/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02100a60 end:0x0210f7a4 kind:code align:32
- .rodata start:0x0210f7a4 end:0x0210fcd8 kind:data align:4
+ .rodata start:0x0210f7a4 end:0x0210fcd8 kind:rodata align:4
.init start:0x0210fcd8 end:0x0210fd10 kind:code align:4
- .ctor start:0x0210fd10 end:0x0210fd1c kind:data align:4
+ .ctor start:0x0210fd10 end:0x0210fd1c kind:rodata align:4
.data start:0x0210fd20 end:0x02111360 kind:data align:32
.bss start:0x02111360 end:0x02111360 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov004/relocs.txt b/config/usa/arm9/overlays/ov004/relocs.txt
index 76d78e03..13a0063b 100644
--- a/config/usa/arm9/overlays/ov004/relocs.txt
+++ b/config/usa/arm9/overlays/ov004/relocs.txt
@@ -1960,7 +1960,7 @@ from:0x021099cc kind:thumb_call_arm to:0x020d04d0 module:overlay(0)
from:0x021099d2 kind:thumb_call to:0x02109930 module:overlay(4)
from:0x021099de kind:thumb_call to:0x0210ad54 module:overlay(4)
from:0x02109a3a kind:thumb_call_arm to:0x0204f5d0 module:main
-from:0x02109a58 kind:load to:0x020e59e8 add:8 module:overlay(0)
+from:0x02109a58 kind:load to:0x020e59e0 add:8 module:overlay(0)
from:0x02109a5c kind:load to:0x02107955 module:overlay(4)
from:0x02109a60 kind:load to:0x020571b8 module:main
from:0x02109a64 kind:load to:0x020b7d14 module:overlay(0)
diff --git a/config/usa/arm9/overlays/ov005/delinks.txt b/config/usa/arm9/overlays/ov005/delinks.txt
index 6183b59c..54366dda 100644
--- a/config/usa/arm9/overlays/ov005/delinks.txt
+++ b/config/usa/arm9/overlays/ov005/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02100a60 end:0x02112220 kind:code align:32
- .rodata start:0x02112220 end:0x0211233c kind:data align:4
+ .rodata start:0x02112220 end:0x0211233c kind:rodata align:4
.init start:0x0211233c end:0x021123e4 kind:code align:4
- .ctor start:0x021123e4 end:0x021123f8 kind:data align:4
+ .ctor start:0x021123e4 end:0x021123f8 kind:rodata align:4
.data start:0x02112400 end:0x02112ba0 kind:data align:32
.bss start:0x02112ba0 end:0x02112ba0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov006/delinks.txt b/config/usa/arm9/overlays/ov006/delinks.txt
index ac21294c..09230c08 100644
--- a/config/usa/arm9/overlays/ov006/delinks.txt
+++ b/config/usa/arm9/overlays/ov006/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x02100a60 end:0x02102f7c kind:code align:32
- .rodata start:0x02102f7c end:0x0210392c kind:data align:4
- .ctor start:0x0210392c end:0x02103930 kind:data align:4
+ .rodata start:0x02102f7c end:0x0210392c kind:rodata align:4
+ .ctor start:0x0210392c end:0x02103930 kind:rodata align:4
.data start:0x02103940 end:0x02103f80 kind:data align:32
.bss start:0x02103f80 end:0x02103fa0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov007/delinks.txt b/config/usa/arm9/overlays/ov007/delinks.txt
index 53c6f3e7..3b0f2764 100644
--- a/config/usa/arm9/overlays/ov007/delinks.txt
+++ b/config/usa/arm9/overlays/ov007/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x02100a60 end:0x02102848 kind:code align:32
- .rodata start:0x02102848 end:0x021028b8 kind:data align:4
- .ctor start:0x021028b8 end:0x021028bc kind:data align:4
+ .rodata start:0x02102848 end:0x021028b8 kind:rodata align:4
+ .ctor start:0x021028b8 end:0x021028bc kind:rodata align:4
.data start:0x021028c0 end:0x02102a20 kind:data align:32
.bss start:0x02102a20 end:0x0210eac0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov008/delinks.txt b/config/usa/arm9/overlays/ov008/delinks.txt
index 9ab2fc95..2dcabb64 100644
--- a/config/usa/arm9/overlays/ov008/delinks.txt
+++ b/config/usa/arm9/overlays/ov008/delinks.txt
@@ -1,5 +1,5 @@
.text start:0x02112ba0 end:0x02113a74 kind:code align:32
- .ctor start:0x02113a74 end:0x02113a78 kind:data align:4
+ .ctor start:0x02113a74 end:0x02113a78 kind:rodata align:4
.data start:0x02113a80 end:0x02113b00 kind:data align:32
.bss start:0x02113b00 end:0x02113b00 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov009/delinks.txt b/config/usa/arm9/overlays/ov009/delinks.txt
index 96d38eb9..0c4bafd7 100644
--- a/config/usa/arm9/overlays/ov009/delinks.txt
+++ b/config/usa/arm9/overlays/ov009/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02112ba0 end:0x0211d90c kind:code align:32
- .rodata start:0x0211d90c end:0x0211e424 kind:data align:4
+ .rodata start:0x0211d90c end:0x0211e424 kind:rodata align:4
.init start:0x0211e424 end:0x0211e5e0 kind:code align:4
- .ctor start:0x0211e5e0 end:0x0211e600 kind:data align:4
+ .ctor start:0x0211e5e0 end:0x0211e600 kind:rodata align:4
.data start:0x0211e600 end:0x0211f4a0 kind:data align:32
.bss start:0x0211f4a0 end:0x0211f5c0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov010/delinks.txt b/config/usa/arm9/overlays/ov010/delinks.txt
index 6b71d392..f715f316 100644
--- a/config/usa/arm9/overlays/ov010/delinks.txt
+++ b/config/usa/arm9/overlays/ov010/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x02112ba0 end:0x0211e6d0 kind:code align:32
- .rodata start:0x0211e6d0 end:0x0211e998 kind:data align:4
- .ctor start:0x0211e998 end:0x0211e99c kind:data align:4
+ .rodata start:0x0211e6d0 end:0x0211e998 kind:rodata align:4
+ .ctor start:0x0211e998 end:0x0211e99c kind:rodata align:4
.data start:0x0211e9a0 end:0x0211f380 kind:data align:32
.bss start:0x0211f380 end:0x0211f3e0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov011/delinks.txt b/config/usa/arm9/overlays/ov011/delinks.txt
index 6a3b17a5..3d3d51db 100644
--- a/config/usa/arm9/overlays/ov011/delinks.txt
+++ b/config/usa/arm9/overlays/ov011/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x02112ba0 end:0x0212b98c kind:code align:32
- .rodata start:0x0212b98c end:0x0212ec80 kind:data align:4
- .ctor start:0x0212ec80 end:0x0212ec84 kind:data align:4
+ .rodata start:0x0212b98c end:0x0212ec80 kind:rodata align:4
+ .ctor start:0x0212ec80 end:0x0212ec84 kind:rodata align:4
.data start:0x0212eca0 end:0x021307a0 kind:data align:32
.bss start:0x021307a0 end:0x02132e60 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov012/delinks.txt b/config/usa/arm9/overlays/ov012/delinks.txt
index c056e809..42eb8bf6 100644
--- a/config/usa/arm9/overlays/ov012/delinks.txt
+++ b/config/usa/arm9/overlays/ov012/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02112ba0 end:0x0213442c kind:code align:32
- .rodata start:0x0213442c end:0x0213544c kind:data align:4
+ .rodata start:0x0213442c end:0x0213544c kind:rodata align:4
.init start:0x0213544c end:0x02135874 kind:code align:4
- .ctor start:0x02135874 end:0x021358a0 kind:data align:4
+ .ctor start:0x02135874 end:0x021358a0 kind:rodata align:4
.data start:0x021358a0 end:0x02137be0 kind:data align:32
.bss start:0x02137be0 end:0x0213de40 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov013/delinks.txt b/config/usa/arm9/overlays/ov013/delinks.txt
index ac1c6866..47b516c9 100644
--- a/config/usa/arm9/overlays/ov013/delinks.txt
+++ b/config/usa/arm9/overlays/ov013/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x02112ba0 end:0x02115f84 kind:code align:32
- .rodata start:0x02115f84 end:0x0211606c kind:data align:4
- .ctor start:0x0211606c end:0x02116074 kind:data align:4
+ .rodata start:0x02115f84 end:0x0211606c kind:rodata align:4
+ .ctor start:0x0211606c end:0x02116074 kind:rodata align:4
.data start:0x02116080 end:0x02116180 kind:data align:32
.bss start:0x02116180 end:0x02116320 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov014/delinks.txt b/config/usa/arm9/overlays/ov014/delinks.txt
index 744a0f4e..c0472e4a 100644
--- a/config/usa/arm9/overlays/ov014/delinks.txt
+++ b/config/usa/arm9/overlays/ov014/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0211f5c0 end:0x02153aac kind:code align:32
- .rodata start:0x02153aac end:0x02154148 kind:data align:4
+ .rodata start:0x02153aac end:0x02154148 kind:rodata align:4
.init start:0x02154148 end:0x021557a8 kind:code align:4
- .ctor start:0x021557a8 end:0x021558e8 kind:data align:4
+ .ctor start:0x021557a8 end:0x021558e8 kind:rodata align:4
.data start:0x02155900 end:0x0215ab20 kind:data align:32
.bss start:0x0215ab20 end:0x0215b400 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov015/delinks.txt b/config/usa/arm9/overlays/ov015/delinks.txt
index 615e2e60..29a20f05 100644
--- a/config/usa/arm9/overlays/ov015/delinks.txt
+++ b/config/usa/arm9/overlays/ov015/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0211f5c0 end:0x02185a9c kind:code align:32
- .rodata start:0x02185a9c end:0x02187304 kind:data align:4
+ .rodata start:0x02185a9c end:0x02187304 kind:rodata align:4
.init start:0x02187304 end:0x02189250 kind:code align:4
- .ctor start:0x02189250 end:0x021893a0 kind:data align:4
+ .ctor start:0x02189250 end:0x021893a0 kind:rodata align:4
.data start:0x021893a0 end:0x0218eb60 kind:data align:32
.bss start:0x0218eb60 end:0x02190420 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov016/delinks.txt b/config/usa/arm9/overlays/ov016/delinks.txt
index 92145fbe..9eb4dec8 100644
--- a/config/usa/arm9/overlays/ov016/delinks.txt
+++ b/config/usa/arm9/overlays/ov016/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x0211f5c0 end:0x021200b4 kind:code align:32
- .rodata start:0x021200b4 end:0x021200d0 kind:data align:4
- .ctor start:0x021200d0 end:0x021200d4 kind:data align:4
+ .rodata start:0x021200b4 end:0x021200d0 kind:rodata align:4
+ .ctor start:0x021200d0 end:0x021200d4 kind:rodata align:4
.data start:0x021200e0 end:0x02120120 kind:data align:32
.bss start:0x02120120 end:0x02120120 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov017/delinks.txt b/config/usa/arm9/overlays/ov017/delinks.txt
index f83b6084..639891ca 100644
--- a/config/usa/arm9/overlays/ov017/delinks.txt
+++ b/config/usa/arm9/overlays/ov017/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0215b400 end:0x0216aff8 kind:code align:32
- .rodata start:0x0216aff8 end:0x0216b224 kind:data align:4
+ .rodata start:0x0216aff8 end:0x0216b224 kind:rodata align:4
.init start:0x0216b224 end:0x0216b8c4 kind:code align:4
- .ctor start:0x0216b8c4 end:0x0216b934 kind:data align:4
+ .ctor start:0x0216b8c4 end:0x0216b934 kind:rodata align:4
.data start:0x0216b940 end:0x0216ce00 kind:data align:32
.bss start:0x0216ce00 end:0x0216d080 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov018/delinks.txt b/config/usa/arm9/overlays/ov018/delinks.txt
index fe52c01c..31547a43 100644
--- a/config/usa/arm9/overlays/ov018/delinks.txt
+++ b/config/usa/arm9/overlays/ov018/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0215b400 end:0x0216b38c kind:code align:32
- .rodata start:0x0216b38c end:0x0216b6e0 kind:data align:4
+ .rodata start:0x0216b38c end:0x0216b6e0 kind:rodata align:4
.init start:0x0216b6e0 end:0x0216bfac kind:code align:4
- .ctor start:0x0216bfac end:0x0216c00c kind:data align:4
+ .ctor start:0x0216bfac end:0x0216c00c kind:rodata align:4
.data start:0x0216c020 end:0x0216d3a0 kind:data align:32
.bss start:0x0216d3a0 end:0x0216d600 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov018/symbols.txt b/config/usa/arm9/overlays/ov018/symbols.txt
index 69fde2ee..d16200b2 100644
--- a/config/usa/arm9/overlays/ov018/symbols.txt
+++ b/config/usa/arm9/overlays/ov018/symbols.txt
@@ -1,39 +1,39 @@
-func_ov018_0215b4a0 kind:function(arm,size=0x1ac) addr:0x215b400
-func_ov018_0215b64c kind:function(arm,size=0x10c) addr:0x215b5ac
-func_ov018_0215b758 kind:function(arm,size=0x114) addr:0x215b6b8
-func_ov018_0215b86c kind:function(arm,size=0x518) addr:0x215b7cc
-func_ov018_0215bd84 kind:function(arm,size=0x134) addr:0x215bce4
-func_ov018_0215beb8 kind:function(arm,size=0x110) addr:0x215be18
-func_ov018_0215bfc8 kind:function(arm,size=0x17c) addr:0x215bf28
-func_ov018_0215c144 kind:function(arm,size=0x84) addr:0x215c0a4
-func_ov018_0215c1c8 kind:function(arm,size=0xb4) addr:0x215c128
-func_ov018_0215c27c kind:function(arm,size=0x8) addr:0x215c1dc
-func_ov018_0215c284 kind:function(arm,size=0xc) addr:0x215c1e4
-func_ov018_0215c290 kind:function(arm,size=0x20) addr:0x215c1f0
-func_ov018_0215c2b0 kind:function(arm,size=0x30) addr:0x215c210
-func_ov018_0215c2e0 kind:function(arm,size=0x20) addr:0x215c240
-func_ov018_0215c300 kind:function(arm,size=0x2c) addr:0x215c260
-func_ov018_0215c32c kind:function(arm,size=0x20) addr:0x215c28c
-func_ov018_0215c34c kind:function(arm,size=0x1c) addr:0x215c2ac
-func_ov018_0215c368 kind:function(arm,size=0x18) addr:0x215c2c8
-func_ov018_0215c380 kind:function(arm,size=0x20) addr:0x215c2e0
-func_ov018_0215c3a0 kind:function(arm,size=0x20) addr:0x215c300
-func_ov018_0215c3c0 kind:function(arm,size=0x68) addr:0x215c320
-func_ov018_0215c428 kind:function(arm,size=0x20) addr:0x215c388
-func_ov018_0215c448 kind:function(arm,size=0x18) addr:0x215c3a8
-func_ov018_0215c460 kind:function(arm,size=0x164) addr:0x215c3c0
-func_ov018_0215c5c4 kind:function(arm,size=0x44) addr:0x215c524
-func_ov018_0215c608 kind:function(arm,size=0x48) addr:0x215c568
-func_ov018_0215c650 kind:function(arm,size=0x5c) addr:0x215c5b0
-func_ov018_0215c6ac kind:function(arm,size=0x24) addr:0x215c60c
-func_ov018_0215c6d0 kind:function(arm,size=0x24c) addr:0x215c630
-func_ov018_0215c91c kind:function(arm,size=0x48) addr:0x215c87c
-func_ov018_0215c964 kind:function(arm,size=0x48) addr:0x215c8c4
-func_ov018_0215c9ac kind:function(arm,size=0x78) addr:0x215c90c
-func_ov018_0215ca24 kind:function(arm,size=0x18) addr:0x215c984
-func_ov018_0215ca3c kind:function(arm,size=0x50) addr:0x215c99c
-func_ov018_0215ca8c kind:function(arm,size=0x18) addr:0x215c9ec
-func_ov018_0215caa4 kind:function(arm,size=0x8) addr:0x215ca04
+_ZN12MapOverworldC2Ejj kind:function(arm,size=0x1ac) addr:0x215b400
+_ZN12MapOverworldD1Ev kind:function(arm,size=0x10c) addr:0x215b5ac
+_ZN12MapOverworldD0Ev kind:function(arm,size=0x114) addr:0x215b6b8
+_ZN12MapOverworld8vfunc_08EjjP6Course kind:function(arm,size=0x518) addr:0x215b7cc
+_ZN12MapOverworld8vfunc_14Ev kind:function(arm,size=0x134) addr:0x215bce4
+_ZN12MapOverworld8vfunc_1cEb kind:function(arm,size=0x110) addr:0x215be18
+_ZN12MapOverworld19func_ov018_0215bfc8Ev kind:function(arm,size=0x17c) addr:0x215bf28
+_ZN12MapOverworld8vfunc_20Ei kind:function(arm,size=0x84) addr:0x215c0a4
+_ZN12MapOverworld8vfunc_2cEv kind:function(arm,size=0xb4) addr:0x215c128
+_ZN12MapOverworld8vfunc_94Ev kind:function(arm,size=0x8) addr:0x215c1dc
+_ZN12MapOverworld8vfunc_a4Ev kind:function(arm,size=0xc) addr:0x215c1e4
+_ZN12MapOverworld8vfunc_54Ev kind:function(arm,size=0x20) addr:0x215c1f0
+_ZN12MapOverworld8vfunc_58Ev kind:function(arm,size=0x30) addr:0x215c210
+_ZN12MapOverworld8vfunc_5cEv kind:function(arm,size=0x20) addr:0x215c240
+_ZN12MapOverworld8vfunc_60Ev kind:function(arm,size=0x2c) addr:0x215c260
+_ZN12MapOverworld8vfunc_64Ev kind:function(arm,size=0x20) addr:0x215c28c
+_ZN12MapOverworld19func_ov018_0215c34cEv kind:function(arm,size=0x1c) addr:0x215c2ac
+_ZN12MapOverworld19func_ov018_0215c368Ev kind:function(arm,size=0x18) addr:0x215c2c8
+_ZN12MapOverworld19func_ov018_0215c380EPh kind:function(arm,size=0x20) addr:0x215c2e0
+_ZN12MapOverworld8vfunc_bcEv kind:function(arm,size=0x20) addr:0x215c300
+_ZN12MapOverworld8vfunc_98Ev kind:function(arm,size=0x68) addr:0x215c320
+_ZN12MapOverworld8vfunc_c0Ev kind:function(arm,size=0x20) addr:0x215c388
+_ZN12MapOverworld8vfunc_78Ev kind:function(arm,size=0x18) addr:0x215c3a8
+_ZN12MapOverworld8vfunc_7cEv kind:function(arm,size=0x164) addr:0x215c3c0
+_ZN12MapOverworld8vfunc_80Ev kind:function(arm,size=0x44) addr:0x215c524
+_ZN12MapOverworld8vfunc_b0Eii kind:function(arm,size=0x48) addr:0x215c568
+_ZN12MapOverworld19func_ov018_0215c650Ev kind:function(arm,size=0x5c) addr:0x215c5b0
+_ZN12MapOverworld19func_ov018_0215c6acEv kind:function(arm,size=0x24) addr:0x215c60c
+_ZN12MapOverworld19func_ov018_0215c6d0Ev kind:function(arm,size=0x24c) addr:0x215c630
+_ZN17MapOverworld_Unk1C2EjPhi kind:function(arm,size=0x48) addr:0x215c87c
+_ZN17MapOverworld_Unk1C1EjPhi kind:function(arm,size=0x48) addr:0x215c8c4
+_ZN12MapOverworld19func_ov018_0215c9acEv kind:function(arm,size=0x78) addr:0x215c90c
+_Z19func_ov018_0215ca24i kind:function(arm,size=0x18) addr:0x215c984
+_Z19func_ov018_0215ca3ciiii kind:function(arm,size=0x50) addr:0x215c99c
+_Z19func_ov018_0215ca8ci kind:function(arm,size=0x18) addr:0x215c9ec
+_ZN12MapOverworld8vfunc_4cEv kind:function(arm,size=0x8) addr:0x215ca04
func_ov018_0215caac kind:function(arm,size=0x7c) addr:0x215ca0c
func_ov018_0215cb28 kind:function(arm,size=0x4c) addr:0x215ca88
func_ov018_0215cb74 kind:function(arm,size=0xcc) addr:0x215cad4
@@ -514,7 +514,7 @@ __sinit_ov018_0216bf54 kind:function(arm,size=0x38) addr:0x216beb4
__sinit_ov018_0216bf8c kind:function(arm,size=0x80) addr:0x216beec
__sinit_ov018_0216c00c kind:function(arm,size=0x40) addr:0x216bf6c
data_ov018_0216c0c0 kind:data(any) addr:0x216c020
-data_ov018_0216c0e0 kind:data(any) addr:0x216c040
+_ZTV12MapOverworld kind:data(any) addr:0x216c040
data_ov018_0216c1a4 kind:data(any) addr:0x216c104
data_ov018_0216c1a8 kind:data(any) addr:0x216c108
data_ov018_0216c1bc kind:data(any) addr:0x216c11c
diff --git a/config/usa/arm9/overlays/ov019/delinks.txt b/config/usa/arm9/overlays/ov019/delinks.txt
index ae33a171..130697bc 100644
--- a/config/usa/arm9/overlays/ov019/delinks.txt
+++ b/config/usa/arm9/overlays/ov019/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d600 end:0x02175bb0 kind:code align:32
- .rodata start:0x02175bb0 end:0x02175e64 kind:data align:4
+ .rodata start:0x02175bb0 end:0x02175e64 kind:rodata align:4
.init start:0x02175e64 end:0x02176234 kind:code align:4
- .ctor start:0x02176234 end:0x0217625c kind:data align:4
+ .ctor start:0x02176234 end:0x0217625c kind:rodata align:4
.data start:0x02176260 end:0x02176de0 kind:data align:32
.bss start:0x02176de0 end:0x021775e0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov020/delinks.txt b/config/usa/arm9/overlays/ov020/delinks.txt
index 1bb412ab..4c659bc5 100644
--- a/config/usa/arm9/overlays/ov020/delinks.txt
+++ b/config/usa/arm9/overlays/ov020/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d600 end:0x021777c8 kind:code align:32
- .rodata start:0x021777c8 end:0x02177a54 kind:data align:4
+ .rodata start:0x021777c8 end:0x02177a54 kind:rodata align:4
.init start:0x02177a54 end:0x021781f8 kind:code align:4
- .ctor start:0x021781f8 end:0x02178240 kind:data align:4
+ .ctor start:0x021781f8 end:0x02178240 kind:rodata align:4
.data start:0x02178240 end:0x02179460 kind:data align:32
.bss start:0x02179460 end:0x021796a0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov021/delinks.txt b/config/usa/arm9/overlays/ov021/delinks.txt
index f309a1f4..e5d6d72e 100644
--- a/config/usa/arm9/overlays/ov021/delinks.txt
+++ b/config/usa/arm9/overlays/ov021/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d600 end:0x02170b34 kind:code align:32
- .rodata start:0x02170b34 end:0x02170c4c kind:data align:4
+ .rodata start:0x02170b34 end:0x02170c4c kind:rodata align:4
.init start:0x02170c4c end:0x02170ec4 kind:code align:4
- .ctor start:0x02170ec4 end:0x02170ee4 kind:data align:4
+ .ctor start:0x02170ec4 end:0x02170ee4 kind:rodata align:4
.data start:0x02170f00 end:0x02171a40 kind:data align:32
.bss start:0x02171a40 end:0x02171c20 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov022/delinks.txt b/config/usa/arm9/overlays/ov022/delinks.txt
index 459a705a..9d1dd8ac 100644
--- a/config/usa/arm9/overlays/ov022/delinks.txt
+++ b/config/usa/arm9/overlays/ov022/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d600 end:0x02178518 kind:code align:32
- .rodata start:0x02178518 end:0x02178928 kind:data align:4
+ .rodata start:0x02178518 end:0x02178928 kind:rodata align:4
.init start:0x02178928 end:0x02178f54 kind:code align:4
- .ctor start:0x02178f54 end:0x02178f9c kind:data align:4
+ .ctor start:0x02178f54 end:0x02178f9c kind:rodata align:4
.data start:0x02178fa0 end:0x0217a360 kind:data align:32
.bss start:0x0217a360 end:0x0217a5a0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov023/delinks.txt b/config/usa/arm9/overlays/ov023/delinks.txt
index fe652033..fccccda0 100644
--- a/config/usa/arm9/overlays/ov023/delinks.txt
+++ b/config/usa/arm9/overlays/ov023/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d600 end:0x02178f90 kind:code align:32
- .rodata start:0x02178f90 end:0x021795f8 kind:data align:4
+ .rodata start:0x02178f90 end:0x021795f8 kind:rodata align:4
.init start:0x021795f8 end:0x02179c40 kind:code align:4
- .ctor start:0x02179c40 end:0x02179c78 kind:data align:4
+ .ctor start:0x02179c40 end:0x02179c78 kind:rodata align:4
.data start:0x02179c80 end:0x0217aac0 kind:data align:32
.bss start:0x0217aac0 end:0x0217ace0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov024/delinks.txt b/config/usa/arm9/overlays/ov024/delinks.txt
index d4a712de..4e11395e 100644
--- a/config/usa/arm9/overlays/ov024/delinks.txt
+++ b/config/usa/arm9/overlays/ov024/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d600 end:0x02179134 kind:code align:32
- .rodata start:0x02179134 end:0x02179530 kind:data align:4
+ .rodata start:0x02179134 end:0x02179530 kind:rodata align:4
.init start:0x02179530 end:0x02179d7c kind:code align:4
- .ctor start:0x02179d7c end:0x02179dbc kind:data align:4
+ .ctor start:0x02179d7c end:0x02179dbc kind:rodata align:4
.data start:0x02179dc0 end:0x0217aec0 kind:data align:32
.bss start:0x0217aec0 end:0x0217b0c0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov025/delinks.txt b/config/usa/arm9/overlays/ov025/delinks.txt
index e367a3e8..e0aac9bd 100644
--- a/config/usa/arm9/overlays/ov025/delinks.txt
+++ b/config/usa/arm9/overlays/ov025/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d600 end:0x0217929c kind:code align:32
- .rodata start:0x0217929c end:0x021795e0 kind:data align:4
+ .rodata start:0x0217929c end:0x021795e0 kind:rodata align:4
.init start:0x021795e0 end:0x02179af8 kind:code align:4
- .ctor start:0x02179af8 end:0x02179b28 kind:data align:4
+ .ctor start:0x02179af8 end:0x02179b28 kind:rodata align:4
.data start:0x02179b40 end:0x0217a7e0 kind:data align:32
.bss start:0x0217a7e0 end:0x0217a980 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov026/delinks.txt b/config/usa/arm9/overlays/ov026/delinks.txt
index 3ab32f34..f8a4ba5e 100644
--- a/config/usa/arm9/overlays/ov026/delinks.txt
+++ b/config/usa/arm9/overlays/ov026/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d600 end:0x021791c0 kind:code align:32
- .rodata start:0x021791c0 end:0x0217973c kind:data align:4
+ .rodata start:0x021791c0 end:0x0217973c kind:rodata align:4
.init start:0x0217973c end:0x02179f80 kind:code align:4
- .ctor start:0x02179f80 end:0x02179fc0 kind:data align:4
+ .ctor start:0x02179f80 end:0x02179fc0 kind:rodata align:4
.data start:0x02179fc0 end:0x0217b220 kind:data align:32
.bss start:0x0217b220 end:0x0217b520 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov027/delinks.txt b/config/usa/arm9/overlays/ov027/delinks.txt
index 8d117180..8e317728 100644
--- a/config/usa/arm9/overlays/ov027/delinks.txt
+++ b/config/usa/arm9/overlays/ov027/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d600 end:0x02178c5c kind:code align:32
- .rodata start:0x02178c5c end:0x0217909c kind:data align:4
+ .rodata start:0x02178c5c end:0x0217909c kind:rodata align:4
.init start:0x0217909c end:0x021793d4 kind:code align:4
- .ctor start:0x021793d4 end:0x021793f8 kind:data align:4
+ .ctor start:0x021793d4 end:0x021793f8 kind:rodata align:4
.data start:0x02179400 end:0x0217a020 kind:data align:32
.bss start:0x0217a020 end:0x0217a120 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov028/delinks.txt b/config/usa/arm9/overlays/ov028/delinks.txt
index dfc678ce..100044c6 100644
--- a/config/usa/arm9/overlays/ov028/delinks.txt
+++ b/config/usa/arm9/overlays/ov028/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d600 end:0x02177fdc kind:code align:32
- .rodata start:0x02177fdc end:0x02178464 kind:data align:4
+ .rodata start:0x02177fdc end:0x02178464 kind:rodata align:4
.init start:0x02178464 end:0x021787f4 kind:code align:4
- .ctor start:0x021787f4 end:0x02178828 kind:data align:4
+ .ctor start:0x021787f4 end:0x02178828 kind:rodata align:4
.data start:0x02178840 end:0x02179a60 kind:data align:32
.bss start:0x02179a60 end:0x02179c40 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov029/delinks.txt b/config/usa/arm9/overlays/ov029/delinks.txt
index 54da6f6c..e72660a5 100644
--- a/config/usa/arm9/overlays/ov029/delinks.txt
+++ b/config/usa/arm9/overlays/ov029/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0216d600 end:0x021791f8 kind:code align:32
- .rodata start:0x021791f8 end:0x02179410 kind:data align:4
+ .rodata start:0x021791f8 end:0x02179410 kind:rodata align:4
.init start:0x02179410 end:0x02179784 kind:code align:4
- .ctor start:0x02179784 end:0x021797bc kind:data align:4
+ .ctor start:0x02179784 end:0x021797bc kind:rodata align:4
.data start:0x021797c0 end:0x0217a400 kind:data align:32
.bss start:0x0217a400 end:0x0217bce0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov030/delinks.txt b/config/usa/arm9/overlays/ov030/delinks.txt
index 779c0b53..9319f307 100644
--- a/config/usa/arm9/overlays/ov030/delinks.txt
+++ b/config/usa/arm9/overlays/ov030/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bce0 end:0x02188534 kind:code align:32
- .rodata start:0x02188534 end:0x02188784 kind:data align:4
+ .rodata start:0x02188534 end:0x02188784 kind:rodata align:4
.init start:0x02188784 end:0x0218898c kind:code align:4
- .ctor start:0x0218898c end:0x02188998 kind:data align:4
+ .ctor start:0x0218898c end:0x02188998 kind:rodata align:4
.data start:0x021889a0 end:0x02189400 kind:data align:32
.bss start:0x02189400 end:0x021894c0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov031/delinks.txt b/config/usa/arm9/overlays/ov031/delinks.txt
index f2a4b933..525b38b1 100644
--- a/config/usa/arm9/overlays/ov031/delinks.txt
+++ b/config/usa/arm9/overlays/ov031/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bce0 end:0x02181800 kind:code align:32
- .rodata start:0x02181800 end:0x02181acc kind:data align:4
+ .rodata start:0x02181800 end:0x02181acc kind:rodata align:4
.init start:0x02181acc end:0x02181fe0 kind:code align:4
- .ctor start:0x02181fe0 end:0x02181ff4 kind:data align:4
+ .ctor start:0x02181fe0 end:0x02181ff4 kind:rodata align:4
.data start:0x02182000 end:0x02183de0 kind:data align:32
.bss start:0x02183de0 end:0x02184160 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov032/delinks.txt b/config/usa/arm9/overlays/ov032/delinks.txt
index a93059a7..198ebf1e 100644
--- a/config/usa/arm9/overlays/ov032/delinks.txt
+++ b/config/usa/arm9/overlays/ov032/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bce0 end:0x02184b08 kind:code align:32
- .rodata start:0x02184b08 end:0x02184c9c kind:data align:4
+ .rodata start:0x02184b08 end:0x02184c9c kind:rodata align:4
.init start:0x02184c9c end:0x02185328 kind:code align:4
- .ctor start:0x02185328 end:0x0218534c kind:data align:4
+ .ctor start:0x02185328 end:0x0218534c kind:rodata align:4
.data start:0x02185360 end:0x02186140 kind:data align:32
.bss start:0x02186140 end:0x02186280 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov033/delinks.txt b/config/usa/arm9/overlays/ov033/delinks.txt
index 287e400c..7e5a59a7 100644
--- a/config/usa/arm9/overlays/ov033/delinks.txt
+++ b/config/usa/arm9/overlays/ov033/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bce0 end:0x0217fa2c kind:code align:32
- .rodata start:0x0217fa2c end:0x0217faf0 kind:data align:4
+ .rodata start:0x0217fa2c end:0x0217faf0 kind:rodata align:4
.init start:0x0217faf0 end:0x0217fdf4 kind:code align:4
- .ctor start:0x0217fdf4 end:0x0217fe0c kind:data align:4
+ .ctor start:0x0217fdf4 end:0x0217fe0c kind:rodata align:4
.data start:0x0217fe20 end:0x021804e0 kind:data align:32
.bss start:0x021804e0 end:0x021805a0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov034/delinks.txt b/config/usa/arm9/overlays/ov034/delinks.txt
index 6e5e7169..173a34b0 100644
--- a/config/usa/arm9/overlays/ov034/delinks.txt
+++ b/config/usa/arm9/overlays/ov034/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bce0 end:0x021856a0 kind:code align:32
- .rodata start:0x021856a0 end:0x02185778 kind:data align:4
+ .rodata start:0x021856a0 end:0x02185778 kind:rodata align:4
.init start:0x02185778 end:0x021859c4 kind:code align:4
- .ctor start:0x021859c4 end:0x021859d4 kind:data align:4
+ .ctor start:0x021859c4 end:0x021859d4 kind:rodata align:4
.data start:0x021859e0 end:0x02186100 kind:data align:32
.bss start:0x02186100 end:0x02186320 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov035/delinks.txt b/config/usa/arm9/overlays/ov035/delinks.txt
index c34458f0..38d572bf 100644
--- a/config/usa/arm9/overlays/ov035/delinks.txt
+++ b/config/usa/arm9/overlays/ov035/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bce0 end:0x0218508c kind:code align:32
- .rodata start:0x0218508c end:0x021855c8 kind:data align:4
+ .rodata start:0x0218508c end:0x021855c8 kind:rodata align:4
.init start:0x021855c8 end:0x02185860 kind:code align:4
- .ctor start:0x02185860 end:0x02185874 kind:data align:4
+ .ctor start:0x02185860 end:0x02185874 kind:rodata align:4
.data start:0x02185880 end:0x02185e20 kind:data align:32
.bss start:0x02185e20 end:0x02186f80 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov036/delinks.txt b/config/usa/arm9/overlays/ov036/delinks.txt
index 7a26caf3..59ce0b05 100644
--- a/config/usa/arm9/overlays/ov036/delinks.txt
+++ b/config/usa/arm9/overlays/ov036/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bce0 end:0x021865f8 kind:code align:32
- .rodata start:0x021865f8 end:0x02186b14 kind:data align:4
+ .rodata start:0x021865f8 end:0x02186b14 kind:rodata align:4
.init start:0x02186b14 end:0x02186b94 kind:code align:4
- .ctor start:0x02186b94 end:0x02186ba0 kind:data align:4
+ .ctor start:0x02186b94 end:0x02186ba0 kind:rodata align:4
.data start:0x02186ba0 end:0x02186f00 kind:data align:32
.bss start:0x02186f00 end:0x02186f40 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov037/delinks.txt b/config/usa/arm9/overlays/ov037/delinks.txt
index f21a1cd1..41bbe760 100644
--- a/config/usa/arm9/overlays/ov037/delinks.txt
+++ b/config/usa/arm9/overlays/ov037/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bce0 end:0x02187d28 kind:code align:32
- .rodata start:0x02187d28 end:0x021885f0 kind:data align:4
+ .rodata start:0x02187d28 end:0x021885f0 kind:rodata align:4
.init start:0x021885f0 end:0x02188914 kind:code align:4
- .ctor start:0x02188914 end:0x0218892c kind:data align:4
+ .ctor start:0x02188914 end:0x0218892c kind:rodata align:4
.data start:0x02188940 end:0x021890c0 kind:data align:32
.bss start:0x021890c0 end:0x021891a0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov038/delinks.txt b/config/usa/arm9/overlays/ov038/delinks.txt
index cbee1e6a..4a6f1167 100644
--- a/config/usa/arm9/overlays/ov038/delinks.txt
+++ b/config/usa/arm9/overlays/ov038/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bce0 end:0x02188868 kind:code align:32
- .rodata start:0x02188868 end:0x02188a44 kind:data align:4
+ .rodata start:0x02188868 end:0x02188a44 kind:rodata align:4
.init start:0x02188a44 end:0x02188bc0 kind:code align:4
- .ctor start:0x02188bc0 end:0x02188bcc kind:data align:4
+ .ctor start:0x02188bc0 end:0x02188bcc kind:rodata align:4
.data start:0x02188be0 end:0x02189140 kind:data align:32
.bss start:0x02189140 end:0x02189400 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov039/delinks.txt b/config/usa/arm9/overlays/ov039/delinks.txt
index cb44cebd..247c76cf 100644
--- a/config/usa/arm9/overlays/ov039/delinks.txt
+++ b/config/usa/arm9/overlays/ov039/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bce0 end:0x02186084 kind:code align:32
- .rodata start:0x02186084 end:0x021868c8 kind:data align:4
+ .rodata start:0x02186084 end:0x021868c8 kind:rodata align:4
.init start:0x021868c8 end:0x0218691c kind:code align:4
- .ctor start:0x0218691c end:0x02186924 kind:data align:4
+ .ctor start:0x0218691c end:0x02186924 kind:rodata align:4
.data start:0x02186940 end:0x02186c20 kind:data align:32
.bss start:0x02186c20 end:0x02186c60 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov040/delinks.txt b/config/usa/arm9/overlays/ov040/delinks.txt
index 61f0dac7..53cef88b 100644
--- a/config/usa/arm9/overlays/ov040/delinks.txt
+++ b/config/usa/arm9/overlays/ov040/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0217bce0 end:0x02187f5c kind:code align:32
- .rodata start:0x02187f5c end:0x021882c0 kind:data align:4
+ .rodata start:0x02187f5c end:0x021882c0 kind:rodata align:4
.init start:0x021882c0 end:0x02188594 kind:code align:4
- .ctor start:0x02188594 end:0x021885c0 kind:data align:4
+ .ctor start:0x02188594 end:0x021885c0 kind:rodata align:4
.data start:0x021885c0 end:0x02189a40 kind:data align:32
.bss start:0x02189a40 end:0x0219a120 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov041/delinks.txt b/config/usa/arm9/overlays/ov041/delinks.txt
index d643a3a0..80f119c9 100644
--- a/config/usa/arm9/overlays/ov041/delinks.txt
+++ b/config/usa/arm9/overlays/ov041/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x021894c0 end:0x0218de24 kind:code align:32
- .rodata start:0x0218de24 end:0x0218dff8 kind:data align:4
+ .rodata start:0x0218de24 end:0x0218dff8 kind:rodata align:4
.init start:0x0218dff8 end:0x0218e26c kind:code align:4
- .ctor start:0x0218e26c end:0x0218e288 kind:data align:4
+ .ctor start:0x0218e26c end:0x0218e288 kind:rodata align:4
.data start:0x0218e2a0 end:0x0218e9e0 kind:data align:32
.bss start:0x0218e9e0 end:0x0218eac0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov042/delinks.txt b/config/usa/arm9/overlays/ov042/delinks.txt
index 513b4174..07142e34 100644
--- a/config/usa/arm9/overlays/ov042/delinks.txt
+++ b/config/usa/arm9/overlays/ov042/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x021894c0 end:0x0218c654 kind:code align:32
- .rodata start:0x0218c654 end:0x0218c6a4 kind:data align:4
+ .rodata start:0x0218c654 end:0x0218c6a4 kind:rodata align:4
.init start:0x0218c6a4 end:0x0218c758 kind:code align:4
- .ctor start:0x0218c758 end:0x0218c764 kind:data align:4
+ .ctor start:0x0218c758 end:0x0218c764 kind:rodata align:4
.data start:0x0218c780 end:0x0218cc80 kind:data align:32
.bss start:0x0218cc80 end:0x0218cd00 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov043/delinks.txt b/config/usa/arm9/overlays/ov043/delinks.txt
index 8abf85b1..4fb4329b 100644
--- a/config/usa/arm9/overlays/ov043/delinks.txt
+++ b/config/usa/arm9/overlays/ov043/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x021894c0 end:0x0218d2a0 kind:code align:32
- .rodata start:0x0218d2a0 end:0x0218d374 kind:data align:4
+ .rodata start:0x0218d2a0 end:0x0218d374 kind:rodata align:4
.init start:0x0218d374 end:0x0218d520 kind:code align:4
- .ctor start:0x0218d520 end:0x0218d52c kind:data align:4
+ .ctor start:0x0218d520 end:0x0218d52c kind:rodata align:4
.data start:0x0218d540 end:0x0218da60 kind:data align:32
.bss start:0x0218da60 end:0x0218dae0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov044/delinks.txt b/config/usa/arm9/overlays/ov044/delinks.txt
index 583e6963..c219ce27 100644
--- a/config/usa/arm9/overlays/ov044/delinks.txt
+++ b/config/usa/arm9/overlays/ov044/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x021894c0 end:0x0218e8e4 kind:code align:32
- .rodata start:0x0218e8e4 end:0x0218e9fc kind:data align:4
+ .rodata start:0x0218e8e4 end:0x0218e9fc kind:rodata align:4
.init start:0x0218e9fc end:0x0218f12c kind:code align:4
- .ctor start:0x0218f12c end:0x0218f150 kind:data align:4
+ .ctor start:0x0218f12c end:0x0218f150 kind:rodata align:4
.data start:0x0218f160 end:0x0218fe40 kind:data align:32
.bss start:0x0218fe40 end:0x0218ffa0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov045/delinks.txt b/config/usa/arm9/overlays/ov045/delinks.txt
index 9b23c36f..4caa3734 100644
--- a/config/usa/arm9/overlays/ov045/delinks.txt
+++ b/config/usa/arm9/overlays/ov045/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x021894c0 end:0x0218e1d8 kind:code align:32
- .rodata start:0x0218e1d8 end:0x0218e348 kind:data align:4
+ .rodata start:0x0218e1d8 end:0x0218e348 kind:rodata align:4
.init start:0x0218e348 end:0x0218e408 kind:code align:4
- .ctor start:0x0218e408 end:0x0218e418 kind:data align:4
+ .ctor start:0x0218e408 end:0x0218e418 kind:rodata align:4
.data start:0x0218e420 end:0x0218ece0 kind:data align:32
.bss start:0x0218ece0 end:0x0218ed60 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov046/delinks.txt b/config/usa/arm9/overlays/ov046/delinks.txt
index fe75cf88..58f28a71 100644
--- a/config/usa/arm9/overlays/ov046/delinks.txt
+++ b/config/usa/arm9/overlays/ov046/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0218ffa0 end:0x02194254 kind:code align:32
- .rodata start:0x02194254 end:0x0219440c kind:data align:4
+ .rodata start:0x02194254 end:0x0219440c kind:rodata align:4
.init start:0x0219440c end:0x0219459c kind:code align:4
- .ctor start:0x0219459c end:0x021945b0 kind:data align:4
+ .ctor start:0x0219459c end:0x021945b0 kind:rodata align:4
.data start:0x021945c0 end:0x02194b00 kind:data align:32
.bss start:0x02194b00 end:0x02194c00 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov047/delinks.txt b/config/usa/arm9/overlays/ov047/delinks.txt
index 547aa996..522e4e82 100644
--- a/config/usa/arm9/overlays/ov047/delinks.txt
+++ b/config/usa/arm9/overlays/ov047/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0218ffa0 end:0x02194150 kind:code align:32
- .rodata start:0x02194150 end:0x02194250 kind:data align:4
+ .rodata start:0x02194150 end:0x02194250 kind:rodata align:4
.init start:0x02194250 end:0x02194448 kind:code align:4
- .ctor start:0x02194448 end:0x0219445c kind:data align:4
+ .ctor start:0x02194448 end:0x0219445c kind:rodata align:4
.data start:0x02194460 end:0x02194960 kind:data align:32
.bss start:0x02194960 end:0x02194a00 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov048/delinks.txt b/config/usa/arm9/overlays/ov048/delinks.txt
index 5543605f..e4997ce2 100644
--- a/config/usa/arm9/overlays/ov048/delinks.txt
+++ b/config/usa/arm9/overlays/ov048/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x0218ffa0 end:0x021945bc kind:code align:32
- .rodata start:0x021945bc end:0x02194620 kind:data align:4
+ .rodata start:0x021945bc end:0x02194620 kind:rodata align:4
.init start:0x02194620 end:0x02194a34 kind:code align:4
- .ctor start:0x02194a34 end:0x02194a50 kind:data align:4
+ .ctor start:0x02194a34 end:0x02194a50 kind:rodata align:4
.data start:0x02194a60 end:0x02195360 kind:data align:32
.bss start:0x02195360 end:0x02195460 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov049/delinks.txt b/config/usa/arm9/overlays/ov049/delinks.txt
index d91a80f4..850dc935 100644
--- a/config/usa/arm9/overlays/ov049/delinks.txt
+++ b/config/usa/arm9/overlays/ov049/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02195460 end:0x02198140 kind:code align:32
- .rodata start:0x02198140 end:0x02198228 kind:data align:4
+ .rodata start:0x02198140 end:0x02198228 kind:rodata align:4
.init start:0x02198228 end:0x021983d4 kind:code align:4
- .ctor start:0x021983d4 end:0x021983e4 kind:data align:4
+ .ctor start:0x021983d4 end:0x021983e4 kind:rodata align:4
.data start:0x02198400 end:0x02198880 kind:data align:32
.bss start:0x02198880 end:0x02198900 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov050/delinks.txt b/config/usa/arm9/overlays/ov050/delinks.txt
index 82f413d7..8a3e5fe9 100644
--- a/config/usa/arm9/overlays/ov050/delinks.txt
+++ b/config/usa/arm9/overlays/ov050/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02195460 end:0x0219872c kind:code align:32
- .rodata start:0x0219872c end:0x0219878c kind:data align:4
+ .rodata start:0x0219872c end:0x0219878c kind:rodata align:4
.init start:0x0219878c end:0x02198908 kind:code align:4
- .ctor start:0x02198908 end:0x02198914 kind:data align:4
+ .ctor start:0x02198908 end:0x02198914 kind:rodata align:4
.data start:0x02198920 end:0x02198c00 kind:data align:32
.bss start:0x02198c00 end:0x02198c60 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov051/delinks.txt b/config/usa/arm9/overlays/ov051/delinks.txt
index 78f849f8..92d82868 100644
--- a/config/usa/arm9/overlays/ov051/delinks.txt
+++ b/config/usa/arm9/overlays/ov051/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02195460 end:0x021981c8 kind:code align:32
- .rodata start:0x021981c8 end:0x02198200 kind:data align:4
+ .rodata start:0x021981c8 end:0x02198200 kind:rodata align:4
.init start:0x02198200 end:0x02198410 kind:code align:4
- .ctor start:0x02198410 end:0x02198428 kind:data align:4
+ .ctor start:0x02198410 end:0x02198428 kind:rodata align:4
.data start:0x02198440 end:0x021989c0 kind:data align:32
.bss start:0x021989c0 end:0x02198a80 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov052/delinks.txt b/config/usa/arm9/overlays/ov052/delinks.txt
index 80cbd4fb..29cd027a 100644
--- a/config/usa/arm9/overlays/ov052/delinks.txt
+++ b/config/usa/arm9/overlays/ov052/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02195460 end:0x021977e8 kind:code align:32
- .rodata start:0x021977e8 end:0x02197834 kind:data align:4
+ .rodata start:0x021977e8 end:0x02197834 kind:rodata align:4
.init start:0x02197834 end:0x021978b4 kind:code align:4
- .ctor start:0x021978b4 end:0x021978c0 kind:data align:4
+ .ctor start:0x021978b4 end:0x021978c0 kind:rodata align:4
.data start:0x021978c0 end:0x02197ba0 kind:data align:32
.bss start:0x02197ba0 end:0x02197c00 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov053/delinks.txt b/config/usa/arm9/overlays/ov053/delinks.txt
index 3101bdcd..8573e183 100644
--- a/config/usa/arm9/overlays/ov053/delinks.txt
+++ b/config/usa/arm9/overlays/ov053/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02198c60 end:0x02199f18 kind:code align:32
- .rodata start:0x02199f18 end:0x02199f24 kind:data align:4
+ .rodata start:0x02199f18 end:0x02199f24 kind:rodata align:4
.init start:0x02199f24 end:0x02199fd0 kind:code align:4
- .ctor start:0x02199fd0 end:0x02199fd8 kind:data align:4
+ .ctor start:0x02199fd0 end:0x02199fd8 kind:rodata align:4
.data start:0x02199fe0 end:0x0219a0e0 kind:data align:32
.bss start:0x0219a0e0 end:0x0219a600 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov054/delinks.txt b/config/usa/arm9/overlays/ov054/delinks.txt
index 46bcf150..7c33369b 100644
--- a/config/usa/arm9/overlays/ov054/delinks.txt
+++ b/config/usa/arm9/overlays/ov054/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02198c60 end:0x02199874 kind:code align:32
- .rodata start:0x02199874 end:0x02199884 kind:data align:4
+ .rodata start:0x02199874 end:0x02199884 kind:rodata align:4
.init start:0x02199884 end:0x021998b4 kind:code align:4
- .ctor start:0x021998b4 end:0x021998bc kind:data align:4
+ .ctor start:0x021998b4 end:0x021998bc kind:rodata align:4
.data start:0x021998c0 end:0x02199980 kind:data align:32
.bss start:0x02199980 end:0x02199a00 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov055/delinks.txt b/config/usa/arm9/overlays/ov055/delinks.txt
index 561f1408..14fc782b 100644
--- a/config/usa/arm9/overlays/ov055/delinks.txt
+++ b/config/usa/arm9/overlays/ov055/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02198c60 end:0x02199710 kind:code align:32
- .rodata start:0x02199710 end:0x0219974c kind:data align:4
+ .rodata start:0x02199710 end:0x0219974c kind:rodata align:4
.init start:0x0219974c end:0x0219977c kind:code align:4
- .ctor start:0x0219977c end:0x02199784 kind:data align:4
+ .ctor start:0x0219977c end:0x02199784 kind:rodata align:4
.data start:0x021997a0 end:0x02199800 kind:data align:32
.bss start:0x02199800 end:0x02199880 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov056/delinks.txt b/config/usa/arm9/overlays/ov056/delinks.txt
index 95d4a142..e9189783 100644
--- a/config/usa/arm9/overlays/ov056/delinks.txt
+++ b/config/usa/arm9/overlays/ov056/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02198c60 end:0x0219927c kind:code align:32
- .rodata start:0x0219927c end:0x02199288 kind:data align:4
+ .rodata start:0x0219927c end:0x02199288 kind:rodata align:4
.init start:0x02199288 end:0x021992dc kind:code align:4
- .ctor start:0x021992dc end:0x021992e4 kind:data align:4
+ .ctor start:0x021992dc end:0x021992e4 kind:rodata align:4
.data start:0x02199300 end:0x02199360 kind:data align:32
.bss start:0x02199360 end:0x02199460 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov057/delinks.txt b/config/usa/arm9/overlays/ov057/delinks.txt
index a7639a2b..5c6d006d 100644
--- a/config/usa/arm9/overlays/ov057/delinks.txt
+++ b/config/usa/arm9/overlays/ov057/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02198c60 end:0x0219a8f4 kind:code align:32
- .rodata start:0x0219a8f4 end:0x0219a900 kind:data align:4
+ .rodata start:0x0219a8f4 end:0x0219a900 kind:rodata align:4
.init start:0x0219a900 end:0x0219a970 kind:code align:4
- .ctor start:0x0219a970 end:0x0219a97c kind:data align:4
+ .ctor start:0x0219a970 end:0x0219a97c kind:rodata align:4
.data start:0x0219a980 end:0x0219aa60 kind:data align:32
.bss start:0x0219aa60 end:0x0219aaa0 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov058/delinks.txt b/config/usa/arm9/overlays/ov058/delinks.txt
index 5ac60591..d3d63fe3 100644
--- a/config/usa/arm9/overlays/ov058/delinks.txt
+++ b/config/usa/arm9/overlays/ov058/delinks.txt
@@ -1,7 +1,7 @@
.text start:0x02198c60 end:0x0219acc8 kind:code align:32
- .rodata start:0x0219acc8 end:0x0219ace0 kind:data align:4
+ .rodata start:0x0219acc8 end:0x0219ace0 kind:rodata align:4
.init start:0x0219ace0 end:0x0219addc kind:code align:4
- .ctor start:0x0219addc end:0x0219ade4 kind:data align:4
+ .ctor start:0x0219addc end:0x0219ade4 kind:rodata align:4
.data start:0x0219ae00 end:0x0219af20 kind:data align:32
.bss start:0x0219af20 end:0x0219b080 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov059/delinks.txt b/config/usa/arm9/overlays/ov059/delinks.txt
index 1dd419d1..10677e25 100644
--- a/config/usa/arm9/overlays/ov059/delinks.txt
+++ b/config/usa/arm9/overlays/ov059/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x02198c60 end:0x0219b070 kind:code align:32
- .rodata start:0x0219b070 end:0x0219b084 kind:data align:4
- .ctor start:0x0219b084 end:0x0219b088 kind:data align:4
+ .rodata start:0x0219b070 end:0x0219b084 kind:rodata align:4
+ .ctor start:0x0219b084 end:0x0219b088 kind:rodata align:4
.data start:0x0219b0a0 end:0x0219b120 kind:data align:32
.bss start:0x0219b120 end:0x0219b120 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov060/delinks.txt b/config/usa/arm9/overlays/ov060/delinks.txt
index e07d6eaa..36114eea 100644
--- a/config/usa/arm9/overlays/ov060/delinks.txt
+++ b/config/usa/arm9/overlays/ov060/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x0213de40 end:0x02147638 kind:code align:32
- .rodata start:0x02147638 end:0x0214766c kind:data align:4
- .ctor start:0x0214766c end:0x02147670 kind:data align:4
+ .rodata start:0x02147638 end:0x0214766c kind:rodata align:4
+ .ctor start:0x0214766c end:0x02147670 kind:rodata align:4
.data start:0x02147680 end:0x02147760 kind:data align:32
.bss start:0x02147760 end:0x02148520 kind:bss align:32
diff --git a/config/usa/arm9/overlays/ov061/delinks.txt b/config/usa/arm9/overlays/ov061/delinks.txt
index 199936f3..1293bb6a 100644
--- a/config/usa/arm9/overlays/ov061/delinks.txt
+++ b/config/usa/arm9/overlays/ov061/delinks.txt
@@ -1,6 +1,6 @@
.text start:0x0213de40 end:0x0217a190 kind:code align:32
- .rodata start:0x0217a190 end:0x0217a588 kind:data align:4
- .ctor start:0x0217a588 end:0x0217a58c kind:data align:4
+ .rodata start:0x0217a190 end:0x0217a588 kind:rodata align:4
+ .ctor start:0x0217a588 end:0x0217a58c kind:rodata align:4
.data start:0x0217a5a0 end:0x0217e9a0 kind:data align:32
.bss start:0x0217e9a0 end:0x02181960 kind:bss align:32
diff --git a/docs/decompiling.md b/docs/decompiling.md
index 3ec8f682..e9f9c3b1 100644
--- a/docs/decompiling.md
+++ b/docs/decompiling.md
@@ -8,7 +8,7 @@ stuck or need assistance.
- [The Ghidra project](#the-ghidra-project)
## Pick a source file
-See the `decomp` tag in the [issue tracker](https://github.com/AetiasHax/ph/issues?q=is%3Aopen+is%3Aissue+label%3Adecomp) for
+See the `decomp` tag in the [issue tracker](https://github.com/zeldaret/ph/issues?q=is%3Aopen+is%3Aissue+label%3Adecomp) for
a list of delinked source files that are ready to be decompiled. This list grows as more source files are delinked from the
rest of the base ROM.
diff --git a/docs/overlays.md b/docs/overlays.md
index d966dd91..00eecb0d 100644
--- a/docs/overlays.md
+++ b/docs/overlays.md
@@ -18,11 +18,11 @@ contribute to this list!
`11` | --- | 3 |
`12` | Battle | 3 | Handles battle mode.
`13` | --- | 3 |
-`14` | Land | 4 | Link and essential land-based actors
-`15` | --- | 4 |
+`14` | Land | 4 | Link and essential land-based actors.
+`15` | Sea | 4 | Handles the sea, Linebeck's ship, and sea-based actors.
`16` | Startup | N/A | Exists briefly on game startup. Initializes RNG, messages, and more.
-`17` | --- | 5 |
-`18` | --- | 5 |
+`17` | Dungeon | 5 | Handles courses for caves and dungeons.
+`18` | Overworld | 5 | Handles overworld courses on land.
`19` | --- | 6 |
`20` | --- | 6 |
`21` | --- | 6 |
diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp
index 2a30a7c1..c22f086e 100644
--- a/include/Actor/Actor.hpp
+++ b/include/Actor/Actor.hpp
@@ -227,7 +227,7 @@ public:
bool func_ov00_020c195c();
bool func_ov00_020c198c();
void KillPickupItemActors();
- void func_Ov00_020c1bfc(s32 param1);
+ bool func_ov00_020c1bfc(s32 param1);
void func_ov00_020c1c20(s32 param1, unk32 param2);
bool IsNearLink();
void func_ov00_020c1cf8();
diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp
index 092d8549..fe7b2cc6 100644
--- a/include/Actor/ActorType.hpp
+++ b/include/Actor/ActorType.hpp
@@ -41,6 +41,7 @@ enum ActorTypeId_ {
ActorTypeId_SmallKey = 'NKEY',
ActorTypeId_SwitchObject = 'SWOB',
ActorTypeId_EventIcon = 'EVIC',
+ ActorTypeId_ActionObject = 'ACOB',
ActorTypeId_Sandworm = 'MLDW',
ActorTypeId_Tektite = 'TEKT',
diff --git a/include/Actor/Dungeon/ActorActionObject.hpp b/include/Actor/Dungeon/ActorActionObject.hpp
new file mode 100644
index 00000000..0bf35dfb
--- /dev/null
+++ b/include/Actor/Dungeon/ActorActionObject.hpp
@@ -0,0 +1,20 @@
+#pragma once
+
+#include "Actor/Actor.hpp"
+
+class ActorActionObject : public Actor {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 158 */
+
+ /* 00 */ virtual ~ActorActionObject() override;
+ /* 08 */ virtual bool vfunc_08() override;
+ /* 14 */ virtual void vfunc_14(u32 param1) override;
+ /* 18 */ virtual void vfunc_18(u32 param1) override;
+ /* b4 */
+
+ static ActorActionObject *Create();
+ ActorActionObject();
+};
diff --git a/include/Actor/Navi/ActorForceNavi.hpp b/include/Actor/Navi/ActorForceNavi.hpp
new file mode 100644
index 00000000..18a124f4
--- /dev/null
+++ b/include/Actor/Navi/ActorForceNavi.hpp
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "Actor/Navi/ActorNaviBase.hpp"
+
+class ActorForceNavi : public ActorNaviBase {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 294 */
+
+ /* b4 */ virtual FairyId GetFairyId() override;
+
+ static ActorForceNavi *Create();
+};
diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp
index 98ebcf51..86774de4 100644
--- a/include/Actor/Navi/ActorNavi.hpp
+++ b/include/Actor/Navi/ActorNavi.hpp
@@ -1,3 +1,65 @@
#pragma once
-class ActorNavi;
+#include "Actor/Navi/ActorNaviBase.hpp"
+#include "Unknown/UnkStruct_ov000_020beba8.hpp"
+
+class UnkStruct_ov000_020b8110 : public UnkStruct_ov000_020beba8 {
+public:
+ /* 0 (base) */
+ /* c */
+
+ /* 00 */ virtual ~UnkStruct_ov000_020b8110() override;
+ /* 08 */ virtual void vfunc_08(unk16 *param1) override;
+ /* 14 */ virtual void vfunc_14(u16 *param1) override;
+ /* 18 */ virtual void vfunc_18(s32 *param1) override;
+ /* 1c */
+
+ UnkStruct_ov000_020b8110();
+};
+
+class ActorNavi : public ActorNaviBase {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 294 */ ModelRender mUnk_294;
+ /* 2f0 */ void *mUnk_2f0;
+ /* 2f4 */ unk8 mUnk_2f4[0x40];
+ /* 334 */ unk32 mUnk_334;
+ /* 338 */ unk32 mUnk_338;
+ /* 33c */ unk32 mUnk_33c;
+ /* 340 */ unk16 mUnk_340;
+ /* 342 */ unk8 mUnk_342[0x2];
+ /* 344 */ unk32 mUnk_344;
+ /* 348 */ unk32 mUnk_348;
+ /* 34c */ unk8 mUnk_34c[0x68];
+ /* 3b4 */ EquipHammer *mHammer;
+ /* 3b8 */ unk32 mUnk_3b8;
+ /* 3bc */ unk32 mUnk_3bc;
+ /* 3c0 */ unk8 mUnk_3c0[0x8];
+ /* 3c8 */
+
+ /* 00 */ virtual ~ActorNavi() override;
+ /* 08 */ virtual bool vfunc_08() override;
+ /* 20 */ virtual void vfunc_20(bool param1) override;
+ /* 8c */ virtual bool vfunc_8c() override;
+ /* b4 */ virtual FairyId GetFairyId() override;
+ /* b8 */ virtual s32 vfunc_b8() override;
+ /* c0 */ virtual bool vfunc_c0(Vec3p *param1) override;
+ /* c4 */ virtual void vfunc_c4() override;
+ /* c8 */ virtual void vfunc_c8() override;
+ /* cc */ virtual bool vfunc_cc(unk32 *param1) override;
+ /* d0 */ virtual void vfunc_d0() override;
+ /* d4 */ virtual void vfunc_d4() override;
+ /* d8 */ virtual void vfunc_d8() override;
+ /* dc */ virtual void SetActive(bool active) override;
+ /* e0 */ virtual void vfunc_e0() override;
+ /* e8 */ virtual void vfunc_e8() override;
+ /* ec */ virtual void vfunc_ec() override;
+
+ static ActorNavi *Create();
+ void func_ov000_020b8200();
+ void func_ov000_020b853c();
+
+ ActorNavi();
+};
diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp
index f3a45e8a..4c2a20cf 100644
--- a/include/Actor/Navi/ActorNaviBase.hpp
+++ b/include/Actor/Navi/ActorNaviBase.hpp
@@ -7,20 +7,30 @@
#include "Player/EquipHammer.hpp"
#include "Render/ModelRender.hpp"
+typedef s32 FairyId;
+enum FairyId_ {
+ FairyId_None = -1,
+ FairyId_Courage = 0,
+ FairyId_Power = 1,
+ FairyId_Wisdom = 2,
+ FairyId_COUNT = 3,
+};
+
class ActorNaviBase_Unk1 {};
class ActorNaviBase : public Actor {
+public:
/* 000 (base) */
/* 158 */ Vec3p mUnk_158;
/* 164 */ unk32 mUnk_164;
/* 168 */ ModelRender mUnk_168;
/* 1c4 */ unk8 mUnk_1c4[0xc];
- /* 1d0 */ void *mUnk_1d0;
- /* 1d4 */ unk8 mUnk_1d4[0x30];
+ /* 1d0 */ unk8 mUnk_1d0[0x24];
+ /* 1f4 */ unk8 mUnk_1f4[0x20];
/* 214 */ unk16 mUnk_214;
/* 216 */ unk8 mUnk_216[0xc];
/* 222 */ unk16 mUnk_222;
- /* 224 */ unk8 mUnk_224[0x18];
+ /* 224 */ unk8 mUnk_224[0x28];
/* 24c */ unk32 mUnk_24c;
/* 250 */ unk32 mUnk_250;
/* 254 */ unk32 mUnk_254;
@@ -33,22 +43,7 @@ class ActorNaviBase : public Actor {
/* 288 */ unk8 mUnk_288[0x2];
/* 28a */ unk16 mUnk_28a;
/* 28c */ unk8 mUnk_28c[0x8];
- /* 294 */ ModelRender mUnk_294;
- /* 2f0 */ void *mUnk_2f0;
- /* 2f4 */ unk8 mUnk_2f4[0x40];
- /* 334 */ unk32 mUnk_334;
- /* 338 */ unk32 mUnk_338;
- /* 33c */ unk32 mUnk_33c;
- /* 340 */ unk16 mUnk_340;
- /* 342 */ unk8 mUnk_342[0x2];
- /* 344 */ unk32 mUnk_344;
- /* 348 */ unk32 mUnk_348;
- /* 34c */ unk8 mUnk_34c[0x68];
- /* 3b4 */ EquipHammer *mHammer;
- /* 3b8 */ unk32 mUnk_3b8;
- /* 3bc */ unk32 mUnk_3bc;
- /* 3c0 */ unk8 mUnk_3c0[0x8];
- /* 3c8 */
+ /* 294 */
/* 00 */ virtual ~ActorNaviBase() override;
/* 08 */ virtual bool vfunc_08() override;
@@ -65,9 +60,7 @@ class ActorNaviBase : public Actor {
/* 84 */ virtual void vfunc_84() override;
/* 90 */ virtual bool vfunc_90() override;
/* 94 */ virtual void vfunc_94() override;
- /* a0 */ virtual bool TrySetTransform(Transform *transform) override;
- /* b0 */ virtual void SetTransform(Transform *transform) override;
- /* b4 */ virtual void vfunc_b4() = 0;
+ /* b4 */ virtual FairyId GetFairyId() = 0;
/* b8 */ virtual s32 vfunc_b8();
/* bc */ virtual bool vfunc_bc(unk32 param1, unk8 param2, s32 param3);
/* c0 */ virtual bool vfunc_c0(Vec3p *param1);
diff --git a/include/Actor/Navi/ActorWisdomNavi.hpp b/include/Actor/Navi/ActorWisdomNavi.hpp
new file mode 100644
index 00000000..fb6d2641
--- /dev/null
+++ b/include/Actor/Navi/ActorWisdomNavi.hpp
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "Actor/Navi/ActorNaviBase.hpp"
+
+class ActorWisdomNavi : public ActorNaviBase {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 294 */
+
+ /* b4 */ virtual FairyId GetFairyId() override;
+
+ static ActorWisdomNavi *Create();
+};
diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp
index c0a84aa7..9e473fc2 100644
--- a/include/Item/ItemManager.hpp
+++ b/include/Item/ItemManager.hpp
@@ -8,7 +8,7 @@ extern "C" {
#include "nds/math.h"
#include "types.h"
-#include "Actor/Navi/ActorNavi.hpp"
+#include "Actor/Navi/ActorNaviBase.hpp"
#include "Item/Item.hpp"
#include "Player/EquipItem.hpp"
#include "Render/ModelRender.hpp"
@@ -20,15 +20,6 @@ extern "C" {
#define MAX_AMMO_UPGRADE 2
#define MAX_UNK_0BA 9
-typedef s32 FairyId;
-enum FairyId_ {
- FairyId_None = -1,
- FairyId_Courage = 0,
- FairyId_Power = 1,
- FairyId_Wisdom = 2,
- FairyId_COUNT = 3,
-};
-
typedef u32 ItemModelId;
enum ItemModelId_ {
ItemModelId_OshusSword, // swA
@@ -66,7 +57,7 @@ private:
/* 008 */ ItemFlag mForcedItem; // game crashes when any item besides this one is equipped
/* 00c */ u32 mHourglassSandFrames;
/* 010 */ FairyId mEquippedFairy;
- /* 014 */ ActorNavi *mFairies[FairyId_COUNT];
+ /* 014 */ ActorNaviBase *mFairies[FairyId_COUNT];
/* 020 */ u16 mEquipLoadTimer;
/* 022 */ u16 mNumRupees;
/* 024 */ u8 mNumGems[Gem_COUNT];
@@ -114,7 +105,7 @@ public:
// Fairy
FairyId GetEquippedFairy() const;
- ActorNavi *GetFairy(FairyId id) const;
+ ActorNaviBase *GetFairy(FairyId id) const;
u32 GetActiveFairyLevel(FairyId id) const;
u32 GetFairyLevel(FairyId id) const;
void SpawnFairies();
diff --git a/include/Map/MapOverworld.hpp b/include/Map/MapOverworld.hpp
new file mode 100644
index 00000000..482b3ad1
--- /dev/null
+++ b/include/Map/MapOverworld.hpp
@@ -0,0 +1,75 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "Map/MapBase.hpp"
+#include "Render/ModelRender.hpp"
+#include "Unknown/UnkStruct_ov000_020c0c08.hpp"
+
+class MapOverworld_Unk1 : public UnkStruct_ov000_020c0c08 {
+public:
+ /* 00 (base) */
+ /* 24 */
+
+ MapOverworld_Unk1(u32 param1, u8 *param2, unk32 param3);
+};
+
+class MapOverworld : public MapBase {
+public:
+ /* 000 (base) */
+ /* 1b0 */ void *mUnk_1b0;
+ /* 1b4 */ unk8 mUnk_1b4;
+ /* 1b5 */ unk8 mUnk_1b5;
+ /* 1b6 */ unk8 mUnk_1b6;
+ /* 1b7 */ unk8 mUnk_1b7;
+ /* 1b8 */ u8 mUnk_1b8;
+ /* 1b9 */ unk8 mUnk_1b9;
+ /* 1ba */ unk8 mUnk_1ba;
+ /* 1bb */ unk8 mUnk_1bb;
+ /* 1bc */ s32 mUnk_1bc;
+ /* 1c0 */ ModelRender *mUnk_1c0;
+ /* 1c4 */ void *mUnk_1c4;
+ /* 1c8 */ void *mUnk_1c8;
+ /* 1cc */ unk8 mUnk_1cc;
+ /* 1cd */ unk8 mUnk_1cd;
+ /* 1ce */ unk8 mUnk_1ce[0x2];
+ /* 1d0 */ unk32 mUnk_1d0;
+ /* 1d4 */ unk32 mUnk_1d4;
+ /* 1d8 */ s16 mUnk_1d8;
+ /* 1da */ s16 mUnk_1da;
+ /* 1dc */
+
+ /* 00 */ virtual ~MapOverworld() override;
+ /* 08 */ virtual void vfunc_08(u32 param_2, u32 param_3, Course *param_4) override;
+ /* 14 */ virtual void vfunc_14() override;
+ /* 1c */ virtual void vfunc_1c(bool param_2) override;
+ /* 20 */ virtual void vfunc_20(s32 param_2) override;
+ /* 2c */ virtual void vfunc_2c() override;
+ /* 4c */ virtual void vfunc_4c() override;
+ /* 54 */ virtual unk32 vfunc_54() override;
+ /* 58 */ virtual unk32 vfunc_58() override;
+ /* 5c */ virtual unk32 vfunc_5c() override;
+ /* 60 */ virtual unk32 vfunc_60() override;
+ /* 64 */ virtual unk32 vfunc_64() override;
+ /* 78 */ virtual unk32 vfunc_78() override;
+ /* 7c */ virtual unk32 vfunc_7c() override;
+ /* 80 */ virtual unk32 vfunc_80() override;
+ /* 94 */ virtual void vfunc_94() override;
+ /* 98 */ virtual void vfunc_98() override;
+ /* a4 */ virtual unk32 vfunc_a4() override;
+ /* b0 */ virtual unk8 vfunc_b0(unk32 param_2, unk32 param_3) override;
+ /* bc */ virtual void vfunc_bc() override;
+ /* c0 */ virtual void vfunc_c0() override;
+ /* c4 */
+
+ MapOverworld(u32 width, u32 height);
+ void func_ov018_0215bfc8();
+ u32 func_ov018_0215c34c();
+ u32 func_ov018_0215c368();
+ s32 func_ov018_0215c380(u8 *param1);
+ void func_ov018_0215c650();
+ void func_ov018_0215c6ac();
+ void func_ov018_0215c6d0();
+ void func_ov018_0215c9ac();
+};
diff --git a/include/Player/PlayerBase.hpp b/include/Player/PlayerBase.hpp
index f813d770..f7caf604 100644
--- a/include/Player/PlayerBase.hpp
+++ b/include/Player/PlayerBase.hpp
@@ -29,7 +29,7 @@ public:
/* 0c */ virtual bool CanMove();
/* 10 */ virtual void vfunc_10(Cylinder *param1) = 0;
/* 14 */ virtual void vfunc_14(Cylinder *param1) = 0;
- /* 18 */ virtual void vfunc_18() = 0;
+ /* 18 */ virtual bool vfunc_18(s32 param1) = 0;
/* 1c */ virtual void Init() = 0;
/* 20 */ virtual void vfunc_20() = 0;
/* 24 */ virtual void UpdatePos() = 0;
diff --git a/include/Player/PlayerLinkBase.hpp b/include/Player/PlayerLinkBase.hpp
index 2a208365..b5bf77ed 100644
--- a/include/Player/PlayerLinkBase.hpp
+++ b/include/Player/PlayerLinkBase.hpp
@@ -50,7 +50,7 @@ public:
/* 0c */ virtual bool CanMove() override;
/* 10 */ virtual void vfunc_10(Cylinder *param1) override;
/* 14 */ virtual void vfunc_14(Cylinder *param1) override;
- /* 18 */ virtual void vfunc_18(s32 param1) override;
+ /* 18 */ virtual bool vfunc_18(s32 param1) override;
/* 1c */ virtual void Init() override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void UpdatePos() override;
diff --git a/include/System/OverlayManager.hpp b/include/System/OverlayManager.hpp
index 636208fc..4c83bbe4 100644
--- a/include/System/OverlayManager.hpp
+++ b/include/System/OverlayManager.hpp
@@ -6,6 +6,7 @@
typedef u32 OverlayId;
enum OverlayId_ {
+ OverlayId_None = -1,
OverlayId_Core,
OverlayId_01,
OverlayId_02,
diff --git a/include/Unknown/UnkStruct_ov000_020c0c08.hpp b/include/Unknown/UnkStruct_ov000_020c0c08.hpp
new file mode 100644
index 00000000..69054538
--- /dev/null
+++ b/include/Unknown/UnkStruct_ov000_020c0c08.hpp
@@ -0,0 +1,21 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "System/SysNew.hpp"
+#include "Unknown/UnkStruct_0202e1a0.hpp"
+
+class UnkStruct_ov000_020c0c08 : public SysObject {
+public:
+ /* 00 (vtable) */
+ /* 04 */ unk32 mUnk_04;
+ /* 08 */ u8 *mUnk_08;
+ /* 0c */ UnkStruct_0202e1a0 mUnk_0c;
+ /* 24 */
+
+ /* 00 */ virtual ~UnkStruct_ov000_020c0c08();
+ /* 08 */
+
+ UnkStruct_ov000_020c0c08(unk32 param1, u8 *param2);
+};
diff --git a/libs/c/include/stddef.h b/libs/c/include/stddef.h
index 4986043a..4858fe46 100644
--- a/libs/c/include/stddef.h
+++ b/libs/c/include/stddef.h
@@ -5,4 +5,6 @@
typedef unsigned int size_t;
+#define offsetof(type, member) ((size_t) &((type *) NULL)->member)
+
#endif
diff --git a/libs/nds/include/nds/Overlay.h b/libs/nds/include/nds/Overlay.h
index 7a8c6fa9..5339a9d7 100644
--- a/libs/nds/include/nds/Overlay.h
+++ b/libs/nds/include/nds/Overlay.h
@@ -1,6 +1,10 @@
#ifndef _NDS_OVERLAY_H
#define _NDS_OVERLAY_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct Overlay {
/* 00 */ unk32 mId;
/* 04 */ void *mBaseAddress;
@@ -27,4 +31,8 @@ bool Overlay_Destroy(Overlay *overlay);
bool Overlay_Load(Overlay *overlay, unk32 param2);
bool Overlay_Unload(Overlay *overlay, unk32 param2);
+#ifdef __cplusplus
+}
+#endif
+
#endif
diff --git a/src/00_Core/Actor/Actor.cpp b/src/00_Core/Actor/Actor.cpp
index d35b77c8..b865c39e 100644
--- a/src/00_Core/Actor/Actor.cpp
+++ b/src/00_Core/Actor/Actor.cpp
@@ -318,8 +318,8 @@ ARM void Actor::SetTransform(Transform *transform) {
ARM void Actor::vfunc_a8() {}
-ARM void Actor::func_Ov00_020c1bfc(s32 param1) {
- gMapManager->func_ov00_02084be0(mUnk_020.mUnk_0a[param1], mUnk_020.mUnk_08[param1]);
+ARM bool Actor::func_ov00_020c1bfc(s32 param1) {
+ return gMapManager->func_ov00_02084be0(mUnk_020.mUnk_0a[param1], mUnk_020.mUnk_08[param1]);
}
ARM void Actor::func_ov00_020c1c20(s32 param1, unk32 param2) {
diff --git a/src/00_Core/Actor/Dungeon/ActorActionObject.cpp b/src/00_Core/Actor/Dungeon/ActorActionObject.cpp
new file mode 100644
index 00000000..0a2c3970
--- /dev/null
+++ b/src/00_Core/Actor/Dungeon/ActorActionObject.cpp
@@ -0,0 +1,85 @@
+#include "Actor/Dungeon/ActorActionObject.hpp"
+#include "Map/MapManager.hpp"
+#include "Player/LinkStateBase.hpp"
+#include "Player/PlayerLinkBase.hpp"
+#include "Save/AdventureFlags.hpp"
+
+#pragma section sbss begin
+ActorType ActorActionObject::gType = ActorType(ActorTypeId_ActionObject, (ActorCreateFunc) ActorActionObject::Create, NULL);
+#pragma section sbss end
+
+extern u32 **data_027e0fe0[];
+ARM ActorActionObject *ActorActionObject::Create() {
+ return new(*data_027e0fe0[0], 4) ActorActionObject();
+}
+
+ARM ActorActionObject::ActorActionObject() {}
+
+ARM ActorActionObject::~ActorActionObject() {}
+
+// non-matching
+ARM bool ActorActionObject::vfunc_08() {
+ mGravity = 0;
+ mHitbox.pos = gVec3p_ZERO;
+ mHitbox.size = -1;
+ mUnk_08c.pos = mHitbox.pos;
+ mUnk_08c.size = mHitbox.size;
+ mUnk_0a4.mUnk_04 = gVec3p_ZERO;
+ mUnk_0a4.mUnk_10 = -1;
+ mVisible = false;
+ mUnk_130 = 0;
+ return true;
+}
+
+ARM void ActorActionObject::vfunc_14(u32 param1) {
+ if (!this->func_ov00_020c313c(param1)) {
+ return;
+ }
+
+ u32 flag = mUnk_020.mUnk_00[2];
+ bool bVar3;
+ switch (mUnk_020.mUnk_00[0]) {
+ case 0: bVar3 = true; break;
+ case 1:
+ if (gPlayerLink->mGrabActor.id != -1 && gPlayerLink->GetStateId() == LinkStateId_Move) {
+ bVar3 = true;
+ } else {
+ bVar3 = false;
+ }
+ break;
+ case 2:
+ if (gPlayerLink->mGrabActor.id == -1 && gPlayerLink->GetStateId() == LinkStateId_Move) {
+ bVar3 = true;
+ } else {
+ bVar3 = false;
+ }
+ break;
+ default: bVar3 = false; break;
+ }
+
+ if (!bVar3) {
+ return;
+ }
+ if (!gMapManager->func_ov00_020836dc((u32) mUnk_020.mUnk_00[1], 0)) {
+ return;
+ }
+ if (mUnk_020.mUnk_0a[0] != 0 && !this->func_ov00_020c1bfc(0)) {
+ return;
+ }
+ if (flag != 0 && !gAdventureFlags->Get(flag)) {
+ return;
+ }
+
+ PlayerLinkBase *link = gPlayerLink;
+ if (link != NULL && link->vfunc_18(7)) {
+ if (mUnk_020.mUnk_00[3] == 1) {
+ link->func_ov000_020bcf50(&mPos, 0x800);
+ }
+ this->func_ov00_020c1c20(1, 1);
+ this->Kill();
+ }
+}
+
+ARM void ActorActionObject::vfunc_18(u32 param1) {
+ this->func_ov00_020c313c(param1);
+}
diff --git a/src/00_Core/Actor/Dungeon/ActorEventIcon.cpp b/src/00_Core/Actor/Dungeon/ActorEventIcon.cpp
index 8e943095..94e7381d 100644
--- a/src/00_Core/Actor/Dungeon/ActorEventIcon.cpp
+++ b/src/00_Core/Actor/Dungeon/ActorEventIcon.cpp
@@ -8,6 +8,6 @@ bool ActorEventIcon::vfunc_08() {}
void ActorEventIcon::vfunc_14(u32 param1) {}
void ActorEventIcon::vfunc_18(u32 param1) {}
u32 ActorEventIcon::func_ov000_02090648(u32 param1) {}
-bool func_ov000_02090774(u32 param1) {}
+bool ActorEventIcon::func_ov000_02090774(u32 param1) {}
void ActorEventIcon::vfunc_1c(u16 *param1) {}
ActorEventIcon::~ActorEventIcon() {}
diff --git a/src/00_Core/Actor/Navi/ActorForceNavi.cpp b/src/00_Core/Actor/Navi/ActorForceNavi.cpp
new file mode 100644
index 00000000..04b83c13
--- /dev/null
+++ b/src/00_Core/Actor/Navi/ActorForceNavi.cpp
@@ -0,0 +1,14 @@
+#include "Actor/Navi/ActorForceNavi.hpp"
+
+#pragma section sbss begin
+ActorType ActorForceNavi::gType = ActorType(ActorTypeId_ForceNavi, (ActorCreateFunc) ActorForceNavi::Create, NULL);
+#pragma section sbss end
+
+extern u32 **data_027e0fe0[];
+ActorForceNavi *ActorForceNavi::Create() {
+ return new(*data_027e0fe0[0], 4) ActorForceNavi();
+}
+
+ARM FairyId ActorForceNavi::GetFairyId() {
+ return FairyId_Power;
+}
diff --git a/src/00_Core/Actor/Navi/ActorNavi.cpp b/src/00_Core/Actor/Navi/ActorNavi.cpp
new file mode 100644
index 00000000..7c195178
--- /dev/null
+++ b/src/00_Core/Actor/Navi/ActorNavi.cpp
@@ -0,0 +1,32 @@
+#include "Actor/Navi/ActorNavi.hpp"
+#include "Player/EquipHammer.hpp"
+
+ActorType ActorNavi::gType = ActorType(ActorTypeId_Navi, (ActorCreateFunc) ActorNavi::Create, NULL);
+UnkStruct_ov000_020b8110 data_ov000_020ee1cc;
+
+ActorNavi *ActorNavi::Create() {}
+UnkStruct_ov000_020b8110::UnkStruct_ov000_020b8110() :
+ UnkStruct_ov000_020beba8(7) {}
+UnkStruct_ov000_020b8110::~UnkStruct_ov000_020b8110() {}
+void UnkStruct_ov000_020b8110::vfunc_08(unk16 *param1) {}
+void UnkStruct_ov000_020b8110::vfunc_18(s32 *param1) {}
+void UnkStruct_ov000_020b8110::vfunc_14(u16 *param1) {}
+void ActorNavi::func_ov000_020b8200() {}
+void ActorNavi::vfunc_c4() {}
+void ActorNavi::vfunc_c8() {}
+FairyId ActorNavi::GetFairyId() {}
+s32 ActorNavi::vfunc_b8() {}
+void ActorNavi::vfunc_d4() {}
+void ActorNavi::vfunc_d0() {}
+void ActorNavi::SetActive(bool active) {}
+void ActorNavi::vfunc_e0() {}
+void ActorNavi::vfunc_d8() {}
+void ActorNavi::vfunc_20(bool param1) {}
+bool ActorNavi::vfunc_cc(unk32 *param1) {}
+bool ActorNavi::vfunc_c0(Vec3p *param1) {}
+void ActorNavi::vfunc_e8() {}
+bool ActorNavi::vfunc_8c() {}
+void ActorNavi::vfunc_ec() {}
+EquipHammer *GetEquipHammer() {}
+void ActorNavi::func_ov000_020b853c() {}
+ActorNavi::~ActorNavi() {}
diff --git a/src/00_Core/Actor/Navi/ActorWisdomNavi.cpp b/src/00_Core/Actor/Navi/ActorWisdomNavi.cpp
new file mode 100644
index 00000000..84c02e33
--- /dev/null
+++ b/src/00_Core/Actor/Navi/ActorWisdomNavi.cpp
@@ -0,0 +1,14 @@
+#include "Actor/Navi/ActorWisdomNavi.hpp"
+
+#pragma section sbss begin
+ActorType ActorWisdomNavi::gType = ActorType(ActorTypeId_WisdomNavi, (ActorCreateFunc) ActorWisdomNavi::Create, NULL);
+#pragma section sbss end
+
+extern u32 **data_027e0fe0[];
+ARM ActorWisdomNavi *ActorWisdomNavi::Create() {
+ return new(*data_027e0fe0[0], 4) ActorWisdomNavi();
+}
+
+ARM FairyId ActorWisdomNavi::GetFairyId() {
+ return FairyId_Wisdom;
+}
diff --git a/src/00_Core/Item/ItemManager.cpp b/src/00_Core/Item/ItemManager.cpp
index 06122703..05e88182 100644
--- a/src/00_Core/Item/ItemManager.cpp
+++ b/src/00_Core/Item/ItemManager.cpp
@@ -126,7 +126,7 @@ ARM FairyId ItemManager::GetEquippedFairy() const {
return fairy;
}
-ARM ActorNavi *ItemManager::GetFairy(FairyId id) const {
+ARM ActorNaviBase *ItemManager::GetFairy(FairyId id) const {
return mFairies[id];
}
diff --git a/src/00_Core/Player/PlayerLinkBase.cpp b/src/00_Core/Player/PlayerLinkBase.cpp
index 897932c8..bc248044 100644
--- a/src/00_Core/Player/PlayerLinkBase.cpp
+++ b/src/00_Core/Player/PlayerLinkBase.cpp
@@ -20,7 +20,7 @@ bool PlayerLinkBase::func_ov000_020bba00() {}
bool PlayerLinkBase::func_ov000_020bba14() {}
bool PlayerLinkBase::func_ov000_020bba28() {}
void PlayerLinkBase::func_ov000_020bba48() {}
-void PlayerLinkBase::vfunc_18(s32 param1) {}
+bool PlayerLinkBase::vfunc_18(s32 param1) {}
bool PlayerLinkBase::CanMove() {}
bool PlayerLinkBase::vfunc_58() {}
bool PlayerLinkBase::vfunc_5c() {}
diff --git a/src/04_Load/Actor/Navi/ActorNavi.cpp b/src/04_Load/Actor/Navi/ActorNavi.cpp
new file mode 100644
index 00000000..12939c04
--- /dev/null
+++ b/src/04_Load/Actor/Navi/ActorNavi.cpp
@@ -0,0 +1,3 @@
+#include "Actor/Navi/ActorNavi.hpp"
+
+ActorNavi::ActorNavi() {}
diff --git a/src/18_Overworld/Map/MapOverworld.cpp b/src/18_Overworld/Map/MapOverworld.cpp
new file mode 100644
index 00000000..5737ea54
--- /dev/null
+++ b/src/18_Overworld/Map/MapOverworld.cpp
@@ -0,0 +1,38 @@
+#include "Map/MapOverworld.hpp"
+
+MapOverworld::MapOverworld(u32 width, u32 height) :
+ MapBase(width, height) {}
+MapOverworld::~MapOverworld() {}
+void MapOverworld::vfunc_08(u32 param_2, u32 param_3, Course *param_4) {}
+void MapOverworld::vfunc_14() {}
+void MapOverworld::vfunc_1c(bool param_2) {}
+void MapOverworld::func_ov018_0215bfc8() {}
+void MapOverworld::vfunc_20(s32 param_2) {}
+void MapOverworld::vfunc_2c() {}
+void MapOverworld::vfunc_94() {}
+unk32 MapOverworld::vfunc_a4() {}
+unk32 MapOverworld::vfunc_54() {}
+unk32 MapOverworld::vfunc_58() {}
+unk32 MapOverworld::vfunc_5c() {}
+unk32 MapOverworld::vfunc_60() {}
+unk32 MapOverworld::vfunc_64() {}
+u32 MapOverworld::func_ov018_0215c34c() {}
+u32 MapOverworld::func_ov018_0215c368() {}
+s32 MapOverworld::func_ov018_0215c380(u8 *param1) {}
+void MapOverworld::vfunc_bc() {}
+void MapOverworld::vfunc_98() {}
+void MapOverworld::vfunc_c0() {}
+unk32 MapOverworld::vfunc_78() {}
+unk32 MapOverworld::vfunc_7c() {}
+unk32 MapOverworld::vfunc_80() {}
+unk8 MapOverworld::vfunc_b0(unk32 param_2, unk32 param_3) {}
+void MapOverworld::func_ov018_0215c650() {}
+void MapOverworld::func_ov018_0215c6ac() {}
+void MapOverworld::func_ov018_0215c6d0() {}
+MapOverworld_Unk1::MapOverworld_Unk1(u32 param1, u8 *param2, unk32 param3) :
+ UnkStruct_ov000_020c0c08(0, param2) {}
+void MapOverworld::func_ov018_0215c9ac() {}
+void func_ov018_0215ca24(s32 param1) {}
+void func_ov018_0215ca3c(s32 param1, s32 param2, unk32 param3, unk32 param4) {}
+void func_ov018_0215ca8c(s32 param1) {}
+void MapOverworld::vfunc_4c() {}
diff --git a/src/Main/System/OverlayManager.cpp b/src/Main/System/OverlayManager.cpp
index 9c50ebb6..8fff1fc6 100644
--- a/src/Main/System/OverlayManager.cpp
+++ b/src/Main/System/OverlayManager.cpp
@@ -1,7 +1,88 @@
#include "System/OverlayManager.hpp"
+#include "global.h"
+#include "nds/Overlay.h"
-void OverlayManager::Load(OverlayIndex index, OverlayId id) {}
-void OverlayManager::LoadIfNotLoaded(OverlayIndex index, OverlayId id) {}
-void OverlayManager::Unload(OverlayIndex index) {}
-void OverlayManager::LoadOverlaySetup(s32 index) {}
-void OverlayManager::UnloadOverlaySetup() {}
+struct UnkStruct_020ee698 {
+ /* 00 */ unk8 mUnk_00[0x2C];
+ /* 2c */ unk32 mUnk_2c;
+ /* 30 */
+};
+extern UnkStruct_020ee698 data_ov000_020ee698;
+
+struct OverlaySetup {
+ /* 00 */ unk8 mUnk_00;
+ /* 01 */ unk8 mUnk_01;
+ /* 02 */ unk8 mUnk_02;
+ /* 03 */ unk8 mUnk_03;
+ /* 04 */ OverlayId slot1Overlay;
+ /* 08 */ OverlayId slot2Overlay;
+ /* 0c */ OverlayId slot3Overlay;
+ /* 10 */ OverlayId slot12Overlay;
+ /* 14 */ void *mUnk_14;
+ /* 18 */ void *mUnk_18;
+ /* 1c */
+};
+extern OverlaySetup gOverlaySetups[];
+
+extern u32 *data_027e0ce0[];
+extern "C" void func_ov007_02102850(u32 **);
+extern "C" void func_ov007_021028a0(u32 **);
+
+THUMB void OverlayManager::Load(OverlayIndex index, OverlayId id) {
+ if (id != OverlayId_None) {
+ Overlay_Load(NULL, id);
+ }
+
+ this->mLoadedOverlays[index] = id;
+}
+
+THUMB void OverlayManager::LoadIfNotLoaded(OverlayIndex index, OverlayId id) {
+ OverlayId loadedId = this->mLoadedOverlays[index];
+
+ if (loadedId != id) {
+ this->Unload(index);
+ this->Load(index, id);
+ }
+}
+
+THUMB void OverlayManager::Unload(OverlayIndex index) {
+ if (this->mLoadedOverlays[index] != OverlayId_None) {
+ Overlay_Unload(NULL, this->mLoadedOverlays[index]);
+ this->mLoadedOverlays[index] = OverlayId_None;
+ }
+}
+
+//! TODO: solve the .word issue with the overlay IDs
+//! both functions should match otherwise
+THUMB void OverlayManager::LoadOverlaySetup(s32 index) {
+ OverlayId overlayId;
+ OverlaySetup *pSetup;
+
+ pSetup = &gOverlaySetups[index];
+
+ this->LoadIfNotLoaded(OverlayIndex_1, pSetup->slot1Overlay);
+ this->LoadIfNotLoaded(OverlayIndex_2, pSetup->slot2Overlay);
+
+ if (index == 5) {
+ func_ov007_02102850(data_027e0ce0);
+ } else {
+ overlayId = pSetup->slot12Overlay;
+
+ if (index == 6 && data_ov000_020ee698.mUnk_2c == 2) {
+ overlayId = OverlayId_61;
+ }
+
+ this->Load(OverlayIndex_3, pSetup->slot3Overlay);
+ this->Load(OverlayIndex_12, overlayId);
+ }
+}
+
+THUMB void OverlayManager::UnloadOverlaySetup() {
+ this->Unload(OverlayIndex_12);
+ this->Unload(OverlayIndex_3);
+
+ if (this->mLoadedOverlays[2] == OverlayId_07) {
+ func_ov007_021028a0(data_027e0ce0);
+ this->Unload(OverlayIndex_2);
+ }
+}
diff --git a/tools/configure.py b/tools/configure.py
index f3c34311..3ae6286c 100644..100755
--- a/tools/configure.py
+++ b/tools/configure.py
@@ -1,22 +1,31 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
import os
from pathlib import Path
-import platform
import argparse
import sys
import ninja_syntax
+from get_platform import get_platform
+
+
+DEFAULT_WIBO_PATH = "./wibo"
parser = argparse.ArgumentParser(description="Generates build.ninja")
-parser.add_argument('-w', type=str, default="./wibo", dest="wine", required=False, help="Path to Wine/Wibo (linux only)")
+parser.add_argument('-w', type=str, default=DEFAULT_WIBO_PATH, dest="wine", required=False, help="Path to Wine/Wibo (linux only)")
+parser.add_argument("--compiler", type=Path, required=False, help="Path to pre-installed compiler root directory")
+parser.add_argument("--no-extract", action="store_true", help="Skip extract step")
+parser.add_argument("--dsd", type=Path, required=False, help="Path to pre-installed dsd CLI")
parser.add_argument('version', help='Game version')
args = parser.parse_args()
# Config
GAME = "ph"
+DSD_VERSION = 'v0.6.0'
+WIBO_VERSION = '0.6.16'
+OBJDIFF_VERSION = 'v2.7.1'
MWCC_VERSION = "2.0/sp1p5"
DECOMP_ME_COMPILER = "mwcc_30_131"
CC_FLAGS = " ".join([
@@ -65,7 +74,8 @@ src_path = root_path / "src"
libs_path = root_path / "libs"
extract_path = root_path / "extract"
tools_path = root_path / "tools"
-mwcc_path = tools_path / "mwccarm" / MWCC_VERSION
+mwcc_root = args.compiler or tools_path / "mwccarm"
+mwcc_path = mwcc_root / MWCC_VERSION
# Includes
@@ -80,38 +90,96 @@ CC_INCLUDES = " ".join(f"-i {include}" for include in includes)
# Platform info
-EXE = ""
-WINE = ""
-system = platform.system()
-if system == "Windows":
- system = "windows"
- EXE = ".exe"
-elif system == "Linux":
- system = "linux"
- WINE = args.wine
-else:
- print(f"Unknown system '{system}'")
+platform = get_platform()
+if platform is None:
exit(1)
-match platform.machine().lower():
- case "amd64" | "x86_64": machine = "x86_64"
- case machine:
- print(f"Unknown machine: {machine}")
- exit(1)
+EXE = platform.exe
+WINE = args.wine if platform.system != "windows" else ""
+DSD = str(args.dsd or os.path.join('.', str(root_path / f"dsd{EXE}")))
+OBJDIFF = os.path.join('.', str(root_path / f"objdiff-cli{EXE}"))
+CC = os.path.join('.', str(mwcc_path / "mwccarm.exe"))
+LD = os.path.join('.', str(mwcc_path / "mwldarm.exe"))
+PYTHON = sys.executable
-PYTHON = sys.executable
+class Project:
+ def __init__(self, game_version: str):
+ self.game_version = game_version
+ '''Version of the game'''
+ self.game_config = config_path / game_version
+ '''Root directory for dsd configs'''
+
+ if not self.game_config.is_dir():
+ print(f"Version '{game_version}' not recognized")
+ exit(1)
+
+ self.game_build = build_path / game_version
+ '''Path to build directory'''
+ self.game_extract = extract_path / game_version
+ '''Path to extract directory'''
+
+ self.delinks_files = get_config_files(self.game_config, "delinks.txt")
+ '''Paths to every delinks.txt file'''
+ self.relocs_files = get_config_files(self.game_config, "relocs.txt")
+ '''Paths to every relocs.txt file'''
+ self.symbols_files = get_config_files(self.game_config, "symbols.txt")
+ '''Paths to every symbols.txt file'''
+
+ def dsd_configs(self) -> list[str]:
+ return self.delinks_files + self.relocs_files + self.symbols_files
+
+ def arm9_config_yaml(self) -> Path:
+ return self.game_config / "arm9" / "config.yaml"
+
+ def baserom(self) -> Path:
+ return extract_path / f'baserom_{GAME}_{self.game_version}.nds'
+
+ def build_rom(self) -> str:
+ return f"{GAME}_{self.game_version}.nds"
+
+ def baserom_config(self) -> Path:
+ return self.game_extract / 'config.yaml'
+
+ def build_rom_config(self) -> Path:
+ return self.game_build / "build" / "rom_config.yaml"
+
+ def source_object_files(self) -> list[str]:
+ return [
+ str(self.game_build / source_file.with_suffix(".o"))
+ for source_file in get_c_cpp_files([src_path, libs_path])
+ ]
+
+ def arm9_lcf(self) -> Path:
+ return self.game_build / "linker_script.lcf"
+
+ def arm9_objects_txt(self) -> Path:
+ return self.game_build / "objects.txt"
+
+ def arm9_delink_yaml(self) -> Path:
+ return self.game_build / "delinks" / "delink.yaml"
+
+ def arm9_o(self) -> Path:
+ return self.game_build / "arm9.o"
+
+ def arm9_delinks(self) -> Path:
+ return self.game_build / "delinks"
+
+ def objdiff_report(self) -> Path:
+ return self.game_build / "report.json"
def main():
- game_version: str = args.version
- game_config = config_path / game_version
- if not game_config.is_dir():
- print(f"Version '{game_version}' not recognized")
- return
+ project = Project(args.version)
with build_ninja_path.open("w") as file:
n = ninja_syntax.Writer(file)
+ n.rule(
+ name="download_tool",
+ command=f'{PYTHON} tools/download_tool.py $tool $tag --path $path'
+ )
+ n.newline()
+
if arm7_bios_path.is_file():
n.variable("arm7_bios_flag", f"--arm7-bios {arm7_bios_path.relative_to(root_path)}")
else:
@@ -120,20 +188,20 @@ def main():
n.rule(
name="extract",
- command="./dsd rom extract --rom $in --output-path $output_path $arm7_bios_flag"
+ command=f"{DSD} rom extract --rom $in --output-path $output_path $arm7_bios_flag"
)
n.newline()
n.rule(
name="delink",
- command="./dsd delink --config-path $config_path"
+ command=f"{DSD} delink --config-path $config_path"
)
n.newline()
# -MMD excludes all includes instead of just system includes for some reason, so use -MD instead.
- mwcc_cmd = f'{WINE} "{mwcc_path}/mwccarm.exe" {CC_FLAGS} {CC_INCLUDES} $cc_flags -d $game_version -MD -c $in -o $basedir'
- mwcc_implicit = []
- if system != "windows":
+ mwcc_cmd = f'{WINE} "{CC}" {CC_FLAGS} {CC_INCLUDES} $cc_flags -d $game_version -MD -c $in -o $basedir'
+ mwcc_implicit = [CC]
+ if platform.system != "windows":
transform_dep = "tools/transform_dep.py"
mwcc_cmd += f" && $python {transform_dep} $basefile.d $basefile.d"
mwcc_implicit.append(transform_dep)
@@ -146,31 +214,37 @@ def main():
n.rule(
name="lcf",
- command="./dsd lcf -c $config_path --lcf-file $lcf_file --objects-file $objects_file"
+ command=f"{DSD} lcf -c $config_path --lcf-file $lcf_file --objects-file $objects_file"
)
n.newline()
n.rule(
name="mwld",
- command=f'{WINE} "{mwcc_path}/mwldarm.exe" {LD_FLAGS} @$objects_file $lcf_file -o $out'
+ command=f'{WINE} "{LD}" {LD_FLAGS} @$objects_file $lcf_file -o $out'
)
n.newline()
n.rule(
name="rom_config",
- command="./dsd rom config --elf $in --config $config_path"
+ command=f"{DSD} rom config --elf $in --config $config_path"
)
n.newline()
n.rule(
name="rom_build",
- command="./dsd rom build --config $in --rom $out $arm7_bios_flag"
+ command=f"{DSD} rom build --config $in --rom $out $arm7_bios_flag"
)
n.newline()
n.rule(
name="objdiff",
- command=f"./dsd objdiff --config-path $config_path {DSD_OBJDIFF_ARGS}"
+ command=f"{DSD} objdiff --config-path $config_path {DSD_OBJDIFF_ARGS}"
+ )
+ n.newline()
+
+ n.rule(
+ name="objdiff_report",
+ command=f"{OBJDIFF} report generate -o $out"
)
n.newline()
@@ -181,69 +255,136 @@ def main():
n.newline()
n.rule(
+ name="check_modules",
+ command=f"{DSD} check modules --config-path $config_path --fail"
+ )
+ n.newline()
+
+ n.rule(
+ name="check_symbols",
+ command=f"{DSD} check symbols --config-path $config_path --elf-path $elf_path --fail"
+ )
+ n.newline()
+
+ n.rule(
name="sha1",
command=f"{PYTHON} tools/sha1.py $in -c $sha1_file"
)
n.newline()
- game_build = build_path / game_version
- game_extract = extract_path / game_version
+ add_download_tool_builds(n)
+ add_extract_build(n, project)
+ add_delink_and_lcf_builds(n, project)
+ add_mwcc_builds(n, project, mwcc_implicit)
+ add_mwld_and_rom_builds(n, project)
+ add_check_builds(n, project)
+ add_objdiff_builds(n, project)
- add_extract_build(n, game_extract, game_version)
- add_delink_and_lcf_builds(n, game_config, game_build, game_extract)
- add_mwcc_builds(n, game_version, game_build, mwcc_implicit)
- add_mwld_and_rom_builds(n, game_build, game_config, game_version)
+def add_download_tool_builds(n: ninja_syntax.Writer):
+ if args.dsd is None:
+ n.build(
+ rule="download_tool",
+ outputs=DSD,
+ variables={
+ "tool": "dsd",
+ "tag": DSD_VERSION,
+ "path": DSD,
+ },
+ )
+ n.newline()
-def add_extract_build(n: ninja_syntax.Writer, game_extract: Path, game_version: str):
- rom_path = extract_path / f'baserom_{GAME}_{game_version}.nds'
- rom_config = game_extract / 'config.yaml'
n.build(
- inputs=str(rom_path),
- rule="extract",
- outputs=str(rom_config),
+ rule="download_tool",
+ outputs=OBJDIFF,
variables={
- "output_path": str(game_extract)
+ "tool": "objdiff",
+ "tag": OBJDIFF_VERSION,
+ "path": OBJDIFF,
}
)
n.newline()
+ if args.compiler is None:
+ n.build(
+ rule="download_tool",
+ outputs=[CC, LD],
+ variables={
+ "tool": "mwccarm",
+ "tag": "latest",
+ "path": tools_path,
+ },
+ )
+ n.newline()
-def add_mwld_and_rom_builds(n: ninja_syntax.Writer, game_build: Path, game_config: Path, game_version: str):
- source_object_files = [
- str(game_build / source_file.with_suffix(".o"))
- for source_file in get_c_cpp_files([src_path, libs_path])
- ]
- lcf_file = str(game_build / "linker_script.lcf")
- objects_file = str(game_build / "objects.txt")
- delink_file = str(game_build / "delinks" / "delink.yaml")
- elf_file = str(game_build / "arm9.o")
+ if platform.system != "windows" and WINE == DEFAULT_WIBO_PATH:
+ n.build(
+ rule="download_tool",
+ outputs=WINE,
+ variables={
+ "tool": "wibo",
+ "tag": WIBO_VERSION,
+ "path": WINE,
+ },
+ )
+ n.newline()
+
+
+def add_extract_build(n: ninja_syntax.Writer, project: Project):
+ if not args.no_extract:
+ n.build(
+ inputs=str(project.baserom()),
+ implicit=DSD,
+ rule="extract",
+ outputs=str(project.baserom_config()),
+ variables={
+ "output_path": str(project.game_extract)
+ }
+ )
+ n.newline()
+
+
+def add_mwld_and_rom_builds(n: ninja_syntax.Writer, project: Project):
+ lcf_file = str(project.arm9_lcf())
+ objects_file = str(project.arm9_objects_txt())
+ delink_file = str(project.arm9_delink_yaml())
+ elf_file = str(project.arm9_o())
n.build(
- inputs=source_object_files + [lcf_file, objects_file, delink_file],
+ inputs=project.source_object_files() + [lcf_file, objects_file, delink_file],
+ implicit=LD,
rule="mwld",
outputs=elf_file,
variables={
- "target_dir": game_build,
+ "target_dir": project.game_build,
"objects_file": objects_file,
"lcf_file": lcf_file,
}
)
n.newline()
- rom_config_file = str(game_build / "build" / "rom_config.yaml")
n.build(
inputs=elf_file,
+ rule="phony",
+ outputs="arm9",
+ )
+ n.newline()
+
+ rom_config_file = str(project.build_rom_config())
+ n.build(
+ inputs=elf_file,
+ implicit=DSD,
rule="rom_config",
outputs=rom_config_file,
variables={
- "config_path": game_config / "arm9" / "config.yaml",
+ "config_path": project.arm9_config_yaml(),
}
)
n.newline()
- rom_file = f"{GAME}_{game_version}.nds"
+ rom_file = project.build_rom()
n.build(
- inputs=[rom_config_file],
+ inputs=rom_config_file,
+ implicit=DSD,
rule="rom_build",
outputs=rom_file,
)
@@ -267,28 +408,28 @@ def add_mwld_and_rom_builds(n: ninja_syntax.Writer, game_build: Path, game_confi
n.newline()
-def add_mwcc_builds(n: ninja_syntax.Writer, game_version: str, game_build: Path, mwcc_implicit: list[Path]):
+def add_mwcc_builds(n: ninja_syntax.Writer, project: Project, mwcc_implicit: list[Path]):
for source_file in get_c_cpp_files([src_path, libs_path]):
- src_obj_path = game_build / source_file
+ src_obj_path = project.game_build / source_file
cc_flags = []
if is_cpp(source_file): cc_flags.append("-lang=c++")
elif is_c(source_file): cc_flags.append("-lang=c")
n.build(
inputs=str(source_file),
+ implicit=mwcc_implicit,
rule="mwcc",
outputs=str(src_obj_path.with_suffix(".o")),
variables={
- "game_version": game_version,
+ "game_version": project.game_version,
"cc_flags": " ".join(cc_flags),
"basedir": os.path.dirname(src_obj_path),
"basefile": str(src_obj_path.with_suffix("")),
},
- implicit=mwcc_implicit,
)
n.newline()
extension = source_file.suffix
- ctx_file = str(game_build / source_file.with_suffix(f".ctx{extension}"))
+ ctx_file = str(project.game_build / source_file.with_suffix(f".ctx{extension}"))
n.build(
inputs=str(source_file),
rule="m2ctx",
@@ -314,19 +455,17 @@ def is_c(name: str):
return Path(name).suffix in [".c"]
-def add_delink_and_lcf_builds(n: ninja_syntax.Writer, game_config: Path, game_build: Path, game_extract: Path):
+def add_delink_and_lcf_builds(n: ninja_syntax.Writer, project: Project):
n.comment("Delink ELF binaries when any delinks.txt file is modified")
- delinks_files = get_config_files(game_config, "delinks.txt")
- relocs_files = get_config_files(game_config, "relocs.txt")
- symbols_files = get_config_files(game_config, "symbols.txt")
- rom_config = str(game_extract / 'config.yaml')
- delinks_path = game_build / "delinks"
+ rom_config = str(project.baserom_config())
+ delinks_path = project.arm9_delinks()
n.build(
- inputs=delinks_files + relocs_files + symbols_files + [rom_config],
+ inputs=project.dsd_configs() + [rom_config],
+ implicit=DSD,
rule="delink",
outputs=str(delinks_path / "delink.yaml"),
variables={
- "config_path": game_config / "arm9" / "config.yaml",
+ "config_path": project.arm9_config_yaml(),
}
)
n.newline()
@@ -338,26 +477,60 @@ def add_delink_and_lcf_builds(n: ninja_syntax.Writer, game_config: Path, game_bu
)
n.newline()
- lcf_file = game_build / "linker_script.lcf"
- objects_file = game_build / "objects.txt"
+ lcf_file = project.arm9_lcf()
+ objects_file = project.arm9_objects_txt()
n.build(
- inputs=delinks_files + [str(rom_config)],
+ inputs=project.delinks_files + [str(rom_config)],
+ implicit=DSD,
rule="lcf",
outputs=[str(lcf_file), str(objects_file)],
variables={
- "config_path": game_config / "arm9" / "config.yaml",
+ "config_path": project.arm9_config_yaml(),
"lcf_file": lcf_file,
"objects_file": objects_file,
}
)
n.newline()
+
+def add_check_builds(n: ninja_syntax.Writer, project: Project):
+ n.build(
+ inputs=str(project.arm9_o()),
+ rule="check_modules",
+ outputs="check_modules",
+ variables={
+ "config_path": project.arm9_config_yaml(),
+ },
+ )
+ n.newline()
+
+ n.build(
+ inputs=str(project.arm9_o()),
+ rule="check_symbols",
+ outputs="check_symbols",
+ variables={
+ "config_path": project.arm9_config_yaml(),
+ "elf_path": project.arm9_o(),
+ },
+ )
+ n.newline()
+
+ n.build(
+ inputs=["check_modules", "check_symbols"],
+ rule="phony",
+ outputs="check",
+ )
+ n.newline()
+
+
+def add_objdiff_builds(n: ninja_syntax.Writer, project: Project):
n.build(
- inputs=delinks_files + relocs_files + symbols_files,
+ inputs=project.dsd_configs(),
+ implicit=DSD,
rule="objdiff",
outputs="objdiff.json",
variables={
- "config_path": game_config / "arm9" / "config.yaml",
+ "config_path": project.arm9_config_yaml(),
}
)
n.newline()
@@ -369,8 +542,23 @@ def add_delink_and_lcf_builds(n: ninja_syntax.Writer, game_config: Path, game_bu
)
n.newline()
+ n.build(
+ inputs=["objdiff.json"],
+ implicit=[OBJDIFF] + project.source_object_files(),
+ rule="objdiff_report",
+ outputs=str(project.objdiff_report()),
+ )
+ n.newline()
+
+ n.build(
+ inputs=str(project.objdiff_report()),
+ rule="phony",
+ outputs="report",
+ )
+ n.newline()
+
-def get_config_files(game_config: Path, name: str):
+def get_config_files(game_config: Path, name: str) -> list[str]:
return [
f"{root}/{file}"
for root, _, files in os.walk(game_config)
diff --git a/tools/download_tool.py b/tools/download_tool.py
new file mode 100644
index 00000000..755acd8f
--- /dev/null
+++ b/tools/download_tool.py
@@ -0,0 +1,53 @@
+import argparse
+from pathlib import Path
+from get_platform import get_platform
+import zipfile
+import io
+import requests
+import stat
+
+root_path = Path(__file__).parent.parent
+
+
+platform = get_platform()
+if platform is None:
+ exit(1)
+
+parser = argparse.ArgumentParser()
+parser.add_argument("tool")
+parser.add_argument("tag")
+parser.add_argument("--path", type=Path, required=True)
+args = parser.parse_args()
+
+
+def dsd_url(tag: str) -> str:
+ return f'https://github.com/AetiasHax/ds-decomp/releases/download/{tag}/dsd-{platform.system}-{platform.machine}{platform.exe}'
+
+def mwccarm_url(tag: str) -> str:
+ return 'http://decomp.aetias.com/files/mwccarm.zip'
+
+def wibo_url(tag: str) -> str:
+ return f'https://github.com/decompals/wibo/releases/download/{tag}/wibo'
+
+def objdiff_url(tag: str) -> str:
+ return f'https://github.com/encounter/objdiff/releases/download/{tag}/objdiff-cli-{platform.system}-{platform.machine}{platform.exe}'
+
+TOOLS = {
+ "dsd": dsd_url,
+ "mwccarm": mwccarm_url,
+ "wibo": wibo_url,
+ "objdiff": objdiff_url,
+}
+
+
+download_url = TOOLS[args.tool](args.tag)
+print(f'\nDownloading {args.tool} {args.tag}...')
+response = requests.get(download_url)
+if download_url.endswith('.zip'):
+ zip_file = zipfile.ZipFile(io.BytesIO(response.content))
+ zip_file.extractall(args.path)
+else:
+ out_path: Path = args.path
+ with out_path.open('wb') as f:
+ f.write(response.content)
+ out_path.chmod(out_path.stat().st_mode | stat.S_IEXEC)
diff --git a/tools/get_platform.py b/tools/get_platform.py
new file mode 100644
index 00000000..a4fe40d8
--- /dev/null
+++ b/tools/get_platform.py
@@ -0,0 +1,31 @@
+import platform
+
+
+class Platform:
+ def __init__(self, *, system: str, machine: str, exe: str):
+ self.system = system
+ '''Name of operating system: "windows" or "linux"'''
+ self.machine = machine
+ '''Name of machine architecture: "x86_64"'''
+ self.exe = exe
+ '''Executable file extension: ".exe" for Windows, "" otherwise'''
+
+
+def get_platform() -> Platform | None:
+ exe = ""
+ system = platform.system()
+ if system == "Windows":
+ system = "windows"
+ exe = ".exe"
+ elif system == "Linux":
+ system = "linux"
+ else:
+ print(f"Unknown system '{system}'")
+ return None
+ match platform.machine().lower():
+ case "amd64" | "x86_64": machine = "x86_64"
+ case machine:
+ print(f"Unknown machine: {machine}")
+ return None
+
+ return Platform(system=system, machine=machine, exe=exe)
diff --git a/tools/m2ctx.py b/tools/m2ctx.py
index f2275e33..7c20c34a 100755
--- a/tools/m2ctx.py
+++ b/tools/m2ctx.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
import sys
import pyperclip
diff --git a/tools/ninja_syntax.py b/tools/ninja_syntax.py
index 2aa8456e..e0716e8a 100644
--- a/tools/ninja_syntax.py
+++ b/tools/ninja_syntax.py
@@ -1,5 +1,3 @@
-#!/usr/bin/python
-
# Copyright 2011 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/tools/setup.py b/tools/setup.py
deleted file mode 100644
index f81ca25d..00000000
--- a/tools/setup.py
+++ /dev/null
@@ -1,54 +0,0 @@
-import requests
-import zipfile
-import io
-from pathlib import Path
-import platform
-import stat
-
-DSD_VERSION = 'v0.4.0'
-WIBO_VERSION = '0.6.16'
-
-
-tools_path = Path(__file__).parent
-root_path = tools_path.parent
-
-
-EXE = ""
-system = platform.system()
-if system == "Windows":
- system = "windows"
- EXE = ".exe"
-elif system == "Linux":
- system = "linux"
-else:
- print(f"Unknown system '{system}'")
- exit(1)
-match platform.machine().lower():
- case 'amd64' | 'x86_64': machine = 'x86_64'
- case machine:
- print(f'Unknown machine: {machine}')
- exit(1)
-
-
-print('\nInstalling dsd...')
-response = requests.get(f'https://github.com/AetiasHax/ds-decomp/releases/download/{DSD_VERSION}/dsd-{system}-{machine}{EXE}')
-dsd_path = root_path / f'dsd{EXE}'
-with open(dsd_path, 'wb') as f:
- f.write(response.content)
-dsd_path.chmod(dsd_path.stat().st_mode | stat.S_IEXEC)
-
-
-print('\nInstalling toolchain...')
-response = requests.get('http://decomp.aetias.com/files/mwccarm.zip')
-zip_file = zipfile.ZipFile(io.BytesIO(response.content))
-zip_file.extractall(tools_path)
-
-
-if system == "linux":
- print('\nInstalling wibo...')
- response = requests.get(f'https://github.com/decompals/wibo/releases/download/{WIBO_VERSION}/wibo')
- wibo_path = root_path / 'wibo'
- with open(wibo_path, 'wb') as f:
- f.write(response.content)
- wibo_path.chmod(wibo_path.stat().st_mode | stat.S_IEXEC)
-
diff --git a/tools/sha1.py b/tools/sha1.py
index 8cd6edd8..fd1cbda8 100644..100755
--- a/tools/sha1.py
+++ b/tools/sha1.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
from pathlib import Path
import argparse