I've got a status bar which is working fine (with sprite 0 hit) here's the code in my NMI routine :
Code: Select all
LDA #$00
STA $2006
STA $2006
STA $2005
STA $2005
; switch CHR bank
LDA #$03
TAX
STA bankTable,X
; switch nametable to $2400
LDA ctrl_var
EOR #%00000001
STA $2000
@WaitNotSprite0:
LDA $2002
AND #%01000000
BNE @WaitNotSprite0 ; wait until sprite 0 not hit
@WaitSprite0:
LDA $2002
AND #%01000000
BEQ @WaitSprite0 ; wait until sprite 0 is hit
LDX #$10
@WaitScanline:
DEX
BNE @WaitScanline
; switch CHR bank
LDA #$00
TAX
STA bankTable,X
; switch nametable back $2000
LDA ctrl_var
STA $2000
What I'd like to do is to swap some colors in the palette for the status bar, and put the original colors back for the rest of the screen.
I manage to do this BUT instead of having the $2000 nametable starting "below" the status bar, it begins "under" the status bar. Am I clear ? (not sure ...)
Here's the code I used :
Code: Select all
LDA #$00
STA $2006
STA $2006
STA $2005
STA $2005
; PALETTE SWAP
LDA #$3f
STA $2006
LDA #$01
STA $2006
LDA #$30
STA $2007
LDA #$00
STA $2006
STA $2006
; switch CHR bank
LDA #$03
TAX
STA bankTable,X
; switch nametable to $2400
LDA ctrl_var
EOR #%00000001
STA $2000
@WaitNotSprite0:
LDA $2002
AND #%01000000
BNE @WaitNotSprite0 ; wait until sprite 0 not hit
@WaitSprite0:
LDA $2002
AND #%01000000
BEQ @WaitSprite0 ; wait until sprite 0 is hit
LDX #$10
@WaitScanline:
DEX
BNE @WaitScanline
LDA #%00000001 ; rendering disabled + grayscale
STA $2001
; PALETTE SWAP
LDA #$3F
STA $2006
LDA #$01
STA $2006
LDA #$1A
STA $2007
LDA #$00
STA $2006
STA $2006
; switch CHR bank
LDA #$00
TAX
STA bankTable,X
; switch nametable back $2000
LDA ctrl_var
STA $2000
Any advice ?