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.