use rgy::{Config, Key, Stream, VRAM_HEIGHT, VRAM_WIDTH};
struct Hardware {
display: Vec<Vec<u32>>,
}
impl Hardware {
fn new() -> Self {
let display = vec![vec![0u32; VRAM_HEIGHT]; VRAM_WIDTH];
Self { display }
}
}
impl rgy::Hardware for Hardware {
fn vram_update(&mut self, line: usize, buffer: &[u32]) {
let y = line;
for (x, col) in buffer.iter().enumerate() {
self.display[x][y] = *col;
}
}
fn joypad_pressed(&mut self, key: Key) -> bool {
println!("Check if {:?} is pressed", key);
false
}
fn sound_play(&mut self, _stream: Box<dyn Stream>) {
}
fn clock(&mut self) -> u64 {
let epoch = std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.expect("Couldn't get epoch");
epoch.as_micros() as u64
}
fn send_byte(&mut self, _b: u8) {
}
fn recv_byte(&mut self) -> Option<u8> {
None
}
fn sched(&mut self) -> bool {
println!("It's running!");
true
}
fn load_ram(&mut self, size: usize) -> Vec<u8> {
vec![0; size]
}
fn save_ram(&mut self, _ram: &[u8]) {
}
}
fn main() {
let cfg = Config::new();
let hw = Hardware::new();
let rom = vec![0u8; 1024];
rgy::run(cfg, &rom, hw);
}