yall got any of them pixels (#140)

Adds 0.25x resolution option and fixes the configure hotkeys

Signed-off-by: swurl <swurl@swurl.xyz>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/140
Co-authored-by: swurl <swurl@swurl.xyz>
Co-committed-by: swurl <swurl@swurl.xyz>
This commit is contained in:
swurl 2025-05-31 02:16:36 +00:00 committed by crueter
parent 568ac9f7de
commit aaeaa884eb
29 changed files with 48 additions and 2 deletions

View file

@ -553,6 +553,7 @@
<string name="renderer_accuracy_extreme">Extreme (بطيء)</string> <string name="renderer_accuracy_extreme">Extreme (بطيء)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -487,6 +487,7 @@
<string name="renderer_accuracy_extreme">ئەوپەڕ (خاو)</string> <string name="renderer_accuracy_extreme">ئەوپەڕ (خاو)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -428,6 +428,7 @@
<string name="renderer_accuracy_high">Vysoká</string> <string name="renderer_accuracy_high">Vysoká</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -574,6 +574,7 @@ Wirklich fortfahren?</string>
<string name="renderer_accuracy_extreme">Extrem (Langsam)</string> <string name="renderer_accuracy_extreme">Extrem (Langsam)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -667,6 +667,7 @@
<string name="renderer_accuracy_extreme">Extremo (Lento)</string> <string name="renderer_accuracy_extreme">Extremo (Lento)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">x1 (720p/1080p)</string> <string name="resolution_one">x1 (720p/1080p)</string>

View file

@ -667,6 +667,7 @@
<string name="renderer_accuracy_extreme">افراطی (کند)</string> <string name="renderer_accuracy_extreme">افراطی (کند)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -717,6 +717,7 @@
<string name="renderer_accuracy_extreme">Extrême (Lent)</string> <string name="renderer_accuracy_extreme">Extrême (Lent)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -578,6 +578,7 @@
<string name="renderer_accuracy_extreme">אקסטרים (איטי)</string> <string name="renderer_accuracy_extreme">אקסטרים (איטי)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -703,6 +703,7 @@
<string name="renderer_accuracy_extreme">Extrém (Lassú)</string> <string name="renderer_accuracy_extreme">Extrém (Lassú)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -659,6 +659,7 @@
<string name="renderer_accuracy_extreme">Ekstrim (Lambat)</string> <string name="renderer_accuracy_extreme">Ekstrim (Lambat)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -617,6 +617,7 @@
<string name="renderer_accuracy_extreme">Estrema (Lenta)</string> <string name="renderer_accuracy_extreme">Estrema (Lenta)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -551,6 +551,7 @@
<string name="renderer_accuracy_extreme">最高 (低速)</string> <string name="renderer_accuracy_extreme">最高 (低速)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -658,6 +658,7 @@
<string name="renderer_accuracy_extreme">극한 (느림)</string> <string name="renderer_accuracy_extreme">극한 (느림)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -497,6 +497,7 @@
<string name="renderer_accuracy_extreme">Ekstrem (Treg)</string> <string name="renderer_accuracy_extreme">Ekstrem (Treg)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -495,6 +495,7 @@
<string name="renderer_accuracy_extreme">Ekstremalny (Wolny)</string> <string name="renderer_accuracy_extreme">Ekstremalny (Wolny)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -718,6 +718,7 @@ uma tentativa de mapeamento automático</string>
<string name="renderer_accuracy_extreme">Extrema (Lenta)</string> <string name="renderer_accuracy_extreme">Extrema (Lenta)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -718,6 +718,7 @@ uma tentativa de mapeamento automático</string>
<string name="renderer_accuracy_extreme">Estremo (Lento)</string> <string name="renderer_accuracy_extreme">Estremo (Lento)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -718,6 +718,7 @@
<string name="renderer_accuracy_extreme">Экстрим (медленный)</string> <string name="renderer_accuracy_extreme">Экстрим (медленный)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -463,6 +463,7 @@
<string name="renderer_accuracy_extreme">Екстрим (повільно)</string> <string name="renderer_accuracy_extreme">Екстрим (повільно)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -499,6 +499,7 @@
<string name="renderer_accuracy_extreme">Tối đa (Chậm)</string> <string name="renderer_accuracy_extreme">Tối đa (Chậm)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -712,6 +712,7 @@
<string name="renderer_accuracy_extreme">极高 (慢速)</string> <string name="renderer_accuracy_extreme">极高 (慢速)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -713,6 +713,7 @@
<string name="renderer_accuracy_extreme">極高 (慢)</string> <string name="renderer_accuracy_extreme">極高 (慢)</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -176,6 +176,7 @@
</integer-array> </integer-array>
<string-array name="rendererResolutionNames"> <string-array name="rendererResolutionNames">
<item>@string/resolution_quarter</item>
<item>@string/resolution_half</item> <item>@string/resolution_half</item>
<item>@string/resolution_three_quarter</item> <item>@string/resolution_three_quarter</item>
<item>@string/resolution_one</item> <item>@string/resolution_one</item>
@ -198,6 +199,7 @@
<item>3</item> <item>3</item>
<item>4</item> <item>4</item>
<item>5</item> <item>5</item>
<item>6</item>
</integer-array> </integer-array>
<integer-array name="rendererVSyncValues"> <integer-array name="rendererVSyncValues">

View file

@ -784,6 +784,7 @@
<string name="vram_usage_aggressive">Aggressive</string> <string name="vram_usage_aggressive">Aggressive</string>
<!-- Resolutions --> <!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string> <string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string> <string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string> <string name="resolution_one">1X (720p/1080p)</string>

View file

@ -260,6 +260,11 @@ const char* TranslateCategory(Category category) {
void TranslateResolutionInfo(ResolutionSetup setup, ResolutionScalingInfo& info) { void TranslateResolutionInfo(ResolutionSetup setup, ResolutionScalingInfo& info) {
info.downscale = false; info.downscale = false;
switch (setup) { switch (setup) {
case ResolutionSetup::Res1_4X:
info.up_scale = 1;
info.down_shift = 2;
info.downscale = true;
break;
case ResolutionSetup::Res1_2X: case ResolutionSetup::Res1_2X:
info.up_scale = 1; info.up_scale = 1;
info.down_shift = 1; info.down_shift = 1;

View file

@ -144,7 +144,18 @@ ENUM(FullscreenMode, Borderless, Exclusive);
ENUM(NvdecEmulation, Off, Cpu, Gpu); 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); Res8X);
ENUM(ScalingFilter, NearestNeighbor, Bilinear, Bicubic, Gaussian, ScaleForce, Fsr, MaxEnum); ENUM(ScalingFilter, NearestNeighbor, Bilinear, Bicubic, Gaussian, ScaleForce, Fsr, MaxEnum);

View file

@ -515,6 +515,7 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent)
translations->insert( translations->insert(
{Settings::EnumMetadata<Settings::ResolutionSetup>::Index(), {Settings::EnumMetadata<Settings::ResolutionSetup>::Index(),
{ {
PAIR(ResolutionSetup, Res1_4X, tr("0.25X (180p/270p) [EXPERIMENTAL]")),
PAIR(ResolutionSetup, Res1_2X, tr("0.5X (360p/540p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res1_2X, tr("0.5X (360p/540p) [EXPERIMENTAL]")),
PAIR(ResolutionSetup, Res3_4X, tr("0.75X (540p/810p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res3_4X, tr("0.75X (540p/810p) [EXPERIMENTAL]")),
PAIR(ResolutionSetup, Res1X, tr("1X (720p/1080p)")), PAIR(ResolutionSetup, Res1X, tr("1X (720p/1080p)")),

View file

@ -1407,6 +1407,8 @@ void GMainWindow::InitializeHotkeys() {
QStringLiteral("Multiplayer Direct Connect to Room")); QStringLiteral("Multiplayer Direct Connect to Room"));
LinkActionShortcut(ui->action_Show_Room, QStringLiteral("Multiplayer Show Current Room")); LinkActionShortcut(ui->action_Show_Room, QStringLiteral("Multiplayer Show Current Room"));
LinkActionShortcut(ui->action_Leave_Room, QStringLiteral("Multiplayer Leave 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"); static const QString main_window = QStringLiteral("Main Window");
const auto connect_shortcut = [&]<typename Fn>(const QString& action_name, const Fn& function) { const auto connect_shortcut = [&]<typename Fn>(const QString& action_name, const Fn& function) {

View file

@ -230,7 +230,7 @@ void RestoreWindowState(std::unique_ptr<QtConfig>& qtConfig);
// This must be in alphabetical order according to action name as it must have the same order as // 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. // UISetting::values.shortcuts, which is alphabetically ordered.
// clang-format off // clang-format off
const std::array<Shortcut, 28> default_hotkeys{{ const std::array<Shortcut, 30> 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 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 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}}, {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<Shortcut, 28> 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 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 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", "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", "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 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}}, {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}},