diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt
index f6c222479c..3af07c6c02 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt
@@ -32,6 +32,7 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
RENDERER_DESCRIPTOR_INDEXING("descriptor_indexing"),
RENDERER_SAMPLE_SHADING("sample_shading"),
PICTURE_IN_PICTURE("picture_in_picture"),
+ FRAME_SKIPPING("frame_skipping"),
USE_CUSTOM_RTC("custom_rtc_enabled"),
BLACK_BACKGROUNDS("black_backgrounds"),
JOYSTICK_REL_CENTER("joystick_rel_center"),
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
index 9cb1adb581..d53aa46265 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
@@ -42,7 +42,6 @@ enum class IntSetting(override val key: String) : AbstractIntSetting {
RENDERER_SAMPLE_SHADING_FRACTION("sample_shading_fraction"),
FAST_CPU_TIME("fast_cpu_time"),
CPU_TICKS("cpu_ticks"),
- FRAME_SKIPPING("frame_skipping"),
FAST_GPU_TIME("fast_gpu_time"),
BAT_TEMPERATURE_UNIT("bat_temperature_unit"),
CABINET_APPLET("cabinet_applet_mode"),
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt
index c2fa66e6ce..a940d2fca2 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt
@@ -243,12 +243,10 @@ abstract class SettingsItem(
)
)
put(
- SingleChoiceSetting(
- IntSetting.FRAME_SKIPPING,
+ SwitchSetting(
+ BooleanSetting.FRAME_SKIPPING,
titleId = R.string.frame_skipping,
descriptionId = R.string.frame_skipping_description,
- choicesId = R.array.frameSkippingNames,
- valuesId = R.array.frameSkippingValues
)
)
put(
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
index ee8140d199..a5daa9027f 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
@@ -450,7 +450,7 @@ class SettingsFragmentPresenter(
add(BooleanSetting.RENDERER_EARLY_RELEASE_FENCES.key)
add(BooleanSetting.BUFFER_REORDER_DISABLE.key)
add(BooleanSetting.FRAME_INTERPOLATION.key)
- add(IntSetting.FRAME_SKIPPING.key)
+ add(BooleanSetting.FRAME_SKIPPING.key)
add(BooleanSetting.RENDERER_FAST_GPU.key)
add(IntSetting.FAST_GPU_TIME.key)
add(IntSetting.RENDERER_SHADER_BACKEND.key)
diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml
index a5ab9bc3d9..602003cf8a 100644
--- a/src/android/app/src/main/res/values/arrays.xml
+++ b/src/android/app/src/main/res/values/arrays.xml
@@ -21,18 +21,6 @@
- 1
-
- - @string/disabled
- - 1
- - 2
-
-
-
- - 0
- - 1
- - 2
-
-
- @string/memory_4gb
- @string/memory_6gb
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index d649ba08ac..fa54f9cfa7 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -482,8 +482,8 @@
Display
Post-Processing
- WIP: Frameskip
- Toggle frame skipping to improve performance by reducing the number of rendered frames. This feature is still being worked on and will be enabled in future releases.
+ Frame Skipping
+ Toggle frame skipping to improve performance by reducing the number of rendered frames.
Accuracy level
Resolution (Handheld/Docked)
VSync mode
diff --git a/src/common/settings.h b/src/common/settings.h
index 61f79163b9..5a089507f6 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -326,8 +326,7 @@ struct Values {
SwitchableSetting frame_interpolation{linkage, true, "frame_interpolation", Category::Renderer,
Specialization::RuntimeList};
#endif
- SwitchableSetting frame_skipping{linkage, false, "frame_skipping", Category::Renderer,
- Specialization::RuntimeList};
+ SwitchableSetting frame_skipping{linkage, false, "frame_skipping", Category::Renderer};
SwitchableSetting use_disk_shader_cache{linkage, true, "use_disk_shader_cache",
Category::Renderer};
SwitchableSetting optimize_spirv_output{linkage,
diff --git a/src/yuzu/configuration/shared_translation.cpp b/src/yuzu/configuration/shared_translation.cpp
index 22f1921dbf..dbc6b35ddd 100644
--- a/src/yuzu/configuration/shared_translation.cpp
+++ b/src/yuzu/configuration/shared_translation.cpp
@@ -269,6 +269,18 @@ std::unique_ptr InitializeTranslations(QWidget* parent)
INSERT(Settings, bg_blue, QString(), QString());
// Renderer (Advanced Graphics)
+ INSERT(Settings,
+ enable_raii,
+ tr("RAII"),
+ tr("A method of automatic resource management in Vulkan "
+ "that ensures proper release of resources "
+ "when they are no longer needed, but may cause crashes in bundled games."));
+ INSERT(Settings,
+ frame_skipping,
+ tr("Frame Skipping"),
+ tr("Skips rendering every other frame while still presenting "
+ "the frame as rendered.\nThis cuts the effective FPS in half, but can make "
+ "games run stable at the game's target FPS on weaker hardware."));
INSERT(Settings,
async_presentation,
tr("Enable asynchronous presentation (Vulkan only)"),
@@ -335,12 +347,6 @@ std::unique_ptr InitializeTranslations(QWidget* parent)
tr("Improves rendering of transparency effects in specific games."));
// Renderer (Extensions)
- INSERT(Settings,
- enable_raii,
- tr("RAII"),
- tr("A method of automatic resource management in Vulkan "
- "that ensures proper release of resources "
- "when they are no longer needed, but may cause crashes in bundled games."));
INSERT(Settings,
dyna_state,
tr("Extended Dynamic State"),