shithub: pokered

Download patch

ref: 4ef63f8389d7bba16d1f6122f1b7278447de6908
parent: 71ebf0b95e9d5f31c8021910f70d0b8b9b79043c
author: Bryan Bishop <kanzure@gmail.com>
date: Fri Jan 13 09:45:57 EST 2012

insert main scripts and subscripts

hg-commit-id: 241a277dd8e8


--- a/pokered.asm
+++ b/pokered.asm
@@ -6011,7 +6011,18 @@
 	TX_FAR _PalletTownText7
 	db "@"
 
-INCBIN "baserom.gbc",$18ff1,$190e4 - $18ff1
+ViridianCityScript: ; 0x18ff1
+    call $3c3c
+    ld hl, $4ffd
+    ld a, [$d5f4]
+    jp $3d97
+; 0x18ffd
+INCBIN "baserom.gbc",$18ffd,$8
+ViridianCityScript0: ; 0x19005
+    call $500b
+    jp $503d
+; 0x1900b
+INCBIN "baserom.gbc",$1900b,$d9
 
 ViridianCityTexts: ; 0x190e4
     dw ViridianCityText1, ViridianCityText2, ViridianCityText3, ViridianCityText4, ViridianCityText5, ViridianCityText6, ViridianCityText7, ViridianCityText8, ViridianCityText9, ViridianCityText10, ViridianCityText11, ViridianCityText12, ViridianCityText13, ViridianCityText14, ViridianCityText15
@@ -6154,7 +6165,16 @@
 ViridianCityText14:
 INCBIN "baserom.gbc",$19232,$19237 - $19232
 
-INCBIN "baserom.gbc",$19237,$1938b - $19237
+INCBIN "baserom.gbc",$19237,$19251 - $19237
+PewterCityScript0: ; 0x19251
+    xor a
+    ld [$d619], a
+    ld hl, $d754
+    res 0, [hl]
+    call $525e
+    ret
+; 0x1925e
+INCBIN "baserom.gbc",$1925e,$12d
 
 PewterCityTexts: ; 0x1938b
     dw PewterCityText1, PewterCityText2, PewterCityText3, PewterCityText4, PewterCityText5, PewterCityText6, PewterCityText7, PewterCityText8, PewterCityText9, PewterCityText10, PewterCityText11, PewterCityText12, PewterCityText13, PewterCityText14
@@ -6265,7 +6285,169 @@
     TX_FAR _PewterCityText12
     db $50
 
-INCBIN "baserom.gbc",$19480,$1962d - $19480
+CeruleanCityScript: ; 0x19480
+    call $3c3c
+    ld hl, $549d
+    ld a, [$d60f]
+    jp $3d97
+; 0x1948c
+INCBIN "baserom.gbc",$1948c,$3c
+CeruleanCityScript0: ; 0x194c8
+    ld a, [$d75b]
+    bit 7, a
+    jr nz, .asm_194f7 ; 0x194cd $28
+    ld hl, $554f
+    call $34bf
+    jr nc, .asm_194f7 ; 0x194d5 $20
+    ld a, [$cd3d]
+    cp $1
+    ld a, $8
+    ld b, $0
+    jr nz, .asm_194e6 ; 0x194e0 $4
+    ld a, $4
+    ld b, $4
+.asm_194e6
+    ld [$d528], a
+    ld a, b
+    ld [$c129], a
+    call Delay3
+    ld a, $2
+    ld [$ff00+$8c], a
+    jp $2920
+.asm_194f7
+    ld a, [$d75a]
+    bit 0, a
+    ret nz
+    ld hl, $5554
+    call $34bf
+    ret nc
+    ld a, [$d700]
+    and a
+    jr z, .asm_19512 ; 0x19508 $8
+    ld a, $ff
+    ld [$c0ee], a
+    call $23b1
+.asm_19512
+    ld c, $2
+    ld a, $de
+    call $23a1
+    xor a
+    ld [$ff00+$b4], a
+    ld a, $f0
+    ld [$cd6b], a
+    ld a, [$d362]
+    cp $14
+    jr z, .asm_19535 ; 0x19526 $d
+    ld a, $1
+    ld [$ff00+$8c], a
+    ld a, $5
+    ld [$ff00+$8b], a
+    call $3500
+    ld [hl], $19
+.asm_19535
+    ld a, $5
+    ld [$cc4d], a
+    ld a, $15
+    call Predef
+    ld de, $5559
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $363a
+    ld a, $1
+    ld [$d60f], a
+    ret
+; 0x1954f
+INCBIN "baserom.gbc",$1954f,$19567 - $1954f
+CeruleanCityScript1: ; 0x19567
+    ld a, [$d730]
+    bit 0, a
+    ret nz
+    xor a
+    ld [$cd6b], a
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $2920
+    ld hl, $d72d
+    set 6, [hl]
+    set 7, [hl]
+    ld hl, $566d
+    ld de, $5672
+    call $3354
+    ld a, $e1
+    ld [$d059], a
+    ld a, [$d715]
+    cp $b1
+    jr nz, .asm_19598 ; 0x19592 $4
+    ld a, $7
+    jr .asm_195a2 ; 0x19596 $a
+.asm_19598
+    cp $99
+    jr nz, .asm_195a0 ; 0x1959a $4
+    ld a, $8
+    jr .asm_195a2 ; 0x1959e $2
+.asm_195a0
+    ld a, $9
+.asm_195a2
+    ld [$d05d], a
+    xor a
+    ld [$ff00+$b4], a
+    call $555d
+    ld a, $2
+    ld [$d60f], a
+    ret
+; 0x195b1
+CeruleanCityScript2: ; 0x195b1
+    ld a, [$d057]
+    cp $ff
+    jp z, $548c
+    call $555d
+    ld a, $f0
+    ld [$cd6b], a
+    ld hl, $d75a
+    set 0, [hl]
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $2920
+    ld a, $ff
+    ld [$c0ee], a
+    call $23b1
+    ld b, $2
+    ld hl, $5b47
+    call Bankswitch
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $3541
+    ld a, [$d362]
+    cp $14
+    jr nz, .asm_195f0 ; 0x195e9 $5
+    ld de, $5608
+    jr .asm_195f3 ; 0x195ee $3
+.asm_195f0
+    ld de, $5600
+.asm_195f3
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $363a
+    ld a, $3
+    ld [$d60f], a
+    ret
+; 0x19600
+INCBIN "baserom.gbc",$19600,$19610 - $19600
+CeruleanCityScript3: ; 0x19610
+    ld a, [$d730]
+    bit 0, a
+    ret nz
+    ld a, $5
+    ld [$cc4d], a
+    ld a, $11
+    call Predef
+    xor a
+    ld [$cd6b], a
+    call $2307
+    ld a, $0
+    ld [$d60f], a
+    ret
+; 0x1962d
 
 CeruleanCityTexts: ; 0x1962d
     dw CeruleanCityText1, CeruleanCityText2, CeruleanCityText3, CeruleanCityText4, CeruleanCityText5, CeruleanCityText6, CeruleanCityText7, CeruleanCityText8, CeruleanCityText9, CeruleanCityText10, CeruleanCityText11, CeruleanCityText12, CeruleanCityText13, CeruleanCityText14, CeruleanCityText15, CeruleanCityText16, CeruleanCityText17
@@ -6420,7 +6602,65 @@
     TX_FAR _CeruleanCityText17
     db $50
 
-INCBIN "baserom.gbc",$197a1,$1986f - $197a1
+VermilionCityScript: ; 0x197a1
+    call $3c3c
+    ld hl, $d126
+    bit 6, [hl]
+    res 6, [hl]
+    push hl
+    call nz, $57cb
+    pop hl
+    bit 5, [hl]
+    res 5, [hl]
+    call nz, $57c0
+    ld hl, $57dc
+    ld a, [$d62a]
+    jp $3d97
+; 0x197c0
+INCBIN "baserom.gbc",$197c0,$26
+VermilionCityScript0: ; 0x197e6
+    ld a, [$c109]
+    and a
+    ret nz
+    ld hl, $5823
+    call $34bf
+    ret nc
+    xor a
+    ld [$ff00+$b4], a
+    ld [$cf0d], a
+    ld a, $3
+    ld [$ff00+$8c], a
+    call $2920
+    ld a, [$d803]
+    bit 2, a
+    jr nz, .asm_19810 ; 0x19804 $a
+    ld b, $3f
+    ld a, $1c
+    call Predef
+    ld a, b
+    and a
+    ret nz
+.asm_19810
+    ld a, $40
+    ld [$ccd3], a
+    ld a, $1
+    ld [$cd38], a
+    call $3486
+    ld a, $1
+    ld [$d62a], a
+    ret
+; 0x19823
+INCBIN "baserom.gbc",$19823,$1985f - $19823
+VermilionCityScript1: ; 0x1985f
+    ld a, [$cd38]
+    and a
+    ret nz
+    ld c, $a
+    call $3739
+    ld a, $0
+    ld [$d62a], a
+    ret
+; 0x1986f
 
 VermilionCityTexts: ; 0x1986f
     dw VermilionCityText1, VermilionCityText2, VermilionCityText3, VermilionCityText4, VermilionCityText5, VermilionCityText6, VermilionCityText7, VermilionCityText8, VermilionCityText9, VermilionCityText10, VermilionCityText11, VermilionCityText12, VermilionCityText13
@@ -6526,7 +6766,16 @@
     TX_FAR _VermilionCityText13
     db $50
 
-INCBIN "baserom.gbc",$19956,$19966 - $19956
+CeladonCityScript: ; 0x19956
+    call $3c3c
+    ld hl, $d77e
+    res 0, [hl]
+    res 7, [hl]
+    ld hl, $d816
+    res 7, [hl]
+    ret
+; 0x19966
+INCBIN "baserom.gbc",$19966,$0
 
 CeladonCityTexts: ; 0x19966
     dw CeladonCityText1, CeladonCityText2, CeladonCityText3, CeladonCityText4, CeladonCityText5, CeladonCityText6, CeladonCityText7, CeladonCityText8, CeladonCityText9, CeladonCityText10, CeladonCityText11, CeladonCityText12, CeladonCityText13, CeladonCityText14, CeladonCityText15, CeladonCityText16, CeladonCityText17, CeladonCityText18
@@ -6625,7 +6874,10 @@
     TX_FAR _CeladonCityText18
     db $50
 
-INCBIN "baserom.gbc",$19a2b,$19a2e - $19a2b
+FuchsiaCityScript: ; 0x19a2b
+    jp $3c3c
+; 0x19a2e
+INCBIN "baserom.gbc",$19a2e,$0
 
 FuchsiaCityTexts: ; 0x19a2e
     dw FuchsiaCityText1, FuchsiaCityText2, FuchsiaCityText3, FuchsiaCityText4, FuchsiaCityText5, FuchsiaCityText6, FuchsiaCityText7, FuchsiaCityText8, FuchsiaCityText9, FuchsiaCityText10, FuchsiaCityText11, FuchsiaCityText12, FuchsiaCityText13, FuchsiaCityText14, FuchsiaCityText15, FuchsiaCityText16, FuchsiaCityText17, FuchsiaCityText18, FuchsiaCityText19, FuchsiaCityText20, FuchsiaCityText21, FuchsiaCityText22, FuchsiaCityText23, FuchsiaCityText24
@@ -6873,7 +7125,10 @@
 
     dw $5c25 ; objects
 
-INCBIN "baserom.gbc",$19c12,$19c15 - $19c12
+VermilionHouse3Script: ; 0x19c12
+    jp $3c3c
+; 0x19c15
+INCBIN "baserom.gbc",$19c15,$0
 
 VermilionHouse3Texts: ; 0x19c15
     dw VermilionHouse3Text1
@@ -6913,7 +7168,28 @@
 
     dw $5c95 ; objects
 
-INCBIN "baserom.gbc",$19c5b,$19c8a - $19c5b
+IndigoPlateauLobbyScript: ; 0x19c5b
+    call $22fa
+    call $3c3c
+    ld hl, $d126
+    bit 6, [hl]
+    res 6, [hl]
+    ret z
+    ld hl, $d869
+    res 7, [hl]
+    ld hl, $d734
+    bit 1, [hl]
+    res 1, [hl]
+    ret z
+    ld hl, $d863
+    xor a
+    ld [hli], a
+    ld [hli], a
+    ld [hli], a
+    ld [hl], a
+    ret
+; 0x19c7f
+INCBIN "baserom.gbc",$19c7f,$b
 
 IndigoPlateauLobbyText2:
 IndigoPlateauLobbyText1: ; 0x19c8a
@@ -6962,7 +7238,17 @@
 
     dw $5e35 ; objects
 
-INCBIN "baserom.gbc",$19d0b,$19da0 - $19d0b
+SilphCo4Script: ; 0x19d0b
+    call $5d21
+    call $3c3c
+    ld hl, $5dae
+    ld de, $5d9a
+    ld a, [$d645]
+    call $3160
+    ld [$d645], a
+    ret
+; 0x19d21
+INCBIN "baserom.gbc",$19d21,$7f
 
 SilphCo4Texts: ; 0x19da0
     dw SilphCo4Text1, SilphCo4Text2, SilphCo4Text3, SilphCo4Text4, SilphCo4Text5, SilphCo4Text6, SilphCo4Text7
@@ -7045,7 +7331,17 @@
 
     dw $608d ; objects
 
-INCBIN "baserom.gbc",$19f37,$19fbc - $19f37
+SilphCo5Script: ; 0x19f37
+    call $5f4d
+    call $3c3c
+    ld hl, $5fd2
+    ld de, $5fb6
+    ld a, [$d646]
+    call $3160
+    ld [$d646], a
+    ret
+; 0x19f4d
+INCBIN "baserom.gbc",$19f4d,$6f
 
 SilphCo5Texts: ; 0x19fbc
     dw SilphCo5Text1, SilphCo5Text2, SilphCo5Text3, SilphCo5Text4, SilphCo5Text5, SilphCo5Text6, SilphCo5Text7, SilphCo5Text8, SilphCo5Text9, SilphCo5Text10, SilphCo5Text11
@@ -7152,7 +7448,17 @@
 
     dw $62fb ; objects
 
-INCBIN "baserom.gbc",$1a1a9,$1a1f6 - $1a1a9
+SilphCo6Script: ; 0x1a1a9
+    call $61bf
+    call $3c3c
+    ld hl, $620a
+    ld de, $61f0
+    ld a, [$d647]
+    call $3160
+    ld [$d647], a
+    ret
+; 0x1a1bf
+INCBIN "baserom.gbc",$1a1bf,$37
 
 SilphCo6Texts: ; 0x1a1f6
     dw SilphCo6Text1, SilphCo6Text2, SilphCo6Text3, SilphCo6Text4, SilphCo6Text5, SilphCo6Text6, SilphCo6Text7, SilphCo6Text8, SilphCo6Text9, SilphCo6Text10
@@ -7572,7 +7878,59 @@
 	db "WEEPINBELL"
 	db "VICTREEBEL"
 
-INCBIN "baserom.gbc",$1c98a,$1ca81 - $1c98a
+INCBIN "baserom.gbc",$1c98a,$1ca19 - $1c98a
+CinnabarIslandScript: ; 0x1ca19
+    call $3c3c
+    ld hl, $d126
+    set 5, [hl]
+    ld hl, $d796
+    res 0, [hl]
+    ld hl, $d7a3
+    res 1, [hl]
+    ld hl, $4a34
+    ld a, [$d639]
+    jp $3d97
+; 0x1ca34
+INCBIN "baserom.gbc",$1ca34,$4
+CinnabarIslandScript0: ; 0x1ca38
+    ld b, $2b
+    call $3493
+    ret nz
+    ld a, [$d361]
+    cp $4
+    ret nz
+    ld a, [$d362]
+    cp $12
+    ret nz
+    ld a, $8
+    ld [$d528], a
+    ld a, $8
+    ld [$ff00+$8c], a
+    call $2920
+    xor a
+    ld [$ff00+$b4], a
+    ld a, $1
+    ld [$cd38], a
+    ld a, $80
+    ld [$ccd3], a
+    call $3486
+    xor a
+    ld [$c109], a
+    ld [$cd6b], a
+    ld a, $1
+    ld [$d639], a
+    ret
+; 0x1ca73
+CinnabarIslandScript1: ; 0x1ca73
+    ld a, [$cd38]
+    and a
+    ret nz
+    call Delay3
+    ld a, $0
+    ld [$d639], a
+    ret
+; 0x1ca81
+INCBIN "baserom.gbc",$1ca81,$0
 
 CinnabarIslandTexts: ; 0x1ca81
     dw CinnabarIslandText1, CinnabarIslandText2, CinnabarIslandText3, CinnabarIslandText4, CinnabarIslandText5, CinnabarIslandText6, CinnabarIslandText7, CinnabarIslandText8
@@ -7600,7 +7958,10 @@
     TX_FAR _CinnabarIslandText7
     db $50
 
-INCBIN "baserom.gbc",$1caaf,$1cab2 - $1caaf
+Route1Script: ; 0x1caaf
+    jp $3c3c
+; 0x1cab2
+INCBIN "baserom.gbc",$1cab2,$0
 
 Route1Texts: ; 0x1cab2
     dw Route1Text1, Route1Text2, Route1Text3
@@ -7645,7 +8006,171 @@
 
     dw $540a ; objects
 
-INCBIN "baserom.gbc",$1cb0e,$1d082 - $1cb0e
+OaksLabScript: ; 0x1cb0e
+    ld a, [$d74b]
+    bit 6, a
+    call nz, $5076
+    ld a, $1
+    ld [$cf0c], a
+    xor a
+    ld [$cc3c], a
+    ld hl, $4b28
+    ld a, [$d5f0]
+    jp $3d97
+; 0x1cb28
+INCBIN "baserom.gbc",$1cb28,$26
+OaksLabScript0: ; 0x1cb4e
+    ld a, [$d74b]
+    bit 7, a
+    ret z
+    ld a, [$cf10]
+    and a
+    ret nz
+    ld a, $31
+    ld [$cc4d], a
+    ld a, $15
+    call Predef
+    ld hl, $d72e
+    res 4, [hl]
+    ld a, $1
+    ld [$d5f0], a
+    ret
+; 0x1cb6e
+OaksLabScript1: ; 0x1cb6e
+    ld a, $8
+    ld [$ff00+$8c], a
+    ld de, $4b7e
+    call $363a
+    ld a, $2
+    ld [$d5f0], a
+    ret
+; 0x1cb7e
+INCBIN "baserom.gbc",$1cb7e,$1cb82 - $1cb7e
+OaksLabScript2: ; 0x1cb82
+    ld a, [$d730]
+    bit 0, a
+    ret nz
+    ld a, $31
+    ld [$cc4d], a
+    ld a, $11
+    call Predef
+    ld a, $2e
+    ld [$cc4d], a
+    ld a, $15
+    call Predef
+    ld a, $3
+    ld [$d5f0], a
+    ret
+; 0x1cba2
+OaksLabScript3: ; 0x1cba2
+    call Delay3
+    ld hl, $ccd3
+    ld de, $4bcf
+    call $350c
+    dec a
+    ld [$cd38], a
+    call $3486
+    ld a, $1
+    ld [$ff00+$8c], a
+    xor a
+    ld [$ff00+$8d], a
+    call $34a6
+    ld a, $5
+    ld [$ff00+$8c], a
+    xor a
+    ld [$ff00+$8d], a
+    call $34a6
+    ld a, $4
+    ld [$d5f0], a
+    ret
+; 0x1cbcf
+INCBIN "baserom.gbc",$1cbcf,$1cbd2 - $1cbcf
+OaksLabScript4: ; 0x1cbd2
+    ld a, [$cd38]
+    and a
+    ret nz
+    ld hl, $d747
+    set 0, [hl]
+    ld hl, $d74b
+    set 0, [hl]
+    ld a, $1
+    ld [$ff00+$8c], a
+    ld a, $4
+    ld [$ff00+$8d], a
+    call $34a6
+    call $2429
+    ld hl, $d733
+    res 1, [hl]
+    call $2307
+    ld a, $5
+    ld [$d5f0], a
+    ret
+; 0x1cbfd
+OaksLabScript5: ; 0x1cbfd
+    ld a, $fc
+    ld [$cd6b], a
+    ld a, $11
+    ld [$ff00+$8c], a
+    call $2920
+    call Delay3
+    ld a, $12
+    ld [$ff00+$8c], a
+    call $2920
+    call Delay3
+    ld a, $13
+    ld [$ff00+$8c], a
+    call $2920
+    call Delay3
+    ld a, $14
+    ld [$ff00+$8c], a
+    call $2920
+    ld hl, $d74b
+    set 1, [hl]
+    xor a
+    ld [$cd6b], a
+    ld a, $6
+    ld [$d5f0], a
+    ret
+; 0x1cc36
+OaksLabScript6: ; 0x1cc36
+    ld a, [$d361]
+    cp $6
+    ret nz
+    ld a, $5
+    ld [$ff00+$8c], a
+    xor a
+    ld [$ff00+$8d], a
+    call $34a6
+    ld a, $1
+    ld [$ff00+$8c], a
+    xor a
+    ld [$ff00+$8d], a
+    call $34a6
+    call $2429
+    ld a, $c
+    ld [$ff00+$8c], a
+    call $2920
+    ld a, $1
+    ld [$cd38], a
+    ld a, $40
+    ld [$ccd3], a
+    call $3486
+    ld a, $8
+    ld [$d528], a
+    ld a, $7
+    ld [$d5f0], a
+    ret
+; 0x1cc72
+OaksLabScript7: ; 0x1cc72
+    ld a, [$cd38]
+    and a
+    ret nz
+    call Delay3
+    ld a, $6
+    ld [$d5f0], a
+    ret
+; 0x1cc80
+INCBIN "baserom.gbc",$1cc80,$402
 
 OaksLabTexts: ; 0x1d082
     dw OaksLabText1, OaksLabText2, OaksLabText3, OaksLabText4, OaksLabText5, OaksLabText6, OaksLabText7, OaksLabText8, OaksLabText9, OaksLabText10, OaksLabText11, OaksLabText12, OaksLabText13, OaksLabText14, OaksLabText15, OaksLabText16, OaksLabText17, OaksLabText18, OaksLabText19, OaksLabText20, OaksLabText21, OaksLabText22, OaksLabText23, OaksLabText24, OaksLabText25, OaksLabText26, OaksLabText27
