diff --git a/snes-core/src/emulator.rs b/snes-core/src/emulator.rs index 73f6f23..7710b20 100644 --- a/snes-core/src/emulator.rs +++ b/snes-core/src/emulator.rs @@ -28,4 +28,9 @@ impl Emulator { self.is_frame_ending = true; } + + pub fn reset(&mut self) { + let reset_vector = (self.bus.read(0x00FFFC) as u16) | ((self.bus.read(0x00FFFD) as u16) << 8); + self.cpu.registers.pc = reset_vector; + } } \ No newline at end of file diff --git a/snes-frontend/src/main.rs b/snes-frontend/src/main.rs index 1c7483a..0e6a82d 100644 --- a/snes-frontend/src/main.rs +++ b/snes-frontend/src/main.rs @@ -260,6 +260,9 @@ fn main() { emulator.tick(); } }); + if ui.button("Reset") { + emulator.reset(); + } ui.separator(); ui.checkbox(