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}},