summaryrefslogtreecommitdiff
path: root/src/android
diff options
context:
space:
mode:
authorGravatar bunnei2023-02-20 03:19:51 -0800
committerGravatar bunnei2023-06-03 00:05:32 -0700
commit0276197744d5026f32a0b33e378cbf3636f97008 (patch)
tree13ba9ba39150c36fae11ebcb36fc24ec759b4a76 /src/android
parentvideo_core: vulkan_device: Correct error message for unsuitable driver. (diff)
downloadyuzu-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')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.java3
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.java2
-rw-r--r--src/android/app/src/main/jni/native.cpp7
-rw-r--r--src/android/app/src/main/jni/native.h4
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 {
40class EmulationSession final { 40class EmulationSession final {
41public: 41public:
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
501void Java_org_yuzu_yuzu_1emu_NativeLibrary_CreateConfigFile 499void 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
506jint Java_org_yuzu_yuzu_1emu_NativeLibrary_DefaultCPUCore([[maybe_unused]] JNIEnv* env, 507jint 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
89JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_CreateConfigFile(JNIEnv* env, 89JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_InitializeEmulation(JNIEnv* env,
90 jclass clazz); 90 jclass clazz);
91 91
92JNIEXPORT jint JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_DefaultCPUCore(JNIEnv* env, 92JNIEXPORT jint JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_DefaultCPUCore(JNIEnv* env,
93 jclass clazz); 93 jclass clazz);