diff options
author | Astatin <[email protected]> | 2025-01-22 18:20:43 +0900 |
---|---|---|
committer | Astatin <[email protected]> | 2025-01-22 18:20:43 +0900 |
commit | 57326c9acf9cbb025d54093fb90fd70614659400 (patch) | |
tree | c8f396d56119fbfba1718e1891b9e9bd659f698f /animations/laser.gbasm | |
parent | 02038990a93c0b4cf58269b5456327ea64b998b7 (diff) |
Add laser animation and change animation steps to decrement
Diffstat (limited to 'animations/laser.gbasm')
-rw-r--r-- | animations/laser.gbasm | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/animations/laser.gbasm b/animations/laser.gbasm new file mode 100644 index 0000000..fba2df4 --- /dev/null +++ b/animations/laser.gbasm @@ -0,0 +1,124 @@ +Laser_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) + DEC E + DEC E + CP E + JP C, =.End_animation + LD (HL), E + + DEC HL + DEC HL + DEC HL + LD A, (HL+) + SWAP A + SRA A + SRA A + AND $03 + INC A + LD D, A + + LD A, $04 + ADD B + LD B, A + + LD A, $04 + ADD C + LD C, A + + LD A, $0f + AND E + CP $00 + JR NZ =.Skip_move_animation_tile + + PUSH BC + + LD B, (HL) + INC HL + LD C, (HL) + + LD A, $01 + .ADD_A_TO_DIRECTION_BC + + LD (HL), C + DEC HL + LD (HL), B + + POP BC + + .Skip_move_animation_tile: + + LD A, $0f + AND E + CPL + INC A + ADD $0f + + .ADD_A_TO_DIRECTION_BC + + .ADD_MOVING_ANIMATION_OFFSET + + PUSH HL + LD HL, $mem_oam_buffer + LD A, $mem_oam_buffer_low + LD L, A + ADD $08 + LD $mem_oam_buffer_low, A + + LD A, C + LD (HL+), A + + LD A, B + LD (HL+), A + LD A, $64 + LD (HL+), A + LD A, $00 + LD (HL+), A + + POP HL + RET + + .End_animation: + LD A, L + AND $fc + LD L, A + LD (HL), $00 + RET |