From 4be3570c853d2619c6e0497170ca34ab367fddc8 Mon Sep 17 00:00:00 2001 From: Theron Date: Sat, 1 Feb 2020 14:49:30 -0600 Subject: [PATCH] remove mutability from mapper read funcs --- src/cartridge/cnrom.rs | 2 +- src/cartridge/mmc1.rs | 2 +- src/cartridge/mmc3.rs | 2 +- src/cartridge/mod.rs | 2 +- src/cartridge/nrom.rs | 2 +- src/cartridge/uxrom.rs | 2 +- src/cpu/mod.rs | 2 +- src/ppu/memory.rs | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/cartridge/cnrom.rs b/src/cartridge/cnrom.rs index 0f3a3c7..b63aefa 100644 --- a/src/cartridge/cnrom.rs +++ b/src/cartridge/cnrom.rs @@ -15,7 +15,7 @@ impl Cnrom { } impl Mapper for Cnrom { - fn read(&mut self, address: usize) -> u8 { + fn read(&self, address: usize) -> u8 { let pl = self.cart.prg_rom.len(); let addr = address % 0x4000; match address { diff --git a/src/cartridge/mmc1.rs b/src/cartridge/mmc1.rs index 2d43361..71a7330 100644 --- a/src/cartridge/mmc1.rs +++ b/src/cartridge/mmc1.rs @@ -111,7 +111,7 @@ impl Mmc1 { } impl Mapper for Mmc1 { - fn read(&mut self, address: usize) -> u8 { + fn read(&self, address: usize) -> u8 { match address { 0x0000..=0x1FFF => { if self.cart.chr_rom_size == 0 { diff --git a/src/cartridge/mmc3.rs b/src/cartridge/mmc3.rs index 5f7f51e..d78bb5c 100644 --- a/src/cartridge/mmc3.rs +++ b/src/cartridge/mmc3.rs @@ -67,7 +67,7 @@ impl Mmc3 { } impl Mapper for Mmc3 { - fn read(&mut self, address: usize) -> u8 { + fn read(&self, address: usize) -> u8 { let val = match address { 0x0000..=0x1FFF => { // reading from CHR-ROM let offset_1k = address % 0x400; diff --git a/src/cartridge/mod.rs b/src/cartridge/mod.rs index 9020bff..74ec843 100644 --- a/src/cartridge/mod.rs +++ b/src/cartridge/mod.rs @@ -15,7 +15,7 @@ use std::rc::Rc; use std::io::Read; pub trait Mapper { - fn read(&mut self, address: usize) -> u8; + fn read(&self, address: usize) -> u8; fn write(&mut self, address: usize, value: u8); fn get_mirroring(&mut self) -> Mirror; fn load_battery_backed_ram(&mut self); diff --git a/src/cartridge/nrom.rs b/src/cartridge/nrom.rs index 5f11758..e85a3c5 100644 --- a/src/cartridge/nrom.rs +++ b/src/cartridge/nrom.rs @@ -15,7 +15,7 @@ impl Nrom { } impl Mapper for Nrom { - fn read(&mut self, address: usize) -> u8 { + fn read(&self, address: usize) -> u8 { let addr = address % 0x4000; match address { 0x0000..=0x1FFF => { diff --git a/src/cartridge/uxrom.rs b/src/cartridge/uxrom.rs index e410a06..697319b 100644 --- a/src/cartridge/uxrom.rs +++ b/src/cartridge/uxrom.rs @@ -17,7 +17,7 @@ impl Uxrom { } impl Mapper for Uxrom { - fn read(&mut self, address: usize) -> u8 { + fn read(&self, address: usize) -> u8 { match address { 0x0000..=0x1FFF => { if self.cart.chr_rom_size > 0 { diff --git a/src/cpu/mod.rs b/src/cpu/mod.rs index 54ea0d4..06df672 100644 --- a/src/cpu/mod.rs +++ b/src/cpu/mod.rs @@ -189,7 +189,7 @@ impl Cpu { 0x4016 => self.read_controller(), 0x4000..=0x4017 => 0, // can't read from these APU registers 0x4018..=0x401F => 0, // APU and I/O functionality that is normally disabled. See CPU Test Mode. - 0x4020..=0xFFFF => self.mapper.borrow_mut().read(address), + 0x4020..=0xFFFF => self.mapper.borrow().read(address), _ => panic!("invalid read from 0x{:02x}", address), }; val diff --git a/src/ppu/memory.rs b/src/ppu/memory.rs index 343647f..176eefc 100644 --- a/src/ppu/memory.rs +++ b/src/ppu/memory.rs @@ -4,7 +4,7 @@ impl super::Ppu { pub fn read(&mut self, address: usize) -> u8 { match address { - 0x0000..=0x1FFF => self.mapper.borrow_mut().read(address), + 0x0000..=0x1FFF => self.mapper.borrow().read(address), 0x2000..=0x3EFF => self.read_nametable(address), 0x3F00..=0x3FFF => { let a = address % 0x0020;