diff --git a/BizHawk.MultiClient/MainForm.Movie.cs b/BizHawk.MultiClient/MainForm.Movie.cs index 50cd7f304f..5d95417fe0 100644 --- a/BizHawk.MultiClient/MainForm.Movie.cs +++ b/BizHawk.MultiClient/MainForm.Movie.cs @@ -24,12 +24,14 @@ namespace BizHawk.MultiClient Global.MovieSession.Movie = m; RewireInputChain(); - LoadRom(Global.MainForm.CurrentlyOpenRom, true); if (!record) { Global.MovieSession.Movie.LoadMovie(); + SetSyncDependentSettings(); } + LoadRom(Global.MainForm.CurrentlyOpenRom, true); + Global.Config.RecentMovies.Add(m.Filename); if (Global.MovieSession.Movie.StartsFromSavestate) { @@ -291,5 +293,28 @@ namespace BizHawk.MultiClient Global.MovieSession.Movie.CommitFrame(Global.Emulator.Frame, Global.MovieOutputHardpoint); } } + + //On movie load, these need to be set based on the contents of the movie file + private void SetSyncDependentSettings() + { + string str = ""; + switch (Global.Emulator.SystemId) + { + case "Coleco": + str = Global.MovieSession.Movie.Header.GetHeaderLine(MovieHeader.SKIPBIOS); + if (!String.IsNullOrWhiteSpace(str)) + { + if (str.ToLower() == "true") + { + Global.Config.ColecoSkipBiosIntro = true; + } + else + { + Global.Config.ColecoSkipBiosIntro = false; + } + } + break; + } + } } } diff --git a/BizHawk.MultiClient/movie/MovieHeader.cs b/BizHawk.MultiClient/movie/MovieHeader.cs index 7bfae40383..be40f36ebd 100644 --- a/BizHawk.MultiClient/movie/MovieHeader.cs +++ b/BizHawk.MultiClient/movie/MovieHeader.cs @@ -183,6 +183,26 @@ namespace BizHawk.MultiClient line = ParseHeader(line, MovieHeader.SHA1); AddHeaderLine(MovieHeader.SHA1, line); } + else if (line.Contains(MovieHeader.SKIPBIOS)) + { + line = ParseHeader(line, MovieHeader.SKIPBIOS); + AddHeaderLine(MovieHeader.SKIPBIOS, line); + } + else if (line.Contains(MovieHeader.GB_FORCEDMG)) + { + line = ParseHeader(line, MovieHeader.GB_FORCEDMG); + AddHeaderLine(MovieHeader.GB_FORCEDMG, line); + } + else if (line.Contains(MovieHeader.GB_GBA_IN_CGB)) + { + line = ParseHeader(line, MovieHeader.GB_GBA_IN_CGB); + AddHeaderLine(MovieHeader.GB_GBA_IN_CGB, line); + } + else if (line.Contains(MovieHeader.SGB)) + { + line = ParseHeader(line, MovieHeader.SGB); + AddHeaderLine(MovieHeader.SGB, line); + } else if (line.StartsWith("subtitle") || line.StartsWith("sub")) { return false;