summaryrefslogtreecommitdiff
path: root/Source/Android/app/src
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2017-04-18 09:54:04 +0200
committerGitHub <noreply@github.com>2017-04-18 09:54:04 +0200
commitfd0b99be2e7bd69e25d08c42fa65c9566330f179 (patch)
tree5f35d42ffb973495792652f0e2255e9bf56ad949 /Source/Android/app/src
parentf3f9489852bfcb1f7744ec3ff3108270b0070ea1 (diff)
parent9cd9ae902a7c32e5d49840609259ff5a77e3af56 (diff)
Merge pull request #5273 from JosJuice/android-x86-64
x86-64 support on Android
Diffstat (limited to 'Source/Android/app/src')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java25
-rw-r--r--Source/Android/app/src/main/res/values/arrays.xml26
3 files changed, 45 insertions, 8 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
index 464d841277..bb9a75194b 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
@@ -323,6 +323,8 @@ public final class NativeLibrary
*/
public static native String GetUserDirectory();
+ public static native int DefaultCPUCore();
+
/**
* Begins emulation.
*/
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java
index 1ad529afd8..aa02ad3e5c 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/settings/SettingsFragmentPresenter.java
@@ -1,5 +1,6 @@
package org.dolphinemu.dolphinemu.ui.settings;
+import org.dolphinemu.dolphinemu.NativeLibrary;
import org.dolphinemu.dolphinemu.R;
import org.dolphinemu.dolphinemu.model.settings.BooleanSetting;
import org.dolphinemu.dolphinemu.model.settings.IntSetting;
@@ -179,8 +180,28 @@ public final class SettingsFragmentPresenter
mView.passSettingsToActivity(mSettings);
}
- // TODO Set default value for cpuCore based on arch.
- sl.add(new SingleChoiceSetting(SettingsFile.KEY_CPU_CORE, SettingsFile.SECTION_CORE, SettingsFile.SETTINGS_DOLPHIN, R.string.cpu_core, 0, R.array.emuCoresEntries, R.array.emuCoresValues, 4, cpuCore));
+ // TODO: Having different emuCoresEntries/emuCoresValues for each architecture is annoying.
+ // The proper solution would be to have one emuCoresEntries and one emuCoresValues
+ // and exclude the values that aren't present in PowerPC::AvailableCPUCores().
+ int defaultCpuCore = NativeLibrary.DefaultCPUCore();
+ int emuCoresEntries;
+ int emuCoresValues;
+ if (defaultCpuCore == 1) // x86-64
+ {
+ emuCoresEntries = R.array.emuCoresEntriesX86_64;
+ emuCoresValues = R.array.emuCoresValuesX86_64;
+ }
+ else if (defaultCpuCore == 4) // AArch64
+ {
+ emuCoresEntries = R.array.emuCoresEntriesARM64;
+ emuCoresValues = R.array.emuCoresValuesARM64;
+ }
+ else
+ {
+ emuCoresEntries = R.array.emuCoresEntriesGeneric;
+ emuCoresValues = R.array.emuCoresValuesGeneric;
+ }
+ sl.add(new SingleChoiceSetting(SettingsFile.KEY_CPU_CORE, SettingsFile.SECTION_CORE, SettingsFile.SETTINGS_DOLPHIN, R.string.cpu_core, 0, emuCoresEntries, emuCoresValues, defaultCpuCore, cpuCore));
sl.add(new CheckBoxSetting(SettingsFile.KEY_DUAL_CORE, SettingsFile.SECTION_CORE, SettingsFile.SETTINGS_DOLPHIN, R.string.dual_core, R.string.dual_core_descrip, true, dualCore));
sl.add(new CheckBoxSetting(SettingsFile.KEY_OVERCLOCK_ENABLE, SettingsFile.SECTION_CORE, SettingsFile.SETTINGS_DOLPHIN, R.string.overclock_enable, R.string.overclock_enable_description, false, overclockEnable));
sl.add(new SliderSetting(SettingsFile.KEY_OVERCLOCK_PERCENT, SettingsFile.SECTION_CORE, SettingsFile.SETTINGS_DOLPHIN, R.string.overclock_title, 0, 400, "%", 100, overclock));
diff --git a/Source/Android/app/src/main/res/values/arrays.xml b/Source/Android/app/src/main/res/values/arrays.xml
index 4732f14ccf..42b5409884 100644
--- a/Source/Android/app/src/main/res/values/arrays.xml
+++ b/Source/Android/app/src/main/res/values/arrays.xml
@@ -4,19 +4,33 @@
<resources>
<!-- New UI CPU Core selection - Default -->
- <string-array name="emuCoresEntries" translatable="false">
+ <string-array name="emuCoresEntriesX86_64" translatable="false">
+ <item>Interpreter</item>
+ <item>Cached Interpreter</item>
+ <item>JIT Recompiler</item>
+ </string-array>
+ <integer-array name="emuCoresValuesX86_64" translatable="false">
+ <item>0</item>
+ <item>5</item>
+ <item>1</item>
+ </integer-array>
+ <string-array name="emuCoresEntriesARM64" translatable="false">
<item>Interpreter</item>
<item>Cached Interpreter</item>
<item>JIT ARM64 Recompiler</item>
- <!--<item>JIT64 Recompiler</item>
- <item>JITIL Recompiler</item>-->
</string-array>
- <integer-array name="emuCoresValues" translatable="false">
+ <integer-array name="emuCoresValuesARM64" translatable="false">
<item>0</item>
<item>5</item>
<item>4</item>
- <!--<item>1</item>
- <item>2</item>-->
+ </integer-array>
+ <string-array name="emuCoresEntriesGeneric" translatable="false">
+ <item>Interpreter</item>
+ <item>Cached Interpreter</item>
+ </string-array>
+ <integer-array name="emuCoresValuesGeneric" translatable="false">
+ <item>0</item>
+ <item>5</item>
</integer-array>
<!-- Video backend selection -->