|
|
@@ -802,10 +802,6 @@ void GMainWindow::ConnectMenuEvents() {
|
|
|
connect(ui.action_Load_Folder, &QAction::triggered, this, &GMainWindow::OnMenuLoadFolder);
|
|
|
connect(ui.action_Install_File_NAND, &QAction::triggered, this,
|
|
|
&GMainWindow::OnMenuInstallToNAND);
|
|
|
- connect(ui.action_Select_NAND_Directory, &QAction::triggered, this,
|
|
|
- [this] { OnMenuSelectEmulatedDirectory(EmulatedDirectoryTarget::NAND); });
|
|
|
- connect(ui.action_Select_SDMC_Directory, &QAction::triggered, this,
|
|
|
- [this] { OnMenuSelectEmulatedDirectory(EmulatedDirectoryTarget::SDMC); });
|
|
|
connect(ui.action_Exit, &QAction::triggered, this, &QMainWindow::close);
|
|
|
connect(ui.action_Load_Amiibo, &QAction::triggered, this, &GMainWindow::OnLoadAmiibo);
|
|
|
|
|
|
@@ -940,16 +936,18 @@ bool GMainWindow::LoadROM(const QString& filename) {
|
|
|
default:
|
|
|
if (static_cast<u32>(result) >
|
|
|
static_cast<u32>(Core::System::ResultStatus::ErrorLoader)) {
|
|
|
- LOG_CRITICAL(Frontend, "Failed to load ROM!");
|
|
|
const u16 loader_id = static_cast<u16>(Core::System::ResultStatus::ErrorLoader);
|
|
|
const u16 error_id = static_cast<u16>(result) - loader_id;
|
|
|
+ const std::string error_code = fmt::format("({:04X}-{:04X})", loader_id, error_id);
|
|
|
+ LOG_CRITICAL(Frontend, "Failed to load ROM! {}", error_code);
|
|
|
QMessageBox::critical(
|
|
|
- this, tr("Error while loading ROM!"),
|
|
|
+ this,
|
|
|
+ tr("Error while loading ROM! ").append(QString::fromStdString(error_code)),
|
|
|
QString::fromStdString(fmt::format(
|
|
|
- "While attempting to load the ROM requested, an error occured. Please "
|
|
|
- "refer to the yuzu wiki for more information or the yuzu discord for "
|
|
|
- "additional help.\n\nError Code: {:04X}-{:04X}\nError Description: {}",
|
|
|
- loader_id, error_id, static_cast<Loader::ResultStatus>(error_id))));
|
|
|
+ "{}<br>Please follow <a href='https://yuzu-emu.org/help/quickstart/'>the "
|
|
|
+ "yuzu quickstart guide</a> to redump your files.<br>You can refer "
|
|
|
+ "to the yuzu wiki</a> or the yuzu Discord</a> for help.",
|
|
|
+ static_cast<Loader::ResultStatus>(error_id))));
|
|
|
} else {
|
|
|
QMessageBox::critical(
|
|
|
this, tr("Error while loading ROM!"),
|
|
|
@@ -1663,28 +1661,6 @@ void GMainWindow::OnMenuInstallToNAND() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void GMainWindow::OnMenuSelectEmulatedDirectory(EmulatedDirectoryTarget target) {
|
|
|
- const auto res = QMessageBox::information(
|
|
|
- this, tr("Changing Emulated Directory"),
|
|
|
- tr("You are about to change the emulated %1 directory of the system. Please note "
|
|
|
- "that this does not also move the contents of the previous directory to the "
|
|
|
- "new one and you will have to do that yourself.")
|
|
|
- .arg(target == EmulatedDirectoryTarget::SDMC ? tr("SD card") : tr("NAND")),
|
|
|
- QMessageBox::StandardButtons{QMessageBox::Ok, QMessageBox::Cancel});
|
|
|
-
|
|
|
- if (res == QMessageBox::Cancel)
|
|
|
- return;
|
|
|
-
|
|
|
- QString dir_path = QFileDialog::getExistingDirectory(this, tr("Select Directory"));
|
|
|
- if (!dir_path.isEmpty()) {
|
|
|
- FileUtil::GetUserPath(target == EmulatedDirectoryTarget::SDMC ? FileUtil::UserPath::SDMCDir
|
|
|
- : FileUtil::UserPath::NANDDir,
|
|
|
- dir_path.toStdString());
|
|
|
- Core::System::GetInstance().GetFileSystemController().CreateFactories(*vfs);
|
|
|
- game_list->PopulateAsync(UISettings::values.game_dirs);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
void GMainWindow::OnMenuRecentFile() {
|
|
|
QAction* action = qobject_cast<QAction*>(sender());
|
|
|
assert(action);
|
|
|
@@ -2095,27 +2071,25 @@ void GMainWindow::OnReinitializeKeys(ReinitializeKeyBehavior behavior) {
|
|
|
|
|
|
QString errors;
|
|
|
if (!pdm.HasFuses()) {
|
|
|
- errors += tr("- Missing fuses - Cannot derive SBK\n");
|
|
|
+ errors += tr("Missing fuses");
|
|
|
}
|
|
|
if (!pdm.HasBoot0()) {
|
|
|
- errors += tr("- Missing BOOT0 - Cannot derive master keys\n");
|
|
|
+ errors += tr(" - Missing BOOT0");
|
|
|
}
|
|
|
if (!pdm.HasPackage2()) {
|
|
|
- errors += tr("- Missing BCPKG2-1-Normal-Main - Cannot derive general keys\n");
|
|
|
+ errors += tr(" - Missing BCPKG2-1-Normal-Main");
|
|
|
}
|
|
|
if (!pdm.HasProdInfo()) {
|
|
|
- errors += tr("- Missing PRODINFO - Cannot derive title keys\n");
|
|
|
+ errors += tr(" - Missing PRODINFO");
|
|
|
}
|
|
|
if (!errors.isEmpty()) {
|
|
|
QMessageBox::warning(
|
|
|
- this, tr("Warning Missing Derivation Components"),
|
|
|
- tr("The following are missing from your configuration that may hinder key "
|
|
|
- "derivation. It will be attempted but may not complete.<br><br>") +
|
|
|
- errors +
|
|
|
- tr("<br><br>You can get all of these and dump all of your games easily by "
|
|
|
- "following <a href='https://yuzu-emu.org/help/quickstart/'>the "
|
|
|
- "quickstart guide</a>. Alternatively, you can use another method of dumping "
|
|
|
- "to obtain all of your keys."));
|
|
|
+ this, tr("Derivation Components Missing"),
|
|
|
+ tr("Components are missing that may hinder key derivation from completing. "
|
|
|
+ "<br>Please follow <a href='https://yuzu-emu.org/help/quickstart/'>the yuzu "
|
|
|
+ "quickstart guide</a> to get all your keys and "
|
|
|
+ "games.<br><br><small>(%1)</small>")
|
|
|
+ .arg(errors));
|
|
|
}
|
|
|
|
|
|
QProgressDialog prog;
|