Run Ahead: Disable movies/netplay menus when enabled

+ Auto-disable runahead when playing NSF files
This commit is contained in:
Sour 2020-02-01 10:28:42 -05:00
parent 19b93dc343
commit 5b0c208984
3 changed files with 7 additions and 7 deletions

View file

@ -761,7 +761,7 @@ void Console::Run()
try {
while(true) {
stringstream runAheadState;
bool useRunAhead = _settings->GetRunAheadFrames() > 0 && !_debugger && !_rewindManager->IsRewinding() && _settings->GetEmulationSpeed() > 0 && _settings->GetEmulationSpeed() <= 100;
bool useRunAhead = _settings->GetRunAheadFrames() > 0 && !_debugger && !IsNsf() && !_rewindManager->IsRewinding() && _settings->GetEmulationSpeed() > 0 && _settings->GetEmulationSpeed() <= 100;
if(useRunAhead) {
RunFrameWithRunAhead(runAheadState);
} else {

View file

@ -23,7 +23,7 @@ Set any speed value below to 0 to make Mesen run as fast as possible.
**Run Ahead**: Run ahead allows the reduction of input lag by the number of frames specified. CPU requirements increase proportionally with the number of run ahead frames specified.
* Run ahead is currently not compatible with movies or netplay.
* Run ahead is currently not compatible with movies or netplay - the movies and netplay menus will be disabled if runahead is turned on.
* **Note for speedrunners:** Using features such as run ahead to reduce lag typically counts as cheating for the purposes of speed running.
## Advanced Options ##

View file

@ -1141,6 +1141,7 @@ namespace Mesen.GUI.Forms
this.BeginInvoke((MethodInvoker)(() => this.UpdateMenus()));
} else {
bool running = _emuThread != null;
bool runAheadEnabled = ConfigManager.Config.EmulationInfo.RunAheadFrames > 0;
panelInfo.Visible = !running;
@ -1259,11 +1260,10 @@ namespace Mesen.GUI.Forms
mnuInstallHdPack.Enabled = running;
mnuHdPackEditor.Enabled = !netPlay && running;
mnuNetPlay.Enabled = !InteropEmu.IsNsf();
if(running && InteropEmu.IsNsf()) {
mnuPowerCycle.Enabled = false;
mnuMovies.Enabled = mnuPlayMovie.Enabled = mnuStopMovie.Enabled = mnuRecordMovie.Enabled = false;
}
mnuNetPlay.Enabled = !InteropEmu.IsNsf() && !runAheadEnabled;
bool enableMovies = (!running || !InteropEmu.IsNsf()) && !runAheadEnabled;
mnuMovies.Enabled = mnuPlayMovie.Enabled = mnuStopMovie.Enabled = mnuRecordMovie.Enabled = enableMovies;
mnuRegionAuto.Checked = ConfigManager.Config.Region == NesModel.Auto;
mnuRegionNtsc.Checked = ConfigManager.Config.Region == NesModel.NTSC;