@@ -8067,7 +8592,46 @@
 
     dw $550a ; objects
 
-INCBIN "baserom.gbc",$1d46e,$1d4e0 - $1d46e
+ViridianMartScript: ; 0x1d46e
+    call $547d
+    call $3c3c
+    ld hl, $5495
+    ld a, [$d60d]
+    jp $3d97
+; 0x1d47d
+INCBIN "baserom.gbc",$1d47d,$1e
+ViridianMartScript0: ; 0x1d49b
+    call $2429
+    ld a, $4
+    ld [$ff00+$8c], a
+    call $2920
+    ld hl, $ccd3
+    ld de, $54bb
+    call $350c
+    dec a
+    ld [$cd38], a
+    call $3486
+    ld a, $1
+    ld [$d60d], a
+    ret
+; 0x1d4bb
+INCBIN "baserom.gbc",$1d4bb,$1d4c0 - $1d4bb
+ViridianMartScript1: ; 0x1d4c0
+    ld a, [$cd38]
+    and a
+    ret nz
+    call Delay3
+    ld a, $5
+    ld [$ff00+$8c], a
+    call $2920
+    ld bc, $4601
+    call GiveItem
+    ld hl, $d74e
+    set 1, [hl]
+    ld a, $2
+    ld [$d60d], a
+    ret
+; 0x1d4e0
 
 ViridianMartTexts: ; 0x1d4e0
     dw ViridianMartText1, ViridianMartText2, ViridianMartText3 ;, ViridianMartText4
@@ -8117,7 +8681,10 @@
 
     dw $555d ; objects
 
-INCBIN "baserom.gbc",$1d54c,$1d54f - $1d54c
+SchoolScript: ; 0x1d54c
+    jp $3c3c
+; 0x1d54f
+INCBIN "baserom.gbc",$1d54f,$0
 
 SchoolTexts: ; 0x1d54f
     dw SchoolText1, SchoolText2
@@ -8155,7 +8722,10 @@
 
     dw $55bb ; objects
 
-INCBIN "baserom.gbc",$1d589,$1d58d - $1d589
+INCBIN "baserom.gbc",$1d589,$1d58a - $1d589
+ViridianHouseScript: ; 0x1d58a
+    jp $3c3c
+; 0x1d58d
 
 ViridianHouseTexts: ; 0x1d58d
     dw ViridianHouseText1, ViridianHouseText2, ViridianHouseText3, ViridianHouseText4
@@ -8210,7 +8780,10 @@
 
     dw $5616 ; objects
 
-INCBIN "baserom.gbc",$1d5f3,$1d5f6 - $1d5f3
+PewterHouse1Script: ; 0x1d5f3
+    jp $3c3c
+; 0x1d5f6
+INCBIN "baserom.gbc",$1d5f6,$0
 
 PewterHouse1Texts: ; 0x1d5f6
     dw PewterHouse1Text1, PewterHouse1Text2, PewterHouse1Text3
@@ -8257,7 +8830,10 @@
 
     dw $5659 ; objects
 
-INCBIN "baserom.gbc",$1d648,$1d64b - $1d648
+PewterHouse2Script: ; 0x1d648
+    jp $3c3c
+; 0x1d64b
+INCBIN "baserom.gbc",$1d64b,$0
 
 PewterHouse2Texts: ; 0x1d64b
     dw PewterHouse2Text1, PewterHouse2Text2
@@ -8295,7 +8871,11 @@
 
     dw $56bf ; objects
 
-INCBIN "baserom.gbc",$1d685,$1d689 - $1d685
+CeruleanHouseTrashedScript: ; 0x1d685
+    call $3c3c
+    ret
+; 0x1d689
+INCBIN "baserom.gbc",$1d689,$0
 
 CeruleanHouseTrashedTexts: ; 0x1d689
     dw CeruleanHouseTrashedText1, CeruleanHouseTrashedText2, CeruleanHouseTrashedText3
@@ -8354,7 +8934,10 @@
 
     dw $5710 ; objects
 
-INCBIN "baserom.gbc",$1d6f6,$1d6f9 - $1d6f6
+CeruleanHouse2Script: ; 0x1d6f6
+    jp $3c3c
+; 0x1d6f9
+INCBIN "baserom.gbc",$1d6f9,$0
 
 CeruleanHouse2Texts: ; 0x1d6f9
     dw CeruleanHouse2Text1, CeruleanHouse2Text2
@@ -8396,7 +8979,10 @@
 
     dw $5866 ; objects
 
-INCBIN "baserom.gbc",$1d73c,$1d73f - $1d73c
+BikeShopScript: ; 0x1d73c
+    jp $3c3c
+; 0x1d73f
+INCBIN "baserom.gbc",$1d73f,$0
 
 BikeShopTexts: ; 0x1d73f
     dw BikeShopText1, BikeShopText2, BikeShopText3
@@ -8529,7 +9115,11 @@
 
     dw $596a ; objects
 
-INCBIN "baserom.gbc",$1d8a8,$1d8ac - $1d8a8
+LavenderHouse1Script: ; 0x1d8a8
+    call $3c3c
+    ret
+; 0x1d8ac
+INCBIN "baserom.gbc",$1d8ac,$0
 
 LavenderHouse1Texts: ; 0x1d8ac
     dw LavenderHouse1Text1, LavenderHouse1Text2, LavenderHouse1Text3, LavenderHouse1Text4, LavenderHouse1Text5, LavenderHouse1Text6
@@ -8641,7 +9231,11 @@
 
     dw $59e6 ; objects
 
-INCBIN "baserom.gbc",$1d9ae,$1d9b2 - $1d9ae
+LavenderHouse2Script: ; 0x1d9ae
+    call $3c3c
+    ret
+; 0x1d9b2
+INCBIN "baserom.gbc",$1d9b2,$0
 
 LavenderHouse2Texts: ; 0x1d9b2
     dw LavenderHouse2Text1, LavenderHouse2Text2
@@ -8695,7 +9289,10 @@
 
     dw $5ad6 ; objects
 
-INCBIN "baserom.gbc",$1da12,$1da56 - $1da12
+NameRaterScript: ; 0x1da12
+    jp $3c3c
+; 0x1da15
+INCBIN "baserom.gbc",$1da15,$41
 
 NameRaterText1: ; 0x1da56
     db $8
@@ -8764,7 +9361,11 @@
 
     dw $5b20 ; objects
 
-INCBIN "baserom.gbc",$1dafc,$1db00 - $1dafc
+VermilionHouse1Script: ; 0x1dafc
+    call $3c3c
+    ret
+; 0x1db00
+INCBIN "baserom.gbc",$1db00,$0
 
 VermilionHouse1Texts: ; 0x1db00
     dw VermilionHouse1Text1, VermilionHouse1Text2, VermilionHouse1Text3
@@ -8813,7 +9414,46 @@
 
     dw $5cc6 ; objects
 
-INCBIN "baserom.gbc",$1db52,$1dcc6 - $1db52
+VermilionDockScript: ; 0x1db52
+    call $3c3c
+    ld hl, $d803
+    bit 4, [hl]
+    jr nz, .asm_1db8d ; 0x1db5a $31
+    bit 0, [hl]
+    ret z
+    ld a, [$d42f]
+    cp $1
+    ret nz
+    bit 2, [hl]
+    jp z, $5b9b
+    set 4, [hl]
+    call Delay3
+    ld hl, $d730
+    set 7, [hl]
+    ld hl, $ccd3
+    ld a, $40
+    ld [hli], a
+    ld [hli], a
+    ld [hl], a
+    ld a, $3
+    ld [$cd38], a
+    xor a
+    ld [$c206], a
+    ld [$cd3b], a
+    dec a
+    ld [$cd6b], a
+    ret
+.asm_1db8d
+    bit 5, [hl]
+    ret nz
+    ld a, [$cd38]
+    and a
+    ret nz
+    ld [$cd6b], a
+    set 5, [hl]
+    ret
+; 0x1db9b
+INCBIN "baserom.gbc",$1db9b,$12b
 
 VermilionDockObject: ; 0x1dcc6 (size=20)
     db $f ; border tile
@@ -8841,7 +9481,10 @@
 
     dw $5d5c ; objects
 
-INCBIN "baserom.gbc",$1dd3a,$1dd3d - $1dd3a
+CeladonMansion5Script: ; 0x1dd3a
+    jp $3c3c
+; 0x1dd3d
+INCBIN "baserom.gbc",$1dd3d,$0
 
 CeladonMansion5Texts: ; 0x1dd3d
     dw CeladonMansion5Text1, CeladonMansion5Text2
@@ -8887,7 +9530,10 @@
 
     dw $5d9b ; objects
 
-INCBIN "baserom.gbc",$1dd88,$1dd8b - $1dd88
+FuchsiaMartScript: ; 0x1dd88
+    jp $3c3c
+; 0x1dd8b
+INCBIN "baserom.gbc",$1dd8b,$0
 
 FuchsiaMartTexts: ; 0x1dd8b
     dw FuchsiaMartText1, FuchsiaMartText2, FuchsiaMartText3
@@ -8929,7 +9575,10 @@
 
     dw $5e04 ; objects
 
-INCBIN "baserom.gbc",$1dddd,$1dde0 - $1dddd
+SaffronHouse1Script: ; 0x1dddd
+    jp $3c3c
+; 0x1dde0
+INCBIN "baserom.gbc",$1dde0,$0
 
 SaffronHouse1Texts: ; 0x1dde0
     dw SaffronHouse1Text1, SaffronHouse1Text2, SaffronHouse1Text3, SaffronHouse1Text4
@@ -8981,7 +9630,10 @@
 
     dw $5e8a ; objects
 
-INCBIN "baserom.gbc",$1de3c,$1de3f - $1de3c
+SaffronHouse2Script: ; 0x1de3c
+    jp $3c3c
+; 0x1de3f
+INCBIN "baserom.gbc",$1de3f,$0
 
 SaffronHouse2Texts: ; 0x1de3f
     dw SaffronHouse2Text1
@@ -9037,7 +9689,12 @@
 
     dw $5ebf ; objects
 
-INCBIN "baserom.gbc",$1deb0,$1deb8 - $1deb0
+DiglettsCaveRoute2Script: ; 0x1deb0
+    ld a, $d
+    ld [$d365], a
+    jp $3c3c
+; 0x1deb8
+INCBIN "baserom.gbc",$1deb8,$0
 
 DiglettsCaveRoute2Texts: ; 0x1deb8
     dw DiglettsCaveRoute2Text1
@@ -9072,7 +9729,10 @@
 
     dw $5f07 ; objects
 
-INCBIN "baserom.gbc",$1deed,$1def0 - $1deed
+Route2HouseScript: ; 0x1deed
+    jp $3c3c
+; 0x1def0
+INCBIN "baserom.gbc",$1def0,$0
 
 Route2HouseTexts: ; 0x1def0
     dw Route2HouseText1, Route2HouseText2
@@ -9114,7 +9774,46 @@
 
     dw $5ffb ; objects
 
-INCBIN "baserom.gbc",$1df33,$1dfa4 - $1df33
+Route5GateScript: ; 0x1df33
+    call $3c3c
+    ld a, [$d662]
+    ld hl, $5f3f
+    jp $3d97
+; 0x1df3f
+INCBIN "baserom.gbc",$1df3f,$11
+Route5GateScript0: ; 0x1df50
+    ld a, [$d728]
+    bit 6, a
+    ret nz
+    ld hl, $5f8f
+    call $34bf
+    ret nc
+    ld a, $2
+    ld [$d528], a
+    xor a
+    ld [$ff00+$b4], a
+    ld b, $16
+    ld hl, $659f
+    call Bankswitch
+    ld a, [$ff00+$db]
+    and a
+    jr nz, .asm_1df82 ; 0x1df70 $10
+    ld a, $2
+    ld [$ff00+$8c], a
+    call $2920
+    call $5f43
+    ld a, $1
+    ld [$d662], a
+    ret
+.asm_1df82
+    ld a, $3
+    ld [$ff00+$8c], a
+    call $2920
+    ld hl, $d728
+    set 6, [hl]
+    ret
+; 0x1df8f
+INCBIN "baserom.gbc",$1df8f,$15
 
 Route5GateTexts: ; 0x1dfa4
     dw Route5GateText1, Route5GateText2, Route5GateText3
@@ -9196,7 +9895,46 @@
 
     dw $60be ; objects
 
-INCBIN "baserom.gbc",$1e03d,$1e0b8 - $1e03d
+Route6GateScript: ; 0x1e03d
+    call $3c3c
+    ld hl, $604a
+    ld a, [$d636]
+    call $3d97
+    ret
+; 0x1e04a
+INCBIN "baserom.gbc",$1e04a,$4
+Route6GateScript0: ; 0x1e04e
+    ld a, [$d728]
+    bit 6, a
+    ret nz
+    ld hl, $608c
+    call $34bf
+    ret nc
+    ld a, $1
+    ld [$d528], a
+    xor a
+    ld [$ff00+$b4], a
+    ld b, $16
+    ld hl, $659f
+    call Bankswitch
+    ld a, [$ff00+$db]
+    and a
+    jr nz, .asm_1e080 ; 0x1e06e $10
+    ld a, $2
+    ld [$ff00+$8c], a
+    call $2920
+    call $60a1
+    ld a, $1
+    ld [$d636], a
+    ret
+.asm_1e080
+    ld hl, $d728
+    set 6, [hl]
+    ld a, $3
+    ld [$ff00+$8c], a
+    jp $2920
+; 0x1e08c
+INCBIN "baserom.gbc",$1e08c,$2c
 
 Route6GateTexts: ; 0x1e0b8
     dw Route6GateText1, Route6GateText2, Route6GateText3
@@ -9232,7 +9970,47 @@
 
     dw $6185 ; objects
 
-INCBIN "baserom.gbc",$1e100,$1e17f - $1e100
+Route7GateScript: ; 0x1e100
+    call $3c3c
+    ld a, [$d663]
+    ld hl, $610d
+    call $3d97
+    ret
+; 0x1e10d
+INCBIN "baserom.gbc",$1e10d,$1b
+Route7GateScript0: ; 0x1e128
+    ld a, [$d728]
+    bit 6, a
+    ret nz
+    ld hl, $6167
+    call $34bf
+    ret nc
+    ld a, $8
+    ld [$d528], a
+    xor a
+    ld [$ff00+$b4], a
+    ld b, $16
+    ld hl, $659f
+    call Bankswitch
+    ld a, [$ff00+$db]
+    and a
+    jr nz, .asm_1e15a ; 0x1e148 $10
+    ld a, $2
+    ld [$ff00+$8c], a
+    call $2920
+    call $6111
+    ld a, $1
+    ld [$d663], a
+    ret
+.asm_1e15a
+    ld a, $3
+    ld [$ff00+$8c], a
+    call $2920
+    ld hl, $d728
+    set 6, [hl]
+    ret
+; 0x1e167
+INCBIN "baserom.gbc",$1e167,$18
 
 Route7GateTexts: ; 0x1e17f
     dw Route7GateText1, Route7GateText2, Route7GateText3
@@ -9268,7 +10046,45 @@
 
     dw $6247 ; objects
 
-INCBIN "baserom.gbc",$1e1c7,$1e241 - $1e1c7
+Route8GateScript: ; 0x1e1c7
+    call $3c3c
+    ld hl, $61d3
+    ld a, [$d637]
+    jp $3d97
+; 0x1e1d3
+INCBIN "baserom.gbc",$1e1d3,$1b
+Route8GateScript0: ; 0x1e1ee
+    ld a, [$d728]
+    bit 6, a
+    ret nz
+    ld hl, $622c
+    call $34bf
+    ret nc
+    ld a, $2
+    ld [$d528], a
+    xor a
+    ld [$ff00+$b4], a
+    ld b, $16
+    ld hl, $659f
+    call Bankswitch
+    ld a, [$ff00+$db]
+    and a
+    jr nz, .asm_1e220 ; 0x1e20e $10
+    ld a, $2
+    ld [$ff00+$8c], a
+    call $2920
+    call $61d7
+    ld a, $1
+    ld [$d637], a
+    ret
+.asm_1e220
+    ld hl, $d728
+    set 6, [hl]
+    ld a, $3
+    ld [$ff00+$8c], a
+    jp $2920
+; 0x1e22c
+INCBIN "baserom.gbc",$1e22c,$15
 
 Route8GateTexts: ; 0x1e241
     dw Route8GateText1, Route8GateText2, Route8GateText3
@@ -9304,7 +10120,12 @@
 
     dw $6298 ; objects
 
-INCBIN "baserom.gbc",$1e289,$1e291 - $1e289
+UndergroundPathEntranceRoute8Script: ; 0x1e289
+    ld a, $13
+    ld [$d365], a
+    jp $3c3c
+; 0x1e291
+INCBIN "baserom.gbc",$1e291,$0
 
 UndergroundPathEntranceRoute8Texts: ; 0x1e291
     dw UndergroundPathEntranceRoute8Text1
@@ -9341,7 +10162,16 @@
 
     dw $63bf ; objects
 
-INCBIN "baserom.gbc",$1e2c6,$1e2df - $1e2c6
+PowerPlantScript: ; 0x1e2c6
+    call $3c3c
+    ld hl, $62fb
+    ld de, $62d9
+    ld a, [$d663]
+    call $3160
+    ld [$d663], a
+    ret
+; 0x1e2d9
+INCBIN "baserom.gbc",$1e2d9,$6
 
 PowerPlantTexts: ; 0x1e2df
     dw PowerPlantText1, PowerPlantText2, PowerPlantText3, PowerPlantText4, PowerPlantText5, PowerPlantText6, PowerPlantText7, PowerPlantText8, PowerPlantText9, PowerPlantText10, PowerPlantText11, PowerPlantText12, PowerPlantText13, PowerPlantText14
@@ -9455,7 +10285,13 @@
 
     dw $65ca ; objects
 
-INCBIN "baserom.gbc",$1e5ba,$1e5c3 - $1e5ba
+DiglettsCaveEntranceRoute11Script: ; 0x1e5ba
+    call $3c3c
+    ld a, $16
+    ld [$d365], a
+    ret
+; 0x1e5c3
+INCBIN "baserom.gbc",$1e5c3,$0
 
 DiglettsCaveEntranceRoute11Texts: ; 0x1e5c3
     dw DiglettsCaveEntranceRoute11Text1
@@ -9492,7 +10328,10 @@
 
     dw $6657 ; objects
 
-INCBIN "baserom.gbc",$1e5f8,$1e5fb - $1e5f8
+Route16HouseScript: ; 0x1e5f8
+    jp $3c3c
+; 0x1e5fb
+INCBIN "baserom.gbc",$1e5fb,$0
 
 Route16HouseTexts: ; 0x1e5fb
     dw Route16HouseText1, Route16HouseText2
@@ -9556,7 +10395,43 @@
 
     dw $6720 ; objects
 
