diff --git a/src/apu.rs b/src/apu.rs index ff7674e58b520fa6acbf2af64ae1365597d3b9e0..711e8115e28c80dce8d5af0a479e240ae51372dd 100644 --- a/src/apu.rs +++ b/src/apu.rs @@ -656,6 +656,14 @@ impl Apu { } } + pub fn read_unsafe(&mut self, addr: u16) -> u8 { + self.read(addr) + } + + pub fn write_unsafe(&mut self, addr: u16, value: u8) { + self.write(addr, value); + } + #[inline(always)] pub fn output(&self) -> u8 { self.ch1_output() + self.ch2_output() + self.ch3_output() + self.ch4_output() diff --git a/src/mmu.rs b/src/mmu.rs index a11a5f1e6ceb1cef59b838d6dd46c6a21dc7a7e5..141917e0d7c1bdb09b69ee0d2f6cdbfe4ca96fb4 100644 --- a/src/mmu.rs +++ b/src/mmu.rs @@ -502,6 +502,7 @@ impl Mmu { /// Game Boy verifications, allowing deep read of values. pub fn read_unsafe(&mut self, addr: u16) -> u8 { match addr { + 0xff10..=0xff3f => self.apu.read_unsafe(addr), _ => self.read(addr), } } @@ -512,6 +513,7 @@ impl Mmu { /// inaccessible. pub fn write_unsafe(&mut self, addr: u16, value: u8) { match addr { + 0xff10..=0xff3f => self.apu.write_unsafe(addr, value), _ => self.write(addr, value), } }