diff options
author | Astatin <[email protected]> | 2024-09-14 15:31:39 +0900 |
---|---|---|
committer | Astatin <astatin@redacted> | 2024-09-14 15:31:39 +0900 |
commit | 249921a2094d172e94543446e2af11dcba5075e8 (patch) | |
tree | db2762099ce88a7799c0e2b5983c32df9d33efaa | |
parent | 09104524ed468442bb4957d24e65395955b59ddd (diff) |
Fix timing issues by not calling SystemTime::now at every instruction
-rw-r--r-- | src/main.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index 3d18789..f0a7361 100644 --- a/src/main.rs +++ b/src/main.rs @@ -78,6 +78,7 @@ fn main() { let mut was_previously_halted = false; let mut last_ram_bank_enabled = false; + let mut now = SystemTime::now(); loop { if was_previously_halted && !state.mem.halt { @@ -85,7 +86,6 @@ fn main() { halt_time = 0; } was_previously_halted = state.mem.halt; - let now = SystemTime::now(); let c = if !state.mem.halt { exec_opcode(&mut state).unwrap() } else { @@ -127,7 +127,8 @@ fn main() { } nanos_sleep = - nanos_sleep - SystemTime::now().duration_since(now).unwrap().as_nanos() as i128; + nanos_sleep - SystemTime::now().duration_since(now).unwrap().as_nanos() as i128; + now = SystemTime::now(); if last_ram_bank_enabled && !state.mem.ram_bank_enabled { println!("Saving to \"{}\"...", save_file); |