-INCBIN "baserom.gbc",$1e683,$1e6df - $1e683
+Route22GateScript: ; 0x1e683
+    call $3c3c
+    ld hl, $669e
+    ld a, [$d60e]
+    call $3d97
+    ld a, [$d361]
+    cp $4
+    ld a, $22
+    jr c, .asm_1e69a ; 0x1e696 $2
+    ld a, $21
+.asm_1e69a
+    ld [$d365], a
+    ret
+; 0x1e69e
+INCBIN "baserom.gbc",$1e69e,$6
+Route22GateScript0: ; 0x1e6a4
+    ld hl, $66b5
+    call $34bf
+    ret nc
+    xor a
+    ld [$ff00+$b4], a
+    ld a, $1
+    ld [$ff00+$8c], a
+    jp $2920
+; 0x1e6b5
+INCBIN "baserom.gbc",$1e6b5,$1e6cd - $1e6b5
+Route22GateScript1: ; 0x1e6cd
+    ld a, [$cd38]
+    and a
+    ret nz
+    xor a
+    ld [$cd6b], a
+    call Delay3
+    ld a, $0
+    ld [$d60e], a
+    ret
+; 0x1e6df
 
 Route22GateTexts: ; 0x1e6df
     dw Route22GateText1
@@ -9613,7 +10488,17 @@
 
     dw $68df ; objects
 
-INCBIN "baserom.gbc",$1e76a,$1e834 - $1e76a
+BillsHouseScript: ; 0x1e76a
+    call $3c3c
+    ld a, [$d661]
+    ld hl, $6776
+    jp $3d97
+; 0x1e776
+INCBIN "baserom.gbc",$1e776,$c
+BillsHouseScript0: ; 0x1e782
+    ret
+; 0x1e783
+INCBIN "baserom.gbc",$1e783,$b1
 
 BillsHouseTexts: ; 0x1e834
     dw BillsHouseText1, BillsHouseText2, BillsHouseText3, BillsHouseText4
@@ -16691,7 +17576,10 @@
 SafariZoneRestHouse1Blocks: ; 16
     INCBIN "maps/safarizoneresthouse1.blk"
 
-INCBIN "baserom.gbc",$4410b,$4410e - $4410b
+LavenderTownScript: ; 0x4410b
+    jp $3c3c
+; 0x4410e
+INCBIN "baserom.gbc",$4410e,$0
 
 LavenderTownTexts: ; 0x4410e
     dw LavenderTownText1, LavenderTownText2, LavenderTownText3, LavenderTownText4, LavenderTownText5, LavenderTownText6, LavenderTownText7, LavenderTownText8, LavenderTownText9
@@ -16746,7 +17634,11 @@
 
     dw $4277 ; objects
 
-INCBIN "baserom.gbc",$4425d,$4426c - $4425d
+ViridianPokeCenterScript: ; 0x4425d
+    call $22fa
+    jp $3c3c
+; 0x44263
+INCBIN "baserom.gbc",$44263,$9
 
 ViridianPokeCenterText2:
 ViridianPokeCenterText1: ; 0x4426c
@@ -16839,7 +17731,16 @@
 
     dw $45f6 ; objects
 
-INCBIN "baserom.gbc",$444dc,$444f5 - $444dc
+RockTunnel1Script: ; 0x444dc
+    call $3c3c
+    ld hl, $4505
+    ld de, $44ef
+    ld a, [$d621]
+    call $3160
+    ld [$d621], a
+    ret
+; 0x444ef
+INCBIN "baserom.gbc",$444ef,$6
 
 RockTunnel1Texts: ; 0x444f5
     dw RockTunnel1Text1, RockTunnel1Text2, RockTunnel1Text3, RockTunnel1Text4, RockTunnel1Text5, RockTunnel1Text6, RockTunnel1Text7, RockTunnel1Text8
@@ -16935,7 +17836,49 @@
 
     dw $484f ; objects
 
-INCBIN "baserom.gbc",$447e9,$4484b - $447e9
+SeafoamIslands1Script: ; 0x447e9
+    call $3c3c
+    ld hl, $d7e7
+    set 0, [hl]
+    ld hl, $cd60
+    bit 7, [hl]
+    res 7, [hl]
+    jr z, .asm_4483b ; 0x447f8 $41
+    ld hl, $4846
+    call $34e4
+    ret nc
+    ld hl, $d7e8
+    ld a, [$cd3d]
+    cp $1
+    jr nz, .asm_44819 ; 0x44809 $e
+    set 6, [hl]
+    ld a, $d7
+    ld [$d079], a
+    ld a, $d9
+    ld [$d07a], a
+    jr .asm_44825 ; 0x44817 $c
+.asm_44819
+    set 7, [hl]
+    ld a, $d8
+    ld [$d079], a
+    ld a, $da
+    ld [$d07a], a
+.asm_44825
+    ld a, [$d079]
+    ld [$cc4d], a
+    ld a, $11
+    call Predef
+    ld a, [$d07a]
+    ld [$cc4d], a
+    ld a, $15
+    jp $3e6d
+.asm_4483b
+    ld a, $9f
+    ld [$d71d], a
+    ld hl, $4846
+    jp $6981
+; 0x44846
+INCBIN "baserom.gbc",$44846,$5
 
 SeafoamIslands1Texts: ; 0x4484b
     dw SeafoamIslands1Text1, SeafoamIslands1Text2
@@ -16980,7 +17923,10 @@
 
     dw $493c ; objects
 
-INCBIN "baserom.gbc",$44932,$44935 - $44932
+SSAnne3Script: ; 0x44932
+    jp $3c3c
+; 0x44935
+INCBIN "baserom.gbc",$44935,$0
 
 SSAnne3Texts: ; 0x44935
     dw SSAnne3Text1
@@ -17016,7 +17962,17 @@
 
     dw $4acd ; objects
 
-INCBIN "baserom.gbc",$44980,$44a24 - $44980
+VictoryRoad3Script: ; 0x44980
+    call $4996
+    call $3c3c
+    ld hl, $4a38
+    ld de, $49b1
+    ld a, [$d640]
+    call $3160
+    ld [$d640], a
+    ret
+; 0x44996
+INCBIN "baserom.gbc",$44996,$8e
 
 VictoryRoad3Texts: ; 0x44a24
     dw VictoryRoad3Text1, VictoryRoad3Text2, VictoryRoad3Text3, VictoryRoad3Text4, VictoryRoad3Text5, VictoryRoad3Text6, VictoryRoad3Text7, VictoryRoad3Text8, VictoryRoad3Text9, VictoryRoad3Text10
@@ -17089,7 +18045,17 @@
 
     dw $4ce7 ; objects
 
-INCBIN "baserom.gbc",$44bca,$44c14 - $44bca
+RocketHideout1Script: ; 0x44bca
+    call $4be0
+    call $3c3c
+    ld hl, $4c22
+    ld de, $4c0e
+    ld a, [$d631]
+    call $3160
+    ld [$d631], a
+    ret
+; 0x44be0
+INCBIN "baserom.gbc",$44be0,$34
 
 RocketHideout1Texts: ; 0x44c14
     dw RocketHideout1Text1, RocketHideout1Text2, RocketHideout1Text3, RocketHideout1Text4, RocketHideout1Text5, RocketHideout1Text6, RocketHideout1Text7
@@ -17167,7 +18133,16 @@
 
     dw $50f7 ; objects
 
-INCBIN "baserom.gbc",$44e27,$450c7 - $44e27
+RocketHideout2Script: ; 0x44e27
+    call $3c3c
+    ld hl, $50d1
+    ld de, $4e3a
+    ld a, [$d632]
+    call $3160
+    ld [$d632], a
+    ret
+; 0x44e3a
+INCBIN "baserom.gbc",$44e3a,$28d
 
 RocketHideout2Texts: ; 0x450c7
     dw RocketHideout2Text1, RocketHideout2Text2, RocketHideout2Text3, RocketHideout2Text4, RocketHideout2Text5
@@ -17219,7 +18194,16 @@
 
     dw $534d ; objects
 
-INCBIN "baserom.gbc",$45225,$452fa - $45225
+RocketHideout3Script: ; 0x45225
+    call $3c3c
+    ld hl, $5302
+    ld de, $5238
+    ld a, [$d633]
+    call $3160
+    ld [$d633], a
+    ret
+; 0x45238
+INCBIN "baserom.gbc",$45238,$c2
 
 RocketHideout3Texts: ; 0x452fa
     dw RocketHideout3Text1, RocketHideout3Text2, RocketHideout3Text3, RocketHideout3Text4
@@ -17272,7 +18256,17 @@
 
     dw $55f1 ; objects
 
-INCBIN "baserom.gbc",$4545d,$45501 - $4545d
+RocketHideout4Script: ; 0x4545d
+    call $5473
+    call $3c3c
+    ld hl, $5515
+    ld de, $54ae
+    ld a, [$d634]
+    call $3160
+    ld [$d634], a
+    ret
+; 0x45473
+INCBIN "baserom.gbc",$45473,$8e
 
 RocketHideout4Texts: ; 0x45501
     dw RocketHideout4Text1, RocketHideout4Text2, RocketHideout4Text3, RocketHideout4Text4, RocketHideout4Text5, RocketHideout4Text6, RocketHideout4Text7, RocketHideout4Text8, RocketHideout4Text9, RocketHideout4Text10
@@ -17373,7 +18367,23 @@
 
     dw $5791 ; objects
 
-INCBIN "baserom.gbc",$45710,$4576b - $45710
+RocketHideoutElevatorScript: ; 0x45710
+    ld hl, $d126
+    bit 5, [hl]
+    res 5, [hl]
+    push hl
+    call nz, $572c
+    pop hl
+    bit 7, [hl]
+    res 7, [hl]
+    call nz, $575f
+    xor a
+    ld [$cf0c], a
+    inc a
+    ld [$cc3c], a
+    ret
+; 0x4572c
+INCBIN "baserom.gbc",$4572c,$3f
 
 RocketHideoutElevatorTexts: ; 0x4576b
     dw RocketHideoutElevatorText1
@@ -17423,7 +18433,23 @@
 
     dw $5844 ; objects
 
-INCBIN "baserom.gbc",$457c0,$45833 - $457c0
+SilphCoElevatorScript: ; 0x457c0
+    ld hl, $d126
+    bit 5, [hl]
+    res 5, [hl]
+    push hl
+    call nz, $57dc
+    pop hl
+    bit 7, [hl]
+    res 7, [hl]
+    call nz, $5827
+    xor a
+    ld [$cf0c], a
+    inc a
+    ld [$cc3c], a
+    ret
+; 0x457dc
+INCBIN "baserom.gbc",$457dc,$57
 
 SilphCoElevatorTexts: ; 0x45833
     dw SilphCoElevatorText1
@@ -17463,7 +18489,10 @@
 
     dw $588b ; objects
 
-INCBIN "baserom.gbc",$4586b,$4586e - $4586b
+SafariZoneEastScript: ; 0x4586b
+    jp $3c3c
+; 0x4586e
+INCBIN "baserom.gbc",$4586e,$0
 
 SafariZoneEastTexts: ; 0x4586e
     dw SafariZoneEastText1, SafariZoneEastText2, SafariZoneEastText3, SafariZoneEastText4, SafariZoneEastText5, SafariZoneEastText6, SafariZoneEastText7
@@ -17519,7 +18548,10 @@
 
     dw $59d5 ; objects
 
-INCBIN "baserom.gbc",$459ab,$459ae - $459ab
+SafariZoneNorthScript: ; 0x459ab
+    jp $3c3c
+; 0x459ae
+INCBIN "baserom.gbc",$459ae,$0
 
 SafariZoneNorthTexts: ; 0x459ae
     dw SafariZoneNorthText1, SafariZoneNorthText2, SafariZoneNorthText3, SafariZoneNorthText4, SafariZoneNorthText5, SafariZoneNorthText6, SafariZoneNorthText7
@@ -17591,7 +18623,10 @@
 
     dw $5bc5 ; objects
 
-INCBIN "baserom.gbc",$45bb2,$45bb5 - $45bb2
+SafariZoneCenterScript: ; 0x45bb2
+    jp $3c3c
+; 0x45bb5
+INCBIN "baserom.gbc",$45bb5,$0
 
 SafariZoneCenterTexts: ; 0x45bb5
     dw SafariZoneCenterText1, SafariZoneCenterText2, SafariZoneCenterText3
@@ -17647,7 +18682,10 @@
 
     dw $5cfe ; objects
 
-INCBIN "baserom.gbc",$45ced,$45cf0 - $45ced
+SafariZoneRestHouse1Script: ; 0x45ced
+    jp $3c3c
+; 0x45cf0
+INCBIN "baserom.gbc",$45cf0,$0
 
 SafariZoneRestHouse1Texts: ; 0x45cf0
     dw SafariZoneRestHouse1Text1, SafariZoneRestHouse1Text2
@@ -17685,7 +18723,11 @@
 
     dw $5d43 ; objects
 
-INCBIN "baserom.gbc",$45d2a,$45d2e - $45d2a
+SafariZoneRestHouse2Script: ; 0x45d2a
+    call $3c3c
+    ret
+; 0x45d2e
+INCBIN "baserom.gbc",$45d2e,$0
 
 SafariZoneRestHouse2Texts: ; 0x45d2e
     dw SafariZoneRestHouse2Text1, SafariZoneRestHouse2Text2, SafariZoneRestHouse2Text3
@@ -17728,7 +18770,11 @@
 
     dw $5d8e ; objects
 
-INCBIN "baserom.gbc",$45d75,$45d79 - $45d75
+SafariZoneRestHouse3Script: ; 0x45d75
+    call $3c3c
+    ret
+; 0x45d79
+INCBIN "baserom.gbc",$45d79,$0
 
 SafariZoneRestHouse3Texts: ; 0x45d79
     dw SafariZoneRestHouse3Text1, SafariZoneRestHouse3Text2, SafariZoneRestHouse3Text3
@@ -17771,7 +18817,11 @@
 
     dw $5dd9 ; objects
 
-INCBIN "baserom.gbc",$45dc0,$45dc4 - $45dc0
+SafariZoneRestHouse4Script: ; 0x45dc0
+    call $3c3c
+    ret
+; 0x45dc4
+INCBIN "baserom.gbc",$45dc4,$0
 
 SafariZoneRestHouse4Texts: ; 0x45dc4
     dw SafariZoneRestHouse4Text1, SafariZoneRestHouse4Text2, SafariZoneRestHouse4Text3
@@ -17814,7 +18864,10 @@
 
     dw $5e14 ; objects
 
-INCBIN "baserom.gbc",$45e0b,$45e0e - $45e0b
+UnknownDungeon2Script: ; 0x45e0b
+    jp $3c3c
+; 0x45e0e
+INCBIN "baserom.gbc",$45e0e,$0
 
 UnknownDungeon2Texts: ; 0x45e0e
     dw UnknownDungeon2Text1, UnknownDungeon2Text2, UnknownDungeon2Text3
@@ -17856,7 +18909,16 @@
 
     dw $5f36 ; objects
 
-INCBIN "baserom.gbc",$45ef0,$45f09 - $45ef0
+UnknownDungeon3Script: ; 0x45ef0
+    call $3c3c
+    ld hl, $5f0f
+    ld de, $5f03
+    ld a, [$d650]
+    call $3160
+    ld [$d650], a
+    ret
+; 0x45f03
+INCBIN "baserom.gbc",$45f03,$6
 
 UnknownDungeon3Texts: ; 0x45f09
     dw UnknownDungeon3Text1, UnknownDungeon3Text2, UnknownDungeon3Text3
@@ -17898,7 +18960,16 @@
 
     dw $613d ; objects
 
-INCBIN "baserom.gbc",$45feb,$46004 - $45feb
+RockTunnel2Script: ; 0x45feb
+    call $3c3c
+    ld hl, $6014
+    ld de, $5ffe
+    ld a, [$d620]
+    call $3160
+    ld [$d620], a
+    ret
+; 0x45ffe
+INCBIN "baserom.gbc",$45ffe,$6
 
 RockTunnel2Texts: ; 0x46004
     dw RockTunnel2Text1, RockTunnel2Text2, RockTunnel2Text3, RockTunnel2Text4, RockTunnel2Text5, RockTunnel2Text6, RockTunnel2Text7, RockTunnel2Text8
@@ -17993,7 +19064,47 @@
 
     dw $6376 ; objects
 
-INCBIN "baserom.gbc",$46315,$46372 - $46315
+SeafoamIslands2Script: ; 0x46315
+    call $3c3c
+    ld hl, $cd60
+    bit 7, [hl]
+    res 7, [hl]
+    jr z, .asm_46362 ; 0x4631f $41
+    ld hl, $636d
+    call $34e4
+    ret nc
+    ld hl, $d87f
+    ld a, [$cd3d]
+    cp $1
+    jr nz, .asm_46340 ; 0x46330 $e
+    set 0, [hl]
+    ld a, $d9
+    ld [$d079], a
+    ld a, $db
+    ld [$d07a], a
+    jr .asm_4634c ; 0x4633e $c
+.asm_46340
+    set 1, [hl]
+    ld a, $da
+    ld [$d079], a
+    ld a, $dc
+    ld [$d07a], a
+.asm_4634c
+    ld a, [$d079]
+    ld [$cc4d], a
+    ld a, $11
+    call Predef
+    ld a, [$d07a]
+    ld [$cc4d], a
+    ld a, $15
+    jp $3e6d
+.asm_46362
+    ld a, $a0
+    ld [$d71d], a
+    ld hl, $636d
+    jp $6981
+; 0x4636d
+INCBIN "baserom.gbc",$4636d,$5
 
 SeafoamIslands2Texts: ; 0x46372
     dw SeafoamIslands2Text1, SeafoamIslands2Text2
@@ -18036,7 +19147,47 @@
 
     dw $64b2 ; objects
 
-INCBIN "baserom.gbc",$46451,$464ae - $46451
+SeafoamIslands3Script: ; 0x46451
+    call $3c3c
+    ld hl, $cd60
+    bit 7, [hl]
+    res 7, [hl]
+    jr z, .asm_4649e ; 0x4645b $41
+    ld hl, $64a9
+    call $34e4
+    ret nc
+    ld hl, $d880
+    ld a, [$cd3d]
+    cp $1
+    jr nz, .asm_4647c ; 0x4646c $e
+    set 0, [hl]
+    ld a, $db
+    ld [$d079], a
+    ld a, $df
+    ld [$d07a], a
+    jr .asm_46488 ; 0x4647a $c
+.asm_4647c
+    set 1, [hl]
+    ld a, $dc
+    ld [$d079], a
+    ld a, $e0
+    ld [$d07a], a
+.asm_46488
+    ld a, [$d079]
+    ld [$cc4d], a
+    ld a, $11
+    call Predef
+    ld a, [$d07a]
+    ld [$cc4d], a
+    ld a, $15
+    jp $3e6d
+.asm_4649e
+    ld a, $a1
+    ld [$d71d], a
+    ld hl, $64a9
+    jp $6981
+; 0x464a9
+INCBIN "baserom.gbc",$464a9,$5
 
 SeafoamIslands3Texts: ; 0x464ae
     dw SeafoamIslands3Text1, SeafoamIslands3Text2
@@ -18079,7 +19230,88 @@
 
     dw $66a6 ; objects
 
-INCBIN "baserom.gbc",$4658d,$4669a - $4658d
+SeafoamIslands4Script: ; 0x4658d
+    call $3c3c
+    ld hl, $cd60
+    bit 7, [hl]
+    res 7, [hl]
+    jr z, .asm_465dc ; 0x46597 $43
+    ld hl, $65f6
+    call $34e4
+    ret nc
+    ld hl, $d881
+    ld a, [$cd3d]
+    cp $1
+    jr nz, .asm_465b8 ; 0x465a8 $e
+    set 0, [hl]
+    ld a, $dd
+    ld [$d079], a
+    ld a, $e1
+    ld [$d07a], a
+    jr .asm_465c4 ; 0x465b6 $c
+.asm_465b8
+    set 1, [hl]
+    ld a, $de
+    ld [$d079], a
+    ld a, $e2
+    ld [$d07a], a
+.asm_465c4
+    ld a, [$d079]
+    ld [$cc4d], a
+    ld a, $11
+    call Predef
+    ld a, [$d07a]
+    ld [$cc4d], a
+    ld a, $15
+    call Predef
+    jr .asm_465ed ; 0x465da $11
+.asm_465dc
+    ld a, $a2
+    ld [$d71d], a
+    ld hl, $65f6
+    call $6981
+    ld a, [$d732]
+    bit 4, a
+    ret nz
+.asm_465ed
+    ld hl, $65fb
+    ld a, [$d666]
+    jp $3d97
+; 0x465f6
+INCBIN "baserom.gbc",$465f6,$d
+SeafoamIslands4Script0: ; 0x46603
+    ld a, [$d880]
+    and $3
+    cp $3
+    ret z
+    ld a, [$d361]
+    cp $8
+    ret nz
+    ld a, [$d362]
+    cp $f
+    ret nz
+    ld hl, $ccd3
+    ld de, $6632
+    call $350c
+    dec a
+    ld [$cd38], a
+    call $3486
+    ld hl, $d733
+    set 2, [hl]
+    ld a, $1
+    ld [$d666], a
+    ret
+; 0x46632
+INCBIN "baserom.gbc",$46632,$46639 - $46632
+SeafoamIslands4Script1: ; 0x46639
+    ld a, [$cd38]
+    and a
+    ret nz
+    ld a, $0
+    ld [$d666], a
+    ret
+; 0x46644
+INCBIN "baserom.gbc",$46644,$56
 
 SeafoamIslands4Texts: ; 0x4669a
     dw SeafoamIslands4Text1, SeafoamIslands4Text2, SeafoamIslands4Text3, SeafoamIslands4Text4, SeafoamIslands4Text5, SeafoamIslands4Text6
