summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdata/pikachu_emotions.asm266
-rwxr-xr-xdata/pikachu_pic_animation.asm397
-rwxr-xr-xengine/pikachu_emotions.asm267
-rwxr-xr-xengine/pikachu_pic_animation.asm489
-rw-r--r--macros.asm6
-rwxr-xr-xwram.asm15
6 files changed, 701 insertions, 739 deletions
diff --git a/data/pikachu_emotions.asm b/data/pikachu_emotions.asm
new file mode 100755
index 00000000..a1d902c3
--- /dev/null
+++ b/data/pikachu_emotions.asm
@@ -0,0 +1,266 @@
+PikachuEmotion0_fd115: ; fd115 (3f:5115)
+ db $ff
+
+PikachuEmotion2_fd116: ; fd116 (3f:5116)
+ pikaemotion_dummy2
+ pikaemotion_emotebubble SMILE_BUBBLE
+ pikaemotion_pcm PikachuCry35
+ pikaemotion_pikapic $2
+ db $ff
+
+PikachuEmotion10_fd11e: ; fd11e (3f:511e)
+ pikaemotion_dummy2
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
+ pikaemotion_emotebubble HEART_BUBBLE
+ pikaemotion_pcm PikachuCry5
+ pikaemotion_pikapic $a
+ db $ff
+
+PikachuEmotion7_fd128: ; fd128 (3f:5128)
+ pikaemotion_dummy2
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
+ pikaemotion_movement Pointer_fd224
+ pikaemotion_pcm PikachuCry1
+ pikaemotion_movement Pointer_fd224
+ pikaemotion_pikapic $7
+ db $ff
+
+PikachuEmotion4_fd136: ; fd136 (3f:5136)
+ pikaemotion_dummy2
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
+ pikaemotion_movement Pointer_fd230
+ pikaemotion_pcm PikachuCry29
+ pikaemotion_pikapic $4
+ db $ff
+
+PikachuEmotion1_fd141: ; fd141 (3f:5141)
+ pikaemotion_dummy2
+ pikaemotion_pcm
+ pikaemotion_pikapic $1
+ db $ff
+
+PikachuEmotion8_fd147: ; fd147 (3f:5147)
+ pikaemotion_dummy2
+ pikaemotion_pcm PikachuCry39
+ pikaemotion_pikapic $8
+ db $ff
+
+PikachuEmotion5_fd14d: ; fd14d (3f:514d)
+ pikaemotion_dummy2
+ pikaemotion_pcm PikachuCry31
+ pikaemotion_pikapic $5
+ db $ff
+
+PikachuEmotion6_fd153: ; fd153 (3f:5153)
+ pikaemotion_dummy2
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
+ pikaemotion_pcm
+ pikaemotion_movement Pointer_fd21e
+ pikaemotion_emotebubble SKULL_BUBBLE
+ pikaemotion_pikapic $6
+ db $ff
+
+PikachuEmotion3_fd160: ; fd160 (3f:5160)
+ pikaemotion_dummy2
+ pikaemotion_pcm PikachuCry40
+ pikaemotion_pikapic $3
+ db $ff
+
+PikachuEmotion9_fd166: ; fd166 (3f:5166)
+ pikaemotion_dummy2
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
+ pikaemotion_pcm PikachuCry6
+ pikaemotion_movement Pointer_fd218
+ pikaemotion_emotebubble SKULL_BUBBLE
+ pikaemotion_pikapic $9
+ db $ff
+
+PikachuEmotion11_fd173: ; fd173 (3f:5173)
+ pikaemotion_emotebubble ZZZ_BUBBLE
+ pikaemotion_pcm PikachuCry37
+ pikaemotion_pikapic $b
+ db $ff
+
+PikachuEmotion12_fd17a: ; fd17a (3f:517a)
+ pikaemotion_dummy2
+ pikaemotion_pcm
+ pikaemotion_pikapic $c
+ db $ff
+
+PikachuEmotion13_fd180: ; fd180 (3f:5180)
+ pikaemotion_dummy2
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
+ pikaemotion_movement Pointer_fd21e
+ pikaemotion_pikapic $d
+ db $ff
+
+PikachuEmotion14_fd189: ; fd189 (3f:5189)
+ pikaemotion_dummy2
+ pikaemotion_emotebubble BOLT_BUBBLE
+ pikaemotion_pcm PikachuCry10
+ pikaemotion_pikapic $e
+ db $ff
+
+PikachuEmotion15_fd191: ; fd191 (3f:5191)
+ pikaemotion_dummy2
+ pikaemotion_pcm PikachuCry34
+ pikaemotion_pikapic $f
+ db $ff
+
+PikachuEmotion16_fd197: ; fd197 (3f:5197)
+ pikaemotion_dummy2
+ pikaemotion_pcm PikachuCry33
+ pikaemotion_pikapic $10
+ db $ff
+
+PikachuEmotion17_fd19d: ; fd19d (3f:519d)
+ pikaemotion_dummy2
+ pikaemotion_pcm PikachuCry13
+ pikaemotion_pikapic $11
+ db $ff
+
+PikachuEmotion18_fd1a3: ; fd1a3 (3f:51a3)
+ pikaemotion_dummy2
+ pikaemotion_pcm
+ pikaemotion_pikapic $12
+ db $ff
+
+PikachuEmotion19_fd1a9: ; fd1a9 (3f:51a9)
+ pikaemotion_dummy2
+ pikaemotion_emotebubble HEART_BUBBLE
+ pikaemotion_pcm PikachuCry33
+ pikaemotion_pikapic $13
+ db $ff
+
+PikachuEmotion20_fd1b1: ; fd1b1 (3f:51b1)
+ pikaemotion_dummy2
+ pikaemotion_emotebubble HEART_BUBBLE
+ pikaemotion_pcm PikachuCry5
+ pikaemotion_pikapic $14
+ db $ff
+
+PikachuEmotion21_fd1b9: ; fd1b9 (3f:51b9)
+ pikaemotion_dummy2
+ pikaemotion_emotebubble FISH_BUBBLE
+ pikaemotion_pcm
+ pikaemotion_pikapic $15
+ db $ff
+
+PikachuEmotion22_fd1c1: ; fd1c1 (3f:51c1)
+ pikaemotion_dummy2
+ pikaemotion_pcm PikachuCry4
+ pikaemotion_pikapic $16
+ db $ff
+
+PikachuEmotion23_fd1c7: ; fd1c7 (3f:51c7)
+ pikaemotion_dummy2
+ pikaemotion_pcm PikachuCry19
+ pikaemotion_pikapic $17
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW
+ db $ff
+
+PikachuEmotion24_fd1cf: ; fd1cf (3f:51cf)
+ pikaemotion_dummy2
+ pikaemotion_emotebubble EXCLAMATION_BUBBLE
+ pikaemotion_pcm
+ pikaemotion_pikapic $18
+ db $ff
+
+PikachuEmotion25_fd1d7: ; fd1d7 (3f:51d7)
+ pikaemotion_dummy2
+ pikaemotion_emotebubble BOLT_BUBBLE
+ pikaemotion_pcm PikachuCry35
+ pikaemotion_pikapic $19
+ db $ff
+
+PikachuEmotion26_fd1df: ; fd1df (3f:51df)
+ pikaemotion_dummy2
+ pikaemotion_emotebubble ZZZ_BUBBLE
+ pikaemotion_pcm PikachuCry37
+ pikaemotion_pikapic $1a
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKPEWTERCENTER
+ db $ff
+
+PikachuEmotion27_fd1eb: ; fd1eb (3f:51eb)
+ pikaemotion_dummy2
+ pikaemotion_pcm PikachuCry9
+ pikaemotion_pikapic $1b
+ db $ff
+
+PikachuEmotion28_fd1f1: ; fd1f1 (3f:51f1)
+ pikaemotion_dummy2
+ pikaemotion_pcm PikachuCry15
+ pikaemotion_pikapic $1c
+ db $ff
+
+PikachuEmotion29_fd1f7: ; fd1f7 (3f:51f7)
+ pikaemotion_pcm PikachuCry5
+ pikaemotion_pikapic $a
+ db $ff
+
+PikachuEmotion30_fd1fc: ; fd1fc (3f:51fc)
+ pikaemotion_9
+ pikaemotion_emotebubble HEART_BUBBLE
+ pikaemotion_pcm PikachuCry5
+ pikaemotion_pikapic $14
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADFONT
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKLAVENDERTOWER
+ db $ff
+
+PikachuEmotion31_fd20a: ; fd20a (3f:520a)
+ pikaemotion_pcm PikachuCry19
+ pikaemotion_pikapic $17
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW
+ pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKBILLSHOUSE
+ db $ff
+
+PikachuEmotion32_fd213: ; fd213 (3f:5213)
+ pikaemotion_pcm PikachuCry26
+ pikaemotion_pikapic $17
+ db $ff
+
+Pointer_fd218: ; fd218 (3f:5218)
+ db $00
+ db $39, $01
+ db $3e, $1e
+ db $3f
+
+Pointer_fd21e: ; fd21e (3f:521e)
+ db $00
+ db $39, $00
+ db $3e, $1e
+ db $3f
+
+Pointer_fd224: ; fd224 (3f:5224)
+ db $00
+ db $3c, $07, $2f
+ db $3c, $07, $2f
+ db $3f
+
+Pointer_fd22c: ; fd22c (3f:522c)
+ db $3b, $1f, $03
+ db $3f
+
+Pointer_fd230: ; fd230 (3f:5230)
+ db $00
+ db $3c, $0f, $1f
+ db $3c, $0f, $1f
+ db $3f
+
+Pointer_fd238: ; fd238 (3f:5238)
+ db $00
+ db $05, $07
+ db $39, $00
+ db $05, $07
+ db $06, $07
+ db $39, $00
+ db $06, $07
+ db $08, $07
+ db $39, $00
+ db $08, $07
+ db $07, $07
+ db $39, $00
+ db $07, $07
+ db $3f
diff --git a/data/pikachu_pic_animation.asm b/data/pikachu_pic_animation.asm
new file mode 100755
index 00000000..f1f6bd68
--- /dev/null
+++ b/data/pikachu_pic_animation.asm
@@ -0,0 +1,397 @@
+Data_fe242:
+ db 4, %11000000
+ db 4, %11100100
+ db 4, %11000000
+ db 4, %11100100
+ db 4, %11000000
+ db 4, %11100100
+ db 4, %11000000
+ db 4, %11100100
+ db 4, %11000000
+ db 4, %11100100
+ db 4, %11000000
+ db 4, %11100100
+ db 4, %11000000
+ db 4, %11100100
+ db 4, %11000000
+ db 4, %11100100
+ db 4, %11000000
+ db 4, %11100100
+ db 4, %11000000
+ db 4, %11100100
+ db $ff
+
+Data_fe26b: ; fe26b (3f:626b)
+ pikapic_loadgfx Pic_e4000
+ pikapic_loadgfx Pic_e49d1
+ pikapic_loadgfx PikachuSprite
+ pikapic_object $1, $80, $0, $0
+ pikapic_object $2, $b2, $5, $5
+ pikapic_object $3, $b6, $5, $5
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe28a: ; fe28a (3f:628a)
+ pikapic_setduration 40
+ pikapic_loadgfx Pic_e4000
+ pikapic_loadgfx GFX_e40cc
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $6, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry PikachuCry3
+ pikapic_looptofinish
+
+Data_fe2a4: ; fe2a4 (3f:62a4)
+ pikapic_setduration 44
+ pikapic_loadgfx Pic_e411c
+ pikapic_loadgfx GFX_e41d2
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $7, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe2be: ; fe2be (3f:62be)
+ pikapic_setduration 80
+ pikapic_loadgfx Pic_e4272
+ pikapic_loadgfx GFX_e4323
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $8, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe2d8: ; fe2d8 (3f:62d8)
+ pikapic_setduration 70
+ pikapic_loadgfx Pic_e4383
+ pikapic_loadgfx GFX_e444b
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $9, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe2f2: ; fe2f2 (3f:62f2)
+ pikapic_setduration 32
+ pikapic_loadgfx Pic_e458b
+ pikapic_loadgfx GFX_e463b
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $a, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe30c: ; fe30c (3f:630c)
+ pikapic_setduration 50
+ pikapic_loadgfx Pic_e467b
+ pikapic_loadgfx GFX_e472e
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $b, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry PikachuCry38
+ pikapic_looptofinish
+
+Data_fe326: ; fe326 (3f:6326)
+ pikapic_setduration 58
+ pikapic_loadgfx Pic_e476e
+ pikapic_loadgfx GFX_e4841
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $c, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe340: ; fe340 (3f:6340)
+ pikapic_setduration 44
+ pikapic_loadgfx Pic_e49d1
+ pikapic_loadgfx GFX_e4a99
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $d, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe35a: ; fe35a (3f:635a)
+ pikapic_setduration 56
+ pikapic_loadgfx Pic_e4b39
+ pikapic_loadgfx GFX_e4bde
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $e, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe374: ; fe374 (3f:6374)
+ pikapic_setduration 56
+ pikapic_loadgfx Pic_e4c3e
+ pikapic_loadgfx GFX_e4ce0
+ pikapic_loadgfx GFX_e4e70
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $10, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe390: ; fe390 (3f:6390)
+ pikapic_setduration 100
+ pikapic_loadgfx Pic_e5000
+ pikapic_loadgfx GFX_e50af
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $11, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe3aa: ; fe3aa (3f:63aa)
+ pikapic_setduration 50
+ pikapic_loadgfx Pic_e523f
+ pikapic_loadgfx GFX_e52fe
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $12, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry PikachuCry25
+ pikapic_looptofinish
+
+Data_fe3c4: ; fe3c4 (3f:63c4)
+ pikapic_setduration 50
+ pikapic_loadgfx Pic_e548e
+ pikapic_loadgfx GFX_e5541
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $13, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe3de: ; fe3de (3f:63de)
+ pikapic_setduration 40
+ pikapic_loadgfx Pic_e56d1
+ pikapic_loadgfx GFX_e5794
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $14, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe3f8: ; fe3f8 (3f:63f8)
+ pikapic_setduration 50
+ pikapic_loadgfx Pic_e5924
+ pikapic_loadgfx GFX_e59ed
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $15, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe412: ; fe412 (3f:6412)
+ pikapic_setduration 32
+ pikapic_loadgfx Pic_e5b7d
+ pikapic_loadgfx GFX_e5c4d
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $16, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe42c: ; fe42c (3f:642c)
+ pikapic_setduration 100
+ pikapic_loadgfx Pic_e5ddd
+ pikapic_loadgfx GFX_e5e90
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $17, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe446: ; fe446 (3f:6446)
+ pikapic_setduration 32
+ pikapic_loadgfx GFX_e6020
+ pikapic_loadgfx GFX_e61b0
+ pikapic_object $5, $80, $0, $0
+ pikapic_object $18, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry PikachuCry18
+ pikapic_looptofinish
+
+Data_fe460: ; fe460 (3f:6460)
+ pikapic_setduration 44
+ pikapic_loadgfx Pic_e6340
+ pikapic_loadgfx GFX_e63f7
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $19, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe47a: ; fe47a (3f:647a)
+ pikapic_setduration 50
+ pikapic_loadgfx Pic_e6587
+ pikapic_loadgfx GFX_e6646
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $1a, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe494: ; fe494 (3f:6494)
+ pikapic_setduration 40
+ pikapic_loadgfx Pic_e67d6
+ pikapic_loadgfx GFX_e682f
+ pikapic_loadgfx GFX_e69bf
+ pikapic_loadgfx GFX_e6b4f
+ pikapic_loadgfx GFX_e6cdf
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $1b, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry PikachuCry20
+ pikapic_looptofinish
+
+Data_fe4b4: ; fe4b4 (3f:64b4)
+ pikapic_setduration 40
+ pikapic_loadgfx GFX_e6e6f
+ pikapic_loadgfx GFX_e6fff
+ pikapic_object $5, $80, $0, $0
+ pikapic_object $1c, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe4ce: ; fe4ce (3f:64ce)
+ pikapic_setduration 70
+ pikapic_loadgfx GFX_e718f
+ pikapic_loadgfx GFX_e731f
+ pikapic_object $5, $80, $0, $0
+ pikapic_object $1d, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe4e8: ; fe4e8 (3f:64e8)
+ pikapic_setduration 60
+ pikapic_loadgfx GFX_e74af
+ pikapic_loadgfx GFX_e763f
+ pikapic_object $5, $80, $0, $0
+ pikapic_object $1e, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe502: ; fe502 (3f:6502)
+ pikapic_setduration 50
+ pikapic_loadgfx Pic_e77cf
+ pikapic_loadgfx GFX_e7863
+ pikapic_loadgfx GFX_e79f3
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $1f, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_writebyte 13
+ pikapic_waitbgmap
+ pikapic_thunderbolt
+ pikapic_ret
+
+Data_fe51f: ; fe51f (3f:651f)
+ pikapic_waitbgmap
+
+Data_fe520: ; fe520 (3f:6520)
+ pikapic_setduration 100
+ pikapic_loadgfx Pic_e5000
+ pikapic_loadgfx GFX_e50af
+ pikapic_loadgfx GFX_e7b83
+ pikapic_loadgfx GFX_e7d13
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $20, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe53e: ; fe53e (3f:653e)
+ pikapic_setduration 30
+ pikapic_loadgfx Pic_f0abf
+ pikapic_loadgfx GFX_f0b64
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $21, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+Data_fe558: ; fe558 (3f:6558)
+ pikapic_setduration 64
+ pikapic_loadgfx Pic_f0cf4
+ pikapic_loadgfx GFX_f0d82
+ pikapic_object $4, $80, $0, $0
+ pikapic_object $22, $99, $0, $0
+ pikapic_waitbgmap
+ pikapic_cry
+ pikapic_looptofinish
+
+PikaPicAnimGFXHeaders:
+pikapicanimgfx: MACRO
+\2_id::
+ db \1 ; size
+ dba \2 ; pointer
+ endm
+
+ dbbw 1, $39,$0000 ; 00
+ pikapicanimgfx -1, Pic_e4000 ; 01
+ pikapicanimgfx 5, GFX_e40cc ; 02
+ pikapicanimgfx -1, Pic_e411c ; 03
+ pikapicanimgfx 10, GFX_e41d2 ; 04
+ pikapicanimgfx -1, Pic_e4272 ; 05
+ pikapicanimgfx 6, GFX_e4323 ; 06
+ pikapicanimgfx -1, Pic_e4383 ; 07
+ pikapicanimgfx 20, GFX_e444b ; 08
+ pikapicanimgfx -1, Pic_e458b ; 09
+ pikapicanimgfx 4, GFX_e463b ; 0a
+ pikapicanimgfx -1, Pic_e467b ; 0b
+ pikapicanimgfx 4, GFX_e472e ; 0c
+ pikapicanimgfx -1, Pic_e476e ; 0d
+ pikapicanimgfx 25, GFX_e4841 ; 0e
+ pikapicanimgfx -1, Pic_e49d1 ; 0f
+ pikapicanimgfx 10, GFX_e4a99 ; 00
+ pikapicanimgfx -1, Pic_e4b39 ; 11
+ pikapicanimgfx 6, GFX_e4bde ; 12
+ pikapicanimgfx -1, Pic_e4c3e ; 13
+ pikapicanimgfx 25, GFX_e4ce0 ; 14
+ pikapicanimgfx 25, GFX_e4e70 ; 15
+ pikapicanimgfx -1, Pic_e5000 ; 16
+ pikapicanimgfx 25, GFX_e50af ; 17
+ pikapicanimgfx -1, Pic_e523f ; 18
+ pikapicanimgfx 25, GFX_e52fe ; 19
+ pikapicanimgfx -1, Pic_e548e ; 1a
+ pikapicanimgfx 25, GFX_e5541 ; 1b
+ pikapicanimgfx -1, Pic_e56d1 ; 1c
+ pikapicanimgfx 25, GFX_e5794 ; 1d
+ pikapicanimgfx -1, Pic_e5924 ; 1e
+ pikapicanimgfx 25, GFX_e59ed ; 1f
+ pikapicanimgfx -1, Pic_e5b7d ; 20
+ pikapicanimgfx 25, GFX_e5c4d ; 21
+ pikapicanimgfx -1, Pic_e5ddd ; 22
+ pikapicanimgfx 25, GFX_e5e90 ; 23
+ pikapicanimgfx 25, GFX_e6020 ; 24
+ pikapicanimgfx 25, GFX_e61b0 ; 25
+ pikapicanimgfx -1, Pic_e6340 ; 26
+ pikapicanimgfx 25, GFX_e63f7 ; 27
+ pikapicanimgfx -1, Pic_e6587 ; 28
+ pikapicanimgfx 25, GFX_e6646 ; 29
+ pikapicanimgfx -1, Pic_e67d6 ; 2a
+ pikapicanimgfx 25, GFX_e682f ; 2b
+ pikapicanimgfx 25, GFX_e69bf ; 2c
+ pikapicanimgfx 25, GFX_e6b4f ; 2d
+ pikapicanimgfx 25, GFX_e6cdf ; 2e
+ pikapicanimgfx 25, GFX_e6e6f ; 2f
+ pikapicanimgfx 25, GFX_e6fff ; 30
+ pikapicanimgfx 25, GFX_e718f ; 31
+ pikapicanimgfx 25, GFX_e731f ; 32
+ pikapicanimgfx 25, GFX_e74af ; 33
+ pikapicanimgfx 25, GFX_e763f ; 34
+ pikapicanimgfx -1, Pic_e77cf ; 35
+ pikapicanimgfx 25, GFX_e7863 ; 36
+ pikapicanimgfx 25, GFX_e79f3 ; 37
+ pikapicanimgfx 25, GFX_e7b83 ; 38
+ pikapicanimgfx 25, GFX_e7d13 ; 39
+ pikapicanimgfx -1, Pic_f0abf ; 3a
+ pikapicanimgfx 25, GFX_f0b64 ; 3b
+ pikapicanimgfx -1, Pic_f0cf4 ; 3c
+ pikapicanimgfx 25, GFX_f0d82 ; 3d
+ pikapicanimgfx 24, PikachuSprite ; 3e
diff --git a/engine/pikachu_emotions.asm b/engine/pikachu_emotions.asm
index b474770e..9040e612 100755
--- a/engine/pikachu_emotions.asm
+++ b/engine/pikachu_emotions.asm
@@ -342,272 +342,7 @@ IsPlayerPikachuAsleepInParty:: ; fd0d0 (3f:50d0)
and a
ret
-PikachuEmotion0_fd115: ; fd115 (3f:5115)
- db $ff
-
-PikachuEmotion2_fd116: ; fd116 (3f:5116)
- pikaemotion_dummy2
- pikaemotion_emotebubble SMILE_BUBBLE
- pikaemotion_pcm PikachuCry35
- pikaemotion_pikapic $2
- db $ff
-
-PikachuEmotion10_fd11e: ; fd11e (3f:511e)
- pikaemotion_dummy2
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
- pikaemotion_emotebubble HEART_BUBBLE
- pikaemotion_pcm PikachuCry5
- pikaemotion_pikapic $a
- db $ff
-
-PikachuEmotion7_fd128: ; fd128 (3f:5128)
- pikaemotion_dummy2
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
- pikaemotion_movement Pointer_fd224
- pikaemotion_pcm PikachuCry1
- pikaemotion_movement Pointer_fd224
- pikaemotion_pikapic $7
- db $ff
-
-PikachuEmotion4_fd136: ; fd136 (3f:5136)
- pikaemotion_dummy2
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
- pikaemotion_movement Pointer_fd230
- pikaemotion_pcm PikachuCry29
- pikaemotion_pikapic $4
- db $ff
-
-PikachuEmotion1_fd141: ; fd141 (3f:5141)
- pikaemotion_dummy2
- pikaemotion_pcm
- pikaemotion_pikapic $1
- db $ff
-
-PikachuEmotion8_fd147: ; fd147 (3f:5147)
- pikaemotion_dummy2
- pikaemotion_pcm PikachuCry39
- pikaemotion_pikapic $8
- db $ff
-
-PikachuEmotion5_fd14d: ; fd14d (3f:514d)
- pikaemotion_dummy2
- pikaemotion_pcm PikachuCry31
- pikaemotion_pikapic $5
- db $ff
-
-PikachuEmotion6_fd153: ; fd153 (3f:5153)
- pikaemotion_dummy2
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
- pikaemotion_pcm
- pikaemotion_movement Pointer_fd21e
- pikaemotion_emotebubble SKULL_BUBBLE
- pikaemotion_pikapic $6
- db $ff
-
-PikachuEmotion3_fd160: ; fd160 (3f:5160)
- pikaemotion_dummy2
- pikaemotion_pcm PikachuCry40
- pikaemotion_pikapic $3
- db $ff
-
-PikachuEmotion9_fd166: ; fd166 (3f:5166)
- pikaemotion_dummy2
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
- pikaemotion_pcm PikachuCry6
- pikaemotion_movement Pointer_fd218
- pikaemotion_emotebubble SKULL_BUBBLE
- pikaemotion_pikapic $9
- db $ff
-
-PikachuEmotion11_fd173: ; fd173 (3f:5173)
- pikaemotion_emotebubble ZZZ_BUBBLE
- pikaemotion_pcm PikachuCry37
- pikaemotion_pikapic $b
- db $ff
-
-PikachuEmotion12_fd17a: ; fd17a (3f:517a)
- pikaemotion_dummy2
- pikaemotion_pcm
- pikaemotion_pikapic $c
- db $ff
-
-PikachuEmotion13_fd180: ; fd180 (3f:5180)
- pikaemotion_dummy2
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES
- pikaemotion_movement Pointer_fd21e
- pikaemotion_pikapic $d
- db $ff
-
-PikachuEmotion14_fd189: ; fd189 (3f:5189)
- pikaemotion_dummy2
- pikaemotion_emotebubble BOLT_BUBBLE
- pikaemotion_pcm PikachuCry10
- pikaemotion_pikapic $e
- db $ff
-
-PikachuEmotion15_fd191: ; fd191 (3f:5191)
- pikaemotion_dummy2
- pikaemotion_pcm PikachuCry34
- pikaemotion_pikapic $f
- db $ff
-
-PikachuEmotion16_fd197: ; fd197 (3f:5197)
- pikaemotion_dummy2
- pikaemotion_pcm PikachuCry33
- pikaemotion_pikapic $10
- db $ff
-
-PikachuEmotion17_fd19d: ; fd19d (3f:519d)
- pikaemotion_dummy2
- pikaemotion_pcm PikachuCry13
- pikaemotion_pikapic $11
- db $ff
-
-PikachuEmotion18_fd1a3: ; fd1a3 (3f:51a3)
- pikaemotion_dummy2
- pikaemotion_pcm
- pikaemotion_pikapic $12
- db $ff
-
-PikachuEmotion19_fd1a9: ; fd1a9 (3f:51a9)
- pikaemotion_dummy2
- pikaemotion_emotebubble HEART_BUBBLE
- pikaemotion_pcm PikachuCry33
- pikaemotion_pikapic $13
- db $ff
-
-PikachuEmotion20_fd1b1: ; fd1b1 (3f:51b1)
- pikaemotion_dummy2
- pikaemotion_emotebubble HEART_BUBBLE
- pikaemotion_pcm PikachuCry5
- pikaemotion_pikapic $14
- db $ff
-
-PikachuEmotion21_fd1b9: ; fd1b9 (3f:51b9)
- pikaemotion_dummy2
- pikaemotion_emotebubble FISH_BUBBLE
- pikaemotion_pcm
- pikaemotion_pikapic $15
- db $ff
-
-PikachuEmotion22_fd1c1: ; fd1c1 (3f:51c1)
- pikaemotion_dummy2
- pikaemotion_pcm PikachuCry4
- pikaemotion_pikapic $16
- db $ff
-
-PikachuEmotion23_fd1c7: ; fd1c7 (3f:51c7)
- pikaemotion_dummy2
- pikaemotion_pcm PikachuCry19
- pikaemotion_pikapic $17
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW
- db $ff
-
-PikachuEmotion24_fd1cf: ; fd1cf (3f:51cf)
- pikaemotion_dummy2
- pikaemotion_emotebubble EXCLAMATION_BUBBLE
- pikaemotion_pcm
- pikaemotion_pikapic $18
- db $ff
-
-PikachuEmotion25_fd1d7: ; fd1d7 (3f:51d7)
- pikaemotion_dummy2
- pikaemotion_emotebubble BOLT_BUBBLE
- pikaemotion_pcm PikachuCry35
- pikaemotion_pikapic $19
- db $ff
-
-PikachuEmotion26_fd1df: ; fd1df (3f:51df)
- pikaemotion_dummy2
- pikaemotion_emotebubble ZZZ_BUBBLE
- pikaemotion_pcm PikachuCry37
- pikaemotion_pikapic $1a
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKPEWTERCENTER
- db $ff
-
-PikachuEmotion27_fd1eb: ; fd1eb (3f:51eb)
- pikaemotion_dummy2
- pikaemotion_pcm PikachuCry9
- pikaemotion_pikapic $1b
- db $ff
-
-PikachuEmotion28_fd1f1: ; fd1f1 (3f:51f1)
- pikaemotion_dummy2
- pikaemotion_pcm PikachuCry15
- pikaemotion_pikapic $1c
- db $ff
-
-PikachuEmotion29_fd1f7: ; fd1f7 (3f:51f7)
- pikaemotion_pcm PikachuCry5
- pikaemotion_pikapic $a
- db $ff
-
-PikachuEmotion30_fd1fc: ; fd1fc (3f:51fc)
- pikaemotion_9
- pikaemotion_emotebubble HEART_BUBBLE
- pikaemotion_pcm PikachuCry5
- pikaemotion_pikapic $14
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADFONT
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKLAVENDERTOWER
- db $ff
-
-PikachuEmotion31_fd20a: ; fd20a (3f:520a)
- pikaemotion_pcm PikachuCry19
- pikaemotion_pikapic $17
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW
- pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKBILLSHOUSE
- db $ff
-
-PikachuEmotion32_fd213: ; fd213 (3f:5213)
- pikaemotion_pcm PikachuCry26
- pikaemotion_pikapic $17
- db $ff
-
-Pointer_fd218: ; fd218 (3f:5218)
- db $00
- db $39, $01
- db $3e, $1e
- db $3f
-
-Pointer_fd21e: ; fd21e (3f:521e)
- db $00
- db $39, $00
- db $3e, $1e
- db $3f
-
-Pointer_fd224: ; fd224 (3f:5224)
- db $00
- db $3c, $07, $2f
- db $3c, $07, $2f
- db $3f
-
-Pointer_fd22c: ; fd22c (3f:522c)
- db $3b, $1f, $03
- db $3f
-
-Pointer_fd230: ; fd230 (3f:5230)
- db $00
- db $3c, $0f, $1f
- db $3c, $0f, $1f
- db $3f
-
-Pointer_fd238: ; fd238 (3f:5238)
- db $00
- db $05, $07
- db $39, $00
- db $05, $07
- db $06, $07
- db $39, $00
- db $06, $07
- db $08, $07
- db $39, $00
- db $08, $07
- db $07, $07
- db $39, $00
- db $07, $07
- db $3f
+INCLUDE "data/pikachu_emotions.asm"
Func_fd252: ; fd252 (3f:5252)
ld a, $40
diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm
index 226049f2..1ec102f1 100755
--- a/engine/pikachu_pic_animation.asm
+++ b/engine/pikachu_pic_animation.asm
@@ -62,26 +62,26 @@ StarterPikachuEmotionCommand_pikapic: ; fd9d0 (3f:59d0)
ret
Func_fd9e4:
- call Func_fda2c
+ call PlacePikapicTextBoxBorder
callab LoadOverworldPikachuFrontpicPalettes
- call Func_fd9ff
+ call ResetPikaPicAnimBuffer
call LoadCurrentPikaPicAnimScriptPointer
call Func_fda9a
- call Func_fda2c
+ call PlacePikapicTextBoxBorder
call RunDefaultPaletteCommand
ret
-Func_fd9ff:
- ld hl, wPikaPicAnimPointer
- ld bc, $11
+ResetPikaPicAnimBuffer:
+ ld hl, wCurPikaMovementData
+ ld bc, wCurPikaMovementDataEnd - wCurPikaMovementData
xor a
call FillMemory
ld hl, wPikaPicAnimObjectDataBufferSize
- ld bc, $21
+ ld bc, wPikaPicAnimObjectDataBufferEnd - wPikaPicAnimObjectDataBufferSize
xor a
call FillMemory
- call Func_fe15c
- ld hl, $64
+ call ClearPikaPicUsedGFXBuffer
+ ld hl, 100
ld a, l
ld [wPikaPicAnimTimer], a
ld a, h
@@ -92,7 +92,7 @@ Func_fd9ff:
ld [wPikaPicTextboxStartY], a
ret
-Func_fda2c:
+PlacePikapicTextBoxBorder:
xor a
ld [H_AUTOBGTRANSFERENABLED], a
coord hl, 6, 5
@@ -1121,9 +1121,9 @@ DecompressRequestPikaPicAnimGFX: ; fe128
.failed
ret
-Func_fe15c:
- ld hl, wNPCMovementDirections
- ld bc, $11
+ClearPikaPicUsedGFXBuffer:
+ ld hl, wPikaPicUsedGFXCount
+ ld bc, wPikaPicUsedGFXEnd - wPikaPicUsedGFXCount
xor a
call FillMemory
ret
@@ -1146,7 +1146,7 @@ GetPikaPicVRAMAddressForNewGFX:
CheckIfThereIsRoomForPikaPicAnimGFX:
push bc
push hl
- ld hl, wNPCMovementDirections + 1
+ ld hl, wPikaPicUsedGFX
ld c, 8
.loop
ld a, [hl]
@@ -1169,12 +1169,12 @@ CheckIfThereIsRoomForPikaPicAnimGFX:
.empty
ld [hl], d
inc hl
- ld a, [wNPCMovementDirections]
+ ld a, [wPikaPicUsedGFXCount]
add $80
ld [hl], a
- ld a, [wNPCMovementDirections]
+ ld a, [wPikaPicUsedGFXCount]
add e
- ld [wNPCMovementDirections], a
+ ld [wPikaPicUsedGFXCount], a
cp $80
jr z, .asm_fe1a7
jr nc, .failed
@@ -1194,7 +1194,7 @@ LookUpTileOffsetForCurrentPikaPicAnimGFX:
push bc
push hl
ld b, a
- ld hl, wNPCMovementDirections + 1
+ ld hl, wPikaPicUsedGFX
ld c, 8
.loop
ld a, [hli]
@@ -1284,455 +1284,4 @@ GetDMGBGPalForPikaThunderbolt:
call DelayFrames
ret
-Data_fe242:
- db 4, %11000000
- db 4, %11100100
- db 4, %11000000
- db 4, %11100100
- db 4, %11000000
- db 4, %11100100
- db 4, %11000000
- db 4, %11100100
- db 4, %11000000
- db 4, %11100100
- db 4, %11000000
- db 4, %11100100
- db 4, %11000000
- db 4, %11100100
- db 4, %11000000
- db 4, %11100100
- db 4, %11000000
- db 4, %11100100
- db 4, %11000000
- db 4, %11100100
- db $ff
-
-Data_fe26b: ; fe26b (3f:626b)
- pikapic_loadgfx Pic_e4000
- pikapic_loadgfx Pic_e49d1
- pikapic_loadgfx PikachuSprite
- pikapic_object $1, $80, $0, $0
- pikapic_object $2, $b2, $5, $5
- pikapic_object $3, $b6, $5, $5
- pikapic_waitbgmap
- pikapic_cry
-Data_fe286: ; fe286 (3f:6286)
- pikapic_waitbgmap
- pikapic_jump Data_fe286
-
-Data_fe28a: ; fe28a (3f:628a)
- pikapic_setduration 40
- pikapic_loadgfx Pic_e4000
- pikapic_loadgfx GFX_e40cc
- pikapic_object $4, $80, $0, $0
- pikapic_object $6, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry PikachuCry3
-Data_fe2a0: ; fe2a0 (3f:62a0)
- pikapic_waitbgmap
- pikapic_jump Data_fe2a0
-
-Data_fe2a4: ; fe2a4 (3f:62a4)
- pikapic_setduration 44
- pikapic_loadgfx Pic_e411c
- pikapic_loadgfx GFX_e41d2
- pikapic_object $4, $80, $0, $0
- pikapic_object $7, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe2ba: ; fe2ba (3f:62ba)
- pikapic_waitbgmap
- pikapic_jump Data_fe2ba
-
-Data_fe2be: ; fe2be (3f:62be)
- pikapic_setduration 80
- pikapic_loadgfx Pic_e4272
- pikapic_loadgfx GFX_e4323
- pikapic_object $4, $80, $0, $0
- pikapic_object $8, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe2d4: ; fe2d4 (3f:62d4)
- pikapic_waitbgmap
- pikapic_jump Data_fe2d4
-
-Data_fe2d8: ; fe2d8 (3f:62d8)
- pikapic_setduration 70
- pikapic_loadgfx Pic_e4383
- pikapic_loadgfx GFX_e444b
- pikapic_object $4, $80, $0, $0
- pikapic_object $9, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe2ee: ; fe2ee (3f:62ee)
- pikapic_waitbgmap
- pikapic_jump Data_fe2ee
-
-Data_fe2f2: ; fe2f2 (3f:62f2)
- pikapic_setduration 32
- pikapic_loadgfx Pic_e458b
- pikapic_loadgfx GFX_e463b
- pikapic_object $4, $80, $0, $0
- pikapic_object $a, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe308: ; fe308 (3f:6308)
- pikapic_waitbgmap
- pikapic_jump Data_fe308
-
-Data_fe30c: ; fe30c (3f:630c)
- pikapic_setduration 50
- pikapic_loadgfx Pic_e467b
- pikapic_loadgfx GFX_e472e
- pikapic_object $4, $80, $0, $0
- pikapic_object $b, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry PikachuCry38
-Data_fe322: ; fe322 (3f:6322)
- pikapic_waitbgmap
- pikapic_jump Data_fe322
-
-Data_fe326: ; fe326 (3f:6326)
- pikapic_setduration 58
- pikapic_loadgfx Pic_e476e
- pikapic_loadgfx GFX_e4841
- pikapic_object $4, $80, $0, $0
- pikapic_object $c, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe33c: ; fe33c (3f:633c)
- pikapic_waitbgmap
- pikapic_jump Data_fe33c
-
-Data_fe340: ; fe340 (3f:6340)
- pikapic_setduration 44
- pikapic_loadgfx Pic_e49d1
- pikapic_loadgfx GFX_e4a99
- pikapic_object $4, $80, $0, $0
- pikapic_object $d, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe356: ; fe356 (3f:6356)
- pikapic_waitbgmap
- pikapic_jump Data_fe356
-
-Data_fe35a: ; fe35a (3f:635a)
- pikapic_setduration 56
- pikapic_loadgfx Pic_e4b39
- pikapic_loadgfx GFX_e4bde
- pikapic_object $4, $80, $0, $0
- pikapic_object $e, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe370: ; fe370 (3f:6370)
- pikapic_waitbgmap
- pikapic_jump Data_fe370
-
-Data_fe374: ; fe374 (3f:6374)
- pikapic_setduration 56
- pikapic_loadgfx Pic_e4c3e
- pikapic_loadgfx GFX_e4ce0
- pikapic_loadgfx GFX_e4e70
- pikapic_object $4, $80, $0, $0
- pikapic_object $10, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe38c: ; fe38c (3f:638c)
- pikapic_waitbgmap
- pikapic_jump Data_fe38c
-
-Data_fe390: ; fe390 (3f:6390)
- pikapic_setduration 100
- pikapic_loadgfx Pic_e5000
- pikapic_loadgfx GFX_e50af
- pikapic_object $4, $80, $0, $0
- pikapic_object $11, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe3a6: ; fe3a6 (3f:63a6)
- pikapic_waitbgmap
- pikapic_jump Data_fe3a6
-
-Data_fe3aa: ; fe3aa (3f:63aa)
- pikapic_setduration 50
- pikapic_loadgfx Pic_e523f
- pikapic_loadgfx GFX_e52fe
- pikapic_object $4, $80, $0, $0
- pikapic_object $12, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry PikachuCry25
-Data_fe3c0: ; fe3c0 (3f:63c0)
- pikapic_waitbgmap
- pikapic_jump Data_fe3c0
-
-Data_fe3c4: ; fe3c4 (3f:63c4)
- pikapic_setduration 50
- pikapic_loadgfx Pic_e548e
- pikapic_loadgfx GFX_e5541
- pikapic_object $4, $80, $0, $0
- pikapic_object $13, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe3da: ; fe3da (3f:63da)
- pikapic_waitbgmap
- pikapic_jump Data_fe3da
-
-Data_fe3de: ; fe3de (3f:63de)
- pikapic_setduration 40
- pikapic_loadgfx Pic_e56d1
- pikapic_loadgfx GFX_e5794
- pikapic_object $4, $80, $0, $0
- pikapic_object $14, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe3f4: ; fe3f4 (3f:63f4)
- pikapic_waitbgmap
- pikapic_jump Data_fe3f4
-
-Data_fe3f8: ; fe3f8 (3f:63f8)
- pikapic_setduration 50
- pikapic_loadgfx Pic_e5924
- pikapic_loadgfx GFX_e59ed
- pikapic_object $4, $80, $0, $0
- pikapic_object $15, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe40e: ; fe40e (3f:640e)
- pikapic_waitbgmap
- pikapic_jump Data_fe40e
-
-Data_fe412: ; fe412 (3f:6412)
- pikapic_setduration 32
- pikapic_loadgfx Pic_e5b7d
- pikapic_loadgfx GFX_e5c4d
- pikapic_object $4, $80, $0, $0
- pikapic_object $16, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe428: ; fe428 (3f:6428)
- pikapic_waitbgmap
- pikapic_jump Data_fe428
-
-Data_fe42c: ; fe42c (3f:642c)
- pikapic_setduration 100
- pikapic_loadgfx Pic_e5ddd
- pikapic_loadgfx GFX_e5e90
- pikapic_object $4, $80, $0, $0
- pikapic_object $17, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe442: ; fe442 (3f:6442)
- pikapic_waitbgmap
- pikapic_jump Data_fe442
-
-Data_fe446: ; fe446 (3f:6446)
- pikapic_setduration 32
- pikapic_loadgfx GFX_e6020
- pikapic_loadgfx GFX_e61b0
- pikapic_object $5, $80, $0, $0
- pikapic_object $18, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry PikachuCry18
-Data_fe45c: ; fe45c (3f:645c)
- pikapic_waitbgmap
- pikapic_jump Data_fe45c
-
-Data_fe460: ; fe460 (3f:6460)
- pikapic_setduration 44
- pikapic_loadgfx Pic_e6340
- pikapic_loadgfx GFX_e63f7
- pikapic_object $4, $80, $0, $0
- pikapic_object $19, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe476: ; fe476 (3f:6476)
- pikapic_waitbgmap
- pikapic_jump Data_fe476
-
-Data_fe47a: ; fe47a (3f:647a)
- pikapic_setduration 50
- pikapic_loadgfx Pic_e6587
- pikapic_loadgfx GFX_e6646
- pikapic_object $4, $80, $0, $0
- pikapic_object $1a, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe490: ; fe490 (3f:6490)
- pikapic_waitbgmap
- pikapic_jump Data_fe490
-
-Data_fe494: ; fe494 (3f:6494)
- pikapic_setduration 40
- pikapic_loadgfx Pic_e67d6
- pikapic_loadgfx GFX_e682f
- pikapic_loadgfx GFX_e69bf
- pikapic_loadgfx GFX_e6b4f
- pikapic_loadgfx GFX_e6cdf
- pikapic_object $4, $80, $0, $0
- pikapic_object $1b, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry PikachuCry20
-Data_fe4b0: ; fe4b0 (3f:64b0)
- pikapic_waitbgmap
- pikapic_jump Data_fe4b0
-
-Data_fe4b4: ; fe4b4 (3f:64b4)
- pikapic_setduration 40
- pikapic_loadgfx GFX_e6e6f
- pikapic_loadgfx GFX_e6fff
- pikapic_object $5, $80, $0, $0
- pikapic_object $1c, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe4ca: ; fe4ca (3f:64ca)
- pikapic_waitbgmap
- pikapic_jump Data_fe4ca
-
-Data_fe4ce: ; fe4ce (3f:64ce)
- pikapic_setduration 70
- pikapic_loadgfx GFX_e718f
- pikapic_loadgfx GFX_e731f
- pikapic_object $5, $80, $0, $0
- pikapic_object $1d, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe4e4: ; fe4e4 (3f:64e4)
- pikapic_waitbgmap
- pikapic_jump Data_fe4e4
-
-Data_fe4e8: ; fe4e8 (3f:64e8)
- pikapic_setduration 60
- pikapic_loadgfx GFX_e74af
- pikapic_loadgfx GFX_e763f
- pikapic_object $5, $80, $0, $0
- pikapic_object $1e, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe4fe: ; fe4fe (3f:64fe)
- pikapic_waitbgmap
- pikapic_jump Data_fe4fe
-
-Data_fe502: ; fe502 (3f:6502)
- pikapic_setduration 50
- pikapic_loadgfx Pic_e77cf
- pikapic_loadgfx GFX_e7863
- pikapic_loadgfx GFX_e79f3
- pikapic_object $4, $80, $0, $0
- pikapic_object $1f, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
- pikapic_writebyte 13
- pikapic_waitbgmap
- pikapic_thunderbolt
- pikapic_ret
-
-Data_fe51f: ; fe51f (3f:651f)
- pikapic_waitbgmap
-Data_fe520: ; fe520 (3f:6520)
- pikapic_setduration 100
- pikapic_loadgfx Pic_e5000
- pikapic_loadgfx GFX_e50af
- pikapic_loadgfx GFX_e7b83
- pikapic_loadgfx GFX_e7d13
- pikapic_object $4, $80, $0, $0
- pikapic_object $20, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe53a: ; fe53a (3f:653a)
- pikapic_waitbgmap
- pikapic_jump Data_fe53a
-
-Data_fe53e: ; fe53e (3f:653e)
- pikapic_setduration 30
- pikapic_loadgfx Pic_f0abf
- pikapic_loadgfx GFX_f0b64
- pikapic_object $4, $80, $0, $0
- pikapic_object $21, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe554: ; fe554 (3f:6554)
- pikapic_waitbgmap
- pikapic_jump Data_fe554
-
-Data_fe558: ; fe558 (3f:6558)
- pikapic_setduration 64
- pikapic_loadgfx Pic_f0cf4
- pikapic_loadgfx GFX_f0d82
- pikapic_object $4, $80, $0, $0
- pikapic_object $22, $99, $0, $0
- pikapic_waitbgmap
- pikapic_cry
-Data_fe56e: ; fe56e (3f:656e)
- pikapic_waitbgmap
- pikapic_jump Data_fe56e
-
-PikaPicAnimGFXHeaders:
-pikapicanimgfx: MACRO
-\2_id::
- db \1
- dba \2
- endm
-
- dbbw $01, $39, $0000
- pikapicanimgfx -1, Pic_e4000 ; 01
- pikapicanimgfx 5, GFX_e40cc ; 02
- pikapicanimgfx -1, Pic_e411c ; 03
- pikapicanimgfx 10, GFX_e41d2 ; 04
- pikapicanimgfx -1, Pic_e4272 ; 05
- pikapicanimgfx 6, GFX_e4323 ; 06
- pikapicanimgfx -1, Pic_e4383 ; 07
- pikapicanimgfx 20, GFX_e444b ; 08
- pikapicanimgfx -1, Pic_e458b ; 09
- pikapicanimgfx 4, GFX_e463b ; 0a
- pikapicanimgfx -1, Pic_e467b ; 0b
- pikapicanimgfx 4, GFX_e472e ; 0c
- pikapicanimgfx -1, Pic_e476e ; 0d
- pikapicanimgfx 25, GFX_e4841 ; 0e
- pikapicanimgfx -1, Pic_e49d1 ; 0f
- pikapicanimgfx 10, GFX_e4a99 ; 00
- pikapicanimgfx -1, Pic_e4b39 ; 11
- pikapicanimgfx 6, GFX_e4bde ; 12
- pikapicanimgfx -1, Pic_e4c3e ; 13
- pikapicanimgfx 25, GFX_e4ce0 ; 14
- pikapicanimgfx 25, GFX_e4e70 ; 15
- pikapicanimgfx -1, Pic_e5000 ; 16
- pikapicanimgfx 25, GFX_e50af ; 17
- pikapicanimgfx -1, Pic_e523f ; 18
- pikapicanimgfx 25, GFX_e52fe ; 19
- pikapicanimgfx -1, Pic_e548e ; 1a
- pikapicanimgfx 25, GFX_e5541 ; 1b
- pikapicanimgfx -1, Pic_e56d1 ; 1c
- pikapicanimgfx 25, GFX_e5794 ; 1d
- pikapicanimgfx -1, Pic_e5924 ; 1e
- pikapicanimgfx 25, GFX_e59ed ; 1f
- pikapicanimgfx -1, Pic_e5b7d ; 20
- pikapicanimgfx 25, GFX_e5c4d ; 21
- pikapicanimgfx -1, Pic_e5ddd ; 22
- pikapicanimgfx 25, GFX_e5e90 ; 23
- pikapicanimgfx 25, GFX_e6020 ; 24
- pikapicanimgfx 25, GFX_e61b0 ; 25
- pikapicanimgfx -1, Pic_e6340 ; 26
- pikapicanimgfx 25, GFX_e63f7 ; 27
- pikapicanimgfx -1, Pic_e6587 ; 28
- pikapicanimgfx 25, GFX_e6646 ; 29
- pikapicanimgfx -1, Pic_e67d6 ; 2a
- pikapicanimgfx 25, GFX_e682f ; 2b
- pikapicanimgfx 25, GFX_e69bf ; 2c
- pikapicanimgfx 25, GFX_e6b4f ; 2d
- pikapicanimgfx 25, GFX_e6cdf ; 2e
- pikapicanimgfx 25, GFX_e6e6f ; 2f
- pikapicanimgfx 25, GFX_e6fff ; 30
- pikapicanimgfx 25, GFX_e718f ; 31
- pikapicanimgfx 25, GFX_e731f ; 32
- pikapicanimgfx 25, GFX_e74af ; 33
- pikapicanimgfx 25, GFX_e763f ; 34
- pikapicanimgfx -1, Pic_e77cf ; 35
- pikapicanimgfx 25, GFX_e7863 ; 36
- pikapicanimgfx 25, GFX_e79f3 ; 37
- pikapicanimgfx 25, GFX_e7b83 ; 38
- pikapicanimgfx 25, GFX_e7d13 ; 39
- pikapicanimgfx -1, Pic_f0abf ; 3a
- pikapicanimgfx 25, GFX_f0b64 ; 3b
- pikapicanimgfx -1, Pic_f0cf4 ; 3c
- pikapicanimgfx 25, GFX_f0d82 ; 3d
- pikapicanimgfx 24, PikachuSprite ; 3e
+INCLUDE "data/pikachu_pic_animation.asm"
diff --git a/macros.asm b/macros.asm
index b0c38140..3d51f030 100644
--- a/macros.asm
+++ b/macros.asm
@@ -942,3 +942,9 @@ pikapic_waitbgmap: macro ; d
pikapic_ret: macro ; e
db pikapic_ret_command
endm
+
+pikapic_looptofinish: macro
+.loop\@
+ pikapic_waitbgmap
+ pikapic_jump .loop\@
+ endm
diff --git a/wram.asm b/wram.asm
index 6dd0cdba..3136ffd8 100755
--- a/wram.asm
+++ b/wram.asm
@@ -790,8 +790,11 @@ wAnimationType:: ; cc5b
; values between 0-6. Shake screen horizontally, shake screen vertically, blink Pokemon...
wNPCMovementDirections:: ; cc5b
+
+wPikaPicUsedGFXCount:: ; cc5b
ds 1
+wPikaPicUsedGFX:: ; cc5c
wDexRatingNumMonsOwned:: ; cc5c
ds 1
@@ -804,7 +807,9 @@ wSlotMachineSavedROMBank:: ; cc5e
; ROM back to return to when the player is done with the slot machine
ds 1
- ds 26
+ ds 13
+wPikaPicUsedGFXEnd:: ; cc6c
+ ds 13
wAnimPalette:: ; cc79
ds 1
@@ -833,7 +838,9 @@ wPikaPicAnimObjectDataBuffer:: ; cc98
wNumStepsToTake:: ; cca1
; used in Pallet Town scripted movement
- ds 49
+ ds 23
+wPikaPicAnimObjectDataBufferEnd:: ;ccb8
+ ds 26
wRLEByteCount:: ; ccd2
ds 1
@@ -2834,7 +2841,9 @@ wd458:: ds 1 ; d458
wCurPikaPicAnimObject:: ; d459
wCurPikaPicAnimObjectIndex:: ds 1
wCurPikaPicAnimObjectGraphicID:: dw
- ds 19
+ ds 2
+wCurPikaMovementDataEnd::
+ ds 17
wPikachuHappiness:: ds 1 ; d46f
wPikachuMood:: ds 1 ; d470