ref: 8f6f5a00609abd1f73833e68932f4f39dce2738d
parent: e48e33eccd6e4ce381e897cebd63aec120a36070
author: Bryan Bishop <[email protected]>
date: Thu Feb 28 10:28:29 EST 2013
disassemble some small functions in scripting.asm
--- a/scripting.asm
+++ b/scripting.asm
@@ -171,8 +171,24 @@
dw Script_unknown0xa9
; 0x96e05
-INCBIN "baserom.gbc",$96e05,$96e17 - $96e05
+Unknown_0x96e05: ; 0x96e05
+ ld hl, $d434
+ set 2, [hl]
+ ret
+; 0x96e0b
+Unknown_0x96e0b: ; 0x96e0b
+ ld hl, $d434
+ bit 2, [hl]
+ ret
+; 0x96e11
+
+Unknown_0x96e11: ; 0x96e11
+ ld hl, $d434
+ res 2, [hl]
+ ret
+; 0x96e17
+
Script_3callasm: ; 0x96e17
; script command 0xe
; parameters:
@@ -892,7 +908,14 @@
ret
; 0x971e3
-INCBIN "baserom.gbc",$971e3,$971ea - $971e3
+Unknown_0x971e3: ; 0x971e3
+ and a
+ ret z
+ cp $fe
+ ret z
+ dec a
+ ret
+; 0x971ea
Script_setlasttalked: ; 0x971ea
; script command 0x68
@@ -900,7 +923,7 @@
; person (SingleByteParam)
call $26d4
- call $71e3
+ call Unknown_0x971e3
ld [$ffe0], a
ret
; 0x971f3
@@ -912,7 +935,7 @@
; data (MovementPointerLabelParam)
call $26d4
- call $71e3
+ call Unknown_0x971e3
ld c, a
push bc
ld a, c
@@ -933,11 +956,16 @@
ret c
ld a, $2
ld [$d437], a
- call $6e11
+ call Unknown_0x96e11
ret
; 0x97221
-INCBIN "baserom.gbc",$97221,$97228 - $97221
+Unknown_0x97221: ; 0x97221
+ ld a, $1
+ ld hl, $5897
+ rst $8
+ ret
+; 0x97228
Script_applymovement2: ; 0x97228
; script command 0x6a
@@ -978,7 +1006,7 @@
; person2 (SingleByteParam)
call $26d4
- call $71e3
+ call Unknown_0x971e3
cp $fe
jr c, .asm_97254 ; 0x97250 $2
ld a, [$ffe0]
@@ -985,7 +1013,7 @@
.asm_97254
ld e, a
call $26d4
- call $71e3
+ call Unknown_0x971e3
cp $fe
jr nz, .asm_97261 ; 0x9725d $2
ld a, [$ffe0]
@@ -1013,7 +1041,7 @@
; facing (SingleByteParam)
call $26d4
- call $71e3
+ call Unknown_0x971e3
cp $fe
jr nz, .asm_97280 ; 0x9727c $2
ld a, [$ffe0]
@@ -1027,8 +1055,52 @@
ret
; 0x9728b
-INCBIN "baserom.gbc",$9728b,$972ce - $9728b
+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
+.asm_972b5
+ call $1ad2
+ ret
+.asm_972b9
+ pop de
+ scf
+ ret
+; 0x972bc
+Unknown_0x972bc: ; 0x972bc
+ 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
+; 0x972ce
+
Script_variablesprite: ; 0x972ce
; script command 0x6d
; parameters:
@@ -1051,7 +1123,7 @@
; person (SingleByteParam)
call $26d4
- call $71e3
+ call Unknown_0x971e3
call $1956
ld a, [$ffaf]
ld b, $0
@@ -1065,7 +1137,7 @@
; person (SingleByteParam)
call $26d4
- call $71e3
+ call Unknown_0x971e3
cp $fe
jr nz, .asm_972fa ; 0x972f6 $2
ld a, [$ffe0]
@@ -1080,7 +1152,26 @@
ret
; 0x9730b
-INCBIN "baserom.gbc",$9730b,$97325 - $9730b
+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
+.asm_97321
+ call BitTable1Func
+ ret
+; 0x97325
Script_follow: ; 0x97325
; script command 0x70
@@ -1089,10 +1180,10 @@
; person1 (SingleByteParam)
call $26d4
- call $71e3
+ call Unknown_0x971e3
ld b, a
call $26d4
- call $71e3
+ call Unknown_0x971e3
ld c, a
ld a, $1
ld hl, $5803
@@ -1117,7 +1208,7 @@
; y (SingleByteParam)
call $26d4
- call $71e3
+ call Unknown_0x971e3
ld b, a
call $26d4
add $4
@@ -1137,7 +1228,7 @@
; person (SingleByteParam)
call $26d4
- call $71e3
+ call Unknown_0x971e3
cp $fe
jr nz, .asm_97367 ; 0x97363 $2
ld a, [$ffe0]
@@ -1156,10 +1247,10 @@
; person1 (SingleByteParam)
call $26d4
- call $71e3
+ call Unknown_0x971e3
ld b, a
call $26d4
- call $71e3
+ call Unknown_0x971e3
ld c, a
ld a, $2
ld hl, $439e
@@ -1194,7 +1285,7 @@
call $26d4
ld [$c2dd], a
call $26d4
- call $71e3
+ call Unknown_0x971e3
cp $fe
jr z, .asm_973a8 ; 0x973a4 $2
ld [$ffe0], a
@@ -1356,7 +1447,7 @@
ld [$ff9f], a
ld a, $1
call $261b
- call $6e11
+ call Unknown_0x96e11
ret
; 0x974a2
@@ -1430,7 +1521,12 @@
ret
; 0x974f3
-INCBIN "baserom.gbc",$974f3,$974fe - $974f3
+Unknown_0x974f3: ; 0x974f3
+ ld a, [$d439]
+ or $80
+ ld [$d439], a
+ jp $74cb
+; 0x974fe
Script_2jump: ; 0x974fe
; script command 0x3
@@ -1573,7 +1669,23 @@
jp $74cb
; 0x9757b
-INCBIN "baserom.gbc",$9757b,$97596 - $9757b
+Unknown_0x9757b: ; 0x9757b
+ call $26d4
+ ld e, a
+ call $26d4
+ 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
+; 0x97596
Unknown_97596: ; 0x97596
call $26d4
@@ -1784,7 +1896,18 @@
ret
; 0x97673
-INCBIN "baserom.gbc",$97673,$9767d - $97673
+Unknown_0x97673: ; 0x97673
+ xor a
+ ld b, a
+ sub c
+.asm_97676
+ inc b
+ sub c
+ jr nc, .asm_97676 ; 0x97678 $fc
+ dec b
+ add c
+ ret
+; 0x9767d
Script_checkcode: ; 0x9767d
; script command 0x1c
@@ -1823,7 +1946,13 @@
ret
; 0x9769e
-INCBIN "baserom.gbc",$9769e,$976a6 - $9769e
+Unknown_0x9769e: ; 0x9769e
+ ld c, a
+ ld a, $20
+ ld hl, $4648
+ rst $8
+ ret
+; 0x976a6
Script_checkver: ; 0x976a6
; script command 0x18
@@ -1991,7 +2120,13 @@
jp $76c0
; 0x97771
-INCBIN "baserom.gbc",$97771,$9777d - $97771
+Unknown_0x97771: ; 0x97771
+ ld hl, $d073
+ ld bc, $000b
+ ld a, $50
+ call ByteFill
+ ret
+; 0x9777d
Script_stringtotext: ; 0x9777d
; script command 0x44
@@ -2156,6 +2291,7 @@
ld a, $5
ld hl, $600b
rst $8
+; 0x9784f
Unknown_9784f: ; 0x9784f
jr c, .asm_9785b ; 0x9784f $a
@@ -2172,8 +2308,30 @@
ret
; 0x97861
-INCBIN "baserom.gbc",$97861,$97881 - $97861
+Unknown_0x97861: ; 0x97861
+ call $26d4
+ and a
+ ld de, $d84e
+ ret z
+ ld de, $d851
+ ret
+; 0x9786d
+Unknown_0x9786d: ; 0x9786d
+ ld bc, $ffc3
+ push bc
+ call $26d4
+ ld [bc], a
+ inc bc
+ call $26d4
+ ld [bc], a
+ inc bc
+ call $26d4
+ ld [bc], a
+ pop bc
+ ret
+; 0x97881
+
Script_givecoins: ; 0x97881
; script command 0x25
; parameters:
@@ -2484,7 +2642,12 @@
ret
; 0x979ee
-INCBIN "baserom.gbc",$979ee,$979f5 - $979ee
+Unknown_0x979ee: ; 0x979ee
+ ld a, $20
+ ld hl, $4430
+ rst $8
+ ret
+; 0x979f5
Script_wildon: ; 0x979f5
; script command 0x38
@@ -2556,7 +2719,7 @@
ld [$ff9f], a
ld a, $1
call $261b
- call $6e11
+ call Unknown_0x96e11
ret
.asm_97a4a
call $26d4
@@ -2568,7 +2731,7 @@
ld [$ff9f], a
ld a, $1
call $261b
- call $6e11
+ call Unknown_0x96e11
ret
; 0x97a65
@@ -2705,7 +2868,12 @@
ret
; 0x97b01
-INCBIN "baserom.gbc",$97b01,$97b08 - $97b01
+Unknown_0x97b01: ; 0x97b01
+ ld a, $25
+ ld hl, $66d0
+ rst $8
+ ret
+; 0x97b08
Script_newloadmap: ; 0x97b08
; script command 0x8a
@@ -2716,7 +2884,7 @@
ld [$ff9f], a
ld a, $1
call $261b
- call $6e11
+ call Unknown_0x96e11
ret
; 0x97b16
@@ -2810,7 +2978,7 @@
.asm_97b65
ld a, $3
ld [$d437], a
- call $6e11
+ call Unknown_0x96e11
ret
; 0x97b6e
@@ -2819,7 +2987,7 @@
; parameters:
; pointer (ScriptPointerLabelParam)
- call $6e11
+ call Unknown_0x96e11
jp Script_2jump
; 0x97b74
@@ -2836,7 +3004,7 @@
ld [$d437], a
ld hl, $d434
res 0, [hl]
- call $6e11
+ call Unknown_0x96e11
ret
; 0x97b8c
@@ -2848,11 +3016,38 @@
.asm_97b91
ld hl, $d434
res 0, [hl]
- call $6e11
+ call Unknown_0x96e11
ret
; 0x97b9a
-INCBIN "baserom.gbc",$97b9a,$97bc0 - $97b9a
+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 [$d439], a
+ ld a, [hli]
+ ld e, a
+ ld [$d43a], a
+ ld a, [hl]
+ ld d, a
+ ld [$d43b], a
+ and a
+ ret
+.asm_97bbe
+ scf
+ ret
+; 0x97bc0
Script_resetfuncs: ; 0x97bc0
; script command 0x93
@@ -2864,7 +3059,7 @@
ld [$d437], a
ld hl, $d434
res 0, [hl]
- call $6e11
+ call Unknown_0x96e11
ret
; 0x97bd5
@@ -2898,7 +3093,7 @@
call $7bc0
ld a, $3
call $261b
- call $6e11
+ call Unknown_0x96e11
ret
; 0x97c05