@@ -18126,7 +19358,53 @@
 
     dw $68bc ; objects
 
-INCBIN "baserom.gbc",$46799,$4687c - $46799
+SeafoamIslands5Script: ; 0x46799
+    call $3c3c
+    ld a, [$d668]
+    ld hl, $67ad
+    jp $3d97
+; 0x467a5
+INCBIN "baserom.gbc",$467a5,$22
+SeafoamIslands5Script0: ; 0x467c7
+    ld a, [$d880]
+    and $3
+    cp $3
+    ret z
+    ld hl, $67fe
+    call $34bf
+    ret nc
+    ld a, [$cd3d]
+    cp $3
+    jr nc, .asm_467e6 ; 0x467db $9
+    ld a, $40
+    ld [$ccd4], a
+    ld a, $2
+    jr .asm_467e8 ; 0x467e4 $2
+.asm_467e6
+    ld a, $1
+.asm_467e8
+    ld [$cd38], a
+    ld a, $40
+    ld [$ccd3], a
+    call $3486
+    ld hl, $d733
+    res 2, [hl]
+    ld a, $1
+    ld [$d668], a
+    ret
+; 0x467fe
+INCBIN "baserom.gbc",$467fe,$46807 - $467fe
+SeafoamIslands5Script1: ; 0x46807
+    ld a, [$cd38]
+    and a
+    ret nz
+    xor a
+    ld [$cd6b], a
+    ld a, $0
+    ld [$d668], a
+    ret
+; 0x46816
+INCBIN "baserom.gbc",$46816,$66
 
 SeafoamIslands5Texts: ; 0x4687c
     dw SeafoamIslands5Text1, SeafoamIslands5Text2, SeafoamIslands5Text3, SeafoamIslands5Text4, SeafoamIslands5Text5
@@ -18248,7 +19526,11 @@
 Route11GateUpstairsBlocks: ; 16
     INCBIN "maps/route11gateupstairs.blk"
 
-INCBIN "baserom.gbc",$480eb,$48157 - $480eb
+INCBIN "baserom.gbc",$480eb,$48152 - $480eb
+Route7Script: ; 0x48152
+    jp $3c3c
+; 0x48155
+INCBIN "baserom.gbc",$48155,$2
 
 Route7Text1: ; 0x48157
     TX_FAR _Route7Text1
@@ -18368,7 +19650,10 @@
 
     dw $42c4 ; objects
 
-INCBIN "baserom.gbc",$48225,$48228 - $48225
+CeladonMart3Script: ; 0x48225
+    jp $3c3c
+; 0x48228
+INCBIN "baserom.gbc",$48228,$0
 
 CeladonMart3Texts: ; 0x48228
     dw CeladonMart3Text1, CeladonMart3Text2, CeladonMart3Text3, CeladonMart3Text4, CeladonMart3Text5, CeladonMart3Text6, CeladonMart3Text7, CeladonMart3Text8, CeladonMart3Text9, CeladonMart3Text10, CeladonMart3Text11, CeladonMart3Text12, CeladonMart3Text13, CeladonMart3Text14, CeladonMart3Text15, CeladonMart3Text16, CeladonMart3Text17
@@ -18492,7 +19777,10 @@
 
     dw $4370 ; objects
 
-INCBIN "baserom.gbc",$48356,$48359 - $48356
+CeladonMart4Script: ; 0x48356
+    jp $3c3c
+; 0x48359
+INCBIN "baserom.gbc",$48359,$0
 
 CeladonMart4Texts: ; 0x48359
     dw CeladonMart4Text1, CeladonMart4Text2, CeladonMart4Text3, CeladonMart4Text4
@@ -18541,7 +19829,10 @@
 
     dw $45a8 ; objects
 
-INCBIN "baserom.gbc",$483d5,$48567 - $483d5
+CeladonMartRoofScript: ; 0x483d5
+    jp $3c3c
+; 0x483d8
+INCBIN "baserom.gbc",$483d8,$18f
 
 CeladonMartRoofText1: ; 0x48567
     TX_FAR _CeladonMartRoofText1
@@ -18605,7 +19896,23 @@
 
     dw $466d ; objects
 
-INCBIN "baserom.gbc",$48600,$4865c - $48600
+CeladonMartElevatorScript: ; 0x48600
+    ld hl, $d126
+    bit 5, [hl]
+    res 5, [hl]
+    push hl
+    call nz, $461c
+    pop hl
+    bit 7, [hl]
+    res 7, [hl]
+    call nz, $4654
+    xor a
+    ld [$cf0c], a
+    inc a
+    ld [$cc3c], a
+    ret
+; 0x4861c
+INCBIN "baserom.gbc",$4861c,$40
 
 CeladonMartElevatorTexts: ; 0x4865c
     dw CeladonMartElevatorText1
@@ -18645,7 +19952,10 @@
 
     dw $46cf ; objects
 
-INCBIN "baserom.gbc",$48694,$48697 - $48694
+CeladonMansion1Script: ; 0x48694
+    jp $3c3c
+; 0x48697
+INCBIN "baserom.gbc",$48697,$0
 
 CeladonMansion1Texts: ; 0x48697
     dw CeladonMansion1Text1, CeladonMansion1Text2, CeladonMansion1Text3, CeladonMansion1Text4, CeladonMansion1Text5
@@ -18720,7 +20030,11 @@
 
     dw $4745 ; objects
 
-INCBIN "baserom.gbc",$4873a,$4873e - $4873a
+CeladonMansion2Script: ; 0x4873a
+    call $3c3c
+    ret
+; 0x4873e
+INCBIN "baserom.gbc",$4873e,$0
 
 CeladonMansion2Texts: ; 0x4873e
     dw CeladonMansion2Text1
@@ -18760,7 +20074,10 @@
 
     dw $47ff ; objects
 
-INCBIN "baserom.gbc",$48790,$48793 - $48790
+CeladonMansion3Script: ; 0x48790
+    jp $3c3c
+; 0x48793
+INCBIN "baserom.gbc",$48793,$0
 
 CeladonMansion3Texts: ; 0x48793
     dw CeladonMansion3Text1, CeladonMansion3Text2, CeladonMansion3Text3, CeladonMansion3Text4, CeladonMansion3Text5, CeladonMansion3Text6, CeladonMansion3Text7, CeladonMansion3Text8
@@ -18849,7 +20166,10 @@
 
     dw $4875 ; objects
 
-INCBIN "baserom.gbc",$4886b,$4886e - $4886b
+CeladonMansion4Script: ; 0x4886b
+    jp $3c3c
+; 0x4886e
+INCBIN "baserom.gbc",$4886e,$0
 
 CeladonMansion4Texts: ; 0x4886e
     dw CeladonMansion4Text1
@@ -18887,7 +20207,11 @@
 
     dw $48d2 ; objects
 
-INCBIN "baserom.gbc",$488b8,$488c6 - $488b8
+CeladonPokecenterScript: ; 0x488b8
+    call $22fa
+    jp $3c3c
+; 0x488be
+INCBIN "baserom.gbc",$488be,$8
 
 CeladonPokecenterText4:
     db $f6, $ff
@@ -18929,7 +20253,20 @@
 
     dw $4b30 ; objects
 
-INCBIN "baserom.gbc",$4890a,$489a6 - $4890a
+CeladonGymScript: ; 0x4890a
+    ld hl, $d126
+    bit 6, [hl]
+    res 6, [hl]
+    call nz, $4927
+    call $3c3c
+    ld hl, $49bc
+    ld de, $494e
+    ld a, [$d5ff]
+    call $3160
+    ld [$d5ff], a
+    ret
+; 0x48927
+INCBIN "baserom.gbc",$48927,$7f
 
 CeladonGymTexts: ; 0x489a6
     dw CeladonGymText1, CeladonGymText2, CeladonGymText3, CeladonGymText4, CeladonGymText5, CeladonGymText6, CeladonGymText7, CeladonGymText8, CeladonGymText9, CeladonGymText10, CeladonGymText11
@@ -19075,7 +20412,19 @@
 
     dw $4fa0 ; objects
 
-INCBIN "baserom.gbc",$48bbd,$48c8a - $48bbd
+CeladonGameCornerScript: ; 0x48bbd
+    call $4bcf
+    call $4bec
+    call $3c3c
+    ld hl, $4c12
+    ld a, [$d65f]
+    jp $3d97
+; 0x48bcf
+INCBIN "baserom.gbc",$48bcf,$49
+CeladonGameCornerScript0: ; 0x48c18
+    ret
+; 0x48c19
+INCBIN "baserom.gbc",$48c19,$71
 
 CeladonGameCornerTexts: ; 0x48c8a
     dw CeladonGameCornerText1, CeladonGameCornerText2, CeladonGameCornerText3, CeladonGameCornerText4, CeladonGameCornerText5, CeladonGameCornerText6, CeladonGameCornerText7, CeladonGameCornerText8, CeladonGameCornerText9, CeladonGameCornerText10, CeladonGameCornerText11, CeladonGameCornerText12, CeladonGameCornerText13
@@ -19384,7 +20733,10 @@
 
     dw $5085 ; objects
 
-INCBIN "baserom.gbc",$49069,$4906c - $49069
+CeladonMart5Script: ; 0x49069
+    jp $3c3c
+; 0x4906c
+INCBIN "baserom.gbc",$4906c,$0
 
 CeladonMart5Texts: ; 0x4906c
     dw CeladonMart5Text1, CeladonMart5Text2, CeladonMart5Text3, CeladonMart5Text4, CeladonMart5Text5
@@ -19434,7 +20786,10 @@
 
     dw $5108 ; objects
 
-INCBIN "baserom.gbc",$490f0,$490fd - $490f0
+CeladonPrizeRoomScript: ; 0x490f0
+    jp $3c3c
+; 0x490f3
+INCBIN "baserom.gbc",$490f3,$a
 
 CeladonPrizeRoomText1: ; 0x490fd
     TX_FAR _CeladonPrizeRoomText1
@@ -19477,7 +20832,11 @@
 
     dw $51bc ; objects
 
-INCBIN "baserom.gbc",$49151,$49155 - $49151
+CeladonDinerScript: ; 0x49151
+    call $3c3c
+    ret
+; 0x49155
+INCBIN "baserom.gbc",$49155,$0
 
 CeladonDinerTexts: ; 0x49155
     dw CeladonDinerText1, CeladonDinerText2, CeladonDinerText3, CeladonDinerText4, CeladonDinerText5
@@ -19556,7 +20915,11 @@
 
     dw $5227 ; objects
 
-INCBIN "baserom.gbc",$4920e,$49212 - $4920e
+CeladonHouseScript: ; 0x4920e
+    call $3c3c
+    ret
+; 0x49212
+INCBIN "baserom.gbc",$49212,$0
 
 CeladonHouseTexts: ; 0x49212
     dw CeladonHouseText1, CeladonHouseText2, CeladonHouseText3
@@ -19602,7 +20965,10 @@
 
     dw $5281 ; objects
 
-INCBIN "baserom.gbc",$49269,$4926c - $49269
+CeladonHotelScript: ; 0x49269
+    jp $3c3c
+; 0x4926c
+INCBIN "baserom.gbc",$4926c,$0
 
 CeladonHotelTexts: ; 0x4926c
     dw CeladonHotelText1, CeladonHotelText2, CeladonHotelText3
@@ -19648,7 +21014,11 @@
 
     dw $5376 ; objects
 
-INCBIN "baserom.gbc",$492cf,$492e2 - $492cf
+MtMoonPokecenterScript: ; 0x492cf
+    call $22fa
+    jp $3c3c
+; 0x492d5
+INCBIN "baserom.gbc",$492d5,$d
 
 MtMoonPokecenterText2:
 MtMoonPokecenterText1: ; 0x492e2
@@ -19747,7 +21117,11 @@
 
     dw $53d4 ; objects
 
-INCBIN "baserom.gbc",$493ba,$493c9 - $493ba
+RockTunnelPokecenterScript: ; 0x493ba
+    call $22fa
+    jp $3c3c
+; 0x493c0
+INCBIN "baserom.gbc",$493c0,$9
 
 RockTunnelPokecenterText2:
 RockTunnelPokecenterText1: ; 0x493c9
@@ -19789,7 +21163,10 @@
 
     dw $5416 ; objects
 
-INCBIN "baserom.gbc",$4940c,$4940f - $4940c
+Route11GateScript: ; 0x4940c
+    jp $3c3c
+; 0x4940f
+INCBIN "baserom.gbc",$4940f,$0
 
 Route11GateTexts: ; 0x4940f
     dw Route11GateText1
@@ -19828,7 +21205,10 @@
 
     dw $54da ; objects
 
-INCBIN "baserom.gbc",$49454,$4945f - $49454
+Route11GateUpstairsScript: ; 0x49454
+    jp $3c3f
+; 0x49457
+INCBIN "baserom.gbc",$49457,$8
 
 Route11GateUpstairsText1: ; 0x4945f
     db $08 ; asm
@@ -19920,7 +21300,10 @@
 
     dw $550e ; objects
 
-INCBIN "baserom.gbc",$49504,$49507 - $49504
+Route12GateScript: ; 0x49504
+    jp $3c3c
+; 0x49507
+INCBIN "baserom.gbc",$49507,$0
 
 Route12GateTexts: ; 0x49507
     dw Route12GateText1
@@ -19962,7 +21345,10 @@
 
     dw $55de ; objects
 
-INCBIN "baserom.gbc",$49560,$49563 - $49560
+Route12GateUpstairsScript: ; 0x49560
+    jp $3c3f
+; 0x49563
+INCBIN "baserom.gbc",$49563,$0
 
 Route12GateUpstairsTexts: ; 0x49563
     dw Route12GateUpstairsText1, Route12GateUpstairsText2, Route12GateUpstairsText3
@@ -20034,7 +21420,10 @@
 
     dw $560c ; objects
 
-INCBIN "baserom.gbc",$49602,$49605 - $49602
+Route15GateScript: ; 0x49602
+    jp $3c3c
+; 0x49605
+INCBIN "baserom.gbc",$49605,$0
 
 Route15GateTexts: ; 0x49605
     dw Route15GateText1
@@ -20075,7 +21464,47 @@
 
     dw $578b ; objects
 
-INCBIN "baserom.gbc",$496be,$4975a - $496be
+Route16GateMapScript: ; 0x496be
+    ld hl, $d732
+    res 5, [hl]
+    call $3c3c
+    ld a, [$d660]
+    ld hl, $56cf
+    jp $3d97
+; 0x496cf
+INCBIN "baserom.gbc",$496cf,$8
+Route16GateMapScript0: ; 0x496d7
+    call $5755
+    ret nz
+    ld hl, $5714
+    call $34bf
+    ret nc
+    ld a, $3
+    ld [$ff00+$8c], a
+    call $2920
+    xor a
+    ld [$ff00+$b4], a
+    ld a, [$cd3d]
+    cp $1
+    jr z, .asm_4970e ; 0x496f1 $1b
+    ld a, [$cd3d]
+    dec a
+    ld [$cd38], a
+    ld b, $0
+    ld c, a
+    ld a, $40
+    ld hl, $ccd3
+    call $36e0
+    call $3486
+    ld a, $1
+    ld [$d660], a
+    ret
+.asm_4970e
+    ld a, $2
+    ld [$d660], a
+    ret
+; 0x49714
+INCBIN "baserom.gbc",$49714,$46
 
 Route16GateMapTexts: ; 0x4975a
     dw Route16GateMapText1, Route16GateMapText2, Route16GateMapText3
@@ -20144,7 +21573,10 @@
 
     dw $584c ; objects
 
-INCBIN "baserom.gbc",$4980b,$4980e - $4980b
+Route16GateUpstairsScript: ; 0x4980b
+    jp $3c3f
+; 0x4980e
+INCBIN "baserom.gbc",$4980e,$0
 
 Route16GateUpstairsTexts: ; 0x4980e
     dw Route16GateUpstairsText1, Route16GateUpstairsText2, Route16GateUpstairsText3, Route16GateUpstairsText4
@@ -20206,7 +21638,47 @@
 
     dw $5937 ; objects
 
-INCBIN "baserom.gbc",$49876,$4990d - $49876
+Route18GateScript: ; 0x49876
+    ld hl, $d732
+    res 5, [hl]
+    call $3c3c
+    ld a, [$d669]
+    ld hl, $5887
+    jp $3d97
+; 0x49887
+INCBIN "baserom.gbc",$49887,$8
+Route18GateScript0: ; 0x4988f
+    call $5755
+    ret nz
+    ld hl, $58cc
+    call $34bf
+    ret nc
+    ld a, $2
+    ld [$ff00+$8c], a
+    call $2920
+    xor a
+    ld [$ff00+$b4], a
+    ld a, [$cd3d]
+    cp $1
+    jr z, .asm_498c6 ; 0x498a9 $1b
+    ld a, [$cd3d]
+    dec a
+    ld [$cd38], a
+    ld b, $0
+    ld c, a
+    ld a, $40
+    ld hl, $ccd3
+    call $36e0
+    call $3486
+    ld a, $1
+    ld [$d669], a
+    ret
+.asm_498c6
+    ld a, $2
+    ld [$d669], a
+    ret
+; 0x498cc
+INCBIN "baserom.gbc",$498cc,$41
 
 Route18GateTexts: ; 0x4990d
     dw Route18GateText1, Route18GateText2
@@ -20259,7 +21731,10 @@
 
     dw $59a4 ; objects
 
-INCBIN "baserom.gbc",$49975,$49978 - $49975
+Route18GateHeaderScript: ; 0x49975
+    jp $3c3f
+; 0x49978
+INCBIN "baserom.gbc",$49978,$0
 
 Route18GateHeaderTexts: ; 0x49978
     dw Route18GateHeaderText1, Route18GateHeaderText2, Route18GateHeaderText3
@@ -20312,7 +21787,16 @@
 
     dw $5b06 ; objects
 
-INCBIN "baserom.gbc",$499c8,$499e1 - $499c8
+MtMoon1Script: ; 0x499c8
+    call $3c3c
+    ld hl, $59fd
+    ld de, $59db
+    ld a, [$d606]
+    call $3160
+    ld [$d606], a
+    ret
+; 0x499db
+INCBIN "baserom.gbc",$499db,$6
 
 MtMoon1Texts: ; 0x499e1
     dw MtMoon1Text1, MtMoon1Text2, MtMoon1Text3, MtMoon1Text4, MtMoon1Text5, MtMoon1Text6, MtMoon1Text7, MtMoon1Text8, MtMoon1Text9, MtMoon1Text10, MtMoon1Text11, MtMoon1Text12, MtMoon1Text13, MtMoon1Text14
@@ -20413,7 +21897,28 @@
 
     dw $5fdb ; objects
 
-INCBIN "baserom.gbc",$49d0b,$49e34 - $49d0b
+MtMoon3Script: ; 0x49d0b
+    call $3c3c
+    ld hl, $5e48
+    ld de, $5d63
+    ld a, [$d607]
+    call $3160
+    ld [$d607], a
+    ld a, [$d7f6]
+    bit 1, a
+    ret z
+    ld hl, $5d37
+    call $34bf
+    jr nc, .asm_49d31 ; 0x49d29 $6
+    ld hl, $d72e
+    set 4, [hl]
+    ret
+.asm_49d31
+    ld hl, $d72e
+    res 4, [hl]
+    ret
+; 0x49d37
+INCBIN "baserom.gbc",$49d37,$fd
 
 MtMoon3Texts: ; 0x49e34
     dw MtMoon3Text1, MtMoon3Text2, MtMoon3Text3, MtMoon3Text4, MtMoon3Text5, MtMoon3Text6, MtMoon3Text7, MtMoon3Text8, MtMoon3Text9
@@ -20572,7 +22077,10 @@
 
     dw $61dc ; objects
 
