further sc64 cleanup (#224)
* further sc64 cleanup * further sc64 cleanup
This commit is contained in:
parent
5b3e2a25de
commit
f4099cfcce
@ -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)]
|
||||
|
||||
Reference in New Issue
Block a user