aboutsummaryrefslogtreecommitdiff
path: root/src/assets.s
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mssola@mssola.com>2025-12-10 14:41:35 +0100
committerMiquel Sabaté Solà <mssola@mssola.com>2025-12-15 15:31:06 +0100
commit74b1003ab8abad2f8220de4f2f18a3b118f23f01 (patch)
treeb7f2d491d708fa900d4dd9649eb5bd7fab3e8686 /src/assets.s
parente6d9bd9f7acfd0e40025b2d579a7faff0d04ef0a (diff)
downloadjetpac.nes-74b1003ab8abad2f8220de4f2f18a3b118f23f01.tar.gz
jetpac.nes-74b1003ab8abad2f8220de4f2f18a3b118f23f01.zip
Adapt the code to play well with nasm's asan
The address sanitizer from nasm provides quite a few goodies, so let's adapt the code more to it to benefit from those. Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
Diffstat (limited to 'src/assets.s')
-rw-r--r--src/assets.s70
1 files changed, 35 insertions, 35 deletions
diff --git a/src/assets.s b/src/assets.s
index 3d1a6a3..82b6a06 100644
--- a/src/assets.s
+++ b/src/assets.s
@@ -24,7 +24,7 @@
lda #.hibyte(main_screen)
sta Globals::zp_arg1
ldx #$28
- jsr load_screen_x
+ jsr load_screen_x ;; TODO: jal
rts
.endproc
@@ -33,17 +33,17 @@
;; Globals::zp_arg{0,1}. Set the `x` register to the high byte of the
;; nametable to be used.
.proc load_screen_x
- bit PPU::STATUS
+ bit PPU::m_status
- stx PPU::ADDRESS
+ stx PPU::m_address
lda #$00
- sta PPU::ADDRESS
+ sta PPU::m_address
ldy #0
ldx #4
@loop:
lda (Globals::zp_arg0), y
- sta PPU::DATA
+ sta PPU::m_data
iny
bne @loop
@@ -60,44 +60,44 @@
;; Performs all the needed tricks in order to get the first nametable as
;; expected.
.proc prepare_for_title_screen
- bit PPU::STATUS
+ bit PPU::m_status
lda #$23
- sta $2006
+ sta PPU::m_address
lda #$C8
- sta $2006
+ sta PPU::m_address
ldx #$10
@upper_title_bar_loop:
lda #%10101010
- sta $2007
+ sta PPU::m_data
dex
bne @upper_title_bar_loop
;; Update 2nd palette for background. This is redundant upon entering
;; the game, but it makes sense after a game over.
lda #$3F
- sta PPU::ADDRESS
+ sta PPU::m_address
lda #$09
- sta PPU::ADDRESS
+ sta PPU::m_address
lda #$28
- sta PPU::DATA
+ sta PPU::m_data
lda #$2C
- sta PPU::DATA
+ sta PPU::m_data
lda #$16
- sta PPU::DATA
+ sta PPU::m_data
;; Update 1st palette for foreground.
lda #$3F
- sta PPU::ADDRESS
+ sta PPU::m_address
lda #$11
- sta PPU::ADDRESS
+ sta PPU::m_address
lda #$30
- sta PPU::DATA
+ sta PPU::m_data
lda #$10
- sta PPU::DATA
+ sta PPU::m_data
lda #$30
- sta PPU::DATA
+ sta PPU::m_data
rts
.endproc
@@ -105,31 +105,31 @@
;; Performs all the needed tricks in order to get the second nametable as
;; expected.
.proc prepare_for_main_screen
- bit PPU::STATUS
+ bit PPU::m_status
;; Update 2nd palette for background.
lda #$3F
- sta PPU::ADDRESS
+ sta PPU::m_address
lda #$09
- sta PPU::ADDRESS
+ sta PPU::m_address
lda #$14
- sta PPU::DATA
+ sta PPU::m_data
lda #$2C
- sta PPU::DATA
+ sta PPU::m_data
lda #$28
- sta PPU::DATA
+ sta PPU::m_data
;; Update 1st palette for foreground.
lda #$3F
- sta PPU::ADDRESS
+ sta PPU::m_address
lda #$11
- sta PPU::ADDRESS
+ sta PPU::m_address
lda #$16
- sta PPU::DATA
+ sta PPU::m_data
lda #$10
- sta PPU::DATA
+ sta PPU::m_data
lda #$30
- sta PPU::DATA
+ sta PPU::m_data
rts
.endproc
@@ -137,14 +137,14 @@
;; Copies all the palettes for our game into the proper PPU address.
.proc init_palettes
lda #$3F
- sta PPU::ADDRESS
+ sta PPU::m_address
lda #$00
- sta PPU::ADDRESS
+ sta PPU::m_address
ldx #0
@load_palettes_loop:
lda palettes, x
- sta PPU::DATA
+ sta PPU::m_data
inx
cpx #$20
bne @load_palettes_loop
@@ -177,9 +177,9 @@
;; simple game, I have so much space left in the cartridge that I can go
;; bananas with it. This helps out loading the screen as we can go faster
;; and it is less error prone.
- title_screen:
+ title_screen:
.incbin "../assets/title.nam"
- main_screen:
+ main_screen:
.incbin "../assets/main.nam"
.endscope