From 5f07f75369546c415b0dc0aee7f4aab242b3927c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com> Date: Sat, 12 Aug 2023 12:40:07 +0100 Subject: [PATCH] chore: initial unsafe write and read --- src/apu.rs | 8 ++++++++ src/mmu.rs | 2 ++ 2 files changed, 10 insertions(+) diff --git a/src/apu.rs b/src/apu.rs index ff7674e5..711e8115 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 a11a5f1e..141917e0 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), } } -- GitLab