diff --git a/Makefile b/Makefile
index 2665405ea..32891a95c 100644
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,7 @@ COMPILER := gcc
# hackeroot-mq HackerOoT, based on gc-eu-mq-dbg (default)
#
# The following versions are work-in-progress and not yet matching:
-# (none currently)
+# gc-us GameCube US
#
# Note: choosing hackeroot-mq will enable HackerOoT features,
# if another version is chosen, this repo will be like
@@ -84,7 +84,9 @@ else
endif
# Version-specific settings
-ifeq ($(VERSION),gc-eu)
+ifeq ($(VERSION),gc-us)
+ DEBUG := 0
+else ifeq ($(VERSION),gc-eu)
DEBUG := 0
HACKEROOT := 0
else ifeq ($(VERSION),gc-eu-mq)
diff --git a/assets/xml/objects/gameplay_keep.xml b/assets/xml/objects/gameplay_keep.xml
index f5c0c9e68..fa68e7285 100644
--- a/assets/xml/objects/gameplay_keep.xml
+++ b/assets/xml/objects/gameplay_keep.xml
@@ -644,325 +644,359 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/gameplay_keep_pal.xml b/assets/xml/objects/gameplay_keep_pal.xml
new file mode 100644
index 000000000..f5c0c9e68
--- /dev/null
+++ b/assets/xml/objects/gameplay_keep_pal.xml
@@ -0,0 +1,968 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_bv.xml b/assets/xml/objects/object_bv.xml
index 204273fc0..e2c2ce920 100644
--- a/assets/xml/objects/object_bv.xml
+++ b/assets/xml/objects/object_bv.xml
@@ -1,79 +1,79 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_bv_pal.xml b/assets/xml/objects/object_bv_pal.xml
new file mode 100644
index 000000000..204273fc0
--- /dev/null
+++ b/assets/xml/objects/object_bv_pal.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_demo_6k.xml b/assets/xml/objects/object_demo_6k.xml
index f64a0898b..73058d5e4 100644
--- a/assets/xml/objects/object_demo_6k.xml
+++ b/assets/xml/objects/object_demo_6k.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_demo_kekkai.xml b/assets/xml/objects/object_demo_kekkai.xml
index 0c26063c9..1b9c9b402 100644
--- a/assets/xml/objects/object_demo_kekkai.xml
+++ b/assets/xml/objects/object_demo_kekkai.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_du.xml b/assets/xml/objects/object_du.xml
index 44bbd1aa0..0babd962b 100644
--- a/assets/xml/objects/object_du.xml
+++ b/assets/xml/objects/object_du.xml
@@ -1,9 +1,9 @@
-
+
-
+
@@ -16,66 +16,66 @@
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_du_pal.xml b/assets/xml/objects/object_du_pal.xml
new file mode 100644
index 000000000..44bbd1aa0
--- /dev/null
+++ b/assets/xml/objects/object_du_pal.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_efc_erupc.xml b/assets/xml/objects/object_efc_erupc.xml
index 866ca1117..800d9535f 100644
--- a/assets/xml/objects/object_efc_erupc.xml
+++ b/assets/xml/objects/object_efc_erupc.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_fd.xml b/assets/xml/objects/object_fd.xml
index 776a2ee49..a28919d8e 100644
--- a/assets/xml/objects/object_fd.xml
+++ b/assets/xml/objects/object_fd.xml
@@ -1,17 +1,17 @@
-
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -59,7 +59,7 @@
-
+
diff --git a/assets/xml/objects/object_fd_pal.xml b/assets/xml/objects/object_fd_pal.xml
new file mode 100644
index 000000000..776a2ee49
--- /dev/null
+++ b/assets/xml/objects/object_fd_pal.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_fhg.xml b/assets/xml/objects/object_fhg.xml
index d12a90cb0..5f69fcb5a 100644
--- a/assets/xml/objects/object_fhg.xml
+++ b/assets/xml/objects/object_fhg.xml
@@ -2,33 +2,33 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
diff --git a/assets/xml/objects/object_fhg_pal.xml b/assets/xml/objects/object_fhg_pal.xml
new file mode 100644
index 000000000..d12a90cb0
--- /dev/null
+++ b/assets/xml/objects/object_fhg_pal.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_fish.xml b/assets/xml/objects/object_fish.xml
index 62a86c0e9..f5ad4f6da 100644
--- a/assets/xml/objects/object_fish.xml
+++ b/assets/xml/objects/object_fish.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_fz.xml b/assets/xml/objects/object_fz.xml
index 5f3a5095b..dad6fec5c 100644
--- a/assets/xml/objects/object_fz.xml
+++ b/assets/xml/objects/object_fz.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_ganon.xml b/assets/xml/objects/object_ganon.xml
index 094c1394f..412acb66e 100644
--- a/assets/xml/objects/object_ganon.xml
+++ b/assets/xml/objects/object_ganon.xml
@@ -68,39 +68,39 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_ganon2.xml b/assets/xml/objects/object_ganon2.xml
index 93f3a05e5..cebdf819b 100644
--- a/assets/xml/objects/object_ganon2.xml
+++ b/assets/xml/objects/object_ganon2.xml
@@ -105,70 +105,70 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ganon2_pal.xml b/assets/xml/objects/object_ganon2_pal.xml
new file mode 100644
index 000000000..93f3a05e5
--- /dev/null
+++ b/assets/xml/objects/object_ganon2_pal.xml
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ganon_pal.xml b/assets/xml/objects/object_ganon_pal.xml
new file mode 100644
index 000000000..c5dd93823
--- /dev/null
+++ b/assets/xml/objects/object_ganon_pal.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_arrow.xml b/assets/xml/objects/object_gi_arrow.xml
index b2db5f16c..4b58787a9 100644
--- a/assets/xml/objects/object_gi_arrow.xml
+++ b/assets/xml/objects/object_gi_arrow.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_arrowcase.xml b/assets/xml/objects/object_gi_arrowcase.xml
index 5c635b57f..267b0a734 100644
--- a/assets/xml/objects/object_gi_arrowcase.xml
+++ b/assets/xml/objects/object_gi_arrowcase.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_bean.xml b/assets/xml/objects/object_gi_bean.xml
index 59159e118..e74247816 100644
--- a/assets/xml/objects/object_gi_bean.xml
+++ b/assets/xml/objects/object_gi_bean.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_bomb_1.xml b/assets/xml/objects/object_gi_bomb_1.xml
index 6293a8af0..bae86c11d 100644
--- a/assets/xml/objects/object_gi_bomb_1.xml
+++ b/assets/xml/objects/object_gi_bomb_1.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_bomb_2.xml b/assets/xml/objects/object_gi_bomb_2.xml
index cebc04d07..1400c4a4d 100644
--- a/assets/xml/objects/object_gi_bomb_2.xml
+++ b/assets/xml/objects/object_gi_bomb_2.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_bombpouch.xml b/assets/xml/objects/object_gi_bombpouch.xml
index e47807819..07134748c 100644
--- a/assets/xml/objects/object_gi_bombpouch.xml
+++ b/assets/xml/objects/object_gi_bombpouch.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_boomerang.xml b/assets/xml/objects/object_gi_boomerang.xml
index 5c5d7301c..3c1a0fe7f 100644
--- a/assets/xml/objects/object_gi_boomerang.xml
+++ b/assets/xml/objects/object_gi_boomerang.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_boots_2.xml b/assets/xml/objects/object_gi_boots_2.xml
index 9cca688c3..8e9cd1028 100644
--- a/assets/xml/objects/object_gi_boots_2.xml
+++ b/assets/xml/objects/object_gi_boots_2.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_bosskey.xml b/assets/xml/objects/object_gi_bosskey.xml
index c737de1dd..e5e4bc86c 100644
--- a/assets/xml/objects/object_gi_bosskey.xml
+++ b/assets/xml/objects/object_gi_bosskey.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_bottle.xml b/assets/xml/objects/object_gi_bottle.xml
index 2221b13aa..3b0884a03 100644
--- a/assets/xml/objects/object_gi_bottle.xml
+++ b/assets/xml/objects/object_gi_bottle.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_bottle_letter.xml b/assets/xml/objects/object_gi_bottle_letter.xml
index c0fa7e814..443219caf 100644
--- a/assets/xml/objects/object_gi_bottle_letter.xml
+++ b/assets/xml/objects/object_gi_bottle_letter.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_bow.xml b/assets/xml/objects/object_gi_bow.xml
index 0c740f303..946e9c496 100644
--- a/assets/xml/objects/object_gi_bow.xml
+++ b/assets/xml/objects/object_gi_bow.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_bracelet.xml b/assets/xml/objects/object_gi_bracelet.xml
index 4fa21e345..5a0b62a60 100644
--- a/assets/xml/objects/object_gi_bracelet.xml
+++ b/assets/xml/objects/object_gi_bracelet.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_brokensword.xml b/assets/xml/objects/object_gi_brokensword.xml
index d77475f1b..408741ac5 100644
--- a/assets/xml/objects/object_gi_brokensword.xml
+++ b/assets/xml/objects/object_gi_brokensword.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_butterfly.xml b/assets/xml/objects/object_gi_butterfly.xml
index 4574be9d1..76ac70609 100644
--- a/assets/xml/objects/object_gi_butterfly.xml
+++ b/assets/xml/objects/object_gi_butterfly.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_coin.xml b/assets/xml/objects/object_gi_coin.xml
index fc2660d09..22e29f255 100644
--- a/assets/xml/objects/object_gi_coin.xml
+++ b/assets/xml/objects/object_gi_coin.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_compass.xml b/assets/xml/objects/object_gi_compass.xml
index a0e0ce696..076229b11 100644
--- a/assets/xml/objects/object_gi_compass.xml
+++ b/assets/xml/objects/object_gi_compass.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_dekupouch.xml b/assets/xml/objects/object_gi_dekupouch.xml
index 30db99967..3d6d95d98 100644
--- a/assets/xml/objects/object_gi_dekupouch.xml
+++ b/assets/xml/objects/object_gi_dekupouch.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_egg.xml b/assets/xml/objects/object_gi_egg.xml
index e9b4909f6..2b2e2847d 100644
--- a/assets/xml/objects/object_gi_egg.xml
+++ b/assets/xml/objects/object_gi_egg.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_eye_lotion.xml b/assets/xml/objects/object_gi_eye_lotion.xml
index 8f3f89ae8..5128c5f6f 100644
--- a/assets/xml/objects/object_gi_eye_lotion.xml
+++ b/assets/xml/objects/object_gi_eye_lotion.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_fire.xml b/assets/xml/objects/object_gi_fire.xml
index 64588486c..a57fba6e8 100644
--- a/assets/xml/objects/object_gi_fire.xml
+++ b/assets/xml/objects/object_gi_fire.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_fish.xml b/assets/xml/objects/object_gi_fish.xml
index c701eaf2c..edb39dc29 100644
--- a/assets/xml/objects/object_gi_fish.xml
+++ b/assets/xml/objects/object_gi_fish.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_frog.xml b/assets/xml/objects/object_gi_frog.xml
index c9a9f3cf3..f180fd267 100644
--- a/assets/xml/objects/object_gi_frog.xml
+++ b/assets/xml/objects/object_gi_frog.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_gerudo.xml b/assets/xml/objects/object_gi_gerudo.xml
index ae80fe88b..3be8d3462 100644
--- a/assets/xml/objects/object_gi_gerudo.xml
+++ b/assets/xml/objects/object_gi_gerudo.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_gerudomask.xml b/assets/xml/objects/object_gi_gerudomask.xml
index 57da5cb61..b53bf24af 100644
--- a/assets/xml/objects/object_gi_gerudomask.xml
+++ b/assets/xml/objects/object_gi_gerudomask.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_ghost.xml b/assets/xml/objects/object_gi_ghost.xml
index 3b2830c5e..186f4c74b 100644
--- a/assets/xml/objects/object_gi_ghost.xml
+++ b/assets/xml/objects/object_gi_ghost.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_glasses.xml b/assets/xml/objects/object_gi_glasses.xml
index ec7744a5f..63d32ab5a 100644
--- a/assets/xml/objects/object_gi_glasses.xml
+++ b/assets/xml/objects/object_gi_glasses.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_gloves.xml b/assets/xml/objects/object_gi_gloves.xml
index 5dd988712..1b4282dca 100644
--- a/assets/xml/objects/object_gi_gloves.xml
+++ b/assets/xml/objects/object_gi_gloves.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_goddess.xml b/assets/xml/objects/object_gi_goddess.xml
index 072a32ecd..50cbdd891 100644
--- a/assets/xml/objects/object_gi_goddess.xml
+++ b/assets/xml/objects/object_gi_goddess.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_grass.xml b/assets/xml/objects/object_gi_grass.xml
index 5e7b6c92d..ae7834201 100644
--- a/assets/xml/objects/object_gi_grass.xml
+++ b/assets/xml/objects/object_gi_grass.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_hammer.xml b/assets/xml/objects/object_gi_hammer.xml
index 95448b01e..feb5c8659 100644
--- a/assets/xml/objects/object_gi_hammer.xml
+++ b/assets/xml/objects/object_gi_hammer.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_heart.xml b/assets/xml/objects/object_gi_heart.xml
index 2db6b8396..48e78b1b5 100644
--- a/assets/xml/objects/object_gi_heart.xml
+++ b/assets/xml/objects/object_gi_heart.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_hearts.xml b/assets/xml/objects/object_gi_hearts.xml
index 29463b10b..d2e763e63 100644
--- a/assets/xml/objects/object_gi_hearts.xml
+++ b/assets/xml/objects/object_gi_hearts.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_hookshot.xml b/assets/xml/objects/object_gi_hookshot.xml
index f568f10a2..a6b3b0fda 100644
--- a/assets/xml/objects/object_gi_hookshot.xml
+++ b/assets/xml/objects/object_gi_hookshot.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_hoverboots.xml b/assets/xml/objects/object_gi_hoverboots.xml
index 138e6848e..c4a67877b 100644
--- a/assets/xml/objects/object_gi_hoverboots.xml
+++ b/assets/xml/objects/object_gi_hoverboots.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_insect.xml b/assets/xml/objects/object_gi_insect.xml
index 5923d4351..7af5b5b3b 100644
--- a/assets/xml/objects/object_gi_insect.xml
+++ b/assets/xml/objects/object_gi_insect.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_jewel.xml b/assets/xml/objects/object_gi_jewel.xml
index e0c3a0a3a..e83c65116 100644
--- a/assets/xml/objects/object_gi_jewel.xml
+++ b/assets/xml/objects/object_gi_jewel.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_key.xml b/assets/xml/objects/object_gi_key.xml
index 18c6c4158..a37d45a71 100644
--- a/assets/xml/objects/object_gi_key.xml
+++ b/assets/xml/objects/object_gi_key.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_ki_tan_mask.xml b/assets/xml/objects/object_gi_ki_tan_mask.xml
index 36b24288b..f66535af3 100644
--- a/assets/xml/objects/object_gi_ki_tan_mask.xml
+++ b/assets/xml/objects/object_gi_ki_tan_mask.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_liquid.xml b/assets/xml/objects/object_gi_liquid.xml
index 8f859495f..5eeeca0fd 100644
--- a/assets/xml/objects/object_gi_liquid.xml
+++ b/assets/xml/objects/object_gi_liquid.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_longsword.xml b/assets/xml/objects/object_gi_longsword.xml
index bbf33aae7..7161e42e3 100644
--- a/assets/xml/objects/object_gi_longsword.xml
+++ b/assets/xml/objects/object_gi_longsword.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_m_arrow.xml b/assets/xml/objects/object_gi_m_arrow.xml
index 2155c96e3..0fd659ae9 100644
--- a/assets/xml/objects/object_gi_m_arrow.xml
+++ b/assets/xml/objects/object_gi_m_arrow.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_magicpot.xml b/assets/xml/objects/object_gi_magicpot.xml
index dd54e80c4..7623e6353 100644
--- a/assets/xml/objects/object_gi_magicpot.xml
+++ b/assets/xml/objects/object_gi_magicpot.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_map.xml b/assets/xml/objects/object_gi_map.xml
index 6f1e3f568..8887dd22c 100644
--- a/assets/xml/objects/object_gi_map.xml
+++ b/assets/xml/objects/object_gi_map.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_medal.xml b/assets/xml/objects/object_gi_medal.xml
index dbb508ed9..28e5b1e68 100644
--- a/assets/xml/objects/object_gi_medal.xml
+++ b/assets/xml/objects/object_gi_medal.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_melody.xml b/assets/xml/objects/object_gi_melody.xml
index 9908dc203..b01fca953 100644
--- a/assets/xml/objects/object_gi_melody.xml
+++ b/assets/xml/objects/object_gi_melody.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_milk.xml b/assets/xml/objects/object_gi_milk.xml
index ea6908bcb..00b9530d9 100644
--- a/assets/xml/objects/object_gi_milk.xml
+++ b/assets/xml/objects/object_gi_milk.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_mushroom.xml b/assets/xml/objects/object_gi_mushroom.xml
index 759e12dfa..5b19bca74 100644
--- a/assets/xml/objects/object_gi_mushroom.xml
+++ b/assets/xml/objects/object_gi_mushroom.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_niwatori.xml b/assets/xml/objects/object_gi_niwatori.xml
index 2a18453e4..713cc1ce5 100644
--- a/assets/xml/objects/object_gi_niwatori.xml
+++ b/assets/xml/objects/object_gi_niwatori.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_nuts.xml b/assets/xml/objects/object_gi_nuts.xml
index 1ff8cf9a9..5508fe856 100644
--- a/assets/xml/objects/object_gi_nuts.xml
+++ b/assets/xml/objects/object_gi_nuts.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_ocarina.xml b/assets/xml/objects/object_gi_ocarina.xml
index 40a8827f6..7693cc122 100644
--- a/assets/xml/objects/object_gi_ocarina.xml
+++ b/assets/xml/objects/object_gi_ocarina.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_ocarina_0.xml b/assets/xml/objects/object_gi_ocarina_0.xml
index 89f8e8964..336d33894 100644
--- a/assets/xml/objects/object_gi_ocarina_0.xml
+++ b/assets/xml/objects/object_gi_ocarina_0.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_pachinko.xml b/assets/xml/objects/object_gi_pachinko.xml
index 9a17048a8..5f808baf9 100644
--- a/assets/xml/objects/object_gi_pachinko.xml
+++ b/assets/xml/objects/object_gi_pachinko.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_powder.xml b/assets/xml/objects/object_gi_powder.xml
index 835b4152b..fb7dc0155 100644
--- a/assets/xml/objects/object_gi_powder.xml
+++ b/assets/xml/objects/object_gi_powder.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_prescription.xml b/assets/xml/objects/object_gi_prescription.xml
index b7119e329..081de301c 100644
--- a/assets/xml/objects/object_gi_prescription.xml
+++ b/assets/xml/objects/object_gi_prescription.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_rabit_mask.xml b/assets/xml/objects/object_gi_rabit_mask.xml
index 215c8869d..75f855550 100644
--- a/assets/xml/objects/object_gi_rabit_mask.xml
+++ b/assets/xml/objects/object_gi_rabit_mask.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_redead_mask.xml b/assets/xml/objects/object_gi_redead_mask.xml
index 1ee2dc9dc..7de08487f 100644
--- a/assets/xml/objects/object_gi_redead_mask.xml
+++ b/assets/xml/objects/object_gi_redead_mask.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_rupy.xml b/assets/xml/objects/object_gi_rupy.xml
index dd14ed880..0a1af96d0 100644
--- a/assets/xml/objects/object_gi_rupy.xml
+++ b/assets/xml/objects/object_gi_rupy.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_saw.xml b/assets/xml/objects/object_gi_saw.xml
index 3cf658247..dcc038b7c 100644
--- a/assets/xml/objects/object_gi_saw.xml
+++ b/assets/xml/objects/object_gi_saw.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_scale.xml b/assets/xml/objects/object_gi_scale.xml
index 9c798dc36..1cf5de5b9 100644
--- a/assets/xml/objects/object_gi_scale.xml
+++ b/assets/xml/objects/object_gi_scale.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_seed.xml b/assets/xml/objects/object_gi_seed.xml
index fa02c2adc..82c15c82d 100644
--- a/assets/xml/objects/object_gi_seed.xml
+++ b/assets/xml/objects/object_gi_seed.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_shield_1.xml b/assets/xml/objects/object_gi_shield_1.xml
index 1957b4bb8..2e9369569 100644
--- a/assets/xml/objects/object_gi_shield_1.xml
+++ b/assets/xml/objects/object_gi_shield_1.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_shield_2.xml b/assets/xml/objects/object_gi_shield_2.xml
index 69a09a270..176ae025f 100644
--- a/assets/xml/objects/object_gi_shield_2.xml
+++ b/assets/xml/objects/object_gi_shield_2.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_shield_3.xml b/assets/xml/objects/object_gi_shield_3.xml
index 8fbb6e4fa..250bf7fea 100644
--- a/assets/xml/objects/object_gi_shield_3.xml
+++ b/assets/xml/objects/object_gi_shield_3.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_skj_mask.xml b/assets/xml/objects/object_gi_skj_mask.xml
index d310c2cc8..e6c90f76f 100644
--- a/assets/xml/objects/object_gi_skj_mask.xml
+++ b/assets/xml/objects/object_gi_skj_mask.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_soul.xml b/assets/xml/objects/object_gi_soul.xml
index 6191e465e..76ffc5685 100644
--- a/assets/xml/objects/object_gi_soul.xml
+++ b/assets/xml/objects/object_gi_soul.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_stick.xml b/assets/xml/objects/object_gi_stick.xml
index 590ad2721..fed89f465 100644
--- a/assets/xml/objects/object_gi_stick.xml
+++ b/assets/xml/objects/object_gi_stick.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_sutaru.xml b/assets/xml/objects/object_gi_sutaru.xml
index cf4cb816c..a2606afbe 100644
--- a/assets/xml/objects/object_gi_sutaru.xml
+++ b/assets/xml/objects/object_gi_sutaru.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_sword_1.xml b/assets/xml/objects/object_gi_sword_1.xml
index a8cda5689..e1119abca 100644
--- a/assets/xml/objects/object_gi_sword_1.xml
+++ b/assets/xml/objects/object_gi_sword_1.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_ticketstone.xml b/assets/xml/objects/object_gi_ticketstone.xml
index cef11b25a..0fa37fe11 100644
--- a/assets/xml/objects/object_gi_ticketstone.xml
+++ b/assets/xml/objects/object_gi_ticketstone.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_gi_truth_mask.xml b/assets/xml/objects/object_gi_truth_mask.xml
index 522d9712a..f28c7cbca 100644
--- a/assets/xml/objects/object_gi_truth_mask.xml
+++ b/assets/xml/objects/object_gi_truth_mask.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_god_lgt.xml b/assets/xml/objects/object_god_lgt.xml
index 6feb5f0bb..60df9e469 100644
--- a/assets/xml/objects/object_god_lgt.xml
+++ b/assets/xml/objects/object_god_lgt.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_goma.xml b/assets/xml/objects/object_goma.xml
index 543d9ce2a..bfe6df0fc 100644
--- a/assets/xml/objects/object_goma.xml
+++ b/assets/xml/objects/object_goma.xml
@@ -1,94 +1,94 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -145,7 +145,7 @@
-
+
@@ -159,11 +159,11 @@
-
+
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_goma_pal.xml b/assets/xml/objects/object_goma_pal.xml
new file mode 100644
index 000000000..543d9ce2a
--- /dev/null
+++ b/assets/xml/objects/object_goma_pal.xml
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_kanban.xml b/assets/xml/objects/object_kanban.xml
index c2f47a155..9ffc7a2ce 100644
--- a/assets/xml/objects/object_kanban.xml
+++ b/assets/xml/objects/object_kanban.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_kingdodongo.xml b/assets/xml/objects/object_kingdodongo.xml
index 1aa1735cb..32c28766b 100644
--- a/assets/xml/objects/object_kingdodongo.xml
+++ b/assets/xml/objects/object_kingdodongo.xml
@@ -48,83 +48,83 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_kingdodongo_pal.xml b/assets/xml/objects/object_kingdodongo_pal.xml
new file mode 100644
index 000000000..1aa1735cb
--- /dev/null
+++ b/assets/xml/objects/object_kingdodongo_pal.xml
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_kusa.xml b/assets/xml/objects/object_kusa.xml
index 5385cb732..67291a554 100644
--- a/assets/xml/objects/object_kusa.xml
+++ b/assets/xml/objects/object_kusa.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_link_boy.xml b/assets/xml/objects/object_link_boy.xml
index 7e7d50c08..c5e11f54c 100644
--- a/assets/xml/objects/object_link_boy.xml
+++ b/assets/xml/objects/object_link_boy.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_link_child.xml b/assets/xml/objects/object_link_child.xml
index 046be98ff..640228441 100644
--- a/assets/xml/objects/object_link_child.xml
+++ b/assets/xml/objects/object_link_child.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_mag.xml b/assets/xml/objects/object_mag.xml
index 21f48d734..66874b0c0 100644
--- a/assets/xml/objects/object_mag.xml
+++ b/assets/xml/objects/object_mag.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/objects/object_mag_mq.xml b/assets/xml/objects/object_mag_mq.xml
index d528754db..541dc6c38 100644
--- a/assets/xml/objects/object_mag_mq.xml
+++ b/assets/xml/objects/object_mag_mq.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/objects/object_medal.xml b/assets/xml/objects/object_medal.xml
index 2e6a1548a..533872a55 100644
--- a/assets/xml/objects/object_medal.xml
+++ b/assets/xml/objects/object_medal.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_mo.xml b/assets/xml/objects/object_mo.xml
index b191e8395..68035c384 100644
--- a/assets/xml/objects/object_mo.xml
+++ b/assets/xml/objects/object_mo.xml
@@ -1,56 +1,56 @@
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -59,7 +59,7 @@
-
+
@@ -68,13 +68,13 @@
-
+
-
+
-
+
diff --git a/assets/xml/objects/object_mo_pal.xml b/assets/xml/objects/object_mo_pal.xml
new file mode 100644
index 000000000..b191e8395
--- /dev/null
+++ b/assets/xml/objects/object_mo_pal.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_nwc.xml b/assets/xml/objects/object_nwc.xml
index 2b77e2f81..96ffa3238 100644
--- a/assets/xml/objects/object_nwc.xml
+++ b/assets/xml/objects/object_nwc.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_ny.xml b/assets/xml/objects/object_ny.xml
index 4501e0649..e2e8187ff 100644
--- a/assets/xml/objects/object_ny.xml
+++ b/assets/xml/objects/object_ny.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_po_composer.xml b/assets/xml/objects/object_po_composer.xml
index b02f73dbe..2ab8d64d8 100644
--- a/assets/xml/objects/object_po_composer.xml
+++ b/assets/xml/objects/object_po_composer.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_po_field.xml b/assets/xml/objects/object_po_field.xml
index ab1282657..10b402e2c 100644
--- a/assets/xml/objects/object_po_field.xml
+++ b/assets/xml/objects/object_po_field.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_poh.xml b/assets/xml/objects/object_poh.xml
index 90a57ae1c..009d0fca3 100644
--- a/assets/xml/objects/object_poh.xml
+++ b/assets/xml/objects/object_poh.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_ps.xml b/assets/xml/objects/object_ps.xml
index 723024f54..043e232d6 100644
--- a/assets/xml/objects/object_ps.xml
+++ b/assets/xml/objects/object_ps.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_sb.xml b/assets/xml/objects/object_sb.xml
index 22ec621b5..64d3bb005 100644
--- a/assets/xml/objects/object_sb.xml
+++ b/assets/xml/objects/object_sb.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_siofuki.xml b/assets/xml/objects/object_siofuki.xml
index 2e4f9a00d..a23240a72 100644
--- a/assets/xml/objects/object_siofuki.xml
+++ b/assets/xml/objects/object_siofuki.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_sst.xml b/assets/xml/objects/object_sst.xml
index ba1fad817..c142c50f4 100644
--- a/assets/xml/objects/object_sst.xml
+++ b/assets/xml/objects/object_sst.xml
@@ -1,56 +1,55 @@
-
-
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/assets/xml/objects/object_sst_pal.xml b/assets/xml/objects/object_sst_pal.xml
new file mode 100644
index 000000000..9a9199b58
--- /dev/null
+++ b/assets/xml/objects/object_sst_pal.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_st.xml b/assets/xml/objects/object_st.xml
index 8b0cc71bf..983b9e2ea 100644
--- a/assets/xml/objects/object_st.xml
+++ b/assets/xml/objects/object_st.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_stream.xml b/assets/xml/objects/object_stream.xml
index 6cbd11c46..59b0838e4 100644
--- a/assets/xml/objects/object_stream.xml
+++ b/assets/xml/objects/object_stream.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_toki_objects.xml b/assets/xml/objects/object_toki_objects.xml
index 562eba17b..cd07e60d2 100644
--- a/assets/xml/objects/object_toki_objects.xml
+++ b/assets/xml/objects/object_toki_objects.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_trap.xml b/assets/xml/objects/object_trap.xml
index fdb127735..56195cf41 100644
--- a/assets/xml/objects/object_trap.xml
+++ b/assets/xml/objects/object_trap.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_tw.xml b/assets/xml/objects/object_tw.xml
index 126926356..c6b9ec609 100644
--- a/assets/xml/objects/object_tw.xml
+++ b/assets/xml/objects/object_tw.xml
@@ -350,68 +350,68 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
diff --git a/assets/xml/objects/object_tw_pal.xml b/assets/xml/objects/object_tw_pal.xml
new file mode 100644
index 000000000..126926356
--- /dev/null
+++ b/assets/xml/objects/object_tw_pal.xml
@@ -0,0 +1,417 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_xc.xml b/assets/xml/objects/object_xc.xml
index 7fae3a087..7a69f52f3 100644
--- a/assets/xml/objects/object_xc.xml
+++ b/assets/xml/objects/object_xc.xml
@@ -1,33 +1,33 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_xc_pal.xml b/assets/xml/objects/object_xc_pal.xml
new file mode 100644
index 000000000..7fae3a087
--- /dev/null
+++ b/assets/xml/objects/object_xc_pal.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ydan_objects.xml b/assets/xml/objects/object_ydan_objects.xml
index a245165d2..baf7ca4c9 100644
--- a/assets/xml/objects/object_ydan_objects.xml
+++ b/assets/xml/objects/object_ydan_objects.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_zf.xml b/assets/xml/objects/object_zf.xml
index 7779fa2e1..7f20eb786 100644
--- a/assets/xml/objects/object_zf.xml
+++ b/assets/xml/objects/object_zf.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/objects/object_zo.xml b/assets/xml/objects/object_zo.xml
index 3cfcde6fd..77465760e 100644
--- a/assets/xml/objects/object_zo.xml
+++ b/assets/xml/objects/object_zo.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/overlays/ovl_Boss_Ganon.xml b/assets/xml/overlays/ovl_Boss_Ganon.xml
index 83a19c9b5..a6ed9c66e 100644
--- a/assets/xml/overlays/ovl_Boss_Ganon.xml
+++ b/assets/xml/overlays/ovl_Boss_Ganon.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/overlays/ovl_Boss_Ganon2.xml b/assets/xml/overlays/ovl_Boss_Ganon2.xml
index 4b1879a17..07b11108c 100644
--- a/assets/xml/overlays/ovl_Boss_Ganon2.xml
+++ b/assets/xml/overlays/ovl_Boss_Ganon2.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/overlays/ovl_Magic_Dark.xml b/assets/xml/overlays/ovl_Magic_Dark.xml
index 5c8b75c1f..965d140db 100644
--- a/assets/xml/overlays/ovl_Magic_Dark.xml
+++ b/assets/xml/overlays/ovl_Magic_Dark.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/overlays/ovl_Oceff_Storm.xml b/assets/xml/overlays/ovl_Oceff_Storm.xml
index d8217a615..385f56dbf 100644
--- a/assets/xml/overlays/ovl_Oceff_Storm.xml
+++ b/assets/xml/overlays/ovl_Oceff_Storm.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/overlays/ovl_Oceff_Wipe4.xml b/assets/xml/overlays/ovl_Oceff_Wipe4.xml
index 086491fa3..6446beedb 100644
--- a/assets/xml/overlays/ovl_Oceff_Wipe4.xml
+++ b/assets/xml/overlays/ovl_Oceff_Wipe4.xml
@@ -1,5 +1,4 @@
-
diff --git a/assets/xml/scenes/overworld/spot20.xml b/assets/xml/scenes/overworld/spot20.xml
index cc94f8443..6e09a5de8 100644
--- a/assets/xml/scenes/overworld/spot20.xml
+++ b/assets/xml/scenes/overworld/spot20.xml
@@ -1,9 +1,9 @@
-
-
-
-
+
+
+
+
diff --git a/assets/xml/scenes/overworld/spot20_pal.xml b/assets/xml/scenes/overworld/spot20_pal.xml
new file mode 100644
index 000000000..cc94f8443
--- /dev/null
+++ b/assets/xml/scenes/overworld/spot20_pal.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/do_action_static.xml b/assets/xml/textures/do_action_static.xml
index a821e7b2a..f628496c1 100644
--- a/assets/xml/textures/do_action_static.xml
+++ b/assets/xml/textures/do_action_static.xml
@@ -1,96 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/do_action_static_pal.xml b/assets/xml/textures/do_action_static_pal.xml
new file mode 100644
index 000000000..a821e7b2a
--- /dev/null
+++ b/assets/xml/textures/do_action_static_pal.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_gameover_static.xml b/assets/xml/textures/icon_item_gameover_static.xml
index fc2a50642..ffd392868 100644
--- a/assets/xml/textures/icon_item_gameover_static.xml
+++ b/assets/xml/textures/icon_item_gameover_static.xml
@@ -4,8 +4,7 @@
-
-
-
+
+
diff --git a/assets/xml/textures/icon_item_gameover_static_pal.xml b/assets/xml/textures/icon_item_gameover_static_pal.xml
new file mode 100644
index 000000000..fc2a50642
--- /dev/null
+++ b/assets/xml/textures/icon_item_gameover_static_pal.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_jpn_static.xml b/assets/xml/textures/icon_item_jpn_static.xml
new file mode 100644
index 000000000..95e1ea055
--- /dev/null
+++ b/assets/xml/textures/icon_item_jpn_static.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_static.xml b/assets/xml/textures/icon_item_static.xml
index 411f0f201..c302699d2 100644
--- a/assets/xml/textures/icon_item_static.xml
+++ b/assets/xml/textures/icon_item_static.xml
@@ -166,25 +166,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ /
+
+
+
+
+
diff --git a/assets/xml/textures/icon_item_static_pal.xml b/assets/xml/textures/icon_item_static_pal.xml
new file mode 100644
index 000000000..411f0f201
--- /dev/null
+++ b/assets/xml/textures/icon_item_static_pal.xml
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/item_name_static.xml b/assets/xml/textures/item_name_static.xml
index adf66fcb9..0740038d9 100644
--- a/assets/xml/textures/item_name_static.xml
+++ b/assets/xml/textures/item_name_static.xml
@@ -1,373 +1,250 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/assets/xml/textures/item_name_static_pal.xml b/assets/xml/textures/item_name_static_pal.xml
new file mode 100644
index 000000000..adf66fcb9
--- /dev/null
+++ b/assets/xml/textures/item_name_static_pal.xml
@@ -0,0 +1,373 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/kanji.xml b/assets/xml/textures/kanji.xml
new file mode 100644
index 000000000..25987b86d
--- /dev/null
+++ b/assets/xml/textures/kanji.xml
@@ -0,0 +1,3984 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/map_name_static.xml b/assets/xml/textures/map_name_static.xml
index 0504aa432..42448de7c 100644
--- a/assets/xml/textures/map_name_static.xml
+++ b/assets/xml/textures/map_name_static.xml
@@ -1,106 +1,72 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/map_name_static_pal.xml b/assets/xml/textures/map_name_static_pal.xml
new file mode 100644
index 000000000..0504aa432
--- /dev/null
+++ b/assets/xml/textures/map_name_static_pal.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/place_title_cards.xml b/assets/xml/textures/place_title_cards.xml
index 44bd6c8fb..c9023bc4e 100644
--- a/assets/xml/textures/place_title_cards.xml
+++ b/assets/xml/textures/place_title_cards.xml
@@ -1,287 +1,230 @@
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
diff --git a/assets/xml/textures/place_title_cards_pal.xml b/assets/xml/textures/place_title_cards_pal.xml
new file mode 100644
index 000000000..44bd6c8fb
--- /dev/null
+++ b/assets/xml/textures/place_title_cards_pal.xml
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/title_static.xml b/assets/xml/textures/title_static.xml
index 422b60cdc..537e23374 100644
--- a/assets/xml/textures/title_static.xml
+++ b/assets/xml/textures/title_static.xml
@@ -1,194 +1,169 @@
-
+
+
+
+
+
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
-
-
+
+
+
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
+
-
-
-
+
-
-
-
-
-
+
-
-
-
-
-
+
+
+
-
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
-
-
+
+
+
-
-
+
-
-
+
-
-
-
+
+
+
-
-
-
+
-
-
-
+
-
-
+
-
-
-
+
+
+
+
+
-
-
-
+
+
-
-
-
+
+
+
-
-
-
+
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
-
+
+
+
-
-
-
+
-
+
-
-
+
+
+
+
-
-
+
+
+
-
-
-
+
-
-
-
+
-
-
-
+
-
-
-
+
+
+
-
-
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/textures/title_static_pal.xml b/assets/xml/textures/title_static_pal.xml
new file mode 100644
index 000000000..422b60cdc
--- /dev/null
+++ b/assets/xml/textures/title_static_pal.xml
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/baseroms/gc-eu-mq-dbg/config.yml b/baseroms/gc-eu-mq-dbg/config.yml
index 52f36a53b..d4c8f3807 100644
--- a/baseroms/gc-eu-mq-dbg/config.yml
+++ b/baseroms/gc-eu-mq-dbg/config.yml
@@ -28,7 +28,7 @@ assets:
- name: objects/gameplay_field_keep
xml_path: assets/xml/objects/gameplay_field_keep.xml
- name: objects/gameplay_keep
- xml_path: assets/xml/objects/gameplay_keep.xml
+ xml_path: assets/xml/objects/gameplay_keep_pal.xml
- name: objects/object_ahg
xml_path: assets/xml/objects/object_ahg.xml
- name: objects/object_am
@@ -80,7 +80,7 @@ assets:
- name: objects/object_bubble
xml_path: assets/xml/objects/object_bubble.xml
- name: objects/object_bv
- xml_path: assets/xml/objects/object_bv.xml
+ xml_path: assets/xml/objects/object_bv_pal.xml
- name: objects/object_bw
xml_path: assets/xml/objects/object_bw.xml
- name: objects/object_bwall
@@ -140,7 +140,7 @@ assets:
- name: objects/object_ds2
xml_path: assets/xml/objects/object_ds2.xml
- name: objects/object_du
- xml_path: assets/xml/objects/object_du.xml
+ xml_path: assets/xml/objects/object_du_pal.xml
- name: objects/object_dy_obj
xml_path: assets/xml/objects/object_dy_obj.xml
- name: objects/object_ec
@@ -166,11 +166,11 @@ assets:
- name: objects/object_fa
xml_path: assets/xml/objects/object_fa.xml
- name: objects/object_fd
- xml_path: assets/xml/objects/object_fd.xml
+ xml_path: assets/xml/objects/object_fd_pal.xml
- name: objects/object_fd2
xml_path: assets/xml/objects/object_fd2.xml
- name: objects/object_fhg
- xml_path: assets/xml/objects/object_fhg.xml
+ xml_path: assets/xml/objects/object_fhg_pal.xml
- name: objects/object_fire
xml_path: assets/xml/objects/object_fire.xml
- name: objects/object_firefly
@@ -186,9 +186,9 @@ assets:
- name: objects/object_fz
xml_path: assets/xml/objects/object_fz.xml
- name: objects/object_ganon
- xml_path: assets/xml/objects/object_ganon.xml
+ xml_path: assets/xml/objects/object_ganon_pal.xml
- name: objects/object_ganon2
- xml_path: assets/xml/objects/object_ganon2.xml
+ xml_path: assets/xml/objects/object_ganon2_pal.xml
- name: objects/object_ganon_anime1
xml_path: assets/xml/objects/object_ganon_anime1.xml
- name: objects/object_ganon_anime2
@@ -376,7 +376,7 @@ assets:
- name: objects/object_gol
xml_path: assets/xml/objects/object_gol.xml
- name: objects/object_goma
- xml_path: assets/xml/objects/object_goma.xml
+ xml_path: assets/xml/objects/object_goma_pal.xml
- name: objects/object_goroiwa
xml_path: assets/xml/objects/object_goroiwa.xml
- name: objects/object_gr
@@ -444,7 +444,7 @@ assets:
- name: objects/object_kibako2
xml_path: assets/xml/objects/object_kibako2.xml
- name: objects/object_kingdodongo
- xml_path: assets/xml/objects/object_kingdodongo.xml
+ xml_path: assets/xml/objects/object_kingdodongo_pal.xml
- name: objects/object_km1
xml_path: assets/xml/objects/object_km1.xml
- name: objects/object_kusa
@@ -512,7 +512,7 @@ assets:
- name: objects/object_mm
xml_path: assets/xml/objects/object_mm.xml
- name: objects/object_mo
- xml_path: assets/xml/objects/object_mo.xml
+ xml_path: assets/xml/objects/object_mo_pal.xml
- name: objects/object_mori_hineri1
xml_path: assets/xml/objects/object_mori_hineri1.xml
- name: objects/object_mori_hineri1a
@@ -708,7 +708,7 @@ assets:
- name: objects/object_ssh
xml_path: assets/xml/objects/object_ssh.xml
- name: objects/object_sst
- xml_path: assets/xml/objects/object_sst.xml
+ xml_path: assets/xml/objects/object_sst_pal.xml
- name: objects/object_st
xml_path: assets/xml/objects/object_st.xml
- name: objects/object_stream
@@ -742,7 +742,7 @@ assets:
- name: objects/object_tsubo
xml_path: assets/xml/objects/object_tsubo.xml
- name: objects/object_tw
- xml_path: assets/xml/objects/object_tw.xml
+ xml_path: assets/xml/objects/object_tw_pal.xml
- name: objects/object_umajump
xml_path: assets/xml/objects/object_umajump.xml
- name: objects/object_vali
@@ -762,7 +762,7 @@ assets:
- name: objects/object_wood02
xml_path: assets/xml/objects/object_wood02.xml
- name: objects/object_xc
- xml_path: assets/xml/objects/object_xc.xml
+ xml_path: assets/xml/objects/object_xc_pal.xml
- name: objects/object_yabusame_point
xml_path: assets/xml/objects/object_yabusame_point.xml
- name: objects/object_ydan_objects
@@ -1112,7 +1112,7 @@ assets:
- name: scenes/overworld/spot18
xml_path: assets/xml/scenes/overworld/spot18.xml
- name: scenes/overworld/spot20
- xml_path: assets/xml/scenes/overworld/spot20.xml
+ xml_path: assets/xml/scenes/overworld/spot20_pal.xml
- name: scenes/shops/alley_shop
xml_path: assets/xml/scenes/shops/alley_shop.xml
- name: scenes/shops/drag
@@ -1148,7 +1148,7 @@ assets:
- name: textures/backgrounds
xml_path: assets/xml/textures/backgrounds.xml
- name: textures/do_action_static
- xml_path: assets/xml/textures/do_action_static.xml
+ xml_path: assets/xml/textures/do_action_static_pal.xml
- name: textures/icon_item_24_static
xml_path: assets/xml/textures/icon_item_24_static.xml
- name: textures/icon_item_dungeon_static
@@ -1158,15 +1158,15 @@ assets:
- name: textures/icon_item_fra_static
xml_path: assets/xml/textures/icon_item_fra_static.xml
- name: textures/icon_item_gameover_static
- xml_path: assets/xml/textures/icon_item_gameover_static.xml
+ xml_path: assets/xml/textures/icon_item_gameover_static_pal.xml
- name: textures/icon_item_ger_static
xml_path: assets/xml/textures/icon_item_ger_static.xml
- name: textures/icon_item_nes_static
xml_path: assets/xml/textures/icon_item_nes_static.xml
- name: textures/icon_item_static
- xml_path: assets/xml/textures/icon_item_static.xml
+ xml_path: assets/xml/textures/icon_item_static_pal.xml
- name: textures/item_name_static
- xml_path: assets/xml/textures/item_name_static.xml
+ xml_path: assets/xml/textures/item_name_static_pal.xml
- name: textures/map_48x85_static
xml_path: assets/xml/textures/map_48x85_static.xml
- name: textures/map_grand_static
@@ -1174,7 +1174,7 @@ assets:
- name: textures/map_i_static
xml_path: assets/xml/textures/map_i_static.xml
- name: textures/map_name_static
- xml_path: assets/xml/textures/map_name_static.xml
+ xml_path: assets/xml/textures/map_name_static_pal.xml
- name: textures/message_static
xml_path: assets/xml/textures/message_static.xml
- name: textures/message_texture_static
@@ -1186,8 +1186,8 @@ assets:
- name: textures/parameter_static
xml_path: assets/xml/textures/parameter_static.xml
- name: textures/place_title_cards
- xml_path: assets/xml/textures/place_title_cards.xml
+ xml_path: assets/xml/textures/place_title_cards_pal.xml
- name: textures/skyboxes
xml_path: assets/xml/textures/skyboxes.xml
- name: textures/title_static
- xml_path: assets/xml/textures/title_static.xml
+ xml_path: assets/xml/textures/title_static_pal.xml
diff --git a/baseroms/gc-eu-mq/config.yml b/baseroms/gc-eu-mq/config.yml
index 69d531bd0..278bdcf51 100644
--- a/baseroms/gc-eu-mq/config.yml
+++ b/baseroms/gc-eu-mq/config.yml
@@ -28,7 +28,7 @@ assets:
- name: objects/gameplay_field_keep
xml_path: assets/xml/objects/gameplay_field_keep.xml
- name: objects/gameplay_keep
- xml_path: assets/xml/objects/gameplay_keep.xml
+ xml_path: assets/xml/objects/gameplay_keep_pal.xml
- name: objects/object_ahg
xml_path: assets/xml/objects/object_ahg.xml
- name: objects/object_am
@@ -80,7 +80,7 @@ assets:
- name: objects/object_bubble
xml_path: assets/xml/objects/object_bubble.xml
- name: objects/object_bv
- xml_path: assets/xml/objects/object_bv.xml
+ xml_path: assets/xml/objects/object_bv_pal.xml
- name: objects/object_bw
xml_path: assets/xml/objects/object_bw.xml
- name: objects/object_bwall
@@ -140,7 +140,7 @@ assets:
- name: objects/object_ds2
xml_path: assets/xml/objects/object_ds2.xml
- name: objects/object_du
- xml_path: assets/xml/objects/object_du.xml
+ xml_path: assets/xml/objects/object_du_pal.xml
- name: objects/object_dy_obj
xml_path: assets/xml/objects/object_dy_obj.xml
- name: objects/object_ec
@@ -166,11 +166,11 @@ assets:
- name: objects/object_fa
xml_path: assets/xml/objects/object_fa.xml
- name: objects/object_fd
- xml_path: assets/xml/objects/object_fd.xml
+ xml_path: assets/xml/objects/object_fd_pal.xml
- name: objects/object_fd2
xml_path: assets/xml/objects/object_fd2.xml
- name: objects/object_fhg
- xml_path: assets/xml/objects/object_fhg.xml
+ xml_path: assets/xml/objects/object_fhg_pal.xml
- name: objects/object_fire
xml_path: assets/xml/objects/object_fire.xml
- name: objects/object_firefly
@@ -186,9 +186,9 @@ assets:
- name: objects/object_fz
xml_path: assets/xml/objects/object_fz.xml
- name: objects/object_ganon
- xml_path: assets/xml/objects/object_ganon.xml
+ xml_path: assets/xml/objects/object_ganon_pal.xml
- name: objects/object_ganon2
- xml_path: assets/xml/objects/object_ganon2.xml
+ xml_path: assets/xml/objects/object_ganon2_pal.xml
- name: objects/object_ganon_anime1
xml_path: assets/xml/objects/object_ganon_anime1.xml
- name: objects/object_ganon_anime2
@@ -376,7 +376,7 @@ assets:
- name: objects/object_gol
xml_path: assets/xml/objects/object_gol.xml
- name: objects/object_goma
- xml_path: assets/xml/objects/object_goma.xml
+ xml_path: assets/xml/objects/object_goma_pal.xml
- name: objects/object_goroiwa
xml_path: assets/xml/objects/object_goroiwa.xml
- name: objects/object_gr
@@ -444,7 +444,7 @@ assets:
- name: objects/object_kibako2
xml_path: assets/xml/objects/object_kibako2.xml
- name: objects/object_kingdodongo
- xml_path: assets/xml/objects/object_kingdodongo.xml
+ xml_path: assets/xml/objects/object_kingdodongo_pal.xml
- name: objects/object_km1
xml_path: assets/xml/objects/object_km1.xml
- name: objects/object_kusa
@@ -512,7 +512,7 @@ assets:
- name: objects/object_mm
xml_path: assets/xml/objects/object_mm.xml
- name: objects/object_mo
- xml_path: assets/xml/objects/object_mo.xml
+ xml_path: assets/xml/objects/object_mo_pal.xml
- name: objects/object_mori_hineri1
xml_path: assets/xml/objects/object_mori_hineri1.xml
- name: objects/object_mori_hineri1a
@@ -708,7 +708,7 @@ assets:
- name: objects/object_ssh
xml_path: assets/xml/objects/object_ssh.xml
- name: objects/object_sst
- xml_path: assets/xml/objects/object_sst.xml
+ xml_path: assets/xml/objects/object_sst_pal.xml
- name: objects/object_st
xml_path: assets/xml/objects/object_st.xml
- name: objects/object_stream
@@ -742,7 +742,7 @@ assets:
- name: objects/object_tsubo
xml_path: assets/xml/objects/object_tsubo.xml
- name: objects/object_tw
- xml_path: assets/xml/objects/object_tw.xml
+ xml_path: assets/xml/objects/object_tw_pal.xml
- name: objects/object_umajump
xml_path: assets/xml/objects/object_umajump.xml
- name: objects/object_vali
@@ -762,7 +762,7 @@ assets:
- name: objects/object_wood02
xml_path: assets/xml/objects/object_wood02.xml
- name: objects/object_xc
- xml_path: assets/xml/objects/object_xc.xml
+ xml_path: assets/xml/objects/object_xc_pal.xml
- name: objects/object_yabusame_point
xml_path: assets/xml/objects/object_yabusame_point.xml
- name: objects/object_ydan_objects
@@ -1102,7 +1102,7 @@ assets:
- name: scenes/overworld/spot18
xml_path: assets/xml/scenes/overworld/spot18.xml
- name: scenes/overworld/spot20
- xml_path: assets/xml/scenes/overworld/spot20.xml
+ xml_path: assets/xml/scenes/overworld/spot20_pal.xml
- name: scenes/shops/alley_shop
xml_path: assets/xml/scenes/shops/alley_shop.xml
- name: scenes/shops/drag
@@ -1122,7 +1122,7 @@ assets:
- name: textures/backgrounds
xml_path: assets/xml/textures/backgrounds.xml
- name: textures/do_action_static
- xml_path: assets/xml/textures/do_action_static.xml
+ xml_path: assets/xml/textures/do_action_static_pal.xml
- name: textures/icon_item_24_static
xml_path: assets/xml/textures/icon_item_24_static.xml
- name: textures/icon_item_dungeon_static
@@ -1132,15 +1132,15 @@ assets:
- name: textures/icon_item_fra_static
xml_path: assets/xml/textures/icon_item_fra_static.xml
- name: textures/icon_item_gameover_static
- xml_path: assets/xml/textures/icon_item_gameover_static.xml
+ xml_path: assets/xml/textures/icon_item_gameover_static_pal.xml
- name: textures/icon_item_ger_static
xml_path: assets/xml/textures/icon_item_ger_static.xml
- name: textures/icon_item_nes_static
xml_path: assets/xml/textures/icon_item_nes_static.xml
- name: textures/icon_item_static
- xml_path: assets/xml/textures/icon_item_static.xml
+ xml_path: assets/xml/textures/icon_item_static_pal.xml
- name: textures/item_name_static
- xml_path: assets/xml/textures/item_name_static.xml
+ xml_path: assets/xml/textures/item_name_static_pal.xml
- name: textures/map_48x85_static
xml_path: assets/xml/textures/map_48x85_static.xml
- name: textures/map_grand_static
@@ -1148,7 +1148,7 @@ assets:
- name: textures/map_i_static
xml_path: assets/xml/textures/map_i_static.xml
- name: textures/map_name_static
- xml_path: assets/xml/textures/map_name_static.xml
+ xml_path: assets/xml/textures/map_name_static_pal.xml
- name: textures/message_static
xml_path: assets/xml/textures/message_static.xml
- name: textures/message_texture_static
@@ -1160,8 +1160,8 @@ assets:
- name: textures/parameter_static
xml_path: assets/xml/textures/parameter_static.xml
- name: textures/place_title_cards
- xml_path: assets/xml/textures/place_title_cards.xml
+ xml_path: assets/xml/textures/place_title_cards_pal.xml
- name: textures/skyboxes
xml_path: assets/xml/textures/skyboxes.xml
- name: textures/title_static
- xml_path: assets/xml/textures/title_static.xml
+ xml_path: assets/xml/textures/title_static_pal.xml
diff --git a/baseroms/gc-eu/config.yml b/baseroms/gc-eu/config.yml
index 219632a22..d2a544ca0 100644
--- a/baseroms/gc-eu/config.yml
+++ b/baseroms/gc-eu/config.yml
@@ -28,7 +28,7 @@ assets:
- name: objects/gameplay_field_keep
xml_path: assets/xml/objects/gameplay_field_keep.xml
- name: objects/gameplay_keep
- xml_path: assets/xml/objects/gameplay_keep.xml
+ xml_path: assets/xml/objects/gameplay_keep_pal.xml
- name: objects/object_ahg
xml_path: assets/xml/objects/object_ahg.xml
- name: objects/object_am
@@ -80,7 +80,7 @@ assets:
- name: objects/object_bubble
xml_path: assets/xml/objects/object_bubble.xml
- name: objects/object_bv
- xml_path: assets/xml/objects/object_bv.xml
+ xml_path: assets/xml/objects/object_bv_pal.xml
- name: objects/object_bw
xml_path: assets/xml/objects/object_bw.xml
- name: objects/object_bwall
@@ -140,7 +140,7 @@ assets:
- name: objects/object_ds2
xml_path: assets/xml/objects/object_ds2.xml
- name: objects/object_du
- xml_path: assets/xml/objects/object_du.xml
+ xml_path: assets/xml/objects/object_du_pal.xml
- name: objects/object_dy_obj
xml_path: assets/xml/objects/object_dy_obj.xml
- name: objects/object_ec
@@ -166,11 +166,11 @@ assets:
- name: objects/object_fa
xml_path: assets/xml/objects/object_fa.xml
- name: objects/object_fd
- xml_path: assets/xml/objects/object_fd.xml
+ xml_path: assets/xml/objects/object_fd_pal.xml
- name: objects/object_fd2
xml_path: assets/xml/objects/object_fd2.xml
- name: objects/object_fhg
- xml_path: assets/xml/objects/object_fhg.xml
+ xml_path: assets/xml/objects/object_fhg_pal.xml
- name: objects/object_fire
xml_path: assets/xml/objects/object_fire.xml
- name: objects/object_firefly
@@ -186,9 +186,9 @@ assets:
- name: objects/object_fz
xml_path: assets/xml/objects/object_fz.xml
- name: objects/object_ganon
- xml_path: assets/xml/objects/object_ganon.xml
+ xml_path: assets/xml/objects/object_ganon_pal.xml
- name: objects/object_ganon2
- xml_path: assets/xml/objects/object_ganon2.xml
+ xml_path: assets/xml/objects/object_ganon2_pal.xml
- name: objects/object_ganon_anime1
xml_path: assets/xml/objects/object_ganon_anime1.xml
- name: objects/object_ganon_anime2
@@ -376,7 +376,7 @@ assets:
- name: objects/object_gol
xml_path: assets/xml/objects/object_gol.xml
- name: objects/object_goma
- xml_path: assets/xml/objects/object_goma.xml
+ xml_path: assets/xml/objects/object_goma_pal.xml
- name: objects/object_goroiwa
xml_path: assets/xml/objects/object_goroiwa.xml
- name: objects/object_gr
@@ -444,7 +444,7 @@ assets:
- name: objects/object_kibako2
xml_path: assets/xml/objects/object_kibako2.xml
- name: objects/object_kingdodongo
- xml_path: assets/xml/objects/object_kingdodongo.xml
+ xml_path: assets/xml/objects/object_kingdodongo_pal.xml
- name: objects/object_km1
xml_path: assets/xml/objects/object_km1.xml
- name: objects/object_kusa
@@ -512,7 +512,7 @@ assets:
- name: objects/object_mm
xml_path: assets/xml/objects/object_mm.xml
- name: objects/object_mo
- xml_path: assets/xml/objects/object_mo.xml
+ xml_path: assets/xml/objects/object_mo_pal.xml
- name: objects/object_mori_hineri1
xml_path: assets/xml/objects/object_mori_hineri1.xml
- name: objects/object_mori_hineri1a
@@ -708,7 +708,7 @@ assets:
- name: objects/object_ssh
xml_path: assets/xml/objects/object_ssh.xml
- name: objects/object_sst
- xml_path: assets/xml/objects/object_sst.xml
+ xml_path: assets/xml/objects/object_sst_pal.xml
- name: objects/object_st
xml_path: assets/xml/objects/object_st.xml
- name: objects/object_stream
@@ -742,7 +742,7 @@ assets:
- name: objects/object_tsubo
xml_path: assets/xml/objects/object_tsubo.xml
- name: objects/object_tw
- xml_path: assets/xml/objects/object_tw.xml
+ xml_path: assets/xml/objects/object_tw_pal.xml
- name: objects/object_umajump
xml_path: assets/xml/objects/object_umajump.xml
- name: objects/object_vali
@@ -762,7 +762,7 @@ assets:
- name: objects/object_wood02
xml_path: assets/xml/objects/object_wood02.xml
- name: objects/object_xc
- xml_path: assets/xml/objects/object_xc.xml
+ xml_path: assets/xml/objects/object_xc_pal.xml
- name: objects/object_yabusame_point
xml_path: assets/xml/objects/object_yabusame_point.xml
- name: objects/object_ydan_objects
@@ -1102,7 +1102,7 @@ assets:
- name: scenes/overworld/spot18
xml_path: assets/xml/scenes/overworld/spot18.xml
- name: scenes/overworld/spot20
- xml_path: assets/xml/scenes/overworld/spot20.xml
+ xml_path: assets/xml/scenes/overworld/spot20_pal.xml
- name: scenes/shops/alley_shop
xml_path: assets/xml/scenes/shops/alley_shop.xml
- name: scenes/shops/drag
@@ -1122,7 +1122,7 @@ assets:
- name: textures/backgrounds
xml_path: assets/xml/textures/backgrounds.xml
- name: textures/do_action_static
- xml_path: assets/xml/textures/do_action_static.xml
+ xml_path: assets/xml/textures/do_action_static_pal.xml
- name: textures/icon_item_24_static
xml_path: assets/xml/textures/icon_item_24_static.xml
- name: textures/icon_item_dungeon_static
@@ -1132,15 +1132,15 @@ assets:
- name: textures/icon_item_fra_static
xml_path: assets/xml/textures/icon_item_fra_static.xml
- name: textures/icon_item_gameover_static
- xml_path: assets/xml/textures/icon_item_gameover_static.xml
+ xml_path: assets/xml/textures/icon_item_gameover_static_pal.xml
- name: textures/icon_item_ger_static
xml_path: assets/xml/textures/icon_item_ger_static.xml
- name: textures/icon_item_nes_static
xml_path: assets/xml/textures/icon_item_nes_static.xml
- name: textures/icon_item_static
- xml_path: assets/xml/textures/icon_item_static.xml
+ xml_path: assets/xml/textures/icon_item_static_pal.xml
- name: textures/item_name_static
- xml_path: assets/xml/textures/item_name_static.xml
+ xml_path: assets/xml/textures/item_name_static_pal.xml
- name: textures/map_48x85_static
xml_path: assets/xml/textures/map_48x85_static.xml
- name: textures/map_grand_static
@@ -1148,7 +1148,7 @@ assets:
- name: textures/map_i_static
xml_path: assets/xml/textures/map_i_static.xml
- name: textures/map_name_static
- xml_path: assets/xml/textures/map_name_static.xml
+ xml_path: assets/xml/textures/map_name_static_pal.xml
- name: textures/message_static
xml_path: assets/xml/textures/message_static.xml
- name: textures/message_texture_static
@@ -1160,8 +1160,8 @@ assets:
- name: textures/parameter_static
xml_path: assets/xml/textures/parameter_static.xml
- name: textures/place_title_cards
- xml_path: assets/xml/textures/place_title_cards.xml
+ xml_path: assets/xml/textures/place_title_cards_pal.xml
- name: textures/skyboxes
xml_path: assets/xml/textures/skyboxes.xml
- name: textures/title_static
- xml_path: assets/xml/textures/title_static.xml
+ xml_path: assets/xml/textures/title_static_pal.xml
diff --git a/baseroms/gc-us/checksum-compressed.md5 b/baseroms/gc-us/checksum-compressed.md5
new file mode 100644
index 000000000..1871ba60c
--- /dev/null
+++ b/baseroms/gc-us/checksum-compressed.md5
@@ -0,0 +1 @@
+cd09029edcfb7c097ac01986a0f83d3f build/gc-us/oot-gc-us-compressed.z64
diff --git a/baseroms/gc-us/checksum.md5 b/baseroms/gc-us/checksum.md5
new file mode 100644
index 000000000..160c935c7
--- /dev/null
+++ b/baseroms/gc-us/checksum.md5
@@ -0,0 +1 @@
+282e6281bc7f030cddccf2422237e9a7 build/gc-us/oot-gc-us.z64
diff --git a/baseroms/gc-us/config.yml b/baseroms/gc-us/config.yml
new file mode 100644
index 000000000..78ee329db
--- /dev/null
+++ b/baseroms/gc-us/config.yml
@@ -0,0 +1,1166 @@
+dmadata_start: 0x7170
+variables:
+ gMtxClear: 0x800FE2A0
+ sJpnMessageEntryTable: 0x80107810
+ sNesMessageEntryTable: 0x8010DFCC
+ sStaffMessageEntryTable: 0x801121EC
+ sShadowTex: 0x80A74130
+assets:
+- name: code/fbdemo_circle
+ xml_path: assets/xml/code/fbdemo_circle.xml
+ start_offset: 0xEB768
+ end_offset: 0xEC988
+- name: code/fbdemo_triforce
+ xml_path: assets/xml/code/fbdemo_triforce.xml
+ start_offset: 0xEABF0
+ end_offset: 0xEACC0
+- name: code/fbdemo_wipe1
+ xml_path: assets/xml/code/fbdemo_wipe1.xml
+ start_offset: 0xEACC0
+ end_offset: 0xEB650
+- name: misc/link_animetion
+ xml_path: assets/xml/misc/link_animetion.xml
+- name: misc/z_select_static
+ xml_path: assets/xml/misc/z_select_static.xml
+- name: objects/gameplay_dangeon_keep
+ xml_path: assets/xml/objects/gameplay_dangeon_keep.xml
+- name: objects/gameplay_field_keep
+ xml_path: assets/xml/objects/gameplay_field_keep.xml
+- name: objects/gameplay_keep
+ xml_path: assets/xml/objects/gameplay_keep.xml
+- name: objects/object_ahg
+ xml_path: assets/xml/objects/object_ahg.xml
+- name: objects/object_am
+ xml_path: assets/xml/objects/object_am.xml
+- name: objects/object_ane
+ xml_path: assets/xml/objects/object_ane.xml
+- name: objects/object_ani
+ xml_path: assets/xml/objects/object_ani.xml
+- name: objects/object_anubice
+ xml_path: assets/xml/objects/object_anubice.xml
+- name: objects/object_aob
+ xml_path: assets/xml/objects/object_aob.xml
+- name: objects/object_b_heart
+ xml_path: assets/xml/objects/object_b_heart.xml
+- name: objects/object_Bb
+ xml_path: assets/xml/objects/object_Bb.xml
+- name: objects/object_bba
+ xml_path: assets/xml/objects/object_bba.xml
+- name: objects/object_bdan_objects
+ xml_path: assets/xml/objects/object_bdan_objects.xml
+- name: objects/object_bdoor
+ xml_path: assets/xml/objects/object_bdoor.xml
+- name: objects/object_bg
+ xml_path: assets/xml/objects/object_bg.xml
+- name: objects/object_bigokuta
+ xml_path: assets/xml/objects/object_bigokuta.xml
+- name: objects/object_bird
+ xml_path: assets/xml/objects/object_bird.xml
+- name: objects/object_bji
+ xml_path: assets/xml/objects/object_bji.xml
+- name: objects/object_bl
+ xml_path: assets/xml/objects/object_bl.xml
+- name: objects/object_blkobj
+ xml_path: assets/xml/objects/object_blkobj.xml
+- name: objects/object_bob
+ xml_path: assets/xml/objects/object_bob.xml
+- name: objects/object_boj
+ xml_path: assets/xml/objects/object_boj.xml
+- name: objects/object_bombf
+ xml_path: assets/xml/objects/object_bombf.xml
+- name: objects/object_bombiwa
+ xml_path: assets/xml/objects/object_bombiwa.xml
+- name: objects/object_bowl
+ xml_path: assets/xml/objects/object_bowl.xml
+- name: objects/object_box
+ xml_path: assets/xml/objects/object_box.xml
+- name: objects/object_brob
+ xml_path: assets/xml/objects/object_brob.xml
+- name: objects/object_bubble
+ xml_path: assets/xml/objects/object_bubble.xml
+- name: objects/object_bv
+ xml_path: assets/xml/objects/object_bv.xml
+- name: objects/object_bw
+ xml_path: assets/xml/objects/object_bw.xml
+- name: objects/object_bwall
+ xml_path: assets/xml/objects/object_bwall.xml
+- name: objects/object_bxa
+ xml_path: assets/xml/objects/object_bxa.xml
+- name: objects/object_cne
+ xml_path: assets/xml/objects/object_cne.xml
+- name: objects/object_cob
+ xml_path: assets/xml/objects/object_cob.xml
+- name: objects/object_cow
+ xml_path: assets/xml/objects/object_cow.xml
+- name: objects/object_crow
+ xml_path: assets/xml/objects/object_crow.xml
+- name: objects/object_cs
+ xml_path: assets/xml/objects/object_cs.xml
+- name: objects/object_d_elevator
+ xml_path: assets/xml/objects/object_d_elevator.xml
+- name: objects/object_d_hsblock
+ xml_path: assets/xml/objects/object_d_hsblock.xml
+- name: objects/object_d_lift
+ xml_path: assets/xml/objects/object_d_lift.xml
+- name: objects/object_daiku
+ xml_path: assets/xml/objects/object_daiku.xml
+- name: objects/object_ddan_objects
+ xml_path: assets/xml/objects/object_ddan_objects.xml
+- name: objects/object_dekubaba
+ xml_path: assets/xml/objects/object_dekubaba.xml
+- name: objects/object_dekujr
+ xml_path: assets/xml/objects/object_dekujr.xml
+- name: objects/object_dekunuts
+ xml_path: assets/xml/objects/object_dekunuts.xml
+- name: objects/object_demo_6k
+ xml_path: assets/xml/objects/object_demo_6k.xml
+- name: objects/object_demo_kekkai
+ xml_path: assets/xml/objects/object_demo_kekkai.xml
+- name: objects/object_demo_tre_lgt
+ xml_path: assets/xml/objects/object_demo_tre_lgt.xml
+- name: objects/object_dh
+ xml_path: assets/xml/objects/object_dh.xml
+- name: objects/object_dnk
+ xml_path: assets/xml/objects/object_dnk.xml
+- name: objects/object_dns
+ xml_path: assets/xml/objects/object_dns.xml
+- name: objects/object_dodojr
+ xml_path: assets/xml/objects/object_dodojr.xml
+- name: objects/object_dodongo
+ xml_path: assets/xml/objects/object_dodongo.xml
+- name: objects/object_dog
+ xml_path: assets/xml/objects/object_dog.xml
+- name: objects/object_door_gerudo
+ xml_path: assets/xml/objects/object_door_gerudo.xml
+- name: objects/object_door_killer
+ xml_path: assets/xml/objects/object_door_killer.xml
+- name: objects/object_ds
+ xml_path: assets/xml/objects/object_ds.xml
+- name: objects/object_ds2
+ xml_path: assets/xml/objects/object_ds2.xml
+- name: objects/object_du
+ xml_path: assets/xml/objects/object_du.xml
+- name: objects/object_dy_obj
+ xml_path: assets/xml/objects/object_dy_obj.xml
+- name: objects/object_ec
+ xml_path: assets/xml/objects/object_ec.xml
+- name: objects/object_efc_crystal_light
+ xml_path: assets/xml/objects/object_efc_crystal_light.xml
+- name: objects/object_efc_doughnut
+ xml_path: assets/xml/objects/object_efc_doughnut.xml
+- name: objects/object_efc_erupc
+ xml_path: assets/xml/objects/object_efc_erupc.xml
+- name: objects/object_efc_fire_ball
+ xml_path: assets/xml/objects/object_efc_fire_ball.xml
+- name: objects/object_efc_flash
+ xml_path: assets/xml/objects/object_efc_flash.xml
+- name: objects/object_efc_lgt_shower
+ xml_path: assets/xml/objects/object_efc_lgt_shower.xml
+- name: objects/object_efc_star_field
+ xml_path: assets/xml/objects/object_efc_star_field.xml
+- name: objects/object_efc_tw
+ xml_path: assets/xml/objects/object_efc_tw.xml
+- name: objects/object_ei
+ xml_path: assets/xml/objects/object_ei.xml
+- name: objects/object_fa
+ xml_path: assets/xml/objects/object_fa.xml
+- name: objects/object_fd
+ xml_path: assets/xml/objects/object_fd.xml
+- name: objects/object_fd2
+ xml_path: assets/xml/objects/object_fd2.xml
+- name: objects/object_fhg
+ xml_path: assets/xml/objects/object_fhg.xml
+- name: objects/object_fire
+ xml_path: assets/xml/objects/object_fire.xml
+- name: objects/object_firefly
+ xml_path: assets/xml/objects/object_firefly.xml
+- name: objects/object_fish
+ xml_path: assets/xml/objects/object_fish.xml
+- name: objects/object_fr
+ xml_path: assets/xml/objects/object_fr.xml
+- name: objects/object_fu
+ xml_path: assets/xml/objects/object_fu.xml
+- name: objects/object_fw
+ xml_path: assets/xml/objects/object_fw.xml
+- name: objects/object_fz
+ xml_path: assets/xml/objects/object_fz.xml
+- name: objects/object_ganon
+ xml_path: assets/xml/objects/object_ganon.xml
+- name: objects/object_ganon2
+ xml_path: assets/xml/objects/object_ganon2.xml
+- name: objects/object_ganon_anime1
+ xml_path: assets/xml/objects/object_ganon_anime1.xml
+- name: objects/object_ganon_anime2
+ xml_path: assets/xml/objects/object_ganon_anime2.xml
+- name: objects/object_ganon_anime3
+ xml_path: assets/xml/objects/object_ganon_anime3.xml
+- name: objects/object_ganon_objects
+ xml_path: assets/xml/objects/object_ganon_objects.xml
+- name: objects/object_ge1
+ xml_path: assets/xml/objects/object_ge1.xml
+- name: objects/object_geff
+ xml_path: assets/xml/objects/object_geff.xml
+- name: objects/object_geldb
+ xml_path: assets/xml/objects/object_geldb.xml
+- name: objects/object_gi_arrow
+ xml_path: assets/xml/objects/object_gi_arrow.xml
+- name: objects/object_gi_arrowcase
+ xml_path: assets/xml/objects/object_gi_arrowcase.xml
+- name: objects/object_gi_bean
+ xml_path: assets/xml/objects/object_gi_bean.xml
+- name: objects/object_gi_bomb_1
+ xml_path: assets/xml/objects/object_gi_bomb_1.xml
+- name: objects/object_gi_bomb_2
+ xml_path: assets/xml/objects/object_gi_bomb_2.xml
+- name: objects/object_gi_bombpouch
+ xml_path: assets/xml/objects/object_gi_bombpouch.xml
+- name: objects/object_gi_boomerang
+ xml_path: assets/xml/objects/object_gi_boomerang.xml
+- name: objects/object_gi_boots_2
+ xml_path: assets/xml/objects/object_gi_boots_2.xml
+- name: objects/object_gi_bosskey
+ xml_path: assets/xml/objects/object_gi_bosskey.xml
+- name: objects/object_gi_bottle
+ xml_path: assets/xml/objects/object_gi_bottle.xml
+- name: objects/object_gi_bottle_letter
+ xml_path: assets/xml/objects/object_gi_bottle_letter.xml
+- name: objects/object_gi_bow
+ xml_path: assets/xml/objects/object_gi_bow.xml
+- name: objects/object_gi_bracelet
+ xml_path: assets/xml/objects/object_gi_bracelet.xml
+- name: objects/object_gi_brokensword
+ xml_path: assets/xml/objects/object_gi_brokensword.xml
+- name: objects/object_gi_butterfly
+ xml_path: assets/xml/objects/object_gi_butterfly.xml
+- name: objects/object_gi_clothes
+ xml_path: assets/xml/objects/object_gi_clothes.xml
+- name: objects/object_gi_coin
+ xml_path: assets/xml/objects/object_gi_coin.xml
+- name: objects/object_gi_compass
+ xml_path: assets/xml/objects/object_gi_compass.xml
+- name: objects/object_gi_dekupouch
+ xml_path: assets/xml/objects/object_gi_dekupouch.xml
+- name: objects/object_gi_egg
+ xml_path: assets/xml/objects/object_gi_egg.xml
+- name: objects/object_gi_eye_lotion
+ xml_path: assets/xml/objects/object_gi_eye_lotion.xml
+- name: objects/object_gi_fire
+ xml_path: assets/xml/objects/object_gi_fire.xml
+- name: objects/object_gi_fish
+ xml_path: assets/xml/objects/object_gi_fish.xml
+- name: objects/object_gi_frog
+ xml_path: assets/xml/objects/object_gi_frog.xml
+- name: objects/object_gi_gerudo
+ xml_path: assets/xml/objects/object_gi_gerudo.xml
+- name: objects/object_gi_gerudomask
+ xml_path: assets/xml/objects/object_gi_gerudomask.xml
+- name: objects/object_gi_ghost
+ xml_path: assets/xml/objects/object_gi_ghost.xml
+- name: objects/object_gi_glasses
+ xml_path: assets/xml/objects/object_gi_glasses.xml
+- name: objects/object_gi_gloves
+ xml_path: assets/xml/objects/object_gi_gloves.xml
+- name: objects/object_gi_goddess
+ xml_path: assets/xml/objects/object_gi_goddess.xml
+- name: objects/object_gi_golonmask
+ xml_path: assets/xml/objects/object_gi_golonmask.xml
+- name: objects/object_gi_grass
+ xml_path: assets/xml/objects/object_gi_grass.xml
+- name: objects/object_gi_hammer
+ xml_path: assets/xml/objects/object_gi_hammer.xml
+- name: objects/object_gi_heart
+ xml_path: assets/xml/objects/object_gi_heart.xml
+- name: objects/object_gi_hearts
+ xml_path: assets/xml/objects/object_gi_hearts.xml
+- name: objects/object_gi_hookshot
+ xml_path: assets/xml/objects/object_gi_hookshot.xml
+- name: objects/object_gi_hoverboots
+ xml_path: assets/xml/objects/object_gi_hoverboots.xml
+- name: objects/object_gi_insect
+ xml_path: assets/xml/objects/object_gi_insect.xml
+- name: objects/object_gi_jewel
+ xml_path: assets/xml/objects/object_gi_jewel.xml
+- name: objects/object_gi_key
+ xml_path: assets/xml/objects/object_gi_key.xml
+- name: objects/object_gi_ki_tan_mask
+ xml_path: assets/xml/objects/object_gi_ki_tan_mask.xml
+- name: objects/object_gi_letter
+ xml_path: assets/xml/objects/object_gi_letter.xml
+- name: objects/object_gi_liquid
+ xml_path: assets/xml/objects/object_gi_liquid.xml
+- name: objects/object_gi_longsword
+ xml_path: assets/xml/objects/object_gi_longsword.xml
+- name: objects/object_gi_m_arrow
+ xml_path: assets/xml/objects/object_gi_m_arrow.xml
+- name: objects/object_gi_magicpot
+ xml_path: assets/xml/objects/object_gi_magicpot.xml
+- name: objects/object_gi_map
+ xml_path: assets/xml/objects/object_gi_map.xml
+- name: objects/object_gi_medal
+ xml_path: assets/xml/objects/object_gi_medal.xml
+- name: objects/object_gi_melody
+ xml_path: assets/xml/objects/object_gi_melody.xml
+- name: objects/object_gi_milk
+ xml_path: assets/xml/objects/object_gi_milk.xml
+- name: objects/object_gi_mushroom
+ xml_path: assets/xml/objects/object_gi_mushroom.xml
+- name: objects/object_gi_niwatori
+ xml_path: assets/xml/objects/object_gi_niwatori.xml
+- name: objects/object_gi_nuts
+ xml_path: assets/xml/objects/object_gi_nuts.xml
+- name: objects/object_gi_ocarina
+ xml_path: assets/xml/objects/object_gi_ocarina.xml
+- name: objects/object_gi_ocarina_0
+ xml_path: assets/xml/objects/object_gi_ocarina_0.xml
+- name: objects/object_gi_pachinko
+ xml_path: assets/xml/objects/object_gi_pachinko.xml
+- name: objects/object_gi_powder
+ xml_path: assets/xml/objects/object_gi_powder.xml
+- name: objects/object_gi_prescription
+ xml_path: assets/xml/objects/object_gi_prescription.xml
+- name: objects/object_gi_purse
+ xml_path: assets/xml/objects/object_gi_purse.xml
+- name: objects/object_gi_rabit_mask
+ xml_path: assets/xml/objects/object_gi_rabit_mask.xml
+- name: objects/object_gi_redead_mask
+ xml_path: assets/xml/objects/object_gi_redead_mask.xml
+- name: objects/object_gi_rupy
+ xml_path: assets/xml/objects/object_gi_rupy.xml
+- name: objects/object_gi_saw
+ xml_path: assets/xml/objects/object_gi_saw.xml
+- name: objects/object_gi_scale
+ xml_path: assets/xml/objects/object_gi_scale.xml
+- name: objects/object_gi_seed
+ xml_path: assets/xml/objects/object_gi_seed.xml
+- name: objects/object_gi_shield_1
+ xml_path: assets/xml/objects/object_gi_shield_1.xml
+- name: objects/object_gi_shield_2
+ xml_path: assets/xml/objects/object_gi_shield_2.xml
+- name: objects/object_gi_shield_3
+ xml_path: assets/xml/objects/object_gi_shield_3.xml
+- name: objects/object_gi_skj_mask
+ xml_path: assets/xml/objects/object_gi_skj_mask.xml
+- name: objects/object_gi_soldout
+ xml_path: assets/xml/objects/object_gi_soldout.xml
+- name: objects/object_gi_soul
+ xml_path: assets/xml/objects/object_gi_soul.xml
+- name: objects/object_gi_stick
+ xml_path: assets/xml/objects/object_gi_stick.xml
+- name: objects/object_gi_sutaru
+ xml_path: assets/xml/objects/object_gi_sutaru.xml
+- name: objects/object_gi_sword_1
+ xml_path: assets/xml/objects/object_gi_sword_1.xml
+- name: objects/object_gi_ticketstone
+ xml_path: assets/xml/objects/object_gi_ticketstone.xml
+- name: objects/object_gi_truth_mask
+ xml_path: assets/xml/objects/object_gi_truth_mask.xml
+- name: objects/object_gi_zoramask
+ xml_path: assets/xml/objects/object_gi_zoramask.xml
+- name: objects/object_gj
+ xml_path: assets/xml/objects/object_gj.xml
+- name: objects/object_gjyo_objects
+ xml_path: assets/xml/objects/object_gjyo_objects.xml
+- name: objects/object_gla
+ xml_path: assets/xml/objects/object_gla.xml
+- name: objects/object_gm
+ xml_path: assets/xml/objects/object_gm.xml
+- name: objects/object_gnd
+ xml_path: assets/xml/objects/object_gnd.xml
+- name: objects/object_gnd_magic
+ xml_path: assets/xml/objects/object_gnd_magic.xml
+- name: objects/object_gndd
+ xml_path: assets/xml/objects/object_gndd.xml
+- name: objects/object_god_lgt
+ xml_path: assets/xml/objects/object_god_lgt.xml
+- name: objects/object_gol
+ xml_path: assets/xml/objects/object_gol.xml
+- name: objects/object_goma
+ xml_path: assets/xml/objects/object_goma.xml
+- name: objects/object_goroiwa
+ xml_path: assets/xml/objects/object_goroiwa.xml
+- name: objects/object_gr
+ xml_path: assets/xml/objects/object_gr.xml
+- name: objects/object_gs
+ xml_path: assets/xml/objects/object_gs.xml
+- name: objects/object_gt
+ xml_path: assets/xml/objects/object_gt.xml
+- name: objects/object_haka
+ xml_path: assets/xml/objects/object_haka.xml
+- name: objects/object_haka_door
+ xml_path: assets/xml/objects/object_haka_door.xml
+- name: objects/object_haka_objects
+ xml_path: assets/xml/objects/object_haka_objects.xml
+- name: objects/object_hakach_objects
+ xml_path: assets/xml/objects/object_hakach_objects.xml
+- name: objects/object_hata
+ xml_path: assets/xml/objects/object_hata.xml
+- name: objects/object_heavy_object
+ xml_path: assets/xml/objects/object_heavy_object.xml
+- name: objects/object_hidan_objects
+ xml_path: assets/xml/objects/object_hidan_objects.xml
+- name: objects/object_hintnuts
+ xml_path: assets/xml/objects/object_hintnuts.xml
+- name: objects/object_hni
+ xml_path: assets/xml/objects/object_hni.xml
+- name: objects/object_horse
+ xml_path: assets/xml/objects/object_horse.xml
+- name: objects/object_horse_ganon
+ xml_path: assets/xml/objects/object_horse_ganon.xml
+- name: objects/object_horse_link_child
+ xml_path: assets/xml/objects/object_horse_link_child.xml
+- name: objects/object_horse_normal
+ xml_path: assets/xml/objects/object_horse_normal.xml
+- name: objects/object_horse_zelda
+ xml_path: assets/xml/objects/object_horse_zelda.xml
+- name: objects/object_hs
+ xml_path: assets/xml/objects/object_hs.xml
+- name: objects/object_human
+ xml_path: assets/xml/objects/object_human.xml
+- name: objects/object_ice_objects
+ xml_path: assets/xml/objects/object_ice_objects.xml
+- name: objects/object_ik
+ xml_path: assets/xml/objects/object_ik.xml
+- name: objects/object_im
+ xml_path: assets/xml/objects/object_im.xml
+- name: objects/object_in
+ xml_path: assets/xml/objects/object_in.xml
+- name: objects/object_ingate
+ xml_path: assets/xml/objects/object_ingate.xml
+- name: objects/object_jj
+ xml_path: assets/xml/objects/object_jj.xml
+- name: objects/object_js
+ xml_path: assets/xml/objects/object_js.xml
+- name: objects/object_jya_door
+ xml_path: assets/xml/objects/object_jya_door.xml
+- name: objects/object_jya_iron
+ xml_path: assets/xml/objects/object_jya_iron.xml
+- name: objects/object_jya_obj
+ xml_path: assets/xml/objects/object_jya_obj.xml
+- name: objects/object_ka
+ xml_path: assets/xml/objects/object_ka.xml
+- name: objects/object_kanban
+ xml_path: assets/xml/objects/object_kanban.xml
+- name: objects/object_kibako2
+ xml_path: assets/xml/objects/object_kibako2.xml
+- name: objects/object_kingdodongo
+ xml_path: assets/xml/objects/object_kingdodongo.xml
+- name: objects/object_km1
+ xml_path: assets/xml/objects/object_km1.xml
+- name: objects/object_kusa
+ xml_path: assets/xml/objects/object_kusa.xml
+- name: objects/object_kw1
+ xml_path: assets/xml/objects/object_kw1.xml
+- name: objects/object_kz
+ xml_path: assets/xml/objects/object_kz.xml
+- name: objects/object_light_ring
+ xml_path: assets/xml/objects/object_light_ring.xml
+- name: objects/object_lightbox
+ xml_path: assets/xml/objects/object_lightbox.xml
+- name: objects/object_lightswitch
+ xml_path: assets/xml/objects/object_lightswitch.xml
+- name: objects/object_link_boy
+ xml_path: assets/xml/objects/object_link_boy.xml
+- name: objects/object_link_child
+ xml_path: assets/xml/objects/object_link_child.xml
+- name: objects/object_ma1
+ xml_path: assets/xml/objects/object_ma1.xml
+- name: objects/object_ma2
+ xml_path: assets/xml/objects/object_ma2.xml
+- name: objects/object_mag
+ xml_path: assets/xml/objects/object_mag.xml
+- name: objects/object_mamenoki
+ xml_path: assets/xml/objects/object_mamenoki.xml
+- name: objects/object_mastergolon
+ xml_path: assets/xml/objects/object_mastergolon.xml
+- name: objects/object_masterkokiri
+ xml_path: assets/xml/objects/object_masterkokiri.xml
+- name: objects/object_masterkokirihead
+ xml_path: assets/xml/objects/object_masterkokirihead.xml
+- name: objects/object_masterzoora
+ xml_path: assets/xml/objects/object_masterzoora.xml
+- name: objects/object_mb
+ xml_path: assets/xml/objects/object_mb.xml
+- name: objects/object_md
+ xml_path: assets/xml/objects/object_md.xml
+- name: objects/object_medal
+ xml_path: assets/xml/objects/object_medal.xml
+- name: objects/object_menkuri_objects
+ xml_path: assets/xml/objects/object_menkuri_objects.xml
+- name: objects/object_mir_ray
+ xml_path: assets/xml/objects/object_mir_ray.xml
+- name: objects/object_mizu_objects
+ xml_path: assets/xml/objects/object_mizu_objects.xml
+- name: objects/object_mjin
+ xml_path: assets/xml/objects/object_mjin.xml
+- name: objects/object_mjin_dark
+ xml_path: assets/xml/objects/object_mjin_dark.xml
+- name: objects/object_mjin_flame
+ xml_path: assets/xml/objects/object_mjin_flame.xml
+- name: objects/object_mjin_flash
+ xml_path: assets/xml/objects/object_mjin_flash.xml
+- name: objects/object_mjin_ice
+ xml_path: assets/xml/objects/object_mjin_ice.xml
+- name: objects/object_mjin_oka
+ xml_path: assets/xml/objects/object_mjin_oka.xml
+- name: objects/object_mjin_soul
+ xml_path: assets/xml/objects/object_mjin_soul.xml
+- name: objects/object_mjin_wind
+ xml_path: assets/xml/objects/object_mjin_wind.xml
+- name: objects/object_mk
+ xml_path: assets/xml/objects/object_mk.xml
+- name: objects/object_mm
+ xml_path: assets/xml/objects/object_mm.xml
+- name: objects/object_mo
+ xml_path: assets/xml/objects/object_mo.xml
+- name: objects/object_mori_hineri1
+ xml_path: assets/xml/objects/object_mori_hineri1.xml
+- name: objects/object_mori_hineri1a
+ xml_path: assets/xml/objects/object_mori_hineri1a.xml
+- name: objects/object_mori_hineri2
+ xml_path: assets/xml/objects/object_mori_hineri2.xml
+- name: objects/object_mori_hineri2a
+ xml_path: assets/xml/objects/object_mori_hineri2a.xml
+- name: objects/object_mori_objects
+ xml_path: assets/xml/objects/object_mori_objects.xml
+- name: objects/object_mori_tex
+ xml_path: assets/xml/objects/object_mori_tex.xml
+- name: objects/object_ms
+ xml_path: assets/xml/objects/object_ms.xml
+- name: objects/object_mu
+ xml_path: assets/xml/objects/object_mu.xml
+- name: objects/object_nb
+ xml_path: assets/xml/objects/object_nb.xml
+- name: objects/object_niw
+ xml_path: assets/xml/objects/object_niw.xml
+- name: objects/object_nwc
+ xml_path: assets/xml/objects/object_nwc.xml
+- name: objects/object_ny
+ xml_path: assets/xml/objects/object_ny.xml
+- name: objects/object_o_anime
+ xml_path: assets/xml/objects/object_o_anime.xml
+- name: objects/object_oA1
+ xml_path: assets/xml/objects/object_oA1.xml
+- name: objects/object_oA2
+ xml_path: assets/xml/objects/object_oA2.xml
+- name: objects/object_oA3
+ xml_path: assets/xml/objects/object_oA3.xml
+- name: objects/object_oA4
+ xml_path: assets/xml/objects/object_oA4.xml
+- name: objects/object_oA5
+ xml_path: assets/xml/objects/object_oA5.xml
+- name: objects/object_oA6
+ xml_path: assets/xml/objects/object_oA6.xml
+- name: objects/object_oA7
+ xml_path: assets/xml/objects/object_oA7.xml
+- name: objects/object_oA8
+ xml_path: assets/xml/objects/object_oA8.xml
+- name: objects/object_oA9
+ xml_path: assets/xml/objects/object_oA9.xml
+- name: objects/object_oA10
+ xml_path: assets/xml/objects/object_oA10.xml
+- name: objects/object_oA11
+ xml_path: assets/xml/objects/object_oA11.xml
+- name: objects/object_oB1
+ xml_path: assets/xml/objects/object_oB1.xml
+- name: objects/object_oB2
+ xml_path: assets/xml/objects/object_oB2.xml
+- name: objects/object_oB3
+ xml_path: assets/xml/objects/object_oB3.xml
+- name: objects/object_oB4
+ xml_path: assets/xml/objects/object_oB4.xml
+- name: objects/object_oE1
+ xml_path: assets/xml/objects/object_oE1.xml
+- name: objects/object_oE1s
+ xml_path: assets/xml/objects/object_oE1s.xml
+- name: objects/object_oE2
+ xml_path: assets/xml/objects/object_oE2.xml
+- name: objects/object_oE3
+ xml_path: assets/xml/objects/object_oE3.xml
+- name: objects/object_oE4
+ xml_path: assets/xml/objects/object_oE4.xml
+- name: objects/object_oE4s
+ xml_path: assets/xml/objects/object_oE4s.xml
+- name: objects/object_oE5
+ xml_path: assets/xml/objects/object_oE5.xml
+- name: objects/object_oE6
+ xml_path: assets/xml/objects/object_oE6.xml
+- name: objects/object_oE7
+ xml_path: assets/xml/objects/object_oE7.xml
+- name: objects/object_oE8
+ xml_path: assets/xml/objects/object_oE8.xml
+- name: objects/object_oE9
+ xml_path: assets/xml/objects/object_oE9.xml
+- name: objects/object_oE10
+ xml_path: assets/xml/objects/object_oE10.xml
+- name: objects/object_oE11
+ xml_path: assets/xml/objects/object_oE11.xml
+- name: objects/object_oE12
+ xml_path: assets/xml/objects/object_oE12.xml
+- name: objects/object_oE_anime
+ xml_path: assets/xml/objects/object_oE_anime.xml
+- name: objects/object_oF1d_map
+ xml_path: assets/xml/objects/object_oF1d_map.xml
+- name: objects/object_oF1s
+ xml_path: assets/xml/objects/object_oF1s.xml
+- name: objects/object_okuta
+ xml_path: assets/xml/objects/object_okuta.xml
+- name: objects/object_opening_demo1
+ xml_path: assets/xml/objects/object_opening_demo1.xml
+- name: objects/object_os
+ xml_path: assets/xml/objects/object_os.xml
+- name: objects/object_os_anime
+ xml_path: assets/xml/objects/object_os_anime.xml
+- name: objects/object_ossan
+ xml_path: assets/xml/objects/object_ossan.xml
+- name: objects/object_ouke_haka
+ xml_path: assets/xml/objects/object_ouke_haka.xml
+- name: objects/object_owl
+ xml_path: assets/xml/objects/object_owl.xml
+- name: objects/object_peehat
+ xml_path: assets/xml/objects/object_peehat.xml
+- name: objects/object_po_composer
+ xml_path: assets/xml/objects/object_po_composer.xml
+- name: objects/object_po_field
+ xml_path: assets/xml/objects/object_po_field.xml
+- name: objects/object_po_sisters
+ xml_path: assets/xml/objects/object_po_sisters.xml
+- name: objects/object_poh
+ xml_path: assets/xml/objects/object_poh.xml
+- name: objects/object_ps
+ xml_path: assets/xml/objects/object_ps.xml
+- name: objects/object_pu_box
+ xml_path: assets/xml/objects/object_pu_box.xml
+- name: objects/object_rd
+ xml_path: assets/xml/objects/object_rd.xml
+- name: objects/object_reeba
+ xml_path: assets/xml/objects/object_reeba.xml
+- name: objects/object_relay_objects
+ xml_path: assets/xml/objects/object_relay_objects.xml
+- name: objects/object_rl
+ xml_path: assets/xml/objects/object_rl.xml
+- name: objects/object_rr
+ xml_path: assets/xml/objects/object_rr.xml
+- name: objects/object_rs
+ xml_path: assets/xml/objects/object_rs.xml
+- name: objects/object_ru1
+ xml_path: assets/xml/objects/object_ru1.xml
+- name: objects/object_ru2
+ xml_path: assets/xml/objects/object_ru2.xml
+- name: objects/object_sa
+ xml_path: assets/xml/objects/object_sa.xml
+- name: objects/object_sb
+ xml_path: assets/xml/objects/object_sb.xml
+- name: objects/object_sd
+ xml_path: assets/xml/objects/object_sd.xml
+- name: objects/object_shop_dungen
+ xml_path: assets/xml/objects/object_shop_dungen.xml
+- name: objects/object_shopnuts
+ xml_path: assets/xml/objects/object_shopnuts.xml
+- name: objects/object_siofuki
+ xml_path: assets/xml/objects/object_siofuki.xml
+- name: objects/object_sk2
+ xml_path: assets/xml/objects/object_sk2.xml
+- name: objects/object_skb
+ xml_path: assets/xml/objects/object_skb.xml
+- name: objects/object_skj
+ xml_path: assets/xml/objects/object_skj.xml
+- name: objects/object_spot00_break
+ xml_path: assets/xml/objects/object_spot00_break.xml
+- name: objects/object_spot00_objects
+ xml_path: assets/xml/objects/object_spot00_objects.xml
+- name: objects/object_spot01_matoya
+ xml_path: assets/xml/objects/object_spot01_matoya.xml
+- name: objects/object_spot01_matoyab
+ xml_path: assets/xml/objects/object_spot01_matoyab.xml
+- name: objects/object_spot01_objects
+ xml_path: assets/xml/objects/object_spot01_objects.xml
+- name: objects/object_spot01_objects2
+ xml_path: assets/xml/objects/object_spot01_objects2.xml
+- name: objects/object_spot02_objects
+ xml_path: assets/xml/objects/object_spot02_objects.xml
+- name: objects/object_spot03_object
+ xml_path: assets/xml/objects/object_spot03_object.xml
+- name: objects/object_spot04_objects
+ xml_path: assets/xml/objects/object_spot04_objects.xml
+- name: objects/object_spot05_objects
+ xml_path: assets/xml/objects/object_spot05_objects.xml
+- name: objects/object_spot06_objects
+ xml_path: assets/xml/objects/object_spot06_objects.xml
+- name: objects/object_spot07_object
+ xml_path: assets/xml/objects/object_spot07_object.xml
+- name: objects/object_spot08_obj
+ xml_path: assets/xml/objects/object_spot08_obj.xml
+- name: objects/object_spot09_obj
+ xml_path: assets/xml/objects/object_spot09_obj.xml
+- name: objects/object_spot11_obj
+ xml_path: assets/xml/objects/object_spot11_obj.xml
+- name: objects/object_spot12_obj
+ xml_path: assets/xml/objects/object_spot12_obj.xml
+- name: objects/object_spot15_obj
+ xml_path: assets/xml/objects/object_spot15_obj.xml
+- name: objects/object_spot16_obj
+ xml_path: assets/xml/objects/object_spot16_obj.xml
+- name: objects/object_spot17_obj
+ xml_path: assets/xml/objects/object_spot17_obj.xml
+- name: objects/object_spot18_obj
+ xml_path: assets/xml/objects/object_spot18_obj.xml
+- name: objects/object_ssh
+ xml_path: assets/xml/objects/object_ssh.xml
+- name: objects/object_sst
+ xml_path: assets/xml/objects/object_sst.xml
+- name: objects/object_st
+ xml_path: assets/xml/objects/object_st.xml
+- name: objects/object_stream
+ xml_path: assets/xml/objects/object_stream.xml
+- name: objects/object_syokudai
+ xml_path: assets/xml/objects/object_syokudai.xml
+- name: objects/object_ta
+ xml_path: assets/xml/objects/object_ta.xml
+- name: objects/object_timeblock
+ xml_path: assets/xml/objects/object_timeblock.xml
+- name: objects/object_tite
+ xml_path: assets/xml/objects/object_tite.xml
+- name: objects/object_tk
+ xml_path: assets/xml/objects/object_tk.xml
+- name: objects/object_toki_objects
+ xml_path: assets/xml/objects/object_toki_objects.xml
+- name: objects/object_torch2
+ xml_path: assets/xml/objects/object_torch2.xml
+- name: objects/object_toryo
+ xml_path: assets/xml/objects/object_toryo.xml
+- name: objects/object_tp
+ xml_path: assets/xml/objects/object_tp.xml
+- name: objects/object_tr
+ xml_path: assets/xml/objects/object_tr.xml
+- name: objects/object_trap
+ xml_path: assets/xml/objects/object_trap.xml
+- name: objects/object_triforce_spot
+ xml_path: assets/xml/objects/object_triforce_spot.xml
+- name: objects/object_ts
+ xml_path: assets/xml/objects/object_ts.xml
+- name: objects/object_tsubo
+ xml_path: assets/xml/objects/object_tsubo.xml
+- name: objects/object_tw
+ xml_path: assets/xml/objects/object_tw.xml
+- name: objects/object_umajump
+ xml_path: assets/xml/objects/object_umajump.xml
+- name: objects/object_vali
+ xml_path: assets/xml/objects/object_vali.xml
+- name: objects/object_vase
+ xml_path: assets/xml/objects/object_vase.xml
+- name: objects/object_vm
+ xml_path: assets/xml/objects/object_vm.xml
+- name: objects/object_wallmaster
+ xml_path: assets/xml/objects/object_wallmaster.xml
+- name: objects/object_warp1
+ xml_path: assets/xml/objects/object_warp1.xml
+- name: objects/object_warp2
+ xml_path: assets/xml/objects/object_warp2.xml
+- name: objects/object_wf
+ xml_path: assets/xml/objects/object_wf.xml
+- name: objects/object_wood02
+ xml_path: assets/xml/objects/object_wood02.xml
+- name: objects/object_xc
+ xml_path: assets/xml/objects/object_xc.xml
+- name: objects/object_yabusame_point
+ xml_path: assets/xml/objects/object_yabusame_point.xml
+- name: objects/object_ydan_objects
+ xml_path: assets/xml/objects/object_ydan_objects.xml
+- name: objects/object_yukabyun
+ xml_path: assets/xml/objects/object_yukabyun.xml
+- name: objects/object_zf
+ xml_path: assets/xml/objects/object_zf.xml
+- name: objects/object_zg
+ xml_path: assets/xml/objects/object_zg.xml
+- name: objects/object_zl1
+ xml_path: assets/xml/objects/object_zl1.xml
+- name: objects/object_zl2
+ xml_path: assets/xml/objects/object_zl2.xml
+- name: objects/object_zl2_anime1
+ xml_path: assets/xml/objects/object_zl2_anime1.xml
+- name: objects/object_zl2_anime2
+ xml_path: assets/xml/objects/object_zl2_anime2.xml
+- name: objects/object_zl4
+ xml_path: assets/xml/objects/object_zl4.xml
+- name: objects/object_zo
+ xml_path: assets/xml/objects/object_zo.xml
+- name: overlays/ovl_Arrow_Fire
+ xml_path: assets/xml/overlays/ovl_Arrow_Fire.xml
+ start_offset: 0x980
+ end_offset: 0x1DA0
+- name: overlays/ovl_Arrow_Ice
+ xml_path: assets/xml/overlays/ovl_Arrow_Ice.xml
+ start_offset: 0x9A0
+ end_offset: 0x1DC0
+- name: overlays/ovl_Arrow_Light
+ xml_path: assets/xml/overlays/ovl_Arrow_Light.xml
+ start_offset: 0x9B0
+ end_offset: 0x1DD0
+- name: overlays/ovl_Bg_Ganon_Otyuka
+ xml_path: assets/xml/overlays/ovl_Bg_Ganon_Otyuka.xml
+ start_offset: 0x1100
+ end_offset: 0x24DC
+- name: overlays/ovl_Bg_Jya_Cobra
+ xml_path: assets/xml/overlays/ovl_Bg_Jya_Cobra.xml
+ start_offset: 0x1850
+ end_offset: 0x18C8
+- name: overlays/ovl_Boss_Dodongo
+ xml_path: assets/xml/overlays/ovl_Boss_Dodongo.xml
+ start_offset: 0x61E8
+ end_offset: 0x91E8
+- name: overlays/ovl_Boss_Ganon
+ xml_path: assets/xml/overlays/ovl_Boss_Ganon.xml
+ start_offset: 0xE3C8
+ end_offset: 0x20EE8
+- name: overlays/ovl_Boss_Ganon2
+ xml_path: assets/xml/overlays/ovl_Boss_Ganon2.xml
+ start_offset: 0x9F88
+ end_offset: 0x10438
+- name: overlays/ovl_Boss_Sst
+ xml_path: assets/xml/overlays/ovl_Boss_Sst.xml
+ start_offset: 0xA380
+ end_offset: 0xAD30
+- name: overlays/ovl_Demo_Shd
+ xml_path: assets/xml/overlays/ovl_Demo_Shd.xml
+ start_offset: 0x410
+ end_offset: 0x2390
+- name: overlays/ovl_Effect_Ss_Fhg_Flash
+ xml_path: assets/xml/overlays/ovl_Effect_Ss_Fhg_Flash.xml
+ start_offset: 0x9F0
+ end_offset: 0xEA8
+- name: overlays/ovl_En_Bili
+ xml_path: assets/xml/overlays/ovl_En_Bili.xml
+ start_offset: 0x1E40
+ end_offset: 0x1E60
+- name: overlays/ovl_En_Clear_Tag
+ xml_path: assets/xml/overlays/ovl_En_Clear_Tag.xml
+ start_offset: 0x2600
+ end_offset: 0x8900
+- name: overlays/ovl_En_Ganon_Mant
+ xml_path: assets/xml/overlays/ovl_En_Ganon_Mant.xml
+ start_offset: 0x11F8
+ end_offset: 0x40F8
+- name: overlays/ovl_En_Ganon_Organ
+ xml_path: assets/xml/overlays/ovl_En_Ganon_Organ.xml
+ start_offset: 0x368
+ end_offset: 0x6EF0
+- name: overlays/ovl_En_Holl
+ xml_path: assets/xml/overlays/ovl_En_Holl.xml
+ start_offset: 0xE68
+ end_offset: 0xED0
+- name: overlays/ovl_En_Jsjutan
+ xml_path: assets/xml/overlays/ovl_En_Jsjutan.xml
+ start_offset: 0x12C8
+ end_offset: 0x4C60
+- name: overlays/ovl_En_Kanban
+ xml_path: assets/xml/overlays/ovl_En_Kanban.xml
+ start_offset: 0x2E70
+ end_offset: 0x2F30
+- name: overlays/ovl_En_Sda
+ xml_path: assets/xml/overlays/ovl_En_Sda.xml
+ start_offset: 0x1498
+ end_offset: 0x1528
+- name: overlays/ovl_En_Ssh
+ xml_path: assets/xml/overlays/ovl_En_Ssh.xml
+ start_offset: 0x2150
+ end_offset: 0x21E0
+- name: overlays/ovl_En_St
+ xml_path: assets/xml/overlays/ovl_En_St.xml
+ start_offset: 0x26A0
+ end_offset: 0x2730
+- name: overlays/ovl_En_Sth
+ xml_path: assets/xml/overlays/ovl_En_Sth.xml
+ start_offset: 0xE70
+ end_offset: 0x3E44
+- name: overlays/ovl_End_Title
+ xml_path: assets/xml/overlays/ovl_End_Title.xml
+ start_offset: 0x6E0
+ end_offset: 0x4088
+- name: overlays/ovl_file_choose
+ xml_path: assets/xml/overlays/ovl_file_choose.xml
+ start_offset: 0xD740
+ end_offset: 0xDF80
+- name: overlays/ovl_Magic_Dark
+ xml_path: assets/xml/overlays/ovl_Magic_Dark.xml
+ start_offset: 0xC90
+ end_offset: 0x16C0
+- name: overlays/ovl_Magic_Fire
+ xml_path: assets/xml/overlays/ovl_Magic_Fire.xml
+ start_offset: 0xB50
+ end_offset: 0x21A0
+- name: overlays/ovl_Magic_Wind
+ xml_path: assets/xml/overlays/ovl_Magic_Wind.xml
+ start_offset: 0x6A0
+ end_offset: 0x1BB8
+- name: overlays/ovl_Oceff_Spot
+ xml_path: assets/xml/overlays/ovl_Oceff_Spot.xml
+ start_offset: 0x780
+ end_offset: 0xE58
+- name: overlays/ovl_Oceff_Storm
+ xml_path: assets/xml/overlays/ovl_Oceff_Storm.xml
+ start_offset: 0x750
+ end_offset: 0x1AE0
+- name: overlays/ovl_Oceff_Wipe
+ xml_path: assets/xml/overlays/ovl_Oceff_Wipe.xml
+ start_offset: 0x520
+ end_offset: 0xCE0
+- name: overlays/ovl_Oceff_Wipe2
+ xml_path: assets/xml/overlays/ovl_Oceff_Wipe2.xml
+ start_offset: 0x430
+ end_offset: 0x1698
+- name: overlays/ovl_Oceff_Wipe3
+ xml_path: assets/xml/overlays/ovl_Oceff_Wipe3.xml
+ start_offset: 0x430
+ end_offset: 0x1678
+- name: overlays/ovl_Oceff_Wipe4
+ xml_path: assets/xml/overlays/ovl_Oceff_Wipe4.xml
+ start_offset: 0x410
+ end_offset: 0xEF8
+- name: scenes/dungeons/bdan
+ xml_path: assets/xml/scenes/dungeons/bdan.xml
+- name: scenes/dungeons/bdan_boss
+ xml_path: assets/xml/scenes/dungeons/bdan_boss.xml
+- name: scenes/dungeons/Bmori1
+ xml_path: assets/xml/scenes/dungeons/Bmori1.xml
+- name: scenes/dungeons/ddan
+ xml_path: assets/xml/scenes/dungeons/ddan.xml
+- name: scenes/dungeons/ddan_boss
+ xml_path: assets/xml/scenes/dungeons/ddan_boss.xml
+- name: scenes/dungeons/FIRE_bs
+ xml_path: assets/xml/scenes/dungeons/FIRE_bs.xml
+- name: scenes/dungeons/ganon
+ xml_path: assets/xml/scenes/dungeons/ganon.xml
+- name: scenes/dungeons/ganon_boss
+ xml_path: assets/xml/scenes/dungeons/ganon_boss.xml
+- name: scenes/dungeons/ganon_demo
+ xml_path: assets/xml/scenes/dungeons/ganon_demo.xml
+- name: scenes/dungeons/ganon_final
+ xml_path: assets/xml/scenes/dungeons/ganon_final.xml
+- name: scenes/dungeons/ganon_sonogo
+ xml_path: assets/xml/scenes/dungeons/ganon_sonogo.xml
+- name: scenes/dungeons/ganontika
+ xml_path: assets/xml/scenes/dungeons/ganontika.xml
+- name: scenes/dungeons/ganontikasonogo
+ xml_path: assets/xml/scenes/dungeons/ganontikasonogo.xml
+- name: scenes/dungeons/gerudoway
+ xml_path: assets/xml/scenes/dungeons/gerudoway.xml
+- name: scenes/dungeons/HAKAdan
+ xml_path: assets/xml/scenes/dungeons/HAKAdan.xml
+- name: scenes/dungeons/HAKAdan_bs
+ xml_path: assets/xml/scenes/dungeons/HAKAdan_bs.xml
+- name: scenes/dungeons/HAKAdanCH
+ xml_path: assets/xml/scenes/dungeons/HAKAdanCH.xml
+- name: scenes/dungeons/HIDAN
+ xml_path: assets/xml/scenes/dungeons/HIDAN.xml
+- name: scenes/dungeons/ice_doukutu
+ xml_path: assets/xml/scenes/dungeons/ice_doukutu.xml
+- name: scenes/dungeons/jyasinboss
+ xml_path: assets/xml/scenes/dungeons/jyasinboss.xml
+- name: scenes/dungeons/jyasinzou
+ xml_path: assets/xml/scenes/dungeons/jyasinzou.xml
+- name: scenes/dungeons/men
+ xml_path: assets/xml/scenes/dungeons/men.xml
+- name: scenes/dungeons/MIZUsin
+ xml_path: assets/xml/scenes/dungeons/MIZUsin.xml
+- name: scenes/dungeons/MIZUsin_bs
+ xml_path: assets/xml/scenes/dungeons/MIZUsin_bs.xml
+- name: scenes/dungeons/moribossroom
+ xml_path: assets/xml/scenes/dungeons/moribossroom.xml
+- name: scenes/dungeons/ydan
+ xml_path: assets/xml/scenes/dungeons/ydan.xml
+- name: scenes/dungeons/ydan_boss
+ xml_path: assets/xml/scenes/dungeons/ydan_boss.xml
+- name: scenes/indoors/bowling
+ xml_path: assets/xml/scenes/indoors/bowling.xml
+- name: scenes/indoors/daiyousei_izumi
+ xml_path: assets/xml/scenes/indoors/daiyousei_izumi.xml
+- name: scenes/indoors/hairal_niwa
+ xml_path: assets/xml/scenes/indoors/hairal_niwa.xml
+- name: scenes/indoors/hairal_niwa_n
+ xml_path: assets/xml/scenes/indoors/hairal_niwa_n.xml
+- name: scenes/indoors/hakasitarelay
+ xml_path: assets/xml/scenes/indoors/hakasitarelay.xml
+- name: scenes/indoors/hut
+ xml_path: assets/xml/scenes/indoors/hut.xml
+- name: scenes/indoors/hylia_labo
+ xml_path: assets/xml/scenes/indoors/hylia_labo.xml
+- name: scenes/indoors/impa
+ xml_path: assets/xml/scenes/indoors/impa.xml
+- name: scenes/indoors/kakariko
+ xml_path: assets/xml/scenes/indoors/kakariko.xml
+- name: scenes/indoors/kenjyanoma
+ xml_path: assets/xml/scenes/indoors/kenjyanoma.xml
+- name: scenes/indoors/kokiri_home
+ xml_path: assets/xml/scenes/indoors/kokiri_home.xml
+- name: scenes/indoors/kokiri_home3
+ xml_path: assets/xml/scenes/indoors/kokiri_home3.xml
+- name: scenes/indoors/kokiri_home4
+ xml_path: assets/xml/scenes/indoors/kokiri_home4.xml
+- name: scenes/indoors/kokiri_home5
+ xml_path: assets/xml/scenes/indoors/kokiri_home5.xml
+- name: scenes/indoors/labo
+ xml_path: assets/xml/scenes/indoors/labo.xml
+- name: scenes/indoors/link_home
+ xml_path: assets/xml/scenes/indoors/link_home.xml
+- name: scenes/indoors/mahouya
+ xml_path: assets/xml/scenes/indoors/mahouya.xml
+- name: scenes/indoors/malon_stable
+ xml_path: assets/xml/scenes/indoors/malon_stable.xml
+- name: scenes/indoors/miharigoya
+ xml_path: assets/xml/scenes/indoors/miharigoya.xml
+- name: scenes/indoors/nakaniwa
+ xml_path: assets/xml/scenes/indoors/nakaniwa.xml
+- name: scenes/indoors/souko
+ xml_path: assets/xml/scenes/indoors/souko.xml
+- name: scenes/indoors/syatekijyou
+ xml_path: assets/xml/scenes/indoors/syatekijyou.xml
+- name: scenes/indoors/takaraya
+ xml_path: assets/xml/scenes/indoors/takaraya.xml
+- name: scenes/indoors/tent
+ xml_path: assets/xml/scenes/indoors/tent.xml
+- name: scenes/indoors/tokinoma
+ xml_path: assets/xml/scenes/indoors/tokinoma.xml
+- name: scenes/indoors/yousei_izumi_tate
+ xml_path: assets/xml/scenes/indoors/yousei_izumi_tate.xml
+- name: scenes/indoors/yousei_izumi_yoko
+ xml_path: assets/xml/scenes/indoors/yousei_izumi_yoko.xml
+- name: scenes/misc/enrui
+ xml_path: assets/xml/scenes/misc/enrui.xml
+- name: scenes/misc/entra
+ xml_path: assets/xml/scenes/misc/entra.xml
+- name: scenes/misc/entra_n
+ xml_path: assets/xml/scenes/misc/entra_n.xml
+- name: scenes/misc/hakaana
+ xml_path: assets/xml/scenes/misc/hakaana.xml
+- name: scenes/misc/hakaana2
+ xml_path: assets/xml/scenes/misc/hakaana2.xml
+- name: scenes/misc/hakaana_ouke
+ xml_path: assets/xml/scenes/misc/hakaana_ouke.xml
+- name: scenes/misc/hiral_demo
+ xml_path: assets/xml/scenes/misc/hiral_demo.xml
+- name: scenes/misc/kakariko3
+ xml_path: assets/xml/scenes/misc/kakariko3.xml
+- name: scenes/misc/kakusiana
+ xml_path: assets/xml/scenes/misc/kakusiana.xml
+- name: scenes/misc/kinsuta
+ xml_path: assets/xml/scenes/misc/kinsuta.xml
+- name: scenes/misc/market_alley
+ xml_path: assets/xml/scenes/misc/market_alley.xml
+- name: scenes/misc/market_alley_n
+ xml_path: assets/xml/scenes/misc/market_alley_n.xml
+- name: scenes/misc/market_day
+ xml_path: assets/xml/scenes/misc/market_day.xml
+- name: scenes/misc/market_night
+ xml_path: assets/xml/scenes/misc/market_night.xml
+- name: scenes/misc/market_ruins
+ xml_path: assets/xml/scenes/misc/market_ruins.xml
+- name: scenes/misc/shrine
+ xml_path: assets/xml/scenes/misc/shrine.xml
+- name: scenes/misc/shrine_n
+ xml_path: assets/xml/scenes/misc/shrine_n.xml
+- name: scenes/misc/shrine_r
+ xml_path: assets/xml/scenes/misc/shrine_r.xml
+- name: scenes/misc/turibori
+ xml_path: assets/xml/scenes/misc/turibori.xml
+- name: scenes/overworld/ganon_tou
+ xml_path: assets/xml/scenes/overworld/ganon_tou.xml
+- name: scenes/overworld/spot00
+ xml_path: assets/xml/scenes/overworld/spot00.xml
+- name: scenes/overworld/spot01
+ xml_path: assets/xml/scenes/overworld/spot01.xml
+- name: scenes/overworld/spot02
+ xml_path: assets/xml/scenes/overworld/spot02.xml
+- name: scenes/overworld/spot03
+ xml_path: assets/xml/scenes/overworld/spot03.xml
+- name: scenes/overworld/spot04
+ xml_path: assets/xml/scenes/overworld/spot04.xml
+- name: scenes/overworld/spot05
+ xml_path: assets/xml/scenes/overworld/spot05.xml
+- name: scenes/overworld/spot06
+ xml_path: assets/xml/scenes/overworld/spot06.xml
+- name: scenes/overworld/spot07
+ xml_path: assets/xml/scenes/overworld/spot07.xml
+- name: scenes/overworld/spot08
+ xml_path: assets/xml/scenes/overworld/spot08.xml
+- name: scenes/overworld/spot09
+ xml_path: assets/xml/scenes/overworld/spot09.xml
+- name: scenes/overworld/spot10
+ xml_path: assets/xml/scenes/overworld/spot10.xml
+- name: scenes/overworld/spot11
+ xml_path: assets/xml/scenes/overworld/spot11.xml
+- name: scenes/overworld/spot12
+ xml_path: assets/xml/scenes/overworld/spot12.xml
+- name: scenes/overworld/spot13
+ xml_path: assets/xml/scenes/overworld/spot13.xml
+- name: scenes/overworld/spot15
+ xml_path: assets/xml/scenes/overworld/spot15.xml
+- name: scenes/overworld/spot16
+ xml_path: assets/xml/scenes/overworld/spot16.xml
+- name: scenes/overworld/spot17
+ xml_path: assets/xml/scenes/overworld/spot17.xml
+- name: scenes/overworld/spot18
+ xml_path: assets/xml/scenes/overworld/spot18.xml
+- name: scenes/overworld/spot20
+ xml_path: assets/xml/scenes/overworld/spot20.xml
+- name: scenes/shops/alley_shop
+ xml_path: assets/xml/scenes/shops/alley_shop.xml
+- name: scenes/shops/drag
+ xml_path: assets/xml/scenes/shops/drag.xml
+- name: scenes/shops/face_shop
+ xml_path: assets/xml/scenes/shops/face_shop.xml
+- name: scenes/shops/golon
+ xml_path: assets/xml/scenes/shops/golon.xml
+- name: scenes/shops/kokiri_shop
+ xml_path: assets/xml/scenes/shops/kokiri_shop.xml
+- name: scenes/shops/night_shop
+ xml_path: assets/xml/scenes/shops/night_shop.xml
+- name: scenes/shops/shop1
+ xml_path: assets/xml/scenes/shops/shop1.xml
+- name: scenes/shops/zoora
+ xml_path: assets/xml/scenes/shops/zoora.xml
+- name: textures/backgrounds
+ xml_path: assets/xml/textures/backgrounds.xml
+- name: textures/do_action_static
+ xml_path: assets/xml/textures/do_action_static.xml
+- name: textures/icon_item_24_static
+ xml_path: assets/xml/textures/icon_item_24_static.xml
+- name: textures/icon_item_dungeon_static
+ xml_path: assets/xml/textures/icon_item_dungeon_static.xml
+- name: textures/icon_item_field_static
+ xml_path: assets/xml/textures/icon_item_field_static.xml
+- name: textures/icon_item_gameover_static
+ xml_path: assets/xml/textures/icon_item_gameover_static.xml
+- name: textures/icon_item_jpn_static
+ xml_path: assets/xml/textures/icon_item_jpn_static.xml
+- name: textures/icon_item_nes_static
+ xml_path: assets/xml/textures/icon_item_nes_static.xml
+- name: textures/icon_item_static
+ xml_path: assets/xml/textures/icon_item_static.xml
+- name: textures/item_name_static
+ xml_path: assets/xml/textures/item_name_static.xml
+- name: textures/kanji
+ xml_path: assets/xml/textures/kanji.xml
+- name: textures/map_48x85_static
+ xml_path: assets/xml/textures/map_48x85_static.xml
+- name: textures/map_grand_static
+ xml_path: assets/xml/textures/map_grand_static.xml
+- name: textures/map_i_static
+ xml_path: assets/xml/textures/map_i_static.xml
+- name: textures/map_name_static
+ xml_path: assets/xml/textures/map_name_static.xml
+- name: textures/message_static
+ xml_path: assets/xml/textures/message_static.xml
+- name: textures/message_texture_static
+ xml_path: assets/xml/textures/message_texture_static.xml
+- name: textures/nes_font_static
+ xml_path: assets/xml/textures/nes_font_static.xml
+- name: textures/nintendo_rogo_static
+ xml_path: assets/xml/textures/nintendo_rogo_static.xml
+- name: textures/parameter_static
+ xml_path: assets/xml/textures/parameter_static.xml
+- name: textures/place_title_cards
+ xml_path: assets/xml/textures/place_title_cards.xml
+- name: textures/skyboxes
+ xml_path: assets/xml/textures/skyboxes.xml
+- name: textures/title_static
+ xml_path: assets/xml/textures/title_static.xml
diff --git a/baseroms/gc-us/segments.csv b/baseroms/gc-us/segments.csv
new file mode 100644
index 000000000..857186741
--- /dev/null
+++ b/baseroms/gc-us/segments.csv
@@ -0,0 +1,1510 @@
+Name,VRAM start
+makerom,80000000
+boot,80000460
+dmadata,
+Audiobank,
+Audioseq,
+Audiotable,
+kanji,
+link_animetion,
+icon_item_static,
+icon_item_24_static,
+icon_item_field_static,
+icon_item_dungeon_static,
+icon_item_gameover_static,
+icon_item_jpn_static,
+icon_item_nes_static,
+item_name_static,
+map_name_static,
+do_action_static,
+message_static,
+message_texture_static,
+nes_font_static,
+jpn_message_data_static,
+nes_message_data_static,
+staff_message_data_static,
+map_grand_static,
+map_48x85_static,
+map_i_static,
+code,80010EE0
+ovl_title,80800000
+ovl_select,80800850
+ovl_opening,808034D0
+ovl_file_choose,80803630
+ovl_kaleido_scope,808135B0
+ovl_player_actor,8082FDA0
+ovl_map_mark_data,80856580
+ovl_En_Test,8085D0E0
+ovl_Arms_Hook,80862990
+ovl_Arrow_Fire,80863700
+ovl_Arrow_Ice,808655E0
+ovl_Arrow_Light,808674E0
+ovl_Bg_Bdan_Objects,808693F0
+ovl_Bg_Bdan_Switch,8086A6C0
+ovl_Bg_Bom_Guard,8086BAF0
+ovl_Bg_Bombwall,8086BD10
+ovl_Bg_Bowl_Wall,8086C5D0
+ovl_Bg_Breakwall,8086CF50
+ovl_Bg_Ddan_Jd,8086DDC0
+ovl_Bg_Ddan_Kd,8086E410
+ovl_Bg_Dodoago,8086ED00
+ovl_Bg_Dy_Yoseizo,8086FAB0
+ovl_Bg_Ganon_Otyuka,808728A0
+ovl_Bg_Gate_Shutter,80874EE0
+ovl_Bg_Gjyo_Bridge,80875370
+ovl_Bg_Gnd_Darkmeiro,80875860
+ovl_Bg_Gnd_Firemeiro,80876020
+ovl_Bg_Gnd_Iceblock,80876570
+ovl_Bg_Gnd_Nisekabe,80877670
+ovl_Bg_Gnd_Soulmeiro,808777E0
+ovl_Bg_Haka,80878040
+ovl_Bg_Haka_Gate,80878700
+ovl_Bg_Haka_Huta,808797A0
+ovl_Bg_Haka_Megane,8087A240
+ovl_Bg_Haka_MeganeBG,8087A640
+ovl_Bg_Haka_Sgami,8087AD00
+ovl_Bg_Haka_Ship,8087B920
+ovl_Bg_Haka_Trap,8087C370
+ovl_Bg_Haka_Tubo,8087D940
+ovl_Bg_Haka_Water,8087E360
+ovl_Bg_Haka_Zou,8087EB60
+ovl_Bg_Heavy_Block,8087FD50
+ovl_Bg_Hidan_Curtain,80881640
+ovl_Bg_Hidan_Dalm,808820E0
+ovl_Bg_Hidan_Firewall,80882930
+ovl_Bg_Hidan_Fslift,80883090
+ovl_Bg_Hidan_Fwbig,80883560
+ovl_Bg_Hidan_Hamstep,80884240
+ovl_Bg_Hidan_Hrock,808850F0
+ovl_Bg_Hidan_Kousi,80885920
+ovl_Bg_Hidan_Kowarerukabe,80885EB0
+ovl_Bg_Hidan_Rock,80886D90
+ovl_Bg_Hidan_Rsekizou,80887E90
+ovl_Bg_Hidan_Sekizou,80888A70
+ovl_Bg_Hidan_Sima,80889EC0
+ovl_Bg_Hidan_Syoku,8088ADC0
+ovl_Bg_Ice_Objects,8088B220
+ovl_Bg_Ice_Shelter,8088C160
+ovl_Bg_Ice_Shutter,8088D3A0
+ovl_Bg_Ice_Turara,8088D810
+ovl_Bg_Ingate,8088E040
+ovl_Bg_Jya_1flift,8088E3D0
+ovl_Bg_Jya_Amishutter,8088EA60
+ovl_Bg_Jya_Bigmirror,8088EDF0
+ovl_Bg_Jya_Block,8088F640
+ovl_Bg_Jya_Bombchuiwa,8088F8B0
+ovl_Bg_Jya_Bombiwa,808903F0
+ovl_Bg_Jya_Cobra,808909B0
+ovl_Bg_Jya_Goroiwa,808926F0
+ovl_Bg_Jya_Haheniron,80892E70
+ovl_Bg_Jya_Ironobj,80893660
+ovl_Bg_Jya_Kanaami,80894410
+ovl_Bg_Jya_Lift,808947C0
+ovl_Bg_Jya_Megami,80894D10
+ovl_Bg_Jya_Zurerukabe,80895F00
+ovl_Bg_Menkuri_Eye,808965B0
+ovl_Bg_Menkuri_Kaiten,80896A50
+ovl_Bg_Menkuri_Nisekabe,80896BE0
+ovl_Bg_Mizu_Bwall,80896D30
+ovl_Bg_Mizu_Movebg,80898200
+ovl_Bg_Mizu_Shutter,80899390
+ovl_Bg_Mizu_Uzu,80899B90
+ovl_Bg_Mizu_Water,80899D60
+ovl_Bg_Mjin,8089AA30
+ovl_Bg_Mori_Bigst,8089AE20
+ovl_Bg_Mori_Elevator,8089B750
+ovl_Bg_Mori_Hashigo,8089C240
+ovl_Bg_Mori_Hashira4,8089CB00
+ovl_Bg_Mori_Hineri,8089D090
+ovl_Bg_Mori_Idomizu,8089DDE0
+ovl_Bg_Mori_Kaitenkabe,8089E420
+ovl_Bg_Mori_Rakkatenjo,8089EA90
+ovl_Bg_Po_Event,8089F410
+ovl_Bg_Po_Syokudai,808A1250
+ovl_Bg_Pushbox,808A1BC0
+ovl_Bg_Relay_Objects,808A1EC0
+ovl_Bg_Spot00_Break,808A2670
+ovl_Bg_Spot00_Hanebasi,808A2810
+ovl_Bg_Spot01_Fusya,808A3920
+ovl_Bg_Spot01_Idohashira,808A3BC0
+ovl_Bg_Spot01_Idomizu,808A47C0
+ovl_Bg_Spot01_Idosoko,808A4AE0
+ovl_Bg_Spot01_Objects2,808A4CF0
+ovl_Bg_Spot02_Objects,808A51B0
+ovl_Bg_Spot03_Taki,808A6510
+ovl_Bg_Spot05_Soko,808A6E30
+ovl_Bg_Spot06_Objects,808A7150
+ovl_Bg_Spot07_Taki,808A8550
+ovl_Bg_Spot08_Bakudankabe,808A8B40
+ovl_Bg_Spot08_Iceblock,808A91E0
+ovl_Bg_Spot09_Obj,808AA220
+ovl_Bg_Spot11_Bakudankabe,808AA740
+ovl_Bg_Spot11_Oasis,808AAD80
+ovl_Bg_Spot12_Gate,808AB4B0
+ovl_Bg_Spot12_Saku,808AB8C0
+ovl_Bg_Spot15_Rrbox,808ABD80
+ovl_Bg_Spot15_Saku,808ACB60
+ovl_Bg_Spot16_Bombstone,808ACEA0
+ovl_Bg_Spot16_Doughnut,808AE3F0
+ovl_Bg_Spot17_Bakudankabe,808AE9B0
+ovl_Bg_Spot17_Funen,808AF0A0
+ovl_Bg_Spot18_Basket,808AF2F0
+ovl_Bg_Spot18_Futa,808B02E0
+ovl_Bg_Spot18_Obj,808B0480
+ovl_Bg_Spot18_Shutter,808B0D50
+ovl_Bg_Sst_Floor,808B12A0
+ovl_Bg_Toki_Hikari,808B1800
+ovl_Bg_Toki_Swd,808B25A0
+ovl_Bg_Treemouth,808B3BF0
+ovl_Bg_Umajump,808B5250
+ovl_Bg_Vb_Sima,808B53E0
+ovl_Bg_Ydan_Hasi,808B5B00
+ovl_Bg_Ydan_Maruta,808B62B0
+ovl_Bg_Ydan_Sp,808B6990
+ovl_Bg_Zg,808B80B0
+ovl_Boss_Dodongo,808B8500
+ovl_Boss_Fd,808C2000
+ovl_Boss_Fd2,808C9360
+ovl_Boss_Ganon,808CD090
+ovl_Boss_Ganon2,808F2EC0
+ovl_Boss_Ganondrof,80905D30
+ovl_Boss_Goma,8090AAC0
+ovl_Boss_Mo,80910A60
+ovl_Boss_Sst,80921040
+ovl_Boss_Tw,8092D610
+ovl_Boss_Va,809431E0
+ovl_Demo_6K,8095A470
+ovl_Demo_Du,8095D1D0
+ovl_Demo_Ec,809609B0
+ovl_Demo_Effect,80964210
+ovl_Demo_Ext,80969DB0
+ovl_Demo_Geff,8096A700
+ovl_Demo_Gj,8096AF20
+ovl_Demo_Go,8096EBD0
+ovl_Demo_Gt,8096F920
+ovl_Demo_Ik,80974F30
+ovl_Demo_Im,80976440
+ovl_Demo_Kankyo,8097A3B0
+ovl_Demo_Kekkai,8097E0A0
+ovl_Demo_Sa,8097F390
+ovl_Demo_Shd,80981EB0
+ovl_Demo_Tre_Lgt,809842C0
+ovl_Door_Ana,809849D0
+ovl_Door_Gerudo,80985040
+ovl_Door_Killer,80985630
+ovl_Door_Shutter,80986BA0
+ovl_Door_Toki,80988E60
+ovl_Door_Warp1,80988FC0
+ovl_Efc_Erupc,8098D2D0
+ovl_Eff_Dust,8098DDC0
+ovl_Effect_Ss_Blast,8098F190
+ovl_Effect_Ss_Bomb,8098F520
+ovl_Effect_Ss_Bomb2,8098F950
+ovl_Effect_Ss_Bubble,80990250
+ovl_Effect_Ss_D_Fire,809906D0
+ovl_Effect_Ss_Dead_Db,80990BC0
+ovl_Effect_Ss_Dead_Dd,809910A0
+ovl_Effect_Ss_Dead_Ds,80991630
+ovl_Effect_Ss_Dead_Sound,80991AB0
+ovl_Effect_Ss_Dt_Bubble,80991BF0
+ovl_Effect_Ss_Dust,80992180
+ovl_Effect_Ss_En_Fire,809929C0
+ovl_Effect_Ss_En_Ice,80993110
+ovl_Effect_Ss_Extra,809939D0
+ovl_Effect_Ss_Fcircle,80993D90
+ovl_Effect_Ss_Fhg_Flash,80994240
+ovl_Effect_Ss_Fire_Tail,809951C0
+ovl_Effect_Ss_G_Fire,809958C0
+ovl_Effect_Ss_G_Magma,80995B50
+ovl_Effect_Ss_G_Magma2,80995DB0
+ovl_Effect_Ss_G_Ripple,809962C0
+ovl_Effect_Ss_G_Spk,80996820
+ovl_Effect_Ss_G_Splash,80996DD0
+ovl_Effect_Ss_Hahen,80997280
+ovl_Effect_Ss_HitMark,809978C0
+ovl_Effect_Ss_Ice_Piece,80997E10
+ovl_Effect_Ss_Ice_Smoke,80998250
+ovl_Effect_Ss_K_Fire,80998730
+ovl_Effect_Ss_Kakera,80998B70
+ovl_Effect_Ss_KiraKira,80999C00
+ovl_Effect_Ss_Lightning,8099A270
+ovl_Effect_Ss_Sibuki,8099A940
+ovl_Effect_Ss_Sibuki2,8099B010
+ovl_Effect_Ss_Solder_Srch_Ball,8099B340
+ovl_Effect_Ss_Stick,8099B4F0
+ovl_Effect_Ss_Stone1,8099B890
+ovl_Elf_Msg,8099BC10
+ovl_Elf_Msg2,8099C200
+ovl_En_Am,8099C670
+ovl_En_Ani,8099EA70
+ovl_En_Anubice,8099F7E0
+ovl_En_Anubice_Fire,809A0A90
+ovl_En_Anubice_Tag,809A1850
+ovl_En_Arow_Trap,809A1B20
+ovl_En_Arrow,809A1C70
+ovl_En_Attack_Niw,809A3370
+ovl_En_Ba,809A45D0
+ovl_En_Bb,809A64A0
+ovl_En_Bdfire,809AA180
+ovl_En_Bigokuta,809AAD20
+ovl_En_Bili,809AD820
+ovl_En_Bird,809AFAF0
+ovl_En_Blkobj,809AFFB0
+ovl_En_Bom,809B0510
+ovl_En_Bom_Bowl_Man,809B13E0
+ovl_En_Bom_Bowl_Pit,809B2920
+ovl_En_Bom_Chu,809B3290
+ovl_En_Bombf,809B4930
+ovl_En_Boom,809B5DC0
+ovl_En_Box,809B6690
+ovl_En_Brob,809B81F0
+ovl_En_Bubble,809B92E0
+ovl_En_Butte,809BA700
+ovl_En_Bw,809BBCD0
+ovl_En_Bx,809BF060
+ovl_En_Changer,809BFB60
+ovl_En_Clear_Tag,809C0540
+ovl_En_Cow,809CBAE0
+ovl_En_Crow,809CCF40
+ovl_En_Cs,809CE5E0
+ovl_En_Daiku,809CF810
+ovl_En_Daiku_Kakariko,809D0F50
+ovl_En_Dekubaba,809D2310
+ovl_En_Dekunuts,809D5DC0
+ovl_En_Dh,809D75C0
+ovl_En_Dha,809D90A0
+ovl_En_Diving_Game,809DA0A0
+ovl_En_Dns,809DBA50
+ovl_En_Dnt_Demo,809DCDE0
+ovl_En_Dnt_Jiji,809DDB00
+ovl_En_Dnt_Nomal,809DF020
+ovl_En_Dodojr,809E1E20
+ovl_En_Dodongo,809E3CC0
+ovl_En_Dog,809E6A60
+ovl_En_Door,809E7C10
+ovl_En_Ds,809E8A50
+ovl_En_Du,809E9670
+ovl_En_Dy_Extra,809EB100
+ovl_En_Eg,809EB6A0
+ovl_En_Eiyer,809EB850
+ovl_En_Elf,809ED4B0
+ovl_En_Encount1,809F1E70
+ovl_En_Encount2,809F29D0
+ovl_En_Ex_Item,809F3C00
+ovl_En_Ex_Ruppy,809F4D80
+ovl_En_Fd,809F5E40
+ovl_En_Fd_Fire,809F8AE0
+ovl_En_Fhg_Fire,809F97F0
+ovl_En_Fire_Rock,809FBE90
+ovl_En_Firefly,809FCFA0
+ovl_En_Fish,809FF110
+ovl_En_Floormas,80A01220
+ovl_En_Fr,80A04600
+ovl_En_Fu,80A07090
+ovl_En_Fw,80A07DE0
+ovl_En_Fz,80A095A0
+ovl_En_G_Switch,80A0B5B0
+ovl_En_Ganon_Mant,80A0CDD0
+ovl_En_Ganon_Organ,80A11000
+ovl_En_Gb,80A18040
+ovl_En_Ge1,80A19770
+ovl_En_Ge2,80A1B7A0
+ovl_En_Ge3,80A1D140
+ovl_En_GeldB,80A1DD80
+ovl_En_GirlA,80A23130
+ovl_En_Gm,80A25A50
+ovl_En_Go,80A26780
+ovl_En_Go2,80A2ADC0
+ovl_En_Goma,80A30E00
+ovl_En_Goroiwa,80A33AB0
+ovl_En_Gs,80A35E70
+ovl_En_Guest,80A37CE0
+ovl_En_Hata,80A38680
+ovl_En_Heishi1,80A38C10
+ovl_En_Heishi2,80A3A120
+ovl_En_Heishi3,80A3C320
+ovl_En_Heishi4,80A3CCF0
+ovl_En_Hintnuts,80A3DBF0
+ovl_En_Holl,80A3F620
+ovl_En_Honotrap,80A405F0
+ovl_En_Horse,80A41B50
+ovl_En_Horse_Game_Check,80A4DDB0
+ovl_En_Horse_Ganon,80A4EE80
+ovl_En_Horse_Link_Child,80A4FC00
+ovl_En_Horse_Normal,80A51A00
+ovl_En_Horse_Zelda,80A54020
+ovl_En_Hs,80A54B10
+ovl_En_Hs2,80A556B0
+ovl_En_Hy,80A55C90
+ovl_En_Ice_Hono,80A595D0
+ovl_En_Ik,80A5A7C0
+ovl_En_In,80A5EE20
+ovl_En_Insect,80A61BC0
+ovl_En_Ishi,80A640E0
+ovl_En_It,80A6D230
+ovl_En_Jj,80A6D3C0
+ovl_En_Js,80A6E990
+ovl_En_Jsjutan,80A6F360
+ovl_En_Kakasi,80A74C90
+ovl_En_Kakasi2,80A759D0
+ovl_En_Kakasi3,80A760F0
+ovl_En_Kanban,80A771D0
+ovl_En_Karebaba,80A7A320
+ovl_En_Ko,80A7BC10
+ovl_En_Kusa,80A7FD50
+ovl_En_Kz,80A81230
+ovl_En_Light,80A827D0
+ovl_En_Lightbox,80A835D0
+ovl_En_M_Fire1,80A83A50
+ovl_En_M_Thunder,80A83BF0
+ovl_En_Ma1,80A851F0
+ovl_En_Ma2,80A864D0
+ovl_En_Ma3,80A87530
+ovl_En_Mag,80A884E0
+ovl_En_Mb,80A8AE10
+ovl_En_Md,80A8F040
+ovl_En_Mk,80A916B0
+ovl_En_Mm,80A92540
+ovl_En_Mm2,80A93BA0
+ovl_En_Ms,80A94960
+ovl_En_Mu,80A95050
+ovl_En_Nb,80A95970
+ovl_En_Niw,80A99F40
+ovl_En_Niw_Girl,80A9D270
+ovl_En_Niw_Lady,80A9DD40
+ovl_En_Nutsball,80A9F640
+ovl_En_Nwc,80A9FC60
+ovl_En_Ny,80AA0680
+ovl_En_OE2,80AA1FC0
+ovl_En_Okarina_Effect,80AA20A0
+ovl_En_Okarina_Tag,80AA2460
+ovl_En_Okuta,80AA3960
+ovl_En_Ossan,80AA5F40
+ovl_En_Owl,80AAC520
+ovl_En_Part,80AB00C0
+ovl_En_Peehat,80AB1720
+ovl_En_Po_Desert,80AB4E20
+ovl_En_Po_Field,80AB5BE0
+ovl_En_Po_Relay,80AB9670
+ovl_En_Po_Sisters,80ABAD80
+ovl_En_Poh,80ABFA70
+ovl_En_Pu_box,80AC3C60
+ovl_En_Rd,80AC3FA0
+ovl_En_Reeba,80AC6860
+ovl_En_River_Sound,80AC82D0
+ovl_En_Rl,80AC8C60
+ovl_En_Rr,80AC9B40
+ovl_En_Ru1,80ACC070
+ovl_En_Ru2,80AD3710
+ovl_En_Sa,80AD6490
+ovl_En_Sb,80AD8700
+ovl_En_Scene_Change,80AD9B40
+ovl_En_Sda,80AD9C70
+ovl_En_Shopnuts,80ADB360
+ovl_En_Si,80ADC270
+ovl_En_Siofuki,80ADC770
+ovl_En_Skb,80ADD520
+ovl_En_Skj,80ADEE10
+ovl_En_Skjneedle,80AE2760
+ovl_En_Ssh,80AE2A70
+ovl_En_St,80AE5060
+ovl_En_Sth,80AE7CD0
+ovl_En_Stream,80AEBD90
+ovl_En_Sw,80AEC320
+ovl_En_Syateki_Itm,80AEFB10
+ovl_En_Syateki_Man,80AF08B0
+ovl_En_Syateki_Niw,80AF1670
+ovl_En_Ta,80AF3700
+ovl_En_Takara_Man,80AF70C0
+ovl_En_Tana,80AF7980
+ovl_En_Tg,80AF7C30
+ovl_En_Tite,80AF8310
+ovl_En_Tk,80AFB0B0
+ovl_En_Torch,80AFCEE0
+ovl_En_Torch2,80AFCFD0
+ovl_En_Toryo,80AFF770
+ovl_En_Tp,80B00400
+ovl_En_Tr,80B02270
+ovl_En_Trap,80B03B70
+ovl_En_Tubo_Trap,80B04E10
+ovl_En_Vali,80B05AB0
+ovl_En_Vase,80B08170
+ovl_En_Vb_Ball,80B08270
+ovl_En_Viewer,80B09420
+ovl_En_Vm,80B0C2E0
+ovl_En_Wall_Tubo,80B0DBA0
+ovl_En_Wallmas,80B0E090
+ovl_En_Weather_Tag,80B0FAA0
+ovl_En_Weiyer,80B10990
+ovl_En_Wf,80B12390
+ovl_En_Wonder_Item,80B166A0
+ovl_En_Wonder_Talk,80B173D0
+ovl_En_Wonder_Talk2,80B17A60
+ovl_En_Wood02,80B18100
+ovl_En_Xc,80B192E0
+ovl_En_Yabusame_Mark,80B1FA70
+ovl_En_Yukabyun,80B20140
+ovl_En_Zf,80B20750
+ovl_En_Zl1,80B27240
+ovl_En_Zl2,80B2B050
+ovl_En_Zl3,80B2F750
+ovl_En_Zl4,80B375A0
+ovl_En_Zo,80B3BFD0
+ovl_En_fHG,80B3E590
+ovl_End_Title,80B40EC0
+ovl_Fishing,80B44FE0
+ovl_Item_B_Heart,80B5FB80
+ovl_Item_Etcetera,80B5FF90
+ovl_Item_Inbox,80B60860
+ovl_Item_Ocarina,80B609C0
+ovl_Item_Shield,80B61190
+ovl_Magic_Dark,80B61BA0
+ovl_Magic_Fire,80B633F0
+ovl_Magic_Wind,80B656F0
+ovl_Mir_Ray,80B673F0
+ovl_Obj_Bean,80B68CA0
+ovl_Obj_Blockstop,80B6B430
+ovl_Obj_Bombiwa,80B6B5D0
+ovl_Obj_Comb,80B6BB40
+ovl_Obj_Dekujr,80B6C3A0
+ovl_Obj_Elevator,80B6C9E0
+ovl_Obj_Hamishi,80B6CDA0
+ovl_Obj_Hana,80B6D5F0
+ovl_Obj_Hsblock,80B6D900
+ovl_Obj_Ice_Poly,80B6DED0
+ovl_Obj_Kibako,80B6E880
+ovl_Obj_Kibako2,80B6F580
+ovl_Obj_Lift,80B6FC40
+ovl_Obj_Lightswitch,80B70660
+ovl_Obj_Makekinsuta,80B71A90
+ovl_Obj_Makeoshihiki,80B71BE0
+ovl_Obj_Mure,80B72070
+ovl_Obj_Mure2,80B73080
+ovl_Obj_Mure3,80B73AA0
+ovl_Obj_Oshihiki,80B74270
+ovl_Obj_Roomtimer,80B75D20
+ovl_Obj_Switch,80B75F70
+ovl_Obj_Syokudai,80B77D50
+ovl_Obj_Timeblock,80B789A0
+ovl_Obj_Tsubo,80B795F0
+ovl_Obj_Warp2block,80B7A5E0
+ovl_Object_Kankyo,80B7B110
+ovl_Oceff_Spot,80B7E390
+ovl_Oceff_Storm,80B7F2C0
+ovl_Oceff_Wipe,80B80E70
+ovl_Oceff_Wipe2,80B81BF0
+ovl_Oceff_Wipe3,80B83360
+ovl_Oceff_Wipe4,80B84AB0
+ovl_Shot_Sun,80B85A90
+gameplay_keep,
+gameplay_field_keep,
+gameplay_dangeon_keep,
+gameplay_object_exchange_static,
+object_link_boy,
+object_link_child,
+object_box,
+object_human,
+object_okuta,
+object_poh,
+object_wallmaster,
+object_dy_obj,
+object_firefly,
+object_dodongo,
+object_fire,
+object_niw,
+object_tite,
+object_reeba,
+object_peehat,
+object_kingdodongo,
+object_horse,
+object_zf,
+object_goma,
+object_zl1,
+object_gol,
+object_bubble,
+object_dodojr,
+object_torch2,
+object_bl,
+object_tp,
+object_oA1,
+object_st,
+object_bw,
+object_ei,
+object_horse_normal,
+object_oB1,
+object_o_anime,
+object_spot04_objects,
+object_ddan_objects,
+object_hidan_objects,
+object_horse_ganon,
+object_oA2,
+object_spot00_objects,
+object_mb,
+object_bombf,
+object_sk2,
+object_oE1,
+object_oE_anime,
+object_oE2,
+object_ydan_objects,
+object_gnd,
+object_am,
+object_dekubaba,
+object_oA3,
+object_oA4,
+object_oA5,
+object_oA6,
+object_oA7,
+object_jj,
+object_oA8,
+object_oA9,
+object_oB2,
+object_oB3,
+object_oB4,
+object_horse_zelda,
+object_opening_demo1,
+object_warp1,
+object_b_heart,
+object_dekunuts,
+object_oE3,
+object_oE4,
+object_menkuri_objects,
+object_oE5,
+object_oE6,
+object_oE7,
+object_oE8,
+object_oE9,
+object_oE10,
+object_oE11,
+object_oE12,
+object_vali,
+object_oA10,
+object_oA11,
+object_mizu_objects,
+object_fhg,
+object_ossan,
+object_mori_hineri1,
+object_Bb,
+object_toki_objects,
+object_yukabyun,
+object_zl2,
+object_mjin,
+object_mjin_flash,
+object_mjin_dark,
+object_mjin_flame,
+object_mjin_ice,
+object_mjin_soul,
+object_mjin_wind,
+object_mjin_oka,
+object_haka_objects,
+object_spot06_objects,
+object_ice_objects,
+object_relay_objects,
+object_mori_hineri1a,
+object_mori_hineri2,
+object_mori_hineri2a,
+object_mori_objects,
+object_mori_tex,
+object_spot08_obj,
+object_warp2,
+object_hata,
+object_bird,
+object_wood02,
+object_lightbox,
+object_pu_box,
+object_trap,
+object_vase,
+object_im,
+object_ta,
+object_tk,
+object_xc,
+object_vm,
+object_bv,
+object_hakach_objects,
+object_efc_crystal_light,
+object_efc_fire_ball,
+object_efc_flash,
+object_efc_lgt_shower,
+object_efc_star_field,
+object_god_lgt,
+object_light_ring,
+object_triforce_spot,
+object_medal,
+object_bdan_objects,
+object_sd,
+object_rd,
+object_po_sisters,
+object_heavy_object,
+object_gndd,
+object_fd,
+object_du,
+object_fw,
+object_horse_link_child,
+object_spot02_objects,
+object_haka,
+object_ru1,
+object_syokudai,
+object_fd2,
+object_dh,
+object_rl,
+object_efc_tw,
+object_demo_tre_lgt,
+object_gi_key,
+object_mir_ray,
+object_brob,
+object_gi_jewel,
+object_spot09_obj,
+object_spot18_obj,
+object_bdoor,
+object_spot17_obj,
+object_shop_dungen,
+object_nb,
+object_mo,
+object_sb,
+object_gi_melody,
+object_gi_heart,
+object_gi_compass,
+object_gi_bosskey,
+object_gi_medal,
+object_gi_nuts,
+object_sa,
+object_gi_hearts,
+object_gi_arrowcase,
+object_gi_bombpouch,
+object_in,
+object_tr,
+object_spot16_obj,
+object_oE1s,
+object_oE4s,
+object_os_anime,
+object_gi_bottle,
+object_gi_stick,
+object_gi_map,
+object_oF1d_map,
+object_ru2,
+object_gi_shield_1,
+object_dekujr,
+object_gi_magicpot,
+object_gi_bomb_1,
+object_oF1s,
+object_ma2,
+object_gi_purse,
+object_hni,
+object_tw,
+object_rr,
+object_bxa,
+object_anubice,
+object_gi_gerudo,
+object_gi_arrow,
+object_gi_bomb_2,
+object_gi_egg,
+object_gi_scale,
+object_gi_shield_2,
+object_gi_hookshot,
+object_gi_ocarina,
+object_gi_milk,
+object_ma1,
+object_ganon,
+object_sst,
+object_ny,
+object_fr,
+object_gi_pachinko,
+object_gi_boomerang,
+object_gi_bow,
+object_gi_glasses,
+object_gi_liquid,
+object_ani,
+object_demo_6k,
+object_gi_shield_3,
+object_gi_letter,
+object_spot15_obj,
+object_jya_obj,
+object_gi_clothes,
+object_gi_bean,
+object_gi_fish,
+object_gi_saw,
+object_gi_hammer,
+object_gi_grass,
+object_gi_longsword,
+object_spot01_objects,
+object_md,
+object_km1,
+object_kw1,
+object_zo,
+object_kz,
+object_umajump,
+object_masterkokiri,
+object_masterkokirihead,
+object_mastergolon,
+object_masterzoora,
+object_aob,
+object_ik,
+object_ahg,
+object_cne,
+object_gi_niwatori,
+object_skj,
+object_gi_bottle_letter,
+object_bji,
+object_bba,
+object_gi_ocarina_0,
+object_ds,
+object_ane,
+object_boj,
+object_spot03_object,
+object_spot07_object,
+object_fz,
+object_bob,
+object_ge1,
+object_yabusame_point,
+object_gi_boots_2,
+object_gi_seed,
+object_gnd_magic,
+object_d_elevator,
+object_d_hsblock,
+object_d_lift,
+object_mamenoki,
+object_goroiwa,
+object_toryo,
+object_daiku,
+object_nwc,
+object_blkobj,
+object_gm,
+object_ms,
+object_hs,
+object_ingate,
+object_lightswitch,
+object_kusa,
+object_tsubo,
+object_gi_gloves,
+object_gi_coin,
+object_kanban,
+object_gjyo_objects,
+object_owl,
+object_mk,
+object_fu,
+object_gi_ki_tan_mask,
+object_gi_redead_mask,
+object_gi_skj_mask,
+object_gi_rabit_mask,
+object_gi_truth_mask,
+object_ganon_objects,
+object_siofuki,
+object_stream,
+object_mm,
+object_fa,
+object_os,
+object_gi_eye_lotion,
+object_gi_powder,
+object_gi_mushroom,
+object_gi_ticketstone,
+object_gi_brokensword,
+object_js,
+object_cs,
+object_gi_prescription,
+object_gi_bracelet,
+object_gi_soldout,
+object_gi_frog,
+object_mag,
+object_door_gerudo,
+object_gt,
+object_efc_erupc,
+object_zl2_anime1,
+object_zl2_anime2,
+object_gi_golonmask,
+object_gi_zoramask,
+object_gi_gerudomask,
+object_ganon2,
+object_ka,
+object_ts,
+object_zg,
+object_gi_hoverboots,
+object_gi_m_arrow,
+object_ds2,
+object_ec,
+object_fish,
+object_gi_sutaru,
+object_gi_goddess,
+object_ssh,
+object_bigokuta,
+object_bg,
+object_spot05_objects,
+object_spot12_obj,
+object_bombiwa,
+object_hintnuts,
+object_rs,
+object_spot00_break,
+object_gla,
+object_shopnuts,
+object_geldb,
+object_gr,
+object_dog,
+object_jya_iron,
+object_jya_door,
+object_spot01_objects2,
+object_spot11_obj,
+object_kibako2,
+object_dns,
+object_dnk,
+object_gi_fire,
+object_gi_insect,
+object_gi_butterfly,
+object_gi_ghost,
+object_gi_soul,
+object_bowl,
+object_po_field,
+object_demo_kekkai,
+object_efc_doughnut,
+object_gi_dekupouch,
+object_ganon_anime1,
+object_ganon_anime2,
+object_ganon_anime3,
+object_gi_rupy,
+object_spot01_matoya,
+object_spot01_matoyab,
+object_po_composer,
+object_mu,
+object_wf,
+object_skb,
+object_gj,
+object_geff,
+object_haka_door,
+object_gs,
+object_ps,
+object_bwall,
+object_crow,
+object_cow,
+object_cob,
+object_gi_sword_1,
+object_door_killer,
+object_ouke_haka,
+object_timeblock,
+object_zl4,
+g_pn_01,
+g_pn_02,
+g_pn_03,
+g_pn_04,
+g_pn_05,
+g_pn_06,
+g_pn_07,
+g_pn_08,
+g_pn_09,
+g_pn_10,
+g_pn_11,
+g_pn_12,
+g_pn_13,
+g_pn_14,
+g_pn_15,
+g_pn_16,
+g_pn_17,
+g_pn_18,
+g_pn_19,
+g_pn_20,
+g_pn_21,
+g_pn_22,
+g_pn_23,
+g_pn_24,
+g_pn_25,
+g_pn_26,
+g_pn_27,
+g_pn_28,
+g_pn_29,
+g_pn_30,
+g_pn_31,
+g_pn_32,
+g_pn_33,
+g_pn_34,
+g_pn_35,
+g_pn_36,
+g_pn_37,
+g_pn_38,
+g_pn_39,
+g_pn_40,
+g_pn_41,
+g_pn_42,
+g_pn_43,
+g_pn_44,
+g_pn_45,
+g_pn_46,
+g_pn_47,
+g_pn_48,
+g_pn_49,
+g_pn_50,
+g_pn_51,
+g_pn_52,
+g_pn_53,
+g_pn_54,
+g_pn_55,
+g_pn_56,
+g_pn_57,
+z_select_static,
+nintendo_rogo_static,
+title_static,
+parameter_static,
+vr_fine0_static,
+vr_fine0_pal_static,
+vr_fine1_static,
+vr_fine1_pal_static,
+vr_fine2_static,
+vr_fine2_pal_static,
+vr_fine3_static,
+vr_fine3_pal_static,
+vr_cloud0_static,
+vr_cloud0_pal_static,
+vr_cloud1_static,
+vr_cloud1_pal_static,
+vr_cloud2_static,
+vr_cloud2_pal_static,
+vr_cloud3_static,
+vr_cloud3_pal_static,
+vr_holy0_static,
+vr_holy0_pal_static,
+vr_holy1_static,
+vr_holy1_pal_static,
+vr_MDVR_static,
+vr_MDVR_pal_static,
+vr_MNVR_static,
+vr_MNVR_pal_static,
+vr_RUVR_static,
+vr_RUVR_pal_static,
+vr_LHVR_static,
+vr_LHVR_pal_static,
+vr_KHVR_static,
+vr_KHVR_pal_static,
+vr_K3VR_static,
+vr_K3VR_pal_static,
+vr_K4VR_static,
+vr_K4VR_pal_static,
+vr_K5VR_static,
+vr_K5VR_pal_static,
+vr_SP1a_static,
+vr_SP1a_pal_static,
+vr_MLVR_static,
+vr_MLVR_pal_static,
+vr_KKRVR_static,
+vr_KKRVR_pal_static,
+vr_KR3VR_static,
+vr_KR3VR_pal_static,
+vr_IPVR_static,
+vr_IPVR_pal_static,
+vr_KSVR_static,
+vr_KSVR_pal_static,
+vr_GLVR_static,
+vr_GLVR_pal_static,
+vr_ZRVR_static,
+vr_ZRVR_pal_static,
+vr_DGVR_static,
+vr_DGVR_pal_static,
+vr_ALVR_static,
+vr_ALVR_pal_static,
+vr_NSVR_static,
+vr_NSVR_pal_static,
+vr_LBVR_static,
+vr_LBVR_pal_static,
+vr_TTVR_static,
+vr_TTVR_pal_static,
+vr_FCVR_static,
+vr_FCVR_pal_static,
+elf_message_field,
+elf_message_ydan,
+ydan_scene,
+ydan_room_0,
+ydan_room_1,
+ydan_room_2,
+ydan_room_3,
+ydan_room_4,
+ydan_room_5,
+ydan_room_6,
+ydan_room_7,
+ydan_room_8,
+ydan_room_9,
+ydan_room_10,
+ydan_room_11,
+ddan_scene,
+ddan_room_0,
+ddan_room_1,
+ddan_room_2,
+ddan_room_3,
+ddan_room_4,
+ddan_room_5,
+ddan_room_6,
+ddan_room_7,
+ddan_room_8,
+ddan_room_9,
+ddan_room_10,
+ddan_room_11,
+ddan_room_12,
+ddan_room_13,
+ddan_room_14,
+ddan_room_15,
+ddan_room_16,
+bdan_scene,
+bdan_room_0,
+bdan_room_1,
+bdan_room_2,
+bdan_room_3,
+bdan_room_4,
+bdan_room_5,
+bdan_room_6,
+bdan_room_7,
+bdan_room_8,
+bdan_room_9,
+bdan_room_10,
+bdan_room_11,
+bdan_room_12,
+bdan_room_13,
+bdan_room_14,
+bdan_room_15,
+Bmori1_scene,
+Bmori1_room_0,
+Bmori1_room_1,
+Bmori1_room_2,
+Bmori1_room_3,
+Bmori1_room_4,
+Bmori1_room_5,
+Bmori1_room_6,
+Bmori1_room_7,
+Bmori1_room_8,
+Bmori1_room_9,
+Bmori1_room_10,
+Bmori1_room_11,
+Bmori1_room_12,
+Bmori1_room_13,
+Bmori1_room_14,
+Bmori1_room_15,
+Bmori1_room_16,
+Bmori1_room_17,
+Bmori1_room_18,
+Bmori1_room_19,
+Bmori1_room_20,
+Bmori1_room_21,
+Bmori1_room_22,
+HIDAN_scene,
+HIDAN_room_0,
+HIDAN_room_1,
+HIDAN_room_2,
+HIDAN_room_3,
+HIDAN_room_4,
+HIDAN_room_5,
+HIDAN_room_6,
+HIDAN_room_7,
+HIDAN_room_8,
+HIDAN_room_9,
+HIDAN_room_10,
+HIDAN_room_11,
+HIDAN_room_12,
+HIDAN_room_13,
+HIDAN_room_14,
+HIDAN_room_15,
+HIDAN_room_16,
+HIDAN_room_17,
+HIDAN_room_18,
+HIDAN_room_19,
+HIDAN_room_20,
+HIDAN_room_21,
+HIDAN_room_22,
+HIDAN_room_23,
+HIDAN_room_24,
+HIDAN_room_25,
+HIDAN_room_26,
+MIZUsin_scene,
+MIZUsin_room_0,
+MIZUsin_room_1,
+MIZUsin_room_2,
+MIZUsin_room_3,
+MIZUsin_room_4,
+MIZUsin_room_5,
+MIZUsin_room_6,
+MIZUsin_room_7,
+MIZUsin_room_8,
+MIZUsin_room_9,
+MIZUsin_room_10,
+MIZUsin_room_11,
+MIZUsin_room_12,
+MIZUsin_room_13,
+MIZUsin_room_14,
+MIZUsin_room_15,
+MIZUsin_room_16,
+MIZUsin_room_17,
+MIZUsin_room_18,
+MIZUsin_room_19,
+MIZUsin_room_20,
+MIZUsin_room_21,
+MIZUsin_room_22,
+jyasinzou_scene,
+jyasinzou_room_0,
+jyasinzou_room_1,
+jyasinzou_room_2,
+jyasinzou_room_3,
+jyasinzou_room_4,
+jyasinzou_room_5,
+jyasinzou_room_6,
+jyasinzou_room_7,
+jyasinzou_room_8,
+jyasinzou_room_9,
+jyasinzou_room_10,
+jyasinzou_room_11,
+jyasinzou_room_12,
+jyasinzou_room_13,
+jyasinzou_room_14,
+jyasinzou_room_15,
+jyasinzou_room_16,
+jyasinzou_room_17,
+jyasinzou_room_18,
+jyasinzou_room_19,
+jyasinzou_room_20,
+jyasinzou_room_21,
+jyasinzou_room_22,
+jyasinzou_room_23,
+jyasinzou_room_24,
+jyasinzou_room_25,
+jyasinzou_room_26,
+jyasinzou_room_27,
+jyasinzou_room_28,
+HAKAdan_scene,
+HAKAdan_room_0,
+HAKAdan_room_1,
+HAKAdan_room_2,
+HAKAdan_room_3,
+HAKAdan_room_4,
+HAKAdan_room_5,
+HAKAdan_room_6,
+HAKAdan_room_7,
+HAKAdan_room_8,
+HAKAdan_room_9,
+HAKAdan_room_10,
+HAKAdan_room_11,
+HAKAdan_room_12,
+HAKAdan_room_13,
+HAKAdan_room_14,
+HAKAdan_room_15,
+HAKAdan_room_16,
+HAKAdan_room_17,
+HAKAdan_room_18,
+HAKAdan_room_19,
+HAKAdan_room_20,
+HAKAdan_room_21,
+HAKAdan_room_22,
+HAKAdanCH_scene,
+HAKAdanCH_room_0,
+HAKAdanCH_room_1,
+HAKAdanCH_room_2,
+HAKAdanCH_room_3,
+HAKAdanCH_room_4,
+HAKAdanCH_room_5,
+HAKAdanCH_room_6,
+ice_doukutu_scene,
+ice_doukutu_room_0,
+ice_doukutu_room_1,
+ice_doukutu_room_2,
+ice_doukutu_room_3,
+ice_doukutu_room_4,
+ice_doukutu_room_5,
+ice_doukutu_room_6,
+ice_doukutu_room_7,
+ice_doukutu_room_8,
+ice_doukutu_room_9,
+ice_doukutu_room_10,
+ice_doukutu_room_11,
+men_scene,
+men_room_0,
+men_room_1,
+men_room_2,
+men_room_3,
+men_room_4,
+men_room_5,
+men_room_6,
+men_room_7,
+men_room_8,
+men_room_9,
+men_room_10,
+ganontika_scene,
+ganontika_room_0,
+ganontika_room_1,
+ganontika_room_2,
+ganontika_room_3,
+ganontika_room_4,
+ganontika_room_5,
+ganontika_room_6,
+ganontika_room_7,
+ganontika_room_8,
+ganontika_room_9,
+ganontika_room_10,
+ganontika_room_11,
+ganontika_room_12,
+ganontika_room_13,
+ganontika_room_14,
+ganontika_room_15,
+ganontika_room_16,
+ganontika_room_17,
+ganontika_room_18,
+ganontika_room_19,
+spot00_scene,
+spot00_room_0,
+spot01_scene,
+spot01_room_0,
+spot02_scene,
+spot02_room_0,
+spot02_room_1,
+spot03_scene,
+spot03_room_0,
+spot03_room_1,
+spot04_scene,
+spot04_room_0,
+spot04_room_1,
+spot04_room_2,
+spot05_scene,
+spot05_room_0,
+spot06_scene,
+spot06_room_0,
+spot07_scene,
+spot07_room_0,
+spot07_room_1,
+spot08_scene,
+spot08_room_0,
+spot09_scene,
+spot09_room_0,
+spot10_scene,
+spot10_room_0,
+spot10_room_1,
+spot10_room_2,
+spot10_room_3,
+spot10_room_4,
+spot10_room_5,
+spot10_room_6,
+spot10_room_7,
+spot10_room_8,
+spot10_room_9,
+spot11_scene,
+spot11_room_0,
+spot12_scene,
+spot12_room_0,
+spot12_room_1,
+spot13_scene,
+spot13_room_0,
+spot13_room_1,
+spot15_scene,
+spot15_room_0,
+spot16_scene,
+spot16_room_0,
+spot17_scene,
+spot17_room_0,
+spot17_room_1,
+spot18_scene,
+spot18_room_0,
+spot18_room_1,
+spot18_room_2,
+spot18_room_3,
+market_day_scene,
+market_day_room_0,
+market_night_scene,
+market_night_room_0,
+kenjyanoma_scene,
+kenjyanoma_room_0,
+tokinoma_scene,
+tokinoma_room_0,
+tokinoma_room_1,
+link_home_scene,
+link_home_room_0,
+kokiri_shop_scene,
+kokiri_shop_room_0,
+kokiri_home_scene,
+kokiri_home_room_0,
+kakusiana_scene,
+kakusiana_room_0,
+kakusiana_room_1,
+kakusiana_room_2,
+kakusiana_room_3,
+kakusiana_room_4,
+kakusiana_room_5,
+kakusiana_room_6,
+kakusiana_room_7,
+kakusiana_room_8,
+kakusiana_room_9,
+kakusiana_room_10,
+kakusiana_room_11,
+kakusiana_room_12,
+kakusiana_room_13,
+entra_scene,
+entra_room_0,
+moribossroom_scene,
+moribossroom_room_0,
+moribossroom_room_1,
+syatekijyou_scene,
+syatekijyou_room_0,
+shop1_scene,
+shop1_room_0,
+hairal_niwa_scene,
+hairal_niwa_room_0,
+ganon_tou_scene,
+ganon_tou_room_0,
+market_alley_scene,
+market_alley_room_0,
+spot20_scene,
+spot20_room_0,
+market_ruins_scene,
+market_ruins_room_0,
+entra_n_scene,
+entra_n_room_0,
+enrui_scene,
+enrui_room_0,
+market_alley_n_scene,
+market_alley_n_room_0,
+hiral_demo_scene,
+hiral_demo_room_0,
+kokiri_home3_scene,
+kokiri_home3_room_0,
+malon_stable_scene,
+malon_stable_room_0,
+kakariko_scene,
+kakariko_room_0,
+bdan_boss_scene,
+bdan_boss_room_0,
+bdan_boss_room_1,
+FIRE_bs_scene,
+FIRE_bs_room_0,
+FIRE_bs_room_1,
+hut_scene,
+hut_room_0,
+daiyousei_izumi_scene,
+daiyousei_izumi_room_0,
+hakaana_scene,
+hakaana_room_0,
+yousei_izumi_tate_scene,
+yousei_izumi_tate_room_0,
+yousei_izumi_yoko_scene,
+yousei_izumi_yoko_room_0,
+golon_scene,
+golon_room_0,
+zoora_scene,
+zoora_room_0,
+drag_scene,
+drag_room_0,
+alley_shop_scene,
+alley_shop_room_0,
+night_shop_scene,
+night_shop_room_0,
+impa_scene,
+impa_room_0,
+labo_scene,
+labo_room_0,
+tent_scene,
+tent_room_0,
+nakaniwa_scene,
+nakaniwa_room_0,
+ddan_boss_scene,
+ddan_boss_room_0,
+ddan_boss_room_1,
+ydan_boss_scene,
+ydan_boss_room_0,
+ydan_boss_room_1,
+HAKAdan_bs_scene,
+HAKAdan_bs_room_0,
+HAKAdan_bs_room_1,
+MIZUsin_bs_scene,
+MIZUsin_bs_room_0,
+MIZUsin_bs_room_1,
+ganon_scene,
+ganon_room_0,
+ganon_room_1,
+ganon_room_2,
+ganon_room_3,
+ganon_room_4,
+ganon_room_5,
+ganon_room_6,
+ganon_room_7,
+ganon_room_8,
+ganon_room_9,
+ganon_boss_scene,
+ganon_boss_room_0,
+jyasinboss_scene,
+jyasinboss_room_0,
+jyasinboss_room_1,
+jyasinboss_room_2,
+jyasinboss_room_3,
+kokiri_home4_scene,
+kokiri_home4_room_0,
+kokiri_home5_scene,
+kokiri_home5_room_0,
+ganon_final_scene,
+ganon_final_room_0,
+kakariko3_scene,
+kakariko3_room_0,
+hakasitarelay_scene,
+hakasitarelay_room_0,
+hakasitarelay_room_1,
+hakasitarelay_room_2,
+hakasitarelay_room_3,
+hakasitarelay_room_4,
+hakasitarelay_room_5,
+hakasitarelay_room_6,
+shrine_scene,
+shrine_room_0,
+turibori_scene,
+turibori_room_0,
+shrine_n_scene,
+shrine_n_room_0,
+shrine_r_scene,
+shrine_r_room_0,
+hakaana2_scene,
+hakaana2_room_0,
+gerudoway_scene,
+gerudoway_room_0,
+gerudoway_room_1,
+gerudoway_room_2,
+gerudoway_room_3,
+gerudoway_room_4,
+gerudoway_room_5,
+hairal_niwa_n_scene,
+hairal_niwa_n_room_0,
+bowling_scene,
+bowling_room_0,
+hakaana_ouke_scene,
+hakaana_ouke_room_0,
+hakaana_ouke_room_1,
+hakaana_ouke_room_2,
+hylia_labo_scene,
+hylia_labo_room_0,
+souko_scene,
+souko_room_0,
+souko_room_1,
+souko_room_2,
+miharigoya_scene,
+miharigoya_room_0,
+mahouya_scene,
+mahouya_room_0,
+takaraya_scene,
+takaraya_room_0,
+takaraya_room_1,
+takaraya_room_2,
+takaraya_room_3,
+takaraya_room_4,
+takaraya_room_5,
+takaraya_room_6,
+ganon_sonogo_scene,
+ganon_sonogo_room_0,
+ganon_sonogo_room_1,
+ganon_sonogo_room_2,
+ganon_sonogo_room_3,
+ganon_sonogo_room_4,
+ganon_demo_scene,
+ganon_demo_room_0,
+face_shop_scene,
+face_shop_room_0,
+kinsuta_scene,
+kinsuta_room_0,
+ganontikasonogo_scene,
+ganontikasonogo_room_0,
+ganontikasonogo_room_1,
+bump_texture_static,
+anime_model_1_static,
+anime_model_2_static,
+anime_model_3_static,
+anime_model_4_static,
+anime_model_5_static,
+anime_model_6_static,
+anime_texture_1_static,
+anime_texture_2_static,
+anime_texture_3_static,
+anime_texture_4_static,
+anime_texture_5_static,
+anime_texture_6_static,
+softsprite_matrix_static,
diff --git a/extract_assets.py b/extract_assets.py
index d7b6ecca7..49a165ca7 100755
--- a/extract_assets.py
+++ b/extract_assets.py
@@ -149,9 +149,9 @@ def main():
initializeWorker(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager)
# Always extract if -s is used.
- fullPath = assetConfig.xml_path
- if fullPath in extractedAssetsTracker:
- del extractedAssetsTracker[fullPath]
+ xml_path_str = str(assetConfig.xml_path)
+ if xml_path_str in extractedAssetsTracker:
+ del extractedAssetsTracker[xml_path_str]
ExtractFunc(assetConfig)
else:
class CannotMultiprocessError(Exception):
diff --git a/include/audiothread_cmd.h b/include/audiothread_cmd.h
index 3ec2cdeba..ab0ea1c17 100644
--- a/include/audiothread_cmd.h
+++ b/include/audiothread_cmd.h
@@ -428,7 +428,7 @@ typedef enum {
/**
* Unmute all sequence players
*
- * @param restartNotes (s32) if set to 1, then notes with the `MUTE_BEHAVIOR_STOP_SAMPLES` flag set
+ * @param restartNotes (s32) if set to 1, then notes with the `MUTE_BEHAVIOR_STOP_SAMPLES` flag set
* are marked as finished for all seqPlayers
*/
#define AUDIOCMD_GLOBAL_UNMUTE(restartNotes) \
diff --git a/include/color.h b/include/color.h
index 014e7accf..723983f83 100644
--- a/include/color.h
+++ b/include/color.h
@@ -10,7 +10,7 @@ typedef struct {
} Color_RGBA8;
// only use when necessary for alignment purposes
-typedef union {
+typedef union Color_RGBA8_u32 {
struct {
u8 r, g, b, a;
};
diff --git a/include/functions.h b/include/functions.h
index 92c38edd9..753b6b483 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -752,9 +752,7 @@ void Cutscene_HandleConditionalTriggers(PlayState* play);
void Cutscene_SetScript(PlayState* play, void* script);
void* MemCpy(void* dest, const void* src, s32 len);
void GetItem_Draw(PlayState* play, s16 drawId);
-void SfxSource_InitAll(PlayState* play);
-void SfxSource_UpdateAll(PlayState* play);
-void SfxSource_PlaySfxAtFixedWorldPos(PlayState* play, Vec3f* worldPos, s32 duration, u16 sfxId);
+
u16 QuestHint_GetSariaTextId(PlayState* play);
u16 QuestHint_GetNaviTextId(PlayState* play);
u16 MaskReaction_GetTextId(PlayState* play, u32 maskReactionSet);
@@ -928,11 +926,6 @@ Path* Path_GetByIndex(PlayState* play, s16 index, s16 max);
f32 Path_OrientAndGetDistSq(Actor* actor, Path* path, s16 waypoint, s16* yaw);
void Path_CopyLastPoint(Path* path, Vec3f* dest);
-#if ARE_FRAMERATE_OPTIONS_ENABLED
-void FrameAdvance_Init(FrameAdvanceContext* frameAdvCtx);
-s32 FrameAdvance_Update(FrameAdvanceContext* frameAdvCtx, Input* input);
-#endif
-
void Player_SetBootData(PlayState* play, Player* this);
int Player_InBlockingCsMode(PlayState* play, Player* this);
int Player_InCsMode(PlayState* play);
@@ -1207,37 +1200,7 @@ void KaleidoScopeCall_Init(PlayState* play);
void KaleidoScopeCall_Destroy(PlayState* play);
void KaleidoScopeCall_Update(PlayState* play);
void KaleidoScopeCall_Draw(PlayState* play);
-void Play_SetViewpoint(PlayState* this, s16 viewpoint);
-s32 Play_CheckViewpoint(PlayState* this, s16 viewpoint);
-void Play_SetShopBrowsingViewpoint(PlayState* this);
-Gfx* Play_SetFog(PlayState* this, Gfx* gfx);
-void Play_Destroy(GameState* thisx);
-void Play_Init(GameState* thisx);
-void Play_Main(GameState* thisx);
-int Play_InCsMode(PlayState* this);
-f32 func_800BFCB8(PlayState* this, MtxF* mf, Vec3f* pos);
-void* Play_LoadFile(PlayState* this, RomFile* file);
-void Play_GetScreenPos(PlayState* this, Vec3f* src, Vec3f* dest);
-s16 Play_CreateSubCamera(PlayState* this);
-s16 Play_GetActiveCamId(PlayState* this);
-s16 Play_ChangeCameraStatus(PlayState* this, s16 camId, s16 status);
-void Play_ClearCamera(PlayState* this, s16 camId);
-void Play_ClearAllSubCameras(PlayState* this);
-Camera* Play_GetCamera(PlayState* this, s16 camId);
-s32 Play_SetCameraAtEye(PlayState* this, s16 camId, Vec3f* at, Vec3f* eye);
-s32 Play_SetCameraAtEyeUp(PlayState* this, s16 camId, Vec3f* at, Vec3f* eye, Vec3f* up);
-s32 Play_SetCameraFov(PlayState* this, s16 camId, f32 fov);
-s32 Play_SetCameraRoll(PlayState* this, s16 camId, s16 roll);
-void Play_CopyCamera(PlayState* this, s16 destCamId, s16 srcCamId);
-s32 Play_InitCameraDataUsingPlayer(PlayState* this, s16 camId, Player* player, s16 setting);
-s32 Play_RequestCameraSetting(PlayState* this, s16 camId, s16 setting);
-void Play_ReturnToMainCam(PlayState* this, s16 camId, s16 duration);
-void Play_SaveSceneFlags(PlayState* this);
-void Play_SetupRespawnPoint(PlayState* this, s32 respawnMode, s32 playerParams);
-void Play_TriggerVoidOut(PlayState* this);
-void Play_TriggerRespawn(PlayState* this);
-int Play_CamIsNotFixed(PlayState* this);
-int FrameAdvance_IsEnabled(PlayState* this);
+
s32 func_800C0D34(PlayState* this, Actor* actor, s16* yaw);
s32 func_800C0DB4(PlayState* this, Vec3f* pos);
void PreRender_SetValuesSave(PreRender* this, u32 width, u32 height, void* fbuf, void* zbuf, void* cvg);
@@ -1792,9 +1755,7 @@ u8 Message_GetState(MessageContext* msgCtx);
void Message_Draw(PlayState* play);
void Message_Update(PlayState* play);
void Message_SetTables(void);
-void GameOver_Init(PlayState* play);
-void GameOver_FadeInLights(PlayState* play);
-void GameOver_Update(PlayState* play);
+
void Interface_Destroy(PlayState* play);
void Interface_Init(PlayState* play);
void Message_Init(PlayState* play);
diff --git a/include/macros.h b/include/macros.h
index 5fdead04e..dd5b07637 100644
--- a/include/macros.h
+++ b/include/macros.h
@@ -30,10 +30,6 @@
#define RGBA8(r, g, b, a) ((((r) & 0xFF) << 24) | (((g) & 0xFF) << 16) | (((b) & 0xFF) << 8) | (((a) & 0xFF) << 0))
-#define GET_PLAYER(play) ((Player*)(play)->actorCtx.actorLists[ACTORCAT_PLAYER].head)
-
-#define GET_ACTIVE_CAM(play) ((play)->cameraPtrs[(play)->activeCamId])
-
#define LINK_IS_ADULT (gSaveContext.save.linkAge == LINK_AGE_ADULT)
#define LINK_IS_CHILD (gSaveContext.save.linkAge == LINK_AGE_CHILD)
diff --git a/include/padmgr.h b/include/padmgr.h
index f65052699..e46d037c3 100644
--- a/include/padmgr.h
+++ b/include/padmgr.h
@@ -10,7 +10,7 @@ typedef enum {
CONT_PAK_OTHER
} ControllerPakType;
-typedef struct {
+typedef struct Input {
/* 0x00 */ OSContPad cur;
/* 0x06 */ OSContPad prev;
/* 0x0C */ OSContPad press; // X/Y store delta from last frame
diff --git a/include/variables.h b/include/variables.h
index ae8999a21..e8c9bd79f 100644
--- a/include/variables.h
+++ b/include/variables.h
@@ -106,7 +106,7 @@ extern u64 gMojiFontTex[]; // original name: "font_ff"
extern KaleidoMgrOverlay gKaleidoMgrOverlayTable[KALEIDO_OVL_MAX];
extern KaleidoMgrOverlay* gKaleidoMgrCurOvl;
extern u8 gBossMarkState;
-extern void* gDebugCutsceneScript;
+
extern s32 gScreenWidth;
extern s32 gScreenHeight;
extern Mtx gMtxClear;
@@ -207,10 +207,7 @@ extern MapData* gMapData;
extern f32 gBossMarkScale;
extern u32 D_8016139C;
extern PauseMapMarksData* gLoadedPauseMarkDataTable;
-extern TransitionTile gTransitionTile;
-extern s32 gTransitionTileState;
-extern VisMono gPlayVisMono;
-extern Color_RGBA8_u32 gVisMonoColor;
+
extern PreNmiBuff* gAppNmiBufferPtr;
extern uintptr_t gSegments[NUM_SEGMENTS];
extern Scheduler gScheduler;
diff --git a/include/z64.h b/include/z64.h
index 9b0addbaa..3d8880001 100644
--- a/include/z64.h
+++ b/include/z64.h
@@ -21,6 +21,7 @@
#include "z64curve.h"
#include "z64scene.h"
#include "z64effect.h"
+#include "z64game_over.h"
#include "z64item.h"
#include "z64animation.h"
#include "z64animation_legacy.h"
@@ -29,11 +30,13 @@
#include "z64map_mark.h"
#include "z64message.h"
#include "z64pause.h"
+#include "z64play.h"
#include "z64skin.h"
#include "z64game.h"
#include "z64transition.h"
#include "z64transition_instances.h"
#include "z64interface.h"
+#include "z64sfx_source.h"
#include "z64skybox.h"
#include "z64sram.h"
#include "z64view.h"
@@ -128,91 +131,6 @@
// NOTE: Once we start supporting other builds, this can be changed with an ifdef
#define REGION_NATIVE REGION_EU
-typedef struct {
- /* 0x00 */ u8 seqId;
- /* 0x01 */ u8 natureAmbienceId;
-} SequenceContext; // size = 0x2
-
-// ENABLE_FRAMERATE_OPTIONS
-typedef struct {
- /* 0x00 */ s32 enabled;
- /* 0x04 */ s32 timer;
-} FrameAdvanceContext; // size = 0x8
-
-typedef struct {
- /* 0x00 */ Vec3f pos;
- /* 0x0C */ f32 unk_0C; // radius?
- /* 0x10 */ Color_RGB8 color;
-} TargetContextEntry; // size = 0x14
-
-typedef struct {
- /* 0x00 */ Vec3f naviRefPos; // possibly wrong
- /* 0x0C */ Vec3f targetCenterPos;
- /* 0x18 */ Color_RGBAf naviInner;
- /* 0x28 */ Color_RGBAf naviOuter;
- /* 0x38 */ Actor* arrowPointedActor;
- /* 0x3C */ Actor* targetedActor;
- /* 0x40 */ f32 unk_40;
- /* 0x44 */ f32 unk_44;
- /* 0x48 */ s16 unk_48;
- /* 0x4A */ u8 activeCategory;
- /* 0x4B */ u8 unk_4B;
- /* 0x4C */ s8 unk_4C;
- /* 0x4D */ char unk_4D[0x03];
- /* 0x50 */ TargetContextEntry arr_50[3];
- /* 0x8C */ Actor* unk_8C;
- /* 0x90 */ Actor* bgmEnemy; // The nearest enemy to player with the right flags that will trigger NA_BGM_ENEMY
- /* 0x94 */ Actor* unk_94;
-} TargetContext; // size = 0x98
-
-typedef struct {
- /* 0x00 */ void* texture;
- /* 0x04 */ s16 x;
- /* 0x06 */ s16 y;
- /* 0x08 */ u8 width;
- /* 0x09 */ u8 height;
- /* 0x0A */ u8 durationTimer; // how long the title card appears for before fading
- /* 0x0B */ u8 delayTimer; // how long the title card waits to appear
- /* 0x0C */ s16 alpha;
- /* 0x0E */ s16 intensity;
-} TitleCardContext; // size = 0x10
-
-typedef struct {
- /* 0x00 */ s32 length; // number of actors loaded of this category
- /* 0x04 */ Actor* head; // pointer to head of the linked list of this category (most recent actor added)
-} ActorListEntry; // size = 0x08
-
-typedef struct {
- /* 0x0000 */ u8 freezeFlashTimer;
- /* 0x0001 */ char unk_01[0x01];
- /* 0x0002 */ u8 unk_02;
- /* 0x0003 */ u8 lensActive;
- /* 0x0004 */ char unk_04[0x04];
- /* 0x0008 */ u8 total; // total number of actors loaded
- /* 0x000C */ ActorListEntry actorLists[ACTORCAT_MAX];
- /* 0x006C */ TargetContext targetCtx;
- struct {
- /* 0x0104 */ u32 swch;
- /* 0x0108 */ u32 tempSwch;
- /* 0x010C */ u32 unk0;
- /* 0x0110 */ u32 unk1;
- /* 0x0114 */ u32 chest;
- /* 0x0118 */ u32 clear;
- /* 0x011C */ u32 tempClear;
- /* 0x0120 */ u32 collect;
- /* 0x0124 */ u32 tempCollect;
- } flags;
- /* 0x0128 */ TitleCardContext titleCtx;
- /* 0x0138 */ char unk_138[0x04];
- /* 0x013C */ void* absoluteSpace; // Space used to allocate actor overlays with alloc type ACTOROVL_ALLOC_ABSOLUTE
-} ActorContext; // size = 0x140
-
-typedef struct {
- /* 0x00 */ u16 countdown;
- /* 0x04 */ Vec3f worldPos;
- /* 0x10 */ Vec3f projectedPos;
-} SfxSource; // size = 0x1C
-
typedef struct {
/* 0x00 */ void* loadedRamAddr;
/* 0x04 */ RomFile file;
@@ -228,90 +146,11 @@ typedef enum {
/* 2 */ KALEIDO_OVL_MAX
} KaleidoOverlayType;
-typedef enum {
- /* 00 */ GAMEOVER_INACTIVE,
- /* 01 */ GAMEOVER_DEATH_START,
- /* 02 */ GAMEOVER_DEATH_WAIT_GROUND, // wait for link to fall and hit the ground
- /* 03 */ GAMEOVER_DEATH_DELAY_MENU, // wait for 1 second before showing the game over menu
- /* 04 */ GAMEOVER_DEATH_MENU, // do nothing while kaleidoscope handles the game over menu
- /* 20 */ GAMEOVER_REVIVE_START = 20,
- /* 21 */ GAMEOVER_REVIVE_RUMBLE,
- /* 22 */ GAMEOVER_REVIVE_WAIT_GROUND, // wait for link to fall and hit the ground
- /* 23 */ GAMEOVER_REVIVE_WAIT_FAIRY, // wait for the fairy to rise all the way up out of links body
- /* 24 */ GAMEOVER_REVIVE_FADE_OUT // fade out the game over lights as link is revived and gets back up
-} GameOverState;
-
-typedef struct {
- /* 0x00 */ u16 state;
-} GameOverContext; // size = 0x2
-
typedef enum {
/* 0 */ LENS_MODE_SHOW_ACTORS, // lens actors are invisible by default, and shown by using lens (for example, invisible enemies)
/* 1 */ LENS_MODE_HIDE_ACTORS // lens actors are visible by default, and hidden by using lens (for example, fake walls)
} LensMode;
-typedef enum {
- /* 0 */ ROOM_BEHAVIOR_TYPE1_0,
- /* 1 */ ROOM_BEHAVIOR_TYPE1_1,
- /* 2 */ ROOM_BEHAVIOR_TYPE1_2,
- /* 3 */ ROOM_BEHAVIOR_TYPE1_3, // unused
- /* 4 */ ROOM_BEHAVIOR_TYPE1_4, // unused
- /* 5 */ ROOM_BEHAVIOR_TYPE1_5
-} RoomBehaviorType1;
-
-typedef enum {
- /* 0 */ ROOM_BEHAVIOR_TYPE2_0,
- /* 1 */ ROOM_BEHAVIOR_TYPE2_1,
- /* 2 */ ROOM_BEHAVIOR_TYPE2_2,
- /* 3 */ ROOM_BEHAVIOR_TYPE2_3,
- /* 4 */ ROOM_BEHAVIOR_TYPE2_4,
- /* 5 */ ROOM_BEHAVIOR_TYPE2_5,
- /* 6 */ ROOM_BEHAVIOR_TYPE2_6
-} RoomBehaviorType2;
-
-typedef struct {
- /* 0x00 */ s8 num;
- /* 0x01 */ u8 unk_01;
- /* 0x02 */ u8 behaviorType2;
- /* 0x03 */ u8 behaviorType1;
- /* 0x04 */ s8 echo;
- /* 0x05 */ u8 lensMode;
-#if ENABLE_F3DEX3
- u8 occPlaneCount;
- OcclusionPlaneCandidate* occPlaneList;
-#endif
- /* 0x08 */ RoomShape* roomShape; // original name: "ground_shape"
- /* 0x0C */ void* segment;
- /* 0x10 */ char unk_10[0x4];
-} Room; // size = 0x14
-
-typedef struct {
- /* 0x00 */ Room curRoom;
- /* 0x14 */ Room prevRoom;
- /* 0x28 */ void* bufPtrs[2];
- /* 0x30 */ u8 unk_30;
- /* 0x31 */ s8 status;
- /* 0x34 */ void* unk_34;
- /* 0x38 */ DmaRequest dmaRequest;
- /* 0x58 */ OSMesgQueue loadQueue;
- /* 0x70 */ OSMesg loadMsg;
- /* 0x74 */ s16 unk_74[2]; // context-specific data used by the current scene draw config
-} RoomContext; // size = 0x78
-
-#define SAC_ENABLE (1 << 0)
-
-typedef struct {
- /* 0x000 */ s16 colATCount;
- /* 0x002 */ u16 sacFlags;
- /* 0x004 */ Collider* colAT[COLLISION_CHECK_AT_MAX];
- /* 0x0CC */ s32 colACCount;
- /* 0x0D0 */ Collider* colAC[COLLISION_CHECK_AC_MAX];
- /* 0x1C0 */ s32 colOCCount;
- /* 0x1C4 */ Collider* colOC[COLLISION_CHECK_OC_MAX];
- /* 0x28C */ s32 colLineCount;
- /* 0x290 */ OcLine* colLine[COLLISION_CHECK_OC_LINE_MAX];
-} CollisionCheckContext; // size = 0x29C
-
typedef struct {
/* 0x00 */ GameState state;
} SetupState; // size = 0xA4
@@ -371,18 +210,13 @@ typedef struct {
/* 0x00A8 */ View view;
} SampleState; // size = 0x1D0
-typedef struct {
+typedef struct QuestHintCmd {
/* 0x00 */ u8 byte0;
/* 0x01 */ u8 byte1;
/* 0x02 */ u8 byte2;
/* 0x03 */ u8 byte3;
} QuestHintCmd; // size = 0x4
-typedef struct {
- /* 0x00 */ u8 numActors;
- /* 0x04 */ TransitionActorEntry* list;
-} TransitionActorContext; // size = 0x8
-
typedef enum {
/* 0 */ PAUSE_BG_PRERENDER_OFF, // Inactive, do nothing.
/* 1 */ PAUSE_BG_PRERENDER_SETUP, // The current frame is only drawn for the purpose of serving as the pause background.
@@ -398,87 +232,6 @@ typedef enum {
/* 3 */ TRANS_TILE_READY // The transition is ready, so will update and draw each frame
} TransitionTileState;
-typedef struct PlayState {
- /* 0x00000 */ GameState state;
- /* 0x000A4 */ s16 sceneId;
- /* 0x000A6 */ u8 sceneDrawConfig;
- /* 0x000A7 */ char unk_A7[0x9];
- /* 0x000B0 */ void* sceneSegment;
- /* 0x000B8 */ View view;
- /* 0x001E0 */ Camera mainCamera;
- /* 0x0034C */ Camera subCameras[NUM_CAMS - CAM_ID_SUB_FIRST];
- /* 0x00790 */ Camera* cameraPtrs[NUM_CAMS];
- /* 0x007A0 */ s16 activeCamId;
- /* 0x007A2 */ s16 nextCamId;
- /* 0x007A4 */ SequenceContext sequenceCtx;
- /* 0x007A8 */ LightContext lightCtx;
- /* 0x007B8 */ FrameAdvanceContext frameAdvCtx; // ENABLE_FRAMERATE_OPTIONS
- /* 0x007C0 */ CollisionContext colCtx;
- /* 0x01C24 */ ActorContext actorCtx;
- /* 0x01D64 */ CutsceneContext csCtx; // "demo_play"
- /* 0x01DB4 */ SfxSource sfxSources[16];
- /* 0x01F74 */ SramContext sramCtx;
- /* 0x01F78 */ SkyboxContext skyboxCtx;
- /* 0x020D8 */ MessageContext msgCtx; // "message"
- /* 0x104F0 */ InterfaceContext interfaceCtx; // "parameter"
- /* 0x10760 */ PauseContext pauseCtx;
- /* 0x10A20 */ GameOverContext gameOverCtx;
- /* 0x10A24 */ EnvironmentContext envCtx;
- /* 0x10B20 */ AnimTaskQueue animTaskQueue;
- /* 0x117A4 */ ObjectContext objectCtx;
- /* 0x11CBC */ RoomContext roomCtx;
- /* 0x11D34 */ TransitionActorContext transiActorCtx;
- /* 0x11D3C */ void (*playerInit)(Player* player, struct PlayState* play, FlexSkeletonHeader* skelHeader);
- /* 0x11D40 */ void (*playerUpdate)(Player* player, struct PlayState* play, Input* input);
- /* 0x11D44 */ int (*isPlayerDroppingFish)(struct PlayState* play);
- /* 0x11D48 */ s32 (*startPlayerFishing)(struct PlayState* play);
- /* 0x11D4C */ s32 (*grabPlayer)(struct PlayState* play, Player* player);
- /* 0x11D50 */ s32 (*tryPlayerCsAction)(struct PlayState* play, Actor* actor, s32 csAction);
- /* 0x11D54 */ void (*func_11D54)(Player* player, struct PlayState* play);
- /* 0x11D58 */ s32 (*damagePlayer)(struct PlayState* play, s32 damage);
- /* 0x11D5C */ void (*talkWithPlayer)(struct PlayState* play, Actor* actor);
- /* 0x11D60 */ MtxF viewProjectionMtxF;
- /* 0x11DA0 */ MtxF billboardMtxF;
- /* 0x11DE0 */ Mtx* billboardMtx;
- /* 0x11DE4 */ u32 gameplayFrames;
- /* 0x11DE8 */ u8 linkAgeOnLoad;
- /* 0x11DE9 */ u8 haltAllActors;
- /* 0x11DEA */ u8 spawn;
- /* 0x11DEB */ u8 numActorEntries;
- /* 0x11DEC */ u8 numRooms;
- /* 0x11DF0 */ RomFile* roomList;
- /* 0x11DF4 */ ActorEntry* playerEntry;
- /* 0x11DF8 */ ActorEntry* actorEntryList;
- /* 0x11DFC */ void* unk_11DFC;
- /* 0x11E00 */ Spawn* spawnList;
- /* 0x11E04 */ s16* exitList;
- /* 0x11E08 */ Path* pathList;
- /* 0x11E0C */ QuestHintCmd* naviQuestHints;
- /* 0x11E10 */ void* specialEffects;
- /* 0x11E14 */ u8 skyboxId;
- /* 0x11E15 */ s8 transitionTrigger; // "fade_direction"
- /* 0x11E16 */ s16 unk_11E16;
- /* 0x11E18 */ s16 bgCoverAlpha;
- /* 0x11E1A */ s16 nextEntranceIndex;
- /* 0x11E1C */ char unk_11E1C[0x40];
- /* 0x11E5C */ s8 shootingGalleryStatus;
- /* 0x11E5D */ s8 bombchuBowlingStatus; // "bombchu_game_flag"
- /* 0x11E5E */ u8 transitionType;
- /* 0x11E60 */ CollisionCheckContext colChkCtx;
- /* 0x120FC */ u16 cutsceneFlags[20];
- /* 0x12124 */ PreRender pauseBgPreRender;
- /* 0x12174 */ char unk_12174[0x53];
- /* 0x121C7 */ s8 unk_121C7;
- /* 0x121C8 */ TransitionContext transitionCtx;
- /* 0x12418 */ char unk_12418[0x3];
- /* 0x1241B */ u8 transitionMode; // "fbdemo_wipe_modem"
- /* 0x1241C */ TransitionFade transitionFadeFlash; // Transition fade instance which flashes screen, see R_TRANS_FADE_FLASH_ALPHA_STEP
- /* 0x12428 */ char unk_12428[0x3];
- /* 0x1242B */ u8 viewpoint; // toggleable camera setting by shops or player. Is also equal to the bgCamIndex + 1
- /* 0x1242C */ SceneTableEntry* loadedScene;
- /* 0x12430 */ char unk_12430[0xE8];
-} PlayState; // size = 0x12518
-
typedef struct {
/* 0x0000 */ GameState state;
/* 0x00A8 */ View view;
diff --git a/include/z64actor.h b/include/z64actor.h
index 99185128e..e48ae2d19 100644
--- a/include/z64actor.h
+++ b/include/z64actor.h
@@ -1,6 +1,7 @@
#ifndef Z64ACTOR_H
#define Z64ACTOR_H
+#include "color.h"
#include "z64dma.h"
#include "z64animation.h"
#include "z64math.h"
@@ -14,19 +15,15 @@
#define MASS_HEAVY 0xFE // Can only be pushed by OC colliders from actors with IMMOVABLE or HEAVY mass.
struct Actor;
-struct PlayState;
+struct CollisionPoly;
struct Lights;
+struct PlayState;
typedef void (*ActorFunc)(struct Actor*, struct PlayState*);
typedef void (*ActorShadowFunc)(struct Actor*, struct Lights*, struct PlayState*);
typedef u16 (*NpcGetTextIdFunc)(struct PlayState*, struct Actor*);
typedef s16 (*NpcUpdateTalkStateFunc)(struct PlayState*, struct Actor*);
-typedef struct {
- Vec3f pos;
- Vec3s rot;
-} PosRot; // size = 0x14
-
typedef struct {
/* 0x00 */ s16 id;
/* 0x02 */ u8 category; // Classifies actor and determines when it will update or draw
@@ -270,8 +267,8 @@ typedef struct Actor {
/* 0x068 */ f32 speed; // Context dependent speed value. Can be used for XZ or XYZ depending on which move function is used
/* 0x06C */ f32 gravity; // Acceleration due to gravity. Value is added to Y velocity every frame
/* 0x070 */ f32 minVelocityY; // Sets the lower bounds cap for velocity along the Y axis. Only relevant when moved with gravity.
- /* 0x074 */ CollisionPoly* wallPoly; // Wall polygon the actor is touching
- /* 0x078 */ CollisionPoly* floorPoly; // Floor polygon directly below the actor
+ /* 0x074 */ struct CollisionPoly* wallPoly; // Wall polygon the actor is touching
+ /* 0x078 */ struct CollisionPoly* floorPoly; // Floor polygon directly below the actor
/* 0x07C */ u8 wallBgId; // Bg ID of the wall polygon the actor is touching
/* 0x07D */ u8 floorBgId; // Bg ID of the floor polygon directly below the actor
/* 0x07E */ s16 wallYaw; // Y rotation of the wall polygon the actor is touching
@@ -574,6 +571,76 @@ typedef enum {
/* 0xFF */ NAVI_ENEMY_NONE = 0xFF
} NaviEnemy;
+typedef struct TargetContextEntry {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ f32 unk_0C; // radius?
+ /* 0x10 */ Color_RGB8 color;
+} TargetContextEntry; // size = 0x14
+
+typedef struct TargetContext {
+ /* 0x00 */ Vec3f naviRefPos; // possibly wrong
+ /* 0x0C */ Vec3f targetCenterPos;
+ /* 0x18 */ Color_RGBAf naviInner;
+ /* 0x28 */ Color_RGBAf naviOuter;
+ /* 0x38 */ Actor* arrowPointedActor;
+ /* 0x3C */ Actor* targetedActor;
+ /* 0x40 */ f32 unk_40;
+ /* 0x44 */ f32 unk_44;
+ /* 0x48 */ s16 unk_48;
+ /* 0x4A */ u8 activeCategory;
+ /* 0x4B */ u8 unk_4B;
+ /* 0x4C */ s8 unk_4C;
+ /* 0x4D */ char unk_4D[0x03];
+ /* 0x50 */ TargetContextEntry arr_50[3];
+ /* 0x8C */ Actor* unk_8C;
+ /* 0x90 */ Actor* bgmEnemy; // The nearest enemy to player with the right flags that will trigger NA_BGM_ENEMY
+ /* 0x94 */ Actor* unk_94;
+} TargetContext; // size = 0x98
+
+typedef struct TitleCardContext {
+ /* 0x00 */ void* texture;
+ /* 0x04 */ s16 x;
+ /* 0x06 */ s16 y;
+ /* 0x08 */ u8 width;
+ /* 0x09 */ u8 height;
+ /* 0x0A */ u8 durationTimer; // how long the title card appears for before fading
+ /* 0x0B */ u8 delayTimer; // how long the title card waits to appear
+ /* 0x0C */ s16 alpha;
+ /* 0x0E */ s16 intensity;
+} TitleCardContext; // size = 0x10
+
+typedef struct ActorListEntry {
+ /* 0x00 */ s32 length; // number of actors loaded of this category
+ /* 0x04 */ Actor* head; // pointer to head of the linked list of this category (most recent actor added)
+} ActorListEntry; // size = 0x08
+
+typedef struct ActorContextSceneFlags {
+ /* 0x00 */ u32 swch;
+ /* 0x04 */ u32 tempSwch;
+ /* 0x08 */ u32 unk0;
+ /* 0x0C */ u32 unk1;
+ /* 0x10 */ u32 chest;
+ /* 0x14 */ u32 clear;
+ /* 0x18 */ u32 tempClear;
+ /* 0x1C */ u32 collect;
+ /* 0x20 */ u32 tempCollect;
+} ActorContextSceneFlags; // size = 0x24
+
+typedef struct ActorContext {
+ /* 0x000 */ u8 freezeFlashTimer;
+ /* 0x001 */ char unk_01[0x01];
+ /* 0x002 */ u8 unk_02;
+ /* 0x003 */ u8 lensActive;
+ /* 0x004 */ char unk_04[0x04];
+ /* 0x008 */ u8 total; // total number of actors loaded
+ /* 0x00C */ ActorListEntry actorLists[ACTORCAT_MAX];
+ /* 0x06C */ TargetContext targetCtx;
+ /* 0x104 */ ActorContextSceneFlags flags;
+ /* 0x128 */ TitleCardContext titleCtx;
+ /* 0x138 */ char unk_138[0x04];
+ /* 0x13C */ void* absoluteSpace; // Space used to allocate actor overlays with alloc type ACTOROVL_ALLOC_ABSOLUTE
+} ActorContext; // size = 0x140
+
#define TRANSITION_ACTOR_PARAMS_INDEX_SHIFT 10
#define GET_TRANSITION_ACTOR_INDEX(actor) ((u16)(actor)->params >> TRANSITION_ACTOR_PARAMS_INDEX_SHIFT)
diff --git a/include/z64animation.h b/include/z64animation.h
index 1851defc5..2365db14b 100644
--- a/include/z64animation.h
+++ b/include/z64animation.h
@@ -88,7 +88,7 @@ typedef enum {
/* 1 */ ANIMTAPER_ACCEL
} AnimationTapers;
-// This flag seems like it was intended to be paired with `ANIM_FLAG_UPDATE_Y` to control
+// This flag seems like it was intended to be paired with `ANIM_FLAG_UPDATE_Y` to control
// XZ movement based on the current animation.
// However, this flag is not checked by the Skelanime system. XZ movement will always occur
// regardless of the current state of this flag, as long as the "Actor Move" Anim Task is in use.
@@ -99,19 +99,28 @@ typedef enum {
// Enables the movement of an actor in the Y-axis based on the current animation.
// This only has an effect if the "Actor Move" Anim Task is in use.
+//
+// This animation-driven movement does not replace "normal" movement from other sources
+// such as speed/velocity and collisions. The actor should stop updating other sources of movement
+// as required if they are preventing the animation from playing as intended.
+// An option is to implement and use `ANIM_FLAG_OVERRIDE_MOVEMENT`.
#define ANIM_FLAG_UPDATE_Y (1 << 1)
// (player-only) Related to scaling an animation from/to child/adult
-#define ANIM_FLAG_PLAYER_2 (1 << 2)
+#define ANIM_FLAG_PLAYER_2 (1 << 2)
// (player-only) Call AnimTaskQueue_AddActorMove
-#define ANIM_FLAG_PLAYER_SETMOVE (1 << 3)
+#define ANIM_FLAG_PLAYER_SETMOVE (1 << 3)
//
#define ANIM_FLAG_NO_MOVE (1 << 4)
-// (player-only)
-#define ANIM_FLAG_PLAYER_7 (1 << 7)
+// Disables "normal" movement from sources like speed/velocity and collisions, which allows the
+// animation to have full control over the actor's movement.
+//
+// Note that individual actors are responsible for implementing the functionality of this flag.
+// In practice, Player is the only actor who implements this flag.
+#define ANIM_FLAG_OVERRIDE_MOVEMENT (1 << 7)
typedef struct SkelAnime {
/* 0x00 */ u8 limbCount; // Number of limbs in the skeleton
diff --git a/include/z64bgcheck.h b/include/z64bgcheck.h
index 0568d7bd3..a1017ddc7 100644
--- a/include/z64bgcheck.h
+++ b/include/z64bgcheck.h
@@ -49,7 +49,7 @@ typedef struct {
// flags for flags_vIB
#define COLPOLY_IS_FLOOR_CONVEYOR (1 << 0)
-typedef struct {
+typedef struct CollisionPoly {
/* 0x00 */ u16 type;
union {
u16 vtxData[3];
diff --git a/include/z64camera.h b/include/z64camera.h
index 04c3c7091..ab729b083 100644
--- a/include/z64camera.h
+++ b/include/z64camera.h
@@ -132,6 +132,9 @@
// Use a camera pivot setting that allows camera rotation (CAM_SET_PIVOT_SHOP_BROWSING for shop specifically)
#define VIEWPOINT_PIVOT (BGCAM_INDEX_TOGGLE_PIVOT + 1)
+struct Actor;
+struct CollisionPoly;
+
typedef enum {
/* 0x00 */ CAM_SET_NONE,
/* 0x01 */ CAM_SET_NORMAL0,
@@ -338,7 +341,7 @@ typedef enum {
typedef struct {
/* 0x00 */ Vec3f collisionClosePoint;
- /* 0x0C */ CollisionPoly* atEyePoly;
+ /* 0x0C */ struct CollisionPoly* atEyePoly;
/* 0x10 */ f32 swingUpdateRate;
/* 0x14 */ s16 unk_14;
/* 0x16 */ s16 unk_16;
@@ -678,7 +681,7 @@ typedef struct {
/* 0x00 */ f32 initialEyeToAtDist;
/* 0x04 */ f32 roll;
/* 0x08 */ f32 yPosOffset;
- /* 0x0C */ Actor* target;
+ /* 0x0C */ struct Actor* target;
/* 0x10 */ f32 unk_10;
/* 0x14 */ s16 unk_14; // unused
/* 0x16 */ s16 initialEyeToAtYaw;
@@ -759,7 +762,7 @@ typedef struct {
/* 0x00 */ f32 unk_00;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
- /* 0x0C */ Actor* unk_0C;
+ /* 0x0C */ struct Actor* unk_0C;
/* 0x10 */ s16 unk_10;
/* 0x12 */ s16 unk_12;
/* 0x14 */ s16 unk_14;
@@ -808,7 +811,7 @@ typedef struct {
/* 0x00 */ f32 eyeToAtTargetR;
/* 0x08 */ f32 eyeToAtTargetYaw;
/* 0x04 */ f32 eyeToAtTargetPitch;
- /* 0x0C */ Actor* target;
+ /* 0x0C */ struct Actor* target;
/* 0x10 */ Vec3f atTarget;
/* 0x1C */ s16 animTimer;
} KeepOn3ReadWriteData; // size = 0x20
@@ -1550,7 +1553,7 @@ typedef union {
typedef struct {
/* 0x00 */ Vec3f pos;
/* 0x0C */ Vec3f norm;
- /* 0x18 */ CollisionPoly* poly;
+ /* 0x18 */ struct CollisionPoly* poly;
/* 0x1C */ VecGeo geoNorm;
/* 0x24 */ s32 bgId;
} CamColChk; // size = 0x28
diff --git a/include/z64collision_check.h b/include/z64collision_check.h
index aa69dedb0..a9cff3a58 100644
--- a/include/z64collision_check.h
+++ b/include/z64collision_check.h
@@ -306,6 +306,18 @@ typedef struct {
/* 0x18 */ u16 ocFlags;
} OcLine; // size = 0x1C
+typedef struct CollisionCheckContext {
+ /* 0x000 */ s16 colATCount;
+ /* 0x002 */ u16 sacFlags;
+ /* 0x004 */ Collider* colAT[COLLISION_CHECK_AT_MAX];
+ /* 0x0CC */ s32 colACCount;
+ /* 0x0D0 */ Collider* colAC[COLLISION_CHECK_AC_MAX];
+ /* 0x1C0 */ s32 colOCCount;
+ /* 0x1C4 */ Collider* colOC[COLLISION_CHECK_OC_MAX];
+ /* 0x28C */ s32 colLineCount;
+ /* 0x290 */ OcLine* colLine[COLLISION_CHECK_OC_LINE_MAX];
+} CollisionCheckContext; // size = 0x29C
+
/*
* Collider properties, for all shapes
*/
diff --git a/include/z64cutscene.h b/include/z64cutscene.h
index 2301a320c..3968fe14c 100644
--- a/include/z64cutscene.h
+++ b/include/z64cutscene.h
@@ -2,6 +2,7 @@
#define Z64CUTSCENE_H
#include "ultra64.h"
+#include "z64math.h"
#include "config.h"
typedef union CutsceneData {
diff --git a/include/z64frame_advance.h b/include/z64frame_advance.h
new file mode 100644
index 000000000..3912b333e
--- /dev/null
+++ b/include/z64frame_advance.h
@@ -0,0 +1,24 @@
+#ifndef Z64FRAME_ADVANCE_H
+#define Z64FRAME_ADVANCE_H
+
+#include "ultra64.h"
+
+#include "config.h"
+
+struct Input;
+struct PlayState;
+
+typedef struct {
+ /* 0x0 */ s32 enabled;
+ /* 0x4 */ s32 timer;
+} FrameAdvanceContext; // size = 0x8
+
+
+#if ARE_FRAMERATE_OPTIONS_ENABLED
+void FrameAdvance_Init(FrameAdvanceContext* frameAdvCtx);
+s32 FrameAdvance_Update(FrameAdvanceContext* frameAdvCtx, struct Input* input);
+#endif
+
+int FrameAdvance_IsEnabled(struct PlayState* this);
+
+#endif
diff --git a/include/z64game_over.h b/include/z64game_over.h
new file mode 100644
index 000000000..03697c1f5
--- /dev/null
+++ b/include/z64game_over.h
@@ -0,0 +1,29 @@
+#ifndef Z64GAME_OVER_H
+#define Z64GAME_OVER_H
+
+#include "ultra64.h"
+
+struct PlayState;
+
+typedef enum GameOverState {
+ /* 00 */ GAMEOVER_INACTIVE,
+ /* 01 */ GAMEOVER_DEATH_START,
+ /* 02 */ GAMEOVER_DEATH_WAIT_GROUND, // wait for link to fall and hit the ground
+ /* 03 */ GAMEOVER_DEATH_DELAY_MENU, // wait for 1 second before showing the game over menu
+ /* 04 */ GAMEOVER_DEATH_MENU, // do nothing while kaleidoscope handles the game over menu
+ /* 20 */ GAMEOVER_REVIVE_START = 20,
+ /* 21 */ GAMEOVER_REVIVE_RUMBLE,
+ /* 22 */ GAMEOVER_REVIVE_WAIT_GROUND, // wait for link to fall and hit the ground
+ /* 23 */ GAMEOVER_REVIVE_WAIT_FAIRY, // wait for the fairy to rise all the way up out of links body
+ /* 24 */ GAMEOVER_REVIVE_FADE_OUT // fade out the game over lights as link is revived and gets back up
+} GameOverState;
+
+typedef struct GameOverContext {
+ /* 0x00 */ u16 state;
+} GameOverContext; // size = 0x2
+
+void GameOver_Init(struct PlayState* play);
+void GameOver_FadeInLights(struct PlayState* play);
+void GameOver_Update(struct PlayState* play);
+
+#endif
diff --git a/include/z64math.h b/include/z64math.h
index 283dcc9c4..b8b6e3560 100644
--- a/include/z64math.h
+++ b/include/z64math.h
@@ -41,6 +41,11 @@ typedef struct {
f32 radius;
} Spheref; // size = 0x10
+typedef struct {
+ /* 0x00 */ Vec3f pos;
+ /* 0x0C */ Vec3s rot;
+} PosRot; // size = 0x14
+
typedef struct {
Vec3f normal;
f32 originDist;
diff --git a/include/z64play.h b/include/z64play.h
new file mode 100644
index 000000000..ae5882fca
--- /dev/null
+++ b/include/z64play.h
@@ -0,0 +1,161 @@
+#ifndef Z64PLAY_H
+#define Z64PLAY_H
+
+#include "ultra64.h"
+
+#include "prerender.h"
+
+#include "z64actor.h"
+#include "z64bgcheck.h"
+#include "z64camera.h"
+#include "z64cutscene.h"
+#include "z64environment.h"
+#include "z64frame_advance.h"
+#include "z64game.h"
+#include "z64game_over.h"
+#include "z64interface.h"
+#include "z64light.h"
+#include "z64message.h"
+#include "z64object.h"
+#include "z64pause.h"
+#include "z64scene.h"
+#include "z64sfx_source.h"
+#include "z64skybox.h"
+#include "z64sram.h"
+#include "z64transition.h"
+#include "z64view.h"
+
+union Color_RGBA8_u32;
+struct QuestHintCmd;
+struct VisMono;
+
+typedef struct SceneSequences {
+ /* 0x00 */ u8 seqId;
+ /* 0x01 */ u8 natureAmbienceId;
+} SceneSequences; // size = 0x2
+
+typedef struct PlayState {
+ /* 0x00000 */ GameState state;
+ /* 0x000A4 */ s16 sceneId;
+ /* 0x000A6 */ u8 sceneDrawConfig;
+ /* 0x000A7 */ char unk_A7[0x9];
+ /* 0x000B0 */ void* sceneSegment;
+ /* 0x000B8 */ View view;
+ /* 0x001E0 */ Camera mainCamera;
+ /* 0x0034C */ Camera subCameras[NUM_CAMS - CAM_ID_SUB_FIRST];
+ /* 0x00790 */ Camera* cameraPtrs[NUM_CAMS];
+ /* 0x007A0 */ s16 activeCamId;
+ /* 0x007A2 */ s16 nextCamId;
+ /* 0x007A4 */ SceneSequences sceneSequences;
+ /* 0x007A8 */ LightContext lightCtx;
+ /* 0x007B8 */ FrameAdvanceContext frameAdvCtx; // ENABLE_FRAMERATE_OPTIONS
+ /* 0x007C0 */ CollisionContext colCtx;
+ /* 0x01C24 */ ActorContext actorCtx;
+ /* 0x01D64 */ CutsceneContext csCtx; // "demo_play"
+ /* 0x01DB4 */ SfxSource sfxSources[SFX_SOURCE_COUNT];
+ /* 0x01F74 */ SramContext sramCtx;
+ /* 0x01F78 */ SkyboxContext skyboxCtx;
+ /* 0x020D8 */ MessageContext msgCtx; // "message"
+ /* 0x104F0 */ InterfaceContext interfaceCtx; // "parameter"
+ /* 0x10760 */ PauseContext pauseCtx;
+ /* 0x10A20 */ GameOverContext gameOverCtx;
+ /* 0x10A24 */ EnvironmentContext envCtx;
+ /* 0x10B20 */ AnimTaskQueue animTaskQueue;
+ /* 0x117A4 */ ObjectContext objectCtx;
+ /* 0x11CBC */ RoomContext roomCtx;
+ /* 0x11D34 */ TransitionActorContext transiActorCtx;
+ /* 0x11D3C */ void (*playerInit)(Player* player, struct PlayState* play, FlexSkeletonHeader* skelHeader);
+ /* 0x11D40 */ void (*playerUpdate)(Player* player, struct PlayState* play, Input* input);
+ /* 0x11D44 */ int (*isPlayerDroppingFish)(struct PlayState* play);
+ /* 0x11D48 */ s32 (*startPlayerFishing)(struct PlayState* play);
+ /* 0x11D4C */ s32 (*grabPlayer)(struct PlayState* play, Player* player);
+ /* 0x11D50 */ s32 (*tryPlayerCsAction)(struct PlayState* play, Actor* actor, s32 csAction);
+ /* 0x11D54 */ void (*func_11D54)(Player* player, struct PlayState* play);
+ /* 0x11D58 */ s32 (*damagePlayer)(struct PlayState* play, s32 damage);
+ /* 0x11D5C */ void (*talkWithPlayer)(struct PlayState* play, Actor* actor);
+ /* 0x11D60 */ MtxF viewProjectionMtxF;
+ /* 0x11DA0 */ MtxF billboardMtxF;
+ /* 0x11DE0 */ Mtx* billboardMtx;
+ /* 0x11DE4 */ u32 gameplayFrames;
+ /* 0x11DE8 */ u8 linkAgeOnLoad;
+ /* 0x11DE9 */ u8 haltAllActors;
+ /* 0x11DEA */ u8 spawn;
+ /* 0x11DEB */ u8 numActorEntries;
+ /* 0x11DEC */ u8 numRooms;
+ /* 0x11DF0 */ RomFile* roomList;
+ /* 0x11DF4 */ ActorEntry* playerEntry;
+ /* 0x11DF8 */ ActorEntry* actorEntryList;
+ /* 0x11DFC */ void* unk_11DFC;
+ /* 0x11E00 */ Spawn* spawnList;
+ /* 0x11E04 */ s16* exitList;
+ /* 0x11E08 */ Path* pathList;
+ /* 0x11E0C */ struct QuestHintCmd* naviQuestHints;
+ /* 0x11E10 */ void* specialEffects;
+ /* 0x11E14 */ u8 skyboxId;
+ /* 0x11E15 */ s8 transitionTrigger; // "fade_direction"
+ /* 0x11E16 */ s16 unk_11E16;
+ /* 0x11E18 */ s16 bgCoverAlpha;
+ /* 0x11E1A */ s16 nextEntranceIndex;
+ /* 0x11E1C */ char unk_11E1C[0x40];
+ /* 0x11E5C */ s8 shootingGalleryStatus;
+ /* 0x11E5D */ s8 bombchuBowlingStatus; // "bombchu_game_flag"
+ /* 0x11E5E */ u8 transitionType;
+ /* 0x11E60 */ CollisionCheckContext colChkCtx;
+ /* 0x120FC */ u16 cutsceneFlags[20];
+ /* 0x12124 */ PreRender pauseBgPreRender;
+ /* 0x12174 */ char unk_12174[0x53];
+ /* 0x121C7 */ s8 unk_121C7;
+ /* 0x121C8 */ TransitionContext transitionCtx;
+ /* 0x12418 */ char unk_12418[0x3];
+ /* 0x1241B */ u8 transitionMode; // "fbdemo_wipe_modem"
+ /* 0x1241C */ TransitionFade transitionFadeFlash; // Transition fade instance which flashes screen, see R_TRANS_FADE_FLASH_ALPHA_STEP
+ /* 0x12428 */ char unk_12428[0x3];
+ /* 0x1242B */ u8 viewpoint; // toggleable camera setting by shops or player. Is also equal to the bgCamIndex + 1
+ /* 0x1242C */ SceneTableEntry* loadedScene;
+ /* 0x12430 */ char unk_12430[0xE8];
+} PlayState; // size = 0x12518
+
+#define GET_ACTIVE_CAM(play) ((play)->cameraPtrs[(play)->activeCamId])
+#define GET_PLAYER(play) ((Player*)(play)->actorCtx.actorLists[ACTORCAT_PLAYER].head)
+
+void Play_SetViewpoint(PlayState* this, s16 viewpoint);
+s32 Play_CheckViewpoint(PlayState* this, s16 viewpoint);
+void Play_SetShopBrowsingViewpoint(PlayState* this);
+Gfx* Play_SetFog(PlayState* this, Gfx* gfx);
+void Play_Destroy(GameState* thisx);
+void Play_Init(GameState* thisx);
+void Play_Main(GameState* thisx);
+int Play_InCsMode(PlayState* this);
+f32 func_800BFCB8(PlayState* this, MtxF* mf, Vec3f* pos);
+void* Play_LoadFile(PlayState* this, RomFile* file);
+void Play_GetScreenPos(PlayState* this, Vec3f* src, Vec3f* dest);
+s16 Play_CreateSubCamera(PlayState* this);
+s16 Play_GetActiveCamId(PlayState* this);
+s16 Play_ChangeCameraStatus(PlayState* this, s16 camId, s16 status);
+void Play_ClearCamera(PlayState* this, s16 camId);
+void Play_ClearAllSubCameras(PlayState* this);
+Camera* Play_GetCamera(PlayState* this, s16 camId);
+s32 Play_SetCameraAtEye(PlayState* this, s16 camId, Vec3f* at, Vec3f* eye);
+s32 Play_SetCameraAtEyeUp(PlayState* this, s16 camId, Vec3f* at, Vec3f* eye, Vec3f* up);
+s32 Play_SetCameraFov(PlayState* this, s16 camId, f32 fov);
+s32 Play_SetCameraRoll(PlayState* this, s16 camId, s16 roll);
+void Play_CopyCamera(PlayState* this, s16 destCamId, s16 srcCamId);
+s32 Play_InitCameraDataUsingPlayer(PlayState* this, s16 camId, Player* player, s16 setting);
+s32 Play_RequestCameraSetting(PlayState* this, s16 camId, s16 setting);
+void Play_ReturnToMainCam(PlayState* this, s16 camId, s16 duration);
+void Play_SaveSceneFlags(PlayState* this);
+void Play_SetupRespawnPoint(PlayState* this, s32 respawnMode, s32 playerParams);
+void Play_TriggerVoidOut(PlayState* this);
+void Play_TriggerRespawn(PlayState* this);
+int Play_CamIsNotFixed(PlayState* this);
+
+#if OOT_DEBUG
+extern void* gDebugCutsceneScript;
+#endif
+
+extern TransitionTile gTransitionTile;
+extern s32 gTransitionTileState;
+extern struct VisMono gPlayVisMono;
+extern union Color_RGBA8_u32 gVisMonoColor;
+
+#endif
diff --git a/include/z64player.h b/include/z64player.h
index 21eabef4e..bc44fb124 100644
--- a/include/z64player.h
+++ b/include/z64player.h
@@ -788,7 +788,7 @@ typedef struct Player {
/* 0x0450 */ Vec3f unk_450;
/* 0x045C */ Vec3f unk_45C;
/* 0x0468 */ char unk_468[0x002];
- /* 0x046A */ union {
+ /* 0x046A */ union {
s16 haltActorsDuringCsAction; // If true, halt actors belonging to certain categories during a `csAction`
s16 slidingDoorBgCamIndex; // `BgCamIndex` used during a sliding door cutscene
} cv; // "Cutscene Variable": context dependent variable that has different meanings depending on what function is called
@@ -850,11 +850,11 @@ typedef struct Player {
/* 0x0847 */ s8 controlStickSpinAngles[4]; // Stores a modified version of the control stick angle for the last 4 frames. Used for checking spins.
/* 0x084B */ s8 controlStickDirections[4]; // Stores the control stick direction (relative to shape yaw) for the last 4 frames. See `PlayerStickDirection`.
- /* 0x084F */ union {
+ /* 0x084F */ union {
s8 actionVar1;
} av1; // "Action Variable 1": context dependent variable that has different meanings depending on what action is currently running
- /* 0x0850 */ union {
+ /* 0x0850 */ union {
s16 actionVar2;
} av2; // "Action Variable 2": context dependent variable that has different meanings depending on what action is currently running
diff --git a/include/z64scene.h b/include/z64scene.h
index ce2664429..0b06a931b 100644
--- a/include/z64scene.h
+++ b/include/z64scene.h
@@ -34,6 +34,11 @@ typedef struct {
/* 0x0E */ s16 params;
} TransitionActorEntry; // size = 0x10
+typedef struct TransitionActorContext {
+ /* 0x00 */ u8 numActors;
+ /* 0x04 */ TransitionActorEntry* list;
+} TransitionActorContext; // size = 0x8
+
typedef struct {
/* 0x00 */ u8 playerEntryIndex;
/* 0x01 */ u8 room;
@@ -140,6 +145,54 @@ typedef union {
RoomShapeCullable cullable;
} RoomShape; // "Ground Shape"
+typedef enum RoomBehaviorType1 {
+ /* 0 */ ROOM_BEHAVIOR_TYPE1_0,
+ /* 1 */ ROOM_BEHAVIOR_TYPE1_1,
+ /* 2 */ ROOM_BEHAVIOR_TYPE1_2,
+ /* 3 */ ROOM_BEHAVIOR_TYPE1_3, // unused
+ /* 4 */ ROOM_BEHAVIOR_TYPE1_4, // unused
+ /* 5 */ ROOM_BEHAVIOR_TYPE1_5
+} RoomBehaviorType1;
+
+typedef enum RoomBehaviorType2 {
+ /* 0 */ ROOM_BEHAVIOR_TYPE2_0,
+ /* 1 */ ROOM_BEHAVIOR_TYPE2_1,
+ /* 2 */ ROOM_BEHAVIOR_TYPE2_2,
+ /* 3 */ ROOM_BEHAVIOR_TYPE2_3,
+ /* 4 */ ROOM_BEHAVIOR_TYPE2_4,
+ /* 5 */ ROOM_BEHAVIOR_TYPE2_5,
+ /* 6 */ ROOM_BEHAVIOR_TYPE2_6
+} RoomBehaviorType2;
+
+typedef struct Room {
+ /* 0x00 */ s8 num;
+ /* 0x01 */ u8 unk_01;
+ /* 0x02 */ u8 behaviorType2;
+ /* 0x03 */ u8 behaviorType1;
+ /* 0x04 */ s8 echo;
+ /* 0x05 */ u8 lensMode;
+#if ENABLE_F3DEX3
+ u8 occPlaneCount;
+ OcclusionPlaneCandidate* occPlaneList;
+#endif
+ /* 0x08 */ RoomShape* roomShape; // original name: "ground_shape"
+ /* 0x0C */ void* segment;
+ /* 0x10 */ char unk_10[0x4];
+} Room; // size = 0x14
+
+typedef struct RoomContext {
+ /* 0x00 */ Room curRoom;
+ /* 0x14 */ Room prevRoom;
+ /* 0x28 */ void* bufPtrs[2];
+ /* 0x30 */ u8 unk_30;
+ /* 0x31 */ s8 status;
+ /* 0x34 */ void* unk_34;
+ /* 0x38 */ DmaRequest dmaRequest;
+ /* 0x58 */ OSMesgQueue loadQueue;
+ /* 0x70 */ OSMesg loadMsg;
+ /* 0x74 */ s16 unk_74[2]; // context-specific data used by the current scene draw config
+} RoomContext; // size = 0x78
+
#define ROOM_DRAW_OPA (1 << 0)
#define ROOM_DRAW_XLU (1 << 1)
diff --git a/include/z64sfx_source.h b/include/z64sfx_source.h
new file mode 100644
index 000000000..0034bc90a
--- /dev/null
+++ b/include/z64sfx_source.h
@@ -0,0 +1,21 @@
+#ifndef Z64SFX_SOURCE_H
+#define Z64SFX_SOURCE_H
+
+#include "ultra64.h"
+#include "z64math.h"
+
+struct PlayState;
+
+typedef struct SfxSource {
+ /* 0x00 */ u16 countdown;
+ /* 0x04 */ Vec3f worldPos;
+ /* 0x10 */ Vec3f projectedPos;
+} SfxSource; // size = 0x1C
+
+#define SFX_SOURCE_COUNT 16
+
+void SfxSource_InitAll(struct PlayState* play);
+void SfxSource_UpdateAll(struct PlayState* play);
+void SfxSource_PlaySfxAtFixedWorldPos(struct PlayState* play, Vec3f* worldPos, s32 duration, u16 sfxId);
+
+#endif
diff --git a/include/z64transition_instances.h b/include/z64transition_instances.h
index c8fd3f16c..1d08ab34b 100644
--- a/include/z64transition_instances.h
+++ b/include/z64transition_instances.h
@@ -88,7 +88,7 @@ typedef struct {
/* 0x060 */ Mtx lookAt;
/* 0x0A0 */ void* texture;
/* 0x0A8 */ Mtx modelView[2][3];
-} TransitionCircle; // size = 0x228;
+} TransitionCircle; // size = 0x228
typedef struct {
/* 0x000 */ Color_RGBA8_u32 color;
@@ -99,6 +99,6 @@ typedef struct {
/* 0x018 */ Mtx projection;
/* 0x058 */ s32 frame;
/* 0x060 */ Mtx modelView[2][3];
-} TransitionTriforce; // size = 0x1E0;
+} TransitionTriforce; // size = 0x1E0
#endif
diff --git a/include/z64vis.h b/include/z64vis.h
index c88d6de48..371b2346b 100644
--- a/include/z64vis.h
+++ b/include/z64vis.h
@@ -55,7 +55,7 @@ void VisCvg_Draw(VisCvg* this, Gfx** gfxP);
// Only one type
-typedef struct {
+typedef struct VisMono {
/* 0x00 */ Vis vis;
/* 0x10 */ u16* tlut;
/* 0x14 */ Gfx* dList;
diff --git a/src/code/PreRender.c b/src/code/PreRender.c
index ea94e238e..404f5518f 100644
--- a/src/code/PreRender.c
+++ b/src/code/PreRender.c
@@ -659,11 +659,12 @@ void PreRender_AntiAliasFilter(PreRender* this, s32 x, s32 y) {
}
}
- // The background color is determined by averaging the penultimate minimum and maximum pixels, and subtracting the
+ // The background color is determined by adding the penultimate minimum and maximum pixels, and subtracting the
// ForeGround color:
- // BackGround = (pMax + pMin) - (ForeGround) * 2
+ // BackGround = (pMax + pMin) - ForeGround
// OutputColor = cvg * ForeGround + (1.0 - cvg) * BackGround
+ // = ForeGround + (1.0 - cvg) * (BackGround - ForeGround)
invCvg = 7 - buffCvg[7];
outR = buffR[7] + ((s32)(invCvg * (pmaxR + pminR - (buffR[7] * 2)) + 4) >> 3);
outG = buffG[7] + ((s32)(invCvg * (pmaxG + pminG - (buffG[7] * 2)) + 4) >> 3);
diff --git a/src/code/fault.c b/src/code/fault.c
index 2b0944eae..c0c669241 100644
--- a/src/code/fault.c
+++ b/src/code/fault.c
@@ -35,7 +35,7 @@
* - End Screen
* This page informs you that there are no more pages to display.
*
- * To navigate the pages, START and A may be used to advance to the next page, and L toggles whether to
+ * To navigate the pages, DPad-Right or A may be used to advance to the next page, and L toggles whether to
* automatically scroll to the next page after some time has passed.
* DPad-Up may be pressed to enable sending fault pages over osSyncPrintf as well as displaying them on-screen.
* DPad-Down disables sending fault pages over osSyncPrintf.
@@ -750,6 +750,8 @@ void Fault_DrawMemDump(uintptr_t pc, uintptr_t sp, uintptr_t cLeftJump, uintptr_
} while (input->press.button == 0);
// Move to next page
+ //! @bug DPad-Right does not move to the next page, unlike when on any other page
+ // START moving to the next page is unique to this page.
if (CHECK_BTN_ALL(input->press.button, BTN_START) || CHECK_BTN_ALL(input->cur.button, BTN_A)) {
return;
}
diff --git a/src/code/graph.c b/src/code/graph.c
index 483bc3ffd..f5fac1b83 100644
--- a/src/code/graph.c
+++ b/src/code/graph.c
@@ -452,6 +452,7 @@ void Graph_ThreadEntry(void* arg0) {
if (gameState == NULL) {
#if IS_DEBUG
char faultMsg[0x50];
+
PRINTF("確保失敗\n"); // "Failure to secure"
sprintf(faultMsg, "CLASS SIZE= %d bytes", size);
diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c
index 1295e50d6..8778594ef 100644
--- a/src/code/sys_math3d.c
+++ b/src/code/sys_math3d.c
@@ -7,7 +7,7 @@
// For retail BSS ordering, the block number of cbf in Math3D_CylVsCylOverlapCenterDist
// must be 0.
-#pragma increment_block_number 111
+#pragma increment_block_number 108
s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB,
Vec3f* lineAClosestToB, Vec3f* lineBClosestToA);
diff --git a/src/code/z_camera.c b/src/code/z_camera.c
index 30ff751bb..0d25836b5 100644
--- a/src/code/z_camera.c
+++ b/src/code/z_camera.c
@@ -6,7 +6,7 @@
// For retail BSS ordering, the block number of D_8015BD7C
// must be between 88 and 123 inclusive.
-#pragma increment_block_number 30
+#pragma increment_block_number 26
s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags);
s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange);
diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c
index b66a102f7..46a9a3ba5 100644
--- a/src/code/z_collision_check.c
+++ b/src/code/z_collision_check.c
@@ -1,5 +1,8 @@
#include "global.h"
#include "terminal.h"
+
+#include "z64frame_advance.h"
+
#include "overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.h"
typedef s32 (*ColChkResetFunc)(PlayState*, Collider*);
@@ -7,6 +10,8 @@ typedef void (*ColChkApplyFunc)(PlayState*, CollisionCheckContext*, Collider*);
typedef void (*ColChkVsFunc)(PlayState*, CollisionCheckContext*, Collider*, Collider*);
typedef s32 (*ColChkLineFunc)(PlayState*, CollisionCheckContext*, Collider*, Vec3f*, Vec3f*);
+#define SAC_ENABLE (1 << 0)
+
// For retail BSS ordering, the block number of sparkInit in CollisionCheck_BlueBlood
// must be between 183 and 255 inclusive.
#pragma increment_block_number 50
@@ -2366,10 +2371,6 @@ void CollisionCheck_ATTrisVsACTris(PlayState* play, CollisionCheckContext* colCh
}
}
-#if OOT_DEBUG
-static s8 sBssDummy7;
-#endif
-
void CollisionCheck_ATTrisVsACQuad(PlayState* play, CollisionCheckContext* colChkCtx, Collider* atCol,
Collider* acCol) {
static Vec3f hitPos;
diff --git a/src/code/z_demo.c b/src/code/z_demo.c
index a27480988..7a62d8db8 100644
--- a/src/code/z_demo.c
+++ b/src/code/z_demo.c
@@ -116,7 +116,7 @@ void* sUnusedEntranceCsList[] = {
gDekuTreeIntroCs, gJabuJabuIntroCs, gDcOpeningCs, gMinuetCs, gIceCavernSerenadeCs, gTowerBarrierCs,
};
-#pragma increment_block_number 254
+#pragma increment_block_number 248
// Stores the frame the relevant cam data was last applied on
u16 gCamAtSplinePointsAppliedFrame;
@@ -2274,11 +2274,15 @@ void CutsceneHandler_RunScript(PlayState* play, CutsceneContext* csCtx) {
csCtx->curFrame++;
- if (IS_DEBUG && R_USE_DEBUG_CUTSCENE) {
+#if IS_DEBUG
+ if (R_USE_DEBUG_CUTSCENE) {
Cutscene_ProcessScript(play, csCtx, gDebugCutsceneScript);
} else {
Cutscene_ProcessScript(play, csCtx, play->csCtx.script);
}
+#else
+ Cutscene_ProcessScript(play, csCtx, play->csCtx.script);
+#endif
}
}
diff --git a/src/code/z_effect.c b/src/code/z_effect.c
index b4226e9de..089387b17 100644
--- a/src/code/z_effect.c
+++ b/src/code/z_effect.c
@@ -1,5 +1,7 @@
#include "global.h"
+#include "z64frame_advance.h"
+
EffectContext sEffectContext;
EffectInfo sEffectInfoTable[] = {
diff --git a/src/code/z_effect_soft_sprite.c b/src/code/z_effect_soft_sprite.c
index 4df2b6e4c..32570ce43 100644
--- a/src/code/z_effect_soft_sprite.c
+++ b/src/code/z_effect_soft_sprite.c
@@ -1,6 +1,8 @@
#include "global.h"
#include "terminal.h"
+#include "z64frame_advance.h"
+
EffectSsInfo sEffectSsInfo = { 0 }; // "EffectSS2Info"
void EffectSs_InitInfo(PlayState* play, s32 tableSize) {
diff --git a/src/code/z_frame_advance.c b/src/code/z_frame_advance.c
index 0121f7ca7..f74dd1de7 100644
--- a/src/code/z_frame_advance.c
+++ b/src/code/z_frame_advance.c
@@ -1,4 +1,9 @@
-#include "global.h"
+#include "z64frame_advance.h"
+
+#include "stdbool.h"
+
+#include "padmgr.h"
+#include "macros.h"
void FrameAdvance_Init(FrameAdvanceContext* frameAdvCtx) {
frameAdvCtx->timer = 0;
diff --git a/src/code/z_game_over.c b/src/code/z_game_over.c
index b282fc9e7..ff2f2a57d 100644
--- a/src/code/z_game_over.c
+++ b/src/code/z_game_over.c
@@ -1,3 +1,5 @@
+#include "z64game_over.h"
+
#include "global.h"
void GameOver_Init(PlayState* play) {
diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c
index 87ce01e8e..e610c888f 100644
--- a/src/code/z_kankyo.c
+++ b/src/code/z_kankyo.c
@@ -1,13 +1,16 @@
#include "global.h"
#include "ultra64.h"
#include "terminal.h"
+
+#include "z64frame_advance.h"
+
#include "assets/objects/gameplay_keep/gameplay_keep.h"
#include "assets/objects/gameplay_field_keep/gameplay_field_keep.h"
// For retail BSS ordering, the block number of sLensFlareUnused must be lower
// than the extern variables declared in the header (e.g. gLightningStrike)
// while the block number of sNGameOverLightNode must be higher.
-#pragma increment_block_number 78
+#pragma increment_block_number 70
typedef enum {
/* 0x00 */ LIGHTNING_BOLT_START,
@@ -2062,30 +2065,30 @@ void Environment_PlaySceneSequence(PlayState* play) {
SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, ((void)0, gSaveContext.forcedSeqId));
}
gSaveContext.forcedSeqId = NA_BGM_GENERAL_SFX;
- } else if (play->sequenceCtx.seqId == NA_BGM_NO_MUSIC) {
- if (play->sequenceCtx.natureAmbienceId == NATURE_ID_NONE) {
+ } else if (play->sceneSequences.seqId == NA_BGM_NO_MUSIC) {
+ if (play->sceneSequences.natureAmbienceId == NATURE_ID_NONE) {
return;
}
- if (((void)0, gSaveContext.natureAmbienceId) != play->sequenceCtx.natureAmbienceId) {
- Audio_PlayNatureAmbienceSequence(play->sequenceCtx.natureAmbienceId);
+ if (((void)0, gSaveContext.natureAmbienceId) != play->sceneSequences.natureAmbienceId) {
+ Audio_PlayNatureAmbienceSequence(play->sceneSequences.natureAmbienceId);
}
- } else if (play->sequenceCtx.natureAmbienceId == NATURE_ID_NONE) {
+ } else if (play->sceneSequences.natureAmbienceId == NATURE_ID_NONE) {
// "BGM Configuration"
- PRINTF("\n\n\nBGM設定game_play->sound_info.BGM=[%d] old_bgm=[%d]\n\n", play->sequenceCtx.seqId,
+ PRINTF("\n\n\nBGM設定game_play->sound_info.BGM=[%d] old_bgm=[%d]\n\n", play->sceneSequences.seqId,
((void)0, gSaveContext.seqId));
- if (((void)0, gSaveContext.seqId) != play->sequenceCtx.seqId) {
- Audio_PlaySceneSequence(play->sequenceCtx.seqId);
+ if (((void)0, gSaveContext.seqId) != play->sceneSequences.seqId) {
+ Audio_PlaySceneSequence(play->sceneSequences.seqId);
}
} else if (((void)0, gSaveContext.save.dayTime) >= CLOCK_TIME(7, 0) &&
((void)0, gSaveContext.save.dayTime) <= CLOCK_TIME(17, 10)) {
- if (((void)0, gSaveContext.seqId) != play->sequenceCtx.seqId) {
- Audio_PlaySceneSequence(play->sequenceCtx.seqId);
+ if (((void)0, gSaveContext.seqId) != play->sceneSequences.seqId) {
+ Audio_PlaySceneSequence(play->sceneSequences.seqId);
}
play->envCtx.timeSeqState = TIMESEQ_FADE_DAY_BGM;
} else {
- if (((void)0, gSaveContext.natureAmbienceId) != play->sequenceCtx.natureAmbienceId) {
- Audio_PlayNatureAmbienceSequence(play->sequenceCtx.natureAmbienceId);
+ if (((void)0, gSaveContext.natureAmbienceId) != play->sceneSequences.natureAmbienceId) {
+ Audio_PlayNatureAmbienceSequence(play->sceneSequences.natureAmbienceId);
}
if (((void)0, gSaveContext.save.dayTime) > CLOCK_TIME(17, 10) &&
@@ -2101,8 +2104,8 @@ void Environment_PlaySceneSequence(PlayState* play) {
PRINTF("\n-----------------\n", ((void)0, gSaveContext.forcedSeqId));
PRINTF("\n 強制BGM=[%d]", ((void)0, gSaveContext.forcedSeqId)); // "Forced BGM"
- PRINTF("\n BGM=[%d]", play->sequenceCtx.seqId);
- PRINTF("\n エンブ=[%d]", play->sequenceCtx.natureAmbienceId);
+ PRINTF("\n BGM=[%d]", play->sceneSequences.seqId);
+ PRINTF("\n エンブ=[%d]", play->sceneSequences.natureAmbienceId);
PRINTF("\n status=[%d]", play->envCtx.timeSeqState);
Audio_SetEnvReverb(play->roomCtx.curRoom.echo);
@@ -2116,7 +2119,7 @@ void Environment_PlayTimeBasedSequence(PlayState* play) {
if (play->envCtx.precipitation[PRECIP_RAIN_MAX] == 0 && play->envCtx.precipitation[PRECIP_SOS_MAX] == 0) {
PRINTF("\n\n\nNa_StartMorinigBgm\n\n");
- Audio_PlayMorningSceneSequence(play->sequenceCtx.seqId);
+ Audio_PlayMorningSceneSequence(play->sceneSequences.seqId);
}
play->envCtx.timeSeqState++;
@@ -2142,7 +2145,7 @@ void Environment_PlayTimeBasedSequence(PlayState* play) {
case TIMESEQ_EARLY_NIGHT_CRITTERS:
if (play->envCtx.precipitation[PRECIP_RAIN_MAX] == 0 && play->envCtx.precipitation[PRECIP_SOS_MAX] == 0) {
- Audio_PlayNatureAmbienceSequence(play->sequenceCtx.natureAmbienceId);
+ Audio_PlayNatureAmbienceSequence(play->sceneSequences.natureAmbienceId);
Audio_SetNatureAmbienceChannelIO(NATURE_CHANNEL_CRITTER_0, CHANNEL_IO_PORT_1, 1);
}
@@ -2583,10 +2586,10 @@ s32 Environment_IsForcedSequenceDisabled(void) {
}
void Environment_PlayStormNatureAmbience(PlayState* play) {
- if (play->sequenceCtx.natureAmbienceId == NATURE_ID_NONE) {
+ if (play->sceneSequences.natureAmbienceId == NATURE_ID_NONE) {
Audio_PlayNatureAmbienceSequence(NATURE_ID_MARKET_NIGHT);
} else {
- Audio_PlayNatureAmbienceSequence(play->sequenceCtx.natureAmbienceId);
+ Audio_PlayNatureAmbienceSequence(play->sceneSequences.natureAmbienceId);
}
Audio_SetNatureAmbienceChannelIO(NATURE_CHANNEL_RAIN, CHANNEL_IO_PORT_1, 1);
diff --git a/src/code/z_play.c b/src/code/z_play.c
index 939a23a6d..f1778e13c 100644
--- a/src/code/z_play.c
+++ b/src/code/z_play.c
@@ -7,6 +7,8 @@
#include "assets/scenes/example/example_scene.h"
#endif
+#include "z64frame_advance.h"
+
#if IS_DEBUG
void* gDebugCutsceneScript = NULL;
UNK_TYPE D_8012D1F4 = 0; // unused
@@ -464,8 +466,8 @@ void Play_Init(GameState* thisx) {
Interface_SetSceneRestrictions(this);
Environment_PlaySceneSequence(this);
- gSaveContext.seqId = this->sequenceCtx.seqId;
- gSaveContext.natureAmbienceId = this->sequenceCtx.natureAmbienceId;
+ gSaveContext.seqId = this->sceneSequences.seqId;
+ gSaveContext.natureAmbienceId = this->sceneSequences.natureAmbienceId;
func_8002DF18(this, GET_PLAYER(this));
AnimTaskQueue_Update(this, &this->animTaskQueue);
gSaveContext.respawnFlag = 0;
diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c
index 43d4329b6..3ca1e94ed 100644
--- a/src/code/z_player_lib.c
+++ b/src/code/z_player_lib.c
@@ -1785,7 +1785,7 @@ void Player_DrawPauseImpl(PlayState* play, void* gameplayKeep, void* linkObject,
// Note: the viewport x and y values are overwritten below, before usage
static Vp viewport = { (PAUSE_EQUIP_PLAYER_WIDTH / 2) << 2, (PAUSE_EQUIP_PLAYER_HEIGHT / 2) << 2, G_MAXZ / 2, 0,
(PAUSE_EQUIP_PLAYER_WIDTH / 2) << 2, (PAUSE_EQUIP_PLAYER_HEIGHT / 2) << 2, G_MAXZ / 2, 0 };
- static Lights1 lights1 = gdSPDefLights1(80, 80, 80, 255, 255, 255, 84, 84, 172);
+ static Lights1 lights1 = gdSPDefLights1(80, 80, 80, 255, 255, 255, 84, 84, -84);
static Vec3f lightDir = { 89.8f, 0.0f, 89.8f };
u8 playerSwordAndShield[2];
Gfx* opaRef;
diff --git a/src/code/z_scene.c b/src/code/z_scene.c
index 61d817db0..c3ab55a13 100644
--- a/src/code/z_scene.c
+++ b/src/code/z_scene.c
@@ -413,8 +413,8 @@ BAD_RETURN(s32) Scene_CommandUndefined9(PlayState* play, SceneCmd* cmd) {
}
BAD_RETURN(s32) Scene_CommandSoundSettings(PlayState* play, SceneCmd* cmd) {
- play->sequenceCtx.seqId = cmd->soundSettings.seqId;
- play->sequenceCtx.natureAmbienceId = cmd->soundSettings.natureAmbienceId;
+ play->sceneSequences.seqId = cmd->soundSettings.seqId;
+ play->sceneSequences.natureAmbienceId = cmd->soundSettings.natureAmbienceId;
if (gSaveContext.seqId == (u8)NA_BGM_DISABLED) {
SEQCMD_RESET_AUDIO_HEAP(0, cmd->soundSettings.specId);
diff --git a/src/code/z_scene_table.c b/src/code/z_scene_table.c
index 329cbbeff..eea92648d 100644
--- a/src/code/z_scene_table.c
+++ b/src/code/z_scene_table.c
@@ -11,6 +11,8 @@
#include "assets/scenes/indoors/miharigoya/miharigoya_scene.h"
#include "assets/scenes/indoors/souko/souko_scene.h"
+#include "z64frame_advance.h"
+
#include "assets/scenes/indoors/miharigoya/miharigoya_scene.h"
#include "assets/scenes/indoors/souko/souko_scene.h"
diff --git a/src/code/z_sfx_source.c b/src/code/z_sfx_source.c
index c80e0c9b4..1dad38659 100644
--- a/src/code/z_sfx_source.c
+++ b/src/code/z_sfx_source.c
@@ -1,3 +1,5 @@
+#include "z64sfx_source.h"
+
#include "global.h"
void SfxSource_InitAll(PlayState* play) {
diff --git a/src/code/z_view.c b/src/code/z_view.c
index 7ea8a5e6b..e3ab58ff0 100644
--- a/src/code/z_view.c
+++ b/src/code/z_view.c
@@ -406,6 +406,7 @@ s32 View_ApplyPerspective(View* view) {
if (QREG(88) & 2) {
s32 i;
MtxF mf;
+
Matrix_MtxToMtxF(view->viewingPtr, &mf);
PRINTF("viewing\n");
diff --git a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c
index 5b183b972..acba75f76 100644
--- a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c
+++ b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c
@@ -310,7 +310,7 @@ void BgSpot06Objects_LockWait(BgSpot06Objects* this, PlayState* play) {
}
EffectSsGSplash_Spawn(play, &this->dyna.actor.world.pos, NULL, NULL, 1, 700);
- this->collider.elements->dim.worldSphere.radius = 45;
+ this->collider.elements[0].dim.worldSphere.radius = 45;
this->actionFunc = BgSpot06Objects_LockPullOutward;
Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
diff --git a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c
index 52b213ef9..9fb56c1d6 100644
--- a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c
+++ b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c
@@ -1,4 +1,7 @@
#include "z_demo_gt.h"
+
+#include "z64frame_advance.h"
+
#include "assets/objects/object_gt/object_gt.h"
#include "assets/objects/object_geff/object_geff.h"
#include "terminal.h"
diff --git a/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c b/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c
index 893360582..289fee6a8 100644
--- a/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c
+++ b/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c
@@ -102,6 +102,8 @@ void EffDust_Init(Actor* thisx, PlayState* play) {
this->scalingFactor = 20.0f;
break;
default:
+ //! @bug Actor_Kill should be used, not free.
+ //! Note this also frees with a function for the wrong memory arena.
SYSTEM_ARENA_FREE(this, "../z_eff_dust.c", 202);
break;
}
diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c
index 63875b009..2c05b0997 100644
--- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c
+++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c
@@ -1248,10 +1248,10 @@ void EnBb_Update(Actor* thisx, PlayState* play2) {
UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2);
}
this->actor.focus.pos = this->actor.world.pos;
- this->collider.elements->dim.worldSphere.center.x = this->actor.world.pos.x;
- this->collider.elements->dim.worldSphere.center.y =
+ this->collider.elements[0].dim.worldSphere.center.x = this->actor.world.pos.x;
+ this->collider.elements[0].dim.worldSphere.center.y =
this->actor.world.pos.y + (this->actor.shape.yOffset * this->actor.scale.y);
- this->collider.elements->dim.worldSphere.center.z = this->actor.world.pos.z;
+ this->collider.elements[0].dim.worldSphere.center.z = this->actor.world.pos.z;
if ((this->action > BB_KILL) && ((this->actor.speed != 0.0f) || (this->action == BB_GREEN))) {
CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base);
diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c
index 23c7bb6db..54248862c 100644
--- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c
+++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c
@@ -165,7 +165,7 @@ void EnBigokuta_Init(Actor* thisx, PlayState* play) {
Collider_InitJntSph(play, &this->collider);
Collider_SetJntSph(play, &this->collider, &this->actor, &sJntSphInit, &this->element);
- this->collider.elements->dim.worldSphere.radius = this->collider.elements->dim.modelSphere.radius;
+ this->collider.elements[0].dim.worldSphere.radius = this->collider.elements[0].dim.modelSphere.radius;
for (i = 0; i < ARRAY_COUNT(sCylinderInit); i++) {
Collider_InitCylinder(play, &this->cylinder[i]);
@@ -694,14 +694,14 @@ void func_809BE568(EnBigokuta* this) {
f32 sin = Math_SinS(this->actor.shape.rot.y);
f32 cos = Math_CosS(this->actor.shape.rot.y);
- this->collider.elements->dim.worldSphere.center.x =
- (this->collider.elements->dim.modelSphere.center.z * sin) +
- (this->actor.world.pos.x + (this->collider.elements->dim.modelSphere.center.x * cos));
- this->collider.elements->dim.worldSphere.center.z =
- (this->actor.world.pos.z + (this->collider.elements->dim.modelSphere.center.z * cos)) -
- (this->collider.elements->dim.modelSphere.center.x * sin);
- this->collider.elements->dim.worldSphere.center.y =
- this->collider.elements->dim.modelSphere.center.y + this->actor.world.pos.y;
+ this->collider.elements[0].dim.worldSphere.center.x = this->actor.world.pos.x +
+ (this->collider.elements[0].dim.modelSphere.center.x * cos) +
+ (this->collider.elements[0].dim.modelSphere.center.z * sin);
+ this->collider.elements[0].dim.worldSphere.center.z = this->actor.world.pos.z +
+ (this->collider.elements[0].dim.modelSphere.center.z * cos) -
+ (this->collider.elements[0].dim.modelSphere.center.x * sin);
+ this->collider.elements[0].dim.worldSphere.center.y =
+ this->actor.world.pos.y + this->collider.elements[0].dim.modelSphere.center.y;
for (i = 0; i < ARRAY_COUNT(this->cylinder); i++) {
this->cylinder[i].dim.pos.x =
diff --git a/src/overlays/actors/ovl_En_Brob/z_en_brob.c b/src/overlays/actors/ovl_En_Brob/z_en_brob.c
index 99e9775ea..58bd6d52e 100644
--- a/src/overlays/actors/ovl_En_Brob/z_en_brob.c
+++ b/src/overlays/actors/ovl_En_Brob/z_en_brob.c
@@ -198,7 +198,7 @@ void EnBrob_Stunned(EnBrob* this, PlayState* play) {
} else if (this->skelAnime.curFrame < 8.0f) {
this->modelOffsetY -= 1250.0f;
}
- this->dyna.actor.colorFilterTimer = 0x50;
+ this->dyna.actor.colorFilterTimer = 80;
}
void EnBrob_MoveDown(EnBrob* this, PlayState* play) {
diff --git a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c
index 7194d7ee2..1b1d4f541 100644
--- a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c
+++ b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c
@@ -155,7 +155,7 @@ typedef struct {
/* 0x1C */ void (*buyEventFunc)(PlayState*, EnGirlA*);
} ShopItemEntry; // size = 0x20
-static ShopItemEntry shopItemEntries[] = {
+static ShopItemEntry sShopItemEntries[] = {
// SI_DEKU_NUTS_5
{ OBJECT_GI_NUTS, GID_DEKU_NUTS, func_8002ED80, 15, 5, 0x00B2, 0x007F, GI_DEKU_NUTS_5_2, EnGirlA_CanBuy_DekuNuts,
EnGirlA_ItemGive_DekuNuts, EnGirlA_BuyEvent_ShieldDiscount },
@@ -389,7 +389,7 @@ void EnGirlA_InitItem(EnGirlA* this, PlayState* play) {
return;
}
- this->requiredObjectSlot = Object_GetSlot(&play->objectCtx, shopItemEntries[params].objID);
+ this->requiredObjectSlot = Object_GetSlot(&play->objectCtx, sShopItemEntries[params].objID);
if (this->requiredObjectSlot < 0) {
Actor_Kill(&this->actor);
@@ -895,7 +895,7 @@ void EnGirlA_Noop(EnGirlA* this, PlayState* play) {
}
void EnGirlA_SetItemDescription(PlayState* play, EnGirlA* this) {
- ShopItemEntry* tmp = &shopItemEntries[this->actor.params];
+ ShopItemEntry* tmp = &sShopItemEntries[this->actor.params];
s32 params = this->actor.params;
if ((this->actor.params >= SI_KEATON_MASK) && (this->actor.params <= SI_MASK_OF_TRUTH)) {
@@ -954,7 +954,7 @@ void EnGirlA_UpdateStockedItem(PlayState* play, EnGirlA* this) {
if (EnGirlA_TryChangeShopItem(this)) {
EnGirlA_InitItem(this, play);
- itemEntry = &shopItemEntries[this->actor.params];
+ itemEntry = &sShopItemEntries[this->actor.params];
this->actor.textId = itemEntry->itemDescTextId;
} else {
this->isInvisible = false;
@@ -979,7 +979,7 @@ s32 EnGirlA_TrySetMaskItemDescription(EnGirlA* this, PlayState* play) {
void EnGirlA_WaitForObject(EnGirlA* this, PlayState* play) {
s16 params = this->actor.params;
- ShopItemEntry* itemEntry = &shopItemEntries[params];
+ ShopItemEntry* itemEntry = &sShopItemEntries[params];
if (Object_IsLoaded(&play->objectCtx, this->requiredObjectSlot)) {
this->actor.flags &= ~ACTOR_FLAG_4;
diff --git a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c
index 373d28ca9..c02946ac2 100644
--- a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c
+++ b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c
@@ -80,7 +80,7 @@ void EnHeishi4_Init(Actor* thisx, PlayState* play) {
this->collider.dim.radius = 15;
this->collider.dim.height = 70;
switch (this->type) {
- case HEISHI4_AT_KAKRIKO_ENTRANCE:
+ case HEISHI4_AT_KAKARIKO_ENTRANCE:
case HEISHI4_AT_IMPAS_HOUSE:
this->actionFunc = func_80A56328;
break;
@@ -304,7 +304,7 @@ void func_80A56B40(EnHeishi4* this, PlayState* play) {
}
if (MaskReaction_GetTextId(play, sMaskReactionSets[reactionOffset]) != 0) {
if (this->unk_2B4 == 0) {
- if ((this->type == HEISHI4_AT_KAKRIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) {
+ if ((this->type == HEISHI4_AT_KAKARIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) {
this->actionFunc = func_80A563BC;
return;
}
@@ -315,7 +315,7 @@ void func_80A56B40(EnHeishi4* this, PlayState* play) {
}
} else {
if (this->unk_2B4 != 0) {
- if ((this->type == HEISHI4_AT_KAKRIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) {
+ if ((this->type == HEISHI4_AT_KAKARIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) {
this->actionFunc = func_80A563BC;
return;
}
@@ -326,7 +326,7 @@ void func_80A56B40(EnHeishi4* this, PlayState* play) {
}
}
if (Actor_TalkOfferAccepted(&this->actor, play)) {
- if ((this->type == HEISHI4_AT_KAKRIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) {
+ if ((this->type == HEISHI4_AT_KAKARIKO_ENTRANCE) || (this->type == HEISHI4_AT_IMPAS_HOUSE)) {
this->unk_284 = 1;
this->actionFunc = func_80A563BC;
return;
diff --git a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.h b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.h
index 2c3677adc..0bc2fc99d 100644
--- a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.h
+++ b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.h
@@ -5,7 +5,7 @@
#include "global.h"
typedef enum {
- /* 0x00 */ HEISHI4_AT_KAKRIKO_ENTRANCE,
+ /* 0x00 */ HEISHI4_AT_KAKARIKO_ENTRANCE,
/* 0x04 */ HEISHI4_AT_IMPAS_HOUSE = 4,
/* 0x07 */ HEISHI4_AT_MARKET_DYING = 7,
/* 0x08 */ HEISHI4_AT_MARKET_NIGHT
diff --git a/src/overlays/actors/ovl_En_Mag/z_en_mag.c b/src/overlays/actors/ovl_En_Mag/z_en_mag.c
index 115c1e2fc..acf7bf2c1 100644
--- a/src/overlays/actors/ovl_En_Mag/z_en_mag.c
+++ b/src/overlays/actors/ovl_En_Mag/z_en_mag.c
@@ -459,7 +459,7 @@ void EnMag_DrawInner(Actor* thisx, PlayState* play, Gfx** gfxP) {
gDPSetPrimColor(gfx++, 0, 0, 255, 255, 255, (s16)this->mainAlpha);
if ((s16)this->mainAlpha != 0) {
- EnMag_DrawImageRGBA32(&gfx, WIDE_INCR(160 + LOGO_X_SHIFT, 20), 100, (u8*)gTitleZeldaShieldLogoMQTex, 160, 160);
+ EnMag_DrawImageRGBA32(&gfx, WIDE_INCR(160 + LOGO_X_SHIFT, 20), 100, (u8*)gTitleZeldaShieldLogoTex, 160, 160);
}
Gfx_SetupDL_39Ptr(&gfx);
diff --git a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c
index a662e0240..b6942de60 100644
--- a/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c
+++ b/src/overlays/actors/ovl_En_Nwc/z_en_nwc.c
@@ -111,7 +111,7 @@ void EnNwc_ChickFall(EnNwcChick* chick, EnNwc* this, PlayState* play) {
void EnNwc_UpdateChicks(EnNwc* this, PlayState* play) {
static EnNwcChickFunc chickActionFuncs[] = { EnNwc_ChickNoop, EnNwc_ChickFall };
EnNwcChick* chick = this->chicks;
- ColliderJntSphElement* element = this->collider.elements;
+ ColliderJntSphElement* element = &this->collider.elements[0];
Vec3f prevChickPos;
s32 i;
f32 test;
diff --git a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c
index 331d8c709..9c15c270a 100644
--- a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c
+++ b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c
@@ -7,6 +7,8 @@
#include "z_en_okarina_effect.h"
#include "terminal.h"
+#include "z64frame_advance.h"
+
#define FLAGS (ACTOR_FLAG_4 | ACTOR_FLAG_25)
void EnOkarinaEffect_Init(Actor* thisx, PlayState* play);
diff --git a/src/overlays/actors/ovl_En_Tp/z_en_tp.c b/src/overlays/actors/ovl_En_Tp/z_en_tp.c
index 73282570e..cf99f6eca 100644
--- a/src/overlays/actors/ovl_En_Tp/z_en_tp.c
+++ b/src/overlays/actors/ovl_En_Tp/z_en_tp.c
@@ -150,7 +150,7 @@ void EnTp_Init(Actor* thisx, PlayState* play2) {
this->actor.naviEnemyId = NAVI_ENEMY_TAILPASARAN;
this->timer = 0;
this->collider.base.acFlags |= AC_HARD;
- this->collider.elements->dim.modelSphere.radius = this->collider.elements->dim.worldSphere.radius = 8;
+ this->collider.elements[0].dim.modelSphere.radius = this->collider.elements[0].dim.worldSphere.radius = 8;
EnTp_Head_SetupWait(this);
this->actor.focus.pos = this->actor.world.pos;
this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2 | ACTOR_FLAG_4;
diff --git a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c
index 6f1c803c1..293b7f6ab 100644
--- a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c
+++ b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c
@@ -53,6 +53,8 @@ ActorInit En_Wonder_Item_InitVars = {
/**/ NULL,
};
+#pragma increment_block_number 1
+
static Vec3f sTagPointsFree[9];
static Vec3f sTagPointsOrdered[9];
diff --git a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c
index b8489bbe6..18fa97b71 100644
--- a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c
+++ b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c
@@ -7,6 +7,8 @@
#include "z_en_zl2.h"
#include "terminal.h"
+#include "z64frame_advance.h"
+
#include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h"
#include "assets/objects/object_zl2/object_zl2.h"
#include "assets/objects/object_zl2_anime1/object_zl2_anime1.h"
diff --git a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c
index 29ecedbf1..fc6eaab90 100644
--- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c
+++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c
@@ -7,6 +7,9 @@
#include "z_en_zl3.h"
#include "terminal.h"
+
+#include "z64frame_advance.h"
+
#include "overlays/actors/ovl_En_Encount2/z_en_encount2.h"
#include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h"
#include "assets/objects/object_zl2/object_zl2.h"
diff --git a/src/overlays/actors/ovl_En_fHG/z_en_fhg.c b/src/overlays/actors/ovl_En_fHG/z_en_fhg.c
index 37771a389..de1bc675f 100644
--- a/src/overlays/actors/ovl_En_fHG/z_en_fhg.c
+++ b/src/overlays/actors/ovl_En_fHG/z_en_fhg.c
@@ -15,7 +15,7 @@
typedef struct {
/* 0x00 */ Vec3f pos;
/* 0x0C */ s16 yRot;
-} EnfHGPainting; // size = 0x10;
+} EnfHGPainting; // size = 0x10
typedef enum {
/* 0 */ INTRO_WAIT,
diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c
index 2f657a43c..da512b0ba 100644
--- a/src/overlays/actors/ovl_Fishing/z_fishing.c
+++ b/src/overlays/actors/ovl_Fishing/z_fishing.c
@@ -8,10 +8,11 @@
#include "overlays/actors/ovl_En_Kanban/z_en_kanban.h"
#include "assets/objects/object_fish/object_fish.h"
+#include "ichain.h"
#include "terminal.h"
// For retail BSS ordering, the block number of sStreamSfxProjectedPos must be 0.
-#pragma increment_block_number 190
+#pragma increment_block_number 182
#define FLAGS ACTOR_FLAG_4
diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.h b/src/overlays/actors/ovl_Fishing/z_fishing.h
index 40b7f908b..3524c88a7 100644
--- a/src/overlays/actors/ovl_Fishing/z_fishing.h
+++ b/src/overlays/actors/ovl_Fishing/z_fishing.h
@@ -2,14 +2,15 @@
#define Z_FISHING_H
#include "ultra64.h"
-#include "global.h"
+#include "z64actor.h"
+#include "z64light.h"
struct Fishing;
typedef struct Fishing {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x004];
- /* 0x0150 */ u8 isLoach;
+ /* 0x0150 */ u8 isLoach;
/* 0x0151 */ u8 lilyTimer; // if near lily and >0, lily moves. Move more if >20
/* 0x0152 */ u8 unk_152;
/* 0x0154 */ s16 unk_154;
diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c
index 636a14e99..958351e75 100644
--- a/src/overlays/actors/ovl_player_actor/z_player.c
+++ b/src/overlays/actors/ovl_player_actor/z_player.c
@@ -2987,7 +2987,7 @@ s32 func_80835588(Player* this, PlayState* play) {
void func_808355DC(Player* this) {
this->stateFlags1 |= PLAYER_STATE1_17;
- if (!(this->skelAnime.moveFlags & ANIM_FLAG_PLAYER_7) &&
+ if (!(this->skelAnime.moveFlags & ANIM_FLAG_OVERRIDE_MOVEMENT) &&
(this->actor.bgCheckFlags & BGCHECKFLAG_PLAYER_WALL_INTERACT) && (sShapeYawToTouchedWall < 0x2000)) {
this->yaw = this->actor.shape.rot.y = this->actor.wallYaw + 0x8000;
}
@@ -3403,7 +3403,7 @@ s32 Player_UpdateUpperBody(Player* this, PlayState* play) {
Player_AnimPlayOnce(play, this, &gPlayerAnim_link_hook_fly_start);
Player_AnimReplaceApplyFlags(play, this,
ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE |
- ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_NO_MOVE | ANIM_FLAG_OVERRIDE_MOVEMENT);
func_80832224(this);
this->yaw = this->actor.shape.rot.y;
this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND;
@@ -5059,7 +5059,8 @@ s32 Player_ActionChange_1(Player* this, PlayState* play) {
func_80832224(this);
Player_AnimReplaceApplyFlags(play, this,
ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y |
- ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE |
+ ANIM_FLAG_OVERRIDE_MOVEMENT);
// If this door is the second half of a double door (spawned as child)
if (doorActor->parent != NULL) {
@@ -5370,7 +5371,8 @@ s32 func_8083A6AC(Player* this, PlayState* play) {
this->stateFlags1 |= PLAYER_STATE1_21;
Player_AnimReplaceApplyFlags(play, this,
ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_2 |
- ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE |
+ ANIM_FLAG_OVERRIDE_MOVEMENT);
this->av2.actionVar2 = -1;
this->av1.actionVar1 = sp50;
@@ -5415,7 +5417,7 @@ void func_8083AA10(Player* this, PlayState* play) {
return;
}
- if (!(this->stateFlags3 & PLAYER_STATE3_1) && !(this->skelAnime.moveFlags & ANIM_FLAG_PLAYER_7) &&
+ if (!(this->stateFlags3 & PLAYER_STATE3_1) && !(this->skelAnime.moveFlags & ANIM_FLAG_OVERRIDE_MOVEMENT) &&
(Player_Action_8084411C != this->actionFunc) && (Player_Action_80844A44 != this->actionFunc)) {
if ((sPrevFloorProperty == FLOOR_PROPERTY_7) || (this->meleeWeaponState != 0)) {
@@ -6724,7 +6726,7 @@ s32 Player_ActionChange_3(Player* this, PlayState* play) {
Player_AnimPlayOnce(play, this, D_80854578[temp].anim);
Player_AnimReplaceApplyFlags(play, this,
ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE |
- ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_NO_MOVE | ANIM_FLAG_OVERRIDE_MOVEMENT);
this->actor.parent = this->rideActor;
func_80832224(this);
@@ -6893,7 +6895,7 @@ s32 Player_ActionChange_2(Player* this, PlayState* play) {
Player_AnimReplaceApplyFlags(play, this,
ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y |
ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE |
- ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_OVERRIDE_MOVEMENT);
chest->unk_1F4 = 1;
Camera_RequestSetting(Play_GetCamera(play, CAM_ID_MAIN), CAM_SET_SLOW_CHEST_CS);
} else {
@@ -7071,7 +7073,8 @@ s32 func_8083EC18(Player* this, PlayState* play, u32 wallFlags) {
Player_AnimPlayOnce(play, this, anim);
Player_AnimReplaceApplyFlags(play, this,
ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_2 |
- ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE |
+ ANIM_FLAG_OVERRIDE_MOVEMENT);
return true;
}
@@ -7152,7 +7155,7 @@ s32 Player_TryEnteringCrawlspace(Player* this, PlayState* play, u32 interactWall
Player_AnimPlayOnce(play, this, &gPlayerAnim_link_child_tunnel_start);
Player_AnimReplaceApplyFlags(play, this,
ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE |
- ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_NO_MOVE | ANIM_FLAG_OVERRIDE_MOVEMENT);
return true;
}
@@ -7242,7 +7245,7 @@ s32 Player_TryLeavingCrawlspace(Player* this, PlayState* play) {
Player_AnimPlayOnce(play, this, &gPlayerAnim_link_child_tunnel_end);
Player_AnimReplaceApplyFlags(play, this,
ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE |
- ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_NO_MOVE | ANIM_FLAG_OVERRIDE_MOVEMENT);
OnePointCutscene_Init(play, 9601, 999, NULL, CAM_ID_MAIN);
} else {
// Leaving a crawlspace backwards
@@ -7252,7 +7255,7 @@ s32 Player_TryLeavingCrawlspace(Player* this, PlayState* play) {
0.0f);
Player_AnimReplaceApplyFlags(play, this,
ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE |
- ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_NO_MOVE | ANIM_FLAG_OVERRIDE_MOVEMENT);
OnePointCutscene_Init(play, 9602, 999, NULL, CAM_ID_MAIN);
}
@@ -9975,7 +9978,7 @@ void func_808467D4(PlayState* play, Player* this) {
0.0f);
Player_AnimReplaceApplyFlags(play, this,
ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y |
- ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_OVERRIDE_MOVEMENT);
if (LINK_IS_ADULT) {
func_80846720(play, this, 0);
}
@@ -9986,7 +9989,7 @@ void func_808468A8(PlayState* play, Player* this) {
Player_SetupAction(play, this, Player_Action_8084F9A0, 0);
Player_AnimReplaceApplyFlags(play, this,
ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE |
- ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_NO_MOVE | ANIM_FLAG_OVERRIDE_MOVEMENT);
}
void func_808468E8(PlayState* play, Player* this) {
@@ -11219,7 +11222,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) {
Player_AnimPlayOnce(play, this, &gPlayerAnim_link_uma_wait_1);
Player_AnimReplaceApplyFlags(play, this,
ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y | ANIM_FLAG_PLAYER_SETMOVE |
- ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_NO_MOVE | ANIM_FLAG_OVERRIDE_MOVEMENT);
this->av2.actionVar2 = 99;
}
@@ -11244,7 +11247,7 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) {
func_8084FF7C(this);
}
- if (!(this->skelAnime.moveFlags & ANIM_FLAG_PLAYER_7)) {
+ if (!(this->skelAnime.moveFlags & ANIM_FLAG_OVERRIDE_MOVEMENT)) {
if (((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && (sFloorType == FLOOR_TYPE_5) &&
(this->currentBoots != PLAYER_BOOTS_IRON)) ||
((this->currentBoots == PLAYER_BOOTS_HOVER) &&
@@ -14717,7 +14720,8 @@ void func_808510D4(PlayState* play, Player* this, void* anim) {
void func_808510F4(PlayState* play, Player* this, void* anim) {
Player_AnimReplacePlayOnce(play, this, anim,
- ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE |
+ ANIM_FLAG_OVERRIDE_MOVEMENT);
}
void func_80851114(PlayState* play, Player* this, void* anim) {
@@ -14726,7 +14730,8 @@ void func_80851114(PlayState* play, Player* this, void* anim) {
void func_80851134(PlayState* play, Player* this, void* anim) {
Player_AnimReplacePlayLoop(play, this, anim,
- ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE |
+ ANIM_FLAG_OVERRIDE_MOVEMENT);
}
void func_80851154(PlayState* play, Player* this, void* anim) {
@@ -14973,7 +14978,7 @@ void func_808519EC(PlayState* play, Player* this, CsCmdActorCue* cue) {
Player_AnimPlayOnceAdjusted(play, this, this->ageProperties->unk_9C);
Player_AnimReplaceApplyFlags(play, this,
ANIM_REPLACE_APPLY_FLAG_9 | ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y |
- ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_OVERRIDE_MOVEMENT);
}
static struct_808551A4 D_808551A4[] = {
@@ -15084,12 +15089,13 @@ void func_80851E28(PlayState* play, Player* this, CsCmdActorCue* cue) {
void func_80851E64(PlayState* play, Player* this, CsCmdActorCue* cue) {
Player_AnimReplacePlayOnceAdjusted(play, this, &gPlayerAnim_link_swimer_swim_get,
- ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_OVERRIDE_MOVEMENT);
}
void func_80851E90(PlayState* play, Player* this, CsCmdActorCue* cue) {
Player_AnimReplacePlayOnce(play, this, &gPlayerAnim_clink_op3_negaeri,
- ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE |
+ ANIM_FLAG_OVERRIDE_MOVEMENT);
func_80832698(this, NA_SE_VO_LI_GROAN);
}
@@ -15097,7 +15103,7 @@ void func_80851ECC(PlayState* play, Player* this, CsCmdActorCue* cue) {
if (LinkAnimation_Update(play, &this->skelAnime)) {
Player_AnimReplacePlayLoop(play, this, &gPlayerAnim_clink_op3_wait2,
ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE |
- ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_OVERRIDE_MOVEMENT);
}
}
@@ -15125,7 +15131,7 @@ void func_80851FB0(PlayState* play, Player* this, CsCmdActorCue* cue) {
if (LinkAnimation_Update(play, &this->skelAnime)) {
Player_AnimReplacePlayLoop(play, this, &gPlayerAnim_clink_op3_wait3,
ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE |
- ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_OVERRIDE_MOVEMENT);
this->av2.actionVar2 = 1;
} else if (this->av2.actionVar2 == 0) {
Player_ProcessAnimSfxList(this, D_808551BC);
@@ -15150,7 +15156,7 @@ void func_80852048(PlayState* play, Player* this, CsCmdActorCue* cue) {
void func_80852080(PlayState* play, Player* this, CsCmdActorCue* cue) {
Player_AnimReplacePlayOnceAdjusted(play, this, &gPlayerAnim_clink_demo_futtobi,
ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_PLAYER_2 | ANIM_FLAG_PLAYER_SETMOVE |
- ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ ANIM_FLAG_NO_MOVE | ANIM_FLAG_OVERRIDE_MOVEMENT);
func_80832698(this, NA_SE_VO_LI_FALL_L);
}
@@ -15198,7 +15204,8 @@ void func_80852234(PlayState* play, Player* this, CsCmdActorCue* cue) {
}
void func_8085225C(PlayState* play, Player* this, CsCmdActorCue* cue) {
- Player_AnimReplaceApplyFlags(play, this, ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_PLAYER_7);
+ Player_AnimReplaceApplyFlags(play, this,
+ ANIM_FLAG_PLAYER_SETMOVE | ANIM_FLAG_NO_MOVE | ANIM_FLAG_OVERRIDE_MOVEMENT);
}
void func_80852280(PlayState* play, Player* this, CsCmdActorCue* cue) {
diff --git a/tools/ZAPDConfigs/gc-eu-mq-dbg/Config.xml b/tools/ZAPDConfigs/gc-eu-mq-dbg/Config.xml
index 9960b22de..0b6ea61ff 100644
--- a/tools/ZAPDConfigs/gc-eu-mq-dbg/Config.xml
+++ b/tools/ZAPDConfigs/gc-eu-mq-dbg/Config.xml
@@ -6,4 +6,5 @@
+
diff --git a/tools/ZAPDConfigs/gc-eu-mq/Config.xml b/tools/ZAPDConfigs/gc-eu-mq/Config.xml
index 9960b22de..0b6ea61ff 100644
--- a/tools/ZAPDConfigs/gc-eu-mq/Config.xml
+++ b/tools/ZAPDConfigs/gc-eu-mq/Config.xml
@@ -6,4 +6,5 @@
+
diff --git a/tools/ZAPDConfigs/gc-eu/Config.xml b/tools/ZAPDConfigs/gc-eu/Config.xml
index 9960b22de..0b6ea61ff 100644
--- a/tools/ZAPDConfigs/gc-eu/Config.xml
+++ b/tools/ZAPDConfigs/gc-eu/Config.xml
@@ -6,4 +6,5 @@
+
diff --git a/tools/ZAPDConfigs/gc-us/Config.xml b/tools/ZAPDConfigs/gc-us/Config.xml
new file mode 100644
index 000000000..b2f4e3e4d
--- /dev/null
+++ b/tools/ZAPDConfigs/gc-us/Config.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/ZAPDConfigs/gc-us/SymbolMap.txt b/tools/ZAPDConfigs/gc-us/SymbolMap.txt
new file mode 100644
index 000000000..554f92028
--- /dev/null
+++ b/tools/ZAPDConfigs/gc-us/SymbolMap.txt
@@ -0,0 +1,2 @@
+800FE2A0 gMtxClear
+80A74130 sShadowTex