From ae46333e99c9a30840facbfc423564f50f206d25 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Tue, 6 Aug 2019 20:59:41 +0300 Subject: [PATCH] Implement lib_loading_type::liblv2both --- rpcs3/Emu/Cell/PPUModule.cpp | 3 ++- rpcs3/Emu/Cell/lv2/sys_prx.cpp | 2 +- rpcs3/Emu/System.h | 3 ++- rpcs3/Json/tooltips.json | 1 + rpcs3/rpcs3qt/settings_dialog.cpp | 6 ++++-- rpcs3/rpcs3qt/settings_dialog.ui | 13 +++++++++++++ 6 files changed, 23 insertions(+), 5 deletions(-) diff --git a/rpcs3/Emu/Cell/PPUModule.cpp b/rpcs3/Emu/Cell/PPUModule.cpp index e898b6e201..7e885d9de9 100644 --- a/rpcs3/Emu/Cell/PPUModule.cpp +++ b/rpcs3/Emu/Cell/PPUModule.cpp @@ -49,6 +49,7 @@ void fmt_class_string::format(std::string& out, u64 arg) case lib_loading_type::manual: return "Manually load selected libraries"; case lib_loading_type::both: return "Load automatic and manual selection"; case lib_loading_type::liblv2only: return "Load liblv2.sprx only"; + case lib_loading_type::liblv2both: return "Load liblv2.sprx and manual selection"; } return unknown; @@ -1281,7 +1282,7 @@ void ppu_load_exec(const ppu_exec_object& elf) // Load required set of modules (lib_loading_type::both processed in sys_prx.cpp) load_libs = g_cfg.core.load_libraries.get_set(); } - else if (g_cfg.core.lib_loading == lib_loading_type::liblv2only) + else if (g_cfg.core.lib_loading == lib_loading_type::liblv2only || g_cfg.core.lib_loading == lib_loading_type::liblv2both) { // Load only liblv2.sprx load_libs.emplace("liblv2.sprx"); diff --git a/rpcs3/Emu/Cell/lv2/sys_prx.cpp b/rpcs3/Emu/Cell/lv2/sys_prx.cpp index 5543ff4d60..fdec09bdf5 100644 --- a/rpcs3/Emu/Cell/lv2/sys_prx.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_prx.cpp @@ -119,7 +119,7 @@ static error_code prx_load_module(const std::string& vpath, u64 flags, vm::ptr guiSettings, std: SubscribeTooltip(ui->lib_manu, json_cpu_lib["manual"].toString()); SubscribeTooltip(ui->lib_both, json_cpu_lib["both"].toString()); SubscribeTooltip(ui->lib_lv2, json_cpu_lib["liblv2"].toString()); + SubscribeTooltip(ui->lib_lv2b, json_cpu_lib["liblv2both"].toString()); // creating this in ui file keeps scrambling the order... QButtonGroup *libModeBG = new QButtonGroup(this); @@ -316,6 +317,7 @@ settings_dialog::settings_dialog(std::shared_ptr guiSettings, std: libModeBG->addButton(ui->lib_manu, (int)lib_loading_type::manual); libModeBG->addButton(ui->lib_both, (int)lib_loading_type::both); libModeBG->addButton(ui->lib_lv2, (int)lib_loading_type::liblv2only); + libModeBG->addButton(ui->lib_lv2b, (int)lib_loading_type::liblv2both); {// Handle lib loading options QString selectedLib = qstr(xemu_settings->GetSetting(emu_settings::LibLoadOptions)); @@ -387,7 +389,7 @@ settings_dialog::settings_dialog(std::shared_ptr guiSettings, std: auto l_OnLibButtonClicked = [=](int ind) { - if (ind == (int)lib_loading_type::manual || ind == (int)lib_loading_type::both) + if (ind == (int)lib_loading_type::manual || ind == (int)lib_loading_type::both || ind == (int)lib_loading_type::liblv2both) { ui->searchBox->setEnabled(true); ui->lleList->setEnabled(true); @@ -860,7 +862,7 @@ settings_dialog::settings_dialog(std::shared_ptr guiSettings, std: } ChangeMicrophoneType(ui->microphoneBox->currentText()); }; - + auto ChangeMicrophoneDevice = [=](u32 next_index, QString text) { xemu_settings->SetSetting(emu_settings::MicrophoneDevices, xemu_settings->m_microphone_creator.SetDevice(next_index, text)); diff --git a/rpcs3/rpcs3qt/settings_dialog.ui b/rpcs3/rpcs3qt/settings_dialog.ui index c598b6549f..d007f9a835 100644 --- a/rpcs3/rpcs3qt/settings_dialog.ui +++ b/rpcs3/rpcs3qt/settings_dialog.ui @@ -200,6 +200,19 @@ + + + + + 0 + 0 + + + + Load liblv2.sprx and manual selection + + +