diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java index 0f3ff9d717..d76d9ec688 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.java @@ -21,6 +21,8 @@ public class Settings public static final String SECTION_GFX_ENHANCEMENTS = "Enhancements"; public static final String SECTION_GFX_HACKS = "Hacks"; + public static final String SECTION_DEBUG = "Debug"; + public static final String SECTION_STEREOSCOPY = "Stereoscopy"; public static final String SECTION_WIIMOTE = "Wiimote"; @@ -39,7 +41,7 @@ public class Settings { configFileSectionsMap.put(SettingsFile.FILE_NAME_DOLPHIN, Arrays.asList(SECTION_INI_CORE, SECTION_INI_INTERFACE, SECTION_BINDINGS, - SECTION_ANALYTICS)); + SECTION_ANALYTICS, SECTION_DEBUG)); configFileSectionsMap.put(SettingsFile.FILE_NAME_GFX, Arrays.asList(SECTION_GFX_SETTINGS, SECTION_GFX_ENHANCEMENTS, SECTION_GFX_HACKS, SECTION_STEREOSCOPY)); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java index 56dcd9d63f..a88219b4a1 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/MenuTag.java @@ -12,6 +12,7 @@ public enum MenuTag GCPAD_TYPE("gc_pad_type"), GRAPHICS("graphics"), HACKS("hacks"), + DEBUG("debug"), ENHANCEMENTS("enhancements"), STEREOSCOPY("stereoscopy"), GCPAD_1("gcpad", 0), diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java index 31efc23e74..c10ec992bd 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java @@ -161,6 +161,10 @@ public final class SettingsFragmentPresenter addHackSettings(sl); break; + case DEBUG: + addDebugSettings(sl); + break; + case GCPAD_1: case GCPAD_2: case GCPAD_3: @@ -202,6 +206,7 @@ public final class SettingsFragmentPresenter sl.add(new SubmenuSetting(null, null, R.string.gamecube_submenu, 0, MenuTag.CONFIG_GAME_CUBE)); sl.add(new SubmenuSetting(null, null, R.string.wii_submenu, 0, MenuTag.CONFIG_WII)); + sl.add(new SubmenuSetting(null, null, R.string.debug_submenu, 0, MenuTag.DEBUG)); sl.add(new HeaderSetting(null, null, R.string.gametdb_thanks, 0)); } @@ -606,6 +611,57 @@ public final class SettingsFragmentPresenter fastDepth)); } + private void addDebugSettings(ArrayList sl) + { + SettingSection debugSection = mSettings.getSection(Settings.SECTION_DEBUG); + + Setting jitOff = debugSection.getSetting(SettingsFile.KEY_DEBUG_JITOFF); + Setting jitLoadStoreOff = debugSection.getSetting(SettingsFile.KEY_DEBUG_JITLOADSTOREOFF); + Setting jitLoadStoreFloatingPointOff = + debugSection.getSetting(SettingsFile.KEY_DEBUG_JITLOADSTOREFLOATINGPOINTOFF); + Setting jitLoadStorePairedOff = + debugSection.getSetting(SettingsFile.KEY_DEBUG_JITLOADSTOREPAIREDOFF); + Setting jitFloatingPointOff = + debugSection.getSetting(SettingsFile.KEY_DEBUG_JITFLOATINGPOINTOFF); + Setting jitIntegerOff = debugSection.getSetting(SettingsFile.KEY_DEBUG_JITINTEGEROFF); + Setting jitPairedOff = debugSection.getSetting(SettingsFile.KEY_DEBUG_JITPAIREDOFF); + Setting jitSystemRegistersOff = + debugSection.getSetting(SettingsFile.KEY_DEBUG_JITSYSTEMREGISTEROFF); + Setting jitBranchOff = debugSection.getSetting(SettingsFile.KEY_DEBUG_JITBRANCHOFF); + + sl.add(new HeaderSetting(null, null, R.string.debug_warning, 0)); + + sl.add(new HeaderSetting(null, null, R.string.debug_jit_header, 0)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_DEBUG_JITOFF, Settings.SECTION_DEBUG, + R.string.debug_jitoff, 0, false, + jitOff)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_DEBUG_JITLOADSTOREOFF, Settings.SECTION_DEBUG, + R.string.debug_jitloadstoreoff, 0, false, + jitLoadStoreOff)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_DEBUG_JITLOADSTOREFLOATINGPOINTOFF, + Settings.SECTION_DEBUG, + R.string.debug_jitloadstorefloatingoff, 0, false, + jitLoadStoreFloatingPointOff)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_DEBUG_JITLOADSTOREPAIREDOFF, Settings.SECTION_DEBUG, + R.string.debug_jitloadstorepairedoff, 0, false, + jitLoadStorePairedOff)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_DEBUG_JITFLOATINGPOINTOFF, Settings.SECTION_DEBUG, + R.string.debug_jitfloatingpointoff, 0, false, + jitFloatingPointOff)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_DEBUG_JITINTEGEROFF, Settings.SECTION_DEBUG, + R.string.debug_jitintegeroff, 0, false, + jitIntegerOff)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_DEBUG_JITPAIREDOFF, Settings.SECTION_DEBUG, + R.string.debug_jitpairedoff, 0, false, + jitPairedOff)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_DEBUG_JITSYSTEMREGISTEROFF, Settings.SECTION_DEBUG, + R.string.debug_jitsystemregistersoffr, 0, false, + jitSystemRegistersOff)); + sl.add(new CheckBoxSetting(SettingsFile.KEY_DEBUG_JITBRANCHOFF, Settings.SECTION_DEBUG, + R.string.debug_jitbranchoff, 0, false, + jitBranchOff)); + } + private void addStereoSettings(ArrayList sl) { SettingSection stereoScopySection = mSettings.getSection(Settings.SECTION_STEREOSCOPY); diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java index 322e2f0ae8..73eb02dae7 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/utils/SettingsFile.java @@ -90,6 +90,16 @@ public final class SettingsFile public static final String KEY_SHADER_COMPILATION_MODE = "ShaderCompilationMode"; public static final String KEY_WAIT_FOR_SHADERS = "WaitForShadersBeforeStarting"; + public static final String KEY_DEBUG_JITOFF = "JitOff"; + public static final String KEY_DEBUG_JITLOADSTOREOFF = "JitLoadStoreOff"; + public static final String KEY_DEBUG_JITLOADSTOREFLOATINGPOINTOFF = "JitLoadStoreFloatingOff"; + public static final String KEY_DEBUG_JITLOADSTOREPAIREDOFF = "JitLoadStorePairedOff"; + public static final String KEY_DEBUG_JITFLOATINGPOINTOFF = "JitFloatingPointOff"; + public static final String KEY_DEBUG_JITINTEGEROFF = "JitIntegerOff"; + public static final String KEY_DEBUG_JITPAIREDOFF = "JitPairedOff"; + public static final String KEY_DEBUG_JITSYSTEMREGISTEROFF = "JitSystemRegistersOff"; + public static final String KEY_DEBUG_JITBRANCHOFF = "JitBranchOff"; + public static final String KEY_GCPAD_TYPE = "SIDevice"; public static final String KEY_GCPAD_G_TYPE = "PadType"; diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index ed70092646..72759e1807 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -230,6 +230,20 @@ Compile Shaders Before Starting This causes a delay when launching games, but will reduce stuttering early on. + + Debug + Warning: These settings will slow emulation + Jit + Jit Disabled + Jit Load Store Disabled + Jit Load Store Floating Point Disabled + Jit Load Store Paired Disabled + Jit Floating Point Disabled + Jit Integer Disabled + Jit Paired Disabled + Jit System Registers Disabled + Jit Branch Disabled + Yes No