diff options
-rwxr-xr-x | data/pikachu_pic_animation.asm | 64 | ||||
-rwxr-xr-x | data/pikachu_pic_objects.asm | 293 | ||||
-rwxr-xr-x | data/pikachu_pic_tilemaps.asm | 228 | ||||
-rwxr-xr-x | data/tileset_headers.asm | 1 | ||||
-rw-r--r-- | engine/bank3c.asm | 30 | ||||
-rwxr-xr-x | engine/gamefreak.asm | 2 | ||||
-rwxr-xr-x | engine/overworld/pokecenter.asm | 4 | ||||
-rwxr-xr-x | engine/pikachu_follow.asm | 156 | ||||
-rwxr-xr-x | engine/pikachu_pic_animation.asm | 746 | ||||
-rw-r--r-- | home/init.asm | 4 | ||||
-rw-r--r-- | home/overworld.asm | 8 | ||||
-rwxr-xr-x | home/pikachu.asm | 4 | ||||
-rw-r--r-- | macros.asm | 12 | ||||
-rwxr-xr-x | scripts/daycarem.asm | 4 | ||||
-rwxr-xr-x | scripts/oakslab.asm | 6 | ||||
-rwxr-xr-x | scripts/vermiliongym.asm | 41 | ||||
-rwxr-xr-x | wram.asm | 2 |
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] @@ -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) @@ -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 |