diff --git a/Cargo.lock b/Cargo.lock index 8a1298f..fcf8366 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1757,7 +1757,7 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" [[package]] name = "lemur" -version = "0.2.5" +version = "0.2.7" dependencies = [ "anyhow", "atoi", diff --git a/Cargo.toml b/Cargo.toml index c757995..06a79ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ description = "An emulator for the Virtual Boy." repository = "https://git.virtual-boy.com/PVB/lemur" publish = false license = "MIT" -version = "0.2.5" +version = "0.2.7" edition = "2021" [dependencies] diff --git a/shrooms-vb-core b/shrooms-vb-core index 06849b5..57dcd83 160000 --- a/shrooms-vb-core +++ b/shrooms-vb-core @@ -1 +1 @@ -Subproject commit 06849b54ba7f7fd8bba09e1cf8a8cc9107ec269b +Subproject commit 57dcd8370a885541ae6a1de0f35b25675728b226 diff --git a/src/app.rs b/src/app.rs index a821c07..a421b5e 100644 --- a/src/app.rs +++ b/src/app.rs @@ -269,17 +269,23 @@ impl Viewport { }); egui_extras::install_image_loaders(&ctx); - let mut painter = egui_wgpu::winit::Painter::new( - ctx.clone(), - egui_wgpu::WgpuConfiguration { - present_mode: wgpu::PresentMode::AutoNoVsync, - ..egui_wgpu::WgpuConfiguration::default() - }, - 1, - None, - false, - true, - ); + #[allow(unused_mut)] + let mut wgpu_config = egui_wgpu::WgpuConfiguration { + present_mode: wgpu::PresentMode::AutoNoVsync, + ..egui_wgpu::WgpuConfiguration::default() + }; + #[cfg(windows)] + { + if let egui_wgpu::WgpuSetup::CreateNew { + supported_backends, .. + } = &mut wgpu_config.wgpu_setup + { + *supported_backends -= wgpu::Backends::VULKAN; + } + } + + let mut painter = + egui_wgpu::winit::Painter::new(ctx.clone(), wgpu_config, 1, None, false, true); let mut info = ViewportInfo::default(); let mut builder = app.initial_viewport(); diff --git a/src/emulator/shrooms_vb_core.rs b/src/emulator/shrooms_vb_core.rs index 26aa0cd..147992a 100644 --- a/src/emulator/shrooms_vb_core.rs +++ b/src/emulator/shrooms_vb_core.rs @@ -190,7 +190,8 @@ impl Sim { let memory = vec![0u64; size.div_ceil(4)]; let sim: *mut VB = Box::into_raw(memory.into_boxed_slice()).cast(); unsafe { vb_init(sim) }; - unsafe { vb_set_option(sim, VBOption::PseudoHalt, 1) }; + // pseudohalt is disabled due to breaking red alarm + unsafe { vb_set_option(sim, VBOption::PseudoHalt, 0) }; unsafe { vb_set_keys(sim, VBKey::SGN.bits()) }; unsafe { vb_reset(sim) };