diff options
-rw-r--r-- | engine/bank3f.asm | 5 | ||||
-rwxr-xr-x | engine/pikachu_pic_animation.asm | 145 | ||||
-rw-r--r-- | macros.asm | 67 |
3 files changed, 150 insertions, 67 deletions
diff --git a/engine/bank3f.asm b/engine/bank3f.asm index fda65680..f6a9371e 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -1917,6 +1917,9 @@ Func_fd001:: ; fd001 (3f:5001) INCLUDE "engine/pikachu_pic_animation.asm" +Func_fe66e: + ret + OfficerJennySprite: INCBIN "gfx/sprites/officer_jenny.2bpp" PikachuSprite: INCBIN "gfx/sprites/pikachu.2bpp" SandshrewSprite: INCBIN "gfx/sprites/sandshrew.2bpp" @@ -1927,4 +1930,4 @@ Clefairy2Sprite: INCBIN "gfx/sprites/clefairy2.2bpp" ChanseySprite: INCBIN "gfx/sprites/chansey.2bpp" SurfingPikachuSprite: INCBIN "gfx/sprites/surfing_pikachu.2bpp" JessieSprite: INCBIN "gfx/sprites/jessie.2bpp" -JamesSprite: INCBIN "gfx/sprites/james.2bpp"
\ No newline at end of file +JamesSprite: INCBIN "gfx/sprites/james.2bpp" diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm index 81a94cbd..3419b8bf 100755 --- a/engine/pikachu_pic_animation.asm +++ b/engine/pikachu_pic_animation.asm @@ -1775,21 +1775,21 @@ Func_fdad6: jr nz, .asm_fdadb ret -Func_fdb32: +PikaPicAnimCommand_object: ld hl, wNPCMovementDirections2 + 1 ld de, 8 ld c, 4 -.asm_fdb3a +.loop ld a, [hl] and a - jr z, .asm_fdb44 + jr z, .found add hl, de dec c - jr nz, .asm_fdb3a + jr nz, .loop scf ret -.asm_fdb44 +.found ld a, [wNPCMovementDirections2] inc a ld [wNPCMovementDirections2], a @@ -1810,7 +1810,7 @@ Func_fdb32: and a ret -Func_fdb65: +PikaPicAnimCommand_deleteobject: call GetPikaPicAnimByte ld b, a ld hl, wNPCMovementDirections2 + 1 @@ -2436,11 +2436,11 @@ Data_fe016: ; fe016 db $73, $74, $75, $76, $77 db $78, $79, $7a, $7b, $7c -Func_fe031: +LoadPikaPicAnimGFXHeader: push hl ld e, a ld d, 0 - ld hl, Data_fe572 + ld hl, PikaPicAnimGFXHeaders add hl, de add hl, de add hl, de @@ -2489,29 +2489,29 @@ Func_fe066: Jumptable_fe071: dw PikaPicAnimCommand_nop ; 00, 0 params dw PikaPicAnimCommand_writebyte ; 01, 1 param - dw Func_fe0db ; 02, 1 param - dw Func_fdb32 ; 03, 5 params - dw Func_fe0b6 ; 04, 0 params - dw Func_fe0b6 ; 05, 0 params - dw Func_fdb65 ; 06, 1 param - dw Func_fe0b6 ; 07, 0 params - dw Func_fe0b6 ; 08, 0 params + dw PikaPicAnimCommand_loadgfx ; 02, 1 param + dw PikaPicAnimCommand_object ; 03, 5 params + dw PikaPicAnimCommand_nop4 ; 04, 0 params + dw PikaPicAnimCommand_nop5 ; 05, 0 params + dw PikaPicAnimCommand_deleteobject ; 06, 1 param + dw PikaPicAnimCommand_nop7 ; 07, 0 params + dw PikaPicAnimCommand_nop8 ; 08, 0 params dw PikaPicAnimCommand_jump ; 09, 1 dw param dw PikaPicAnimCommand_setdelay ; 0a, 1 dw param dw PikaPicAnimCommand_cry ; 0b, 1 param dw PikaPicAnimCommand_thunderbolt ; 0c, 0 params - dw Func_fe0a9 ; 0d, 0 params (ret) - dw Func_fe090 ; 0e, 0 params (ret) + dw PikaPicAnimCommand_waitbgmap ; 0d, 0 params (ret) + dw PikaPicAnimCommand_ret ; 0e, 0 params (ret) PikaPicAnimCommand_nop: ret -Func_fe090: +PikaPicAnimCommand_ret: ld a, 1 ld [wPikaPicAnimTimer], a xor a ld [wPikaPicAnimTimer + 1], a - jr Func_fe0a9 + jr PikaPicAnimCommand_waitbgmap Func_fe09b: ret @@ -2523,7 +2523,7 @@ PikaPicAnimCommand_setdelay: ld [wPikaPicAnimTimer + 1], a ret -Func_fe0a9: +PikaPicAnimCommand_waitbgmap: ld a, $ff ld [$d44f], a ret @@ -2533,7 +2533,10 @@ PikaPicAnimCommand_writebyte: ld [wPikaSpriteX], a ret -Func_fe0b6: +PikaPicAnimCommand_nop4: +PikaPicAnimCommand_nop5: +PikaPicAnimCommand_nop7: +PikaPicAnimCommand_nop8: ret PikaPicAnimCommand_jump: @@ -2564,7 +2567,7 @@ UpdatePikaPicAnimPointer: pop af ret -Func_fe0db: +PikaPicAnimCommand_loadgfx: ld a, [wUpdateSpritesEnabled] push af ld a, $ff @@ -2580,7 +2583,7 @@ Func_fe0db: call GetPikaPicAnimByte ld [$d450], a ld a, [$d450] - call Func_fe031 + call LoadPikaPicAnimGFXHeader ld a, c cp a, $ff jr z, .asm_fe106 @@ -2825,20 +2828,30 @@ Data_fe242: db $ff Data_fe26b: - pikapic_2 $1 - pikapic_2 $f - pikapic_2 $3e - pikapic_3 $1, $80, $0 - pikapic_3 $2, $5b2, $5 - pikapic_3 $3, $5b6, $5 - pikapic_d - pikapic_cry $ff + pikapic_loadgfx $1 + pikapic_loadgfx $f + pikapic_loadgfx $3e + pikapic_object $1, $80, $0, $0 + pikapic_object $2, $b2, $5, $5 + pikapic_object $3, $b6, $5, $5 + pikapic_waitbgmap + pikapic_cry Data_fe286: - pikapic_d + pikapic_waitbgmap pikapic_jump Data_fe286 Data_fe28a: - dr $fe28a, $fe2a4 + pikapic_setdelay $28 + pikapic_loadgfx $1 + pikapic_loadgfx $2 + pikapic_object $4, $80, $0, $0 + pikapic_object $6, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry PikachuCry3 +Data_fe2a0: + pikapic_waitbgmap + pikapic_jump Data_fe2a0 + Data_fe2a4: dr $fe2a4, $fe2be Data_fe2be: @@ -2894,5 +2907,67 @@ Data_fe53e: Data_fe558: dr $fe558, $fe572 -Data_fe572: - dr $fe572, $fe66f +PikaPicAnimGFXHeaders: + dbbw $01, $39, $0000 + dbbw $ff, $39, $4000 + dbbw $05, $39, $40cc + dbbw $ff, $39, $411c + dbbw $0a, $39, $41d2 + dbbw $ff, $39, $4272 + dbbw $06, $39, $4323 + dbbw $ff, $39, $4383 + dbbw $14, $39, $444b + dbbw $ff, $39, $458b + dbbw $04, $39, $463b + dbbw $ff, $39, $467b + dbbw $04, $39, $472e + dbbw $ff, $39, $476e + dbbw $19, $39, $4841 + dbbw $ff, $39, $49d1 + dbbw $0a, $39, $4a99 + dbbw $ff, $39, $4b39 + dbbw $06, $39, $4bde + dbbw $ff, $39, $4c3e + dbbw $19, $39, $4ce0 + dbbw $19, $39, $4e70 + dbbw $ff, $39, $5000 + dbbw $19, $39, $50af + dbbw $ff, $39, $523f + dbbw $19, $39, $52fe + dbbw $ff, $39, $548e + dbbw $19, $39, $5541 + dbbw $ff, $39, $56d1 + dbbw $19, $39, $5794 + dbbw $ff, $39, $5924 + dbbw $19, $39, $59ed + dbbw $ff, $39, $5b7d + dbbw $19, $39, $5c4d + dbbw $ff, $39, $5ddd + dbbw $19, $39, $5e90 + dbbw $19, $39, $6020 + dbbw $19, $39, $61b0 + dbbw $ff, $39, $6340 + dbbw $19, $39, $63f7 + dbbw $ff, $39, $6587 + dbbw $19, $39, $6646 + dbbw $ff, $39, $67d6 + dbbw $19, $39, $682f + dbbw $19, $39, $69bf + dbbw $19, $39, $6b4f + dbbw $19, $39, $6cdf + dbbw $19, $39, $6e6f + dbbw $19, $39, $6fff + dbbw $19, $39, $718f + dbbw $19, $39, $731f + dbbw $19, $39, $74af + dbbw $19, $39, $763f + dbbw $ff, $39, $77cf + dbbw $19, $39, $7863 + dbbw $19, $39, $79f3 + dbbw $19, $39, $7b83 + dbbw $19, $39, $7d13 + dbbw $ff, $3c, $4abf + dbbw $19, $3c, $4b64 + dbbw $ff, $3c, $4cf4 + dbbw $19, $3c, $4d82 + dbbw $18, BANK(PikachuSprite), PikachuSprite @@ -266,6 +266,11 @@ dba: MACRO dbw BANK(\1), \1 ENDM +dbbw: MACRO + db \1, \2 + dw \3 + ENDM + ; data format macros RGB: MACRO dw (\3 << 10 | \2 << 5 | \1) @@ -816,41 +821,41 @@ pikapic_writebyte: macro db pikapic_writebyte_command, \1 endm - enum pikapic_2_command -pikapic_2: macro - db pikapic_2_command, \1 + enum pikapic_loadgfx_command +pikapic_loadgfx: macro + db pikapic_loadgfx_command, \1 ; _id - PikaPicAnimGFXHeaders) / 4 endm - enum pikapic_3_command -pikapic_3: macro - db pikapic_3_command - dw \1, \2 - db \3 + enum pikapic_object_command +pikapic_object: macro + db pikapic_object_command + dw \1 + db \2, \3, \4 endm - enum pikapic_4_command -pikapic_4: macro - db pikapic_4_command + enum pikapic_nop4_command +pikapic_nop4: macro + db pikapic_nop4_command endm - enum pikapic_5_command -pikapic_5: macro - db pikapic_5_command + enum pikapic_nop5_command +pikapic_nop5: macro + db pikapic_nop5_command endm - enum pikapic_6_command -pikapic_6: macro - db pikapic_6_command, \1 + enum pikapic_waitbgmapeleteobject_command +pikapic_waitbgmapeleteobject: macro + db pikapic_waitbgmapeleteobject_command, \1 endm - enum pikapic_7_command -pikapic_7: macro - db pikapic_7_command + enum pikapic_nop7_command +pikapic_nop7: macro + db pikapic_nop7_command endm - enum pikapic_8_command -pikapic_8: macro - db pikapic_8_command + enum pikapic_nop8_command +pikapic_nop8: macro + db pikapic_nop8_command endm enum pikapic_jump_command @@ -866,8 +871,8 @@ pikapic_setdelay: macro ; a enum pikapic_cry_command pikapic_cry: macro ; b db pikapic_cry_command -if \1 == $ff - db \1 +IF _NARG == 0 + db $ff else dpikacry \1 endc @@ -878,12 +883,12 @@ pikapic_thunderbolt: macro ; c db pikapic_thunderbolt_command endm - enum pikapic_d_command -pikapic_d: macro ; d - db pikapic_d_command + enum pikapic_waitbgmap_command +pikapic_waitbgmap: macro ; d + db pikapic_waitbgmap_command endm - enum pikapic_e_command -pikapic_e: macro ; e - db pikapic_e_command + enum pikapic_ret_command +pikapic_ret: macro ; e + db pikapic_ret_command endm |