diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs index ebfdd928a0..17ba30d740 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs @@ -14,7 +14,7 @@ namespace BizHawk.Client.EmuHawk if (frame <= Emulator.Frame) { if ((MainForm.EmulatorPaused || !MainForm.IsSeeking) - && !CurrentTasMovie.LastPositionStable) + && !CurrentTasMovie.LastPositionStable && !_playbackInterrupted) { LastPositionFrame = Emulator.Frame; CurrentTasMovie.LastPositionStable = true; // until new frame is emulated diff --git a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 4610856d67..26073e0551 100644 --- a/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/src/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -1018,6 +1018,13 @@ namespace BizHawk.Client.EmuHawk private void DoTriggeredAutoRestoreIfNeeded() { + // Disable the seek that could have been initiated when painting. + // This must done before DoAutoRestore, otherwise it would disable the auto-restore seek. + if (_playbackInterrupted) + { + MainForm.PauseOnFrame = null; + } + if (_triggerAutoRestore) { DoAutoRestore(); @@ -1025,11 +1032,10 @@ namespace BizHawk.Client.EmuHawk _triggerAutoRestore = false; _autoRestorePaused = null; } - + if (_playbackInterrupted) { MainForm.UnpauseEmulator(); - MainForm.PauseOnFrame = null; _playbackInterrupted = false; } }