-INCBIN "baserom.gbc",$4a1b5,$4a1b8 - $4a1b5
+SafariZoneWestScript: ; 0x4a1b5
+    jp $3c3c
+; 0x4a1b8
+INCBIN "baserom.gbc",$4a1b8,$0
 
 SafariZoneWestTexts: ; 0x4a1b8
     dw SafariZoneWestText1, SafariZoneWestText2, SafariZoneWestText3, SafariZoneWestText4, SafariZoneWestText5, SafariZoneWestText6, SafariZoneWestText7, SafariZoneWestText8
@@ -20639,7 +22147,10 @@
 
     dw $6365 ; objects
 
-INCBIN "baserom.gbc",$4a317,$4a31a - $4a317
+SafariZoneSecretHouseScript: ; 0x4a317
+    jp $3c3c
+; 0x4a31a
+INCBIN "baserom.gbc",$4a31a,$0
 
 SafariZoneSecretHouseTexts: ; 0x4a31a
     dw SafariZoneSecretHouseText1
@@ -20794,7 +22305,39 @@
 
     dw $7d53 ; objects
 
-INCBIN "baserom.gbc",$4fd10,$4fd4c - $4fd10
+BattleCenterMScript: ; 0x4fd10
+    call $3c3c
+    ld a, [$ff00+$aa]
+    cp $2
+    ld a, $8
+    jr z, .asm_4fd1d ; 0x4fd19 $2
+    ld a, $c
+.asm_4fd1d
+    ld [$ff00+$8d], a
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $34ae
+    ld hl, $d72d
+    bit 0, [hl]
+    set 0, [hl]
+    ret nz
+    ld hl, $c214
+    ld a, $8
+    ld [hli], a
+    ld a, $a
+    ld [hl], a
+    ld a, $8
+    ld [$c119], a
+    ld a, [$ff00+$aa]
+    cp $2
+    ret z
+    ld a, $7
+    ld [$c215], a
+    ld a, $c
+    ld [$c119], a
+    ret
+; 0x4fd4c
+INCBIN "baserom.gbc",$4fd4c,$0
 
 BattleCenterMTexts: ; 0x4fd4c
     dw BattleCenterMText1
@@ -20824,7 +22367,10 @@
 
     dw $7d87 ; objects
 
-INCBIN "baserom.gbc",$4fd7d,$4fd80 - $4fd7d
+TradeCenterMScript: ; 0x4fd7d
+    jp $7d10
+; 0x4fd80
+INCBIN "baserom.gbc",$4fd80,$0
 
 TradeCenterMTexts: ; 0x4fd80
     dw TradeCenterMText1
@@ -21268,7 +22814,10 @@
 
     dw $4936 ; objects
 
-INCBIN "baserom.gbc",$50935,$50936 - $50935
+IndigoPlateauScript: ; 0x50935
+    ret
+; 0x50936
+INCBIN "baserom.gbc",$50936,$0
 
 IndigoPlateauObject: ; 0x50936 (size=20)
     db $e ; border tile
@@ -21379,7 +22928,10 @@
 SaffronCityBlocks: ; 360
     INCBIN "maps/saffroncity.blk"
 
-INCBIN "baserom.gbc",$50c00,$50c03 - $50c00
+SaffronCityScript: ; 0x50c00
+    jp $3c3c
+; 0x50c03
+INCBIN "baserom.gbc",$50c03,$0
 
 SaffronCityTexts: ; 0x50c03
     dw SaffronCityText1, SaffronCityText2, SaffronCityText3, SaffronCityText4, SaffronCityText5, SaffronCityText6, SaffronCityText7, SaffronCityText8, SaffronCityText9, SaffronCityText10, SaffronCityText11, SaffronCityText12, SaffronCityText13, SaffronCityText14, SaffronCityText15, SaffronCityText16, SaffronCityText17, SaffronCityText18, SaffronCityText19, SaffronCityText20, SaffronCityText21, SaffronCityText22, SaffronCityText23, SaffronCityText24, SaffronCityText25
@@ -21477,7 +23029,20 @@
     TX_FAR _SaffronCityText25
     db $50
 
-INCBIN "baserom.gbc",$50ca9,$50d22 - $50ca9
+Route20Script: ; 0x50ca9
+    ld hl, $d7e7
+    bit 0, [hl]
+    res 0, [hl]
+    call nz, $4cc6
+    call $3c3c
+    ld hl, $4d3a
+    ld de, $4d1c
+    ld a, [$d628]
+    call $3160
+    ld [$d628], a
+    ret
+; 0x50cc6
+INCBIN "baserom.gbc",$50cc6,$5c
 
 Route20Texts: ; 0x50d22
     dw Route20Text1, Route20Text2, Route20Text3, Route20Text4, Route20Text5, Route20Text6, Route20Text7, Route20Text8, Route20Text9, Route20Text10, Route20Text11, Route20Text12
@@ -21551,7 +23116,162 @@
     TX_FAR _Route20Text11
     db $50
 
-INCBIN "baserom.gbc",$50eb2,$51175 - $50eb2
+Route22Script: ; 0x50eb2
+    call $3c3c
+    ld hl, $4ebe
+    ld a, [$d60a]
+    jp $3d97
+; 0x50ebe
+INCBIN "baserom.gbc",$50ebe,$42
+Route22Script0: ; 0x50f00
+    ld a, [$d7eb]
+    bit 7, a
+    ret z
+    ld hl, $4f2d
+    call $34bf
+    ret nc
+    ld a, [$cd3d]
+    ld [$cf0d], a
+    xor a
+    ld [$ff00+$b4], a
+    ld a, $f0
+    ld [$cd6b], a
+    ld a, $2
+    ld [$d528], a
+    ld a, [$d7eb]
+    bit 0, a
+    jr nz, .asm_50f32 ; 0x50f25 $b
+    bit 1, a
+    jp nz, $504e
+    ret
+    inc b
+    dec e
+    dec b
+    dec e
+    rst $38
+.asm_50f32
+    ld a, $1
+    ld [$cd4f], a
+    xor a
+    ld [$cd50], a
+    ld a, $4c
+    call Predef
+    ld a, [$d700]
+    and a
+    jr z, .asm_50f4e ; 0x50f44 $8
+    ld a, $ff
+    ld [$c0ee], a
+    call $23b1
+.asm_50f4e
+    ld c, $2
+    ld a, $de
+    call $23a1
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $4ee6
+    ld a, $1
+    ld [$d60a], a
+    ret
+; 0x50f62
+Route22Script1: ; 0x50f62
+    ld a, [$d730]
+    bit 0, a
+    ret nz
+    ld a, [$cf0d]
+    cp $1
+    jr nz, .asm_50f78 ; 0x50f6d $9
+    ld a, $4
+    ld [$d528], a
+    ld a, $4
+    jr .asm_50f7a ; 0x50f76 $2
+.asm_50f78
+    ld a, $c
+.asm_50f7a
+    ld [$ff00+$8d], a
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $34a6
+    xor a
+    ld [$cd6b], a
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $2920
+    ld hl, $d72d
+    set 6, [hl]
+    set 7, [hl]
+    ld hl, $51b7
+    ld de, $51bc
+    call $3354
+    ld a, $e1
+    ld [$d059], a
+    ld hl, $4faf
+    call $4ed6
+    ld a, $2
+    ld [$d60a], a
+    ret
+; 0x50faf
+INCBIN "baserom.gbc",$50faf,$50fb5 - $50faf
+Route22Script2: ; 0x50fb5
+    ld a, [$d057]
+    cp $ff
+    jp z, $4ece
+    ld a, [$c109]
+    and a
+    jr nz, .asm_50fc7 ; 0x50fc1 $4
+    ld a, $4
+    jr .asm_50fc9 ; 0x50fc5 $2
+.asm_50fc7
+    ld a, $c
+.asm_50fc9
+    ld [$ff00+$8d], a
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $34a6
+    ld a, $f0
+    ld [$cd6b], a
+    ld hl, $d7eb
+    set 5, [hl]
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $2920
+    ld a, $ff
+    ld [$c0ee], a
+    call $23b1
+    ld b, $2
+    ld hl, $5b47
+    call Bankswitch
+    ld a, [$cf0d]
+    cp $1
+    jr nz, .asm_50fff ; 0x50ff8 $5
+    call $5008
+    jr .asm_51002 ; 0x50ffd $3
+.asm_50fff
+    call $500d
+.asm_51002
+    ld a, $3
+    ld [$d60a], a
+    ret
+; 0x51008
+INCBIN "baserom.gbc",$51008,$5102a - $51008
+Route22Script3: ; 0x5102a
+    ld a, [$d730]
+    bit 0, a
+    ret nz
+    xor a
+    ld [$cd6b], a
+    ld a, $22
+    ld [$cc4d], a
+    ld a, $11
+    call Predef
+    call $2307
+    ld hl, $d7eb
+    res 0, [hl]
+    res 7, [hl]
+    ld a, $0
+    ld [$d60a], a
+    ret
+; 0x5104e
+INCBIN "baserom.gbc",$5104e,$127
 
 Route22Texts: ; 0x51175
     dw Route22Text1, Route22Text2, Route22Text3
@@ -21590,7 +23310,52 @@
     TX_FAR _Route22Text3
     db $50
 
-INCBIN "baserom.gbc",$511da,$512f7 - $511da
+Route23Script: ; 0x511da
+    call $51e9
+    call $3c3c
+    ld hl, $5213
+    ld a, [$d667]
+    jp $3d97
+; 0x511e9
+INCBIN "baserom.gbc",$511e9,$30
+Route23Script0: ; 0x51219
+    ld hl, $5255
+    ld a, [$d361]
+    ld b, a
+    ld e, $0
+    ld c, $7
+.asm_51224
+    ld a, [hli]
+    cp $ff
+    ret z
+    inc e
+    dec c
+    cp b
+    jr nz, .asm_51224 ; 0x5122b $f7
+    cp $23
+    jr nz, .asm_51237 ; 0x5122f $6
+    ld a, [$d362]
+    cp $e
+    ret nc
+.asm_51237
+    ld a, e
+    ld [$ff00+$8c], a
+    ld a, c
+    ld [$cd3d], a
+    ld b, $2
+    ld hl, $d7ed
+    ld a, $10
+    call Predef
+    ld a, c
+    and a
+    ret nz
+    call $525d
+    call $2920
+    xor a
+    ld [$ff00+$b4], a
+    ret
+; 0x51255
+INCBIN "baserom.gbc",$51255,$a2
 
 Route23Texts: ; 0x512f7
     dw Route23Text1, Route23Text2, Route23Text3, Route23Text4, Route23Text5, Route23Text6, Route23Text7, Route23Text8
@@ -21644,7 +23409,16 @@
     TX_FAR _Route23Text8
     db $50
 
-INCBIN "baserom.gbc",$513ad,$5144b - $513ad
+Route24Script: ; 0x513ad
+    call $3c3c
+    ld hl, $545b
+    ld de, $53cb
+    ld a, [$d602]
+    call $3160
+    ld [$d602], a
+    ret
+; 0x513c0
+INCBIN "baserom.gbc",$513c0,$8b
 
 Route24Texts: ; 0x5144b
     dw Route24Text1, Route24Text2, Route24Text3, Route24Text4, Route24Text5, Route24Text6, Route24Text7, Route24Text8
@@ -21735,7 +23509,18 @@
     call LoadTrainerHeader
     jp $24d7
 
-INCBIN "baserom.gbc",$51571,$51628 - $51571
+INCBIN "baserom.gbc",$51571,$515cb - $51571
+Route25Script: ; 0x515cb
+    call $55e1
+    call $3c3c
+    ld hl, $563e
+    ld de, $5622
+    ld a, [$d603]
+    call $3160
+    ld [$d603], a
+    ret
+; 0x515e1
+INCBIN "baserom.gbc",$515e1,$47
 
 Route25Texts: ; 0x51628
     dw Route25Text1, Route25Text2, Route25Text3, Route25Text4, Route25Text5, Route25Text6, Route25Text7, Route25Text8, Route25Text9, Route25Text10, Route25Text11
@@ -21810,7 +23595,24 @@
 
     dw $5915 ; objects
 
-INCBIN "baserom.gbc",$5179d,$5181b - $5179d
+VictoryRoad2Script: ; 0x5179d
+    ld hl, $d126
+    bit 6, [hl]
+    res 6, [hl]
+    call nz, $57c4
+    ld hl, $d126
+    bit 5, [hl]
+    res 5, [hl]
+    call nz, $57c9
+    call $3c3c
+    ld hl, $5835
+    ld de, $57eb
+    ld a, [$d63f]
+    call $3160
+    ld [$d63f], a
+    ret
+; 0x517c4
+INCBIN "baserom.gbc",$517c4,$57
 
 VictoryRoad2Texts: ; 0x5181b
     dw VictoryRoad2Text1, VictoryRoad2Text2, VictoryRoad2Text3, VictoryRoad2Text4, VictoryRoad2Text5, VictoryRoad2Text6, VictoryRoad2Text7, VictoryRoad2Text8, VictoryRoad2Text9, VictoryRoad2Text10, VictoryRoad2Text11, VictoryRoad2Text12, VictoryRoad2Text13
@@ -21904,7 +23706,11 @@
 
     dw $5a4d ; objects
 
-INCBIN "baserom.gbc",$51a42,$51a4d - $51a42
+MtMoon2Script: ; 0x51a42
+    call $3c3c
+    ret
+; 0x51a46
+INCBIN "baserom.gbc",$51a46,$7
 
 MtMoon2Object: ; 0x51a4d (size=68)
     db $3 ; border tile
@@ -21944,7 +23750,17 @@
 
     dw $5ed7 ; objects
 
-INCBIN "baserom.gbc",$51b61,$51d3f - $51b61
+SilphCo7Script: ; 0x51b61
+    call $5b77
+    call $3c3c
+    ld hl, $5d5d
+    ld de, $5c17
+    ld a, [$d648]
+    call $3160
+    ld [$d648], a
+    ret
+; 0x51b77
+INCBIN "baserom.gbc",$51b77,$1c8
 
 SilphCo7Texts: ; 0x51d3f
     dw SilphCo7Text1, SilphCo7Text2, SilphCo7Text3, SilphCo7Text4, SilphCo7Text5, SilphCo7Text6, SilphCo7Text7, SilphCo7Text8, SilphCo7Text9, SilphCo7Text10, SilphCo7Text11, SilphCo7Text12, SilphCo7Text13, SilphCo7Text14, SilphCo7Text15
@@ -23121,7 +24937,11 @@
 FuchsiaHouse3Blocks: ; 16
     INCBIN "maps/fuchsiahouse3.blk"
 
-INCBIN "baserom.gbc",$5524f,$554ee - $5524f
+INCBIN "baserom.gbc",$5524f,$554e3 - $5524f
+Route2Script: ; 0x554e3
+    jp $3c3c
+; 0x554e6
+INCBIN "baserom.gbc",$554e6,$8
 
 Route2Text3: ; 0x554ee
     TX_FAR _Route2Text3
@@ -23131,7 +24951,16 @@
     TX_FAR _Route2Text4
     db $50
 
-INCBIN "baserom.gbc",$554f8,$55511 - $554f8
+Route3Script: ; 0x554f8
+    call $3c3c
+    ld hl, $5525
+    ld de, $550b
+    ld a, [$d5f8]
+    call $3160
+    ld [$d5f8], a
+    ret
+; 0x5550b
+INCBIN "baserom.gbc",$5550b,$6
 
 Route3Texts: ; 0x55511
     dw Route3Text1, Route3Text2, Route3Text3, Route3Text4, Route3Text5, Route3Text6, Route3Text7, Route3Text8, Route3Text9, Route3Text10
@@ -23210,7 +25039,16 @@
     TX_FAR _Route3Text10
     db $50
 
-INCBIN "baserom.gbc",$55658,$55671 - $55658
+Route4Script: ; 0x55658
+    call $3c3c
+    ld hl, $567d
+    ld de, $566b
+    ld a, [$d5f9]
+    call $3160
+    ld [$d5f9], a
+    ret
+; 0x5566b
+INCBIN "baserom.gbc",$5566b,$6
 
 Route4Texts: ; 0x55671
     dw Route4Text1, Route4Text2, Route4Text3, Route4Text4, Route4Text5, Route4Text6
@@ -23237,7 +25075,10 @@
     TX_FAR _Route4Text6
     db $50
 
-INCBIN "baserom.gbc",$556b2,$556b5 - $556b2
+Route5Script: ; 0x556b2
+    jp $3c3c
+; 0x556b5
+INCBIN "baserom.gbc",$556b5,$0
 
 Route5Texts: ; 0x556b5
     dw Route5Text1
@@ -23246,7 +25087,16 @@
     TX_FAR _Route5Text1
     db $50
 
-INCBIN "baserom.gbc",$556bc,$556d5 - $556bc
+Route9Script: ; 0x556bc
+    call $3c3c
+    ld hl, $56eb
+    ld de, $56cf
+    ld a, [$d604]
+    call $3160
+    ld [$d604], a
+    ret
+; 0x556cf
+INCBIN "baserom.gbc",$556cf,$6
 
 Route9Texts: ; 0x556d5
     dw Route9Text1, Route9Text2, Route9Text3, Route9Text4, Route9Text5, Route9Text6, Route9Text7, Route9Text8, Route9Text9, Route9Text10, Route9Text11
@@ -23311,7 +25161,16 @@
     TX_FAR _Route9Text11
     db $50
 
-INCBIN "baserom.gbc",$5581e,$55837 - $5581e
+Route13Script: ; 0x5581e
+    call $3c3c
+    ld hl, $5851
+    ld de, $5831
+    ld a, [$d61a]
+    call $3160
+    ld [$d61a], a
+    ret
+; 0x55831
+INCBIN "baserom.gbc",$55831,$6
 
 Route13Texts: ; 0x55837
     dw Route13Text1, Route13Text2, Route13Text3, Route13Text4, Route13Text5, Route13Text6, Route13Text7, Route13Text8, Route13Text9, Route13Text10, Route13Text11, Route13Text12, Route13Text13
@@ -23410,7 +25269,16 @@
     TX_FAR _Route13Text13
     db $50
 
-INCBIN "baserom.gbc",$559d3,$559ec - $559d3
+Route14Script: ; 0x559d3
+    call $3c3c
+    ld hl, $5a02
+    ld de, $59e6
+    ld a, [$d61b]
+    call $3160
+    ld [$d61b], a
+    ret
+; 0x559e6
+INCBIN "baserom.gbc",$559e6,$6
 
 Route14Texts: ; 0x559ec
     dw Route14Text1, Route14Text2, Route14Text3, Route14Text4, Route14Text5, Route14Text6, Route14Text7, Route14Text8, Route14Text9, Route14Text10, Route14Text11
@@ -23501,7 +25369,16 @@
     TX_FAR _Route14Text11
     db $50
 
-INCBIN "baserom.gbc",$55b7a,$55b93 - $55b7a
+Route17Script: ; 0x55b7a
+    call $3c3c
+    ld hl, $5bb3
+    ld de, $5b8d
+    ld a, [$d61c]
+    call $3160
+    ld [$d61c], a
+    ret
+; 0x55b8d
+INCBIN "baserom.gbc",$55b8d,$6
 
 Route17Texts: ; 0x55b93
     dw Route17Text1, Route17Text2, Route17Text3, Route17Text4, Route17Text5, Route17Text6, Route17Text7, Route17Text8, Route17Text9, Route17Text10, Route17Text11, Route17Text12, Route17Text13, Route17Text14, Route17Text15, Route17Text16
@@ -23612,7 +25489,16 @@
     TX_FAR _Route17Text16
     db $50
 
-INCBIN "baserom.gbc",$55d44,$55d5d - $55d44
+Route19Script: ; 0x55d44
+    call $3c3c
+    ld hl, $5d73
+    ld de, $5d57
+    ld a, [$d61d]
+    call $3160
+    ld [$d61d], a
+    ret
+; 0x55d57
+INCBIN "baserom.gbc",$55d57,$6
 
 Route19Texts: ; 0x55d5d
     dw Route19Text1, Route19Text2, Route19Text3, Route19Text4, Route19Text5, Route19Text6, Route19Text7, Route19Text8, Route19Text9, Route19Text10, Route19Text11
@@ -23685,7 +25571,16 @@
     TX_FAR _Route19Text11
     db $50
 
-INCBIN "baserom.gbc",$55eeb,$55f04 - $55eeb
+Route21Script: ; 0x55eeb
+    call $3c3c
+    ld hl, $5f16
+    ld de, $5efe
+    ld a, [$d61e]
+    call $3160
+    ld [$d61e], a
+    ret
+; 0x55efe
+INCBIN "baserom.gbc",$55efe,$6
 
 Route21Texts: ; 0x55f04
     dw Route21Text1, Route21Text2, Route21Text3, Route21Text4, Route21Text5, Route21Text6, Route21Text7, Route21Text8, Route21Text9
