Skip to content

Commit

Permalink
Merge pull request #738 from ds22x/master
Browse files Browse the repository at this point in the history
[Libretro] Create a separate aspect ratio option for "4:3 Preserved"
  • Loading branch information
bearoso authored Mar 3, 2022
2 parents 1041ff3 + 054e2f5 commit 7e97bb5
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 0 deletions.
9 changes: 9 additions & 0 deletions libretro/libretro.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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];
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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;

Expand Down Expand Up @@ -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));
}
Expand Down
1 change: 1 addition & 0 deletions libretro/libretro_core_options.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ 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" },
Expand Down
1 change: 1 addition & 0 deletions libretro/libretro_core_options_intl.h
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ struct retro_core_option_definition option_defs_tr[] = {
"Tercih edilen içerik en boy oranını seçin. Bu, yalnızca RetroArch’ın en boy oranı Video ayarlarında 'Core tarafından' olarak ayarlandığında uygulanacaktır.",
{
{ "4:3", NULL },
{ "4:3 scaled", "4:3 (Korunmuş)" },
{ "uncorrected", "Düzeltilmemiş" },
{ "auto", "Otomatik" },
{ "ntsc", "NTSC" },
Expand Down

0 comments on commit 7e97bb5

Please sign in to comment.