From 89789b4358b65dc11ea6f78029c47a79f1992a9a Mon Sep 17 00:00:00 2001 From: adelikat Date: Thu, 4 Jun 2020 20:06:20 -0500 Subject: [PATCH] band-aid fix bk2 to tasproj conversions in tastudio --- src/BizHawk.Client.Common/movie/MovieSession.cs | 2 +- .../movie/conversions/MovieConversionExtensions.cs | 7 +++++-- .../movie/tasproj/TasStateManager.cs | 9 +++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/BizHawk.Client.Common/movie/MovieSession.cs b/src/BizHawk.Client.Common/movie/MovieSession.cs index 3f5b173e9e..9dbc798201 100644 --- a/src/BizHawk.Client.Common/movie/MovieSession.cs +++ b/src/BizHawk.Client.Common/movie/MovieSession.cs @@ -331,7 +331,7 @@ namespace BizHawk.Client.Common public void ConvertToTasProj() { Movie.Save(); - Movie = Movie.ToTasMovie(); + Movie = Movie.ToTasMovie(this); Movie.Save(); Movie.SwitchToPlay(); } diff --git a/src/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs b/src/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs index 3c3115de84..d60eb8893c 100644 --- a/src/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs +++ b/src/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs @@ -15,12 +15,15 @@ namespace BizHawk.Client.Common.MovieConversionExtensions { public static class MovieConversionExtensions { - public static ITasMovie ToTasMovie(this IMovie old) + public static ITasMovie ToTasMovie(this IMovie old, IMovieSession session) { string newFilename = GetNewFileName(old.Filename); - var tas = (ITasMovie)MovieService.Get(newFilename); + // TODO: this relies on the fact that the emulator core here will be the same as when it is load + // so this specifically only works in the scenario of a running bk2 converted to tasproj in tastudio + // need to untangle and not be so dependent on core loading behavior + tas.Attach(session, old.Emulator); for (var i = 0; i < old.InputLogLength; i++) { var input = old.GetInputState(i); diff --git a/src/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs b/src/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs index be8c67c975..aae9505f6f 100644 --- a/src/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs +++ b/src/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs @@ -46,10 +46,11 @@ namespace BizHawk.Client.Common public void Attach(IEmulator emulator) { - if (!_emulator.IsNull()) - { - throw new InvalidOperationException("A core has already been attached!"); - } + // TODO: we aren't ready for this, attach is called when converting a bk2 to tasproj and again to officially load the emulator + //if (!_emulator.IsNull()) + //{ + // throw new InvalidOperationException("A core has already been attached!"); + //} if (!emulator.HasSavestates()) {