From 08aad5461ed797315d01045d1238e13f01fa90db Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Tue, 24 May 2022 22:22:15 +1000 Subject: [PATCH] Qt: Add block dump options --- pcsx2-qt/MainWindow.cpp | 25 +++++++++++++++++++++++++ pcsx2-qt/MainWindow.h | 1 + pcsx2-qt/MainWindow.ui | 10 ++++++++++ pcsx2/Pcsx2Config.cpp | 4 ++-- 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/pcsx2-qt/MainWindow.cpp b/pcsx2-qt/MainWindow.cpp index b6b77405b8..7389ee0b15 100644 --- a/pcsx2-qt/MainWindow.cpp +++ b/pcsx2-qt/MainWindow.cpp @@ -219,6 +219,8 @@ void MainWindow::connectSignals() SettingWidgetBinder::BindWidgetToBoolSetting(nullptr, m_ui.actionEnableFileLogging, "Logging", "EnableFileLogging", false); connect(m_ui.actionEnableFileLogging, &QAction::triggered, this, &MainWindow::onLoggingOptionChanged); SettingWidgetBinder::BindWidgetToBoolSetting(nullptr, m_ui.actionEnableCDVDVerboseReads, "EmuCore", "CdvdVerboseReads", false); + SettingWidgetBinder::BindWidgetToBoolSetting(nullptr, m_ui.actionSaveBlockDump, "EmuCore", "CdvdDumpBlocks", false); + connect(m_ui.actionSaveBlockDump, &QAction::toggled, this, &MainWindow::onBlockDumpActionToggled); connect(m_ui.actionSaveGSDump, &QAction::triggered, this, &MainWindow::onSaveGSDumpActionTriggered); @@ -541,6 +543,29 @@ void MainWindow::onSaveGSDumpActionTriggered() g_emu_thread->queueSnapshot(1); } +void MainWindow::onBlockDumpActionToggled(bool checked) +{ + if (!checked) + return; + + std::string old_directory(Host::GetBaseStringSettingValue("EmuCore", "BlockDumpSaveDirectory", "")); + if (old_directory.empty()) + old_directory = FileSystem::GetWorkingDirectory(); + + // prompt for a location to save + const QString new_dir( + QFileDialog::getExistingDirectory(this, tr("Select location to save block dump:"), + QString::fromStdString(old_directory))); + if (new_dir.isEmpty()) + { + // disable it again + m_ui.actionSaveBlockDump->setChecked(false); + return; + } + + QtHost::SetBaseStringSettingValue("EmuCore", "BlockDumpSaveDirectory", new_dir.toUtf8().constData()); +} + void MainWindow::saveStateToConfig() { { diff --git a/pcsx2-qt/MainWindow.h b/pcsx2-qt/MainWindow.h index aba501f121..81d40e517d 100644 --- a/pcsx2-qt/MainWindow.h +++ b/pcsx2-qt/MainWindow.h @@ -136,6 +136,7 @@ private Q_SLOTS: void onLoggingOptionChanged(); void onScreenshotActionTriggered(); void onSaveGSDumpActionTriggered(); + void onBlockDumpActionToggled(bool checked); // Input Recording void onInputRecNewActionTriggered(); diff --git a/pcsx2-qt/MainWindow.ui b/pcsx2-qt/MainWindow.ui index 9f5d9cb4cc..afcb423d1f 100644 --- a/pcsx2-qt/MainWindow.ui +++ b/pcsx2-qt/MainWindow.ui @@ -128,6 +128,8 @@ + + @@ -798,6 +800,14 @@ Enable CDVD Read Logging + + + true + + + Save CDVD Block Dump + + diff --git a/pcsx2/Pcsx2Config.cpp b/pcsx2/Pcsx2Config.cpp index 5d2f946f74..766915fc11 100644 --- a/pcsx2/Pcsx2Config.cpp +++ b/pcsx2/Pcsx2Config.cpp @@ -1080,12 +1080,12 @@ void Pcsx2Config::LoadSave(SettingsWrapper& wrap) // For now, this in the derived config for backwards ini compatibility. #ifdef PCSX2_CORE + SettingsWrapEntryEx(CurrentBlockdump, "BlockDumpSaveDirectory"); + BaseFilenames.LoadSave(wrap); Framerate.LoadSave(wrap); LoadSaveMemcards(wrap); - SettingsWrapEntry(GzipIsoIndexTemplate); - #ifdef __WXMSW__ SettingsWrapEntry(McdCompressNTFS); #endif