diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt index 4e5481d7c..607aec3a3 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/BooleanSetting.kt @@ -15,7 +15,8 @@ enum class BooleanSetting( ALLOW_PLUGIN_LOADER("allow_plugin_loader", Settings.SECTION_SYSTEM, true), SWAP_SCREEN("swap_screen", Settings.SECTION_LAYOUT, false), INSTANT_DEBUG_LOG("instant_debug_log", Settings.SECTION_DEBUG, false), - CUSTOM_LAYOUT("custom_layout",Settings.SECTION_LAYOUT,false); + CUSTOM_LAYOUT("custom_layout",Settings.SECTION_LAYOUT,false), + SWAP_EYES_3D("swap_eyes_3d",Settings.SECTION_RENDERER,false); override var boolean: Boolean = defaultValue diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt index 31401567f..053ccbb76 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsFragmentPresenter.kt @@ -845,6 +845,16 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) ) ) + add( + SwitchSetting( + BooleanSetting.SWAP_EYES_3D, + R.string.swap_eyes_3d, + R.string.swap_eyes_3d_description, + BooleanSetting.SWAP_EYES_3D.key, + BooleanSetting.SWAP_EYES_3D.defaultValue + ) + ) + add(HeaderSetting(R.string.cardboard_vr)) add( SliderSetting( diff --git a/src/android/app/src/main/jni/config.cpp b/src/android/app/src/main/jni/config.cpp index 19e422324..b18c4cf7b 100644 --- a/src/android/app/src/main/jni/config.cpp +++ b/src/android/app/src/main/jni/config.cpp @@ -173,6 +173,7 @@ void Config::ReadValues() { ReadSetting("Renderer", Settings::values.bg_blue); ReadSetting("Renderer", Settings::values.delay_game_render_thread_us); ReadSetting("Renderer", Settings::values.disable_right_eye_render); + ReadSetting("Renderer", Settings::values.swap_eyes_3d); // Layout // Somewhat inelegant solution to ensure layout value is between 0 and 5 on read diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml index 4159d9e4e..3d9dbbeab 100644 --- a/src/android/app/src/main/res/values/arrays.xml +++ b/src/android/app/src/main/res/values/arrays.xml @@ -188,7 +188,7 @@ @string/off @string/side_by_side - @string/reverse_side_by_side + @string/side_by_side_full @string/anaglyph @string/interlaced @string/reverse_interlaced diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 5495a2a23..d7f3e517e 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -259,6 +259,8 @@ Stereoscopic 3D Mode Depth Specifies the value of the 3D slider. This should be set to higher than 0% when Stereoscopic 3D is enabled. + Swap Eyes + Swaps which eye is shown where. Combine with Side by Side mode and cross your eyes to see 3D with no equipment! Cardboard VR Cardboard Screen Size Scales the screen to a percentage of its original size. @@ -586,7 +588,7 @@ Side by Side - Reverse Side by Side + Side by Side Full Width Anaglyph Interlaced Reverse Interlaced