Skip to content
Snippets Groups Projects
Verified Commit 6a5dad18 authored by João Magalhães's avatar João Magalhães :rocket:
Browse files

feat: more code simplification

parent 4a5e0661
No related branches found
No related tags found
No related merge requests found
use std::{cell::RefCell, rc::Rc};
use crate::{cpu::Cpu, mmu::Mmu, ppu::Ppu, util::read_file};
pub type SharedMut<T> = Rc<RefCell<T>>;
use std::{
cell::RefCell,
rc::{Rc, Weak},
};
use crate::{
cpu::Cpu,
mmu::Mmu,
ppu::Ppu,
util::{read_file, SharedMut},
};
pub struct GameBoy {
cpu: Cpu,
......@@ -24,6 +30,14 @@ impl GameBoy {
&self.cpu
}
pub fn mmu(&mut self) -> &Mmu {
self.cpu.mmu()
}
pub fn ppu(&mut self) -> &Ppu {
self.mmu().ppu()
}
pub fn load_boot(&mut self, path: &str) {
let data = read_file(path);
self.cpu.mmu().write_boot(0x0000, &data);
......
......@@ -29,6 +29,10 @@ impl Mmu {
}
}
pub fn ppu(&self) -> &Ppu {
&self.ppu
}
pub fn read(&self, addr: u16) -> u8 {
match addr & 0xf000 {
// BIOS
......@@ -45,8 +49,9 @@ impl Mmu {
if self.boot_active {
if addr < 0x0100 {
return self.boot[addr as usize];
}
//else if self @todo implementar isto
} /* else if self.cpu.as_ref().unwrap().borrow().pc() == 0x0100 {
self.boot_active = false;
}*/
}
self.rom[addr as usize]
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment