use std::{path::PathBuf, thread}; use anyhow::Result; use app::App; use clap::Parser; use emulator::Emulator; use winit::event_loop::{ControlFlow, EventLoop}; mod app; mod emulator; mod renderer; mod shrooms_vb_core; #[derive(Parser)] struct Args { rom: PathBuf, } fn main() -> Result<()> { let args = Args::parse(); let (mut emulator, client) = Emulator::new(); emulator.load_rom(&args.rom)?; thread::spawn(move || { emulator.run(); }); let event_loop = EventLoop::new().unwrap(); event_loop.set_control_flow(ControlFlow::Poll); event_loop.run_app(&mut App::new(client))?; Ok(()) }