From c08e6bbf936e7c5a1d3afef2a2a01e15fecb0b42 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sat, 14 Jun 2014 19:13:21 +0000 Subject: [PATCH] Some more bk2 and movies 2.0 stuff --- BizHawk.Client.Common/movie/MovieImport.cs | 5 ++--- BizHawk.Client.Common/movie/MovieService.cs | 2 +- BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs | 2 +- BizHawk.Client.Common/movie/bk2/Bk2Movie.cs | 1 - BizHawk.Client.Common/movie/bkm/BkmMovie.IO.cs | 2 +- BizHawk.Client.Common/movie/interfaces/IMovie.cs | 12 ++++++++++-- BizHawk.Client.Common/movie/tasproj/TasMovie.cs | 2 +- BizHawk.Client.EmuHawk/movie/PlayMovie.cs | 2 +- 8 files changed, 17 insertions(+), 11 deletions(-) diff --git a/BizHawk.Client.Common/movie/MovieImport.cs b/BizHawk.Client.Common/movie/MovieImport.cs index c3de155207..5acd694862 100644 --- a/BizHawk.Client.Common/movie/MovieImport.cs +++ b/BizHawk.Client.Common/movie/MovieImport.cs @@ -6,6 +6,7 @@ using System.IO; using BizHawk.Common; using BizHawk.Emulation.Common; +using BizHawk.Emulation.Cores.Nintendo.SNES; namespace BizHawk.Client.Common { @@ -1115,9 +1116,7 @@ namespace BizHawk.Client.Common case "sgb_ntsc": case "sgb_pal": platform = "SNES"; - // Movies 2.0 TODO: populating this flag wasn't doing anything useful - // Figure out how to properly set sync settings to set it to sgb - //m.Header[HeaderKeys.SGB] = "True"; + Global.Config.GB_AsSGB = true; break; } bool pal = (gametype == "snes_pal" || gametype == "sgb_pal"); diff --git a/BizHawk.Client.Common/movie/MovieService.cs b/BizHawk.Client.Common/movie/MovieService.cs index 984e97124a..be32616be6 100644 --- a/BizHawk.Client.Common/movie/MovieService.cs +++ b/BizHawk.Client.Common/movie/MovieService.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using System.Reflection; using System.Text; using BizHawk.Common; @@ -47,7 +48,6 @@ namespace BizHawk.Client.Common /// public static IEnumerable MovieExtensions { - // Movies 2.0 TODO: consider using reflection to find IMovie implementations get { yield return "bkm"; diff --git a/BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs b/BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs index b41b0d0f25..69d6dd2445 100644 --- a/BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs +++ b/BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs @@ -133,7 +133,7 @@ namespace BizHawk.Client.Common return true; } - public bool PreLoadText(HawkFile hawkFile) + public bool PreLoadHeaderAndLength(HawkFile hawkFile) { // For now, preload simply loads everything var file = new FileInfo(Filename); diff --git a/BizHawk.Client.Common/movie/bk2/Bk2Movie.cs b/BizHawk.Client.Common/movie/bk2/Bk2Movie.cs index 02fa2ce2a1..62681007e4 100644 --- a/BizHawk.Client.Common/movie/bk2/Bk2Movie.cs +++ b/BizHawk.Client.Common/movie/bk2/Bk2Movie.cs @@ -11,7 +11,6 @@ namespace BizHawk.Client.Common { public partial class Bk2Movie : IMovie { - // Movies 2.0 TODO: save and load loopOffset, put in header object private readonly PlatformFrameRates _frameRates = new PlatformFrameRates(); private bool _makeBackup = true; diff --git a/BizHawk.Client.Common/movie/bkm/BkmMovie.IO.cs b/BizHawk.Client.Common/movie/bkm/BkmMovie.IO.cs index 47b4e8f7b1..d9dcc4413b 100644 --- a/BizHawk.Client.Common/movie/bkm/BkmMovie.IO.cs +++ b/BizHawk.Client.Common/movie/bkm/BkmMovie.IO.cs @@ -116,7 +116,7 @@ namespace BizHawk.Client.Common /// Load Header information only for displaying file information in dialogs such as play movie /// TODO - consider not loading the SavestateBinaryBase64Blob key? /// - public bool PreLoadText(HawkFile hawkFile) + public bool PreLoadHeaderAndLength(HawkFile hawkFile) { Loaded = false; var file = new FileInfo(hawkFile.CanonicalFullPath); diff --git a/BizHawk.Client.Common/movie/interfaces/IMovie.cs b/BizHawk.Client.Common/movie/interfaces/IMovie.cs index a7ca1dc18c..b1bc5cbe0b 100644 --- a/BizHawk.Client.Common/movie/interfaces/IMovie.cs +++ b/BizHawk.Client.Common/movie/interfaces/IMovie.cs @@ -56,10 +56,14 @@ namespace BizHawk.Client.Common /// string SyncSettingsJson { get; set; } - // TODO: document these SubtitleList Subtitles { get; } IList Comments { get; } + + /// + /// For savestate anchored movies, this is the starting savestate + /// string SavestateBinaryBase64Blob { get; set; } + ulong Rerecords { get; set; } bool StartsFromSavestate { get; set; } string GameName { get; set; } @@ -72,7 +76,11 @@ namespace BizHawk.Client.Common string FirmwareHash { get; set; } string BoardName { get; set; } - bool PreLoadText(HawkFile hawkFile); // Movies 2.0 TODO: find a better way to not need this + /// + /// Loads from the HawkFile the minimal amount of information needed to determine Header info and Movie length + /// This method is intended to be more performant than a full load + /// + bool PreLoadHeaderAndLength(HawkFile hawkFile); /// /// Returns header key value pairs stored in the movie file diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.cs index 51d605295e..2893877620 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovie.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.cs @@ -267,7 +267,7 @@ namespace BizHawk.Client.Common } } - public bool PreLoadText(HawkFile hawkFile) + public bool PreLoadHeaderAndLength(HawkFile hawkFile) { throw new NotImplementedException(); } diff --git a/BizHawk.Client.EmuHawk/movie/PlayMovie.cs b/BizHawk.Client.EmuHawk/movie/PlayMovie.cs index 99cfc458e2..56bc4bcfbf 100644 --- a/BizHawk.Client.EmuHawk/movie/PlayMovie.cs +++ b/BizHawk.Client.EmuHawk/movie/PlayMovie.cs @@ -128,7 +128,7 @@ namespace BizHawk.Client.EmuHawk try { - movie.PreLoadText(hf); + movie.PreLoadHeaderAndLength(hf); // Don't do this from browse if (movie.Hash == Global.Game.Hash ||