From aaeaa884ebd19eae75528650699b1fcaf31ad99e Mon Sep 17 00:00:00 2001 From: swurl Date: Sat, 31 May 2025 02:16:36 +0000 Subject: [PATCH] yall got any of them pixels (#140) Adds 0.25x resolution option and fixes the configure hotkeys Signed-off-by: swurl Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/140 Co-authored-by: swurl Co-committed-by: swurl --- src/android/app/src/main/res/values-ar/strings.xml | 1 + src/android/app/src/main/res/values-ckb/strings.xml | 1 + src/android/app/src/main/res/values-cs/strings.xml | 1 + src/android/app/src/main/res/values-de/strings.xml | 1 + src/android/app/src/main/res/values-es/strings.xml | 1 + src/android/app/src/main/res/values-fa/strings.xml | 1 + src/android/app/src/main/res/values-fr/strings.xml | 1 + src/android/app/src/main/res/values-he/strings.xml | 1 + src/android/app/src/main/res/values-hu/strings.xml | 1 + src/android/app/src/main/res/values-id/strings.xml | 1 + src/android/app/src/main/res/values-it/strings.xml | 1 + src/android/app/src/main/res/values-ja/strings.xml | 1 + src/android/app/src/main/res/values-ko/strings.xml | 1 + src/android/app/src/main/res/values-nb/strings.xml | 1 + src/android/app/src/main/res/values-pl/strings.xml | 1 + .../app/src/main/res/values-pt-rBR/strings.xml | 1 + .../app/src/main/res/values-pt-rPT/strings.xml | 1 + src/android/app/src/main/res/values-ru/strings.xml | 1 + src/android/app/src/main/res/values-uk/strings.xml | 1 + src/android/app/src/main/res/values-vi/strings.xml | 1 + .../app/src/main/res/values-zh-rCN/strings.xml | 1 + .../app/src/main/res/values-zh-rTW/strings.xml | 1 + src/android/app/src/main/res/values/arrays.xml | 2 ++ src/android/app/src/main/res/values/strings.xml | 1 + src/common/settings.cpp | 5 +++++ src/common/settings_enums.h | 13 ++++++++++++- src/yuzu/configuration/shared_translation.cpp | 1 + src/yuzu/main.cpp | 2 ++ src/yuzu/uisettings.h | 4 +++- 29 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/android/app/src/main/res/values-ar/strings.xml b/src/android/app/src/main/res/values-ar/strings.xml index c05652f70a..611f4fd50a 100644 --- a/src/android/app/src/main/res/values-ar/strings.xml +++ b/src/android/app/src/main/res/values-ar/strings.xml @@ -553,6 +553,7 @@ Extreme (بطيء) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-ckb/strings.xml b/src/android/app/src/main/res/values-ckb/strings.xml index b6aa73505b..4dafc3316f 100644 --- a/src/android/app/src/main/res/values-ckb/strings.xml +++ b/src/android/app/src/main/res/values-ckb/strings.xml @@ -487,6 +487,7 @@ ئەوپەڕ (خاو) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-cs/strings.xml b/src/android/app/src/main/res/values-cs/strings.xml index ee1bcd6dc9..6daecd61fb 100644 --- a/src/android/app/src/main/res/values-cs/strings.xml +++ b/src/android/app/src/main/res/values-cs/strings.xml @@ -428,6 +428,7 @@ Vysoká + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-de/strings.xml b/src/android/app/src/main/res/values-de/strings.xml index 4e20ca069a..8ea46d89a0 100644 --- a/src/android/app/src/main/res/values-de/strings.xml +++ b/src/android/app/src/main/res/values-de/strings.xml @@ -574,6 +574,7 @@ Wirklich fortfahren? Extrem (Langsam) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-es/strings.xml b/src/android/app/src/main/res/values-es/strings.xml index dc8d2207cc..34b5f73654 100644 --- a/src/android/app/src/main/res/values-es/strings.xml +++ b/src/android/app/src/main/res/values-es/strings.xml @@ -667,6 +667,7 @@ Extremo (Lento) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) x1 (720p/1080p) diff --git a/src/android/app/src/main/res/values-fa/strings.xml b/src/android/app/src/main/res/values-fa/strings.xml index cc90431372..2a985b61cc 100644 --- a/src/android/app/src/main/res/values-fa/strings.xml +++ b/src/android/app/src/main/res/values-fa/strings.xml @@ -667,6 +667,7 @@ افراطی (کند) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-fr/strings.xml b/src/android/app/src/main/res/values-fr/strings.xml index ff06bc8f90..520756c3ec 100644 --- a/src/android/app/src/main/res/values-fr/strings.xml +++ b/src/android/app/src/main/res/values-fr/strings.xml @@ -717,6 +717,7 @@ Extrême (Lent) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-he/strings.xml b/src/android/app/src/main/res/values-he/strings.xml index 61cc06a31e..da75b01842 100644 --- a/src/android/app/src/main/res/values-he/strings.xml +++ b/src/android/app/src/main/res/values-he/strings.xml @@ -578,6 +578,7 @@ אקסטרים (איטי) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-hu/strings.xml b/src/android/app/src/main/res/values-hu/strings.xml index fd0086039a..f58a1b4cbb 100644 --- a/src/android/app/src/main/res/values-hu/strings.xml +++ b/src/android/app/src/main/res/values-hu/strings.xml @@ -703,6 +703,7 @@ Extrém (Lassú) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-id/strings.xml b/src/android/app/src/main/res/values-id/strings.xml index 22685207f1..1e6bc1aa38 100644 --- a/src/android/app/src/main/res/values-id/strings.xml +++ b/src/android/app/src/main/res/values-id/strings.xml @@ -659,6 +659,7 @@ Ekstrim (Lambat) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-it/strings.xml b/src/android/app/src/main/res/values-it/strings.xml index 260b329e35..019a693854 100644 --- a/src/android/app/src/main/res/values-it/strings.xml +++ b/src/android/app/src/main/res/values-it/strings.xml @@ -617,6 +617,7 @@ Estrema (Lenta) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-ja/strings.xml b/src/android/app/src/main/res/values-ja/strings.xml index 354d959f67..168bf1d71a 100644 --- a/src/android/app/src/main/res/values-ja/strings.xml +++ b/src/android/app/src/main/res/values-ja/strings.xml @@ -551,6 +551,7 @@ 最高 (低速) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-ko/strings.xml b/src/android/app/src/main/res/values-ko/strings.xml index f663d93d7b..0ea6299169 100644 --- a/src/android/app/src/main/res/values-ko/strings.xml +++ b/src/android/app/src/main/res/values-ko/strings.xml @@ -658,6 +658,7 @@ 극한 (느림) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-nb/strings.xml b/src/android/app/src/main/res/values-nb/strings.xml index 969dbbbf54..2e39a58b5d 100644 --- a/src/android/app/src/main/res/values-nb/strings.xml +++ b/src/android/app/src/main/res/values-nb/strings.xml @@ -497,6 +497,7 @@ Ekstrem (Treg) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-pl/strings.xml b/src/android/app/src/main/res/values-pl/strings.xml index 3b022b2b20..6fca63d72e 100644 --- a/src/android/app/src/main/res/values-pl/strings.xml +++ b/src/android/app/src/main/res/values-pl/strings.xml @@ -495,6 +495,7 @@ Ekstremalny (Wolny) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-pt-rBR/strings.xml b/src/android/app/src/main/res/values-pt-rBR/strings.xml index 44c8d4d98e..2861834ede 100644 --- a/src/android/app/src/main/res/values-pt-rBR/strings.xml +++ b/src/android/app/src/main/res/values-pt-rBR/strings.xml @@ -718,6 +718,7 @@ uma tentativa de mapeamento automático Extrema (Lenta) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-pt-rPT/strings.xml b/src/android/app/src/main/res/values-pt-rPT/strings.xml index 57a8d74e46..23ac4f60a9 100644 --- a/src/android/app/src/main/res/values-pt-rPT/strings.xml +++ b/src/android/app/src/main/res/values-pt-rPT/strings.xml @@ -718,6 +718,7 @@ uma tentativa de mapeamento automático Estremo (Lento) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-ru/strings.xml b/src/android/app/src/main/res/values-ru/strings.xml index 55a9826e06..dbf5311f31 100644 --- a/src/android/app/src/main/res/values-ru/strings.xml +++ b/src/android/app/src/main/res/values-ru/strings.xml @@ -718,6 +718,7 @@ Экстрим (медленный) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-uk/strings.xml b/src/android/app/src/main/res/values-uk/strings.xml index 41db237f0a..1fc546d384 100644 --- a/src/android/app/src/main/res/values-uk/strings.xml +++ b/src/android/app/src/main/res/values-uk/strings.xml @@ -463,6 +463,7 @@ Екстрим (повільно) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-vi/strings.xml b/src/android/app/src/main/res/values-vi/strings.xml index 1d883e0e9a..808de4dd77 100644 --- a/src/android/app/src/main/res/values-vi/strings.xml +++ b/src/android/app/src/main/res/values-vi/strings.xml @@ -499,6 +499,7 @@ Tối đa (Chậm) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-zh-rCN/strings.xml b/src/android/app/src/main/res/values-zh-rCN/strings.xml index bfc7da1922..7ad4912d7d 100644 --- a/src/android/app/src/main/res/values-zh-rCN/strings.xml +++ b/src/android/app/src/main/res/values-zh-rCN/strings.xml @@ -712,6 +712,7 @@ 极高 (慢速) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values-zh-rTW/strings.xml b/src/android/app/src/main/res/values-zh-rTW/strings.xml index 71030e941b..be9c18bd76 100644 --- a/src/android/app/src/main/res/values-zh-rTW/strings.xml +++ b/src/android/app/src/main/res/values-zh-rTW/strings.xml @@ -713,6 +713,7 @@ 極高 (慢) + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml index 39dffd13c2..075457c849 100644 --- a/src/android/app/src/main/res/values/arrays.xml +++ b/src/android/app/src/main/res/values/arrays.xml @@ -176,6 +176,7 @@ + @string/resolution_quarter @string/resolution_half @string/resolution_three_quarter @string/resolution_one @@ -198,6 +199,7 @@ 3 4 5 + 6 diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 1385c4124f..48f8584be9 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -784,6 +784,7 @@ Aggressive + 0.25X (180p/270p) 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) diff --git a/src/common/settings.cpp b/src/common/settings.cpp index cb6431d536..53065c083c 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -260,6 +260,11 @@ const char* TranslateCategory(Category category) { void TranslateResolutionInfo(ResolutionSetup setup, ResolutionScalingInfo& info) { info.downscale = false; switch (setup) { + case ResolutionSetup::Res1_4X: + info.up_scale = 1; + info.down_shift = 2; + info.downscale = true; + break; case ResolutionSetup::Res1_2X: info.up_scale = 1; info.down_shift = 1; diff --git a/src/common/settings_enums.h b/src/common/settings_enums.h index c9b6a54ba6..28de592966 100644 --- a/src/common/settings_enums.h +++ b/src/common/settings_enums.h @@ -144,7 +144,18 @@ ENUM(FullscreenMode, Borderless, Exclusive); ENUM(NvdecEmulation, Off, Cpu, Gpu); -ENUM(ResolutionSetup, Res1_2X, Res3_4X, Res1X, Res3_2X, Res2X, Res3X, Res4X, Res5X, Res6X, Res7X, +ENUM(ResolutionSetup, + Res1_4X, + Res1_2X, + Res3_4X, + Res1X, + Res3_2X, + Res2X, + Res3X, + Res4X, + Res5X, + Res6X, + Res7X, Res8X); ENUM(ScalingFilter, NearestNeighbor, Bilinear, Bicubic, Gaussian, ScaleForce, Fsr, MaxEnum); diff --git a/src/yuzu/configuration/shared_translation.cpp b/src/yuzu/configuration/shared_translation.cpp index 868cef3763..9d73c3d9d4 100644 --- a/src/yuzu/configuration/shared_translation.cpp +++ b/src/yuzu/configuration/shared_translation.cpp @@ -515,6 +515,7 @@ std::unique_ptr ComboboxEnumeration(QWidget* parent) translations->insert( {Settings::EnumMetadata::Index(), { + PAIR(ResolutionSetup, Res1_4X, tr("0.25X (180p/270p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res1_2X, tr("0.5X (360p/540p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res3_4X, tr("0.75X (540p/810p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res1X, tr("1X (720p/1080p)")), diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 8c58fa5108..af6f71c3fd 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -1407,6 +1407,8 @@ void GMainWindow::InitializeHotkeys() { QStringLiteral("Multiplayer Direct Connect to Room")); LinkActionShortcut(ui->action_Show_Room, QStringLiteral("Multiplayer Show Current Room")); LinkActionShortcut(ui->action_Leave_Room, QStringLiteral("Multiplayer Leave Room")); + LinkActionShortcut(ui->action_Configure, QStringLiteral("Configure")); + LinkActionShortcut(ui->action_Configure_Current_Game, QStringLiteral("Configure Current Game")); static const QString main_window = QStringLiteral("Main Window"); const auto connect_shortcut = [&](const QString& action_name, const Fn& function) { diff --git a/src/yuzu/uisettings.h b/src/yuzu/uisettings.h index be9286cd45..1ec2f51f15 100644 --- a/src/yuzu/uisettings.h +++ b/src/yuzu/uisettings.h @@ -230,7 +230,7 @@ void RestoreWindowState(std::unique_ptr& qtConfig); // This must be in alphabetical order according to action name as it must have the same order as // UISetting::values.shortcuts, which is alphabetically ordered. // clang-format off -const std::array default_hotkeys{{ +const std::array default_hotkeys{{ {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Audio Mute/Unmute")).toStdString(), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")).toStdString(), {std::string("Ctrl+M"), std::string("Home+Dpad_Right"), Qt::WindowShortcut, false}}, {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Audio Volume Down")).toStdString(), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")).toStdString(), {std::string("-"), std::string("Home+Dpad_Down"), Qt::ApplicationShortcut, true}}, {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Audio Volume Up")).toStdString(), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")).toStdString(), {std::string("="), std::string("Home+Dpad_Up"), Qt::ApplicationShortcut, true}}, @@ -238,6 +238,8 @@ const std::array default_hotkeys{{ {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Change Adapting Filter")).toStdString(), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")).toStdString(), {std::string("F8"), std::string("Home+L"), Qt::ApplicationShortcut, false}}, {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Change Docked Mode")).toStdString(), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")).toStdString(), {std::string("F10"), std::string("Home+X"), Qt::ApplicationShortcut, false}}, {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Change GPU Accuracy")).toStdString(), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")).toStdString(), {std::string("F9"), std::string("Home+R"), Qt::ApplicationShortcut, false}}, + {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Configure")).toStdString(), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")).toStdString(), {std::string("Ctrl+,"), std::string(""), Qt::WidgetWithChildrenShortcut, false}}, + {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Configure Current Game")).toStdString(), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")).toStdString(), {std::string("Ctrl+."), std::string(""), Qt::WidgetWithChildrenShortcut, false}}, {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Continue/Pause Emulation")).toStdString(), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")).toStdString(), {std::string("F4"), std::string("Home+Plus"), Qt::WindowShortcut, false}}, {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Exit Fullscreen")).toStdString(), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")).toStdString(), {std::string("Esc"), std::string(""), Qt::WindowShortcut, false}}, {QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Exit eden")).toStdString(), QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys", "Main Window")).toStdString(), {std::string("Ctrl+Q"), std::string("Home+Minus"), Qt::WindowShortcut, false}},