diff --git a/BizHawk.MultiClient/MainForm.MenuItems.cs b/BizHawk.MultiClient/MainForm.MenuItems.cs index ede8b3054c..6007922108 100644 --- a/BizHawk.MultiClient/MainForm.MenuItems.cs +++ b/BizHawk.MultiClient/MainForm.MenuItems.cs @@ -1484,11 +1484,32 @@ namespace BizHawk.MultiClient private void emulationToolStripMenuItem_DropDownOpened(object sender, EventArgs e) { rebootCoreToolStripMenuItem.Enabled = !IsNullEmulator(); - resetToolStripMenuItem.Enabled = Global.Emulator.ControllerDefinition.BoolButtons.Contains("Reset"); - hardResetToolStripMenuItem.Enabled = Global.Emulator.ControllerDefinition.BoolButtons.Contains("Power"); + + if (Global.Emulator.ControllerDefinition.BoolButtons.Contains("Reset") && + (!Global.MovieSession.Movie.IsPlaying || Global.MovieSession.Movie.IsFinished)) + { + resetToolStripMenuItem.Enabled = true; + } + else + { + resetToolStripMenuItem.Enabled = false; + } + + if (Global.Emulator.ControllerDefinition.BoolButtons.Contains("Power") && + (!Global.MovieSession.Movie.IsPlaying || Global.MovieSession.Movie.IsFinished)) + { + hardResetToolStripMenuItem.Enabled = true; + } + else + { + hardResetToolStripMenuItem.Enabled = false; + } pauseToolStripMenuItem.Checked = EmulatorPaused; - if (didMenuPause) pauseToolStripMenuItem.Checked = wasPaused; + if (didMenuPause) + { + pauseToolStripMenuItem.Checked = wasPaused; + } pauseToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.EmulatorPauseBinding; rebootCoreToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.RebootCoreResetBinding; diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index 5d0a24477c..3278c9f3ba 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -2931,8 +2931,11 @@ namespace BizHawk.MultiClient //is it enough to run this for one frame? maybe.. if (Global.Emulator.ControllerDefinition.BoolButtons.Contains("Reset")) { - Global.ClickyVirtualPadController.Click("Reset"); - Global.OSD.AddMessage("Reset button pressed."); + if (!Global.MovieSession.Movie.IsPlaying || Global.MovieSession.Movie.IsFinished) + { + Global.ClickyVirtualPadController.Click("Reset"); + Global.OSD.AddMessage("Reset button pressed."); + } } } @@ -2941,8 +2944,11 @@ namespace BizHawk.MultiClient //is it enough to run this for one frame? maybe.. if (Global.Emulator.ControllerDefinition.BoolButtons.Contains("Power")) { - Global.ClickyVirtualPadController.Click("Power"); - Global.OSD.AddMessage("Power button pressed."); + if (!Global.MovieSession.Movie.IsPlaying || Global.MovieSession.Movie.IsFinished) + { + Global.ClickyVirtualPadController.Click("Power"); + Global.OSD.AddMessage("Power button pressed."); + } } }