@@ -23756,7 +25651,10 @@
 
     dw $60cf ; objects
 
-INCBIN "baserom.gbc",$56070,$56073 - $56070
+VermilionHouse2Script: ; 0x56070
+    jp $3c3c
+; 0x56073
+INCBIN "baserom.gbc",$56073,$0
 
 VermilionHouse2Texts: ; 0x56073
     dw VermilionHouse2Text1
@@ -23817,7 +25715,10 @@
 
     dw $6111 ; objects
 
-INCBIN "baserom.gbc",$560f5,$560f8 - $560f5
+CeladonMart2Script: ; 0x560f5
+    jp $3c3c
+; 0x560f8
+INCBIN "baserom.gbc",$560f8,$0
 
 CeladonMart2Texts: ; 0x560f8
     dw CeladonMart2Text1, CeladonMart2Text2, CeladonMart2Text3, CeladonMart2Text4, CeladonMart2Text5
@@ -23867,7 +25768,10 @@
 
     dw $6221 ; objects
 
-INCBIN "baserom.gbc",$5617c,$5617f - $5617c
+FuchsiaHouse3Script: ; 0x5617c
+    jp $3c3c
+; 0x5617f
+INCBIN "baserom.gbc",$5617f,$0
 
 FuchsiaHouse3Texts: ; 0x5617f
     dw FuchsiaHouse3Text1
@@ -23930,7 +25834,10 @@
 
     dw $6459 ; objects
 
-INCBIN "baserom.gbc",$5624f,$56252 - $5624f
+DayCareMScript: ; 0x5624f
+    jp $3c3c
+; 0x56252
+INCBIN "baserom.gbc",$56252,$0
 
 DayCareMTexts: ; 0x56252
     dw DayCareMText1
@@ -24017,7 +25924,10 @@
 
     dw $64de ; objects
 
-INCBIN "baserom.gbc",$5647f,$56482 - $5647f
+Route12HouseScript: ; 0x5647f
+    jp $3c3c
+; 0x56482
+INCBIN "baserom.gbc",$56482,$0
 
 Route12HouseTexts: ; 0x56482
     dw Route12HouseText1
@@ -24078,7 +25988,17 @@
 
     dw $6613 ; objects
 
-INCBIN "baserom.gbc",$56504,$5657d - $56504
+SilphCo8Script: ; 0x56504
+    call $651a
+    call $3c3c
+    ld hl, $6585
+    ld de, $6577
+    ld a, [$d649]
+    call $3160
+    ld [$d649], a
+    ret
+; 0x5651a
+INCBIN "baserom.gbc",$5651a,$63
 
 SilphCo8Texts: ; 0x5657d
     dw SilphCo8Text1, SilphCo8Text2, SilphCo8Text3, SilphCo8Text4
@@ -24618,7 +26538,17 @@
 Route18Blocks: ; 225
     INCBIN "maps/route18.blk"
 
-INCBIN "baserom.gbc",$58d7d,$59120 - $58d7d
+INCBIN "baserom.gbc",$58d7d,$590b0 - $58d7d
+Route6Script: ; 0x590b0
+    call $3c3c
+    ld hl, $50d7
+    ld de, $50c3
+    ld a, [$d600]
+    call $3160
+    ld [$d600], a
+    ret
+; 0x590c3
+INCBIN "baserom.gbc",$590c3,$5d
 
 Route6Text1: ; 0x59120
     db $8
@@ -24673,7 +26603,16 @@
     TX_FAR _Route6Text7
     db $50
 
-INCBIN "baserom.gbc",$591b6,$59269 - $591b6
+Route8Script: ; 0x591b6
+    call $3c3c
+    ld hl, $51e3
+    ld de, $51c9
+    ld a, [$d601]
+    call $3160
+    ld [$d601], a
+    ret
+; 0x591c9
+INCBIN "baserom.gbc",$591c9,$a0
 
 Route8Text2: ; 0x59269
     db $08 ; asm
@@ -24743,7 +26682,16 @@
     TX_FAR _Route8Text10
     db $50
 
-INCBIN "baserom.gbc",$59336,$5934f - $59336
+Route10Script: ; 0x59336
+    call $3c3c
+    ld hl, $5363
+    ld de, $5349
+    ld a, [$d605]
+    call $3160
+    ld [$d605], a
+    ret
+; 0x59349
+INCBIN "baserom.gbc",$59349,$6
 
 Route10Texts: ; 0x5934f
     dw Route10Text1, Route10Text2, Route10Text3, Route10Text4, Route10Text5, Route10Text6, Route10Text7, Route10Text8, Route10Text9, Route10Text10
@@ -24807,7 +26755,16 @@
     TX_FAR _Route10Text10
     db $50
 
-INCBIN "baserom.gbc",$5944c,$5950d - $5944c
+Route11Script: ; 0x5944c
+    call $3c3c
+    ld hl, $547b
+    ld de, $545f
+    ld a, [$d623]
+    call $3160
+    ld [$d623], a
+    ret
+; 0x5945f
+INCBIN "baserom.gbc",$5945f,$ae
 
 Route11Text2: ; 0x5950d
     db $08 ; asm
@@ -24885,7 +26842,16 @@
     TX_FAR _Route11Text11
     db $50
 
-INCBIN "baserom.gbc",$595f3,$59675 - $595f3
+Route12Script: ; 0x595f3
+    call $3c3c
+    ld hl, $5691
+    ld de, $5611
+    ld a, [$d624]
+    call $3160
+    ld [$d624], a
+    ret
+; 0x59606
+INCBIN "baserom.gbc",$59606,$6f
 
 Route12Texts: ; 0x59675
     dw Route12Text1, Route12Text2, Route12Text3, Route12Text4, Route12Text5, Route12Text6, Route12Text7, Route12Text8, Route12Text9, Route12Text10, Route12Text11, Route12Text12, Route12Text13, Route12Text14
@@ -24962,7 +26928,16 @@
     TX_FAR _Route12Text12
     db $50
 
-INCBIN "baserom.gbc",$597ae,$597c7 - $597ae
+Route15Script: ; 0x597ae
+    call $3c3c
+    ld hl, $57df
+    ld de, $57c1
+    ld a, [$d625]
+    call $3160
+    ld [$d625], a
+    ret
+; 0x597c1
+INCBIN "baserom.gbc",$597c1,$6
 
 Route15Texts: ; 0x597c7
     dw Route15Text1, Route15Text2, Route15Text3, Route15Text4, Route15Text5, Route15Text6, Route15Text7, Route15Text8, Route15Text9, Route15Text10, Route15Text11, Route15Text12
@@ -25028,7 +27003,16 @@
     TX_FAR _Route15Text12
     db $50
 
-INCBIN "baserom.gbc",$59933,$599b9 - $59933
+Route16Script: ; 0x59933
+    call $3c3c
+    ld hl, $59cf
+    ld de, $5951
+    ld a, [$d626]
+    call $3160
+    ld [$d626], a
+    ret
+; 0x59946
+INCBIN "baserom.gbc",$59946,$73
 
 Route16Texts: ; 0x599b9
     dw Route16Text1, Route16Text2, Route16Text3, Route16Text4, Route16Text5, Route16Text6, Route16Text7, Route16Text8, Route16Text9, Route16Text10, Route16Text11
@@ -25101,7 +27085,16 @@
     TX_FAR _Route16Text9
     db $50
 
-INCBIN "baserom.gbc",$59ac7,$59ae0 - $59ac7
+Route18Script: ; 0x59ac7
+    call $3c3c
+    ld hl, $5aea
+    ld de, $5ada
+    ld a, [$d627]
+    call $3160
+    ld [$d627], a
+    ret
+; 0x59ada
+INCBIN "baserom.gbc",$59ada,$6
 
 Route18Texts: ; 0x59ae0
     dw Route18Text1, Route18Text2, Route18Text3, Route18Text4, Route18Text5
@@ -25148,7 +27141,10 @@
 
     dw $5c97 ; objects
 
-INCBIN "baserom.gbc",$59b70,$59b84 - $59b70
+FanClubScript: ; 0x59b70
+    jp $3c3c
+; 0x59b73
+INCBIN "baserom.gbc",$59b73,$11
 
 FanClubTexts: ; 0x59b84
     dw FanClubText1, FanClubText2, FanClubText3, FanClubText4, FanClubText5, FanClubText6, FanClubText7, FanClubText8
@@ -25298,7 +27294,17 @@
 
     dw $5e66 ; objects
 
-INCBIN "baserom.gbc",$59cf1,$59d86 - $59cf1
+SilphCo2Script: ; 0x59cf1
+    call $5d07
+    call $3c3c
+    ld hl, $5d90
+    ld de, $5d80
+    ld a, [$d643]
+    call $3160
+    ld [$d643], a
+    ret
+; 0x59d07
+INCBIN "baserom.gbc",$59d07,$7f
 
 SilphCo2Texts: ; 0x59d86
     dw SilphCo2Text1, SilphCo2Text2, SilphCo2Text3, SilphCo2Text4, SilphCo2Text5
@@ -25395,7 +27401,17 @@
 
     dw $6035 ; objects
 
-INCBIN "baserom.gbc",$59f5b,$59fc4 - $59f5b
+SilphCo3Script: ; 0x59f5b
+    call $5f71
+    call $3c3c
+    ld hl, $5fcc
+    ld de, $5fbe
+    ld a, [$d644]
+    call $3160
+    ld [$d644], a
+    ret
+; 0x59f71
+INCBIN "baserom.gbc",$59f71,$53
 
 SilphCo3Texts: ; 0x59fc4
     dw SilphCo3Text1, SilphCo3Text2, SilphCo3Text3, SilphCo3Text4
@@ -25477,7 +27493,17 @@
 
     dw $61fb ; objects
 
-INCBIN "baserom.gbc",$5a139,$5a186 - $5a139
+SilphCo10Script: ; 0x5a139
+    call $614f
+    call $3c3c
+    ld hl, $6192
+    ld de, $6180
+    ld a, [$d658]
+    call $3160
+    ld [$d658], a
+    ret
+; 0x5a14f
+INCBIN "baserom.gbc",$5a14f,$37
 
 SilphCo10Texts: ; 0x5a186
     dw SilphCo10Text1, SilphCo10Text2, SilphCo10Text3, SilphCo10Text4, SilphCo10Text5, SilphCo10Text6
@@ -25549,7 +27575,17 @@
 
     dw $63c5 ; objects
 
-INCBIN "baserom.gbc",$5a2ae,$5a395 - $5a2ae
+LanceScript: ; 0x5a2ae
+    call $62c4
+    call $3c3c
+    ld hl, $6397
+    ld de, $62fa
+    ld a, [$d653]
+    call $3160
+    ld [$d653], a
+    ret
+; 0x5a2c4
+INCBIN "baserom.gbc",$5a2c4,$d1
 
 LanceTexts: ; 0x5a395
     dw LanceText1
@@ -25593,7 +27629,100 @@
 
     dw $6571 ; objects
 
-INCBIN "baserom.gbc",$5a49e,$5a56a - $5a49e
+HallofFameRoomScript: ; 0x5a49e
+    call $3c3c
+    ld hl, $64b2
+    ld a, [$d64b]
+    jp $3d97
+; 0x5a4aa
+INCBIN "baserom.gbc",$5a4aa,$11
+HallofFameRoomScript2: ; 0x5a4bb
+    call Delay3
+    ld a, [$d358]
+    push af
+    xor a
+    ld [$cd6b], a
+    ld a, $55
+    call Predef
+    pop af
+    ld [$d358], a
+    ld hl, $d733
+    res 1, [hl]
+    inc hl
+    set 0, [hl]
+    xor a
+    ld hl, $d64d
+    ld [hli], a
+    ld [hli], a
+    ld [hl], a
+    ld [$d653], a
+    ld [$d64b], a
+    ld hl, $d863
+    ld [hli], a
+    ld [hli], a
+    ld [hli], a
+    ld [hli], a
+    ld [hl], a
+    xor a
+    ld [$d64b], a
+    ld a, $0
+    ld [$d719], a
+    ld b, $1c
+    ld hl, $7848
+    call Bankswitch
+    ld b, $5
+.asm_5a4ff
+    ld c, $78
+    call $3739
+    dec b
+    jr nz, .asm_5a4ff ; 0x5a505 $f8
+    call $3865
+    jp $1f54
+; 0x5a50d
+HallofFameRoomScript0: ; 0x5a50d
+    ld a, $ff
+    ld [$cd6b], a
+    ld hl, $ccd3
+    ld de, $6528
+    call $350c
+    dec a
+    ld [$cd38], a
+    call $3486
+    ld a, $1
+    ld [$d64b], a
+    ret
+; 0x5a528
+INCBIN "baserom.gbc",$5a528,$5a52b - $5a528
+HallofFameRoomScript1: ; 0x5a52b
+    ld a, [$cd38]
+    and a
+    ret nz
+    ld a, $1
+    ld [$d528], a
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $3541
+    ld a, $8
+    ld [$ff00+$8d], a
+    call $34a6
+    call Delay3
+    xor a
+    ld [$cd6b], a
+    inc a
+    ld [$d528], a
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $2920
+    ld a, $ff
+    ld [$cd6b], a
+    ld a, $8
+    ld [$cc4d], a
+    ld a, $11
+    call Predef
+    ld a, $2
+    ld [$d64b], a
+    ret
+; 0x5a56a
 
 HallofFameRoomTexts: ; 0x5a56a
     dw HallofFameRoomText1
@@ -25700,7 +27829,37 @@
 
     dw $42c1 ; objects
 
-INCBIN "baserom.gbc",$5c0f7,$5c12b - $5c0f7
+MuseumF1Script: ; 0x5c0f7
+    ld a, $1
+    ld [$cf0c], a
+    xor a
+    ld [$cc3c], a
+    ld hl, $4109
+    ld a, [$d619]
+    jp $3d97
+; 0x5c109
+INCBIN "baserom.gbc",$5c109,$4
+MuseumF1Script0: ; 0x5c10d
+    ld a, [$d361]
+    cp $4
+    ret nz
+    ld a, [$d362]
+    cp $9
+    jr z, .asm_5c120 ; 0x5c118 $6
+    ld a, [$d362]
+    cp $a
+    ret nz
+.asm_5c120
+    xor a
+    ld [$ff00+$b4], a
+    ld a, $1
+    ld [$ff00+$8c], a
+    jp $2920
+; 0x5c12a
+MuseumF1Script1: ; 0x5c12a
+    ret
+; 0x5c12b
+INCBIN "baserom.gbc",$5c12b,$0
 
 MuseumF1Texts: ; 0x5c12b
     dw MuseumF1Text1, MuseumF1Text2, MuseumF1Text3, MuseumF1Text4, MuseumF1Text5
@@ -25899,7 +28058,10 @@
 
     dw $434b ; objects
 
-INCBIN "baserom.gbc",$5c317,$5c31a - $5c317
+MuseumF2Script: ; 0x5c317
+    jp $3c3c
+; 0x5c31a
+INCBIN "baserom.gbc",$5c31a,$0
 
 MuseumF2Texts: ; 0x5c31a
     dw MuseumF2Text1, MuseumF2Text2, MuseumF2Text3, MuseumF2Text4, MuseumF2Text5, MuseumF2Text6, MuseumF2Text7
@@ -25960,7 +28122,20 @@
 
     dw $452e ; objects
 
-INCBIN "baserom.gbc",$5c387,$5c435 - $5c387
+PewterGymScript: ; 0x5c387
+    ld hl, $d126
+    bit 6, [hl]
+    res 6, [hl]
+    call nz, $43a4
+    call $3c3c
+    ld hl, $4441
+    ld de, $43ca
+    ld a, [$d5fc]
+    call $3160
+    ld [$d5fc], a
+    ret
+; 0x5c3a4
+INCBIN "baserom.gbc",$5c3a4,$91
 
 PewterGymTexts: ; 0x5c435
     dw PewterGymText1, PewterGymText2, PewterGymText3, PewterGymText4, PewterGymText5, PewterGymText6
@@ -26085,7 +28260,11 @@
 
     dw $460d ; objects
 
-INCBIN "baserom.gbc",$5c587,$5c596 - $5c587
+PewterPokecenterScript: ; 0x5c587
+    call $22fa
+    jp $3c3c
+; 0x5c58d
+INCBIN "baserom.gbc",$5c58d,$9
 
 PewterPokecenterText2:
 PewterPokecenterText1: ; 0x5c596
@@ -26179,7 +28358,11 @@
 
     dw $465f ; objects
 
-INCBIN "baserom.gbc",$5c645,$5c653 - $5c645
+CeruleanPokecenterScript: ; 0x5c645
+    call $22fa
+    jp $3c3c
+; 0x5c64b
+INCBIN "baserom.gbc",$5c64b,$8
 
 CeruleanPokecenterText4:
     db $f6, $ff
@@ -26223,7 +28406,20 @@
 
     dw $4834 ; objects
 
-INCBIN "baserom.gbc",$5c6b3,$5c74a - $5c6b3
+CeruleanGymScript: ; 0x5c6b3
+    ld hl, $d126
+    bit 6, [hl]
+    res 6, [hl]
+    call nz, $46d0
+    call $3c3c
+    ld hl, $4758
+    ld de, $46f8
+    ld a, [$d5fd]
+    call $3160
+    ld [$d5fd], a
+    ret
+; 0x5c6d0
+INCBIN "baserom.gbc",$5c6d0,$7a
 
 CeruleanGymTexts: ; 0x5c74a
     dw CeruleanGymText1, CeruleanGymText2, CeruleanGymText3, CeruleanGymText4, CeruleanGymText5, CeruleanGymText6, CeruleanGymText7
@@ -26343,7 +28539,10 @@
 
     dw $48a8 ; objects
 
-INCBIN "baserom.gbc",$5c895,$5c898 - $5c895
+CeruleanMartScript: ; 0x5c895
+    jp $3c3c
+; 0x5c898
+INCBIN "baserom.gbc",$5c898,$0
 
 CeruleanMartTexts: ; 0x5c898
     dw CeruleanMartText1, CeruleanMartText2, CeruleanMartText3
@@ -26382,7 +28581,11 @@
 
     dw $48f4 ; objects
 
-INCBIN "baserom.gbc",$5c8da,$5c8e8 - $5c8da
+LavenderPokecenterScript: ; 0x5c8da
+    call $22fa
+    jp $3c3c
+; 0x5c8e0
+INCBIN "baserom.gbc",$5c8e0,$8
 
 LavenderPokecenterText4:
     db $f6, $ff
@@ -26425,7 +28628,10 @@
 
     dw $495d ; objects
 
-INCBIN "baserom.gbc",$5c92c,$5c92f - $5c92c
+LavenderMartScript: ; 0x5c92c
+    jp $3c3c
+; 0x5c92f
+INCBIN "baserom.gbc",$5c92f,$0
 
 LavenderMartTexts: ; 0x5c92f
     dw LavenderMartText1, LavenderMartText2, LavenderMartText3
@@ -26476,7 +28682,11 @@
 
     dw $49a9 ; objects
 
-INCBIN "baserom.gbc",$5c98f,$5c99e - $5c98f
+VermilionPokecenterScript: ; 0x5c98f
+    call $22fa
+    jp $3c3c
+; 0x5c995
+INCBIN "baserom.gbc",$5c995,$9
 
 VermilionPokecenterText2:
 VermilionPokecenterText1: ; 0x5c99e
@@ -26517,7 +28727,10 @@
 
     dw $49f4 ; objects
 
-INCBIN "baserom.gbc",$5c9e1,$5c9e4 - $5c9e1
+VermilionMartScript: ; 0x5c9e1
+    jp $3c3c
+; 0x5c9e4
+INCBIN "baserom.gbc",$5c9e4,$0
 
 VermilionMartTexts: ; 0x5c9e4
     dw VermilionMartText1, VermilionMartText2, VermilionMartText3
@@ -26559,7 +28772,25 @@
 
     dw $4bfe ; objects
 
-INCBIN "baserom.gbc",$5ca26,$5cae8 - $5ca26
+VermilionGymScript: ; 0x5ca26
+    ld hl, $d126
+    bit 5, [hl]
+    res 5, [hl]
+    push hl
+    call nz, $4a4c
+    pop hl
+    bit 6, [hl]
+    res 6, [hl]
+    call nz, $4a6d
+    call $3c3c
+    ld hl, $4af8
+    ld de, $4a95
+    ld a, [$d5fe]
+    call $3160
+    ld [$d5fe], a
+    ret
+; 0x5ca4c
+INCBIN "baserom.gbc",$5ca4c,$9c
 
 VermilionGymTexts: ; 0x5cae8
     dw VermilionGymText1, VermilionGymText2, VermilionGymText3, VermilionGymText4, VermilionGymText5, VermilionGymText6, VermilionGymText7, VermilionGymText8
