summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2017-04-15 16:23:48 +0200
committerJosJuice <josjuice@gmail.com>2017-04-16 11:53:33 +0200
commit9cd9ae902a7c32e5d49840609259ff5a77e3af56 (patch)
tree143d2b6f8f1a392f198f25aeaa89d82e5ce4a73f /Source/Android/app/src/main/java
parenta389ae0711142d8c5c996fda3d1e6c5731d71de3 (diff)
x86-64 support on Android
We can do this now that the x86-64 JIT supports PIE. JITIL is deliberately excluded from the GUI because it doesn't support PIE yet. (JITIL will be used if it's set in the INI, though.)
Diffstat (limited to 'Source/Android/app/src/main/java')
-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
2 files changed, 25 insertions, 2 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));