diff options
| author | xbzk <xbzk@eden-emu.dev> | 2026-08-30 08:17:54 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-08-30 08:17:54 +0200 |
| commit | 48a95da874d519297486402ef597da6f782f349c (patch) | |
| tree | 5a51902808780e8673cf6edef991eda3e9a6cc24 /src/android | |
| parent | 2fd1dc0ff980f037081921e12442b0e4c4373b6e (diff) | |
[debug] debug knobs adjustments (#4317)
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.
-------------------
minor changes to debug knobs:
-changed its category to System so it becomes per-game-able (believe me, it's useful)
-fixed kotlin field type to UShort
-changed get to Get for proper standard
-added spacings and more info to docs
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4317
Reviewed-by: Lizzie and Samuel <lizzie@eden-emu.dev>
Reviewed-by: crueter <crueter@eden-emu.dev>
Diffstat (limited to 'src/android')
9 files changed, 63 insertions, 10 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt index 4610574f21..4b46dd76a2 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt @@ -220,7 +220,7 @@ object NativeLibrary { external fun refreshThreadPolicies() - external fun getDebugKnobAt(index: Int): Boolean + external fun GetDebugKnobAt(index: Int): Boolean /** * Set the current speed limit to the configured turbo speed. diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt index 2b449beaff..fc4df4952d 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/Settings.kt @@ -35,8 +35,8 @@ object Settings { fun getPlayerString(player: Int): String = YuzuApplication.appContext.getString(R.string.preferences_player, player) - fun getDebugKnobAt(index: Int): Boolean { - return org.yuzu.yuzu_emu.NativeLibrary.getDebugKnobAt(index) + fun GetDebugKnobAt(index: Int): Boolean { + return org.yuzu.yuzu_emu.NativeLibrary.GetDebugKnobAt(index) } const val PREF_FIRST_APP_LAUNCH = "FirstApplicationLaunch" diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/ShortSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/ShortSetting.kt index 88c3615bdb..5f1dbe6372 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/ShortSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/ShortSetting.kt @@ -11,8 +11,7 @@ import org.yuzu.yuzu_emu.utils.NativeConfig enum class ShortSetting(override val key: String) : AbstractShortSetting { RENDERER_SPEED_LIMIT("speed_limit"), RENDERER_TURBO_SPEED_LIMIT("turbo_speed_limit"), - RENDERER_SLOW_SPEED_LIMIT("slow_speed_limit"), - DEBUG_KNOBS("debug_knobs") + RENDERER_SLOW_SPEED_LIMIT("slow_speed_limit") ; override fun getShort(needsGlobal: Boolean): Short = NativeConfig.getShort(key, needsGlobal) @@ -29,4 +28,4 @@ enum class ShortSetting(override val key: String) : AbstractShortSetting { override fun getValueAsString(needsGlobal: Boolean): String = getShort(needsGlobal).toString() override fun reset() = NativeConfig.setShort(key, defaultValue) -}
\ No newline at end of file +} diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/UShortSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/UShortSetting.kt new file mode 100644 index 0000000000..b55b4dd019 --- /dev/null +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/UShortSetting.kt @@ -0,0 +1,27 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + +package org.yuzu.yuzu_emu.features.settings.model + +import org.yuzu.yuzu_emu.utils.NativeConfig + +enum class UShortSetting(override val key: String) : AbstractIntSetting { + DEBUG_KNOBS("debug_knobs") + ; + + override fun getInt(needsGlobal: Boolean): Int = + NativeConfig.getUnsignedShort(key, needsGlobal) + + override fun setInt(value: Int) { + if (NativeConfig.isPerGameConfigLoaded()) { + global = false + } + NativeConfig.setUnsignedShort(key, value) + } + + override val defaultValue: Int by lazy { NativeConfig.getDefaultToString(key).toInt() } + + override fun getValueAsString(needsGlobal: Boolean): String = getInt(needsGlobal).toString() + + override fun reset() = NativeConfig.setUnsignedShort(key, defaultValue) +} 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 c05539c306..6d46b50051 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 @@ -20,6 +20,7 @@ import org.yuzu.yuzu_emu.features.settings.model.IntSetting import org.yuzu.yuzu_emu.features.settings.model.LongSetting import org.yuzu.yuzu_emu.features.settings.model.ShortSetting import org.yuzu.yuzu_emu.features.settings.model.StringSetting +import org.yuzu.yuzu_emu.features.settings.model.UShortSetting import org.yuzu.yuzu_emu.network.NetDataValidators import org.yuzu.yuzu_emu.utils.LosslessScalingHelper import org.yuzu.yuzu_emu.utils.NativeConfig @@ -1034,7 +1035,7 @@ abstract class SettingsItem( ) put( SpinBoxSetting( - ShortSetting.DEBUG_KNOBS, + UShortSetting.DEBUG_KNOBS, titleId = R.string.debug_knobs, descriptionId = R.string.debug_knobs_description, valueHint = R.string.debug_knobs_hint, 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 108861491a..8e4984efe1 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 @@ -25,6 +25,7 @@ import org.yuzu.yuzu_emu.features.settings.model.Settings import org.yuzu.yuzu_emu.features.settings.model.Settings.MenuTag import org.yuzu.yuzu_emu.features.settings.model.ShortSetting import org.yuzu.yuzu_emu.features.settings.model.StringSetting +import org.yuzu.yuzu_emu.features.settings.model.UShortSetting import org.yuzu.yuzu_emu.features.settings.model.view.* import org.yuzu.yuzu_emu.utils.InputHandler import org.yuzu.yuzu_emu.utils.LosslessScalingHelper @@ -1326,7 +1327,7 @@ class SettingsFragmentPresenter( add(HeaderSetting(R.string.general)) - add(ShortSetting.DEBUG_KNOBS.key) + add(UShortSetting.DEBUG_KNOBS.key) add(StringSetting.PROGRAM_ARGS.key) if (!NativeConfig.isPerGameConfigLoaded()) { diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NativeConfig.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NativeConfig.kt index d1b5b1373d..10c8998d5c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NativeConfig.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/NativeConfig.kt @@ -81,6 +81,12 @@ object NativeConfig { external fun setShort(key: String, value: Short) @Synchronized + external fun getUnsignedShort(key: String, needsGlobal: Boolean): Int + + @Synchronized + external fun setUnsignedShort(key: String, value: Int) + + @Synchronized external fun getInt(key: String, needsGlobal: Boolean): Int @Synchronized diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index e8e9f0a14b..9fc550985a 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp @@ -1300,8 +1300,8 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_refreshThreadPolicies(JNIEnv* env, jo Common::RefreshThreadPolicies(); } -jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_getDebugKnobAt(JNIEnv* env, jobject jobj, jint index) { - return static_cast<jboolean>(Settings::getDebugKnobAt(static_cast<u8>(index))); +jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_GetDebugKnobAt(JNIEnv* env, jobject jobj, jint index) { + return static_cast<jboolean>(Settings::GetDebugKnobAt(static_cast<u8>(index))); } void Java_org_yuzu_yuzu_1emu_NativeLibrary_setTurboSpeedLimit(JNIEnv *env, jobject jobj, jboolean enabled) { diff --git a/src/android/app/src/main/jni/native_config.cpp b/src/android/app/src/main/jni/native_config.cpp index 647fdbb997..09a79ce4d7 100644 --- a/src/android/app/src/main/jni/native_config.cpp +++ b/src/android/app/src/main/jni/native_config.cpp @@ -130,6 +130,25 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setShort(JNIEnv* env, jobject ob setting->SetValue(value); } +jint Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getUnsignedShort(JNIEnv* env, jobject obj, + jstring jkey, + jboolean needGlobal) { + auto setting = getSetting<u16>(env, jkey); + if (setting == nullptr) { + return -1; + } + return static_cast<jint>(setting->GetValue(static_cast<bool>(needGlobal))); +} + +void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_setUnsignedShort(JNIEnv* env, jobject obj, + jstring jkey, jint value) { + auto setting = getSetting<u16>(env, jkey); + if (setting == nullptr) { + return; + } + setting->SetValue(static_cast<u16>(value)); +} + jint Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getInt(JNIEnv* env, jobject obj, jstring jkey, jboolean needGlobal) { auto setting = getSetting<int>(env, jkey); |
