From 1e99d5254bf86ebbc66be74446b4c6eedbc9d445 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com>
Date: Sat, 25 Jun 2022 21:05:15 +0100
Subject: [PATCH] feat: added ppu initial implementation

---
 src/gb.rs  |  5 +++--
 src/mmu.rs |  9 +++++----
 src/ppu.rs | 12 ++++++++++++
 3 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/src/gb.rs b/src/gb.rs
index b1b7533b..1d03e62f 100644
--- a/src/gb.rs
+++ b/src/gb.rs
@@ -1,6 +1,6 @@
 use std::{cell::RefCell, rc::Rc};
 
-use crate::{cpu::Cpu, mmu::Mmu, util::read_file};
+use crate::{cpu::Cpu, mmu::Mmu, ppu::Ppu, util::read_file};
 
 pub type SharedMut<T> = Rc<RefCell<T>>;
 
@@ -10,7 +10,8 @@ pub struct GameBoy {
 
 impl GameBoy {
     pub fn new() -> GameBoy {
-        let mmu = Mmu::new();
+        let ppu = Ppu::new();
+        let mmu = Mmu::new(ppu);
         let cpu = Cpu::new(mmu);
         GameBoy { cpu: cpu }
     }
diff --git a/src/mmu.rs b/src/mmu.rs
index 5044defd..6666aeae 100644
--- a/src/mmu.rs
+++ b/src/mmu.rs
@@ -1,16 +1,17 @@
+use crate::ppu::Ppu;
+
 pub const RAM_SIZE: usize = 8192;
-pub const VRAM_SIZE: usize = 8192;
 
 pub struct Mmu {
+    ppu: Ppu,
     ram: [u8; RAM_SIZE],
-    vram: [u8; VRAM_SIZE],
 }
 
 impl Mmu {
-    pub fn new() -> Mmu {
+    pub fn new(ppu: Ppu) -> Mmu {
         Mmu {
+            ppu: ppu,
             ram: [0u8; RAM_SIZE],
-            vram: [0u8; VRAM_SIZE],
         }
     }
 
diff --git a/src/ppu.rs b/src/ppu.rs
index 8b137891..226a07a7 100644
--- a/src/ppu.rs
+++ b/src/ppu.rs
@@ -1 +1,13 @@
+pub const VRAM_SIZE: usize = 8192;
 
+pub struct Ppu {
+    vram: [u8; VRAM_SIZE],
+}
+
+impl Ppu {
+    pub fn new() -> Ppu {
+        Ppu {
+            vram: [0u8; VRAM_SIZE],
+        }
+    }
+}
-- 
GitLab