diff --git a/pcsx2/Recording/InputRecordingControls.cpp b/pcsx2/Recording/InputRecordingControls.cpp index 35da3a9daa..d764ba8b1e 100644 --- a/pcsx2/Recording/InputRecordingControls.cpp +++ b/pcsx2/Recording/InputRecordingControls.cpp @@ -122,6 +122,11 @@ void InputRecordingControls::FrameAdvance() Resume(); } +bool InputRecordingControls::IsFrameAdvancing() +{ + return frameAdvancing; +} + bool InputRecordingControls::IsPaused() { return (emulationCurrentlyPaused && CoreThread.IsOpen() && CoreThread.IsPaused()); diff --git a/pcsx2/Recording/InputRecordingControls.h b/pcsx2/Recording/InputRecordingControls.h index 388c038b3c..6277dcc400 100644 --- a/pcsx2/Recording/InputRecordingControls.h +++ b/pcsx2/Recording/InputRecordingControls.h @@ -39,6 +39,8 @@ public: // Resume emulation (incase the emulation is currently paused) and pause after a single frame has passed void FrameAdvance(); + // Returns true if emulation is currently set up to frame advance. + bool IsFrameAdvancing(); // Returns true if the input recording has been paused, which can occur: // - After a single frame has passed after InputRecordingControls::FrameAdvance // - Explicitly paused via an InputRecordingControls function @@ -51,7 +53,7 @@ public: void Resume(); void SetFrameCountTracker(u32 newFrame); // Sets frameAdvancing variable to false - // Used to restrict a frameAdvaceTravker value from transferring between recordings + // Used to restrict a frameAdvanceTracker value from transferring between recordings void DisableFrameAdvance(); // Alternates emulation between a paused and unpaused state void TogglePause(); diff --git a/pcsx2/gui/AppCoreThread.cpp b/pcsx2/gui/AppCoreThread.cpp index 0d389427ba..326753bd88 100644 --- a/pcsx2/gui/AppCoreThread.cpp +++ b/pcsx2/gui/AppCoreThread.cpp @@ -34,6 +34,10 @@ #include "R5900Exceptions.h" #include "Sio.h" +#ifndef DISABLE_RECORDING +#include "Recording/InputRecordingControls.h" +#endif + __aligned16 SysMtgsThread mtgsThread; __aligned16 AppCoreThread CoreThread; @@ -208,8 +212,16 @@ void Pcsx2App::SysApplySettings() void AppCoreThread::OnResumeReady() { +#ifndef DISABLE_RECORDING + if (!g_InputRecordingControls.IsFrameAdvancing()) + { + wxGetApp().SysApplySettings(); + wxGetApp().PostMethod(AppSaveSettings); + } +#else wxGetApp().SysApplySettings(); wxGetApp().PostMethod(AppSaveSettings); +#endif sApp.PostAppMethod(&Pcsx2App::leaveDebugMode); _parent::OnResumeReady();