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