aboutsummaryrefslogtreecommitdiff
path: root/src/background.s
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mssola@mssola.com>2026-03-23 23:59:26 +0100
committerMiquel Sabaté Solà <mssola@mssola.com>2026-03-23 23:59:26 +0100
commit0c9b0ad7938e2ba7e994574b4947e25c82440b8c (patch)
treecb6721fc9689104463b5a71ca02303299486af9e /src/background.s
parentfb23cf51040f06bfcfbaf318d7b452d76ffbedfb (diff)
downloadjetpac.nes-0c9b0ad7938e2ba7e994574b4947e25c82440b8c.tar.gz
jetpac.nes-0c9b0ad7938e2ba7e994574b4947e25c82440b8c.zip
Implement the "take off" animation
This is the animation that is done after clearing a stage. Moreover, and for the first time since I started development, now we can move into the next level as intended from the game's design. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
Diffstat (limited to 'src/background.s')
-rw-r--r--src/background.s54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/background.s b/src/background.s
index 0facde6..369def9 100644
--- a/src/background.s
+++ b/src/background.s
@@ -107,4 +107,58 @@
;; End of the list.
.byte $FF
+
+ ;; Clear out the shuttle from the background.
+ ;;
+ ;; NOTE: this should only be called from NMI code.
+ .proc clear_shuttle
+ ;; The low part of the rocket.
+ bit PPU::m_status
+ ldx #$2B
+ stx PPU::m_address
+ ldx #$15
+ stx PPU::m_address
+ sta PPU::m_data
+ sta PPU::m_data
+
+ ;; High part of the rocket.
+ bit PPU::m_status
+ ldy #$2A
+ sty PPU::m_address
+ ldx #$75
+ stx PPU::m_address
+ sta PPU::m_data
+ sta PPU::m_data
+
+ bit PPU::m_status
+ sty PPU::m_address
+ ldx #$95
+ stx PPU::m_address
+ sta PPU::m_data
+ sta PPU::m_data
+
+ bit PPU::m_status
+ sty PPU::m_address
+ ldx #$B5
+ stx PPU::m_address
+ sta PPU::m_data
+ sta PPU::m_data
+
+ ;; Middle part of the rocket.
+ bit PPU::m_status
+ sty PPU::m_address
+ ldx #$D5
+ stx PPU::m_address
+ sta PPU::m_data
+ sta PPU::m_data
+
+ bit PPU::m_status
+ sty PPU::m_address
+ ldx #$F5
+ stx PPU::m_address
+ sta PPU::m_data
+ sta PPU::m_data
+
+ rts
+ .endproc
.endscope