From b387586aaecf8970af93840d1441facf02a650ad Mon Sep 17 00:00:00 2001 From: Samuel Perrouault Date: Wed, 26 Mar 2025 22:10:36 +0100 Subject: add some basic pacing --- src/main.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index bfcb63a..bb0ae71 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,12 @@ -use std::{fs::File, io::BufReader}; +use std::{ + fs::File, + io::BufReader, + time::{Duration, Instant}, +}; + +const SECOND: u64 = 1_000_000_000; +const REFRESH_RATE: u64 = 60; +const FRAME_DURATION: Duration = Duration::from_nanos(SECOND / REFRESH_RATE); fn main() -> std::io::Result<()> { if let Some(arg) = std::env::args().nth(1) { @@ -9,8 +17,12 @@ fn main() -> std::io::Result<()> { chip8.load_rom(buf_reader)?; } loop { - chip8.cycle(); + let start = Instant::now(); + for _ in 0..8 { + chip8.cycle(); + } chip8.display()?; + std::thread::sleep(FRAME_DURATION - start.elapsed()); } } else { println!("usage: chip8 rompath") -- cgit v1.2.3