From 3684c5f17827dfc67e13f8226fb8e0c876611ca8 Mon Sep 17 00:00:00 2001 From: lizzie Date: Sat, 5 Sep 2026 17:39:32 +0000 Subject: [PATCH] 2026-09-05 17:39:32 Signed-off-by: lizzie --- .../org/yuzu/yuzu_emu/utils/NativeConfig.kt | 6 +++--- .../app/src/main/jni/native_config.cpp | 21 ++++++++++++------- 2 files changed, 16 insertions(+), 11 deletions(-) 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 10c8998d5c..02348e9719 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 @@ -28,13 +28,13 @@ object NativeConfig { * Reads values in the global config file and saves them. */ @Synchronized - external fun reloadGlobalConfig() + external fun reloadGlobalConfig(): Boolean /** * Saves global settings values in memory to disk. */ @Synchronized - external fun saveGlobalConfig() + external fun saveGlobalConfig(): Boolean /** * Creates per-game config for the specified parameters. Must be unloaded once per-game config @@ -54,7 +54,7 @@ object NativeConfig { * Saves per-game settings values in memory to disk. */ @Synchronized - external fun savePerGameConfig() + external fun savePerGameConfig(): Boolean /** * Destroys the stored per-game config object. This does not save the config. diff --git a/src/android/app/src/main/jni/native_config.cpp b/src/android/app/src/main/jni/native_config.cpp index 09a79ce4d7..433c25c668 100644 --- a/src/android/app/src/main/jni/native_config.cpp +++ b/src/android/app/src/main/jni/native_config.cpp @@ -45,12 +45,16 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_unloadGlobalConfig(JNIEnv* env, global_config.reset(); } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_reloadGlobalConfig(JNIEnv* env, jobject obj) { - global_config->AndroidConfig::ReloadAllValues(); +jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_reloadGlobalConfig(JNIEnv* env, jobject obj) { + if (global_config) + global_config->AndroidConfig::ReloadAllValues(); + return global_config != nullptr; } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_saveGlobalConfig(JNIEnv* env, jobject obj) { - global_config->AndroidConfig::SaveAllValues(); +jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_saveGlobalConfig(JNIEnv* env, jobject obj) { + if (global_config) + global_config->AndroidConfig::SaveAllValues(); + return global_config != nullptr; } void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_initializePerGameConfig(JNIEnv* env, jobject obj, @@ -63,13 +67,14 @@ void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_initializePerGameConfig(JNIEnv* std::make_unique(config_file_name, Config::ConfigType::PerGameConfig); } -jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_isPerGameConfigLoaded(JNIEnv* env, - jobject obj) { +jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_isPerGameConfigLoaded(JNIEnv* env, jobject obj) { return per_game_config != nullptr; } -void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_savePerGameConfig(JNIEnv* env, jobject obj) { - per_game_config->AndroidConfig::SaveAllValues(); +jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_savePerGameConfig(JNIEnv* env, jobject obj) { + if (per_game_config) + per_game_config->AndroidConfig::SaveAllValues(); + return per_game_config != nullptr; } void Java_org_yuzu_yuzu_1emu_utils_NativeConfig_unloadPerGameConfig(JNIEnv* env, jobject obj) {