From 3f704dca75e3a3225e14dcab8ef1fae485682cae Mon Sep 17 00:00:00 2001 From: degasus Date: Sun, 3 Apr 2016 10:38:41 +0200 Subject: [PATCH 1/3] Android: Also copy sys/Wii directory. Seems like this one was just missed, some games just did not start without it. --- .../dolphinemu/dolphinemu/services/AssetCopyService.java | 9 +++------ Source/Android/jni/CMakeLists.txt | 5 ++++- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/AssetCopyService.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/AssetCopyService.java index a93e9c501b..a700b31aa2 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/AssetCopyService.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/AssetCopyService.java @@ -37,18 +37,15 @@ public final class AssetCopyService extends IntentService { String BaseDir = NativeLibrary.GetUserDirectory(); String ConfigDir = BaseDir + File.separator + "Config"; - String GCDir = BaseDir + File.separator + "GC"; // Copy assets if needed - File file = new File(GCDir + File.separator + "font_sjis.bin"); + File file = new File(BaseDir + File.separator + "GC" + File.separator + "font_sjis.bin"); if(!file.exists()) { NativeLibrary.CreateUserFolders(); - copyAsset("dsp_coef.bin", GCDir + File.separator + "dsp_coef.bin"); - copyAsset("dsp_rom.bin", GCDir + File.separator + "dsp_rom.bin"); - copyAsset("font_ansi.bin", GCDir + File.separator + "font_ansi.bin"); - copyAsset("font_sjis.bin", GCDir + File.separator + "font_sjis.bin"); + copyAssetFolder("GC", BaseDir + File.separator + "GC"); copyAssetFolder("Shaders", BaseDir + File.separator + "Shaders"); + copyAssetFolder("Wii", BaseDir + File.separator + "Wii"); } else { diff --git a/Source/Android/jni/CMakeLists.txt b/Source/Android/jni/CMakeLists.txt index 78dbe65db7..b8f0cb865e 100644 --- a/Source/Android/jni/CMakeLists.txt +++ b/Source/Android/jni/CMakeLists.txt @@ -26,7 +26,10 @@ add_custom_command(TARGET ${SHARED_LIB} POST_BUILD COMMAND ${CMAKE_STRIP} ${CMAKE_SOURCE_DIR}/Source/Android/app/src/main/jniLibs/${ANDROID_NDK_ABI_NAME}/lib${SHARED_LIB}.so ) add_custom_command(TARGET ${SHARED_LIB} POST_BUILD - COMMAND cp ARGS ${CMAKE_SOURCE_DIR}/Data/Sys/GC/* ${CMAKE_SOURCE_DIR}/Source/Android/app/src/main/assets/ + COMMAND cp ARGS -r ${CMAKE_SOURCE_DIR}/Data/Sys/GC ${CMAKE_SOURCE_DIR}/Source/Android/app/src/main/assets/ +) +add_custom_command(TARGET ${SHARED_LIB} POST_BUILD + COMMAND cp ARGS -r ${CMAKE_SOURCE_DIR}/Data/Sys/Wii ${CMAKE_SOURCE_DIR}/Source/Android/app/src/main/assets/ ) add_custom_command(TARGET ${SHARED_LIB} POST_BUILD COMMAND cp ARGS -r ${CMAKE_SOURCE_DIR}/Data/Sys/Shaders ${CMAKE_SOURCE_DIR}/Source/Android/app/src/main/assets/ From 18db9498d701bd5e4af3d7c25ee5e6b53b91f71a Mon Sep 17 00:00:00 2001 From: degasus Date: Sun, 3 Apr 2016 10:43:11 +0200 Subject: [PATCH 2/3] Android: Check asset overwrite per file. So new files will be added, eg the missed Wii directory. --- .../dolphinemu/services/AssetCopyService.java | 45 +++++++++---------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/AssetCopyService.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/AssetCopyService.java index a700b31aa2..dec5f53b68 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/AssetCopyService.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/AssetCopyService.java @@ -39,23 +39,15 @@ public final class AssetCopyService extends IntentService String ConfigDir = BaseDir + File.separator + "Config"; // Copy assets if needed - File file = new File(BaseDir + File.separator + "GC" + File.separator + "font_sjis.bin"); - if(!file.exists()) - { - NativeLibrary.CreateUserFolders(); - copyAssetFolder("GC", BaseDir + File.separator + "GC"); - copyAssetFolder("Shaders", BaseDir + File.separator + "Shaders"); - copyAssetFolder("Wii", BaseDir + File.separator + "Wii"); - } - else - { - Log.verbose("[AssetCopyService] Skipping asset copy operation."); - } + NativeLibrary.CreateUserFolders(); + copyAssetFolder("GC", BaseDir + File.separator + "GC", false); + copyAssetFolder("Shaders", BaseDir + File.separator + "Shaders", false); + copyAssetFolder("Wii", BaseDir + File.separator + "Wii", false); // Always copy over the GCPad config in case of change or corruption. // Not a user configurable file. - copyAsset("GCPadNew.ini", ConfigDir + File.separator + "GCPadNew.ini"); - copyAsset("WiimoteNew.ini", ConfigDir + File.separator + "WiimoteNew.ini"); + copyAsset("GCPadNew.ini", ConfigDir + File.separator + "GCPadNew.ini", true); + copyAsset("WiimoteNew.ini", ConfigDir + File.separator + "WiimoteNew.ini", true); // Record the fact that we've done this before, so we don't do it on every launch. SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); @@ -65,19 +57,23 @@ public final class AssetCopyService extends IntentService editor.commit(); } - private void copyAsset(String asset, String output) + private void copyAsset(String asset, String output, Boolean overwrite) { - Log.verbose("[AssetCopyService] Copying " + asset + " to " + output); + Log.verbose("[AssetCopyService] Copying File " + asset + " to " + output); InputStream in = null; OutputStream out = null; try { - in = getAssets().open(asset); - out = new FileOutputStream(output); - copyFile(in, out); - in.close(); - out.close(); + File file = new File(output); + if(!file.exists() || overwrite) + { + in = getAssets().open(asset); + out = new FileOutputStream(output); + copyFile(in, out); + in.close(); + out.close(); + } } catch (IOException e) { @@ -85,15 +81,16 @@ public final class AssetCopyService extends IntentService } } - private void copyAssetFolder(String assetFolder, String outputFolder) + private void copyAssetFolder(String assetFolder, String outputFolder, Boolean overwrite) { - Log.verbose("[AssetCopyService] Copying " + assetFolder + " to " + outputFolder); + Log.verbose("[AssetCopyService] Copying Folder " + assetFolder + " to " + outputFolder); try { for (String file : getAssets().list(assetFolder)) { - copyAsset(assetFolder + File.separator + file, outputFolder + File.separator + file); + copyAssetFolder(assetFolder + File.separator + file, outputFolder + File.separator + file, overwrite); + copyAsset(assetFolder + File.separator + file, outputFolder + File.separator + file, overwrite); } } catch (IOException e) From 3a4ff307458c7943cf36eb55037d92de274eb96f Mon Sep 17 00:00:00 2001 From: degasus Date: Sun, 3 Apr 2016 10:56:35 +0200 Subject: [PATCH 3/3] Android: Also create directorys for the Wii files. --- Source/Android/jni/MainAndroid.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Source/Android/jni/MainAndroid.cpp b/Source/Android/jni/MainAndroid.cpp index 7d2849c96e..df35f9e63d 100644 --- a/Source/Android/jni/MainAndroid.cpp +++ b/Source/Android/jni/MainAndroid.cpp @@ -541,7 +541,10 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_CreateUserFo { File::CreateFullPath(File::GetUserPath(D_CONFIG_IDX)); File::CreateFullPath(File::GetUserPath(D_GCUSER_IDX)); - File::CreateFullPath(File::GetUserPath(D_WIIROOT_IDX) + DIR_SEP); + File::CreateFullPath(File::GetUserPath(D_WIIROOT_IDX) + DIR_SEP WII_WC24CONF_DIR DIR_SEP "mbox" DIR_SEP); + File::CreateFullPath(File::GetUserPath(D_WIIROOT_IDX) + DIR_SEP "shared2" DIR_SEP "succession" DIR_SEP); + File::CreateFullPath(File::GetUserPath(D_WIIROOT_IDX) + DIR_SEP "shared2" DIR_SEP "ec" DIR_SEP); + File::CreateFullPath(File::GetUserPath(D_WIIROOT_IDX) + DIR_SEP WII_SYSCONF_DIR DIR_SEP); File::CreateFullPath(File::GetUserPath(D_CACHE_IDX)); File::CreateFullPath(File::GetUserPath(D_DUMPDSP_IDX)); File::CreateFullPath(File::GetUserPath(D_DUMPTEXTURES_IDX)); @@ -549,7 +552,7 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_CreateUserFo File::CreateFullPath(File::GetUserPath(D_SCREENSHOTS_IDX)); File::CreateFullPath(File::GetUserPath(D_STATESAVES_IDX)); File::CreateFullPath(File::GetUserPath(D_MAILLOGS_IDX)); - File::CreateFullPath(File::GetUserPath(D_SHADERS_IDX)); + File::CreateFullPath(File::GetUserPath(D_SHADERS_IDX) + "Anaglyph" DIR_SEP); File::CreateFullPath(File::GetUserPath(D_GCUSER_IDX) + USA_DIR DIR_SEP); File::CreateFullPath(File::GetUserPath(D_GCUSER_IDX) + EUR_DIR DIR_SEP); File::CreateFullPath(File::GetUserPath(D_GCUSER_IDX) + JAP_DIR DIR_SEP);