diff options
author | Astatin <[email protected]> | 2024-12-03 17:56:58 +0900 |
---|---|---|
committer | Astatin <[email protected]> | 2024-12-03 17:56:58 +0900 |
commit | a0cc9155572b22ac1afd4636593f72a18372187b (patch) | |
tree | 22862e0f77a561682e4173d953bfa42580e56b04 /animation.gbasm | |
parent | 20422f9a4a180f2c148d93e68930f57379311ca7 (diff) |
Add sparkles animation and shadow palette flag
Diffstat (limited to 'animation.gbasm')
-rw-r--r-- | animation.gbasm | 91 |
1 files changed, 89 insertions, 2 deletions
diff --git a/animation.gbasm b/animation.gbasm index eed1923..0796167 100644 --- a/animation.gbasm +++ b/animation.gbasm @@ -19,6 +19,58 @@ Display_Animation: RET +Try_Launch_Animation: ; XY in BC, jump_table index in A + PUSH HL + PUSH AF + + LD HL, $mem_animation_list + XOR A + CP (HL) + JP Z, =Try_Launch_Animation.Free_slot_Found + + LD A, $04 + ADD L + LD L, A + + XOR A + CP (HL) + JP Z, =Try_Launch_Animation.Free_slot_Found + + LD A, $04 + ADD L + LD L, A + + XOR A + CP (HL) + JP Z, =Try_Launch_Animation.Free_slot_Found + + LD A, $04 + ADD L + LD L, A + + XOR A + CP (HL) + JP NZ, =Try_Launch_Animation.No_Free_slot_found + + Try_Launch_Animation.Free_slot_Found: + POP AF + + LD (HL+), A + LD A, B + LD (HL+), A + LD A, C + LD (HL+), A + XOR A + LD (HL+), A + + POP HL + RET + + Try_Launch_Animation.No_Free_slot_found: + POP AF + POP HL + RET + Animation_Jump_table: ; 00 RET @@ -73,6 +125,12 @@ Sparkle_Animation: LD E, (HL) INC E + LD A, $1f + AND E + LD E, A + XOR A + CP E + JP Z, =Sparkle_Animation.End_animation LD (HL), E .ADD_MOVING_ANIMATION_OFFSET @@ -81,12 +139,34 @@ Sparkle_Animation: LD HL, $mem_oam_buffer LD A, $mem_oam_buffer_low LD L, A - ADD $04 + ADD $08 LD $mem_oam_buffer_low, A + LD D, E + SRA D + LD A, C + SUB D + ADD $0c + LD (HL+), A + LD A, B + LD (HL+), A + LD A, E + SRA A + SRA A + AND $02 + ADD $60 + + LD (HL+), A + LD A, $00 + LD (HL+), A + + SRA D LD A, C + SUB D + ADD $08 LD (HL+), A LD A, B + ADD $08 LD (HL+), A LD A, E SRA A @@ -95,9 +175,16 @@ Sparkle_Animation: ADD $60 LD (HL+), A - LD A, $10 + LD A, $00 LD (HL+), A + POP HL + RET + Sparkle_Animation.End_animation: + LD A, L + AND $fc + LD L, A + LD (HL), $00 RET |