diff --git a/src/device.rs b/src/device.rs index 371e171..07feea7 100644 --- a/src/device.rs +++ b/src/device.rs @@ -58,8 +58,8 @@ pub fn run_game(device: &mut Device, rom_contents: Vec, game_settings: ui::g // rdram pointer is shared with parallel-rdp rdram::init(device); - ui::audio::init(&mut device.ui, device.ai.freq); ui::video::init(device); + ui::audio::init(&mut device.ui, device.ai.freq); ui::input::init(&mut device.ui); mi::init(device); @@ -81,10 +81,10 @@ pub fn run_game(device: &mut Device, rom_contents: Vec, game_settings: ui::g cpu::run(device); - ui::input::close(&mut device.ui); - ui::video::close(&device.ui); - ui::audio::close(&mut device.ui); ui::storage::write_saves(device); + ui::input::close(&mut device.ui); + ui::audio::close(&mut device.ui); + ui::video::close(&device.ui); } fn set_rng() -> rand_chacha::ChaCha8Rng { diff --git a/src/main.rs b/src/main.rs index 877a64c..3b6ea94 100644 --- a/src/main.rs +++ b/src/main.rs @@ -107,6 +107,14 @@ async fn main() { } return; } + if args.configure_input_profile.is_some() { + ui::input::configure_input_profile( + &mut ui, + args.configure_input_profile.unwrap(), + args.use_dinput, + ); + return; + } if args.assign_controller.is_some() { if args.port.is_none() { println!("Must specify port number"); @@ -117,7 +125,6 @@ async fn main() { args.assign_controller.unwrap(), args.port.unwrap(), ); - return; } if args.bind_input_profile.is_some() { if args.port.is_none() { @@ -129,15 +136,6 @@ async fn main() { args.bind_input_profile.unwrap(), args.port.unwrap(), ); - return; - } - if args.configure_input_profile.is_some() { - ui::input::configure_input_profile( - &mut ui, - args.configure_input_profile.unwrap(), - args.use_dinput, - ); - return; } } else if args.game.is_some() { let file_path = std::path::Path::new(args.game.as_ref().unwrap());