From a03bd6a6c26b60e0d291f1de11b6e0ddf9b6e119 Mon Sep 17 00:00:00 2001 From: Theron Date: Mon, 20 Jan 2020 18:31:08 -0600 Subject: [PATCH] cleanup --- src/cartridge/cnrom.rs | 3 +-- src/cartridge/mmc1.rs | 42 ++++++++++++++++++++++-------------------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/cartridge/cnrom.rs b/src/cartridge/cnrom.rs index 9e0f165..0f3a3c7 100644 --- a/src/cartridge/cnrom.rs +++ b/src/cartridge/cnrom.rs @@ -16,14 +16,13 @@ impl Cnrom { impl Mapper for Cnrom { fn read(&mut self, address: usize) -> u8 { - let cl = self.cart.chr_rom.len(); let pl = self.cart.prg_rom.len(); let addr = address % 0x4000; match address { 0x0000..=0x1FFF => self.cart.chr_rom[self.chr_bank_select][address], 0x8000..=0xBFFF => self.cart.prg_rom[0][addr], 0xC000..=0xFFFF => self.cart.prg_rom[pl-1][addr], - _ => panic!("bad address read from CNROM mapper: 0x{:X}", address), + _ => {println!("bad address read from CNROM mapper: 0x{:X}", address); 0}, } } diff --git a/src/cartridge/mmc1.rs b/src/cartridge/mmc1.rs index 3d7c936..2d43361 100644 --- a/src/cartridge/mmc1.rs +++ b/src/cartridge/mmc1.rs @@ -180,30 +180,32 @@ impl Mapper for Mmc1 { } fn load_battery_backed_ram(&mut self) { - // check for filename, if not there make it - // println!("{}", self.cart.filename); - let p = Path::new(&self.cart.filename).parent().unwrap(); - let stem = Path::new(&self.cart.filename).file_stem().unwrap(); - let mut save_file = p.join(stem); - save_file.set_extension("sav"); - if Path::new(&save_file).exists() { - let mut f = File::open(save_file.clone()).expect("save file exists but could not open it"); - let mut battery_backed_ram_data = vec![]; - f.read_to_end(&mut battery_backed_ram_data).expect("error reading save file"); - println!("loading battery-backed RAM from file: {:?}", save_file); - self.prg_ram_bank = battery_backed_ram_data; + if self.cart.battery_backed_ram { + let p = Path::new(&self.cart.filename).parent().unwrap(); + let stem = Path::new(&self.cart.filename).file_stem().unwrap(); + let mut save_file = p.join(stem); + save_file.set_extension("sav"); + if Path::new(&save_file).exists() { + let mut f = File::open(save_file.clone()).expect("save file exists but could not open it"); + let mut battery_backed_ram_data = vec![]; + f.read_to_end(&mut battery_backed_ram_data).expect("error reading save file"); + println!("loading battery-backed RAM from file: {:?}", save_file); + self.prg_ram_bank = battery_backed_ram_data; + } } } fn save_battery_backed_ram(&self) { - let p = Path::new(&self.cart.filename).parent().unwrap(); - let stem = Path::new(&self.cart.filename).file_stem().unwrap(); - let mut save_file = p.join(stem); - save_file.set_extension("sav"); - println!("saving battery-backed RAM to file: {:?}", save_file); - let mut f = File::create(&save_file) - .expect("could not create output file for battery-backed RAM"); - f.write_all(&self.prg_ram_bank).expect("could not write battery-backed RAM to file"); + if self.cart.battery_backed_ram { + let p = Path::new(&self.cart.filename).parent().unwrap(); + let stem = Path::new(&self.cart.filename).file_stem().unwrap(); + let mut save_file = p.join(stem); + save_file.set_extension("sav"); + println!("saving battery-backed RAM to file: {:?}", save_file); + let mut f = File::create(&save_file) + .expect("could not create output file for battery-backed RAM"); + f.write_all(&self.prg_ram_bank).expect("could not write battery-backed RAM to file"); + } } fn clock(&mut self) {}