diff --git a/src/emulator.rs b/src/emulator.rs index 7293e54..68dd121 100644 --- a/src/emulator.rs +++ b/src/emulator.rs @@ -518,11 +518,12 @@ impl Emulator { let Some(region) = region.upgrade() else { return false; }; - let Some(sim) = self.sims.get_mut(range.sim.to_index()) else { - return false; - }; self.buffer.clear(); - sim.read_memory(range.start, range.length, &mut self.buffer); + if let Some(sim) = self.sims.get_mut(range.sim.to_index()) { + sim.read_memory(range.start, range.length, &mut self.buffer); + } else { + self.buffer.extend(std::iter::repeat_n(0, range.length)); + } region.update(&self.buffer); true }); diff --git a/src/graphics.rs b/src/graphics.rs index dcde18f..b3031a0 100644 --- a/src/graphics.rs +++ b/src/graphics.rs @@ -142,7 +142,6 @@ impl BufferPool { } } -#[derive(Debug)] struct Buffer { data: Mutex>, id: AtomicU64, @@ -155,3 +154,10 @@ impl Buffer { } } } +impl std::fmt::Debug for Buffer { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Buffer") + .field("id", &self.id) + .finish_non_exhaustive() + } +}