diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/IntSetting.kt b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/IntSetting.kt index 5b2016ac9..56ef1f667 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/IntSetting.kt +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/IntSetting.kt @@ -45,6 +45,7 @@ enum class IntSetting( PORTRAIT_BOTTOM_WIDTH("custom_portrait_bottom_width",Settings.SECTION_LAYOUT,640), PORTRAIT_BOTTOM_HEIGHT("custom_portrait_bottom_height",Settings.SECTION_LAYOUT,480), AUDIO_INPUT_TYPE("input_type", Settings.SECTION_AUDIO, 0), + AUDIO_EMULATION("audio_emulation", Settings.SECTION_AUDIO, 0), CPU_CLOCK_SPEED("cpu_clock_percentage", Settings.SECTION_CORE, 100), TEXTURE_FILTER("texture_filter", Settings.SECTION_RENDERER, 0), TEXTURE_SAMPLING("texture_sampling", Settings.SECTION_RENDERER, 0), @@ -76,6 +77,7 @@ enum class IntSetting( INIT_CLOCK, GRAPHICS_API, AUDIO_INPUT_TYPE, + AUDIO_EMULATION, ) fun from(key: String): IntSetting? = IntSetting.values().firstOrNull { it.key == key } 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 3efda00dd..0d871315b 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 @@ -1578,6 +1578,17 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView) ScaledFloatSetting.AUDIO_VOLUME.defaultValue ) ) + add( + SingleChoiceSetting( + IntSetting.AUDIO_EMULATION, + R.string.audio_emulation, + R.string.audio_emulation_description, + R.array.audioEmulationNames, + R.array.audioEmulationValues, + IntSetting.AUDIO_EMULATION.key, + IntSetting.AUDIO_EMULATION.defaultValue + ) + ) add( SwitchSetting( BooleanSetting.ENABLE_AUDIO_STRETCHING, diff --git a/src/android/app/src/main/jni/default_ini.h b/src/android/app/src/main/jni/default_ini.h index 25144c733..0f22d3de7 100644 --- a/src/android/app/src/main/jni/default_ini.h +++ b/src/android/app/src/main/jni/default_ini.h @@ -326,13 +326,9 @@ preload_textures = async_custom_loading = [Audio] -# Whether or not to enable DSP LLE -# 0 (default): No, 1: Yes -enable_dsp_lle = - -# Whether or not to run DSP LLE on a different thread -# 0 (default): No, 1: Yes -enable_dsp_lle_thread = +# Whether to enable Audio DSP in HLE or LLE mode (Note: LLE mode has a heavy performance impact)Add commentMore actions +# 0 (default): HLE, 1: LLE, 2: LLE Multithreaded +audio_emulation = # Whether or not to enable the audio-stretching post-processing effect. # This effect adjusts audio speed to match emulation speed and helps prevent audio stutter, diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml index e29871840..47b354a6b 100644 --- a/src/android/app/src/main/res/values/arrays.xml +++ b/src/android/app/src/main/res/values/arrays.xml @@ -221,6 +221,18 @@ 3 + Add commentMore actions + @string/audio_hle + @string/audio_lle + @string/audio_lle_multithread + + + + 0 + 1 + 2 + + @string/auto @string/none diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 878cdb205..2e8534db9 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -303,6 +303,11 @@ Load custom textures asynchronously with background threads to reduce loading stutter. + Audio EmulationAdd commentMore actions + Choose whether to enable Audio DSP in HLE or LLE mode (Note: LLE mode has a heavy performance impact). + HLE (default) + LLE + LLE (Multithreaded) Volume Audio Stretching Stretches audio to reduce stuttering. When enabled, increases audio latency and slightly reduces performance.