summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
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));