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