diff options
| author | 2023-02-20 03:19:51 -0800 | |
|---|---|---|
| committer | 2023-06-03 00:05:32 -0700 | |
| commit | 0276197744d5026f32a0b33e378cbf3636f97008 (patch) | |
| tree | 13ba9ba39150c36fae11ebcb36fc24ec759b4a76 /src/android | |
| parent | video_core: vulkan_device: Correct error message for unsuitable driver. (diff) | |
| download | yuzu-0276197744d5026f32a0b33e378cbf3636f97008.tar.gz yuzu-0276197744d5026f32a0b33e378cbf3636f97008.tar.xz yuzu-0276197744d5026f32a0b33e378cbf3636f97008.zip | |
android: jni: Ensure system is only initialized once.
- Fixes likelihood that fastmem allocation succeeds.
Diffstat (limited to 'src/android')
4 files changed, 8 insertions, 8 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.java b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.java index c09b711fd..6f76c3f95 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.java +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.java | |||
| @@ -185,8 +185,7 @@ public final class NativeLibrary { | |||
| 185 | 185 | ||
| 186 | public static native boolean ReloadKeys(); | 186 | public static native boolean ReloadKeys(); |
| 187 | 187 | ||
| 188 | // Create the config.ini file. | 188 | public static native void InitializeEmulation(); |
| 189 | public static native void CreateConfigFile(); | ||
| 190 | 189 | ||
| 191 | public static native int DefaultCPUCore(); | 190 | public static native int DefaultCPUCore(); |
| 192 | 191 | ||
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.java b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.java index f922ae183..6464c2286 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.java +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.java | |||
| @@ -27,7 +27,7 @@ public final class DirectoryInitialization { | |||
| 27 | 27 | ||
| 28 | if (directoryState != DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED) { | 28 | if (directoryState != DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED) { |
| 29 | initializeInternalStorage(context); | 29 | initializeInternalStorage(context); |
| 30 | NativeLibrary.CreateConfigFile(); | 30 | NativeLibrary.InitializeEmulation(); |
| 31 | directoryState = DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED; | 31 | directoryState = DirectoryInitializationState.YUZU_DIRECTORIES_INITIALIZED; |
| 32 | } | 32 | } |
| 33 | 33 | ||
diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index 2413a78f0..505ae1176 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp | |||
| @@ -40,7 +40,6 @@ namespace { | |||
| 40 | class EmulationSession final { | 40 | class EmulationSession final { |
| 41 | public: | 41 | public: |
| 42 | EmulationSession() { | 42 | EmulationSession() { |
| 43 | m_system.Initialize(); | ||
| 44 | m_vfs = std::make_shared<FileSys::RealVfsFilesystem>(); | 43 | m_vfs = std::make_shared<FileSys::RealVfsFilesystem>(); |
| 45 | } | 44 | } |
| 46 | 45 | ||
| @@ -126,7 +125,6 @@ public: | |||
| 126 | 125 | ||
| 127 | // Initialize system. | 126 | // Initialize system. |
| 128 | m_system.SetShuttingDown(false); | 127 | m_system.SetShuttingDown(false); |
| 129 | m_system.Initialize(); | ||
| 130 | m_system.ApplySettings(); | 128 | m_system.ApplySettings(); |
| 131 | m_system.HIDCore().ReloadInputDevices(); | 129 | m_system.HIDCore().ReloadInputDevices(); |
| 132 | m_system.SetContentProvider(std::make_unique<FileSys::ContentProviderUnion>()); | 130 | m_system.SetContentProvider(std::make_unique<FileSys::ContentProviderUnion>()); |
| @@ -498,9 +496,12 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_GetGitRevision([[maybe_unused]] JN | |||
| 498 | return {}; | 496 | return {}; |
| 499 | } | 497 | } |
| 500 | 498 | ||
| 501 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_CreateConfigFile | 499 | void Java_org_yuzu_yuzu_1emu_NativeLibrary_InitializeEmulation |
| 502 | [[maybe_unused]] (JNIEnv* env, [[maybe_unused]] jclass clazz) { | 500 | [[maybe_unused]] (JNIEnv* env, [[maybe_unused]] jclass clazz) { |
| 501 | // Create the default config.ini. | ||
| 503 | Config{}; | 502 | Config{}; |
| 503 | // Initialize the emulated system. | ||
| 504 | EmulationSession::GetInstance().System().Initialize(); | ||
| 504 | } | 505 | } |
| 505 | 506 | ||
| 506 | jint Java_org_yuzu_yuzu_1emu_NativeLibrary_DefaultCPUCore([[maybe_unused]] JNIEnv* env, | 507 | jint Java_org_yuzu_yuzu_1emu_NativeLibrary_DefaultCPUCore([[maybe_unused]] JNIEnv* env, |
diff --git a/src/android/app/src/main/jni/native.h b/src/android/app/src/main/jni/native.h index f799560e4..192c9261d 100644 --- a/src/android/app/src/main/jni/native.h +++ b/src/android/app/src/main/jni/native.h | |||
| @@ -86,8 +86,8 @@ JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SetSysDirectory(JNI | |||
| 86 | jclass clazz, | 86 | jclass clazz, |
| 87 | jstring path); | 87 | jstring path); |
| 88 | 88 | ||
| 89 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_CreateConfigFile(JNIEnv* env, | 89 | JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_InitializeEmulation(JNIEnv* env, |
| 90 | jclass clazz); | 90 | jclass clazz); |
| 91 | 91 | ||
| 92 | JNIEXPORT jint JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_DefaultCPUCore(JNIEnv* env, | 92 | JNIEXPORT jint JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_DefaultCPUCore(JNIEnv* env, |
| 93 | jclass clazz); | 93 | jclass clazz); |