From 33996d5e4f38058b7e8b533a0cfb7616b3d61b01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com> Date: Sun, 13 Nov 2022 23:49:48 +0000 Subject: [PATCH] feat: new cartridge methods --- src/gb.rs | 4 ++++ src/rom.rs | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/gb.rs b/src/gb.rs index e248248d..482f849d 100644 --- a/src/gb.rs +++ b/src/gb.rs @@ -138,6 +138,10 @@ impl GameBoy { self.frame_buffer().to_vec() } + pub fn cartridge_eager(&mut self) -> Cartridge { + self.mmu().rom().clone() + } + pub fn registers(&mut self) -> Registers { let ppu_registers = self.ppu().registers(); Registers { diff --git a/src/rom.rs b/src/rom.rs index 26a09286..1c3e313a 100644 --- a/src/rom.rs +++ b/src/rom.rs @@ -410,6 +410,31 @@ impl Cartridge { pub fn ram_size_s(&self) -> String { String::from(self.ram_size().description()) } + + pub fn has_battery(&self) -> bool { + match self.rom_type() { + RomType::Mbc1RamBattery => true, + RomType::Mbc2Battery => true, + RomType::RomRamBattery => true, + RomType::Mmm01RamBattery => true, + RomType::Mbc3TimerBattery => true, + RomType::Mbc3TimerRamBattery => true, + RomType::Mbc3RamBattery => true, + RomType::Mbc5RamBattery => true, + RomType::Mbc5RumbleRamBattery => true, + RomType::Mbc7SensorRumbleRamBattery => true, + RomType::HuC1RamBattery => true, + _ => false, + } + } + + pub fn ram_data_eager(&self) -> Vec<u8> { + self.ram_data.clone() + } + + pub fn set_ram_data(&mut self, ram_data: Vec<u8>) { + self.ram_data = ram_data; + } } impl Default for Cartridge { -- GitLab