diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/file_sys/patch_manager.cpp | 9 | ||||
| -rw-r--r-- | src/core/settings.h | 1 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_debug.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_debug.ui | 10 | ||||
| -rw-r--r-- | src/yuzu_cmd/config.cpp | 1 | ||||
| -rw-r--r-- | src/yuzu_cmd/default_ini.h | 2 |
7 files changed, 27 insertions, 0 deletions
diff --git a/src/core/file_sys/patch_manager.cpp b/src/core/file_sys/patch_manager.cpp index 8d062eb3e..f56b1c773 100644 --- a/src/core/file_sys/patch_manager.cpp +++ b/src/core/file_sys/patch_manager.cpp | |||
| @@ -57,6 +57,15 @@ VirtualDir PatchManager::PatchExeFS(VirtualDir exefs) const { | |||
| 57 | if (exefs == nullptr) | 57 | if (exefs == nullptr) |
| 58 | return exefs; | 58 | return exefs; |
| 59 | 59 | ||
| 60 | if (Settings::values.dump_exefs) { | ||
| 61 | LOG_INFO(Loader, "Dumping ExeFS for title_id={:016X}", title_id); | ||
| 62 | const auto dump_dir = Service::FileSystem::GetModificationDumpRoot(title_id); | ||
| 63 | if (dump_dir != nullptr) { | ||
| 64 | const auto exefs_dir = GetOrCreateDirectoryRelative(dump_dir, "/exefs"); | ||
| 65 | VfsRawCopyD(exefs, exefs_dir); | ||
| 66 | } | ||
| 67 | } | ||
| 68 | |||
| 60 | const auto installed = Service::FileSystem::GetUnionContents(); | 69 | const auto installed = Service::FileSystem::GetUnionContents(); |
| 61 | 70 | ||
| 62 | // Game Updates | 71 | // Game Updates |
diff --git a/src/core/settings.h b/src/core/settings.h index e424479f2..9767bc162 100644 --- a/src/core/settings.h +++ b/src/core/settings.h | |||
| @@ -159,6 +159,7 @@ struct Values { | |||
| 159 | bool use_gdbstub; | 159 | bool use_gdbstub; |
| 160 | u16 gdbstub_port; | 160 | u16 gdbstub_port; |
| 161 | std::string program_args; | 161 | std::string program_args; |
| 162 | bool dump_exefs; | ||
| 162 | bool dump_nso; | 163 | bool dump_nso; |
| 163 | 164 | ||
| 164 | // WebService | 165 | // WebService |
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index be69fb831..e750cbe7d 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp | |||
| @@ -153,6 +153,7 @@ void Config::ReadValues() { | |||
| 153 | Settings::values.use_gdbstub = qt_config->value("use_gdbstub", false).toBool(); | 153 | Settings::values.use_gdbstub = qt_config->value("use_gdbstub", false).toBool(); |
| 154 | Settings::values.gdbstub_port = qt_config->value("gdbstub_port", 24689).toInt(); | 154 | Settings::values.gdbstub_port = qt_config->value("gdbstub_port", 24689).toInt(); |
| 155 | Settings::values.program_args = qt_config->value("program_args", "").toString().toStdString(); | 155 | Settings::values.program_args = qt_config->value("program_args", "").toString().toStdString(); |
| 156 | Settings::values.dump_exefs = qt_config->value("dump_exefs", false).toBool(); | ||
| 156 | Settings::values.dump_nso = qt_config->value("dump_nso", false).toBool(); | 157 | Settings::values.dump_nso = qt_config->value("dump_nso", false).toBool(); |
| 157 | qt_config->endGroup(); | 158 | qt_config->endGroup(); |
| 158 | 159 | ||
| @@ -297,6 +298,7 @@ void Config::SaveValues() { | |||
| 297 | qt_config->setValue("use_gdbstub", Settings::values.use_gdbstub); | 298 | qt_config->setValue("use_gdbstub", Settings::values.use_gdbstub); |
| 298 | qt_config->setValue("gdbstub_port", Settings::values.gdbstub_port); | 299 | qt_config->setValue("gdbstub_port", Settings::values.gdbstub_port); |
| 299 | qt_config->setValue("program_args", QString::fromStdString(Settings::values.program_args)); | 300 | qt_config->setValue("program_args", QString::fromStdString(Settings::values.program_args)); |
| 301 | qt_config->setValue("dump_exefs", Settings::values.dump_exefs); | ||
| 300 | qt_config->setValue("dump_nso", Settings::values.dump_nso); | 302 | qt_config->setValue("dump_nso", Settings::values.dump_nso); |
| 301 | qt_config->endGroup(); | 303 | qt_config->endGroup(); |
| 302 | 304 | ||
diff --git a/src/yuzu/configuration/configure_debug.cpp b/src/yuzu/configuration/configure_debug.cpp index fd5876b41..aa7de7b54 100644 --- a/src/yuzu/configuration/configure_debug.cpp +++ b/src/yuzu/configuration/configure_debug.cpp | |||
| @@ -34,6 +34,7 @@ void ConfigureDebug::setConfiguration() { | |||
| 34 | ui->toggle_console->setChecked(UISettings::values.show_console); | 34 | ui->toggle_console->setChecked(UISettings::values.show_console); |
| 35 | ui->log_filter_edit->setText(QString::fromStdString(Settings::values.log_filter)); | 35 | ui->log_filter_edit->setText(QString::fromStdString(Settings::values.log_filter)); |
| 36 | ui->homebrew_args_edit->setText(QString::fromStdString(Settings::values.program_args)); | 36 | ui->homebrew_args_edit->setText(QString::fromStdString(Settings::values.program_args)); |
| 37 | ui->dump_exefs->setChecked(Settings::values.dump_exefs); | ||
| 37 | ui->dump_decompressed_nso->setChecked(Settings::values.dump_nso); | 38 | ui->dump_decompressed_nso->setChecked(Settings::values.dump_nso); |
| 38 | } | 39 | } |
| 39 | 40 | ||
| @@ -43,6 +44,7 @@ void ConfigureDebug::applyConfiguration() { | |||
| 43 | UISettings::values.show_console = ui->toggle_console->isChecked(); | 44 | UISettings::values.show_console = ui->toggle_console->isChecked(); |
| 44 | Settings::values.log_filter = ui->log_filter_edit->text().toStdString(); | 45 | Settings::values.log_filter = ui->log_filter_edit->text().toStdString(); |
| 45 | Settings::values.program_args = ui->homebrew_args_edit->text().toStdString(); | 46 | Settings::values.program_args = ui->homebrew_args_edit->text().toStdString(); |
| 47 | Settings::values.dump_exefs = ui->dump_exefs->isChecked(); | ||
| 46 | Settings::values.dump_nso = ui->dump_decompressed_nso->isChecked(); | 48 | Settings::values.dump_nso = ui->dump_decompressed_nso->isChecked(); |
| 47 | Debugger::ToggleConsole(); | 49 | Debugger::ToggleConsole(); |
| 48 | Log::Filter filter; | 50 | Log::Filter filter; |
diff --git a/src/yuzu/configuration/configure_debug.ui b/src/yuzu/configuration/configure_debug.ui index 9c5b702f8..f51f8702b 100644 --- a/src/yuzu/configuration/configure_debug.ui +++ b/src/yuzu/configuration/configure_debug.ui | |||
| @@ -145,6 +145,16 @@ | |||
| 145 | </property> | 145 | </property> |
| 146 | </widget> | 146 | </widget> |
| 147 | </item> | 147 | </item> |
| 148 | <item> | ||
| 149 | <widget class="QCheckBox" name="dump_exefs"> | ||
| 150 | <property name="whatsThis"> | ||
| 151 | <string>When checked, any game that yuzu loads will have its ExeFS dumped</string> | ||
| 152 | </property> | ||
| 153 | <property name="text"> | ||
| 154 | <string>Dump ExeFS</string> | ||
| 155 | </property> | ||
| 156 | </widget> | ||
| 157 | </item> | ||
| 148 | </layout> | 158 | </layout> |
| 149 | </widget> | 159 | </widget> |
| 150 | </item> | 160 | </item> |
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp index 9cc409fd5..b443bfba7 100644 --- a/src/yuzu_cmd/config.cpp +++ b/src/yuzu_cmd/config.cpp | |||
| @@ -148,6 +148,7 @@ void Config::ReadValues() { | |||
| 148 | Settings::values.gdbstub_port = | 148 | Settings::values.gdbstub_port = |
| 149 | static_cast<u16>(sdl2_config->GetInteger("Debugging", "gdbstub_port", 24689)); | 149 | static_cast<u16>(sdl2_config->GetInteger("Debugging", "gdbstub_port", 24689)); |
| 150 | Settings::values.program_args = sdl2_config->Get("Debugging", "program_args", ""); | 150 | Settings::values.program_args = sdl2_config->Get("Debugging", "program_args", ""); |
| 151 | Settings::values.dump_exefs = sdl2_config->GetBoolean("Debugging", "dump_exefs", false); | ||
| 151 | Settings::values.dump_nso = sdl2_config->GetBoolean("Debugging", "dump_nso", false); | 152 | Settings::values.dump_nso = sdl2_config->GetBoolean("Debugging", "dump_nso", false); |
| 152 | 153 | ||
| 153 | // Web Service | 154 | // Web Service |
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h index ecf625e7b..d73669f36 100644 --- a/src/yuzu_cmd/default_ini.h +++ b/src/yuzu_cmd/default_ini.h | |||
| @@ -206,6 +206,8 @@ log_filter = *:Trace | |||
| 206 | # Port for listening to GDB connections. | 206 | # Port for listening to GDB connections. |
| 207 | use_gdbstub=false | 207 | use_gdbstub=false |
| 208 | gdbstub_port=24689 | 208 | gdbstub_port=24689 |
| 209 | # Determines whether or not yuzu will dump the ExeFS of all games it attempts to load while loading them | ||
| 210 | dump_exefs=false | ||
| 209 | # Determines whether or not yuzu will dump all NSOs it attempts to load while loading them | 211 | # Determines whether or not yuzu will dump all NSOs it attempts to load while loading them |
| 210 | dump_nso=false | 212 | dump_nso=false |
| 211 | 213 | ||