From 0b07e38bdf837cd8e0d66e8afa9e72ca14365b26 Mon Sep 17 00:00:00 2001 From: RetroEdit <30182911+RetroEdit@users.noreply.github.com> Date: Sun, 5 Jul 2020 16:21:01 +0000 Subject: [PATCH] Update emuVersion each time the movie is opened; OriginalEmuVersion preserves old behavior. (#2193) --- src/BizHawk.Client.Common/movie/HeaderKeys.cs | 3 ++- .../movie/MovieConversionExtensions.cs | 1 + .../movie/bk2/Bk2Movie.HeaderApi.cs | 19 ++++++++++++++++--- .../movie/bk2/Bk2Movie.IO.cs | 6 ++++++ .../movie/interfaces/IMovie.cs | 1 + src/BizHawk.Client.EmuHawk/movie/PlayMovie.cs | 2 +- 6 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/BizHawk.Client.Common/movie/HeaderKeys.cs b/src/BizHawk.Client.Common/movie/HeaderKeys.cs index af3e1d4fab..25c7359aa7 100644 --- a/src/BizHawk.Client.Common/movie/HeaderKeys.cs +++ b/src/BizHawk.Client.Common/movie/HeaderKeys.cs @@ -4,7 +4,8 @@ namespace BizHawk.Client.Common { public static class HeaderKeys { - public const string EmulationVersion = "emuVersion"; + public const string EmulatorVersion = "emuVersion"; + public const string OriginalEmulatorVersion = "OriginalEmuVersion"; public const string MovieVersion = "MovieVersion"; public const string Platform = "Platform"; public const string GameName = "GameName"; diff --git a/src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs b/src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs index 77d9a1beec..5e20232d6f 100644 --- a/src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs +++ b/src/BizHawk.Client.Common/movie/MovieConversionExtensions.cs @@ -191,6 +191,7 @@ namespace BizHawk.Client.Common { movie.Author = author; movie.EmulatorVersion = VersionInfo.GetEmuVersion(); + movie.OriginalEmulatorVersion = VersionInfo.GetEmuVersion(); movie.SystemID = emulator.SystemId; var settable = new SettingsAdapter(emulator); diff --git a/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.HeaderApi.cs b/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.HeaderApi.cs index 496551cb47..8d64dd64f8 100644 --- a/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.HeaderApi.cs +++ b/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.HeaderApi.cs @@ -167,13 +167,26 @@ namespace BizHawk.Client.Common public string EmulatorVersion { - get => Header[HeaderKeys.EmulationVersion]; + get => Header[HeaderKeys.EmulatorVersion]; set { - if (Header[HeaderKeys.EmulationVersion] != value) + if (Header[HeaderKeys.EmulatorVersion] != value) { Changes = true; - Header[HeaderKeys.EmulationVersion] = value; + Header[HeaderKeys.EmulatorVersion] = value; + } + } + } + + public string OriginalEmulatorVersion + { + get => Header[HeaderKeys.OriginalEmulatorVersion]; + set + { + if (Header[HeaderKeys.OriginalEmulatorVersion] != value) + { + Changes = true; + Header[HeaderKeys.OriginalEmulatorVersion] = value; } } } diff --git a/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs b/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs index ff58c9d2fc..5e90a7723a 100644 --- a/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs +++ b/src/BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs @@ -176,6 +176,12 @@ namespace BizHawk.Client.Common } } }); + // EmulatorVersion used to store the unchanging original emulator version. + if (!Header.ContainsKey(HeaderKeys.OriginalEmulatorVersion)) + { + Header[HeaderKeys.OriginalEmulatorVersion] = Header[HeaderKeys.EmulatorVersion]; + } + Header[HeaderKeys.EmulatorVersion] = VersionInfo.GetEmuVersion(); bl.GetLump(BinaryStateLump.Comments, false, delegate(TextReader tr) { diff --git a/src/BizHawk.Client.Common/movie/interfaces/IMovie.cs b/src/BizHawk.Client.Common/movie/interfaces/IMovie.cs index b7cd72d56e..bf45b76b6d 100644 --- a/src/BizHawk.Client.Common/movie/interfaces/IMovie.cs +++ b/src/BizHawk.Client.Common/movie/interfaces/IMovie.cs @@ -90,6 +90,7 @@ namespace BizHawk.Client.Common string Author { get; set; } string Core { get; set; } string EmulatorVersion { get; set; } + string OriginalEmulatorVersion { get; set; } string FirmwareHash { get; set; } string BoardName { get; set; } diff --git a/src/BizHawk.Client.EmuHawk/movie/PlayMovie.cs b/src/BizHawk.Client.EmuHawk/movie/PlayMovie.cs index c1842bbb4b..0b10bd4cee 100644 --- a/src/BizHawk.Client.EmuHawk/movie/PlayMovie.cs +++ b/src/BizHawk.Client.EmuHawk/movie/PlayMovie.cs @@ -420,7 +420,7 @@ namespace BizHawk.Client.EmuHawk toolTip1.SetToolTip(DetailsView, $"Current SHA1: {_game.Hash}"); } break; - case HeaderKeys.EmulationVersion: + case HeaderKeys.EmulatorVersion: if (kvp.Value != VersionInfo.GetEmuVersion()) { item.BackColor = Color.Yellow;