summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdata/pikachu_pic_animation.asm64
-rwxr-xr-xdata/pikachu_pic_objects.asm293
-rwxr-xr-xdata/pikachu_pic_tilemaps.asm228
-rwxr-xr-xdata/tileset_headers.asm1
-rw-r--r--engine/bank3c.asm30
-rwxr-xr-xengine/gamefreak.asm2
-rwxr-xr-xengine/overworld/pokecenter.asm4
-rwxr-xr-xengine/pikachu_follow.asm156
-rwxr-xr-xengine/pikachu_pic_animation.asm746
-rw-r--r--home/init.asm4
-rw-r--r--home/overworld.asm8
-rwxr-xr-xhome/pikachu.asm4
-rw-r--r--macros.asm12
-rwxr-xr-xscripts/daycarem.asm4
-rwxr-xr-xscripts/oakslab.asm6
-rwxr-xr-xscripts/vermiliongym.asm41
-rwxr-xr-xwram.asm2
17 files changed, 849 insertions, 756 deletions
diff --git a/data/pikachu_pic_animation.asm b/data/pikachu_pic_animation.asm
index f1f6bd68..e54a4399 100755
--- a/data/pikachu_pic_animation.asm
+++ b/data/pikachu_pic_animation.asm
@@ -1,4 +1,4 @@
-Data_fe242:
+PikaPicAnimThunderboltPals:
db 4, %11000000
db 4, %11100100
db 4, %11000000
@@ -32,7 +32,9 @@ Data_fe26b: ; fe26b (3f:626b)
pikapic_cry
pikapic_looptofinish
-Data_fe28a: ; fe28a (3f:628a)
+PikaPicAnimScript0: ; fe28a (3f:628a)
+PikaPicAnimScript1: ; fe28a (3f:628a)
+PikaPicAnimScript29: ; fe28a (3f:628a)
pikapic_setduration 40
pikapic_loadgfx Pic_e4000
pikapic_loadgfx GFX_e40cc
@@ -42,7 +44,7 @@ Data_fe28a: ; fe28a (3f:628a)
pikapic_cry PikachuCry3
pikapic_looptofinish
-Data_fe2a4: ; fe2a4 (3f:62a4)
+PikaPicAnimScript2: ; fe2a4 (3f:62a4)
pikapic_setduration 44
pikapic_loadgfx Pic_e411c
pikapic_loadgfx GFX_e41d2
@@ -52,7 +54,7 @@ Data_fe2a4: ; fe2a4 (3f:62a4)
pikapic_cry
pikapic_looptofinish
-Data_fe2be: ; fe2be (3f:62be)
+PikaPicAnimScript3: ; fe2be (3f:62be)
pikapic_setduration 80
pikapic_loadgfx Pic_e4272
pikapic_loadgfx GFX_e4323
@@ -62,7 +64,7 @@ Data_fe2be: ; fe2be (3f:62be)
pikapic_cry
pikapic_looptofinish
-Data_fe2d8: ; fe2d8 (3f:62d8)
+PikaPicAnimScript4: ; fe2d8 (3f:62d8)
pikapic_setduration 70
pikapic_loadgfx Pic_e4383
pikapic_loadgfx GFX_e444b
@@ -72,7 +74,7 @@ Data_fe2d8: ; fe2d8 (3f:62d8)
pikapic_cry
pikapic_looptofinish
-Data_fe2f2: ; fe2f2 (3f:62f2)
+PikaPicAnimScript5: ; fe2f2 (3f:62f2)
pikapic_setduration 32
pikapic_loadgfx Pic_e458b
pikapic_loadgfx GFX_e463b
@@ -82,7 +84,7 @@ Data_fe2f2: ; fe2f2 (3f:62f2)
pikapic_cry
pikapic_looptofinish
-Data_fe30c: ; fe30c (3f:630c)
+PikaPicAnimScript6: ; fe30c (3f:630c)
pikapic_setduration 50
pikapic_loadgfx Pic_e467b
pikapic_loadgfx GFX_e472e
@@ -92,7 +94,7 @@ Data_fe30c: ; fe30c (3f:630c)
pikapic_cry PikachuCry38
pikapic_looptofinish
-Data_fe326: ; fe326 (3f:6326)
+PikaPicAnimScript7: ; fe326 (3f:6326)
pikapic_setduration 58
pikapic_loadgfx Pic_e476e
pikapic_loadgfx GFX_e4841
@@ -102,7 +104,7 @@ Data_fe326: ; fe326 (3f:6326)
pikapic_cry
pikapic_looptofinish
-Data_fe340: ; fe340 (3f:6340)
+PikaPicAnimScript8: ; fe340 (3f:6340)
pikapic_setduration 44
pikapic_loadgfx Pic_e49d1
pikapic_loadgfx GFX_e4a99
@@ -112,7 +114,7 @@ Data_fe340: ; fe340 (3f:6340)
pikapic_cry
pikapic_looptofinish
-Data_fe35a: ; fe35a (3f:635a)
+PikaPicAnimScript9: ; fe35a (3f:635a)
pikapic_setduration 56
pikapic_loadgfx Pic_e4b39
pikapic_loadgfx GFX_e4bde
@@ -122,7 +124,7 @@ Data_fe35a: ; fe35a (3f:635a)
pikapic_cry
pikapic_looptofinish
-Data_fe374: ; fe374 (3f:6374)
+PikaPicAnimScript10: ; fe374 (3f:6374)
pikapic_setduration 56
pikapic_loadgfx Pic_e4c3e
pikapic_loadgfx GFX_e4ce0
@@ -133,7 +135,7 @@ Data_fe374: ; fe374 (3f:6374)
pikapic_cry
pikapic_looptofinish
-Data_fe390: ; fe390 (3f:6390)
+PikaPicAnimScript11: ; fe390 (3f:6390)
pikapic_setduration 100
pikapic_loadgfx Pic_e5000
pikapic_loadgfx GFX_e50af
@@ -143,7 +145,7 @@ Data_fe390: ; fe390 (3f:6390)
pikapic_cry
pikapic_looptofinish
-Data_fe3aa: ; fe3aa (3f:63aa)
+PikaPicAnimScript12: ; fe3aa (3f:63aa)
pikapic_setduration 50
pikapic_loadgfx Pic_e523f
pikapic_loadgfx GFX_e52fe
@@ -153,7 +155,7 @@ Data_fe3aa: ; fe3aa (3f:63aa)
pikapic_cry PikachuCry25
pikapic_looptofinish
-Data_fe3c4: ; fe3c4 (3f:63c4)
+PikaPicAnimScript13: ; fe3c4 (3f:63c4)
pikapic_setduration 50
pikapic_loadgfx Pic_e548e
pikapic_loadgfx GFX_e5541
@@ -163,7 +165,7 @@ Data_fe3c4: ; fe3c4 (3f:63c4)
pikapic_cry
pikapic_looptofinish
-Data_fe3de: ; fe3de (3f:63de)
+PikaPicAnimScript14: ; fe3de (3f:63de)
pikapic_setduration 40
pikapic_loadgfx Pic_e56d1
pikapic_loadgfx GFX_e5794
@@ -173,7 +175,7 @@ Data_fe3de: ; fe3de (3f:63de)
pikapic_cry
pikapic_looptofinish
-Data_fe3f8: ; fe3f8 (3f:63f8)
+PikaPicAnimScript15: ; fe3f8 (3f:63f8)
pikapic_setduration 50
pikapic_loadgfx Pic_e5924
pikapic_loadgfx GFX_e59ed
@@ -183,7 +185,7 @@ Data_fe3f8: ; fe3f8 (3f:63f8)
pikapic_cry
pikapic_looptofinish
-Data_fe412: ; fe412 (3f:6412)
+PikaPicAnimScript16: ; fe412 (3f:6412)
pikapic_setduration 32
pikapic_loadgfx Pic_e5b7d
pikapic_loadgfx GFX_e5c4d
@@ -193,7 +195,7 @@ Data_fe412: ; fe412 (3f:6412)
pikapic_cry
pikapic_looptofinish
-Data_fe42c: ; fe42c (3f:642c)
+PikaPicAnimScript17: ; fe42c (3f:642c)
pikapic_setduration 100
pikapic_loadgfx Pic_e5ddd
pikapic_loadgfx GFX_e5e90
@@ -203,7 +205,7 @@ Data_fe42c: ; fe42c (3f:642c)
pikapic_cry
pikapic_looptofinish
-Data_fe446: ; fe446 (3f:6446)
+PikaPicAnimScript18: ; fe446 (3f:6446)
pikapic_setduration 32
pikapic_loadgfx GFX_e6020
pikapic_loadgfx GFX_e61b0
@@ -213,7 +215,7 @@ Data_fe446: ; fe446 (3f:6446)
pikapic_cry PikachuCry18
pikapic_looptofinish
-Data_fe460: ; fe460 (3f:6460)
+PikaPicAnimScript19: ; fe460 (3f:6460)
pikapic_setduration 44
pikapic_loadgfx Pic_e6340
pikapic_loadgfx GFX_e63f7
@@ -223,7 +225,7 @@ Data_fe460: ; fe460 (3f:6460)
pikapic_cry
pikapic_looptofinish
-Data_fe47a: ; fe47a (3f:647a)
+PikaPicAnimScript20: ; fe47a (3f:647a)
pikapic_setduration 50
pikapic_loadgfx Pic_e6587
pikapic_loadgfx GFX_e6646
@@ -233,7 +235,7 @@ Data_fe47a: ; fe47a (3f:647a)
pikapic_cry
pikapic_looptofinish
-Data_fe494: ; fe494 (3f:6494)
+PikaPicAnimScript21: ; fe494 (3f:6494)
pikapic_setduration 40
pikapic_loadgfx Pic_e67d6
pikapic_loadgfx GFX_e682f
@@ -246,7 +248,7 @@ Data_fe494: ; fe494 (3f:6494)
pikapic_cry PikachuCry20
pikapic_looptofinish
-Data_fe4b4: ; fe4b4 (3f:64b4)
+PikaPicAnimScript22: ; fe4b4 (3f:64b4)
pikapic_setduration 40
pikapic_loadgfx GFX_e6e6f
pikapic_loadgfx GFX_e6fff
@@ -256,7 +258,7 @@ Data_fe4b4: ; fe4b4 (3f:64b4)
pikapic_cry
pikapic_looptofinish
-Data_fe4ce: ; fe4ce (3f:64ce)
+PikaPicAnimScript23: ; fe4ce (3f:64ce)
pikapic_setduration 70
pikapic_loadgfx GFX_e718f
pikapic_loadgfx GFX_e731f
@@ -266,7 +268,7 @@ Data_fe4ce: ; fe4ce (3f:64ce)
pikapic_cry
pikapic_looptofinish
-Data_fe4e8: ; fe4e8 (3f:64e8)
+PikaPicAnimScript24: ; fe4e8 (3f:64e8)
pikapic_setduration 60
pikapic_loadgfx GFX_e74af
pikapic_loadgfx GFX_e763f
@@ -276,7 +278,7 @@ Data_fe4e8: ; fe4e8 (3f:64e8)
pikapic_cry
pikapic_looptofinish
-Data_fe502: ; fe502 (3f:6502)
+PikaPicAnimScript25: ; fe502 (3f:6502)
pikapic_setduration 50
pikapic_loadgfx Pic_e77cf
pikapic_loadgfx GFX_e7863
@@ -292,8 +294,7 @@ Data_fe502: ; fe502 (3f:6502)
Data_fe51f: ; fe51f (3f:651f)
pikapic_waitbgmap
-
-Data_fe520: ; fe520 (3f:6520)
+PikaPicAnimScript26: ; fe520 (3f:6520)
pikapic_setduration 100
pikapic_loadgfx Pic_e5000
pikapic_loadgfx GFX_e50af
@@ -305,7 +306,7 @@ Data_fe520: ; fe520 (3f:6520)
pikapic_cry
pikapic_looptofinish
-Data_fe53e: ; fe53e (3f:653e)
+PikaPicAnimScript27: ; fe53e (3f:653e)
pikapic_setduration 30
pikapic_loadgfx Pic_f0abf
pikapic_loadgfx GFX_f0b64
@@ -315,7 +316,7 @@ Data_fe53e: ; fe53e (3f:653e)
pikapic_cry
pikapic_looptofinish
-Data_fe558: ; fe558 (3f:6558)
+PikaPicAnimScript28: ; fe558 (3f:6558)
pikapic_setduration 64
pikapic_loadgfx Pic_f0cf4
pikapic_loadgfx GFX_f0d82
@@ -328,10 +329,11 @@ Data_fe558: ; fe558 (3f:6558)
PikaPicAnimGFXHeaders:
pikapicanimgfx: MACRO
\2_id::
- db \1 ; size
+ db \1 ; size (-1 if compressed)
dba \2 ; pointer
endm
+PikaPicAnimGFX_Null_id::
dbbw 1, $39,$0000 ; 00
pikapicanimgfx -1, Pic_e4000 ; 01
pikapicanimgfx 5, GFX_e40cc ; 02
diff --git a/data/pikachu_pic_objects.asm b/data/pikachu_pic_objects.asm
new file mode 100755
index 00000000..e696f9e1
--- /dev/null
+++ b/data/pikachu_pic_objects.asm
@@ -0,0 +1,293 @@
+PikaPicAnimOAMPointers:
+ dw Data_fdc11
+ dw Data_fdc11
+ dw Data_fdc29
+ dw Data_fdc32
+ dw Data_fdc3b
+ dw Data_fdc3e
+ dw Data_fdc41
+ dw Data_fdc50
+ dw Data_fdc61
+ dw Data_fdc6e
+ dw Data_fdc77
+ dw Data_fdc84
+ dw Data_fdc8d
+ dw Data_fdc98
+ dw Data_fdca5
+ dw Data_fdcb2
+ dw Data_fdcb7
+ dw Data_fdcc2
+ dw Data_fdccb
+ dw Data_fdcd4
+ dw Data_fdcdf
+ dw Data_fdce8
+ dw Data_fdcf1
+ dw Data_fdcf6
+ dw Data_fdd01
+ dw Data_fdd0a
+ dw Data_fdd13
+ dw Data_fdd1c
+ dw Data_fdd27
+ dw Data_fdd2c
+ dw Data_fdd35
+ dw Data_fdd40
+ dw Data_fdd47
+ dw Data_fdd54
+ dw Data_fdd59
+ dw Data_fdc3b
+
+Data_fdc11:
+ db $01, $14
+ db $07, $02
+ db $01, $01
+ db $07, $02
+ db $01, $01
+ db $07, $08
+ db $e0
+
+Data_fdc1e:
+ db $02, $02
+ db $01, $01
+ db $02, $02
+ db $01, $01
+ db $02, $08
+ db $e0
+
+Data_fdc29:
+ db $00, $08
+ db $08, $08
+ db $00, $08
+ db $08, $08
+ db $e0
+
+Data_fdc32:
+ db $08, $08
+ db $00, $08
+ db $08, $08
+ db $00, $08
+ db $e0
+
+Data_fdc3b:
+ db $01, $00
+ db $e0
+
+Data_fdc3e:
+ db $09, $00
+ db $e0
+
+Data_fdc41:
+ db $00, $02
+ db $0e, $04
+ db $00, $08
+ db $0e, $04
+ db $00, $40
+ db $0e, $04
+ db $00, $40
+ db $e0
+
+Data_fdc50:
+ db $00, $04
+ db $0f, $04
+ db $00, $04
+ db $0f, $04
+ db $00, $08
+ db $0f, $04
+ db $00, $08
+ db $0f, $04
+ db $e0
+
+Data_fdc61:
+ db $10, $01
+ db $00, $01
+ db $10, $01
+ db $00, $40
+ db $10, $01
+ db $00, $40
+ db $e0
+
+Data_fdc6e:
+ db $00, $08
+ db $11, $08
+ db $00, $14
+ db $11, $08
+ db $e0
+
+Data_fdc77:
+ db $00, $02
+ db $12, $02
+ db $00, $02
+ db $12, $40
+ db $00, $03
+ db $12, $40
+ db $e0
+
+Data_fdc84:
+ db $00, $08
+ db $13, $40
+ db $00, $04
+ db $13, $40
+ db $e0
+
+Data_fdc8d:
+ db $14, $08
+ db $00, $02
+ db $14, $08
+ db $00, $02
+ db $14, $08
+ db $e0
+
+Data_fdc98:
+ db $15, $04
+ db $00, $08
+ db $15, $04
+ db $00, $40
+ db $15, $04
+ db $00, $40
+ db $e0
+
+Data_fdca5:
+ db $00, $02
+ db $16, $02
+ db $00, $02
+ db $16, $02
+ db $00, $14
+ db $16, $02
+ db $e0
+
+Data_fdcb2:
+ db $00, $08
+ db $17, $08
+ db $e0
+
+Data_fdcb7:
+ db $00, $08
+ db $17, $03
+ db $18, $05
+ db $17, $03
+ db $00, $05
+ db $e0
+
+Data_fdcc2:
+ db $00, $14
+ db $19, $08
+ db $00, $14
+ db $19, $08
+ db $e0
+
+Data_fdccb:
+ db $00, $0d
+ db $1a, $0c
+ db $00, $64
+ db $1a, $08
+ db $e0
+
+Data_fdcd4:
+ db $00, $05
+ db $1b, $05
+ db $00, $05
+ db $1b, $05
+ db $00, $64
+ db $e0
+
+Data_fdcdf:
+ db $00, $02
+ db $1c, $02
+ db $00, $02
+ db $1c, $02
+ db $e0
+
+Data_fdce8:
+ db $00, $05
+ db $1d, $05
+ db $00, $05
+ db $1d, $05
+ db $e0
+
+Data_fdcf1:
+ db $1e, $08
+ db $00, $64
+ db $e0
+
+Data_fdcf6:
+ db $00, $0a
+ db $1f, $03
+ db $00, $03
+ db $1f, $03
+ db $00, $64
+ db $e0
+
+Data_fdd01:
+ db $00, $03
+ db $20, $64
+ db $00, $08
+ db $20, $08
+ db $e0
+
+Data_fdd0a:
+ db $21, $06
+ db $00, $06
+ db $21, $06
+ db $00, $06
+ db $e0
+
+Data_fdd13:
+ db $00, $08
+ db $22, $0c
+ db $00, $08
+ db $22, $0c
+ db $e0
+
+Data_fdd1c:
+ db $00, $08
+ db $09, $02
+ db $0a, $01
+ db $0b, $01
+ db $0c, $64
+ db $e0
+
+Data_fdd27:
+ db $00, $08
+ db $24, $64
+ db $e0
+
+Data_fdd2c:
+ db $00, $10
+ db $25, $10
+ db $00, $10
+ db $25, $10
+ db $e0
+
+Data_fdd35:
+ db $00, $06
+ db $26, $06
+ db $00, $06
+ db $26, $06
+ db $00, $64
+ db $e0
+
+Data_fdd40:
+ db $00, $06
+ db $09, $06
+ db $0a, $64
+ db $e0
+
+Data_fdd47:
+ db $00, $14
+ db $09, $08
+ db $00, $14
+ db $09, $08
+ db $0a, $08
+ db $0b, $64
+ db $e0
+
+Data_fdd54:
+ db $00, $04
+ db $09, $64
+ db $e0
+
+Data_fdd59:
+ db $00, $0c
+ db $09, $0c
+ db $00, $0c
+ db $09, $64
+ db $e0
diff --git a/data/pikachu_pic_tilemaps.asm b/data/pikachu_pic_tilemaps.asm
new file mode 100755
index 00000000..4b28f29d
--- /dev/null
+++ b/data/pikachu_pic_tilemaps.asm
@@ -0,0 +1,228 @@
+PikaPicTilemapPointers:
+ dw Data_fde0e
+ dw Data_fde0f
+ dw Data_fde2a
+ dw Data_fde60
+ dw Data_fde63
+ dw Data_fde67
+ dw Data_fde6b
+ dw Data_fde45
+ dw Data_fde6b
+ dw Data_fdfaa
+ dw Data_fdfc5
+ dw Data_fdfe0
+ dw Data_fdffb
+ dw Data_fe016
+ dw Data_fde81
+ dw Data_fde9c
+ dw Data_fdeb7
+ dw Data_fded2
+ dw Data_fdeed
+ dw Data_fdf08
+ dw Data_fdf23
+ dw Data_fdf3e
+ dw Data_fdf59
+ dw Data_fdf74
+ dw Data_fdf8f
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfaa
+ dw Data_fdfc5
+ dw Data_fdfe0
+ dw Data_fde0f
+
+Data_fde0e:
+ db $ff ; unused
+
+Data_fde0f: ; fde0f
+ db 5, 5
+ db $00, $05, $0a, $0f, $14
+ db $01, $06, $0b, $10, $15
+ db $02, $07, $0c, $11, $16
+ db $03, $08, $0d, $12, $17
+ db $04, $09, $0e, $13, $18
+
+Data_fde2a: ; fde2a
+ db 5, 5
+ db $19, $1e, $23, $28, $2d
+ db $1a, $1f, $24, $29, $2e
+ db $1b, $20, $25, $2a, $2f
+ db $1c, $21, $26, $2b, $30
+ db $1d, $22, $27, $2c, $31
+
+Data_fde45: ; fde45
+ db 5, 5
+ db $ff, $ff, $ff, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+ db $ff, $20, $25, $ff, $ff
+ db $ff, $21, $26, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+
+Data_fde60: ; fde60
+ db 1, 1
+ db $00
+
+Data_fde63: ; fde63
+ db 2, 1
+ db $00
+ db $01
+
+Data_fde67: ; fde67
+ db 1, 2
+ db $00, $01
+
+Data_fde6b: ; fde6b
+ db 2, 2
+ db $00, $01
+ db $02, $03
+
+Data_fde71: ; fde71
+ db 3, 2
+ db $00, $01
+ db $02, $03
+ db $04, $05
+
+Data_fde79: ; fde79
+ db 2, 3
+ db $00, $01, $02
+ db $03, $04, $05
+
+Data_fde81: ; fde81
+ db 5, 5
+ db $ff, $ff, $ff, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+ db $00, $01, $02, $03, $04
+ db $ff, $ff, $ff, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+
+Data_fde9c: ; fde9c
+ db 5, 5
+ db $ff, $ff, $ff, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+ db $00, $01, $02, $03, $04
+ db $05, $06, $07, $08, $09
+
+Data_fdeb7: ; fdeb7
+ db 5, 5
+ db $00, $01, $ff, $ff, $ff
+ db $02, $03, $ff, $ff, $ff
+ db $04, $05, $ff, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+
+Data_fded2: ; fded2
+ db 5, 5
+ db $ff, $ff, $ff, $ff, $ff
+ db $00, $01, $02, $03, $04
+ db $05, $06, $07, $08, $09
+ db $0a, $0b, $0c, $0d, $0e
+ db $0f, $10, $11, $12, $13
+
+Data_fdeed: ; fdeed
+ db 5, 5
+ db $ff, $ff, $ff, $ff, $ff
+ db $ff, $ff, $ff, $00, $01
+ db $ff, $ff, $ff, $02, $03
+ db $ff, $ff, $ff, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+
+Data_fdf08: ; fdf08
+ db 5, 5
+ db $ff, $ff, $ff, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+ db $00, $01, $ff, $ff, $ff
+ db $02, $03, $ff, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+
+Data_fdf23: ; fdf23
+ db 5, 5
+ db $00, $01, $02, $03, $04
+ db $05, $06, $07, $08, $09
+ db $0a, $0b, $0c, $0d, $0e
+ db $0f, $10, $11, $12, $13
+ db $14, $15, $16, $17, $18
+
+Data_fdf3e: ; fdf3e
+ db 5, 5
+ db $ff, $ff, $ff, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+ db $00, $01, $02, $03, $04
+ db $05, $06, $07, $08, $09
+ db $ff, $ff, $ff, $ff, $ff
+
+Data_fdf59: ; fdf59
+ db 5, 5
+ db $ff, $ff, $ff, $ff, $ff
+ db $ff, $ff, $ff, $ff, $ff
+ db $00, $01, $ff, $ff, $ff
+ db $02, $03, $ff, $ff, $ff
+ db $04, $05, $ff, $ff, $ff
+
+Data_fdf74: ; fdf74
+ db 5, 5
+ db $00, $01, $02, $03, $04
+ db $05, $06, $07, $08, $09
+ db $0a, $0b, $0c, $0d, $0e
+ db $0f, $10, $11, $12, $13
+ db $14, $15, $16, $17, $18
+
+Data_fdf8f: ; fdf8f
+ db 5, 5
+ db $19, $1a, $1b, $1c, $1d
+ db $1e, $1f, $20, $21, $22
+ db $23, $24, $25, $26, $27
+ db $28, $29, $2a, $2b, $2c
+ db $2d, $2e, $2f, $30, $31
+
+Data_fdfaa: ; fdfaa
+ db 5, 5
+ db $00, $01, $02, $03, $04
+ db $05, $06, $07, $08, $09
+ db $0a, $0b, $0c, $0d, $0e
+ db $0f, $10, $11, $12, $13
+ db $14, $15, $16, $17, $18
+
+Data_fdfc5: ; fdfc5
+ db 5, 5
+ db $19, $1a, $1b, $1c, $1d
+ db $1e, $1f, $20, $21, $22
+ db $23, $24, $25, $26, $27
+ db $28, $29, $2a, $2b, $2c
+ db $2d, $2e, $2f, $30, $31
+
+Data_fdfe0: ; fdfe0
+ db 5, 5
+ db $32, $33, $34, $35, $36
+ db $37, $38, $39, $3a, $3b
+ db $3c, $3d, $3e, $3f, $40
+ db $41, $42, $43, $44, $45
+ db $46, $47, $48, $49, $4a
+
+Data_fdffb: ; fdffb
+ db 5, 5
+ db $4b, $4c, $4d, $4e, $4f
+ db $50, $51, $52, $53, $54
+ db $55, $56, $57, $58, $59
+ db $5a, $5b, $5c, $5d, $5e
+ db $5f, $60, $61, $62, $63
+
+Data_fe016: ; fe016
+ db 5, 5
+ db $64, $65, $66, $67, $68
+ db $69, $6a, $6b, $6c, $6d
+ db $6e, $6f, $70, $71, $72
+ db $73, $74, $75, $76, $77
+ db $78, $79, $7a, $7b, $7c
diff --git a/data/tileset_headers.asm b/data/tileset_headers.asm
index e81d11ff..73e51e86 100755
--- a/data/tileset_headers.asm
+++ b/data/tileset_headers.asm
@@ -1,5 +1,4 @@
Tilesets: ; c558 (3:4558)
- ; dr $c558,$c684
tileset Overworld_Block, Overworld_GFX, Overworld_Coll, $FF,$FF,$FF, $52, OUTDOOR
tileset RedsHouse1_Block, RedsHouse1_GFX, RedsHouse1_Coll, $FF,$FF,$FF, $FF, INDOOR
diff --git a/engine/bank3c.asm b/engine/bank3c.asm
index 83e010ff..99226f51 100644
--- a/engine/bank3c.asm
+++ b/engine/bank3c.asm
@@ -1,7 +1,7 @@
INCLUDE "engine/pikachu_pcm.asm"
INCLUDE "engine/overworld/advance_player_sprite.asm"
-ResetStatusAndHalveMoneyOnBlackout:: ; f0274 (3c:4274)
+ResetStatusAndHalveMoneyOnBlackout: ; f0274 (3c:4274)
; Reset player status on blackout.
xor a
ld [wd435], a
@@ -50,31 +50,31 @@ ResetStatusAndHalveMoneyOnBlackout:: ; f0274 (3c:4274)
ld [wJoyIgnore], a
predef_jump HealParty
-Func_f02da:: ; f02da (3c:42da)
+Func_f02da: ; f02da (3c:42da)
ld a, [wCurMap]
cp VERMILION_GYM ; ??? new thing about verm gym?
- jr z, .asm_f02ee
+ jr z, .verm_gym
ld c, a
- ld hl, Pointer_f02fa
-.asm_f02e5
+ ld hl, .MapList
+.search_loop
ld a, [hli]
cp c
- jr z, .asm_f02f4
+ jr z, .in_list
cp a, $ff
- jr nz, .asm_f02e5
+ jr nz, .search_loop
ret
-.asm_f02ee
+.verm_gym
ld hl, wd126
set 6, [hl]
ret
-.asm_f02f4
+.in_list
ld hl, wd126
set 5, [hl]
ret
-Pointer_f02fa:: ; f02fa (3c:42fa)
+.MapList ; f02fa (3c:42fa)
db SILPH_CO_2F
db SILPH_CO_3F
db SILPH_CO_4F
@@ -102,16 +102,16 @@ Pointer_f02fa:: ; f02fa (3c:42fa)
db AGATHAS_ROOM
db $ff
-BeachHouse_GFX:: ; f0314 (3c:4314)
+BeachHouse_GFX: ; f0314 (3c:4314)
INCBIN "gfx/tilesets/beachhouse.2bpp"
-BeachHouse_Block:: ; f0914 (3c:4914)
+BeachHouse_Block: ; f0914 (3c:4914)
INCBIN "gfx/blocksets/beachhouse.bst"
-Func_f0a54:: ; f0a54 (3c:4a54)
+Func_f0a54: ; f0a54 (3c:4a54)
ret
-Func_f0a55:: ; f0a55 (3c:4a55)
+Func_f0a55: ; f0a55 (3c:4a55)
; referenced in an unused function
ld hl, Pointer_f0a76 ; 3c:4a76
.loop
@@ -138,7 +138,7 @@ Func_f0a55:: ; f0a55 (3c:4a55)
call CopyData
ret
-Pointer_f0a76:: ; f0a76 (3c:4a76)
+Pointer_f0a76: ; f0a76 (3c:4a76)
dbbw BLUES_HOUSE, Pointer_f0a7bEnd - Pointer_f0a7b, Pointer_f0a7b
db $ff
diff --git a/engine/gamefreak.asm b/engine/gamefreak.asm
index e2db39de..ea83734f 100755
--- a/engine/gamefreak.asm
+++ b/engine/gamefreak.asm
@@ -28,7 +28,7 @@ LoadShootingStarGraphics: ; 70000 (1c:4000)
AnimateShootingStar: ; 7004a (1c:404a)
call LoadShootingStarGraphics
- ld a, $c2 ; (SFX_1f_67 - SFX_Headers_1f) / 3
+ ld a, SFX_SHOOTING_STAR
call PlaySound
; Move the big star down and left across the screen.
diff --git a/engine/overworld/pokecenter.asm b/engine/overworld/pokecenter.asm
index 65dfcd87..51afc383 100755
--- a/engine/overworld/pokecenter.asm
+++ b/engine/overworld/pokecenter.asm
@@ -40,7 +40,7 @@ DisplayPokemonCenterDialogue_: ; 6d97 (1:6d97)
call DelayFrames
call CheckPikachuFollowingPlayer
jr nz, .playerPikachuNotOnScreen
- call Func_152d
+ call DisablePikachuOverworldSpriteDrawing
callab IsStarterPikachuInOurParty
call c, Func_6eaa
.playerPikachuNotOnScreen
@@ -64,7 +64,7 @@ DisplayPokemonCenterDialogue_: ; 6d97 (1:6d97)
call c, Func_6eaa
ld a, $5
ld [wPikachuSpawnState], a
- call Func_1525
+ call EnablePikachuOverworldSpriteDrawing
.doNotReturnPikachu
lb bc, 1, 0
call Func_6ebb
diff --git a/engine/pikachu_follow.asm b/engine/pikachu_follow.asm
index a715b0a3..f93bfa3d 100755
--- a/engine/pikachu_follow.asm
+++ b/engine/pikachu_follow.asm
@@ -1,4 +1,4 @@
-Func_fc4dd:: ; fc4dd (3f:44dd)
+ShouldPikachuSpawn:: ; fc4dd (3f:44dd)
; possibly to test if pika should be out?
ld a, [wPikachuOverworldStateFlags]
bit 5, a
@@ -18,7 +18,7 @@ Func_fc4dd:: ; fc4dd (3f:44dd)
and a
ret
-Func_fc4fa:: ; fc4fa (3f:44fa)
+SchedulePikachuSpawnForAfterText:: ; fc4fa (3f:44fa)
ld hl, wPikachuOverworldStateFlags
bit 4, [hl]
res 4, [hl]
@@ -49,7 +49,7 @@ ClearPikachuSpriteStateData:: ; fc523 (3f:4523)
call FillMemory
ret
-Func_fc534:: ; fc534 (3f:4534)
+CalculatePikachuSpawnCoordsAndFacing:: ; fc534 (3f:4534)
call CalculatePikachuPlacementCoords
call CalculatePikachuFacingDirection
xor a
@@ -350,7 +350,7 @@ ResetPikachuOverworldStateFlag2:: ; fc6cd (3f:46cd)
SpawnPikachu_:: ; fc6d5 (3f:46d5)
call ResetPikachuOverworldStateFlag2
- call Func_fc727
+ call TrySpawnPikachu
ret nc
push bc
@@ -358,16 +358,16 @@ SpawnPikachu_:: ; fc6d5 (3f:46d5)
pop bc
ret c
- ld bc, wPikachuPictureID
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld bc, wPikachuSpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
bit 7, [hl]
- jp nz, asm_fc745
+ jp nz, Func_fc745
ld a, [wFontLoaded]
bit 0, a
- jp nz, asm_fc76a
+ jp nz, Func_fc76a
call CheckPikachuFollowingPlayer
- jp nz, asm_fc76a
+ jp nz, Func_fc76a
ld a, [hl]
and $7f
cp $a
@@ -395,20 +395,20 @@ PointerTable_fc710: ; fc710 (3f:4710)
dw asm_fc904
dw asm_fc937
dw asm_fc969
- dw Func_fc726
+ dw .nop
-Func_fc726: ; fc726 (3f:4726)
+.nop: ; fc726 (3f:4726)
ret
-Func_fc727: ; fc727 (3f:4727)
- call Func_fc4dd
+TrySpawnPikachu: ; fc727 (3f:4727)
+ call ShouldPikachuSpawn
jr nc, .dont_spawn
ld a, [wPikachuMovementStatus]
and a
jr nz, .already_spawned
push bc
push hl
- call Func_fc534
+ call CalculatePikachuSpawnCoordsAndFacing
pop hl
pop bc
.already_spawned
@@ -423,32 +423,32 @@ Func_fc727: ; fc727 (3f:4727)
xor a
ret
-asm_fc745: ; fc745 (3f:4745)
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+Func_fc745: ; fc745 (3f:4745)
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
res 7, [hl]
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
call CheckPikachuFollowingPlayer
jr nz, .asm_fc75f
ld a, [wPlayerFacingDirection]
xor $4
- ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
+ ld hl, wPikachuFacingDirection - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
.asm_fc75f
xor a
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld [hli], a
ld [hl], a
call UpdatePikachuWalkingSprite
ret
-asm_fc76a: ; fc76a (3f:476a)
+Func_fc76a: ; fc76a (3f:476a)
xor a
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld [hli], a
ld [hl], a
@@ -459,10 +459,10 @@ asm_fc76a: ; fc76a (3f:476a)
callab InitializeSpriteScreenPosition
pop bc
.asm_fc783
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $1
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $0
call RefreshPikachuFollow
@@ -473,7 +473,7 @@ Func_fc793: ; fc793 (3f:4793)
push bc
callab InitializeSpriteScreenPosition
pop bc
- ld hl, wSprite01SpriteImageIdx - wSprite01SpriteStateData1
+ ld hl, wPikachuSpriteImageIdx - wPikachuSpriteStateData1
add hl, bc
ld [hl], $ff
dec hl
@@ -494,12 +494,12 @@ Func_fc7aa: ; fc7aa (3f:47aa)
ld e, l
ld a, [de]
inc de
- ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
+ ld hl, wPikachuFacingDirection - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
ld a, [de]
inc de
- ld hl, wSprite01XStepVector - wSprite01SpriteStateData1
+ ld hl, wPikachuXStepVector - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
dec hl
@@ -508,7 +508,7 @@ Func_fc7aa: ; fc7aa (3f:47aa)
ld [hl], a
inc de
ld a, [de]
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
cp $4
@@ -538,7 +538,7 @@ Pointer_fc7e3: ; fc7e3 (3f:47e3)
Func_fc803: ; fc803 (3f:4803)
call Func_fcae2
ret c
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
jr nz, .asm_fc823
@@ -550,12 +550,12 @@ Func_fc803: ; fc803 (3f:4803)
ld [hl], $20
call Random
and $c
- ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
+ ld hl, wPikachuFacingDirection - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
.asm_fc823
xor a
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld [hli], a
ld [hl], a
@@ -570,10 +570,10 @@ Func_fc82e: ; fc82e (3f:482e)
ret
Func_fc835: ; fc835 (3f:4835)
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $10
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $1
ret
@@ -606,16 +606,16 @@ Func_fc862: ; fc862 (3f:4862)
add a
add a
and $c
- ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
+ ld hl, wPikachuFacingDirection - wPikachuSpriteStateData1
add hl, bc
ld [hl], a
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $6
xor a
ld [wd432], a
ld [wd433], a
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $11
asm_fc87f: ; fc87f (3f:487f)
@@ -626,7 +626,7 @@ asm_fc87f: ; fc87f (3f:487f)
call Func_fc82e
jr c, Func_fc8c7
call SetPikachuOverworldStateFlag2
- ld hl, wSprite01YPixels - wSprite01SpriteStateData1
+ ld hl, wPikachuYPixels - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
sub e
@@ -636,7 +636,7 @@ asm_fc87f: ; fc87f (3f:487f)
ld a, [hl]
sub d
ld d, a
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
dec a
@@ -654,20 +654,20 @@ asm_fc87f: ; fc87f (3f:487f)
ld [wd433], a
add d
ld d, a
- ld hl, wSprite01YPixels - wSprite01SpriteStateData1
+ ld hl, wPikachuYPixels - wPikachuSpriteStateData1
add hl, bc
ld [hl], e
inc hl
inc hl
ld [hl], d
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
jp Func_fc835
Func_fc8c7: ; fc8c7 (3f:48c7)
- ld hl, wSprite01YPixels - wSprite01SpriteStateData1
+ ld hl, wPikachuYPixels - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
sub e
@@ -699,17 +699,17 @@ Pointer_fc8d6: ; fc8d6 (3f:48d6)
db 0, 0
Func_fc8f8: ; fc8f8 (3f:48f8)
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $7
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $30
asm_fc904: ; fc904 (3f:4904)
call Func_fc82e
jp c, Func_fc835
call SetPikachuOverworldStateFlag2
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
inc a
@@ -724,24 +724,24 @@ asm_fc904: ; fc904 (3f:4904)
ld [hl], a
.asm_fc91f
call UpdatePikachuWalkingSprite
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
jp Func_fc835
Func_fc92b: ; fc92b (3f:492b)
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $20
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $8
asm_fc937: ; fc937 (3f:4937)
call Func_fc82e
jp c, Func_fc835
call SetPikachuOverworldStateFlag2
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
inc a
@@ -755,24 +755,24 @@ asm_fc937: ; fc937 (3f:4937)
ld [hl], a
.asm_fc951
call UpdatePikachuWalkingSprite
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
jp Func_fc835
Func_fc95d: ; fc95d (3f:495d)
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $20
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $9
asm_fc969: ; fc969 (3f:4969)
call Func_fc82e
jp c, Func_fc835
call SetPikachuOverworldStateFlag2
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
inc a
@@ -781,14 +781,14 @@ asm_fc969: ; fc969 (3f:4969)
jr nz, .asm_fc988
xor a
ld [hl], a
- ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
+ ld hl, wPikachuFacingDirection - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
call Func_fc994
ld [hl], a
.asm_fc988
call UpdatePikachuWalkingSprite
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
@@ -824,10 +824,10 @@ Pointer_fc9ac: ; fc9ac (3f:49ac)
Pointer_fc9ac_End:
NormalPikachuFollow: ; fc9b4 (3f:49b4)
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $8
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $3
call AddPikachuStepVector
@@ -835,22 +835,22 @@ asm_fc9c3: ; fc9c3 (3f:49c3)
call TryDoubleAddPikachuStepVectorToScreenPixelCoords
call GetPikachuWalkingAnimationSpeed
call UpdatePikachuWalkingSprite
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
call ResetPikachuStepVector
call ComputePikachuFacingDirection
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $1
ret
FastPikachuFollow: ; fc9df (3f:49df)
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $4
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $5
call AddPikachuStepVector
@@ -858,22 +858,22 @@ asm_fc9ee: ; fc9ee (3f:49ee)
call DoubleAddPikachuStepVectorToScreenPixelCoords
call GetPikachuWalkingAnimationSpeed
call UpdatePikachuWalkingSprite
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
call ResetPikachuStepVector
call ComputePikachuFacingDirection
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $1
ret
Func_fca0a: ; fca0a (3f:4a0a)
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
ld [hl], $8
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $4
call AddPikachuStepVector
@@ -882,25 +882,25 @@ asm_fca1c: ; fca1c (3f:4a1c)
call DoubleAddPikachuStepVectorToScreenPixelCoords
call GetPikachuWalkingAnimationSpeed
call UpdatePikachuWalkingSprite
- ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuWalkAnimationCounter - wPikachuSpriteStateData1
add hl, bc
dec [hl]
ret nz
call ResetPikachuStepVector
call ComputePikachuFacingDirection
- ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
+ ld hl, wPikachuMovementStatus - wPikachuSpriteStateData1
add hl, bc
ld [hl], $1
ret
AddPikachuStepVector: ; fca38 (3f:4a38)
- ld hl, wSprite01YStepVector - wSprite01SpriteStateData1
+ ld hl, wPikachuYStepVector - wPikachuSpriteStateData1
add hl, bc
ld e, [hl]
inc hl
inc hl
ld d, [hl]
- ld hl, wSprite01MapY - wSprite01SpriteStateData1
+ ld hl, wPikachuMapY - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
add e
@@ -918,7 +918,7 @@ TryDoubleAddPikachuStepVectorToScreenPixelCoords: ; fca4b (3f:4a4b)
bit 6, a
jr nz, AddPikachuStepVectorToScreenPixelCoords
DoubleAddPikachuStepVectorToScreenPixelCoords: ; fca59 (3f:4a59)
- ld hl, wSprite01YStepVector - wSprite01SpriteStateData1
+ ld hl, wPikachuYStepVector - wPikachuSpriteStateData1
add hl, bc
ld a, [hli]
add a
@@ -933,7 +933,7 @@ DoubleAddPikachuStepVectorToScreenPixelCoords: ; fca59 (3f:4a59)
ret
AddPikachuStepVectorToScreenPixelCoords: ; fca68 (3f:4a68)
- ld hl, wSprite01YStepVector - wSprite01SpriteStateData1
+ ld hl, wPikachuYStepVector - wPikachuSpriteStateData1
add hl, bc
ld a, [hli]
add a
@@ -946,7 +946,7 @@ AddPikachuStepVectorToScreenPixelCoords: ; fca68 (3f:4a68)
ret
ResetPikachuStepVector: ; fca75 (3f:4a75)
- ld hl, wSprite01YStepVector - wSprite01SpriteStateData1
+ ld hl, wPikachuYStepVector - wPikachuSpriteStateData1
add hl, bc
xor a
ld [hli], a
@@ -960,7 +960,7 @@ GetPikachuWalkingAnimationSpeed: ; fca7e (3f:4a7e)
jr nc, .happy
ld d, $5
.happy
- ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuIntraAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
inc a
@@ -980,7 +980,7 @@ UpdatePikachuWalkingSprite: ; fca99 (3f:4a99)
ld a, [wPikachuOverworldStateFlags]
bit 3, a
jr nz, .uninitialized
- ld hl, wSprite01SpriteImageBaseOffset - wSprite01SpriteStateData1
+ ld hl, wPikachuSpriteImageBaseOffset - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
dec a
@@ -989,7 +989,7 @@ UpdatePikachuWalkingSprite: ; fca99 (3f:4a99)
ld a, [wd736]
bit 7, a
jr nz, .copy_player
- ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
+ ld hl, wPikachuFacingDirection - wPikachuSpriteStateData1
add hl, bc
ld a, [hl]
or d
@@ -1002,19 +1002,19 @@ UpdatePikachuWalkingSprite: ; fca99 (3f:4a99)
jr .load_sprite_index
.normal_get_sprite_index
- ld hl, wSprite01AnimFrameCounter - wSprite01SpriteStateData1
+ ld hl, wPikachuAnimFrameCounter - wPikachuSpriteStateData1
add hl, bc
ld a, d
or [hl]
ld d, a
.load_sprite_index
- ld hl, wSprite01SpriteImageIdx - wSprite01SpriteStateData1
+ ld hl, wPikachuSpriteImageIdx - wPikachuSpriteStateData1
add hl, bc
ld [hl], d
ret
.uninitialized
- ld hl, wSprite01SpriteImageIdx - wSprite01SpriteStateData1
+ ld hl, wPikachuSpriteImageIdx - wPikachuSpriteStateData1
add hl, bc
ld [hl], $ff
ret
@@ -1027,7 +1027,7 @@ UpdatePikachuWalkingSprite: ; fca99 (3f:4a99)
ret
Func_fcae2: ; fcae2 (3f:4ae2)
- ld hl, wSprite01MapY - wSprite01SpriteStateData1
+ ld hl, wPikachuMapY - wPikachuSpriteStateData1
add hl, bc
ld a, [wYCoord]
add $4
@@ -1038,7 +1038,7 @@ Func_fcae2: ; fcae2 (3f:4ae2)
add $4
cp [hl]
jr nz, .on_screen
- ld hl, wSprite01SpriteImageIdx - wSprite01SpriteStateData1
+ ld hl, wPikachuSpriteImageIdx - wPikachuSpriteStateData1
add hl, bc
ld [hl], $ff
scf
diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm
index 1ec102f1..0295775c 100755
--- a/engine/pikachu_pic_animation.asm
+++ b/engine/pikachu_pic_animation.asm
@@ -2,25 +2,25 @@ GetPikaPicAnimationScriptIndex: ; fd978 (3f:5978)
ld hl, PikachuMoodLookupTable
ld a, [wPikachuMood]
ld d, a
-.asm_fd97f
+.get_mood_param
ld a, [hli]
inc hl
cp d
- jr c, .asm_fd97f
+ jr c, .get_mood_param
dec hl
ld e, [hl]
ld hl, PikaPicAnimationScriptPointerLookupTable
ld a, [wPikachuHappiness]
ld d, a
ld bc, 6
-.asm_fd990
+.get_happiness_param
ld a, [hl]
cp d
- jr nc, .asm_fd997
+ jr nc, .got_animation
add hl, bc
- jr .asm_fd990
+ jr .get_happiness_param
-.asm_fd997
+.got_animation
ld d, 0
add hl, de
ld a, [hl]
@@ -29,22 +29,63 @@ GetPikaPicAnimationScriptIndex: ; fd978 (3f:5978)
PikachuMoodLookupTable:
; First byte: mood threshold
; Second byte: column index in PikaPicAnimationScriptPointerLookupTable
- db $28, 1
- db $7f, 2
- db $80, 3
- db $d2, 4
- db $ff, 5
+ db 40, 1
+ db 127, 2
+ db 128, 3
+ db 210, 4
+ db 255, 5
PikaPicAnimationScriptPointerLookupTable:
; First byte: happiness threshold
; Remaining bytes: loaded based on Pikachu's mood
- db $32, $0e, $0e, $06, $0d, $0d
- db $64, $09, $09, $05, $0c, $0c
- db $82, $03, $03, $01, $08, $08
- db $a0, $03, $03, $04, $0f, $0f
- db $c8, $11, $11, $07, $02, $02
- db $fa, $11, $11, $10, $0a, $0a
- db $ff, $11, $11, $13, $14, $14
+ db 50
+ dpikapic PikaPicAnimScript14
+ dpikapic PikaPicAnimScript14
+ dpikapic PikaPicAnimScript6
+ dpikapic PikaPicAnimScript13
+ dpikapic PikaPicAnimScript13
+
+ db 100
+ dpikapic PikaPicAnimScript9
+ dpikapic PikaPicAnimScript9
+ dpikapic PikaPicAnimScript5
+ dpikapic PikaPicAnimScript12
+ dpikapic PikaPicAnimScript12
+
+ db 130
+ dpikapic PikaPicAnimScript3
+ dpikapic PikaPicAnimScript3
+ dpikapic PikaPicAnimScript1
+ dpikapic PikaPicAnimScript8
+ dpikapic PikaPicAnimScript8
+
+ db 160
+ dpikapic PikaPicAnimScript3
+ dpikapic PikaPicAnimScript3
+ dpikapic PikaPicAnimScript4
+ dpikapic PikaPicAnimScript15
+ dpikapic PikaPicAnimScript15
+
+ db 200
+ dpikapic PikaPicAnimScript17
+ dpikapic PikaPicAnimScript17
+ dpikapic PikaPicAnimScript7
+ dpikapic PikaPicAnimScript2
+ dpikapic PikaPicAnimScript2
+
+ db 250
+ dpikapic PikaPicAnimScript17
+ dpikapic PikaPicAnimScript17
+ dpikapic PikaPicAnimScript16
+ dpikapic PikaPicAnimScript10
+ dpikapic PikaPicAnimScript10
+
+ db 255
+ dpikapic PikaPicAnimScript17
+ dpikapic PikaPicAnimScript17
+ dpikapic PikaPicAnimScript19
+ dpikapic PikaPicAnimScript20
+ dpikapic PikaPicAnimScript20
StarterPikachuEmotionCommand_pikapic: ; fd9d0 (3f:59d0)
ld a, [H_AUTOBGTRANSFERENABLED]
@@ -55,18 +96,18 @@ StarterPikachuEmotionCommand_pikapic: ; fd9d0 (3f:59d0)
ld [wExpressionNumber2], a
inc de
push de
- call Func_fd9e4
+ call .RunPikapic
pop de
pop af
ld [H_AUTOBGTRANSFERENABLED], a
ret
-Func_fd9e4:
+.RunPikapic:
call PlacePikapicTextBoxBorder
callab LoadOverworldPikachuFrontpicPalettes
call ResetPikaPicAnimBuffer
call LoadCurrentPikaPicAnimScriptPointer
- call Func_fda9a
+ call ExecutePikaPicAnimScript
call PlacePikapicTextBoxBorder
call RunDefaultPaletteCommand
ret
@@ -113,7 +154,7 @@ LoadCurrentPikaPicAnimScriptPointer:
.valid
ld e, a
ld d, 0
- ld hl, Pointers_fda5e
+ ld hl, PikaPicAnimPointers
add hl, de
add hl, de
ld a, [hli]
@@ -122,47 +163,47 @@ LoadCurrentPikaPicAnimScriptPointer:
call UpdatePikaPicAnimPointer
ret
-Pointers_fda5e:
- dw Data_fe28a ; 00
- dw Data_fe28a ; 01
- dw Data_fe2a4 ; 02
- dw Data_fe2be ; 03
- dw Data_fe2d8 ; 04
- dw Data_fe2f2 ; 05
- dw Data_fe30c ; 06
- dw Data_fe326 ; 07
- dw Data_fe340 ; 08
- dw Data_fe35a ; 09
- dw Data_fe374 ; 0a
- dw Data_fe390 ; 0b
- dw Data_fe3aa ; 0c
- dw Data_fe3c4 ; 0d
- dw Data_fe3de ; 0e
- dw Data_fe3f8 ; 0f
- dw Data_fe412 ; 10
- dw Data_fe42c ; 11
- dw Data_fe446 ; 12
- dw Data_fe460 ; 13
- dw Data_fe47a ; 14
- dw Data_fe494 ; 15
- dw Data_fe4b4 ; 16
- dw Data_fe4ce ; 17
- dw Data_fe4e8 ; 18
- dw Data_fe502 ; 19
- dw Data_fe520 ; 1a
- dw Data_fe53e ; 1b
- dw Data_fe558 ; 1c
- dw Data_fe28a ; 1d
-
-
-Func_fda9a:
+PikaPicAnimPointers:
+ pikapic_def PikaPicAnimScript0 ; 00
+ pikapic_def PikaPicAnimScript1 ; 01
+ pikapic_def PikaPicAnimScript2 ; 02
+ pikapic_def PikaPicAnimScript3 ; 03
+ pikapic_def PikaPicAnimScript4 ; 04
+ pikapic_def PikaPicAnimScript5 ; 05
+ pikapic_def PikaPicAnimScript6 ; 06
+ pikapic_def PikaPicAnimScript7 ; 07
+ pikapic_def PikaPicAnimScript8 ; 08
+ pikapic_def PikaPicAnimScript9 ; 09
+ pikapic_def PikaPicAnimScript10 ; 0a
+ pikapic_def PikaPicAnimScript11 ; 0b
+ pikapic_def PikaPicAnimScript12 ; 0c
+ pikapic_def PikaPicAnimScript13 ; 0d
+ pikapic_def PikaPicAnimScript14 ; 0e
+ pikapic_def PikaPicAnimScript15 ; 0f
+ pikapic_def PikaPicAnimScript16 ; 10
+ pikapic_def PikaPicAnimScript17 ; 11
+ pikapic_def PikaPicAnimScript18 ; 12
+ pikapic_def PikaPicAnimScript19 ; 13
+ pikapic_def PikaPicAnimScript20 ; 14
+ pikapic_def PikaPicAnimScript21 ; 15
+ pikapic_def PikaPicAnimScript22 ; 16
+ pikapic_def PikaPicAnimScript23 ; 17
+ pikapic_def PikaPicAnimScript24 ; 18
+ pikapic_def PikaPicAnimScript25 ; 19
+ pikapic_def PikaPicAnimScript26 ; 1a
+ pikapic_def PikaPicAnimScript27 ; 1b
+ pikapic_def PikaPicAnimScript28 ; 1c
+ pikapic_def PikaPicAnimScript29 ; 1d
+
+
+ExecutePikaPicAnimScript:
.loop
xor a
ld [H_AUTOBGTRANSFERENABLED], a
- call RunPikaPicAnimScript
- call Func_fdad5
- call Func_fdad6
- call Func_fdad5
+ call RunPikaPicAnimSetupScript
+ call DummyFunction_fdad5
+ call AnimateCurrentPikaPicAnimFrame
+ call DummyFunction_fdad5
ld a, $01
ld [H_AUTOBGTRANSFERENABLED], a
call PikaPicAnimTimerAndJoypad
@@ -197,20 +238,20 @@ CheckPikaPicAnimTimer:
ld a, $01
ret
-Func_fdad5:
+DummyFunction_fdad5:
ret
-Func_fdad6:
+AnimateCurrentPikaPicAnimFrame:
ld bc, wPikaPicAnimObjectDataBuffer
ld a, 4
-.asm_fdadb
+.loop
push af
push bc
ld hl, 0
add hl, bc
ld a, [hli]
and a
- jr z, .asm_fdb26
+ jr z, .skip
ld a, [hli]
ld [wCurPikaPicAnimObject], a
ld a, [hli]
@@ -226,7 +267,7 @@ Func_fdad6:
ld a, [hli]
ld [wCurPikaPicAnimObject + 3], a
push bc
- call Func_fdb7e
+ call LoadPikaPicAnimObjectData
pop bc
ld hl, 1
add hl, bc
@@ -244,7 +285,7 @@ Func_fdad6:
ld [hli], a
ld a, [wCurPikaPicAnimObject + 3]
ld [hl], a
-.asm_fdb26
+.skip
pop bc
ld hl, 8
add hl, bc
@@ -252,7 +293,7 @@ Func_fdad6:
ld c, l
pop af
dec a
- jr nz, .asm_fdadb
+ jr nz, .loop
ret
PikaPicAnimCommand_object:
@@ -311,16 +352,16 @@ PikaPicAnimCommand_deleteobject:
ld [hl], a
ret
-Func_fdb7e:
-.asm_fdb7e
+LoadPikaPicAnimObjectData:
+.loop
ld a, [wCurPikaPicAnimObject]
cp $23
- jr c, .asm_fdb87
- ld a, $04
-.asm_fdb87
+ jr c, .valid
+ ld a, $4
+.valid
ld e, a
- ld d, $00
- ld hl, Pointers_fdbc9
+ ld d, 0
+ ld hl, PikaPicAnimOAMPointers
add hl, de
add hl, de
ld a, [hli]
@@ -333,301 +374,43 @@ Func_fdb7e:
add hl, de
ld a, [hli]
cp $e0
- jr z, .asm_fdba1
- jr .asm_fdbaa
+ jr z, .end
+ jr .init
-.asm_fdba1
+.end
xor a
ld [wCurPikaPicAnimObject + 1], a
ld [wCurPikaPicAnimObject + 2], a
- jr .asm_fdb7e
+ jr .loop
-.asm_fdbaa
+.init
push hl
- call Func_fdd62
+ call LoadCurPikaPicObjectTilemap
pop hl
ld a, [hl]
and a
- jr z, .asm_fdbc8
+ jr z, .done
ld a, [wCurPikaPicAnimObject + 2]
inc a
ld [wCurPikaPicAnimObject + 2], a
cp [hl]
- jr nz, .asm_fdbc8
+ jr nz, .done
xor a
ld [wCurPikaPicAnimObject + 2], a
ld a, [wCurPikaPicAnimObject + 1]
inc a
ld [wCurPikaPicAnimObject + 1], a
-.asm_fdbc8
+.done
ret
-Pointers_fdbc9:
- dw Data_fdc11
- dw Data_fdc11
- dw Data_fdc29
- dw Data_fdc32
- dw Data_fdc3b
- dw Data_fdc3e
- dw Data_fdc41
- dw Data_fdc50
- dw Data_fdc61
- dw Data_fdc6e
- dw Data_fdc77
- dw Data_fdc84
- dw Data_fdc8d
- dw Data_fdc98
- dw Data_fdca5
- dw Data_fdcb2
- dw Data_fdcb7
- dw Data_fdcc2
- dw Data_fdccb
- dw Data_fdcd4
- dw Data_fdcdf
- dw Data_fdce8
- dw Data_fdcf1
- dw Data_fdcf6
- dw Data_fdd01
- dw Data_fdd0a
- dw Data_fdd13
- dw Data_fdd1c
- dw Data_fdd27
- dw Data_fdd2c
- dw Data_fdd35
- dw Data_fdd40
- dw Data_fdd47
- dw Data_fdd54
- dw Data_fdd59
- dw Data_fdc3b
-
-Data_fdc11:
- db $01, $14
- db $07, $02
- db $01, $01
- db $07, $02
- db $01, $01
- db $07, $08
- db $e0
-Data_fdc1e:
- db $02, $02
- db $01, $01
- db $02, $02
- db $01, $01
- db $02, $08
- db $e0
-Data_fdc29:
- db $00, $08
- db $08, $08
- db $00, $08
- db $08, $08
- db $e0
-Data_fdc32:
- db $08, $08
- db $00, $08
- db $08, $08
- db $00, $08
- db $e0
-Data_fdc3b:
- db $01, $00
- db $e0
-Data_fdc3e:
- db $09, $00
- db $e0
-Data_fdc41:
- db $00, $02
- db $0e, $04
- db $00, $08
- db $0e, $04
- db $00, $40
- db $0e, $04
- db $00, $40
- db $e0
-Data_fdc50:
- db $00, $04
- db $0f, $04
- db $00, $04
- db $0f, $04
- db $00, $08
- db $0f, $04
- db $00, $08
- db $0f, $04
- db $e0
-Data_fdc61:
- db $10, $01
- db $00, $01
- db $10, $01
- db $00, $40
- db $10, $01
- db $00, $40
- db $e0
-Data_fdc6e:
- db $00, $08
- db $11, $08
- db $00, $14
- db $11, $08
- db $e0
-Data_fdc77:
- db $00, $02
- db $12, $02
- db $00, $02
- db $12, $40
- db $00, $03
- db $12, $40
- db $e0
-Data_fdc84:
- db $00, $08
- db $13, $40
- db $00, $04
- db $13, $40
- db $e0
-Data_fdc8d:
- db $14, $08
- db $00, $02
- db $14, $08
- db $00, $02
- db $14, $08
- db $e0
-Data_fdc98:
- db $15, $04
- db $00, $08
- db $15, $04
- db $00, $40
- db $15, $04
- db $00, $40
- db $e0
-Data_fdca5:
- db $00, $02
- db $16, $02
- db $00, $02
- db $16, $02
- db $00, $14
- db $16, $02
- db $e0
-Data_fdcb2:
- db $00, $08
- db $17, $08
- db $e0
-Data_fdcb7:
- db $00, $08
- db $17, $03
- db $18, $05
- db $17, $03
- db $00, $05
- db $e0
-Data_fdcc2:
- db $00, $14
- db $19, $08
- db $00, $14
- db $19, $08
- db $e0
-Data_fdccb:
- db $00, $0d
- db $1a, $0c
- db $00, $64
- db $1a, $08
- db $e0
-Data_fdcd4:
- db $00, $05
- db $1b, $05
- db $00, $05
- db $1b, $05
- db $00, $64
- db $e0
-Data_fdcdf:
- db $00, $02
- db $1c, $02
- db $00, $02
- db $1c, $02
- db $e0
-Data_fdce8:
- db $00, $05
- db $1d, $05
- db $00, $05
- db $1d, $05
- db $e0
-Data_fdcf1:
- db $1e, $08
- db $00, $64
- db $e0
-Data_fdcf6:
- db $00, $0a
- db $1f, $03
- db $00, $03
- db $1f, $03
- db $00, $64
- db $e0
-Data_fdd01:
- db $00, $03
- db $20, $64
- db $00, $08
- db $20, $08
- db $e0
-Data_fdd0a:
- db $21, $06
- db $00, $06
- db $21, $06
- db $00, $06
- db $e0
-Data_fdd13:
- db $00, $08
- db $22, $0c
- db $00, $08
- db $22, $0c
- db $e0
-Data_fdd1c:
- db $00, $08
- db $09, $02
- db $0a, $01
- db $0b, $01
- db $0c, $64
- db $e0
-Data_fdd27:
- db $00, $08
- db $24, $64
- db $e0
-Data_fdd2c:
- db $00, $10
- db $25, $10
- db $00, $10
- db $25, $10
- db $e0
-Data_fdd35:
- db $00, $06
- db $26, $06
- db $00, $06
- db $26, $06
- db $00, $64
- db $e0
-Data_fdd40:
- db $00, $06
- db $09, $06
- db $0a, $64
- db $e0
-Data_fdd47:
- db $00, $14
- db $09, $08
- db $00, $14
- db $09, $08
- db $0a, $08
- db $0b, $64
- db $e0
-Data_fdd54:
- db $00, $04
- db $09, $64
- db $e0
-Data_fdd59:
- db $00, $0c
- db $09, $0c
- db $00, $0c
- db $09, $64
- db $e0
-
-Func_fdd62:
+INCLUDE "data/pikachu_pic_objects.asm"
+
+LoadCurPikaPicObjectTilemap:
and a
ret z
ld e, a
ld d, 0
- ld hl, Pointers_fddb8
+ ld hl, PikaPicTilemapPointers
add hl, de
add hl, de
ld e, [hl]
@@ -641,34 +424,34 @@ Func_fdd62:
inc de
push de
push bc
- call Func_fdd98
+ call .GetYCoordinate
pop bc
pop de
-.asm_fdd7c
+.row
push bc
push hl
ld a, [wd456]
ld c, a
-.asm_fdd82
+.col
ld a, [de]
inc de
cp $ff
- jr z, .asm_fdd8a
+ jr z, .skip
add c
ld [hl], a
-.asm_fdd8a
+.skip
inc hl
dec b
- jr nz, .asm_fdd82
+ jr nz, .col
pop hl
ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec c
- jr nz, .asm_fdd7c
+ jr nz, .row
ret
-Func_fdd98:
+.GetYCoordinate:
push bc
ld a, [wd458]
ld b, a
@@ -687,234 +470,7 @@ Func_fdd98:
pop bc
ret
-Pointers_fddb8:
- dw Data_fde0e
- dw Data_fde0f
- dw Data_fde2a
- dw Data_fde60
- dw Data_fde63
- dw Data_fde67
- dw Data_fde6b
- dw Data_fde45
- dw Data_fde6b
- dw Data_fdfaa
- dw Data_fdfc5
- dw Data_fdfe0
- dw Data_fdffb
- dw Data_fe016
- dw Data_fde81
- dw Data_fde9c
- dw Data_fdeb7
- dw Data_fded2
- dw Data_fdeed
- dw Data_fdf08
- dw Data_fdf23
- dw Data_fdf3e
- dw Data_fdf59
- dw Data_fdf74
- dw Data_fdf8f
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfaa
- dw Data_fdfc5
- dw Data_fdfe0
- dw Data_fde0f
-
-Data_fde0e:
- db $ff ; unused
-
-Data_fde0f: ; fde0f
- db 5, 5
- db $00, $05, $0a, $0f, $14
- db $01, $06, $0b, $10, $15
- db $02, $07, $0c, $11, $16
- db $03, $08, $0d, $12, $17
- db $04, $09, $0e, $13, $18
-
-Data_fde2a: ; fde2a
- db 5, 5
- db $19, $1e, $23, $28, $2d
- db $1a, $1f, $24, $29, $2e
- db $1b, $20, $25, $2a, $2f
- db $1c, $21, $26, $2b, $30
- db $1d, $22, $27, $2c, $31
-
-Data_fde45: ; fde45
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $20, $25, $ff, $ff
- db $ff, $21, $26, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
-
-Data_fde60: ; fde60
- db 1, 1
- db $00
-
-Data_fde63: ; fde63
- db 2, 1
- db $00
- db $01
-
-Data_fde67: ; fde67
- db 1, 2
- db $00, $01
-
-Data_fde6b: ; fde6b
- db 2, 2
- db $00, $01
- db $02, $03
-
-Data_fde71: ; fde71
- db 3, 2
- db $00, $01
- db $02, $03
- db $04, $05
-
-Data_fde79: ; fde79
- db 2, 3
- db $00, $01, $02
- db $03, $04, $05
-
-Data_fde81: ; fde81
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $00, $01, $02, $03, $04
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
-
-Data_fde9c: ; fde9c
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09
-
-Data_fdeb7: ; fdeb7
- db 5, 5
- db $00, $01, $ff, $ff, $ff
- db $02, $03, $ff, $ff, $ff
- db $04, $05, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
-
-Data_fded2: ; fded2
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09
- db $0a, $0b, $0c, $0d, $0e
- db $0f, $10, $11, $12, $13
-
-Data_fdeed: ; fdeed
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $00, $01
- db $ff, $ff, $ff, $02, $03
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
-
-Data_fdf08: ; fdf08
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $00, $01, $ff, $ff, $ff
- db $02, $03, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
-
-Data_fdf23: ; fdf23
- db 5, 5
- db $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09
- db $0a, $0b, $0c, $0d, $0e
- db $0f, $10, $11, $12, $13
- db $14, $15, $16, $17, $18
-
-Data_fdf3e: ; fdf3e
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09
- db $ff, $ff, $ff, $ff, $ff
-
-Data_fdf59: ; fdf59
- db 5, 5
- db $ff, $ff, $ff, $ff, $ff
- db $ff, $ff, $ff, $ff, $ff
- db $00, $01, $ff, $ff, $ff
- db $02, $03, $ff, $ff, $ff
- db $04, $05, $ff, $ff, $ff
-
-Data_fdf74: ; fdf74
- db 5, 5
- db $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09
- db $0a, $0b, $0c, $0d, $0e
- db $0f, $10, $11, $12, $13
- db $14, $15, $16, $17, $18
-
-Data_fdf8f: ; fdf8f
- db 5, 5
- db $19, $1a, $1b, $1c, $1d
- db $1e, $1f, $20, $21, $22
- db $23, $24, $25, $26, $27
- db $28, $29, $2a, $2b, $2c
- db $2d, $2e, $2f, $30, $31
-
-Data_fdfaa: ; fdfaa
- db 5, 5
- db $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09
- db $0a, $0b, $0c, $0d, $0e
- db $0f, $10, $11, $12, $13
- db $14, $15, $16, $17, $18
-
-Data_fdfc5: ; fdfc5
- db 5, 5
- db $19, $1a, $1b, $1c, $1d
- db $1e, $1f, $20, $21, $22
- db $23, $24, $25, $26, $27
- db $28, $29, $2a, $2b, $2c
- db $2d, $2e, $2f, $30, $31
-
-Data_fdfe0: ; fdfe0
- db 5, 5
- db $32, $33, $34, $35, $36
- db $37, $38, $39, $3a, $3b
- db $3c, $3d, $3e, $3f, $40
- db $41, $42, $43, $44, $45
- db $46, $47, $48, $49, $4a
-
-Data_fdffb: ; fdffb
- db 5, 5
- db $4b, $4c, $4d, $4e, $4f
- db $50, $51, $52, $53, $54
- db $55, $56, $57, $58, $59
- db $5a, $5b, $5c, $5d, $5e
- db $5f, $60, $61, $62, $63
-
-Data_fe016: ; fe016
- db 5, 5
- db $64, $65, $66, $67, $68
- db $69, $6a, $6b, $6c, $6d
- db $6e, $6f, $70, $71, $72
- db $73, $74, $75, $76, $77
- db $78, $79, $7a, $7b, $7c
+INCLUDE "data/pikachu_pic_tilemaps.asm"
LoadPikaPicAnimGFXHeader:
push hl
@@ -936,8 +492,8 @@ LoadPikaPicAnimGFXHeader:
pop hl
ret
-RunPikaPicAnimScript:
- call Func_fe066
+RunPikaPicAnimSetupScript:
+ call .CheckAndAdvanceTimer
ret c
xor a
ld [wPikaPicAnimPointerSetupFinished], a
@@ -945,7 +501,7 @@ RunPikaPicAnimScript:
call GetPikaPicAnimByte
ld e, a
ld d, 0
- ld hl, Jumptable_fe071
+ ld hl, .Jumptable
add hl, de
add hl, de
ld a, [hli]
@@ -957,7 +513,7 @@ RunPikaPicAnimScript:
jr z, .loop
ret
-Func_fe066:
+.CheckAndAdvanceTimer:
ld a, [wPikaPicAnimDelay]
and a
ret z
@@ -966,7 +522,7 @@ Func_fe066:
scf
ret
-Jumptable_fe071:
+.Jumptable:
dw PikaPicAnimCommand_nop ; 00, 0 params
dw PikaPicAnimCommand_writebyte ; 01, 1 param
dw PikaPicAnimCommand_loadgfx ; 02, 1 param
@@ -980,7 +536,7 @@ Jumptable_fe071:
dw PikaPicAnimCommand_setduration ; 0a, 1 dw param
dw PikaPicAnimCommand_cry ; 0b, 1 param
dw PikaPicAnimCommand_thunderbolt ; 0c, 0 params
- dw PikaPicAnimCommand_waitbgmap ; 0d, 0 params (ret)
+ dw PikaPicAnimCommand_run ; 0d, 0 params (ret)
dw PikaPicAnimCommand_ret ; 0e, 0 params (ret)
PikaPicAnimCommand_nop:
@@ -991,9 +547,9 @@ PikaPicAnimCommand_ret:
ld [wPikaPicAnimTimer], a
xor a
ld [wPikaPicAnimTimer + 1], a
- jr PikaPicAnimCommand_waitbgmap
+ jr PikaPicAnimCommand_run
-Func_fe09b:
+; XXX
ret
PikaPicAnimCommand_setduration:
@@ -1003,7 +559,7 @@ PikaPicAnimCommand_setduration:
ld [wPikaPicAnimTimer + 1], a
ret
-PikaPicAnimCommand_waitbgmap:
+PikaPicAnimCommand_run:
ld a, $ff
ld [wPikaPicAnimPointerSetupFinished], a
ret
@@ -1068,11 +624,11 @@ PikaPicAnimCommand_loadgfx:
cp a, $ff
jr z, .compressed
call RequestPikaPicAnimGFX
- jr .asm_fe109
+ jr .done
.compressed
call DecompressRequestPikaPicAnimGFX
-.asm_fe109
+.done
pop af
ld [hTilesetType], a
pop af
@@ -1176,9 +732,9 @@ CheckIfThereIsRoomForPikaPicAnimGFX:
add e
ld [wPikaPicUsedGFXCount], a
cp $80
- jr z, .asm_fe1a7
+ jr z, .okay
jr nc, .failed
-.asm_fe1a7
+.okay
ld a, [hl]
and a
jr .pop_ret
@@ -1264,7 +820,7 @@ PikaPicAnimLoadThunderboltAudio:
ret
PikaPicAnimThunderboltFlashScreen:
- ld hl, Data_fe242
+ ld hl, PikaPicAnimThunderboltPals
.loop
ld a, [hli]
cp $ff
diff --git a/home/init.asm b/home/init.asm
index 67d52dd2..ad602a99 100644
--- a/home/init.asm
+++ b/home/init.asm
@@ -3,8 +3,6 @@ SoftReset:: ; 1d08 (0:1d08)
call GBPalWhiteOut
ld c, 32
call DelayFrames
- ; fallthrough
-
Init:: ; 1d10 (0:1d10)
; Program init.
@@ -99,7 +97,7 @@ rLCDC_DEFAULT EQU %11100011
predef LoadSGB
- ld a, $1f ; BANK(SFX_1f_67)
+ ld a, BANK(SFX_Shooting_Star)
ld [wAudioROMBank], a
ld [wAudioSavedROMBank], a
ld a, $9c
diff --git a/home/overworld.asm b/home/overworld.asm
index f29cfd51..03058505 100644
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -1945,9 +1945,9 @@ asm_0dbd
predef LoadTilesetHeader
ld a, [wd72e]
bit 5, a ; did a battle happen immediately before this?
- jr nz, .asm_0e73
- callab Func_fc4fa ; 3f:44fa
-.asm_0e73
+ jr nz, .skip_pika_spawn
+ callab SchedulePikachuSpawnForAfterText ; 3f:44fa
+.skip_pika_spawn
callab LoadWildData ; 3:4b62
pop hl ; restore hl from before going to the warp/sign/sprite data (this value was saved for seemingly no purpose)
ld a, [wCurMapHeight] ; map height in 4x4 tile blocks
@@ -2150,7 +2150,7 @@ IgnoreInputForHalfSecond: ; 0fc3 (0:0fc3)
ld [wIgnoreInputCounter], a
ld hl, wd730
ld a, [hl]
- or $26
+ or %00100110 ; $26
ld [hl], a ; set ignore input bit
ret
diff --git a/home/pikachu.asm b/home/pikachu.asm
index e79fdb1b..c2521208 100755
--- a/home/pikachu.asm
+++ b/home/pikachu.asm
@@ -14,14 +14,14 @@ Func_151d:: ; 151d (0:151d)
pop hl
ret
-Func_1525:: ; 1525 (0:1525)
+EnablePikachuOverworldSpriteDrawing:: ; 1525 (0:1525)
push hl
ld hl, wPikachuOverworldStateFlags
res 3, [hl]
pop hl
ret
-Func_152d:: ; 152d (0:152d)
+DisablePikachuOverworldSpriteDrawing:: ; 152d (0:152d)
push hl
ld hl, wPikachuOverworldStateFlags
set 3, [hl]
diff --git a/macros.asm b/macros.asm
index 98902b92..2ec3219b 100644
--- a/macros.asm
+++ b/macros.asm
@@ -944,3 +944,15 @@ pikapic_looptofinish: macro
pikapic_waitbgmap
pikapic_jump .loop\@
endm
+
+pikapic_def: macro
+\1_id: dw \1
+endm
+
+dpikapic: macro
+ db (\1_id - PikaPicAnimPointers) / 2
+ endm
+
+ldpikapic: macro
+ ld \1, (\2_id - PikaPicAnimPointers) / 2
+ endm
diff --git a/scripts/daycarem.asm b/scripts/daycarem.asm
index 82622285..46340b9d 100755
--- a/scripts/daycarem.asm
+++ b/scripts/daycarem.asm
@@ -221,8 +221,8 @@ DayCareMText1: ; 56254 (15:6254)
ld [wPikachuSpawnState], a
; GameFreak... TriHard
- ld hl, Func_fc4fa
- ld b, BANK(Func_fc4fa)
+ ld hl, SchedulePikachuSpawnForAfterText
+ ld b, BANK(SchedulePikachuSpawnForAfterText)
ld hl, Bankswitch
ldpikacry e, PikachuCry35
diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm
index 6648acb1..4662360a 100755
--- a/scripts/oakslab.asm
+++ b/scripts/oakslab.asm
@@ -473,8 +473,8 @@ OaksLabScript17:
ld [wPlayerFacingDirection], a
ld a, $2
ld [wPikachuSpawnState], a
- callba Func_fc4fa
- call Func_1525
+ callba SchedulePikachuSpawnForAfterText
+ call EnablePikachuOverworldSpriteDrawing
ld a, $1a
ld [hSpriteIndexOrTextID], a
call DisplayTextID
@@ -1044,7 +1044,7 @@ OaksLabText18:
call AddPartyMon
ld a, 163
ld [wPartyMon1CatchRate], a
- call Func_152d
+ call DisablePikachuOverworldSpriteDrawing
SetEvent EVENT_GOT_STARTER
ld hl, wd72e
set 3, [hl]
diff --git a/scripts/vermiliongym.asm b/scripts/vermiliongym.asm
index d672a419..f36071e9 100755
--- a/scripts/vermiliongym.asm
+++ b/scripts/vermiliongym.asm
@@ -29,14 +29,15 @@ Gym3LeaderName: ; 5ca64 (17:4a64)
VermilionGymScript_5ca6d: ; 5ca6d (17:4a6d)
CheckEvent EVENT_2ND_LOCK_OPENED
- jr nz, .asm_5ca78
+ jr nz, .opened_second_lock
ld a, $24
- jr .asm_5ca7f
-.asm_5ca78
+ jr .load_door_tile
+
+.opened_second_lock
ld a, SFX_GO_INSIDE
call PlaySound
ld a, $5
-.asm_5ca7f
+.load_door_tile
ld [wNewTileBlockID], a
lb bc, 2, 2
predef_jump ReplaceTileBlock
@@ -73,12 +74,13 @@ VermilionGymScript_5caaa: ; 5caaa (17:4aaa)
ld [hSpriteIndexOrTextID], a
call DisplayTextID
SetEvent EVENT_GOT_TM24
- jr .asm_5cad3
+ jr .set_gym_flags
+
.BagFull
ld a, $8
ld [hSpriteIndexOrTextID], a
call DisplayTextID
-.asm_5cad3
+.set_gym_flags
ld hl, wObtainedBadges
set 2, [hl]
ld hl, wBeatGymFlags
@@ -132,17 +134,19 @@ VermilionGymTrainerHeader2: ; 5cb10 (17:4b10)
VermilionGymText1: ; 5cb1d (17:4b1d)
TX_ASM
CheckEvent EVENT_BEAT_LT_SURGE
- jr z, .asm_5cb39
+ jr z, .engage_surge
CheckEventReuseA EVENT_GOT_TM24
- jr nz, .asm_5cb31
+ jr nz, .after_win_text
call z, VermilionGymScript_5caaa
call DisableWaitingAfterTextDisplay
- jr .asm_5cb6a
-.asm_5cb31
+ jr .text_script_end
+
+.after_win_text
ld hl, VermilionGymText_5cb72
call PrintText
- jr .asm_5cb6a
-.asm_5cb39
+ jr .text_script_end
+
+.engage_surge
ld hl, VermilionGymText_5cb6d
call PrintText
ld hl, wd72d
@@ -162,7 +166,7 @@ VermilionGymText1: ; 5cb1d (17:4b1d)
ld a, $3
ld [W_VERMILIONGYMCURSCRIPT], a
ld [W_CURMAPSCRIPT], a
-.asm_5cb6a
+.text_script_end
jp TextScriptEnd
VermilionGymText_5cb6d: ; 5cb6d (17:4b6d)
@@ -179,7 +183,7 @@ VermilionGymText6: ; 5cb77 (17:4b77)
VermilionGymText7: ; 5cb7c (17:4b7c)
TX_FAR _ReceivedTM24Text
- db $11
+ TX_SFX_KEY_ITEM
TX_FAR _TM24ExplanationText
db "@"
@@ -249,14 +253,15 @@ VermilionGymText5: ; 5cbdb (17:4bdb)
TX_ASM
ld a, [wBeatGymFlags]
bit 2, a
- jr nz, .asm_5cbeb
+ jr nz, .beat_surge
ld hl, VermilionGymText_5cbf4
call PrintText
- jr .asm_5cbf1
-.asm_5cbeb
+ jr .text_script_end
+
+.beat_surge
ld hl, VermilionGymText_5cbf9
call PrintText
-.asm_5cbf1
+.text_script_end
jp TextScriptEnd
VermilionGymText_5cbf4: ; 5cbf4 (17:4bf4)
diff --git a/wram.asm b/wram.asm
index f5a1188c..6d461b3a 100755
--- a/wram.asm
+++ b/wram.asm
@@ -1619,7 +1619,7 @@ wTextPredefFlag:: ; cf11
wPredefParentBank:: ; cf12
ds 1
-wSpriteIndex:: ds 1
+wSpriteIndex:: ds 1 ; cf13
wCurSpriteMovement2:: ; cf14
; movement byte 2 of current sprite