@@ -26689,7 +28920,10 @@
 
     dw $4d21 ; objects
 
-INCBIN "baserom.gbc",$5cc71,$5cc74 - $5cc71
+CopycatsHouseF2Script: ; 0x5cc71
+    jp $3c3c
+; 0x5cc74
+INCBIN "baserom.gbc",$5cc74,$0
 
 CopycatsHouseF2Texts: ; 0x5cc74
     dw CopycatsHouseF2Text1, CopycatsHouseF2Text2, CopycatsHouseF2Text3, CopycatsHouseF2Text4, CopycatsHouseF2Text5, CopycatsHouseF2Text6, CopycatsHouseF2Text7
@@ -26788,7 +29022,16 @@
 
     dw $4f9b ; objects
 
-INCBIN "baserom.gbc",$5cd5d,$5ce03 - $5cd5d
+FightingDojoScript: ; 0x5cd5d
+    call $3c3c
+    ld hl, $4e13
+    ld de, $4d7b
+    ld a, [$d642]
+    call $3160
+    ld [$d642], a
+    ret
+; 0x5cd70
+INCBIN "baserom.gbc",$5cd70,$93
 
 FightingDojoTexts: ; 0x5ce03
     dw FightingDojoText1, FightingDojoText2, FightingDojoText3, FightingDojoText4, FightingDojoText5, FightingDojoText6, FightingDojoText7, FightingDojoText8
@@ -26966,7 +29209,20 @@
 
     dw $5259 ; objects
 
-INCBIN "baserom.gbc",$5d00d,$5d0ab - $5d00d
+SaffronGymScript: ; 0x5d00d
+    ld hl, $d126
+    bit 6, [hl]
+    res 6, [hl]
+    call nz, $502a
+    call $3c3c
+    ld hl, $50c3
+    ld de, $5053
+    ld a, [$d65c]
+    call $3160
+    ld [$d65c], a
+    ret
+; 0x5d02a
+INCBIN "baserom.gbc",$5d02a,$81
 
 SaffronGymTexts: ; 0x5d0ab
     dw SaffronGymText1, SaffronGymText2, SaffronGymText3, SaffronGymText4, SaffronGymText5, SaffronGymText6, SaffronGymText7, SaffronGymText8, SaffronGymText9, SaffronGymText10, SaffronGymText11, SaffronGymText12
@@ -27173,7 +29429,10 @@
 
     dw $541c ; objects
 
-INCBIN "baserom.gbc",$5d409,$5d40c - $5d409
+SaffronMartScript: ; 0x5d409
+    jp $3c3c
+; 0x5d40c
+INCBIN "baserom.gbc",$5d40c,$0
 
 SaffronMartTexts: ; 0x5d40c
     dw SaffronMartText1, SaffronMartText2, SaffronMartText3
@@ -27212,7 +29471,21 @@
 
     dw $5470 ; objects
 
-INCBIN "baserom.gbc",$5d44e,$5d469 - $5d44e
+SilphCo1Script: ; 0x5d44e
+    call $3c3c
+    ld a, [$d838]
+    bit 7, a
+    ret z
+    ld hl, $d7b9
+    bit 7, [hl]
+    set 7, [hl]
+    ret nz
+    ld a, $4c
+    ld [$cc4d], a
+    ld a, $15
+    jp $3e6d
+; 0x5d469
+INCBIN "baserom.gbc",$5d469,$0
 
 SilphCo1Texts: ; 0x5d469
     dw SilphCo1Text1
@@ -27254,7 +29527,11 @@
 
     dw $554f ; objects
 
-INCBIN "baserom.gbc",$5d535,$5d544 - $5d535
+SaffronPokecenterScript: ; 0x5d535
+    call $22fa
+    jp $3c3c
+; 0x5d53b
+INCBIN "baserom.gbc",$5d53b,$9
 
 SaffronPokecenterText2: ; maybe
 SaffronPokecenterText1: ; 0x5d543
@@ -27296,7 +29573,10 @@
 
     dw $5598 ; objects
 
-INCBIN "baserom.gbc",$5d587,$5d58a - $5d587
+ViridianForestexitScript: ; 0x5d587
+    jp $3c3c
+; 0x5d58a
+INCBIN "baserom.gbc",$5d58a,$0
 
 ViridianForestexitTexts: ; 0x5d58a
     dw ViridianForestexitText1, ViridianForestexitText2
@@ -27338,7 +29618,10 @@
 
     dw $5620 ; objects
 
-INCBIN "baserom.gbc",$5d5d4,$5d5d7 - $5d5d4
+Route2GateScript: ; 0x5d5d4
+    jp $3c3c
+; 0x5d5d7
+INCBIN "baserom.gbc",$5d5d7,$0
 
 Route2GateTexts: ; 0x5d5d7
     dw Route2GateText1, Route2GateText2
@@ -27406,7 +29689,10 @@
 
     dw $566d ; objects
 
-INCBIN "baserom.gbc",$5d65c,$5d65f - $5d65c
+ViridianForestEntranceScript: ; 0x5d65c
+    jp $3c3c
+; 0x5d65f
+INCBIN "baserom.gbc",$5d65f,$0
 
 ViridianForestEntranceTexts: ; 0x5d65f
     dw ViridianForestEntranceText1, ViridianForestEntranceText2
@@ -27448,7 +29734,12 @@
 
     dw $56c1 ; objects
 
-INCBIN "baserom.gbc",$5d6a9,$5d6b0 - $5d6a9
+UndergroundTunnelEntranceRoute5Script: ; 0x5d6a9
+    ld a, $10
+    ld [$d365], a
+    ret
+; 0x5d6af
+INCBIN "baserom.gbc",$5d6af,$1
 
 UndergroundTunnelEntranceRoute5Texts: ; 0x5d6b0
     dw UndergroundTunnelEntranceRoute5Text1
@@ -27488,7 +29779,12 @@
 
     dw $56fe ; objects
 
-INCBIN "baserom.gbc",$5d6ef,$5d6f7 - $5d6ef
+UndergroundTunnelEntranceRoute6Script: ; 0x5d6ef
+    ld a, $11
+    ld [$d365], a
+    jp $3c3c
+; 0x5d6f7
+INCBIN "baserom.gbc",$5d6f7,$0
 
 UndergroundTunnelEntranceRoute6Texts: ; 0x5d6f7
     dw UndergroundTunnelEntranceRoute6Text1
@@ -27525,7 +29821,12 @@
 
     dw $573b ; objects
 
-INCBIN "baserom.gbc",$5d72c,$5d734 - $5d72c
+UndergroundPathEntranceRoute7Script: ; 0x5d72c
+    ld a, $12
+    ld [$d365], a
+    jp $3c3c
+; 0x5d734
+INCBIN "baserom.gbc",$5d734,$0
 
 UndergroundPathEntranceRoute7Texts: ; 0x5d734
     dw UndergroundPathEntranceRoute7Text1
@@ -27563,7 +29864,17 @@
 
     dw $593f ; objects
 
-INCBIN "baserom.gbc",$5d7bb,$5d88b - $5d7bb
+SilphCo9Script: ; 0x5d7bb
+    call $57d1
+    call $3c3c
+    ld hl, $5893
+    ld de, $5885
+    ld a, [$d64a]
+    call $3160
+    ld [$d64a], a
+    ret
+; 0x5d7d1
+INCBIN "baserom.gbc",$5d7d1,$ba
 
 SilphCo9Texts: ; 0x5d88b
     dw SilphCo9Text1, SilphCo9Text2, SilphCo9Text3, SilphCo9Text4
@@ -27649,7 +29960,20 @@
 
     dw $5ab8 ; objects
 
-INCBIN "baserom.gbc",$5da0a,$5da5f - $5da0a
+VictoryRoad1Script: ; 0x5da0a
+    ld hl, $d126
+    bit 5, [hl]
+    res 5, [hl]
+    call nz, $5a27
+    call $3c3c
+    ld hl, $5a6d
+    ld de, $5a3a
+    ld a, [$d651]
+    call $3160
+    ld [$d651], a
+    ret
+; 0x5da27
+INCBIN "baserom.gbc",$5da27,$38
 
 VictoryRoad1Texts: ; 0x5da5f
     dw VictoryRoad1Text1, VictoryRoad1Text2, VictoryRoad1Text3, VictoryRoad1Text4, VictoryRoad1Text5, VictoryRoad1Text6, VictoryRoad1Text7
@@ -27719,7 +30043,10 @@
 
     dw $4452 ; objects
 
-INCBIN "baserom.gbc",$6042c,$6042f - $6042c
+PokemonTower1Script: ; 0x6042c
+    jp $3c3c
+; 0x6042f
+INCBIN "baserom.gbc",$6042f,$0
 
 PokemonTower1Texts: ; 0x6042f
     dw PokemonTower1Text1, PokemonTower1Text2, PokemonTower1Text3, PokemonTower1Text4, PokemonTower1Text5
@@ -27777,7 +30104,101 @@
 
     dw $4646 ; objects
 
-INCBIN "baserom.gbc",$604f2,$605db - $604f2
+PokemonTower2Script: ; 0x604f2
+    call $3c3c
+    ld hl, $4509
+    ld a, [$d62b]
+    jp $3d97
+; 0x604fe
+INCBIN "baserom.gbc",$604fe,$11
+PokemonTower2Script0: ; 0x6050f
+    ld a, [$d764]
+    bit 7, a
+    ret nz
+    ld hl, $455e
+    call $34bf
+    ret nc
+    ld a, $ff
+    ld [$c0ee], a
+    call $23b1
+    ld c, $2
+    ld a, $de
+    call $23a1
+    ld hl, $d764
+    res 6, [hl]
+    ld a, [$cd3d]
+    cp $1
+    ld a, $8
+    ld b, $0
+    jr nz, .asm_60544 ; 0x60539 $9
+    ld hl, $d764
+    set 6, [hl]
+    ld a, $2
+    ld b, $c
+.asm_60544
+    ld [$d528], a
+    ld a, $1
+    ld [$ff00+$8c], a
+    ld a, b
+    ld [$ff00+$8d], a
+    call $34a6
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $2920
+    xor a
+    ld [$ff00+$b4], a
+    ld [$ff00+$b3], a
+    ret
+; 0x6055e
+INCBIN "baserom.gbc",$6055e,$60563 - $6055e
+PokemonTower2Script1: ; 0x60563
+    ld a, [$d057]
+    cp $ff
+    jp z, $44fe
+    ld a, $f0
+    ld [$cd6b], a
+    ld hl, $d764
+    set 7, [hl]
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $2920
+    ld de, $45b2
+    ld a, [$d764]
+    bit 6, a
+    jr nz, .asm_60589 ; 0x60584 $3
+    ld de, $45a9
+.asm_60589
+    ld a, $1
+    ld [$ff00+$8c], a
+    call $363a
+    ld a, $ff
+    ld [$c0ee], a
+    call $23b1
+    ld b, $2
+    ld hl, $5b47
+    call Bankswitch
+    ld a, $2
+    ld [$d62b], a
+    ld [$da39], a
+    ret
+; 0x605a9
+INCBIN "baserom.gbc",$605a9,$605bb - $605a9
+PokemonTower2Script2: ; 0x605bb
+    ld a, [$d730]
+    bit 0, a
+    ret nz
+    ld a, $38
+    ld [$cc4d], a
+    ld a, $11
+    call Predef
+    xor a
+    ld [$cd6b], a
+    call $2307
+    ld a, $0
+    ld [$d62b], a
+    ld [$da39], a
+    ret
+; 0x605db
 
 PokemonTower2Texts: ; 0x605db
     dw PokemonTower2Text1, PokemonTower2Text2
@@ -27855,7 +30276,16 @@
 
     dw $475d ; objects
 
-INCBIN "baserom.gbc",$606cc,$606e5 - $606cc
+PokemonTower3Script: ; 0x606cc
+    call $3c3c
+    ld hl, $46ed
+    ld de, $46df
+    ld a, [$d62c]
+    call $3160
+    ld [$d62c], a
+    ret
+; 0x606df
+INCBIN "baserom.gbc",$606df,$6
 
 PokemonTower3Texts: ; 0x606e5
     dw PokemonTower3Text1, PokemonTower3Text2, PokemonTower3Text3, PokemonTower3Text4
@@ -27912,7 +30342,16 @@
 
     dw $488b ; objects
 
-INCBIN "baserom.gbc",$607f6,$6080f - $607f6
+PokemonTower4Script: ; 0x607f6
+    call $3c3c
+    ld hl, $481b
+    ld de, $4809
+    ld a, [$d62d]
+    call $3160
+    ld [$d62d], a
+    ret
+; 0x60809
+INCBIN "baserom.gbc",$60809,$6
 
 PokemonTower4Texts: ; 0x6080f
     dw PokemonTower4Text1, PokemonTower4Text2, PokemonTower4Text3, PokemonTower4Text4, PokemonTower4Text5, PokemonTower4Text6
@@ -27971,7 +30410,16 @@
 
     dw $4a48 ; objects
 
-INCBIN "baserom.gbc",$60932,$6099b - $60932
+PokemonTower5Script: ; 0x60932
+    call $3c3c
+    ld hl, $49a9
+    ld de, $4945
+    ld a, [$d62e]
+    call $3160
+    ld [$d62e], a
+    ret
+; 0x60945
+INCBIN "baserom.gbc",$60945,$56
 
 PokemonTower5Texts: ; 0x6099b
     dw PokemonTower5Text1, PokemonTower5Text2, PokemonTower5Text3, PokemonTower5Text4, PokemonTower5Text5, PokemonTower5Text6, PokemonTower5Text7
@@ -28049,7 +30497,16 @@
 
     dw $4c5b ; objects
 
-INCBIN "baserom.gbc",$60aef,$60bb1 - $60aef
+PokemonTower6Script: ; 0x60aef
+    call $3c3c
+    ld hl, $4bbf
+    ld de, $4b0d
+    ld a, [$d62f]
+    call $3160
+    ld [$d62f], a
+    ret
+; 0x60b02
+INCBIN "baserom.gbc",$60b02,$af
 
 PokemonTower6Texts: ; 0x60bb1
     dw PokemonTower6Text1, PokemonTower6Text2, PokemonTower6Text3, PokemonTower6Text4, PokemonTower6Text5, PokemonTower6Text6, PokemonTower6Text7
@@ -28113,7 +30570,16 @@
 
     dw $4ef6 ; objects
 
-INCBIN "baserom.gbc",$60d05,$60e3f - $60d05
+PokemonTower7Script: ; 0x60d05
+    call $3c3c
+    ld hl, $4e47
+    ld de, $4d23
+    ld a, [$d630]
+    call $3160
+    ld [$d630], a
+    ret
+; 0x60d18
+INCBIN "baserom.gbc",$60d18,$127
 
 PokemonTower7Texts: ; 0x60e3f
     dw PokemonTower7Text1, PokemonTower7Text2, PokemonTower7Text3, PokemonTower7Text4
@@ -28193,7 +30659,10 @@
 
     dw $4f9e ; objects
 
-INCBIN "baserom.gbc",$60f86,$60f89 - $60f86
+CeladonMart1Script: ; 0x60f86
+    jp $3c3c
+; 0x60f89
+INCBIN "baserom.gbc",$60f89,$0
 
 CeladonMart1Texts: ; 0x60f89
     dw CeladonMart1Text1, CeladonMart1Text2, CeladonMart1Text3
@@ -28249,7 +30718,16 @@
 
     dw $51da ; objects
 
-INCBIN "baserom.gbc",$6110d,$61126 - $6110d
+ViridianForestScript: ; 0x6110d
+    call $3c3c
+    ld hl, $5142
+    ld de, $5120
+    ld a, [$d618]
+    call $3160
+    ld [$d618], a
+    ret
+; 0x61120
+INCBIN "baserom.gbc",$61120,$6
 
 ViridianForestTexts: ; 0x61126
     dw ViridianForestText1, ViridianForestText2, ViridianForestText3, ViridianForestText4, ViridianForestText5, ViridianForestText6, ViridianForestText7, ViridianForestText8, ViridianForestText9, ViridianForestText10, ViridianForestText11, ViridianForestText12, ViridianForestText13, ViridianForestText14
@@ -28353,7 +30831,11 @@
 
     dw $5277 ; objects
 
-INCBIN "baserom.gbc",$61265,$61269 - $61265
+SSAnne1Script: ; 0x61265
+    call $3c3c
+    ret
+; 0x61269
+INCBIN "baserom.gbc",$61269,$0
 
 SSAnne1Texts: ; 0x61269
     dw SSAnne1Text1, SSAnne1Text2
@@ -28414,7 +30896,136 @@
 
     dw $5514 ; objects
 
-INCBIN "baserom.gbc",$6139f,$614db - $6139f
+SSAnne2Script: ; 0x6139f
+    call $3c3c
+    ld hl, $53b3
+    ld a, [$d665]
+    jp $3d97
+; 0x613ab
+INCBIN "baserom.gbc",$613ab,$12
+SSAnne2Script4: ; 0x613bd
+    ret
+; 0x613be
+SSAnne2Script0: ; 0x613be
+    ld hl, $5411
+    call $34bf
+    ret nc
+    ld a, $ff
+    ld [$c0ee], a
+    call $23b1
+    ld c, $2
+    ld a, $de
+    call $23a1
+    ld a, [$cd3d]
+    ld [$ff00+$db], a
+    ld a, $71
+    ld [$cc4d], a
+    ld a, $15
+    call Predef
+    call Delay3
+    ld a, $2
+    ld [$ff00+$8c], a
+    call $3541
+    xor a
+    ld [$ff00+$b4], a
+    ld a, $f0
+    ld [$cd6b], a
+    ld a, [$ff00+$db]
+    cp $2
+    jr nz, .asm_61400 ; 0x613f9 $5
+    ld de, $540c
+    jr .asm_61403 ; 0x613fe $3
+.asm_61400
+    ld de, $540d
+.asm_61403
+    call $363a
+    ld a, $1
+    ld [$d665], a
+    ret
+; 0x6140c
+INCBIN "baserom.gbc",$6140c,$61430 - $6140c
+SSAnne2Script1: ; 0x61430
+    ld a, [$d730]
+    bit 0, a
+    ret nz
+    call $5416
+    xor a
+    ld [$cd6b], a
+    ld a, $2
+    ld [$ff00+$8c], a
+    call $2920
+    call Delay3
+    ld a, $f2
+    ld [$d059], a
+    ld a, [$d715]
+    cp $b1
+    jr nz, .asm_61457 ; 0x61451 $4
+    ld a, $1
+    jr .asm_61461 ; 0x61455 $a
+.asm_61457
+    cp $99
+    jr nz, .asm_6145f ; 0x61459 $4
+    ld a, $2
+    jr .asm_61461 ; 0x6145d $2
+.asm_6145f
+    ld a, $3
+.asm_61461
+    ld [$d05d], a
+    call $5416
+    ld a, $2
+    ld [$d665], a
+    ret
+; 0x6146d
+SSAnne2Script2: ; 0x6146d
+    ld a, [$d057]
+    cp $ff
+    jp z, $53ab
+    call $5416
+    ld a, $f0
+    ld [$cd6b], a
+    ld a, $3
+    ld [$ff00+$8c], a
+    call $2920
+    ld a, $2
+    ld [$ff00+$8c], a
+    call $3541
+    ld a, [$d362]
+    cp $25
+    jr nz, .asm_61497 ; 0x61490 $5
+    ld de, $54b9
+    jr .asm_6149a ; 0x61495 $3
+.asm_61497
+    ld de, $54b7
+.asm_6149a
+    ld a, $2
+    ld [$ff00+$8c], a
+    call $363a
+    ld a, $ff
+    ld [$c0ee], a
+    call $23b1
+    ld b, $2
+    ld hl, $5b47
+    call Bankswitch
+    ld a, $3
+    ld [$d665], a
+    ret
+; 0x614b7
+INCBIN "baserom.gbc",$614b7,$614be - $614b7
+SSAnne2Script3: ; 0x614be
+    ld a, [$d730]
+    bit 0, a
+    ret nz
+    xor a
+    ld [$cd6b], a
+    ld a, $71
+    ld [$cc4d], a
+    ld a, $11
+    call Predef
+    call $2307
+    ld a, $4
+    ld [$d665], a
+    ret
+; 0x614db
 
 SSAnne2Texts: ; 0x614db
     dw SSAnne2Text1, SSAnne2Text2, SSAnne2Text3
@@ -28483,7 +31094,10 @@
 
     dw $5632 ; objects
 
