diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 8311c6b5fd..016512b73c 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -1370,7 +1370,7 @@ namespace BizHawk.Client.EmuHawk private long _frameAdvanceTimestamp; private long _frameRewindTimestamp; private bool _frameRewindWasPaused; - private bool _runloopFrameadvance; + private bool _runloopFrameAdvance; private bool _lastFastForwardingOrRewinding; private bool _inResizeLoop; @@ -2684,8 +2684,8 @@ namespace BizHawk.Client.EmuHawk private void StepRunLoop_Throttle() { SyncThrottle(); - _throttle.signal_frameAdvance = _runloopFrameadvance; - _throttle.signal_continuousframeAdvancing = _runloopFrameProgress; + _throttle.signal_frameAdvance = _runloopFrameAdvance; + _throttle.signal_continuousFrameAdvancing = _runloopFrameProgress; _throttle.Step(true, -1); } @@ -2719,7 +2719,7 @@ namespace BizHawk.Client.EmuHawk private void StepRunLoop_Core(bool force = false) { var runFrame = false; - _runloopFrameadvance = false; + _runloopFrameAdvance = false; var currentTimestamp = Stopwatch.GetTimestamp(); double frameAdvanceTimestampDeltaMs = (double)(currentTimestamp - _frameAdvanceTimestamp) / Stopwatch.Frequency * 1000.0; @@ -2732,7 +2732,7 @@ namespace BizHawk.Client.EmuHawk if (Global.ClientControls["Frame Advance"] || PressFrameAdvance || HoldFrameAdvance) { - _runloopFrameadvance = true; + _runloopFrameAdvance = true; // handle the initial trigger of a frame advance if (_frameAdvanceTimestamp == 0) { @@ -2827,7 +2827,7 @@ namespace BizHawk.Client.EmuHawk } // Mute if using Frame Advance/Frame Progress - if (_runloopFrameadvance && Global.Config.MuteFrameAdvance) + if (_runloopFrameAdvance && Global.Config.MuteFrameAdvance) { atten = 0; } @@ -2839,7 +2839,7 @@ namespace BizHawk.Client.EmuHawk bool renderSound = (Global.Config.SoundEnabled && !IsTurboing) || (_currAviWriter?.UsesAudio ?? false); if (!renderSound) atten = 0; - bool render = !_throttle.skipnextframe || (_currAviWriter?.UsesVideo ?? false); + bool render = !_throttle.skipNextFrame || (_currAviWriter?.UsesVideo ?? false); Emulator.FrameAdvance(render, renderSound); Global.MovieSession.HandleMovieAfterFrameLoop(); diff --git a/BizHawk.Client.EmuHawk/Throttle.cs b/BizHawk.Client.EmuHawk/Throttle.cs index c528d02023..66be309a64 100644 --- a/BizHawk.Client.EmuHawk/Throttle.cs +++ b/BizHawk.Client.EmuHawk/Throttle.cs @@ -11,42 +11,18 @@ namespace BizHawk.Client.EmuHawk { public class Throttle { - int lastskiprate; - int framestoskip; - int framesskipped; - public bool skipnextframe; + int lastSkipRate; + int framesToSkip; + int framesSkipped; + public bool skipNextFrame; //if the emulator is paused then we dont need to behave as if unthrottled public bool signal_paused; public bool signal_frameAdvance; public bool signal_unthrottle; - public bool signal_continuousframeAdvancing; //continuousframeAdvancing + public bool signal_continuousFrameAdvancing; public bool signal_overrideSecondaryThrottle; - public int cfg_frameskiprate - { - get - { - return Global.Config.FrameSkip; - } - } - - public bool cfg_frameLimit - { - get - { - return Global.Config.ClockThrottle; - } - } - - public bool cfg_autoframeskipenab - { - get - { - return Global.Config.AutoMinimizeSkipping; - } - } - public void Step(bool allowSleep, int forceFrameSkip) { //TODO - figure out what allowSleep is supposed to be used for @@ -56,12 +32,12 @@ namespace BizHawk.Client.EmuHawk //if we're paused, none of this should happen. just clean out our state and dont skip //notably, if we're frame-advancing, we should be paused. - if (signal_paused && !signal_continuousframeAdvancing) + if (signal_paused && !signal_continuousFrameAdvancing) { - //Console.WriteLine("THE THING: {0} {1}", signal_paused ,signal_continuousframeAdvancing); - skipnextframe = false; - framesskipped = 0; - framestoskip = 0; + //Console.WriteLine("THE THING: {0} {1}", signal_paused ,signal_continuousFrameAdvancing); + skipNextFrame = false; + framesSkipped = 0; + framesToSkip = 0; //keep from burning CPU Thread.Sleep(10); @@ -76,7 +52,7 @@ namespace BizHawk.Client.EmuHawk ////continuous run: affected by frameskips and throttles ////so continuous and free are the same? - //bool continuous_run = signal_continuousframeAdvancing; + //bool continuous_run = signal_continuousFrameAdvancing; //bool unthrottled_run = signal_unthrottle; //bool free_run = !continuous_run && !unthrottled_run; @@ -87,72 +63,69 @@ namespace BizHawk.Client.EmuHawk // do_skip = true; //else throw new InvalidOperationException(); - int skipRate = (forceFrameSkip < 0) ? cfg_frameskiprate : forceFrameSkip; + int skipRate = (forceFrameSkip < 0) ? Global.Config.FrameSkip : forceFrameSkip; int ffSkipRate = (forceFrameSkip < 0) ? 3 : forceFrameSkip; - if (lastskiprate != skipRate) + if (lastSkipRate != skipRate) { - lastskiprate = skipRate; - framestoskip = 0; // otherwise switches to lower frameskip rates will lag behind + lastSkipRate = skipRate; + framesToSkip = 0; // otherwise switches to lower frameskip rates will lag behind } - if (!skipnextframe || forceFrameSkip == 0 || (signal_continuousframeAdvancing && !signal_unthrottle)) + if (!skipNextFrame || forceFrameSkip == 0 || (signal_continuousFrameAdvancing && !signal_unthrottle)) { - framesskipped = 0; + framesSkipped = 0; - if (signal_continuousframeAdvancing) + if (signal_continuousFrameAdvancing) { //dont ever skip frames when continuous frame advancing. it's meant for precision work. //but we DO need to throttle - if(Global.Config.ClockThrottle) + if (Global.Config.ClockThrottle) extraThrottle = true; } else { - if (framestoskip > 0) - skipnextframe = true; + if (framesToSkip > 0) + skipNextFrame = true; } } else { - framestoskip--; + framesToSkip--; - if (framestoskip < 1) - skipnextframe = false; - else - skipnextframe = true; + skipNextFrame = framesToSkip > 0; - framesskipped++; + framesSkipped++; } if (signal_unthrottle) { - if (framesskipped < ffSkipRate) + if (framesSkipped < ffSkipRate) { - skipnextframe = true; - framestoskip = 1; + skipNextFrame = true; + framesToSkip = 1; } - if (framestoskip < 1) - framestoskip += ffSkipRate; + if (framesToSkip < 1) + framesToSkip += ffSkipRate; } - else if ((extraThrottle || signal_paused || /*autoframeskipenab && frameskiprate ||*/ cfg_frameLimit || signal_overrideSecondaryThrottle) && allowSleep) + else if ((extraThrottle || signal_paused || Global.Config.ClockThrottle || signal_overrideSecondaryThrottle) && allowSleep) { SpeedThrottle(signal_paused); } - if (cfg_autoframeskipenab && cfg_frameskiprate != 0) + if (Global.Config.AutoMinimizeSkipping && Global.Config.FrameSkip != 0) { - if (!signal_continuousframeAdvancing) + if (!signal_continuousFrameAdvancing) { AutoFrameSkip_NextFrame(); - if (framestoskip < 1) - framestoskip += AutoFrameSkip_GetSkipAmount(0, skipRate); + if (framesToSkip < 1) + framesToSkip += AutoFrameSkip_GetSkipAmount(0, skipRate); } } else { - if (framestoskip < 1) - framestoskip += skipRate; + if (framesToSkip < 1) + framesToSkip += skipRate; } } diff --git a/BizHawk.Client.MultiHawk/Mainform.cs b/BizHawk.Client.MultiHawk/Mainform.cs index 3e25e71ed2..4cd8b9f621 100644 --- a/BizHawk.Client.MultiHawk/Mainform.cs +++ b/BizHawk.Client.MultiHawk/Mainform.cs @@ -922,7 +922,7 @@ namespace BizHawk.Client.MultiHawk public bool EmulatorPaused = true; private readonly BizHawk.Client.EmuHawk.Throttle _throttle; //private bool _unthrottled; // TODO - private bool _runloopFrameadvance; + private bool _runloopFrameAdvance; private bool _runloopFrameProgress; private long _frameAdvanceTimestamp; private bool _runloopLastFf; @@ -966,8 +966,8 @@ namespace BizHawk.Client.MultiHawk private void StepRunLoop_Throttle() { SyncThrottle(); - _throttle.signal_frameAdvance = _runloopFrameadvance; - _throttle.signal_continuousframeAdvancing = _runloopFrameProgress; + _throttle.signal_frameAdvance = _runloopFrameAdvance; + _throttle.signal_continuousFrameAdvancing = _runloopFrameProgress; _throttle.Step(true, -1); } @@ -987,7 +987,7 @@ namespace BizHawk.Client.MultiHawk private void StepRunLoop_Core() { var runFrame = false; - _runloopFrameadvance = false; + _runloopFrameAdvance = false; var currentTimestamp = Stopwatch.GetTimestamp(); double frameAdvanceTimestampDeltaMs = (double)(currentTimestamp - _frameAdvanceTimestamp) / Stopwatch.Frequency * 1000.0; bool frameProgressTimeElapsed = frameAdvanceTimestampDeltaMs >= Global.Config.FrameProgressDelayMs; @@ -999,7 +999,7 @@ namespace BizHawk.Client.MultiHawk { PauseEmulator(); runFrame = true; - _runloopFrameadvance = true; + _runloopFrameAdvance = true; _frameAdvanceTimestamp = currentTimestamp; } else