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