From 9e316e45026ad4b3942ad807f1c1919fbcbb819f Mon Sep 17 00:00:00 2001 From: Albert Liu <45282415+ggrtk@users.noreply.github.com> Date: Sun, 12 Jul 2020 15:23:02 -0700 Subject: [PATCH] Settings: Add 8:7 display aspect ratio Requested by users for some 256-width 240p titles (effectively 1:1 PAR at 256x224 when overscan cropping is turned on). --- src/core/settings.cpp | 6 ++++-- src/core/types.h | 1 + src/duckstation-sdl/sdl_host_interface.cpp | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/core/settings.cpp b/src/core/settings.cpp index 01b25be3b..de5b01567 100644 --- a/src/core/settings.cpp +++ b/src/core/settings.cpp @@ -437,8 +437,10 @@ const char* Settings::GetDisplayCropModeDisplayName(DisplayCropMode crop_mode) return s_display_crop_mode_display_names[static_cast(crop_mode)]; } -static std::array s_display_aspect_ratio_names = {{"4:3", "16:9", "2:1 (VRAM 1:1)", "1:1"}}; -static constexpr std::array s_display_aspect_ratio_values = {{4.0f / 3.0f, 16.0f / 9.0f, 2.0f / 1.0f, 1.0f}}; +static std::array s_display_aspect_ratio_names = + {{"4:3", "16:9", "8:7", "2:1 (VRAM 1:1)", "1:1"}}; +static constexpr std::array s_display_aspect_ratio_values = + {{4.0f / 3.0f, 16.0f / 9.0f, 8.0f / 7.0f, 2.0f / 1.0f, 1.0f}}; std::optional Settings::ParseDisplayAspectRatio(const char* str) { diff --git a/src/core/types.h b/src/core/types.h index 7ab1e6736..c1e314f23 100644 --- a/src/core/types.h +++ b/src/core/types.h @@ -71,6 +71,7 @@ enum class DisplayAspectRatio : u8 { R4_3, R16_9, + R8_7, R2_1, R1_1, Count diff --git a/src/duckstation-sdl/sdl_host_interface.cpp b/src/duckstation-sdl/sdl_host_interface.cpp index bb9365387..2760dde8b 100644 --- a/src/duckstation-sdl/sdl_host_interface.cpp +++ b/src/duckstation-sdl/sdl_host_interface.cpp @@ -1225,7 +1225,7 @@ void SDLHostInterface::DrawSettingsWindow() ImGui::SameLine(indent); int display_aspect_ratio = static_cast(m_settings_copy.display_aspect_ratio); if (ImGui::Combo( - "##display_pixel_aspect_ratio", &display_aspect_ratio, + "##display_aspect_ratio", &display_aspect_ratio, [](void*, int index, const char** out_text) { *out_text = Settings::GetDisplayAspectRatioName(static_cast(index)); return true;