diff options
author | Astatin <[email protected]> | 2024-11-29 18:11:43 +0900 |
---|---|---|
committer | Astatin <[email protected]> | 2024-11-29 18:11:43 +0900 |
commit | 20422f9a4a180f2c148d93e68930f57379311ca7 (patch) | |
tree | 9e58002ad6bd9bd0b6243828f55aa03e1c6c9ab7 /animation.gbasm | |
parent | c050a27b278df2efb4baf81b5e8c7e2f7dfd7e00 (diff) |
Add animation display
Diffstat (limited to 'animation.gbasm')
-rw-r--r-- | animation.gbasm | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/animation.gbasm b/animation.gbasm new file mode 100644 index 0000000..eed1923 --- /dev/null +++ b/animation.gbasm @@ -0,0 +1,103 @@ +Display_Animation_List: + LD HL, $mem_animation_list + CALL =Display_Animation + CALL =Display_Animation + CALL =Display_Animation + JP =Display_Animation + +Display_Animation: + PUSH HL + + LD A, (HL) + LD BC, =Animation_Jump_table + .JUMP_TABLE + + POP HL + LD A, L + ADD $04 + LD L, A + + RET + +Animation_Jump_table: + ; 00 + RET + NOP + NOP + NOP + + ; 01 + JP =Sparkle_Animation + NOP + +Sparkle_Animation: + INC HL + + LD A, (HL+) + ADD $80 + LD D, A + LD A, $mem_viewport_x + LD B, A + SUB $82 + CP D + RET NC + ADD $0e + CP D + RET C + LD A, D + SUB $80 + SUB B + AND $0f + SWAP A + LD B, A + + + LD A, (HL+) + ADD $80 + LD D, A + LD A, $mem_viewport_y + LD C, A + SUB $82 + CP D + RET NC + ADD $0d + CP D + RET C + LD A, D + SUB $80 + SUB C + AND $0f + SWAP A + ADD $06 + LD C, A + + LD E, (HL) + INC E + LD (HL), E + + .ADD_MOVING_ANIMATION_OFFSET + + PUSH HL + LD HL, $mem_oam_buffer + LD A, $mem_oam_buffer_low + LD L, A + ADD $04 + LD $mem_oam_buffer_low, A + + LD A, C + 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, $10 + LD (HL+), A + + POP HL + + RET |