ref: a3870db643c1d120422468ec55e486a59f9b2803
parent: 82ebad99de7e34fb1bd977e3621ad88a48052b51
author: yenatch <yenatch@gmail.com>
date: Thu Jul 4 00:11:45 EDT 2013
Clean up and remove incbins from script commands
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -172,21 +172,21 @@
; 0x96e05
Unknown_0x96e05: ; 0x96e05
- ld hl, $d434
- set 2, [hl]
- ret
+ ld hl, $d434
+ set 2, [hl]
+ ret
; 0x96e0b
Unknown_0x96e0b: ; 0x96e0b
- ld hl, $d434
- bit 2, [hl]
- ret
+ ld hl, $d434
+ bit 2, [hl]
+ ret
; 0x96e11
Unknown_0x96e11: ; 0x96e11
- ld hl, $d434
- res 2, [hl]
- ret
+ ld hl, $d434
+ res 2, [hl]
+ ret
; 0x96e17
Script_3callasm: ; 0x96e17
@@ -250,8 +250,8 @@
ld [$d44f], a
call GetScriptByte
ld [$d450], a
- ld b, $25
- ld hl, $6e79
+ ld b, BANK(JumpTextFacePlayerScript)
+ ld hl, JumpTextFacePlayerScript
jp ScriptJump
; 0x96e5f
@@ -266,12 +266,20 @@
ld [$d44f], a
call GetScriptByte
ld [$d450], a
- ld b, $25
- ld hl, $6e7a
+ ld b, BANK(JumpTextScript)
+ ld hl, JumpTextScript
jp ScriptJump
; 0x96e79
-INCBIN "baserom.gbc",$96e79,$96e81 - $96e79
+JumpTextFacePlayerScript: ; 0x96e79
+ faceplayer
+JumpTextScript: ; 0x96e7a
+ loadfont
+ repeattext $ff, $ff
+ closetext
+ loadmovesprites
+ end
+; 0x96e81
Script_3jumptext: ; 0x96e81
; script command 0x52
@@ -284,8 +292,8 @@
ld [$d44f], a
call GetScriptByte
ld [$d450], a
- ld b, $25
- ld hl, $6e7a
+ ld b, BANK(JumpTextScript)
+ ld hl, JumpTextScript
jp ScriptJump
; 0x96e9b
@@ -478,17 +486,42 @@
; quantity (DecimalParam)
call $77ca
- call $7051
- ld de, $d073
+ call CurItemName
+ ld de, StringBuffer1
ld a, $1
call $76c8
- ld b, $25
- ld de, $6f77
- jp $74cb
+ ld b, BANK(GiveItemScript)
+ ld de, GiveItemScript
+ jp ScriptCall
; 0x96f76
-INCBIN "baserom.gbc",$96f76,$96f8e - $96f76
+Function96f76: ; 96f76
+ ret
+; 96f77
+
+GiveItemScript: ; 96f77
+ 3callasm BANK(Function96f76), Function96f76
+ 2writetext ReceivedItemText
+ iffalse .Full
+ waitbutton
+ specialsound
+ closetext
+ itemnotify
+ end
+
+.Full
+ keeptextopen
+ pocketisfull
+ end
+; 96f89
+
+ReceivedItemText: ; 96f89
+ text_jump UnknownText_0x1c4719, BANK(UnknownText_0x1c4719)
+ db "@"
+; 96f8e
+
+
Script_verbosegiveitem2: ; 0x96f8e
; script command 0x9f
; parameters:
@@ -512,22 +545,22 @@
xor a
.asm_96fb0
ld [$c2dd], a
- call $7051
- ld de, $d073
+ call CurItemName
+ ld de, StringBuffer1
ld a, $1
call $76c8
- ld b, $25
- ld de, $6f77
- jp $74cb
+ ld b, BANK(GiveItemScript)
+ ld de, GiveItemScript
+ jp ScriptCall
; 0x96fc6
Script_itemnotify: ; 0x96fc6
; script command 0x45
- call $6ffe
- call $7051
- ld b, $25
- ld hl, $705b
+ call GetPocketName
+ call CurItemName
+ ld b, BANK(PutItemInPocketText)
+ ld hl, PutItemInPocketText
call $269a
ret
; 0x96fd5
@@ -535,10 +568,10 @@
Script_pocketisfull: ; 0x96fd5
; script command 0x46
- call $6ffe
- call $7051
- ld b, $25
- ld hl, $7060
+ call GetPocketName
+ call CurItemName
+ ld b, BANK(PocketIsFullText)
+ ld hl, PocketIsFullText
call $269a
ret
; 0x96fe4
@@ -560,8 +593,59 @@
ret
; 0x96ffe
-INCBIN "baserom.gbc",$96ffe,$97065 - $96ffe
+GetPocketName: ; 96ffe
+ callba CheckItemPocket
+ ld a, [$d142]
+ dec a
+ ld hl, .Pockets
+ and 3
+ add a
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ld hl, StringBuffer3
+ call CopyName2
+ ret
+
+.Pockets
+ dw .Item
+ dw .Key
+ dw .Ball
+ dw .TM
+
+.Item
+ db "ITEM POCKET@"
+.Key
+ db "KEY POCKET@"
+.Ball
+ db "BALL POCKET@"
+.TM
+ db "TM POCKET@"
+; 97051
+
+CurItemName: ; 97051
+ ld a, [CurItem]
+ ld [$d265], a
+ call GetItemName
+ ret
+; 9705b
+
+
+PutItemInPocketText: ; 9705b
+ text_jump UnknownText_0x1c472c, BANK(UnknownText_0x1c472c)
+ db "@"
+; 97060
+
+PocketIsFullText: ; 97060
+ text_jump UnknownText_0x1c474b, BANK(UnknownText_0x1c474b)
+ db "@"
+; 97065
+
+
Script_pokemart: ; 0x97065
; script command 0x94
; parameters:
@@ -909,12 +993,12 @@
; 0x971e3
Unknown_0x971e3: ; 0x971e3
- and a
- ret z
- cp $fe
- ret z
- dec a
- ret
+ and a
+ ret z
+ cp $fe
+ ret z
+ dec a
+ ret
; 0x971ea
Script_setlasttalked: ; 0x971ea
@@ -961,10 +1045,10 @@
; 0x97221
Unknown_0x97221: ; 0x97221
- ld a, $1
- ld hl, $5897
- rst $8
- ret
+ ld a, $1
+ ld hl, $5897
+ rst $8
+ ret
; 0x97228
Script_applymovement2: ; 0x97228
@@ -1056,49 +1140,49 @@
; 0x9728b
Unknown_0x9728b: ; 0x9728b
- ld a, d
- push de
- call $18de
- jr c, .asm_972b9 ; 0x97290 $27
- ld hl, $0000
- add hl, bc
- ld a, [hl]
- push bc
- call $1836
- pop bc
- jr c, .asm_972b9 ; 0x9729c $1b
- ld hl, $0004
- add hl, bc
- bit 2, [hl]
- jr nz, .asm_972b9 ; 0x972a4 $13
- pop de
- ld a, e
- call $1af8
- ld hl, $d0ed
- bit 6, [hl]
- jr nz, .asm_972b5 ; 0x972b0 $3
- call $72bc
+ ld a, d
+ push de
+ call $18de
+ jr c, .asm_972b9 ; 0x97290 $27
+ ld hl, $0000
+ add hl, bc
+ ld a, [hl]
+ push bc
+ call $1836
+ pop bc
+ jr c, .asm_972b9 ; 0x9729c $1b
+ ld hl, $0004
+ add hl, bc
+ bit 2, [hl]
+ jr nz, .asm_972b9 ; 0x972a4 $13
+ pop de
+ ld a, e
+ call $1af8
+ ld hl, $d0ed
+ bit 6, [hl]
+ jr nz, .asm_972b5 ; 0x972b0 $3
+ call $72bc
.asm_972b5
- call $1ad2
- ret
+ call $1ad2
+ ret
.asm_972b9
- pop de
- scf
- ret
+ pop de
+ scf
+ ret
; 0x972bc
Unknown_0x972bc: ; 0x972bc
- call $217a
- ld hl, $c4a0
- ld bc, $0168
+ call $217a
+ ld hl, $c4a0
+ ld bc, $0168
.asm_972c5
- res 7, [hl]
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .asm_972c5 ; 0x972cb $f8
- ret
+ res 7, [hl]
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_972c5 ; 0x972cb $f8
+ ret
; 0x972ce
Script_variablesprite: ; 0x972ce
@@ -1153,24 +1237,24 @@
; 0x9730b
Unknown_0x9730b: ; 0x9730b
- push bc
- call $18d2
- ld hl, $000c
- add hl, bc
- pop bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, $ff
- cp e
- jr nz, .asm_97321 ; 0x9731a $5
- cp d
- jr nz, .asm_97321 ; 0x9731d $2
- xor a
- ret
+ push bc
+ call $18d2
+ ld hl, $000c
+ add hl, bc
+ pop bc
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, $ff
+ cp e
+ jr nz, .asm_97321 ; 0x9731a $5
+ cp d
+ jr nz, .asm_97321 ; 0x9731d $2
+ xor a
+ ret
.asm_97321
- call BitTable1Func
- ret
+ call BitTable1Func
+ ret
; 0x97325
Script_follow: ; 0x97325
@@ -1292,33 +1376,61 @@
.asm_973a8
call GetScriptByte
ld [$d44d], a
- ld b, $25
- ld de, $73b6
- jp $74cb
+ ld b, BANK(ShowEmoteScript)
+ ld de, ShowEmoteScript
+ jp ScriptCall
; 0x973b6
-INCBIN "baserom.gbc",$973b6,$973c7 - $973b6
+ShowEmoteScript: ; 973b6
+ loademote $ff
+ applymovement2 .Show
+ pause 0
+ applymovement2 .Hide
+ end
+.Show
+ show_emote
+ show_person
+ step_end
+
+.Hide
+ hide_emote
+ show_person
+ step_end
+; 973c7
+
+
Script_earthquake: ; 0x973c7
; script command 0x78
; parameters:
; param (DecimalParam)
- ld hl, $73eb
+ ld hl, EarthquakeMovement
ld de, $d002
- ld bc, $0005
+ ld bc, EarthquakeMovementEnd - EarthquakeMovement
call CopyBytes
call GetScriptByte
ld [$d003], a
and $3f
ld [$d005], a
- ld b, $25
- ld de, $73e6
- jp $74cb
+ ld b, BANK(UnknownScript_0x973e6)
+ ld de, UnknownScript_0x973e6
+ jp ScriptCall
; 0x973e6
-INCBIN "baserom.gbc",$973e6,$973f0 - $973e6
+UnknownScript_0x973e6: ; 973e6
+ applymovement $0, $d002
+ end
+; 973eb
+EarthquakeMovement: ; 973eb
+ step_shake 16
+ step_sleep 16
+ step_end
+EarthquakeMovementEnd
+; 973f0
+
+
Script_loadpikachudata: ; 0x973f0
; script command 0x5a
@@ -1402,7 +1514,7 @@
ld a, $13
ld hl, $6554
rst $8
- jp $7491
+ jp Script_reloadmap
; 0x97459
Script_returnafterbattle: ; 0x97459
@@ -1435,7 +1547,7 @@
ld hl, $7c4f
rst $8
.asm_9748e
- jp $7491
+ jp Script_reloadmap
; 0x97491
Script_reloadmap: ; 0x97491
@@ -1522,10 +1634,10 @@
; 0x974f3
Unknown_0x974f3: ; 0x974f3
- ld a, [ScriptBank]
- or $80
- ld [ScriptBank], a
- jp $74cb
+ ld a, [ScriptBank]
+ or $80
+ ld [ScriptBank], a
+ jp ScriptCall
; 0x974fe
Script_2jump: ; 0x974fe
@@ -1580,7 +1692,7 @@
ld a, [$c2dd]
and a
- jp nz, $7596
+ jp nz, SkipTwoScriptBytes
jp Script_2jump
; 0x97536
@@ -1592,7 +1704,7 @@
ld a, [$c2dd]
and a
jp nz, Script_2jump
- jp $7596
+ jp SkipTwoScriptBytes
; 0x97540
Script_if_equal: ; 0x97540
@@ -1605,7 +1717,7 @@
ld hl, $c2dd
cp [hl]
jr z, Script_2jump ; 0x97547 $b5
- jr Unknown_97596 ; 0x97549 $4b
+ jr SkipTwoScriptBytes ; 0x97549 $4b
; 0x9754b
Script_if_not_equal: ; 0x9754b
@@ -1618,7 +1730,7 @@
ld hl, $c2dd
cp [hl]
jr nz, Script_2jump ; 0x97552 $aa
- jr Unknown_97596 ; 0x97554 $40
+ jr SkipTwoScriptBytes ; 0x97554 $40
; 0x97556
Script_if_less_than: ; 0x97556
@@ -1632,7 +1744,7 @@
call GetScriptByte
cp b
jr c, Script_2jump ; 0x9755e $9e
- jr Unknown_97596 ; 0x97560 $34
+ jr SkipTwoScriptBytes ; 0x97560 $34
; 0x97562
Script_if_greater_than: ; 0x97562
@@ -1646,7 +1758,7 @@
ld a, [$c2dd]
cp b
jr c, Script_2jump ; 0x9756a $92
- jr Unknown_97596 ; 0x9756c $28
+ jr SkipTwoScriptBytes ; 0x9756c $28
; 0x9756e
Script_jumpstd: ; 0x9756e
@@ -1654,7 +1766,7 @@
; parameters:
; predefined_script (MultiByteParam)
- call $757b
+ call StdScript
jr ScriptJump ; 0x97571 $2a
; 0x97573
@@ -1663,31 +1775,31 @@
; parameters:
; predefined_script (MultiByteParam)
- call $757b
+ call StdScript
ld d, h
ld e, l
- jp $74cb
+ jp ScriptCall
; 0x9757b
-Unknown_0x9757b: ; 0x9757b
- call GetScriptByte
- ld e, a
- call GetScriptByte
- ld d, a
- ld hl, $4000
- add hl, de
- add hl, de
- add hl, de
- ld a, $2f
- call GetFarByte
- ld b, a
- inc hl
- ld a, $2f
- call GetFarHalfword
- ret
+StdScript: ; 0x9757b
+ call GetScriptByte
+ ld e, a
+ call GetScriptByte
+ ld d, a
+ ld hl, $4000 ; StdScripts
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, $2f ; BANK(StdScripts)
+ call GetFarByte
+ ld b, a
+ inc hl
+ ld a, $2f ; BANK(StdScripts)
+ call GetFarHalfword
+ ret
; 0x97596
-Unknown_97596: ; 0x97596
+SkipTwoScriptBytes: ; 0x97596
call GetScriptByte
call GetScriptByte
ret
@@ -1897,16 +2009,16 @@
; 0x97673
Unknown_0x97673: ; 0x97673
- xor a
- ld b, a
- sub c
+ xor a
+ ld b, a
+ sub c
.asm_97676
- inc b
- sub c
- jr nc, .asm_97676 ; 0x97678 $fc
- dec b
- add c
- ret
+ inc b
+ sub c
+ jr nc, .asm_97676 ; 0x97678 $fc
+ dec b
+ add c
+ ret
; 0x9767d
Script_checkcode: ; 0x9767d
@@ -1947,22 +2059,24 @@
; 0x9769e
Unknown_0x9769e: ; 0x9769e
- ld c, a
- ld a, $20
- ld hl, $4648
- rst $8
- ret
+ ld c, a
+ ld a, $20
+ ld hl, $4648
+ rst $8
+ ret
; 0x976a6
Script_checkver: ; 0x976a6
; script command 0x18
- ld a, [$76ad]
+ ld a, [Version]
ld [$c2dd], a
ret
; 0x976ad
-INCBIN "baserom.gbc",$976ad,$976ae - $976ad
+Version: ; 976ad
+ db VERSION
+; 976ae
Script_pokenamemem: ; 0x976ae
; script command 0x40
@@ -1977,7 +2091,7 @@
.asm_976b7
ld [$d265], a
call $343b
- ld de, $d073
+ ld de, StringBuffer1
Unknown_976c0: ; 0x976c0
call GetScriptByte
@@ -1985,8 +2099,8 @@
jr c, .asm_976c8 ; 0x976c5 $1
xor a
.asm_976c8
- ld hl, $d099
- ld bc, $0013
+ ld hl, StringBuffer3
+ ld bc, 19
call AddNTimes
call CopyName2
ret
@@ -2005,7 +2119,7 @@
.asm_976de
ld [$d265], a
call GetItemName
- ld de, $d073
+ ld de, StringBuffer1
jr Unknown_976c0 ; 0x976e7 $d7
; 0x976e9
@@ -2025,8 +2139,8 @@
ld a, $72
ld hl, $68a5
rst $8
- ld de, $d073
- jp $76c0
+ ld de, StringBuffer1
+ jp Unknown_976c0
; 0x97701
Script_displaylocation: ; 0x97701
@@ -2065,8 +2179,8 @@
call GetScriptByte
ld [$cf60], a
call GetName
- ld de, $d073
- jp $76c0
+ ld de, StringBuffer1
+ jp Unknown_976c0
; 0x9772b
Script_unknown0xa6: ; 0x9772b
@@ -2085,11 +2199,11 @@
call $7771
call $7861
- ld hl, $d073
+ ld hl, StringBuffer1
ld bc, $4306
call $3198
- ld de, $d073
- jp $76c0
+ ld de, StringBuffer1
+ jp Unknown_976c0
; 0x97747
Script_readcoins: ; 0x97747
@@ -2098,12 +2212,12 @@
; memory (SingleByteParam)
call $7771
- ld hl, $d073
+ ld hl, StringBuffer1
ld de, $d855
ld bc, $4206
call $3198
- ld de, $d073
- jp $76c0
+ ld de, StringBuffer1
+ jp Unknown_976c0
; 0x9775c
Script_RAM2MEM: ; 0x9775c
@@ -2113,19 +2227,19 @@
call $7771
ld de, $c2dd
- ld hl, $d073
+ ld hl, StringBuffer1
ld bc, $4103
call $3198
- ld de, $d073
- jp $76c0
+ ld de, StringBuffer1
+ jp Unknown_976c0
; 0x97771
Unknown_0x97771: ; 0x97771
- ld hl, $d073
- ld bc, $000b
- ld a, $50
- call ByteFill
- ret
+ ld hl, StringBuffer1
+ ld bc, $000b
+ ld a, "@"
+ call ByteFill
+ ret
; 0x9777d
Script_stringtotext: ; 0x9777d
@@ -2141,8 +2255,8 @@
ld a, [ScriptBank]
ld hl, $30d6
rst $8
- ld de, $d086
- jp $76c0
+ ld de, StringBuffer2
+ jp Unknown_976c0
; 0x97792
Script_givepokeitem: ; 0x97792
@@ -2309,27 +2423,27 @@
; 0x97861
Unknown_0x97861: ; 0x97861
- call GetScriptByte
- and a
- ld de, $d84e
- ret z
- ld de, $d851
- ret
+ call GetScriptByte
+ and a
+ ld de, $d84e
+ ret z
+ ld de, $d851
+ ret
; 0x9786d
Unknown_0x9786d: ; 0x9786d
- ld bc, $ffc3
- push bc
- call GetScriptByte
- ld [bc], a
- inc bc
- call GetScriptByte
- ld [bc], a
- inc bc
- call GetScriptByte
- ld [bc], a
- pop bc
- ret
+ ld bc, $ffc3
+ push bc
+ call GetScriptByte
+ ld [bc], a
+ inc bc
+ call GetScriptByte
+ ld [bc], a
+ inc bc
+ call GetScriptByte
+ ld [bc], a
+ pop bc
+ ret
; 0x97881
Script_givecoins: ; 0x97881
@@ -2643,10 +2757,10 @@
; 0x979ee
Unknown_0x979ee: ; 0x979ee
- ld a, $20
- ld hl, $4430
- rst $8
- ret
+ ld a, $20
+ ld hl, $4430
+ rst $8
+ ret
; 0x979f5
Script_wildon: ; 0x979f5
@@ -2869,10 +2983,10 @@
; 0x97b01
Unknown_0x97b01: ; 0x97b01
- ld a, $25
- ld hl, $66d0
- rst $8
- ret
+ ld a, $25
+ ld hl, $66d0
+ rst $8
+ ret
; 0x97b08
Script_newloadmap: ; 0x97b08
@@ -2922,8 +3036,11 @@
ret
; 0x97b2e
-INCBIN "baserom.gbc",$97b2e,$97b2f - $97b2e
+LoadMoveSpritesScript: ; 97b2e
+ loadmovesprites
+; 97b2f
+
Script_loadmovesprites: ; 0x97b2f
; script command 0x49
@@ -2932,6 +3049,7 @@
ret
; 0x97b36
+
Script_passtoengine: ; 0x97b36
; script command 0x89
; parameters:
@@ -2999,7 +3117,7 @@
ret
.asm_97b7a
xor a
- ld [$d438], a
+ ld [ScriptRunning], a
ld a, $0
ld [$d437], a
ld hl, $d434
@@ -3021,32 +3139,32 @@
; 0x97b9a
Unknown_0x97b9a: ; 0x97b9a
- ld hl, $d43c
- ld a, [hl]
- and a
- jr z, .asm_97bbe ; 0x97b9f $1d
- dec [hl]
- ld e, [hl]
- ld d, $0
- ld hl, $d43d
- add hl, de
- add hl, de
- add hl, de
- ld a, [hli]
- ld b, a
- and $7f
- ld [ScriptBank], a
- ld a, [hli]
- ld e, a
- ld [ScriptPos], a
- ld a, [hl]
- ld d, a
- ld [ScriptPos + 1], a
- and a
- ret
+ ld hl, $d43c
+ ld a, [hl]
+ and a
+ jr z, .asm_97bbe ; 0x97b9f $1d
+ dec [hl]
+ ld e, [hl]
+ ld d, $0
+ ld hl, $d43d
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld b, a
+ and $7f
+ ld [ScriptBank], a
+ ld a, [hli]
+ ld e, a
+ ld [ScriptPos], a
+ ld a, [hl]
+ ld d, a
+ ld [ScriptPos + 1], a
+ and a
+ ret
.asm_97bbe
- scf
- ret
+ scf
+ ret
; 0x97bc0
Script_resetfuncs: ; 0x97bc0
@@ -3054,7 +3172,7 @@
xor a
ld [$d43c], a
- ld [$d438], a
+ ld [ScriptRunning], a
ld a, $0
ld [$d437], a
ld hl, $d434
@@ -3125,3 +3243,4 @@
ld [$c2dd], a
ret
; 0x97c20
+