Skip to content
Snippets Groups Projects
gb.rs 545 B
use std::{cell::RefCell, rc::Rc};

use crate::{cpu::Cpu, mmu::Mmu, util::read_file};

pub type SharedMut<T> = Rc<RefCell<T>>;

pub struct GameBoy {
    cpu: Cpu,
}

impl GameBoy {
    pub fn new() -> GameBoy {
        let mmu = Mmu::new();
        let cpu = Cpu::new(mmu);
        GameBoy { cpu: cpu }
    }

    pub fn load_boot(&mut self, path: &str) {
        let data = read_file(path);
        self.cpu.mmu().write_buffer(0x0000, &data);
    }

    pub fn load_boot_default(&mut self) {
        self.load_boot("./res/mbr_rom.bin");
    }
}