[desktop] only warn on firmware for qlaunch/games (#363)
- only warns about too new/missing for home menu - only warns about missing for games that need it (mk8dx) Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: #363 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: MaranBr <maranbr@outlook.com>
This commit is contained in:
parent
76de9d6c8c
commit
3b4c1beb0c
3 changed files with 38 additions and 24 deletions
|
@ -553,9 +553,6 @@ GMainWindow::GMainWindow(bool has_broken_vulkan)
|
||||||
// Gen keys if necessary
|
// Gen keys if necessary
|
||||||
OnCheckFirmwareDecryption();
|
OnCheckFirmwareDecryption();
|
||||||
|
|
||||||
// Check firmware
|
|
||||||
OnCheckFirmware();
|
|
||||||
|
|
||||||
game_list->LoadCompatibilityList();
|
game_list->LoadCompatibilityList();
|
||||||
// force reload on first load to ensure add-ons get updated
|
// force reload on first load to ensure add-ons get updated
|
||||||
game_list->PopulateAsync(UISettings::values.game_dirs, false);
|
game_list->PopulateAsync(UISettings::values.game_dirs, false);
|
||||||
|
@ -4459,7 +4456,6 @@ void GMainWindow::InstallFirmware(const QString& location, bool recursive) {
|
||||||
|
|
||||||
progress.close();
|
progress.close();
|
||||||
OnCheckFirmwareDecryption();
|
OnCheckFirmwareDecryption();
|
||||||
OnCheckFirmware();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GMainWindow::OnInstallFirmware() {
|
void GMainWindow::OnInstallFirmware() {
|
||||||
|
@ -4580,7 +4576,6 @@ void GMainWindow::OnInstallDecryptionKeys() {
|
||||||
}
|
}
|
||||||
|
|
||||||
OnCheckFirmwareDecryption();
|
OnCheckFirmwareDecryption();
|
||||||
OnCheckFirmware();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GMainWindow::OnAbout() {
|
void GMainWindow::OnAbout() {
|
||||||
|
@ -4609,6 +4604,7 @@ void GMainWindow::OnToggleStatusBar() {
|
||||||
void GMainWindow::OnGameListRefresh() {
|
void GMainWindow::OnGameListRefresh() {
|
||||||
// force reload add-ons etc
|
// force reload add-ons etc
|
||||||
game_list->ForceRefreshGameDirectory();
|
game_list->ForceRefreshGameDirectory();
|
||||||
|
SetFirmwareVersion();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GMainWindow::OnAlbum() {
|
void GMainWindow::OnAlbum() {
|
||||||
|
@ -4707,13 +4703,42 @@ void GMainWindow::OnOpenControllerMenu() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void GMainWindow::OnHomeMenu() {
|
void GMainWindow::OnHomeMenu() {
|
||||||
|
auto result = FirmwareManager::VerifyFirmware(*system.get());
|
||||||
|
|
||||||
|
switch (result) {
|
||||||
|
case FirmwareManager::ErrorFirmwareMissing:
|
||||||
|
QMessageBox::warning(this, tr("No firmware available"),
|
||||||
|
tr("Please install firmware to use the Home Menu."));
|
||||||
|
return;
|
||||||
|
case FirmwareManager::ErrorFirmwareCorrupted:
|
||||||
|
QMessageBox::warning(this, tr("Firmware Corrupted"),
|
||||||
|
tr(FirmwareManager::GetFirmwareCheckString(result)));
|
||||||
|
return;
|
||||||
|
case FirmwareManager::ErrorFirmwareTooNew: {
|
||||||
|
if (!UISettings::values.show_fw_warning.GetValue()) break;
|
||||||
|
|
||||||
|
QMessageBox box(QMessageBox::Warning,
|
||||||
|
tr("Firmware Too New"),
|
||||||
|
tr(FirmwareManager::GetFirmwareCheckString(result)) + tr("\nContinue anyways?"),
|
||||||
|
QMessageBox::Yes | QMessageBox::No,
|
||||||
|
this);
|
||||||
|
|
||||||
|
QCheckBox *checkbox = new QCheckBox(tr("Don't show again"));
|
||||||
|
box.setCheckBox(checkbox);
|
||||||
|
|
||||||
|
int button = box.exec();
|
||||||
|
if (checkbox->isChecked()) {
|
||||||
|
UISettings::values.show_fw_warning.SetValue(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (button == static_cast<int>(QMessageBox::No)) return;
|
||||||
|
break;
|
||||||
|
} default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
constexpr u64 QLaunchId = static_cast<u64>(Service::AM::AppletProgramId::QLaunch);
|
constexpr u64 QLaunchId = static_cast<u64>(Service::AM::AppletProgramId::QLaunch);
|
||||||
auto bis_system = system->GetFileSystemController().GetSystemNANDContents();
|
auto bis_system = system->GetFileSystemController().GetSystemNANDContents();
|
||||||
if (!bis_system) {
|
|
||||||
QMessageBox::warning(this, tr("No firmware available"),
|
|
||||||
tr("Please install the firmware to use the Home Menu."));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto qlaunch_applet_nca = bis_system->GetEntry(QLaunchId, FileSys::ContentRecordType::Program);
|
auto qlaunch_applet_nca = bis_system->GetEntry(QLaunchId, FileSys::ContentRecordType::Program);
|
||||||
if (!qlaunch_applet_nca) {
|
if (!qlaunch_applet_nca) {
|
||||||
|
@ -5240,19 +5265,6 @@ void GMainWindow::OnCheckFirmwareDecryption() {
|
||||||
UpdateMenuState();
|
UpdateMenuState();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GMainWindow::OnCheckFirmware() {
|
|
||||||
auto result = FirmwareManager::VerifyFirmware(*system.get());
|
|
||||||
|
|
||||||
switch (result) {
|
|
||||||
case FirmwareManager::FirmwareGood:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
QMessageBox::warning(this, tr("Firmware Read Error"),
|
|
||||||
tr(FirmwareManager::GetFirmwareCheckString(result)));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GMainWindow::CheckFirmwarePresence() {
|
bool GMainWindow::CheckFirmwarePresence() {
|
||||||
return FirmwareManager::CheckFirmwarePresence(*system.get());
|
return FirmwareManager::CheckFirmwarePresence(*system.get());
|
||||||
}
|
}
|
||||||
|
|
|
@ -424,7 +424,6 @@ private slots:
|
||||||
void OnCreateHomeMenuShortcut(GameListShortcutTarget target);
|
void OnCreateHomeMenuShortcut(GameListShortcutTarget target);
|
||||||
void OnCaptureScreenshot();
|
void OnCaptureScreenshot();
|
||||||
void OnCheckFirmwareDecryption();
|
void OnCheckFirmwareDecryption();
|
||||||
void OnCheckFirmware();
|
|
||||||
void OnLanguageChanged(const QString& locale);
|
void OnLanguageChanged(const QString& locale);
|
||||||
void OnMouseActivity();
|
void OnMouseActivity();
|
||||||
bool OnShutdownBegin();
|
bool OnShutdownBegin();
|
||||||
|
|
|
@ -212,6 +212,9 @@ struct Values {
|
||||||
// Play time
|
// Play time
|
||||||
Setting<bool> show_play_time{linkage, true, "show_play_time", Category::UiGameList};
|
Setting<bool> show_play_time{linkage, true, "show_play_time", Category::UiGameList};
|
||||||
|
|
||||||
|
// misc
|
||||||
|
Setting<bool> show_fw_warning{linkage, true, "show_fw_warning", Category::Miscellaneous};
|
||||||
|
|
||||||
bool configuration_applied;
|
bool configuration_applied;
|
||||||
bool reset_to_defaults;
|
bool reset_to_defaults;
|
||||||
bool shortcut_already_warned{false};
|
bool shortcut_already_warned{false};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue