From c8cfcea551bc0f4911e889f21d87c476a946b958 Mon Sep 17 00:00:00 2001 From: Isaac Marovitz Date: Wed, 1 May 2024 21:09:00 -0400 Subject: [PATCH] BCPD/OCPD Read Blocking --- src/components/ppu/ppu.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/components/ppu/ppu.rs b/src/components/ppu/ppu.rs index 1fc8310..35bf301 100644 --- a/src/components/ppu/ppu.rs +++ b/src/components/ppu/ppu.rs @@ -569,9 +569,21 @@ impl Memory for PPU { // TODO: DMA 0xFF51..=0xFF55 => 0x00, 0xFF68 => self.bcps.read(), - 0xFF69 => self.bcpd[self.bcps.address as usize], + 0xFF69 => { + if self.ppu_mode != PPUMode::Draw { + self.bcpd[self.bcps.address as usize] + } else { + 0xFF + } + }, 0xFF6A => self.ocps.read(), - 0xFF6B => self.ocpd[self.ocps.address as usize], + 0xFF6B => { + if self.ppu_mode != PPUMode::Draw { + self.ocpd[self.ocps.address as usize] + } else { + 0xFF + } + }, 0xFF6C => self.opri as u8, _ => panic!("Read to unsupported PPU address ({:#06x})!", a), }