diff --git a/BizHawk.Client.Common/movie/Movie.cs b/BizHawk.Client.Common/movie/Movie.cs index 1d4dfd495c..36c11e348e 100644 --- a/BizHawk.Client.Common/movie/Movie.cs +++ b/BizHawk.Client.Common/movie/Movie.cs @@ -104,7 +104,15 @@ namespace BizHawk.Client.Common public void StartNewRecording() { - Global.Emulator.ClearSaveRam(); + // adelikat: ClearSaveRam shouldn't be here at all most likely, especially considering this is an implementation detail + // If Starting a new recording requires clearing sram it shoudl be done at a higher layer and not rely on all IMovies doing this + // Haven't removed it yet because I coudln't guarantee that power-on movies coudl live without it + // And the immediate fire is that Savestate movies are breaking + if (!Header.StartsFromSavestate) + { + Global.Emulator.ClearSaveRam(); + } + _mode = Moviemode.Record; if (Global.Config.EnableBackupMovies && MakeBackup && _log.Length > 0) { @@ -117,7 +125,12 @@ namespace BizHawk.Client.Common public void StartNewPlayback() { - Global.Emulator.ClearSaveRam(); + // See StartNewRecording for details as to why this savestate check is here + if (!Header.StartsFromSavestate) + { + Global.Emulator.ClearSaveRam(); + } + _mode = Moviemode.Play; }