summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2018-10-05 15:59:40 -0500
committerGitHub <noreply@github.com>2018-10-05 15:59:40 -0500
commit7990309f0ae8c1ba1e7d5979bc913c22a9f411cf (patch)
tree2b8537ef2909c976146fff2fbeaed2cc01536925
parent9975ba7211cc91dc7fddec5f423ed3c42fc0d064 (diff)
parent52559f4c165f0ad4dd8bdff838c1dbdea9e93aa7 (diff)
Merge pull request #11 from ProjectRevoTPP/script
decompile script.c
-rw-r--r--Makefile2
-rw-r--r--asm/battle_setup.s8
-rw-r--r--asm/bike.s8
-rw-r--r--asm/field_camera.s12
-rw-r--r--asm/field_control_avatar.s54
-rw-r--r--asm/field_fadetransition.s4
-rw-r--r--asm/field_map_obj.s12
-rw-r--r--asm/field_weather.s4
-rw-r--r--asm/fieldmap.s48
-rw-r--r--asm/fldeff_flash.s8
-rw-r--r--asm/fldeff_teleport.s4
-rw-r--r--asm/help_system_812B1E0.s4
-rw-r--r--asm/item.s4
-rw-r--r--asm/item_use.s12
-rw-r--r--asm/itemfinder.s16
-rw-r--r--asm/map_name_popup.s8
-rw-r--r--asm/mystery_event_script.s2
-rw-r--r--asm/overworld.s144
-rw-r--r--asm/party_menu.s8
-rw-r--r--asm/quest_log.s8
-rw-r--r--asm/region_map.s12
-rw-r--r--asm/rom6.s4
-rw-r--r--asm/save_menu_util.s4
-rw-r--r--asm/script.s1092
-rw-r--r--asm/shop.s8
-rw-r--r--asm/tileset_anims.s8
-rw-r--r--asm/trainer_tower.s16
-rw-r--r--asm/unk_810C3A4.s6
-rw-r--r--asm/vs_seeker.s18
-rw-r--r--data/data.s2
-rw-r--r--data/event_scripts.s4
-rw-r--r--include/global.h6
-rw-r--r--ld_script.txt2
-rw-r--r--src/script.c554
-rw-r--r--sym_bss.txt28
-rw-r--r--sym_ewram.txt9
36 files changed, 791 insertions, 1352 deletions
diff --git a/Makefile b/Makefile
index 4375607a6..04690e382 100644
--- a/Makefile
+++ b/Makefile
@@ -28,7 +28,7 @@ SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR)
ASFLAGS := -mcpu=arm7tdmi
CC1 := tools/agbcc/bin/agbcc
-override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Wunused -Werror -O2 -fhex-asm
+override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm
CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index 8fe6196f6..c8bf74c35 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -786,7 +786,7 @@ _0807FCA2:
movs r0, 0x2
b _0807FD88
_0807FCB2:
- ldr r0, _0807FCC8 @ =gUnknown_2036DFC
+ ldr r0, _0807FCC8 @ =gMapHeader
ldrb r0, [r0, 0x17]
subs r0, 0x1
cmp r0, 0x8
@@ -797,7 +797,7 @@ _0807FCB2:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0807FCC8: .4byte gUnknown_2036DFC
+_0807FCC8: .4byte gMapHeader
_0807FCCC: .4byte _0807FCD0
.align 2, 0
_0807FCD0:
@@ -923,7 +923,7 @@ _0807FDC0:
lsls r0, 24
cmp r0, 0
bne _0807FDE8
- ldr r0, _0807FDE0 @ =gUnknown_2036DFC
+ ldr r0, _0807FDE0 @ =gMapHeader
ldrb r0, [r0, 0x17]
cmp r0, 0x4
beq _0807FDE4
@@ -932,7 +932,7 @@ _0807FDC0:
movs r0, 0
b _0807FDEA
.align 2, 0
-_0807FDE0: .4byte gUnknown_2036DFC
+_0807FDE0: .4byte gMapHeader
_0807FDE4:
movs r0, 0x1
b _0807FDEA
diff --git a/asm/bike.s b/asm/bike.s
index b987f96fb..2a1219968 100644
--- a/asm/bike.s
+++ b/asm/bike.s
@@ -521,7 +521,7 @@ sub_80BD460: @ 80BD460
lsls r0, 24
cmp r0, 0
bne _080BD478
- ldr r0, _080BD47C @ =gUnknown_2036DFC
+ ldr r0, _080BD47C @ =gMapHeader
ldrb r0, [r0, 0x17]
cmp r0, 0x8
bne _080BD480
@@ -529,7 +529,7 @@ _080BD478:
movs r0, 0x1
b _080BD482
.align 2, 0
-_080BD47C: .4byte gUnknown_2036DFC
+_080BD47C: .4byte gMapHeader
_080BD480:
movs r0, 0
_080BD482:
@@ -542,7 +542,7 @@ sub_80BD488: @ 80BD488
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080BD4AC @ =gUnknown_2036DFC
+ ldr r0, _080BD4AC @ =gMapHeader
ldrb r1, [r0, 0x19]
movs r0, 0x2
ands r0, r1
@@ -558,7 +558,7 @@ _080BD4A8:
movs r0, 0x1
b _080BD4B2
.align 2, 0
-_080BD4AC: .4byte gUnknown_2036DFC
+_080BD4AC: .4byte gMapHeader
_080BD4B0:
movs r0, 0
_080BD4B2:
diff --git a/asm/field_camera.s b/asm/field_camera.s
index a4776d42a..6228b9435 100644
--- a/asm/field_camera.s
+++ b/asm/field_camera.s
@@ -136,14 +136,14 @@ DrawWholeMapView: @ 805A684
ldrsh r0, [r1, r2]
movs r2, 0x2
ldrsh r1, [r1, r2]
- ldr r2, _0805A6A4 @ =gUnknown_2036DFC
+ ldr r2, _0805A6A4 @ =gMapHeader
ldr r2, [r2]
bl DrawWholeMapViewInternal
pop {r0}
bx r0
.align 2, 0
_0805A6A0: .4byte gSaveBlock1Ptr
-_0805A6A4: .4byte gUnknown_2036DFC
+_0805A6A4: .4byte gMapHeader
thumb_func_end DrawWholeMapView
thumb_func_start DrawWholeMapViewInternal
@@ -224,7 +224,7 @@ RedrawMapSlicesForCameraUpdate: @ 805A72C
adds r5, r0, 0
adds r6, r1, 0
adds r7, r2, 0
- ldr r0, _0805A774 @ =gUnknown_2036DFC
+ ldr r0, _0805A774 @ =gMapHeader
ldr r4, [r0]
cmp r6, 0
ble _0805A744
@@ -256,7 +256,7 @@ _0805A768:
pop {r0}
bx r0
.align 2, 0
-_0805A774: .4byte gUnknown_2036DFC
+_0805A774: .4byte gMapHeader
thumb_func_end RedrawMapSlicesForCameraUpdate
thumb_func_start RedrawMapSliceNorth
@@ -474,7 +474,7 @@ CurrentMapDrawMetatileAt: @ 805A8E8
adds r1, r0, 0
cmp r1, 0
blt _0805A90E
- ldr r0, _0805A918 @ =gUnknown_2036DFC
+ ldr r0, _0805A918 @ =gMapHeader
ldr r0, [r0]
lsls r1, 16
lsrs r1, 16
@@ -487,7 +487,7 @@ _0805A90E:
bx r0
.align 2, 0
_0805A914: .4byte gUnknown_3000E90
-_0805A918: .4byte gUnknown_2036DFC
+_0805A918: .4byte gMapHeader
thumb_func_end CurrentMapDrawMetatileAt
thumb_func_start sub_805A91C
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index f20b43995..6b981dea8 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -352,7 +352,7 @@ sub_806CAC8: @ 806CAC8
lsrs r0, 24
cmp r0, 0x1
beq _0806CB6C
- bl sub_8069C74
+ bl mapheader_run_first_tag2_script_list_match
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1082,7 +1082,7 @@ sub_806D0E4: @ 806D0E4
lsrs r7, r1, 24
lsls r2, 24
lsrs r6, r2, 24
- ldr r4, _0806D118 @ =gUnknown_2036DFC
+ ldr r4, _0806D118 @ =gMapHeader
ldrh r1, [r0]
subs r1, 0x7
lsls r1, 16
@@ -1103,7 +1103,7 @@ sub_806D0E4: @ 806D0E4
ldr r0, _0806D11C @ =gUnknown_81C555B
b _0806D1E6
.align 2, 0
-_0806D118: .4byte gUnknown_2036DFC
+_0806D118: .4byte gMapHeader
_0806D11C: .4byte gUnknown_81C555B
_0806D120:
adds r0, r7, 0
@@ -1746,7 +1746,7 @@ _0806D65A:
thumb_func_start sub_806D660
sub_806D660: @ 806D660
push {r4,lr}
- ldr r4, _0806D688 @ =gUnknown_2036DFC
+ ldr r4, _0806D688 @ =gMapHeader
ldrh r1, [r0]
subs r1, 0x7
lsls r1, 16
@@ -1764,7 +1764,7 @@ sub_806D660: @ 806D660
movs r0, 0x1
b _0806D68E
.align 2, 0
-_0806D688: .4byte gUnknown_2036DFC
+_0806D688: .4byte gMapHeader
_0806D68C:
movs r0, 0
_0806D68E:
@@ -1916,7 +1916,7 @@ _0806D798: .4byte 0x00004022
thumb_func_start overworld_poison_step
overworld_poison_step: @ 806D79C
push {r4,lr}
- ldr r0, _0806D7D8 @ =gUnknown_2036DFC
+ ldr r0, _0806D7D8 @ =gMapHeader
ldrb r0, [r0, 0x17]
cmp r0, 0x9
beq _0806D7E0
@@ -1943,7 +1943,7 @@ overworld_poison_step: @ 806D79C
movs r0, 0x1
b _0806D7E2
.align 2, 0
-_0806D7D8: .4byte gUnknown_2036DFC
+_0806D7D8: .4byte gMapHeader
_0806D7DC: .4byte 0x00004022
_0806D7E0:
movs r0, 0
@@ -2128,7 +2128,7 @@ _0806D924: .4byte gUnknown_20370D4
thumb_func_start sub_806D928
sub_806D928: @ 806D928
push {r4,lr}
- ldr r4, _0806D94C @ =gUnknown_2036DFC
+ ldr r4, _0806D94C @ =gMapHeader
ldrh r1, [r0]
subs r1, 0x7
lsls r1, 16
@@ -2145,7 +2145,7 @@ sub_806D928: @ 806D928
movs r0, 0
b _0806D958
.align 2, 0
-_0806D94C: .4byte gUnknown_2036DFC
+_0806D94C: .4byte gMapHeader
_0806D950:
ldr r0, [r0, 0x8]
cmp r0, 0
@@ -2173,7 +2173,7 @@ sub_806D964: @ 806D964
lsls r2, 24
lsrs r6, r2, 24
mov r9, r6
- ldr r0, _0806D9B8 @ =gUnknown_2036DFC
+ ldr r0, _0806D9B8 @ =gMapHeader
mov r8, r0
adds r1, r7, 0
bl map_warp_check_packed
@@ -2199,7 +2199,7 @@ sub_806D964: @ 806D964
movs r0, 0x1
b _0806DA02
.align 2, 0
-_0806D9B8: .4byte gUnknown_2036DFC
+_0806D9B8: .4byte gMapHeader
_0806D9BC:
adds r0, r4, 0
mov r1, r9
@@ -2249,7 +2249,7 @@ sub_806DA10: @ 806DA10
adds r6, r0, 0
lsls r1, 16
lsrs r5, r1, 16
- ldr r7, _0806DA68 @ =gUnknown_2036DFC
+ ldr r7, _0806DA68 @ =gMapHeader
adds r0, r7, 0
adds r1, r6, 0
bl map_warp_check_packed
@@ -2283,7 +2283,7 @@ sub_806DA10: @ 806DA10
movs r0, 0x1
b _0806DAEE
.align 2, 0
-_0806DA68: .4byte gUnknown_2036DFC
+_0806DA68: .4byte gMapHeader
_0806DA6C:
adds r0, r4, 0
bl sub_805A158
@@ -2542,7 +2542,7 @@ map_warp_check_packed: @ 806DC30
sub_806DC54: @ 806DC54
push {r4-r7,lr}
adds r5, r2, 0
- ldr r0, _0806DC74 @ =gUnknown_2036DFC
+ ldr r0, _0806DC74 @ =gMapHeader
ldr r0, [r0, 0x4]
lsls r1, 24
asrs r7, r1, 24
@@ -2556,7 +2556,7 @@ sub_806DC54: @ 806DC54
bl copy_saved_warp2_bank_and_enter_x_to_warp1
b _0806DCC4
.align 2, 0
-_0806DC74: .4byte gUnknown_2036DFC
+_0806DC74: .4byte gMapHeader
_0806DC78:
movs r0, 0x7
ldrsb r0, [r4, r0]
@@ -2617,7 +2617,7 @@ sub_806DCD0: @ 806DCD0
lsrs r0, 24
cmp r0, 0x1
bne _0806DD30
- ldr r7, _0806DD2C @ =gUnknown_2036DFC
+ ldr r7, _0806DD2C @ =gMapHeader
adds r0, r7, 0
adds r1, r6, 0
bl map_warp_check_packed
@@ -2642,7 +2642,7 @@ sub_806DCD0: @ 806DCD0
movs r0, 0x1
b _0806DD32
.align 2, 0
-_0806DD2C: .4byte gUnknown_2036DFC
+_0806DD2C: .4byte gMapHeader
_0806DD30:
movs r0, 0
_0806DD32:
@@ -2831,7 +2831,7 @@ sub_806DE70: @ 806DE70
push {r4-r7,lr}
lsls r0, 16
lsls r1, 16
- ldr r2, _0806DEC0 @ =gUnknown_2036DFC
+ ldr r2, _0806DEC0 @ =gMapHeader
ldr r2, [r2, 0x4]
ldr r4, [r2, 0xC]
ldrb r5, [r2, 0x2]
@@ -2867,13 +2867,13 @@ _0806DEB8:
pop {r0}
bx r0
.align 2, 0
-_0806DEC0: .4byte gUnknown_2036DFC
+_0806DEC0: .4byte gMapHeader
thumb_func_end sub_806DE70
thumb_func_start sub_806DEC4
sub_806DEC4: @ 806DEC4
push {r4,lr}
- ldr r4, _0806DEE8 @ =gUnknown_2036DFC
+ ldr r4, _0806DEE8 @ =gMapHeader
ldrh r1, [r0]
subs r1, 0x7
lsls r1, 16
@@ -2889,7 +2889,7 @@ sub_806DEC4: @ 806DEC4
pop {r1}
bx r1
.align 2, 0
-_0806DEE8: .4byte gUnknown_2036DFC
+_0806DEE8: .4byte gMapHeader
thumb_func_end sub_806DEC4
thumb_func_start FindInvisibleMapObjectByPosition
@@ -2946,7 +2946,7 @@ dive_warp: @ 806DF3C
adds r4, r0, 0
lsls r1, 16
lsrs r5, r1, 16
- ldr r0, _0806DF70 @ =gUnknown_2036DFC
+ ldr r0, _0806DF70 @ =gMapHeader
ldrb r0, [r0, 0x17]
cmp r0, 0x5
bne _0806DF74
@@ -2967,7 +2967,7 @@ dive_warp: @ 806DF3C
bl sub_8055824
b _0806DF98
.align 2, 0
-_0806DF70: .4byte gUnknown_2036DFC
+_0806DF70: .4byte gMapHeader
_0806DF74:
lsls r0, r5, 24
lsrs r0, 24
@@ -3020,7 +3020,7 @@ sub_806DFB8: @ 806DFB8
bl sub_8058F78
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _0806E010 @ =gUnknown_2036DFC
+ ldr r0, _0806E010 @ =gMapHeader
ldrb r0, [r0, 0x17]
cmp r0, 0x5
bne _0806E014
@@ -3046,7 +3046,7 @@ sub_806DFB8: @ 806DFB8
movs r0, 0x1
b _0806E046
.align 2, 0
-_0806E010: .4byte gUnknown_2036DFC
+_0806E010: .4byte gMapHeader
_0806E014:
adds r0, r5, 0
bl sub_8059FB0
@@ -3122,7 +3122,7 @@ SetCableClubWarp: @ 806E08C
movs r2, 0x2
ldrsh r1, [r4, r2]
bl sub_8058F78
- ldr r4, _0806E0CC @ =gUnknown_2036DFC
+ ldr r4, _0806E0CC @ =gMapHeader
adds r0, r4, 0
mov r1, sp
bl map_warp_check_packed
@@ -3138,7 +3138,7 @@ SetCableClubWarp: @ 806E08C
pop {r1}
bx r1
.align 2, 0
-_0806E0CC: .4byte gUnknown_2036DFC
+_0806E0CC: .4byte gMapHeader
thumb_func_end SetCableClubWarp
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_fadetransition.s b/asm/field_fadetransition.s
index e0a6a91a7..7b63386b2 100644
--- a/asm/field_fadetransition.s
+++ b/asm/field_fadetransition.s
@@ -137,7 +137,7 @@ sub_807DC18: @ 807DC18
push {r4,lr}
bl warp1_get_mapheader
adds r4, r0, 0
- ldr r1, _0807DC54 @ =gUnknown_2036DFC
+ ldr r1, _0807DC54 @ =gMapHeader
ldrb r0, [r4, 0x14]
ldrb r1, [r1, 0x14]
cmp r0, r1
@@ -161,7 +161,7 @@ _0807DC36:
beq _0807DC62
b _0807DC6A
.align 2, 0
-_0807DC54: .4byte gUnknown_2036DFC
+_0807DC54: .4byte gMapHeader
_0807DC58:
movs r0, 0x1
movs r1, 0
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index cd7ed755a..068f9c554 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -771,13 +771,13 @@ sub_805E3A0: @ 805E3A0
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r0, _0805E3B8 @ =gUnknown_2036DFC
+ ldr r0, _0805E3B8 @ =gMapHeader
ldr r0, [r0, 0x4]
cmp r0, 0
bne _0805E3CE
b _0805E404
.align 2, 0
-_0805E3B8: .4byte gUnknown_2036DFC
+_0805E3B8: .4byte gMapHeader
_0805E3BC:
ldr r0, [r7]
ldrb r1, [r0, 0x5]
@@ -1903,7 +1903,7 @@ sub_805EC30: @ 805EC30
lsls r1, 16
lsrs r1, 16
str r1, [sp, 0x8]
- ldr r0, _0805ED08 @ =gUnknown_2036DFC
+ ldr r0, _0805ED08 @ =gMapHeader
ldr r3, [r0, 0x4]
cmp r3, 0
beq _0805ECF8
@@ -2001,7 +2001,7 @@ _0805ECF8:
pop {r0}
bx r0
.align 2, 0
-_0805ED08: .4byte gUnknown_2036DFC
+_0805ED08: .4byte gMapHeader
_0805ED0C: .4byte gSaveBlock1Ptr
thumb_func_end sub_805EC30
@@ -4285,12 +4285,12 @@ GetFieldObjectTemplateByLocalIdAndMap: @ 805FD5C
movs r0, 0x8E
lsls r0, 4
adds r1, r0
- ldr r0, _0805FD90 @ =gUnknown_2036DFC
+ ldr r0, _0805FD90 @ =gMapHeader
ldr r0, [r0, 0x4]
b _0805FDA0
.align 2, 0
_0805FD8C: .4byte gSaveBlock1Ptr
-_0805FD90: .4byte gUnknown_2036DFC
+_0805FD90: .4byte gMapHeader
_0805FD94:
adds r0, r2, 0
adds r1, r3, 0
diff --git a/asm/field_weather.s b/asm/field_weather.s
index af194db68..e0cb6c41d 100644
--- a/asm/field_weather.s
+++ b/asm/field_weather.s
@@ -2811,7 +2811,7 @@ sub_807B140: @ 807B140
ldr r0, [r4]
adds r0, 0x2E
ldrb r5, [r0]
- ldr r0, _0807B170 @ =gUnknown_2036DFC
+ ldr r0, _0807B170 @ =gMapHeader
ldrb r0, [r0, 0x16]
bl TranslateWeatherNum
ldr r1, [r4]
@@ -2827,7 +2827,7 @@ sub_807B140: @ 807B140
bx r0
.align 2, 0
_0807B16C: .4byte gSaveBlock1Ptr
-_0807B170: .4byte gUnknown_2036DFC
+_0807B170: .4byte gMapHeader
thumb_func_end sub_807B140
thumb_func_start SetWeather
diff --git a/asm/fieldmap.s b/asm/fieldmap.s
index 12d509904..f78a4df9b 100644
--- a/asm/fieldmap.s
+++ b/asm/fieldmap.s
@@ -19,26 +19,26 @@ mapconnection_get_mapheader: @ 80589C4
thumb_func_start not_trainer_hill_battle_pyramid
not_trainer_hill_battle_pyramid: @ 80589D4
push {lr}
- ldr r0, _080589E4 @ =gUnknown_2036DFC
+ ldr r0, _080589E4 @ =gMapHeader
bl sub_8058A00
bl mapheader_run_script_with_tag_x1
pop {r0}
bx r0
.align 2, 0
-_080589E4: .4byte gUnknown_2036DFC
+_080589E4: .4byte gMapHeader
thumb_func_end not_trainer_hill_battle_pyramid
thumb_func_start sub_80589E8
sub_80589E8: @ 80589E8
push {lr}
- ldr r0, _080589FC @ =gUnknown_2036DFC
+ ldr r0, _080589FC @ =gMapHeader
bl sub_8058A00
bl sub_80591C4
bl mapheader_run_script_with_tag_x1
pop {r0}
bx r0
.align 2, 0
-_080589FC: .4byte gUnknown_2036DFC
+_080589FC: .4byte gMapHeader
thumb_func_end sub_80589E8
thumb_func_start sub_8058A00
@@ -519,7 +519,7 @@ MapGridGetZCoordAt: @ 8058D44
.align 2, 0
_08058D70: .4byte gUnknown_3005040
_08058D74:
- ldr r0, _08058DB4 @ =gUnknown_2036DFC
+ ldr r0, _08058DB4 @ =gMapHeader
ldr r6, [r0]
subs r0, r2, 0x7
ldrb r5, [r6, 0x18]
@@ -550,7 +550,7 @@ _08058DA8:
lsrs r0, r1, 12
b _08058DBE
.align 2, 0
-_08058DB4: .4byte gUnknown_2036DFC
+_08058DB4: .4byte gMapHeader
_08058DB8: .4byte 0x000003ff
_08058DBC:
movs r0, 0
@@ -587,7 +587,7 @@ sub_8058DC4: @ 8058DC4
.align 2, 0
_08058DF0: .4byte gUnknown_3005040
_08058DF4:
- ldr r0, _08058E38 @ =gUnknown_2036DFC
+ ldr r0, _08058E38 @ =gMapHeader
ldr r6, [r0]
subs r0, r2, 0x7
ldrb r5, [r6, 0x18]
@@ -621,7 +621,7 @@ _08058E28:
lsrs r0, r1, 10
b _08058E42
.align 2, 0
-_08058E38: .4byte gUnknown_2036DFC
+_08058E38: .4byte gMapHeader
_08058E3C: .4byte 0x000003ff
_08058E40:
movs r0, 0x1
@@ -662,7 +662,7 @@ sub_8058E48: @ 8058E48
.align 2, 0
_08058E7C: .4byte gUnknown_3005040
_08058E80:
- ldr r0, _08058EC8 @ =gUnknown_2036DFC
+ ldr r0, _08058EC8 @ =gMapHeader
ldr r6, [r0]
mov r0, r8
subs r0, 0x7
@@ -697,10 +697,10 @@ _08058EBA:
adds r0, r7, 0
b _08058F0A
.align 2, 0
-_08058EC8: .4byte gUnknown_2036DFC
+_08058EC8: .4byte gMapHeader
_08058ECC: .4byte 0x000003ff
_08058ED0:
- ldr r0, _08058F18 @ =gUnknown_2036DFC
+ ldr r0, _08058F18 @ =gMapHeader
ldr r6, [r0]
mov r0, r8
subs r0, 0x7
@@ -735,7 +735,7 @@ _08058F0A:
pop {r1}
bx r1
.align 2, 0
-_08058F18: .4byte gUnknown_2036DFC
+_08058F18: .4byte gMapHeader
thumb_func_end sub_8058E48
thumb_func_start sub_8058F1C
@@ -778,7 +778,7 @@ sub_8058F48: @ 8058F48
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
- ldr r0, _08058F74 @ =gUnknown_2036DFC
+ ldr r0, _08058F74 @ =gMapHeader
ldr r0, [r0]
adds r2, r4, 0
bl sub_8059080
@@ -786,7 +786,7 @@ sub_8058F48: @ 8058F48
pop {r1}
bx r1
.align 2, 0
-_08058F74: .4byte gUnknown_2036DFC
+_08058F74: .4byte gMapHeader
thumb_func_end sub_8058F48
thumb_func_start sub_8058F78
@@ -1346,7 +1346,7 @@ sub_8059334: @ 8059334
_0805936C: .4byte gUnknown_3005040
_08059370: .4byte 0x000003ff
_08059374:
- ldr r0, _080593CC @ =gUnknown_2036DFC
+ ldr r0, _080593CC @ =gMapHeader
ldr r6, [r0]
subs r0, r7, 0x7
ldrb r5, [r6, 0x18]
@@ -1389,7 +1389,7 @@ _080593B0:
movs r0, 0x4
b _08059432
.align 2, 0
-_080593CC: .4byte gUnknown_2036DFC
+_080593CC: .4byte gMapHeader
_080593D0: .4byte 0x000003ff
_080593D4: .4byte gUnknown_3005040
_080593D8: .4byte gUnknown_2036E24
@@ -1696,7 +1696,7 @@ sub_8059600: @ 8059600
mov r8, r2
lsls r0, 24
lsrs r6, r0, 24
- ldr r0, _0805963C @ =gUnknown_2036DFC
+ ldr r0, _0805963C @ =gMapHeader
ldr r0, [r0, 0xC]
ldr r7, [r0]
ldr r4, [r0, 0x4]
@@ -1719,7 +1719,7 @@ _0805961E:
adds r0, r4, 0
b _0805964A
.align 2, 0
-_0805963C: .4byte gUnknown_2036DFC
+_0805963C: .4byte gMapHeader
_08059640:
adds r5, 0x1
adds r4, 0xC
@@ -1754,7 +1754,7 @@ sub_8059658: @ 8059658
blt _080596B0
cmp r4, 0x2
bgt _08059690
- ldr r0, _0805968C @ =gUnknown_2036DFC
+ ldr r0, _0805968C @ =gMapHeader
ldr r0, [r0]
ldr r1, [r0]
ldr r0, [r2]
@@ -1763,11 +1763,11 @@ sub_8059658: @ 8059658
adds r0, r7, 0
b _080596A2
.align 2, 0
-_0805968C: .4byte gUnknown_2036DFC
+_0805968C: .4byte gMapHeader
_08059690:
cmp r6, 0x4
bgt _080596B0
- ldr r0, _080596AC @ =gUnknown_2036DFC
+ ldr r0, _080596AC @ =gMapHeader
ldr r0, [r0]
ldr r1, [r0, 0x4]
ldr r0, [r2]
@@ -1780,7 +1780,7 @@ _080596A2:
lsrs r0, 24
b _080596B2
.align 2, 0
-_080596AC: .4byte gUnknown_2036DFC
+_080596AC: .4byte gMapHeader
_080596B0:
movs r0, 0
_080596B2:
@@ -1884,13 +1884,13 @@ sub_805973C: @ 805973C
mov r8, r0
lsls r1, 16
lsrs r1, 16
- ldr r2, _0805975C @ =gUnknown_2036DFC
+ ldr r2, _0805975C @ =gMapHeader
ldr r0, [r2, 0xC]
cmp r0, 0
bne _08059764
b _080597DA
.align 2, 0
-_0805975C: .4byte gUnknown_2036DFC
+_0805975C: .4byte gMapHeader
_08059760:
adds r0, r4, 0
b _080597DC
diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s
index 5f20daf0e..2d45b81c5 100644
--- a/asm/fldeff_flash.s
+++ b/asm/fldeff_flash.s
@@ -8,7 +8,7 @@
thumb_func_start sub_80C9B2C
sub_80C9B2C: @ 80C9B2C
push {lr}
- ldr r0, _080C9B54 @ =gUnknown_2036DFC
+ ldr r0, _080C9B54 @ =gMapHeader
ldrb r0, [r0, 0x15]
cmp r0, 0x1
bne _080C9B6C
@@ -26,7 +26,7 @@ sub_80C9B2C: @ 80C9B2C
movs r0, 0x1
b _080C9B6E
.align 2, 0
-_080C9B54: .4byte gUnknown_2036DFC
+_080C9B54: .4byte gMapHeader
_080C9B58: .4byte 0x00000806
_080C9B5C: .4byte gUnknown_3005024
_080C9B60: .4byte hm_add_c3_launch_phase_2
@@ -214,7 +214,7 @@ sub_80C9CE8: @ 80C9CE8
lsrs r6, r0, 24
movs r4, 0
bl sub_80561B4
- ldr r5, _080C9D24 @ =gUnknown_2036DFC
+ ldr r5, _080C9D24 @ =gMapHeader
lsls r0, 24
lsrs r0, 24
ldrb r1, [r5, 0x14]
@@ -230,7 +230,7 @@ sub_80C9CE8: @ 80C9CE8
movs r0, 0x1
b _080C9D70
.align 2, 0
-_080C9D24: .4byte gUnknown_2036DFC
+_080C9D24: .4byte gMapHeader
_080C9D28:
adds r0, r3, 0x4
adds r0, r2, r0
diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s
index b258e88dc..4d3eadb81 100644
--- a/asm/fldeff_teleport.s
+++ b/asm/fldeff_teleport.s
@@ -8,7 +8,7 @@
thumb_func_start SetUpFieldMove_Teleport
SetUpFieldMove_Teleport: @ 80F66F0
push {lr}
- ldr r0, _080F6708 @ =gUnknown_2036DFC
+ ldr r0, _080F6708 @ =gMapHeader
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_or_6
lsls r0, 24
@@ -18,7 +18,7 @@ SetUpFieldMove_Teleport: @ 80F66F0
movs r0, 0
b _080F671A
.align 2, 0
-_080F6708: .4byte gUnknown_2036DFC
+_080F6708: .4byte gMapHeader
_080F670C:
ldr r1, _080F6720 @ =gUnknown_3005024
ldr r0, _080F6724 @ =hm_add_c3_launch_phase_2
diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s
index 3c98ace0a..ee485cc71 100644
--- a/asm/help_system_812B1E0.s
+++ b/asm/help_system_812B1E0.s
@@ -251,7 +251,7 @@ _0812B376:
bl sub_812B1F0
b _0812B406
_0812B388:
- ldr r0, _0812B3B0 @ =gUnknown_2036DFC
+ ldr r0, _0812B3B0 @ =gMapHeader
ldrb r0, [r0, 0x17]
bl is_light_level_8_or_9
lsls r0, 24
@@ -271,7 +271,7 @@ _0812B3A8:
bl sub_812B1F0
b _0812B406
.align 2, 0
-_0812B3B0: .4byte gUnknown_2036DFC
+_0812B3B0: .4byte gMapHeader
_0812B3B4: .4byte gSaveBlock1Ptr
_0812B3B8:
movs r0, 0xC1
diff --git a/asm/item.s b/asm/item.s
index 1805be5fe..b5d30b995 100644
--- a/asm/item.s
+++ b/asm/item.s
@@ -1530,7 +1530,7 @@ _0809A86E:
bl Alloc
adds r4, r0, 0
strh r5, [r4]
- ldr r0, _0809A8A0 @ =gUnknown_2036DFC
+ ldr r0, _0809A8A0 @ =gMapHeader
ldrb r0, [r0, 0x14]
strb r0, [r4, 0x2]
movs r0, 0x28
@@ -1546,7 +1546,7 @@ _0809A88C:
_0809A894: .4byte 0xfea30000
_0809A898: .4byte 0x00000169
_0809A89C: .4byte gSaveBlock1Ptr
-_0809A8A0: .4byte gUnknown_2036DFC
+_0809A8A0: .4byte gMapHeader
thumb_func_end sub_809A824
thumb_func_start SanitizeItemId
diff --git a/asm/item_use.s b/asm/item_use.s
index 393e96f19..c8515d01d 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -1500,7 +1500,7 @@ _080A1B88: .4byte sub_810A1F8
thumb_func_start sub_80A1B8C
sub_80A1B8C: @ 80A1B8C
push {lr}
- ldr r0, _080A1BA0 @ =gUnknown_2036DFC
+ ldr r0, _080A1BA0 @ =gMapHeader
ldrb r1, [r0, 0x19]
movs r0, 0x1
ands r0, r1
@@ -1509,7 +1509,7 @@ sub_80A1B8C: @ 80A1B8C
movs r0, 0
b _080A1BA6
.align 2, 0
-_080A1BA0: .4byte gUnknown_2036DFC
+_080A1BA0: .4byte gMapHeader
_080A1BA4:
movs r0, 0x1
_080A1BA6:
@@ -1529,7 +1529,7 @@ ItemUseOutOfBattle_EscapeRope: @ 80A1BAC
bne _080A1BEC
ldr r0, _080A1BDC @ =gUnknown_203AD30
ldrh r2, [r0]
- ldr r0, _080A1BE0 @ =gUnknown_2036DFC
+ ldr r0, _080A1BE0 @ =gMapHeader
ldrb r3, [r0, 0x14]
movs r0, 0x4
movs r1, 0
@@ -1542,7 +1542,7 @@ ItemUseOutOfBattle_EscapeRope: @ 80A1BAC
b _080A1BFE
.align 2, 0
_080A1BDC: .4byte gUnknown_203AD30
-_080A1BE0: .4byte gUnknown_2036DFC
+_080A1BE0: .4byte gMapHeader
_080A1BE4: .4byte gUnknown_2039998
_080A1BE8: .4byte sub_80A1C08
_080A1BEC:
@@ -1769,7 +1769,7 @@ sub_80A1D9C: @ 80A1D9C
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080A1DE8 @ =gUnknown_2036DFC
+ ldr r0, _080A1DE8 @ =gMapHeader
ldrb r0, [r0, 0x17]
cmp r0, 0x3
beq _080A1DB2
@@ -1805,7 +1805,7 @@ _080A1DD2:
bl sub_80A1110
b _080A1E00
.align 2, 0
-_080A1DE8: .4byte gUnknown_2036DFC
+_080A1DE8: .4byte gMapHeader
_080A1DEC: .4byte gSaveBlock1Ptr
_080A1DF0: .4byte gUnknown_3005090
_080A1DF4:
diff --git a/asm/itemfinder.s b/asm/itemfinder.s
index 42cb10b09..5f861463e 100644
--- a/asm/itemfinder.s
+++ b/asm/itemfinder.s
@@ -11,7 +11,7 @@ sub_813EC8C: @ 813EC8C
lsls r0, 24
lsrs r4, r0, 24
movs r2, 0
- ldr r7, _0813ECE0 @ =gUnknown_2036DFC
+ ldr r7, _0813ECE0 @ =gMapHeader
lsls r1, r4, 2
adds r0, r1, r4
lsls r3, r0, 3
@@ -48,7 +48,7 @@ _0813ECA2:
str r0, [r1]
b _0813ED08
.align 2, 0
-_0813ECE0: .4byte gUnknown_2036DFC
+_0813ECE0: .4byte gMapHeader
_0813ECE4: .4byte gUnknown_3005098
_0813ECE8: .4byte gUnknown_3005090
_0813ECEC: .4byte sub_813EDB0
@@ -557,12 +557,12 @@ _0813F0AC:
subs r0, r5, r0
lsls r0, 16
lsrs r1, r0, 16
- ldr r0, _0813F0C0 @ =gUnknown_2036DFC
+ ldr r0, _0813F0C0 @ =gMapHeader
ldr r0, [r0]
ldr r0, [r0, 0x4]
b _0813F0DE
.align 2, 0
-_0813F0C0: .4byte gUnknown_2036DFC
+_0813F0C0: .4byte gMapHeader
_0813F0C4:
ldr r0, [r3]
ldr r0, [r0]
@@ -570,7 +570,7 @@ _0813F0C4:
adds r0, r5
b _0813F0D8
_0813F0CE:
- ldr r0, _0813F0E8 @ =gUnknown_2036DFC
+ ldr r0, _0813F0E8 @ =gMapHeader
ldr r0, [r0]
ldr r0, [r0]
adds r0, 0x7
@@ -587,7 +587,7 @@ _0813F0E2:
lsrs r2, r0, 16
b _0813F0F0
.align 2, 0
-_0813F0E8: .4byte gUnknown_2036DFC
+_0813F0E8: .4byte gMapHeader
_0813F0EC:
movs r0, 0
b _0813F102
@@ -617,7 +617,7 @@ sub_813F108: @ 813F108
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
- ldr r0, _0813F21C @ =gUnknown_2036DFC
+ ldr r0, _0813F21C @ =gMapHeader
ldr r1, [r0]
ldr r0, [r1]
adds r0, 0x7
@@ -749,7 +749,7 @@ _0813F20C:
pop {r0}
bx r0
.align 2, 0
-_0813F21C: .4byte gUnknown_2036DFC
+_0813F21C: .4byte gMapHeader
thumb_func_end sub_813F108
thumb_func_start sub_813F220
diff --git a/asm/map_name_popup.s b/asm/map_name_popup.s
index ea2b2bc59..c4c0ae302 100644
--- a/asm/map_name_popup.s
+++ b/asm/map_name_popup.s
@@ -298,7 +298,7 @@ sub_8098340: @ 8098340
str r0, [sp]
str r1, [sp, 0x4]
movs r6, 0x1D
- ldr r0, _0809837C @ =gUnknown_2036DFC
+ ldr r0, _0809837C @ =gMapHeader
ldrb r0, [r0, 0x1A]
lsls r0, 24
asrs r0, 24
@@ -318,7 +318,7 @@ sub_8098340: @ 8098340
b _08098396
.align 2, 0
_08098378: .4byte gUnknown_83D4164
-_0809837C: .4byte gUnknown_2036DFC
+_0809837C: .4byte gMapHeader
_08098380: .4byte 0x00ffffff
_08098384:
ldr r2, [sp]
@@ -384,7 +384,7 @@ sub_8098400: @ 8098400
lsls r0, 16
lsrs r6, r0, 16
movs r5, 0x70
- ldr r4, _08098478 @ =gUnknown_2036DFC
+ ldr r4, _08098478 @ =gMapHeader
ldrb r1, [r4, 0x14]
add r0, sp, 0xC
movs r2, 0
@@ -435,7 +435,7 @@ _08098434:
pop {r0}
bx r0
.align 2, 0
-_08098478: .4byte gUnknown_2036DFC
+_08098478: .4byte gMapHeader
thumb_func_end sub_8098400
thumb_func_start sub_809847C
diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s
index f22b818e8..18b6066d9 100644
--- a/asm/mystery_event_script.s
+++ b/asm/mystery_event_script.s
@@ -78,7 +78,7 @@ _080DA878: .4byte 0x081dbd34
RunMysteryEventScriptCommand: @ 80DA87C
push {r4,lr}
adds r4, r0, 0
- bl sub_8069804
+ bl RunScriptCommand
lsls r0, 24
cmp r0, 0
beq _080DA894
diff --git a/asm/overworld.s b/asm/overworld.s
index 7bc1a8760..4dc2c60e0 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -445,7 +445,7 @@ sub_8054F68: @ 8054F68
movs r0, 0
mov r9, r0
mov r8, r0
- ldr r1, _08055040 @ =gUnknown_2036DFC
+ ldr r1, _08055040 @ =gMapHeader
ldr r0, [r1, 0x4]
ldrb r0, [r0]
cmp r9, r0
@@ -455,7 +455,7 @@ _08054F86:
ldr r2, _08055044 @ =gSaveBlock1Ptr
mov r10, r2
_08054F8A:
- ldr r3, _08055040 @ =gUnknown_2036DFC
+ ldr r3, _08055040 @ =gMapHeader
ldr r0, [r3, 0x4]
ldr r1, [r0, 0x4]
mov r4, r9
@@ -498,7 +498,7 @@ _08054F8A:
mov r6, r10
ldr r1, [r6]
adds r1, r3
- ldr r2, _08055040 @ =gUnknown_2036DFC
+ ldr r2, _08055040 @ =gMapHeader
ldr r0, [r2, 0x4]
ldr r0, [r0, 0x4]
adds r0, r7, r0
@@ -516,7 +516,7 @@ _08054F8A:
ldr r6, _08055048 @ =0x000008e4
adds r0, r1, r6
strh r2, [r0]
- ldr r2, _08055040 @ =gUnknown_2036DFC
+ ldr r2, _08055040 @ =gMapHeader
ldr r0, [r2, 0x4]
ldr r0, [r0, 0x4]
adds r0, r7, r0
@@ -546,7 +546,7 @@ _08054F8A:
strb r1, [r0]
b _08055072
.align 2, 0
-_08055040: .4byte gUnknown_2036DFC
+_08055040: .4byte gMapHeader
_08055044: .4byte gSaveBlock1Ptr
_08055048: .4byte 0x000008e4
_0805504C: .4byte 0x000008ec
@@ -578,7 +578,7 @@ _08055072:
lsls r0, 24
lsrs r0, 24
mov r9, r0
- ldr r6, _080550A4 @ =gUnknown_2036DFC
+ ldr r6, _080550A4 @ =gMapHeader
ldr r0, [r6, 0x4]
ldrb r0, [r0]
cmp r9, r0
@@ -594,13 +594,13 @@ _08055092:
pop {r0}
bx r0
.align 2, 0
-_080550A4: .4byte gUnknown_2036DFC
+_080550A4: .4byte gMapHeader
thumb_func_end sub_8054F68
thumb_func_start sub_80550A8
sub_80550A8: @ 80550A8
push {lr}
- ldr r0, _080550D0 @ =gUnknown_2036DFC
+ ldr r0, _080550D0 @ =gMapHeader
ldr r1, [r0, 0x4]
ldr r0, _080550D4 @ =gSaveBlock1Ptr
ldr r0, [r0]
@@ -620,7 +620,7 @@ _080550BC:
pop {r0}
bx r0
.align 2, 0
-_080550D0: .4byte gUnknown_2036DFC
+_080550D0: .4byte gMapHeader
_080550D4: .4byte gSaveBlock1Ptr
thumb_func_end sub_80550A8
@@ -695,7 +695,7 @@ _08055140:
mapdata_load_assets_to_gpu_and_full_redraw: @ 8055148
push {r4,lr}
bl move_tilemap_camera_to_upper_left_corner
- ldr r4, _0805516C @ =gUnknown_2036DFC
+ ldr r4, _0805516C @ =gMapHeader
ldr r0, [r4]
bl copy_map_tileset1_tileset2_to_vram
ldr r0, [r4]
@@ -706,7 +706,7 @@ mapdata_load_assets_to_gpu_and_full_redraw: @ 8055148
pop {r0}
bx r0
.align 2, 0
-_0805516C: .4byte gUnknown_2036DFC
+_0805516C: .4byte gMapHeader
thumb_func_end mapdata_load_assets_to_gpu_and_full_redraw
thumb_func_start get_mapdata_header
@@ -860,7 +860,7 @@ _08055270: .4byte gUnknown_2031DBC
thumb_func_start set_current_map_header_from_sav1_save_old_name
set_current_map_header_from_sav1_save_old_name: @ 8055274
push {r4-r6,lr}
- ldr r4, _080552B4 @ =gUnknown_2036DFC
+ ldr r4, _080552B4 @ =gMapHeader
ldr r5, _080552B8 @ =gSaveBlock1Ptr
ldr r1, [r5]
movs r0, 0x4
@@ -889,14 +889,14 @@ set_current_map_header_from_sav1_save_old_name: @ 8055274
pop {r0}
bx r0
.align 2, 0
-_080552B4: .4byte gUnknown_2036DFC
+_080552B4: .4byte gMapHeader
_080552B8: .4byte gSaveBlock1Ptr
thumb_func_end set_current_map_header_from_sav1_save_old_name
thumb_func_start set_current_map_header_from_sav1
set_current_map_header_from_sav1: @ 80552BC
push {r4,r5,lr}
- ldr r4, _080552F4 @ =gUnknown_2036DFC
+ ldr r4, _080552F4 @ =gMapHeader
ldr r0, _080552F8 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
@@ -922,7 +922,7 @@ set_current_map_header_from_sav1: @ 80552BC
pop {r0}
bx r0
.align 2, 0
-_080552F4: .4byte gUnknown_2036DFC
+_080552F4: .4byte gMapHeader
_080552F8: .4byte gSaveBlock1Ptr
thumb_func_end set_current_map_header_from_sav1
@@ -936,7 +936,7 @@ update_camera_pos_from_warpid: @ 80552FC
adds r4, r0, 0
cmp r1, 0
blt _08055334
- ldr r3, _08055330 @ =gUnknown_2036DFC
+ ldr r3, _08055330 @ =gMapHeader
ldr r0, [r3, 0x4]
ldrb r5, [r0, 0x1]
cmp r1, r5
@@ -954,7 +954,7 @@ update_camera_pos_from_warpid: @ 80552FC
b _0805536C
.align 2, 0
_0805532C: .4byte gSaveBlock1Ptr
-_08055330: .4byte gUnknown_2036DFC
+_08055330: .4byte gMapHeader
_08055334:
ldr r1, [r4]
ldrh r3, [r1, 0x8]
@@ -972,7 +972,7 @@ _08055334:
b _0805536C
_08055350:
ldr r3, [r4]
- ldr r2, _08055374 @ =gUnknown_2036DFC
+ ldr r2, _08055374 @ =gMapHeader
ldr r0, [r2]
ldr r0, [r0]
lsrs r1, r0, 31
@@ -990,7 +990,7 @@ _0805536C:
pop {r0}
bx r0
.align 2, 0
-_08055374: .4byte gUnknown_2036DFC
+_08055374: .4byte gMapHeader
thumb_func_end update_camera_pos_from_warpid
thumb_func_start warp_in
@@ -1569,7 +1569,7 @@ GetMapConnection: @ 805578C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080557A0 @ =gUnknown_2036DFC
+ ldr r0, _080557A0 @ =gMapHeader
ldr r0, [r0, 0xC]
ldr r3, [r0]
ldr r1, [r0, 0x4]
@@ -1577,7 +1577,7 @@ GetMapConnection: @ 805578C
bne _080557A8
b _080557BC
.align 2, 0
-_080557A0: .4byte gUnknown_2036DFC
+_080557A0: .4byte gMapHeader
_080557A4:
adds r0, r1, 0
b _080557BE
@@ -1719,7 +1719,7 @@ sub_8055864: @ 8055864
bl mapheader_run_script_with_tag_x3
bl sub_815D8F8
bl not_trainer_hill_battle_pyramid
- ldr r4, _0805591C @ =gUnknown_2036DFC
+ ldr r4, _0805591C @ =gMapHeader
ldr r0, [r4]
bl copy_map_tileset2_to_vram_2
ldr r0, [r4]
@@ -1740,7 +1740,7 @@ _080558D4:
bl wild_encounter_reset_coro_args
bl mapheader_run_script_with_tag_x5
bl sub_80561B4
- ldr r1, _0805591C @ =gUnknown_2036DFC
+ ldr r1, _0805591C @ =gMapHeader
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1, 0x14]
@@ -1754,7 +1754,7 @@ _08055914:
pop {r0}
bx r0
.align 2, 0
-_0805591C: .4byte gUnknown_2036DFC
+_0805591C: .4byte gMapHeader
thumb_func_end sub_8055864
thumb_func_start sub_8055920
@@ -1762,7 +1762,7 @@ sub_8055920: @ 8055920
push {r4,lr}
bl set_current_map_header_from_sav1_save_old_name
bl sub_8054F68
- ldr r0, _0805599C @ =gUnknown_2036DFC
+ ldr r0, _0805599C @ =gMapHeader
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_5_or_6
adds r4, r0, 0
@@ -1803,7 +1803,7 @@ _08055974:
pop {r0}
bx r0
.align 2, 0
-_0805599C: .4byte gUnknown_2036DFC
+_0805599C: .4byte gMapHeader
_080559A0: .4byte gSaveBlock1Ptr
_080559A4: .4byte 0x00000806
thumb_func_end sub_8055920
@@ -1813,7 +1813,7 @@ sub_80559A8: @ 80559A8
push {lr}
bl set_current_map_header_from_sav1_save_old_name
bl sub_8054F68
- ldr r0, _080559E0 @ =gUnknown_2036DFC
+ ldr r0, _080559E0 @ =gMapHeader
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_5_or_6
bl TrySetMapSaveWarpStatus
@@ -1827,7 +1827,7 @@ sub_80559A8: @ 80559A8
pop {r0}
bx r0
.align 2, 0
-_080559E0: .4byte gUnknown_2036DFC
+_080559E0: .4byte gMapHeader
thumb_func_end sub_80559A8
thumb_func_start sub_80559E4
@@ -2202,14 +2202,14 @@ _08055C98: .4byte gSaveBlock1Ptr
thumb_func_start sub_8055C9C
sub_8055C9C: @ 8055C9C
push {lr}
- ldr r0, _08055CAC @ =gUnknown_2036DFC
+ ldr r0, _08055CAC @ =gMapHeader
ldrb r0, [r0, 0x18]
cmp r0, 0
beq _08055CB0
movs r0, 0x1
b _08055CB2
.align 2, 0
-_08055CAC: .4byte gUnknown_2036DFC
+_08055CAC: .4byte gMapHeader
_08055CB0:
movs r0, 0
_08055CB2:
@@ -2220,7 +2220,7 @@ _08055CB2:
thumb_func_start sub_8055CB8
sub_8055CB8: @ 8055CB8
push {lr}
- ldr r0, _08055CC8 @ =gUnknown_2036DFC
+ ldr r0, _08055CC8 @ =gMapHeader
ldrb r1, [r0, 0x15]
cmp r1, 0
bne _08055CD0
@@ -2228,7 +2228,7 @@ sub_8055CB8: @ 8055CB8
ldr r0, [r0]
b _08055CF8
.align 2, 0
-_08055CC8: .4byte gUnknown_2036DFC
+_08055CC8: .4byte gMapHeader
_08055CCC: .4byte gSaveBlock1Ptr
_08055CD0:
ldr r0, _08055CE8 @ =0x00000806
@@ -2302,13 +2302,13 @@ sub_8055D40: @ 8055D40
ldr r1, [r1]
strh r0, [r1, 0x32]
bl get_mapdata_header
- ldr r1, _08055D58 @ =gUnknown_2036DFC
+ ldr r1, _08055D58 @ =gMapHeader
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08055D54: .4byte gSaveBlock1Ptr
-_08055D58: .4byte gUnknown_2036DFC
+_08055D58: .4byte gMapHeader
thumb_func_end sub_8055D40
thumb_func_start sub_8055D5C
@@ -2834,7 +2834,7 @@ sub_8056124: @ 8056124
cmp r1, r0
bne _08056150
_08056138:
- ldr r0, _0805614C @ =gUnknown_2036DFC
+ ldr r0, _0805614C @ =gMapHeader
ldrb r0, [r0, 0x14]
cmp r0, 0x84
beq _08056148
@@ -2846,7 +2846,7 @@ _08056148:
movs r0, 0
b _08056152
.align 2, 0
-_0805614C: .4byte gUnknown_2036DFC
+_0805614C: .4byte gMapHeader
_08056150:
movs r0, 0x1
_08056152:
@@ -3817,7 +3817,7 @@ _08056914: .4byte sub_807DF7C
thumb_func_start sub_8056918
sub_8056918: @ 8056918
push {lr}
- ldr r0, _08056934 @ =gUnknown_2036DFC
+ ldr r0, _08056934 @ =gMapHeader
ldrb r1, [r0, 0x19]
movs r0, 0xFC
ands r0, r1
@@ -3830,7 +3830,7 @@ _0805692C:
pop {r0}
bx r0
.align 2, 0
-_08056934: .4byte gUnknown_2036DFC
+_08056934: .4byte gMapHeader
thumb_func_end sub_8056918
thumb_func_start sub_8056938
@@ -4022,31 +4022,31 @@ _08056AEE:
bl move_tilemap_camera_to_upper_left_corner
b _08056B62
_08056AF4:
- ldr r0, _08056B00 @ =gUnknown_2036DFC
+ ldr r0, _08056B00 @ =gMapHeader
ldr r0, [r0]
bl sub_8059A54
b _08056B62
.align 2, 0
-_08056B00: .4byte gUnknown_2036DFC
+_08056B00: .4byte gMapHeader
_08056B04:
- ldr r0, _08056B10 @ =gUnknown_2036DFC
+ ldr r0, _08056B10 @ =gMapHeader
ldr r0, [r0]
bl sub_8059A68
b _08056B62
.align 2, 0
-_08056B10: .4byte gUnknown_2036DFC
+_08056B10: .4byte gMapHeader
_08056B14:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08056B6E
- ldr r0, _08056B2C @ =gUnknown_2036DFC
+ ldr r0, _08056B2C @ =gMapHeader
ldr r0, [r0]
bl apply_map_tileset1_tileset2_palette
b _08056B62
.align 2, 0
-_08056B2C: .4byte gUnknown_2036DFC
+_08056B2C: .4byte gMapHeader
_08056B30:
bl DrawWholeMapView
b _08056B62
@@ -4164,31 +4164,31 @@ _08056C2A:
bl move_tilemap_camera_to_upper_left_corner
b _08056CCA
_08056C30:
- ldr r0, _08056C3C @ =gUnknown_2036DFC
+ ldr r0, _08056C3C @ =gMapHeader
ldr r0, [r0]
bl sub_8059A54
b _08056CCA
.align 2, 0
-_08056C3C: .4byte gUnknown_2036DFC
+_08056C3C: .4byte gMapHeader
_08056C40:
- ldr r0, _08056C4C @ =gUnknown_2036DFC
+ ldr r0, _08056C4C @ =gMapHeader
ldr r0, [r0]
bl sub_8059A68
b _08056CCA
.align 2, 0
-_08056C4C: .4byte gUnknown_2036DFC
+_08056C4C: .4byte gMapHeader
_08056C50:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08056CD0
- ldr r0, _08056C68 @ =gUnknown_2036DFC
+ ldr r0, _08056C68 @ =gMapHeader
ldr r0, [r0]
bl apply_map_tileset1_tileset2_palette
b _08056CCA
.align 2, 0
-_08056C68: .4byte gUnknown_2036DFC
+_08056C68: .4byte gMapHeader
_08056C6C:
bl DrawWholeMapView
b _08056CCA
@@ -4197,7 +4197,7 @@ _08056C72:
b _08056CCA
_08056C78:
bl sub_80561B4
- ldr r5, _08056CA4 @ =gUnknown_2036DFC
+ ldr r5, _08056CA4 @ =gMapHeader
lsls r0, 24
lsrs r0, 24
ldrb r1, [r5, 0x14]
@@ -4214,9 +4214,9 @@ _08056C78:
bl sub_80F8268
b _08056CCA
.align 2, 0
-_08056CA4: .4byte gUnknown_2036DFC
+_08056CA4: .4byte gMapHeader
_08056CA8:
- ldr r0, _08056CBC @ =gUnknown_2036DFC
+ ldr r0, _08056CBC @ =gMapHeader
ldrb r1, [r0, 0x19]
movs r0, 0xFC
ands r0, r1
@@ -4226,7 +4226,7 @@ _08056CA8:
bl sub_8098110
b _08056CCA
.align 2, 0
-_08056CBC: .4byte gUnknown_2036DFC
+_08056CBC: .4byte gMapHeader
_08056CC0:
bl map_post_load_hook_exec
lsls r0, 24
@@ -4353,31 +4353,31 @@ _08056DCA:
bl move_tilemap_camera_to_upper_left_corner
b _08056E3E
_08056DD0:
- ldr r0, _08056DDC @ =gUnknown_2036DFC
+ ldr r0, _08056DDC @ =gMapHeader
ldr r0, [r0]
bl sub_8059A54
b _08056E3E
.align 2, 0
-_08056DDC: .4byte gUnknown_2036DFC
+_08056DDC: .4byte gMapHeader
_08056DE0:
- ldr r0, _08056DEC @ =gUnknown_2036DFC
+ ldr r0, _08056DEC @ =gMapHeader
ldr r0, [r0]
bl sub_8059A68
b _08056E3E
.align 2, 0
-_08056DEC: .4byte gUnknown_2036DFC
+_08056DEC: .4byte gMapHeader
_08056DF0:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08056E54
- ldr r0, _08056E08 @ =gUnknown_2036DFC
+ ldr r0, _08056E08 @ =gMapHeader
ldr r0, [r0]
bl apply_map_tileset1_tileset2_palette
b _08056E3E
.align 2, 0
-_08056E08: .4byte gUnknown_2036DFC
+_08056E08: .4byte gMapHeader
_08056E0C:
bl DrawWholeMapView
b _08056E3E
@@ -5064,31 +5064,31 @@ _080573C2:
bl move_tilemap_camera_to_upper_left_corner
b _08057412
_080573C8:
- ldr r0, _080573D4 @ =gUnknown_2036DFC
+ ldr r0, _080573D4 @ =gMapHeader
ldr r0, [r0]
bl sub_8059A54
b _08057412
.align 2, 0
-_080573D4: .4byte gUnknown_2036DFC
+_080573D4: .4byte gMapHeader
_080573D8:
- ldr r0, _080573E4 @ =gUnknown_2036DFC
+ ldr r0, _080573E4 @ =gMapHeader
ldr r0, [r0]
bl sub_8059A68
b _08057412
.align 2, 0
-_080573E4: .4byte gUnknown_2036DFC
+_080573E4: .4byte gMapHeader
_080573E8:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08057428
- ldr r0, _08057400 @ =gUnknown_2036DFC
+ ldr r0, _08057400 @ =gMapHeader
ldr r0, [r0]
bl apply_map_tileset1_tileset2_palette
b _08057412
.align 2, 0
-_08057400: .4byte gUnknown_2036DFC
+_08057400: .4byte gMapHeader
_08057404:
bl DrawWholeMapView
b _08057412
@@ -5413,31 +5413,31 @@ _080576CC:
bl move_tilemap_camera_to_upper_left_corner
b _0805772A
_080576D2:
- ldr r0, _080576DC @ =gUnknown_2036DFC
+ ldr r0, _080576DC @ =gMapHeader
ldr r0, [r0]
bl sub_8059A54
b _0805772A
.align 2, 0
-_080576DC: .4byte gUnknown_2036DFC
+_080576DC: .4byte gMapHeader
_080576E0:
- ldr r0, _080576EC @ =gUnknown_2036DFC
+ ldr r0, _080576EC @ =gMapHeader
ldr r0, [r0]
bl sub_8059A68
b _0805772A
.align 2, 0
-_080576EC: .4byte gUnknown_2036DFC
+_080576EC: .4byte gMapHeader
_080576F0:
bl free_temp_tile_data_buffers_if_possible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08057740
- ldr r0, _08057708 @ =gUnknown_2036DFC
+ ldr r0, _08057708 @ =gMapHeader
ldr r0, [r0]
bl apply_map_tileset1_tileset2_palette
b _0805772A
.align 2, 0
-_08057708: .4byte gUnknown_2036DFC
+_08057708: .4byte gMapHeader
_0805770C:
bl DrawWholeMapView
b _0805772A
diff --git a/asm/party_menu.s b/asm/party_menu.s
index c1c1f64b3..b1942669d 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -12205,7 +12205,7 @@ _08124A82:
thumb_func_start sub_8124A8C
sub_8124A8C: @ 8124A8C
push {lr}
- ldr r0, _08124AA4 @ =gUnknown_2036DFC
+ ldr r0, _08124AA4 @ =gMapHeader
ldrb r0, [r0, 0x17]
bl is_light_level_1_2_3_or_6
lsls r0, 24
@@ -12215,7 +12215,7 @@ sub_8124A8C: @ 8124A8C
movs r0, 0
b _08124AAA
.align 2, 0
-_08124AA4: .4byte gUnknown_2036DFC
+_08124AA4: .4byte gMapHeader
_08124AA8:
movs r0, 0x1
_08124AAA:
@@ -12390,7 +12390,7 @@ _08124BDA:
.align 2, 0
_08124BF8: .4byte gSaveBlock1Ptr
_08124BFC:
- ldr r0, _08124C18 @ =gUnknown_2036DFC
+ ldr r0, _08124C18 @ =gMapHeader
_08124BFE:
ldrb r0, [r0, 0x14]
_08124C00:
@@ -12404,7 +12404,7 @@ _08124C00:
pop {r0}
bx r0
.align 2, 0
-_08124C18: .4byte gUnknown_2036DFC
+_08124C18: .4byte gMapHeader
thumb_func_end sub_8124BB0
thumb_func_start sub_8124C1C
diff --git a/asm/quest_log.s b/asm/quest_log.s
index fc167d660..7526b69bd 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -3046,7 +3046,7 @@ sub_8111FCC: @ 8111FCC
cmp r0, 0x40
beq _0811200E
ldr r0, _08112030 @ =gStringVar1
- ldr r1, _08112034 @ =gUnknown_2036DFC
+ ldr r1, _08112034 @ =gMapHeader
ldrb r1, [r1, 0x14]
bl sub_80C4DF8
ldr r0, _08112038 @ =gStringVar4
@@ -3069,7 +3069,7 @@ _08112024: .4byte gUnknown_3005090
_08112028: .4byte gUnknown_2037AB8
_0811202C: .4byte gUnknown_203AE94
_08112030: .4byte gStringVar1
-_08112034: .4byte gUnknown_2036DFC
+_08112034: .4byte gMapHeader
_08112038: .4byte gStringVar4
_0811203C: .4byte gUnknown_841B073
_08112040: .4byte sub_8112044
@@ -10263,7 +10263,7 @@ sub_8115798: @ 8115798
ldrb r0, [r4]
cmp r0, 0
beq _081157C6
- ldr r0, _081157D8 @ =gUnknown_2036DFC
+ ldr r0, _081157D8 @ =gMapHeader
ldrb r1, [r0, 0x14]
mov r0, sp
strh r1, [r0]
@@ -10280,7 +10280,7 @@ _081157C6:
.align 2, 0
_081157D0: .4byte gUnknown_203ADFA
_081157D4: .4byte gUnknown_203B049
-_081157D8: .4byte gUnknown_2036DFC
+_081157D8: .4byte gMapHeader
thumb_func_end sub_8115798
thumb_func_start sub_81157DC
diff --git a/asm/region_map.s b/asm/region_map.s
index 6af9eec81..83b897991 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -291,7 +291,7 @@ _080C0022:
_080C0058:
movs r7, 0
movs r1, 0
- ldr r2, _080C00B8 @ =gUnknown_2036DFC
+ ldr r2, _080C00B8 @ =gMapHeader
ldrb r0, [r2, 0x14]
ldr r3, _080C00A4 @ =gUnknown_20399D4
mov r8, r3
@@ -332,7 +332,7 @@ _080C00A8: .4byte 0x00004797
_080C00AC: .4byte gUnknown_83F1B00
_080C00B0: .4byte 0x00004796
_080C00B4: .4byte 0x00000845
-_080C00B8: .4byte gUnknown_2036DFC
+_080C00B8: .4byte gMapHeader
_080C00BC: .4byte gUnknown_83F1AA4
_080C00C0:
adds r0, r3, 0x1
@@ -7445,7 +7445,7 @@ _080C3B60:
_080C3B84:
ldr r0, _080C3BA0 @ =gUnknown_20399E4
ldr r2, [r0]
- ldr r1, _080C3BA4 @ =gUnknown_2036DFC
+ ldr r1, _080C3BA4 @ =gMapHeader
ldrb r0, [r1, 0x14]
strh r0, [r2, 0x14]
ldr r0, [r1]
@@ -7459,7 +7459,7 @@ _080C3B84:
b _080C3C9A
.align 2, 0
_080C3BA0: .4byte gUnknown_20399E4
-_080C3BA4: .4byte gUnknown_2036DFC
+_080C3BA4: .4byte gMapHeader
_080C3BA8: .4byte gSaveBlock1Ptr
_080C3BAC:
ldr r4, _080C3BE8 @ =gSaveBlock1Ptr
@@ -7526,7 +7526,7 @@ _080C3C28: .4byte gUnknown_20399E4
_080C3C2C:
ldr r4, _080C3C5C @ =gUnknown_20399E4
ldr r0, [r4]
- ldr r1, _080C3C60 @ =gUnknown_2036DFC
+ ldr r1, _080C3C60 @ =gMapHeader
ldrb r1, [r1, 0x14]
strh r1, [r0, 0x14]
cmp r1, 0xC4
@@ -7548,7 +7548,7 @@ _080C3C2C:
b _080C3C8E
.align 2, 0
_080C3C5C: .4byte gUnknown_20399E4
-_080C3C60: .4byte gUnknown_2036DFC
+_080C3C60: .4byte gMapHeader
_080C3C64: .4byte gSaveBlock1Ptr
_080C3C68:
ldr r0, _080C3D30 @ =gSaveBlock1Ptr
diff --git a/asm/rom6.s b/asm/rom6.s
index 18eb03946..f15c1f1d1 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -93,7 +93,7 @@ task08_080C9820: @ 80C9820
cmp r0, 0
beq _080C98A2
_080C9856:
- ldr r0, _080C987C @ =gUnknown_2036DFC
+ ldr r0, _080C987C @ =gMapHeader
ldrb r0, [r0, 0x17]
cmp r0, 0x5
bne _080C9888
@@ -109,7 +109,7 @@ _080C9856:
.align 2, 0
_080C9874: .4byte gUnknown_2037078
_080C9878: .4byte gUnknown_2036E38
-_080C987C: .4byte gUnknown_2036DFC
+_080C987C: .4byte gMapHeader
_080C9880: .4byte gUnknown_3005090
_080C9884: .4byte sub_80C98FC
_080C9888:
diff --git a/asm/save_menu_util.s b/asm/save_menu_util.s
index 547a9bc05..129d08921 100644
--- a/asm/save_menu_util.s
+++ b/asm/save_menu_util.s
@@ -105,13 +105,13 @@ _080F8076:
.align 2, 0
_080F8094: .4byte gSaveBlock2Ptr
_080F8098:
- ldr r0, _080F80A4 @ =gUnknown_2036DFC
+ ldr r0, _080F80A4 @ =gMapHeader
ldrb r1, [r0, 0x14]
adds r0, r5, 0
bl sub_80C4DF8
b _080F80D8
.align 2, 0
-_080F80A4: .4byte gUnknown_2036DFC
+_080F80A4: .4byte gMapHeader
_080F80A8:
movs r4, 0x82
lsls r4, 4
diff --git a/asm/script.s b/asm/script.s
deleted file mode 100644
index 65ef2028e..000000000
--- a/asm/script.s
+++ /dev/null
@@ -1,1092 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start InitScriptContext
-InitScriptContext: @ 80697AC
- push {lr}
- adds r3, r0, 0
- movs r0, 0
- strb r0, [r3, 0x1]
- str r0, [r3, 0x8]
- strb r0, [r3]
- str r0, [r3, 0x4]
- str r1, [r3, 0x5C]
- str r2, [r3, 0x60]
- movs r2, 0
- movs r1, 0x3
- adds r0, r3, 0
- adds r0, 0x70
-_080697C6:
- str r2, [r0]
- subs r0, 0x4
- subs r1, 0x1
- cmp r1, 0
- bge _080697C6
- adds r1, r3, 0
- adds r1, 0xC
- movs r2, 0
- adds r0, r3, 0
- adds r0, 0x58
-_080697DA:
- str r2, [r0]
- subs r0, 0x4
- cmp r0, r1
- bge _080697DA
- pop {r0}
- bx r0
- thumb_func_end InitScriptContext
-
- thumb_func_start SetupBytecodeScript
-SetupBytecodeScript: @ 80697E8
- str r1, [r0, 0x8]
- movs r1, 0x1
- strb r1, [r0, 0x1]
- movs r0, 0x1
- bx lr
- thumb_func_end SetupBytecodeScript
-
- thumb_func_start SetupNativeScript
-SetupNativeScript: @ 80697F4
- movs r2, 0x2
- strb r2, [r0, 0x1]
- str r1, [r0, 0x4]
- bx lr
- thumb_func_end SetupNativeScript
-
- thumb_func_start StopScript
-StopScript: @ 80697FC
- movs r1, 0
- strb r1, [r0, 0x1]
- str r1, [r0, 0x8]
- bx lr
- thumb_func_end StopScript
-
- thumb_func_start sub_8069804
-sub_8069804: @ 8069804
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1
- beq _08069842
- cmp r0, 0x1
- bgt _08069818
- cmp r0, 0
- beq _08069834
- b _0806987A
-_08069818:
- cmp r0, 0x2
- bne _0806987A
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _0806983E
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806987A
- strb r0, [r4, 0x1]
- b _0806987A
-_08069832:
- strb r2, [r4, 0x1]
-_08069834:
- movs r0, 0
- b _0806987C
-_08069838:
- movs r0, 0
- strb r0, [r4, 0x1]
- b _0806987C
-_0806983E:
- movs r0, 0x1
- strb r0, [r4, 0x1]
-_08069842:
- ldr r2, [r4, 0x8]
- cmp r2, 0
- beq _08069832
- ldr r0, _08069854 @ =gUnknown_83A7244
- ldr r0, [r0]
- cmp r2, r0
- bne _08069858
-_08069850:
- swi 0x2
- b _08069850
- .align 2, 0
-_08069854: .4byte gUnknown_83A7244
-_08069858:
- ldrb r1, [r2]
- adds r0, r2, 0x1
- str r0, [r4, 0x8]
- lsls r1, 2
- ldr r0, [r4, 0x5C]
- adds r1, r0, r1
- ldr r0, [r4, 0x60]
- cmp r1, r0
- bcs _08069838
- ldr r1, [r1]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08069842
-_0806987A:
- movs r0, 0x1
-_0806987C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8069804
-
- thumb_func_start ScriptPush
-ScriptPush: @ 8069884
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- ldrb r1, [r2]
- adds r0, r1, 0x1
- cmp r0, 0x13
- bgt _080698A6
- lsls r0, r1, 2
- adds r1, r2, 0
- adds r1, 0xC
- adds r1, r0
- str r3, [r1]
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r0, 0
- b _080698A8
-_080698A6:
- movs r0, 0x1
-_080698A8:
- pop {r1}
- bx r1
- thumb_func_end ScriptPush
-
- thumb_func_start ScriptPop
-ScriptPop: @ 80698AC
- push {lr}
- adds r2, r0, 0
- ldrb r0, [r2]
- cmp r0, 0
- beq _080698C8
- subs r0, 0x1
- strb r0, [r2]
- ldrb r1, [r2]
- lsls r1, 2
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1
- ldr r0, [r0]
- b _080698CA
-_080698C8:
- movs r0, 0
-_080698CA:
- pop {r1}
- bx r1
- thumb_func_end ScriptPop
-
- thumb_func_start ScriptJump
-ScriptJump: @ 80698D0
- str r1, [r0, 0x8]
- bx lr
- thumb_func_end ScriptJump
-
- thumb_func_start ScriptCall
-ScriptCall: @ 80698D4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, [r4, 0x8]
- bl ScriptPush
- str r5, [r4, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ScriptCall
-
- thumb_func_start ScriptReturn
-ScriptReturn: @ 80698E8
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptPop
- str r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ScriptReturn
-
- thumb_func_start ScriptReadHalfword
-ScriptReadHalfword: @ 80698F8
- adds r3, r0, 0
- ldr r2, [r3, 0x8]
- ldrb r0, [r2]
- adds r2, 0x1
- str r2, [r3, 0x8]
- ldrb r1, [r2]
- lsls r1, 8
- orrs r0, r1
- adds r2, 0x1
- str r2, [r3, 0x8]
- bx lr
- thumb_func_end ScriptReadHalfword
-
- thumb_func_start ScriptReadWord
-ScriptReadWord: @ 8069910
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r0, [r3, 0x8]
- ldrb r6, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldrb r5, [r0]
- adds r2, r0, 0x1
- str r2, [r3, 0x8]
- ldrb r4, [r0, 0x1]
- adds r1, r2, 0x1
- str r1, [r3, 0x8]
- ldrb r0, [r2, 0x1]
- adds r1, 0x1
- str r1, [r3, 0x8]
- lsls r0, 8
- adds r0, r4
- lsls r0, 8
- adds r0, r5
- lsls r0, 8
- adds r0, r6
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ScriptReadWord
-
- thumb_func_start ScriptContext2_Enable
-ScriptContext2_Enable: @ 8069940
- ldr r1, _08069948 @ =gUnknown_3000F9C
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08069948: .4byte gUnknown_3000F9C
- thumb_func_end ScriptContext2_Enable
-
- thumb_func_start ScriptContext2_Disable
-ScriptContext2_Disable: @ 806994C
- ldr r1, _08069954 @ =gUnknown_3000F9C
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08069954: .4byte gUnknown_3000F9C
- thumb_func_end ScriptContext2_Disable
-
- thumb_func_start ScriptContext2_IsEnabled
-ScriptContext2_IsEnabled: @ 8069958
- ldr r0, _08069960 @ =gUnknown_3000F9C
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08069960: .4byte gUnknown_3000F9C
- thumb_func_end ScriptContext2_IsEnabled
-
- thumb_func_start sub_8069964
-sub_8069964: @ 8069964
- ldr r1, _0806996C @ =gUnknown_3000FA0
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0806996C: .4byte gUnknown_3000FA0
- thumb_func_end sub_8069964
-
- thumb_func_start sub_8069970
-sub_8069970: @ 8069970
- ldr r1, _08069978 @ =gUnknown_3000FA0
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08069978: .4byte gUnknown_3000FA0
- thumb_func_end sub_8069970
-
- thumb_func_start sub_806997C
-sub_806997C: @ 806997C
- push {lr}
- ldr r0, _0806998C @ =gUnknown_3000FA0
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08069990
- movs r0, 0
- b _08069992
- .align 2, 0
-_0806998C: .4byte gUnknown_3000FA0
-_08069990:
- movs r0, 0x1
-_08069992:
- pop {r1}
- bx r1
- thumb_func_end sub_806997C
-
- thumb_func_start sub_8069998
-sub_8069998: @ 8069998
- ldr r1, _080699A0 @ =gUnknown_3000F9F
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080699A0: .4byte gUnknown_3000F9F
- thumb_func_end sub_8069998
-
- thumb_func_start sub_80699A4
-sub_80699A4: @ 80699A4
- ldr r1, _080699AC @ =gUnknown_3000F9F
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080699AC: .4byte gUnknown_3000F9F
- thumb_func_end sub_80699A4
-
- thumb_func_start sub_80699B0
-sub_80699B0: @ 80699B0
- ldr r0, _080699B8 @ =gUnknown_3000F9F
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080699B8: .4byte gUnknown_3000F9F
- thumb_func_end sub_80699B0
-
- thumb_func_start sub_80699BC
-sub_80699BC: @ 80699BC
- ldr r1, _080699C4 @ =gUnknown_3000F9D
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080699C4: .4byte gUnknown_3000F9D
- thumb_func_end sub_80699BC
-
- thumb_func_start sub_80699C8
-sub_80699C8: @ 80699C8
- ldr r1, _080699D0 @ =gUnknown_3000F9D
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080699D0: .4byte gUnknown_3000F9D
- thumb_func_end sub_80699C8
-
- thumb_func_start sub_80699D4
-sub_80699D4: @ 80699D4
- ldr r0, _080699DC @ =gUnknown_3000F9D
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080699DC: .4byte gUnknown_3000F9D
- thumb_func_end sub_80699D4
-
- thumb_func_start sub_80699E0
-sub_80699E0: @ 80699E0
- ldr r1, _080699F0 @ =gUnknown_20370A0
- movs r0, 0x6
- strb r0, [r1]
- ldr r1, _080699F4 @ =gUnknown_3000F9E
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080699F0: .4byte gUnknown_20370A0
-_080699F4: .4byte gUnknown_3000F9E
- thumb_func_end sub_80699E0
-
- thumb_func_start sub_80699F8
-sub_80699F8: @ 80699F8
- ldr r1, _08069A00 @ =gUnknown_3000F9E
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08069A00: .4byte gUnknown_3000F9E
- thumb_func_end sub_80699F8
-
- thumb_func_start sub_8069A04
-sub_8069A04: @ 8069A04
- push {lr}
- ldr r0, _08069A14 @ =gUnknown_3000F9E
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08069A18
- movs r0, 0
- b _08069A1A
- .align 2, 0
-_08069A14: .4byte gUnknown_3000F9E
-_08069A18:
- movs r0, 0x1
-_08069A1A:
- pop {r1}
- bx r1
- thumb_func_end sub_8069A04
-
- thumb_func_start sub_8069A20
-sub_8069A20: @ 8069A20
- ldr r1, _08069A28 @ =gUnknown_3000FA1
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08069A28: .4byte gUnknown_3000FA1
- thumb_func_end sub_8069A20
-
- thumb_func_start sub_8069A2C
-sub_8069A2C: @ 8069A2C
- ldr r1, _08069A34 @ =gUnknown_3000FA1
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08069A34: .4byte gUnknown_3000FA1
- thumb_func_end sub_8069A2C
-
- thumb_func_start sub_8069A38
-sub_8069A38: @ 8069A38
- push {lr}
- ldr r0, _08069A48 @ =gUnknown_3000FA1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08069A4C
- movs r0, 0
- b _08069A4E
- .align 2, 0
-_08069A48: .4byte gUnknown_3000FA1
-_08069A4C:
- movs r0, 0x1
-_08069A4E:
- pop {r1}
- bx r1
- thumb_func_end sub_8069A38
-
- thumb_func_start sub_8069A54
-sub_8069A54: @ 8069A54
- push {lr}
- bl sub_80CBDE8
- bl sub_8069A2C
- pop {r0}
- bx r0
- thumb_func_end sub_8069A54
-
- thumb_func_start ScriptContext1_IsScriptSetUp
-ScriptContext1_IsScriptSetUp: @ 8069A64
- push {lr}
- ldr r0, _08069A74 @ =gUnknown_3000EA8
- ldrb r0, [r0]
- cmp r0, 0
- beq _08069A78
- movs r0, 0
- b _08069A7A
- .align 2, 0
-_08069A74: .4byte gUnknown_3000EA8
-_08069A78:
- movs r0, 0x1
-_08069A7A:
- pop {r1}
- bx r1
- thumb_func_end ScriptContext1_IsScriptSetUp
-
- thumb_func_start ScriptContext1_Init
-ScriptContext1_Init: @ 8069A80
- push {lr}
- ldr r0, _08069A98 @ =gUnknown_3000EB0
- ldr r1, _08069A9C @ =gUnknown_815F9B4
- ldr r2, _08069AA0 @ =gUnknown_815FD08
- bl InitScriptContext
- ldr r1, _08069AA4 @ =gUnknown_3000EA8
- movs r0, 0x2
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08069A98: .4byte gUnknown_3000EB0
-_08069A9C: .4byte gUnknown_815F9B4
-_08069AA0: .4byte gUnknown_815FD08
-_08069AA4: .4byte gUnknown_3000EA8
- thumb_func_end ScriptContext1_Init
-
- thumb_func_start ScriptContext2_RunScript
-ScriptContext2_RunScript: @ 8069AA8
- push {r4,lr}
- ldr r4, _08069ACC @ =gUnknown_3000EA8
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _08069ADC
- cmp r0, 0x1
- beq _08069ADC
- bl ScriptContext2_Enable
- ldr r0, _08069AD0 @ =gUnknown_3000EB0
- bl sub_8069804
- lsls r0, 24
- cmp r0, 0
- beq _08069AD4
- movs r0, 0x1
- b _08069ADE
- .align 2, 0
-_08069ACC: .4byte gUnknown_3000EA8
-_08069AD0: .4byte gUnknown_3000EB0
-_08069AD4:
- movs r0, 0x2
- strb r0, [r4]
- bl ScriptContext2_Disable
-_08069ADC:
- movs r0, 0
-_08069ADE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScriptContext2_RunScript
-
- thumb_func_start ScriptContext1_SetupScript
-ScriptContext1_SetupScript: @ 8069AE4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_80699F8
- bl sub_80699C8
- bl sub_8069970
- ldr r4, _08069B18 @ =gUnknown_3000EB0
- ldr r1, _08069B1C @ =gUnknown_815F9B4
- ldr r2, _08069B20 @ =gUnknown_815FD08
- adds r0, r4, 0
- bl InitScriptContext
- adds r0, r4, 0
- adds r1, r5, 0
- bl SetupBytecodeScript
- bl ScriptContext2_Enable
- ldr r1, _08069B24 @ =gUnknown_3000EA8
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069B18: .4byte gUnknown_3000EB0
-_08069B1C: .4byte gUnknown_815F9B4
-_08069B20: .4byte gUnknown_815FD08
-_08069B24: .4byte gUnknown_3000EA8
- thumb_func_end ScriptContext1_SetupScript
-
- thumb_func_start ScriptContext1_Stop
-ScriptContext1_Stop: @ 8069B28
- ldr r1, _08069B30 @ =gUnknown_3000EA8
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08069B30: .4byte gUnknown_3000EA8
- thumb_func_end ScriptContext1_Stop
-
- thumb_func_start EnableBothScriptContexts
-EnableBothScriptContexts: @ 8069B34
- push {lr}
- ldr r1, _08069B44 @ =gUnknown_3000EA8
- movs r0, 0
- strb r0, [r1]
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_08069B44: .4byte gUnknown_3000EA8
- thumb_func_end EnableBothScriptContexts
-
- thumb_func_start ScriptContext2_RunNewScript
-ScriptContext2_RunNewScript: @ 8069B48
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08069B74 @ =gUnknown_3000F28
- ldr r1, _08069B78 @ =gUnknown_815F9B4
- ldr r2, _08069B7C @ =gUnknown_815FD08
- adds r0, r4, 0
- bl InitScriptContext
- adds r0, r4, 0
- adds r1, r5, 0
- bl SetupBytecodeScript
-_08069B60:
- ldr r0, _08069B74 @ =gUnknown_3000F28
- bl sub_8069804
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08069B60
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069B74: .4byte gUnknown_3000F28
-_08069B78: .4byte gUnknown_815F9B4
-_08069B7C: .4byte gUnknown_815FD08
- thumb_func_end ScriptContext2_RunNewScript
-
- thumb_func_start mapheader_get_tagged_pointer
-mapheader_get_tagged_pointer: @ 8069B80
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _08069B98 @ =gUnknown_2036DFC
- ldr r2, [r0, 0x8]
- cmp r2, 0
- beq _08069B94
-_08069B8E:
- ldrb r0, [r2]
- cmp r0, 0
- bne _08069B9C
-_08069B94:
- movs r0, 0
- b _08069BBA
- .align 2, 0
-_08069B98: .4byte gUnknown_2036DFC
-_08069B9C:
- cmp r0, r1
- beq _08069BA4
- adds r2, 0x5
- b _08069B8E
-_08069BA4:
- adds r2, 0x1
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- adds r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- adds r0, r1
-_08069BBA:
- pop {r1}
- bx r1
- thumb_func_end mapheader_get_tagged_pointer
-
- thumb_func_start mapheader_run_script_by_tag
-mapheader_run_script_by_tag: @ 8069BC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl mapheader_get_tagged_pointer
- cmp r0, 0
- beq _08069BD2
- bl ScriptContext2_RunNewScript
-_08069BD2:
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_script_by_tag
-
- thumb_func_start mapheader_get_first_match_from_tagged_ptr_list
-mapheader_get_first_match_from_tagged_ptr_list: @ 8069BD8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- bl mapheader_get_tagged_pointer
- adds r6, r0, 0
- cmp r6, 0
- beq _08069BF4
-_08069BE8:
- ldrb r1, [r6]
- ldrb r0, [r6, 0x1]
- lsls r0, 8
- orrs r1, r0
- cmp r1, 0
- bne _08069BF8
-_08069BF4:
- movs r0, 0
- b _08069C32
-_08069BF8:
- adds r6, 0x2
- ldrb r5, [r6]
- ldrb r0, [r6, 0x1]
- lsls r0, 8
- orrs r5, r0
- adds r6, 0x2
- adds r0, r1, 0
- bl VarGet
- adds r4, r0, 0
- adds r0, r5, 0
- bl VarGet
- lsls r4, 16
- lsls r0, 16
- cmp r4, r0
- beq _08069C1E
- adds r6, 0x4
- b _08069BE8
-_08069C1E:
- ldrb r0, [r6]
- ldrb r1, [r6, 0x1]
- lsls r1, 8
- adds r0, r1
- ldrb r1, [r6, 0x2]
- lsls r1, 16
- adds r0, r1
- ldrb r1, [r6, 0x3]
- lsls r1, 24
- adds r0, r1
-_08069C32:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end mapheader_get_first_match_from_tagged_ptr_list
-
- thumb_func_start mapheader_run_script_with_tag_x1
-mapheader_run_script_with_tag_x1: @ 8069C38
- push {lr}
- movs r0, 0x1
- bl mapheader_run_script_by_tag
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_script_with_tag_x1
-
- thumb_func_start mapheader_run_script_with_tag_x3
-mapheader_run_script_with_tag_x3: @ 8069C44
- push {lr}
- movs r0, 0x3
- bl mapheader_run_script_by_tag
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_script_with_tag_x3
-
- thumb_func_start mapheader_run_script_with_tag_x5
-mapheader_run_script_with_tag_x5: @ 8069C50
- push {lr}
- movs r0, 0x5
- bl mapheader_run_script_by_tag
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_script_with_tag_x5
-
- thumb_func_start mapheader_run_script_with_tag_x7
-mapheader_run_script_with_tag_x7: @ 8069C5C
- push {lr}
- movs r0, 0x7
- bl mapheader_run_script_by_tag
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_script_with_tag_x7
-
- thumb_func_start mapheader_run_script_with_tag_x6
-mapheader_run_script_with_tag_x6: @ 8069C68
- push {lr}
- movs r0, 0x6
- bl mapheader_run_script_by_tag
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_script_with_tag_x6
-
- thumb_func_start sub_8069C74
-sub_8069C74: @ 8069C74
- push {lr}
- ldr r0, _08069C90 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _08069C94
- movs r0, 0x2
- bl mapheader_get_first_match_from_tagged_ptr_list
- cmp r0, 0
- beq _08069C94
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _08069C96
- .align 2, 0
-_08069C90: .4byte gUnknown_203ADFA
-_08069C94:
- movs r0, 0
-_08069C96:
- pop {r1}
- bx r1
- thumb_func_end sub_8069C74
-
- thumb_func_start mapheader_run_first_tag4_script_list_match
-mapheader_run_first_tag4_script_list_match: @ 8069C9C
- push {lr}
- movs r0, 0x4
- bl mapheader_get_first_match_from_tagged_ptr_list
- cmp r0, 0
- beq _08069CAC
- bl ScriptContext2_RunNewScript
-_08069CAC:
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_first_tag4_script_list_match
-
- thumb_func_start CalculateRamScriptChecksum
-CalculateRamScriptChecksum: @ 8069CB0
- push {lr}
- ldr r0, _08069CCC @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08069CD0 @ =0x00003620
- adds r0, r1
- movs r1, 0xFA
- lsls r1, 2
- bl CalcCRC16WithTable
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_08069CCC: .4byte gSaveBlock1Ptr
-_08069CD0: .4byte 0x00003620
- thumb_func_end CalculateRamScriptChecksum
-
- thumb_func_start ClearRamScript
-ClearRamScript: @ 8069CD4
- push {lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r0, _08069CF4 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, _08069CF8 @ =0x0000361c
- adds r1, r0
- ldr r2, _08069CFC @ =0x050000fb
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08069CF4: .4byte gSaveBlock1Ptr
-_08069CF8: .4byte 0x0000361c
-_08069CFC: .4byte 0x050000fb
- thumb_func_end ClearRamScript
-
- thumb_func_start InitRamScript
-InitRamScript: @ 8069D00
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- ldr r0, [sp, 0x24]
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08069D64 @ =gSaveBlock1Ptr
- mov r10, r0
- ldr r5, [r0]
- ldr r1, _08069D68 @ =0x00003620
- adds r4, r5, r1
- bl ClearRamScript
- ldr r0, _08069D6C @ =0x000003e3
- cmp r8, r0
- bhi _08069D78
- movs r0, 0x33
- strb r0, [r4]
- mov r2, r9
- strb r2, [r4, 0x1]
- strb r7, [r4, 0x2]
- strb r6, [r4, 0x3]
- ldr r1, _08069D70 @ =0x00003624
- adds r0, r5, r1
- ldr r1, [sp]
- mov r2, r8
- bl memcpy
- bl CalculateRamScriptChecksum
- mov r2, r10
- ldr r1, [r2]
- ldr r2, _08069D74 @ =0x0000361c
- adds r1, r2
- str r0, [r1]
- movs r0, 0x1
- b _08069D7A
- .align 2, 0
-_08069D64: .4byte gSaveBlock1Ptr
-_08069D68: .4byte 0x00003620
-_08069D6C: .4byte 0x000003e3
-_08069D70: .4byte 0x00003624
-_08069D74: .4byte 0x0000361c
-_08069D78:
- movs r0, 0
-_08069D7A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end InitRamScript
-
- thumb_func_start GetRamScript
-GetRamScript: @ 8069D8C
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r6, _08069DDC @ =gSaveBlock1Ptr
- ldr r5, [r6]
- ldr r0, _08069DE0 @ =0x00003620
- adds r2, r5, r0
- ldr r7, _08069DE4 @ =gUnknown_20370A4
- movs r0, 0
- str r0, [r7]
- ldrb r0, [r2]
- cmp r0, 0x33
- bne _08069DF4
- ldrb r1, [r2, 0x1]
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- cmp r1, r0
- bne _08069DF4
- ldrb r1, [r2, 0x2]
- movs r0, 0x5
- ldrsb r0, [r5, r0]
- cmp r1, r0
- bne _08069DF4
- ldrb r0, [r2, 0x3]
- cmp r0, r3
- bne _08069DF4
- bl CalculateRamScriptChecksum
- ldr r1, [r6]
- ldr r2, _08069DE8 @ =0x0000361c
- adds r1, r2
- ldr r1, [r1]
- cmp r0, r1
- bne _08069DF0
- str r4, [r7]
- ldr r1, _08069DEC @ =0x00003624
- adds r0, r5, r1
- b _08069DF6
- .align 2, 0
-_08069DDC: .4byte gSaveBlock1Ptr
-_08069DE0: .4byte 0x00003620
-_08069DE4: .4byte gUnknown_20370A4
-_08069DE8: .4byte 0x0000361c
-_08069DEC: .4byte 0x00003624
-_08069DF0:
- bl ClearRamScript
-_08069DF4:
- adds r0, r4, 0
-_08069DF6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetRamScript
-
- thumb_func_start sub_8069DFC
-sub_8069DFC: @ 8069DFC
- push {r4,lr}
- ldr r4, _08069E34 @ =gSaveBlock1Ptr
- ldr r0, [r4]
- ldr r2, _08069E38 @ =0x00003620
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x33
- bne _08069E40
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- bne _08069E40
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFF
- bne _08069E40
- ldrb r0, [r1, 0x3]
- cmp r0, 0xFF
- bne _08069E40
- bl CalculateRamScriptChecksum
- ldr r1, [r4]
- ldr r2, _08069E3C @ =0x0000361c
- adds r1, r2
- ldr r1, [r1]
- cmp r0, r1
- bne _08069E40
- movs r0, 0x1
- b _08069E42
- .align 2, 0
-_08069E34: .4byte gSaveBlock1Ptr
-_08069E38: .4byte 0x00003620
-_08069E3C: .4byte 0x0000361c
-_08069E40:
- movs r0, 0
-_08069E42:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8069DFC
-
- thumb_func_start sub_8069E48
-sub_8069E48: @ 8069E48
- push {r4-r6,lr}
- ldr r6, _08069E88 @ =gSaveBlock1Ptr
- ldr r5, [r6]
- ldr r0, _08069E8C @ =0x00003620
- adds r4, r5, r0
- bl sub_8143FC8
- cmp r0, 0
- beq _08069E9C
- ldrb r0, [r4]
- cmp r0, 0x33
- bne _08069E9C
- ldrb r0, [r4, 0x1]
- cmp r0, 0xFF
- bne _08069E9C
- ldrb r0, [r4, 0x2]
- cmp r0, 0xFF
- bne _08069E9C
- ldrb r0, [r4, 0x3]
- cmp r0, 0xFF
- bne _08069E9C
- bl CalculateRamScriptChecksum
- ldr r1, [r6]
- ldr r2, _08069E90 @ =0x0000361c
- adds r1, r2
- ldr r1, [r1]
- cmp r0, r1
- bne _08069E98
- ldr r1, _08069E94 @ =0x00003624
- adds r0, r5, r1
- b _08069E9E
- .align 2, 0
-_08069E88: .4byte gSaveBlock1Ptr
-_08069E8C: .4byte 0x00003620
-_08069E90: .4byte 0x0000361c
-_08069E94: .4byte 0x00003624
-_08069E98:
- bl ClearRamScript
-_08069E9C:
- movs r0, 0
-_08069E9E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8069E48
-
- thumb_func_start sub_8069EA4
-sub_8069EA4: @ 8069EA4
- push {lr}
- sub sp, 0x4
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08069ECC @ =0x000003e3
- cmp r1, r0
- bls _08069EB6
- adds r1, r0, 0
-_08069EB6:
- movs r0, 0xFF
- str r0, [sp]
- adds r0, r2, 0
- movs r2, 0xFF
- movs r3, 0xFF
- bl InitRamScript
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08069ECC: .4byte 0x000003e3
- thumb_func_end sub_8069EA4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/shop.s b/asm/shop.s
index d21b9bcbd..614094ce1 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -1598,7 +1598,7 @@ sub_809B778: @ 809B778
mov r5, r8
push {r5-r7}
sub sp, 0x4
- ldr r0, _0809B804 @ =gUnknown_2036DFC
+ ldr r0, _0809B804 @ =gMapHeader
ldr r0, [r0]
mov r9, r0
mov r4, sp
@@ -1661,7 +1661,7 @@ _0809B7B2:
bl sub_809B850
b _0809B822
.align 2, 0
-_0809B804: .4byte gUnknown_2036DFC
+_0809B804: .4byte gMapHeader
_0809B808: .4byte 0x0000027f
_0809B80C:
mov r2, r9
@@ -2840,7 +2840,7 @@ sub_809C164: @ 809C164
movs r1, 0
movs r2, 0x18
bl memset
- ldr r0, _0809C19C @ =gUnknown_2036DFC
+ ldr r0, _0809C19C @ =gMapHeader
ldrb r0, [r0, 0x14]
strb r0, [r4, 0x8]
strb r0, [r4, 0x14]
@@ -2850,7 +2850,7 @@ sub_809C164: @ 809C164
.align 2, 0
_0809C194: .4byte EnableBothScriptContexts
_0809C198: .4byte gUnknown_203996C
-_0809C19C: .4byte gUnknown_2036DFC
+_0809C19C: .4byte gMapHeader
thumb_func_end sub_809C164
thumb_func_start sub_809C1A0
diff --git a/asm/tileset_anims.s b/asm/tileset_anims.s
index 80328c533..37280ab70 100644
--- a/asm/tileset_anims.s
+++ b/asm/tileset_anims.s
@@ -195,7 +195,7 @@ cur_mapheader_run_tileset1_func: @ 807002C
ldr r1, _08070060 @ =gUnknown_3000FB8
movs r0, 0
str r0, [r1]
- ldr r0, _08070064 @ =gUnknown_2036DFC
+ ldr r0, _08070064 @ =gMapHeader
ldr r0, [r0]
ldr r0, [r0, 0x10]
cmp r0, 0
@@ -211,7 +211,7 @@ _08070052:
_08070058: .4byte gUnknown_3000FAE
_0807005C: .4byte gUnknown_3000FB0
_08070060: .4byte gUnknown_3000FB8
-_08070064: .4byte gUnknown_2036DFC
+_08070064: .4byte gMapHeader
thumb_func_end cur_mapheader_run_tileset1_func
thumb_func_start cur_mapheader_run_tileset2_func
@@ -225,7 +225,7 @@ cur_mapheader_run_tileset2_func: @ 8070068
ldr r1, _0807009C @ =gUnknown_3000FBC
movs r0, 0
str r0, [r1]
- ldr r0, _080700A0 @ =gUnknown_2036DFC
+ ldr r0, _080700A0 @ =gMapHeader
ldr r0, [r0]
ldr r0, [r0, 0x14]
cmp r0, 0
@@ -241,7 +241,7 @@ _0807008E:
_08070094: .4byte gUnknown_3000FB2
_08070098: .4byte gUnknown_3000FB4
_0807009C: .4byte gUnknown_3000FBC
-_080700A0: .4byte gUnknown_2036DFC
+_080700A0: .4byte gMapHeader
thumb_func_end cur_mapheader_run_tileset2_func
thumb_func_start sub_80700A4
diff --git a/asm/trainer_tower.s b/asm/trainer_tower.s
index dd5ad2c0c..e9071a0dd 100644
--- a/asm/trainer_tower.s
+++ b/asm/trainer_tower.s
@@ -653,7 +653,7 @@ sub_815DC8C: @ 815DC8C
ldr r0, _0815DCC8 @ =0x00001f0c
bl AllocZeroed
str r0, [r4]
- ldr r1, _0815DCCC @ =gUnknown_2036DFC
+ ldr r1, _0815DCCC @ =gMapHeader
ldrb r1, [r1, 0x12]
subs r1, 0x2A
strb r1, [r0]
@@ -669,7 +669,7 @@ _0815DCBC: .4byte gSaveBlock1Ptr
_0815DCC0: .4byte 0x00003d34
_0815DCC4: .4byte gUnknown_203F458
_0815DCC8: .4byte 0x00001f0c
-_0815DCCC: .4byte gUnknown_2036DFC
+_0815DCCC: .4byte gMapHeader
_0815DCD0:
ldr r0, [r4]
ldr r1, _0815DD20 @ =gUnknown_84827AC
@@ -732,7 +732,7 @@ _0815DD40: .4byte gUnknown_203F458
thumb_func_start sub_815DD44
sub_815DD44: @ 815DD44
push {r4,lr}
- ldr r0, _0815DD68 @ =gUnknown_2036DFC
+ ldr r0, _0815DD68 @ =gMapHeader
ldrh r0, [r0, 0x12]
ldr r1, _0815DD6C @ =0xfffffed7
adds r0, r1
@@ -749,7 +749,7 @@ sub_815DD44: @ 815DD44
bl sub_8055D40
b _0815DDA2
.align 2, 0
-_0815DD68: .4byte gUnknown_2036DFC
+_0815DD68: .4byte gMapHeader
_0815DD6C: .4byte 0xfffffed7
_0815DD70: .4byte gUnknown_203F458
_0815DD74: .4byte gUnknown_20370D0
@@ -1380,7 +1380,7 @@ _0815E214: .4byte 0x00003d34
thumb_func_start sub_815E218
sub_815E218: @ 815E218
push {lr}
- ldr r0, _0815E260 @ =gUnknown_2036DFC
+ ldr r0, _0815E260 @ =gMapHeader
ldrh r0, [r0, 0x12]
mov r12, r0
ldr r3, _0815E264 @ =0xfffffed6
@@ -1416,7 +1416,7 @@ sub_815E218: @ 815E218
movs r0, 0
b _0815E280
.align 2, 0
-_0815E260: .4byte gUnknown_2036DFC
+_0815E260: .4byte gMapHeader
_0815E264: .4byte 0xfffffed6
_0815E268: .4byte gSaveBlock1Ptr
_0815E26C: .4byte 0x00003d34
@@ -2234,7 +2234,7 @@ _0815E904: .4byte gUnknown_20370D0
thumb_func_start sub_815E908
sub_815E908: @ 815E908
push {lr}
- ldr r0, _0815E928 @ =gUnknown_2036DFC
+ ldr r0, _0815E928 @ =gMapHeader
ldrh r1, [r0, 0x12]
ldr r0, _0815E92C @ =0x00000129
cmp r1, r0
@@ -2249,7 +2249,7 @@ sub_815E908: @ 815E908
strh r1, [r0]
b _0815E93E
.align 2, 0
-_0815E928: .4byte gUnknown_2036DFC
+_0815E928: .4byte gMapHeader
_0815E92C: .4byte 0x00000129
_0815E930: .4byte 0x00004082
_0815E934: .4byte gUnknown_20370D0
diff --git a/asm/unk_810C3A4.s b/asm/unk_810C3A4.s
index a99a6f78e..1b7288808 100644
--- a/asm/unk_810C3A4.s
+++ b/asm/unk_810C3A4.s
@@ -101,7 +101,7 @@ sub_810C444: @ 810C444
adds r1, r0
mov r8, r1
movs r7, 0
- ldr r0, _0810C4E4 @ =gUnknown_2036DFC
+ ldr r0, _0810C4E4 @ =gMapHeader
ldr r1, [r0, 0x4]
adds r2, r0, 0
ldrb r1, [r1]
@@ -152,7 +152,7 @@ _0810C47A:
bl npc_set_running_behaviour_etc
_0810C4C0:
strb r6, [r5, 0x9]
- ldr r2, _0810C4E4 @ =gUnknown_2036DFC
+ ldr r2, _0810C4E4 @ =gMapHeader
_0810C4C4:
adds r0, r7, 0x1
lsls r0, 24
@@ -170,7 +170,7 @@ _0810C4D2:
bx r0
.align 2, 0
_0810C4E0: .4byte gSaveBlock1Ptr
-_0810C4E4: .4byte gUnknown_2036DFC
+_0810C4E4: .4byte gMapHeader
_0810C4E8: .4byte gUnknown_2036E38
thumb_func_end sub_810C444
diff --git a/asm/vs_seeker.s b/asm/vs_seeker.s
index 9e9ecb341..9d77618fb 100644
--- a/asm/vs_seeker.s
+++ b/asm/vs_seeker.s
@@ -217,7 +217,7 @@ sub_810C808: @ 810C808
strb r1, [r0]
mov r8, r1
mov r9, r1
- ldr r0, _0810C8E0 @ =gUnknown_2036DFC
+ ldr r0, _0810C8E0 @ =gMapHeader
ldr r0, [r0, 0x4]
ldrb r0, [r0]
cmp r8, r0
@@ -287,7 +287,7 @@ _0810C8AC:
adds r5, 0x18
movs r0, 0x1
add r9, r0
- ldr r0, _0810C8E0 @ =gUnknown_2036DFC
+ ldr r0, _0810C8E0 @ =gMapHeader
ldr r0, [r0, 0x4]
ldrb r0, [r0]
cmp r9, r0
@@ -310,7 +310,7 @@ _0810C8BC:
bx r0
.align 2, 0
_0810C8DC: .4byte gSaveBlock1Ptr
-_0810C8E0: .4byte gUnknown_2036DFC
+_0810C8E0: .4byte gMapHeader
_0810C8E4: .4byte gUnknown_203ADB8
_0810C8E8: .4byte gUnknown_2036E38
thumb_func_end sub_810C808
@@ -670,7 +670,7 @@ sub_810CB90: @ 810CB90
beq _0810CC8A
movs r0, 0
mov r8, r0
- ldr r0, _0810CC60 @ =gUnknown_2036DFC
+ ldr r0, _0810CC60 @ =gMapHeader
ldr r0, [r0, 0x4]
ldrb r0, [r0]
cmp r8, r0
@@ -742,7 +742,7 @@ _0810CBDE:
_0810CC54: .4byte gSaveBlock1Ptr
_0810CC58: .4byte gUnknown_845318C
_0810CC5C: .4byte gTrainerBattleOpponent_A
-_0810CC60: .4byte gUnknown_2036DFC
+_0810CC60: .4byte gMapHeader
_0810CC64: .4byte gUnknown_2036E38
_0810CC68: .4byte gUnknown_8453F67
_0810CC6C: .4byte 0x0000063a
@@ -756,7 +756,7 @@ _0810CC78:
adds r6, 0x18
movs r0, 0x1
add r8, r0
- ldr r0, _0810CC9C @ =gUnknown_2036DFC
+ ldr r0, _0810CC9C @ =gMapHeader
ldr r0, [r0, 0x4]
ldrb r0, [r0]
cmp r8, r0
@@ -771,7 +771,7 @@ _0810CC8A:
pop {r0}
bx r0
.align 2, 0
-_0810CC9C: .4byte gUnknown_2036DFC
+_0810CC9C: .4byte gMapHeader
thumb_func_end sub_810CB90
thumb_func_start sub_810CCA0
@@ -1129,7 +1129,7 @@ sub_810CF04: @ 810CF04
lsls r0, 31
cmp r0, 0
beq _0810CF4C
- ldr r0, _0810CF44 @ =gUnknown_2036DFC
+ ldr r0, _0810CF44 @ =gMapHeader
ldr r0, [r0, 0x4]
ldrb r0, [r0]
ldrb r2, [r1, 0x8]
@@ -1149,7 +1149,7 @@ sub_810CF04: @ 810CF04
b _0810CF4E
.align 2, 0
_0810CF40: .4byte gUnknown_2036E38
-_0810CF44: .4byte gUnknown_2036DFC
+_0810CF44: .4byte gMapHeader
_0810CF48: .4byte gSprites
_0810CF4C:
movs r0, 0
diff --git a/data/data.s b/data/data.s
index 746e82819..6f5459f4f 100644
--- a/data/data.s
+++ b/data/data.s
@@ -1464,7 +1464,7 @@ gUnknown_83A7240:: @ 83A7240
.asciz "0"
.align 2
-gUnknown_83A7244:: @ 83A7244
+gNullScriptPtr:: @ 83A7244
.incbin "baserom.gba", 0x3A7244, 0x4
gUnknown_83A7248:: @ 83A7248
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 1af9edab1..6bfa500cc 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -1,9 +1,9 @@
.section script_data, "aw", %progbits
-gUnknown_815F9B4:: @ 815F9B4
+gScriptCmdTable:: @ 815F9B4
.incbin "baserom.gba", 0x15F9B4, 0x354
-gUnknown_815FD08:: @ 815FD08
+gScriptCmdTableEnd:: @ 815FD08
.incbin "baserom.gba", 0x15FD08, 0x4
gUnknown_815FD0C:: @ 815FD0C
diff --git a/include/global.h b/include/global.h
index e5c463c6e..75911b9f2 100644
--- a/include/global.h
+++ b/include/global.h
@@ -474,7 +474,11 @@ struct RecordMixingDayCareMail
struct SaveBlock1
{
- /*0x0000*/ u8 filler[0x3A4C];
+ /*0x0000*/ u8 filler[0x4];
+ /*0x0004*/ struct WarpData location;
+ /*0x000C*/ u8 fillerC[0x3610];
+ /*0x361C*/ struct RamScript ramScript;
+ /*0x3A08*/ u8 filler3A08[0x44];
/*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH];
};
diff --git a/ld_script.txt b/ld_script.txt
index 9996a78aa..c738889d4 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -106,7 +106,7 @@ SECTIONS {
asm/field_message_box.o(.text);
asm/map_obj_lock.o(.text);
asm/text_window_graphics.o(.text);
- asm/script.o(.text);
+ src/script.o(.text);
asm/scrcmd.o(.text);
asm/field_control_avatar.o(.text);
asm/event_data.o(.text);
diff --git a/src/script.c b/src/script.c
new file mode 100644
index 000000000..0c74debb2
--- /dev/null
+++ b/src/script.c
@@ -0,0 +1,554 @@
+#include "global.h"
+#include "script.h"
+#include "event_data.h"
+
+#define RAM_SCRIPT_MAGIC 51
+#define SCRIPT_STACK_SIZE 20
+
+extern u8 gUnknown_203ADFA;
+
+extern void sub_80CBDE8(void); // field_specials
+extern u16 CalcCRC16WithTable(u8 *data, int length); // util
+extern bool32 sub_8143FC8(void); // mevent
+
+enum
+{
+ SCRIPT_MODE_STOPPED,
+ SCRIPT_MODE_BYTECODE,
+ SCRIPT_MODE_NATIVE,
+};
+
+EWRAM_DATA u8 gUnknown_20370A0 = 0;
+EWRAM_DATA u8 *gUnknown_20370A4 = NULL;
+
+// ewram bss
+IWRAM_DATA static u8 sScriptContext1Status;
+IWRAM_DATA static u32 sUnusedVariable1;
+IWRAM_DATA static struct ScriptContext sScriptContext1;
+IWRAM_DATA static u32 sUnusedVariable2;
+IWRAM_DATA static struct ScriptContext sScriptContext2;
+IWRAM_DATA static bool8 sScriptContext2Enabled;
+IWRAM_DATA static u8 gUnknown_3000F9D;
+IWRAM_DATA static u8 gUnknown_3000F9E;
+IWRAM_DATA static u8 gUnknown_3000F9F;
+IWRAM_DATA static u8 gUnknown_3000FA0;
+IWRAM_DATA static u8 gUnknown_3000FA1;
+
+extern ScrCmdFunc gScriptCmdTable[];
+extern ScrCmdFunc gScriptCmdTableEnd[];
+extern void *gNullScriptPtr;
+
+void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd)
+{
+ s32 i;
+
+ ctx->mode = SCRIPT_MODE_STOPPED;
+ ctx->scriptPtr = NULL;
+ ctx->stackDepth = 0;
+ ctx->nativePtr = NULL;
+ ctx->cmdTable = cmdTable;
+ ctx->cmdTableEnd = cmdTableEnd;
+
+ for (i = 0; i < 4; i++)
+ ctx->data[i] = 0;
+
+ for (i = 0; i < SCRIPT_STACK_SIZE; i++)
+ ctx->stack[i] = 0;
+}
+
+u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr)
+{
+ ctx->scriptPtr = ptr;
+ ctx->mode = SCRIPT_MODE_BYTECODE;
+ return 1;
+}
+
+void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void))
+{
+ ctx->mode = SCRIPT_MODE_NATIVE;
+ ctx->nativePtr = ptr;
+}
+
+void StopScript(struct ScriptContext *ctx)
+{
+ ctx->mode = SCRIPT_MODE_STOPPED;
+ ctx->scriptPtr = NULL;
+}
+
+bool8 RunScriptCommand(struct ScriptContext *ctx)
+{
+ // FRLG disabled this check, where-as it is present
+ // in Ruby/Sapphire and Emerald. Why did the programmers
+ // bother to remove a redundant check when it still
+ // exists in Emerald?
+ //if (ctx->mode == SCRIPT_MODE_STOPPED)
+ // return FALSE;
+
+ switch (ctx->mode)
+ {
+ case SCRIPT_MODE_STOPPED:
+ return FALSE;
+ case SCRIPT_MODE_NATIVE:
+ if (ctx->nativePtr)
+ {
+ if (ctx->nativePtr() == TRUE)
+ ctx->mode = SCRIPT_MODE_BYTECODE;
+ return TRUE;
+ }
+ ctx->mode = SCRIPT_MODE_BYTECODE;
+ case SCRIPT_MODE_BYTECODE:
+ while (1)
+ {
+ u8 cmdCode;
+ ScrCmdFunc *cmdFunc;
+
+ if (ctx->scriptPtr == NULL)
+ {
+ ctx->mode = SCRIPT_MODE_STOPPED;
+ return FALSE;
+ }
+
+ if (ctx->scriptPtr == gNullScriptPtr)
+ {
+ while (1)
+ asm("svc 2"); // HALT
+ }
+
+ cmdCode = *(ctx->scriptPtr);
+ ctx->scriptPtr++;
+ cmdFunc = &ctx->cmdTable[cmdCode];
+
+ if (cmdFunc >= ctx->cmdTableEnd)
+ {
+ ctx->mode = SCRIPT_MODE_STOPPED;
+ return FALSE;
+ }
+
+ if ((*cmdFunc)(ctx) == TRUE)
+ return TRUE;
+ }
+ }
+
+ return TRUE;
+}
+
+u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr)
+{
+ if (ctx->stackDepth + 1 >= SCRIPT_STACK_SIZE)
+ {
+ return 1;
+ }
+ else
+ {
+ ctx->stack[ctx->stackDepth] = ptr;
+ ctx->stackDepth++;
+ return 0;
+ }
+}
+
+const u8 *ScriptPop(struct ScriptContext *ctx)
+{
+ if (ctx->stackDepth == 0)
+ return NULL;
+
+ ctx->stackDepth--;
+ return ctx->stack[ctx->stackDepth];
+}
+
+void ScriptJump(struct ScriptContext *ctx, const u8 *ptr)
+{
+ ctx->scriptPtr = ptr;
+}
+
+void ScriptCall(struct ScriptContext *ctx, const u8 *ptr)
+{
+ ScriptPush(ctx, ctx->scriptPtr);
+ ctx->scriptPtr = ptr;
+}
+
+void ScriptReturn(struct ScriptContext *ctx)
+{
+ ctx->scriptPtr = ScriptPop(ctx);
+}
+
+u16 ScriptReadHalfword(struct ScriptContext *ctx)
+{
+ u16 value = *(ctx->scriptPtr++);
+ value |= *(ctx->scriptPtr++) << 8;
+ return value;
+}
+
+u32 ScriptReadWord(struct ScriptContext *ctx)
+{
+ u32 value0 = *(ctx->scriptPtr++);
+ u32 value1 = *(ctx->scriptPtr++);
+ u32 value2 = *(ctx->scriptPtr++);
+ u32 value3 = *(ctx->scriptPtr++);
+ return (((((value3 << 8) + value2) << 8) + value1) << 8) + value0;
+}
+
+void ScriptContext2_Enable(void)
+{
+ sScriptContext2Enabled = TRUE;
+}
+
+void ScriptContext2_Disable(void)
+{
+ sScriptContext2Enabled = FALSE;
+}
+
+bool8 ScriptContext2_IsEnabled(void)
+{
+ return sScriptContext2Enabled;
+}
+
+void sub_8069964(void)
+{
+ gUnknown_3000FA0 = 1;
+}
+
+void sub_8069970(void)
+{
+ gUnknown_3000FA0 = 0;
+}
+
+bool8 sub_806997C(void)
+{
+ if(gUnknown_3000FA0 == TRUE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void sub_8069998(u8 var)
+{
+ gUnknown_3000F9F = var;
+}
+
+void sub_80699A4(void)
+{
+ gUnknown_3000F9F = 0;
+}
+
+u8 sub_80699B0(void)
+{
+ return gUnknown_3000F9F;
+}
+
+void sub_80699BC(void)
+{
+ gUnknown_3000F9D = 1;
+}
+
+void sub_80699C8(void)
+{
+ gUnknown_3000F9D = 0;
+}
+
+u8 sub_80699D4(void)
+{
+ return gUnknown_3000F9D;
+}
+
+void sub_80699E0(void)
+{
+ gUnknown_20370A0 = 6;
+ gUnknown_3000F9E = 1;
+}
+
+void sub_80699F8(void)
+{
+ gUnknown_3000F9E = 0;
+}
+
+bool8 sub_8069A04(void)
+{
+ if(gUnknown_3000F9E == TRUE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void sub_8069A20(void)
+{
+ gUnknown_3000FA1 = 1;
+}
+
+void sub_8069A2C(void)
+{
+ gUnknown_3000FA1 = 0;
+}
+
+bool8 sub_8069A38(void)
+{
+ if(gUnknown_3000FA1 == TRUE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void sub_8069A54(void)
+{
+ sub_80CBDE8();
+ sub_8069A2C();
+}
+
+bool8 ScriptContext1_IsScriptSetUp(void)
+{
+ if (sScriptContext1Status == 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void ScriptContext1_Init(void)
+{
+ InitScriptContext(&sScriptContext1, gScriptCmdTable, gScriptCmdTableEnd);
+ sScriptContext1Status = 2;
+}
+
+bool8 ScriptContext2_RunScript(void)
+{
+ if (sScriptContext1Status == 2)
+ return 0;
+
+ if (sScriptContext1Status == 1)
+ return 0;
+
+ ScriptContext2_Enable();
+
+ if (!RunScriptCommand(&sScriptContext1))
+ {
+ sScriptContext1Status = 2;
+ ScriptContext2_Disable();
+ return 0;
+ }
+
+ return 1;
+}
+
+void ScriptContext1_SetupScript(const u8 *ptr)
+{
+ sub_80699F8();
+ sub_80699C8();
+ sub_8069970();
+ InitScriptContext(&sScriptContext1, gScriptCmdTable, gScriptCmdTableEnd);
+ SetupBytecodeScript(&sScriptContext1, ptr);
+ ScriptContext2_Enable();
+ sScriptContext1Status = 0;
+}
+
+void ScriptContext1_Stop(void)
+{
+ sScriptContext1Status = 1;
+}
+
+void EnableBothScriptContexts(void)
+{
+ sScriptContext1Status = 0;
+ ScriptContext2_Enable();
+}
+
+void ScriptContext2_RunNewScript(const u8 *ptr)
+{
+ InitScriptContext(&sScriptContext2, &gScriptCmdTable, &gScriptCmdTableEnd);
+ SetupBytecodeScript(&sScriptContext2, ptr);
+ while (RunScriptCommand(&sScriptContext2) == TRUE);
+}
+
+u8 *mapheader_get_tagged_pointer(u8 tag)
+{
+ u8 *mapScripts = gMapHeader.mapScripts;
+
+ if (mapScripts == NULL)
+ return NULL;
+
+ while (1)
+ {
+ if (*mapScripts == 0)
+ return NULL;
+ if (*mapScripts == tag)
+ {
+ mapScripts++;
+ return (u8 *)(mapScripts[0] + (mapScripts[1] << 8) + (mapScripts[2] << 16) + (mapScripts[3] << 24));
+ }
+ mapScripts += 5;
+ }
+}
+
+void mapheader_run_script_by_tag(u8 tag)
+{
+ u8 *ptr = mapheader_get_tagged_pointer(tag);
+ if (ptr)
+ ScriptContext2_RunNewScript(ptr);
+}
+
+u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag)
+{
+ u8 *ptr = mapheader_get_tagged_pointer(tag);
+
+ if (!ptr)
+ return NULL;
+
+ while (1)
+ {
+ u16 varIndex1;
+ u16 varIndex2;
+ varIndex1 = ptr[0] | (ptr[1] << 8);
+ if (!varIndex1)
+ return NULL;
+ ptr += 2;
+ varIndex2 = ptr[0] | (ptr[1] << 8);
+ ptr += 2;
+ if (VarGet(varIndex1) == VarGet(varIndex2))
+ return (u8 *)(ptr[0] + (ptr[1] << 8) + (ptr[2] << 16) + (ptr[3] << 24));
+ ptr += 4;
+ }
+}
+
+void mapheader_run_script_with_tag_x1(void)
+{
+ mapheader_run_script_by_tag(1);
+}
+
+void mapheader_run_script_with_tag_x3(void)
+{
+ mapheader_run_script_by_tag(3);
+}
+
+void mapheader_run_script_with_tag_x5(void)
+{
+ mapheader_run_script_by_tag(5);
+}
+
+void mapheader_run_script_with_tag_x7(void)
+{
+ mapheader_run_script_by_tag(7);
+}
+
+void mapheader_run_script_with_tag_x6(void)
+{
+ mapheader_run_script_by_tag(6);
+}
+
+bool8 mapheader_run_first_tag2_script_list_match(void)
+{
+ u8 *ptr;
+
+ if(gUnknown_203ADFA == 3)
+ return 0;
+
+ ptr = mapheader_get_first_match_from_tagged_ptr_list(2);
+
+ if (!ptr)
+ return 0;
+
+ ScriptContext1_SetupScript(ptr);
+ return 1;
+}
+
+void mapheader_run_first_tag4_script_list_match(void)
+{
+ u8 *ptr = mapheader_get_first_match_from_tagged_ptr_list(4);
+ if (ptr)
+ ScriptContext2_RunNewScript(ptr);
+}
+
+u32 CalculateRamScriptChecksum(void)
+{
+ return CalcCRC16WithTable((u8*)(&gSaveBlock1Ptr->ramScript.data), sizeof(gSaveBlock1Ptr->ramScript.data));
+}
+
+void ClearRamScript(void)
+{
+ CpuFill32(0, &gSaveBlock1Ptr->ramScript, sizeof(struct RamScript));
+}
+
+bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId)
+{
+ struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
+
+ ClearRamScript();
+
+ if (scriptSize > sizeof(scriptData->script))
+ return FALSE;
+
+ scriptData->magic = RAM_SCRIPT_MAGIC;
+ scriptData->mapGroup = mapGroup;
+ scriptData->mapNum = mapNum;
+ scriptData->objectId = objectId;
+ memcpy(scriptData->script, script, scriptSize);
+ gSaveBlock1Ptr->ramScript.checksum = CalculateRamScriptChecksum();
+ return TRUE;
+}
+
+u8 *GetRamScript(u8 objectId, u8 *script)
+{
+ struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
+ gUnknown_20370A4 = NULL;
+ if (scriptData->magic != RAM_SCRIPT_MAGIC)
+ return script;
+ if (scriptData->mapGroup != gSaveBlock1Ptr->location.mapGroup)
+ return script;
+ if (scriptData->mapNum != gSaveBlock1Ptr->location.mapNum)
+ return script;
+ if (scriptData->objectId != objectId)
+ return script;
+ if (CalculateRamScriptChecksum() != gSaveBlock1Ptr->ramScript.checksum)
+ {
+ ClearRamScript();
+ return script;
+ }
+ else
+ {
+ gUnknown_20370A4 = script;
+ return scriptData->script;
+ }
+}
+
+bool32 sub_8069DFC(void)
+{
+ struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
+ if (scriptData->magic != RAM_SCRIPT_MAGIC)
+ return FALSE;
+ if (scriptData->mapGroup != 0xFF)
+ return FALSE;
+ if (scriptData->mapNum != 0xFF)
+ return FALSE;
+ if (scriptData->objectId != 0xFF)
+ return FALSE;
+ if (CalculateRamScriptChecksum() != gSaveBlock1Ptr->ramScript.checksum)
+ return FALSE;
+ return TRUE;
+}
+
+u8 *sub_8069E48(void)
+{
+ struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
+ if (!sub_8143FC8())
+ return NULL;
+ if (scriptData->magic != RAM_SCRIPT_MAGIC)
+ return NULL;
+ if (scriptData->mapGroup != 0xFF)
+ return NULL;
+ if (scriptData->mapNum != 0xFF)
+ return NULL;
+ if (scriptData->objectId != 0xFF)
+ return NULL;
+ if (CalculateRamScriptChecksum() != gSaveBlock1Ptr->ramScript.checksum)
+ {
+ ClearRamScript();
+ return NULL;
+ }
+ else
+ {
+ return scriptData->script;
+ }
+}
+
+void sub_8069EA4(u8 *script, u16 scriptSize)
+{
+ if (scriptSize > sizeof(gSaveBlock1Ptr->ramScript.data.script))
+ scriptSize = sizeof(gSaveBlock1Ptr->ramScript.data.script);
+ InitRamScript(script, scriptSize, 0xFF, 0xFF, 0xFF);
+}
diff --git a/sym_bss.txt b/sym_bss.txt
index 146ac9e14..ae92068d5 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -96,33 +96,9 @@ gUnknown_3000E9C: @ 3000E9C
gUnknown_3000EA0: @ 3000EA0
.space 0x8
-gUnknown_3000EA8: @ 3000EA8
- .space 0x8
-
-gUnknown_3000EB0: @ 3000EB0
- .space 0x78
-
-gUnknown_3000F28: @ 3000F28
- .space 0x74
-
-gUnknown_3000F9C: @ 3000F9C
- .space 0x1
-
-gUnknown_3000F9D: @ 3000F9D
- .space 0x1
-
-gUnknown_3000F9E: @ 3000F9E
- .space 0x1
-
-gUnknown_3000F9F: @ 3000F9F
- .space 0x1
-
-gUnknown_3000FA0: @ 3000FA0
- .space 0x1
-
-gUnknown_3000FA1: @ 3000FA1
- .space 0x3
+ .include "src/script.o"
+ .align 2
gUnknown_3000FA4: @ 3000FA4
.space 0x4
diff --git a/sym_ewram.txt b/sym_ewram.txt
index deff62526..57d3f4876 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -611,7 +611,7 @@ gUnknown_2031DEC: @ 2031DEC
gUnknown_2031DFC: @ 2031DFC
.space 0x5000
-gUnknown_2036DFC: @ 2036DFC
+gMapHeader: @ 2036DFC
.space 0x1C
gUnknown_2036E18: @ 2036E18
@@ -647,12 +647,9 @@ gUnknown_203709A: @ 203709A
gUnknown_203709C: @ 203709C
.space 0x4
-gUnknown_20370A0: @ 20370A0
- .space 0x4
-
-gUnknown_20370A4: @ 20370A4
- .space 0x4
+ .include "src/script.o"
+ .align 2
gUnknown_20370A8: @ 20370A8
.space 0x4