Add larger PPU buffer

This commit is contained in:
Lucas Scharenbroich 2023-05-21 23:36:52 -05:00
parent d3a7eecc6e
commit cc3ee6be0f

View File

@ -237,8 +237,8 @@ PPUDATA_READ ENT
rtl rtl
nt_queue_front dw 0 nt_queue_front dw 0
nt_queue_end dw 0 nt_queue_end dw 0
nt_queue ds 2*{1024} nt_queue ds 2*{NT_QUEUE_SIZE}
PPUDATA_WRITE ENT PPUDATA_WRITE ENT
php php
@ -272,7 +272,7 @@ PPUDATA_WRITE ENT
tay tay
inc inc
inc inc
and #{2*1024}-1 and #NT_QUEUE_MOD
cmp nt_queue_front cmp nt_queue_front
beq :full beq :full
@ -281,6 +281,8 @@ PPUDATA_WRITE ENT
sta nt_queue,y sta nt_queue,y
:full :full
lda #1
jsr setborder
ply ply
:nocache :nocache
@ -294,7 +296,17 @@ PPUDATA_WRITE ENT
plb plb
plp plp
rtl rtl
setborder
php
sep #$20
eorl $E0C034
and #$F0
eorl $E0C034
stal $E0C034
plp
rts
; Do some extra work to keep palette data in sync ; Do some extra work to keep palette data in sync
; ;
; Based on the palette data that SMB uses, we map the NES palette entries as ; Based on the palette data that SMB uses, we map the NES palette entries as
@ -869,12 +881,12 @@ drawOAMSprites
; This is phase 1. We will build the sprite list and draw the background in the areas covered by ; This is phase 1. We will build the sprite list and draw the background in the areas covered by
; sprites. This phase draws the sprites, too ; sprites. This phase draws the sprites, too
ldal nmiCount
pha
; We need to "freeze" the OAM values, otherwise they can change between when we build the rendering pipeline ; We need to "freeze" the OAM values, otherwise they can change between when we build the rendering pipeline
sei sei
ldal nmiCount
pha
jsr scanOAMSprites ; Filter out any sprites that don't need to be drawn jsr scanOAMSprites ; Filter out any sprites that don't need to be drawn
pla pla
cmpl nmiCount cmpl nmiCount