diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index 7eac839b05..aa8e0b6f80 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -741,6 +741,16 @@ game_boot_result Emulator::Load(const std::string& title_id, bool add_only, bool } } } + + // Force audio provider + if (m_path.ends_with("vsh.self"sv)) + { + g_cfg.audio.provider.set(audio_provider::rsxaudio); + } + else + { + g_cfg.audio.provider.set(audio_provider::cell_audio); + } } initalize_timebased_time(); diff --git a/rpcs3/rpcs3qt/gui_application.cpp b/rpcs3/rpcs3qt/gui_application.cpp index 1a22191ee1..fb016f1b8b 100644 --- a/rpcs3/rpcs3qt/gui_application.cpp +++ b/rpcs3/rpcs3qt/gui_application.cpp @@ -21,6 +21,7 @@ #include "Emu/Io/Null/null_music_handler.h" #include "Emu/Cell/Modules/cellAudio.h" #include "Emu/Cell/lv2/sys_rsxaudio.h" +#include "Emu/Cell/lv2/sys_process.h" #include "Emu/RSX/Overlays/overlay_perf_metrics.h" #include "Emu/system_utils.hpp" #include "Emu/vfs_config.h" @@ -629,6 +630,20 @@ void gui_application::OnEmuSettingsChange() } rpcs3::utils::configure_logs(); + + if (!Emu.IsStopped()) + { + // Force audio provider + if (g_ps3_process_info.get_cellos_appname() == "vsh.self"sv) + { + g_cfg.audio.provider.set(audio_provider::rsxaudio); + } + else + { + g_cfg.audio.provider.set(audio_provider::cell_audio); + } + } + audio::configure_audio(); audio::configure_rsxaudio(); rsx::overlays::reset_performance_overlay(); diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index 20712e53d0..d0b0377a96 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -881,16 +881,6 @@ settings_dialog::settings_dialog(std::shared_ptr gui_settings, std enable_buffering_options(enabled && ui->enableBuffering->isChecked()); }; - const auto enable_avport_option = [this](int index) - { - if (index < 0) return; - const QVariantList var_list = ui->audioProviderBox->itemData(index).toList(); - ensure(var_list.size() == 2 && var_list[0].canConvert()); - const QString text = var_list[0].toString(); - const bool enabled = text == "RSXAudio"; - ui->audioAvportBox->setEnabled(enabled); - }; - const QString mic_none = m_emu_settings->m_microphone_creator.get_none(); const auto change_microphone_type = [mic_none, this](int index) @@ -972,7 +962,7 @@ settings_dialog::settings_dialog(std::shared_ptr gui_settings, std m_emu_settings->EnhanceComboBox(ui->audioProviderBox, emu_settings_type::AudioProvider); SubscribeTooltip(ui->gb_audio_provider, tooltips.settings.audio_provider); - connect(ui->audioProviderBox, QOverload::of(&QComboBox::currentIndexChanged), enable_avport_option); + ui->gb_audio_provider->setVisible(false); // Hidden for now. This option is forced on boot. m_emu_settings->EnhanceComboBox(ui->audioAvportBox, emu_settings_type::AudioAvport); SubscribeTooltip(ui->gb_audio_avport, tooltips.settings.audio_avport); @@ -1033,7 +1023,6 @@ settings_dialog::settings_dialog(std::shared_ptr gui_settings, std connect(ui->enableTimeStretching, &QCheckBox::toggled, enable_time_stretching_options); enable_buffering(ui->audioOutBox->currentIndex()); - enable_avport_option(ui->audioProviderBox->currentIndex()); // Sliders