aboutsummaryrefslogtreecommitdiff
path: root/animations
diff options
context:
space:
mode:
authorAstatin <[email protected]>2024-12-10 18:11:21 +0900
committerAstatin <[email protected]>2024-12-10 18:12:23 +0900
commitc9ab625b7f226e778fe5cba894fe088e044e704c (patch)
tree5270b645fdfa5c229785ec22a0b0f6d7285b9a78 /animations
parent17ebc22d8fd1a09e5f3c1b749e4a83077d4329a4 (diff)
Add earcoptr animation
Diffstat (limited to 'animations')
-rw-r--r--animations/rotatingball.gbasm95
-rw-r--r--animations/sparkles.gbasm106
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