From e8a7abffe3cc99b8b9346709d33ec155b6c8bdd9 Mon Sep 17 00:00:00 2001 From: PolygonPrincess <116114153+PolygonPrincess@users.noreply.github.com> Date: Mon, 6 Jul 2026 08:54:51 -0400 Subject: [PATCH] Add cli flag for widescreen (#1152) * Add cli flag for widescreen and enable config fallback * Fix else statement brace spacing and trailing whitespace * Fix trailing whitespace within args.widescreen else statement --- src/lib.rs | 9 +++++++++ src/ui.rs | 2 ++ src/ui/video.rs | 6 +++--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 3e9ffc8c..b3e51ae0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -22,6 +22,8 @@ pub struct Args { #[arg(short, long)] pub fullscreen: bool, #[arg(long)] + pub widescreen: bool, + #[arg(long)] pub overclock: Option, #[arg(long)] pub disable_expansion_pak: Option, @@ -170,6 +172,13 @@ pub fn run(args: Args, arg_count: usize) -> std::io::Result<()> { } else { device.ui.video.fullscreen = device.ui.config.video.fullscreen; } + + if args.widescreen { + device.ui.video.widescreen = true; + } else { + device.ui.video.widescreen = device.ui.config.video.widescreen; + } + let overclock = args .overclock .unwrap_or(device.ui.config.emulation.overclock); diff --git a/src/ui.rs b/src/ui.rs index 408b0df2..4e0765bf 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -68,6 +68,7 @@ pub struct Storage { pub struct Video { pub window: *mut sdl3_sys::video::SDL_Window, pub fullscreen: bool, + pub widescreen: bool, pub fps_tx: Option>, pub fps_rx: Option>, pub vis_tx: Option>, @@ -267,6 +268,7 @@ impl Ui { video: Video { window: std::ptr::null_mut(), fullscreen: false, + widescreen: false, fps_tx: Some(fps_tx), fps_rx: Some(fps_rx), vis_tx: Some(vis_tx), diff --git a/src/ui/video.rs b/src/ui/video.rs index b567196c..2d712b4f 100644 --- a/src/ui/video.rs +++ b/src/ui/video.rs @@ -20,8 +20,8 @@ fn build_gfx_info(device: &mut device::Device, netplay: bool) -> GFX_INFO { DPC_END_REG: &mut device.rdp.regs_dpc[device::rdp::DPC_END_REG], DPC_STATUS_REG: &mut device.rdp.regs_dpc[device::rdp::DPC_STATUS_REG], PAL: device.cart.pal, - widescreen: device.ui.config.video.widescreen, fullscreen: device.ui.video.fullscreen, + widescreen: device.ui.video.widescreen, vsync: if !netplay { device.ui.config.video.vsync } else { @@ -56,14 +56,14 @@ pub fn init(device: &mut device::Device, netplay: bool) { 2 }; if device.cart.pal { - window_width = if device.ui.config.video.widescreen { + window_width = if device.ui.video.widescreen { PAL_WIDESCREEN_WIDTH * scale } else { PAL_STANDARD_WIDTH * scale }; window_height = PAL_HEIGHT * scale; } else { - window_width = if device.ui.config.video.widescreen { + window_width = if device.ui.video.widescreen { NTSC_WIDESCREEN_WIDTH * scale } else { NTSC_STANDARD_WIDTH * scale