using BizHawk.Client.Common; using BizHawk.Emulation.Common.IEmulatorExtensions; namespace BizHawk.Client.EmuHawk { public partial class MainForm { private bool CheckHotkey(string trigger) { switch (trigger) { default: return false; // General case "Pause": TogglePause(); break; case "Toggle Throttle": _unthrottled ^= true; GlobalWin.OSD.AddMessage("Unthrottled: " + _unthrottled); break; case "Soft Reset": SoftReset(); break; case "Hard Reset": HardReset(); break; case "Quick Load": LoadQuickSave("QuickSave" + Global.Config.SaveSlot); break; case "Quick Save": SaveQuickSave("QuickSave" + Global.Config.SaveSlot); break; case "Clear Autohold": ClearAutohold(); break; case "Screenshot": TakeScreenshot(); break; case "Full Screen": ToggleFullscreen(); break; case "Open ROM": OpenRom(); break; case "Close ROM": CloseRom(); break; case "Display FPS": ToggleFPS(); break; case "Frame Counter": ToggleFrameCounter(); break; case "Lag Counter": ToggleLagCounter(); break; case "Input Display": ToggleInputDisplay(); break; case "Toggle BG Input": ToggleBackgroundInput(); break; case "Toggle Menu": MainMenuStrip.Visible ^= true; break; case "Volume Up": VolumeUp(); break; case "Volume Down": VolumeDown(); break; case "Toggle Sound": ToggleSound(); break; case "Exit Program": _exit = true; break; case "Record A/V": RecordAv(); break; case "Stop A/V": StopAv(); break; case "Larger Window": IncreaseWindowSize(); break; case "Smaller Window": DecreaseWIndowSize(); break; case "Increase Speed": IncreaseSpeed(); break; case "Decrease Speed": DecreaseSpeed(); break; case "Reboot Core": RebootCore(); break; // Save States case "Save State 0": SaveQuickSave("QuickSave0"); Global.Config.SaveSlot = 0; UpdateStatusSlots(); break; case "Save State 1": SaveQuickSave("QuickSave1"); Global.Config.SaveSlot = 1; UpdateStatusSlots(); break; case "Save State 2": SaveQuickSave("QuickSave2"); Global.Config.SaveSlot = 2; UpdateStatusSlots(); break; case "Save State 3": SaveQuickSave("QuickSave3"); Global.Config.SaveSlot = 3; UpdateStatusSlots(); break; case "Save State 4": SaveQuickSave("QuickSave4"); Global.Config.SaveSlot = 4; UpdateStatusSlots(); break; case "Save State 5": SaveQuickSave("QuickSave5"); Global.Config.SaveSlot = 5; UpdateStatusSlots(); break; case "Save State 6": SaveQuickSave("QuickSave6"); Global.Config.SaveSlot = 6; UpdateStatusSlots(); break; case "Save State 7": SaveQuickSave("QuickSave7"); Global.Config.SaveSlot = 7; UpdateStatusSlots(); break; case "Save State 8": SaveQuickSave("QuickSave8"); Global.Config.SaveSlot = 8; UpdateStatusSlots(); break; case "Save State 9": SaveQuickSave("QuickSave9"); Global.Config.SaveSlot = 9; UpdateStatusSlots(); break; case "Load State 0": LoadQuickSave("QuickSave0"); Global.Config.SaveSlot = 0; UpdateStatusSlots(); break; case "Load State 1": LoadQuickSave("QuickSave1"); Global.Config.SaveSlot = 1; UpdateStatusSlots(); break; case "Load State 2": LoadQuickSave("QuickSave2"); Global.Config.SaveSlot = 2; UpdateStatusSlots(); break; case "Load State 3": LoadQuickSave("QuickSave3"); Global.Config.SaveSlot = 3; UpdateStatusSlots(); break; case "Load State 4": LoadQuickSave("QuickSave4"); Global.Config.SaveSlot = 4; UpdateStatusSlots(); break; case "Load State 5": LoadQuickSave("QuickSave5"); Global.Config.SaveSlot = 5; UpdateStatusSlots(); break; case "Load State 6": LoadQuickSave("QuickSave6"); Global.Config.SaveSlot = 6; UpdateStatusSlots(); break; case "Load State 7": LoadQuickSave("QuickSave7"); Global.Config.SaveSlot = 7; break; case "Load State 8": LoadQuickSave("QuickSave8"); Global.Config.SaveSlot = 8; UpdateStatusSlots(); break; case "Load State 9": LoadQuickSave("QuickSave9"); Global.Config.SaveSlot = 9; UpdateStatusSlots(); break; case "Select State 0": SelectSlot(0); break; case "Select State 1": SelectSlot(1); break; case "Select State 2": SelectSlot(2); break; case "Select State 3": SelectSlot(3); break; case "Select State 4": SelectSlot(4); break; case "Select State 5": SelectSlot(5); break; case "Select State 6": SelectSlot(6); break; case "Select State 7": SelectSlot(7); break; case "Select State 8": SelectSlot(8); break; case "Select State 9": SelectSlot(9); break; case "Save Named State": SaveStateAs(); break; case "Load Named State": LoadStateAs(); break; case "Previous Slot": PreviousSlot(); break; case "Next Slot": NextSlot(); break; // Movie case "Toggle read-only": ToggleReadOnly(); break; case "Play Movie": PlayMovieMenuItem_Click(null, null); break; case "Record Movie": RecordMovieMenuItem_Click(null, null); break; case "Stop Movie": StopMovie(); break; case "Play from beginning": RestartMovie(); break; case "Save Movie": SaveMovie(); break; case "Toggle MultiTrack": Global.MovieSession.ToggleMultitrack(); GlobalWin.DisplayManager.NeedsToPaint = true; break; case "MT Select All": Global.MovieSession.MultiTrack.SelectAll(); GlobalWin.DisplayManager.NeedsToPaint = true; break; case "MT Select None": Global.MovieSession.MultiTrack.SelectNone(); GlobalWin.DisplayManager.NeedsToPaint = true; break; case "MT Increment Player": Global.MovieSession.MultiTrack.Increment(); GlobalWin.DisplayManager.NeedsToPaint = true; break; case "MT Decrement Player": Global.MovieSession.MultiTrack.Decrement(); GlobalWin.DisplayManager.NeedsToPaint = true; break; case "Movie Poke": ToggleModePokeMode(); break; // Tools case "Ram Watch": GlobalWin.Tools.LoadRamWatch(true); break; case "Ram Search": if (Global.Emulator.HasMemoryDomains()) { GlobalWin.Tools.Load(); } break; case "Hex Editor": if (Global.Emulator.HasMemoryDomains()) { GlobalWin.Tools.Load(); } break; case "Trace Logger": GlobalWin.Tools.LoadTraceLogger(); break; case "Lua Console": OpenLuaConsole(); break; case "Cheats": if (Global.Emulator.HasMemoryDomains()) { GlobalWin.Tools.Load(); } break; case "TAStudio": GlobalWin.Tools.Load(); break; case "ToolBox": GlobalWin.Tools.Load(); break; case "Virtual Pad": GlobalWin.Tools.Load(); break; // Ram Search case "Do Search": GlobalWin.Tools.RamSearch.DoSearch(); break; case "New Search": GlobalWin.Tools.RamSearch.NewSearch(); break; case "Previous Compare To": GlobalWin.Tools.RamSearch.NextCompareTo(reverse: true); break; case "Next Compare To": GlobalWin.Tools.RamSearch.NextCompareTo(); break; case "Previous Operator": GlobalWin.Tools.RamSearch.NextOperator(reverse: true); break; case "Next Operator": GlobalWin.Tools.RamSearch.NextOperator(); break; // SNES case "Toggle BG 1": SNES_ToggleBG1(); break; case "Toggle BG 2": SNES_ToggleBG2(); break; case "Toggle BG 3": SNES_ToggleBG3(); break; case "Toggle BG 4": SNES_ToggleBG4(); break; case "Toggle OBJ 1": SNES_ToggleObj1(); break; case "Toggle OBJ 2": SNES_ToggleObj2(); break; case "Toggle OBJ 3": SNES_ToggleOBJ3(); break; case "Toggle OBJ 4": SNES_ToggleOBJ4(); break; // Analog case "Y Up Small": GlobalWin.Tools.VirtualPad.BumpAnalogValue(null, Global.Config.Analog_SmallChange); break; case "Y Up Large": GlobalWin.Tools.VirtualPad.BumpAnalogValue(null, Global.Config.Analog_LargeChange); break; case "Y Down Small": GlobalWin.Tools.VirtualPad.BumpAnalogValue(null, -(Global.Config.Analog_SmallChange)); break; case "Y Down Large": GlobalWin.Tools.VirtualPad.BumpAnalogValue(null, -(Global.Config.Analog_LargeChange)); break; case "X Up Small": GlobalWin.Tools.VirtualPad.BumpAnalogValue(Global.Config.Analog_SmallChange, null); break; case "X Up Large": GlobalWin.Tools.VirtualPad.BumpAnalogValue(Global.Config.Analog_LargeChange, null); break; case "X Down Small": GlobalWin.Tools.VirtualPad.BumpAnalogValue(-(Global.Config.Analog_SmallChange), null); break; case "X Down Large": GlobalWin.Tools.VirtualPad.BumpAnalogValue(-(Global.Config.Analog_LargeChange), null); break; } return true; } } }