From d53afd2d2a68a8154cf500043c0f605995b55ce3 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sat, 16 Aug 2014 20:32:59 +0000 Subject: [PATCH] This seems to improve the ram usage in bkm to bk2 conversions, it at least keeps the 75mb n64 movie I have from crashing during the convert. --- .../conversions/MovieConversionExtensions.cs | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs b/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs index d3df703aaa..f6e5739246 100644 --- a/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs +++ b/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs @@ -11,6 +11,15 @@ namespace BizHawk.Client.Common.MovieConversionExtensions { var newFilename = old.Filename + "." + TasMovie.Extension; var tas = new TasMovie(newFilename); + + for (var i = 0; i < old.InputLogLength; i++) + { + var input = old.GetInputState(i); + tas.AppendFrame(input); + } + + old.Truncate(0); // Trying to minimize ram usage + tas.HeaderEntries.Clear(); foreach (var kvp in old.HeaderEntries) { @@ -34,11 +43,7 @@ namespace BizHawk.Client.Common.MovieConversionExtensions tas.TextSavestate = old.TextSavestate; tas.BinarySavestate = old.BinarySavestate; - for (var i = 0; i < old.InputLogLength; i++) - { - var input = old.GetInputState(i); - tas.AppendFrame(input); - } + return tas; } @@ -47,6 +52,15 @@ namespace BizHawk.Client.Common.MovieConversionExtensions { var newFilename = old.Filename + "." + Bk2Movie.Extension; var bk2 = new Bk2Movie(newFilename); + + for (var i = 0; i < old.InputLogLength; i++) + { + var input = old.GetInputState(i); + bk2.AppendFrame(input); + } + + old.Truncate(0); // Trying to minimize ram usage + bk2.HeaderEntries.Clear(); foreach(var kvp in old.HeaderEntries) { @@ -70,12 +84,6 @@ namespace BizHawk.Client.Common.MovieConversionExtensions bk2.TextSavestate = old.TextSavestate; bk2.BinarySavestate = old.BinarySavestate; - for (var i = 0; i < old.InputLogLength; i++) - { - var input = old.GetInputState(i); - bk2.AppendFrame(input); - } - bk2.Save(); return bk2; }