From ba0cf9e5293f258c58ced1fcc47f558e7419dae4 Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Solà Date: Mon, 10 Mar 2025 22:55:41 +0100 Subject: Provide an example on multiscreen scrolling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Miquel Sabaté Solà --- scroll/include/palettes.s | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'scroll/include/palettes.s') diff --git a/scroll/include/palettes.s b/scroll/include/palettes.s index 9403b7b..1b9f20c 100644 --- a/scroll/include/palettes.s +++ b/scroll/include/palettes.s @@ -3,8 +3,18 @@ DEFAULT_COLOR = $11 ;; Copies all the palettes for our game into the proper PPU address. + ;; + ;; NOTE: as explained in `metatile.s`, the engine for the scrolling examples + ;; lack the ability to update the attributes for each tile. This is + ;; embarrasing, but adding support for it would make these examples more + ;; complex than they need to be. Hence we just reproduce the same palette + ;; all over and avoid glitches on real hardware or emulators with randomized + ;; memory. .proc init - PPU_ADDR $3F00 + lda #$3F + sta PPU::ADDRESS + lda #$00 + sta PPU::ADDRESS ldx #0 @load_palettes_loop: @@ -17,14 +27,14 @@ palettes: ;; Background .byte DEFAULT_COLOR, $36, $17, $0F - .byte DEFAULT_COLOR, $00, $00, $00 - .byte DEFAULT_COLOR, $00, $00, $00 - .byte DEFAULT_COLOR, $00, $00, $00 + .byte DEFAULT_COLOR, $36, $17, $0F + .byte DEFAULT_COLOR, $36, $17, $0F + .byte DEFAULT_COLOR, $36, $17, $0F ;; Foreground .byte DEFAULT_COLOR, $28, $0F, $30 - .byte DEFAULT_COLOR, $00, $00, $00 - .byte DEFAULT_COLOR, $00, $00, $00 - .byte DEFAULT_COLOR, $00, $00, $00 + .byte DEFAULT_COLOR, $28, $0F, $30 + .byte DEFAULT_COLOR, $28, $0F, $30 + .byte DEFAULT_COLOR, $28, $0F, $30 .endproc .endscope -- cgit v1.2.3