diff --git a/Core/Console.cpp b/Core/Console.cpp index 3b3746b..5941e51 100644 --- a/Core/Console.cpp +++ b/Core/Console.cpp @@ -140,6 +140,10 @@ void Console::Run() RunFrameWithRunAhead(); } else { RunFrame(); + + if (_historyViewer) { + _historyViewer->ProcessEndOfFrame(); + } _rewindManager->ProcessEndOfFrame(); ProcessSystemActions(); } @@ -568,16 +572,16 @@ HistoryViewer* Console::GetHistoryViewer() void Console::CopyRewindData(shared_ptr sourceConsole) { - sourceConsole->Pause(); - Pause(); + sourceConsole->Lock(); + Lock(); //Disable battery saving for this instance _batteryManager->SetSaveEnabled(false); _historyViewer.reset(new HistoryViewer(shared_from_this())); sourceConsole->GetRewindManager()->CopyHistory(_historyViewer); - Resume(); - sourceConsole->Resume(); + Unlock(); + sourceConsole->Unlock(); } void Console::PauseOnNextFrame() diff --git a/UI/Forms/frmHistoryViewer.cs b/UI/Forms/frmHistoryViewer.cs index 5b3c8a1..82be4fe 100644 --- a/UI/Forms/frmHistoryViewer.cs +++ b/UI/Forms/frmHistoryViewer.cs @@ -46,7 +46,7 @@ namespace Mesen.GUI.Forms base.OnShown(e); HistoryViewerApi.HistoryViewerInitialize(this.Handle, ctrlRenderer.Handle); - trkPosition.Maximum = (int)(HistoryViewerApi.HistoryViewerGetHistoryLength() / 60); + trkPosition.Maximum = (int)(HistoryViewerApi.HistoryViewerGetHistoryLength() / 60 / 2); UpdatePositionLabel(0); EmuApi.Resume(EmuApi.ConsoleId.HistoryViewer); tmrUpdatePosition.Start();