-INCBIN "baserom.gbc",$6162e,$61632 - $6162e
+SSAnne4Script: ; 0x6162e
+    jp $3c3c
+; 0x61631
+INCBIN "baserom.gbc",$61631,$1
 
 SSAnne4Object: ; 0x61632 (size=52)
     db $c ; border tile
@@ -28519,7 +31133,16 @@
 
     dw $572b ; objects
 
-INCBIN "baserom.gbc",$616ae,$616c7 - $616ae
+SSAnne5Script: ; 0x616ae
+    call $3c3c
+    ld hl, $56d1
+    ld de, $56c1
+    ld a, [$d617]
+    call $3160
+    ld [$d617], a
+    ret
+; 0x616c1
+INCBIN "baserom.gbc",$616c1,$6
 
 SSAnne5Texts: ; 0x616c7
     dw SSAnne5Text1, SSAnne5Text2, SSAnne5Text3, SSAnne5Text4, SSAnne5Text5
@@ -28587,7 +31210,11 @@
 
     dw $581b ; objects
 
-INCBIN "baserom.gbc",$617b3,$617b7 - $617b3
+SSAnne6Script: ; 0x617b3
+    call $3c3c
+    ret
+; 0x617b7
+INCBIN "baserom.gbc",$617b7,$0
 
 SSAnne6Texts: ; 0x617b7
     dw SSAnne6Text1, SSAnne6Text2, SSAnne6Text3, SSAnne6Text4, SSAnne6Text5, SSAnne6Text6, SSAnne6Text7
@@ -28671,7 +31298,11 @@
 
     dw $5946 ; objects
 
-INCBIN "baserom.gbc",$61895,$618a7 - $61895
+SSAnne7Script: ; 0x61895
+    call $589b
+    jp $3c3c
+; 0x6189b
+INCBIN "baserom.gbc",$6189b,$c
 
 SSAnne7Texts: ; 0x618a7
     dw SSAnne7Text1, SSAnne7Text2, SSAnne7Text3
@@ -28742,7 +31373,16 @@
 
     dw $5a60 ; objects
 
-INCBIN "baserom.gbc",$61976,$6198f - $61976
+SSAnne8Script: ; 0x61976
+    call $3c3c
+    ld hl, $59a5
+    ld de, $5989
+    ld a, [$d608]
+    call $3160
+    ld [$d608], a
+    ret
+; 0x61989
+INCBIN "baserom.gbc",$61989,$6
 
 SSAnne8Texts: ; 0x6198f
     dw SSAnne8Text1, SSAnne8Text2, SSAnne8Text3, SSAnne8Text4, SSAnne8Text5, SSAnne8Text6, SSAnne8Text7, SSAnne8Text8, SSAnne8Text9, SSAnne8Text10, SSAnne8Text11
@@ -28847,7 +31487,19 @@
 
     dw $5c8d ; objects
 
-INCBIN "baserom.gbc",$61b4b,$61b6a - $61b4b
+SSAnne9Script: ; 0x61b4b
+    ld a, $1
+    ld [$cf0c], a
+    xor a
+    ld [$cc3c], a
+    ld hl, $5b84
+    ld de, $5b64
+    ld a, [$d609]
+    call $3160
+    ld [$d609], a
+    ret
+; 0x61b64
+INCBIN "baserom.gbc",$61b64,$6
 
 SSAnne9Texts: ; 0x61b6a
     dw SSAnne9Text1, SSAnne9Text2, SSAnne9Text3, SSAnne9Text4, SSAnne9Text5, SSAnne9Text6, SSAnne9Text7, SSAnne9Text8, SSAnne9Text9, SSAnne9Text10, SSAnne9Text11, SSAnne9Text12, SSAnne9Text13
@@ -28994,7 +31646,16 @@
 
     dw $5e75 ; objects
 
-INCBIN "baserom.gbc",$61d55,$61d6e - $61d55
+SSAnne10Script: ; 0x61d55
+    call $3c3c
+    ld hl, $5d84
+    ld de, $5d68
+    ld a, [$d629]
+    call $3160
+    ld [$d629], a
+    ret
+; 0x61d68
+INCBIN "baserom.gbc",$61d68,$6
 
 SSAnne10Texts: ; 0x61d6e
     dw SSAnne10Text1, SSAnne10Text2, SSAnne10Text3, SSAnne10Text4, SSAnne10Text5, SSAnne10Text6, SSAnne10Text7, SSAnne10Text8, SSAnne10Text9, SSAnne10Text10, SSAnne10Text11
@@ -29100,7 +31761,10 @@
 
     dw $5f2a ; objects
 
-INCBIN "baserom.gbc",$61f26,$61f2a - $61f26
+UndergroundPathNSScript: ; 0x61f26
+    jp $3c3c
+; 0x61f29
+INCBIN "baserom.gbc",$61f29,$1
 
 UndergroundPathNSObject: ; 0x61f2a (size=20)
     db $1 ; border tile
@@ -29125,7 +31789,10 @@
 
     dw $5f4e ; objects
 
-INCBIN "baserom.gbc",$61f4a,$61f4e - $61f4a
+UndergroundPathWEScript: ; 0x61f4a
+    jp $3c3c
+; 0x61f4d
+INCBIN "baserom.gbc",$61f4d,$1
 
 UndergroundPathWEObject: ; 0x61f4e (size=20)
     db $1 ; border tile
@@ -29150,7 +31817,10 @@
 
     dw $5f72 ; objects
 
-INCBIN "baserom.gbc",$61f6e,$61f72 - $61f6e
+DiglettsCaveScript: ; 0x61f6e
+    jp $3c3c
+; 0x61f71
+INCBIN "baserom.gbc",$61f71,$1
 
 DiglettsCaveObject: ; 0x61f72 (size=20)
     db $19 ; border tile
@@ -29178,7 +31848,17 @@
 
     dw $6380 ; objects
 
-INCBIN "baserom.gbc",$620fa,$622b7 - $620fa
+SilphCo11Script: ; 0x620fa
+    call $6110
+    call $3c3c
+    ld hl, $62c3
+    ld de, $61cf
+    ld a, [$d659]
+    call $3160
+    ld [$d659], a
+    ret
+; 0x62110
+INCBIN "baserom.gbc",$62110,$1a7
 
 SilphCo11Texts: ; 0x622b7
     dw SilphCo11Text1, SilphCo11Text2, SilphCo11Text3, SilphCo11Text4, SilphCo11Text5, SilphCo11Text6
@@ -30382,7 +33062,19 @@
 
     dw $4bde ; objects
 
-INCBIN "baserom.gbc",$748a3,$749ec - $748a3
+ViridianGymScript: ; 0x748a3
+    ld hl, $48bf
+    ld de, $48cd
+    call $317f
+    call $3c3c
+    ld hl, $4a08
+    ld de, $48e1
+    ld a, [$d5fb]
+    call $3160
+    ld [$d5fb], a
+    ret
+; 0x748bf
+INCBIN "baserom.gbc",$748bf,$12d
 
 ViridianGymTexts: ; 0x749ec
     dw ViridianGymText1, ViridianGymText2, ViridianGymText3, ViridianGymText4, ViridianGymText5, ViridianGymText6, ViridianGymText7, ViridianGymText8, ViridianGymText9, ViridianGymText10, ViridianGymText11, ViridianGymText12, ViridianGymText13, ViridianGymText14
@@ -30563,7 +33255,13 @@
 
     dw $4cda ; objects
 
-INCBIN "baserom.gbc",$74cad,$74cb6 - $74cad
+PewterMartScript: ; 0x74cad
+    call $3c3c
+    ld a, $1
+    ld [$cf0c], a
+    ret
+; 0x74cb6
+INCBIN "baserom.gbc",$74cb6,$0
 
 PewterMartTexts: ; 0x74cb6
     dw PewterMartText1, PewterMartText2, PewterMartText3
@@ -30610,7 +33308,10 @@
 
     dw $4d15 ; objects
 
-INCBIN "baserom.gbc",$74d0c,$74d0f - $74d0c
+UnknownDungeon1Script: ; 0x74d0c
+    jp $3c3c
+; 0x74d0f
+INCBIN "baserom.gbc",$74d0f,$0
 
 UnknownDungeon1Texts: ; 0x74d0f
     dw UnknownDungeon1Text1, UnknownDungeon1Text2, UnknownDungeon1Text3
@@ -30658,7 +33359,14 @@
 
     dw $4ebe ; objects
 
-INCBIN "baserom.gbc",$74e09,$74e15 - $74e09
+CeruleanHouse3Script: ; 0x74e09
+    ld a, $1
+    ld [$cf0c], a
+    dec a
+    ld [$cc3c], a
+    ret
+; 0x74e13
+INCBIN "baserom.gbc",$74e13,$2
 
 CeruleanHouse3Text1: ; 0x74e15
     db $8
@@ -30734,7 +33442,11 @@
 
     dw $5031 ; objects
 
-INCBIN "baserom.gbc",$75018,$7501c - $75018
+FuchsiaHouse1Script: ; 0x75018
+    call $3c3c
+    ret
+; 0x7501c
+INCBIN "baserom.gbc",$7501c,$0
 
 FuchsiaHouse1Texts: ; 0x7501c
     dw FuchsiaHouse1Text1, FuchsiaHouse1Text2, FuchsiaHouse1Text3
@@ -30777,7 +33489,11 @@
 
     dw $507d ; objects
 
-INCBIN "baserom.gbc",$75063,$75072 - $75063
+FuchsiaPokecenterScript: ; 0x75063
+    call $22fa
+    jp $3c3c
+; 0x75069
+INCBIN "baserom.gbc",$75069,$9
 
 FuchsiaPokecenterText2:
 FuchsiaPokecenterText1: ; 0x75071 or 0x75072
@@ -30818,7 +33534,10 @@
 
     dw $5180 ; objects
 
-INCBIN "baserom.gbc",$750b5,$750b8 - $750b5
+FuchsiaHouse2Script: ; 0x750b5
+    jp $3c3c
+; 0x750b8
+INCBIN "baserom.gbc",$750b8,$0
 
 FuchsiaHouse2Texts: ; 0x750b8
     dw FuchsiaHouse2Text1, FuchsiaHouse2Text2, FuchsiaHouse2Text3, FuchsiaHouse2Text4, FuchsiaHouse2Text5
@@ -30923,7 +33642,58 @@
 
     dw $53f5 ; objects
 
-INCBIN "baserom.gbc",$751cd,$752b9 - $751cd
+SafariZoneEntranceScript: ; 0x751cd
+    call $3c3c
+    ld hl, $51d9
+    ld a, [$d61f]
+    jp $3d97
+; 0x751d9
+INCBIN "baserom.gbc",$751d9,$e
+SafariZoneEntranceScript0: ; 0x751e7
+    ld hl, $5221
+    call $34bf
+    ret nc
+    ld a, $3
+    ld [$ff00+$8c], a
+    call $2920
+    ld a, $ff
+    ld [$cd6b], a
+    xor a
+    ld [$ff00+$b4], a
+    ld a, $c
+    ld [$c109], a
+    ld a, [$cd3d]
+    cp $1
+    jr z, .asm_7520f ; 0x75207 $6
+    ld a, $2
+    ld [$d61f], a
+    ret
+.asm_7520f
+    ld a, $10
+    ld c, $1
+    call $52a3
+    ld a, $f0
+    ld [$cd6b], a
+    ld a, $1
+    ld [$d61f], a
+    ret
+; 0x75221
+INCBIN "baserom.gbc",$75221,$75226 - $75221
+SafariZoneEntranceScript1: ; 0x75226
+    call $52b4
+    ret nz
+    xor a
+    ld [$ff00+$b4], a
+    ld [$cd6b], a
+    call $2429
+    ld a, $4
+    ld [$ff00+$8c], a
+    call $2920
+    ld a, $ff
+    ld [$cd6b], a
+    ret
+; 0x75240
+INCBIN "baserom.gbc",$75240,$79
 
 SafariZoneEntranceTexts: ; 0x752b9
     dw SafariZoneEntranceText1, SafariZoneEntranceText2, SafariZoneEntranceText3, SafariZoneEntranceText4, SafariZoneEntranceText5, SafariZoneEntranceText6
@@ -30992,7 +33762,17 @@
 
     dw $5658 ; objects
 
-INCBIN "baserom.gbc",$7543d,$754d5 - $7543d
+FuchsiaGymScript: ; 0x7543d
+    call $5453
+    call $3c3c
+    ld hl, $54eb
+    ld de, $5482
+    ld a, [$d65b]
+    call $3160
+    ld [$d65b], a
+    ret
+; 0x75453
+INCBIN "baserom.gbc",$75453,$82
 
 FuchsiaGymTexts: ; 0x754d5
     dw FuchsiaGymText1, FuchsiaGymText2, FuchsiaGymText3, FuchsiaGymText4, FuchsiaGymText5, FuchsiaGymText6, FuchsiaGymText7, FuchsiaGymText8, FuchsiaGymText9, FuchsiaGymText10, FuchsiaGymText11
@@ -31141,7 +33921,11 @@
 
     dw $56fc ; objects
 
-INCBIN "baserom.gbc",$756e3,$756e7 - $756e3
+FuchsiaMeetingRoomScript: ; 0x756e3
+    call $3c3c
+    ret
+; 0x756e7
+INCBIN "baserom.gbc",$756e7,$0
 
 FuchsiaMeetingRoomTexts: ; 0x756e7
     dw FuchsiaMeetingRoomText1, FuchsiaMeetingRoomText2, FuchsiaMeetingRoomText3
@@ -31187,7 +33971,49 @@
 
     dw $5acc ; objects
 
-INCBIN "baserom.gbc",$7574a,$7589f - $7574a
+CinnabarGymScript: ; 0x7574a
+    call $5759
+    call $3c3c
+    ld hl, $57a6
+    ld a, [$d65e]
+    jp $3d97
+; 0x75759
+INCBIN "baserom.gbc",$75759,$55
+CinnabarGymScript0: ; 0x757ae
+    ld a, [$da38]
+    and a
+    ret z
+    ld [$ff00+$8c], a
+    cp $4
+    jr nz, .asm_757c3 ; 0x757b7 $a
+    ld a, $4
+    ld [$d528], a
+    ld de, $57d7
+    jr .asm_757cb ; 0x757c1 $8
+.asm_757c3
+    ld de, $57da
+    ld a, $1
+    ld [$d528], a
+.asm_757cb
+    call $363a
+    ld a, $1
+    ld [$d65e], a
+    ld [$da39], a
+    ret
+; 0x757d7
+INCBIN "baserom.gbc",$757d7,$757dc - $757d7
+CinnabarGymScript1: ; 0x757dc
+    ld a, [$d730]
+    bit 0, a
+    ret nz
+    xor a
+    ld [$cd6b], a
+    ld a, [$da38]
+    ld [$cc55], a
+    ld [$ff00+$8c], a
+    jp $2920
+; 0x757f1
+INCBIN "baserom.gbc",$757f1,$ae
 
 CinnabarGymTexts: ; 0x7589f
     dw CinnabarGymText1, CinnabarGymText2, CinnabarGymText3, CinnabarGymText4, CinnabarGymText5, CinnabarGymText6, CinnabarGymText7, CinnabarGymText8, CinnabarGymText9
@@ -31406,7 +34232,11 @@
 
     dw $5bb3 ; objects
 
-INCBIN "baserom.gbc",$75b8c,$75b90 - $75b8c
+Lab1Script: ; 0x75b8c
+    call $3c3c
+    ret
+; 0x75b90
+INCBIN "baserom.gbc",$75b90,$0
 
 Lab1Texts: ; 0x75b90
     dw Lab1Text1, Lab1Text2, Lab1Text3, Lab1Text4, Lab1Text5
@@ -31468,7 +34298,10 @@
 
     dw $5c45 ; objects
 
-INCBIN "baserom.gbc",$75c21,$75c24 - $75c21
+Lab2Script: ; 0x75c21
+    jp $3c3c
+; 0x75c24
+INCBIN "baserom.gbc",$75c24,$0
 
 Lab2Texts: ; 0x75c24
     dw Lab2Text1, Lab2Text2, Lab2Text3
@@ -31521,7 +34354,10 @@
 
     dw $5cec ; objects
 
-INCBIN "baserom.gbc",$75c87,$75c8a - $75c87
+Lab3Script: ; 0x75c87
+    jp $3c3c
+; 0x75c8a
+INCBIN "baserom.gbc",$75c8a,$0
 
 Lab3Texts: ; 0x75c8a
     dw Lab3Text1, Lab3Text2, Lab3Text3, Lab3Text4, Lab3Text5
@@ -31597,7 +34433,10 @@
 
     dw $5df0 ; objects
 
-INCBIN "baserom.gbc",$75d31,$75d6c - $75d31
+Lab4Script: ; 0x75d31
+    jp $3c3c
+; 0x75d34
+INCBIN "baserom.gbc",$75d34,$38
 
 Lab4Text1: ; 0x75d6c
     db $8
@@ -31683,7 +34522,11 @@
 
     dw $5e46 ; objects
 
-INCBIN "baserom.gbc",$75e2c,$75e3b - $75e2c
+CinnabarPokecenterScript: ; 0x75e2c
+    call $22fa
+    jp $3c3c
+; 0x75e32
+INCBIN "baserom.gbc",$75e32,$9
 
 CinnabarPokecenterText2:
 CinnabarPokecenterText1: ; 0x75e3b
@@ -31724,7 +34567,10 @@
 
     dw $5e91 ; objects
 
-INCBIN "baserom.gbc",$75e7e,$75e81 - $75e7e
+CinnabarMartScript: ; 0x75e7e
+    jp $3c3c
+; 0x75e81
+INCBIN "baserom.gbc",$75e81,$0
 
 CinnabarMartTexts: ; 0x75e81
     dw CinnabarMartText1, CinnabarMartText2, CinnabarMartText3
@@ -31763,7 +34609,10 @@
 
     dw $5ee3 ; objects
 
-INCBIN "baserom.gbc",$75ec3,$75ec6 - $75ec3
+CopycatsHouseF1Script: ; 0x75ec3
+    jp $3c3c
+; 0x75ec6
+INCBIN "baserom.gbc",$75ec6,$0
 
 CopycatsHouseF1Texts: ; 0x75ec6
     dw CopycatsHouseF1Text1, CopycatsHouseF1Text2, CopycatsHouseF1Text3
@@ -31803,7 +34652,18 @@
     EVENT_DISP $4, $7, $3
     EVENT_DISP $4, $1, $7 ; COPYCATS_HOUSE_2F
 
-INCBIN "baserom.gbc",$75f11,$760d6 - $75f11
+INCBIN "baserom.gbc",$75f11,$75f1d - $75f11
+GaryScript: ; 0x75f1d
+    call $3c3c
+    ld hl, $5f31
+    ld a, [$d64c]
+    jp $3d97
+; 0x75f29
+INCBIN "baserom.gbc",$75f29,$1e
+GaryScript0: ; 0x75f47
+    ret
+; 0x75f48
+INCBIN "baserom.gbc",$75f48,$18e
 
 GaryTexts: ; 0x760d6
     dw GaryText1, GaryText2, GaryText3, GaryText4, GaryText5
@@ -31866,8 +34726,19 @@
 
     dw $6280 ; objects
 
-INCBIN "baserom.gbc",$7617b,$76251 - $7617b
+LoreliScript: ; 0x7617b
+    call $6191
+    call $3c3c
+    ld hl, $6255
+    ld de, $61bb
+    ld a, [$d64d]
+    call $3160
+    ld [$d64d], a
+    ret
+; 0x76191
 
+INCBIN "baserom.gbc",$76191,$c0
+
 LoreliTexts: ; 0x76251
     dw LoreliText1, LoreliText2
 
@@ -31915,8 +34786,19 @@
 
     dw $63d7 ; objects
 
-INCBIN "baserom.gbc",$762d6,$763a8 - $762d6
+BrunoScript: ; 0x762d6
+    call $62ec
+    call $3c3c
+    ld hl, $63ac
+    ld de, $6312
+    ld a, [$d64e]
+    call $3160
+    ld [$d64e], a
+    ret
+; 0x762ec
 
+INCBIN "baserom.gbc",$762ec,$bc
+
 BrunoTexts: ; 0x763a8
     dw BrunoText1, BrunoText2
 
@@ -31964,7 +34846,18 @@
 
     dw $6534 ; objects
 
-INCBIN "baserom.gbc",$7642d,$76505 - $7642d
+AgathaScript: ; 0x7642d
+    call $6443
+    call $3c3c
+    ld hl, $6509
+    ld de, $6469
+    ld a, [$d64f]
+    call $3160
+    ld [$d64f], a
+    ret
+; 0x76443
+
+INCBIN "baserom.gbc",$76443,$c2
 
 AgathaTexts: ; 0x76505
     dw AgathaText1, AgathaText2