Add sync core speed

This commit is contained in:
Pavel Barabanov 2025-04-11 18:52:04 +03:00 committed by MrPurple666
parent d25bea5762
commit 70c2439d8c
7 changed files with 53 additions and 5 deletions

View file

@ -10,6 +10,7 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
CPU_DEBUG_MODE("cpu_debug_mode"),
FASTMEM("cpuopt_fastmem"),
FASTMEM_EXCLUSIVES("cpuopt_fastmem_exclusives"),
CORE_SYNC_CORE_SPEED("sync_core_speed"),
RENDERER_USE_SPEED_LIMIT("use_speed_limit"),
USE_DOCKED_MODE("use_docked_mode"),
RENDERER_USE_DISK_SHADER_CACHE("use_disk_shader_cache"),
@ -27,9 +28,8 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
SHOW_INPUT_OVERLAY("show_input_overlay"),
TOUCHSCREEN("touchscreen"),
SHOW_THERMAL_OVERLAY("show_thermal_overlay"),
ENABLE_FRAME_INTERPOLATION("enable_frame_interpolation"),
ENABLE_FRAME_SKIPPING("enable_frame_skipping"),
CORE_USE_MULTI_CORE("use_multi_core");
ENABLE_FRAME_INTERPOLATION("enable_frame_interpolation"),
ENABLE_FRAME_SKIPPING("enable_frame_skipping");
external fun isFrameSkippingEnabled(): Boolean
external fun isFrameInterpolationEnabled(): Boolean

View file

@ -206,6 +206,25 @@ abstract class SettingsItem(
override fun reset() = BooleanSetting.ENABLE_FRAME_SKIPPING.reset()
}
val syncCoreSpeedSetting = object : AbstractBooleanSetting {
override val key = BooleanSetting.CORE_SYNC_CORE_SPEED.key
override fun getBoolean(needsGlobal: Boolean): Boolean {
return BooleanSetting.CORE_SYNC_CORE_SPEED.getBoolean(needsGlobal)
}
override fun setBoolean(value: Boolean) {
BooleanSetting.CORE_SYNC_CORE_SPEED.setBoolean(value)
}
override val defaultValue = BooleanSetting.CORE_SYNC_CORE_SPEED.defaultValue
override fun getValueAsString(needsGlobal: Boolean): String =
BooleanSetting.CORE_SYNC_CORE_SPEED.getValueAsString(needsGlobal)
override fun reset() = BooleanSetting.CORE_SYNC_CORE_SPEED.reset()
}
put(
SwitchSetting(
BooleanSetting.ENABLE_FRAME_INTERPOLATION,
@ -230,6 +249,14 @@ abstract class SettingsItem(
)
)
put(
SwitchSetting(
syncCoreSpeedSetting,
titleId = R.string.use_sync_core,
descriptionId = R.string.use_sync_core_description
)
)
put(
SingleChoiceSetting(
IntSetting.REGION_INDEX,

View file

@ -159,6 +159,7 @@ class SettingsFragmentPresenter(
add(StringSetting.DEVICE_NAME.key)
add(BooleanSetting.RENDERER_USE_SPEED_LIMIT.key)
add(ShortSetting.RENDERER_SPEED_LIMIT.key)
add(BooleanSetting.CORE_SYNC_CORE_SPEED.key)
add(BooleanSetting.USE_DOCKED_MODE.key)
add(IntSetting.REGION_INDEX.key)
add(IntSetting.LANGUAGE_INDEX.key)

View file

@ -217,6 +217,10 @@
<string name="cpu_accuracy">CPU accuracy</string>
<string name="value_with_units">%1$s%2$s</string>
<!-- Use Sync Core -->
<string name="use_sync_core">Synchronize Core Speed</string>
<string name="use_sync_core_description">Synchronize the core tick speed to the maximum speed percentage to improve performance without altering the games actual speed.</string>
<!-- System settings strings -->
<string name="device_name">Device name</string>
<string name="use_docked_mode">Docked Mode</string>