mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	movie: Add clock init time to CTM header
This adds a clock init time field to the CTM header. The clock settings would be overridden when playing a movie. And when recording a movie, if the clock is set to System Time, it would be set to fixed init time at the current moment as well. In this way this keeps consistency with the RNG even if the user does just no setting.
This commit is contained in:
		
							parent
							
								
									20e42592ff
								
							
						
					
					
						commit
						ae5c658997
					
				
					 5 changed files with 96 additions and 20 deletions
				
			
		|  | @ -746,6 +746,10 @@ void GMainWindow::BootGame(const QString& filename) { | |||
|     LOG_INFO(Frontend, "Citra starting..."); | ||||
|     StoreRecentFile(filename); // Put the filename on top of the list
 | ||||
| 
 | ||||
|     if (movie_record_on_start) { | ||||
|         Core::Movie::GetInstance().PrepareForRecording(); | ||||
|     } | ||||
| 
 | ||||
|     if (!LoadROM(filename)) | ||||
|         return; | ||||
| 
 | ||||
|  | @ -1261,6 +1265,15 @@ void GMainWindow::OnCreateGraphicsSurfaceViewer() { | |||
| } | ||||
| 
 | ||||
| void GMainWindow::OnRecordMovie() { | ||||
|     if (emulation_running) { | ||||
|         QMessageBox::StandardButton answer = QMessageBox::warning( | ||||
|             this, tr("Record Movie"), | ||||
|             tr("To keep consistency with the RNG, it is recommended to record the movie from game " | ||||
|                "start.<br>Are you sure you still want to record movies now?"), | ||||
|             QMessageBox::Yes | QMessageBox::No); | ||||
|         if (answer == QMessageBox::No) | ||||
|             return; | ||||
|     } | ||||
|     const QString path = | ||||
|         QFileDialog::getSaveFileName(this, tr("Record Movie"), UISettings::values.movie_record_path, | ||||
|                                      tr("Citra TAS Movie (*.ctm)")); | ||||
|  | @ -1322,6 +1335,16 @@ bool GMainWindow::ValidateMovie(const QString& path, u64 program_id) { | |||
| } | ||||
| 
 | ||||
| void GMainWindow::OnPlayMovie() { | ||||
|     if (emulation_running) { | ||||
|         QMessageBox::StandardButton answer = QMessageBox::warning( | ||||
|             this, tr("Play Movie"), | ||||
|             tr("To keep consistency with the RNG, it is recommended to play the movie from game " | ||||
|                "start.<br>Are you sure you still want to play movies now?"), | ||||
|             QMessageBox::Yes | QMessageBox::No); | ||||
|         if (answer == QMessageBox::No) | ||||
|             return; | ||||
|     } | ||||
| 
 | ||||
|     const QString path = | ||||
|         QFileDialog::getOpenFileName(this, tr("Play Movie"), UISettings::values.movie_playback_path, | ||||
|                                      tr("Citra TAS Movie (*.ctm)")); | ||||
|  | @ -1353,6 +1376,7 @@ void GMainWindow::OnPlayMovie() { | |||
|         } | ||||
|         if (!ValidateMovie(path, program_id)) | ||||
|             return; | ||||
|         Core::Movie::GetInstance().PrepareForPlayback(path.toStdString()); | ||||
|         BootGame(game_path); | ||||
|     } | ||||
|     Core::Movie::GetInstance().StartPlayback(path.toStdString(), [this] { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue