diff options
| author | JosJuice <josjuice@gmail.com> | 2017-04-18 09:54:04 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-04-18 09:54:04 +0200 |
| commit | fd0b99be2e7bd69e25d08c42fa65c9566330f179 (patch) | |
| tree | 5f35d42ffb973495792652f0e2255e9bf56ad949 /Source/Android/app/src | |
| parent | f3f9489852bfcb1f7744ec3ff3108270b0070ea1 (diff) | |
| parent | 9cd9ae902a7c32e5d49840609259ff5a77e3af56 (diff) | |
Merge pull request #5273 from JosJuice/android-x86-64
x86-64 support on Android
Diffstat (limited to 'Source/Android/app/src')
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 --> |
