remove mutability from mapper read funcs

This commit is contained in:
Theron 2020-02-01 14:49:30 -06:00
parent f8718718a1
commit 4be3570c85
8 changed files with 8 additions and 8 deletions

View File

@ -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 {

View File

@ -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 {

View File

@ -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;

View File

@ -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);

View File

@ -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 => {

View File

@ -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 {

View File

@ -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

View File

@ -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;