From eb7ddae40729ab274c3929b62f6389171ac9c8f3 Mon Sep 17 00:00:00 2001 From: ds22x Date: Mon, 14 Feb 2022 13:44:49 +0100 Subject: [PATCH] Create a separate aspect ratio option for '4:3 Preserved' --- libretro/libretro.cpp | 9 +++++++++ libretro/libretro_core_options.h | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/libretro/libretro.cpp b/libretro/libretro.cpp index 4ddf9fa0..03dac900 100644 --- a/libretro/libretro.cpp +++ b/libretro/libretro.cpp @@ -49,6 +49,8 @@ static int g_screen_gun_height = SNES_HEIGHT; #define RETRO_GAME_TYPE_MULTI_CART 0x105 | 0x1000 +#define SNES_4_3 4.0f / 3.0f + uint16 *screen_buffer = NULL; char g_rom_dir[1024]; @@ -144,6 +146,7 @@ enum overscan_mode { }; enum aspect_mode { ASPECT_RATIO_4_3, + ASPECT_RATIO_4_3_SCALED, ASPECT_RATIO_1_1, ASPECT_RATIO_NTSC, ASPECT_RATIO_PAL, @@ -460,6 +463,8 @@ static void update_variables(void) newval = ASPECT_RATIO_PAL; else if (strcmp(var.value, "4:3") == 0) newval = ASPECT_RATIO_4_3; + else if (strcmp(var.value, "4:3 scaled") == 0) + newval = ASPECT_RATIO_4_3_SCALED; else if (strcmp(var.value, "uncorrected") == 0) newval = ASPECT_RATIO_1_1; @@ -785,6 +790,10 @@ void retro_get_system_info(struct retro_system_info *info) float get_aspect_ratio(unsigned width, unsigned height) { if (aspect_ratio_mode == ASPECT_RATIO_4_3) + { + return SNES_4_3; + } + else if (aspect_ratio_mode == ASPECT_RATIO_4_3_SCALED) { return (4.0f * (MAX_SNES_HEIGHT - height)) / (3.0f * (MAX_SNES_WIDTH - width)); } diff --git a/libretro/libretro_core_options.h b/libretro/libretro_core_options.h index 1e907992..538cec3a 100644 --- a/libretro/libretro_core_options.h +++ b/libretro/libretro_core_options.h @@ -72,11 +72,12 @@ struct retro_core_option_definition option_defs_us[] = { "Choose the preferred content aspect ratio. This will only apply when RetroArch's aspect ratio is set to 'Core provided' in the Video settings.", { { "4:3", NULL }, + { "4:3 scaled", "4:3 (Preserved)" }, { "uncorrected", "Uncorrected" }, { "auto", "Auto" }, { "ntsc", "NTSC" }, { "pal", "PAL" }, - { NULL, NULL}, + { NULL, NULL }, }, "4:3" },