aboutsummaryrefslogtreecommitdiff
path: root/animations
diff options
context:
space:
mode:
authorAstatin <[email protected]>2025-01-22 18:20:43 +0900
committerAstatin <[email protected]>2025-01-22 18:20:43 +0900
commit57326c9acf9cbb025d54093fb90fd70614659400 (patch)
treec8f396d56119fbfba1718e1891b9e9bd659f698f /animations
parent02038990a93c0b4cf58269b5456327ea64b998b7 (diff)
Add laser animation and change animation steps to decrement
Diffstat (limited to 'animations')
-rw-r--r--animations/laser.gbasm124
-rw-r--r--animations/rotatingball.gbasm10
-rw-r--r--animations/sparkles.gbasm8
3 files changed, 134 insertions, 8 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
diff --git a/animations/rotatingball.gbasm b/animations/rotatingball.gbasm
index cbc2776..2d89cbe 100644
--- a/animations/rotatingball.gbasm
+++ b/animations/rotatingball.gbasm
@@ -42,12 +42,14 @@ Rotating_Ball_Animation:
LD C, A
LD E, (HL)
- INC E
- LD A, $2f
+ DEC E
CP E
- JP C, =Rotating_Ball.End_animation
+ JP C, =.End_animation
LD (HL), E
+ LD A, $30
+ SUB E
+ LD E, A
LD A, E
AND $0f
@@ -85,7 +87,7 @@ Rotating_Ball_Animation:
POP HL
RET
- Rotating_Ball.End_animation:
+ .End_animation:
LD A, L
AND $fc
LD L, A
diff --git a/animations/sparkles.gbasm b/animations/sparkles.gbasm
index 018cf27..166332c 100644
--- a/animations/sparkles.gbasm
+++ b/animations/sparkles.gbasm
@@ -40,14 +40,14 @@ Sparkle_Animation:
LD C, A
LD E, (HL)
- INC E
- LD A, $1f
- AND E
- LD E, A
+ DEC E
XOR A
CP E
JP Z, =.End_animation
LD (HL), E
+ LD A, $20
+ SUB E
+ LD E, A
.ADD_MOVING_ANIMATION_OFFSET