diff options
author | Astatin <[email protected]> | 2024-12-10 18:11:21 +0900 |
---|---|---|
committer | Astatin <[email protected]> | 2024-12-10 18:12:23 +0900 |
commit | c9ab625b7f226e778fe5cba894fe088e044e704c (patch) | |
tree | 5270b645fdfa5c229785ec22a0b0f6d7285b9a78 /animations | |
parent | 17ebc22d8fd1a09e5f3c1b749e4a83077d4329a4 (diff) |
Add earcoptr animation
Diffstat (limited to 'animations')
-rw-r--r-- | animations/rotatingball.gbasm | 95 | ||||
-rw-r--r-- | animations/sparkles.gbasm | 106 |
2 files changed, 201 insertions, 0 deletions
diff --git a/animations/rotatingball.gbasm b/animations/rotatingball.gbasm new file mode 100644 index 0000000..69ca7e5 --- /dev/null +++ b/animations/rotatingball.gbasm @@ -0,0 +1,95 @@ +Rotation_Values: + .DB $F4, $07, $F5, $0A, $F7, $0D, $F8, $0F, $FD, $13, $00, $14, $03, $14, $06, $14, $09, $13, $0C, $12, $0E, $10, $11, $0E, $12, $0B, $13, $09, $14, $06, $14, $02, $13, $FF, $12, $FD, $11, $FA, $0E, $F8, $0C, $F6, $09, $F5, $06, $F4, $03, $F4, $00, $F4, $FD, $F5, $FB, $F7, $F8, $F9, $F7, $FB, $F5, $FE, $F4, $01, $F4, $04 + +Rotating_Ball_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 A, $1f + AND E + LD E, A + XOR A + CP E + JP Z, =Rotating_Ball.End_animation + + LD (HL), E + + LD A, E + SLA A + LD DE, =Rotation_Values + ADD E + LD E, A + LD A, D + ADC $00 + LD D, A + + .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, (DE) + ADD C + LD (HL+), A + + INC DE + + LD A, (DE) + ADD B + LD (HL+), A + LD A, $64 + LD (HL+), A + LD A, $00 + LD (HL+), A + + POP HL + RET + + Rotating_Ball.End_animation: + LD A, L + AND $fc + LD L, A + LD (HL), $00 + RET diff --git a/animations/sparkles.gbasm b/animations/sparkles.gbasm new file mode 100644 index 0000000..9560ebf --- /dev/null +++ b/animations/sparkles.gbasm @@ -0,0 +1,106 @@ +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 A, $1f + AND E + LD E, A + XOR A + CP E + JP Z, =Sparkle_Animation.End_animation + LD (HL), E + + .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 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 + SRA A + AND $02 + ADD $60 + + LD (HL+), A + 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 |