From f4099cfcce873f1be4afca09aa9e9084a6e1001f Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Wed, 5 Feb 2025 13:39:24 +0100 Subject: [PATCH] further sc64 cleanup (#224) * further sc64 cleanup * further sc64 cleanup --- src/device/cart/sc64.rs | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/src/device/cart/sc64.rs b/src/device/cart/sc64.rs index 9e1f6c6..4f831ce 100644 --- a/src/device/cart/sc64.rs +++ b/src/device/cart/sc64.rs @@ -102,15 +102,7 @@ pub fn write_regs(device: &mut device::Device, address: u64, value: u32, mask: u 's' => { format_sdcard(device); // read sd card - let (phys_address, cached, err) = device::memory::translate_address( - device, - device.sc64.regs[SC64_DATA0_REG as usize] as u64, - device::memory::AccessType::Write, - ); - if err { - panic!("TLB exception in SC64"); - } - + let address = device.sc64.regs[SC64_DATA0_REG as usize] as u64 & 0x1FFFFFFF; let offset = (device.sc64.sector * 512) as usize; let length = (device.sc64.regs[SC64_DATA1_REG as usize] * 512) as usize; let mut i = 0; @@ -125,10 +117,10 @@ pub fn write_regs(device: &mut device::Device, address: u64, value: u32, mask: u device::memory::data_write( device, - phys_address + i as u64, + address + i as u64, data, 0xFFFFFFFF, - cached, + false, ); } else { panic!("sd card read out of bounds") @@ -139,15 +131,7 @@ pub fn write_regs(device: &mut device::Device, address: u64, value: u32, mask: u 'S' => { format_sdcard(device); // write sd card - let (phys_address, cached, err) = device::memory::translate_address( - device, - device.sc64.regs[SC64_DATA0_REG as usize] as u64, - device::memory::AccessType::Read, - ); - if err { - panic!("TLB exception in SC64"); - } - + let address = device.sc64.regs[SC64_DATA0_REG as usize] as u64 & 0x1FFFFFFF; let offset = (device.sc64.sector * 512) as usize; let length = (device.sc64.regs[SC64_DATA1_REG as usize] * 512) as usize; let mut i = 0; @@ -156,9 +140,9 @@ pub fn write_regs(device: &mut device::Device, address: u64, value: u32, mask: u if offset + i < device.ui.saves.sdcard.0.len() { let data = device::memory::data_read( device, - phys_address + i as u64, + address + i as u64, device::memory::AccessSize::Word, - cached, + false, ) .to_be_bytes(); device.ui.saves.sdcard.0[(offset + i)..(offset + i + 4)]