diff --git a/src/BizHawk.Client.Common/movie/tasproj/ZwinderStateManager.cs b/src/BizHawk.Client.Common/movie/tasproj/ZwinderStateManager.cs index f03e019beb..c429fa3584 100644 --- a/src/BizHawk.Client.Common/movie/tasproj/ZwinderStateManager.cs +++ b/src/BizHawk.Client.Common/movie/tasproj/ZwinderStateManager.cs @@ -469,7 +469,7 @@ namespace BizHawk.Client.Common public bool HasState(int frame) { - return GetStateClosestToFrame(frame).Key == frame; + return StateCache.Contains(frame); } private bool InvalidateGaps(int frame) diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs index 35b200bcc7..bcf70e678f 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs @@ -788,10 +788,10 @@ namespace BizHawk.Client.EmuHawk { MainForm.FrameAdvance(); - if (CurrentTasMovie.TasStateManager.HasState(Emulator.Frame)) + byte[] greenZone = CurrentTasMovie.TasStateManager[Emulator.Frame]; + if (greenZone.Length > 0) { byte[] state = StatableEmulator.CloneSavestate(); - byte[] greenZone = CurrentTasMovie.TasStateManager[Emulator.Frame]; if (!state.SequenceEqual(greenZone)) { @@ -805,6 +805,7 @@ namespace BizHawk.Client.EmuHawk File.WriteAllBytes(path, greenZone); } } + return; }