From c6ff4a6f4d05eb380616be57e4088003e7aedfcb Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Mon, 22 Apr 2019 17:56:56 -0400 Subject: yuzu: Port old usages of Filesystem namespace to FilesystemController --- src/yuzu/main.cpp | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) (limited to 'src/yuzu') diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 1dcfac258..e84811a64 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -221,7 +221,7 @@ GMainWindow::GMainWindow() std::make_unique()); Core::System::GetInstance().RegisterContentProvider( FileSys::ContentProviderUnionSlot::FrontendManual, provider.get()); - Service::FileSystem::CreateFactories(*vfs); + Core::System::GetInstance().GetFileSystemController().CreateFactories(*vfs); // Gen keys if necessary OnReinitializeKeys(ReinitializeKeyBehavior::NoWarning); @@ -1507,15 +1507,19 @@ void GMainWindow::OnMenuInstallToNAND() { failed(); return; } - const auto res = - Service::FileSystem::GetUserNANDContents()->InstallEntry(*nsp, false, qt_raw_copy); + const auto res = Core::System::GetInstance() + .GetFileSystemController() + .GetUserNANDContents() + ->InstallEntry(*nsp, false, qt_raw_copy); if (res == FileSys::InstallResult::Success) { success(); } else { if (res == FileSys::InstallResult::ErrorAlreadyExists) { if (overwrite()) { - const auto res2 = Service::FileSystem::GetUserNANDContents()->InstallEntry( - *nsp, true, qt_raw_copy); + const auto res2 = Core::System::GetInstance() + .GetFileSystemController() + .GetUserNANDContents() + ->InstallEntry(*nsp, true, qt_raw_copy); if (res2 == FileSys::InstallResult::Success) { success(); } else { @@ -1569,19 +1573,28 @@ void GMainWindow::OnMenuInstallToNAND() { FileSys::InstallResult res; if (index >= static_cast(FileSys::TitleType::Application)) { - res = Service::FileSystem::GetUserNANDContents()->InstallEntry( - *nca, static_cast(index), false, qt_raw_copy); + res = Core::System::GetInstance() + .GetFileSystemController() + .GetUserNANDContents() + ->InstallEntry(*nca, static_cast(index), false, + qt_raw_copy); } else { - res = Service::FileSystem::GetSystemNANDContents()->InstallEntry( - *nca, static_cast(index), false, qt_raw_copy); + res = Core::System::GetInstance() + .GetFileSystemController() + .GetSystemNANDContents() + ->InstallEntry(*nca, static_cast(index), false, + qt_raw_copy); } if (res == FileSys::InstallResult::Success) { success(); } else if (res == FileSys::InstallResult::ErrorAlreadyExists) { if (overwrite()) { - const auto res2 = Service::FileSystem::GetUserNANDContents()->InstallEntry( - *nca, static_cast(index), true, qt_raw_copy); + const auto res2 = Core::System::GetInstance() + .GetFileSystemController() + .GetUserNANDContents() + ->InstallEntry(*nca, static_cast(index), + true, qt_raw_copy); if (res2 == FileSys::InstallResult::Success) { success(); } else { @@ -1611,7 +1624,7 @@ void GMainWindow::OnMenuSelectEmulatedDirectory(EmulatedDirectoryTarget target) FileUtil::GetUserPath(target == EmulatedDirectoryTarget::SDMC ? FileUtil::UserPath::SDMCDir : FileUtil::UserPath::NANDDir, dir_path.toStdString()); - Service::FileSystem::CreateFactories(*vfs); + Core::System::GetInstance().GetFileSystemController().CreateFactories(*vfs); game_list->PopulateAsync(UISettings::values.game_dirs); } } @@ -1996,7 +2009,7 @@ void GMainWindow::OnReinitializeKeys(ReinitializeKeyBehavior behavior) { const auto function = [this, &keys, &pdm] { keys.PopulateFromPartitionData(pdm); - Service::FileSystem::CreateFactories(*vfs); + Core::System::GetInstance().GetFileSystemController().CreateFactories(*vfs); keys.DeriveETicket(pdm); }; @@ -2041,7 +2054,7 @@ void GMainWindow::OnReinitializeKeys(ReinitializeKeyBehavior behavior) { prog.close(); } - Service::FileSystem::CreateFactories(*vfs); + Core::System::GetInstance().GetFileSystemController().CreateFactories(*vfs); if (behavior == ReinitializeKeyBehavior::Warning) { game_list->PopulateAsync(UISettings::values.game_dirs); -- cgit v1.2.3 From 918119ae1b67ac96d91945660d71b530475204bc Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Tue, 23 Apr 2019 08:34:19 -0400 Subject: settings: Add options for setting storage sizes --- src/core/settings.h | 29 +++++++++++++++++++++++++++++ src/yuzu/configuration/config.cpp | 20 +++++++++++++++++++- src/yuzu_cmd/config.cpp | 9 +++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) (limited to 'src/yuzu') diff --git a/src/core/settings.h b/src/core/settings.h index d4b70ec4c..51363fc51 100644 --- a/src/core/settings.h +++ b/src/core/settings.h @@ -346,6 +346,31 @@ struct TouchscreenInput { u32 rotation_angle; }; +enum class NANDTotalSize : u64 { + S29_1GB = 0x747C00000ULL, +}; + +enum class NANDUserSize : u64 { + S26GB = 0x680000000ULL, +}; + +enum class NANDSystemSize : u64 { + S2_5GB = 0xA0000000, +}; + +enum class SDMCSize : u64 { + S1GB = 0x40000000, + S2GB = 0x80000000, + S4GB = 0x100000000ULL, + S8GB = 0x200000000ULL, + S16GB = 0x400000000ULL, + S32GB = 0x800000000ULL, + S64GB = 0x1000000000ULL, + S128GB = 0x2000000000ULL, + S256GB = 0x4000000000ULL, + S1TB = 0x10000000000ULL, +}; + struct Values { // System bool use_docked_mode; @@ -384,6 +409,10 @@ struct Values { bool use_virtual_sd; std::string nand_dir; std::string sdmc_dir; + NANDTotalSize nand_total_size; + NANDSystemSize nand_system_size; + NANDUserSize nand_user_size; + SDMCSize sdmc_size; // Renderer float resolution_factor; diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 3f54f54fb..bcd0c0b1b 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -459,6 +459,17 @@ void Config::ReadDataStorageValues() { QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir))) .toString() .toStdString()); + Settings::values.nand_total_size = static_cast( + ReadSetting(QStringLiteral("nand_total_size"), static_cast(Settings::NANDTotalSize::S29_1GB)) + .toULongLong()); + Settings::values.nand_user_size = static_cast( + ReadSetting(QStringLiteral("nand_user_size"), static_cast(Settings::NANDUserSize::S26GB)) + .toULongLong()); + Settings::values.nand_system_size = static_cast( + ReadSetting(QStringLiteral("nand_system_size"), static_cast(Settings::NANDSystemSize::S2_5GB)) + .toULongLong()); + Settings::values.sdmc_size = static_cast( + ReadSetting(QStringLiteral("sdmc_size"), static_cast(Settings::SDMCSize::S16GB)).toULongLong()); qt_config->endGroup(); } @@ -875,7 +886,14 @@ void Config::SaveDataStorageValues() { WriteSetting(QStringLiteral("sdmc_directory"), QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)), QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir))); - + WriteSetting(QStringLiteral("nand_total_size"), static_cast(Settings::values.nand_total_size), + static_cast(Settings::NANDTotalSize::S29_1GB)); + WriteSetting(QStringLiteral("nand_user_size"), static_cast(Settings::values.nand_user_size), + static_cast(Settings::NANDUserSize::S26GB)); + WriteSetting(QStringLiteral("nand_system_size"), static_cast(Settings::values.nand_system_size), + static_cast(Settings::NANDSystemSize::S2_5GB)); + WriteSetting(QStringLiteral("sdmc_size"), static_cast(Settings::values.sdmc_size), + static_cast(Settings::SDMCSize::S16GB)); qt_config->endGroup(); } diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp index 5cadfd191..60e2b2d1b 100644 --- a/src/yuzu_cmd/config.cpp +++ b/src/yuzu_cmd/config.cpp @@ -316,6 +316,15 @@ void Config::ReadValues() { FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir, sdl2_config->Get("Data Storage", "sdmc_directory", FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir))); + Settings::values.nand_total_size = static_cast(sdl2_config->GetInteger( + "Data Storage", "nand_total_size", static_cast(Settings::NANDTotalSize::S29_1GB))); + Settings::values.nand_user_size = static_cast(sdl2_config->GetInteger( + "Data Storage", "nand_user_size", static_cast(Settings::NANDUserSize::S26GB))); + Settings::values.nand_system_size = static_cast( + sdl2_config->GetInteger("Data Storage", "nand_system_size", + static_cast(Settings::NANDSystemSize::S2_5GB))); + Settings::values.sdmc_size = static_cast(sdl2_config->GetInteger( + "Data Storage", "sdmc_size", static_cast(Settings::SDMCSize::S16GB))); // System Settings::values.use_docked_mode = sdl2_config->GetBoolean("System", "use_docked_mode", false); -- cgit v1.2.3 From 2590b5a9ea51f6868cac4322b2e4984d65656541 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Tue, 23 Apr 2019 08:35:12 -0400 Subject: settings: Add options for managing gamecard emulation --- src/core/settings.h | 5 +++-- src/yuzu/configuration/config.cpp | 36 ++++++++++++++++++++++++++++++++++++ src/yuzu_cmd/config.cpp | 14 ++++++++++++++ src/yuzu_cmd/default_ini.h | 14 ++++++++++++++ 4 files changed, 67 insertions(+), 2 deletions(-) (limited to 'src/yuzu') diff --git a/src/core/settings.h b/src/core/settings.h index 51363fc51..47bddfb30 100644 --- a/src/core/settings.h +++ b/src/core/settings.h @@ -407,8 +407,9 @@ struct Values { // Data Storage bool use_virtual_sd; - std::string nand_dir; - std::string sdmc_dir; + bool gamecard_inserted; + bool gamecard_current_game; + std::string gamecard_path; NANDTotalSize nand_total_size; NANDSystemSize nand_system_size; NANDUserSize nand_user_size; diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index bcd0c0b1b..8113060d0 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -459,6 +459,30 @@ void Config::ReadDataStorageValues() { QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir))) .toString() .toStdString()); + FileUtil::GetUserPath( + FileUtil::UserPath::LoadDir, + qt_config + ->value("load_directory", + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::LoadDir))) + .toString() + .toStdString()); + FileUtil::GetUserPath( + FileUtil::UserPath::DumpDir, + qt_config + ->value("dump_directory", + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::DumpDir))) + .toString() + .toStdString()); + FileUtil::GetUserPath( + FileUtil::UserPath::CacheDir, + qt_config + ->value("cache_directory", + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir))) + .toString() + .toStdString()); + Settings::values.gamecard_inserted = ReadSetting("gamecard_inserted", false).toBool(); + Settings::values.gamecard_current_game = ReadSetting("gamecard_current_game", false).toBool(); + Settings::values.gamecard_path = ReadSetting("gamecard_path", "").toString().toStdString(); Settings::values.nand_total_size = static_cast( ReadSetting(QStringLiteral("nand_total_size"), static_cast(Settings::NANDTotalSize::S29_1GB)) .toULongLong()); @@ -886,6 +910,18 @@ void Config::SaveDataStorageValues() { WriteSetting(QStringLiteral("sdmc_directory"), QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)), QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir))); + WriteSetting(QStringLiteral("load_directory"), + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::LoadDir)), + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::LoadDir))); + WriteSetting(QStringLiteral("dump_directory"), + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::DumpDir)), + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::DumpDir))); + WriteSetting(QStringLiteral("cache_directory"), + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir)), + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir))); + WriteSetting(QStringLiteral("gamecard_inserted"), Settings::values.gamecard_inserted, false); + WriteSetting(QStringLiteral("gamecard_current_game"), Settings::values.gamecard_current_game, false); + WriteSetting(QStringLiteral("gamecard_path"), QString::fromStdString(Settings::values.gamecard_path), ""); WriteSetting(QStringLiteral("nand_total_size"), static_cast(Settings::values.nand_total_size), static_cast(Settings::NANDTotalSize::S29_1GB)); WriteSetting(QStringLiteral("nand_user_size"), static_cast(Settings::values.nand_user_size), diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp index 60e2b2d1b..d82438502 100644 --- a/src/yuzu_cmd/config.cpp +++ b/src/yuzu_cmd/config.cpp @@ -316,6 +316,20 @@ void Config::ReadValues() { FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir, sdl2_config->Get("Data Storage", "sdmc_directory", FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir))); + FileUtil::GetUserPath(FileUtil::UserPath::LoadDir, + sdl2_config->Get("Data Storage", "load_directory", + FileUtil::GetUserPath(FileUtil::UserPath::LoadDir))); + FileUtil::GetUserPath(FileUtil::UserPath::DumpDir, + sdl2_config->Get("Data Storage", "dump_directory", + FileUtil::GetUserPath(FileUtil::UserPath::DumpDir))); + FileUtil::GetUserPath(FileUtil::UserPath::CacheDir, + sdl2_config->Get("Data Storage", "cache_directory", + FileUtil::GetUserPath(FileUtil::UserPath::CacheDir))); + Settings::values.gamecard_inserted = + sdl2_config->GetBoolean("Data Storage", "gamecard_inserted", false); + Settings::values.gamecard_current_game = + sdl2_config->GetBoolean("Data Storage", "gamecard_current_game", false); + Settings::values.gamecard_path = sdl2_config->Get("Data Storage", "gamecard_path", ""); Settings::values.nand_total_size = static_cast(sdl2_config->GetInteger( "Data Storage", "nand_total_size", static_cast(Settings::NANDTotalSize::S29_1GB))); Settings::values.nand_user_size = static_cast(sdl2_config->GetInteger( diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h index f9f244522..e66d2f89b 100644 --- a/src/yuzu_cmd/default_ini.h +++ b/src/yuzu_cmd/default_ini.h @@ -173,6 +173,20 @@ volume = # 1 (default): Yes, 0: No use_virtual_sd = +# Whether or not to enable gamecard emulation +# 1: Yes, 0 (default): No +gamecard_inserted = + +# Whether or not the gamecard should be emulated as the current game +# If 'gamecard_inserted' is 0 this setting is irrelevant +# 1: Yes, 0 (default): No +gamecard_current_game = + +# Path to an XCI file to use as the gamecard +# If 'gamecard_inserted' is 0 this setting is irrelevant +# If 'gamecard_current_game' is 1 this setting is irrelevant +gamecard_path = + [System] # Whether the system is docked # 1: Yes, 0 (default): No -- cgit v1.2.3 From d4d38dd44d61a64a56a5bc5e7c0644dfbc17e128 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Tue, 23 Apr 2019 08:36:35 -0400 Subject: yuzu: Add UI to manage filesystem paths and sizes --- src/yuzu/CMakeLists.txt | 2 + src/yuzu/configuration/configure.ui | 11 + src/yuzu/configuration/configure_dialog.cpp | 4 +- src/yuzu/configuration/configure_filesystem.cpp | 173 +++++++++++ src/yuzu/configuration/configure_filesystem.h | 43 +++ src/yuzu/configuration/configure_filesystem.ui | 395 ++++++++++++++++++++++++ 6 files changed, 627 insertions(+), 1 deletion(-) create mode 100644 src/yuzu/configuration/configure_filesystem.cpp create mode 100644 src/yuzu/configuration/configure_filesystem.h create mode 100644 src/yuzu/configuration/configure_filesystem.ui (limited to 'src/yuzu') diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index f051e17b4..c50ca317d 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt @@ -33,6 +33,8 @@ add_executable(yuzu configuration/configure_debug.ui configuration/configure_dialog.cpp configuration/configure_dialog.h + configuration/configure_filesystem.cpp + configuration/configure_filesystem.h configuration/configure_gamelist.cpp configuration/configure_gamelist.h configuration/configure_gamelist.ui diff --git a/src/yuzu/configuration/configure.ui b/src/yuzu/configuration/configure.ui index 267717bc9..49fadd0ef 100644 --- a/src/yuzu/configuration/configure.ui +++ b/src/yuzu/configuration/configure.ui @@ -63,6 +63,11 @@ Profiles + + + Filesystem + + Input @@ -125,6 +130,12 @@
configuration/configure_profile_manager.h
1 + + ConfigureFilesystem + QWidget +
configuration/configure_filesystem.h
+ 1 +
ConfigureAudio QWidget diff --git a/src/yuzu/configuration/configure_dialog.cpp b/src/yuzu/configuration/configure_dialog.cpp index 775e3f2ea..7c875ae87 100644 --- a/src/yuzu/configuration/configure_dialog.cpp +++ b/src/yuzu/configuration/configure_dialog.cpp @@ -37,6 +37,7 @@ void ConfigureDialog::ApplyConfiguration() { ui->gameListTab->ApplyConfiguration(); ui->systemTab->ApplyConfiguration(); ui->profileManagerTab->ApplyConfiguration(); + ui->filesystemTab->applyConfiguration(); ui->inputTab->ApplyConfiguration(); ui->hotkeysTab->ApplyConfiguration(registry); ui->graphicsTab->ApplyConfiguration(); @@ -73,7 +74,7 @@ Q_DECLARE_METATYPE(QList); void ConfigureDialog::PopulateSelectionList() { const std::array>, 4> items{ {{tr("General"), {ui->generalTab, ui->webTab, ui->debugTab, ui->gameListTab}}, - {tr("System"), {ui->systemTab, ui->profileManagerTab, ui->audioTab}}, + {tr("System"), {ui->systemTab, ui->profileManagerTab, ui->filesystemTab, ui->audioTab}}, {tr("Graphics"), {ui->graphicsTab}}, {tr("Controls"), {ui->inputTab, ui->hotkeysTab}}}, }; @@ -106,6 +107,7 @@ void ConfigureDialog::UpdateVisibleTabs() { {ui->debugTab, tr("Debug")}, {ui->webTab, tr("Web")}, {ui->gameListTab, tr("Game List")}, + {ui->filesystemTab, tr("Filesystem")}, }; [[maybe_unused]] const QSignalBlocker blocker(ui->tabWidget); diff --git a/src/yuzu/configuration/configure_filesystem.cpp b/src/yuzu/configuration/configure_filesystem.cpp new file mode 100644 index 000000000..fabe86e0a --- /dev/null +++ b/src/yuzu/configuration/configure_filesystem.cpp @@ -0,0 +1,173 @@ +// Copyright 2019 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include +#include +#include "common/common_paths.h" +#include "common/file_util.h" +#include "core/settings.h" +#include "ui_configure_filesystem.h" +#include "yuzu/configuration/configure_filesystem.h" +#include "yuzu/ui_settings.h" + +namespace { + +template +void SetComboBoxFromData(QComboBox* combo_box, T data) { + const auto index = combo_box->findData(QVariant::fromValue(static_cast(data))); + if (index >= combo_box->count() || index < 0) + return; + + combo_box->setCurrentIndex(index); +} + +} // Anonymous namespace + +ConfigureFilesystem::ConfigureFilesystem(QWidget* parent) + : QWidget(parent), ui(std::make_unique()) { + ui->setupUi(this); + this->setConfiguration(); + + connect(ui->nand_directory_button, &QToolButton::pressed, this, + [this] { SetDirectory(DirectoryTarget::NAND, ui->nand_directory_edit); }); + connect(ui->sdmc_directory_button, &QToolButton::pressed, this, + [this] { SetDirectory(DirectoryTarget::SD, ui->sdmc_directory_edit); }); + connect(ui->gamecard_path_button, &QToolButton::pressed, this, + [this] { SetDirectory(DirectoryTarget::Gamecard, ui->gamecard_path_edit); }); + connect(ui->dump_path_button, &QToolButton::pressed, this, + [this] { SetDirectory(DirectoryTarget::Dump, ui->dump_path_edit); }); + connect(ui->load_path_button, &QToolButton::pressed, this, + [this] { SetDirectory(DirectoryTarget::Load, ui->load_path_edit); }); + connect(ui->cache_directory_button, &QToolButton::pressed, this, + [this] { SetDirectory(DirectoryTarget::Cache, ui->cache_directory_edit); }); + + connect(ui->reset_game_list_cache, &QPushButton::pressed, this, + &ConfigureFilesystem::ResetMetadata); + + connect(ui->gamecard_inserted, &QCheckBox::stateChanged, this, + &ConfigureFilesystem::UpdateEnabledControls); + connect(ui->gamecard_current_game, &QCheckBox::stateChanged, this, + &ConfigureFilesystem::UpdateEnabledControls); +} + +ConfigureFilesystem::~ConfigureFilesystem() = default; + +void ConfigureFilesystem::setConfiguration() { + ui->nand_directory_edit->setText( + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir))); + ui->sdmc_directory_edit->setText( + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir))); + ui->gamecard_path_edit->setText(QString::fromStdString(Settings::values.gamecard_path)); + ui->dump_path_edit->setText( + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::DumpDir))); + ui->load_path_edit->setText( + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::LoadDir))); + ui->cache_directory_edit->setText( + QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir))); + + ui->gamecard_inserted->setChecked(Settings::values.gamecard_inserted); + ui->gamecard_current_game->setChecked(Settings::values.gamecard_current_game); + ui->dump_exefs->setChecked(Settings::values.dump_exefs); + ui->dump_nso->setChecked(Settings::values.dump_nso); + + ui->cache_game_list->setChecked(UISettings::values.cache_game_list); + + SetComboBoxFromData(ui->nand_size, Settings::values.nand_total_size); + SetComboBoxFromData(ui->usrnand_size, Settings::values.nand_user_size); + SetComboBoxFromData(ui->sysnand_size, Settings::values.nand_system_size); + SetComboBoxFromData(ui->sdmc_size, Settings::values.sdmc_size); + + UpdateEnabledControls(); +} + +void ConfigureFilesystem::applyConfiguration() { + FileUtil::GetUserPath(FileUtil::UserPath::NANDDir, + ui->nand_directory_edit->text().toStdString()); + FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir, + ui->sdmc_directory_edit->text().toStdString()); + FileUtil::GetUserPath(FileUtil::UserPath::DumpDir, ui->dump_path_edit->text().toStdString()); + FileUtil::GetUserPath(FileUtil::UserPath::LoadDir, ui->load_path_edit->text().toStdString()); + FileUtil::GetUserPath(FileUtil::UserPath::CacheDir, + ui->cache_directory_edit->text().toStdString()); + Settings::values.gamecard_path = ui->gamecard_path_edit->text().toStdString(); + + Settings::values.gamecard_inserted = ui->gamecard_inserted->isChecked(); + Settings::values.gamecard_current_game = ui->gamecard_current_game->isChecked(); + Settings::values.dump_exefs = ui->dump_exefs->isChecked(); + Settings::values.dump_nso = ui->dump_nso->isChecked(); + + UISettings::values.cache_game_list = ui->cache_game_list->isChecked(); + + Settings::values.nand_total_size = static_cast( + ui->nand_size->itemData(ui->nand_size->currentIndex()).toULongLong()); + Settings::values.nand_system_size = static_cast( + ui->nand_size->itemData(ui->sysnand_size->currentIndex()).toULongLong()); + Settings::values.nand_user_size = static_cast( + ui->nand_size->itemData(ui->usrnand_size->currentIndex()).toULongLong()); + Settings::values.sdmc_size = static_cast( + ui->nand_size->itemData(ui->sdmc_size->currentIndex()).toULongLong()); +} + +void ConfigureFilesystem::SetDirectory(DirectoryTarget target, QLineEdit* edit) { + QString caption; + + switch (target) { + case DirectoryTarget::NAND: + caption = tr("Select Emulated NAND Directory..."); + break; + case DirectoryTarget::SD: + caption = tr("Select Emulated SD Directory..."); + break; + case DirectoryTarget::Gamecard: + caption = tr("Select Gamecard Path..."); + break; + case DirectoryTarget::Dump: + caption = tr("Select Dump Directory..."); + break; + case DirectoryTarget::Load: + caption = tr("Select Mod Load Directory..."); + break; + case DirectoryTarget::Cache: + caption = tr("Select Cache Directory..."); + break; + } + + QString str; + if (target == DirectoryTarget::Gamecard) { + str = QFileDialog::getOpenFileName(this, caption, QFileInfo(edit->text()).dir().path(), + "NX Gamecard;*.xci"); + } else { + str = QFileDialog::getExistingDirectory(this, caption, edit->text()); + } + + if (str.isEmpty()) + return; + + edit->setText(str); +} + +void ConfigureFilesystem::ResetMetadata() { + if (FileUtil::DeleteDirRecursively(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir) + + DIR_SEP + "game_list")) { + QMessageBox::information(this, tr("Reset Metadata Cache"), + tr("The operation completed successfully.")); + UISettings::values.is_game_list_reload_pending.exchange(true); + } else { + QMessageBox::warning( + this, tr("Reset Metadata Cache"), + tr("The metadata cache couldn't be deleted. It might be in use or non-existent.")); + } +} + +void ConfigureFilesystem::UpdateEnabledControls() { + ui->gamecard_current_game->setEnabled(ui->gamecard_inserted->isChecked()); + ui->gamecard_path_edit->setEnabled(ui->gamecard_inserted->isChecked() && + !ui->gamecard_current_game->isChecked()); + ui->gamecard_path_button->setEnabled(ui->gamecard_inserted->isChecked() && + !ui->gamecard_current_game->isChecked()); +} + +void ConfigureFilesystem::retranslateUi() { + ui->retranslateUi(this); +} diff --git a/src/yuzu/configuration/configure_filesystem.h b/src/yuzu/configuration/configure_filesystem.h new file mode 100644 index 000000000..a79303760 --- /dev/null +++ b/src/yuzu/configuration/configure_filesystem.h @@ -0,0 +1,43 @@ +// Copyright 2019 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include +#include + +class QLineEdit; + +namespace Ui { +class ConfigureFilesystem; +} + +class ConfigureFilesystem : public QWidget { + Q_OBJECT + +public: + explicit ConfigureFilesystem(QWidget* parent = nullptr); + ~ConfigureFilesystem() override; + + void applyConfiguration(); + void retranslateUi(); + +private: + void setConfiguration(); + + enum class DirectoryTarget { + NAND, + SD, + Gamecard, + Dump, + Load, + Cache, + }; + + void SetDirectory(DirectoryTarget target, QLineEdit* edit); + void ResetMetadata(); + void UpdateEnabledControls(); + + std::unique_ptr ui; +}; diff --git a/src/yuzu/configuration/configure_filesystem.ui b/src/yuzu/configuration/configure_filesystem.ui new file mode 100644 index 000000000..58cd07f52 --- /dev/null +++ b/src/yuzu/configuration/configure_filesystem.ui @@ -0,0 +1,395 @@ + + + ConfigureFilesystem + + + + 0 + 0 + 453 + 561 + + + + Form + + + + + + + + Storage Directories + + + + + + NAND + + + + + + + ... + + + + + + + + + + + + + SD Card + + + + + + + ... + + + + + + + Qt::Horizontal + + + QSizePolicy::Maximum + + + + 60 + 20 + + + + + + + + + + + Gamecard + + + + + + Path + + + + + + + + + + Inserted + + + + + + + Current Game + + + + + + + ... + + + + + + + + + + Storage Sizes + + + + + + SD Card + + + + + + + System NAND + + + + + + + + 2.5 GB + + + + + + + + 32 GB + + + + 1 GB + + + + + 2 GB + + + + + 4 GB + + + + + 8 GB + + + + + 16 GB + + + + + 32 GB + + + + + 64 GB + + + + + 128 GB + + + + + 256 GB + + + + + 1 TB + + + + + + + + + 26 GB + + + + + + + + User NAND + + + + + + + NAND + + + + + + + + 29.1 GB + + + + + + + + + + + Patch Manager + + + + + + + + + + + + ... + + + + + + + ... + + + + + + + + + Dump Decompressed NSOs + + + + + + + Dump ExeFS + + + + + + + + + Mod Load Root + + + + + + + Dump Root + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + + + + Caching + + + + + + Cache Directory + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + + + + + + + + ... + + + + + + + + + Cache Game List Metadata + + + + + + + Reset Metadata Cache + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + -- cgit v1.2.3 From ccd70819c241a84c2ec7f8ad4706b6c0e9a24347 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Sun, 26 May 2019 14:36:35 -0400 Subject: config: Remove Dump options from configure_debug --- src/yuzu/configuration/config.cpp | 42 ++++++++++++++++--------- src/yuzu/configuration/configure_debug.cpp | 4 --- src/yuzu/configuration/configure_debug.ui | 30 +++--------------- src/yuzu/configuration/configure_filesystem.cpp | 10 ++++-- 4 files changed, 39 insertions(+), 47 deletions(-) (limited to 'src/yuzu') diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 8113060d0..7c286af62 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -462,38 +462,45 @@ void Config::ReadDataStorageValues() { FileUtil::GetUserPath( FileUtil::UserPath::LoadDir, qt_config - ->value("load_directory", + ->value(QStringLiteral("load_directory"), QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::LoadDir))) .toString() .toStdString()); FileUtil::GetUserPath( FileUtil::UserPath::DumpDir, qt_config - ->value("dump_directory", + ->value(QStringLiteral("dump_directory"), QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::DumpDir))) .toString() .toStdString()); FileUtil::GetUserPath( FileUtil::UserPath::CacheDir, qt_config - ->value("cache_directory", + ->value(QStringLiteral("cache_directory"), QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir))) .toString() .toStdString()); - Settings::values.gamecard_inserted = ReadSetting("gamecard_inserted", false).toBool(); - Settings::values.gamecard_current_game = ReadSetting("gamecard_current_game", false).toBool(); - Settings::values.gamecard_path = ReadSetting("gamecard_path", "").toString().toStdString(); + Settings::values.gamecard_inserted = + ReadSetting(QStringLiteral("gamecard_inserted"), false).toBool(); + Settings::values.gamecard_current_game = + ReadSetting(QStringLiteral("gamecard_current_game"), false).toBool(); + Settings::values.gamecard_path = + ReadSetting(QStringLiteral("gamecard_path"), QStringLiteral("")).toString().toStdString(); Settings::values.nand_total_size = static_cast( - ReadSetting(QStringLiteral("nand_total_size"), static_cast(Settings::NANDTotalSize::S29_1GB)) + ReadSetting(QStringLiteral("nand_total_size"), + static_cast(Settings::NANDTotalSize::S29_1GB)) .toULongLong()); Settings::values.nand_user_size = static_cast( - ReadSetting(QStringLiteral("nand_user_size"), static_cast(Settings::NANDUserSize::S26GB)) + ReadSetting(QStringLiteral("nand_user_size"), + static_cast(Settings::NANDUserSize::S26GB)) .toULongLong()); Settings::values.nand_system_size = static_cast( - ReadSetting(QStringLiteral("nand_system_size"), static_cast(Settings::NANDSystemSize::S2_5GB)) + ReadSetting(QStringLiteral("nand_system_size"), + static_cast(Settings::NANDSystemSize::S2_5GB)) .toULongLong()); Settings::values.sdmc_size = static_cast( - ReadSetting(QStringLiteral("sdmc_size"), static_cast(Settings::SDMCSize::S16GB)).toULongLong()); + ReadSetting(QStringLiteral("sdmc_size"), static_cast(Settings::SDMCSize::S16GB)) + .toULongLong()); qt_config->endGroup(); } @@ -920,13 +927,18 @@ void Config::SaveDataStorageValues() { QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir)), QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir))); WriteSetting(QStringLiteral("gamecard_inserted"), Settings::values.gamecard_inserted, false); - WriteSetting(QStringLiteral("gamecard_current_game"), Settings::values.gamecard_current_game, false); - WriteSetting(QStringLiteral("gamecard_path"), QString::fromStdString(Settings::values.gamecard_path), ""); - WriteSetting(QStringLiteral("nand_total_size"), static_cast(Settings::values.nand_total_size), + WriteSetting(QStringLiteral("gamecard_current_game"), Settings::values.gamecard_current_game, + false); + WriteSetting(QStringLiteral("gamecard_path"), + QString::fromStdString(Settings::values.gamecard_path), QStringLiteral("")); + WriteSetting(QStringLiteral("nand_total_size"), + static_cast(Settings::values.nand_total_size), static_cast(Settings::NANDTotalSize::S29_1GB)); - WriteSetting(QStringLiteral("nand_user_size"), static_cast(Settings::values.nand_user_size), + WriteSetting(QStringLiteral("nand_user_size"), + static_cast(Settings::values.nand_user_size), static_cast(Settings::NANDUserSize::S26GB)); - WriteSetting(QStringLiteral("nand_system_size"), static_cast(Settings::values.nand_system_size), + WriteSetting(QStringLiteral("nand_system_size"), + static_cast(Settings::values.nand_system_size), static_cast(Settings::NANDSystemSize::S2_5GB)); WriteSetting(QStringLiteral("sdmc_size"), static_cast(Settings::values.sdmc_size), static_cast(Settings::SDMCSize::S16GB)); diff --git a/src/yuzu/configuration/configure_debug.cpp b/src/yuzu/configuration/configure_debug.cpp index 5b7e03056..90c1f9459 100644 --- a/src/yuzu/configuration/configure_debug.cpp +++ b/src/yuzu/configuration/configure_debug.cpp @@ -34,8 +34,6 @@ void ConfigureDebug::SetConfiguration() { ui->toggle_console->setChecked(UISettings::values.show_console); ui->log_filter_edit->setText(QString::fromStdString(Settings::values.log_filter)); ui->homebrew_args_edit->setText(QString::fromStdString(Settings::values.program_args)); - ui->dump_exefs->setChecked(Settings::values.dump_exefs); - ui->dump_decompressed_nso->setChecked(Settings::values.dump_nso); ui->reporting_services->setChecked(Settings::values.reporting_services); ui->quest_flag->setChecked(Settings::values.quest_flag); } @@ -46,8 +44,6 @@ void ConfigureDebug::ApplyConfiguration() { UISettings::values.show_console = ui->toggle_console->isChecked(); Settings::values.log_filter = ui->log_filter_edit->text().toStdString(); Settings::values.program_args = ui->homebrew_args_edit->text().toStdString(); - Settings::values.dump_exefs = ui->dump_exefs->isChecked(); - Settings::values.dump_nso = ui->dump_decompressed_nso->isChecked(); Settings::values.reporting_services = ui->reporting_services->isChecked(); Settings::values.quest_flag = ui->quest_flag->isChecked(); Debugger::ToggleConsole(); diff --git a/src/yuzu/configuration/configure_debug.ui b/src/yuzu/configuration/configure_debug.ui index 7e109cef0..db254f560 100644 --- a/src/yuzu/configuration/configure_debug.ui +++ b/src/yuzu/configuration/configure_debug.ui @@ -130,31 +130,6 @@
- - - Dump - - - - - - When checked, any NSO yuzu tries to load or patch will be copied decompressed to the yuzu/dump directory. - - - Dump Decompressed NSOs - - - - - - - When checked, any game that yuzu loads will have its ExeFS dumped to the yuzu/dump directory. - - - Dump ExeFS - - - @@ -197,6 +172,11 @@ + + + Dump + + Qt::Vertical diff --git a/src/yuzu/configuration/configure_filesystem.cpp b/src/yuzu/configuration/configure_filesystem.cpp index fabe86e0a..b8b9daf2a 100644 --- a/src/yuzu/configuration/configure_filesystem.cpp +++ b/src/yuzu/configuration/configure_filesystem.cpp @@ -136,7 +136,7 @@ void ConfigureFilesystem::SetDirectory(DirectoryTarget target, QLineEdit* edit) QString str; if (target == DirectoryTarget::Gamecard) { str = QFileDialog::getOpenFileName(this, caption, QFileInfo(edit->text()).dir().path(), - "NX Gamecard;*.xci"); + QStringLiteral("NX Gamecard;*.xci")); } else { str = QFileDialog::getExistingDirectory(this, caption, edit->text()); } @@ -148,8 +148,12 @@ void ConfigureFilesystem::SetDirectory(DirectoryTarget target, QLineEdit* edit) } void ConfigureFilesystem::ResetMetadata() { - if (FileUtil::DeleteDirRecursively(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir) + - DIR_SEP + "game_list")) { + if (!FileUtil::Exists(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir) + DIR_SEP + + "game_list")) { + QMessageBox::information(this, tr("Reset Metadata Cache"), + tr("The metadata cache is already empty.")); + } else if (FileUtil::DeleteDirRecursively(FileUtil::GetUserPath(FileUtil::UserPath::CacheDir) + + DIR_SEP + "game_list")) { QMessageBox::information(this, tr("Reset Metadata Cache"), tr("The operation completed successfully.")); UISettings::values.is_game_list_reload_pending.exchange(true); -- cgit v1.2.3 From 038bcec11153cefd713ddb06eddcc42b0a936df2 Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Sat, 21 Sep 2019 18:43:11 -0400 Subject: configure_debug: Move reporting option to logging --- src/core/file_sys/registered_cache.cpp | 8 ++-- src/core/hle/service/am/am.cpp | 9 ++-- src/core/hle/service/am/applet_ae.cpp | 2 +- src/core/hle/service/am/applet_oe.cpp | 2 +- src/core/hle/service/filesystem/filesystem.cpp | 5 +-- src/core/hle/service/filesystem/filesystem.h | 2 +- src/core/hle/service/filesystem/fsp_srv.cpp | 3 +- src/core/hle/service/filesystem/fsp_srv.h | 2 +- src/core/hle/service/service.cpp | 4 +- src/yuzu/CMakeLists.txt | 1 + src/yuzu/configuration/config.cpp | 26 ++++++------ src/yuzu/configuration/configure_debug.ui | 56 +++++++++++-------------- src/yuzu/configuration/configure_filesystem.cpp | 2 +- src/yuzu/configuration/configure_general.cpp | 1 + src/yuzu_tester/yuzu.cpp | 4 +- 15 files changed, 64 insertions(+), 63 deletions(-) (limited to 'src/yuzu') diff --git a/src/core/file_sys/registered_cache.cpp b/src/core/file_sys/registered_cache.cpp index d1ef1e72d..ac3fbd849 100644 --- a/src/core/file_sys/registered_cache.cpp +++ b/src/core/file_sys/registered_cache.cpp @@ -59,12 +59,12 @@ static std::string GetRelativePathFromNcaID(const std::array& nca_id, bo bool within_two_digit, bool cnmt_suffix) { if (!within_two_digit) return fmt::format(cnmt_suffix ? "{}.cnmt.nca" : "/{}.nca", - Common::HexArrayToString(nca_id, second_hex_upper)); + Common::HexToString(nca_id, second_hex_upper)); Core::Crypto::SHA256Hash hash{}; mbedtls_sha256(nca_id.data(), nca_id.size(), hash.data(), 0); return fmt::format(cnmt_suffix ? "/000000{:02X}/{}.cnmt.nca" : "/000000{:02X}/{}.nca", hash[0], - Common::HexArrayToString(nca_id, second_hex_upper)); + Common::HexToString(nca_id, second_hex_upper)); } static std::string GetCNMTName(TitleType type, u64 title_id) { @@ -149,7 +149,7 @@ bool PlaceholderCache::Create(const NcaID& id, u64 size) const { if (dir2 == nullptr) return false; - const auto file = dir2->CreateFile(fmt::format("{}.nca", Common::HexArrayToString(id, false))); + const auto file = dir2->CreateFile(fmt::format("{}.nca", Common::HexToString(id, false))); if (file == nullptr) return false; @@ -170,7 +170,7 @@ bool PlaceholderCache::Delete(const NcaID& id) const { const auto dir2 = GetOrCreateDirectoryRelative(dir, dirname); - const auto res = dir2->DeleteFile(fmt::format("{}.nca", Common::HexArrayToString(id, false))); + const auto res = dir2->DeleteFile(fmt::format("{}.nca", Common::HexToString(id, false))); return res; } diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp index 7f8514b0d..6c594dcaf 100644 --- a/src/core/hle/service/am/am.cpp +++ b/src/core/hle/service/am/am.cpp @@ -1151,7 +1151,8 @@ void IApplicationFunctions::EnsureSaveData(Kernel::HLERequestContext& ctx) { descriptor.title_id = Core::CurrentProcess()->GetTitleID(); descriptor.user_id = user_id; descriptor.type = FileSys::SaveDataType::SaveData; - const auto res = fsc.CreateSaveData(FileSys::SaveDataSpaceId::NandUser, descriptor); + const auto res = system.GetFileSystemController().CreateSaveData( + FileSys::SaveDataSpaceId::NandUser, descriptor); IPC::ResponseBuilder rb{ctx, 4}; rb.Push(res.Code()); @@ -1268,8 +1269,8 @@ void IApplicationFunctions::ExtendSaveData(Kernel::HLERequestContext& ctx) { "new_journal={:016X}", static_cast(type), user_id[1], user_id[0], new_normal_size, new_journal_size); - fsc.WriteSaveDataSize(type, system.CurrentProcess()->GetTitleID(), user_id, - {new_normal_size, new_journal_size}); + system.GetFileSystemController().WriteSaveDataSize( + type, system.CurrentProcess()->GetTitleID(), user_id, {new_normal_size, new_journal_size}); IPC::ResponseBuilder rb{ctx, 4}; rb.Push(RESULT_SUCCESS); @@ -1288,7 +1289,7 @@ void IApplicationFunctions::GetSaveDataSize(Kernel::HLERequestContext& ctx) { LOG_DEBUG(Service_AM, "called with type={:02X}, user_id={:016X}{:016X}", static_cast(type), user_id[1], user_id[0]); - const auto size = system.FileSystemController().ReadSaveDataSize( + const auto size = system.GetFileSystemController().ReadSaveDataSize( type, system.CurrentProcess()->GetTitleID(), user_id); IPC::ResponseBuilder rb{ctx, 6}; diff --git a/src/core/hle/service/am/applet_ae.cpp b/src/core/hle/service/am/applet_ae.cpp index d04476ae0..e454b77d8 100644 --- a/src/core/hle/service/am/applet_ae.cpp +++ b/src/core/hle/service/am/applet_ae.cpp @@ -106,7 +106,7 @@ private: IPC::ResponseBuilder rb{ctx, 2, 0, 1}; rb.Push(RESULT_SUCCESS); - rb.PushIpcInterface(system.FileSystemController()); + rb.PushIpcInterface(system); } std::shared_ptr nvflinger; diff --git a/src/core/hle/service/am/applet_oe.cpp b/src/core/hle/service/am/applet_oe.cpp index 2ee21620b..a2ffaa440 100644 --- a/src/core/hle/service/am/applet_oe.cpp +++ b/src/core/hle/service/am/applet_oe.cpp @@ -95,7 +95,7 @@ private: IPC::ResponseBuilder rb{ctx, 2, 0, 1}; rb.Push(RESULT_SUCCESS); - rb.PushIpcInterface(system.FileSystemController()); + rb.PushIpcInterface(system); } std::shared_ptr nvflinger; diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp index 31d5fd79b..14cd0e322 100644 --- a/src/core/hle/service/filesystem/filesystem.cpp +++ b/src/core/hle/service/filesystem/filesystem.cpp @@ -711,11 +711,10 @@ void FileSystemController::CreateFactories(FileSys::VfsFilesystem& vfs, bool ove } void InstallInterfaces(Core::System& system) { - romfs_factory = nullptr; - CreateFactories(*system.GetFilesystem(), false); std::make_shared()->InstallAsService(system.ServiceManager()); std::make_shared()->InstallAsService(system.ServiceManager()); - std::make_shared(system.GetReporter())->InstallAsService(system.ServiceManager()); + std::make_shared(system.GetFileSystemController(), system.GetReporter()) + ->InstallAsService(system.ServiceManager()); } } // namespace Service::FileSystem diff --git a/src/core/hle/service/filesystem/filesystem.h b/src/core/hle/service/filesystem/filesystem.h index 4d7da3b6f..3e0c03ec0 100644 --- a/src/core/hle/service/filesystem/filesystem.h +++ b/src/core/hle/service/filesystem/filesystem.h @@ -125,7 +125,7 @@ private: std::unique_ptr gamecard_placeholder; }; -void InstallInterfaces(SM::ServiceManager& service_manager, FileSystemController& controller); +void InstallInterfaces(Core::System& system); // A class that wraps a VfsDirectory with methods that return ResultVal and ResultCode instead of // pointers and booleans. This makes using a VfsDirectory with switch services much easier and diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp index 305d9e176..eb982ad49 100644 --- a/src/core/hle/service/filesystem/fsp_srv.cpp +++ b/src/core/hle/service/filesystem/fsp_srv.cpp @@ -650,7 +650,8 @@ private: u64 next_entry_index = 0; }; -FSP_SRV::FSP_SRV(FileSystemController& fsc) : ServiceFramework("fsp-srv"), fsc(fsc) { +FSP_SRV::FSP_SRV(FileSystemController& fsc, const Core::Reporter& reporter) + : ServiceFramework("fsp-srv"), fsc(fsc), reporter(reporter) { // clang-format off static const FunctionInfo functions[] = { {0, nullptr, "OpenFileSystem"}, diff --git a/src/core/hle/service/filesystem/fsp_srv.h b/src/core/hle/service/filesystem/fsp_srv.h index 494348598..d52b55999 100644 --- a/src/core/hle/service/filesystem/fsp_srv.h +++ b/src/core/hle/service/filesystem/fsp_srv.h @@ -32,7 +32,7 @@ enum class LogMode : u32 { class FSP_SRV final : public ServiceFramework { public: - explicit FSP_SRV(FileSystemController& fsc); + explicit FSP_SRV(FileSystemController& fsc, const Core::Reporter& reporter); ~FSP_SRV() override; private: diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index 3d6a5990f..454387467 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp @@ -199,7 +199,7 @@ void Init(std::shared_ptr& sm, Core::System& system) { // NVFlinger needs to be accessed by several services like Vi and AppletOE so we instantiate it // here and pass it into the respective InstallInterfaces functions. auto nv_flinger = std::make_shared(system.CoreTiming()); - fsc.CreateFactories(*system.GetFilesystem(), false); + system.GetFileSystemController().CreateFactories(*system.GetFilesystem(), false); SM::ServiceManager::InstallInterfaces(sm); @@ -236,7 +236,7 @@ void Init(std::shared_ptr& sm, Core::System& system) { NIFM::InstallInterfaces(*sm); NIM::InstallInterfaces(*sm); NPNS::InstallInterfaces(*sm); - NS::InstallInterfaces(*sm, fsc); + NS::InstallInterfaces(*sm, system.GetFileSystemController()); Nvidia::InstallInterfaces(*sm, *nv_flinger, system); PCIe::InstallInterfaces(*sm); PCTL::InstallInterfaces(*sm); diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index c50ca317d..dc6fa07fc 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt @@ -35,6 +35,7 @@ add_executable(yuzu configuration/configure_dialog.h configuration/configure_filesystem.cpp configuration/configure_filesystem.h + configuration/configure_filesystem.ui configuration/configure_gamelist.cpp configuration/configure_gamelist.h configuration/configure_gamelist.ui diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 7c286af62..92d9fb161 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -488,18 +488,19 @@ void Config::ReadDataStorageValues() { ReadSetting(QStringLiteral("gamecard_path"), QStringLiteral("")).toString().toStdString(); Settings::values.nand_total_size = static_cast( ReadSetting(QStringLiteral("nand_total_size"), - static_cast(Settings::NANDTotalSize::S29_1GB)) + QVariant::fromValue(static_cast(Settings::NANDTotalSize::S29_1GB))) .toULongLong()); Settings::values.nand_user_size = static_cast( ReadSetting(QStringLiteral("nand_user_size"), - static_cast(Settings::NANDUserSize::S26GB)) + QVariant::fromValue(static_cast(Settings::NANDUserSize::S26GB))) .toULongLong()); Settings::values.nand_system_size = static_cast( ReadSetting(QStringLiteral("nand_system_size"), - static_cast(Settings::NANDSystemSize::S2_5GB)) + QVariant::fromValue(static_cast(Settings::NANDSystemSize::S2_5GB))) .toULongLong()); Settings::values.sdmc_size = static_cast( - ReadSetting(QStringLiteral("sdmc_size"), static_cast(Settings::SDMCSize::S16GB)) + ReadSetting(QStringLiteral("sdmc_size"), + QVariant::fromValue(static_cast(Settings::SDMCSize::S16GB))) .toULongLong()); qt_config->endGroup(); @@ -932,16 +933,17 @@ void Config::SaveDataStorageValues() { WriteSetting(QStringLiteral("gamecard_path"), QString::fromStdString(Settings::values.gamecard_path), QStringLiteral("")); WriteSetting(QStringLiteral("nand_total_size"), - static_cast(Settings::values.nand_total_size), - static_cast(Settings::NANDTotalSize::S29_1GB)); + QVariant::fromValue(static_cast(Settings::values.nand_total_size)), + QVariant::fromValue(static_cast(Settings::NANDTotalSize::S29_1GB))); WriteSetting(QStringLiteral("nand_user_size"), - static_cast(Settings::values.nand_user_size), - static_cast(Settings::NANDUserSize::S26GB)); + QVariant::fromValue(static_cast(Settings::values.nand_user_size)), + QVariant::fromValue(static_cast(Settings::NANDUserSize::S26GB))); WriteSetting(QStringLiteral("nand_system_size"), - static_cast(Settings::values.nand_system_size), - static_cast(Settings::NANDSystemSize::S2_5GB)); - WriteSetting(QStringLiteral("sdmc_size"), static_cast(Settings::values.sdmc_size), - static_cast(Settings::SDMCSize::S16GB)); + QVariant::fromValue(static_cast(Settings::values.nand_system_size)), + QVariant::fromValue(static_cast(Settings::NANDSystemSize::S2_5GB))); + WriteSetting(QStringLiteral("sdmc_size"), + QVariant::fromValue(static_cast(Settings::values.sdmc_size)), + QVariant::fromValue(static_cast(Settings::SDMCSize::S16GB))); qt_config->endGroup(); } diff --git a/src/yuzu/configuration/configure_debug.ui b/src/yuzu/configuration/configure_debug.ui index db254f560..ce49569bb 100644 --- a/src/yuzu/configuration/configure_debug.ui +++ b/src/yuzu/configuration/configure_debug.ui @@ -103,33 +103,6 @@ - - - - - - - Homebrew - - - - - - - - Arguments String - - - - - - - - - - - - @@ -138,7 +111,7 @@ - + true @@ -172,15 +145,36 @@ - + - Dump + Homebrew - + + + + + + + Arguments String + + + + + + + + + + + + Qt::Vertical + + QSizePolicy::Expanding + 20 diff --git a/src/yuzu/configuration/configure_filesystem.cpp b/src/yuzu/configuration/configure_filesystem.cpp index b8b9daf2a..29f540eb7 100644 --- a/src/yuzu/configuration/configure_filesystem.cpp +++ b/src/yuzu/configuration/configure_filesystem.cpp @@ -9,7 +9,7 @@ #include "core/settings.h" #include "ui_configure_filesystem.h" #include "yuzu/configuration/configure_filesystem.h" -#include "yuzu/ui_settings.h" +#include "yuzu/uisettings.h" namespace { diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp index 10bcd650e..b49446be9 100644 --- a/src/yuzu/configuration/configure_general.cpp +++ b/src/yuzu/configuration/configure_general.cpp @@ -2,6 +2,7 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include #include "core/core.h" #include "core/settings.h" #include "ui_configure_general.h" diff --git a/src/yuzu_tester/yuzu.cpp b/src/yuzu_tester/yuzu.cpp index 0ee97aa54..94ad50cb3 100644 --- a/src/yuzu_tester/yuzu.cpp +++ b/src/yuzu_tester/yuzu.cpp @@ -22,6 +22,7 @@ #include "common/telemetry.h" #include "core/core.h" #include "core/crypto/key_manager.h" +#include "core/file_sys/registered_cache.h" #include "core/file_sys/vfs_real.h" #include "core/hle/service/filesystem/filesystem.h" #include "core/loader/loader.h" @@ -216,8 +217,9 @@ int main(int argc, char** argv) { }; Core::System& system{Core::System::GetInstance()}; + system.SetContentProvider(std::make_unique()); system.SetFilesystem(std::make_shared()); - Service::FileSystem::CreateFactories(*system.GetFilesystem()); + system.GetFileSystemController().CreateFactories(*system.GetFilesystem()); SCOPE_EXIT({ system.Shutdown(); }); -- cgit v1.2.3