From f199acc234077056a4a3f53ec1a485f3fc39c232 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Fri, 24 Oct 2014 17:56:46 -0400 Subject: [PATCH] Alternate inputs once per frame rather than once per input for turbo. Fixes turbo for games that do not run at 60 fps. --- Source/Core/DolphinWX/TASInputDlg.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Source/Core/DolphinWX/TASInputDlg.cpp b/Source/Core/DolphinWX/TASInputDlg.cpp index da25895574..2faf5a85b2 100644 --- a/Source/Core/DolphinWX/TASInputDlg.cpp +++ b/Source/Core/DolphinWX/TASInputDlg.cpp @@ -23,6 +23,7 @@ #include #include "Common/CommonTypes.h" +#include "Core/Movie.h" #include "Core/HW/WiimoteEmu/MatrixMath.h" #include "DolphinWX/TASInputDlg.h" #include "InputCommon/GCPadStatus.h" @@ -745,10 +746,16 @@ void TASInputDlg::SetTurbo(wxMouseEvent& event) void TASInputDlg::ButtonTurbo() { - for (unsigned int i = 0; i < 14; ++i) + static u64 frame = Movie::g_currentFrame; + + if (frame != Movie::g_currentFrame) { - if (m_buttons[i] != nullptr && m_buttons[i]->turbo_on) - m_buttons[i]->checkbox->SetValue(!m_buttons[i]->checkbox->GetValue()); + frame = Movie::g_currentFrame; + for (unsigned int i = 0; i < 14; ++i) + { + if (m_buttons[i] != nullptr && m_buttons[i]->turbo_on) + m_buttons[i]->checkbox->SetValue(!m_buttons[i]->checkbox->GetValue()); + } } }