Implement reading from real memory

This commit is contained in:
2025-01-02 01:10:19 -05:00
parent 82c3104ab9
commit be8cdd958a
4 changed files with 101 additions and 21 deletions
+9
View File
@@ -3,6 +3,7 @@ use std::{
fmt::Display,
fs::{self, File},
io::{Read, Seek, SeekFrom, Write},
ops::Range,
path::{Path, PathBuf},
sync::{
atomic::{AtomicBool, AtomicUsize, Ordering},
@@ -397,6 +398,13 @@ impl Emulator {
let value = sim.read_register(register);
let _ = done.send(value);
}
EmulatorCommand::ReadMemory(sim_id, addresses, mut buffer, done) => {
let Some(sim) = self.sims.get_mut(sim_id.to_index()) else {
return;
};
sim.read_memory(addresses, &mut buffer);
let _ = done.send(buffer);
}
EmulatorCommand::SetAudioEnabled(p1, p2) => {
self.audio_on[SimId::Player1.to_index()].store(p1, Ordering::Release);
self.audio_on[SimId::Player2.to_index()].store(p2, Ordering::Release);
@@ -455,6 +463,7 @@ pub enum EmulatorCommand {
Pause,
Resume,
ReadRegister(SimId, VBRegister, oneshot::Sender<u32>),
ReadMemory(SimId, Range<u32>, Vec<u8>, oneshot::Sender<Vec<u8>>),
SetAudioEnabled(bool, bool),
Link,
Unlink,