feat(renderer): add extended resolution scale options

- Add 1.25X (900p/1350p) and 1.75X (1260p/1890p) resolution scales

- Fix Android resolution array value mappings (was incorrectly mapped)

- Add all resolution options (0.25X to 8X) to Android settings

- Mark experimental resolutions with [EXPERIMENTAL] tag

Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
Zephyron
2026-02-04 17:48:16 +10:00
parent c788400b7c
commit 4d80cbba7f
5 changed files with 49 additions and 12 deletions

View File

@@ -88,12 +88,20 @@
</integer-array>
<string-array name="rendererResolutionNames">
<item>@string/resolution_quarter</item>
<item>@string/resolution_half</item>
<item>@string/resolution_three_quarter</item>
<item>@string/resolution_one</item>
<item>@string/resolution_one_and_quarter</item>
<item>@string/resolution_one_and_half</item>
<item>@string/resolution_one_and_three_quarter</item>
<item>@string/resolution_two</item>
<item>@string/resolution_three</item>
<item>@string/resolution_four</item>
<item>@string/resolution_five</item>
<item>@string/resolution_six</item>
<item>@string/resolution_seven</item>
<item>@string/resolution_eight</item>
</string-array>
<string-array name="rendererVSyncNames">
@@ -104,12 +112,20 @@
</string-array>
<integer-array name="rendererResolutionValues">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>-1</item> <!-- 0.25X (Res1_4X) -->
<item>0</item> <!-- 0.5X (Res1_2X) -->
<item>1</item> <!-- 0.75X (Res3_4X) -->
<item>2</item> <!-- 1X (Res1X) -->
<item>11</item> <!-- 1.25X (Res5_4X) -->
<item>3</item> <!-- 1.5X (Res3_2X) -->
<item>12</item> <!-- 1.75X (Res7_4X) -->
<item>4</item> <!-- 2X (Res2X) -->
<item>5</item> <!-- 3X (Res3X) -->
<item>6</item> <!-- 4X (Res4X) -->
<item>7</item> <!-- 5X (Res5X) -->
<item>8</item> <!-- 6X (Res6X) -->
<item>9</item> <!-- 7X (Res7X) -->
<item>10</item> <!-- 8X (Res8X) -->
</integer-array>
<integer-array name="rendererVSyncValues">

View File

@@ -636,13 +636,20 @@
<string name="renderer_accuracy_extreme">Extreme (Slow)</string>
<!-- Resolutions -->
<string name="resolution_quarter">0.25X (180p/270p)</string>
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_quarter">0.25X (180p/270p) [EXPERIMENTAL]</string>
<string name="resolution_half">0.5X (360p/540p) [EXPERIMENTAL]</string>
<string name="resolution_three_quarter">0.75X (540p/810p) [EXPERIMENTAL]</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_two">2X (1440p/2160p) (Slow)</string>
<string name="resolution_three">3X (2160p/3240p) (Slow)</string>
<string name="resolution_four">4X (2880p/4320p) (Slow)</string>
<string name="resolution_one_and_quarter">1.25X (900p/1350p) [EXPERIMENTAL]</string>
<string name="resolution_one_and_half">1.5X (1080p/1620p) [EXPERIMENTAL]</string>
<string name="resolution_one_and_three_quarter">1.75X (1260p/1890p) [EXPERIMENTAL]</string>
<string name="resolution_two">2X (1440p/2160p)</string>
<string name="resolution_three">3X (2160p/3240p)</string>
<string name="resolution_four">4X (2880p/4320p)</string>
<string name="resolution_five">5X (3600p/5400p)</string>
<string name="resolution_six">6X (4320p/6480p)</string>
<string name="resolution_seven">7X (5040p/7560p)</string>
<string name="resolution_eight">8X (5760p/8640p)</string>
<!-- Renderer VSync -->
<string name="renderer_vsync_immediate">Immediate (Off)</string>

View File

@@ -453,7 +453,9 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
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)")),
PAIR(ResolutionSetup, Res5_4X, tr("1.25X (900p/1350p) [EXPERIMENTAL]")),
PAIR(ResolutionSetup, Res3_2X, tr("1.5X (1080p/1620p) [EXPERIMENTAL]")),
PAIR(ResolutionSetup, Res7_4X, tr("1.75X (1260p/1890p) [EXPERIMENTAL]")),
PAIR(ResolutionSetup, Res2X, tr("2X (1440p/2160p)")),
PAIR(ResolutionSetup, Res3X, tr("3X (2160p/3240p)")),
PAIR(ResolutionSetup, Res4X, tr("4X (2880p/4320p)")),

View File

@@ -293,10 +293,18 @@ void TranslateResolutionInfo(ResolutionSetup setup, ResolutionScalingInfo& info)
info.up_scale = 1;
info.down_shift = 0;
break;
case ResolutionSetup::Res5_4X:
info.up_scale = 5;
info.down_shift = 2;
break;
case ResolutionSetup::Res3_2X:
info.up_scale = 3;
info.down_shift = 1;
break;
case ResolutionSetup::Res7_4X:
info.up_scale = 7;
info.down_shift = 2;
break;
case ResolutionSetup::Res2X:
info.up_scale = 2;
info.down_shift = 0;

View File

@@ -625,7 +625,9 @@ enum class ResolutionSetup : s32 {
Res1_2X = 0,
Res3_4X = 1,
Res1X = 2,
Res5_4X = 11, // 1.25X
Res3_2X = 3,
Res7_4X = 12, // 1.75X
Res2X = 4,
Res3X = 5,
Res4X = 6,
@@ -643,7 +645,9 @@ EnumMetadata<ResolutionSetup>::Canonicalizations() {
{"Res1_2X", ResolutionSetup::Res1_2X},
{"Res3_4X", ResolutionSetup::Res3_4X},
{"Res1X", ResolutionSetup::Res1X},
{"Res5_4X", ResolutionSetup::Res5_4X},
{"Res3_2X", ResolutionSetup::Res3_2X},
{"Res7_4X", ResolutionSetup::Res7_4X},
{"Res2X", ResolutionSetup::Res2X},
{"Res3X", ResolutionSetup::Res3X},
{"Res4X", ResolutionSetup::Res4X},