forked from eden-emu/eden
		
	yuzu: Add button to boot mii edit from firmware
This commit is contained in:
		
							parent
							
								
									2921a24268
								
							
						
					
					
						commit
						bb4ae5ee53
					
				
					 3 changed files with 52 additions and 1 deletions
				
			
		|  | @ -1551,6 +1551,7 @@ void GMainWindow::ConnectMenuEvents() { | |||
|     // Tools
 | ||||
|     connect_menu(ui->action_Rederive, std::bind(&GMainWindow::OnReinitializeKeys, this, | ||||
|                                                 ReinitializeKeyBehavior::Warning)); | ||||
|     connect_menu(ui->action_Load_Mii_Edit, &GMainWindow::OnMiiEdit); | ||||
|     connect_menu(ui->action_Capture_Screenshot, &GMainWindow::OnCaptureScreenshot); | ||||
| 
 | ||||
|     // TAS
 | ||||
|  | @ -1590,6 +1591,8 @@ void GMainWindow::UpdateMenuState() { | |||
|     } | ||||
| 
 | ||||
|     multiplayer_state->UpdateNotificationStatus(); | ||||
| 
 | ||||
|     ui->action_Load_Mii_Edit->setEnabled(CheckFirmwarePresence()); | ||||
| } | ||||
| 
 | ||||
| void GMainWindow::OnDisplayTitleBars(bool show) { | ||||
|  | @ -4134,6 +4137,27 @@ void GMainWindow::OnToggleStatusBar() { | |||
|     statusBar()->setVisible(ui->action_Show_Status_Bar->isChecked()); | ||||
| } | ||||
| 
 | ||||
| void GMainWindow::OnMiiEdit() { | ||||
|     constexpr u64 MiiEditId = 0x0100000000001009ull; | ||||
|     auto bis_system = system->GetFileSystemController().GetSystemNANDContents(); | ||||
|     if (!bis_system) { | ||||
|         QMessageBox::warning(this, tr("No firmware available"), | ||||
|                              tr("Please install the firmware to use the Mii editor.")); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     auto mii_applet_nca = bis_system->GetEntry(MiiEditId, FileSys::ContentRecordType::Program); | ||||
|     if (!mii_applet_nca) { | ||||
|         QMessageBox::warning(this, tr("Mii Edit Applet"), | ||||
|                              tr("Mii editor is not available. Please reinstall firmware.")); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     const auto filename = QString::fromStdString((mii_applet_nca->GetFullPath())); | ||||
|     UISettings::values.roms_path = QFileInfo(filename).path(); | ||||
|     BootGame(filename); | ||||
| } | ||||
| 
 | ||||
| void GMainWindow::OnCaptureScreenshot() { | ||||
|     if (emu_thread == nullptr || !emu_thread->IsRunning()) { | ||||
|         return; | ||||
|  | @ -4540,6 +4564,8 @@ void GMainWindow::OnReinitializeKeys(ReinitializeKeyBehavior behavior) { | |||
|     if (behavior == ReinitializeKeyBehavior::Warning) { | ||||
|         game_list->PopulateAsync(UISettings::values.game_dirs); | ||||
|     } | ||||
| 
 | ||||
|     UpdateMenuState(); | ||||
| } | ||||
| 
 | ||||
| bool GMainWindow::CheckSystemArchiveDecryption() { | ||||
|  | @ -4561,6 +4587,22 @@ bool GMainWindow::CheckSystemArchiveDecryption() { | |||
|     return mii_nca->GetRomFS().get() != nullptr; | ||||
| } | ||||
| 
 | ||||
| bool GMainWindow::CheckFirmwarePresence() { | ||||
|     constexpr u64 MiiEditId = 0x0100000000001009ull; | ||||
| 
 | ||||
|     auto bis_system = system->GetFileSystemController().GetSystemNANDContents(); | ||||
|     if (!bis_system) { | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     auto mii_applet_nca = bis_system->GetEntry(MiiEditId, FileSys::ContentRecordType::Program); | ||||
|     if (!mii_applet_nca) { | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| bool GMainWindow::SelectRomFSDumpTarget(const FileSys::ContentProvider& installed, u64 program_id, | ||||
|                                         u64* selected_title_id, u8* selected_content_record_type) { | ||||
|     using ContentInfo = std::pair<FileSys::TitleType, FileSys::ContentRecordType>; | ||||
|  |  | |||
|  | @ -365,6 +365,7 @@ private slots: | |||
|     void ResetWindowSize720(); | ||||
|     void ResetWindowSize900(); | ||||
|     void ResetWindowSize1080(); | ||||
|     void OnMiiEdit(); | ||||
|     void OnCaptureScreenshot(); | ||||
|     void OnReinitializeKeys(ReinitializeKeyBehavior behavior); | ||||
|     void OnLanguageChanged(const QString& locale); | ||||
|  | @ -409,6 +410,7 @@ private: | |||
|     void OpenPerGameConfiguration(u64 title_id, const std::string& file_name); | ||||
|     bool CheckDarkMode(); | ||||
|     bool CheckSystemArchiveDecryption(); | ||||
|     bool CheckFirmwarePresence(); | ||||
|     void ConfigureFilesystemProvider(const std::string& filepath); | ||||
| 
 | ||||
|     QString GetTasStateDescription() const; | ||||
|  |  | |||
|  | @ -150,6 +150,8 @@ | |||
|     <addaction name="action_Rederive"/> | ||||
|     <addaction name="action_Verify_installed_contents"/> | ||||
|     <addaction name="separator"/> | ||||
|     <addaction name="action_Load_Mii_Edit"/> | ||||
|     <addaction name="separator"/> | ||||
|     <addaction name="action_Capture_Screenshot"/> | ||||
|     <addaction name="menuTAS"/> | ||||
|    </widget> | ||||
|  | @ -217,7 +219,7 @@ | |||
|   </action> | ||||
|   <action name="action_Verify_installed_contents"> | ||||
|    <property name="text"> | ||||
|     <string>Verify installed contents</string> | ||||
|     <string>&Verify Installed Contents</string> | ||||
|    </property> | ||||
|   </action> | ||||
|   <action name="action_About"> | ||||
|  | @ -368,6 +370,11 @@ | |||
|     <string>&Capture Screenshot</string> | ||||
|    </property> | ||||
|   </action> | ||||
|   <action name="action_Load_Mii_Edit"> | ||||
|     <property name="text"> | ||||
|       <string>Open &Mii Editor</string> | ||||
|     </property> | ||||
|   </action> | ||||
|   <action name="action_Configure_Tas"> | ||||
|    <property name="text"> | ||||
|     <string>&Configure TAS...</string> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 german77
						german77