Movies - Fix loading of sync depending GB menu items. Sync dependent movie header items now force the emulator settings when the movie is loaded (currently that is 3 gb items, and the coleco skip bios option)

This commit is contained in:
adelikat 2012-11-22 03:47:18 +00:00
parent 7b146707d1
commit 2254bc7008
2 changed files with 46 additions and 1 deletions

View File

@ -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;
}
}
}
}

View File

@ -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;