From d402d60a4e1c87dd83dfe015b533cd608acc0e24 Mon Sep 17 00:00:00 2001 From: Lucas Scharenbroich Date: Mon, 22 May 2023 11:15:45 -0500 Subject: [PATCH] Filter out more sprites and PPU nametable changes --- demos/smb/ppu.s | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/demos/smb/ppu.s b/demos/smb/ppu.s index 27497d2..f6be79c 100644 --- a/demos/smb/ppu.s +++ b/demos/smb/ppu.s @@ -250,6 +250,9 @@ PPUDATA_WRITE ENT rep #$10 ldx ppuaddr + cmp PPU_MEM,x + beq :nochange + sta PPU_MEM,x rep #$30 @@ -288,6 +291,14 @@ PPUDATA_WRITE ENT :nocache cpx #$3F00 bcs :extra + bra :done + +:nochange + rep #$30 + txa + clc + adc ppuincr + sta ppuaddr :done sep #$30 @@ -540,6 +551,8 @@ spriteCount ds 0 mx %00 scanOAMSprites + stz Tmp5 + sep #$30 ldx #4 ; Always skip sprite 0 @@ -549,6 +562,8 @@ scanOAMSprites lda PPU_OAM,x ; Y-coordinate cmp #200+y_offset-9 bcs :skip + cmp #16 + bcc :skip lda PPU_OAM+1,x ; $FC is an empty tile, don't draw it cmp #$FC @@ -565,6 +580,39 @@ scanOAMSprites sta OAM_COPY+2,y sep #$20 +* ; Debug OAM values +* phy +* phx + +* rep #$30 +* ldx Tmp5 +* cpx #{160*190} +* bcs :nodraw + +* lda OAM_COPY+2,y +* pha +* lda OAM_COPY,y +* ldy #$FFFF +* jsr DrawWord + +* lda Tmp5 +* clc +* adc #128+16 +* tax +* ldy #$FFFF +* pla +* jsr DrawWord + +* lda Tmp5 +* clc +* adc #8*160 +* sta Tmp5 + +* :nodraw +* sep #$30 +* plx +* ply + iny iny iny