diff --git a/BizHawk.Client.Common/config/Binding.cs b/BizHawk.Client.Common/config/Binding.cs index ceb8e0d99a..d7929747a6 100644 --- a/BizHawk.Client.Common/config/Binding.cs +++ b/BizHawk.Client.Common/config/Binding.cs @@ -132,6 +132,7 @@ namespace BizHawk.Client.Common Bind("General", "Open ROM", "Ctrl+O"), Bind("General", "Close ROM", "Ctrl+W"), Bind("General", "Load Last ROM"), + Bind("General", "Flush SRAM", "Ctrl+S"), Bind("General", "Display FPS"), Bind("General", "Frame Counter"), Bind("General", "Lag Counter"), diff --git a/BizHawk.Client.EmuHawk/MainForm.Designer.cs b/BizHawk.Client.EmuHawk/MainForm.Designer.cs index d47c43dbb3..4e0a0aca88 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Designer.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Designer.cs @@ -894,6 +894,7 @@ this.SaveRAMSubMenu.Name = "SaveRAMSubMenu"; this.SaveRAMSubMenu.Size = new System.Drawing.Size(159, 22); this.SaveRAMSubMenu.Text = "Save &RAM"; + this.SaveRAMSubMenu.DropDownOpened += new System.EventHandler(this.SaveRAMSubMenu_DropDownOpened); // // FlushSaveRAMMenuItem // diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 9331b3bf46..dec8b5ee61 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -2178,6 +2178,11 @@ namespace BizHawk.Client.EmuHawk SaveRam(); } + private void SaveRAMSubMenu_DropDownOpened(object sender, EventArgs e) + { + this.FlushSaveRAMMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save SRAM"].Bindings; + } + #endregion #region Coleco diff --git a/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs b/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs index 45dc14748d..3a1587eeac 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs @@ -63,6 +63,9 @@ namespace BizHawk.Client.EmuHawk case "Load Last ROM": LoadRomFromRecent(Global.Config.RecentRoms.MostRecent); break; + case "Flush SRAM": + SaveRam(); + break; case "Display FPS": ToggleFPS(); break; diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index f5295f2f4d..3c0773835c 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -1592,7 +1592,7 @@ namespace BizHawk.Client.EmuHawk } } - private void SaveRam() + public void SaveRam() { if (Emulator.HasSaveRam()) { diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Client.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Client.cs index 9e1033c7ab..32894c5c75 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Client.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Client.cs @@ -533,5 +533,14 @@ namespace BizHawk.Client.EmuHawk { Global.Config.DisplayMessages = value; } + + [LuaMethodAttributes( + "saveram", + "flushes save ram to disk" + )] + public void SaveRam() + { + GlobalWin.MainForm.SaveRam(); + } } }