blob: bb0ae710a396cadf4fce52304045c52dbcf24174 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
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) {
let mut chip8 = chip8::Chip8::new();
{
let file = File::open(arg)?;
let buf_reader = BufReader::new(file);
chip8.load_rom(buf_reader)?;
}
loop {
let start = Instant::now();
for _ in 0..8 {
chip8.cycle();
}
chip8.display()?;
std::thread::sleep(FRAME_DURATION - start.elapsed());
}
} else {
println!("usage: chip8 rompath")
}
Ok(())
}
|