diff --git a/examples/benchmark/src/main.rs b/examples/benchmark/src/main.rs index fa8ed161a3a739b8037fe2581a43965e12ea7ab1..dd9a40f8f80dc30de7ecce71913d973fb6c744ea 100644 --- a/examples/benchmark/src/main.rs +++ b/examples/benchmark/src/main.rs @@ -1,5 +1,4 @@ -use chip_ahoyto::chip8::Chip8; -use std::{fs::File, io::Read}; +use chip_ahoyto::{chip8::Chip8, util::read_file}; use time::Instant; const CYCLE_COUNT: u64 = 10_000_000_000; @@ -27,10 +26,3 @@ fn main() { println!("Took {} seconds or {:.2} MHz CPU", duration_s, mega_second); } - -fn read_file(path: &str) -> Vec<u8> { - let mut file = File::open(path).unwrap(); - let mut data = Vec::new(); - file.read_to_end(&mut data).unwrap(); - data -} diff --git a/examples/sdl/src/main.rs b/examples/sdl/src/main.rs index 95893e83703c2cf868cda6e340f9b41e3f37922b..a6efd460abb28af260fd906388014b0ad4329e5e 100644 --- a/examples/sdl/src/main.rs +++ b/examples/sdl/src/main.rs @@ -1,10 +1,12 @@ -use chip_ahoyto::chip8::{Chip8, SCREEN_PIXEL_HEIGHT, SCREEN_PIXEL_WIDTH}; +use chip_ahoyto::{ + chip8::Chip8, chip8::SCREEN_PIXEL_HEIGHT, chip8::SCREEN_PIXEL_WIDTH, util::read_file, +}; use sdl2::{ audio::AudioCallback, audio::AudioSpecDesired, event::Event, image::LoadSurface, keyboard::Keycode, pixels::Color, pixels::PixelFormatEnum, rect::Rect, render::TextureQuery, surface::Surface, ttf::Hinting, }; -use std::{fs::File, io::Read, path::Path}; +use std::path::Path; // handle the annoying Rect i32 macro_rules! rect( @@ -378,10 +380,3 @@ fn key_to_btn(keycode: Keycode) -> Option<u8> { _ => None, } } - -fn read_file(path: &str) -> Vec<u8> { - let mut file = File::open(path).unwrap(); - let mut data = Vec::new(); - file.read_to_end(&mut data).unwrap(); - data -} diff --git a/src/chip8.rs b/src/chip8.rs index da224220c57838230e04f969b893feb68e28fe19..74b547f77c9749034384a8352bf80caa7d827aef 100644 --- a/src/chip8.rs +++ b/src/chip8.rs @@ -250,7 +250,7 @@ impl Chip8 { self.registers[0xf] = (self.registers[x] > self.registers[y]) as u8; self.registers[x].saturating_sub(self.registers[y]) } - + #[inline(always)] fn call_subroutine(&mut self, addr: u16) { self.stack[self.sp as usize] = self.pc; diff --git a/src/chip8_neo.rs b/src/chip8_neo.rs index bf8c882785fc6c14f07e9a33a97cd179791c9118..3698867260ccfdfd2a37c38ff88aea3589b6d467 100644 --- a/src/chip8_neo.rs +++ b/src/chip8_neo.rs @@ -1,3 +1,3 @@ -pub struct Chip8Neo { - vram: [u8] -} +pub struct Chip8Neo { + vram: [u8], +} diff --git a/src/lib.rs b/src/lib.rs index c61f1c19ae3b822a5864093f149c400e760757f9..906a030a2ea6efafe48d498e6e7fd56ed8e45ebf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,2 +1,3 @@ pub mod chip8; pub mod chip8_neo; +pub mod util; diff --git a/src/util.rs b/src/util.rs new file mode 100644 index 0000000000000000000000000000000000000000..e99bac46ae2c3da5d3d3f017e6efae4736baa1e2 --- /dev/null +++ b/src/util.rs @@ -0,0 +1,8 @@ +use std::{fs::File, io::Read}; + +pub fn read_file(path: &str) -> Vec<u8> { + let mut file = File::open(path).unwrap(); + let mut data = Vec::new(); + file.read_to_end(&mut data).unwrap(); + data +}