From d9f80db0368a9ff8ec5c8c8fe5bf70a42d70c098 Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Wed, 25 Mar 2020 10:17:07 +0100 Subject: [PATCH] Consider the overscan setting when getting the aspect ratio --- bsnes/target-libretro/libretro.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/bsnes/target-libretro/libretro.cpp b/bsnes/target-libretro/libretro.cpp index 0a1e6b43..68123f66 100644 --- a/bsnes/target-libretro/libretro.cpp +++ b/bsnes/target-libretro/libretro.cpp @@ -46,20 +46,27 @@ static int aspect_ratio_mode = 0; static double get_aspect_ratio() { + double ratio; + if (aspect_ratio_mode == 0 && program->superFamicom.region == "NTSC") - return 1.306122; + ratio = 1.306122; else if (aspect_ratio_mode == 0 && program->superFamicom.region == "PAL") - return 1.584216; + ratio = 1.584216; else if (aspect_ratio_mode == 1) // 8:7 - return 8.0/7.0; + ratio = 8.0/7.0; else if (aspect_ratio_mode == 2) // 4:3 return 4.0/3.0; else if (aspect_ratio_mode == 3) // NTSC - return 1.306122; + ratio = 1.306122; else if (aspect_ratio_mode == 4) // PAL - return 1.584216; + ratio = 1.584216; else - return 8.0/7.0; // Default + ratio = 8.0/7.0; // Default + + if (program->overscan) + return (ratio / 240) * 224; + else + return ratio; } static void flush_variables()