From 020c71557b7b9b9be5264f702109217f528c428c Mon Sep 17 00:00:00 2001 From: hegyak Date: Sun, 29 Nov 2015 14:22:23 -0800 Subject: [PATCH 001/106] Add some code for Slide Code Handling for Action Replay MAX. TODO: Detect Action Replay MAX codes Vs. GameShark/Action Replay codes. --- BizHawk.Client.EmuHawk/tools/GameShark.cs | 128 +++++++++++++++------- 1 file changed, 87 insertions(+), 41 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/GameShark.cs b/BizHawk.Client.EmuHawk/tools/GameShark.cs index ca30971a98..c0db063397 100644 --- a/BizHawk.Client.EmuHawk/tools/GameShark.cs +++ b/BizHawk.Client.EmuHawk/tools/GameShark.cs @@ -379,55 +379,74 @@ namespace BizHawk.Client.EmuHawk //Provided by mGBA and endrift UInt32[] GBAGameSharkSeeds = { UInt32.Parse("09F4FBBD", NumberStyles.HexNumber), UInt32.Parse("9681884A", NumberStyles.HexNumber), UInt32.Parse("352027E9", NumberStyles.HexNumber), UInt32.Parse("F3DEE5A7", NumberStyles.HexNumber) }; UInt32[] GBAProActionReplaySeeds = { UInt32.Parse("7AA9648F", NumberStyles.HexNumber), UInt32.Parse("7FAE6994", NumberStyles.HexNumber), UInt32.Parse("C0EFAAD5", NumberStyles.HexNumber), UInt32.Parse("42712C57", NumberStyles.HexNumber) }; - private void GBA() + private string firstSlide; + private string secondSlide; + Boolean Slider = false; + + private void GBA() { Boolean blnNoCode = true; //TODO: //Clean the detection methods and improve/optimize code conversion. testo = null; - //We have a Game Shark or Action Replay. - if (txtCheat.Text.Length == 17 && txtCheat.Text.IndexOf(" ") == 8) + //Slider is special code that allows us to break out and do Slide Codes. It needs work + //TODO: + //Make Slide Code Handling suck less. + //TODO: + //Determine how to make Action Replay Max Code detection a thing? + if (Slider == true) { - parseString = txtCheat.Text; - UInt32 op1 = 0; - UInt32 op2 = 0; - UInt32 sum = 0xC6EF3720; - op1 = UInt32.Parse(parseString.Remove(8, 9), NumberStyles.HexNumber); - op2 = UInt32.Parse(parseString.Remove(0, 9), NumberStyles.HexNumber); - //Tiny Encryption Algorithm - int i; - for (i = 0; i < 32; ++i) + secondSlide = txtCheat.Text; + GBASlide(); + } + else if (Slider == false) + { + //We have a Game Shark or Action Replay? + if (txtCheat.Text.Length == 17 && txtCheat.Text.IndexOf(" ") == 8) { - op2 -= ((op1 << 4) + GBAGameSharkSeeds[2]) ^ (op1 + sum) ^ ((op1 >> 5) + GBAGameSharkSeeds[3]); - op1 -= ((op2 << 4) + GBAGameSharkSeeds[0]) ^ (op2 + sum) ^ ((op2 >> 5) + GBAGameSharkSeeds[1]); - sum -= 0x9E3779B9; + parseString = txtCheat.Text; + UInt32 op1 = 0; + UInt32 op2 = 0; + UInt32 sum = 0xC6EF3720; + op1 = UInt32.Parse(parseString.Remove(8, 9), NumberStyles.HexNumber); + op2 = UInt32.Parse(parseString.Remove(0, 9), NumberStyles.HexNumber); + //Tiny Encryption Algorithm + int i; + for (i = 0; i < 32; ++i) + { + op2 -= ((op1 << 4) + GBAGameSharkSeeds[2]) ^ (op1 + sum) ^ ((op1 >> 5) + GBAGameSharkSeeds[3]); + op1 -= ((op2 << 4) + GBAGameSharkSeeds[0]) ^ (op2 + sum) ^ ((op2 >> 5) + GBAGameSharkSeeds[1]); + sum -= 0x9E3779B9; + } + //op1 has the Address + //op2 has the Value + //Sum, is pointless? + RAMAddress = string.Format("{0:X8}", op1); + RAMAddress = RAMAddress.Remove(0, 1); + RAMValue = string.Format("{0:X8}", op2); + if (RAMAddress.StartsWith("D4")) + { + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + return; + } + parseString = RAMValue; + MessageBox.Show(parseString); + parseString = RAMValue.Remove(4, 4); + //Is it a Word or Double Word? + if (parseString == "0000") + { + //We assume. Why not? + byteSize = 16; + RAMValue = RAMValue.Remove(0, 4); + //MessageBox.Show(RAMValue); + } + else if (parseString != "0000") + { + byteSize = 32; + } + blnNoCode = false; } - //op1 has the Address - //op2 has the Value - //Sum, is pointless? - RAMAddress = string.Format("{0:X8}", op1); - RAMAddress = RAMAddress.Remove(0, 1); - RAMValue = string.Format("{0:X8}", op2); - if (RAMAddress.StartsWith("D4")) - { - MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); - return; - } - parseString = RAMValue.Remove(4, 4); - //Is it a Word or Double Word? - if (parseString == "0000") - { - //We assume. Why not? - byteSize = 16; - RAMValue = RAMValue.Remove(0, 4); - //MessageBox.Show(RAMValue); - } - else if (parseString != "0000") - { - byteSize = 32; - } - blnNoCode = false; - } + } if (txtCheat.Text.Length == 12) { MessageBox.Show("Encrypted Codebreaker/GameShark SP/Xploder codes are not supported by this tool.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); @@ -490,6 +509,33 @@ namespace BizHawk.Client.EmuHawk txtDescription.Clear(); } } + public void GBASlide() + { + //This works on the Action Replay MAX, not the Codebreaker, GameShark SP/Xploder + string s = firstSlide.Remove(0, 11).Insert(1, "0"); + string str2 = secondSlide.Remove(8, 9); + if (str2.StartsWith("0000")) + { + str2 = str2.Remove(0, 4); + } + long num = 0L; + num = long.Parse(secondSlide.Remove(0, 9).Remove(4, 4), NumberStyles.HexNumber); + long num2 = long.Parse(secondSlide.Remove(0, 13), NumberStyles.HexNumber); + long num3 = long.Parse(s, NumberStyles.HexNumber); + for (double i = 0.0; i != num; i++) + { + s = string.Format("{0:X8}", num3); + Watch watch = Watch.GenerateWatch(MemoryDomains["System Bus"], long.Parse(s, NumberStyles.HexNumber), WatchSize.Word, Client.Common.DisplayType.Hex, false, txtDescription.Text); + int? compare = null; + Global.CheatList.Add(new Cheat(watch, int.Parse(str2, NumberStyles.HexNumber), compare, true)); + num3 = long.Parse(s, NumberStyles.HexNumber) + num2; + } + Slider = false; + txtCheat.Clear(); + txtDescription.Clear(); + } + + private void GEN() { //Game Genie only, for now. From 72b650d60623b31749d064f0d9dc10096ca6c606 Mon Sep 17 00:00:00 2001 From: feos Date: Mon, 7 Dec 2015 20:04:30 +0300 Subject: [PATCH 002/106] tastudio: properly save/load column settings. wrap MainForm savestate functions that tastudio can now control into IControlMainform. --- BizHawk.Client.EmuHawk/IControlMainform.cs | 12 + BizHawk.Client.EmuHawk/MainForm.Hotkey.cs | 4 +- BizHawk.Client.EmuHawk/MainForm.cs | 585 +++++++++--------- .../GenericDebugger.IControlMainform.cs | 12 + .../tools/TAStudio/TAStudio.Designer.cs | 2 +- .../TAStudio/TAStudio.IControlMainForm.cs | 42 +- .../tools/TAStudio/TAStudio.cs | 31 +- 7 files changed, 385 insertions(+), 303 deletions(-) diff --git a/BizHawk.Client.EmuHawk/IControlMainform.cs b/BizHawk.Client.EmuHawk/IControlMainform.cs index 25d0e07832..3716de65b5 100644 --- a/BizHawk.Client.EmuHawk/IControlMainform.cs +++ b/BizHawk.Client.EmuHawk/IControlMainform.cs @@ -2,6 +2,18 @@ { public interface IControlMainform { + bool WantsToControlSavestates { get; } + + void SaveState(); + void LoadState(); + void SaveStateAs(); + void LoadStateAs(); + void SaveQuickSave(int slot); + void LoadQuickSave(int slot); + void SelectSlot(int slot); + void PreviousSlot(); + void NextSlot(); + bool WantsToControlReadOnly { get; } /// diff --git a/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs b/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs index 9ad188dee1..4bf55b1360 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Hotkey.cs @@ -343,10 +343,10 @@ namespace BizHawk.Client.EmuHawk //TAStudio case "Add Branch": - GlobalWin.Tools.TAStudio.BookMarkControl.AddBranchExternal(); + GlobalWin.Tools.TAStudio.AddBranchExternal(); break; case "Delete Branch": - GlobalWin.Tools.TAStudio.BookMarkControl.RemoveBranchExtrenal(); + GlobalWin.Tools.TAStudio.RemoveBranchExtrenal(); break; // SNES diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 4267e8ce9f..e920e9b783 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -1570,22 +1570,6 @@ namespace BizHawk.Client.EmuHawk } } - private void SelectSlot(int num) - { - if (Global.Emulator.HasSavestates()) - { - if (GlobalWin.Tools.Has()) - { - GlobalWin.Tools.TAStudio.BookMarkControl.SelectBranchExternal(num); - return; - } - - Global.Config.SaveSlot = num; - SaveSlotSelectedMessage(); - UpdateStatusSlots(); - } - } - private void RewireSound() { if (_dumpProxy != null) @@ -1888,75 +1872,6 @@ namespace BizHawk.Client.EmuHawk return bb; } - private void SaveStateAs() - { - if (!Global.Emulator.HasSavestates()) - { - return; - } - - if (GlobalWin.Tools.Has()) - { - return; - } - - var path = PathManager.GetSaveStatePath(Global.Game); - - var file = new FileInfo(path); - if (file.Directory != null && file.Directory.Exists == false) - { - file.Directory.Create(); - } - - var sfd = new SaveFileDialog - { - AddExtension = true, - DefaultExt = "State", - Filter = "Save States (*.State)|*.State|All Files|*.*", - InitialDirectory = path, - FileName = PathManager.SaveStatePrefix(Global.Game) + "." + "QuickSave0.State" - }; - - var result = sfd.ShowHawkDialog(); - if (result == DialogResult.OK) - { - SaveState(sfd.FileName, sfd.FileName, false); - } - } - - private void LoadStateAs() - { - if (!Global.Emulator.HasSavestates()) - { - return; - } - - if (GlobalWin.Tools.Has()) - { - return; - } - - var ofd = new OpenFileDialog - { - InitialDirectory = PathManager.GetSaveStatePath(Global.Game), - Filter = "Save States (*.State)|*.State|All Files|*.*", - RestoreDirectory = true - }; - - var result = ofd.ShowHawkDialog(); - if (result != DialogResult.OK) - { - return; - } - - if (File.Exists(ofd.FileName) == false) - { - return; - } - - LoadState(ofd.FileName, Path.GetFileName(ofd.FileName)); - } - private void SaveSlotSelectedMessage() { int slot = Global.Config.SaveSlot; @@ -2196,62 +2111,6 @@ namespace BizHawk.Client.EmuHawk ConfigService.Save(PathManager.DefaultIniPath, Global.Config); } - private void PreviousSlot() - { - if (Global.Emulator.HasSavestates()) - { - if (GlobalWin.Tools.Has()) - { - GlobalWin.Tools.TAStudio.BookMarkControl.SelectBranchExternal(false); - return; - } - - if (Global.Config.SaveSlot == 0) - { - Global.Config.SaveSlot = 9; // Wrap to end of slot list - } - else if (Global.Config.SaveSlot > 9) - { - Global.Config.SaveSlot = 9; // Meh, just in case - } - else - { - Global.Config.SaveSlot--; - } - - SaveSlotSelectedMessage(); - UpdateStatusSlots(); - } - } - - private void NextSlot() - { - if (Global.Emulator.HasSavestates()) - { - if (GlobalWin.Tools.Has()) - { - GlobalWin.Tools.TAStudio.BookMarkControl.SelectBranchExternal(true); - return; - } - - if (Global.Config.SaveSlot >= 9) - { - Global.Config.SaveSlot = 0; // Wrap to beginning of slot list - } - else if (Global.Config.SaveSlot < 0) - { - Global.Config.SaveSlot = 0; // Meh, just in case - } - else - { - Global.Config.SaveSlot++; - } - - SaveSlotSelectedMessage(); - UpdateStatusSlots(); - } - } - private static void ToggleFPS() { Global.Config.DisplayFPS ^= true; @@ -2708,112 +2567,6 @@ namespace BizHawk.Client.EmuHawk }); } - private int SlotToInt(string slot) - { - return int.Parse(slot.Substring(slot.Length - 1, 1)); - } - - public void LoadState(string path, string userFriendlyStateName, bool fromLua = false, bool supressOSD = false) // Move to client.common - { - if (!Global.Emulator.HasSavestates()) - { - return; - } - - if (GlobalWin.Tools.Has()) - { - GlobalWin.Tools.TAStudio.BookMarkControl.LoadBranchExternal(); - return; - } - - // If from lua, disable counting rerecords - bool wasCountingRerecords = Global.MovieSession.Movie.IsCountingRerecords; - - if (fromLua) - Global.MovieSession.Movie.IsCountingRerecords = false; - - GlobalWin.DisplayManager.NeedsToPaint = true; - - if (SavestateManager.LoadStateFile(path, userFriendlyStateName)) - { - SetMainformMovieInfo(); - GlobalWin.OSD.ClearGUIText(); - GlobalWin.Tools.UpdateToolsBefore(fromLua); - UpdateToolsAfter(fromLua); - UpdateToolsLoadstate(); - Global.AutoFireController.ClearStarts(); - - if (!supressOSD) - { - GlobalWin.OSD.AddMessage("Loaded state: " + userFriendlyStateName); - } - - if (GlobalWin.Tools.Has()) - { - GlobalWin.Tools.LuaConsole.LuaImp.CallLoadStateEvent(userFriendlyStateName); - } - } - else - { - GlobalWin.OSD.AddMessage("Loadstate error!"); - } - - Global.MovieSession.Movie.IsCountingRerecords = wasCountingRerecords; - } - - public void LoadQuickSave(string quickSlotName, bool fromLua = false, bool supressOSD = false) - { - if (!Global.Emulator.HasSavestates()) - { - return; - } - - if (GlobalWin.Tools.Has()) - { - GlobalWin.Tools.TAStudio.BookMarkControl.LoadBranchExternal(SlotToInt(quickSlotName)); - return; - } - - var path = PathManager.SaveStatePrefix(Global.Game) + "." + quickSlotName + ".State"; - if (File.Exists(path) == false) - { - GlobalWin.OSD.AddMessage("Unable to load " + quickSlotName + ".State"); - - return; - } - - LoadState(path, quickSlotName, fromLua, supressOSD); - } - - public void SaveState(string path, string userFriendlyStateName, bool fromLua) - { - if (!Global.Emulator.HasSavestates()) - { - return; - } - - if (GlobalWin.Tools.Has()) - { - GlobalWin.Tools.TAStudio.BookMarkControl.UpdateBranchExternal(); - return; - } - - try - { - SavestateManager.SaveStateFile(path, userFriendlyStateName); - - GlobalWin.OSD.AddMessage("Saved state: " + userFriendlyStateName); - } - catch (IOException) - { - GlobalWin.OSD.AddMessage("Unable to save state " + path); - } - if (!fromLua) - { - UpdateStatusSlots(); - } - } - // Alt key hacks protected override void WndProc(ref Message m) { @@ -3725,50 +3478,6 @@ namespace BizHawk.Client.EmuHawk } } - // TODO: should backup logic be stuffed in into Client.Common.SaveStateManager? - public void SaveQuickSave(string quickSlotName) - { - if (!Global.Emulator.HasSavestates()) - { - return; - } - - if (GlobalWin.Tools.Has()) - { - GlobalWin.Tools.TAStudio.BookMarkControl.UpdateBranchExternal(SlotToInt(quickSlotName)); - return; - } - - var path = PathManager.SaveStatePrefix(Global.Game) + "." + quickSlotName + ".State"; - - var file = new FileInfo(path); - if (file.Directory != null && file.Directory.Exists == false) - { - file.Directory.Create(); - } - - - // Make backup first - if (Global.Config.BackupSavestates && file.Exists) - { - var backup = path + ".bak"; - var backupFile = new FileInfo(backup); - if (backupFile.Exists) - { - backupFile.Delete(); - } - - File.Move(path, backup); - } - - SaveState(path, quickSlotName, false); - - if (GlobalWin.Tools.Has()) - { - GlobalWin.Tools.LuaConsole.LuaImp.CallSaveStateEvent(quickSlotName); - } - } - private static void CommitCoreSettingsToConfig() { // save settings object @@ -3894,11 +3603,305 @@ namespace BizHawk.Client.EmuHawk // TODO: move me public IControlMainform master { get; private set; } + public void RelinquishControl(IControlMainform master) { this.master = master; } + private int SlotToInt(string slot) + { + return int.Parse(slot.Substring(slot.Length - 1, 1)); + } + + public void LoadState(string path, string userFriendlyStateName, bool fromLua = false, bool supressOSD = false) // Move to client.common + { + if (!Global.Emulator.HasSavestates()) + { + return; + } + + if (IsSlave && master.WantsToControlSavestates) + { + master.LoadState(); + return; + } + + // If from lua, disable counting rerecords + bool wasCountingRerecords = Global.MovieSession.Movie.IsCountingRerecords; + + if (fromLua) + Global.MovieSession.Movie.IsCountingRerecords = false; + + GlobalWin.DisplayManager.NeedsToPaint = true; + + if (SavestateManager.LoadStateFile(path, userFriendlyStateName)) + { + SetMainformMovieInfo(); + GlobalWin.OSD.ClearGUIText(); + GlobalWin.Tools.UpdateToolsBefore(fromLua); + UpdateToolsAfter(fromLua); + UpdateToolsLoadstate(); + Global.AutoFireController.ClearStarts(); + + if (!supressOSD) + { + GlobalWin.OSD.AddMessage("Loaded state: " + userFriendlyStateName); + } + + if (GlobalWin.Tools.Has()) + { + GlobalWin.Tools.LuaConsole.LuaImp.CallLoadStateEvent(userFriendlyStateName); + } + } + else + { + GlobalWin.OSD.AddMessage("Loadstate error!"); + } + + Global.MovieSession.Movie.IsCountingRerecords = wasCountingRerecords; + } + + public void LoadQuickSave(string quickSlotName, bool fromLua = false, bool supressOSD = false) + { + if (!Global.Emulator.HasSavestates()) + { + return; + } + + if (IsSlave && master.WantsToControlSavestates) + { + master.LoadQuickSave(SlotToInt(quickSlotName)); + return; + } + + var path = PathManager.SaveStatePrefix(Global.Game) + "." + quickSlotName + ".State"; + if (File.Exists(path) == false) + { + GlobalWin.OSD.AddMessage("Unable to load " + quickSlotName + ".State"); + + return; + } + + LoadState(path, quickSlotName, fromLua, supressOSD); + } + + public void SaveState(string path, string userFriendlyStateName, bool fromLua) + { + if (!Global.Emulator.HasSavestates()) + { + return; + } + + if (IsSlave && master.WantsToControlSavestates) + { + master.SaveState(); + return; + } + + try + { + SavestateManager.SaveStateFile(path, userFriendlyStateName); + + GlobalWin.OSD.AddMessage("Saved state: " + userFriendlyStateName); + } + catch (IOException) + { + GlobalWin.OSD.AddMessage("Unable to save state " + path); + } + if (!fromLua) + { + UpdateStatusSlots(); + } + } + + // TODO: should backup logic be stuffed in into Client.Common.SaveStateManager? + public void SaveQuickSave(string quickSlotName) + { + if (!Global.Emulator.HasSavestates()) + { + return; + } + + if (IsSlave && master.WantsToControlSavestates) + { + master.SaveQuickSave(SlotToInt(quickSlotName)); + return; + } + + var path = PathManager.SaveStatePrefix(Global.Game) + "." + quickSlotName + ".State"; + + var file = new FileInfo(path); + if (file.Directory != null && file.Directory.Exists == false) + { + file.Directory.Create(); + } + + + // Make backup first + if (Global.Config.BackupSavestates && file.Exists) + { + var backup = path + ".bak"; + var backupFile = new FileInfo(backup); + if (backupFile.Exists) + { + backupFile.Delete(); + } + + File.Move(path, backup); + } + + SaveState(path, quickSlotName, false); + + if (GlobalWin.Tools.Has()) + { + GlobalWin.Tools.LuaConsole.LuaImp.CallSaveStateEvent(quickSlotName); + } + } + + private void SaveStateAs() + { + if (!Global.Emulator.HasSavestates()) + { + return; + } + + if (IsSlave && master.WantsToControlSavestates) + { + master.SaveStateAs(); + return; + } + + var path = PathManager.GetSaveStatePath(Global.Game); + + var file = new FileInfo(path); + if (file.Directory != null && file.Directory.Exists == false) + { + file.Directory.Create(); + } + + var sfd = new SaveFileDialog + { + AddExtension = true, + DefaultExt = "State", + Filter = "Save States (*.State)|*.State|All Files|*.*", + InitialDirectory = path, + FileName = PathManager.SaveStatePrefix(Global.Game) + "." + "QuickSave0.State" + }; + + var result = sfd.ShowHawkDialog(); + if (result == DialogResult.OK) + { + SaveState(sfd.FileName, sfd.FileName, false); + } + } + + private void LoadStateAs() + { + if (!Global.Emulator.HasSavestates()) + { + return; + } + + if (IsSlave && master.WantsToControlSavestates) + { + master.LoadStateAs(); + return; + } + + var ofd = new OpenFileDialog + { + InitialDirectory = PathManager.GetSaveStatePath(Global.Game), + Filter = "Save States (*.State)|*.State|All Files|*.*", + RestoreDirectory = true + }; + + var result = ofd.ShowHawkDialog(); + if (result != DialogResult.OK) + { + return; + } + + if (File.Exists(ofd.FileName) == false) + { + return; + } + + LoadState(ofd.FileName, Path.GetFileName(ofd.FileName)); + } + + private void SelectSlot(int slot) + { + if (Global.Emulator.HasSavestates()) + { + if (IsSlave && master.WantsToControlSavestates) + { + master.SelectSlot(slot); + return; + } + + Global.Config.SaveSlot = slot; + SaveSlotSelectedMessage(); + UpdateStatusSlots(); + } + } + + private void PreviousSlot() + { + if (Global.Emulator.HasSavestates()) + { + if (IsSlave && master.WantsToControlSavestates) + { + master.PreviousSlot(); + return; + } + + if (Global.Config.SaveSlot == 0) + { + Global.Config.SaveSlot = 9; // Wrap to end of slot list + } + else if (Global.Config.SaveSlot > 9) + { + Global.Config.SaveSlot = 9; // Meh, just in case + } + else + { + Global.Config.SaveSlot--; + } + + SaveSlotSelectedMessage(); + UpdateStatusSlots(); + } + } + + private void NextSlot() + { + if (Global.Emulator.HasSavestates()) + { + if (IsSlave && master.WantsToControlSavestates) + { + master.NextSlot(); + return; + } + + if (Global.Config.SaveSlot >= 9) + { + Global.Config.SaveSlot = 0; // Wrap to beginning of slot list + } + else if (Global.Config.SaveSlot < 0) + { + Global.Config.SaveSlot = 0; // Meh, just in case + } + else + { + Global.Config.SaveSlot++; + } + + SaveSlotSelectedMessage(); + UpdateStatusSlots(); + } + } + private void ToggleReadOnly() { if (IsSlave && master.WantsToControlReadOnly) diff --git a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IControlMainform.cs b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IControlMainform.cs index e7a947045e..c7f95fbc04 100644 --- a/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IControlMainform.cs +++ b/BizHawk.Client.EmuHawk/tools/Debugger/GenericDebugger.IControlMainform.cs @@ -7,6 +7,18 @@ namespace BizHawk.Client.EmuHawk { public partial class GenericDebugger : IControlMainform { + public bool WantsToControlSavestates { get { return false; } } + + public void SaveState() { } + public void LoadState() { } + public void SaveStateAs() { } + public void LoadStateAs() { } + public void SaveQuickSave(int slot) { } + public void LoadQuickSave(int slot) { } + public void SelectSlot(int slot) { } + public void PreviousSlot() { } + public void NextSlot() { } + public bool WantsToControlReadOnly { get { return false; } } public void ToggleReadOnly() { } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs index ed3540c9b1..03440d8b38 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs @@ -1674,7 +1674,7 @@ namespace BizHawk.Client.EmuHawk private System.Windows.Forms.ToolStripMenuItem scrollToCenterToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem applyPatternToPaintedInputToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem onlyOnAutoFireColumnsToolStripMenuItem; - public BookmarksBranchesBox BookMarkControl; + private BookmarksBranchesBox BookMarkControl; private System.Windows.Forms.ToolStripMenuItem BranchContextMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator25; private System.Windows.Forms.ToolStripMenuItem wheelScrollSpeedToolStripMenuItem; diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs index 0645648728..9ad2455e74 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.IControlMainForm.cs @@ -6,7 +6,47 @@ namespace BizHawk.Client.EmuHawk { private bool _suppressAskSave = false; + public bool WantsToControlSavestates { get { return true; } } + + public void SaveState() + { + BookMarkControl.UpdateBranchExternal(); + } + public void LoadState() + { + BookMarkControl.LoadBranchExternal(); + } + public void SaveStateAs() + { + // dummy + } + public void LoadStateAs() + { + // dummy + } + public void SaveQuickSave(int slot) + { + BookMarkControl.UpdateBranchExternal(slot); + } + public void LoadQuickSave(int slot) + { + BookMarkControl.LoadBranchExternal(slot); + } + public void SelectSlot(int slot) + { + BookMarkControl.SelectBranchExternal(slot); + } + public void PreviousSlot() + { + BookMarkControl.SelectBranchExternal(false); + } + public void NextSlot() + { + BookMarkControl.SelectBranchExternal(true); + } + public bool WantsToControlReadOnly { get { return false; } } + public void ToggleReadOnly() { GlobalWin.OSD.AddMessage("TAStudio does not allow manual readonly toggle"); @@ -31,7 +71,7 @@ namespace BizHawk.Client.EmuHawk public bool Rewind() { - GoToPreviousFrame(); + GoToPreviousFrame(); // todo: behave as normal rewind in differentiating between hitting rewind once and holding it. return true; } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index e99f770ea8..36644401a9 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -296,10 +296,12 @@ namespace BizHawk.Client.EmuHawk return true; } - private void SetTasMovieCallbacks() + private void SetTasMovieCallbacks(TasMovie movie = null) { - CurrentTasMovie.ClientSettingsForSave = ClientSettingsForSave; - CurrentTasMovie.GetClientSettingsOnLoad = GetClientSettingsOnLoad; + if (movie == null) + movie = CurrentTasMovie; + movie.ClientSettingsForSave = ClientSettingsForSave; + movie.GetClientSettingsOnLoad = GetClientSettingsOnLoad; } private string ClientSettingsForSave() @@ -343,8 +345,7 @@ namespace BizHawk.Client.EmuHawk column.Visible = false; } - TasView.AllColumns.ColumnsChanged(); - + TasView.AllColumns.ColumnsChanged(); // Patterns int bStart = 0; @@ -437,7 +438,8 @@ namespace BizHawk.Client.EmuHawk if (!HandleMovieLoadStuff(newMovie)) return false; - SetUpColumns(); + if (TasView.AllColumns.Count() == 0) + SetUpColumns(); GoToFrame(CurrentTasMovie.Session.CurrentFrame); CurrentTasMovie.CurrentBranch = CurrentTasMovie.Session.CurrentBranch; @@ -476,9 +478,9 @@ namespace BizHawk.Client.EmuHawk private bool HandleMovieLoadStuff(TasMovie movie = null) { - - WantsToControlStopMovie = false; bool result; + WantsToControlStopMovie = false; + if (movie == null) { movie = CurrentTasMovie; @@ -486,8 +488,10 @@ namespace BizHawk.Client.EmuHawk } else result = StartNewMovieWrapper(false, movie); + if (!result) return false; + WantsToControlStopMovie = true; CurrentTasMovie.ChangeLog.ClearLog(); @@ -503,6 +507,7 @@ namespace BizHawk.Client.EmuHawk _initializing = true; if (movie == null) movie = CurrentTasMovie; + SetTasMovieCallbacks(movie as TasMovie); bool result = GlobalWin.MainForm.StartNewMovie(movie, record); _initializing = false; @@ -686,6 +691,16 @@ namespace BizHawk.Client.EmuHawk _hackyDontUpdate = false; } + public void AddBranchExternal() + { + BookMarkControl.AddBranchExternal(); + } + + public void RemoveBranchExtrenal() + { + BookMarkControl.RemoveBranchExtrenal(); + } + private void UpdateOtherTools() // a hack probably, surely there is a better way to do this { _hackyDontUpdate = true; From 173b9e9d765c0da700a4ef2a00c087bafb830a5d Mon Sep 17 00:00:00 2001 From: feos Date: Mon, 7 Dec 2015 21:43:32 +0300 Subject: [PATCH 003/106] new lua script, relying on recent features. show frame when rewinding. --- BizHawk.Client.EmuHawk/MainForm.cs | 22 +-- output/Lua/Genesis/Gargoyles.lua | 287 +++++++++++++++++++++++++++++ 2 files changed, 298 insertions(+), 11 deletions(-) create mode 100644 output/Lua/Genesis/Gargoyles.lua diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index e920e9b783..fa90b636e8 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -3609,6 +3609,16 @@ namespace BizHawk.Client.EmuHawk this.master = master; } + private bool IsSlave + { + get { return master != null; } + } + + public void TakeBackControl() + { + master = null; + } + private int SlotToInt(string slot) { return int.Parse(slot.Substring(slot.Length - 1, 1)); @@ -3936,16 +3946,6 @@ namespace BizHawk.Client.EmuHawk } } - private bool IsSlave - { - get { return master != null; } - } - - public void TakeBackControl() - { - master = null; - } - private void GBAcoresettingsToolStripMenuItem1_Click(object sender, EventArgs e) { GenericCoreConfig.DoDialog(this, "Gameboy Advance Settings"); @@ -3970,7 +3970,7 @@ namespace BizHawk.Client.EmuHawk { if (Global.ClientControls["Rewind"] || PressRewind) { - runFrame = false; // TODO: the master should be deciding this! + runFrame = true; // TODO: the master should be deciding this! return master.Rewind(); } } diff --git a/output/Lua/Genesis/Gargoyles.lua b/output/Lua/Genesis/Gargoyles.lua new file mode 100644 index 0000000000..ffaedf5b66 --- /dev/null +++ b/output/Lua/Genesis/Gargoyles.lua @@ -0,0 +1,287 @@ +-- Gargoyles, Genesis +-- feos, 2015 + +--== Shortcuts ==-- +local rb = memory.read_u8 +local rw = memory.read_u16_be +local rws = memory.read_s16_be +local rl = memory.read_u32_be +local box = gui.drawBox +local text = gui.pixelText +local line = gui.drawLine +local AND = bit.band +local SHIFT= bit.rshift +--== RAM addresses ==-- +local GlobalBase = 0x1c76 +local GolBase = 0x2c76 +local MapA_Buff = 0x4af0 +local mapline_tab = 0x0244 +local LevelFlr = 0x00c0 +local LevelCon = 0x00c4 +local levnum = 0x00ba +--== Camera Hack ==-- +local camhack = false +local div = 1 -- scale +local size = 16/div -- block size +--== Other stuff ==-- +local XposLast = 0 +local YposLast = 0 + +function main() + camx = (rws(0x010c)+16) + camy = (rws(0x010e)+16) + backx = camx + backy = camy + mapw = rw(0x00d4)*8 + maph = rw(0x00d6)*8 +-- text(100,0,mapw.." "..maph) + Xpos = rws(0x0106) + Ypos = rws(0x0108) + health = rws(0x2cc6) + facing = AND(rb(GolBase+0x48),2) -- object flag 1 + working= rb(0x0073) + if camhack then + camx = Xpos-320/2*div + camy = Ypos-224/2*div + end + run = rb(0x1699) + inv = rw(0x16d2) + rnd1 = rl(0x001c) + rnd2 = rw(0x0020) + Xspd = Xpos-XposLast + Yspd = Ypos-YposLast + XposLast = Xpos + YposLast = Ypos + rndlast = rnd1 + --[ [-- + if camhack then box(0,0,320,240,0,0x66000000) end + if working==0 then + box( + (backx-camx- 1)/div, + (backy-camy- 1)/div, + (backx-camx+320)/div, + (backy-camy+224)/div, + 0x0000ffff) + box( 0-camx/div+size, + 0-camy/div+size, + mapw/div-camx/div, + maph/div-camy/div, + 0xff0000ff) + end + for i=0,20*div do + for j=0,14*div do + GetBlock(i,j) + end + end + --]]-- + Objects() + PlayerBoxes() + HUD() + RoomTime() +end + +function RoomTime() + local start11 = 767 + local start12 = 2294 + local start13 = 4101 + local startl4 = 6000 + timer = emu.framecount() + if timer < start11 then room = timer + elseif timer < start12 then room = timer - start11 + elseif timer < start13 then room = timer - start12 + elseif timer < startl4 then room = timer - start13 + end + text(100,217,"room cnt: "..room) +end + +function GetBlock(x,y) + if working>0 then return end + x = camx+x*size*div-AND(camx,0xF) + y = camy+y*size*div-AND(camy,0xF) + if x>0 and x0 and y0 or rb(a1+8,"MD CART")>0 then + box(x1,y1,x2,y2,0x5500ff00,0x5500ff00) + for pixel=0,15 do + retc = rb(a1+pixel,"MD CART") -- contour + if retc>0 then + gui.drawPixel(x1+pixel/div,y1+retc/div-1/div,0xffffff00) + -- text(x1,y1,string.format("%X",retc)) + end + end + end + local lol = 0 + --if lol==0 then return end + if ret>0 then + if ret==0x80 then -- WALL + col = 0x00ffffff -- white + line(x1,y1,x1,y2,col+op) -- left + line(x2,y1,x2,y2,col+op) -- right + elseif ret==0x81 then -- CEILING + col = 0x00ffffff -- white + line(x1,y2,x2,y2,col+op) -- bottom + elseif ret==0x82 then -- CLIMB_U + col = 0x0000ffff -- cyan + line(x1,y2,x2,y2,col+op) -- bottom + elseif ret==0x83 then -- CLIMB_R + -- col = 0x00ffffff -- white + -- line(x2,y1,x2,y2,col+op) -- right + col = 0x0000ffff -- cyan + line(x1,y1,x1,y2,col+op) -- left + elseif ret==0x84 then -- CLIMB_L + -- col = 0x00ffffff -- white + -- line(x1,y1,x1,y2,col+op) -- left + col = 0x0000ffff -- cyan + line(x2,y1,x2,y2,col+op) -- right + elseif ret==0x85 then -- CLIMB_LR + col = 0x0000ffff -- cyan + line(x1,y1,x1,y2,col+op) -- left + line(x2,y1,x2,y2,col+op) -- right + elseif ret==0x86 then -- CLIMB_R_STAND_R + col = 0x00ffffff -- white + line(x1,y1,x2,y1,col+op) -- top + col = 0x0000ffff -- cyan + line(x1,y1,x1,y2,col+op) -- left + elseif ret==0x87 then -- CLIMB_L_STAND_L + col = 0x00ffffff -- white + line(x1,y1,x2,y1,col+op) -- top + col = 0x0000ffff -- cyan + line(x2,y1,x2,y2,col+op) -- right + elseif ret==0x87 then -- CLIMB_LR_STAND_LR + col = 0x00ffffff -- white + line(x1,y1,x2,y1,col+op) -- top + col = 0x00ff00ff -- cyan + line(x1,y1,x1,y2,col+op) -- left + col = 0x0000ffff -- cyan + line(x2,y1,x2,y2,col+op) -- right + elseif ret==0x70 then -- GRAB_SWING + col = 0x0000ff00 -- green + box(x1,y1,x2,y2,col,col+opout) + -- elseif ret==0x72 then -- FORCE_TURN (for enemies) + -- col = 0x0088ff00 -- green + -- box(x1,y1,x2,y2,col,col+opout) + elseif ret==0x7f then -- EXIT + col = 0x00ffff00 -- yellow + elseif ret==0xd0 or ret==0xd1 then -- SPIKES + col = 0x00ff0000 -- red + box(x1,y1,x2,y2,col,col+opout) + else -- LEVEL_SPECIFIC + col = 0x00ff8800 -- orange + box(x1,y1,x2,y2,col+opin,col+opout) + end + box(x1,y1,x2,y2,col+opin,col+opout) + -- text(x1,y1,string.format("%X",ret)) + end + end +end + +function HUD() + if working>0 then return end + if camhack then ch = "on" else ch = "off" end + if rndlast~= rnd1 then rndcol = "red" else rndcol = "white" end + if memory.readbyte(0xF6D4)==0 then text(170,217,"LAG","red") end + text(280,210,string.format("cHack: %s\nscale: %d",ch,div)) + text( 0,217,"rnd: ","yellow") + text( 20,217,string.format("%08X %04X",rnd1,rnd2),rndcol) + text(290, 0,string.format( + "x: %4d\ny: %4d\ndx: %3d\ndy: %3d\nhp: %3d\nrun:%3d\ninv:%3d", + Xpos,Ypos,Xspd,Yspd,health,run,inv),"yellow" + ) +end + +function Objects() + if working>0 then return end + for i=0,63 do + local base = GlobalBase+i*128 + local flag2 = AND(rb(base+0x49),0x10) -- active + if flag2==0x10 then + local xpos = rw(base+0x00) + local ypos = rw(base+0x02) + -- local anm = rl(base+0x20) + local dmg = rb(base+0x10) + local type = rw(base+0x40) + local hp = rw(base+0x50) + local cRAM = rw(base+0x76) -- pointer to 4 collision boxes per object + local col = 0 -- collision color + local xscr = (xpos-camx)/div + local yscr = (ypos-camy)/div + if type==0 then + -- gui.text(xscr,yscr,string.format("%X",anm)) + end + for boxx=0,4 do + local x1 = (rws(cRAM+boxx*8+0)-camx)/div + local y1 = (rws(cRAM+boxx*8+2)-camy)/div + local x2 = (rws(cRAM+boxx*8+4)-camx)/div + local y2 = (rws(cRAM+boxx*8+6)-camy)/div + if boxx==0 then + col = 0xff00ff00 -- body + if type==282 or type==258 then hp = 1 end -- archer hp doesn't matter + if hp>0 and type>0 then + text(x1+2,y1+1,string.format("%d",hp),col) + end + elseif boxx==1 then + col = 0xffffff00 -- floor + elseif boxx==2 then + if dmg>0 then + col = 0xffff0000 -- projectile + else + col = 0xff8800ff -- item + end + if dmg>0 then + text(x1+2,y2+1,string.format("%d",dmg),col) + end + else + col = 0xffffffff -- other + end + if x1~=0x8888 and x2<320 and x1>0 and y2<224 and y1>0 then + box(x1,y1,x2,y2,col) + end + end + end + end +end + +function PlayerBoxes() + if working>0 then return end + xx = (Xpos-camx)/div + yy = (Ypos-camy)/div + local col = 0xff00ffff + local swcol = col -- usual detection + if Yspd>0 then -- gimme swings to grab!!! + swcol = 0xff00ff00 + elseif Yspd==0 then -- can tell that too + swcol = 0xffffffff + end + if facing==2 then + box(xx-0xf /div-2,yy-0x2c/div-1,xx-0xf /div+0,yy-0x2c/div+1,swcol) -- lefttop + else + box(xx+0xf /div-1,yy-0x2c/div-1,xx+0xf /div+1,yy-0x2c/div+1,swcol) -- rightttop + end + box(xx -1,yy-0x2c/div-1,xx +1,yy-0x2c/div+1,col) -- top + box(xx-0xf /div-2,yy-0x1f/div-1,xx-0xf /div+0,yy-0x1f/div+1,col) -- left + box(xx+0x10/div-1,yy-0x1f/div-1,xx+0x10/div+1,yy-0x1f/div+1,col) -- right +-- box(xx -1,yy-0x1f/div-1,xx +1,yy-0x1f/div+1,col) -- center + box(xx -1,yy-0x0f/div-1,xx +1,yy-0x0f/div+1,col) -- bottom + box(xx -1,yy -1,xx +1,yy +1,0xffffff00) -- feet +-- box(xx -1,yy+0x10/div-1,xx +1,yy+0x10/div+1,col) -- ground +end + +--event.onframeend(main) + +while true do + main() + emu.frameadvance() +end \ No newline at end of file From 9d491d94155b3a13369b97b44b703b669fb40b91 Mon Sep 17 00:00:00 2001 From: feos Date: Tue, 8 Dec 2015 19:17:45 +0300 Subject: [PATCH 004/106] Bk2Movie: use intended method when adding a key. fixes #520 --- BizHawk.Client.Common/movie/bk2/Bk2Movie.HeaderApi.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BizHawk.Client.Common/movie/bk2/Bk2Movie.HeaderApi.cs b/BizHawk.Client.Common/movie/bk2/Bk2Movie.HeaderApi.cs index 92137a7cb5..ddc3e1b5da 100644 --- a/BizHawk.Client.Common/movie/bk2/Bk2Movie.HeaderApi.cs +++ b/BizHawk.Client.Common/movie/bk2/Bk2Movie.HeaderApi.cs @@ -67,7 +67,7 @@ namespace BizHawk.Client.Common { if (value) { - Header.Add(HeaderKeys.STARTSFROMSAVESTATE, "True"); + Header[HeaderKeys.STARTSFROMSAVESTATE] = "True"; } else { From 8a6ddfbf3fced71e5d298527658135d72991a713 Mon Sep 17 00:00:00 2001 From: feos Date: Tue, 8 Dec 2015 23:38:00 +0300 Subject: [PATCH 005/106] tastudio: actually use initial state from anchored movies. don't seek to whatever frame such a movie was created from. --- BizHawk.Client.Common/movie/tasproj/TasStateManager.cs | 4 ++++ .../tools/TAStudio/TAStudio.MenuItems.cs | 4 ++-- BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs | 9 ++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs b/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs index 7e9118efe0..5d1d317eca 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs @@ -138,6 +138,10 @@ namespace BizHawk.Client.Common { get { + if (frame == 0) { + return new KeyValuePair(0, InitialState); + } + if (States.ContainsKey(frame)) { StateAccessed(frame); diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs index c1f431efbc..de81acd338 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs @@ -1097,7 +1097,7 @@ namespace BizHawk.Client.EmuHawk index, (byte[])StatableEmulator.SaveStateBinary().Clone()); GlobalWin.MainForm.PauseEmulator(); - LoadFile(new FileInfo(newProject.Filename)); + LoadFile(new FileInfo(newProject.Filename), true); } } @@ -1112,7 +1112,7 @@ namespace BizHawk.Client.EmuHawk SaveRamEmulator.CloneSaveRam()); GlobalWin.MainForm.PauseEmulator(); - LoadFile(new FileInfo(newProject.Filename)); + LoadFile(new FileInfo(newProject.Filename), true); } } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 36644401a9..06c933f017 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -421,7 +421,7 @@ namespace BizHawk.Client.EmuHawk Settings.RecentTas.Add(Global.MovieSession.Movie.Filename); } - private bool LoadFile(FileInfo file) + private bool LoadFile(FileInfo file, bool startsFromSavestate = false) { if (!file.Exists) { @@ -429,7 +429,7 @@ namespace BizHawk.Client.EmuHawk return false; } - TasMovie newMovie = new TasMovie(false, _saveBackgroundWorker); + TasMovie newMovie = new TasMovie(startsFromSavestate, _saveBackgroundWorker); newMovie.TasStateManager.InvalidateCallback = GreenzoneInvalidated; newMovie.Filename = file.FullName; @@ -440,7 +440,10 @@ namespace BizHawk.Client.EmuHawk if (TasView.AllColumns.Count() == 0) SetUpColumns(); - GoToFrame(CurrentTasMovie.Session.CurrentFrame); + if (startsFromSavestate) + GoToFrame(0); + else + GoToFrame(CurrentTasMovie.Session.CurrentFrame); CurrentTasMovie.CurrentBranch = CurrentTasMovie.Session.CurrentBranch; // clear all selections From 708bb4fa9344c57e871bec107c62bf79cc3385da Mon Sep 17 00:00:00 2001 From: Hathor86 Date: Fri, 4 Dec 2015 14:10:04 +0100 Subject: [PATCH 006/106] Final stuff to WatchList Now fully use comparer class. That saves memory and offer extensibility ItemCount property obsolete => Moved to Count property (which did the same thing) Moved ConfigPersistAttribute.cs, IToolForm.cs, IToolFormAutoConfig.cs back to common --- .../BizHawk.Client.ApiHawk.csproj | 4 +- .../Resources/ApiClassDiagram.cd | 26 +---- .../BizHawk.Client.Common.csproj | 9 ++ .../config}/ConfigPersistAttribute.cs | 0 .../tools}/Interfaces/IToolForm.cs | 0 .../tools}/Interfaces/IToolFormAutoConfig.cs | 0 BizHawk.Client.Common/tools/Watch/Watch.cs | 13 ++- .../Watch/WatchList/WatchAddressComparer.cs | 83 ++++---------- .../WatchList/WatchChangeCountComparer.cs | 51 +++++++++ .../Watch/WatchList/WatchDomainComparer.cs | 59 ++-------- .../Watch/WatchList/WatchEqualityComparer.cs | 58 ++++++++++ .../tools/Watch/WatchList/WatchList.cs | 107 ++++++------------ .../Watch/WatchList/WatchNoteComparer.cs | 51 +++++++++ .../WatchList/WatchPreviousValueComparer.cs | 51 +++++++++ .../Watch/WatchList/WatchValueComparer.cs | 72 ++++++++++++ .../WatchList/WatchValueDifferenceComparer.cs | 52 +++++++++ .../tools/Watch/RamWatch.cs | 32 +++--- BizHawk.sln | 18 +-- 18 files changed, 451 insertions(+), 235 deletions(-) rename {BizHawk.Client.ApiHawk/Attributes => BizHawk.Client.Common/config}/ConfigPersistAttribute.cs (100%) rename {BizHawk.Client.ApiHawk => BizHawk.Client.Common/tools}/Interfaces/IToolForm.cs (100%) rename {BizHawk.Client.ApiHawk => BizHawk.Client.Common/tools}/Interfaces/IToolFormAutoConfig.cs (100%) create mode 100644 BizHawk.Client.Common/tools/Watch/WatchList/WatchChangeCountComparer.cs create mode 100644 BizHawk.Client.Common/tools/Watch/WatchList/WatchEqualityComparer.cs create mode 100644 BizHawk.Client.Common/tools/Watch/WatchList/WatchNoteComparer.cs create mode 100644 BizHawk.Client.Common/tools/Watch/WatchList/WatchPreviousValueComparer.cs create mode 100644 BizHawk.Client.Common/tools/Watch/WatchList/WatchValueComparer.cs create mode 100644 BizHawk.Client.Common/tools/Watch/WatchList/WatchValueDifferenceComparer.cs diff --git a/BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj b/BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj index 3ecb098c69..be77f4aead 100644 --- a/BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj +++ b/BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj @@ -59,10 +59,7 @@ - - - @@ -80,6 +77,7 @@ + diff --git a/BizHawk.Client.ApiHawk/Resources/ApiClassDiagram.cd b/BizHawk.Client.ApiHawk/Resources/ApiClassDiagram.cd index 54b73a0b86..f5deb7e503 100644 --- a/BizHawk.Client.ApiHawk/Resources/ApiClassDiagram.cd +++ b/BizHawk.Client.ApiHawk/Resources/ApiClassDiagram.cd @@ -1,12 +1,5 @@  - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Attributes\ConfigPersistAttribute.cs - - @@ -36,14 +29,13 @@ - - - - - + + + + @@ -53,17 +45,11 @@ - - ECAAAAAAAABACAAgAAEAABAAAAAEAAAAAAAAAACAQAA= - Interfaces\IToolForm.cs - + - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - Interfaces\IToolFormAutoConfig.cs - + diff --git a/BizHawk.Client.Common/BizHawk.Client.Common.csproj b/BizHawk.Client.Common/BizHawk.Client.Common.csproj index 51de386cc8..9f25fdcc5b 100644 --- a/BizHawk.Client.Common/BizHawk.Client.Common.csproj +++ b/BizHawk.Client.Common/BizHawk.Client.Common.csproj @@ -105,6 +105,7 @@ + @@ -232,6 +233,8 @@ + + @@ -239,9 +242,15 @@ + + + + + + diff --git a/BizHawk.Client.ApiHawk/Attributes/ConfigPersistAttribute.cs b/BizHawk.Client.Common/config/ConfigPersistAttribute.cs similarity index 100% rename from BizHawk.Client.ApiHawk/Attributes/ConfigPersistAttribute.cs rename to BizHawk.Client.Common/config/ConfigPersistAttribute.cs diff --git a/BizHawk.Client.ApiHawk/Interfaces/IToolForm.cs b/BizHawk.Client.Common/tools/Interfaces/IToolForm.cs similarity index 100% rename from BizHawk.Client.ApiHawk/Interfaces/IToolForm.cs rename to BizHawk.Client.Common/tools/Interfaces/IToolForm.cs diff --git a/BizHawk.Client.ApiHawk/Interfaces/IToolFormAutoConfig.cs b/BizHawk.Client.Common/tools/Interfaces/IToolFormAutoConfig.cs similarity index 100% rename from BizHawk.Client.ApiHawk/Interfaces/IToolFormAutoConfig.cs rename to BizHawk.Client.Common/tools/Interfaces/IToolFormAutoConfig.cs diff --git a/BizHawk.Client.Common/tools/Watch/Watch.cs b/BizHawk.Client.Common/tools/Watch/Watch.cs index 2b74007322..42bab1ba87 100644 --- a/BizHawk.Client.Common/tools/Watch/Watch.cs +++ b/BizHawk.Client.Common/tools/Watch/Watch.cs @@ -232,7 +232,18 @@ namespace BizHawk.Client.Common /// True if they are equals; otherwise, false public static bool operator ==(Watch a, Cheat b) { - return a.Equals(b); + if (object.ReferenceEquals(a, null) || object.ReferenceEquals(b, null)) + { + return false; + } + else if (object.ReferenceEquals(a, b)) + { + return true; + } + else + { + return a.Equals(b); + } } /// diff --git a/BizHawk.Client.Common/tools/Watch/WatchList/WatchAddressComparer.cs b/BizHawk.Client.Common/tools/Watch/WatchList/WatchAddressComparer.cs index e17f4b4c30..eb30ad8e7d 100644 --- a/BizHawk.Client.Common/tools/Watch/WatchList/WatchAddressComparer.cs +++ b/BizHawk.Client.Common/tools/Watch/WatchList/WatchAddressComparer.cs @@ -12,83 +12,40 @@ namespace BizHawk.Client.Common /// Netsed private class that define how to compare two /// based on their address /// - private struct WatchAddressComparer - : IEqualityComparer, + private sealed class WatchAddressComparer + : WatchEqualityComparer, IComparer { /// - /// Compare two between them - /// and determine wich one comes first. + /// Compares two between them + /// and determines wich one comes first. /// If they are equals, comapraison will done one the domain and next on size /// /// First - /// True if are equal; otherwise, false - /// + /// Second + /// 0 for equality, 1 if x comes first; -1 if y comes first public int Compare(Watch x, Watch y) - { - if (Equals(x, y)) { - return 0; - } - else if (x.Address.Equals(y.Address)) - { - if (x.Domain.Name.Equals(y.Domain.Name)) + if (Equals(x, y)) { - return x.Size.CompareTo(y.Size); + return 0; + } + else if (x.Address.Equals(y.Address)) + { + if (x.Domain.Name.Equals(y.Domain.Name)) + { + return x.Size.CompareTo(y.Size); + } + else + { + return x.Domain.Name.CompareTo(y.Domain.Name); + } } else { - return x.Domain.Name.CompareTo(y.Domain.Name); + return x.Address.CompareTo(y.Address); } } - else - { - return x.Address.CompareTo(y.Address); - } - } - - /// - /// Determine if two are equals - /// - /// First - /// Second - /// True if are equal; otherwise, false - public bool Equals(Watch x, Watch y) - { - if (object.ReferenceEquals(x, null)) - { - if (object.ReferenceEquals(y, null)) - { - return true; - } - else - { - return false; - } - } - else if (object.ReferenceEquals(y, null)) - { - return false; - } - else if (object.ReferenceEquals(x, y)) - { - return true; - } - else - { - return x.Address.Equals(y.Address); - } - } - - /// - /// Get the hash value of specified - /// - /// Watch to get hash - /// int that can serves as a unique representation of current Watch - public int GetHashCode(Watch obj) - { - return obj.GetHashCode(); } } } -} diff --git a/BizHawk.Client.Common/tools/Watch/WatchList/WatchChangeCountComparer.cs b/BizHawk.Client.Common/tools/Watch/WatchList/WatchChangeCountComparer.cs new file mode 100644 index 0000000000..ceb96266d4 --- /dev/null +++ b/BizHawk.Client.Common/tools/Watch/WatchList/WatchChangeCountComparer.cs @@ -0,0 +1,51 @@ +using System.Collections.Generic; + +namespace BizHawk.Client.Common +{ + /// + /// This class hold a collection + /// Different memory domain can be mixed + /// + public sealed partial class WatchList + { + /// + /// Netsed private class that define how to compare two + /// based on the number of changes + /// + private sealed class WatchChangeCountComparer + :WatchEqualityComparer + ,IComparer + { + /// + /// Compares two between them + /// and determines wich one comes first. + /// If they are equals, comapraison will done one the address and next on size + /// + /// First + /// Second + /// 0 for equality, 1 if x comes first; -1 if y comes first + public int Compare(Watch x, Watch y) + { + if (Equals(x, y)) + { + return 0; + } + else if (x.ChangeCount.Equals(y.ChangeCount)) + { + if (x.Address.Equals(y.Address)) + { + return x.Size.CompareTo(y.Size); + } + else + { + return x.Address.CompareTo(y.Address); + } + } + else + { + return x.ChangeCount.CompareTo(y.ChangeCount); + } + } + } + } +} diff --git a/BizHawk.Client.Common/tools/Watch/WatchList/WatchDomainComparer.cs b/BizHawk.Client.Common/tools/Watch/WatchList/WatchDomainComparer.cs index 39e3778a46..4293797f48 100644 --- a/BizHawk.Client.Common/tools/Watch/WatchList/WatchDomainComparer.cs +++ b/BizHawk.Client.Common/tools/Watch/WatchList/WatchDomainComparer.cs @@ -12,25 +12,25 @@ namespace BizHawk.Client.Common /// Netsed private class that define how to compare two /// based on their domain /// - private struct WatchDomainComparer - : IEqualityComparer, + private sealed class WatchDomainComparer + : WatchEqualityComparer, IComparer { /// - /// Compare two between them - /// and determine wich one comes first. + /// Compares two between them + /// and determines wich one comes first. /// If they are equals, comapraison will done one the address and next on size /// /// First - /// True if are equal; otherwise, false - /// + ///Second + /// 0 for equality, 1 if x comes first; -1 if y comes first public int Compare(Watch x, Watch y) { - if(Equals(x, y)) + if (Equals(x, y)) { return 0; } - else if(x.Domain.Name.Equals(y.Domain.Name)) + else if (x.Domain.Name.Equals(y.Domain.Name)) { if (x.Address.Equals(y.Address)) { @@ -46,49 +46,6 @@ namespace BizHawk.Client.Common return x.Domain.Name.CompareTo(y.Domain.Name); } } - - /// - /// Determine if two are equals - /// - /// First - /// Second - /// True if are equal; otherwise, false - public bool Equals(Watch x, Watch y) - { - if(object.ReferenceEquals(x, null)) - { - if(object.ReferenceEquals(y, null)) - { - return true; - } - else - { - return false; - } - } - else if(object.ReferenceEquals(y, null)) - { - return false; - } - else if(object.ReferenceEquals(x,y)) - { - return true; - } - else - { - return x.Domain.Name.Equals(y.Domain.Name); - } - } - - /// - /// Get the hash value of specified - /// - /// Watch to get hash - /// int that can serves as a unique representation of current Watch - public int GetHashCode(Watch obj) - { - return obj.GetHashCode(); - } } } } diff --git a/BizHawk.Client.Common/tools/Watch/WatchList/WatchEqualityComparer.cs b/BizHawk.Client.Common/tools/Watch/WatchList/WatchEqualityComparer.cs new file mode 100644 index 0000000000..a7445904c3 --- /dev/null +++ b/BizHawk.Client.Common/tools/Watch/WatchList/WatchEqualityComparer.cs @@ -0,0 +1,58 @@ +using System.Collections.Generic; + +namespace BizHawk.Client.Common +{ + /// + /// This class hold a collection + /// Different memory domain can be mixed + /// + public sealed partial class WatchList + { + private class WatchEqualityComparer + : IEqualityComparer + { + /// + /// Determines if two are equals + /// + /// First + /// Second + /// True if are equal; otherwise, false + public bool Equals(Watch x, Watch y) + { + if (ReferenceEquals(x, null)) + { + if (ReferenceEquals(y, null)) + { + return true; + } + else + { + return false; + } + } + else if (ReferenceEquals(y, null)) + { + return false; + } + else if (ReferenceEquals(x, y)) + { + return true; + } + else + { + return false; + } + } + + /// + /// Gets the hash value of specified + /// + /// Watch to get hash + /// int that can serves as a unique representation of current Watch + public int GetHashCode(Watch obj) + { + return obj.GetHashCode(); + } + } + } +} diff --git a/BizHawk.Client.Common/tools/Watch/WatchList/WatchList.cs b/BizHawk.Client.Common/tools/Watch/WatchList/WatchList.cs index cb96859d9e..f3470cb9c7 100644 --- a/BizHawk.Client.Common/tools/Watch/WatchList/WatchList.cs +++ b/BizHawk.Client.Common/tools/Watch/WatchList/WatchList.cs @@ -33,6 +33,11 @@ namespace BizHawk.Client.Common private static readonly WatchDomainComparer domainComparer = new WatchDomainComparer(); private static readonly WatchAddressComparer addressComparer = new WatchAddressComparer(); + private static readonly WatchValueComparer valueComparer = new WatchValueComparer(); + private static readonly WatchPreviousValueComparer previousValueComparer = new WatchPreviousValueComparer(); + private static readonly WatchValueDifferenceComparer valueDifferenceComparer = new WatchValueDifferenceComparer(); + private static readonly WatchChangeCountComparer changeCountComparer = new WatchChangeCountComparer(); + private static readonly WatchNoteComparer noteComparer = new WatchNoteComparer(); private static IMemoryDomains _memoryDomains; @@ -256,92 +261,58 @@ namespace BizHawk.Client.Common } break; + case VALUE: if (reverse) { - _watchList = _watchList - .OrderByDescending(x => x.Value) - .ThenBy(x => x.Address) - .ThenBy(x => x.Size) - .ThenBy(x => x.Type) - .ThenBy(x => x.BigEndian) - .ToList(); + _watchList.Sort(valueComparer); + _watchList.Reverse(); } else { - _watchList = _watchList - .OrderBy(x => x.Value) - .ThenBy(x => x.Address) - .ThenBy(x => x.Size) - .ThenBy(x => x.Type) - .ThenBy(x => x.BigEndian) - .ToList(); + _watchList.Sort(valueComparer); } break; - case PREV: // Note: these only work if all entries are detailed objects! + + case PREV: if (reverse) { - _watchList = _watchList - .OrderByDescending(x => x.PreviousStr) - .ThenBy(x => x.Address) - .ThenBy(x => x.Size) - .ThenBy(x => x.Type) - .ToList(); + _watchList.Sort(previousValueComparer); + _watchList.Reverse(); } else { - _watchList = _watchList - .OrderBy(x => x.PreviousStr) - .ThenBy(x => x.Address) - .ThenBy(x => x.Size) - .ThenBy(x => x.Type) - .ToList(); + _watchList.Sort(previousValueComparer); } break; + case DIFF: if (reverse) { - _watchList = _watchList - .OrderByDescending(x => x.Diff) - .ThenBy(x => x.Address) - .ThenBy(x => x.Size) - .ThenBy(x => x.Type) - .ToList(); + _watchList.Sort(valueDifferenceComparer); + _watchList.Reverse(); } else { - _watchList = _watchList - .OrderBy(x => x.Diff) - .ThenBy(x => x.Address) - .ThenBy(x => x.Size) - .ThenBy(x => x.Type) - .ToList(); + _watchList.Sort(valueDifferenceComparer); } - break; + case CHANGES: if (reverse) { - _watchList = _watchList - .OrderByDescending(x => x.ChangeCount) - .ThenBy(x => x.Address) - .ThenBy(x => x.Size) - .ThenBy(x => x.Type) - .ToList(); + _watchList.Sort(changeCountComparer); + _watchList.Reverse(); } else { - _watchList = _watchList - .OrderBy(x => x.ChangeCount) - .ThenBy(x => x.Address) - .ThenBy(x => x.Size) - .ThenBy(x => x.Type) - .ToList(); + _watchList.Sort(changeCountComparer); } break; + case DOMAIN: if (reverse) { @@ -354,24 +325,16 @@ namespace BizHawk.Client.Common } break; + case NOTES: if (reverse) { - _watchList = _watchList - .OrderByDescending(x => x.Notes) - .ThenBy(x => x.Address) - .ThenBy(x => x.Size) - .ThenBy(x => x.Type) - .ToList(); + _watchList.Sort(noteComparer); + _watchList.Reverse(); } else { - _watchList = _watchList - .OrderBy(x => x.Notes) - .ThenBy(x => x.Address) - .ThenBy(x => x.Size) - .ThenBy(x => x.Type) - .ToList(); + _watchList.Sort(noteComparer); } break; @@ -521,7 +484,14 @@ namespace BizHawk.Client.Common }); } - [Obsolete("Use count property instead")] + [Obsolete("Use domain from individual watch instead")] + public MemoryDomain Domain + { + get { return _domain; } + set { _domain = value; } + } + + [Obsolete("Use count property instead", true)] public int ItemCount { get @@ -530,13 +500,6 @@ namespace BizHawk.Client.Common } } - [Obsolete("Use domain from individual watch instead")] - public MemoryDomain Domain - { - get { return _domain; } - set { _domain = value; } - } - #region File handling logic - probably needs to be its own class public bool Load(string path, bool append) diff --git a/BizHawk.Client.Common/tools/Watch/WatchList/WatchNoteComparer.cs b/BizHawk.Client.Common/tools/Watch/WatchList/WatchNoteComparer.cs new file mode 100644 index 0000000000..8c8caa5432 --- /dev/null +++ b/BizHawk.Client.Common/tools/Watch/WatchList/WatchNoteComparer.cs @@ -0,0 +1,51 @@ +using System.Collections.Generic; + +namespace BizHawk.Client.Common +{ + /// + /// This class hold a collection + /// Different memory domain can be mixed + /// + public sealed partial class WatchList + { + /// + /// Netsed private class that define how to compare two + /// based on their note + /// + private sealed class WatchNoteComparer + :WatchEqualityComparer, + IComparer + { + /// + /// Compares two between them + /// and determines wich one comes first. + /// If they are equals, comapraison will done one the address and next on size + /// + /// First + /// Second + /// 0 for equality, 1 if x comes first; -1 if y comes first + public int Compare(Watch x, Watch y) + { + if (Equals(x, y)) + { + return 0; + } + else if (string.Compare(x.Notes, y.Notes, true) == 0) + { + if (x.Address.Equals(y.Address)) + { + return x.Size.CompareTo(y.Size); + } + else + { + return x.Address.CompareTo(y.Address); + } + } + else + { + return string.Compare(x.Notes, y.Notes, true); + } + } + } + } +} diff --git a/BizHawk.Client.Common/tools/Watch/WatchList/WatchPreviousValueComparer.cs b/BizHawk.Client.Common/tools/Watch/WatchList/WatchPreviousValueComparer.cs new file mode 100644 index 0000000000..17045b3753 --- /dev/null +++ b/BizHawk.Client.Common/tools/Watch/WatchList/WatchPreviousValueComparer.cs @@ -0,0 +1,51 @@ +using System.Collections.Generic; + +namespace BizHawk.Client.Common +{ + /// + /// This class hold a collection + /// Different memory domain can be mixed + /// + public sealed partial class WatchList + { + /// + /// Netsed private class that define how to compare two + /// based on their previous value + /// + private sealed class WatchPreviousValueComparer + : WatchEqualityComparer, + IComparer + { + /// + /// Compares two between them + /// and determines wich one comes first. + /// If they are equals, comapraison will done one the address and next on size + /// + /// First + /// Second + /// 0 for equality, 1 if x comes first; -1 if y comes first + public int Compare(Watch x, Watch y) + { + if (Equals(x, y)) + { + return 0; + } + else if (x.Previous.Equals(y.Previous)) + { + if (x.Address.Equals(y.Address)) + { + return x.Size.CompareTo(y.Size); + } + else + { + return x.Address.CompareTo(y.Address); + } + } + else + { + return x.Previous.CompareTo(y.Previous); + } + } + } + } +} diff --git a/BizHawk.Client.Common/tools/Watch/WatchList/WatchValueComparer.cs b/BizHawk.Client.Common/tools/Watch/WatchList/WatchValueComparer.cs new file mode 100644 index 0000000000..c0ec61d2d9 --- /dev/null +++ b/BizHawk.Client.Common/tools/Watch/WatchList/WatchValueComparer.cs @@ -0,0 +1,72 @@ +using System.Collections.Generic; + +namespace BizHawk.Client.Common +{ + /// + /// This class hold a collection + /// Different memory domain can be mixed + /// + public sealed partial class WatchList + { + /// + /// Netsed private class that define how to compare two + /// based on their values + /// + private sealed class WatchValueComparer + : WatchEqualityComparer, + IComparer + { + /// + /// Compares two between them + /// and determines wich one comes first. + /// If they are equals, comapraison will done one the address and next on size + /// + /// First + ///Second + /// 0 for equality, 1 if x comes first; -1 if y comes first + public int Compare(Watch x, Watch y) + { + int xValue; + int yValue; + + if (x.Type == DisplayType.Signed) + { + int.TryParse(x.ValueString, out xValue); + } + else + { + xValue = x.Value; + } + + if (y.Type == DisplayType.Signed) + { + int.TryParse(y.ValueString, out yValue); + } + else + { + yValue = y.Value; + } + + if (Equals(x, y)) + { + return 0; + } + else if (xValue.Equals(yValue)) + { + if (x.Address.Equals(y.Address)) + { + return x.Size.CompareTo(y.Size); + } + else + { + return x.Address.CompareTo(y.Address); + } + } + else + { + return xValue.CompareTo(yValue); + } + } + } + } +} \ No newline at end of file diff --git a/BizHawk.Client.Common/tools/Watch/WatchList/WatchValueDifferenceComparer.cs b/BizHawk.Client.Common/tools/Watch/WatchList/WatchValueDifferenceComparer.cs new file mode 100644 index 0000000000..662b7886fc --- /dev/null +++ b/BizHawk.Client.Common/tools/Watch/WatchList/WatchValueDifferenceComparer.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; + +namespace BizHawk.Client.Common +{ + /// + /// This class hold a collection + /// Different memory domain can be mixed + /// + public sealed partial class WatchList + { + /// + /// Netsed private class that define how to compare two + /// based on the diffence between current and previous value + /// + private sealed class WatchValueDifferenceComparer + : WatchEqualityComparer + , IComparer + { + + /// + /// Compares two between them + /// and determines wich one comes first. + /// If they are equals, comapraison will done one the address and next on size + /// + /// First + /// Second + /// 0 for equality, 1 if x comes first; -1 if y comes first + public int Compare(Watch x, Watch y) + { + if (Equals(x, y)) + { + return 0; + } + else if (x.Diff.Equals(y.Diff)) + { + if (x.Address.Equals(y.Address)) + { + return x.Size.CompareTo(y.Size); + } + else + { + return x.Address.CompareTo(y.Address); + } + } + else + { + return x.Diff.CompareTo(y.Diff); + } + } + } + } +} diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs index 5c5e24b938..e489cc87bb 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs @@ -119,7 +119,7 @@ namespace BizHawk.Client.EmuHawk public void AddWatch(Watch watch) { _watches.Add(watch); - WatchListView.ItemCount = _watches.ItemCount; + WatchListView.ItemCount = _watches.Count; UpdateValues(); UpdateWatchCount(); Changes(); @@ -176,7 +176,7 @@ namespace BizHawk.Client.EmuHawk else { Global.Config.RecentWatches.Add(path); - WatchListView.ItemCount = _watches.ItemCount; + WatchListView.ItemCount = _watches.Count; UpdateWatchCount(); UpdateStatusBar(); _watches.Changes = false; @@ -197,7 +197,7 @@ namespace BizHawk.Client.EmuHawk if (result) { _watches.Load(file.FullName, append); - WatchListView.ItemCount = _watches.ItemCount; + WatchListView.ItemCount = _watches.Count; UpdateWatchCount(); Global.Config.RecentWatches.Add(_watches.CurrentFileName); SetMemoryDomain(_watches.Domain.ToString()); @@ -386,7 +386,7 @@ namespace BizHawk.Client.EmuHawk private void FullyUpdateWatchList() { - WatchListView.ItemCount = _watches.ItemCount; + WatchListView.ItemCount = _watches.Count; UpdateWatchCount(); UpdateStatusBar(); UpdateValues(); @@ -417,7 +417,7 @@ namespace BizHawk.Client.EmuHawk if (duplicate) { _watches.AddRange(we.Watches); - WatchListView.ItemCount = _watches.ItemCount; + WatchListView.ItemCount = _watches.Count; } else { @@ -499,7 +499,7 @@ namespace BizHawk.Client.EmuHawk if (result || suppressAsk) { _watches.Clear(); - WatchListView.ItemCount = _watches.ItemCount; + WatchListView.ItemCount = _watches.Count; UpdateWatchCount(); UpdateStatusBar(); _sortReverse = false; @@ -598,7 +598,7 @@ namespace BizHawk.Client.EmuHawk private void WatchListView_QueryItemBkColor(int index, int column, ref Color color) { - if (index >= _watches.ItemCount) + if (index >= _watches.Count) { return; } @@ -624,7 +624,7 @@ namespace BizHawk.Client.EmuHawk { text = string.Empty; - if (index >= _watches.ItemCount || _watches[index].IsSeparator) + if (index >= _watches.Count || _watches[index].IsSeparator) { return; } @@ -764,7 +764,7 @@ namespace BizHawk.Client.EmuHawk _watches.Add(we.Watches[0]); Changes(); UpdateWatchCount(); - WatchListView.ItemCount = _watches.ItemCount; + WatchListView.ItemCount = _watches.Count; UpdateValues(); } } @@ -784,7 +784,7 @@ namespace BizHawk.Client.EmuHawk _watches.Remove(item); } - WatchListView.ItemCount = _watches.ItemCount; + WatchListView.ItemCount = _watches.Count; UpdateValues(); UpdateWatchCount(); } @@ -838,7 +838,7 @@ namespace BizHawk.Client.EmuHawk _watches.Add(SeparatorWatch.Instance); } - WatchListView.ItemCount = _watches.ItemCount; + WatchListView.ItemCount = _watches.Count; Changes(); UpdateWatchCount(); } @@ -873,7 +873,7 @@ namespace BizHawk.Client.EmuHawk WatchListView.SelectItem(t, true); } - WatchListView.ItemCount = _watches.ItemCount; + WatchListView.ItemCount = _watches.Count; } private void MoveDownMenuItem_Click(object sender, EventArgs e) @@ -900,7 +900,7 @@ namespace BizHawk.Client.EmuHawk } Changes(); - WatchListView.ItemCount = _watches.ItemCount; + WatchListView.ItemCount = _watches.Count; } private void SelectAllMenuItem_Click(object sender, EventArgs e) @@ -1037,8 +1037,8 @@ namespace BizHawk.Client.EmuHawk { _watches.Load(filePaths[0], append: false); Global.Config.RecentWatches.Add(_watches.CurrentFileName); - WatchListView.ItemCount = _watches.ItemCount; - } + WatchListView.ItemCount = _watches.Count; + } } private void NewRamWatch_Enter(object sender, EventArgs e) @@ -1205,7 +1205,7 @@ namespace BizHawk.Client.EmuHawk _watches.Remove(item); } - WatchListView.ItemCount = _watches.ItemCount; + WatchListView.ItemCount = _watches.Count; UpdateValues(); UpdateWatchCount(); UpdateStatusBar(); diff --git a/BizHawk.sln b/BizHawk.sln index a8337f67e5..76fa113292 100644 --- a/BizHawk.sln +++ b/BizHawk.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 +VisualStudioVersion = 14.0.24720.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Version", "Version\Version.csproj", "{0CE8B337-08E3-4602-BF10-C4D4C75D2F13}" EndProject @@ -250,18 +250,18 @@ Global {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|Any CPU.Build.0 = Debug|Any CPU {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|Win32.ActiveCfg = Debug|Any CPU - {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|Win32.Build.0 = Debug|Any CPU + {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|Win32.ActiveCfg = Debug|x86 + {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|Win32.Build.0 = Debug|x86 {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|x86.ActiveCfg = Debug|x86 {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Debug|x86.Build.0 = Debug|x86 {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|Any CPU.ActiveCfg = Release|Any CPU {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|Any CPU.Build.0 = Release|Any CPU - {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|Win32.ActiveCfg = Release|Any CPU - {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|Win32.Build.0 = Release|Any CPU - {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|x86.ActiveCfg = Release|Any CPU - {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|x86.Build.0 = Release|Any CPU + {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|Mixed Platforms.Build.0 = Release|x86 + {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|Win32.ActiveCfg = Release|x86 + {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|Win32.Build.0 = Release|x86 + {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|x86.ActiveCfg = Release|x86 + {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 802fb54fad88ef98a1ff758cac56cc208371463a Mon Sep 17 00:00:00 2001 From: zeromus Date: Tue, 8 Dec 2015 19:49:31 -0600 Subject: [PATCH 007/106] gpgx - support up to 32MB roms (fix #543 probably) --- .../Consoles/Sega/gpgx/GPGX.cs | 3 +-- genplus-gx/core/loadrom.h | 2 +- output/dll/libgenplusgx.dll | Bin 1841152 -> 1897472 bytes 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs b/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs index caba32a817..77318a76ec 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs @@ -70,8 +70,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx // http://www.sega-16.com/forum/showthread.php?4398-Forgotten-Worlds-giving-you-GAME-OVER-immediately-Fix-inside&highlight=forgotten%20worlds //hack, don't use - //romfile = File.ReadAllBytes(@"D:\encodes\bizhawksrc\output\SANIC CD\PierSolar (E).bin"); - if (rom != null && rom.Length > 16 * 1024 * 1024) + if (rom != null && rom.Length > 32 * 1024 * 1024) { throw new InvalidOperationException("ROM too big! Did you try to load a CD as a ROM?"); } diff --git a/genplus-gx/core/loadrom.h b/genplus-gx/core/loadrom.h index 3c292eedfc..e152b18739 100644 --- a/genplus-gx/core/loadrom.h +++ b/genplus-gx/core/loadrom.h @@ -40,7 +40,7 @@ #ifndef _LOADROM_H_ #define _LOADROM_H_ -#define MAXROMSIZE 10485760 +#define MAXROMSIZE (32*1024*1024) typedef struct { diff --git a/output/dll/libgenplusgx.dll b/output/dll/libgenplusgx.dll index f9e8e32a89f13ea7ceee923589d92e830230ff3a..5c5d2f008a098200d5faffceb00a82116620bb24 100644 GIT binary patch delta 14115 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 Date: Wed, 9 Dec 2015 19:57:45 +0300 Subject: [PATCH 008/106] tastudio: display changes in a loaded file too. --- BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 06c933f017..3eae69c78a 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -444,6 +444,7 @@ namespace BizHawk.Client.EmuHawk GoToFrame(0); else GoToFrame(CurrentTasMovie.Session.CurrentFrame); + CurrentTasMovie.PropertyChanged += new PropertyChangedEventHandler(this.TasMovie_OnPropertyChanged); CurrentTasMovie.CurrentBranch = CurrentTasMovie.Session.CurrentBranch; // clear all selections From 2a6a2a7a8af133a2737c4ffcfe599488a0b41099 Mon Sep 17 00:00:00 2001 From: feos Date: Thu, 10 Dec 2015 01:38:06 +0300 Subject: [PATCH 009/106] tastudio: properly report saving progress. also attempt to report seeking progress. report occurs, but progressbar doesn't show up... --- .../movie/tasproj/TasMovie.IO.cs | 28 +------------------ .../movie/tasproj/TasMovie.cs | 12 +++++++- .../movie/tasproj/TasStateManager.cs | 1 + BizHawk.Client.EmuHawk/MainForm.cs | 13 +++++++-- .../tools/TAStudio/TAStudio.ListView.cs | 1 + .../tools/TAStudio/TAStudio.Navigation.cs | 1 + .../tools/TAStudio/TAStudio.cs | 13 +++++++++ 7 files changed, 38 insertions(+), 31 deletions(-) diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.IO.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.IO.cs index 51f979c27f..ddf0861d33 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovie.IO.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.IO.cs @@ -17,23 +17,8 @@ namespace BizHawk.Client.Common public Func ClientSettingsForSave { get; set; } public Action GetClientSettingsOnLoad { get; set; } - private const double PROGRESS_STEP = 100 / 12; // TODO hardcoded for now, there might be a better way of doing this - - private double _totalProgress = 0; - - private void ReportProgress(double percent) - { - if (_progressReportWorker != null) - { - _totalProgress += percent; - _progressReportWorker.ReportProgress((int)_totalProgress); - } - } - protected override void Write(string fn) { - _totalProgress = 0; - var file = new FileInfo(fn); if (!file.Directory.Exists) { @@ -43,29 +28,21 @@ namespace BizHawk.Client.Common using (var bs = new BinaryStateSaver(fn, false)) { bs.PutLump(BinaryStateLump.Movieheader, tw => tw.WriteLine(Header.ToString())); - ReportProgress(PROGRESS_STEP); bs.PutLump(BinaryStateLump.Comments, tw => tw.WriteLine(CommentsString())); - ReportProgress(PROGRESS_STEP); bs.PutLump(BinaryStateLump.Subtitles, tw => tw.WriteLine(Subtitles.ToString())); - ReportProgress(PROGRESS_STEP); bs.PutLump(BinaryStateLump.SyncSettings, tw => tw.WriteLine(SyncSettingsJson)); - ReportProgress(PROGRESS_STEP); bs.PutLump(BinaryStateLump.Input, tw => tw.WriteLine(RawInputLog())); - ReportProgress(PROGRESS_STEP); // TasProj extras bs.PutLump(BinaryStateLump.StateHistorySettings, tw => tw.WriteLine(StateManager.Settings.ToString())); - ReportProgress(PROGRESS_STEP); + if (StateManager.Settings.SaveStateHistory) { bs.PutLump(BinaryStateLump.StateHistory, (BinaryWriter bw) => StateManager.Save(bw)); } - ReportProgress(PROGRESS_STEP); bs.PutLump(BinaryStateLump.LagLog, (BinaryWriter bw) => LagLog.Save(bw)); - ReportProgress(PROGRESS_STEP); bs.PutLump(BinaryStateLump.Markers, tw => tw.WriteLine(Markers.ToString())); - ReportProgress(PROGRESS_STEP); if (StartsFromSavestate) { @@ -82,14 +59,12 @@ namespace BizHawk.Client.Common { bs.PutLump(BinaryStateLump.MovieSaveRam, (BinaryWriter bw) => bw.Write(SaveRam)); } - ReportProgress(PROGRESS_STEP); if (ClientSettingsForSave != null) { var clientSettingsJson = ClientSettingsForSave(); bs.PutLump(BinaryStateLump.ClientSettings, (TextWriter tw) => tw.Write(clientSettingsJson)); } - ReportProgress(PROGRESS_STEP); if (VerificationLog.Any()) { @@ -104,7 +79,6 @@ namespace BizHawk.Client.Common bs.PutLump(BinaryStateLump.BranchStateHistory, (BinaryWriter bw) => StateManager.SaveBranchStates(bw)); } } - ReportProgress(PROGRESS_STEP); bs.PutLump(BinaryStateLump.Session, tw => tw.WriteLine(Session.ToString())); } diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.cs index f8ef6337b0..e2e64d8e2c 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovie.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.cs @@ -24,7 +24,7 @@ namespace BizHawk.Client.Common public readonly IStringLog VerificationLog = StringLogUtil.MakeStringLog(); // For movies that do not begin with power-on, this is the input required to get into the initial state public readonly TasBranchCollection Branches = new TasBranchCollection(); - private BackgroundWorker _progressReportWorker = null; + public BackgroundWorker _progressReportWorker = null; public void NewBGWorker(BackgroundWorker newWorker) { _progressReportWorker = newWorker; @@ -149,6 +149,16 @@ namespace BizHawk.Client.Common } } + public void ReportProgress(double percent) + { + if (percent > 100d) + return; + if (_progressReportWorker != null) + { + _progressReportWorker.ReportProgress((int)percent); + } + } + #region Events and Handlers public event PropertyChangedEventHandler PropertyChanged; diff --git a/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs b/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs index 5d1d317eca..566c5d866d 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs @@ -565,6 +565,7 @@ namespace BizHawk.Client.Common bw.Write(kvp.Key); bw.Write(kvp.Value.Length); bw.Write(kvp.Value.State); + _movie.ReportProgress((double)100d / States.Count * i); } } diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index fa90b636e8..f8a5d5b6bd 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -2824,10 +2824,17 @@ namespace BizHawk.Client.EmuHawk UpdateToolsAfter(); } - if (IsSeeking && Global.Emulator.Frame == PauseOnFrame.Value) + if (IsSeeking) { - PauseEmulator(); - PauseOnFrame = null; + if (Global.Emulator.Frame == PauseOnFrame.Value) + { + PauseEmulator(); + PauseOnFrame = null; + } + else if (GlobalWin.Tools.IsLoaded()) + { + GlobalWin.Tools.TAStudio.ReportSeekingProgress(); + } } } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index b15ad1a9d0..dae45074f8 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -45,6 +45,7 @@ namespace BizHawk.Client.EmuHawk private bool _triggerAutoRestore; // If true, autorestore will be called on mouse up private int? _autoRestoreFrame; // The frame auto-restore will restore to, if set private bool? _autoRestorePaused = null; + private int? _seekStartFrame = null; private void JumpToGreenzone() { if (Global.Emulator.Frame > CurrentTasMovie.LastValidFrame) diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs index ddeb65f5ce..1a51108ae8 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs @@ -58,6 +58,7 @@ namespace BizHawk.Client.EmuHawk if (lastState > Emulator.Frame) LoadState(CurrentTasMovie.TasStateManager[lastState]); // STATE ACCESS + _seekStartFrame = Emulator.Frame; GlobalWin.MainForm.UnpauseEmulator(); GlobalWin.MainForm.PauseOnFrame = frame; } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 3eae69c78a..e4d5ebbed5 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -641,6 +641,7 @@ namespace BizHawk.Client.EmuHawk { if (_autoRestoreFrame > Emulator.Frame) // Don't unpause if we are already on the desired frame, else runaway seek { + _seekStartFrame = Emulator.Frame; GlobalWin.MainForm.PauseOnFrame = _autoRestoreFrame; GlobalWin.MainForm.UnpauseEmulator(); } @@ -674,6 +675,7 @@ namespace BizHawk.Client.EmuHawk { if (GlobalWin.MainForm.EmulatorPaused || GlobalWin.MainForm.IsSeeking) // make seek frame keep up with emulation on fast scrolls { + _seekStartFrame = Emulator.Frame; GlobalWin.MainForm.PauseOnFrame = frame; GlobalWin.MainForm.UnpauseEmulator(); } @@ -705,6 +707,17 @@ namespace BizHawk.Client.EmuHawk BookMarkControl.RemoveBranchExtrenal(); } + public void ReportSeekingProgress() + { + if (_seekStartFrame.HasValue) + { + CurrentTasMovie.ReportProgress((double)100d / + (GlobalWin.MainForm.PauseOnFrame.Value - _seekStartFrame.Value) * + (Global.Emulator.Frame - _seekStartFrame.Value)); + RefreshDialog(); + } + } + private void UpdateOtherTools() // a hack probably, surely there is a better way to do this { _hackyDontUpdate = true; From 7779b2f7dbd863bbde48499eb7caff4cbaea9477 Mon Sep 17 00:00:00 2001 From: Hathor86 Date: Thu, 10 Dec 2015 00:33:43 +0100 Subject: [PATCH 010/106] Fix RamSearch value Fix has been done on constructor of each watch. Call GetByte / Word / DWord if value is 0. It ensure that previous passed in parameters remains unchanged --- BizHawk.Client.Common/tools/Watch/ByteWatch.cs | 9 ++++++++- BizHawk.Client.Common/tools/Watch/DwordWatch.cs | 9 ++++++++- BizHawk.Client.Common/tools/Watch/WordWatch.cs | 9 ++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/BizHawk.Client.Common/tools/Watch/ByteWatch.cs b/BizHawk.Client.Common/tools/Watch/ByteWatch.cs index 18b62e4078..d9d592f0c4 100644 --- a/BizHawk.Client.Common/tools/Watch/ByteWatch.cs +++ b/BizHawk.Client.Common/tools/Watch/ByteWatch.cs @@ -38,7 +38,14 @@ namespace BizHawk.Client.Common internal ByteWatch(MemoryDomain domain, long address, DisplayType type, bool bigEndian, string note, byte value, byte previous, int changeCount) : base(domain, address, WatchSize.Byte, type, bigEndian, note) { - this._value = value; + if (value == 0) + { + value = GetByte(); + } + else + { + this._value = value; + } this._previous = previous; this._changecount = changeCount; } diff --git a/BizHawk.Client.Common/tools/Watch/DwordWatch.cs b/BizHawk.Client.Common/tools/Watch/DwordWatch.cs index 860aad7ee7..ac589e4488 100644 --- a/BizHawk.Client.Common/tools/Watch/DwordWatch.cs +++ b/BizHawk.Client.Common/tools/Watch/DwordWatch.cs @@ -38,7 +38,14 @@ namespace BizHawk.Client.Common internal DWordWatch(MemoryDomain domain, long address, DisplayType type, bool bigEndian, string note, uint value, uint previous, int changeCount) : base(domain, address, WatchSize.DWord, type, bigEndian, note) { - this._value = value; + if (value == 0) + { + value = GetDWord(); + } + else + { + this._value = value; + } this._previous = previous; this._changecount = changeCount; } diff --git a/BizHawk.Client.Common/tools/Watch/WordWatch.cs b/BizHawk.Client.Common/tools/Watch/WordWatch.cs index d0e393be9c..f8251f2963 100644 --- a/BizHawk.Client.Common/tools/Watch/WordWatch.cs +++ b/BizHawk.Client.Common/tools/Watch/WordWatch.cs @@ -38,7 +38,14 @@ namespace BizHawk.Client.Common internal WordWatch(MemoryDomain domain, long address, DisplayType type, bool bigEndian, string note, ushort value, ushort previous, int changeCount) : base(domain, address, WatchSize.Word, type, bigEndian, note) { - this._value = value; + if (value == 0) + { + value = GetWord(); + } + else + { + this._value = value; + } this._previous = previous; this._changecount = changeCount; } From 938b0a63dea4963504efdeca5978401fe7c2e621 Mon Sep 17 00:00:00 2001 From: Connor Olding Date: Wed, 9 Dec 2015 20:32:21 -0800 Subject: [PATCH 011/106] Fix path to ffmpeg.exe --- BizHawk.Client.EmuHawk/AVOut/FFmpegWriter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BizHawk.Client.EmuHawk/AVOut/FFmpegWriter.cs b/BizHawk.Client.EmuHawk/AVOut/FFmpegWriter.cs index 517f0c3265..51d7d08db1 100644 --- a/BizHawk.Client.EmuHawk/AVOut/FFmpegWriter.cs +++ b/BizHawk.Client.EmuHawk/AVOut/FFmpegWriter.cs @@ -82,7 +82,7 @@ namespace BizHawk.Client.EmuHawk { ffmpeg = new Process(); #if WINDOWS - ffmpeg.StartInfo.FileName = System.IO.Path.Combine(PathManager.GetDllDirectory(), "dll", "ffmpeg.exe"); + ffmpeg.StartInfo.FileName = System.IO.Path.Combine(PathManager.GetDllDirectory(), "ffmpeg.exe"); #else ffmpeg.StartInfo.FileName = "ffmpeg"; // expecting native version to be in path #endif From 21e25555d08850eb7f4351307813b30cab4d3bc4 Mon Sep 17 00:00:00 2001 From: Hathor86 Date: Thu, 10 Dec 2015 10:25:45 +0100 Subject: [PATCH 012/106] BytWatch ValueString property fix Call GetByte() instead of _value field (like other watches) --- BizHawk.Client.Common/tools/Watch/ByteWatch.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BizHawk.Client.Common/tools/Watch/ByteWatch.cs b/BizHawk.Client.Common/tools/Watch/ByteWatch.cs index d9d592f0c4..f00ff2ac10 100644 --- a/BizHawk.Client.Common/tools/Watch/ByteWatch.cs +++ b/BizHawk.Client.Common/tools/Watch/ByteWatch.cs @@ -288,7 +288,7 @@ namespace BizHawk.Client.Common { get { - return FormatValue(_value); + return FormatValue(GetByte()); } } From a7dd0b2386bbeb927f7c2828d26aa07a28e21bb6 Mon Sep 17 00:00:00 2001 From: Connor Olding Date: Thu, 10 Dec 2015 03:35:12 -0800 Subject: [PATCH 013/106] Adjust Registered Functions window: anchors, minimum size --- .../tools/Lua/LuaRegisteredFunctionsList.Designer.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaRegisteredFunctionsList.Designer.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaRegisteredFunctionsList.Designer.cs index d52452ae15..8d14a59114 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaRegisteredFunctionsList.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaRegisteredFunctionsList.Designer.cs @@ -107,6 +107,7 @@ // // RemoveButton // + this.RemoveButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.RemoveButton.Enabled = false; this.RemoveButton.Location = new System.Drawing.Point(93, 284); this.RemoveButton.Name = "RemoveButton"; @@ -140,6 +141,7 @@ // // RemoveAllBtn // + this.RemoveAllBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.RemoveAllBtn.Enabled = false; this.RemoveAllBtn.Location = new System.Drawing.Point(174, 284); this.RemoveAllBtn.Name = "RemoveAllBtn"; @@ -161,7 +163,7 @@ this.Controls.Add(this.FunctionView); this.Controls.Add(this.OK); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MinimumSize = new System.Drawing.Size(200, 50); + this.MinimumSize = new System.Drawing.Size(360, 150); this.Name = "LuaRegisteredFunctionsList"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Active Registered Functions"; From 053b260929f781afead2b5c131f158a7068d03fa Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 10 Dec 2015 05:47:11 -0600 Subject: [PATCH 014/106] fix console log noise from recent revision to throttle --- BizHawk.Client.EmuHawk/Throttle.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BizHawk.Client.EmuHawk/Throttle.cs b/BizHawk.Client.EmuHawk/Throttle.cs index ccc688004b..8ae8117998 100644 --- a/BizHawk.Client.EmuHawk/Throttle.cs +++ b/BizHawk.Client.EmuHawk/Throttle.cs @@ -58,7 +58,7 @@ namespace BizHawk.Client.EmuHawk //notably, if we're frame-advancing, we should be paused. if (signal_paused && !signal_continuousframeAdvancing) { - Console.WriteLine("THE THING: {0} {1}", signal_paused ,signal_continuousframeAdvancing); + //Console.WriteLine("THE THING: {0} {1}", signal_paused ,signal_continuousframeAdvancing); skipnextframe = false; framesskipped = 0; framestoskip = 0; From 0218d6d3219dd38fb7bd77e08b5f957aa4a966bc Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 10 Dec 2015 06:08:00 -0600 Subject: [PATCH 015/106] fix toolbox --- BizHawk.Client.EmuHawk/tools/ToolBox.cs | 52 +++++++++++-------------- 1 file changed, 23 insertions(+), 29 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/ToolBox.cs b/BizHawk.Client.EmuHawk/tools/ToolBox.cs index 3105a711ff..1755fedef5 100644 --- a/BizHawk.Client.EmuHawk/tools/ToolBox.cs +++ b/BizHawk.Client.EmuHawk/tools/ToolBox.cs @@ -55,43 +55,37 @@ namespace BizHawk.Client.EmuHawk { ToolBoxStrip.Items.Clear(); - var availableTools = Assembly - .GetAssembly(typeof(IToolForm)) - .GetTypes() - .Where(t => typeof(IToolForm).IsAssignableFrom(t)) - .Where(t => typeof(Form).IsAssignableFrom(t)) - .Where(t => !(typeof(ToolBox).IsAssignableFrom(t))) - .Where(t => VersionInfo.DeveloperBuild ? true : !(t.GetCustomAttributes(false) - .OfType().Any(a => !a.Released))) - .Where(t => !(t == typeof(GBGameGenie))) // Hack, this tool is specific to a system id and a sub-system (gb and gg) we have no reasonable way to declare a dependency like that - .Where(t => BizHawk.Emulation.Common.ServiceInjector.IsAvailable(Global.Emulator.ServiceProvider, t)) - .Select(t => Activator.CreateInstance(t)) - .Select(instance => new - { - Type = instance.GetType(), - Instance = instance, - Icon = (instance as Form).Icon.ToBitmap(), - Text = (instance as Form).Text, - ShowIcon = (instance as Form).ShowIcon - }) - .ToList(); - - foreach (var tool in availableTools) + foreach (var t in Assembly.GetAssembly(GetType()).GetTypes()) { - var t = new ToolStripButton + if (!typeof(IToolForm).IsAssignableFrom(t)) + continue; + if (!typeof(Form).IsAssignableFrom(t)) + continue; + if (typeof(ToolBox).IsAssignableFrom(t)) //yo dawg i head you like toolboxes + continue; + if (VersionInfo.DeveloperBuild && t.GetCustomAttributes(false).OfType().Any(a => !a.Released)) + continue; + if (t == typeof(GBGameGenie)) // Hack, this tool is specific to a system id and a sub-system (gb and gg) we have no reasonable way to declare a dependency like that + continue; + if (!BizHawk.Emulation.Common.ServiceInjector.IsAvailable(Global.Emulator.ServiceProvider, t)) + continue; + + var instance = Activator.CreateInstance(t); + + var tsb = new ToolStripButton { - Image = tool.Icon, - Text = tool.Text, - DisplayStyle = tool.ShowIcon ? ToolStripItemDisplayStyle.Image : ToolStripItemDisplayStyle.Text + Image = (instance as Form).Icon.ToBitmap(), + Text = (instance as Form).Text, + DisplayStyle = (instance as Form).ShowIcon ? ToolStripItemDisplayStyle.Image : ToolStripItemDisplayStyle.Text }; - t.Click += (o, e) => + tsb.Click += (o, e) => { - GlobalWin.Tools.Load(tool.Type); + GlobalWin.Tools.Load(t); Close(); }; - ToolBoxStrip.Items.Add(t); + ToolBoxStrip.Items.Add(tsb); } } From f40b2acd4764357b3a91d9198599c1b3661db60d Mon Sep 17 00:00:00 2001 From: hegyak Date: Thu, 10 Dec 2015 04:52:45 -0800 Subject: [PATCH 016/106] Comment a MessageBox out. --- BizHawk.Client.EmuHawk/tools/GameShark.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BizHawk.Client.EmuHawk/tools/GameShark.cs b/BizHawk.Client.EmuHawk/tools/GameShark.cs index c0db063397..9c5bb83c6e 100644 --- a/BizHawk.Client.EmuHawk/tools/GameShark.cs +++ b/BizHawk.Client.EmuHawk/tools/GameShark.cs @@ -430,7 +430,7 @@ namespace BizHawk.Client.EmuHawk return; } parseString = RAMValue; - MessageBox.Show(parseString); + //MessageBox.Show(parseString); parseString = RAMValue.Remove(4, 4); //Is it a Word or Double Word? if (parseString == "0000") From a9b094c11baf6167db3613b6cf5048038fb239cf Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 10 Dec 2015 06:34:06 -0600 Subject: [PATCH 017/106] fix path config window size (too small for global, looks bad) --- .../config/PathConfig.Designer.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/BizHawk.Client.EmuHawk/config/PathConfig.Designer.cs b/BizHawk.Client.EmuHawk/config/PathConfig.Designer.cs index 9c32d716cf..a6eb35f5ad 100644 --- a/BizHawk.Client.EmuHawk/config/PathConfig.Designer.cs +++ b/BizHawk.Client.EmuHawk/config/PathConfig.Designer.cs @@ -41,7 +41,7 @@ // Ok // this.Ok.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.Ok.Location = new System.Drawing.Point(471, 411); + this.Ok.Location = new System.Drawing.Point(616, 505); this.Ok.Name = "Ok"; this.Ok.Size = new System.Drawing.Size(75, 23); this.Ok.TabIndex = 0; @@ -53,7 +53,7 @@ // this.Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel.Location = new System.Drawing.Point(552, 411); + this.Cancel.Location = new System.Drawing.Point(697, 505); this.Cancel.Name = "Cancel"; this.Cancel.Size = new System.Drawing.Size(75, 23); this.Cancel.TabIndex = 1; @@ -70,13 +70,13 @@ this.PathTabControl.Multiline = true; this.PathTabControl.Name = "PathTabControl"; this.PathTabControl.SelectedIndex = 0; - this.PathTabControl.Size = new System.Drawing.Size(615, 364); + this.PathTabControl.Size = new System.Drawing.Size(760, 458); this.PathTabControl.TabIndex = 2; // // SaveBtn // this.SaveBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.SaveBtn.Location = new System.Drawing.Point(12, 411); + this.SaveBtn.Location = new System.Drawing.Point(12, 505); this.SaveBtn.Name = "SaveBtn"; this.SaveBtn.Size = new System.Drawing.Size(75, 23); this.SaveBtn.TabIndex = 3; @@ -88,7 +88,7 @@ // this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(527, 19); + this.label1.Location = new System.Drawing.Point(672, 19); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(97, 13); this.label1.TabIndex = 210; @@ -98,7 +98,7 @@ // this.SpecialCommandsBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.SpecialCommandsBtn.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Help; - this.SpecialCommandsBtn.Location = new System.Drawing.Point(496, 14); + this.SpecialCommandsBtn.Location = new System.Drawing.Point(641, 14); this.SpecialCommandsBtn.Name = "SpecialCommandsBtn"; this.SpecialCommandsBtn.Size = new System.Drawing.Size(26, 23); this.SpecialCommandsBtn.TabIndex = 209; @@ -119,7 +119,7 @@ // DefaultsBtn // this.DefaultsBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.DefaultsBtn.Location = new System.Drawing.Point(93, 411); + this.DefaultsBtn.Location = new System.Drawing.Point(93, 505); this.DefaultsBtn.Name = "DefaultsBtn"; this.DefaultsBtn.Size = new System.Drawing.Size(75, 23); this.DefaultsBtn.TabIndex = 211; @@ -133,7 +133,7 @@ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.Cancel; - this.ClientSize = new System.Drawing.Size(639, 446); + this.ClientSize = new System.Drawing.Size(784, 540); this.Controls.Add(this.DefaultsBtn); this.Controls.Add(this.label1); this.Controls.Add(this.SpecialCommandsBtn); From 282795aa815331adebf34183ed0967277bef6a04 Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 10 Dec 2015 06:57:02 -0600 Subject: [PATCH 018/106] do some tidying of build script, add an ExternalTool example to it --- Dist/BuildAndPackage.bat | 14 +++++++++++--- Dist/HelloWorld_BizHawkTool.dll | Bin 0 -> 8704 bytes 2 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 Dist/HelloWorld_BizHawkTool.dll diff --git a/Dist/BuildAndPackage.bat b/Dist/BuildAndPackage.bat index e67b5f72c7..07b66fd005 100644 --- a/Dist/BuildAndPackage.bat +++ b/Dist/BuildAndPackage.bat @@ -32,16 +32,18 @@ rem explicitly list the OK ones here as individual copies. until then.... copy *.dll dll -..\dist\zip.exe -X -r ..\Dist\%NAME% EmuHawk.exe DiscoHawk.exe defctrl.json dll shaders Tools gamedb NES\Palettes Lua Gameboy\Palettes -x *.pdb -x *.lib -x *.pgd -x *.exp -x dll\libsneshawk-64*.exe -x *.ilk +rem Now, we're about to zip and then unzip. Why, you ask? Because that's just the way this evolved. +..\dist\zip.exe -X -r ..\Dist\%NAME% EmuHawk.exe DiscoHawk.exe defctrl.json dll shaders gamedb NES\Palettes Lua Gameboy\Palettes -x *.pdb -x *.lib -x *.pgd -x *.ipdb -x *.iobj -x *.exp -x dll\libsneshawk-64*.exe -x *.ilk -x dll\gpgx.elf -x dll\miniclient.* -x dll\*.xml cd ..\Dist .\unzip.exe %NAME% -d temp del %NAME% +rem Remove things we can't allow the user's junky files to pollute the dist with. We'll export fresh copies from git rmdir /s /q temp\lua rmdir /s /q temp\firmware -rmdir /s /q gitsucks +rmdir /s /q gitsucks git --git-dir ../.git archive --format zip --output lua.zip master output/Lua git --git-dir ../.git archive --format zip --output firmware.zip master output/Firmware unzip lua.zip -d gitsucks @@ -53,15 +55,21 @@ move gitsucks\output\Firmware temp rmdir /s /q gitsucks - cd temp rem remove UPX from any files we have checked in, because people's lousy security software hates it upx -d dll\*.dll upx -d dll\*.exe upx -d *.exe + +rem Patch up working dir with a few other things we want +mkdir ExternalTools +copy ..\HelloWorld_BizHawkTool.dll ExternalTools + +rem Build the final zip ..\zip.exe -X -9 -r ..\%NAME% . -i \* cd .. +rem DONE! rmdir /s /q temp goto END diff --git a/Dist/HelloWorld_BizHawkTool.dll b/Dist/HelloWorld_BizHawkTool.dll new file mode 100644 index 0000000000000000000000000000000000000000..a8402175070b1e65168312c18d7acc4bcbd2b6fd GIT binary patch literal 8704 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 literal 0 HcmV?d00001 From fcace003fbf4371b3635caeeb03b2d4a15094888 Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 10 Dec 2015 07:04:52 -0600 Subject: [PATCH 019/106] update changelog (still needs TAStudio edits) --- Dist/changelog.txt | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/Dist/changelog.txt b/Dist/changelog.txt index ea2e21dfd0..4cdccdc01e 100644 --- a/Dist/changelog.txt +++ b/Dist/changelog.txt @@ -3,37 +3,46 @@ next ========================================= *EmuHawk -**Add libretro player, compatible with selected cores +**Add libretro player, compatible with selected cores (check wiki) +**Add External Tool system for c#-based tool plugins **Support Code-Data Logger for GB/GBC, SMS/GG, SNES, and Genesis -**Add GameShark cheat converter for N64, GB/GBC, Saturn, GBA, PSX; Action Replay for SMS, SNES, Genesis, GBA; Game Genie for Genesis, SNES, GG, NES **Cheat Dialog: Fix flakiness in value-editing **Add custom exception display box, so exception info can be clipboarded out **Improve main OSD font -**Stop FP precision conflicts between lua scripts and D3D Display method -**DispMethod D3D: More leniency in compilation of optional shaders (so it's able to run on more low spec systems) -**Improvements to Retro shader compatibility **Validate user shaders at selection time **Support user custom AR selection **Add --load-state commandline **Streamline editing RAM Watches **Tidy main form context menu **Add more options for U+D/L+R forbid/mutex +**Fix Ram Search, Ram Watch, Cheats recent file lists +**Fix ffmpeg path for AV writer broken a couple of releases ago +**Fix toolbox +**Improvements to Retro shader compatibility +**DispMethod D3D: Stop FP precision conflicts with lua scripts +**DispMethod D3D: More leniency in compilation of optional shaders (so it's able to run on more low spec systems) **Fix #525 - Memorywatch hex textbox now remembers values across memdomain switches **Fix #526 - Hex editor repainting fails and garbage rendering **Fix #535 - domain list does not update when changing cores **Fix #537 - Annoyance with "always on top" **Fix #541 - Heavy CPU usage when emulation is paused -**Tastudio (TODO - editorialize this section) -***color stated frames on WasLag too. -***don't truncate LagLog if the branch's one is shorter, but input is the same. -***clean up garbage lua text and drawings. -***put branch states to a separate greenzone file. -***tsm never actually uses currentBranch, so why should it have it? -***last preparation before new tasproject entry. -***save/load TasSession variables in .tasproj. -***update RowCount before scrolling to frame. -***account for mouse speed when advancing/rewinding. +**Cheats +***Add GameShark converter for N64, GB/GBC, Saturn, GBA, PSX +***Add Action Replay converter for SMS, SNES, Genesis, GBA +***Add Game Genie converter for Genesis, SNES, GG, NES + +**Tastudio (TODO - feos adelikat write about it) +***Color stated frames on WasLag too. +***Don't truncate LagLog if the branch's one is shorter, but input is the same. +***Clean up garbage lua text and drawings. +***Put branch states to a separate greenzone file. +***TSM never actually uses currentBranch, so why should it have it? +***Last preparation before new tasproject entry. +***Save/load TasSession variables in .tasproj. +***Update RowCount before scrolling to frame. +***Account for mouse speed when advancing/rewinding. +***Fix ALT+ hotkeys **Basic Bot ***Monospaced input display @@ -56,6 +65,7 @@ next *Genesis **Fix missing scrollbars in VDP viewer +**Fix #543 (support up to 32MB roms) ========================================= 1.11.3 From 753431c94a6546f96544a973c1ae9f187fd14435 Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 10 Dec 2015 07:13:40 -0600 Subject: [PATCH 020/106] SHUT. UP. THE. EXCEPTIONS. IN. TEMP. FILE. MANAGER. --- BizHawk.Common/BizHawk.Common.csproj | 4 ++-- BizHawk.Common/TempFileManager.cs | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/BizHawk.Common/BizHawk.Common.csproj b/BizHawk.Common/BizHawk.Common.csproj index eaeabf9830..2fe7d6586c 100644 --- a/BizHawk.Common/BizHawk.Common.csproj +++ b/BizHawk.Common/BizHawk.Common.csproj @@ -18,7 +18,7 @@ full false ..\output\dll\ - DEBUG;TRACE + TRACE;DEBUG;WINDOWS prompt 4 x86 @@ -28,7 +28,7 @@ pdbonly true ..\output\dll\ - TRACE + TRACE;WINDOWS prompt 4 x86 diff --git a/BizHawk.Common/TempFileManager.cs b/BizHawk.Common/TempFileManager.cs index 895c9fef6e..97afd7c06d 100644 --- a/BizHawk.Common/TempFileManager.cs +++ b/BizHawk.Common/TempFileManager.cs @@ -1,5 +1,6 @@ using System; -using System.IO; +using System.IO; +using System.Runtime.InteropServices; namespace BizHawk.Common { @@ -41,7 +42,12 @@ namespace BizHawk.Common thread.Priority = System.Threading.ThreadPriority.Lowest; thread.Start(); } - } + } + + #if WINDOWS + [DllImport("kernel32.dll", EntryPoint = "DeleteFileW", SetLastError = true, CharSet = CharSet.Unicode, ExactSpelling = true)] + static extern bool DeleteFileW([MarshalAs(UnmanagedType.LPWStr)]string lpFileName); + #endif static void ThreadProc() { @@ -53,7 +59,12 @@ namespace BizHawk.Common { try { + //SHUT. UP. THE. EXCEPTIONS. + #if WINDOWS + DeleteFileW(fi.FullName); + #else fi.Delete(); + #endif } catch { From 48bf9616dba66afef87d86eff4f848cf89fc03ab Mon Sep 17 00:00:00 2001 From: zeromus Date: Sat, 12 Dec 2015 13:25:59 -0600 Subject: [PATCH 021/106] fix --fullscreen and fullscreenOnLoad options --- BizHawk.Client.EmuHawk/MainForm.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index f8a5d5b6bd..943128d917 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -405,7 +405,7 @@ namespace BizHawk.Client.EmuHawk if (startFullscreen || Global.Config.StartFullscreen) { - ToggleFullscreen(); + _needsFullscreenOnLoad = true; } if (!Global.Game.IsNullInstance) @@ -464,9 +464,23 @@ namespace BizHawk.Client.EmuHawk public void ProgramRunLoop() { - CheckMessages(); + CheckMessages(); //can someone leave a note about why this is needed? LogConsole.PositionConsole(); + //needs to be done late, after the log console snaps on top + //fullscreen should snap on top even harder! + if (_needsFullscreenOnLoad) + { + _needsFullscreenOnLoad = false; + ToggleFullscreen(); + } + + //incantation required to get the program reliably on top of the console window + //we might want it in ToggleFullscreen later, but here, it needs to happen regardless + BringToFront(); + Activate(); + BringToFront(); + for (;;) { Input.Instance.Update(); @@ -1330,6 +1344,7 @@ namespace BizHawk.Client.EmuHawk private bool _cursorHidden; private bool _inFullscreen; private Point _windowedLocation; + private bool _needsFullscreenOnLoad; private int _autoDumpLength; private readonly bool _autoCloseOnDump; From c1e70077c8f25f3fde02432d1489c7b0c2deb75f Mon Sep 17 00:00:00 2001 From: feos Date: Sat, 12 Dec 2015 22:11:36 +0300 Subject: [PATCH 022/106] instafix #546 --- BizHawk.Client.Common/lua/EmuLuaLibrary.Memory.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BizHawk.Client.Common/lua/EmuLuaLibrary.Memory.cs b/BizHawk.Client.Common/lua/EmuLuaLibrary.Memory.cs index 6a9a4c3c12..1972a0b0a1 100644 --- a/BizHawk.Client.Common/lua/EmuLuaLibrary.Memory.cs +++ b/BizHawk.Client.Common/lua/EmuLuaLibrary.Memory.cs @@ -7,7 +7,7 @@ using BizHawk.Emulation.Common.IEmulatorExtensions; namespace BizHawk.Client.Common { - [Description("These functions behavior identically to the mainmemory functions but the user can set the memory domain to read and write from. The default domain is main memory. Use getcurrentmemorydomain(), and setcurrentmemorydomain() to control which domain is used. Each core has its own set of valid memory domains. Use getmemorydomainlist() to get a list of memory domains for the current core loaded.")] + [Description("These functions behavior identically to the mainmemory functions but the user can set the memory domain to read and write from. The default domain is main memory. Use getcurrentmemorydomain(), and usememorydomain() to control which domain is used. Each core has its own set of valid memory domains. Use getmemorydomainlist() to get a list of memory domains for the current core loaded.")] public sealed class MemoryLuaLibrary : LuaMemoryBase { //private int _currentMemoryDomain; // Main memory by default probably (index 0 is currently always main memory but may never be) From 2535207a403b6af282d438f842209a5e6d0f021a Mon Sep 17 00:00:00 2001 From: feos Date: Sat, 12 Dec 2015 23:59:55 +0300 Subject: [PATCH 023/106] tastudio: actually implement seeking progressbar. --- BizHawk.Client.EmuHawk/MainForm.cs | 13 ++-- .../tools/TAStudio/TAStudio.ListView.cs | 26 ++++++- .../tools/TAStudio/TAStudio.Navigation.cs | 4 +- .../tools/TAStudio/TAStudio.cs | 67 +++++++++++++------ 4 files changed, 78 insertions(+), 32 deletions(-) diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 943128d917..037e451dca 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -2839,16 +2839,13 @@ namespace BizHawk.Client.EmuHawk UpdateToolsAfter(); } - if (IsSeeking) + if (IsSeeking && Global.Emulator.Frame == PauseOnFrame.Value) { - if (Global.Emulator.Frame == PauseOnFrame.Value) + PauseEmulator(); + PauseOnFrame = null; + if (GlobalWin.Tools.IsLoaded()) { - PauseEmulator(); - PauseOnFrame = null; - } - else if (GlobalWin.Tools.IsLoaded()) - { - GlobalWin.Tools.TAStudio.ReportSeekingProgress(); + GlobalWin.Tools.TAStudio.StopSeeking(); } } } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index dae45074f8..8f9e89dd16 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -46,6 +46,7 @@ namespace BizHawk.Client.EmuHawk private int? _autoRestoreFrame; // The frame auto-restore will restore to, if set private bool? _autoRestorePaused = null; private int? _seekStartFrame = null; + private void JumpToGreenzone() { if (Global.Emulator.Frame > CurrentTasMovie.LastValidFrame) @@ -58,11 +59,32 @@ namespace BizHawk.Client.EmuHawk } GoToLastEmulatedFrameIfNecessary(CurrentTasMovie.LastValidFrame); - GlobalWin.MainForm.PauseOnFrame = _autoRestoreFrame; - GlobalWin.MainForm.PauseEmulator(); + StartSeeking(_autoRestoreFrame, true); } } + private void StartSeeking(int? frame, bool pause = false) + { + if (!frame.HasValue) + return; + + _seekStartFrame = Emulator.Frame; + GlobalWin.MainForm.PauseOnFrame = frame.Value; + + if (pause) + GlobalWin.MainForm.PauseEmulator(); + else + GlobalWin.MainForm.UnpauseEmulator(); + + if (!_seekBackgroundWorker.IsBusy) + _seekBackgroundWorker.RunWorkerAsync(); + } + + public void StopSeeking() + { + _seekBackgroundWorker.CancelAsync(); + } + // public static Color CurrentFrame_FrameCol = Color.FromArgb(0xCFEDFC); Why? public static Color CurrentFrame_InputLog = Color.FromArgb(0xB5E7F7); diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs index 1a51108ae8..43fcf6d34f 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs @@ -58,9 +58,7 @@ namespace BizHawk.Client.EmuHawk if (lastState > Emulator.Frame) LoadState(CurrentTasMovie.TasStateManager[lastState]); // STATE ACCESS - _seekStartFrame = Emulator.Frame; - GlobalWin.MainForm.UnpauseEmulator(); - GlobalWin.MainForm.PauseOnFrame = frame; + StartSeeking(frame); } } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index e4d5ebbed5..c42d350a1c 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -26,6 +26,7 @@ namespace BizHawk.Client.EmuHawk private readonly List _tasClipboard = new List(); private BackgroundWorker _saveBackgroundWorker; + private BackgroundWorker _seekBackgroundWorker; private MovieEndAction _originalEndAction; // The movie end behavior selected by the user (that is overridden by TAStudio) private Dictionary GenerateColumnNames() @@ -127,6 +128,7 @@ namespace BizHawk.Client.EmuHawk this.SavingProgressBar.Visible = false; InitializeSaveWorker(); + InitializeSeekWorker(); WantsToControlStopMovie = true; TasPlaybackBox.Tastudio = this; @@ -178,6 +180,50 @@ namespace BizHawk.Client.EmuHawk CurrentTasMovie.NewBGWorker(_saveBackgroundWorker); } + private void InitializeSeekWorker() + { + if (_seekBackgroundWorker != null) + { + _seekBackgroundWorker.Dispose(); + _seekBackgroundWorker = null; // Idk if this line is even useful. + } + + _seekBackgroundWorker = new BackgroundWorker(); + _seekBackgroundWorker.WorkerReportsProgress = true; + _seekBackgroundWorker.WorkerSupportsCancellation = true; + + _seekBackgroundWorker.DoWork += (s, e) => + { + this.Invoke(() => this.MessageStatusLabel.Text = "Seeking..."); + this.Invoke(() => this.SavingProgressBar.Visible = true); + for ( ; ; ) + { + if (_seekBackgroundWorker.CancellationPending) + { + e.Cancel = true; + break; + } + double progress = (double)100d / + (GlobalWin.MainForm.PauseOnFrame.Value - _seekStartFrame.Value) * + (Global.Emulator.Frame - _seekStartFrame.Value); + _seekBackgroundWorker.ReportProgress((int)progress); + System.Threading.Thread.Sleep(1); + } + }; + + _seekBackgroundWorker.ProgressChanged += (s, e) => + { + SavingProgressBar.Value = e.ProgressPercentage; + }; + + _seekBackgroundWorker.RunWorkerCompleted += (s, e) => + { + this.Invoke(() => this.SavingProgressBar.Visible = false); + this.Invoke(() => this.MessageStatusLabel.Text = ""); + InitializeSeekWorker(); // Required, or it will error when trying to report progress again. + }; + } + private bool _initialized = false; private void Tastudio_Load(object sender, EventArgs e) { @@ -641,9 +687,7 @@ namespace BizHawk.Client.EmuHawk { if (_autoRestoreFrame > Emulator.Frame) // Don't unpause if we are already on the desired frame, else runaway seek { - _seekStartFrame = Emulator.Frame; - GlobalWin.MainForm.PauseOnFrame = _autoRestoreFrame; - GlobalWin.MainForm.UnpauseEmulator(); + StartSeeking(_autoRestoreFrame); } } else @@ -653,8 +697,6 @@ namespace BizHawk.Client.EmuHawk _autoRestorePaused = null; GlobalWin.MainForm.PauseOnFrame = null; // Cancel seek to autorestore point } - - _autoRestoreFrame = null; } @@ -675,9 +717,7 @@ namespace BizHawk.Client.EmuHawk { if (GlobalWin.MainForm.EmulatorPaused || GlobalWin.MainForm.IsSeeking) // make seek frame keep up with emulation on fast scrolls { - _seekStartFrame = Emulator.Frame; - GlobalWin.MainForm.PauseOnFrame = frame; - GlobalWin.MainForm.UnpauseEmulator(); + StartSeeking(frame); } } } @@ -707,17 +747,6 @@ namespace BizHawk.Client.EmuHawk BookMarkControl.RemoveBranchExtrenal(); } - public void ReportSeekingProgress() - { - if (_seekStartFrame.HasValue) - { - CurrentTasMovie.ReportProgress((double)100d / - (GlobalWin.MainForm.PauseOnFrame.Value - _seekStartFrame.Value) * - (Global.Emulator.Frame - _seekStartFrame.Value)); - RefreshDialog(); - } - } - private void UpdateOtherTools() // a hack probably, surely there is a better way to do this { _hackyDontUpdate = true; From a7074c63416872311f49f6e0f5e419ba114483d5 Mon Sep 17 00:00:00 2001 From: Hathor86 Date: Fri, 4 Dec 2015 14:10:04 +0100 Subject: [PATCH 024/106] ExternalToolManager and BizHawkExternalToolattribute Add those 2 classes in order to help handling of external tools - Also fix value setting in watches constructor - Bugfix in loading externaltools (they loaded multiple times) - Add new version of Hello World external tool Whitespaces noise in RamWatch.cs... :s The code hasn't changed --- .../Attributes/ExternalToolAttribute.cs | 92 ++++++++++ .../BizHawk.Client.ApiHawk.csproj | 16 +- .../Classes/ExternalToolManager.cs | 166 ++++++++++++++++++ .../Resources/ApiClassDiagram.cd | 28 ++- .../tools/Watch/ByteWatch.cs | 4 +- .../tools/Watch/DwordWatch.cs | 2 +- .../tools/Watch/WordWatch.cs | 2 +- BizHawk.Client.EmuHawk/MainForm.Events.cs | 67 ++----- BizHawk.Client.EmuHawk/tools/ToolManager.cs | 4 +- .../tools/Watch/RamWatch.cs | 14 +- Dist/HelloWorld_BizHawkTool.dll | Bin 8704 -> 13824 bytes 11 files changed, 317 insertions(+), 78 deletions(-) create mode 100644 BizHawk.Client.ApiHawk/Attributes/ExternalToolAttribute.cs create mode 100644 BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs diff --git a/BizHawk.Client.ApiHawk/Attributes/ExternalToolAttribute.cs b/BizHawk.Client.ApiHawk/Attributes/ExternalToolAttribute.cs new file mode 100644 index 0000000000..2285079810 --- /dev/null +++ b/BizHawk.Client.ApiHawk/Attributes/ExternalToolAttribute.cs @@ -0,0 +1,92 @@ +using System; + +namespace BizHawk.Client.ApiHawk +{ + /// + /// This class hold logic interraction for the ExternalToolAttribute + /// This attribute helps BizHawk to handle ExternalTools + /// + [AttributeUsage(AttributeTargets.Assembly)] + public class BizHawkExternalToolAttribute : Attribute + { + #region Fields + + private string _Name; + private string _Description; + private string _IconResourceName; + + #endregion + + #region cTor(s) + + /// + /// Initialize a new instance of + /// + /// Tool's name + /// Small description about the tool itself + /// Icon embedded resource name + public BizHawkExternalToolAttribute(string name, string description, string iconResourceName) + { + _Name = name; + _Description = description; + _IconResourceName = iconResourceName; + } + + /// + /// Initialize a new instance of + /// + /// Tool's name + /// Small description about the tool itself + public BizHawkExternalToolAttribute(string name, string description) + : this(name, description, string.Empty) + { } + + /// + /// Initialize a new instance of + /// + /// Tool's name + public BizHawkExternalToolAttribute(string name) + :this(name, string.Empty, string.Empty) + {} + + #endregion + + #region Properties + + /// + /// Gets tool's friendly name + /// + public string Name + { + get + { + return _Name; + } + } + + /// + /// Gets tool's descriptino + /// + public string Description + { + get + { + return _Description; + } + } + + /// + /// Get the name of the embedded resource icon + /// + /// Don't forget to set compile => Embedded reource to the icon file in your project + public string IconResourceName + { + get + { + return _IconResourceName; + } + } + + #endregion + } +} diff --git a/BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj b/BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj index be77f4aead..1ff45588dc 100644 --- a/BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj +++ b/BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj @@ -21,6 +21,8 @@ prompt 4 x86 + + pdbonly @@ -29,6 +31,8 @@ TRACE prompt 4 + + true @@ -38,6 +42,8 @@ x86 prompt MinimumRecommendedRules.ruleset + + ..\output\dll\ @@ -47,10 +53,13 @@ x86 prompt MinimumRecommendedRules.ruleset + + + @@ -59,6 +68,8 @@ + + @@ -76,10 +87,7 @@ BizHawk.Emulation.Common - - - - + diff --git a/BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs b/BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs new file mode 100644 index 0000000000..120df998ec --- /dev/null +++ b/BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs @@ -0,0 +1,166 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Reflection; + +using System.Windows.Forms; +using BizHawk.Client.Common; +using BizHawk.Client.EmuHawk; + +namespace BizHawk.Client.ApiHawk +{ + /// + /// This static class handle all ExternalTools + /// + public static class ExternalToolManager + { + #region Fields + + private static FileSystemWatcher directoryMonitor = new FileSystemWatcher(Global.Config.PathEntries["Global", "External Tools"].Path, "*.dll"); + private static List menuItems = new List(); + + #endregion + + #region cTor(s) + + /// + /// Initilization + /// + static ExternalToolManager() + { + directoryMonitor.IncludeSubdirectories = false; + directoryMonitor.Created += DirectoryMonitor_Created; + + BuildToolStrip(); + } + + #endregion + + #region Methods + + /// + /// Build the toolstrip menu + /// + private static void BuildToolStrip() + { + menuItems.Clear(); + if (Directory.Exists(directoryMonitor.Path)) + { + DirectoryInfo dInfo = new DirectoryInfo(directoryMonitor.Path); + + foreach (FileInfo fi in dInfo.GetFiles("*.dll")) + { + menuItems.Add(GenerateToolTipFromFileName(fi.FullName)); + } + } + } + + /// + /// Generate a from an + /// external tool dll. + /// The assembly must have in its + /// assembly attributes + /// + /// File that will be reflected + /// A new ; assembly path can be found in the Tag property + /// For the moment, you could only load a dll that have a form (which implements ) + private static ToolStripMenuItem GenerateToolTipFromFileName(string fileName) + { + Type customFormType; + Assembly externalToolFile; + ToolStripMenuItem item = null; + try + { + externalToolFile = Assembly.LoadFrom(fileName); + object[] attributes = externalToolFile.GetCustomAttributes(typeof(BizHawkExternalToolAttribute), false); + if (attributes != null && attributes.Count() == 1) + { + BizHawkExternalToolAttribute attribute = (BizHawkExternalToolAttribute)attributes[0]; + item = new ToolStripMenuItem(attribute.Name); + item.ToolTipText = attribute.Description; + if (attribute.IconResourceName != string.Empty) + { + Stream s = externalToolFile.GetManifestResourceStream(string.Format("{0}.{1}", externalToolFile.GetName().Name, attribute.IconResourceName)); + if (s != null) + { + item.Image = new Bitmap(s); + } + } + + customFormType = externalToolFile.GetTypes().FirstOrDefault(t => t != null && t.FullName == "BizHawk.Client.EmuHawk.CustomMainForm"); + if (customFormType == null) + { + item.ToolTipText = "Does not have a CustomMainForm"; + item.Enabled = false; + } + item.Tag = fileName; + } + else + { + item = new ToolStripMenuItem(externalToolFile.GetName().Name); + item.ToolTipText = "BizHawkExternalTool attribute hasn't been found"; + item.Enabled = false; + } + } + catch (BadImageFormatException) + { + item = new ToolStripMenuItem(fileName); + item.ToolTipText = "This is not an assembly"; + item.Enabled = false; + } + +#if DEBUG //I added special debug stuff to get additionnal informations. Don(t think it can be usefull for released versions + catch (ReflectionTypeLoadException ex) + { + foreach (Exception e in ex.LoaderExceptions) + { + Debug.WriteLine(e.Message); + } + item.ToolTipText = "Something goes wrong while trying to load"; + item.Enabled = false; + } +#else + catch (ReflectionTypeLoadException) + { + item.ToolTipText = "Something goes wrong while trying to load"; + item.Enabled = false; + } +#endif + + return item; + } + + /// + /// This event is raised when we add a dll file into + /// the external tools path. + /// It will automatically load the assembly and add it into the list + /// + /// Object that raised the event + /// Event arguments + private static void DirectoryMonitor_Created(object sender, FileSystemEventArgs e) + { + menuItems.Add(GenerateToolTipFromFileName(e.FullPath)); + } + + #endregion + + #region Properties + + /// + /// Gets a prebuild + /// This list auto-updated by the itself + /// + public static IEnumerable ToolStripMenu + { + get + { + return menuItems; + } + } + + #endregion + } +} diff --git a/BizHawk.Client.ApiHawk/Resources/ApiClassDiagram.cd b/BizHawk.Client.ApiHawk/Resources/ApiClassDiagram.cd index f5deb7e503..669f44d4a3 100644 --- a/BizHawk.Client.ApiHawk/Resources/ApiClassDiagram.cd +++ b/BizHawk.Client.ApiHawk/Resources/ApiClassDiagram.cd @@ -1,7 +1,7 @@  - + @@ -9,19 +9,19 @@ - + - + - + - + @@ -36,6 +36,20 @@ + + + + AAAAAQAAAAAAAAAAAAAQAAAAAAgBAAAAAAACAAAAAAI= + Classes\ExternalToolManager.cs + + + + + + AAAAAAAAAAAgAAAAIAAAIAQAAAAAACAEAAAAAAAAAAA= + Attributes\ExternalToolAttribute.cs + + @@ -52,11 +66,11 @@ - + - + diff --git a/BizHawk.Client.Common/tools/Watch/ByteWatch.cs b/BizHawk.Client.Common/tools/Watch/ByteWatch.cs index f00ff2ac10..f5ecd6204b 100644 --- a/BizHawk.Client.Common/tools/Watch/ByteWatch.cs +++ b/BizHawk.Client.Common/tools/Watch/ByteWatch.cs @@ -40,7 +40,7 @@ namespace BizHawk.Client.Common { if (value == 0) { - value = GetByte(); + this._value = GetByte(); } else { @@ -52,7 +52,7 @@ namespace BizHawk.Client.Common #endregion - #region Methods + #region Methods /// /// Enumerate wich are valid for a diff --git a/BizHawk.Client.Common/tools/Watch/DwordWatch.cs b/BizHawk.Client.Common/tools/Watch/DwordWatch.cs index ac589e4488..afc57b1cf7 100644 --- a/BizHawk.Client.Common/tools/Watch/DwordWatch.cs +++ b/BizHawk.Client.Common/tools/Watch/DwordWatch.cs @@ -40,7 +40,7 @@ namespace BizHawk.Client.Common { if (value == 0) { - value = GetDWord(); + this._value = GetDWord(); } else { diff --git a/BizHawk.Client.Common/tools/Watch/WordWatch.cs b/BizHawk.Client.Common/tools/Watch/WordWatch.cs index f8251f2963..b8e1268ce3 100644 --- a/BizHawk.Client.Common/tools/Watch/WordWatch.cs +++ b/BizHawk.Client.Common/tools/Watch/WordWatch.cs @@ -40,7 +40,7 @@ namespace BizHawk.Client.Common { if (value == 0) { - value = GetWord(); + this._value = GetWord(); } else { diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index cd096ea1d9..f7a1f38488 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -23,6 +23,7 @@ using BizHawk.Client.EmuHawk.CustomControls; using BizHawk.Client.EmuHawk.WinFormExtensions; using BizHawk.Client.EmuHawk.ToolExtensions; using BizHawk.Emulation.Cores.Computers.AppleII; +using BizHawk.Client.ApiHawk; namespace BizHawk.Client.EmuHawk { @@ -1257,65 +1258,23 @@ namespace BizHawk.Client.EmuHawk private void ExternalToolToolStripMenuItem_DropDownOpening(object sender, EventArgs e) { externalToolToolStripMenuItem.DropDownItems.Clear(); - string path = Path.Combine(Global.Config.PathEntries["Global", "External Tools"].Path); - if (Directory.Exists(path)) + + foreach(ToolStripMenuItem item in ExternalToolManager.ToolStripMenu) { - DirectoryInfo dInfo = new DirectoryInfo(path); - Type[] assemblyTypes; - Assembly externalToolFile; - foreach (FileInfo fi in dInfo.GetFiles("*.dll")) + if(item.Enabled) { - try + item.Click += delegate { - //externalToolFile = Assembly.ReflectionOnlyLoadFrom(fi.FullName); - externalToolFile = Assembly.LoadFrom(fi.FullName); - } - catch (BadImageFormatException) - { - ToolStripMenuItem item = new ToolStripMenuItem(fi.Name, Properties.Resources.ExclamationRed); - item.ToolTipText = "This is not an assembly"; - item.ForeColor = Color.Gray; - externalToolToolStripMenuItem.DropDownItems.Add(item); - continue; - } - - ToolStripMenuItem externalToolMenu = new ToolStripMenuItem(externalToolFile.GetName().Name); - - /* - The reason of using this ugly try catch is due to the use of ReflectionOnlyLoadFrom methods - When the assembly is loaded this way, referenced assemblies are not loaded and so, as soon as a type - existing in another assembly, it raises the exception. - - But the advantage of this is that memory footprint is reduced - - EDIT: In fact, I have some trouble when loading Reflection only... moved to regular load - */ - try - { - assemblyTypes = externalToolFile.GetTypes().Where(t => t != null && t.FullName == "BizHawk.Client.EmuHawk.CustomMainForm").ToArray(); - } - catch (ReflectionTypeLoadException ex) - { - assemblyTypes = ex.Types.Where(t => t != null && t.FullName.Contains("BizHawk.Client.EmuHawk.CustomMainForm")).ToArray(); - } - - if (assemblyTypes.Count() == 1) - { - externalToolMenu.Image = Properties.Resources.Debugger; - externalToolMenu.Tag = fi.FullName; - externalToolMenu.Click += delegate (object sender2, EventArgs e2) - { - GlobalWin.Tools.Load(fi.FullName); - }; - } - else - { - externalToolMenu.Image = Properties.Resources.ExclamationRed; - externalToolMenu.ForeColor = Color.Gray; - } - externalToolToolStripMenuItem.DropDownItems.Add(externalToolMenu); + GlobalWin.Tools.Load((string)item.Tag); + }; } + else + { + item.Image = Properties.Resources.ExclamationRed; + } + externalToolToolStripMenuItem.DropDownItems.Add(item); } + if (externalToolToolStripMenuItem.DropDownItems.Count == 0) { externalToolToolStripMenuItem.DropDownItems.Add("None"); diff --git a/BizHawk.Client.EmuHawk/tools/ToolManager.cs b/BizHawk.Client.EmuHawk/tools/ToolManager.cs index 626182c719..8687179ae5 100644 --- a/BizHawk.Client.EmuHawk/tools/ToolManager.cs +++ b/BizHawk.Client.EmuHawk/tools/ToolManager.cs @@ -91,7 +91,7 @@ namespace BizHawk.Client.EmuHawk T existingTool = (T)_tools.FirstOrDefault(x => x is T); - if (existingTool != null && typeof(T) != typeof(IExternalToolForm)) + if (existingTool != null) { if (existingTool.IsDisposed) { @@ -572,7 +572,7 @@ namespace BizHawk.Client.EmuHawk try { tool = Activator.CreateInstanceFrom(dllPath, "BizHawk.Client.EmuHawk.CustomMainForm").Unwrap() as IExternalToolForm; - if (tool == null) + if (tool == null) { MessageBox.Show("It seems that the object CustomMainForm does not implement IExternalToolForm. Please review the code.", "No, no, no. Wrong Way !", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return null; diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs index e489cc87bb..80d2d3e11c 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs @@ -280,7 +280,7 @@ namespace BizHawk.Client.EmuHawk { get { - foreach(var watch in _watches) + foreach (var watch in _watches) { if (watch.IsSeparator) { @@ -409,7 +409,7 @@ namespace BizHawk.Client.EmuHawk }; we.SetWatch(SelectedWatches.First().Domain, SelectedWatches, duplicate ? WatchEditor.Mode.Duplicate : WatchEditor.Mode.Edit); - + var result = we.ShowHawkDialog(); if (result == DialogResult.OK) { @@ -1038,7 +1038,7 @@ namespace BizHawk.Client.EmuHawk _watches.Load(filePaths[0], append: false); Global.Config.RecentWatches.Add(_watches.CurrentFileName); WatchListView.ItemCount = _watches.Count; - } + } } private void NewRamWatch_Enter(object sender, EventArgs e) @@ -1056,9 +1056,9 @@ namespace BizHawk.Client.EmuHawk PokeContextMenuItem.Visible = FreezeContextMenuItem.Visible = Separator4.Visible = - ReadBreakpointContextMenuItem.Visible = + ReadBreakpointContextMenuItem.Visible = WriteBreakpointContextMenuItem.Visible = - Separator6.Visible = + Separator6.Visible = InsertSeperatorContextMenuItem.Visible = MoveUpContextMenuItem.Visible = MoveDownContextMenuItem.Visible = @@ -1115,7 +1115,7 @@ namespace BizHawk.Client.EmuHawk } else { - ToolHelpers.ViewInHexEditor(selected.First().Domain, selected.Select(x => x.Address ), selected.First().Size); + ToolHelpers.ViewInHexEditor(selected.First().Domain, selected.Select(x => x.Address), selected.First().Size); } } } @@ -1134,7 +1134,7 @@ namespace BizHawk.Client.EmuHawk } } } - + private void WriteBreakpointContextMenuItem_Click(object sender, EventArgs e) { var selected = SelectedWatches.ToList(); diff --git a/Dist/HelloWorld_BizHawkTool.dll b/Dist/HelloWorld_BizHawkTool.dll index a8402175070b1e65168312c18d7acc4bcbd2b6fd..9aea3925c62a168ab36a5f5ea9d944dbd3ae3c1c 100644 GIT binary patch literal 13824 zcmeHOeQ*`mbw9iBOA_#mge~!9w0!zu;8o(o2n@D_B+v^;2qZ&Dn26PTi&)tA_IY<7 zLTGSBTRI_QT9c+TPVG*OJMomxq;*o)A8lit#)(^doN2~Q`$v<4o7zch64Iu%-Gs6G zJ9l^ATRlnelr)pclq>GJ_k7%Q&OP^I_uad6f9w$o5m6ZV!w-p`N6D#Gz#D@xu;Yz? z5vOOWUtj#ZwCnZ7{YP|L$y?@-rDm11n#-AvGN>t5A*bj$rDJ!Wk~K40a@MSxWuEHZ zPNH2>h=!id?(?l(A$jo(sfj2FO4Ox(q#LDzd zuT**{laSuuMYNkMhlsw%fhbR7L^DBqX(!Rba^8(_g{UgPuL9l`z>|)4!U5j91^_(K zSI=)?A}R1HY1vj9nDFfoD%??oCYV|=TuDnaObD{CG=|K&)*}Z}E77(9DypkFu1M^g zOcDCKJ7B#%mP^6n*a=#;2{09RassC+`c{S-P8mJ{=dYG5@1 zpQCg)(VQlUVz7aBwbW3vilTQZF)`+#gf z$-PJC&UMMNg5*O-=X=s~!mjNqb1B+-j#LMc+OUsds)Vf>@V(TP#4@xpF&v1|s`XxT z&(aE4;Z0i6szqofgqoqc{v4D^iMvW_Ma(1g2Eu}nOc}>#Mc70f&4gUOc- zT*+FYuVx%!6$pvd%o6>ON3oj2)(gdU4dv}T!i0917GWzQ`S#|PxAO>P?J!a1G|2?2 z+rQB28S*I4z1u$st&-|%qO0Qw5ED!+L&RAQC9vo41e?-BTjgn;T1r zrE`-&K#Nw`D_Ge$&WZ^6aKMU?D!0PK2H%Qkaz0>%`&hKX2(0vsvmyrQ4+2(%RJj!< z&h@Q`CNBi6aQKQ=7-^h^SOg=+MC+A+6(Ln_g^BZgE27D_OIEOsUup&DZL?bt(**W6 zguWrMS(M5`ECdA;jl>uv?iJL;78LGEGPedP+=cNJ4&8VP&jXKQy#qfI?qFNha&Z*v z6Zg4V@8^Q|&O|F}qSD5dMRH=BSGId)hgWub<#sNy!S{V+o5ZsniJt|>*C(5j>zdXz zqo0KR-2m)@lS>~WdIn_+;lEP~)xgF8d zVYe4i+7e1eqjXWg7WsPQHhKu2M`={WNPSZ@<2FBL-K9V zbGLxs5p6#&Uk}A;W#m${hGs>MhvW1r>U9)CJxaI9Z1;WXI`r>?-Fo^?)BwC1F(P&J z>DZabe0nqTdua8UFt<7oJ_GK6#N2bD{$)r;sX2T-Tu({S>K{U9z`Y=y0bP$>N85MM zHcF?Z>)}Q88?kMG?}ZpP(>8Gb1>88<(xvEQ^f3-1QbIr;WeKk~jqtTo)FoOeeG9de zbOrG7=)VFs#l9zaR{`V1aDjm5q^s1cu%chD`p@VOLI0?SMPj4CRDqqY`g-iYF&?^y z{bTIMz$}6N=G=GDhY&q1u(zu}FWm*~2^W*jMH%}u5Bt8vlFxhCr(%rJ5<+@g`W$*6 zqALP>nck8X0-L*(d8a84$uNCpIb&~D@1e!Oe&55+0*la7E+*X@y9+boPdw}j+C}ME z4|@^Tqx7QJ?qy=huX)&i35@67D{#q&EqEsQ^;beNrO@j=R88+3wWMRqBrO1i+~sCAo_BFq^c<3W%z!9 z-h!7G=nh2qBIKj=0^ln84^clW;Q!F?NUbDEk4v3YEiI|)qQ9k9>OsA!s*}C}nZ5L7 znp1Uv{*Cs82SDj26WqaAftsbS#%6=^_t8;7IgL7x$~Wjo;ZH(-MYspB9+2gKi#ADb z!K<@ktlkvXo2ADQ@n-2tXd$&p??!$X^?M_a0X{0t#(Z=suZNxlC0ZrX9#AgQ0cmdR zPXSHoS!nyd;C?asCDNsC`U)ifIJOY*IcPpB;&WESr&;3oG)o+xvm!pt633@m;`k`^ zm((FI_TX12C9kB{KuOXJic3kFLk)ln=pMkObU)xK`Z(Y^0q+&CUC?)u3VNTQe4Iv5 zPmB67`YP%+T>~7Y>xepAZ1W&nObLsJ1Z7OXX4-%m#QRxwjEjGYMF77b)ksVYAoHmPPZ16*l0Ok0~qJ4?%&$F)kD7EQ5} zDZ4|r^EWhACf}vzGKSV}X{rPNwhUxp*c$0Dv#Or6?>jayuuV-L!?Sz4t{KeNvV{rM zz1o8X-O@6Bnsr=HYh=Tdwt{2!rBy>iNHt2iZmENY=0$vmnso(xxWa5h9qAv*Ya-YW z1j(1D)QcGY&=_SB&b7KVm2Ynx>b+ibkgfm&)evw7XntQ}fT zv$)@F4&F}&3t;Ui=mE@a&kaiw6LgkX(7R8!^>N~Dwyk9cjgfxc32G^lEj6QMRqI$u zOTTJiD7WK)LmM`O3~$l}=UAzguW&m$wokKc-ONp7wwt-b`cMIVo|N68*=bA9k7v5U z5-s*>hI&HO?1{R2Ev%iiGm+75=0_}j=*Xn3Y+lWcl-leq%1G3lf6xXcHrGsHE0)aNxok0u$jYF!mGugF3m8^{n&dl1KyzX zTu)|NC7O)1yw&RXuIy1_UpOD)DZS${jYT zw3l`sN4VVG%c4}V|LC4DY+95|JAnSk>FQ9iQd`y_u#q;lA_&AhjJOTa1h9(C)#bm>87G>5i@%SdAP!F|n!F)N>BJwjI@S+_k$)w;k#$*m*6N*`(jspU*V;LC4P_w?|x=Vnj+#_8l>Yg?PU@n960e6G92kcsFch z<_A(aJjUR(GeVu&JRnka4;Ao>7QbniAHdse0dGbYX{1mdG?hm1zMZ2X;G;M)Jw?)1 zS4sho<#LdBCXsfai)C`q;Ls6Iis3$!AD^X9w3(M2aa>pTO zfTq!AV59i0aEfSWAMiA+>p0BW|cU=rjWxq zO+XIV6mmHH3djMwqojR+cED~HJ_KcOU~*?WV#tv|&kL-3}7I3Q zOp<4KPpCk0k z_4_R~-(%)FPoy>RlF@&J-^(P(#Uz$nAW{9~&jTFc2#E%X>Wc3Z%3ohpl(kLGILq9L z-wmRrBA%M7x<{15x@9|x|FWbwcz`O{O%!jhP_S>{`D9x0vPTV$IB410mX^$hO)ZDl zG&ePGTC-kL*RE-4TANwZygsuoo!+=k(>CD{b|xHe#_1RSh;~RcKiSjSUwm;}?Y(Mj z6rM+M{1xwqS(+ZBI8mpDw!l0q2cWNX3<}od|b#UWGbwhf? zJ{xMd}=t3<}vIvv?y8*X>A?91P*{Au)5 z;&&x7zHif!olcwS=$(%2Eg$>{xMd}=t3<}v%Ca}gzTB$xuU`gY38OPAk|x%z)1{J3=a#^qRJrSh&^xxI3nipl?W znvZ(;`?YWFM8*eLd;2>2A{T~!?b=JPc0BV+;j@o+U3`jPOWQXe>`)!`V7F!~8Qc%x zV!^Qw;%*e@>q?(f$mpgxxI2hTL%uMu4^DpUHx=0&JbLg%%RL9hUF;M>$$Vz8*nwX_ zMd>aX-OP2Rga>Q>_t7qGpxv}O41;eb+|Lg*OlM&6uq8jfz zpA(AD&L_}Wt_%62hj1(vV$4kshj407`|$nD0AMHWMJCJ?`{`A9-jh`8nCG#sEIy*YPz}7jzEeM{Ym7FwsL!O*o_}>D>pt zd|Or0*Np#U&{WJkItw7rk#mG>4myp1x6`qo#Epx%iGv?qR0qAgpmRuQpXeMN`Ez*ry&bX1&mFqNfFnmlKE-_qlSt=o=|A0vp^&DycODO0Qao$xMv*L*Ae|BJx?0`#5Pvj6}9 delta 3384 zcmZ8keQ;b=6+idAw|761ZnGQmvB@U8n>5*%G)+_5rfo{frZhrQqbV^+v^9wuJ846= z-2|bH$=jWRP=t~2U^GlY7*N|kqJ}WGnN|j8ilUj?R=nV06^qx$ouk z?cCoz=XcM!=iKw|yYFpwB)jL)2Rlz69lnFy>s`_kd7_D^41{#Z$?fRlXel(J0wrri zhEkV$%1-^dF<1xdPx45L=&$-zqA-7eC?ER6+lZoeBHCd0iDcluQc!WUGW#J>?N34C z`J(m@Ma(|{2>~c>|4CHU9N_r4ZbQ?^L;qSw^p_Bku2`Zsnu*S1;`Mg7R%JD7CZ-N( zCSuC^KuNuDZ*B z&||4XC6N-d0wN-?t3!7mDlK(rD{nbJaHz~R&v&BAbR~Qp*}F{kxv~%OGMM-1WDIuW zae$csq^kh+j-MN#8jLo++QC}s;jDZXOXbV)PosYD^l+#oLOE=4x(0N*R*mtpT>=&X z)8rveK^w=WFfzv$-AY!uS%%B3_Vcpej~4w(SNRz(vC^&ngx*l7jbmpR4S7zVuH!Ux z6L&RGU)ZG6UfwCZxY6~XtO;J1BTsOyuE^nCkxQnT4Qe%PT$0|fD97?+iP1)=>5YqA z#w+M(8qb7Vv{-d)&FCh!xp9#zPH%Q()ZfS?*kP$$3jsJC1lYDbfGX$4r2xuiRRHEn z+yKhHV`+X~*TVcPTL|!p#JA5T&WvC*&ka9z|~p^z;bL2R==!5%w?>_ z`7O00R|jCDh#NpTJh2!6WqLUU=x!U`f)birxsD|!p6P%VkK$2?djP85CQcAMb~p~) zji27JjNru6J9z&um~gFDnDE_ph|F_Hz*P4%^W()_ip>_~z7tqqg-v$Tg3!uBrDpDO z`JTH)=+OXqa8;yU`b;3H!LO9L48r&~SQ5*R*+$q|fM# z3GD&TTJj?WNgdiphNRaN&MIuvnOUQ-R^fo+w`xzqw@~5ZiW%2t^Z@h*NWFuiCbEllyDnD-RZ5m^De$5Y`6Q-!zLQ${16y)bQuTbKeyGe-MG1*ZP9K4TQq zI|f@mpf>}b6^y%-&Brl=qz~i_d{4tyQclbmm9*A-U9Y4wI^!m~j)ZKCS^*jro$~9H z$K}CgDik>E1q%BbvTakcpgM6LQir$*Ov;ym7vv>1_9`$)jO7X+5wB8roF_Wzn~=W% zf2XTGDnAEpP-!_|pZ9eOw`AB=Kkxkww2aceTAITubjm92s((hrmo!l-Sv%>BiEDx_ zA9S@MukuR}uB)O6>({9j&j`^ax+038?N?fk{*5uqpgA1rM3?>h@ZL7)qN|;P=Al;{ zP5cA_CH>OX4kLu5H(l)|gqQS3*Y6Usv`fEFi+1LUxe3h^$ozE0@?BqCBzjAS>)7x`I!nC5lLhh z5mR~*HeAkg4DvsWdw|~*sD#T*>XU4Pcgqei_fwmAPJRuT7LQ@Jr`2eyoTh!Ei@pWR zt==NwZp@rh^~kAuM8td2ierEal2ZkV2(Cv&a6RHQM{kIP!aBMDxsmelA=HS|##Ef zw&&yWZQz%@mw~h5D%sgJRaOjxQAz+Sk%xwiYk*ah1g^v8(Wn-g8Cl+W%df8(ILnt2 z-yyslaINGzaqg}5EKnu_b!(Q1^sgeL+7=*_8SH@*?!m2vEyXFQf$txFPRnAcMqTIY8ZT`>l<~m@3(C1 zA0s0!ginu?@IVNKSPe30tcN==qWQdfc$j}sf|?A}1(4d$#O8yS4nntz625KO`FD9NHP&+B5h#zrANqPx8w@|JV(89k}J>3&tNlN}t`# zyJC0C{)59~``hmw8_FCR9Qjl_Jz@_wme@BnM!mNWjSLNr4ndEG_ql&0;6jI4j!z|u wwFBGjs*R=}>i=r6{R-wnTOJa2uxY1A&2=`N)BX5L;Que#?HKu|m}>I=9}`{hUH||9 From df8929ea55f536cbb91387976774af18cb6cc727 Mon Sep 17 00:00:00 2001 From: feos Date: Tue, 15 Dec 2015 21:57:32 +0300 Subject: [PATCH 025/106] added jim 2 script. --- output/Lua/Genesis/Earthworm Jim 2.lua | 202 +++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 output/Lua/Genesis/Earthworm Jim 2.lua diff --git a/output/Lua/Genesis/Earthworm Jim 2.lua b/output/Lua/Genesis/Earthworm Jim 2.lua new file mode 100644 index 0000000000..92ac38af97 --- /dev/null +++ b/output/Lua/Genesis/Earthworm Jim 2.lua @@ -0,0 +1,202 @@ +-- feos, 2015 + +--== Globals ==-- +lastcfg = 0 +dcfg = 0 +rngcount = 0 +rngcolor = "white" +rngobject = 0 +rngroutine = 0 +MsgTime = 16 +MsgStep = 256/MsgTime +MsgTable = {} + +--== Shortcuts ==-- +local rb = memory.read_u8 +local rbs = memory.read_s8 +local rw = memory.read_u16_be +local rws = memory.read_s16_be +local rl = memory.read_u32_be +local box = gui.drawBox +local text = gui.pixelText +local line = gui.drawLine +local AND = bit.band +local SHIFT= bit.lshift + +function Configs() + local rng = rl(0xa1d4) + text(120,0,string.format("rng: %08X:%d",rng,rngcount),rngcolor) + local cfg0 = rl(0xfc2a) + if cfg0==0 then return end + local cfg1 = rl(0xfc9a) + text(220,0,string.format("cfg old: %X\ncfg step: %d",cfg1,dcfg)) + if lastcfg~=cfg0 then dcfg = cfg0-lastcfg end + lastcfg = cfg0 + local h = 7 + for i=0,20 do + local config = rl(0xfc2a)+i + local action = rb(config,"MD CART") + local newaction = memory.readbyte(config+1,"MD CART") + if action==0x62 + or (action==0xe and newaction==8) + or action==8 + or action==3 then color = "red" + elseif action>=0x63 and action<=0x64 then color = "orange" + elseif action>=0x30 and action<=0x32 then color = 0xff00ff00 + elseif action>=0x65 and action<=0x70 then color = 0xff00cc00 + elseif action==0x7a then color = "white" + else color = 0xffaaaaaa + end + text(270,i*h+42,string.format("%X:%02X",config,action),color) + if i>0 + and action==0x7a + or action==0x2b + or action==0x2d + then break + end + end + Bounce() + Seek() +end + +function Seek() + bytes = 0 + waves = 0 + steps = 0 + local ret = "" + for bytes=0,10000 do + local cfg = rl(0xfc2a)+bytes + local action = rb(cfg, "MD CART") + local newaction = rb(cfg+1, "MD CART") + if action==0x7a then + waves=waves+1 + steps=steps+1 + end + if action==0x63 or action==0x64 or (action==0 and newaction==0) then + steps=steps+1 + end + if action>=0x30 and action<=0x32 then + if newaction==0x70 then + steps=steps+1 + elseif newaction==0x62 then + ret = string.format("BOMB in %d waves %d steps",waves,steps,bytes) + break + end + elseif action==3 then + ret = string.format("Forth in %d waves %d steps",waves,steps,bytes) + break + elseif action==0xe and newaction==8 then + ret = string.format("Back in %d waves %d steps",waves,steps,bytes) + break + end + end + text(120,7,ret) +end + +function Clamp(v1,v2,v3) + if v1v3 then v1=v3 + end + return v1 +end + +function Bounce() + if rb(0xa515)==0x60 + then offset = 8 + else offset = 0 + end + local counter = rb(0xfc87) + local a0 = 0xfc88 + local d0 = SHIFT(rb(a0+counter),5)+offset + local vel = rw(0x25d482+d0, "MD CART") + if vel == 0x200 then bounce = 3 + elseif vel == 0x3e0 then bounce = 1 + else bounce = 2 + end + text(60,0,string.format("bounce: %X",bounce)) +end + +function Objects() + local base0 = 0xa2ea + for i=0,0x32 do + local base = base0+i*0x6e + local id = rb(base) + if id>0 and id~=0x82 then + local hp = rbs(base+1) + local x = rw(base+2)-4096-camx + local y = rw(base+4)-4096-camy + --x = Clamp(x,0,300) + --y = Clamp(y,8,210) + local dx = rws(base+0x18) + local dy = rws(base+0x1a) + local hitboxbase = rl(base+0x14) + if hitboxbase<0x300000 then + local x1 = rb(hitboxbase+2,"MD CART") + local x2 = rb(hitboxbase+4,"MD CART") + local y1 = rb(hitboxbase+3,"MD CART") + local y2 = rb(hitboxbase+5,"MD CART") + local of = 124 + if x1>0 and x2>0 and y1>0 and y2>0 then + x1 = x1+x-of + x2 = x2+x-of + y1 = y1+y-of + y2 = y2+y-of + box(x1,y1,x2,y2,0xff00ff00,0) + end + end + --text(x,y,string.format("%X",id),"yellow") + if hp~=0 then + text(x,y+6,hp,0xff00ff00) + end + PostRngRoll(base,x,y) + end + end +end + +function PostRngRoll(object,x,y) + for i = 1, #MsgTable do + if (MsgTable[i]) then + if object==MsgTable[i].object_ then + local color = 0x00ff0000+SHIFT((MsgTable[i].timer_-emu.framecount())*MsgStep,24) + line(130,7*i+8,x,y,color) + text(120,7*i+8,string.format("%X",MsgTable[i].routine_),color) + end + if (MsgTable[i].timer_ Date: Mon, 14 Dec 2015 23:34:31 -0700 Subject: [PATCH 026/106] Raiscan's original judging scripts used for the sgdq 2015 speed tas competition --- output/Lua/tasjudy.bat | 38 ++++++++++++ output/Lua/tasjudy.lua | 138 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 176 insertions(+) create mode 100644 output/Lua/tasjudy.bat create mode 100644 output/Lua/tasjudy.lua diff --git a/output/Lua/tasjudy.bat b/output/Lua/tasjudy.bat new file mode 100644 index 0000000000..13b09c7357 --- /dev/null +++ b/output/Lua/tasjudy.bat @@ -0,0 +1,38 @@ +@echo off +ECHO Hello. I am TASJudy. Prepare to be Judged. +setlocal EnableDelayedExpansion +del results\failed.txt >nul 2>&1 + +for /r %%i in (movies\*) do ( + set currentmovie=%%i + + echo Processing %%i... + start "" /B "F:\competition\bizhawk\EmuHawk.exe" rom\mystery.nes --movie=%%i + + echo Waiting for run to finish... + TIMEOUT /T 1 >nul + call :CheckForExe +) + +echo Done +pause +exit /b + +:CheckForExe +tasklist /FI "IMAGENAME eq EmuHawk.exe" 2>NUL | find /I /N "EmuHawk.exe">NUL + +if %ERRORLEVEL% == 1 goto ResultsAreIn + +TIMEOUT /T 1 >nul +call :CheckForExe +exit /b + + +:ResultsAreIn +echo Results are in for !currentmovie! +call :kill +exit /b + +:kill +taskkill /f /im EmuHawk.exe >nul 2>&1 +exit /b diff --git a/output/Lua/tasjudy.lua b/output/Lua/tasjudy.lua new file mode 100644 index 0000000000..2660a5bb49 --- /dev/null +++ b/output/Lua/tasjudy.lua @@ -0,0 +1,138 @@ +-- +-- TASJudy - Judges so you don't have to. +-- Author: Raiscan +-- Timestamp: 201508041957 +-- Version: 0.1 +-- To change this template use File | Settings | File Templates. +-- + +local resultsFilePath = "F:\\competition\\results\\results.txt" +local gracePeriod = 10000 +local gracePeriodCounter = 0 +local separator = "," +local exitOnResults = true + +local FAILURE_DOES_NOT_FINISH = "DNF" +local FAILURE_DISQUALIFIED = "DQ" + +-- Main Function -- +function judge() + if movie.startsfromsavestate() then + console.log("Movie starts from savestate, so disqualifying") + + writeFailureToResults(FAILURE_DISQUALIFIED) + + endScript() + return + end + + while not hasCompletedGame() do + + if movieHasFinished() then + if gracePeriodLimiter() then + console.log("Movie does not finish the game :(") + writeFailureToResults(FAILURE_DOES_NOT_FINISH) + + endScript() + return + end + end + + --The show must go on + emu.frameadvance() + end + + --We must have finished! + console.log("Movie finished game.") + writeSuccessToResults(emu.framecount(), getInGameTime()) + + endScript() +end + + +-------- HELPER FUNCTIONS BELOW --------- + +-- Edit this with game completion criteria as necessary -- +function hasCompletedGame() + return mainmemory.read_s8(0x002C) == 1 +end + + +-- Edit this with functionality for in game time -- +function getInGameTime() + local millis = bizstring.hex(mainmemory.read_u8(0x0050)):reverse() + local seconds = bizstring.hex(mainmemory.read_u8(0x004F)):reverse() + local minutes = bizstring.hex(mainmemory.read_u8(0x004E)):reverse() + + return minutes .. ":" .. seconds .. "." .. millis +end + + +-- Ends the script. If exitOnResults set, exits emulator. +function endScript() + client.pause() + if exitOnResults then + client.closerom() + client.exit() + end +end + +-- Parses the hash of the movie file calculated by RGamma's uploader. +function parseHash() + local moviePath = movie.filename() + local movieFile = moviePath:match("([^\\]+)$") + local hash = movieFile:match("^([^.]+)") + + return hash +end + + +-- Alias for writing results; blanks out times with reason. +function writeFailureToResults(reason) + + writeResults(parseHash(), movie.getheader()["author"], reason, reason, reason) +end + +-- Alias for writing results; takes in endFrame and in game time -- +function writeSuccessToResults(endFrame, inGameTime) + + writeResults(parseHash(), movie.getheader()["author"], endFrame, movie.length(), inGameTime) +end + +function movieHasFinished() + return movie.mode() == "FINISHED" or not movie.isloaded() +end + +-- Opens results file and writes a single line of all information gathered -- +function writeResults(hash, author, endFrame, length, inGameTime) + local resultsFile, err = io.open(resultsFilePath, "a") + + if err then + console.log("Could not write results " .. err) + else + local hash = parseHash() + local resultsLine = hash .. + separator .. + author .. + separator .. + endFrame .. + separator .. + length .. + separator .. + inGameTime + + + resultsFile:write(resultsLine .. "\n") + resultsFile:close() + end +end + +function gracePeriodLimiter() + if gracePeriodCounter < gracePeriod then + gracePeriodCounter = gracePeriodCounter + 1 + end + + return gracePeriodCounter >= gracePeriod +end + +judge() From a1eda8f3abdd3c5c89501a2796417faa9a6ef3e2 Mon Sep 17 00:00:00 2001 From: pgrimsrud Date: Mon, 14 Dec 2015 23:37:24 -0700 Subject: [PATCH 027/106] Fix a case issue causing the judging script to fail --- output/Lua/tasjudy.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/output/Lua/tasjudy.lua b/output/Lua/tasjudy.lua index 2660a5bb49..9cbfb5379d 100644 --- a/output/Lua/tasjudy.lua +++ b/output/Lua/tasjudy.lua @@ -90,13 +90,13 @@ end -- Alias for writing results; blanks out times with reason. function writeFailureToResults(reason) - writeResults(parseHash(), movie.getheader()["author"], reason, reason, reason) + writeResults(parseHash(), movie.getheader()["Author"], reason, reason, reason) end -- Alias for writing results; takes in endFrame and in game time -- function writeSuccessToResults(endFrame, inGameTime) - writeResults(parseHash(), movie.getheader()["author"], endFrame, movie.length(), inGameTime) + writeResults(parseHash(), movie.getheader()["Author"], endFrame, movie.length(), inGameTime) end function movieHasFinished() From bb327261aedfc2d341915edd8e6d76ae5a2bc5ee Mon Sep 17 00:00:00 2001 From: pgrimsrud Date: Tue, 15 Dec 2015 01:22:44 -0700 Subject: [PATCH 028/106] Add a return value to the main function for various purposes. Add Lua function ExitCode to allow script writers to terminate the client with an exit code. --- BizHawk.Client.EmuHawk/GlobalWin.cs | 2 ++ BizHawk.Client.EmuHawk/MainForm.Events.cs | 6 ++++++ BizHawk.Client.EmuHawk/MainForm.cs | 4 +++- BizHawk.Client.EmuHawk/Program.cs | 20 +++++++++++-------- .../Lua/Libraries/EmuLuaLibrary.Client.cs | 9 +++++++++ output/Lua/tasjudy.lua | 2 +- output/Lua/tasjudy.py | 18 +++++++++++++++++ 7 files changed, 51 insertions(+), 10 deletions(-) create mode 100644 output/Lua/tasjudy.py diff --git a/BizHawk.Client.EmuHawk/GlobalWin.cs b/BizHawk.Client.EmuHawk/GlobalWin.cs index 490c2a5a86..757abd40dc 100644 --- a/BizHawk.Client.EmuHawk/GlobalWin.cs +++ b/BizHawk.Client.EmuHawk/GlobalWin.cs @@ -24,5 +24,7 @@ namespace BizHawk.Client.EmuHawk public static OSDManager OSD = new OSDManager(); public static DisplayManager DisplayManager; public static GLManager GLManager; + + public static int ExitCode; } } diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index f7a1f38488..2851239f8b 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -662,6 +662,12 @@ namespace BizHawk.Client.EmuHawk _exit = true; } + public void CloseEmulator(int exitCode) + { + _exit = true; + _exitCode = exitCode; + } + #endregion #region Emulation Menu diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 037e451dca..087fae8184 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -462,7 +462,7 @@ namespace BizHawk.Client.EmuHawk private bool _supressSyncSettingsWarning = false; - public void ProgramRunLoop() + public int ProgramRunLoop() { CheckMessages(); //can someone leave a note about why this is needed? LogConsole.PositionConsole(); @@ -545,6 +545,7 @@ namespace BizHawk.Client.EmuHawk } Shutdown(); + return _exitCode; } /// @@ -1322,6 +1323,7 @@ namespace BizHawk.Client.EmuHawk private bool _avwriterpad; private bool _exit; + private int _exitCode; private bool _exitRequestPending; private bool _runloopFrameProgress; private long _frameAdvanceTimestamp; diff --git a/BizHawk.Client.EmuHawk/Program.cs b/BizHawk.Client.EmuHawk/Program.cs index 96c37c97c6..407ed5fe98 100644 --- a/BizHawk.Client.EmuHawk/Program.cs +++ b/BizHawk.Client.EmuHawk/Program.cs @@ -34,15 +34,17 @@ namespace BizHawk.Client.EmuHawk } [STAThread] - static void Main(string[] args) + static int Main(string[] args) { - SubMain(args); + return SubMain(args); } //NoInlining should keep this code from getting jammed into Main() which would create dependencies on types which havent been setup by the resolver yet... or something like that [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - static void SubMain(string[] args) + static int SubMain(string[] args) { + GlobalWin.ExitCode = 0; + // this check has to be done VERY early. i stepped through a debug build with wrong .dll versions purposely used, // and there was a TypeLoadException before the first line of SubMain was reached (some static ColorType init?) // zero 25-dec-2012 - only do for public builds. its annoying during development @@ -55,7 +57,7 @@ namespace BizHawk.Client.EmuHawk if (thisversion != utilversion || thisversion != emulversion) { MessageBox.Show("Conflicting revisions found! Don't mix .dll versions!"); - return; + return -1; } } @@ -138,7 +140,7 @@ namespace BizHawk.Client.EmuHawk mf.Show(); mf.Text = title; - mf.ProgramRunLoop(); + GlobalWin.ExitCode = mf.ProgramRunLoop(); } } } @@ -169,13 +171,13 @@ namespace BizHawk.Client.EmuHawk if (System.Diagnostics.Debugger.IsAttached) { - mf.ProgramRunLoop(); + GlobalWin.ExitCode = mf.ProgramRunLoop(); } else { try { - mf.ProgramRunLoop(); + GlobalWin.ExitCode = mf.ProgramRunLoop(); } catch (Exception e) { @@ -227,6 +229,8 @@ namespace BizHawk.Client.EmuHawk // GlobalWin.GL.Dispose(); //((IDisposable)GlobalWin.IGL_GL).Dispose(); + //return 0 assuming things have gone well, non-zero values could be used as error codes or for scripting purposes + return GlobalWin.ExitCode; } //SubMain //declared here instead of a more usual place to avoid dependencies on the more usual place @@ -319,7 +323,7 @@ namespace BizHawk.Client.EmuHawk var title = MainForm.Text; MainForm.Show(); MainForm.Text = title; - (MainForm as MainForm).ProgramRunLoop(); + GlobalWin.ExitCode = (MainForm as MainForm).ProgramRunLoop(); } } diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Client.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Client.cs index e4dd65f42b..4b7b7e52ae 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Client.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Client.cs @@ -45,6 +45,15 @@ namespace BizHawk.Client.EmuHawk GlobalWin.MainForm.CloseEmulator(); } + [LuaMethodAttributes( + "exitCode", + "Closes the emulator and returns the provided code" + )] + public void CloseEmulatorWithCode(int exitCode) + { + GlobalWin.MainForm.CloseEmulator(exitCode); + } + [LuaMethodAttributes( "borderheight", "Gets the current height in pixels of the letter/pillarbox area (top side only) around the emu display surface, excluding the gameExtraPadding you've set. This function (the whole lot of them) should be renamed or refactored since the padding areas have got more complex." diff --git a/output/Lua/tasjudy.lua b/output/Lua/tasjudy.lua index 9cbfb5379d..8591a4711a 100644 --- a/output/Lua/tasjudy.lua +++ b/output/Lua/tasjudy.lua @@ -73,7 +73,7 @@ function endScript() client.pause() if exitOnResults then client.closerom() - client.exit() + client.exitCode(emu.framecount()) end end diff --git a/output/Lua/tasjudy.py b/output/Lua/tasjudy.py new file mode 100644 index 0000000000..50e334c44e --- /dev/null +++ b/output/Lua/tasjudy.py @@ -0,0 +1,18 @@ +import os +import datetime +from multiprocessing import Pool + +bizhawkPath = "" +romPath = "" +moviePath = "" + +def emu(arg): + ret = os.system(bizhawkPath + " " + romPath + " --movie=" + moviePath) + print("Ending %d with %d at %s" % (arg,ret,datetime.datetime.now().time())) + +if __name__ == '__main__': + print("Starting at %s" % datetime.datetime.now().time()) + p = Pool(processes=4) + p.map(emu,range(1)) + print("Ending parent at %s" % datetime.datetime.now().time()) + From d77c414a066ceefcd55ab698c8b907b25d68150d Mon Sep 17 00:00:00 2001 From: feos Date: Wed, 16 Dec 2015 21:13:15 +0300 Subject: [PATCH 029/106] avi: traditional avi setup menu item. --- BizHawk.Client.EmuHawk/MainForm.Designer.cs | 665 +++++++------- BizHawk.Client.EmuHawk/MainForm.Events.cs | 15 +- BizHawk.Client.EmuHawk/MainForm.cs | 10 +- BizHawk.Client.EmuHawk/MainForm.resx | 909 ++++++++++---------- 4 files changed, 815 insertions(+), 784 deletions(-) diff --git a/BizHawk.Client.EmuHawk/MainForm.Designer.cs b/BizHawk.Client.EmuHawk/MainForm.Designer.cs index 68603d3b1e..4e6fde40f7 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Designer.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Designer.cs @@ -95,6 +95,7 @@ this.MovieEndStopMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.MovieEndPauseMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.AVSubMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.ConfigAndRecordAVMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.RecordAVMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.StopAVIMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator19 = new System.Windows.Forms.ToolStripSeparator(); @@ -445,7 +446,7 @@ this.MainformMenu.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow; this.MainformMenu.Location = new System.Drawing.Point(0, 0); this.MainformMenu.Name = "MainformMenu"; - this.MainformMenu.Size = new System.Drawing.Size(470, 61); + this.MainformMenu.Size = new System.Drawing.Size(470, 57); this.MainformMenu.TabIndex = 0; this.MainformMenu.Text = "menuStrip1"; this.MainformMenu.MenuActivate += new System.EventHandler(this.MainformMenu_MenuActivate); @@ -471,7 +472,7 @@ this.toolStripSeparator4, this.ExitMenuItem}); this.FileSubMenu.Name = "FileSubMenu"; - this.FileSubMenu.Size = new System.Drawing.Size(37, 19); + this.FileSubMenu.Size = new System.Drawing.Size(35, 17); this.FileSubMenu.Text = "&File"; this.FileSubMenu.DropDownOpened += new System.EventHandler(this.FileSubMenu_DropDownOpened); // @@ -479,7 +480,7 @@ // this.OpenRomMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.OpenFile; this.OpenRomMenuItem.Name = "OpenRomMenuItem"; - this.OpenRomMenuItem.Size = new System.Drawing.Size(159, 22); + this.OpenRomMenuItem.Size = new System.Drawing.Size(162, 22); this.OpenRomMenuItem.Text = "&Open ROM"; this.OpenRomMenuItem.Click += new System.EventHandler(this.OpenRomMenuItem_Click); // @@ -489,7 +490,7 @@ this.toolStripSeparator3}); this.RecentRomSubMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; this.RecentRomSubMenu.Name = "RecentRomSubMenu"; - this.RecentRomSubMenu.Size = new System.Drawing.Size(159, 22); + this.RecentRomSubMenu.Size = new System.Drawing.Size(162, 22); this.RecentRomSubMenu.Text = "&Recent ROM"; this.RecentRomSubMenu.DropDownOpened += new System.EventHandler(this.RecentRomMenuItem_DropDownOpened); // @@ -501,7 +502,7 @@ // OpenAdvancedMenuItem // this.OpenAdvancedMenuItem.Name = "OpenAdvancedMenuItem"; - this.OpenAdvancedMenuItem.Size = new System.Drawing.Size(159, 22); + this.OpenAdvancedMenuItem.Size = new System.Drawing.Size(162, 22); this.OpenAdvancedMenuItem.Text = "Open Ad&vanced"; this.OpenAdvancedMenuItem.Click += new System.EventHandler(this.OpenAdvancedMenuItem_Click); // @@ -509,14 +510,14 @@ // this.CloseRomMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Close; this.CloseRomMenuItem.Name = "CloseRomMenuItem"; - this.CloseRomMenuItem.Size = new System.Drawing.Size(159, 22); + this.CloseRomMenuItem.Size = new System.Drawing.Size(162, 22); this.CloseRomMenuItem.Text = "&Close ROM"; this.CloseRomMenuItem.Click += new System.EventHandler(this.CloseRomMenuItem_Click); // // toolStripMenuItem1 // this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(156, 6); + this.toolStripMenuItem1.Size = new System.Drawing.Size(159, 6); // // SaveStateSubMenu // @@ -534,89 +535,89 @@ this.toolStripSeparator6, this.SaveNamedStateMenuItem}); this.SaveStateSubMenu.Name = "SaveStateSubMenu"; - this.SaveStateSubMenu.Size = new System.Drawing.Size(159, 22); + this.SaveStateSubMenu.Size = new System.Drawing.Size(162, 22); this.SaveStateSubMenu.Text = "&Save State"; this.SaveStateSubMenu.DropDownOpened += new System.EventHandler(this.SaveStateSubMenu_DropDownOpened); // // SaveState1MenuItem // this.SaveState1MenuItem.Name = "SaveState1MenuItem"; - this.SaveState1MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState1MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState1MenuItem.Text = "1"; this.SaveState1MenuItem.Click += new System.EventHandler(this.Savestate1MenuItem_Click); // // SaveState2MenuItem // this.SaveState2MenuItem.Name = "SaveState2MenuItem"; - this.SaveState2MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState2MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState2MenuItem.Text = "2"; this.SaveState2MenuItem.Click += new System.EventHandler(this.Savestate2MenuItem_Click); // // SaveState3MenuItem // this.SaveState3MenuItem.Name = "SaveState3MenuItem"; - this.SaveState3MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState3MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState3MenuItem.Text = "3"; this.SaveState3MenuItem.Click += new System.EventHandler(this.Savestate3MenuItem_Click); // // SaveState4MenuItem // this.SaveState4MenuItem.Name = "SaveState4MenuItem"; - this.SaveState4MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState4MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState4MenuItem.Text = "4"; this.SaveState4MenuItem.Click += new System.EventHandler(this.Savestate4MenuItem_Click); // // SaveState5MenuItem // this.SaveState5MenuItem.Name = "SaveState5MenuItem"; - this.SaveState5MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState5MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState5MenuItem.Text = "5"; this.SaveState5MenuItem.Click += new System.EventHandler(this.Savestate5MenuItem_Click); // // SaveState6MenuItem // this.SaveState6MenuItem.Name = "SaveState6MenuItem"; - this.SaveState6MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState6MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState6MenuItem.Text = "6"; this.SaveState6MenuItem.Click += new System.EventHandler(this.Savestate6MenuItem_Click); // // SaveState7MenuItem // this.SaveState7MenuItem.Name = "SaveState7MenuItem"; - this.SaveState7MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState7MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState7MenuItem.Text = "7"; this.SaveState7MenuItem.Click += new System.EventHandler(this.Savestate7MenuItem_Click); // // SaveState8MenuItem // this.SaveState8MenuItem.Name = "SaveState8MenuItem"; - this.SaveState8MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState8MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState8MenuItem.Text = "8"; this.SaveState8MenuItem.Click += new System.EventHandler(this.Savestate8MenuItem_Click); // // SaveState9MenuItem // this.SaveState9MenuItem.Name = "SaveState9MenuItem"; - this.SaveState9MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState9MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState9MenuItem.Text = "9"; this.SaveState9MenuItem.Click += new System.EventHandler(this.Savestate9MenuItem_Click); // // SaveState0MenuItem // this.SaveState0MenuItem.Name = "SaveState0MenuItem"; - this.SaveState0MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState0MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState0MenuItem.Text = "0"; this.SaveState0MenuItem.Click += new System.EventHandler(this.Savestate0MenuItem_Click); // // toolStripSeparator6 // this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(175, 6); + this.toolStripSeparator6.Size = new System.Drawing.Size(183, 6); // // SaveNamedStateMenuItem // this.SaveNamedStateMenuItem.Name = "SaveNamedStateMenuItem"; - this.SaveNamedStateMenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveNamedStateMenuItem.Size = new System.Drawing.Size(186, 22); this.SaveNamedStateMenuItem.Text = "Save Named State..."; this.SaveNamedStateMenuItem.Click += new System.EventHandler(this.SaveNamedStateMenuItem_Click); // @@ -638,101 +639,101 @@ this.toolStripSeparator21, this.AutoloadLastSlotMenuItem}); this.LoadStateSubMenu.Name = "LoadStateSubMenu"; - this.LoadStateSubMenu.Size = new System.Drawing.Size(159, 22); + this.LoadStateSubMenu.Size = new System.Drawing.Size(162, 22); this.LoadStateSubMenu.Text = "&Load State"; this.LoadStateSubMenu.DropDownOpened += new System.EventHandler(this.LoadStateSubMenu_DropDownOpened); // // LoadState1MenuItem // this.LoadState1MenuItem.Name = "LoadState1MenuItem"; - this.LoadState1MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState1MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState1MenuItem.Text = "1"; this.LoadState1MenuItem.Click += new System.EventHandler(this.Loadstate1MenuItem_Click); // // LoadState2MenuItem // this.LoadState2MenuItem.Name = "LoadState2MenuItem"; - this.LoadState2MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState2MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState2MenuItem.Text = "2"; this.LoadState2MenuItem.Click += new System.EventHandler(this.Loadstate2MenuItem_Click); // // LoadState3MenuItem // this.LoadState3MenuItem.Name = "LoadState3MenuItem"; - this.LoadState3MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState3MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState3MenuItem.Text = "3"; this.LoadState3MenuItem.Click += new System.EventHandler(this.Loadstate3MenuItem_Click); // // LoadState4MenuItem // this.LoadState4MenuItem.Name = "LoadState4MenuItem"; - this.LoadState4MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState4MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState4MenuItem.Text = "4"; this.LoadState4MenuItem.Click += new System.EventHandler(this.Loadstate4MenuItem_Click); // // LoadState5MenuItem // this.LoadState5MenuItem.Name = "LoadState5MenuItem"; - this.LoadState5MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState5MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState5MenuItem.Text = "5"; this.LoadState5MenuItem.Click += new System.EventHandler(this.Loadstate5MenuItem_Click); // // LoadState6MenuItem // this.LoadState6MenuItem.Name = "LoadState6MenuItem"; - this.LoadState6MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState6MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState6MenuItem.Text = "6"; this.LoadState6MenuItem.Click += new System.EventHandler(this.Loadstate6MenuItem_Click); // // LoadState7MenuItem // this.LoadState7MenuItem.Name = "LoadState7MenuItem"; - this.LoadState7MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState7MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState7MenuItem.Text = "7"; this.LoadState7MenuItem.Click += new System.EventHandler(this.Loadstate7MenuItem_Click); // // LoadState8MenuItem // this.LoadState8MenuItem.Name = "LoadState8MenuItem"; - this.LoadState8MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState8MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState8MenuItem.Text = "8"; this.LoadState8MenuItem.Click += new System.EventHandler(this.Loadstate8MenuItem_Click); // // LoadState9MenuItem // this.LoadState9MenuItem.Name = "LoadState9MenuItem"; - this.LoadState9MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState9MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState9MenuItem.Text = "9"; this.LoadState9MenuItem.Click += new System.EventHandler(this.Loadstate9MenuItem_Click); // // LoadState0MenuItem // this.LoadState0MenuItem.Name = "LoadState0MenuItem"; - this.LoadState0MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState0MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState0MenuItem.Text = "0"; this.LoadState0MenuItem.Click += new System.EventHandler(this.Loadstate0MenuItem_Click); // // toolStripSeparator7 // this.toolStripSeparator7.Name = "toolStripSeparator7"; - this.toolStripSeparator7.Size = new System.Drawing.Size(177, 6); + this.toolStripSeparator7.Size = new System.Drawing.Size(182, 6); // // LoadNamedStateMenuItem // this.LoadNamedStateMenuItem.Name = "LoadNamedStateMenuItem"; - this.LoadNamedStateMenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadNamedStateMenuItem.Size = new System.Drawing.Size(185, 22); this.LoadNamedStateMenuItem.Text = "Load Named State..."; this.LoadNamedStateMenuItem.Click += new System.EventHandler(this.LoadNamedStateMenuItem_Click); // // toolStripSeparator21 // this.toolStripSeparator21.Name = "toolStripSeparator21"; - this.toolStripSeparator21.Size = new System.Drawing.Size(177, 6); + this.toolStripSeparator21.Size = new System.Drawing.Size(182, 6); // // AutoloadLastSlotMenuItem // this.AutoloadLastSlotMenuItem.Name = "AutoloadLastSlotMenuItem"; - this.AutoloadLastSlotMenuItem.Size = new System.Drawing.Size(180, 22); + this.AutoloadLastSlotMenuItem.Size = new System.Drawing.Size(185, 22); this.AutoloadLastSlotMenuItem.Text = "Autoload last Slot"; this.AutoloadLastSlotMenuItem.Click += new System.EventHandler(this.AutoloadLastSlotMenuItem_Click); // @@ -755,77 +756,77 @@ this.SaveToCurrentSlotMenuItem, this.LoadCurrentSlotMenuItem}); this.SaveSlotSubMenu.Name = "SaveSlotSubMenu"; - this.SaveSlotSubMenu.Size = new System.Drawing.Size(159, 22); + this.SaveSlotSubMenu.Size = new System.Drawing.Size(162, 22); this.SaveSlotSubMenu.Text = "Save S&lot"; this.SaveSlotSubMenu.DropDownOpened += new System.EventHandler(this.SaveSlotSubMenu_DropDownOpened); // // SelectSlot0MenuItem // this.SelectSlot0MenuItem.Name = "SelectSlot0MenuItem"; - this.SelectSlot0MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot0MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot0MenuItem.Text = "Select Slot 0"; this.SelectSlot0MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot1MenuItem // this.SelectSlot1MenuItem.Name = "SelectSlot1MenuItem"; - this.SelectSlot1MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot1MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot1MenuItem.Text = "Select Slot 1"; this.SelectSlot1MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot2MenuItem // this.SelectSlot2MenuItem.Name = "SelectSlot2MenuItem"; - this.SelectSlot2MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot2MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot2MenuItem.Text = "Select Slot 2"; this.SelectSlot2MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot3MenuItem // this.SelectSlot3MenuItem.Name = "SelectSlot3MenuItem"; - this.SelectSlot3MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot3MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot3MenuItem.Text = "Select Slot 3"; this.SelectSlot3MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot4MenuItem // this.SelectSlot4MenuItem.Name = "SelectSlot4MenuItem"; - this.SelectSlot4MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot4MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot4MenuItem.Text = "Select Slot 4"; this.SelectSlot4MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot5MenuItem // this.SelectSlot5MenuItem.Name = "SelectSlot5MenuItem"; - this.SelectSlot5MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot5MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot5MenuItem.Text = "Select Slot 5"; this.SelectSlot5MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot6MenuItem // this.SelectSlot6MenuItem.Name = "SelectSlot6MenuItem"; - this.SelectSlot6MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot6MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot6MenuItem.Text = "Select Slot 6"; this.SelectSlot6MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot7MenuItem // this.SelectSlot7MenuItem.Name = "SelectSlot7MenuItem"; - this.SelectSlot7MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot7MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot7MenuItem.Text = "Select Slot 7"; this.SelectSlot7MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot8MenuItem // this.SelectSlot8MenuItem.Name = "SelectSlot8MenuItem"; - this.SelectSlot8MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot8MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot8MenuItem.Text = "Select Slot 8"; this.SelectSlot8MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot9MenuItem // this.SelectSlot9MenuItem.Name = "SelectSlot9MenuItem"; - this.SelectSlot9MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot9MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot9MenuItem.Text = "Select Slot 9"; this.SelectSlot9MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // @@ -833,7 +834,7 @@ // this.PreviousSlotMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MoveLeft; this.PreviousSlotMenuItem.Name = "PreviousSlotMenuItem"; - this.PreviousSlotMenuItem.Size = new System.Drawing.Size(178, 22); + this.PreviousSlotMenuItem.Size = new System.Drawing.Size(183, 22); this.PreviousSlotMenuItem.Text = "Previous Slot"; this.PreviousSlotMenuItem.Click += new System.EventHandler(this.PreviousSlotMenuItem_Click); // @@ -841,26 +842,26 @@ // this.NextSlotMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MoveRight; this.NextSlotMenuItem.Name = "NextSlotMenuItem"; - this.NextSlotMenuItem.Size = new System.Drawing.Size(178, 22); + this.NextSlotMenuItem.Size = new System.Drawing.Size(183, 22); this.NextSlotMenuItem.Text = "Next Slot"; this.NextSlotMenuItem.Click += new System.EventHandler(this.NextSlotMenuItem_Click); // // toolStripSeparator5 // this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(175, 6); + this.toolStripSeparator5.Size = new System.Drawing.Size(180, 6); // // SaveToCurrentSlotMenuItem // this.SaveToCurrentSlotMenuItem.Name = "SaveToCurrentSlotMenuItem"; - this.SaveToCurrentSlotMenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveToCurrentSlotMenuItem.Size = new System.Drawing.Size(183, 22); this.SaveToCurrentSlotMenuItem.Text = "Save to Current Slot"; this.SaveToCurrentSlotMenuItem.Click += new System.EventHandler(this.SaveToCurrentSlotMenuItem_Click); // // LoadCurrentSlotMenuItem // this.LoadCurrentSlotMenuItem.Name = "LoadCurrentSlotMenuItem"; - this.LoadCurrentSlotMenuItem.Size = new System.Drawing.Size(178, 22); + this.LoadCurrentSlotMenuItem.Size = new System.Drawing.Size(183, 22); this.LoadCurrentSlotMenuItem.Text = "Load Current Slot"; this.LoadCurrentSlotMenuItem.Click += new System.EventHandler(this.LoadCurrentSlotMenuItem_Click); // @@ -870,21 +871,21 @@ this.FlushSaveRAMMenuItem}); this.SaveRAMSubMenu.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold); this.SaveRAMSubMenu.Name = "SaveRAMSubMenu"; - this.SaveRAMSubMenu.Size = new System.Drawing.Size(159, 22); + this.SaveRAMSubMenu.Size = new System.Drawing.Size(162, 22); this.SaveRAMSubMenu.Text = "Save &RAM"; // // FlushSaveRAMMenuItem // this.FlushSaveRAMMenuItem.Font = new System.Drawing.Font("Tahoma", 8.25F); this.FlushSaveRAMMenuItem.Name = "FlushSaveRAMMenuItem"; - this.FlushSaveRAMMenuItem.Size = new System.Drawing.Size(150, 22); + this.FlushSaveRAMMenuItem.Size = new System.Drawing.Size(161, 22); this.FlushSaveRAMMenuItem.Text = "&Flush Save Ram"; this.FlushSaveRAMMenuItem.Click += new System.EventHandler(this.FlushSaveRAMMenuItem_Click); // // toolStripMenuItem2 // this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(156, 6); + this.toolStripMenuItem2.Size = new System.Drawing.Size(159, 6); // // MovieSubMenu // @@ -904,7 +905,7 @@ this.FullMovieLoadstatesMenuItem, this.MovieEndSubMenu}); this.MovieSubMenu.Name = "MovieSubMenu"; - this.MovieSubMenu.Size = new System.Drawing.Size(159, 22); + this.MovieSubMenu.Size = new System.Drawing.Size(162, 22); this.MovieSubMenu.Text = "&Movie"; this.MovieSubMenu.DropDownOpened += new System.EventHandler(this.MovieSubMenu_DropDownOpened); // @@ -912,14 +913,14 @@ // this.ReadonlyMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.ReadOnly; this.ReadonlyMenuItem.Name = "ReadonlyMenuItem"; - this.ReadonlyMenuItem.Size = new System.Drawing.Size(231, 22); + this.ReadonlyMenuItem.Size = new System.Drawing.Size(222, 22); this.ReadonlyMenuItem.Text = "Read-only"; this.ReadonlyMenuItem.Click += new System.EventHandler(this.ReadonlyMenuItem_Click); // // toolStripSeparator15 // this.toolStripSeparator15.Name = "toolStripSeparator15"; - this.toolStripSeparator15.Size = new System.Drawing.Size(228, 6); + this.toolStripSeparator15.Size = new System.Drawing.Size(219, 6); // // RecentMovieSubMenu // @@ -927,7 +928,7 @@ this.toolStripSeparator16}); this.RecentMovieSubMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; this.RecentMovieSubMenu.Name = "RecentMovieSubMenu"; - this.RecentMovieSubMenu.Size = new System.Drawing.Size(231, 22); + this.RecentMovieSubMenu.Size = new System.Drawing.Size(222, 22); this.RecentMovieSubMenu.Text = "Recent"; this.RecentMovieSubMenu.DropDownOpened += new System.EventHandler(this.RecentMovieSubMenu_DropDownOpened); // @@ -940,7 +941,7 @@ // this.RecordMovieMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.RecordHS; this.RecordMovieMenuItem.Name = "RecordMovieMenuItem"; - this.RecordMovieMenuItem.Size = new System.Drawing.Size(231, 22); + this.RecordMovieMenuItem.Size = new System.Drawing.Size(222, 22); this.RecordMovieMenuItem.Text = "&Record Movie..."; this.RecordMovieMenuItem.Click += new System.EventHandler(this.RecordMovieMenuItem_Click); // @@ -948,7 +949,7 @@ // this.PlayMovieMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Play; this.PlayMovieMenuItem.Name = "PlayMovieMenuItem"; - this.PlayMovieMenuItem.Size = new System.Drawing.Size(231, 22); + this.PlayMovieMenuItem.Size = new System.Drawing.Size(222, 22); this.PlayMovieMenuItem.Text = "&Play Movie..."; this.PlayMovieMenuItem.Click += new System.EventHandler(this.PlayMovieMenuItem_Click); // @@ -956,7 +957,7 @@ // this.StopMovieMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopMovieMenuItem.Name = "StopMovieMenuItem"; - this.StopMovieMenuItem.Size = new System.Drawing.Size(231, 22); + this.StopMovieMenuItem.Size = new System.Drawing.Size(222, 22); this.StopMovieMenuItem.Text = "Stop Movie"; this.StopMovieMenuItem.Click += new System.EventHandler(this.StopMovieMenuItem_Click); // @@ -964,7 +965,7 @@ // this.PlayFromBeginningMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.restart; this.PlayFromBeginningMenuItem.Name = "PlayFromBeginningMenuItem"; - this.PlayFromBeginningMenuItem.Size = new System.Drawing.Size(231, 22); + this.PlayFromBeginningMenuItem.Size = new System.Drawing.Size(222, 22); this.PlayFromBeginningMenuItem.Text = "Play from Beginning"; this.PlayFromBeginningMenuItem.Click += new System.EventHandler(this.PlayFromBeginningMenuItem_Click); // @@ -972,7 +973,7 @@ // this.ImportMoviesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Import; this.ImportMoviesMenuItem.Name = "ImportMoviesMenuItem"; - this.ImportMoviesMenuItem.Size = new System.Drawing.Size(231, 22); + this.ImportMoviesMenuItem.Size = new System.Drawing.Size(222, 22); this.ImportMoviesMenuItem.Text = "Import Movies..."; this.ImportMoviesMenuItem.Click += new System.EventHandler(this.ImportMovieMenuItem_Click); // @@ -980,7 +981,7 @@ // this.SaveMovieMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs; this.SaveMovieMenuItem.Name = "SaveMovieMenuItem"; - this.SaveMovieMenuItem.Size = new System.Drawing.Size(231, 22); + this.SaveMovieMenuItem.Size = new System.Drawing.Size(222, 22); this.SaveMovieMenuItem.Text = "&Save Movie"; this.SaveMovieMenuItem.Click += new System.EventHandler(this.SaveMovieMenuItem_Click); // @@ -988,26 +989,26 @@ // this.StopMovieWithoutSavingMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopMovieWithoutSavingMenuItem.Name = "StopMovieWithoutSavingMenuItem"; - this.StopMovieWithoutSavingMenuItem.Size = new System.Drawing.Size(231, 22); + this.StopMovieWithoutSavingMenuItem.Size = new System.Drawing.Size(222, 22); this.StopMovieWithoutSavingMenuItem.Text = "Stop Movie without Saving"; this.StopMovieWithoutSavingMenuItem.Click += new System.EventHandler(this.StopMovieWithoutSavingMenuItem_Click); // // toolStripSeparator14 // this.toolStripSeparator14.Name = "toolStripSeparator14"; - this.toolStripSeparator14.Size = new System.Drawing.Size(228, 6); + this.toolStripSeparator14.Size = new System.Drawing.Size(219, 6); // // AutomaticallyBackupMoviesMenuItem // this.AutomaticallyBackupMoviesMenuItem.Name = "AutomaticallyBackupMoviesMenuItem"; - this.AutomaticallyBackupMoviesMenuItem.Size = new System.Drawing.Size(231, 22); + this.AutomaticallyBackupMoviesMenuItem.Size = new System.Drawing.Size(222, 22); this.AutomaticallyBackupMoviesMenuItem.Text = "Automatically Backup Movies"; this.AutomaticallyBackupMoviesMenuItem.Click += new System.EventHandler(this.AutomaticMovieBackupMenuItem_Click); // // FullMovieLoadstatesMenuItem // this.FullMovieLoadstatesMenuItem.Name = "FullMovieLoadstatesMenuItem"; - this.FullMovieLoadstatesMenuItem.Size = new System.Drawing.Size(231, 22); + this.FullMovieLoadstatesMenuItem.Size = new System.Drawing.Size(222, 22); this.FullMovieLoadstatesMenuItem.Text = "Full Movie Loadstates"; this.FullMovieLoadstatesMenuItem.Click += new System.EventHandler(this.FullMovieLoadstatesMenuItem_Click); // @@ -1019,35 +1020,35 @@ this.MovieEndStopMenuItem, this.MovieEndPauseMenuItem}); this.MovieEndSubMenu.Name = "MovieEndSubMenu"; - this.MovieEndSubMenu.Size = new System.Drawing.Size(231, 22); + this.MovieEndSubMenu.Size = new System.Drawing.Size(222, 22); this.MovieEndSubMenu.Text = "On Movie End"; this.MovieEndSubMenu.DropDownOpened += new System.EventHandler(this.MovieEndSubMenu_DropDownOpened); // // MovieEndFinishMenuItem // this.MovieEndFinishMenuItem.Name = "MovieEndFinishMenuItem"; - this.MovieEndFinishMenuItem.Size = new System.Drawing.Size(170, 22); + this.MovieEndFinishMenuItem.Size = new System.Drawing.Size(171, 22); this.MovieEndFinishMenuItem.Text = "Switch to Finished"; this.MovieEndFinishMenuItem.Click += new System.EventHandler(this.MovieEndFinishMenuItem_Click); // // MovieEndRecordMenuItem // this.MovieEndRecordMenuItem.Name = "MovieEndRecordMenuItem"; - this.MovieEndRecordMenuItem.Size = new System.Drawing.Size(170, 22); + this.MovieEndRecordMenuItem.Size = new System.Drawing.Size(171, 22); this.MovieEndRecordMenuItem.Text = "Switch To Record"; this.MovieEndRecordMenuItem.Click += new System.EventHandler(this.MovieEndRecordMenuItem_Click); // // MovieEndStopMenuItem // this.MovieEndStopMenuItem.Name = "MovieEndStopMenuItem"; - this.MovieEndStopMenuItem.Size = new System.Drawing.Size(170, 22); + this.MovieEndStopMenuItem.Size = new System.Drawing.Size(171, 22); this.MovieEndStopMenuItem.Text = "Stop"; this.MovieEndStopMenuItem.Click += new System.EventHandler(this.MovieEndStopMenuItem_Click); // // MovieEndPauseMenuItem // this.MovieEndPauseMenuItem.Name = "MovieEndPauseMenuItem"; - this.MovieEndPauseMenuItem.Size = new System.Drawing.Size(170, 22); + this.MovieEndPauseMenuItem.Size = new System.Drawing.Size(171, 22); this.MovieEndPauseMenuItem.Text = "Pause"; this.MovieEndPauseMenuItem.Click += new System.EventHandler(this.MovieEndPauseMenuItem_Click); // @@ -1055,20 +1056,29 @@ // this.AVSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.RecordAVMenuItem, + this.ConfigAndRecordAVMenuItem, this.StopAVIMenuItem, this.toolStripSeparator19, this.CaptureOSDMenuItem, this.SynclessRecordingMenuItem}); this.AVSubMenu.Name = "AVSubMenu"; - this.AVSubMenu.Size = new System.Drawing.Size(159, 22); + this.AVSubMenu.Size = new System.Drawing.Size(162, 22); this.AVSubMenu.Text = "&AVI/WAV"; this.AVSubMenu.DropDownOpened += new System.EventHandler(this.AVSubMenu_DropDownOpened); // + // ConfigAndRecordAVMenuItem + // + this.ConfigAndRecordAVMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AVI; + this.ConfigAndRecordAVMenuItem.Name = "ConfigAndRecordAVMenuItem"; + this.ConfigAndRecordAVMenuItem.Size = new System.Drawing.Size(221, 22); + this.ConfigAndRecordAVMenuItem.Text = "Config and Record AVI/WAV"; + this.ConfigAndRecordAVMenuItem.Click += new System.EventHandler(this.ConfigAndRecordAVMenuItem_Click); + // // RecordAVMenuItem // - this.RecordAVMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AVI; + this.RecordAVMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.RecordHS; this.RecordAVMenuItem.Name = "RecordAVMenuItem"; - this.RecordAVMenuItem.Size = new System.Drawing.Size(206, 22); + this.RecordAVMenuItem.Size = new System.Drawing.Size(221, 22); this.RecordAVMenuItem.Text = "&Record AVI/WAV"; this.RecordAVMenuItem.Click += new System.EventHandler(this.RecordAVMenuItem_Click); // @@ -1076,26 +1086,26 @@ // this.StopAVIMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopAVIMenuItem.Name = "StopAVIMenuItem"; - this.StopAVIMenuItem.Size = new System.Drawing.Size(206, 22); + this.StopAVIMenuItem.Size = new System.Drawing.Size(221, 22); this.StopAVIMenuItem.Text = "&Stop AVI/WAV"; this.StopAVIMenuItem.Click += new System.EventHandler(this.StopAVMenuItem_Click); // // toolStripSeparator19 // this.toolStripSeparator19.Name = "toolStripSeparator19"; - this.toolStripSeparator19.Size = new System.Drawing.Size(203, 6); + this.toolStripSeparator19.Size = new System.Drawing.Size(218, 6); // // CaptureOSDMenuItem // this.CaptureOSDMenuItem.Name = "CaptureOSDMenuItem"; - this.CaptureOSDMenuItem.Size = new System.Drawing.Size(206, 22); + this.CaptureOSDMenuItem.Size = new System.Drawing.Size(221, 22); this.CaptureOSDMenuItem.Text = "Capture OSD"; this.CaptureOSDMenuItem.Click += new System.EventHandler(this.CaptureOSDMenuItem_Click); // // SynclessRecordingMenuItem // this.SynclessRecordingMenuItem.Name = "SynclessRecordingMenuItem"; - this.SynclessRecordingMenuItem.Size = new System.Drawing.Size(206, 22); + this.SynclessRecordingMenuItem.Size = new System.Drawing.Size(221, 22); this.SynclessRecordingMenuItem.Text = "S&yncless Recording Tools"; this.SynclessRecordingMenuItem.Click += new System.EventHandler(this.SynclessRecordingMenuItem_Click); // @@ -1109,7 +1119,7 @@ this.toolStripSeparator20, this.ScreenshotCaptureOSDMenuItem1}); this.ScreenshotSubMenu.Name = "ScreenshotSubMenu"; - this.ScreenshotSubMenu.Size = new System.Drawing.Size(159, 22); + this.ScreenshotSubMenu.Size = new System.Drawing.Size(162, 22); this.ScreenshotSubMenu.Text = "Scree&nshot"; this.ScreenshotSubMenu.DropDownOpening += new System.EventHandler(this.ScreenshotSubMenu_DropDownOpening); // @@ -1117,14 +1127,14 @@ // this.ScreenshotMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.camera; this.ScreenshotMenuItem.Name = "ScreenshotMenuItem"; - this.ScreenshotMenuItem.Size = new System.Drawing.Size(317, 22); + this.ScreenshotMenuItem.Size = new System.Drawing.Size(307, 22); this.ScreenshotMenuItem.Text = "Screenshot"; this.ScreenshotMenuItem.Click += new System.EventHandler(this.ScreenshotMenuItem_Click); // // ScreenshotAsMenuItem // this.ScreenshotAsMenuItem.Name = "ScreenshotAsMenuItem"; - this.ScreenshotAsMenuItem.Size = new System.Drawing.Size(317, 22); + this.ScreenshotAsMenuItem.Size = new System.Drawing.Size(307, 22); this.ScreenshotAsMenuItem.Text = "Screenshot As..."; this.ScreenshotAsMenuItem.Click += new System.EventHandler(this.ScreenshotAsMenuItem_Click); // @@ -1132,7 +1142,7 @@ // this.ScreenshotClipboardMenuItem.Name = "ScreenshotClipboardMenuItem"; this.ScreenshotClipboardMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C))); - this.ScreenshotClipboardMenuItem.Size = new System.Drawing.Size(317, 22); + this.ScreenshotClipboardMenuItem.Size = new System.Drawing.Size(307, 22); this.ScreenshotClipboardMenuItem.Text = "Screenshot (raw) -> Clipboard"; this.ScreenshotClipboardMenuItem.Click += new System.EventHandler(this.ScreenshotClipboardMenuItem_Click); // @@ -1141,32 +1151,32 @@ this.ScreenshotClientClipboardMenuItem.Name = "ScreenshotClientClipboardMenuItem"; this.ScreenshotClientClipboardMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.C))); - this.ScreenshotClientClipboardMenuItem.Size = new System.Drawing.Size(317, 22); + this.ScreenshotClientClipboardMenuItem.Size = new System.Drawing.Size(307, 22); this.ScreenshotClientClipboardMenuItem.Text = "Screenshot (client) -> Clipboard"; this.ScreenshotClientClipboardMenuItem.Click += new System.EventHandler(this.ScreenshotClientClipboardMenuItem_Click); // // toolStripSeparator20 // this.toolStripSeparator20.Name = "toolStripSeparator20"; - this.toolStripSeparator20.Size = new System.Drawing.Size(314, 6); + this.toolStripSeparator20.Size = new System.Drawing.Size(304, 6); // // ScreenshotCaptureOSDMenuItem1 // this.ScreenshotCaptureOSDMenuItem1.Name = "ScreenshotCaptureOSDMenuItem1"; - this.ScreenshotCaptureOSDMenuItem1.Size = new System.Drawing.Size(317, 22); + this.ScreenshotCaptureOSDMenuItem1.Size = new System.Drawing.Size(307, 22); this.ScreenshotCaptureOSDMenuItem1.Text = "Capture OSD"; this.ScreenshotCaptureOSDMenuItem1.Click += new System.EventHandler(this.ScreenshotCaptureOSDMenuItem_Click); // // toolStripSeparator4 // this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(156, 6); + this.toolStripSeparator4.Size = new System.Drawing.Size(159, 6); // // ExitMenuItem // this.ExitMenuItem.Name = "ExitMenuItem"; this.ExitMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.ExitMenuItem.Size = new System.Drawing.Size(159, 22); + this.ExitMenuItem.Size = new System.Drawing.Size(162, 22); this.ExitMenuItem.Text = "E&xit"; this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); // @@ -1179,7 +1189,7 @@ this.SoftResetMenuItem, this.HardResetMenuItem}); this.EmulationSubMenu.Name = "EmulationSubMenu"; - this.EmulationSubMenu.Size = new System.Drawing.Size(73, 19); + this.EmulationSubMenu.Size = new System.Drawing.Size(65, 17); this.EmulationSubMenu.Text = "&Emulation"; this.EmulationSubMenu.DropDownOpened += new System.EventHandler(this.emulationToolStripMenuItem_DropDownOpened); // @@ -1187,7 +1197,7 @@ // this.PauseMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Pause; this.PauseMenuItem.Name = "PauseMenuItem"; - this.PauseMenuItem.Size = new System.Drawing.Size(140, 22); + this.PauseMenuItem.Size = new System.Drawing.Size(146, 22); this.PauseMenuItem.Text = "&Pause"; this.PauseMenuItem.Click += new System.EventHandler(this.PauseMenuItem_Click); // @@ -1195,26 +1205,26 @@ // this.RebootCoreMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.reboot; this.RebootCoreMenuItem.Name = "RebootCoreMenuItem"; - this.RebootCoreMenuItem.Size = new System.Drawing.Size(140, 22); + this.RebootCoreMenuItem.Size = new System.Drawing.Size(146, 22); this.RebootCoreMenuItem.Text = "&Reboot Core"; this.RebootCoreMenuItem.Click += new System.EventHandler(this.PowerMenuItem_Click); // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(137, 6); + this.toolStripSeparator1.Size = new System.Drawing.Size(143, 6); // // SoftResetMenuItem // this.SoftResetMenuItem.Name = "SoftResetMenuItem"; - this.SoftResetMenuItem.Size = new System.Drawing.Size(140, 22); + this.SoftResetMenuItem.Size = new System.Drawing.Size(146, 22); this.SoftResetMenuItem.Text = "&Soft Reset"; this.SoftResetMenuItem.Click += new System.EventHandler(this.SoftResetMenuItem_Click); // // HardResetMenuItem // this.HardResetMenuItem.Name = "HardResetMenuItem"; - this.HardResetMenuItem.Size = new System.Drawing.Size(140, 22); + this.HardResetMenuItem.Size = new System.Drawing.Size(146, 22); this.HardResetMenuItem.Text = "&Hard Reset"; this.HardResetMenuItem.Click += new System.EventHandler(this.HardResetMenuItem_Click); // @@ -1235,7 +1245,7 @@ this.DisplayMessagesMenuItem, this.DisplayLogWindowMenuItem}); this.ViewSubMenu.Name = "ViewSubMenu"; - this.ViewSubMenu.Size = new System.Drawing.Size(44, 19); + this.ViewSubMenu.Size = new System.Drawing.Size(41, 17); this.ViewSubMenu.Text = "&View"; this.ViewSubMenu.DropDownOpened += new System.EventHandler(this.ViewSubMenu_DropDownOpened); // @@ -1256,42 +1266,42 @@ // x1MenuItem // this.x1MenuItem.Name = "x1MenuItem"; - this.x1MenuItem.Size = new System.Drawing.Size(96, 22); + this.x1MenuItem.Size = new System.Drawing.Size(105, 22); this.x1MenuItem.Text = "&1x"; this.x1MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // x2MenuItem // this.x2MenuItem.Name = "x2MenuItem"; - this.x2MenuItem.Size = new System.Drawing.Size(96, 22); + this.x2MenuItem.Size = new System.Drawing.Size(105, 22); this.x2MenuItem.Text = "&2x"; this.x2MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // x3MenuItem // this.x3MenuItem.Name = "x3MenuItem"; - this.x3MenuItem.Size = new System.Drawing.Size(96, 22); + this.x3MenuItem.Size = new System.Drawing.Size(105, 22); this.x3MenuItem.Text = "&3x"; this.x3MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // x4MenuItem // this.x4MenuItem.Name = "x4MenuItem"; - this.x4MenuItem.Size = new System.Drawing.Size(96, 22); + this.x4MenuItem.Size = new System.Drawing.Size(105, 22); this.x4MenuItem.Text = "&4x"; this.x4MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // x5MenuItem // this.x5MenuItem.Name = "x5MenuItem"; - this.x5MenuItem.Size = new System.Drawing.Size(96, 22); + this.x5MenuItem.Size = new System.Drawing.Size(105, 22); this.x5MenuItem.Text = "&5x"; this.x5MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // mzMenuItem // this.mzMenuItem.Name = "mzMenuItem"; - this.mzMenuItem.Size = new System.Drawing.Size(96, 22); + this.mzMenuItem.Size = new System.Drawing.Size(105, 22); this.mzMenuItem.Text = "&Max"; this.mzMenuItem.Click += new System.EventHandler(this.WindowSize_Click); // @@ -1399,7 +1409,7 @@ this.SaveConfigMenuItem, this.LoadConfigMenuItem}); this.ConfigSubMenu.Name = "ConfigSubMenu"; - this.ConfigSubMenu.Size = new System.Drawing.Size(55, 19); + this.ConfigSubMenu.Size = new System.Drawing.Size(50, 17); this.ConfigSubMenu.Text = "&Config"; this.ConfigSubMenu.DropDownOpened += new System.EventHandler(this.ConfigSubMenu_DropDownOpened); // @@ -1407,7 +1417,7 @@ // this.ControllersMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.ControllersMenuItem.Name = "ControllersMenuItem"; - this.ControllersMenuItem.Size = new System.Drawing.Size(169, 22); + this.ControllersMenuItem.Size = new System.Drawing.Size(176, 22); this.ControllersMenuItem.Text = "&Controllers..."; this.ControllersMenuItem.Click += new System.EventHandler(this.ControllersMenuItem_Click); // @@ -1415,7 +1425,7 @@ // this.HotkeysMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.HotKeys; this.HotkeysMenuItem.Name = "HotkeysMenuItem"; - this.HotkeysMenuItem.Size = new System.Drawing.Size(169, 22); + this.HotkeysMenuItem.Size = new System.Drawing.Size(176, 22); this.HotkeysMenuItem.Text = "&Hotkeys..."; this.HotkeysMenuItem.Click += new System.EventHandler(this.HotkeysMenuItem_Click); // @@ -1423,7 +1433,7 @@ // this.DisplayConfigMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("DisplayConfigMenuItem.Image"))); this.DisplayConfigMenuItem.Name = "DisplayConfigMenuItem"; - this.DisplayConfigMenuItem.Size = new System.Drawing.Size(169, 22); + this.DisplayConfigMenuItem.Size = new System.Drawing.Size(176, 22); this.DisplayConfigMenuItem.Text = "Display..."; this.DisplayConfigMenuItem.Click += new System.EventHandler(this.DisplayConfigMenuItem_Click); // @@ -1431,7 +1441,7 @@ // this.SoundMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AudioHS; this.SoundMenuItem.Name = "SoundMenuItem"; - this.SoundMenuItem.Size = new System.Drawing.Size(169, 22); + this.SoundMenuItem.Size = new System.Drawing.Size(176, 22); this.SoundMenuItem.Text = "&Sound..."; this.SoundMenuItem.Click += new System.EventHandler(this.SoundMenuItem_Click); // @@ -1439,7 +1449,7 @@ // this.PathsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CopyFolderHS; this.PathsMenuItem.Name = "PathsMenuItem"; - this.PathsMenuItem.Size = new System.Drawing.Size(169, 22); + this.PathsMenuItem.Size = new System.Drawing.Size(176, 22); this.PathsMenuItem.Text = "Paths..."; this.PathsMenuItem.Click += new System.EventHandler(this.PathsMenuItem_Click); // @@ -1447,7 +1457,7 @@ // this.FirmwaresMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("FirmwaresMenuItem.Image"))); this.FirmwaresMenuItem.Name = "FirmwaresMenuItem"; - this.FirmwaresMenuItem.Size = new System.Drawing.Size(169, 22); + this.FirmwaresMenuItem.Size = new System.Drawing.Size(176, 22); this.FirmwaresMenuItem.Text = "&Firmwares..."; this.FirmwaresMenuItem.Click += new System.EventHandler(this.FirmwaresMenuItem_Click); // @@ -1455,7 +1465,7 @@ // this.MessagesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MessageConfig; this.MessagesMenuItem.Name = "MessagesMenuItem"; - this.MessagesMenuItem.Size = new System.Drawing.Size(169, 22); + this.MessagesMenuItem.Size = new System.Drawing.Size(176, 22); this.MessagesMenuItem.Text = "&Messages..."; this.MessagesMenuItem.Click += new System.EventHandler(this.MessagesMenuItem_Click); // @@ -1463,7 +1473,7 @@ // this.AutofireMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lightning; this.AutofireMenuItem.Name = "AutofireMenuItem"; - this.AutofireMenuItem.Size = new System.Drawing.Size(169, 22); + this.AutofireMenuItem.Size = new System.Drawing.Size(176, 22); this.AutofireMenuItem.Text = "&Autofire..."; this.AutofireMenuItem.Click += new System.EventHandler(this.AutofireMenuItem_Click); // @@ -1471,21 +1481,21 @@ // this.RewindOptionsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Previous; this.RewindOptionsMenuItem.Name = "RewindOptionsMenuItem"; - this.RewindOptionsMenuItem.Size = new System.Drawing.Size(169, 22); + this.RewindOptionsMenuItem.Size = new System.Drawing.Size(176, 22); this.RewindOptionsMenuItem.Text = "&Rewind && States..."; this.RewindOptionsMenuItem.Click += new System.EventHandler(this.RewindOptionsMenuItem_Click); // // extensionsToolStripMenuItem // this.extensionsToolStripMenuItem.Name = "extensionsToolStripMenuItem"; - this.extensionsToolStripMenuItem.Size = new System.Drawing.Size(169, 22); + this.extensionsToolStripMenuItem.Size = new System.Drawing.Size(176, 22); this.extensionsToolStripMenuItem.Text = "File Extensions..."; this.extensionsToolStripMenuItem.Click += new System.EventHandler(this.FileExtensionsMenuItem_Click); // // ClientOptionsMenuItem // this.ClientOptionsMenuItem.Name = "ClientOptionsMenuItem"; - this.ClientOptionsMenuItem.Size = new System.Drawing.Size(169, 22); + this.ClientOptionsMenuItem.Size = new System.Drawing.Size(176, 22); this.ClientOptionsMenuItem.Text = "&Customize..."; this.ClientOptionsMenuItem.Click += new System.EventHandler(this.CustomizeMenuItem_Click); // @@ -1493,14 +1503,14 @@ // this.ProfilesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.user_blue_small; this.ProfilesMenuItem.Name = "ProfilesMenuItem"; - this.ProfilesMenuItem.Size = new System.Drawing.Size(169, 22); + this.ProfilesMenuItem.Size = new System.Drawing.Size(176, 22); this.ProfilesMenuItem.Text = "&Profiles..."; this.ProfilesMenuItem.Click += new System.EventHandler(this.ProfilesMenuItem_Click); // // toolStripSeparator9 // this.toolStripSeparator9.Name = "toolStripSeparator9"; - this.toolStripSeparator9.Size = new System.Drawing.Size(166, 6); + this.toolStripSeparator9.Size = new System.Drawing.Size(173, 6); // // SpeedSkipSubMenu // @@ -1523,66 +1533,66 @@ this.Speed200MenuItem, this.Speed400MenuItem}); this.SpeedSkipSubMenu.Name = "SpeedSkipSubMenu"; - this.SpeedSkipSubMenu.Size = new System.Drawing.Size(169, 22); + this.SpeedSkipSubMenu.Size = new System.Drawing.Size(176, 22); this.SpeedSkipSubMenu.Text = "Speed/Skip"; this.SpeedSkipSubMenu.DropDownOpened += new System.EventHandler(this.FrameSkipMenuItem_DropDownOpened); // // ClockThrottleMenuItem // this.ClockThrottleMenuItem.Name = "ClockThrottleMenuItem"; - this.ClockThrottleMenuItem.Size = new System.Drawing.Size(202, 22); + this.ClockThrottleMenuItem.Size = new System.Drawing.Size(192, 22); this.ClockThrottleMenuItem.Text = "Clock Throttle"; this.ClockThrottleMenuItem.Click += new System.EventHandler(this.ClockThrottleMenuItem_Click); // // AudioThrottleMenuItem // this.AudioThrottleMenuItem.Name = "AudioThrottleMenuItem"; - this.AudioThrottleMenuItem.Size = new System.Drawing.Size(202, 22); + this.AudioThrottleMenuItem.Size = new System.Drawing.Size(192, 22); this.AudioThrottleMenuItem.Text = "Audio Throttle"; this.AudioThrottleMenuItem.Click += new System.EventHandler(this.AudioThrottleMenuItem_Click); // // VsyncThrottleMenuItem // this.VsyncThrottleMenuItem.Name = "VsyncThrottleMenuItem"; - this.VsyncThrottleMenuItem.Size = new System.Drawing.Size(202, 22); + this.VsyncThrottleMenuItem.Size = new System.Drawing.Size(192, 22); this.VsyncThrottleMenuItem.Text = "VSync Throttle"; this.VsyncThrottleMenuItem.Click += new System.EventHandler(this.VsyncThrottleMenuItem_Click); // // toolStripSeparator27 // this.toolStripSeparator27.Name = "toolStripSeparator27"; - this.toolStripSeparator27.Size = new System.Drawing.Size(199, 6); + this.toolStripSeparator27.Size = new System.Drawing.Size(189, 6); // // VsyncEnabledMenuItem // this.VsyncEnabledMenuItem.Name = "VsyncEnabledMenuItem"; - this.VsyncEnabledMenuItem.Size = new System.Drawing.Size(202, 22); + this.VsyncEnabledMenuItem.Size = new System.Drawing.Size(192, 22); this.VsyncEnabledMenuItem.Text = "VSync Enabled"; this.VsyncEnabledMenuItem.Click += new System.EventHandler(this.VsyncEnabledMenuItem_Click); // // toolStripMenuItem3 // this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(199, 6); + this.toolStripMenuItem3.Size = new System.Drawing.Size(189, 6); // // miUnthrottled // this.miUnthrottled.Name = "miUnthrottled"; - this.miUnthrottled.Size = new System.Drawing.Size(202, 22); + this.miUnthrottled.Size = new System.Drawing.Size(192, 22); this.miUnthrottled.Text = "Unthrottled"; this.miUnthrottled.Click += new System.EventHandler(this.miUnthrottled_Click); // // MinimizeSkippingMenuItem // this.MinimizeSkippingMenuItem.Name = "MinimizeSkippingMenuItem"; - this.MinimizeSkippingMenuItem.Size = new System.Drawing.Size(202, 22); + this.MinimizeSkippingMenuItem.Size = new System.Drawing.Size(192, 22); this.MinimizeSkippingMenuItem.Text = "Auto-minimize skipping"; this.MinimizeSkippingMenuItem.Click += new System.EventHandler(this.MinimizeSkippingMenuItem_Click); // // NeverSkipMenuItem // this.NeverSkipMenuItem.Name = "NeverSkipMenuItem"; - this.NeverSkipMenuItem.Size = new System.Drawing.Size(202, 22); + this.NeverSkipMenuItem.Size = new System.Drawing.Size(192, 22); this.NeverSkipMenuItem.Text = "Skip 0 (never)"; this.NeverSkipMenuItem.Click += new System.EventHandler(this.NeverSkipMenuItem_Click); // @@ -1599,116 +1609,116 @@ this.Frameskip8MenuItem, this.Frameskip9MenuItem}); this.toolStripMenuItem17.Name = "toolStripMenuItem17"; - this.toolStripMenuItem17.Size = new System.Drawing.Size(202, 22); + this.toolStripMenuItem17.Size = new System.Drawing.Size(192, 22); this.toolStripMenuItem17.Text = "Skip 1..9"; // // Frameskip1MenuItem // this.Frameskip1MenuItem.Name = "Frameskip1MenuItem"; - this.Frameskip1MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip1MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip1MenuItem.Text = "1"; this.Frameskip1MenuItem.Click += new System.EventHandler(this.Frameskip1MenuItem_Click); // // Frameskip2MenuItem // this.Frameskip2MenuItem.Name = "Frameskip2MenuItem"; - this.Frameskip2MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip2MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip2MenuItem.Text = "2"; this.Frameskip2MenuItem.Click += new System.EventHandler(this.Frameskip2MenuItem_Click); // // Frameskip3MenuItem // this.Frameskip3MenuItem.Name = "Frameskip3MenuItem"; - this.Frameskip3MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip3MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip3MenuItem.Text = "3"; this.Frameskip3MenuItem.Click += new System.EventHandler(this.Frameskip3MenuItem_Click); // // Frameskip4MenuItem // this.Frameskip4MenuItem.Name = "Frameskip4MenuItem"; - this.Frameskip4MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip4MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip4MenuItem.Text = "4"; this.Frameskip4MenuItem.Click += new System.EventHandler(this.Frameskip4MenuItem_Click); // // Frameskip5MenuItem // this.Frameskip5MenuItem.Name = "Frameskip5MenuItem"; - this.Frameskip5MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip5MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip5MenuItem.Text = "5"; this.Frameskip5MenuItem.Click += new System.EventHandler(this.Frameskip5MenuItem_Click); // // Frameskip6MenuItem // this.Frameskip6MenuItem.Name = "Frameskip6MenuItem"; - this.Frameskip6MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip6MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip6MenuItem.Text = "6"; this.Frameskip6MenuItem.Click += new System.EventHandler(this.Frameskip6MenuItem_Click); // // Frameskip7MenuItem // this.Frameskip7MenuItem.Name = "Frameskip7MenuItem"; - this.Frameskip7MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip7MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip7MenuItem.Text = "7"; this.Frameskip7MenuItem.Click += new System.EventHandler(this.Frameskip7MenuItem_Click); // // Frameskip8MenuItem // this.Frameskip8MenuItem.Name = "Frameskip8MenuItem"; - this.Frameskip8MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip8MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip8MenuItem.Text = "8"; this.Frameskip8MenuItem.Click += new System.EventHandler(this.Frameskip8MenuItem_Click); // // Frameskip9MenuItem // this.Frameskip9MenuItem.Name = "Frameskip9MenuItem"; - this.Frameskip9MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip9MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip9MenuItem.Text = "9"; this.Frameskip9MenuItem.Click += new System.EventHandler(this.Frameskip9MenuItem_Click); // // toolStripMenuItem5 // this.toolStripMenuItem5.Name = "toolStripMenuItem5"; - this.toolStripMenuItem5.Size = new System.Drawing.Size(199, 6); + this.toolStripMenuItem5.Size = new System.Drawing.Size(189, 6); // // Speed50MenuItem // this.Speed50MenuItem.Name = "Speed50MenuItem"; - this.Speed50MenuItem.Size = new System.Drawing.Size(202, 22); + this.Speed50MenuItem.Size = new System.Drawing.Size(192, 22); this.Speed50MenuItem.Text = "Speed 50%"; this.Speed50MenuItem.Click += new System.EventHandler(this.Speed50MenuItem_Click); // // Speed75MenuItem // this.Speed75MenuItem.Name = "Speed75MenuItem"; - this.Speed75MenuItem.Size = new System.Drawing.Size(202, 22); + this.Speed75MenuItem.Size = new System.Drawing.Size(192, 22); this.Speed75MenuItem.Text = "Speed 75%"; this.Speed75MenuItem.Click += new System.EventHandler(this.Speed75MenuItem_Click); // // Speed100MenuItem // this.Speed100MenuItem.Name = "Speed100MenuItem"; - this.Speed100MenuItem.Size = new System.Drawing.Size(202, 22); + this.Speed100MenuItem.Size = new System.Drawing.Size(192, 22); this.Speed100MenuItem.Text = "Speed 100%"; this.Speed100MenuItem.Click += new System.EventHandler(this.Speed100MenuItem_Click); // // Speed150MenuItem // this.Speed150MenuItem.Name = "Speed150MenuItem"; - this.Speed150MenuItem.Size = new System.Drawing.Size(202, 22); + this.Speed150MenuItem.Size = new System.Drawing.Size(192, 22); this.Speed150MenuItem.Text = "Speed 150%"; this.Speed150MenuItem.Click += new System.EventHandler(this.Speed150MenuItem_Click); // // Speed200MenuItem // this.Speed200MenuItem.Name = "Speed200MenuItem"; - this.Speed200MenuItem.Size = new System.Drawing.Size(202, 22); + this.Speed200MenuItem.Size = new System.Drawing.Size(192, 22); this.Speed200MenuItem.Text = "Speed 200%"; this.Speed200MenuItem.Click += new System.EventHandler(this.Speed200MenuItem_Click); // // Speed400MenuItem // this.Speed400MenuItem.Name = "Speed400MenuItem"; - this.Speed400MenuItem.Size = new System.Drawing.Size(202, 22); + this.Speed400MenuItem.Size = new System.Drawing.Size(192, 22); this.Speed400MenuItem.Text = "Speed 400%"; this.Speed400MenuItem.Click += new System.EventHandler(this.Speed400MenuItem_Click); // @@ -1719,28 +1729,28 @@ this.InputOverHkMenuItem, this.HkOverInputMenuItem}); this.KeyPrioritySubMenu.Name = "KeyPrioritySubMenu"; - this.KeyPrioritySubMenu.Size = new System.Drawing.Size(169, 22); + this.KeyPrioritySubMenu.Size = new System.Drawing.Size(176, 22); this.KeyPrioritySubMenu.Text = "Key Priority"; this.KeyPrioritySubMenu.DropDownOpened += new System.EventHandler(this.KeyPriorityMenuItem_DropDownOpened); // // BothHkAndControllerMenuItem // this.BothHkAndControllerMenuItem.Name = "BothHkAndControllerMenuItem"; - this.BothHkAndControllerMenuItem.Size = new System.Drawing.Size(229, 22); + this.BothHkAndControllerMenuItem.Size = new System.Drawing.Size(225, 22); this.BothHkAndControllerMenuItem.Text = "Both Hotkeys and Controllers"; this.BothHkAndControllerMenuItem.Click += new System.EventHandler(this.BothHkAndControllerMenuItem_Click); // // InputOverHkMenuItem // this.InputOverHkMenuItem.Name = "InputOverHkMenuItem"; - this.InputOverHkMenuItem.Size = new System.Drawing.Size(229, 22); + this.InputOverHkMenuItem.Size = new System.Drawing.Size(225, 22); this.InputOverHkMenuItem.Text = "Input overrides Hotkeys"; this.InputOverHkMenuItem.Click += new System.EventHandler(this.InputOverHkMenuItem_Click); // // HkOverInputMenuItem // this.HkOverInputMenuItem.Name = "HkOverInputMenuItem"; - this.HkOverInputMenuItem.Size = new System.Drawing.Size(229, 22); + this.HkOverInputMenuItem.Size = new System.Drawing.Size(225, 22); this.HkOverInputMenuItem.Text = "Hotkeys override Input"; this.HkOverInputMenuItem.Click += new System.EventHandler(this.HkOverInputMenuItem_Click); // @@ -1755,68 +1765,68 @@ this.N64VideoPluginSettingsMenuItem, this.setLibretroCoreToolStripMenuItem}); this.CoresSubMenu.Name = "CoresSubMenu"; - this.CoresSubMenu.Size = new System.Drawing.Size(169, 22); + this.CoresSubMenu.Size = new System.Drawing.Size(176, 22); this.CoresSubMenu.Text = "Cores"; this.CoresSubMenu.DropDownOpened += new System.EventHandler(this.CoresSubMenu_DropDownOpened); // // GBInSGBMenuItem // this.GBInSGBMenuItem.Name = "GBInSGBMenuItem"; - this.GBInSGBMenuItem.Size = new System.Drawing.Size(210, 22); + this.GBInSGBMenuItem.Size = new System.Drawing.Size(206, 22); this.GBInSGBMenuItem.Text = "GB in SGB"; this.GBInSGBMenuItem.Click += new System.EventHandler(this.GBInSGBMenuItem_Click); // // NesInQuickNESMenuItem // this.NesInQuickNESMenuItem.Name = "NesInQuickNESMenuItem"; - this.NesInQuickNESMenuItem.Size = new System.Drawing.Size(210, 22); + this.NesInQuickNESMenuItem.Size = new System.Drawing.Size(206, 22); this.NesInQuickNESMenuItem.Text = "NES with QuickNES"; this.NesInQuickNESMenuItem.Click += new System.EventHandler(this.NesInQuickNESMenuItem_Click); // // SnesWithSnes9xMenuItem // this.SnesWithSnes9xMenuItem.Name = "SnesWithSnes9xMenuItem"; - this.SnesWithSnes9xMenuItem.Size = new System.Drawing.Size(210, 22); + this.SnesWithSnes9xMenuItem.Size = new System.Drawing.Size(206, 22); this.SnesWithSnes9xMenuItem.Text = "SNES with Snes9x"; this.SnesWithSnes9xMenuItem.Click += new System.EventHandler(this.SnesWithSnes9xMenuItem_Click); // // gBAWithMGBAToolStripMenuItem // this.gBAWithMGBAToolStripMenuItem.Name = "gBAWithMGBAToolStripMenuItem"; - this.gBAWithMGBAToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.gBAWithMGBAToolStripMenuItem.Size = new System.Drawing.Size(206, 22); this.gBAWithMGBAToolStripMenuItem.Text = "GBA with mGBA"; this.gBAWithMGBAToolStripMenuItem.Click += new System.EventHandler(this.gBAWithMGBAToolStripMenuItem_Click); // // toolStripSeparator8 // this.toolStripSeparator8.Name = "toolStripSeparator8"; - this.toolStripSeparator8.Size = new System.Drawing.Size(207, 6); + this.toolStripSeparator8.Size = new System.Drawing.Size(203, 6); // // N64VideoPluginSettingsMenuItem // this.N64VideoPluginSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.monitor; this.N64VideoPluginSettingsMenuItem.Name = "N64VideoPluginSettingsMenuItem"; - this.N64VideoPluginSettingsMenuItem.Size = new System.Drawing.Size(210, 22); + this.N64VideoPluginSettingsMenuItem.Size = new System.Drawing.Size(206, 22); this.N64VideoPluginSettingsMenuItem.Text = "N64 Video Plugin Settings"; this.N64VideoPluginSettingsMenuItem.Click += new System.EventHandler(this.N64VideoPluginSettingsMenuItem_Click); // // setLibretroCoreToolStripMenuItem // this.setLibretroCoreToolStripMenuItem.Name = "setLibretroCoreToolStripMenuItem"; - this.setLibretroCoreToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.setLibretroCoreToolStripMenuItem.Size = new System.Drawing.Size(206, 22); this.setLibretroCoreToolStripMenuItem.Text = "Set Libretro Core"; this.setLibretroCoreToolStripMenuItem.Click += new System.EventHandler(this.setLibretroCoreToolStripMenuItem_Click); // // toolStripSeparator10 // this.toolStripSeparator10.Name = "toolStripSeparator10"; - this.toolStripSeparator10.Size = new System.Drawing.Size(166, 6); + this.toolStripSeparator10.Size = new System.Drawing.Size(173, 6); // // SaveConfigMenuItem // this.SaveConfigMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Save; this.SaveConfigMenuItem.Name = "SaveConfigMenuItem"; - this.SaveConfigMenuItem.Size = new System.Drawing.Size(169, 22); + this.SaveConfigMenuItem.Size = new System.Drawing.Size(176, 22); this.SaveConfigMenuItem.Text = "Save Config"; this.SaveConfigMenuItem.Click += new System.EventHandler(this.SaveConfigMenuItem_Click); // @@ -1824,7 +1834,7 @@ // this.LoadConfigMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.LoadConfig; this.LoadConfigMenuItem.Name = "LoadConfigMenuItem"; - this.LoadConfigMenuItem.Size = new System.Drawing.Size(169, 22); + this.LoadConfigMenuItem.Size = new System.Drawing.Size(176, 22); this.LoadConfigMenuItem.Text = "Load Config"; this.LoadConfigMenuItem.Click += new System.EventHandler(this.LoadConfigMenuItem_Click); // @@ -1853,7 +1863,7 @@ this.gameSharkConverterToolStripMenuItem, this.batchRunnerToolStripMenuItem}); this.ToolsSubMenu.Name = "ToolsSubMenu"; - this.ToolsSubMenu.Size = new System.Drawing.Size(47, 19); + this.ToolsSubMenu.Size = new System.Drawing.Size(44, 17); this.ToolsSubMenu.Text = "&Tools"; this.ToolsSubMenu.DropDownOpened += new System.EventHandler(this.ToolsSubMenu_DropDownOpened); // @@ -1861,20 +1871,20 @@ // this.ToolBoxMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.ToolBox; this.ToolBoxMenuItem.Name = "ToolBoxMenuItem"; - this.ToolBoxMenuItem.Size = new System.Drawing.Size(189, 22); + this.ToolBoxMenuItem.Size = new System.Drawing.Size(191, 22); this.ToolBoxMenuItem.Text = "&Tool Box"; this.ToolBoxMenuItem.Click += new System.EventHandler(this.ToolBoxMenuItem_Click); // // toolStripSeparator12 // this.toolStripSeparator12.Name = "toolStripSeparator12"; - this.toolStripSeparator12.Size = new System.Drawing.Size(186, 6); + this.toolStripSeparator12.Size = new System.Drawing.Size(188, 6); // // RamWatchMenuItem // this.RamWatchMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.watch; this.RamWatchMenuItem.Name = "RamWatchMenuItem"; - this.RamWatchMenuItem.Size = new System.Drawing.Size(189, 22); + this.RamWatchMenuItem.Size = new System.Drawing.Size(191, 22); this.RamWatchMenuItem.Text = "RAM &Watch"; this.RamWatchMenuItem.Click += new System.EventHandler(this.RamWatchMenuItem_Click); // @@ -1882,7 +1892,7 @@ // this.RamSearchMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.search; this.RamSearchMenuItem.Name = "RamSearchMenuItem"; - this.RamSearchMenuItem.Size = new System.Drawing.Size(189, 22); + this.RamSearchMenuItem.Size = new System.Drawing.Size(191, 22); this.RamSearchMenuItem.Text = "RAM &Search"; this.RamSearchMenuItem.Click += new System.EventHandler(this.RamSearchMenuItem_Click); // @@ -1890,7 +1900,7 @@ // this.HexEditorMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.poke; this.HexEditorMenuItem.Name = "HexEditorMenuItem"; - this.HexEditorMenuItem.Size = new System.Drawing.Size(189, 22); + this.HexEditorMenuItem.Size = new System.Drawing.Size(191, 22); this.HexEditorMenuItem.Text = "&Hex Editor"; this.HexEditorMenuItem.Click += new System.EventHandler(this.HexEditorMenuItem_Click); // @@ -1898,7 +1908,7 @@ // this.TraceLoggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.pencil; this.TraceLoggerMenuItem.Name = "TraceLoggerMenuItem"; - this.TraceLoggerMenuItem.Size = new System.Drawing.Size(189, 22); + this.TraceLoggerMenuItem.Size = new System.Drawing.Size(191, 22); this.TraceLoggerMenuItem.Text = "Trace &Logger"; this.TraceLoggerMenuItem.Click += new System.EventHandler(this.TraceLoggerMenuItem_Click); // @@ -1906,7 +1916,7 @@ // this.CodeDataLoggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.cdlogger; this.CodeDataLoggerMenuItem.Name = "CodeDataLoggerMenuItem"; - this.CodeDataLoggerMenuItem.Size = new System.Drawing.Size(189, 22); + this.CodeDataLoggerMenuItem.Size = new System.Drawing.Size(191, 22); this.CodeDataLoggerMenuItem.Text = "Code-Data Logger"; this.CodeDataLoggerMenuItem.Click += new System.EventHandler(this.CodeDataLoggerMenuItem_Click); // @@ -1914,7 +1924,7 @@ // this.DebuggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Bug; this.DebuggerMenuItem.Name = "DebuggerMenuItem"; - this.DebuggerMenuItem.Size = new System.Drawing.Size(189, 22); + this.DebuggerMenuItem.Size = new System.Drawing.Size(191, 22); this.DebuggerMenuItem.Text = "&Debugger"; this.DebuggerMenuItem.Click += new System.EventHandler(this.DebuggerMenuItem_Click); // @@ -1922,14 +1932,14 @@ // this.TAStudioMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.TAStudio; this.TAStudioMenuItem.Name = "TAStudioMenuItem"; - this.TAStudioMenuItem.Size = new System.Drawing.Size(189, 22); + this.TAStudioMenuItem.Size = new System.Drawing.Size(191, 22); this.TAStudioMenuItem.Text = "&TAStudio"; this.TAStudioMenuItem.Click += new System.EventHandler(this.TAStudioMenuItem_Click); // // MacroToolMenuItem // this.MacroToolMenuItem.Name = "MacroToolMenuItem"; - this.MacroToolMenuItem.Size = new System.Drawing.Size(189, 22); + this.MacroToolMenuItem.Size = new System.Drawing.Size(191, 22); this.MacroToolMenuItem.Text = "&Macro Tool"; this.MacroToolMenuItem.Click += new System.EventHandler(this.MacroToolMenuItem_Click); // @@ -1937,34 +1947,34 @@ // this.VirtualPadMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.VirtualPadMenuItem.Name = "VirtualPadMenuItem"; - this.VirtualPadMenuItem.Size = new System.Drawing.Size(189, 22); + this.VirtualPadMenuItem.Size = new System.Drawing.Size(191, 22); this.VirtualPadMenuItem.Text = "Virtual Pad"; this.VirtualPadMenuItem.Click += new System.EventHandler(this.VirtualPadMenuItem_Click); // // AutoHawkMenuItem // this.AutoHawkMenuItem.Name = "AutoHawkMenuItem"; - this.AutoHawkMenuItem.Size = new System.Drawing.Size(189, 22); + this.AutoHawkMenuItem.Size = new System.Drawing.Size(191, 22); this.AutoHawkMenuItem.Text = "AutoHawk"; this.AutoHawkMenuItem.Click += new System.EventHandler(this.AutoHawkMenuItem_Click); // // BasicBotMenuItem // this.BasicBotMenuItem.Name = "BasicBotMenuItem"; - this.BasicBotMenuItem.Size = new System.Drawing.Size(189, 22); + this.BasicBotMenuItem.Size = new System.Drawing.Size(191, 22); this.BasicBotMenuItem.Text = "Basic Bot"; this.BasicBotMenuItem.Click += new System.EventHandler(this.BasicBotMenuItem_Click); // // toolStripSeparator11 // this.toolStripSeparator11.Name = "toolStripSeparator11"; - this.toolStripSeparator11.Size = new System.Drawing.Size(186, 6); + this.toolStripSeparator11.Size = new System.Drawing.Size(188, 6); // // CheatsMenuItem // this.CheatsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Freeze; this.CheatsMenuItem.Name = "CheatsMenuItem"; - this.CheatsMenuItem.Size = new System.Drawing.Size(189, 22); + this.CheatsMenuItem.Size = new System.Drawing.Size(191, 22); this.CheatsMenuItem.Text = "Cheats"; this.CheatsMenuItem.Click += new System.EventHandler(this.CheatsMenuItem_Click); // @@ -1972,7 +1982,7 @@ // this.LuaConsoleMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lua; this.LuaConsoleMenuItem.Name = "LuaConsoleMenuItem"; - this.LuaConsoleMenuItem.Size = new System.Drawing.Size(189, 22); + this.LuaConsoleMenuItem.Size = new System.Drawing.Size(191, 22); this.LuaConsoleMenuItem.Text = "Lua Console"; this.LuaConsoleMenuItem.Click += new System.EventHandler(this.LuaConsoleMenuItem_Click); // @@ -1981,26 +1991,26 @@ this.externalToolToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.dummyExternalTool}); this.externalToolToolStripMenuItem.Name = "externalToolToolStripMenuItem"; - this.externalToolToolStripMenuItem.Size = new System.Drawing.Size(189, 22); + this.externalToolToolStripMenuItem.Size = new System.Drawing.Size(191, 22); this.externalToolToolStripMenuItem.Text = "External Tool"; this.externalToolToolStripMenuItem.DropDownOpening += new System.EventHandler(this.ExternalToolToolStripMenuItem_DropDownOpening); // // dummyExternalTool // this.dummyExternalTool.Name = "dummyExternalTool"; - this.dummyExternalTool.Size = new System.Drawing.Size(103, 22); + this.dummyExternalTool.Size = new System.Drawing.Size(110, 22); this.dummyExternalTool.Text = "None"; // // toolStripSeparator29 // this.toolStripSeparator29.Name = "toolStripSeparator29"; - this.toolStripSeparator29.Size = new System.Drawing.Size(186, 6); + this.toolStripSeparator29.Size = new System.Drawing.Size(188, 6); // // MultiDiskBundlerFileMenuItem // this.MultiDiskBundlerFileMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveConfig; this.MultiDiskBundlerFileMenuItem.Name = "MultiDiskBundlerFileMenuItem"; - this.MultiDiskBundlerFileMenuItem.Size = new System.Drawing.Size(189, 22); + this.MultiDiskBundlerFileMenuItem.Size = new System.Drawing.Size(191, 22); this.MultiDiskBundlerFileMenuItem.Text = "Multi-disk Bundler"; this.MultiDiskBundlerFileMenuItem.Click += new System.EventHandler(this.CreateMultigameFileMenuItem_Click); // @@ -2008,14 +2018,14 @@ // this.gameSharkConverterToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("gameSharkConverterToolStripMenuItem.Image"))); this.gameSharkConverterToolStripMenuItem.Name = "gameSharkConverterToolStripMenuItem"; - this.gameSharkConverterToolStripMenuItem.Size = new System.Drawing.Size(189, 22); + this.gameSharkConverterToolStripMenuItem.Size = new System.Drawing.Size(191, 22); this.gameSharkConverterToolStripMenuItem.Text = "GameShark Converter"; this.gameSharkConverterToolStripMenuItem.Click += new System.EventHandler(this.gameSharkConverterToolStripMenuItem_Click); // // batchRunnerToolStripMenuItem // this.batchRunnerToolStripMenuItem.Name = "batchRunnerToolStripMenuItem"; - this.batchRunnerToolStripMenuItem.Size = new System.Drawing.Size(189, 22); + this.batchRunnerToolStripMenuItem.Size = new System.Drawing.Size(191, 22); this.batchRunnerToolStripMenuItem.Text = "Batch Runner"; this.batchRunnerToolStripMenuItem.Visible = false; this.batchRunnerToolStripMenuItem.Click += new System.EventHandler(this.batchRunnerToolStripMenuItem_Click); @@ -2038,7 +2048,7 @@ this.FDSControlsMenuItem, this.barcodeReaderToolStripMenuItem}); this.NESSubMenu.Name = "NESSubMenu"; - this.NESSubMenu.Size = new System.Drawing.Size(40, 19); + this.NESSubMenu.Size = new System.Drawing.Size(38, 17); this.NESSubMenu.Text = "&NES"; this.NESSubMenu.DropDownOpened += new System.EventHandler(this.NESSubMenu_DropDownOpened); // @@ -2048,67 +2058,67 @@ this.quickNESToolStripMenuItem, this.nesHawkToolStripMenuItem}); this.coreToolStripMenuItem.Name = "coreToolStripMenuItem"; - this.coreToolStripMenuItem.Size = new System.Drawing.Size(233, 22); + this.coreToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.coreToolStripMenuItem.Text = "&Core"; this.coreToolStripMenuItem.DropDownOpened += new System.EventHandler(this.coreToolStripMenuItem_DropDownOpened); // // quickNESToolStripMenuItem // this.quickNESToolStripMenuItem.Name = "quickNESToolStripMenuItem"; - this.quickNESToolStripMenuItem.Size = new System.Drawing.Size(125, 22); + this.quickNESToolStripMenuItem.Size = new System.Drawing.Size(129, 22); this.quickNESToolStripMenuItem.Text = "&QuickNes"; this.quickNESToolStripMenuItem.Click += new System.EventHandler(this.quickNESToolStripMenuItem_Click); // // nesHawkToolStripMenuItem // this.nesHawkToolStripMenuItem.Name = "nesHawkToolStripMenuItem"; - this.nesHawkToolStripMenuItem.Size = new System.Drawing.Size(125, 22); + this.nesHawkToolStripMenuItem.Size = new System.Drawing.Size(129, 22); this.nesHawkToolStripMenuItem.Text = "&NesHawk"; this.nesHawkToolStripMenuItem.Click += new System.EventHandler(this.nesHawkToolStripMenuItem_Click); // // toolStripSeparator34 // this.toolStripSeparator34.Name = "toolStripSeparator34"; - this.toolStripSeparator34.Size = new System.Drawing.Size(230, 6); + this.toolStripSeparator34.Size = new System.Drawing.Size(225, 6); // // NESPPUViewerMenuItem // this.NESPPUViewerMenuItem.Name = "NESPPUViewerMenuItem"; - this.NESPPUViewerMenuItem.Size = new System.Drawing.Size(233, 22); + this.NESPPUViewerMenuItem.Size = new System.Drawing.Size(228, 22); this.NESPPUViewerMenuItem.Text = "&PPU Viewer"; this.NESPPUViewerMenuItem.Click += new System.EventHandler(this.NESPPUViewerMenuItem_Click); // // NESNametableViewerMenuItem // this.NESNametableViewerMenuItem.Name = "NESNametableViewerMenuItem"; - this.NESNametableViewerMenuItem.Size = new System.Drawing.Size(233, 22); + this.NESNametableViewerMenuItem.Size = new System.Drawing.Size(228, 22); this.NESNametableViewerMenuItem.Text = "&Nametable Viewer"; this.NESNametableViewerMenuItem.Click += new System.EventHandler(this.NESNametableViewerMenuItem_Click); // // NESGameGenieCodesMenuItem // this.NESGameGenieCodesMenuItem.Name = "NESGameGenieCodesMenuItem"; - this.NESGameGenieCodesMenuItem.Size = new System.Drawing.Size(233, 22); + this.NESGameGenieCodesMenuItem.Size = new System.Drawing.Size(228, 22); this.NESGameGenieCodesMenuItem.Text = "&Game Genie Encoder/Decoder"; this.NESGameGenieCodesMenuItem.Click += new System.EventHandler(this.NESGameGenieCodesMenuItem_Click); // // musicRipperToolStripMenuItem // this.musicRipperToolStripMenuItem.Name = "musicRipperToolStripMenuItem"; - this.musicRipperToolStripMenuItem.Size = new System.Drawing.Size(233, 22); + this.musicRipperToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.musicRipperToolStripMenuItem.Text = "Music Ripper"; this.musicRipperToolStripMenuItem.Click += new System.EventHandler(this.musicRipperToolStripMenuItem_Click); // // toolStripSeparator17 // this.toolStripSeparator17.Name = "toolStripSeparator17"; - this.toolStripSeparator17.Size = new System.Drawing.Size(230, 6); + this.toolStripSeparator17.Size = new System.Drawing.Size(225, 6); // // NesControllerSettingsMenuItem // this.NesControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.NesControllerSettingsMenuItem.Name = "NesControllerSettingsMenuItem"; - this.NesControllerSettingsMenuItem.Size = new System.Drawing.Size(233, 22); + this.NesControllerSettingsMenuItem.Size = new System.Drawing.Size(228, 22); this.NesControllerSettingsMenuItem.Text = "Controller Settings..."; this.NesControllerSettingsMenuItem.Click += new System.EventHandler(this.NesControllerSettingsMenuItem_Click); // @@ -2116,7 +2126,7 @@ // this.NESGraphicSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.tvIcon; this.NESGraphicSettingsMenuItem.Name = "NESGraphicSettingsMenuItem"; - this.NESGraphicSettingsMenuItem.Size = new System.Drawing.Size(233, 22); + this.NESGraphicSettingsMenuItem.Size = new System.Drawing.Size(228, 22); this.NESGraphicSettingsMenuItem.Text = "Graphics Settings..."; this.NESGraphicSettingsMenuItem.Click += new System.EventHandler(this.NESGraphicSettingsMenuItem_Click); // @@ -2124,42 +2134,42 @@ // this.NESSoundChannelsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AudioHS; this.NESSoundChannelsMenuItem.Name = "NESSoundChannelsMenuItem"; - this.NESSoundChannelsMenuItem.Size = new System.Drawing.Size(233, 22); + this.NESSoundChannelsMenuItem.Size = new System.Drawing.Size(228, 22); this.NESSoundChannelsMenuItem.Text = "Sound Channels..."; this.NESSoundChannelsMenuItem.Click += new System.EventHandler(this.NESSoundChannelsMenuItem_Click); // // MovieSettingsMenuItem // this.MovieSettingsMenuItem.Name = "MovieSettingsMenuItem"; - this.MovieSettingsMenuItem.Size = new System.Drawing.Size(233, 22); + this.MovieSettingsMenuItem.Size = new System.Drawing.Size(228, 22); this.MovieSettingsMenuItem.Text = "Advanced Settings..."; this.MovieSettingsMenuItem.Click += new System.EventHandler(this.MovieSettingsMenuItem_Click); // // toolStripSeparator22 // this.toolStripSeparator22.Name = "toolStripSeparator22"; - this.toolStripSeparator22.Size = new System.Drawing.Size(230, 6); + this.toolStripSeparator22.Size = new System.Drawing.Size(225, 6); // // FDSControlsMenuItem // this.FDSControlsMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.FdsEjectDiskMenuItem}); this.FDSControlsMenuItem.Name = "FDSControlsMenuItem"; - this.FDSControlsMenuItem.Size = new System.Drawing.Size(233, 22); + this.FDSControlsMenuItem.Size = new System.Drawing.Size(228, 22); this.FDSControlsMenuItem.Text = "FDS Controls"; this.FDSControlsMenuItem.DropDownOpened += new System.EventHandler(this.FdsControlsMenuItem_DropDownOpened); // // FdsEjectDiskMenuItem // this.FdsEjectDiskMenuItem.Name = "FdsEjectDiskMenuItem"; - this.FdsEjectDiskMenuItem.Size = new System.Drawing.Size(124, 22); + this.FdsEjectDiskMenuItem.Size = new System.Drawing.Size(131, 22); this.FdsEjectDiskMenuItem.Text = "&Eject Disk"; this.FdsEjectDiskMenuItem.Click += new System.EventHandler(this.FdsEjectDiskMenuItem_Click); // // barcodeReaderToolStripMenuItem // this.barcodeReaderToolStripMenuItem.Name = "barcodeReaderToolStripMenuItem"; - this.barcodeReaderToolStripMenuItem.Size = new System.Drawing.Size(233, 22); + this.barcodeReaderToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.barcodeReaderToolStripMenuItem.Text = "Barcode Reader"; this.barcodeReaderToolStripMenuItem.Click += new System.EventHandler(this.barcodeReaderToolStripMenuItem_Click); // @@ -2177,7 +2187,7 @@ this.PCEAlwaysEqualizeVolumesMenuItem, this.PCEArcadeCardRewindEnableMenuItem}); this.PCESubMenu.Name = "PCESubMenu"; - this.PCESubMenu.Size = new System.Drawing.Size(40, 19); + this.PCESubMenu.Size = new System.Drawing.Size(38, 17); this.PCESubMenu.Text = "&PCE"; this.PCESubMenu.DropDownOpened += new System.EventHandler(this.PCESubMenu_DropDownOpened); // @@ -2185,7 +2195,7 @@ // this.PceControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.PceControllerSettingsMenuItem.Name = "PceControllerSettingsMenuItem"; - this.PceControllerSettingsMenuItem.Size = new System.Drawing.Size(258, 22); + this.PceControllerSettingsMenuItem.Size = new System.Drawing.Size(251, 22); this.PceControllerSettingsMenuItem.Text = "Controller Settings"; this.PceControllerSettingsMenuItem.Click += new System.EventHandler(this.PceControllerSettingsMenuItem_Click); // @@ -2193,59 +2203,59 @@ // this.PCEGraphicsSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.tvIcon; this.PCEGraphicsSettingsMenuItem.Name = "PCEGraphicsSettingsMenuItem"; - this.PCEGraphicsSettingsMenuItem.Size = new System.Drawing.Size(258, 22); + this.PCEGraphicsSettingsMenuItem.Size = new System.Drawing.Size(251, 22); this.PCEGraphicsSettingsMenuItem.Text = "Graphics Settings"; this.PCEGraphicsSettingsMenuItem.Click += new System.EventHandler(this.PCEGraphicsSettingsMenuItem_Click); // // toolStripSeparator32 // this.toolStripSeparator32.Name = "toolStripSeparator32"; - this.toolStripSeparator32.Size = new System.Drawing.Size(255, 6); + this.toolStripSeparator32.Size = new System.Drawing.Size(248, 6); // // PCEBGViewerMenuItem // this.PCEBGViewerMenuItem.Name = "PCEBGViewerMenuItem"; - this.PCEBGViewerMenuItem.Size = new System.Drawing.Size(258, 22); + this.PCEBGViewerMenuItem.Size = new System.Drawing.Size(251, 22); this.PCEBGViewerMenuItem.Text = "&BG Viewer"; this.PCEBGViewerMenuItem.Click += new System.EventHandler(this.PCEBGViewerMenuItem_Click); // // PCEtileViewerToolStripMenuItem // this.PCEtileViewerToolStripMenuItem.Name = "PCEtileViewerToolStripMenuItem"; - this.PCEtileViewerToolStripMenuItem.Size = new System.Drawing.Size(258, 22); + this.PCEtileViewerToolStripMenuItem.Size = new System.Drawing.Size(251, 22); this.PCEtileViewerToolStripMenuItem.Text = "&Tile Viewer"; this.PCEtileViewerToolStripMenuItem.Click += new System.EventHandler(this.PceTileViewerMenuItem_Click); // // PceSoundDebuggerToolStripMenuItem // this.PceSoundDebuggerToolStripMenuItem.Name = "PceSoundDebuggerToolStripMenuItem"; - this.PceSoundDebuggerToolStripMenuItem.Size = new System.Drawing.Size(258, 22); + this.PceSoundDebuggerToolStripMenuItem.Size = new System.Drawing.Size(251, 22); this.PceSoundDebuggerToolStripMenuItem.Text = "&Sound Debugger"; this.PceSoundDebuggerToolStripMenuItem.Click += new System.EventHandler(this.PceSoundDebuggerToolStripMenuItem_Click); // // toolStripSeparator25 // this.toolStripSeparator25.Name = "toolStripSeparator25"; - this.toolStripSeparator25.Size = new System.Drawing.Size(255, 6); + this.toolStripSeparator25.Size = new System.Drawing.Size(248, 6); // // PCEAlwaysPerformSpriteLimitMenuItem // this.PCEAlwaysPerformSpriteLimitMenuItem.Name = "PCEAlwaysPerformSpriteLimitMenuItem"; - this.PCEAlwaysPerformSpriteLimitMenuItem.Size = new System.Drawing.Size(258, 22); + this.PCEAlwaysPerformSpriteLimitMenuItem.Size = new System.Drawing.Size(251, 22); this.PCEAlwaysPerformSpriteLimitMenuItem.Text = "Always Perform Sprite Limit"; this.PCEAlwaysPerformSpriteLimitMenuItem.Click += new System.EventHandler(this.PCEAlwaysPerformSpriteLimitMenuItem_Click); // // PCEAlwaysEqualizeVolumesMenuItem // this.PCEAlwaysEqualizeVolumesMenuItem.Name = "PCEAlwaysEqualizeVolumesMenuItem"; - this.PCEAlwaysEqualizeVolumesMenuItem.Size = new System.Drawing.Size(258, 22); + this.PCEAlwaysEqualizeVolumesMenuItem.Size = new System.Drawing.Size(251, 22); this.PCEAlwaysEqualizeVolumesMenuItem.Text = "Always Equalize Volumes (PCE-CD)"; this.PCEAlwaysEqualizeVolumesMenuItem.Click += new System.EventHandler(this.PCEAlwaysEqualizeVolumesMenuItem_Click); // // PCEArcadeCardRewindEnableMenuItem // this.PCEArcadeCardRewindEnableMenuItem.Name = "PCEArcadeCardRewindEnableMenuItem"; - this.PCEArcadeCardRewindEnableMenuItem.Size = new System.Drawing.Size(258, 22); + this.PCEArcadeCardRewindEnableMenuItem.Size = new System.Drawing.Size(251, 22); this.PCEArcadeCardRewindEnableMenuItem.Text = "Arcade Card Rewind-Enable Hack"; this.PCEArcadeCardRewindEnableMenuItem.Click += new System.EventHandler(this.PCEArcadeCardRewindEnableMenuItem_Click); // @@ -2268,7 +2278,7 @@ this.SMSVDPViewerToolStripMenuItem, this.GGGameGenieMenuItem}); this.SMSSubMenu.Name = "SMSSubMenu"; - this.SMSSubMenu.Size = new System.Drawing.Size(42, 19); + this.SMSSubMenu.Size = new System.Drawing.Size(39, 17); this.SMSSubMenu.Text = "&SMS"; this.SMSSubMenu.DropDownOpened += new System.EventHandler(this.SMSSubMenu_DropDownOpened); // @@ -2279,27 +2289,27 @@ this.SMSregionJapanToolStripMenuItem, this.SMSregionAutoToolStripMenuItem}); this.SMSregionToolStripMenuItem.Name = "SMSregionToolStripMenuItem"; - this.SMSregionToolStripMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSregionToolStripMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSregionToolStripMenuItem.Text = "Region"; // // SMSregionExportToolStripMenuItem // this.SMSregionExportToolStripMenuItem.Name = "SMSregionExportToolStripMenuItem"; - this.SMSregionExportToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + this.SMSregionExportToolStripMenuItem.Size = new System.Drawing.Size(117, 22); this.SMSregionExportToolStripMenuItem.Text = "Export"; this.SMSregionExportToolStripMenuItem.Click += new System.EventHandler(this.SMS_RegionExport_Click); // // SMSregionJapanToolStripMenuItem // this.SMSregionJapanToolStripMenuItem.Name = "SMSregionJapanToolStripMenuItem"; - this.SMSregionJapanToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + this.SMSregionJapanToolStripMenuItem.Size = new System.Drawing.Size(117, 22); this.SMSregionJapanToolStripMenuItem.Text = "Japan"; this.SMSregionJapanToolStripMenuItem.Click += new System.EventHandler(this.SMS_RegionJapan_Click); // // SMSregionAutoToolStripMenuItem // this.SMSregionAutoToolStripMenuItem.Name = "SMSregionAutoToolStripMenuItem"; - this.SMSregionAutoToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + this.SMSregionAutoToolStripMenuItem.Size = new System.Drawing.Size(117, 22); this.SMSregionAutoToolStripMenuItem.Text = "Auto"; this.SMSregionAutoToolStripMenuItem.Click += new System.EventHandler(this.SMS_RegionAuto_Click); // @@ -2310,114 +2320,114 @@ this.SMSdisplayPalToolStripMenuItem, this.SMSdisplayAutoToolStripMenuItem}); this.SMSdisplayToolStripMenuItem.Name = "SMSdisplayToolStripMenuItem"; - this.SMSdisplayToolStripMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSdisplayToolStripMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSdisplayToolStripMenuItem.Text = "Display Type"; // // SMSdisplayNtscToolStripMenuItem // this.SMSdisplayNtscToolStripMenuItem.Name = "SMSdisplayNtscToolStripMenuItem"; - this.SMSdisplayNtscToolStripMenuItem.Size = new System.Drawing.Size(104, 22); + this.SMSdisplayNtscToolStripMenuItem.Size = new System.Drawing.Size(111, 22); this.SMSdisplayNtscToolStripMenuItem.Text = "NTSC"; this.SMSdisplayNtscToolStripMenuItem.Click += new System.EventHandler(this.SMS_DisplayNTSC_Click); // // SMSdisplayPalToolStripMenuItem // this.SMSdisplayPalToolStripMenuItem.Name = "SMSdisplayPalToolStripMenuItem"; - this.SMSdisplayPalToolStripMenuItem.Size = new System.Drawing.Size(104, 22); + this.SMSdisplayPalToolStripMenuItem.Size = new System.Drawing.Size(111, 22); this.SMSdisplayPalToolStripMenuItem.Text = "PAL"; this.SMSdisplayPalToolStripMenuItem.Click += new System.EventHandler(this.SMS_DisplayPAL_Click); // // SMSdisplayAutoToolStripMenuItem // this.SMSdisplayAutoToolStripMenuItem.Name = "SMSdisplayAutoToolStripMenuItem"; - this.SMSdisplayAutoToolStripMenuItem.Size = new System.Drawing.Size(104, 22); + this.SMSdisplayAutoToolStripMenuItem.Size = new System.Drawing.Size(111, 22); this.SMSdisplayAutoToolStripMenuItem.Text = "Auto"; this.SMSdisplayAutoToolStripMenuItem.Click += new System.EventHandler(this.SMS_DisplayAuto_Click); // // SMStoolStripMenuItem2 // this.SMStoolStripMenuItem2.Name = "SMStoolStripMenuItem2"; - this.SMStoolStripMenuItem2.Size = new System.Drawing.Size(238, 6); + this.SMStoolStripMenuItem2.Size = new System.Drawing.Size(229, 6); // // SMSenableBIOSToolStripMenuItem // this.SMSenableBIOSToolStripMenuItem.Name = "SMSenableBIOSToolStripMenuItem"; - this.SMSenableBIOSToolStripMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSenableBIOSToolStripMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSenableBIOSToolStripMenuItem.Text = "Enable BIOS"; this.SMSenableBIOSToolStripMenuItem.Click += new System.EventHandler(this.SMS_BIOS_Click); // // SMSEnableFMChipMenuItem // this.SMSEnableFMChipMenuItem.Name = "SMSEnableFMChipMenuItem"; - this.SMSEnableFMChipMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSEnableFMChipMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSEnableFMChipMenuItem.Text = "&Enable FM Chip"; this.SMSEnableFMChipMenuItem.Click += new System.EventHandler(this.SMSEnableFMChipMenuItem_Click); // // SMSOverclockMenuItem // this.SMSOverclockMenuItem.Name = "SMSOverclockMenuItem"; - this.SMSOverclockMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSOverclockMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSOverclockMenuItem.Text = "&Overclock when Known Safe"; this.SMSOverclockMenuItem.Click += new System.EventHandler(this.SMSOverclockMenuItem_Click); // // SMSForceStereoMenuItem // this.SMSForceStereoMenuItem.Name = "SMSForceStereoMenuItem"; - this.SMSForceStereoMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSForceStereoMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSForceStereoMenuItem.Text = "&Force Stereo Separation"; this.SMSForceStereoMenuItem.Click += new System.EventHandler(this.SMSForceStereoMenuItem_Click); // // SMSSpriteLimitMenuItem // this.SMSSpriteLimitMenuItem.Name = "SMSSpriteLimitMenuItem"; - this.SMSSpriteLimitMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSSpriteLimitMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSSpriteLimitMenuItem.Text = "Sprite &Limit"; this.SMSSpriteLimitMenuItem.Click += new System.EventHandler(this.SMSSpriteLimitMenuItem_Click); // // SMSFix3DGameDisplayToolStripMenuItem // this.SMSFix3DGameDisplayToolStripMenuItem.Name = "SMSFix3DGameDisplayToolStripMenuItem"; - this.SMSFix3DGameDisplayToolStripMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSFix3DGameDisplayToolStripMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSFix3DGameDisplayToolStripMenuItem.Text = "Fix 3D Game Display"; this.SMSFix3DGameDisplayToolStripMenuItem.Click += new System.EventHandler(this.SMSFix3DDisplayMenuItem_Click); // // ShowClippedRegionsMenuItem // this.ShowClippedRegionsMenuItem.Name = "ShowClippedRegionsMenuItem"; - this.ShowClippedRegionsMenuItem.Size = new System.Drawing.Size(241, 22); + this.ShowClippedRegionsMenuItem.Size = new System.Drawing.Size(232, 22); this.ShowClippedRegionsMenuItem.Text = "&Show Clipped Regions"; this.ShowClippedRegionsMenuItem.Click += new System.EventHandler(this.ShowClippedRegionsMenuItem_Click); // // HighlightActiveDisplayRegionMenuItem // this.HighlightActiveDisplayRegionMenuItem.Name = "HighlightActiveDisplayRegionMenuItem"; - this.HighlightActiveDisplayRegionMenuItem.Size = new System.Drawing.Size(241, 22); + this.HighlightActiveDisplayRegionMenuItem.Size = new System.Drawing.Size(232, 22); this.HighlightActiveDisplayRegionMenuItem.Text = "&Highlight Active Display Region"; this.HighlightActiveDisplayRegionMenuItem.Click += new System.EventHandler(this.HighlightActiveDisplayRegionMenuItem_Click); // // SMSGraphicsSettingsMenuItem // this.SMSGraphicsSettingsMenuItem.Name = "SMSGraphicsSettingsMenuItem"; - this.SMSGraphicsSettingsMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSGraphicsSettingsMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSGraphicsSettingsMenuItem.Text = "&Graphics Settings..."; this.SMSGraphicsSettingsMenuItem.Click += new System.EventHandler(this.SMSGraphicsSettingsMenuItem_Click); // // toolStripSeparator24 // this.toolStripSeparator24.Name = "toolStripSeparator24"; - this.toolStripSeparator24.Size = new System.Drawing.Size(238, 6); + this.toolStripSeparator24.Size = new System.Drawing.Size(229, 6); // // SMSVDPViewerToolStripMenuItem // this.SMSVDPViewerToolStripMenuItem.Name = "SMSVDPViewerToolStripMenuItem"; - this.SMSVDPViewerToolStripMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSVDPViewerToolStripMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSVDPViewerToolStripMenuItem.Text = "&VDP Viewer"; this.SMSVDPViewerToolStripMenuItem.Click += new System.EventHandler(this.SmsVdpViewerMenuItem_Click); // // GGGameGenieMenuItem // this.GGGameGenieMenuItem.Name = "GGGameGenieMenuItem"; - this.GGGameGenieMenuItem.Size = new System.Drawing.Size(241, 22); + this.GGGameGenieMenuItem.Size = new System.Drawing.Size(232, 22); this.GGGameGenieMenuItem.Text = "&Game Genie Encoder/Decoder"; this.GGGameGenieMenuItem.Click += new System.EventHandler(this.GGGameGenieMenuItem_Click); // @@ -2430,7 +2440,7 @@ this.AutoloadKeypadMenuItem, this.paletteToolStripMenuItem}); this.TI83SubMenu.Name = "TI83SubMenu"; - this.TI83SubMenu.Size = new System.Drawing.Size(41, 19); + this.TI83SubMenu.Size = new System.Drawing.Size(41, 17); this.TI83SubMenu.Text = "TI83"; this.TI83SubMenu.DropDownOpened += new System.EventHandler(this.TI83SubMenu_DropDownOpened); // @@ -2438,35 +2448,35 @@ // this.KeypadMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.calculator; this.KeypadMenuItem.Name = "KeypadMenuItem"; - this.KeypadMenuItem.Size = new System.Drawing.Size(165, 22); + this.KeypadMenuItem.Size = new System.Drawing.Size(168, 22); this.KeypadMenuItem.Text = "Keypad"; this.KeypadMenuItem.Click += new System.EventHandler(this.KeypadMenuItem_Click); // // LoadTIFileMenuItem // this.LoadTIFileMenuItem.Name = "LoadTIFileMenuItem"; - this.LoadTIFileMenuItem.Size = new System.Drawing.Size(165, 22); + this.LoadTIFileMenuItem.Size = new System.Drawing.Size(168, 22); this.LoadTIFileMenuItem.Text = "Load TI-83 File..."; this.LoadTIFileMenuItem.Click += new System.EventHandler(this.LoadTIFileMenuItem_Click); // // toolStripSeparator13 // this.toolStripSeparator13.Name = "toolStripSeparator13"; - this.toolStripSeparator13.Size = new System.Drawing.Size(162, 6); + this.toolStripSeparator13.Size = new System.Drawing.Size(165, 6); // // AutoloadKeypadMenuItem // this.AutoloadKeypadMenuItem.Checked = true; this.AutoloadKeypadMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.AutoloadKeypadMenuItem.Name = "AutoloadKeypadMenuItem"; - this.AutoloadKeypadMenuItem.Size = new System.Drawing.Size(165, 22); + this.AutoloadKeypadMenuItem.Size = new System.Drawing.Size(168, 22); this.AutoloadKeypadMenuItem.Text = "Autoload Keypad"; this.AutoloadKeypadMenuItem.Click += new System.EventHandler(this.AutoloadKeypadMenuItem_Click); // // paletteToolStripMenuItem // this.paletteToolStripMenuItem.Name = "paletteToolStripMenuItem"; - this.paletteToolStripMenuItem.Size = new System.Drawing.Size(165, 22); + this.paletteToolStripMenuItem.Size = new System.Drawing.Size(168, 22); this.paletteToolStripMenuItem.Text = "Palette..."; this.paletteToolStripMenuItem.Click += new System.EventHandler(this.TI83PaletteMenuItem_Click); // @@ -2475,14 +2485,14 @@ this.AtariSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.AtariSettingsToolStripMenuItem}); this.AtariSubMenu.Name = "AtariSubMenu"; - this.AtariSubMenu.Size = new System.Drawing.Size(44, 19); + this.AtariSubMenu.Size = new System.Drawing.Size(42, 17); this.AtariSubMenu.Text = "&Atari"; this.AtariSubMenu.DropDownOpened += new System.EventHandler(this.AtariSubMenu_DropDownOpened); // // AtariSettingsToolStripMenuItem // this.AtariSettingsToolStripMenuItem.Name = "AtariSettingsToolStripMenuItem"; - this.AtariSettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22); + this.AtariSettingsToolStripMenuItem.Size = new System.Drawing.Size(136, 22); this.AtariSettingsToolStripMenuItem.Text = "Settings..."; this.AtariSettingsToolStripMenuItem.Click += new System.EventHandler(this.AtariSettingsToolStripMenuItem_Click); // @@ -2495,40 +2505,40 @@ this.GBGPUViewerMenuItem, this.GBGameGenieMenuItem}); this.GBSubMenu.Name = "GBSubMenu"; - this.GBSubMenu.Size = new System.Drawing.Size(34, 19); + this.GBSubMenu.Size = new System.Drawing.Size(32, 17); this.GBSubMenu.Text = "&GB"; this.GBSubMenu.DropDownOpened += new System.EventHandler(this.GBSubMenu_DropDownOpened); // // GBcoreSettingsToolStripMenuItem // this.GBcoreSettingsToolStripMenuItem.Name = "GBcoreSettingsToolStripMenuItem"; - this.GBcoreSettingsToolStripMenuItem.Size = new System.Drawing.Size(233, 22); + this.GBcoreSettingsToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.GBcoreSettingsToolStripMenuItem.Text = "Settings..."; this.GBcoreSettingsToolStripMenuItem.Click += new System.EventHandler(this.GBCoreSettingsMenuItem_Click); // // LoadGBInSGBMenuItem // this.LoadGBInSGBMenuItem.Name = "LoadGBInSGBMenuItem"; - this.LoadGBInSGBMenuItem.Size = new System.Drawing.Size(233, 22); + this.LoadGBInSGBMenuItem.Size = new System.Drawing.Size(228, 22); this.LoadGBInSGBMenuItem.Text = "Load GB in SGB"; this.LoadGBInSGBMenuItem.Click += new System.EventHandler(this.LoadGBInSGBMenuItem_Click); // // toolStripSeparator28 // this.toolStripSeparator28.Name = "toolStripSeparator28"; - this.toolStripSeparator28.Size = new System.Drawing.Size(230, 6); + this.toolStripSeparator28.Size = new System.Drawing.Size(225, 6); // // GBGPUViewerMenuItem // this.GBGPUViewerMenuItem.Name = "GBGPUViewerMenuItem"; - this.GBGPUViewerMenuItem.Size = new System.Drawing.Size(233, 22); + this.GBGPUViewerMenuItem.Size = new System.Drawing.Size(228, 22); this.GBGPUViewerMenuItem.Text = "GPU Viewer"; this.GBGPUViewerMenuItem.Click += new System.EventHandler(this.GBGPUViewerMenuItem_Click); // // GBGameGenieMenuItem // this.GBGameGenieMenuItem.Name = "GBGameGenieMenuItem"; - this.GBGameGenieMenuItem.Size = new System.Drawing.Size(233, 22); + this.GBGameGenieMenuItem.Size = new System.Drawing.Size(228, 22); this.GBGameGenieMenuItem.Text = "&Game Genie Encoder/Decoder"; this.GBGameGenieMenuItem.Click += new System.EventHandler(this.GBGameGenieMenuItem_Click); // @@ -2540,7 +2550,7 @@ this.toolStripSeparator33, this.GbaGpuViewerMenuItem}); this.GBASubMenu.Name = "GBASubMenu"; - this.GBASubMenu.Size = new System.Drawing.Size(42, 19); + this.GBASubMenu.Size = new System.Drawing.Size(39, 17); this.GBASubMenu.Text = "GBA"; // // GBACoreSelectionSubMenu @@ -2549,40 +2559,40 @@ this.GBAmGBAMenuItem, this.GBAVBANextMenuItem}); this.GBACoreSelectionSubMenu.Name = "GBACoreSelectionSubMenu"; - this.GBACoreSelectionSubMenu.Size = new System.Drawing.Size(135, 22); + this.GBACoreSelectionSubMenu.Size = new System.Drawing.Size(140, 22); this.GBACoreSelectionSubMenu.Text = "&Core"; this.GBACoreSelectionSubMenu.DropDownOpened += new System.EventHandler(this.GBACoreSelectionSubMenu_DropDownOpened); // // GBAmGBAMenuItem // this.GBAmGBAMenuItem.Name = "GBAmGBAMenuItem"; - this.GBAmGBAMenuItem.Size = new System.Drawing.Size(125, 22); + this.GBAmGBAMenuItem.Size = new System.Drawing.Size(131, 22); this.GBAmGBAMenuItem.Text = "mGBA"; this.GBAmGBAMenuItem.Click += new System.EventHandler(this.GBAmGBAMenuItem_Click); // // GBAVBANextMenuItem // this.GBAVBANextMenuItem.Name = "GBAVBANextMenuItem"; - this.GBAVBANextMenuItem.Size = new System.Drawing.Size(125, 22); + this.GBAVBANextMenuItem.Size = new System.Drawing.Size(131, 22); this.GBAVBANextMenuItem.Text = "&VBA-Next"; this.GBAVBANextMenuItem.Click += new System.EventHandler(this.GBAVBANextMenuItem_Click); // // GBAcoresettingsToolStripMenuItem1 // this.GBAcoresettingsToolStripMenuItem1.Name = "GBAcoresettingsToolStripMenuItem1"; - this.GBAcoresettingsToolStripMenuItem1.Size = new System.Drawing.Size(135, 22); + this.GBAcoresettingsToolStripMenuItem1.Size = new System.Drawing.Size(140, 22); this.GBAcoresettingsToolStripMenuItem1.Text = "&Settings..."; this.GBAcoresettingsToolStripMenuItem1.Click += new System.EventHandler(this.GBAcoresettingsToolStripMenuItem1_Click); // // toolStripSeparator33 // this.toolStripSeparator33.Name = "toolStripSeparator33"; - this.toolStripSeparator33.Size = new System.Drawing.Size(132, 6); + this.toolStripSeparator33.Size = new System.Drawing.Size(137, 6); // // GbaGpuViewerMenuItem // this.GbaGpuViewerMenuItem.Name = "GbaGpuViewerMenuItem"; - this.GbaGpuViewerMenuItem.Size = new System.Drawing.Size(135, 22); + this.GbaGpuViewerMenuItem.Size = new System.Drawing.Size(140, 22); this.GbaGpuViewerMenuItem.Text = "GPU Viewer"; this.GbaGpuViewerMenuItem.Click += new System.EventHandler(this.GbaGpuViewerMenuItem_Click); // @@ -2594,7 +2604,7 @@ this.PSXDiscControlsMenuItem, this.PSXHashDiscsToolStripMenuItem}); this.PSXSubMenu.Name = "PSXSubMenu"; - this.PSXSubMenu.Size = new System.Drawing.Size(39, 19); + this.PSXSubMenu.Size = new System.Drawing.Size(37, 17); this.PSXSubMenu.Text = "PSX"; this.PSXSubMenu.DropDownOpened += new System.EventHandler(this.PSXSubMenu_DropDownOpened); // @@ -2602,28 +2612,28 @@ // this.PSXControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.PSXControllerSettingsMenuItem.Name = "PSXControllerSettingsMenuItem"; - this.PSXControllerSettingsMenuItem.Size = new System.Drawing.Size(234, 22); + this.PSXControllerSettingsMenuItem.Size = new System.Drawing.Size(227, 22); this.PSXControllerSettingsMenuItem.Text = "Controller / Memcard Settings"; this.PSXControllerSettingsMenuItem.Click += new System.EventHandler(this.PSXControllerSettingsMenuItem_Click); // // PSXOptionsMenuItem // this.PSXOptionsMenuItem.Name = "PSXOptionsMenuItem"; - this.PSXOptionsMenuItem.Size = new System.Drawing.Size(234, 22); + this.PSXOptionsMenuItem.Size = new System.Drawing.Size(227, 22); this.PSXOptionsMenuItem.Text = "&Options"; this.PSXOptionsMenuItem.Click += new System.EventHandler(this.PSXOptionsMenuItem_Click); // // PSXDiscControlsMenuItem // this.PSXDiscControlsMenuItem.Name = "PSXDiscControlsMenuItem"; - this.PSXDiscControlsMenuItem.Size = new System.Drawing.Size(234, 22); + this.PSXDiscControlsMenuItem.Size = new System.Drawing.Size(227, 22); this.PSXDiscControlsMenuItem.Text = "&Disc Controls"; this.PSXDiscControlsMenuItem.Click += new System.EventHandler(this.PSXDiscControlsMenuItem_Click); // // PSXHashDiscsToolStripMenuItem // this.PSXHashDiscsToolStripMenuItem.Name = "PSXHashDiscsToolStripMenuItem"; - this.PSXHashDiscsToolStripMenuItem.Size = new System.Drawing.Size(234, 22); + this.PSXHashDiscsToolStripMenuItem.Size = new System.Drawing.Size(227, 22); this.PSXHashDiscsToolStripMenuItem.Text = "&Hash Discs"; this.PSXHashDiscsToolStripMenuItem.Click += new System.EventHandler(this.PSXHashDiscsToolStripMenuItem_Click); // @@ -2637,7 +2647,7 @@ this.SnesGameGenieMenuItem, this.SnesOptionsMenuItem}); this.SNESSubMenu.Name = "SNESSubMenu"; - this.SNESSubMenu.Size = new System.Drawing.Size(46, 19); + this.SNESSubMenu.Size = new System.Drawing.Size(44, 17); this.SNESSubMenu.Text = "&SNES"; this.SNESSubMenu.DropDownOpened += new System.EventHandler(this.SNESSubMenu_DropDownOpened); // @@ -2653,97 +2663,97 @@ this.SnesObj3MenuItem, this.SnesObj4MenuItem}); this.SNESDisplayMenuItem.Name = "SNESDisplayMenuItem"; - this.SNESDisplayMenuItem.Size = new System.Drawing.Size(233, 22); + this.SNESDisplayMenuItem.Size = new System.Drawing.Size(228, 22); this.SNESDisplayMenuItem.Text = "Display"; this.SNESDisplayMenuItem.DropDownOpened += new System.EventHandler(this.SNESDisplayMenuItem_DropDownOpened); // // SnesBg1MenuItem // this.SnesBg1MenuItem.Name = "SnesBg1MenuItem"; - this.SnesBg1MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesBg1MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesBg1MenuItem.Text = "BG 1"; this.SnesBg1MenuItem.Click += new System.EventHandler(this.SnesBg1MenuItem_Click); // // SnesBg2MenuItem // this.SnesBg2MenuItem.Name = "SnesBg2MenuItem"; - this.SnesBg2MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesBg2MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesBg2MenuItem.Text = "BG 2"; this.SnesBg2MenuItem.Click += new System.EventHandler(this.SnesBg2MenuItem_Click); // // SnesBg3MenuItem // this.SnesBg3MenuItem.Name = "SnesBg3MenuItem"; - this.SnesBg3MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesBg3MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesBg3MenuItem.Text = "BG 3"; this.SnesBg3MenuItem.Click += new System.EventHandler(this.SnesBg3MenuItem_Click); // // SnesBg4MenuItem // this.SnesBg4MenuItem.Name = "SnesBg4MenuItem"; - this.SnesBg4MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesBg4MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesBg4MenuItem.Text = "BG 4"; this.SnesBg4MenuItem.Click += new System.EventHandler(this.SnesBg4MenuItem_Click); // // SnesObj1MenuItem // this.SnesObj1MenuItem.Name = "SnesObj1MenuItem"; - this.SnesObj1MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesObj1MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesObj1MenuItem.Text = "OBJ 1"; this.SnesObj1MenuItem.Click += new System.EventHandler(this.SnesObj1MenuItem_Click); // // SnesObj2MenuItem // this.SnesObj2MenuItem.Name = "SnesObj2MenuItem"; - this.SnesObj2MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesObj2MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesObj2MenuItem.Text = "OBJ 2"; this.SnesObj2MenuItem.Click += new System.EventHandler(this.SnesObj2MenuItem_Click); // // SnesObj3MenuItem // this.SnesObj3MenuItem.Name = "SnesObj3MenuItem"; - this.SnesObj3MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesObj3MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesObj3MenuItem.Text = "OBJ 3"; this.SnesObj3MenuItem.Click += new System.EventHandler(this.SnesObj3MenuItem_Click); // // SnesObj4MenuItem // this.SnesObj4MenuItem.Name = "SnesObj4MenuItem"; - this.SnesObj4MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesObj4MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesObj4MenuItem.Text = "OBJ 4"; this.SnesObj4MenuItem.Click += new System.EventHandler(this.SnesObj4MenuItem_Click); // // toolStripSeparator18 // this.toolStripSeparator18.Name = "toolStripSeparator18"; - this.toolStripSeparator18.Size = new System.Drawing.Size(230, 6); + this.toolStripSeparator18.Size = new System.Drawing.Size(225, 6); // // SnesGfxDebuggerMenuItem // this.SnesGfxDebuggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Bug; this.SnesGfxDebuggerMenuItem.Name = "SnesGfxDebuggerMenuItem"; - this.SnesGfxDebuggerMenuItem.Size = new System.Drawing.Size(233, 22); + this.SnesGfxDebuggerMenuItem.Size = new System.Drawing.Size(228, 22); this.SnesGfxDebuggerMenuItem.Text = "Graphics Debugger"; this.SnesGfxDebuggerMenuItem.Click += new System.EventHandler(this.SnesGfxDebuggerMenuItem_Click); // // SnesGBInSGBMenuItem // this.SnesGBInSGBMenuItem.Name = "SnesGBInSGBMenuItem"; - this.SnesGBInSGBMenuItem.Size = new System.Drawing.Size(233, 22); + this.SnesGBInSGBMenuItem.Size = new System.Drawing.Size(228, 22); this.SnesGBInSGBMenuItem.Text = "Load GB in SGB"; this.SnesGBInSGBMenuItem.Click += new System.EventHandler(this.SnesGBInSGBMenuItem_Click); // // SnesGameGenieMenuItem // this.SnesGameGenieMenuItem.Name = "SnesGameGenieMenuItem"; - this.SnesGameGenieMenuItem.Size = new System.Drawing.Size(233, 22); + this.SnesGameGenieMenuItem.Size = new System.Drawing.Size(228, 22); this.SnesGameGenieMenuItem.Text = "&Game Genie Encoder/Decoder"; this.SnesGameGenieMenuItem.Click += new System.EventHandler(this.SnesGameGenieMenuItem_Click); // // SnesOptionsMenuItem // this.SnesOptionsMenuItem.Name = "SnesOptionsMenuItem"; - this.SnesOptionsMenuItem.Size = new System.Drawing.Size(233, 22); + this.SnesOptionsMenuItem.Size = new System.Drawing.Size(228, 22); this.SnesOptionsMenuItem.Text = "&Options"; this.SnesOptionsMenuItem.Click += new System.EventHandler(this.SnesOptionsMenuItem_Click); // @@ -2752,14 +2762,14 @@ this.ColecoSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.ColecoSkipBiosMenuItem}); this.ColecoSubMenu.Name = "ColecoSubMenu"; - this.ColecoSubMenu.Size = new System.Drawing.Size(56, 19); + this.ColecoSubMenu.Size = new System.Drawing.Size(51, 17); this.ColecoSubMenu.Text = "&Coleco"; this.ColecoSubMenu.DropDownOpened += new System.EventHandler(this.ColecoSubMenu_DropDownOpened); // // ColecoSkipBiosMenuItem // this.ColecoSkipBiosMenuItem.Name = "ColecoSkipBiosMenuItem"; - this.ColecoSkipBiosMenuItem.Size = new System.Drawing.Size(152, 22); + this.ColecoSkipBiosMenuItem.Size = new System.Drawing.Size(156, 22); this.ColecoSkipBiosMenuItem.Text = "&Skip BIOS intro"; this.ColecoSkipBiosMenuItem.Click += new System.EventHandler(this.ColecoSkipBiosMenuItem_Click); // @@ -2773,7 +2783,7 @@ this.MupenStyleLagMenuItem, this.N64ExpansionSlotMenuItem}); this.N64SubMenu.Name = "N64SubMenu"; - this.N64SubMenu.Size = new System.Drawing.Size(40, 19); + this.N64SubMenu.Size = new System.Drawing.Size(38, 17); this.N64SubMenu.Text = "N64"; this.N64SubMenu.DropDownOpened += new System.EventHandler(this.N64SubMenu_DropDownOpened); // @@ -2781,7 +2791,7 @@ // this.N64PluginSettingsMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("N64PluginSettingsMenuItem.Image"))); this.N64PluginSettingsMenuItem.Name = "N64PluginSettingsMenuItem"; - this.N64PluginSettingsMenuItem.Size = new System.Drawing.Size(192, 22); + this.N64PluginSettingsMenuItem.Size = new System.Drawing.Size(191, 22); this.N64PluginSettingsMenuItem.Text = "Plugins"; this.N64PluginSettingsMenuItem.Click += new System.EventHandler(this.N64PluginSettingsMenuItem_Click); // @@ -2789,33 +2799,33 @@ // this.N64ControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.N64ControllerSettingsMenuItem.Name = "N64ControllerSettingsMenuItem"; - this.N64ControllerSettingsMenuItem.Size = new System.Drawing.Size(192, 22); + this.N64ControllerSettingsMenuItem.Size = new System.Drawing.Size(191, 22); this.N64ControllerSettingsMenuItem.Text = "Controller Settings..."; this.N64ControllerSettingsMenuItem.Click += new System.EventHandler(this.N64ControllerSettingsMenuItem_Click); // // toolStripSeparator23 // this.toolStripSeparator23.Name = "toolStripSeparator23"; - this.toolStripSeparator23.Size = new System.Drawing.Size(189, 6); + this.toolStripSeparator23.Size = new System.Drawing.Size(188, 6); // // N64CircularAnalogRangeMenuItem // this.N64CircularAnalogRangeMenuItem.Name = "N64CircularAnalogRangeMenuItem"; - this.N64CircularAnalogRangeMenuItem.Size = new System.Drawing.Size(192, 22); + this.N64CircularAnalogRangeMenuItem.Size = new System.Drawing.Size(191, 22); this.N64CircularAnalogRangeMenuItem.Text = "Circular Analog Range"; this.N64CircularAnalogRangeMenuItem.Click += new System.EventHandler(this.N64CircularAnalogRangeMenuItem_Click); // // MupenStyleLagMenuItem // this.MupenStyleLagMenuItem.Name = "MupenStyleLagMenuItem"; - this.MupenStyleLagMenuItem.Size = new System.Drawing.Size(192, 22); + this.MupenStyleLagMenuItem.Size = new System.Drawing.Size(191, 22); this.MupenStyleLagMenuItem.Text = "&Non-VI Lag Frames"; this.MupenStyleLagMenuItem.Click += new System.EventHandler(this.MupenStyleLagMenuItem_Click); // // N64ExpansionSlotMenuItem // this.N64ExpansionSlotMenuItem.Name = "N64ExpansionSlotMenuItem"; - this.N64ExpansionSlotMenuItem.Size = new System.Drawing.Size(192, 22); + this.N64ExpansionSlotMenuItem.Size = new System.Drawing.Size(191, 22); this.N64ExpansionSlotMenuItem.Text = "&Use Expansion Slot"; this.N64ExpansionSlotMenuItem.Click += new System.EventHandler(this.N64ExpansionSlotMenuItem_Click); // @@ -2824,13 +2834,13 @@ this.SaturnSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.SaturnPreferencesMenuItem}); this.SaturnSubMenu.Name = "SaturnSubMenu"; - this.SaturnSubMenu.Size = new System.Drawing.Size(53, 19); + this.SaturnSubMenu.Size = new System.Drawing.Size(51, 17); this.SaturnSubMenu.Text = "&Saturn"; // // SaturnPreferencesMenuItem // this.SaturnPreferencesMenuItem.Name = "SaturnPreferencesMenuItem"; - this.SaturnPreferencesMenuItem.Size = new System.Drawing.Size(144, 22); + this.SaturnPreferencesMenuItem.Size = new System.Drawing.Size(155, 22); this.SaturnPreferencesMenuItem.Text = "Preferences..."; this.SaturnPreferencesMenuItem.Click += new System.EventHandler(this.SaturnPreferencesMenuItem_Click); // @@ -2839,13 +2849,13 @@ this.DGBSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.DGBsettingsToolStripMenuItem}); this.DGBSubMenu.Name = "DGBSubMenu"; - this.DGBSubMenu.Size = new System.Drawing.Size(59, 19); + this.DGBSubMenu.Size = new System.Drawing.Size(53, 17); this.DGBSubMenu.Text = "&GB Link"; // // DGBsettingsToolStripMenuItem // this.DGBsettingsToolStripMenuItem.Name = "DGBsettingsToolStripMenuItem"; - this.DGBsettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22); + this.DGBsettingsToolStripMenuItem.Size = new System.Drawing.Size(136, 22); this.DGBsettingsToolStripMenuItem.Text = "Settings..."; this.DGBsettingsToolStripMenuItem.Click += new System.EventHandler(this.DGBsettingsToolStripMenuItem_Click); // @@ -2857,32 +2867,32 @@ this.toolStripSeparator26, this.GenesisSettingsToolStripMenuItem}); this.GenesisSubMenu.Name = "GenesisSubMenu"; - this.GenesisSubMenu.Size = new System.Drawing.Size(59, 19); + this.GenesisSubMenu.Size = new System.Drawing.Size(56, 17); this.GenesisSubMenu.Text = "&Genesis"; // // vDPViewerToolStripMenuItem // this.vDPViewerToolStripMenuItem.Name = "vDPViewerToolStripMenuItem"; - this.vDPViewerToolStripMenuItem.Size = new System.Drawing.Size(233, 22); + this.vDPViewerToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.vDPViewerToolStripMenuItem.Text = "&VDP Viewer"; this.vDPViewerToolStripMenuItem.Click += new System.EventHandler(this.GenVdpViewerMenuItem_Click); // // GenesisGameGenieECDC // this.GenesisGameGenieECDC.Name = "GenesisGameGenieECDC"; - this.GenesisGameGenieECDC.Size = new System.Drawing.Size(233, 22); + this.GenesisGameGenieECDC.Size = new System.Drawing.Size(228, 22); this.GenesisGameGenieECDC.Text = "&Game Genie Encoder/Decoder"; this.GenesisGameGenieECDC.Click += new System.EventHandler(this.GenesisGameGenieECDC_Click); // // toolStripSeparator26 // this.toolStripSeparator26.Name = "toolStripSeparator26"; - this.toolStripSeparator26.Size = new System.Drawing.Size(230, 6); + this.toolStripSeparator26.Size = new System.Drawing.Size(225, 6); // // GenesisSettingsToolStripMenuItem // this.GenesisSettingsToolStripMenuItem.Name = "GenesisSettingsToolStripMenuItem"; - this.GenesisSettingsToolStripMenuItem.Size = new System.Drawing.Size(233, 22); + this.GenesisSettingsToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.GenesisSettingsToolStripMenuItem.Text = "&Settings..."; this.GenesisSettingsToolStripMenuItem.Click += new System.EventHandler(this.GenesisSettingsMenuItem_Click); // @@ -2891,13 +2901,13 @@ this.wonderSwanToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.settingsToolStripMenuItem}); this.wonderSwanToolStripMenuItem.Name = "wonderSwanToolStripMenuItem"; - this.wonderSwanToolStripMenuItem.Size = new System.Drawing.Size(89, 19); + this.wonderSwanToolStripMenuItem.Size = new System.Drawing.Size(83, 17); this.wonderSwanToolStripMenuItem.Text = "&WonderSwan"; // // settingsToolStripMenuItem // this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; - this.settingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22); + this.settingsToolStripMenuItem.Size = new System.Drawing.Size(136, 22); this.settingsToolStripMenuItem.Text = "&Settings..."; this.settingsToolStripMenuItem.Click += new System.EventHandler(this.WondersawnSettingsMenuItem_Click); // @@ -2907,7 +2917,7 @@ this.AppleDisksSubMenu, this.settingsToolStripMenuItem1}); this.AppleSubMenu.Name = "AppleSubMenu"; - this.AppleSubMenu.Size = new System.Drawing.Size(50, 19); + this.AppleSubMenu.Size = new System.Drawing.Size(46, 17); this.AppleSubMenu.Text = "Apple"; this.AppleSubMenu.DropDownOpened += new System.EventHandler(this.AppleSubMenu_DropDownOpened); // @@ -2916,7 +2926,7 @@ this.AppleDisksSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripSeparator31}); this.AppleDisksSubMenu.Name = "AppleDisksSubMenu"; - this.AppleDisksSubMenu.Size = new System.Drawing.Size(125, 22); + this.AppleDisksSubMenu.Size = new System.Drawing.Size(136, 22); this.AppleDisksSubMenu.Text = "Disks"; this.AppleDisksSubMenu.DropDownOpened += new System.EventHandler(this.AppleDisksSubMenu_DropDownOpened); // @@ -2928,7 +2938,7 @@ // settingsToolStripMenuItem1 // this.settingsToolStripMenuItem1.Name = "settingsToolStripMenuItem1"; - this.settingsToolStripMenuItem1.Size = new System.Drawing.Size(125, 22); + this.settingsToolStripMenuItem1.Size = new System.Drawing.Size(136, 22); this.settingsToolStripMenuItem1.Text = "&Settings..."; this.settingsToolStripMenuItem1.Click += new System.EventHandler(this.settingsToolStripMenuItem1_Click_1); // @@ -2937,13 +2947,13 @@ this.C64SubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.C64SettingsMenuItem}); this.C64SubMenu.Name = "C64SubMenu"; - this.C64SubMenu.Size = new System.Drawing.Size(39, 19); + this.C64SubMenu.Size = new System.Drawing.Size(38, 17); this.C64SubMenu.Text = "&C64"; // // C64SettingsMenuItem // this.C64SettingsMenuItem.Name = "C64SettingsMenuItem"; - this.C64SettingsMenuItem.Size = new System.Drawing.Size(125, 22); + this.C64SettingsMenuItem.Size = new System.Drawing.Size(136, 22); this.C64SettingsMenuItem.Text = "&Settings..."; this.C64SettingsMenuItem.Click += new System.EventHandler(this.C64SettingsMenuItem_Click); // @@ -2955,7 +2965,7 @@ this.FeaturesMenuItem, this.AboutMenuItem}); this.HelpSubMenu.Name = "HelpSubMenu"; - this.HelpSubMenu.Size = new System.Drawing.Size(44, 19); + this.HelpSubMenu.Size = new System.Drawing.Size(40, 17); this.HelpSubMenu.Text = "&Help"; this.HelpSubMenu.DropDownOpened += new System.EventHandler(this.HelpSubMenu_DropDownOpened); // @@ -2963,7 +2973,7 @@ // this.OnlineHelpMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Help; this.OnlineHelpMenuItem.Name = "OnlineHelpMenuItem"; - this.OnlineHelpMenuItem.Size = new System.Drawing.Size(146, 22); + this.OnlineHelpMenuItem.Size = new System.Drawing.Size(151, 22); this.OnlineHelpMenuItem.Text = "&Online Help..."; this.OnlineHelpMenuItem.Click += new System.EventHandler(this.OnlineHelpMenuItem_Click); // @@ -2971,7 +2981,7 @@ // this.ForumsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.TAStudio; this.ForumsMenuItem.Name = "ForumsMenuItem"; - this.ForumsMenuItem.Size = new System.Drawing.Size(146, 22); + this.ForumsMenuItem.Size = new System.Drawing.Size(151, 22); this.ForumsMenuItem.Text = "Forums..."; this.ForumsMenuItem.Click += new System.EventHandler(this.ForumsMenuItem_Click); // @@ -2979,7 +2989,7 @@ // this.FeaturesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.kitchensink; this.FeaturesMenuItem.Name = "FeaturesMenuItem"; - this.FeaturesMenuItem.Size = new System.Drawing.Size(146, 22); + this.FeaturesMenuItem.Size = new System.Drawing.Size(151, 22); this.FeaturesMenuItem.Text = "&Features"; this.FeaturesMenuItem.Click += new System.EventHandler(this.FeaturesMenuItem_Click); // @@ -2987,7 +2997,7 @@ // this.AboutMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CorpHawkSmall; this.AboutMenuItem.Name = "AboutMenuItem"; - this.AboutMenuItem.Size = new System.Drawing.Size(146, 22); + this.AboutMenuItem.Size = new System.Drawing.Size(151, 22); this.AboutMenuItem.Text = "&About"; this.AboutMenuItem.Click += new System.EventHandler(this.AboutMenuItem_Click); // @@ -3096,7 +3106,7 @@ // this.SaveSlotsStatusLabel.BackColor = System.Drawing.SystemColors.Control; this.SaveSlotsStatusLabel.Name = "SaveSlotsStatusLabel"; - this.SaveSlotsStatusLabel.Size = new System.Drawing.Size(58, 17); + this.SaveSlotsStatusLabel.Size = new System.Drawing.Size(56, 17); this.SaveSlotsStatusLabel.Text = "Save slots"; // // Slot1StatusButton @@ -3199,7 +3209,7 @@ // this.CoreNameStatusBarButton.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CorpHawkSmall; this.CoreNameStatusBarButton.Name = "CoreNameStatusBarButton"; - this.CoreNameStatusBarButton.Size = new System.Drawing.Size(71, 17); + this.CoreNameStatusBarButton.Size = new System.Drawing.Size(66, 17); this.CoreNameStatusBarButton.Text = "Neshawk"; // // ProfileFirstBootLabel @@ -3229,7 +3239,7 @@ this.UpdateNotification.IsLink = true; this.UpdateNotification.LinkColor = System.Drawing.Color.Red; this.UpdateNotification.Name = "UpdateNotification"; - this.UpdateNotification.Size = new System.Drawing.Size(46, 17); + this.UpdateNotification.Size = new System.Drawing.Size(53, 17); this.UpdateNotification.Spring = true; this.UpdateNotification.Text = "New version available!"; this.UpdateNotification.TextAlign = System.Drawing.ContentAlignment.MiddleRight; @@ -3426,7 +3436,7 @@ // this.toolStripMenuItem6.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.toolStripMenuItem6.Name = "toolStripMenuItem6"; - this.toolStripMenuItem6.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem6.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem6.Text = "&Controllers..."; this.toolStripMenuItem6.Click += new System.EventHandler(this.ControllersMenuItem_Click); // @@ -3434,7 +3444,7 @@ // this.toolStripMenuItem7.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.HotKeys; this.toolStripMenuItem7.Name = "toolStripMenuItem7"; - this.toolStripMenuItem7.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem7.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem7.Text = "&Hotkeys..."; this.toolStripMenuItem7.Click += new System.EventHandler(this.HotkeysMenuItem_Click); // @@ -3442,7 +3452,7 @@ // this.toolStripMenuItem8.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItem8.Image"))); this.toolStripMenuItem8.Name = "toolStripMenuItem8"; - this.toolStripMenuItem8.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem8.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem8.Text = "Display..."; this.toolStripMenuItem8.Click += new System.EventHandler(this.DisplayConfigMenuItem_Click); // @@ -3450,7 +3460,7 @@ // this.toolStripMenuItem9.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AudioHS; this.toolStripMenuItem9.Name = "toolStripMenuItem9"; - this.toolStripMenuItem9.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem9.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem9.Text = "&Sound..."; this.toolStripMenuItem9.Click += new System.EventHandler(this.SoundMenuItem_Click); // @@ -3458,7 +3468,7 @@ // this.toolStripMenuItem10.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CopyFolderHS; this.toolStripMenuItem10.Name = "toolStripMenuItem10"; - this.toolStripMenuItem10.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem10.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem10.Text = "Paths..."; this.toolStripMenuItem10.Click += new System.EventHandler(this.PathsMenuItem_Click); // @@ -3466,7 +3476,7 @@ // this.toolStripMenuItem11.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItem11.Image"))); this.toolStripMenuItem11.Name = "toolStripMenuItem11"; - this.toolStripMenuItem11.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem11.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem11.Text = "&Firmwares..."; this.toolStripMenuItem11.Click += new System.EventHandler(this.FirmwaresMenuItem_Click); // @@ -3474,7 +3484,7 @@ // this.toolStripMenuItem12.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MessageConfig; this.toolStripMenuItem12.Name = "toolStripMenuItem12"; - this.toolStripMenuItem12.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem12.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem12.Text = "&Messages..."; this.toolStripMenuItem12.Click += new System.EventHandler(this.MessagesMenuItem_Click); // @@ -3482,7 +3492,7 @@ // this.toolStripMenuItem13.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lightning; this.toolStripMenuItem13.Name = "toolStripMenuItem13"; - this.toolStripMenuItem13.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem13.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem13.Text = "&Autofire..."; this.toolStripMenuItem13.Click += new System.EventHandler(this.AutofireMenuItem_Click); // @@ -3490,28 +3500,28 @@ // this.toolStripMenuItem14.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Previous; this.toolStripMenuItem14.Name = "toolStripMenuItem14"; - this.toolStripMenuItem14.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem14.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem14.Text = "&Rewind..."; this.toolStripMenuItem14.Click += new System.EventHandler(this.RewindOptionsMenuItem_Click); // // toolStripMenuItem15 // this.toolStripMenuItem15.Name = "toolStripMenuItem15"; - this.toolStripMenuItem15.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem15.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem15.Text = "File Extensions..."; this.toolStripMenuItem15.Click += new System.EventHandler(this.FileExtensionsMenuItem_Click); // // customizeToolStripMenuItem // this.customizeToolStripMenuItem.Name = "customizeToolStripMenuItem"; - this.customizeToolStripMenuItem.Size = new System.Drawing.Size(159, 22); + this.customizeToolStripMenuItem.Size = new System.Drawing.Size(168, 22); this.customizeToolStripMenuItem.Text = "Customize..."; this.customizeToolStripMenuItem.Click += new System.EventHandler(this.CustomizeMenuItem_Click); // // toolStripSeparator30 // this.toolStripSeparator30.Name = "toolStripSeparator30"; - this.toolStripSeparator30.Size = new System.Drawing.Size(156, 6); + this.toolStripSeparator30.Size = new System.Drawing.Size(165, 6); // // SavestateTypeContextSubMenu // @@ -3520,26 +3530,26 @@ this.SavestateBinaryContextMenuItem, this.SavestateTextContextMenuItem}); this.SavestateTypeContextSubMenu.Name = "SavestateTypeContextSubMenu"; - this.SavestateTypeContextSubMenu.Size = new System.Drawing.Size(159, 22); + this.SavestateTypeContextSubMenu.Size = new System.Drawing.Size(168, 22); this.SavestateTypeContextSubMenu.Text = "Savestate Type"; this.SavestateTypeContextSubMenu.DropDownOpened += new System.EventHandler(this.SavestateTypeContextSubMenu_DropDownOpened); // // SavestateTypeDefaultContextMenuItem // this.SavestateTypeDefaultContextMenuItem.Name = "SavestateTypeDefaultContextMenuItem"; - this.SavestateTypeDefaultContextMenuItem.Size = new System.Drawing.Size(112, 22); + this.SavestateTypeDefaultContextMenuItem.Size = new System.Drawing.Size(120, 22); this.SavestateTypeDefaultContextMenuItem.Text = "&Default"; // // SavestateBinaryContextMenuItem // this.SavestateBinaryContextMenuItem.Name = "SavestateBinaryContextMenuItem"; - this.SavestateBinaryContextMenuItem.Size = new System.Drawing.Size(112, 22); + this.SavestateBinaryContextMenuItem.Size = new System.Drawing.Size(120, 22); this.SavestateBinaryContextMenuItem.Text = "&Binary"; // // SavestateTextContextMenuItem // this.SavestateTextContextMenuItem.Name = "SavestateTextContextMenuItem"; - this.SavestateTextContextMenuItem.Size = new System.Drawing.Size(112, 22); + this.SavestateTextContextMenuItem.Size = new System.Drawing.Size(120, 22); this.SavestateTextContextMenuItem.Text = "&Text"; // // CoreSelectionContextSubMenu @@ -3548,7 +3558,7 @@ this.GBInSGBContextMenuItem, this.NesInQuickNESContextMenuItem}); this.CoreSelectionContextSubMenu.Name = "CoreSelectionContextSubMenu"; - this.CoreSelectionContextSubMenu.Size = new System.Drawing.Size(159, 22); + this.CoreSelectionContextSubMenu.Size = new System.Drawing.Size(168, 22); this.CoreSelectionContextSubMenu.Text = "Core Selection"; this.CoreSelectionContextSubMenu.DropDownOpened += new System.EventHandler(this.CoreSelectionContextSubMenu_DropDownOpened); // @@ -3569,13 +3579,13 @@ // toolStripSeparator37 // this.toolStripSeparator37.Name = "toolStripSeparator37"; - this.toolStripSeparator37.Size = new System.Drawing.Size(156, 6); + this.toolStripSeparator37.Size = new System.Drawing.Size(165, 6); // // toolStripMenuItem66 // this.toolStripMenuItem66.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Save; this.toolStripMenuItem66.Name = "toolStripMenuItem66"; - this.toolStripMenuItem66.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem66.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem66.Text = "Save Config"; this.toolStripMenuItem66.Click += new System.EventHandler(this.SaveConfigMenuItem_Click); // @@ -3583,7 +3593,7 @@ // this.toolStripMenuItem67.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.LoadConfig; this.toolStripMenuItem67.Name = "toolStripMenuItem67"; - this.toolStripMenuItem67.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem67.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem67.Text = "Load Config"; this.toolStripMenuItem67.Click += new System.EventHandler(this.LoadConfigMenuItem_Click); // @@ -3827,7 +3837,7 @@ private System.Windows.Forms.ToolStripMenuItem DisplayLogWindowMenuItem; private System.Windows.Forms.ToolStripMenuItem DisplaySubtitlesMenuItem; private System.Windows.Forms.ToolStripMenuItem AVSubMenu; - private System.Windows.Forms.ToolStripMenuItem RecordAVMenuItem; + private System.Windows.Forms.ToolStripMenuItem ConfigAndRecordAVMenuItem; private System.Windows.Forms.ToolStripMenuItem StopAVIMenuItem; private System.Windows.Forms.ToolStripStatusLabel AVIStatusLabel; private System.Windows.Forms.ToolStripMenuItem RestartMovieContextMenuItem; @@ -4049,5 +4059,6 @@ private System.Windows.Forms.ToolStripMenuItem OpenAdvancedMenuItem; private System.Windows.Forms.ToolStripMenuItem gameSharkConverterToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem dummyExternalTool; + private System.Windows.Forms.ToolStripMenuItem RecordAVMenuItem; } } diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 2851239f8b..9f154f379a 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -276,18 +276,20 @@ namespace BizHawk.Client.EmuHawk private void AVSubMenu_DropDownOpened(object sender, EventArgs e) { - RecordAVMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Record A/V"].Bindings; + ConfigAndRecordAVMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Record A/V"].Bindings; StopAVIMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Stop A/V"].Bindings; CaptureOSDMenuItem.Checked = Global.Config.AVI_CaptureOSD; + RecordAVMenuItem.Enabled = !string.IsNullOrEmpty(Global.Config.VideoWriter) && _currAviWriter == null; + if (_currAviWriter == null) { - RecordAVMenuItem.Enabled = true; + ConfigAndRecordAVMenuItem.Enabled = true; StopAVIMenuItem.Enabled = false; } else { - RecordAVMenuItem.Enabled = false; + ConfigAndRecordAVMenuItem.Enabled = false; StopAVIMenuItem.Enabled = true; } } @@ -584,11 +586,16 @@ namespace BizHawk.Client.EmuHawk Global.Config.MovieEndAction = MovieEndAction.Pause; } - private void RecordAVMenuItem_Click(object sender, EventArgs e) + private void ConfigAndRecordAVMenuItem_Click(object sender, EventArgs e) { RecordAv(); } + private void RecordAVMenuItem_Click(object sender, EventArgs e) + { + RecordAv(null, null); // force unattended, but allow tradtional setup + } + private void StopAVMenuItem_Click(object sender, EventArgs e) { StopAv(); diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 087fae8184..88a8460200 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -2902,10 +2902,12 @@ namespace BizHawk.Client.EmuHawk // select IVideoWriter to use IVideoWriter aw = null; - if (unattended) + if (string.IsNullOrEmpty(videowritername) && !string.IsNullOrEmpty(Global.Config.VideoWriter)) + videowritername = Global.Config.VideoWriter; + + if (unattended && !string.IsNullOrEmpty(videowritername)) { aw = VideoWriterInventory.GetVideoWriter(videowritername); - } else { @@ -2946,7 +2948,7 @@ namespace BizHawk.Client.EmuHawk // select codec token // do this before save dialog because ffmpeg won't know what extension it wants until it's been configured - if (unattended) + if (unattended && !string.IsNullOrEmpty(filename)) { aw.SetDefaultVideoCodecToken(); } @@ -2964,7 +2966,7 @@ namespace BizHawk.Client.EmuHawk } // select file to save to - if (unattended) + if (unattended && !string.IsNullOrEmpty(filename)) { aw.OpenFile(filename); } diff --git a/BizHawk.Client.EmuHawk/MainForm.resx b/BizHawk.Client.EmuHawk/MainForm.resx index f1fca9c6e8..ae8639d62d 100644 --- a/BizHawk.Client.EmuHawk/MainForm.resx +++ b/BizHawk.Client.EmuHawk/MainForm.resx @@ -123,453 +123,463 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAABpElEQVQ4T52T - QUsCURSF33+SDAUxRAyEwQiEksiFUJEMhGEDOcQgRi2UGJBgCkFIZDDbGEGWEsTMItBNrdu3ad3y1Hmk - VNosvHC4l3u+A2/ezIi/5fP58D1OlJf3qzRNmwCn7TzrZ8AzfGk3kM1mkcvlUCgUUCqVUKlUUK1WwSDF - mTt6ZMgyw6zIZDIYDAYziVmRTqfhui5WDhoI7VxAMa6xdvKIDWsgxZk7emTIRiIR2ZkVqVQKvV4Pc1vn - +OI9RYas4ziyMyuSySQ6nQ7mt2s4unuH6XxMFT0yZHkCdmZFIpFAs9lEUK1Drb9g82wIrfWK4s2bFGfu - 6JEh2+12ZWdWxONxWJYln3HddBDVWlNFjwxZnoCdWRGNRlEul7Gw20Tm9Amr5YepokeGbLvdlp1ZEQ6H - YRgGInl7fPP/iQzZkZgVwWAQ+XweS3s1LO5fyVe2fHiL5PG9FGfu6JEhOxKzwu/3Q1VV6LoO0zRh2zb6 - /f74Y+HMHT0yZEdiVhQNXQ6BQAChUEheUCwWkxekKIoUZ+7okSHLDLPyf3geuphFQgjxCdiQMGrYYwVf - AAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOuwAA + DrsBx/jUNgAAAa9JREFUOE+dk0FrGlEUhd9/kloUxCBiQRBLQUglxIXQlspAMdiBKmEIlmahhAEJmBII + NMiQ2I0hEBOlUMZFwWzadffZdN3lab8HE1pjXEQ43Os539HxzWjMwisWi2nRi96vyv7ruK5750OWefd9 + kfX/LawsnwbHqtVqqtfrajabarfb6na76vV6oojY8chgYOnQNdVqVfP5/EGiayqVimazmda3j5V680kF + 70wbe1/1oj+3Yscjg4HNZDJ20jXlclmTyUSPXn3UX36lYGDDMLSTrimVShqNRnr8+lAfLn/JD38vFRkM + LFfApGuKxaIGg4GSzpGcox96eXAt9+Snds5vrNjxyGBgx+OxnXRNPp9Xv9+3v3HTD5V1T5aKDAaWK2DS + NdlsVp1OR2tbA1X3v+l558tSkcHADodDO+madDotz/OUaQS3Jx/dgcUJAxuJrkkmk2o0Gnr69lBP3n22 + t+zZ+wuVdq+s2PHIYGAj0TXxeFyO46jVasn3fQVBoOl0evtgseORwcBGomt2vJZYEomEUqmUPaBcLmcP + qFAoWLHjkcHA0qFr/zjfr2d6iOj+AdiQMGoJxWWRAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAQ - SgAAEEoBNcinnwAAAHBJREFUOE/NkOEKACEIg330e/NOA2PqTqL+XPBpbcMokUfGFUy0xTrFitogNHgG - qUJDzs58ERpydua1/OwJiv967hQr4QkfaHJSPDzYICR4OwOOsOK3+c2Oh/I5QMUEDijD1gbMEiKZpaF5 - BBW3kfECg6SiSi9TP3UAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAQSQAA + EEkBmHGG8gAAAHVJREFUOE/NkuEKwCAIhN2b781bGsZlarH9aIEEcX2eVxfdVOjTYoCpUhef2d3qWnMR + AoTEkV9OMwEMdQTwsxGc9PU19l7BS5qhNVyuOXS4wFlgoXgL4FoMHHUtfqTIgZ6HGaw6I2CCDXMmGagu + BaycvB4hAz9wYIvatCqJLwAAAABJRU5ErkJggg== - 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 - AAAASUVORK5CYII= + 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 @@ -580,24 +590,25 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAABpElEQVQ4T52T - QUsCURSF33+SDAUxRAyEwQiEksiFUJEMhGEDOcQgRi2UGJBgCkFIZDDbGEGWEsTMItBNrdu3ad3y1Hmk - VNosvHC4l3u+A2/ezIi/5fP58D1OlJf3qzRNmwCn7TzrZ8AzfGk3kM1mkcvlUCgUUCqVUKlUUK1WwSDF - mTt6ZMgyw6zIZDIYDAYziVmRTqfhui5WDhoI7VxAMa6xdvKIDWsgxZk7emTIRiIR2ZkVqVQKvV4Pc1vn - +OI9RYas4ziyMyuSySQ6nQ7mt2s4unuH6XxMFT0yZHkCdmZFIpFAs9lEUK1Drb9g82wIrfWK4s2bFGfu - 6JEh2+12ZWdWxONxWJYln3HddBDVWlNFjwxZnoCdWRGNRlEul7Gw20Tm9Amr5YepokeGbLvdlp1ZEQ6H - YRgGInl7fPP/iQzZkZgVwWAQ+XweS3s1LO5fyVe2fHiL5PG9FGfu6JEhOxKzwu/3Q1VV6LoO0zRh2zb6 - /f74Y+HMHT0yZEdiVhQNXQ6BQAChUEheUCwWkxekKIoUZ+7okSHLDLPyf3geuphFQgjxCdiQMGrYYwVf - AAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOuwAA + DrsBx/jUNgAAAa9JREFUOE+dk0FrGlEUhd9/kloUxCBiQRBLQUglxIXQlspAMdiBKmEIlmahhAEJmBII + NMiQ2I0hEBOlUMZFwWzadffZdN3lab8HE1pjXEQ43Os539HxzWjMwisWi2nRi96vyv7ruK5750OWefd9 + kfX/LawsnwbHqtVqqtfrajabarfb6na76vV6oojY8chgYOnQNdVqVfP5/EGiayqVimazmda3j5V680kF + 70wbe1/1oj+3Yscjg4HNZDJ20jXlclmTyUSPXn3UX36lYGDDMLSTrimVShqNRnr8+lAfLn/JD38vFRkM + LFfApGuKxaIGg4GSzpGcox96eXAt9+Snds5vrNjxyGBgx+OxnXRNPp9Xv9+3v3HTD5V1T5aKDAaWK2DS + NdlsVp1OR2tbA1X3v+l558tSkcHADodDO+madDotz/OUaQS3Jx/dgcUJAxuJrkkmk2o0Gnr69lBP3n22 + t+zZ+wuVdq+s2PHIYGAj0TXxeFyO46jVasn3fQVBoOl0evtgseORwcBGomt2vJZYEomEUqmUPaBcLmcP + qFAoWLHjkcHA0qFr/zjfr2d6iOj+AdiQMGoJxWWRAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAQ - SgAAEEoBNcinnwAAAHBJREFUOE/NkOEKACEIg330e/NOA2PqTqL+XPBpbcMokUfGFUy0xTrFitogNHgG - qUJDzs58ERpydua1/OwJiv967hQr4QkfaHJSPDzYICR4OwOOsOK3+c2Oh/I5QMUEDijD1gbMEiKZpaF5 - BBW3kfECg6SiSi9TP3UAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAQSQAA + EEkBmHGG8gAAAHVJREFUOE/NkuEKwCAIhN2b781bGsZlarH9aIEEcX2eVxfdVOjTYoCpUhef2d3qWnMR + AoTEkV9OMwEMdQTwsxGc9PU19l7BS5qhNVyuOXS4wFlgoXgL4FoMHHUtfqTIgZ6HGaw6I2CCDXMmGagu + BaycvB4hAz9wYIvatCqJLwAAAABJRU5ErkJggg== From 26ac8b347af9144cb1ff0384bed6e4ddc3e9f3a5 Mon Sep 17 00:00:00 2001 From: zeromus Date: Wed, 16 Dec 2015 14:34:30 -0600 Subject: [PATCH 030/106] fix libsnes dlls on windows xp --- libsnes/vs2015/libsnes.vcxproj | 4 ++++ output/dll/libsneshawk-32-compatibility.dll | Bin 1056256 -> 1055232 bytes output/dll/libsneshawk-32-performance.dll | Bin 1064448 -> 1063936 bytes 3 files changed, 4 insertions(+) diff --git a/libsnes/vs2015/libsnes.vcxproj b/libsnes/vs2015/libsnes.vcxproj index 75f893b5a6..affaca50e4 100644 --- a/libsnes/vs2015/libsnes.vcxproj +++ b/libsnes/vs2015/libsnes.vcxproj @@ -98,6 +98,7 @@ HOOKS;BIZHAWK;PROFILE_PERFORMANCE;GAMEBOY;%(PreprocessorDefinitions) true false + /Zc:threadSafeInit- %(AdditionalOptions) true @@ -113,6 +114,7 @@ HOOKS;BIZHAWK;PROFILE_COMPATIBILITY;GAMEBOY;%(PreprocessorDefinitions) true false + /Zc:threadSafeInit- %(AdditionalOptions) true @@ -136,6 +138,7 @@ StreamingSIMDExtensions Fast MultiThreaded + /Zc:threadSafeInit- %(AdditionalOptions) true @@ -159,6 +162,7 @@ Speed true AnySuitable + /Zc:threadSafeInit- %(AdditionalOptions) true diff --git a/output/dll/libsneshawk-32-compatibility.dll b/output/dll/libsneshawk-32-compatibility.dll index fea764ec23a927d841a6a84144409befb74b2d9f..36389c49c88d91b260d8fd9b065737873332977e 100644 GIT binary patch delta 334814 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 ?peo3t3{at0HR!c2q6}&gP(crp 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
t3*8ew45xSdnr6Zp(KHLfG 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%0DK;1`UTK@h-V{6w+8Mx7g85$jm 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

7#Ss2=TK&L}{V-udqHbB{%q(GD=$k2|jWP%^p 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

?*uzIs%|gg(pu475+vlJW3JJ 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

M<0Rqq_iZKhzldt9CFx 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�F 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 delta 336984 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 z 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

Kot({DIqNp7W+yHe0|qxcU9w!ott(f} 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 Date: Thu, 17 Dec 2015 00:23:52 +0300 Subject: [PATCH 031/106] avi: try to remember previously used codec. todo: fix canceling codec selection but then going ahead and recording. --- BizHawk.Client.EmuHawk/AVOut/AviWriter.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/BizHawk.Client.EmuHawk/AVOut/AviWriter.cs b/BizHawk.Client.EmuHawk/AVOut/AviWriter.cs index 0f3556fa3e..e1ebca51de 100644 --- a/BizHawk.Client.EmuHawk/AVOut/AviWriter.cs +++ b/BizHawk.Client.EmuHawk/AVOut/AviWriter.cs @@ -584,7 +584,8 @@ namespace BizHawk.Client.EmuHawk int ret = Win32.AVISaveOptions(owner, 0, 1, streams, infPtrs); - opts = (Win32.AVICOMPRESSOPTIONS)Marshal.PtrToStructure(mem, typeof(Win32.AVICOMPRESSOPTIONS)); + if (ret == 1) + opts = (Win32.AVICOMPRESSOPTIONS)Marshal.PtrToStructure(mem, typeof(Win32.AVICOMPRESSOPTIONS)); Marshal.FreeHGlobal(mem); @@ -653,6 +654,11 @@ namespace BizHawk.Client.EmuHawk { comprOptions = currVideoCodecToken.comprOptions; } + else if (!string.IsNullOrEmpty(Global.Config.AVICodecToken)) + { + comprOptions = CodecToken.DeSerialize(Global.Config.AVICodecToken).comprOptions; + } + if (AVISaveOptions(pAviRawVideoStream, ref comprOptions, hwnd) != 0) { CodecToken ret = CodecToken.TakePossession(comprOptions); From a281a18dfe407cc790b0014ea4e78fa7e35ed61c Mon Sep 17 00:00:00 2001 From: zeromus Date: Wed, 16 Dec 2015 15:22:19 -0600 Subject: [PATCH 032/106] cleanup lua vcxproj --- LuaInterface/Lua/src/lua514.vcxproj | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/LuaInterface/Lua/src/lua514.vcxproj b/LuaInterface/Lua/src/lua514.vcxproj index 57e51473af..a092582da0 100644 --- a/LuaInterface/Lua/src/lua514.vcxproj +++ b/LuaInterface/Lua/src/lua514.vcxproj @@ -25,21 +25,18 @@ DynamicLibrary Unicode - true v100 true DynamicLibrary Unicode - true v100 true DynamicLibrary Unicode - true v100 @@ -86,7 +83,6 @@ - /clr %(AdditionalOptions) Disabled $(ProjectDir)..\src;%(AdditionalIncludeDirectories) LUA_BUILD_AS_DLL;%(PreprocessorDefinitions) @@ -97,7 +93,7 @@ 4996;%(DisableSpecificWarnings) - ..\..\luaperks.lib;gdi32.lib;opengl32.lib;shell32.lib;user32.lib;comctl32.lib;kernel32.lib;ws2_32.lib;psapi.lib;AdvAPI32.Lib;ole32.lib;mpr.lib;comdlg32.lib;WinSpool.Lib + gdi32.lib;opengl32.lib;shell32.lib;user32.lib;comctl32.lib;kernel32.lib;ws2_32.lib;psapi.lib;AdvAPI32.Lib;ole32.lib;mpr.lib;comdlg32.lib;WinSpool.Lib $(OutDir)$(TargetName).dll true true @@ -201,6 +197,12 @@ false false + true + true + true + false + false + false From 23caf74a3414e7d17ffa2707ebc1f6a851d227a6 Mon Sep 17 00:00:00 2001 From: Connor Olding Date: Wed, 16 Dec 2015 13:39:45 -0800 Subject: [PATCH 033/106] disable CLR on luaglue.cpp this should work around Lua numbers being casted to floats when the N64 core is loaded. note that the included lua51.dll has yet to be rebuilt. --- LuaInterface/Lua/src/lua514.vcxproj | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/LuaInterface/Lua/src/lua514.vcxproj b/LuaInterface/Lua/src/lua514.vcxproj index a092582da0..ce6ac6f33c 100644 --- a/LuaInterface/Lua/src/lua514.vcxproj +++ b/LuaInterface/Lua/src/lua514.vcxproj @@ -204,7 +204,11 @@ false false - + + false + false + false + From 4f9061c45e37acc97553ce7bce65cdafe2eba7f7 Mon Sep 17 00:00:00 2001 From: zeromus Date: Wed, 16 Dec 2015 16:34:33 -0600 Subject: [PATCH 034/106] update lua vcxproj to vs2015. rebuild dlls. should hide the floating point precision on n64 problem, but i still suspect theres badness --- LuaInterface/Lua/src/lua514.vcxproj | 18 +++++++++--------- References/LuaInterface.dll | Bin 62976 -> 61440 bytes References/lua51.dll | Bin 315392 -> 213504 bytes 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/LuaInterface/Lua/src/lua514.vcxproj b/LuaInterface/Lua/src/lua514.vcxproj index ce6ac6f33c..33a9324ea5 100644 --- a/LuaInterface/Lua/src/lua514.vcxproj +++ b/LuaInterface/Lua/src/lua514.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -20,24 +20,25 @@ ManagedCProj lua51 v4.0 + 8.1 DynamicLibrary Unicode - v100 + v140_xp true DynamicLibrary Unicode - v100 + v140_xp true DynamicLibrary Unicode - v100 + v140_xp @@ -103,6 +104,7 @@ $(OutDir)lua51.lib MachineX86 + Windows @@ -128,6 +130,7 @@ $(OutDir)lua51.lib MachineX86 + Windows @@ -169,6 +172,7 @@ $(OutDir)lua51.lib MachineX86 + Windows @@ -204,11 +208,7 @@ false false - - false - false - false - + diff --git a/References/LuaInterface.dll b/References/LuaInterface.dll index 46bdb94093984cd4eb3c22ffb2d2bde1305caf03..bfdd781c349fcfaf2f7f2ba4b541c154544b6763 100644 GIT binary patch literal 61440 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 literal 62976 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 U$3h6CA3gUWf%_Gh|5qINU#+oCy8r+H diff --git a/References/lua51.dll b/References/lua51.dll index 62393ca2aaf85690cb37fc6f1ea83a094fbdcab7..4e4316442dea1fca46982e1d135108574d300808 100644 GIT binary patch literal 213504 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 SFO%ZP;Ard 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 literal 315392 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

  • ^K=|4yxo$JU*LumdtD~-R6<|skF{>OVsva}50nS*&>}HecWPS)- zisoJYfV``VKWZWlTec@1Z?odsLb5=hSgo6M>&Hq-*EXp0j^AWqwS_ymko)SK{{LL6 z|AWFwG^PF&LJcsCh!zVVTDw@B)^db?HzzpVK3~%4*y}eqW`|Jfe*k5*pXiAko;0ui zl%G89EYGO@@x|Q!(E7p(>z4sk9uKDPTAJjt6no=EJ7H&>r6}HQ%4@1-4tg`%ZrA+F z;>+1O?+3l&`LO8rnBY1cS|JSbgLu+P*>9cJ=hnln#@?AOPy2^nL;MWFnm7@KkK>)z z4hBM<-42GKsB$H9c%`*H5p({Ln1wiP8@9_V=1e2{Sy?AcTJgBX zYX>%gqdi~F;q3?Bw5>irPIHCMm(V)1fTK;)eQ+x4I3nN~E3z5=rFW22Q8l{X={F&CupgTh(h>(3zg%Qve3zDB;! zUS~%8;}pJUmgfNeqLvMw+>8)OS3`-)v{Ba;2adHe4KzqyS69QSc>nYhsCCI-aD_$tVO zmIdoD6-{Y<(`kKC;eSvcfqL-!Au~Z)8$rTrwV9nShx)f@;&gbw;wP+m7OSEx&1!1{ zTCNju7_|SL#2(w#DS6OhEqF_vg3DQV(Mg~jG{O!)i(u!>4$HRmd4olaSZ z-fOe=a&B*PsehIYlXm{t;R$#C*!q7^qyCUaS#r?V;kvE&Q?d{H{yEPLY${C!zm?OI z0MY`J1jZ|rB>YF~**bPrK_X{)E#;BJ7|{&QBkcQctes_LHZGmj2C>B{7qnKI=132h zed*KoVrqz|{%D>&ECYZ2XEWpo1Bee_qktA0ycRUAI%jOX-pGuphMLF*!mU++_r-nOY*{V@z*v!GYgM&oV{+J>w^9kE-GUyP4 z%PIB!=5jyiS&-LR`+3ApD{v2Z8KYvk8vXQzs2g+p^YQRHsE&U=@fK#Z9b#%#rwZ~t ztAh^AJ+nG1n`VPv;q_umt&v=Nl`C8=vRoOq*(4wCotI+Kag96pHM{K1>XmOgp5bZn zaIkN6pX5b5t-okTrC(?Kg8Zh}D$xs2Vo`Qv-Ld17-jydBo=r6VA9WaQ;4n|QKDLCj zP+vFa&q?@aKC6#-#1o)Z@d;-DOAS$?8F+0s-`c37Cv+BrlV}RMZi;UmpRbJ?dZIu? zZDi3m5f{AqbBQoHZ6(mzKNuuh9pUbUiZiU&+y56d;hb{TkclQS?X8V(>1!+;fAQ2d zpjiZ??S~8p`ysh?8_+1M@*wHpFm=>6Ji;*uRuYdXbpWT@h!0i5IN!*|?G`vgI&5R^ zP);w6XX6jQ-rfWH2hvRtHUAxy;eQ&uin;2uF?>-_xHvt0PJC zShwj*oAFsm@d@?rQF&n;K4r8K=BYdNs(qUP3kl7$p)Wgi2-9>)nOih|hV?5gU%YwB|9+Lu#3UDe&wnd)46IGL)h>6xBMdNR38 zfSEvZnIv>F-4l{bZd`-%A|S6^Dj4_#h6pGsucD%$fTDm`P(BS8i9kd|)F|*06*UM# z^cCb1GT-mN_CBXBT|Jq=C*SjY5A#fQojT|2z1LoQ?X}lldtJ=Q%lyft#S2`ps}=0v zWe4cI%A7aYn%!~sqqA^C)frn0VpV5T$=meWRB|yDWpQL3;El`O^1;<=awSXDVD1e9 zOBZj9FWwYiyd}PPTYO;)j9z|Md`HG%R{TBgBL5N$z2RLL6q253M?P8x>&jPuFqsc8 z;LTkzeJIdlsmBgJAbLGTF>HLUbvj}>5Smdk;Qb00Cge1uc%Iq(?!_|dB^T13lDJmF zf=qVHIE^XeiLG=58VP;6s%xQ&tNfUmAeDw!o@R|RQ_wWR%$D;Y% zEqMCkn~Y&tulOdo3^~L43cJ8wtIP?-CP&9F9vrOJf?a3VKr%thn3ovTh%POu2jYQJ zOtQS!_WdI{i-QX}yybKQ`A4tfFd{sJF3!vaqVh0I?7J)c{3xGAK9A+I{3rZjFNRP4 zij^C8qB3#|q)tD(}=+n>*~CQ5OSd;aQkK9p%CFYLi`7^s`_?@69;bO;Zk^ z=-`r@F?w+hGCcu!hQ!e63v|NbJP@Ad;XG!g9xUBA7?x9d!;EvPNx$Jk7)M86_vNy(iHQ{fFnW-g>cOpz$M(-!#d-bQx-t+q7I;A&~{)&l&r8Ks! zwoOAk!^;J^%B$&s(&FDsx|$Djk_F_ZC{fLfeSNTik{SNGXaQ73a$}R$TsL~W1r}Hj zNUy}&Mp#ZaHdIM*f^mIAzFyRrbH^yF9JBXI{{^; zY<)9cguL)%-(Dv5bF{~v6?u~I8?w)3TFT6LiZO?<*n@MJ#V%n1Q&EOpN~qQJv@)ih1`?2E*e%=eb%fRd7rD!*&-KZ3mB74cb7N{3kMEW`1=O&N* z{W;k6sMl-qt=rm=sG{}8q7U>^n(m8qg17f{e`JkCMwJp~8I1iw-9@5?eQ{IiJ@t*| z1>qdFukhB)QC8Cx6YPnXk>LML^oKp3={p6ma=;5;m9N#UYTlEnSvz z17hjbUE<)U8bczgbGBA)&M6g39lFWXniB;yst}DO>t-M0k_4CXt$j@*kJc=nkMprm z44=Fv8MYE;vOCMv7~c~6`896d^U~%v%RC4=&{(gmHtXqJz`p)hm;{`eb_yz8V;3%Z zx;24cwikG%0)NiIPZB;(5?r`OzmdA&MGO)+MG0k5zUCC@T(M`=g(61*>cXA8AJvXWE3DkF?=$-Jn-RjblJA*Xf=#J&3UEof7o_@wds0n4% zgqb!H%MxjKTG_gD6z?NWldoRj+smfn^ArtkDbNIJ6EP?oRiLAtFA=lCqkpq>;Ypuuu#l4KJU&_?oA&XT@0SV{w%CV|LwCi*py zQfbaISvGxIaK16TUhwl!gD7sTFL+&x{44b(erqU4SQSQ!ajOIPeOc1K7c*Zk7X3)j z9LLRXnQ33Gk-14<5EXjtPj2ky2fR5g|k$E?jA z7K9-zSL)?@X4fOtg3<8|bXatWh8IX7r6rT?N#omv_4DCYrFcGuCBh&`sw7lCE|r-* zA4KN^zhN_iOCZos6l)d5s;ceYuN+3lEabJRovlvXBJkf(5UViH%A%kOUaXd)lu^jl z7XREAL}JG}yWq~(6z7Ue^7(b8?dB`H#vx<W z?tJqRg_(oj05e&M2n37#YbM|R`?yi9gvF!PigumV%0%7>11Kn#BN%qXA;7`+^IFcz z6qa&D{ROnW!G2jvha#Z!yJ27J3 zow%2>twNUEw2ToM>zO6JbL`~&n|ym&tu3xS-eG~+Sf3$U>y-3a!Z)Ggy7;zg@rO_9 zyOH{cQ4?ksESaU0M?J4MAG;wkozo8w8);fDLqh(1p26AJvSaJ`YbW?SllD!2ul}&* z0YBPb_TVQQjbMh-kB@g)`FN2afBe-ao>w?=c>Kg;9(~|32cJ{C`o8<#uO#x>6IWI4 zI8?d)&g|t^UVY!E5N2-wP~|RL7gN_=`#~zmEV>xDgcfo%Y)5TCfhwaH3~gbg(y*XH zOUx#GzF|?M_pzOi*mo|i?5ikqkQV4ohNCK?dC8Q5|D1!auV!0&$O)j#h^5AT#9b^{ zs1~gxC3~entULU=l1XCQjg|+B0k0Oe=FHi_He5ki7>lfCWvh|@2IH?$7E0oF0QRr=X*zgyJr^o zXD9HSKE3MjN%YEz$p(6TUjlD5q<^I}s%y8bM{lE+xI9r|JiXtUl$X83ci3Oh*jGK< zJU0gTKl}PKssBm+#Fm1VL@)?Bj$nvq3BimsIR%gDWkd#=q82-$$++Dfo5fXTPTxR_ z05F@OoX|7Xiyl4dH?a{!_$zyO0$Txb$|v6|iUBgcDgZH@AzPJ&6BZ3~EDAM?K!?a%_KslH2ZUWntZeh2(v%I=S_T;-_9S+{>=TZP0nD9*C0<`{K0Vtg-Ke8;?r|nw+=qO2kc}^PNrc(q z=vqHG$6hJ!yI9c~z=ZkRhq=pI_&{5^^S;zPi*3So3(kOucsUqok_dAZW~IOUN>7$; z8B*8nAO6P)y*vXD#oseidoJ0WhdW%l1(u_Pcl8kAxYk(Q(wjRn3un8bOxxK!kzqW= z5AsR;X%qb4K>Lq1dII~RCn1BsgS<%#Jo~#PM`)F1Nglnno*-NlqDyJ2cMJ`tV&;#t2w5;`er$+rt(A*# z!d`e7mte9WmagKq_&*qpI9Nqs0A|OnR=Shh(781Um{gF+8aC|^g5Cj8==Ol!ipja;DE)~uQkSPbQ z=pvy;_H9Ou2fheeL-rLb7yP}5!6-5>fA(B`0?()1goDzyT$)g&z6nJ+S(m44VcDJW zhb+eZWGZI3SsyX^>FFL6-Z#MouO_kt4JNV~P)ddGuKQ7~cR|HL(xc+~wAmupoMa** zo4AQMXAz3GEls5xj_TMwj;F2j)#Zco8TJ#2{bB`G^A1WP8&L~qbyp6H>?S;CtqQAJ`(jQQ>TN&D}keGD1w{I`Db zyWQY%dQmA(TB!JmT;oAe?OBtpLZ{(|Jl}3 zdago$)=DNMrdNXVi9OU;$x7z%l~|I?ltr0RvkQL}^S1|*`nFNuo3(zGGQDzLX1z>` zqUaW25&um6b(|kZ@}vH_rgn$`g^#$Cb%{LKk0$TSUhxWzml4P$rw+5!Nq~e(K1~RC z>%qRMLJ{QypytgU$VdX|sX6C6#8UoXG%CC#6yop{_ov|7%cb5*dsot)ORyYW4Of=n zZPZ}Nd1u;feD!SeMaJoD6Hm24s`U#|Tu6k0nBKXEb%H|+EFN>wKCKqMS{`H5L;v=k z`M>~ z2><8cbhA<8yVaM^rk=(6aFvHQRv}=&IQM0wfzChBvPlH!w!+dy*ln0pIZ_n&l)_3& z2&~gC2RK{ahKv9)bjny^oCMV3|Mac)dP5$Q$wHBKkEw)ywEr=E zgAE`{mqcgb1MSMKN10iD=_?$c#r`!Z&)HcD+1s5r;iejo=~S#1GHp;ey55*WA2j7M zHwXo?Yw#K&sYh4Bk-bwys2N!$B$gtq5c7`WCd+042EHHpQR$nm%(wVP8hEm~wH6Dez?&5R#61U+7xOC3z5 zjuqG^UBW);hVI7OPhjj zGrtDx93~lzdVeA?IEB|Pq>DExoK`PXM5T(sYF^M&n&TpMbEMc)_(Jw{ePy#rSI<6|8Yd>v!4iGlRKr@(@Q(wL?$CzMd8W zZ!N9*mXrD}_4RQ+PK6JzJ{9qB^kD@1O<#ZB;*nir@QPzHp(Gt-EV&*2_{gekLd%-d z(@WXHk*DuuKgyk3on@I_*Vz?uYj*=?g`qpI>UU!tO30)-RXUmY6Y$!ub9h7U1mp?C zo1p0Omb&whwGp<7ytC(@tzuqLZDuTQ_5iHW+LQW}cxPgG&syQ#3?_7;^HL09xEnDi zp#>@vf$KttupSH8S0?l@34WhU|D8U?MEfe|Ytip^hnMkq^sx7jR#V2FhrIuoVeg}_ zk)2+8$or2^-j~$Nf=4_?sczBgFdSBp?Ft3A^Z}Oehs%BWZ0exO4Mk)x(!h@ho+n=#9yXngWt@HqS%|J;@{1-0m!vO*(57Z`Id|E4$}p z&uX%i`DzutUj)Xpp2F-^IX#FC%fx9>0lKYt!HRE~fQZ*4Kc2 zM^auVe%FhBGE2Lhn1r>a+jJwC+SP#kLC9U{YML#GSM)1$9(|jxrDR$(Ey=5WW<5ZW zjhB1ie|FOTR&ab=?Nfuqp3b=vxFr;CROCY8lFE;pKEkVUnj(4#1tD~R=^G83+>oBh1)$2BR$ixYVX;< zAv-z$f&@RTkExr4pXx~TIbK8uh2h?a9lXjCq4l`1{E|m8Vr^0|Xo;3l!J~(0xD=@X zdQ5llR+E*B)5X!JnN|3-2)ub!I{H_d055tOtyTe}b#=_Yz)hraCX)`!;t>e6J2l-f zM9KCK{F*=xVx2k)+rRqtt$el8xarDzxj1!wtIUtJ#&fPTGl!Y@_pSC@k7`$@s}-X^ zT4ZDjvO>J|s1(lAF)Y(PA{_QO$^82(2KHv~mD&H3Tq%pp1+UUr$KFmD*9c2=&JJvf z*!yz1h~RMrw!LAIXQ;FY@1|_G-Ax8=Q6tTIl~BB-!7Ld|3bWOcMFqyOPx+yU2P_fL z>Q{w(-suqu@hL_ph}pJE3Pi)MO%-#D>dEhAZc*t%;ugiFcZ+fZ6n7c>AK%|x>b-RC z7W!K&)kZRh8y7Flm~MzxY*-+E=AaRJ^Ng%mjpjnD%FY+JJjp+pM6cjBM?*>pDb3(WVYihjv&MH=T?1=hW5CkC&! zAjl|3unch8u20E7WXOmmId}gTXn?YCf5#UHe_?!KyieJIoM6lim(_r58@mosJF&R3 zjr)&@yAZB&4bvu+pWx&+%?MNo;g~RuE}jeUtY=IV+2&IO+ul8Qr8^&^ah#7-qEs&^ z%TIkhWZtY?Ps(uH)ImxTpvWu9fQetVxdAnm^R2Pw=lz~Pm&ZS&R^1wwR;yc0_%2kp z+N2XN3lR^rvYLFrUPR~b>l4*rBE%15*8v@5V2te6h*E$$LjnMdjySw7u{~!BMbZJ{ z)WL1G8z_2V47Gh9FSKTaW(sKnxIz`UAtwymR>Lr!h>861YEQq})QxGZjx>H0pOxuh zL_837w@JQ7%w@+-uVTU~7+4L*#icluNijsA0>S)oj6Go{K!?CsmvZFTVib;XE+V^h zSk!2kUqnZiBm*pS9gaG75oc2z-%=DcEZ`%F{;+5iWk*`!2=x`#&Rd{%e=X%KO=Ykc z0t;c9Sj*82kmCsE%$j|^MG3r!^jJhhQ#>w_U<5|0p|oQ~;#5eoRxqxLV$@3)NN21$ z?vYnQ5+tIx%hfh6Ihtn0l(d)I%gKgl8}`J3l|kyrGT3RwGOOMIrPG68&s)4^Jt zLDS!BJg{bma54H^Vp3w933W6b20~pB^I1?Qc$`tRR)x5aCD%uk%B**!cVV+Y+Pn&6 zph-0c(H2DVobZR`RW||HT|%qsJYV8Q>YY!K$*i*e#+~3$)B`@RR>g%i{O2Ngg(C0T zo|&|4r`r=|8B1~q$UE8&)_2r*D$is55Bscye@cJx4Ct>jg-lSgzf|1X7hg$9S4ro+ z@+xp*Ub=v~%u8t?T7w7@7VhzFV6Tj;uoixfHE=sj z%D*9*A6HP`^qJsgfQuQQf(anK^xNX_Dhl}yYV>SlrdNyGJt6Kz2lDtEeS5jo?X-tZ zJ7n9r2beS*Ca!c)l4li9r4*nh4(unqvPwI85}#_h3;Hl*DFJ30TR1fM?wd_T~|=LpQmopukwXLJi{=SmUB%!S9e^AJu_|3P~aF4C*jG;SvqoLf+9pxyAtMR_i6V({$QTnY}G zi4Fo)3uk=ZF56#}{w9Ahn!L|#&P~Y0!ex1l$mXT?o@$z3WEgI~)mOa34!_lwJMYpJ z`WJWbSbH$D)0ZGx(IzEgefv8S{K>@SIqDA!0R18DxAg~Wp4zH`UaDr?sa~E7^(x4o zm(FsR_v%3=x{!`xgT+%o&E`q%m93pe6pi*>zTgg3y`tpe9%`=Yn3|2ofbY|xQo3GA z(okS8mf#y((bNx#-eQ(B!BI|`1$rMok}x?;Ds87^2UXfkOtmM%(iv?#TN^>vhYx0( zm@Z1{g7%RRJLt#U>BbH$oSzGSnn3N_(g1BUGKFy(O>&Chs1l_{X=ganl8Jc&M{z1F zIyj2Rr4rYGwb6xE57woLBa4*X7_Wh@YPS5B3tSPONoGx$Rl) zL{JX{*Pi^p%f3B4p0(~MPqdaIS$6cDRzz$r0)H+L6E*gA34VVD$Us5NABCk;%xL_7 zR#8_mS9w}B2VJ7f}uW$(0O<-PPdV19cvhA?_C5#wdkY?| z^Zh*uz3O}-IbYhG`Nn%-CV2lI7_S{W25CHKe6y#O7&~h3eZIYXip_57`QRry5Bez0 z$yK2i)T&$NZsS2MIwGnmrO{(b{m{gk=OqwV5Vgd|Vh(z8{?4SngA{uK^<|>ACQg1~ z??BDzftu69Y96!)`%qHri_@>!e9`5=l;OAEgs3-)Wr!p+w=Qw0-@pcxu{UO(!ny?azhXgCxh`>Y|{`3?IOh=Q+xhnR3 z3BI30=U=4pJlr^dGmz{kblLuD=CJHuGK~X?tNAPyvvSMiGcK@zbERjH z;>p`fVc7d6@ca?*yjcAMOW?x{Tx3t~OjQC#IkB*b^q> z_k8-t6h{7H`Ql(TXw9cPSZihZi9$bU)qKz0)_!TCup;q^72_vGgE}+!^2AmK9%agK?T!=vAtf9=xi6l6I;@~pNj7hV=+2cyewGAW=gD# zI#1Pj4MQvV1gjYmzB_pdzTGD;spg-KYmV6+{PSLeKjx_D7jFO3;x8?KIy=7fC$Bv8 zz==cSPm;dj=!q9sp7x@rrpK8boch1=(7ms`_7nGwzWe0KXUreHZ@I7qYxwb39{SYF z?;LyCmAvxB;vGN7i>VWbK6T={Li4W6k6wM>yY`(t`O3^)k1AyK;EA)%Cl>w?&4ujf z4}7dse#Vxo@B8@|OKVZsa$VuXRiAp*%9ay{3uAxu7q@@l)3<-~iDN$|f*$+5pLoH} zE#oK8`Kc%Kb;qH5PZUn@LiUy8C$`Y|%cbOb&*y(6J^qDX;HvletG3+ngwMR<&}Tk; z=(DLSzVK2#eZsvb!cV79eDn6ZvY(y0>tG?n%@c=bn}-Xp+<)MM4x~~7(ihjQz-O&M z;fsIPTltACm*4S(&p+*68ouJbv-4Y0cU<*(+ywsZo$AllFE*a`8J>J`?8ArdnSaF- z{`SL%{tnRYL1%Nfy-+yu;!oXv=o9JN?@9}uUkHTGf(RldhHTNau<)0(@BU{_EQ**AA^^r@;&U*-XyvszH9)o8; zniJSFCiQ9m`=grQlYO?!ZmP#;0PM?G7GwZ1h0JAhvd72NJb-8v=OsS_iJzI&e--tA z0C)%LH||x=Pq(W$c}}s=;`ioKZXwM~MkO(bCW%vbAq&i*zh0*LqOWPe zbk&k*NLwMQW&dR-$fvB9c$dDuta;lJD8H{h_L_J?yMSv`)ueKPmNd|NXox-H-#B~3 zykZlkSY2Fy(Kd6awb!kEBtA!fgSB3uAb5(*$^%{SXD>nU2FwW%jd`vhc&v*Xg5dFJ z&ljyiod;9L8V(uy?HeIQuU1iSJWz{`2RLn3qnO0Ve!#tp&XB--jnNw$=Nz|mT@0t4 z>Jo~cnv)22jj{|A*n(iCSj(*7A9C5=ixp(X0t3#rGc%mhPL%S+%Nq3?tEH9x%CI(5 zidz>g(3ReES3;jzkH2i{+2HTTV*IgSS8Bv{B#z0Iwk9>sJ-`VM>U4T6!O_A6x1Y_$ z8I(IH-c4*TQAR%cmi}_0q2iZa@Y`{*M(dz#GDWxSKv^HrgPl5F?(5WCZye3r9!BB8 zV7ux0&ik1^(-w)fAILMVY?8C^13b0Agj@Fs__3K0%BM_wGo}kPO z<%K0XoQWI}&@S6OUv!o@(`G54Eu7innEuXLW`(&TH7H%ME8a`Z;zxyKJY>=Q%I%L0X@Bf&9*l-;*p-xBXY;;<>alrwVa4kz`HepcLi`r zs|3FRT+|u)jQN$OvG=m30_Ro|7M#uF-wCQ|38fY&C`>Eaq^A$01>^Bp9 z{UY<~4%I*RZ*1PHp*NRKv=HM{;keU6jQ43hCdPDLHPc?{F>W4Jazo8roFZ%|Fw(aZ zNb0O$sHr;1x<{Q&cl511iMB@=t#U4cYN}e~gX)?yPgDzE1Ug%$ifBZ2f8~+?3~H)X z@Pa0eBrBuQI{jper2`-T&Uv3(zLU4|MGk-o8K6{~^2!2oJ3Y#AK4VVX+|f;qjXgv{ zX0U05GwErk_Ceu|VjSI)JNnVA<0Lyd)pOTwXKBZ`^7Y@dTb}L&0f3cxR^8~<%zi1h z`9j0bUd3#_y6Y{S%12M8PlE}hv7b%oeof2F{7!1cr?wcuw2* zaf7=}CUN!4j+i;4ZeYrc31FqZ^f*GbEga^#;y-FqaolN>s_Z6J*VRQ@ z(7@1cI&K|fVl&Z&y}8aQC6+$hWre|XQZpzlXWEyBh3WQ%8%&tBk)K>DcJ5*qj7#wd z_Uy+xJIv^Yn4F!@!D0|FjLEoB?HNkj0unDbq0g^^`_~%(QXiNH)`tz}Cu%b>WRZPF zzZTCBfV^XcH<-g~F828_iX!^=t@PRHFU`Hl^p_hILGigz%nguv#SKnJkJ-Tn#_z$q z6F9~T_Rk4Eeg%BI&hPBe*qivfZef`gpK*?UVgCGWZCKtPU(?co_+GT4q8vys7Uc!m<_g|q6}HXxZD)-%#{h@!~; z5zcfgnT}~`Dx4u(T0NXnC3Py98mwdz^8ayIT&p@58NN69M{|?v)*Isv}V1gyQaM2v~JdZ?9F}Id{yw}gyT@x@;AcYUNh-HDG>{YB)WipM#2d#P@sn- z*PJB~F1j4zW2DQT0Ct5PTUND`DtERQNIAW|RUgL_?yIi30j zpVz={=8=#7kk1v!NZ;i1Q$Z^A*L+48z^va4)Wx+4B`AVAwRTNvzAt~)Js;I` ze0w&&@IGF^MvEFG!ql-*aYp|8-^>FccKK)fn_v>e7CE*M27AA}{KN4pSWHgXzD;AZ z0hr5qt$H4V#~7|w&oiNe6DSU0xtqlw$pINSs|p+Gm4EpUYKA7Q=;A)KT4jn>b@9?eZ5fZ>x05Vi8v^Jnle^l(m`c9QYS%2 zZ02f9tNzSf@)X|ZNF2`ZwjukkQU&L_?Z^Jd@FN|bOH^m=K$iFG=XcOW186gZOf_Y3 zBAS>=lV=2?*A0hd%r5?3?KdQlT3l6A0;!3550jZKh`A@^h8& zEkU_r$xCY?TI2$9glME3ddPvC8W_kat?pBO16Yik+N|%nr0?R_n-fhi&=%WOpqyUX zW(La&AQuKlh%2_{oDP;>`>lAOKq(f$+oE@impBsnAs!k6HiIfipmO-$?7a=7?4jA_ zp^Kqf_fUP46rz5VB)sNkd!hO)55HGX{b&xN&fpq==7KMF}e-!luI#Z$wf<2{tO8AZDJ;K(h$bC2z-VZKrBt)Rt2^bKxB zlO3@tkT}jZVVkxI0o#PyM5CFhPc(wC;a08Xul`qGyClr?#n70A+qSjI25AdTxYafd zs0}RiBjI7VQ)aJifo1(vejAkq;Z_$X!h0Mo|D?aE+5Y_a=1byc$)YY!<9O%<0*GsE zci2E78SZuwfsBcg@Xna%_Ki$5Y&fiKmGnUm5Hq=ed8#w3%b{y*^yZmk`L($RPUchV z<>d#y<~yz(m0ugH1B+v&$$r;WjXno3Pw{Tp98>A;N{S?AOk2TJ6b@zueJtX8=wj}% zW81DB8@(zljT1+s4?2fWlOk4u)7SJ65Rgit9|FN#KQ+ur|Fqu>E4CRtH9Q~s>h}_! z-(;OQH9UKP$4H(14{=dTM7VX7j-PtnHbq_fYHvWaq4?kbvu_Tt$Q+s(86kg;oa#(&~R*TtA!ME-+Y!FND)AZCS%E_|EO&6!zGa*IB*OE6zk~hu?&#*VpJE&57LkTb! zhyyzszZJ|M3C}p<*M~uHm%sKO>iHrEn`q6+Zp262L)WN$>@R)=I^8jG%pOTBbHbS( znGlPfPF<18hnE+Vk(6si!rfe`a}#=c$FMLh4K4B}AW%o^5o&IoYu6Z7V0M2vX`KiB zG{G!anz)3IR*9@TMI$SLb3-t_h&F=)GOR8TxMzX`b`G|+is3fs zXZD}P?Yfd5r0O|4ER$b#Wr7UN>`rHvCc?A1szbeg z>&0nTNOoA=vjK_rQPpaA_6%i(tMC!@?-Ai6YWv0cvB&_Y)rdFATGx!{>hchCwF}@%Rsr_*n8R6h* z#QbOI5biRrV0q8`mp}RyECXccxBLrS84n_GwE96OsD4y1PLQVlX;3kgG3xSb*<&8! zp%b1(U+IsOv7_O*u`j-WH#|$!y7%Jntce}9i8I3;0C;9Nw&ozz735@KdI05k!+U3i zXRax=wo0G>5xS!L^0eahF)~K`FYqLELi?kTg8fnSC-uSg&hudavv+VUZ zTT&=8>|Z(>rGYpe(S?bA=XZFDMH^BD(-^g`Tn?qw4YTKsR|5<}b-CV{x@HwmqRvM- z65&AgOmyVLVfmQM1Oqb@+|jw4A0u+dSgF|G!==Wvi0JsNJ^OCFyc8dK_w?qr#&XY_YYJ44F(^UJZ5jXnC@^=kmaZBE%ABKNYr*ur#pXPw=qd@ z_oN6c?PwmbGv>`r!5<=+rP0UZ4W1Z(<`0Q+V&NHE?s#71=ByqleDr7+d56wX*WfcPTM zg^bLFS_=%#ZhG1}$2rn?LuRR7>$)uuIR39R%-mR!lMSJXwXpDcc`_c@rlo$iw_V#$ zEM+E}Sy@|W+j9>+Qse_l>VpKFy_}B&?SuH`Mc9)|5J!iA5LqLTWQ>U?;mc<&z76gZ z(4PxegxM+AcFH7f?)uV0TN(rMza-_4(*DnN`x8e1$ZHL+EuNWc&1PF$Hv|R7pQKjF z6^I|GP(gMEjvc^;cD<1^@hFn^evJ0e%*XS^xs{+?pKkBMac*h5yvNt7Ig57Q8n5QV z+|eqCB|bcXbSjA;S8k34N6Pu+_tIWJ0lod+bo*?@PA9NFwFNGAdIF!;R~zF5zMDOK z>6FIf=ezL5AwBaN+}dK6^xN3$MqmvC-+0auuOjK+rIg2KSN)TbA4yMQ$c#iw0g#br zViXchOai-@OCU>pb=-K}+6N!=GREH~@U0KP_v{2dyb4m-px_VxJ|N{x1M9Qw3Q2g( zoJ{+EsWev>zT&;k{)(6C(GAqMW5C2wVtx0VyI}IswzkQRB@9RuAdU!IR+Kr``D-e2 zR*tsH;i$ldRf3Y%Zq5Sj(#f7S8|`%I+s?d`VPR@9wlBGFy&jRH7BKf5@_%BV8P=Ru2{~{Tmr!zipVtlg1 z+dACBf7+a>@k#t@7~u0=RDjCz-|hesTM1#q7y%p%)}k$f**u z!Xc#;mE`0Bjt?|(>FT65CxPhKXu$lErhU9Rq{X+9YHj(dX0?R21F5Klo*`Xc-A%mpQVS%p9 z2v|qSL);?>_34bFv=zd2l)sz0M?k@v!zbrokl_D);QyC3ez+9sFq!Z$&hF?ENr4s4kc?O}xC`!^_>vNN9RFwpqcEjuTM0A@_7h zs$FAc=3pI|aIO=>7yvjcv59l0zLG(Ok8LoWTGQaKn6;-6XJv9g zK2};n#4u;tFw5zKFXvXVcJWI@ImPIS45b^YI3gyQL3_+N3WORFE!sXE;Xv|1pJ@g| zV5d<=^Zh0}wuQFJZ5!Pep8S5c4?Uu~F{G38w|V?!Qda|>+4F1keHhfSK_R7&u9ojn{h2|6Z2NzxUJLTjKH3R1j$i*&~JG-hv}vVilH~IkT=IgkwzkOU0>YXoi(Gw8P=4-r& zI;-CK*Y17ityOZn2f+@ti!$A8BA5cVqyqaAMS^Ha2#p0LH{9^sS10&j=ac$X;iDem z`fjWiGeqw|-_n)&f1QP)sU_OB$h$7(b|3vW^SD*)p$0Hd{DXv^=9vFDuq6E4IkEL) zMievUI9Eb3>6(Mb29{-@*M_9aM2qAh5+coFjQOo8-Zv}xjlZUGPEeEtLRIil1V}xF z1g3GR&dn@6(aFALC;J`*BjWE}5w|U5Yf7Xol0;t~9Z5*o1HeMOi?4;@R}=>mh-a7b zMd6X4^!^1o_WWBy@qOe9{$8Jq54(>P4k`|R);K^6GS8ul8xxmcS$ccS+d|r=Lhnv( zSO}qV7nenerajx!DpfFLnuT_kdA<1fXU0tUHG;+#7QrsgSjlR)v&=!_VI=+i2>pGM_7iI7zooy18-RCW zR3EDrZl-%_A;Hb!LowdPUdAg;b=~5oSwBzCzbT>Lo9N%K#pAiz`1Gw`g4Y8ZGc~m1 zvha*mFqLMROs3wFvw}hX4##&qdjr33N$~pt+W+-awLfgR5*0mc8qr#r&`6djhkhEd zS1$sjBa$CP#og6-u*Wjj2(=eyEyV&EpJ~mOzD!WP1Vp@!q<`8)z9a76>C+EW2Z0{@ zEmG1scLzn(NrEm2Agw8}CGJqZit>=55>E^( zsqG#H*A$!KZow@{Q)6jK(^Edg2k||U{@hJ}e)BsYp8|VxH$H_8v2L9!7hPUm&RffiL4NrQHTp8yv}do~{FD zMGVK-3~9ARtWGWGMww#MHXTr-?ZRC5nQf5m?KX}4U&!zI?IMc*Z^nX(Lm2TxJiaoi|HJsdTlfMkiYg(F zfG{1FL2relGB&zN6~MM9~EznQIZv!7do{9 zgkf8(ewPYs*N;|DO-QY#M1UV0Zk)a3wzCWnN)gxtJhqRrwLNlN2WdPg1PZu6MpAJm{=oM9+39&y*Q0!5q%S1Cc*DNg5TeX@tY{O2Kb8*+(#qz&I2Mn4qbxQB@AJPi_=LJ zWwTPLi`a<7IjF2-6(n>c7D6lGU*U zr?An}MZ9sQ{ivRpCZqAR-NZ#w!;Yd&pd^USgcTpzWR%li6YiFO(;CDjEZ?iED`R^u z4r8*mIl)Mk)Vo+a_ttu}O_(coh;W)Ef@Qw*pk3g5WYssXOm{ep!;5*I_nMC`Fz$ON z{I01iUL}bl@e#}8BUVTRP=dU4Qt}bYGcadTUJFqvQLfnd-|fdgo7&0v|E}kkHWJLS zhuDUU_lnwxjBJfBqnRC6Toc35I?H;z%q!0aM<0Tl3BWp6#l}9ngzby_ba9<%fRL5sn??Rckwe=0%{x&ixwx zZd(mZ+EBzrm^G%}*do6RW30Z=4%W%@)k(>{#0&EH%cPzFA^cuEe;jj4_9j4y zu3Kv5>1Fl;{n`Pbn&|r8upo}?-Q&q?r^st|>1={nD!}WA?~O~x4`f8?22 zo3m^Snb{kUH@0uuxZ&sXN%_Z8*4jT+{sE@;=|iXaai6b0ld1_g{t5BUR>kr)WUMcV zy!$2pel7(;rQXYUWmaa_4;3jW9?z1jB(|yR_}tU;k#a_#<-g<)0TNf2F%Yq+2@^SD zC*Uf;_{{X9g1`yo)n$o)impIbY`upK){WbSy@w7`6^nG7G3~-uXb8f=U=hOzi*<`r zk*X>M@f&P(Hol=sM)Y1qEf&bJP&`hnvqM^KD)IIoGS&%x?oY<+5dfrrJ^0L0SI*~a znCh?2RY1I$1iwTzO8tT6LndOYj{kWD+4E3^8inYp|G?@}t9(8*1wW?t|a*ytP|61FGCtx#E#mw-*ulLlbWrh@ODE^Qp5T|Y z(*6-brP9U?&XSR&UG^OO_Wp?C$fpk^`1}@c6HW_!X6+&6O5`9{kPfwMWNzU*CW!ow zB#4NW4}$}87Mq+vz5!kN=sDwe&Vu3EQRCE3Xl2qA(}>3=eN=pM?Ox%5HONc3?C z*-j->j2BY34Zgr`D0yL?30*YcY*NB_X0cn%6Xjh%268ZG=RiO+`k|jLt%`mnv4pxf zBtFkQE zM|T3cpF3JX$xrCv%UFJEjs^PQYg#X@=VWsN)}8vpX35~h<|eQj?FsYd{nT#Ps$2hv z=aSUFo&M`zx5_q1jXpq`9X78u>v~{wm%4?|tN1Kys&Lp18A+HvH6LaH<{cX?WAS8cRI4Hk?!%TsW!D*891*wOdki(N zZHF_@-grj;^xDx};3fDWiV|B8V7dh{T?!~qPI2J%F2tu^7laVv%_R7E1HFB=qfet5 z@gX;XV*jv(twdZOK7q~$8)Ec;$@tC>6!7LoX)w}>zb@Y`)e`E3^kr$(h4 z<04BB>+0O6FB#;JPKtpRHWRW&(p6a~Ny;krPEq2$`2J>6FA+)h@{cJerlh&Qm5;vT zYyFNt0oTncA?51Kgu7@#h$?aVN`PGKO9RJwgYJ4^EV)Nwa?+pUz`ej3{mdostY8gKO-!j}E$)<0eC?t=3Vm#uDB;)@@+Vk}4 zP){X#k@~uR zV`HL!4wyV>jF!k+Ti1;5a&H{F4YwFZzs~Tuh0rb~e@6+vLx9#l@dQ8ZC|&Hci6(wW zg0Ba7_m4GS2v~#7ad5$xt#GwHM(eQpoXuPpW6;fF?S6vYYsOIK#R9b*_G{@Rhrb(n zK@OgA@VV40#YwX6KE9b>+O6#D3|JlABgju4N17> zSp`gLll>T6q$(jvyaL>z*vvIb@t_mGAnD(8=pP~Hh@S~@O_GVvM5tERLNgY@vEQ$Geg`jC1x4vr7}l>?G|lF9rawvGLB@F8E=9z^@Q&+!qr`7b_~@gdP?D#J&S38lq4pU5D`~3e2^L-vhvd7G)=mz zo7T3;C8G03zoR#LpUtm0t$?T(rgMB%gwGGXw7Lw{sNVMrvc@EwKx4f8v%1@;#6M5i z&yo12SZBI1>VGz$oopn zQu6QQ{NsInZa3?{JGC{2vnd-T*uJ6OB)G)a9QGN67$z zb{!6hEM*4+DAZ%qO4;t#77LxN=nYHFb9lv{lcH-}sPc2bU^Fb3!cihsa`I+XpcX17TyrHb#8$-WoTa=Gh?+2{y@`)A{!_zt`W7Q0e662kUxS~XAhzv zNu@iJz!*dqNO`Ur?2Mi78Jx$9E}^{iy62wi7%(nolpD9$a}p#qrj`#=W73Fg2fcNn zF4IHK{OAW8sbGPlhmj74!A{${GhLf91$oeTlFOHNYq~10HlMGDFyT{rcP~Zt;G8wn zEMx4|nNIF^X1L@b?rqWk){C8O?gqL(cY}w_x}+%1yROQhajR>Uv;?qURl+)CWrD`@ zl1JO!BNVUx(GR#si-08aZMZc2@4-$Zu9y2@EV+-ZUfiC~3Ww^WbEfXzOVOa=^U&$; zS@B&CP4k_aem#zNY*yi4lgv-_KdBEJy%vpLIf<4DJEr~xJ8F%M9Km;?gRyXo?~us4 z_QFKIT2h`o^5a>uVNUkUbR+sY&DrtB&7AOYD2&6NblDa*anSsV@z#(tV5@{nvY|$3 zavkS>IghobG9^4%m$qD2{R(rE7;t9;O?wW4KalTlkYZ&@-DUmV;`%Fd`kw9{vX@s(HA2$|Cqea9#eua@D& zsw}LnXFAQ{ARwp~(|M2H=$lkxi0E=e{F4%XBX#eesz1(d!5dQ!Gc26#+Wm?GA5XoA zRM4}y$0sR@q{NEjR|!N&3?j zi=b%dYEymZSRPGg2jQaHiNmw#Z48}ATH$@v8dC~$h2t)n50}D1i^JOma9Sqbw{m)5 z6cCW(lx(!h?O|Wb1X#S%`y`Uz*pFY1xXY>3M;X65p%w{8i_lC)Fh--VAFzyi|uz}C#A3lDCw(>BHPdsM+J=%EE2iEzqdfx-1SoP$){|WWAAilfp)j~X3@3w zH=ESgs;W`q&zIKX7QS4Y2$!{qIb|ENC+f6mW6HMyL+x*)vx}!xDv@DFy0d7%wE8zB z#SpBSWxBQ-cjw*iiB|2Fd&GDhCfQ17k3G@yY?9CNZ6L;?Jg*$qOl&+0&fg&#K{nc| zg3X(__oz0Tj>dD__zV+V003x`KN2iBw&Nw|N3_|Pv9_c;dnp+AixsA?UzXo6p}TeS z`$~rKg8d2!HxK*+ZzKx{`L`4Pc0JwsnE0Deq3qqVf*+H5XWa!8S$Gth-dO_T6B}X0 z)&Xhk5M_dvTv)uN6LAI1ZZlx{vh0keZkL~W^jq+_UT!Y_`rKrG{v7S!t@ddbi-qi4xN&`bl)mTGpSW~IBCjtA(`4=SkdJ1j-8Sq-7 zHoQ2V2n^Yx&(n6U23M7VJ)b~mAvU&=`xxu(=2O+mh{2;!FE}B>qYZy8-+m^=?mhK! z8!uMw&5XbLY?Ew>hf)PsVv2!Y*OsA?;#7OQc!pVI$QCbl3m?p>7_|0z%a2wI5p~kJ zhM!4xsj+nDa&SPDD)FM`nd#0I{G4&WhHq-|pGx{OM}KZrf9fuQ;}ukbb&=dJuGH`% z^_O-8D}4k+{^Mjkew6ZmK2RQ`h3F`I9-mB+6p=3bW2LoCNI)aIaqo&gfJXxoq%%n^ zY)B1BT6b7YpKW4)e(hHz@JT;D489rQL+}4Rht0`1uTJnU{Cy&(r{TiVqtlHwlRA(p zH8aHrL{v)RO?Kbx%9L4Vn~@kP?^)sD_1ZZ0i2^<2J21Lw%MsW!!uTg8@JSo4f4%gf z03E$~1@Xs8@O>Tc{>1=2Fi#dv$#Lm-=PD7gPxC&wjwr9*)jTgmZINTbNR$1=8wE?mkIq4YY4p&126x_OIdXBb2g#yK-I2!QoC3tEW_fOJ3_nE6WadU zG>b$d5_OHvMmN$~>~QULKqA-?M`t6&)+2r1Ly57cpoL=ANCDX$`*PAeFI<6A=!{FRdN83Bv>M^7}1BG#?}=|=L++cv&G)mhVeHvIi}B=6&Emim;&-^a^w z3)W^#mGMs!fQWh{oArac9(Fh-^jhTNU$c> zC5Tz-)q&9_cLk$8x>9#eL#`6pZz_zR_EXw=^}`!ITSLi2lELy=PcKWSVA*W1Y%28! zQ7}@53^fcr75Rja!&$cHvk>kn=2qSjomj0ioWk320UzbO%`Y_<%lwvEz-=U5ei;}z zs#R|$DwWmXU=6hw?xCM#IzZp=NyZD?oYdcFyn5OuqD3aE0;576WGusR8FS3iG78od zrhep(4-oTs=#m5-)5Mszm9?BLDIi9E|5r4}ysnJ_aXaA!({@iU&GSS%a;>imm<&We zB<{im_Ttauvg}f<_~P^&;AYx;q<}Y#i&PtX9WNZd=5|YJ8o~R5;^D?l9OQ$p&Uptr z^}|wdHg0Io@%PsDIDda&sR=yK5fIJExbwu`&rBL*JL-z~UMgHrBcKyvMbNoMoj28N z#^r#1f)iHF=y$k4ifZv{df!b}E?K7ad5;9rxx&lV_k&j3FeBF}SxF_qMWe@jA7hai!^-AGUM zQepoGsanLr`JySg60&%PCyN{9XXPH+=0@Z(-CoqO$aWV`$oq~H#w9EtRp1ojCRNJK zk+aoB{lkwbn?Ev9$aGk+vgp7MK$f-Lat*tX!;R&17W1%Kh*v0wfCtZKg4P5fX~KLa z+Q|ro`6ZQ1*T`%@yqv-X7cuI7cyrp0GAxp;6jpw~$EDu9R8I#6%lpXX2F4$CI;o>r z8wUnIkx&0L8K3TWPWkctks;%Gck=$j8PB*T`~i~j)T!-|{ZIc2!+z}vpo{&`_hh4n z|3K2eM*!bTk)PPz9%WdgLyWg2Z^4;p!zM3TukP8j{Nd9o|C!CpgNKK1|K3f@V+n8? z@PB^O@=K@H{(YO4=N#ZP+W*p~{zA3O~}u=h>M?;P5nYfnki zP z?sb=3bBYniUhpByA3J6FR#N_vwEyWodfC;bm%=9WQrxJ&>m?ZM@sj#Cj<=4(qGP8q zt$N0LZ&DxQoBGUve8U#stv=0h)AhURbtOI>@bNmqBC{M z{qLj%Ho3?11Sd^*epupg9wJP9z2lSZJmQoEN<#pR57||l$-Z*9zqN2II!MXj*0qh2 zaPtOmtf8C8VPaz5;sf>A1}Uz?3xxMyLRE-neduo1LL5*F8|1BI7>IxC@sT!HEjoz4 zz*>*a2Q59JQ*FSo@AB_wQ$NGIp96ojYHluvEF8^KKr-U~=kf$YSKVwsvzlu>IXag| z>`ksKlC2m_e3yp~h0cpXEFMP3!4fAGE~I3WF?mruCOaHg#l9;UZw}H@_uBmHyi~7A ze{X51TSOeX765m!pB?Bh_FPGSWt8~$DsOvccIfI!&oM>WpO*K8;TwtdrECCf^Ih7g z$I`K9e?aC^B^=u3?F_JJ7}|*ksq*%4hsK1hLya9i=EF%hpX(bKMLBNahYr=bPj<%n#XT0 z^-S#1{z3T7bl4eZJGX0)G{WOs(xy1`;eKfj`Vj)GyX=(<-Mw<#^>=vW^KMCxUzFu9 zqZPlUx1#t$5NfhtuT44m>-HarV|vhk(pikK7KY0AzXd`OQUs;j(M$C+(|#uB_Dct= zRkvZw9*J<4(a|n;Nma%6v~ZbWUa>v7vre8>OqHwT=Qzl@r0u(AIQk_nxCp;vY{J5d;+x$#>9j z>bm#$Jz)AM!PtK#@Vp&(KA-R#owU=@9vxlI&-Y8Z^S$gtd<%4&@7WFf#@SmX)hHB& zC}p^&FW-5UI{ZQC8djjWo{uoWL#2==e2sAd4!8=@hqz~J3ie*fd|qc7{8IuyRL}#z zQNDT2u7XneYN5ablMZ54n?2*adq4AlSFQb z1=f@EHz)M=c2sTulJtKzoHejrYy_5{Y&h$=v5qw3vCG!tGtFT`XEaB~s==DJsiw_w z0N_ThklVuz$T4?6Q7<}}x_b0Y_2CBFwi!!0p=7nKm2g_QfM!-&2a8f5((J@kI5mZB z*wh(qsIox*CE})ILsn?!xYC;0Ifr8wg2HrOV`z1{?45qtUOO;sN_!Za+L8H|XjP2d z>$)R%s`*5w+x`W!Hn3n4!c=%=6`Nbf>ed~9Oco}vRJ7EW%9Z7EU-FvXq&1xctSG0s zW)ulw9B|hvE$+&~)fSvaD+|ADg614!0TtmxOwc)7k!*sZ>;DPihK2WhqtCoE`IMa! zpt|5U4jzI|D9K8UBC?-j!1&angavo+aU?YXU|arkTK-9*vI!4*h;AP^bQ*BbX7+D3)3Eels3YvMlmh|9A>k+bpETJbZ4d{sp*fK5vd^?_hJuTs1tgWg0 zlKI;&Un^d2+2WsS@+LO?@!T~TL;UL@B`?-}( zD$CvNB+_kdZE@9-A;B&O4!hKv4dP_yrv~OG zahHU1YZ;>kjiKgKVU>N5wV#i${xSwkQ%s7uDQ3s8rXpYcdBZPfwGCrSV zec2z6Pub?~-m%{Js6%7fd7q(YIJtcIIs@!tsNF2~>|^`0*c-kG1?jK_ryJG-AFx@- z#hipROdys;WJri%xh~u!dv+7>iD({}3yO;XRQiG5(w{;O&KU*q--{~#_A3~ia`#!UOdUios_#t~VU*|zZ{*;(-< zbr9}ub4ei|T?X9Fp`6fR(fbxD;a2sNWdU&K*Y3!WH78*M*`F%(g zZ-a~8sqYp!S6QS96v$tK1s<-10S4GS-}UKb#NJf8MiSUXErr0yEOU$`jk@Z!?PO|B^`c6Gq#yr^h&AuY6{I*}V7O;QW z&;nTQ=_$fSUiRwtIx@$G*WZ=A-g!5d_+(*x$VMqx{uO3SwceP&vRa?QY`ltuN(*jperb=!5*Bp06=4@yt=HEA@|;YXeRma`mfa$AoA%%@lQ`IJi?&XRRL znNREsoIK6eARkU|oC+g;Dg?`)U?TE1Jj&kd^9~!jh678?2Tx}|BU;j|ltdd&t%g&q z+7ss(F^lzqN&ZU9m9=~86K7X*nn)Vpik${Q zGQ!%-(iwJ7jaS>wC8mtjY4$gh%57_I02GN0OsWgvmvCFU0k z)!~J&7wqTyM5Bs_jh=)J586%#+8hry0}YrMc!q~9aM;&h`Y zq4xr+?r@;a@?bMi;Zz<}n2{7e%i6WqqBD7d1V($VxGi`iv zGGb2@82hyQbKDmji%@k0ycpdm*27NVObmAH-_o#rEkrn^7uu_Y!@`-z42FCjp1)*L z*TNm`eB00G;Ua1`kz2(=QtLFZ;tvU*QFumF13Yu8E9Wx>Kx?b*Cy?=LZ+~3 za_23>8<+Mb&U;eMMWcF5d8u7g8J@a9xpR{5&88EzP)Tp z{!0JH+LOPMtUl#(BxJH#yDa)P;}~ui&nlGpGg} zD6KKo*rT|nk%5{<^kz6hO^ZoQ$}5T-;eZ<3w+%a9RmN>RrZ~zNKjxq+57ebx!q|1| z&Ai^`JcE9icA}?$$T9(rRO(+ThN?JFlQy2rOsc|hOO;U7;@V?0oq+19tFD^dH%lK; z@&}D&z^WW$|55Q^T|NsU#eM*Dk3z}xuV87I>F%jlhb&A z@uq~He-e8BYCL~Rfsc$Q1`Ki12x8S7@c>foDK)6yjqwNT`nKDv%`v+_Pwyj?83Ea< zzQ&iQ%xbn^@#$t(s|w*nydA}K(wFXVgpx$9Q#7-+0CSrUF-Ha>Hevssz^l`G8j!v3 zAcQl51eUT9M!1bV>4B0kU)wlSVm2Dz;CUR~58KHPXr4CnT;c8(u-mCb?(x9B zJ9lcLA}Ml`B7}2zqn=cW^1NC_UVki7A@Dn{=!~oWd4*5kMqHTf1;IsIZlMFpj z3)YGSZ=~hMMe6fKoAvp0$$?k`Hl(OBss)eppvvJAfQ@ht=cD0eG|ixF7rM{*6Tck8 zWL6F0?;Qy}EI|+Ymsx4GF?W7H)n>@Js5#cyv$PFIQde` zvHbfw*)BE?EIspKRP>`mD*6Gt$3PFV4h{Z>doOOhkQA;g3V{Y~jPAMqSBMkgt{UU# zYmFoxx7+w}Sg`jih3$KD1KMT*kFQ3W>e{o~Kfxj+4+yb>>wkW>|1!rh}zYnP0(_Vf02);@&Wqy0eqI z{szUfdrvZ-zRehZOY?~^Yz1{CwL;{EoTIHqBw~-gTVl_)X43N=&eL%_)?!}^Cy?Pv7FsP1LvBgV`nWU{Eu z9Ag?FfD(uMLV0du^BEmd;k0Q|Gyot|3Bkjw7C3d z{9)3Une@xS11C==8&K?k-L^!#LKlSBc7@CLe#?v`1~-4Fy)b=;+tVP!-t@yJ*hiCs zb`3ay_WeD#4spxzx4S)m%cVYmJn!^V#(x_xTtD;{`urfDZ7hA?|9l?@r$YlbdwNl< zh2HlG4BGcQekM1M_*&mTGVojXw1DbcEpq~ zzJ|pFCUn6_Upvc> zV8h^>ikoiCJDI5p(jGnVDe)WSvE2{+_vpYogJp*O##qMckS2fF^Y7I?Wit9+we|gW zzK`ou(ExrC-w`cda*A>@{@Gc4@8i?tvt8ehBoM%1-1;9mRcc;5U20x1Q)-^Kt<>Bz zTWYq?C^dI(FEw{Gilye6jZ&#O+bEOdqERU|tBwDMy*B}`vN-$3pR?p_N#LB5l|?uR zfdg3#1Qi4{2th=U2oVxRLpDe-Br%JCVonrLF{rpNwJi!&v{Y%eim%icmsYLTQfn=? zl;*Xx#-*0Fwqk3^|M$CRp68q=gjU=4`hVAVUEjIR%slt3_sraL&wfv8AUAd7pg^u~ zNOz9sW`}qb@qj04Fr@YP z1OAbNi>{@ZyLnJK=f-8-sr8AsG=Fu;D-}Q#gG9YL0Y2Q9bHH*h7Dsdb7$s1xd5{byc5;N21R;0T9 z6N6GP{@APN^VDj7*o(6i(FnZfLMr@>C^q|0q#jv!2zcBD7dYK`?KSEm>h6iyeL=xu z?vIDIJQds(0*DR>i`QId2y=@I1;QMQfrVi1pCy&~yoluc>_BoQ44`LOc?@qk1)Z^1 zfSB}ZvPhtc3Gdxm<m333GFE@L-!d5Ra?ocSL*V?VUv*3M` zL>T^xH(qHsvY%&{j>z_N#3~Q0hZ;#%{bpd@JvsrTi~YeMR+e~~v}hIU zB@Mf=ywbqE&opeNvhuK#9GXMs;i?$>C(FfMitxI3K4gAX!xamhG$xNVZi# zt{+RFD!=_OgM@1qkW(!V2aso%EXHyD^%Gq`NyfV@2CIIYIWj#~3)o>S>ys)dFp0)+ zS!6`Dgs}&WZAR{Fr(g~8JS@cH4fAs*=J+CiLv)jdNJHa!uviGq6|537&;OzlbZ6$E{zMP{LeO`ca!5Voe6YI#NNN%PVKZj&F(ZMY=IfDH~N9;n?xcH_v z!lh#IBs4Ntj)h)IjV){y&{HnC+r`}R($e3+;}>&zTyVhB`^5wF#V6W1nvFvp3}>c0 zrHB@i5n&5nNjdgCtA}AeN6x^zHva+9Vo8Pz;iWzNbj=teDVIF#z(!^5{S1yj#q}VqJZe z5u+Hp1!cLZVFxx!!;UN&GMN3B&&uy5pl7VEnd|GvSGk;;pk&qKPIe#+53eW8lyTXN z2TsU8D@ul=B-;`c=ayeqG5i+|L%+EkcTFp}%&F-wIgEFJQVYh?7*sIQn^ly|)xsA* zE-AU^^7DBz2R6Z!+^K-ou8o8$8V2uKeA+azbVvTGa^y+N!RZ(zBRLm`(K1s!*jb6l zMvV^}HF(U|Hj)^dNb8E;QmpdluEV9=f5{3vL~z#thu+Z;*#eFi3ZhTaL4J&mFUcrC z*<)dp@wt^CFdU*9C{Fbr10*1xLfM^QK=_=5y;MI>q+)+sJvWV7=Xob$aQvZtcLq=Y z4H3Z+xR~ViWu5{7j6TH0E#1sX*ono~ETY3c91b4)vrchlr9u*%dm^YLEeS%w3g<}M z#PNmMtY2{X(1VQ}GB*%p4h&ofBj=lm!5ahVQG z6T>m$=OTWYflS}zX&63+T^4#S6Frwg&n4)+89f_kEEh4jb#UEx`uD-+6sCwAk;E~D z{Gb1y@q@spMbDY3p)mj4N1}I0ob1dbUB=wv*@f=ok$erRx zQ_4GyG62CrARq+|(I`JX2sXol%Jbr*1|M+rqRtTuixa#f*_Z!APiEmW+T&PZI$^|q zeBCSlF~-7w9@=|Q;jab%;VAV$?Hve{*yW7})E8QFzek>uvd~!lrZgKiSxAA%JY^8y zKW39gV`P&~=I(SR?-8JDW}M&dnWx{&DWy3d|d|H z7fu0iJTOo43!y+MJet_QIb{X1e1-FYPX+Kv_P*&AX`B$1tYrcH%ZApkeNBAwpR}($ zjbD=S2JpiH67Dg9n_gb%7vI(QZ8tflnSNKC2(TgycAyC;^5O@i?5FrfgGS|doJ2Th=Q&^sLqzU(7S7`pTjgDY z_Kp2>w(oQ`enkTrpkP8?OonxrhQ^mrHmsF2T`MKJRv;BC)x4#PRwy+SwhcGUxX=#! z#f6KB>^M)rNw7c*EO>o_9id1ELt{)14Vnz0E^<%5h{I&`n<&hbP&!&!2K<5>knRVe z8$Pbf%)l7j4_Wr?NYecA))~x#5Gb_HR1BznLkfoYhGG{H>|LJH91??+GqbDFEmxYW zv|hAXea#VvrFp{;oqBqCS!T#Ty&W|qcOU7;!{@Zvu0cc)M1v&n}(d_s3oH%z^VDJ#NMh2gi4K0R7}et{mnW=fizdHz7`u z8a}6l*Q@S^dix6~>>OME$`Zc6NZ2ppCo%pn;{X3vKg{P8>^z}jG@%|}U(2leI-ws7 z*{wRAvJ=r|r+H!!4Tza68VV$-oj7`22aks}?}_KXnp-zC%^iCeQDE9k>OXM|{)7m4 z_!(6HdhXa0`%gqxCKzX2h1($~_HPj^J4nb+wA#Z8oKG6U_F(n}82_dPvy#D|2Pd|V z{v$B(XYiQ8U~}O#8Aqgr)4(aq!fBi{!6`8FuV@yyk)KmAIh-~xoMthRG?R&>DJGI8 zOa$RgCNkwghU9zzp^LtBXfQGe^u&5cC5b)R?&HqGQ^(EpU1#>wq@wgw;rrkg|m~sDByC2b}Y0ohHo&s?w z2Kqy+Q;I;>hUhR(ou-VUbr`H)Bos<70BHueyA2x=nG_CVRy7A5U6OpoaIxNa73T#*OBXwgt+MvN?in_f6S|+IOv3T z>n=-3O$l1eEq7v!9bJJ+&24ge!zqerF^~gO_x77M;0-(_J1##HHwlb$)+4Ifx%7=rR>7F zICPP%C6SRdOy1VWPe+=(F-e{g8dT_=auW7HvM39ZKgc7s%KIjiH%=tz@jl`rwiu=T zYk3Lg2oj4NI*fV>2{TH*?=etu(_g=tj4Bo>bPSd}=3FrabH&uO6lW*}%cQ}IXfx<} zDy|E24#-$AK$Xkx7=fC2aD17ptBeA$0;yQL0p0s4c?y(6;^|*ySj9z+_)wQKC$>;I@K!Lc#pIAd!q{V%FRIQR>HA-YywyS5Ga-{b&xxaCO^{D~Vi$SE3xxy!W;>*77WU^8= zZ?x~_7Ct`*J|~&&`%CguEN`%^rG;@Agr<@`trHQ3Fdf6f*6&TEC+JmFNdBMbgb-CM zfK0qtwQLbX1?s?}YMkwP=XoJZ;A*sKjwQ*x{>f8F5Il1lm^(s1(rn=)xsbQz%<_nx z#m{Q3{9@6~04Mx6_?fD6y$ytg;}h^T$ScE9G6)is`D(zElI5B49LmJwpYb#dm1}8D z>@MPYPBvM6KweKnFQM3ytQ;ruC6E6UZ0$;C!P3Xda6&A;dFXz1mm!VrpY#}6J}D&W zulq5fX!(p5{e?{=)qpfE zd>U&8dSwS;G*84r7vdOT1yZkgVC~?9bpcY4uAdSz)Cxi}Z@yt254XLMB1{>7CwWi7 z1-F1F+6|)Ps=Gf0&sd)ZF(j$s0B(s}gYkel7!Rnycwio9;E0TaaTcW?TNmtBy^|jI zc#Hg2q_|wJ#yChG5hjjtAYafb&wP|;#H7zJ%(eCSM)oDiZp|i%>${QSkvK;IiJQ1N z8uC^|x-i-=lv|uxJShic#0upuPqK}WTcWrmIyoDXkvwI&=1u}@S3UYAk%LjQ)P<0- zCo%anUBLw$m}E{INBOw^$%9SNjI6;E_4q2j$iG^7mnAh+ou(7KO$d?ax1hQP=nq?T zc_tY=r++fa)16m>vksWNaT`ZJ)a{c+sLVpIJ22%2woNR`%Mu5M3K$K$`i+J|I2~GR zMgl5DmWCD-L6ET}U)7sisMZ`YtdKP|yKq3AK7z8J(+erbrQ(Gsk)$LU3g(@Mc~>gd z)ZKikb53$7HO1?jG$Mqfi)r{OO!wyTRWtOH{_;7={yDHarB~0VlZIZDgx(c(l$Vsd zFO)RF>B2@4D$yfSgw+#f(jA~bXt(H(r{4K}B4^YT(Nl%g$d-X;|jt(WqlpSa0S3Hsl|3E54I=2XS_})rK3oJD1trjrC+f{6`GOKHMJU z=oHCh6eF_0*bG#IbmS1Kpx>=t42zS|6!G5mAOsA!z_PHH=gFABePnJ>%flN^Owp~R za1Kxp2V9tv(YIF(-F5%oW#PLG_>M982}_lAqesD%Kc19A0VyN!pfs*r_;_eE6;XfqXDO&9OK$|I=85vyV%6t&z|Y3AJXrD| zU@hU5bCZEYyo&hU7!GA?S%LBy%S9Thbt`s-9z)obJ$FojopH>E;97PWxt{H;i4yP| z^IIu&o-2_@S$>`KtjtitA$0^dH|um ze?wL-Nc40mbtZ*V;HY4`tW=}}ZWc=cPTA_P4Z1gb{*kX#3+2x9;(1X;4+>CuP9Orv z_p<5}d-L*hMse~2Wjz@FV-Q-U>ql1QA-~IN4|(uCN#-k9qzJe@MQQBWaoCUNcwKUW zHFpqrOr#GU-O*i$l=8T&^wLyvc%mYQ>>Eu>r<5>5fcz}WKhN%uQ~Z7*vvL6=5Y`H%L`KZvq_ z{*&f8vom9uN$H$}dHl1S`y)KZXFCg$8DeLFvp2{(&bXclWUU7lQ}aanKI9%!q?L`& zX62qmUhsvA26N`)b3Fv~vBRqG`N;1>oS&+PpD{fKQ$qX!oZ*mD4f2$SeDz!2Ktr&k zNjo!RxC3a8An?AjRh|pLzs9pXqt|fw*?B%oYy&^#b(`p5X$2EWn>c1-a;eVQmbd64 z6iimEmc)21!-)k*EIU?b+9|7Ij%n31y{QmKp@o9cczm3<(sP>83R&~nZ3+%BuUd0`wE2vDEE)g3!6UZ%hqThiJ2 zv&;TI%3pk3iy^~an~+BoPwZNRp11J0c0;f061}nv+_73I1M0Ripao`CNlx+L*Cl|1 zWGn%^XT`!it^|<6m1YV9(!3`_o-LV0+$VRVeIRwx01)VVp4B6bk# z8XoVI&(O)bu*a*y9t{UlE|%_gf(-F3AeI?pUt!@be1GIVTHq?HC%4&&`O`fB z?+bCl(b6cP()`msxmrCNm?B!qhE!0l~Hbi zAfxxwLNeNbmCgPc6c838|BKSN*g~t@!caW zAzx>4q&$qn!JX{qL(c7AARhci;8l?}B0SD1pP>;ti{n%lN5X;OkFQHL#KV~oA<(qr z2o!rb&e+!wJLGW-H{v@Y_A!n|?4;P&;f?cFAO@X?dBqMAWy261OXtvVjo4U)*hz3W z0b=oIUb3TACdsgphsCxrAq+E+5OgNw5xa`Cq2U~-e1?YVgmP3u!{Bg&grtd5+%E=r z(EA^&#`!TPPFAUrB&3QTH9M10LV@ zreG+CnT9)ttu{5Ffq+bmP9_1w7&#gNXNb$Vhx{-r{rLD2qf~bcM==K)U+%T|bvwob z`GRjD@J0T<=-r|Iax~@E5`;uyG>n}s%xfWh%DiFemn(sO4EA_=2I8gUhNVxgkoj9RGEcB(B#n}s$4RZ-JIlbiex)Q6&lVE=|W3U z*-lBgFpR6S{V(Zh&*mk)1kbpn_wQG|x|r;YqyzUz(8@oSUQGhP>MX9<22277C;}iJ z=j6{<km?FQ+UbFuPnS${$45nDO?(IMzJ7< zu|Eor9UWs(eO$=hFB-FUcySYVIpY^M?bHC7f;b+gZYDBTbf&~G$s0;4g3JsdcAt=i zy5E^Q80#X5XsL9py5j~qAtdu;C-BWNQs9VY&2cK1oL0V-F`E6EtKa29lc++ZMV^F0K zhWHwo?a1UrX^1(o*W-3sN_@Zr>FTJlLNAbx%v=OUL<;GUX2y83`5FO@wO%JOyhnW?o9jj zooR>`S3LIkJJbF}I5~qe^g}8#b&ctTRBb>Wk*+_t@d^qTqZ(CzxE?8NEJ<~5n3L*W zJxQ^#q=a4_B2ka;vA&c@ZB;K=tQN7Ic?Dy9Xus(`RkB&m*iS$jN^B?Q#jYq;;V3s3 zJQ3?r<~4OJ&FbD>$rliw)0gv>mA_A!Kdu*|h!sUeu(*%wsOfN650wRVV?TxIrZE>P zN!w%5&*ldcXrsNK9oG7dDVw0-$`2;s*ppKF2k>FQpjvi-w`!TnrdMeHbvXsZT4KHULe1VVc% z@W)Ng>E-USq(D+4mPr-3bnbFF@v<7Hw$Ym~xWTnerxI=Kq!6`i+%p?dF4r}2l`GC( zhXKH0B-&7dzkFyB{$cF|!xUJLn_DPF#LbFS{2906tjX7`fa0OD~0)b3uZCe)Dcpg^d z?>r0Tmgdd%c3vPKPMpmj3R&t17V?hAaZOw#_VTF&&N=5ri%=}G(-JKAmO*NDrnpTW zg}s+_-e`|bh6il2VCL(_Ko5f<@i6JPtXWRbIpf04&~Q{Sjv3IlVq~yz1V#!N-ryc! zveTDU9mUjyTfjV_!p{WCQ0-K+XOz!Jx_rFGDwGd4i?BxFqP&$L>R4STmaD~B)$Lq_ z9EP1tQ#!{A=g4+sX$%q&FMKfs+2%PrO#R3Pm35|!v&WA|SwQy9Y&04y4tOglbO7>L zbowsx3gZla|~q!1+ow?zz|B!OHXypM>)6S4&PAy$3A z<1mcrh)>~*E)4ssIC~vVhUmcj1*&2(`;dw~!FJp`Xc&5t<+$xQPPt_DyDWF2GxiJk zbg4&!>EMd}lCAG7Ox|T~CJzf^g9EL1HQ4b4`k5Eaf-_2MbkXQ=a+dO^?J^1~AX>lZ zBb&crMYCObGgb755SMZsV@u=L1E-Nufa&@$#)sSCDqI=Dnd?QeGtC!lt(URQH{VaZ zD~RrCGq?Hy6P}X38<>W5gZ&7kOM&BWSFQtIR=CoBf3}CUYbwglLvfU zc_MCRo_aDpFC9DXDJU*ytS6o=*rmcQB!V>ha*kT`GaK}CCh6A&VnG`ui|PbHxs#Lf zJwj0dA!`s6NCKCUxNs9Dtph1gD=7*csg0r_AH<3uoAd@6d&m`VB{Du2u3Wnji+d>E zLRIMrZ$dKQc9a*wWI(uh{6SrRC!f^GK>o)sP5B?MA%3t<-aqrm;h2B=K;*zjKiob( zWSFfF*I-(V!!`Zy)`i@Gun&))U{MC!F`iVx8Ou4kkW#VIBCQT9Enqf)fIhr?fj(AZ zSW0*loTZfS%F2~Tulw(aS?3YZzTH;->XE;h%pW5BPu9zP(I(XY7f4+CJD-(4_KuCS z&GeDQfsTCfIY^A-+{s^{6xDg>ffoLF{7TtOIl*_C zH??Sm*s{l4G%{wX$cT<4#MO%t>a;7)`_4Pv<-?+$^f-!x zhmtC6{647h^%~U}4weAl*m#WQ&3(z}g=BMhIq`4EjaWvDVKen~c#chg$24y^1J_M5 z@M7jjV26*9HIv5k7;NF_kb5dNi4DCru9o8Yv?kW$!587>l%Iz)QV}H2$FpI6Y&`nI z8MyNwP7hsfWu=EyMRJ3^dSgFF zleJq}Br{nKwe{yvCPAJ4E<8#@EBhj3bH=NAg4kP3xt-&x`fTm6tHC=b`oG z^i(;6m?1)+mO2ILb~yk1;`^6tWM^e$g;!9uLFxKdGLjFd5!|Bdo@Bd)>{IYut_S}QLKf`xL(Y{L&8!~Xg z1&fRJEm=CXB&B20)THIVatAv{tJL~Z33ZpdH`IM@be}pK>HPODB=PfouH{XuUtC!{$@zvFMi-Q!h#B@FAIu`ABf;Nqb=1KD?er?+4625=!ms2rlXC z@bzWTx=*tH{`*MdpQ4K;X^rlNqt5nJAY09Z-`@@EzEfEZ-KUlz&Azu$06=r&26153 z^u67Ept~exb4hUXCB6+Gx~E-|(t7@eX-4~>`!co?O;`K-eMJm-R9S3x^<8*WMcVgv z->Hm)Zf|!lI68Gfup?<|iLd?X%?pB?7a&q!_kj-|?dwSC%lHU!Rj3$*B!oDM_HAd; zOfC7m!&j=y1$0t*>BX^ zF}}0ljzF$aDxr3jK0N1`>3=w^yX2#8U$=krf}YX~diS9jRaCs#UDvyz?yy0cez}A< zn)-UtCXMcr!@U_u`^A@&m|0l&srEq%??~#M1UC>%_kv*eg(X z-kk5rjf--6)UGrAY}a#2?ce0>+DfB1V~hukCK zZj?e#cS(7sUt6!946hGvH0-aJ5EK#TIvY(b)=&?kbF9Py~S4Mulb0_)VH@BLiMLM zQqQQTeo`&p0x^wzS>8jvjom`I{A}DE44) z4N!RzDa{oGg`cwm7oiM3JuqzFrw1zLUcyde&swzZ=cq01K056OZG*eLXerLV{Tp6( zPdnE7$4YhvOZIfp7qt`m0=={6!Kw)H%^}+|dq!mn4j{Wd3obH@6;mDU?xKA_Vdiw# z^Vdu%EisIaKNP+B3>WHGOr4uO_>LF4U%2GOgeX*aaI?A7U9Sv&dS?3KC4-;7+*9=C z(wk=cvcUm{bzhy*JvU|AXRZG3a-Zv+X@74GoV{URblTgky+!-L&ur1XF7d58R$q^r ztG{=uGg$io+g9m@k9>=lEEW2hSaP)J`>2T{wcF{mSy~&vI3El4PC#L9c*%|OD(f!s z;k2F+ELAS0;^KqL8QsNWp6?y`>HZBp4qZpx3y#!o#ylJ(0HnHqi$WkbDthypsc6#s zBVo402tg!;fn3%gBQx__i=6U8X9}eH21& zbk80W+}t=OcoS4^PdxjdBm2m8U&qnzlFv0h=xD4Gc`*?+m6;0^b4+9#^+yZQzStmp zIZ@y6QZ`8sBa96n1*M!f)EyO8xOnM*pZ~k!XP-qY>YMg*d+Mea+x?&J-_G{?Vcn9O zN{*uSWiy){pBHtYD;&;T9qG%6XmgC1zz+VR^jGppQOS{_BhxT6sU`0lL+E3Oo2i=#Q$Q>tZ>Au`@Pe@~v(xf=O(7rWUenO}Al{Nawt z)w~|>Ds&m-KK$|e2)1nkoNo5FhX@00|GyE3!@!78e$J~da~ZhBV8`uhu_O+6!&fQi z7|quLgSokdq@T{qXgZ@m#S9m2Vu~9soQPZU(3_GC!+{GW&gN_2_d#d#2F4Rm zCN6Y%#UECKAWq>yUml)KbendNogZ>P=*@F`AzN3xrFw?=A8b8LZye*>61Re%Jq*f|NbOUSq2uIj@Pue-MW zu)Pvh+-T8HybjxbtQ}kEn2hwe<+d1Qm>J+&tkOCgQS1=2xfvF&Xd`r|tGOD+p+TO! zfVf7nbr(1|0c%*p)y@;^ECMwSY7kU0vc~wU@V%7rr}U5CDe*g-;Uf_6G+zoMFWu8z z3A24HLc83}ScDJc9zK+Y7ic?>mLu7l=kYc}c2D5op+Ua>s2DSG)EJ$lF%oJ7)C?%@ z>l7m>?TO=gP>Y~U97$Vd8}3|--xHGq|4cNDc32pmd@UI8=tkO6tFLm|AG?=j39k1H&pWbD>pZaw}Se2?{_n50f% zNLic$6Q|mRK1ej+ggRd?LwYRwONaodcA2!nj--;fCPOCf3qTZ2WztCy`y2(QfSC0) z(A)D6Y09C&-sp?)aL^Nl;O0R31fPiq%bjJN3B|U+Iw%%AHVPieg-MjVYhZK}id|ur z0Zws)C{^jG6|w+UqmoovL|#;5Qh$(t80%f8cw=hD|*BrQ` zdPALU$WwOFS7=d1~_O)vtY$2N%HI1Ypp{bqJC z3~->KakxWpa2N%^fqhf-WmHO@x3d9W^0K0@5K8a73{ZY5I;rdVk=OyeuXD3|~-Prc|YehqAak|>x)E&@EIvw%} zR08hhEGGuXJima4wg!9$r0hM-EAXv9S2ATaRx#_z*^1*BEz#eyX0p1#MclD+YG@bk zs2g!*izV=VMdRx z(YK-J;_rTUzIU=7t5CAN&Zu;^GjUW@3YK@K$+!W+MlcKRXH5dd2q^@ z_HyI_Z1~r}VJyu5AufZCd3s<1^njEO!XyYhFeY{*F7R?+x4naix;P9~<9a7?l>VSI#>SByHsnKddoZcM7H|Q_gmg5o^ntWbp#+j!*Mx`@g z>ci=iyxC!}UrO{FQjtohlqu=Jf5i0fl(In(Bl-dGO^?sA$G{8wBGwguon1gNtD=jB zeCH=cKV*sb{$~O*;4DyG3<S6v z^fp-V#uS9%dDF0YDK#DPmk0DGWT&P?473&BWJC*-??m|0JT4q#EiXG%GB%vTH1XDn zM4haohR`_`HTLx&1v?3Qyn`ibZ-obOtM6n;=^Tnk(13Y>EZ|HF;5eKC0xyFs5HSxW zjXh)>@*na>|AdT#l?L*00L@L|y5R2<*q-?#&&0sScnAusipE*GJ*VOO6DWuoKy=EU z?Vk33hr))s%r`JD179naO6Hj4PPko(I_SI#gfta2V02!MFID=To#to2n^AC?H?Q84 zSLekV04~T3#U`)!^tqmS(LUf?@CSUb#ykR+jc;X~R!ph!m{Ra;MiKVNeFb~{I8U66 zbp#wu*&W7A1yu>L+dRY*h<<{&K&`WhDAxkmj`(v*X~l?bjM&8_jlU@0b0u4t%R7y4 z!Y@39IzeFWsoMZ`BAaHu)|;QqSF<;-(UaGJ?p0+Cd(II1uQQmeGg#!z{XOzKOJ@_3 zRaHhq9+g!q^3+Z%@_1GQ30d8CC<9lMRA%MGlFBS5W#;-p1lV>!v2HS;RGrP&b#`1? zFo!WF8WSXRS(K`>AP+);%1`kdXY_qlT4kzioz}XHwDSC*u;6GfJY~k&OIEpjqe{v( z9tr&8_wXx$;k?XD*JVsas;JXYX7tbSkX3Zb*hm+wqPL=g1Lz^hYNa~6ScyU{U98iQ zkuKIRg>Wx7ab%ytpELRy;>sv+IddJHtkl8-`QqttV_G_?{1c_bA`(jIVu>LomL5~8 zH}Q`1U}y9nwzL{`TBDHGHRM~EYfl~mVe?L0%+B+A$D`Z8s}n=ZgIFRw{XNoei-|w` z-+bVQ5E)J!a?0~~#v|7}6E40#gy(jN-(krk+5e;i`K?DOHQ&La!Wthr_*yeguI*sO zGZb}!k)+`KC55X|E0(D6swk6`u zpUXM^diXjN92-5G_+atTb1Ve5g~1SM7c548s8?CzARpp4WXb$5#&v^^D@n$1Owi>{ z8sv74$Bh49@hH(V>gZ1$+z}M88Aydqlrq^lhT=5PhfUyF}kD`jevX5q+=d`$T_9^jAcG zUG)8;za{zs(GQB=Bl=;{dzHQHU>%X~PeeZ|`sbn>;_4RNCwhwLLDADi&lY{S=n>J! zh#nO^PxM03CyPEs^y#7(i#}WQxuVY(y;Srv(aS|&Ci-&GYelaYy;1ZQ(c48|EBboT zyF}k8`VFFQ5q+!ZcZhzE==Y1hP4pe2?-YHP=(|OKQuIBd?-hNY=r4)>is(Tpw-nKR zqPs;;7u^uO7e2{@&ACBl*K#l%uA?Q|ado7>-NgggaZcag-=zcCadO+=Uj^-OEEYp< z99|XO5Yl&x?h`#l^dNM!jsN%iKUV@5J>xc}Kt-W4p?pwtp;mp@ZInTs2~_}<4t4ZN zw{aNi2T+ef-34_mR4vpps5ww$p-zM1F9oI(>TgfDjgO$-g?bKZCsZrcrBL&s&V(w2 z8UvLMbsN&UA8H5GE~uxV4nTbjHRvg%0aXk&A8HBIa;Q~M?NIBXu7lbNbsy9YsK=o8 zK&2q=H(|aD^)b{@DC23^LuEompe8^~hB^~!F4Q8ZWl$@iTAQ7L|zJs)(4nVyD^#kPZC7ArRpicY$22I4)w*I}25y+3A z-hlcs)PAU+K)nfN`ZW|-~ut#wtkSl8)TU0sJ2-j24q*4nD}Dh8`=Zf>lrYBJiITiXe@)wMU#Y-oZf z*sQKvEAUEfzoHp&)zml8kN!4lnwx5>;J2fth0z;r9o0r_-4%7M$YpC?3*u<6!3fJ} zY+fVojde}NN_xU?rFLAoqM->WGEUgQRG?AYvATu+YU-;PwNbsUokeG~uWo6oT3u(f zH$cM=csDlJR5cQ4trI7htDCQY1#quxx&nJ5Ya1kwb!+QtIuK25!-^GVc$A04Q-fG8 zLmW$HE}FUM9K)D3f8pW_7nO)v0{g`!W%JKnTxOKbS-5Ea!iA-0k zyKvF@hEX>2-1)O+&X-xGX_l2NE<+p!O@^J1Nay3L%3q}5t?c}GKQ zow2&Pwu1%VR##Wm2*PV@uBvTps5aU`S5T~aqwR7{Uk#wO24&Y;)l}QO8lh0}>YHY* z(bBwzajsyv)$k7*M4T(BCKkf3v9@k4iDE^oHsP6mS2Q*^lSpV=TelK)*+wPl*VHwz zNf;n|p=X+t2m=|hr)R>|ZN~Jv<`rk+dwN@YYeUmYej3wBQuvy#8j;v_V#9Yj)R|B- zpb82KpbTS8eS^?pM^n2b+TPlM(qTIU;p5j@*WS^JFSLz1(mIiDYHl~0;9H0oeuz~A zO2A?uutVE0R#Y_#@2Ep-slzAz&}6)|XzbN!o}^zCtx;Lo-mJ2Kebvg9TpDFNxuUvb z1?!65j5VzdLilJ;D~Pq?6yP1rErP5zjK+qhIu_81#ttb^v=d3Rxud;K z>FMkEU`cajjTDbj*V-!Wq_$awsA+B_GApZEtEFnt9SQGeysXUZ24}E%g(K*L8T6yy zB%JRI9<6r<_g~})9)Y>d=Lq(~+VIGND+m1#L;C-jS9{!83MSkfo!x7w1bCVvG}jb z;~GbB7vSYLsC@Jw+z!AkH#&m%z%0F9j6uQ-A!F!ztp<-XMsbOYY~)i}P1@o)W_ ziZ^nP3Lm-O5&V1w;veh`egg9dOol&#@E-wQ4!n9`_P|uNXBYJ_McP!eGg3I8;;;^m|Nj*7tB(aJ7M;~eh17JnD@i%Lb!Wi2H}1O%u;9kWMDAHgf6zha`y-+<+2cQzu;rA58RR}c(YB*F7$_;h2)*1W= zst4*Vs8^u&LG6Xw1N9`-Zm3;QJE3+!ZG*ZW>JF%_P+OpGfZ7PP9;zLx5o$S9IaDds zT&U?#lcDmU#y|~+B5unsFI!%EdE><3^s>hF@>{-qdHuxU4K#UA-~gxS*6i zK_3XSzsv}xz}&VMWdpP8c}MUl%B2Tocm(Etz&KhREPV!a0ki9A&;!ifd%!PY7NY&W z1k-@Oy)<*NFn7b;0dw0QKqoMd{1Nm4bL;1z z5154wMsOp{u0Mmn!ZiL0I)S;b*AZ-iS^A+PSPwJ!C(sGZ-5)uE%V>T8zDs+Ur7(}c zpUVBe*5|^1OA^`_Z z%@Is=)YvKjJM7b7eAiyLx}`nR-W;iEUfojFS{KP_i>zsAuZKCXd;6MZ`jM#UB{2>e zIz*~!TASP2BJ5P5>YHm%nU&9BK%~04qp7wE!w`d!=d_(6iR3h{Fmf>3;+!R#Q#+n< zuEt!XbzKC3FiYW#Fe1J18IfvEIDl?*q`Cov6`ABXoK9A*TmO>!{YVG@?5Akt-`9Qr zhkqwuVi*^z0Z!y(lwAOe$PG=XpN85&Z(;W6v#YxTx3mETSQG$Ye}k>tIUSSCFD!Zha=H74YeTQ z=GI6{Yh6u48wrT0G&VP_6#6pD!St`@7QlQ(W7W#G@kV}bWOO0oC{3|PK8!(-RsV07v zm7FmW?r2&qCRZ2;H_CV!ri{@mE6tS(x~Xyeu=yRb4w6$aaWdx$;3;$<4Pcnw(AwOz zx{ibJ=mheW=2kRzDQ^Z_U8UxZvk-2^#j`-QFr)2N4UH0q_#;Gn#W%P{qFB}nJttY& z*bE}G@f`4?DvKd8YywY%8~)>R+QvnqaZgA|p5`_Jw7Z zR?NOp39};oZA==9`%!#Sng@s(TpDqrW!HB!U4}M?**hj9u;3KesIIDo$M(9Fb*=JU zk2xAXjU(HQpsGR8G!}O79l?}}m1Q*ymK{)T!kU{D8DU8U*=-YF(vr=oZ2~`t&);(M zu{Hzh!R!~4%axJl6_JZC#zg;;OIQlEb!?6(bD4v6G-1`Mp{*Xcvt6ysKJecAOB#^e$&#&9*BEXdYQx*VwQc(|GnBLKofF#S?;63LyNw`eMjWbS z`Yd!)Bbu7(OxlVsBUONvj*XEwFh=sMrvX7m^WMVcC)`R-7sml+;la7 z>8vD=w%Wqh&yAqHHAJF0;KemnO>AZ$O>@Lx7^O4MKX=v{5iBcU(N@zxr|HClbWTPM zo)ei_dagvm@y=Ec#$K4Ojx!e@#zj_lw6&vS;rbFvMZh&Y$^= z^GmReZkE3yUSc84O|6BXUyzk8lh0K(vb50M)0X^h9g1SL=9)RRtOlc!3#0STJ)7V9 z^Na|-bK20b@KY?7D>dXG=(Dg|sv6CT*5=iUrLx_g5%5cZamvfM2&sgX&$6e_Dj@;0 z8VoLwR+i43b>7T#N|;XN`7;;rqjCY#hM5Bbk2ZBQHljs#G)Xyw6js(X)wP0UA-0aD z2CyDMK&_ag?$|FW8gd=D@h5 z5vzW}r==%U{h06!lecMmG!=3!X?f&Qz(WxWI=9F;)!}j2VwmBYTWw@bZ`{_9Mm-MD zI8bX{i)tg)%)e&y%1wCa@s5aJxr4R0H-M-VcG6}NBY{8g3vemL1XwrZLnsfdF@nxV zBL{4V(sh#ykPg*AL+mi1qkpUmu25WJfbhaSq)#)8JTJ0RI04z}JvX(D3-@>#8ZYaJutBU)< z0Fi{DDk_cw$5kfXCJw9w8*9WQofO$TsvCHj^(venu$Wd2H8nToH`T4gWQuz{x zi<=s84YSf~9 zviHbZOh4A3-$4h;Zh)j?SU#*uk28jZ`A^%r)z!_MJZc&zjj9e8O|Gp0W!e zo!30o%oN;%6CJ@z$4tmQs~~!D4(3liMGlOEIk-N>^mR)A4q{nhA(tnNWhiAcJ;ifC z*f}{hr&Lhb2qTFXL)#VZo} z8pX)0I@f#+Q-uU(W`&E>5311&iFpwAtUz_>p4SRp_pEjVFT;XKOI1TFJBEEVSc|R( z@6r}6bq=hRJA#!pC05k`H7 z+AwZu;M@%C0D}V#XSiOvEHEu_R$x>BWM&jBJFB3!v2ofc%cO6#LfXQ8{)ICuXO+$@ zn~QJF@+1uSA;LgMxP`o9jd3%^$pF3qjVM0C0PW;(t=|ZCjm4VYcq7jB)74m1QET2rg%c!{X{ETH88OB{0?bzmRo*Fchq8EB z4*kn*^vY9SJL8*ghVCym_AT5VIP>IwaMQLwZVj)gKIgjcUU}(%UG__7V?X#u#m?Zm zvsF5*?|=6<1&26WfHUzsd-1%pDL06}6sRjE7Zes06&6jLN}D8ETfOIJcsI5ab^o?u zymAQNi-qyYcA6*Q$v#}t^=>$)vz^Lwq9h{9z@tp;eboV?It|>|whGR6OOO63> z6kY5|qw3zrvxn%1T<^1!y`#g%xY6&O95&8^?lCSJ?H%ngT1WTbdyVLuMZZh*9ix8$ z*WZf%sn{G7|DG`nHGB+1jTU`^*v!Ir*jO-zG1rb^*hX>f5Pkia?lB(YVbNa{|A$2X zSoFV$pX40I8O#}<<1uFCFqLJZuNM89VRT)ab0b_I7JX07oA`b=rx*I)C9H2OZN`qJ z&%&|u#(In<`My&0nCP2Dzhx}r-#PaC@N+zjDPAl#yMT| znW8TiKh@%=W85|4JjQLJ-#3mpd|UMA#pm1N^U%0dyntH}rR#-J##Sx*7167stRYoT zq(ldpP5^hOhZxH)5CpC8zuKiVLdBQegQHfWL!I@bm* zw?S)c(9JgJAsh5P8}u_9^pOp6ITJA(Zi9+!&^#MdV}sV)pgV2QV>akz8`NWiKC?k# zS0ZK;Y|tzlw9E!|*r1y&h!pZL*h7ZYEuq~4eFHU3=xKo-(hvnqW*84^=oNu>YMOXM z;(SCy@7W;3O{`6~AvS1|4LZ*T)!Lw|Er^)m7%XsMoP@q5(4!i9R-kWc=uLrkY3Q&( z-_p=gfgaOPCKzaj@wkRg7HGGIrU>+H4P7A6cQjNj&=VS3C(x4`x=En#YUo=6J*A-+ z1$tUTKNo0^hCUSN84WqX;WLc?(om*A&uS=7puHM8OQ7#*XsJNYX{cSG|JKkg0`1e# zBLY3Iq2~p9K|?(Py{MtT3iOhOQZQJ~Fut#$(E|NIL(>I%Swj~H^ooXR1$tFO8wC2H zh8_{^o&4nYv{)U{aiyI2y{S0p9%DihP-~_@(T@R3G_=1oh;Bn4HXFVD-BH* z=#YlW1p2jx8U^an&@}@6kB06Q=v@sxD$s8<^nHO2Yv_8Y9sA8k!`~2O63y(1#i-7w97mRSWcc4K)h%v4++O^al-X5a@`8ZV~8@8oFDc zKWXSef&Q$a#{~LBLr)3x7Y*$b=&u@jOQ26R^gDr$YUpnQeWszo$t;P#X=toKf7j3~ zfj-yJGJ*b~Azt~+Fpg=6qQEkYJ`H_cAj73N*b@RdH1x7SP7S>+kV`}F3gp(%p9M_Txh8X6|h zPz{|W&@c^^2{c?o9Ri)Cp_>F6p`jfDjnvR{0!1|R6M;r)=&(R1Yv>b!Mr+73h?tGh z&|rabG?XpSSPh*l&^Qg{3KZ4QG=auz=sbZYXy{^ray8T_P@aaa6ewRq-2xS8=q`ay z(a?he6>8{lfhKBbuRxPD^qN3L8ag1*WDOk_=u{2;MWE9(WDI6WoUWl1fu?9ETcD{L z8Y9pd8k!`~G!4xVXu5{x2{c1PO9eVpLp1`OrJ-hliZyhlKr=OToj_-6=njEqX=uAZ zvo-XDKqVS_U7$G{`beO2G?aolZ-y~fLwN$7tD*S<&C^h$K<8;_i$L==be}*AG_+Ts z^EGrppoJRxqd=t^a)y}t1sX~dXpx3S3A9*41p<|6=uCkw)X@0?Ez!_2ftG5hQJ``S zZ4{_NLyrh_k%rz7=wc21S)gSaIwsI18cGcl>q|9MAW)@-77DanLl+BFrJ-hlsx@?_ zKs6e=QJ`84-6v2TAkK4khB;DQp`qt(&@XJzpKVY|T4J~y8+4`(T55w@Y|v&K^q>uT zHjVQt6SE)Kp#3)JZ5#A!8}y+Cg^}AoTTlRyJ3TRl3=87;dL*C>Nj(T?thlX2DKT7u z1+fHY+MszB#Bik+M4#n0XqgRKVL@>`&GZ^AH^y?c4Z7BXnBFZGM4$Iq5ZxZIAi6zb zgC4h_<5O3qL|ho|Wy>c^>4$(a4AbpRajVxpe`$k$V}t%+LB#BD7R1s;gs68jmaqlU z?Ia6g>XQLwSU#tSTZ2yh>{T495(vO#y+phs=c^ET)$TYA5+K|MB~f3ZOU+#-$Vs4zP*M{{h@N}JF1 zHn&@C(33Wwdu?uqEH_-6G2XYJR6yP#CN6Z#u^_t5vLLp&sv(JZuCYNk*`OUZ=owoq z-?u?;*nIwv&CM}1F}(~MG{pujg!qeic~;q=77JqjViv^webs{K_N)alx9`|e_?rz1 z4NJsqtPMKL232FRS7C-Hq>XEabr0JlynxU{8iE{PK>r2kt)x}1pI~h#XdD7`r_tzw zuv)nNNqjcBekm(1*^o<;VKljZB~YAA$>GiQ__uK9f#n3b*L=GAxL37FiI}yTF1NXYvxWPr6)w%O_=>&RX^u5lya4@yD_(*A>J@K5|HTzQf&S?gKZkzO8h)R#=2y@! zl<(Fxzrpv`H4OXYn)jjqbj=^2f4t@|(1UCFJz*{V&k?`~0^F`5p7XDw>#D10zgcX)c@f?_-QP z+{Ls`?c(=EU5w$XE{3|Zi*fE2{WY9ve)oqXRe`nRqnK0mycweyjMe6+LSc{hzjpX0T!K zCegnx`ZJ>cRP^7A?!AsaM~Xi6I^wfLzFV$iEo>J3LD8SRjxoP|9r5`@z6W2=6br6r zsPnF;eS_%Ni~U3L{o?h^%dh48AL4W94YWD!2Ep?N#?W#D!`>`5kKDl6ejxh0qW9gv zT#wvLKQlHnRJrJFqTej~Bbz1EX2$%keD{g{&>NY%$v4uzRP;u%x$Z{BwnM(36Z>D> z$QV8q`;2a4HMyHX-rTF}txMppkpUGP!Ezujdq#^aMZeeVD zw+zAe&$o<({_&O^=mj^?X3k9vRdZ7=zITcK_nRi-d*aP3|9LkvmCJ9Y%?{Cjc{6#M z^A_4iZegg(TNuyUTc$vN>=wrM#x2bC$71i<%3O>R{j9ChvbNICsj#mgRR8y zw_E4nd(^Fr?TlN=QCHqdZgb58vJZ{|9exfu4B>ea^UpDPDF5F}(f`rt;h! zYoLF02mKGalQE3Hld;XdlexR}PUd36os4JCo%DJ5&Q9nj-Nmp=M8D}SV*b6m80Xt} zF_pjGMI18jX4px0Gq&^Zrt3Er3CU`&dl6yaKD-pd$^lR>C z**bN_?*SDr@s=^8L(L8N*NI`(yDl{A)~c%GZe1h4Ov* z*I1sne2wLE@N4%$&;B~`oceW^dBfKqfd0_eNuTe1on?}?jX0dOjV0N-jhNiKP4M5g z6E^?Y_Biy@9$@?zJ;1cqKET-Se}K3>{QztBj}Nf4$34h&OCDrtT>cp>2|Jj4Y z|Mw3P^T2kNVcLK7VaEK_!^Gq#4-?N1AASmY&Q9k2lAZLwb|=$%cqeoH>Q4In zU?;KiKf>=ZkI>JIM;QOrk1+4M9{C==KNMHbqjVkdC|lF4N14aUN9psSN15xF9(@Vl z#y5#=$v4RdV&A0wSHDU7cfQG-X6$+m`l4OL^Riux;rd-n{h?jN_EoX(-NjT~-+B}J zl5f$q<6BJSrEd}E!=k4>#pSkyR_f&UE=fO z@3NhGo?@Fi{VCd9@)XPSZn1g!DaQ8MQ*49NpZ*y7wNI1sAA6eV{^DuckJ>|<1$!9( zb$dt;FYF=y?q~i2{mlQ5y>E|;s_fdn_h}rCilB~y3J!W7hLN@B97p z{l4GZuYIj`U2EOzUi+TC_v{&Gn7w>G3- z@n=N813WYK03T&Rv>xDVe*Xb}%shX9uj+*Zya(+dU!}-{d{u`Zo2YLguOUY?FU#_Z2JRwVp}~NE9LfdEJv;`m^zbCW&kplZ;g0Em z$&T58LmdkMr#MOg?{O>#Jmz>1u)(ng@K?tZfSyOz19m)80T_N{D`4r7R{)}}d*l${Cr4@kzdyn|(T?)Df{yaaJ&t}1XgT^B;FCxBew{taGaHZA1O9yU5}@b1 z-*sv)wR`spU^ZeIq66_K#Dw>Fv|r z9^ilc5hyI>xG(rikMn5VaUT8YIFAngm`8Vf%*TGqeQD4M9-VZ8N8dcbm5wL*Tv;c% zKK>-?C%GQ<39mU7aRXxAC%lgDDL>E$Aud1F9{l&wmp|ot8sfrFx$gLsSMWUzm8G!L zKg0g!p5}X94hS8d4usxXf7S(ZOrLRoAo>##mvCh3J_`dp_8Fg7cP0`tJDy1Z3_Ftq z7;`2SFbn;mXEMOgKa&MG6aBeohJpVeEn8WCdvMTOC&$>-)kbP(cb#3_h#5SJj9AwCW08nyY{d>FMG(E;e*&;R=Wy8{2a z0{^=L|L?58=+ZCFtqIC2?RkDpki`0*-x1`;o;d$*kUx9o{QLi(T)WfX*_ow-MIg!`leerT)&PsNMdn;!fvf=DFXrQx0qe}li9H-y0iOb|A@*csD=CCE6MF$-MrK(e#_a|c z#!`%ey#p+Ql@L1yERvN`=K07DQZ%#tDl&fo7RM@yv8WDGcUDW8K2b&~iB(dSPEi%` zsq<#aG)2WpDQx9ZQ6()Z6TXMnNSOnohDv>yDOAKpMNO76SP`*lQM06eten`qsKt_* z8Nx*7@~BnP0A?Y!I_hz0Abj#)#5P1-XBJk}EZECYo1`JEirCvxJEd%v@|%c#7~2MJyxwS7`z( zpv>VAo6MSN-^WJl<*@n5V4IgZYC?D%&ov?u}WfZzzlaW z%QBI92x4>gHT7wl)qT+C{S`NVuDEo05ZLSq8t z`k$zDCP-yJuCP_ zu=<$o@+M|53HGm;J@Rv`oS0ASF?lnqr5VD3ZDA&wy=QE_yp=T*%LDc@E65d{O^?;f zJ6Sog(%9>47pu{Uy?s3PdwDmjrP*JO^;O%pK3~O#h`w%x$Ima4lmA1v*snoMds&X)Hk#d1q zMvECfj$5OA!K$dr`M6h5u-jz6nhW)@<-t<ASRf9f-n3_T`grA z6LM8=$;5vz36640LKABvl@lAEFj4iBYKhH+n4eTLMr5u4)>bMXE7&Gr@czL#!QKEC zAX&x>b_!TK$uvQ*riAOPy_7OhFt6@S%pjE$3j@|ss+}Za8NfP8HIoG!2P{ykDimx1 zupp^OFW4i%I!gw<*uNKnb&<-ah}gTpx=Mzrg4F{HmYRuO1r{RJSVhdcM-%HNl}{7Q z2+Szq&#uC{r1z+RUz*ZKi5bR1EL>_Nwg^~+R7t%&-lLsrl8T~5=1z!3OXV?w9RU_2 zl}x8zfW=Cd8G`)+EKVx9L$KC~O)Oq2D-z5EEJ3o&6f6^1cd7DD!NvmXAyv*6tQc6L zRIr?mp2QhylGJ#Yh*d%?Su%KtUL1+VYA>mV*g1%$NoAfQ_A{{FQo$TCu60rqOP7kg zL@WweAE}aNFazr=S)#;zvZNv(QRPL*93Yj`xZO!x z)qzsk-D2E_Nw2Ac;1@RqJCk%k9U>JGy9lwNQYEpUlipK@OD0c|*|z6v>IkWpYR30G zppKUG(W0|HJ~M;=&LNe@i$0I1{I0$y6|@$yhLjN9`;w`RV85ljryi4vhQ>P|}K#5$#> z>rP8GRHb)n6FVz4mWpv>fSr>pD+DVBc3x^G_BgOQ$#TDlZ39*>nfwGhlsZ^5fHg~&SaA)R2JAPfEyS(?)5%4|ywjU?t>i{x9n*EK zJmqG(D)vbCZ{;Nym5Q2!(<55>$~DAB1A`yuT_IxD^z>E%at*O%>4RIfm&@CUJ$fcR zzf}j>^r*;uE4{E)N4c!Mh#gN~+Nz6eN))kk>5sMwk*kRPl)j-=H@TUZ+Glesqg;?A zGL3y+YZWdVQU%NG^JuF`*+ML*&pWN6@XKB_)Z zHmnq}*ZTzMd&-r>4)=-Dr^t=O&h|;y_m*pD+&6vl^?hajqs{!9^;@5vQa`z%gV>|C zeOF0lxsqbReT(#2a>-*NGZSKiWVC(xn zrq7X^>0at>$jp=ZkIeGfKLa*GE_z9@FM*AcYpCYczR&8%$dwe+XXxbuxxgU$Y@hM6 ze!N_=Rg6o`cw0Y7HgpoP+>DRlC!A6$MQkF(ta8yd!E70I`sp(N**ZS^+Kg}YcgW>y z#5jA#cha4*>17eyli{n(mJN@J*vX6v_`TXj+M_yPbLA?k@>Rxf`uTEEm^dG8JO6Nv_!`GI#fD=ebobcvY}N{qkFFlS`<|C;g0`+vQqf zKlV%Zd_~rqMW$!}OwU(kLzZAs{fB$LCYP59meD^`+ASA7B-rTw1)gunmH~n-=s&~r zExBxAJgxXO}j+wSpWMy-_*St!qkxQNsY#p%o z;5(_6dj;zOv6FJye!7g_dYdffkc`8*jE*zMbV%j7!GX`aQ zc`Iel3N{jAt(7WbcLHmp=;4>4_+z^qn4h9=E!dO5+A7VoE-wS~SDI;DHLw7snKDlg zS|znp4Bf;G{~9#jtG!Y~OmDf{tCLdDM$`muTvr_hmVErtsq^?R0 zt!vgkTV#38D^w{tAjYkp zl^SBnz(y$syT}{{Y_w89Y$~uZN;$D5zzURFVrzkoRSa9ixR-#9QwoT^4Q#wpMeI{x z6BPZ6BJ(n^iAo7Ec~}#C%de4`0oY`v`6ZFr9ay1K<0p>K;lQRS7J7`v4;$k>RVkt) zPojAB=Yt@WO( zG!pa7-t0YJv4o0o-Ll{IUZ~Vk&EDBf>>i~kOvJLYk9(IWhDyO^Ky0Z}MKj!&eaU;7 zQbn0hWnb~WS1H*hGIwWdKFbwLxM0V#cS`pwHSuC^zl16)mFDdtb_2#epp@+ptn=_D zwo0+=6f6-~nNszNVA;SPQmS4RY$mXW6;p&@D~7L^>4xh@eqS(&iJEcdJ zlGjD%VHmeoF}x|*SzwPV`nLqTGCbJl38kv7=(9sk6MI@|q`i&E+0g14#gr=^hs2z8 zpK_&uSO&z_E9Jxn=a_vqD9ywQb4K}WQY>f1xcNCdrRS9LJi%7wSbZv#k`aPc)QQaT`A2+CDYdi`i}FwUe5w@1h^`;W|J>({QblY_{*ONA zlqwpxKmSjkI;FB+RJoY%<9k8Tj}q(}%y&^KBGzSu&C99iFNj#*5kbCRDm4@<7%@a^ zR1BjZ~N;&HfVWT~&D z8jgx8wvj*jXlf0yr-8Ln%ik5Tmq%{&^-ycy6U;Gko3EE@suApSU_NTeMKRy+kl9+T zq?q5RAAS7P@;H$hHR_a?zuNqvU>T$K_y(wkj|3Yx>OEhBT25>(jO(N}9~ZF)fd#4M z9}D&@ur6xJr-Ho+ELbh4bvZWbv~M@HhS(RQF8CVNf?ARJ+o-R7L)EH!!F)&m=o6tf zj}u)7k52cARBI`gHu{uTlxj*4nc1V8eWTTs3xdra?b$j`E%;opm7_zvyQ}5Io`!Kf z)FL{{caFAsC92IG#abT$)>BPs5aa4#TragTP{h6;-LZ9wTF_ZAk1;;JeNr!yaD_1qG6D!!gU?0m< zQ=S%VFt8D7?M1-~3%-*^spaDZyQiRM>oIE47lJ(jZ%~a@t7zQzf-l)Pwd5HQ+Xq#~ zt0t#l9~78dPgH9tb_QxrR?9Al*cGTUMKw(j?DvA}Y^vHwOgDCX>uGA`L=g)dJGXU_ z+DKJQV^_AGrIs{`l}H}j#OA2wlSJmwu}`Ri>cHg+Ot?ySG3q|HL<1V&dsTNHYY%j1?Y8A25 zW zc<)y$ki?@h4_GU$k(dpbUaOTwtQ?q!R^Cfg**W=e8&A!oikJgpKAPc6(M#=Qz3i(M zq=?LKCwGwiwDMHJq(Z$Mpp|H1T>HW%)Zmmri<+5*er-Ex zDGLQFD2!;^Su3J-DJslp8?2QRTTz(Pwwu;Sth{hS+b}JqLX3L_Sh!Y6%uzU_ZG>i_ zuFn_FZEMn+DfUz0y=^14T8ep0xwmb!meMGygaV7zOy3IDd&=sz@mk4d!A4El)V8~3 zxh&XSQ%Ze%XqD9U(kUm~By0LbBDQMEOKp2;7GmqB)ag^TDjH{>vcGL_t>|AObKjKr z+xF2?z8CEDlyBPh*P4l4p5o;{NUQom#C``hRI9xrn0~6!KS!&i8G@%~`j6C1KZ;o9 z)N%d=n&lqB#!X$|KS3*}*n+9~`bnC;NyJtFo1&EwD+e}BEBZ;qUYe?x@6hx=3wB`Y z1O9hvmOkQL_x|^4yNFE!cAs{F*g9a#wJXGq0V~x4dW&&4fUVF@m<8)K?W+I% zT1p?m)=vAwf2B6^CQ||)(2Dzt*vV;L0jsp9h_#vCHlR#vAeK5kB;X-!c816tGd(Wg zVeJuOv!_d4GKn?M z$^}+Rtnch`0Z(dg6SK{p53J1~G2hYIO9Iwuj}U8~{ZPQu+Ad;IcTEF!g4hIPPg!uB z;fcEnA;##KSbx_BU@^q@-nAXr1Y&3J+6%0V*wwp^1w5m*87yWu&N&CnGF-5{IbQW~h^TolvP@z-krfg< zi>#EGI`@134cZoBU4d=XDyU{UuuWPG#U{=j7x1jsK&*7`_rRtN6Z0LKTNtoetEO=$ z=Bn*BYu-5`c44lbvuwed=K8mLL5rc-b;z`9=@j#yR~TT|N+=dSPY*Ez)l8e`-)@V> z&+k&!zHs=wz;-X*WQFs(wR`C%n**_zv~sGlY+gjWt=chSPtQwjw@qs%RxxjAyY1S@ zT+u(cDuENJc&KP{0kqS z|3bSxTIN!QY}5P-wnr=dO|X~e?}k{gL1gZm{~oYXlVCOT4@i5ox$vF`uW}AEGvWS) zv+w4gflLO^_M9mToWOSH%gDSJGz0U7^Onc_7W@h959o}uP7Czy_h{27v&VubefDUV zDVDat7h=OGmc5`DVqXv&yP!S9<`SEMtcBQG z8h3cX3&5(0eXw9Juqw)|UvLaq3B|4~I0tMtv0t#}ahmUW)0YryOR+x|{0gi+Rndz1 zN_IaR1`<0{d>q&YVxMD`mxz5` z`~}4BC-wuz77_aunSti}6IWs!F?Hc3?>*W<%Jf=z6{>g=YrpUYu#uG688danLKpHr zLy1K% zY~ezFKGYFgws0WCP7t##%mtrwjQbc8>P14ttqI zv5N~Ig3Lmy`Q1YP_$5)SY2o8g^D|<<;Y!>M_fq^yBrSRYV)|6U+AQMNtb@b?7mW*m z>mbe7W6?Iqe41uR!Pq8Z8H;v9Ox)w?49}ez9q3{+q%CJA1n#BS4C#$CQv&zhWbdE3 zGw{GI;||`8Z8LDP2;nU>m( zfeqS7Vxxh5p>3heoXE|Am$YhPvuZa7ex)@Kn+~x?4PHCqeB*$9s~Oq~)+2gz;AJg| z*l=LqYq`X>0=uHkCUyu|lU7D7Ir2c@Rc!~clNpBtf7WV<)dBleyF{!O#{H(j8$USv zis-|E*EIOD3bJ1!YXWa*Da4jRXG}Me*j!+;ZZ5H`$d3b6-6O;vj{G!G(^V3CsP=qd zD_sq--I3=5J#~%5o`jf>P9GrVdoccRU>jX1u~%yk2e#D>BQ_QuhX7p>v17nG=vES| zkGUAwNmog1RMf@5Al)%yAHZ67(On_-Ij~?|n|5Npcc7PUI{p{__;L0EurOT#vE@J(48RW6ZJ!258Y*AoubYMCh6L=7c=}&yDqSo zZY42e*Zv&XTlXok)lt_2`{?*z&f}f^79|H|=)5}!_IA|9z<#!2aJ6oaU8M_l`$Y+VVl-{Lz5<>?xUorvER zI8qnfQDkn8*&aArmrm?^)A_(LxxV-5$7(=8+B6&)HhLAQz6fU}1KC+SWQJJmZX zs8AQsN!0wV_s43bAlt3w4Fa9%rM^<^+}Kwoq*P*~vjmb(e_UbM}1TeLDWv)%bj? z&u$G|p<798{n^dH-XOLO_Q<9y!0W_=aE+W1^nk7sU(v1vwg}i-WIR?Hv`V+^CMyei zNO##S^I_emH)EwikLapzva+B@bqrtoikgq<-oV#6yyn`V$8~BtzcYSN|IN9LK~L!n z#BQA13@irOyR6Ik%Aj?+6T~9UF9J3fYuebn^Lv7x(Ot&ZT#w^xu5#TKoM8p-QMv8} zX0Bk%&L0da*OlYzV$sV6-AZI)-#6*_?`J%1;=hKn5%5<3AnMhqb6;XYx$NfOK;Ju( zSMUQ=SOB2JS`^o)c+^|!xb&9#GW);r;rDrNcKF||(}a?^KJXz4^eItm+hGw1fl%k}7s zJ{Ll!!j`$^KjG&8wX*w+|D9R>spcOzyBg!RcW!=5RAq5)dWf4p8hnMhE7MS!1*o#Q zZke{5y4VZXzHIsj-F@HP9}D-n&f{2jMVxE8SbnbYQ3~?_-!)ed__wbA?TQ(5EN-KO zGWj-TnVYiO%@_GEfTFUO+;sN}yk~{ED|L{murJ*5MIHBZmMgA(5mEOu$bH_w>bH*K zy}2vyzQWw2i{p4#_X4_dZdabioUNE6P#oJWy2?Iut02xtejcgpteegsafN*gips8_ z-X@;U`&X2is37LzQK8(LDS8lNh3~$S+*jBJtS_SC5fR6aP{fgW)GgW?@?y0y1Q!r`^^75Dzp3^e^*n+Gg|D+e_rkO zOqsoycx!#3D6Hj3zJ1i~ij3>2Fn+$P?2)8fYf9{WR6Yfi@mbY%j&ns~LjM+ggqrzP4}$#xp&(*Iz6AQ*WaFzl*we@^^j>%%!knx6OF=FN*tEh54l1+M#>&?|g9$ z5zqDfSdv)@R8ZJbw>sh&Nm471pIs zi;@byf>$J0K7Wpu=?D?C^F31763D#uIZo)}S&#cNbAJUSjw^n|x;j6FbA5)hi^~6r z;@j6%!BwX_C<;rxO>cQ#lNrx(<==kC__|y4_&@k9_n)ph{Eo~aEtOg2Unez6_6RfKX>Wwl|=>qEUB^|p^nCW`-f@~nY?H5 zsPU_TjCU^z%LH9w1%NX7cmIPgMu|IZapxn(@@Es*Sia`}?2C01qXf1b=L(DH$M=H2 zn$TDz_^$os*CK_U_eK6+6<4OXGhgL4*4=NpZ+GRppI_qIDEhwy6`&tHhQ;w<>d*H} z9OvA3RmewQMCZBrqO#D%c`Z7xamx|+w4$0oUSDR3W?tX@?%MtQ5^E@~d%ULT~b zMAY5?`+Tuqt~&(Lr~Cc0IHTufx#p5t%c{E8L0s+K@0t14USTcDtsVY-C;xd4T=@sI z^ut%%b$$D5W!LNU0{9l$?e%56mb&)B{doARf9us-%*gLEZ?EZI4ep&_9sVijpLEfc zc-61st0Y&=&X$&HeZhCXVoOXY<1puTpI=WD<{lMS7?HUJMk#dEam6(w_u*WCYl6y7 zx>dg7=JR*A6nwwS)kFATUO`lD@!b`8C&VphJ@^W1$%H$En^7_9pVsRCWnE@7hw=To zVdATIH~1P`0;pr9fbN~UGXLq-;^mw9GSjkMW8usN9gciAr6uZm1i9j#Be|WGw^rlN z4hpMrtM=FPS7z;oyJmOq|8`%zC*$hj??=JxIef;}fU4Vj5fZx_pOxHk9OTGsBA|rt z3CL^~`r>-Uk6wvAg*p5vRT%%yj>O(V6~>Puh4H&S*EuDgzeMIg`Qk1yFQ2dWC_vYl z#b15M_)eyRck-^9;?Ib5S6n`yMPZ)+s&t3IXLr5E(U0U&FF>KVMv1#7(Szug&nTj< zM@rl;@%MRLcfTUjeU!UjeRCFg#<|TGV}&k!@eIp-S65=S^G5L*#p}4+XB5v$x9jem z2w&WR3v9`U`+2;Qv?!9>GlHv=nWOo-xz`j*%VX+VD^bV2+ZNwdO}wJyy2^M3jVWVV z_L?6>uDfedt%qCm_G*7sT(h`$`}aAnp80D}+3oBTuSQ*uyZasZ-`_jA^7&&S-aWg0 ztV?l!mC^DHt1@w~*mCW1J@X2MpKj~^BzUp}kGu@R>+{TK|MFmm6MN!$`Xa2J;u5W*>bhsk1zem^WATdfj%iQjZGfPwu zd$D*5?uFa4q`0#2e>rj;pOguTt7q}bTIeUS0-sT3{Cy#fxxZ7ybp>@5b&Y)k`K~(r z@e;>5yu%s$U+XRJJHcxisH5HTuU#oqd9`#v^%mWIlvro+JT(_GU7d)>&i!AwZddpn ztU`CNV&8Y;j8$%RPM~rM5cU^PWA5*yeTA9)&P2jjWUkr8y$b)=Sn>Xeh`NqOaepOd z6#s4oN-*R9{S!j{dGPHrnUw-c?8r@&QHN)T>0D1j%yYwI;KLOR6~KQ}U*zz6b(!s- z%~8zAA5)2mJ8HmxQ-R;b$?UPYd{s9Cs%#ga#2OKK^j3euJgx{V17BuqQTZo7dOpt| z1_=LlcAH;@y7)IfetwDfiZ#raU}^a%{vZ6j$Qc*Hogw%N<7bCNuU~kMd#21zx#e?T z!BOfhqj*gj@BbBi$4ty3vpTo2Ke+kLZoat3Zt2Q3mescO`A>cbc`R`S>O(Y`KV~g! z^&cv9B*<*DTPJ(m{CB{I`}2RRh%5Q+eV%q31%5C#cyq?T?eH&0<~KOIcrRMiZ&6&I z3AugVe^*()WnaYSokRtGm2ji!NT#i~Jy04jl9Rs8*P};_ly!{$&M( zp6FIbTnXKePw`#{%=nkFscxg(ADs+0U7XRPTk-1B{ojwcF80^8*ZdrW=e3)<>s)qM z#JMl7-lFpDiu-3;M2@>6uKD8A3*z%9BIl;^mpyggJMnxf@`Zl-9KYtA1C$uQp17V1 z#I@yr5>@E=#qT_?>0UuRzqC9%v_$c5|_wH;p@bBR)Fz|2O@LBvia|}o9)A>Wg9Sg=|{#~7U&Kkt+sMO%t zFEG=q3y&JR@X7H=SwMI4N{7;y#Q_TcqGVJqw23|MsX(hf$*gyTdmI4#H6pS-&ReeJQ^F=iv9HjQYZWlhWAwYr&hPh4os~t0v!8g zz+P$og~cHu^1T<9hjf(JUa*Bk%3Cfx9HM6_o@)WqJ=XzddTs#B@_Zi9;<*KInCCXY zT+dekM|!>vSm0R&Scv)4Fuw@%XJh7E%q+&5C0Jn@j#}w?07jL09tM2G^SuyXw#DZd zV5QH~-QwWyQEbhRW2@!K`DXa_0zp>9LPMhc(Hj+u7U?U-Z7 zsDqH#cVLbKqfSCT)`>Yz94jjuSz^AT;9e-W7Ygo$f_s6A5fvlm7*RJ9;$C2m8KYM8 zt>p6xRvc@?d>ck>q~OYdu!wNqt9H=`m(}9@|%yFXbB%gQU#Hgb3 zc@-7+NX0!;dDKYA6(i;tF~^L)nS35KW2P0yS}|(Hs1Sk2TIM$516@4rDyn+>T zY^d9ClntVAmZ4%t#g2*t6$klztP_1F>Q2m5bbPF$!)|rhAtA0X>P8*k3p46w@^OVR zY9-`3R?M+N&8U1EA+K!1Q8tX)33pL;WiMkVY zMUU&L=M@w^pUa4f5fvjUW+t9b6Zo>+8^zEqIQE{N}K;40glMvSmb;T3= z@x*>Su^&{7qgYgsF=y;x)n!RQL$pwhKdap8!C2G?5NmLaiH%YpVx6>juRCpMin3I#0R_b!G2IN zqGCkFjJ_FlGb&b8tmN|wHjLU(v0>Csh--zqgOJbVzILYU;E56u?ukiU;qpv{h z4Wnj4u9z`u#e6I3R#a?+JjaH*9dqpD^O_Fy9hm9Bs1p?@`8-Eyjh(c{u3BR!=o`t$ z9#Ao(V#a(cDppjisMrX39UJO)RP5yAnxOB%u?~zn(RY%M{j|Y;+F(EM1vXe8RE*?v z-HcH)DrSsY33=3tx(#z|sM}Dnqi;vuj*5ej&*(tii8)U4u^&Hy*pDC2G!kNOe%KEx zX3R9BVkPAHR@7~%*f7(Eik*;Gu%qrk#X&yTo#;DptP`V3TU?*E*i~DeV?^IbK98DF zF{5I}d@K4^^7&XB`Zmn8VbqR_oqV3-K*fPM4%D55JnF=#;*Xv9V^{vz5Bf&(dDM)G z88gkOThX_Y&&S%(w_&CYqjps6sMt|)5b{|Zs5?<{Vx|)nB>?*gzvX7agi zMc;~Jtr)eTZ$sUNiX9a@`MkaZqYl&^s5=RH)QP&%0Xyk{U3I{IP%)Cvbu&iIsGCu@ z67sQDjM@mfV#BB%^X=sGIu2AEnCU>>iHZ{yCn|~oJ27Ba2JDBB>qgYgm}5rWjEWU~ zE9zEMY=pdm4Rt#zcJjIIK*fQI11mUDagvXnbi__N@_eNu_CUyWBkE?%F{5rq#frWa zbt@`1^ljwxI(E#lqi#ptLC7mRFzO`aiW8$sC+wsX_SOk|AjIA=v&F> zqipEgFw=%nJNkC=aeXkyfw}{ACn1kIQC9-7lR)eWe%Tk+gb@2d-HbVA)Xk_^QL&Pb z{h)8d92-XMsMyKpISy1Ds5mgwiM|tcCn`!1b^?DW0M4%<>;Ziv>PA$|sF=y;`BwC; zm}AAL4HX+IHdO4W*vaRk9H=-j$AP+&kVl;uRXSroow1+J*bgd3RE(&Y33;X&bt@`X z%(S9nBjhC1y%y**V#7rkDN*C;>3(rxy@Ucch>Li8dC|$9uuK2pFEB4uy>qba~MD=JpjjstTX zs5mgkfw~j)(fLkPoTO}Lx%orJJEOI>`tud#2lp?_STK}rgY<(MpTUCbKQ(l zGb(0`TET~|y77IqlEO1>m}x`ZhPn+$*-^KnVn@Y+z5{g!Do*sBSlQW)uaXmU6eD(M z=|`4=9tOnIp$E_vlSI9My)u?in3=3@&1)CTuJcZ(I=lr&0)Nn8Fe%2 zW*lWD*64^c|Svz^D^_C;7Z9r|2hw=PMD| zVFcHWs2It|-Y{xL-Hf^w6)X9?f-QpYoedQmMs1jHN8gUR9dqocJ5YC^;=rf_btfU8 z*NM7f!VXQmH^szfQA|8)MBRwG5fw8kX7YKy6@4q}R?M`aZ$sTi3a@EL-;Pl`Mjfa) z$mcl@j5@IgC;5C9C*~-T+*cy8+en_TL}H()8&NTm!gI{%n=#*vIcChU67sQDj9M{j zBjlBBIM#+yJL-1w`6vfQ9jH67nggRwLhKoHoETN2_$Va``;X$i8PPYA&u27Zju~|` z>gFh}n^Cu-V#TNx6&oS1X~U=;qjnr+$EY232O-aNpzcJ)iTO@a_*_af&rzbW+i2_) z6(cC4^NpnNOf%|cRLq!fMa7DlR@7~%+sNmY?U-Xn-Hy705LY#tS9V~I6LXvxb)urg z;Nu>Hy~XfqMndcpbu%GX%ow$zVkMvJ))+pE4HX+kZKUw19eq3McAU|UnGW=QH1sGCu@0>bkq=37y>VvY@c8~MDZ z9W(8y*fHwB3Jz2pr0^b`=sPj$#L7<0QR1+}I9$~@>^zQlWklbIQ6ol;sGAA-C^PD2 z%(S9!#i*4Oo@0#XHI4E78N?Wm`-{Grd>*x8jujOvMs4WZP`9CCN5xJ)ALT&Bfr96~Gxc^w-@?HIMAZb!v|iUSn~ zDo#RP(}_`~J9gC_yXwxX8BsBk&vi5UX4K7?X+__Px)l{0A+Kgb-HwW#e6Bmtci>nD zMxCfQ$;VE5U?)9reR^=kh`y10><4qqsGCu@qGBZ<*94qc0RZ4imAfMC>Y&N0mf8gHSi3ZUhDHgi$f0V#XXR`c{luF=|8KhPn+EJ7(I+ z=d(C4>OkFrx&!BRqV7b+iBTm9*DVPDRE>uQMaOE zL&ZiuA7xMC`)h}s(cts?c8ogEcaYC3J5h0BrW19gC(l=UVsAZh#ZWP#VnoG^z8Q5h zDDbWk`qrL&FRY~S3O3BQVbq4B>^-qJ(4jZf?Wj92(}9Wu6({;m@_D|Jj9n#Thsk_i zBl<@0;o68%b29J2jJg?gxMN4%O2{*<7`0-i4SgF%ZCKNe)$FL)F?wjoetAns$WV?` z5Dy_r!%#uIh!~Q?m41jT5HBK1xm*t}*a(J5l&EYAr>EF8--3&#oE z&PSnNF^>Bc=vNbRr2+j0jI!~36dTX=VDy8>zb^004@M;ul|sZ)#0o+?uZ)@1m|2Z_ zH7X70vkAO%Fd^2Tz$<4?;C?3Rh3FSf;QLaFektk|=vSa$jnM}58&GExvFC|c6a8TH zGYN4WP%lKKbRyPAzXJ6N^s5PZegpaqqVgnOnN7m}(GNyHlaNOXQ7=TLl#uHc=vN~) zU`_-2!IOEl%*i|_6aB);Ru$@?Uy4{k$aAVE&w^+*D%F$ux;3ERfO-QetdQ4ag*=lL z;-gl`#|ERGiGC*fh3J<-LF%tS0iEJdt9 ztVV1=WJQ>dn2A`3Sc+JISdG|#$Yx?bVkTlCVku$;Vl`p|BD)jw5i=1B5lay(5UUXz z5ZNruN6bVlL@Y(DK&(b=KxDHqA2AcL5U~`o0H>`G}c_g^1Nl_;J;+grBW! zDIQ}>xu3a|Uu`l`x#szS@dj*v!X|lrU{ql13|m*&LSQq(mIzx<*m}X13R`RM4~*?# z3xsU|Y(rt23EK+THp2EQY&T%j!*{#KjDYXLd+*CvSVzRph#`QC`M?LWJz;ALn-^?t zVDp9zzF>i|V6eWh>0xUPTPxUj4)^_FgFjG-V|m;kHV@bWVAEi02OF>19yUHl2iSOR z18fRx9br>p>jWE*1;WO^c@P8}|HeXR*!b8kv~>l`YX`%|=MI6b2W;J7gD;Q4=j<2@ zrH$7LgN^qd4qFmz5wP*O;L8yhgD-Yq&+w%?oXb_CJ8<43ug&)%5jNf{ufgYpKf{4F z;p=-C>jjqAPJs=+NWp%Ajra5`Y<#X}*wSG84K_aK@38SXuEECl^*U_9u-$--@8ch^ z!N;-LpRn<{_+s!im%x^QmB9vsRlxFfSHXJ2!f9Z6-#XG;k=29cf2h<0EU)85)*CF( z_W?T$tS?yJZ)>o8o!gN00~-vyEm%ID|F}D!m;aDE*YPLL!EX;6@2>+`3t0G}0L<$M zmXG5tqTNkkW_y{H&0+#1@0~-vM|F9+Rm;a4@L2MJ;Cz&{70U6ycg*yWcknj@cz<>_Xe8_JRK~5?D>zySitrrJp(L1Uoye+ zdi}s=f$a~L&ub<<3oPG{0bonP4g|~3+d*I%Y!=vp!5s{i=M4eN`yI+H?AS2k*m2zCl@R~hTx|laGmo>9|1NP;v>P9f*l2x@84*!{P7+GmiJvib}ZR(VEO#x z$xZ+p1AHP_zR;7vZUT2QSYEFXEbn6qSpGOq1IUoe7rrb0^tZWM_lr{oDnX=gk4j=eZj!uQwMgzgElx+X!|(Sblw60G7}H3|Kx- zIav6gtq0(b&j#ZB2a`G9MD|&*ypQLIKMxlEXBA{$AZrK9^IjzT5?J2nR71AynhDP0Ph6Lj2gXV99U zW5!R6=Z&8mzcK#H7#R4oQ4945^$qk64GU}^+ATCWG%d7$=)lmN&{3h|LZ^q$4P6xa zKLAVO_(*!cxN0!?MDLhK&!qBWzaKqOjFrM>NmrR#U zO{Qz6gg`0MBXW3TUgVg_iIGzx?~0rsd2i%Hk&i`|M?M$%V&wM7cOpNG{3h~;$X_F` zN4AbKMD>U=M`cG%i?T&M9aRyvJ?izSs;GleN25ND`YP(js9&QzqPs*#MR$)*kIsuO zh+Z4LF8aCXts$a>2dwyvf}dNmc*@& zE023IZhPGBxP5WQ;{J$J;@iY`i|-vjC_XzrFMdq?toV8H_ryORza@TW{D<-N@s079 znpXXA|v-uOuE$ zJeBx!;*G?xq<%@$lkQBKmvm23S&}`eD(O_x)g;!_w`W?aoE(!pKiQW2Wb%gOZOKQIPbHsAR(kd5mEJ3-*O*>~y_WV`(d*$} z8++~Sb*9&~UMwX!r66Ta%8HajDet9xpK?7#PW4C)Pwko7H`SavG<9U^eW{P7K9#yL zb#v;D)B~w?so$r{X~wkfX<2E5({j=#r_D&4m$p1@W7?}}Z>AkdJCSxS?enzY-Z8!B z^nRdsW$&+g`vqpFf0KSay-lA^eM0+m?=zs!gg(>y%zq|kP{^kAc{ZI7wH;0*fo0pq6 znqM@3U_N8MWd6adW_e_VWSO!Gvesw4mUSx2bAV|;*?`vuyg#5}fak#Afnfuq20l1& z^}uTbwLw0EdJGygD1XrGLGuQc4O%nk$w8Hast27Ibb8R|gDwsFWsquVXX$AfZkcMC zXIXA}$g;swWjSg&Wofi{3~oEP%iy_#pBQ{`FdL!`@f>0qa_^8=hkQ2V%8zRdX{ z=a-yoIqwGjnWN@<bL-X#+dp6IWw=Hj1-dlO^WT zDDShphP=ypzvr=hef}bTv&E*Ie=SI6rxXRQm!AT@*6m<7kfj^iaQ-AA|EU$ugC{ac z(#-*$DI4K-82*Bt97Z;RY$Vxevaw|2$#y53NVX^0USw0r_9okhYzEnWWX)s;kR3#J zu&~Ndve~5Pkj*1Ig6t@=W5|vrJ6>32BJs&&r;xRholf=+VU?N0XA!@P_}ygZkzGJ` zA=!J#E+)H_?7d`{lU+g9M)m=+tH?e?b~V{GWFI5@IN2x3t|R*l+4W>Ml6_WK<$2

    v0(!Dq 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�bLJ+FE})%k(ezp7ugK($D2sTxv^s>W1Pstu}3RF|qQQ*BahQEgRiQ|(agR_#^oQyo+tQ5{uXqdKNKuDU^W zqv|Hr&8k~ex2kSa-J!Zub(iXH)xE0wRQIb+svcB5qz$@-K@Grb*t(&)g7ukRd=cGR^6+* zPj$cQr0PM{L#l^WkEkA1J*IkG^@Qq4)l;gcRnMrNQ$4SGLDl(@*1xJ>wLrBqQBOH`MtE>mq%ZBcDiZBy+~?N;qo?Nc389Z?-sU86dt zIbQ{ADuQ+1c>Zq>c2`&9RT^o zx=gi6wMDg6wN14{wOh4UwNG_WbwqVkb&cwnD!)!M_p2LJH>z$@-K@Grb*t(&)g7uk zRd=cGR^6+*Pj$cQr0PM{L#l^WkEkA1J*IkG^@Qq4)l;gcRnMrNQ$4SGLDl)O*1xJ> zwLrBqQBOH`MtE>mq%ZBcDiZBy+~?N;qo?Nc38 z9Z?-sU86dtIbQ{ADuQ+1c>Zq>c2`&9RN3?P)fUxO)i%`*)o#^Z)jrih)e+TE)itVPs^h8~R5z+_Qr)b&MRlv{ zHq{-fJ5_h7?pEEax=(e#>ZIyH)kCU>Rgb71RXwJ9T=j(NN!3%Tr&Z6Wo>M)qdO_9s zsn)-$U$sEBNVQZopxUb1rrM#}t=g;Fr#h%QqB^R&Ms-YeTy=x$M%7KKn^m`{ZdKi; zxMqsYs(V%UsqR;uR6VGANcFJl5!Iur$5fB2o=`ohdP?=Q>KWB@s^?WNs5-~B z9#s9R1*%1=rK$ndGS#4Jh3X>JO4X2RR5hlWQf*LOqPkRdnQD`2i)yQCn`(z@w`#9y zpX#9Mi0Y{78r3n?an%i~8&%EIAw2|t>M4qSns3GEpFBcZ%5{^PiG9XS{@E)zZ-9)S z_r>iKAu<1Je_IGkTz%{)!z|&R;YQM^rP{k44=kooVzw z$e16_araZqJ=NA-#{OuIy@cO+k$tXzvA?NywtxQVFHUpcKyU^*ATt z1$Y+T18boh+TbpDDb#@c6`*eT<3D(u(=ZKRhMh13Z-8Y`2O+3{QkWpFt*`@j!DrzZ zya@9@OB~Pu%iuxifJa~i*1&q$1n-9(@Eq)e0>Yj`r{P6756hpQk6w?Y)^U@0_1 z8?1mq7=@={D|{UG!hU!Gj=(WE0l$HB@E7p!^Ef4NJuHF{#GnC|LKCz?2lT=qyb;FX zY1jfg;5pa_lW+*8;OB4(&ca`)^Am6kz5_3izk{g!4N|A__uIVT!J(D?BP*QW=kW#d z<-J3WbF<5ShP{XHv_~3VySSCFy*E7MIQQKD;2q6Xp^*IsY;;chD!$@9u)KXaUl@Kz z-U|7=uCvhH&WFHxG}_(XznV|Q?soHy_mv}jk$08z{LFcKkMlKGd*`a*huh`T_Ks8K zYHz<|aIkgx;K*Go`*6-brB^S$R`PZCo(4%p>qE|qd~;sDt!};>-`>r)h&jVme`jAi zANKAY=x)ebH#FS0_)hWU{K+LrZ13*rTK(|DJwxri0|Spb&i%x=oCllzIU)A*OnNvQ zq~pBP)4sajd?5ODxaQNhd<|TZd()hDWBQFb?P_u(`5s-~GdR-D2YkExdWNFy%Li7i z8t8X^DQDUXVS%Ie)YS}8N=^;9_Y8}k{C!O&&{=%osW6$?-}{))^lDtY`$(!!SV6sVfkM1 z&*fXuon3uBd^WkKvwPXfuA$DMC-0y!3_G8gbKmNop(lA1zd}B0%{Srikgv~EpU=2S zSIf%fj~WAq`kzUs4Tuj#J73K))zoABr1-V30JQLh=f%S$zDLfSyYFni_s(UJux*om zFKyT~;&`yC zbY7s3KdKjxdD``CAdkc>f7JN`X&CKZ`LOig?VNY^@riI}7iX&n2dVLAIUAHOpgTJ` z>l=6ivyX9Ry?m6j&c4CkPUl+h$bhx|cHXLKkhhh$y=f0S`X#Fa-gey1u1cy^_Z_78FsGrj;tD7K`U}@ z@UG^I+auV$FVE_lycL`bJEOE6TRRKIHG_lW%#~8)f5-Xmoc2LmDc|SJREo2TlIh`l z84y~@ky+0nkdAoej{hL7@duh8k4Q#jGwmT z8z@Wjw$20nPps_k)*+w{+R{wTSvHUz zHn6`_?4`5wEp>*NVaK^bOztrsEtj4yuL|Mrai{%`fuSXRefRL?cgMWg)6!p1clhSEWgqk1jxVwf_!96BtxiG*ZyTL?HSay$;yAl;J=ly{i_6)K zPTr55&+Y7H#TDZE#C@7x*gx$!+kTId#v^}r zoD(-Y&L$`lyD)B`0h+ERJ!51PyAxdR{v-A`a=r+=a?*d3ki>Sb<+j3vq_fBI4YH zSqDrK=NZ^0VWcoGbUV&`w=-ExU6r_x8omVIf*-@L;dkKs zipN<9w?Y!`hKJx0SPkRw9@qxE;mhzHH~}xhpCEsdFyI!5!BS|2P8fhU!3KB+J`6kI zbMRF-3_pTj!x{J^c)sd!=D|XE351~zUJdQ=D2&3};63nBcn-b%F1Q~$p&#A^>){#rAbbM$!U6a;`~-dpzXQ+LNTVY! zGtO~5PM+g+e7wDw@62`PIR#FkGv8U@6gkCCiF1Wh>Rjnuo16;gCC*FfOpBaboLiljIhD@Ko!gw->GxGM--r`+s+}6A)`>ZBC*dTW zl#_PqoO-9hSBhI6IDSQ=Q2Or?0@sIHparwIV zYR1ARoKfdVzIbon%42ORXUp0yl|vQo3SgPhYp146p98XMIdHlCexG&S zGADMyX|JSsW@>CTi&%B`L~qZKNo0HH$Y5vx%H`s|T`JL@NNr@xnj0TkO&S*iW}RqG z2WOnKS{|Vww20fgSFaj0&U+qP-DyM2CZqjf8yB@;R@f#%?Od&pwTc8R=b5^Z3v&ae z7IMB^ZV@sr#b8zEuxS(GcxC^JfsCD5nq)3!Rg}1#$sQLoX_t!un|e-H4`$mxH+sW8 z+`CFjSZT`wQErU%dZx0loM|Imtj1TSS+@7FU>V`w%J`DzWKMEhO*q)oxS6R4X%<}r19G2gZMa@8wa1IgS%Vch$rBGb?XX?0`&K^OJ2ER$ zV|tOVe%7KUa(v`uUYuU!GAB1;J5!+MDmOJlolnfP7%r#)6Nf!rnK@_GnRBYfc3mqe zqO0`rZnAYkA7POz#`wx6Zs3<2#U1GzOdGBCSEjSS>g3wJy@g*q~jQ{Y5ooSKo9Kyyl)wR~>d%Z!y~ z2g9uWrC3JI{eYZ3nJEJqw%WURhg-60F3e^~_G+c+Va9@$dvDf!z+}vr^K$s3y!M{8 znn}H}wnfDh{D0Bk?oYdl#zO9*hEKVQc0cDbd%`Zq@v za1MS4+|qctz2G|=j@Jd;I(g>+w?bZSy}bN-#LG`TyjMUe+ypnnBDe)^g_l7kyc}+W z+o1+(Aq8ougL-I$J76ii61dIsa*O5V_RaemXoc6pL(m38@K$&id=|a{Uxg|7J{*M~ zzz^XV{1|=$KZWD)Gx#~2gx|vj_%r+$un_g;!9utOu7g^rgL-IyJK!F;7hVlba33_o z{m=prz=QA_Xoc6pL(l~eLof8fD(Hs+7=*`Q2!`Qr;7#ym_*+;DZ-EJT1~$V-U^{#i zo`qfT53mR3fC{(=?uE}mlsr}gkD0s)NWo$lfz|LhJOQKdB)k#Uz!*FQ ze+Tb@_rexF1MhHU$qEHQSNI(*n zz@2axyaHYYcf&GZ%fQR_gO}|G?*s54tb+~kHh4R{12)1tf!lQNCU`eYz%#HJ{tn&) z?}g96VfYdJ7S6!G!&&$bI0wIj|AarnpWrXxBJUnx>%+^#Id2WbAPH%BC%hlF!Uy3) zunl&=$Kd1e3D^mL51)ij!E^9w*bUEvm$IA-0ayrSz}A76tqJeVum~#QU1^bW%atcEdoJA4p62D{)>up6F-J@6U$ zEPM|3!RO%%a1?$3KZGB_&*0~90)7p@fz$A3_%E1G8D9fs@H*&#PUwb5U>HVVH9QGx z;Vtla_#*6wFTq#f033vG!M9-=ehI&VU&ARl4}SnRW$uF#xB>2l*FhU}z;ft@N8las zG`tJ;KqKkC8W zYvC<04(nh&yc5`3^S%o zf)nry_-FVR_znCk{2R=neX$7h=EFQFfI^rL3xKUc?-fuASHe|rH3Z;VD1+-E2sc7G zyad?h^}Y-$;pK1}+zuhAf<{;Zcfwup3RnuSgjc~bcs;xU+MyGAU75FUdK@HTh{Y=nPt?VPd&%+nsi?AQQ3}1ms_$nNLe}seZHFyEO4u{|y@J;v@`~-dq z$Khx2&u|ic3BQ6b!S~@P`~ZFkKZ0ZMWB57z6P$owz%(3&Z^L)syKn@)2UGBC_!syM z{41P>7vZ;X2L2t+!a4XI{3rYY{se!9Q}A!_AMkrP4}XLU;F`mj3v(b3Jiv_x-_v4l z1u4V-{`>#G1Ux267yHSMFqTO{#$4KU=rZQ{I9Q5Z>lyaYU5<0odT>&m!^1tRy850B zj;`wKA5NFA9_mjFvpdSR*vnU~Ts|}~Jg{Qq<-A{z=p0^k+v8Q`L7ud)T+uT;lKG8$ zdDU&9^18yg!C;CXbPtcbl1;S#hoMERKYR}BkL^u3LH<%hY~~P4Pj}PM%Ex&y_i)c} z)-u=n&QZL|UfMF*YzdkzmvnjO@GJWt=a=- zPyN|?C+M&@&m*qT_RxXQ*-&}aMAg}<=I})LK=^Dp92tsik4#6(qg~O7Xi0Tr^-%Tp z>gno|n&z5`8h7nP?Vj4{+LG8rY&upFZ;Wq`PsQDd#>7NoD&bBxCf6q2sfkoLJ(S*) zF0Y%Yo2WlfPh>Q#C5SuJ71|SWS2b51sB(wP!;Rst@N~F5vL|vj(j1lW*2WLS%M<0v z>127TE44i}ohnbSO_$Vl)jJIi&oCTkduY0idLC++_{&4hp$YQbRW%fuAl513Eg_#%QFnD$^#RT0 zfts_43F4nlZBI`SP6^=Q6~~zlb%pm(PE(OC{FPTvRj;Ka!tt~5#>Do-P;zZ* zZF)N0ST|j_y`G05JXeu?ZztBbS8XNNC6Tp}v(Yf6>aJ<5*!L&(31Kbe z7*3u|Hm1&|rqXNcrs|sOw@a;=o*6^BsI_v+FC1P=+P6oiNyGN)azZMvJy1Il>xwtx ze=WYt>xQKCH`#J)HvaZh4TUEnlJ0QLo|++iOxHHYreX*1wKf?xd7jpiBhTBcUui36 zLqk=~1Iluht*Q;PI+iLR1zK%A2m}o zduoSb+v97KC8lnN(%aMFI=7Ur<4p3#0MZ<4u9BKv8zb#U9G+`A&H-9nBemQ}>nKSy zC-x*tXlvUkr9ISTs+)AuhX!OZor-p0Vv=%CvrW zcx|{V;-)2?r8c(Lo~`X7u5f%PzShLlMNHDFrzq2AYGkeCjz5=aQ(;>4fpDX=MOxB< z=-Fr&wJ||nyJFj8XDOKpTGJF|yOz?OrY$$t4b|--%>+^8GHt4yelbB>n(2!rgw++D zkakV3OA-^bgfQjQNX(7mC&)ikf|L+%34Jz9dzy|k66>DoM%sXs@LOXaj8(*67QZY0 zmH3b2ZHbOVccM4Zml#Zpm|i+T3+bXn-05aoIDv&+GAvM6XG0~lt@7}6WKVQ$%>->@ zBHoyG8hAdAy}Q2Lw#6o!?q-wfY1-ltEu);4;bz>}9&M~SP&*NyN;J}o!s&_hR2_BM z;o@1P0!Sk!D7hDOyBxbPprT5aXwWIz@dB#iegHruW!(xZA~ZUB?-UlrS1})lAo{ zt=$uAj&GNNZqnw(UA30>+$iBPLQT|6kv7^@vV?Ly%lPUXv2*%Rv^lnikuOZk!qjn2 z$U7i1&UeuxN~A{-#{~HsiXEU`?MXD#3ihN*Xp7s${TZ8usAs`9Fv zt17D+tM08DsCrY?+pFGH^_i+KSADnY*Hss)Tw!1MhHynV6mAIL6}~6j9eyPI=J0#M z&xQAfzaIW|_m$!ZJ{kE-O^@2Gxv z^?R#7SpCuJXRDvD-dFvV>KCfNU469rc=gHZ)79szT{YgCf|{#pZm7AnrluxYb9YTs z&4V>P`gol)Qv58>z5zM^(n?W)=#TGp1@57jP>-4kn%y(#wY z*n4AtiFx94<3;fs<1dddj=v%P$@uR0*Wt2CE*gT0`62Q1x`x=BoEsZL9h?so7JtkGeWo_06gyRX?mcPHQ?<^Vt=jgc|h!AAP+mdJ-9J0j0Uc1J!N+0Te}DDv89d$cF|X!Nn@6VW$C zP&^us#Z&Qy_>%b2__BCYyd~ZmZ;N-tyW_p_zW88#Bt9Bn6CaC@ z$2Y_`#y7<`$G60{#<#_H#COJbQP+Fp`{MiKlktP`L-E7$Bk`m0WAWqh6Y-PrGx2lr z^YIJ3zTrvu69tK)L}?`m-T>`zQmvxgFg6Gsw96UV6I6N!_FQ;E}w^N9<*Fycx2 zlLg75WN9*xEK3HH70E@(%48@RO~#U`WJ7XEa%pl|vMJe;>_~Pedy{?1!Q@DCG`S`@ zmK;xRNN!ASN^VYWNp4MUOYTVSPVPt2 zeKdV6eLQ_4eKLJ2eL8(6eJ*`IeSueTJazuMg1Vx*(z-xhSzS|IOI>SSTU|$8cU^B? zU)^BcNZn}Nn!2&N@wyFl8|yaJZLZr=x3z9t-Hy5=bw}%t(c@3lovb@mce?IO-MPB+ zbr*QK$5ZdGFQ_l7FRc&Mm(>UBE9j+_^`ZJ`eXKrJ-%!7#ez1O|ezbl~{aF2Y{f7FD z^_%F!Tk5ygZ>!%?zq5W<{qFj`(w_(2W^EITq#_OUmZgzp^p_S!%eF{Iq?wHb(_7P5GgvcHGg`BzrnELtTUHyaP1QEkj?|9U zj@6FW9Zq*s4Nr=HH11s kYeHiohkr*(?t{hLA1VlKpvMP!*zw Date: Thu, 17 Dec 2015 23:06:31 -0600 Subject: [PATCH 035/106] changelog --- Dist/changelog.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Dist/changelog.txt b/Dist/changelog.txt index 4cdccdc01e..c29ec4871d 100644 --- a/Dist/changelog.txt +++ b/Dist/changelog.txt @@ -12,11 +12,13 @@ next **Validate user shaders at selection time **Support user custom AR selection **Add --load-state commandline +**fix --fullscreen and fullscreenOnLoad options **Streamline editing RAM Watches **Tidy main form context menu **Add more options for U+D/L+R forbid/mutex **Fix Ram Search, Ram Watch, Cheats recent file lists **Fix ffmpeg path for AV writer broken a couple of releases ago +**Remember codec selection between program sessions **Fix toolbox **Improvements to Retro shader compatibility **DispMethod D3D: Stop FP precision conflicts with lua scripts @@ -26,6 +28,7 @@ next **Fix #535 - domain list does not update when changing cores **Fix #537 - Annoyance with "always on top" **Fix #541 - Heavy CPU usage when emulation is paused +**Fix #546 - Incorrect Lua Documentation **Cheats ***Add GameShark converter for N64, GB/GBC, Saturn, GBA, PSX @@ -51,6 +54,8 @@ next **Lua **Add tons of new fonts and text rendering options **Fix gameExtraPadding coordinate translation +**Fix (or at least temporarily banish) floating point math errors when running n64 +**Add CloseEmulatorWithCode (for returning exe process return code from script) **Clarify script pause/stop state in UI and logic **Fix forms.destroyall() and call it when lua console closes **Fix error in sizing of lua draw buffers with SetGameExtraPadding (and probably ClientExtraPadding) use From f8a3dca08959371b51eeae55409f9ec7937b9262 Mon Sep 17 00:00:00 2001 From: hegyak Date: Fri, 18 Dec 2015 15:50:14 -0800 Subject: [PATCH 036/106] Correct a dumb bug in Genesis GameGenie code conversion. --- BizHawk.Client.EmuHawk/tools/GameShark.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BizHawk.Client.EmuHawk/tools/GameShark.cs b/BizHawk.Client.EmuHawk/tools/GameShark.cs index 9c5bb83c6e..6e1ea192b2 100644 --- a/BizHawk.Client.EmuHawk/tools/GameShark.cs +++ b/BizHawk.Client.EmuHawk/tools/GameShark.cs @@ -542,7 +542,7 @@ namespace BizHawk.Client.EmuHawk //This applies to the Game Genie if (txtCheat.Text.Length == 9 && txtCheat.Text.Contains("-")) { - if (txtCheat.Text.IndexOf("-") != 5) + if (txtCheat.Text.IndexOf("-") != 4) { MessageBox.Show("All Genesis Game Genie Codes need to contain a dash after the fourth character", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; From d54e53d329a440d2beb43b6729630e29782e3e17 Mon Sep 17 00:00:00 2001 From: pjgat09 Date: Sat, 19 Dec 2015 00:01:06 -0500 Subject: [PATCH 037/106] Lua forms.setproperty: Convert the passed value to an enum if applicable --- .../tools/Lua/Libraries/EmuLuaLibrary.Forms.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Forms.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Forms.cs index 6b88687cc0..e9be4da0e9 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Forms.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Forms.cs @@ -482,6 +482,10 @@ namespace BizHawk.Client.EmuHawk { if (form.Handle == ptr) { + if (form.GetType().GetProperty(property).PropertyType.IsEnum) + { + value = Enum.Parse(form.GetType().GetProperty(property).PropertyType, value.ToString(), true); + } form .GetType() .GetProperty(property) @@ -493,6 +497,10 @@ namespace BizHawk.Client.EmuHawk { if (control.Handle == ptr) { + if (control.GetType().GetProperty(property).PropertyType.IsEnum) + { + value = Enum.Parse(control.GetType().GetProperty(property).PropertyType, value.ToString(), true); + } control .GetType() .GetProperty(property) From 22143f99fb2740547c94a8bef17816c224ee5222 Mon Sep 17 00:00:00 2001 From: zeromus Date: Sat, 19 Dec 2015 05:12:22 -0600 Subject: [PATCH 038/106] work on stability of avi writing. Unfortunately, I did a half dozen things here, overlapping in complicated ways, and at least 2 of which were required to fix it: changed pinvoke wrapper of AVISaveOptions, removed ownership of pointers from codec token (simplified analysis and in principle [but not practice] determinism due to less GC involvement), changed life cycle management of codec token (irrelevant due to prior), changed functions used to allocate memory from AllocHGlobal to pinvoke HeapAlloc, made different assumptions of ownership/lifecycle of pointers accessed by AVISaveOptions. notably the pinvoke wrapper for AVISaveOptions was the last thing I fixed that sealed the deal, but I don't think it was that simple. --- BizHawk.Client.EmuHawk/AVOut/AviWriter.cs | 198 ++++++++---------- .../CustomControls/Win32.cs | 9 +- BizHawk.Client.EmuHawk/MainForm.cs | 7 + 3 files changed, 96 insertions(+), 118 deletions(-) diff --git a/BizHawk.Client.EmuHawk/AVOut/AviWriter.cs b/BizHawk.Client.EmuHawk/AVOut/AviWriter.cs index e1ebca51de..84e02d7bec 100644 --- a/BizHawk.Client.EmuHawk/AVOut/AviWriter.cs +++ b/BizHawk.Client.EmuHawk/AVOut/AviWriter.cs @@ -228,7 +228,7 @@ namespace BizHawk.Client.EmuHawk File.Delete(tempfile); tempfile = Path.ChangeExtension(tempfile, "avi"); temp.OpenFile(tempfile, temp_params, null); //lastToken); - CodecToken token = (CodecToken)temp.AcquireVideoCodecToken(hwnd.Handle); + CodecToken token = (CodecToken)temp.AcquireVideoCodecToken(hwnd.Handle, currVideoCodecToken); temp.CloseFile(); File.Delete(tempfile); return token; @@ -346,66 +346,59 @@ namespace BizHawk.Client.EmuHawk public class CodecToken : IDisposable { - ~CodecToken() - { - Dispose(); - } - public static CodecToken TakePossession(Win32.AVICOMPRESSOPTIONS comprOptions) + public void Dispose() { } + private CodecToken() { } + private Win32.AVICOMPRESSOPTIONS comprOptions; + public string codec; + public byte[] Format = new byte[0]; + public byte[] Parms = new byte[0]; + + public static CodecToken CreateFromAVICOMPRESSOPTIONS(ref Win32.AVICOMPRESSOPTIONS opts) { CodecToken ret = new CodecToken(); - ret.allocated = true; - ret.comprOptions = comprOptions; - ret.codec = Win32.decode_mmioFOURCC(comprOptions.fccHandler); + ret.comprOptions = opts; + ret.codec = Win32.decode_mmioFOURCC(opts.fccHandler); + ret.Format = new byte[opts.cbFormat]; + ret.Parms = new byte[opts.cbParms]; + if(opts.lpFormat != 0) Marshal.Copy(new IntPtr(opts.lpFormat), ret.Format, 0, opts.cbFormat); + if (opts.lpParms != 0) Marshal.Copy(new IntPtr(opts.lpParms), ret.Parms, 0, opts.cbParms); + return ret; } - private CodecToken() { } - public Win32.AVICOMPRESSOPTIONS comprOptions; - public string codec; - ///

    - /// true if data was allocated by AviSaveOptions and should be freed by AVISaveOptionsFree - /// - bool allocated = false; - /// - /// true if data was allocated by AllocHGlobal and should be freed by FreeHGlobal - /// - bool marshaled = false; - public void Dispose() + + + [DllImport("kernel32.dll", SetLastError = true)] + public static extern bool HeapFree(IntPtr hHeap, uint dwFlags, int lpMem); + [DllImport("kernel32.dll", SetLastError = true)] + public static extern IntPtr GetProcessHeap(); + [DllImport("kernel32.dll", SetLastError = false)] + public static extern IntPtr HeapAlloc(IntPtr hHeap, uint dwFlags, int dwBytes); + + public static void DeallocateAVICOMPRESSOPTIONS(ref Win32.AVICOMPRESSOPTIONS opts) { - if (allocated) - { - IntPtr[] infPtrs = new IntPtr[1]; - IntPtr mem; - - // alloc unmanaged memory - mem = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Win32.AVICOMPRESSOPTIONS))); - infPtrs[0] = mem; - - // copy from managed structure to unmanaged memory - Marshal.StructureToPtr(comprOptions, mem, false); - - Win32.AVISaveOptionsFree(1, infPtrs); - Marshal.FreeHGlobal(mem); - - codec = null; - comprOptions = new Win32.AVICOMPRESSOPTIONS(); - allocated = false; - } - if (marshaled) - { - IntPtr p; - p = (IntPtr)comprOptions.lpFormat; - if (p != IntPtr.Zero) - Marshal.FreeHGlobal(p); - p = (IntPtr)comprOptions.lpParms; - if (p != IntPtr.Zero) - Marshal.FreeHGlobal(p); - - codec = null; - comprOptions = new Win32.AVICOMPRESSOPTIONS(); - marshaled = false; - } + //test: increase stability by never freeing anything, ever + //if (opts.lpParms != 0) CodecToken.HeapFree(CodecToken.GetProcessHeap(), 0, opts.lpParms); + //if (opts.lpFormat != 0) CodecToken.HeapFree(CodecToken.GetProcessHeap(), 0, opts.lpFormat); + opts.lpParms = 0; + opts.lpFormat = 0; } + + public void AllocateToAVICOMPRESSOPTIONS(ref Win32.AVICOMPRESSOPTIONS opts) + { + opts = comprOptions; + if (opts.cbParms != 0) + { + opts.lpParms = HeapAlloc(GetProcessHeap(), 0, opts.cbParms).ToInt32(); + Marshal.Copy(Parms, 0, new IntPtr(opts.lpParms), opts.cbParms); + } + if (opts.cbFormat != 0) + { + opts.lpFormat = HeapAlloc(GetProcessHeap(), 0, opts.cbFormat).ToInt32(); + Marshal.Copy(Format, 0, new IntPtr(opts.lpFormat), opts.cbFormat); + } + } + byte[] SerializeToByteArray() { var m = new MemoryStream(); @@ -422,17 +415,8 @@ namespace BizHawk.Client.EmuHawk //b.Write(comprOptions.lpParms); b.Write(comprOptions.cbParms); b.Write(comprOptions.dwInterleaveEvery); - - // make opaque copies of the unmanaged structs pointed to - byte[] Format = new byte[comprOptions.cbFormat]; - byte[] Params = new byte[comprOptions.cbParms]; - if (comprOptions.lpFormat != 0) - Marshal.Copy(new IntPtr(comprOptions.lpFormat), Format, 0, Format.Length); - if (comprOptions.lpParms != 0) - Marshal.Copy(new IntPtr(comprOptions.lpParms), Params, 0, Params.Length); - b.Write(Format); - b.Write(Params); + b.Write(Parms); b.Close(); return m.ToArray(); } @@ -445,7 +429,7 @@ namespace BizHawk.Client.EmuHawk Win32.AVICOMPRESSOPTIONS comprOptions = new Win32.AVICOMPRESSOPTIONS(); byte[] Format; - byte[] Params; + byte[] Parms; try { @@ -463,7 +447,7 @@ namespace BizHawk.Client.EmuHawk comprOptions.dwInterleaveEvery = b.ReadInt32(); Format = b.ReadBytes(comprOptions.cbFormat); - Params = b.ReadBytes(comprOptions.cbParms); + Parms = b.ReadBytes(comprOptions.cbParms); } catch (IOException) { @@ -475,27 +459,10 @@ namespace BizHawk.Client.EmuHawk b.Close(); } - // create unmanaged copies of Format, Params - if (comprOptions.cbFormat != 0) - { - IntPtr lpFormat = Marshal.AllocHGlobal(comprOptions.cbFormat); - Marshal.Copy(Format, 0, lpFormat, comprOptions.cbFormat); - comprOptions.lpFormat = (int)lpFormat; - } - else - comprOptions.lpFormat = (int)IntPtr.Zero; - if (comprOptions.cbParms != 0) - { - IntPtr lpParms = Marshal.AllocHGlobal(comprOptions.cbParms); - Marshal.Copy(Params, 0, lpParms, comprOptions.cbParms); - comprOptions.lpParms = (int)lpParms; - } - else - comprOptions.lpParms = (int)IntPtr.Zero; - CodecToken ret = new CodecToken(); - ret.marshaled = true; ret.comprOptions = comprOptions; + ret.Format = Format; + ret.Parms = Parms; ret.codec = Win32.decode_mmioFOURCC(comprOptions.fccHandler); return ret; } @@ -573,23 +540,15 @@ namespace BizHawk.Client.EmuHawk public long GetLengthApproximation() { return outStatus.video_bytes + outStatus.audio_bytes; } - static int AVISaveOptions(IntPtr stream, ref Win32.AVICOMPRESSOPTIONS opts, IntPtr owner) + static unsafe int AVISaveOptions(IntPtr stream, ref Win32.AVICOMPRESSOPTIONS opts, IntPtr owner) { - IntPtr mem = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Win32.AVICOMPRESSOPTIONS))); - - Marshal.StructureToPtr(opts, mem, false); - - IntPtr[] streams = new[] { stream }; - IntPtr[] infPtrs = new[] { mem }; - - int ret = Win32.AVISaveOptions(owner, 0, 1, streams, infPtrs); - - if (ret == 1) - opts = (Win32.AVICOMPRESSOPTIONS)Marshal.PtrToStructure(mem, typeof(Win32.AVICOMPRESSOPTIONS)); - - Marshal.FreeHGlobal(mem); - - return ret; + fixed (Win32.AVICOMPRESSOPTIONS* _popts = &opts) + { + IntPtr* pStream = &stream; + Win32.AVICOMPRESSOPTIONS* popts = _popts; + Win32.AVICOMPRESSOPTIONS** ppopts = &popts; + return Win32.AVISaveOptions(owner, 0, 1, (void*)pStream, (void*)ppopts); + } } Parameters parameters; @@ -641,28 +600,40 @@ namespace BizHawk.Client.EmuHawk IsOpen = true; } + /// /// Acquires a video codec configuration from the user /// - public IDisposable AcquireVideoCodecToken(IntPtr hwnd) + public IDisposable AcquireVideoCodecToken(IntPtr hwnd, CodecToken lastCodecToken) { if (!IsOpen) throw new InvalidOperationException("File must be opened before acquiring a codec token (or else the stream formats wouldnt be known)"); + if (lastCodecToken != null) + currVideoCodecToken = lastCodecToken; + //encoder params Win32.AVICOMPRESSOPTIONS comprOptions = new Win32.AVICOMPRESSOPTIONS(); if (currVideoCodecToken != null) { - comprOptions = currVideoCodecToken.comprOptions; - } - else if (!string.IsNullOrEmpty(Global.Config.AVICodecToken)) - { - comprOptions = CodecToken.DeSerialize(Global.Config.AVICodecToken).comprOptions; + currVideoCodecToken.AllocateToAVICOMPRESSOPTIONS(ref comprOptions); } - if (AVISaveOptions(pAviRawVideoStream, ref comprOptions, hwnd) != 0) + bool result = AVISaveOptions(pAviRawVideoStream, ref comprOptions, hwnd) != 0; + CodecToken ret = CodecToken.CreateFromAVICOMPRESSOPTIONS(ref comprOptions); + + //so, AVISaveOptions may have changed some of the pointers + //if it changed the pointers, did it it free the old ones? we don't know + //let's assume it frees them. if we're wrong, we leak. if we assume otherwise and we're wrong, we may crash. + //so that means any pointers that come in here are either + //1. ones we allocated a minute ago + //2. ones VFW allocated + //guess what? doesn't matter. We'll free them all ourselves. + CodecToken.DeallocateAVICOMPRESSOPTIONS(ref comprOptions); + + + if(result) { - CodecToken ret = CodecToken.TakePossession(comprOptions); - // save to config as well + // save to config and return it Global.Config.AVICodecToken = ret.Serialize(); return ret; } @@ -679,7 +650,12 @@ namespace BizHawk.Client.EmuHawk throw new InvalidOperationException("set a video codec token before opening the streams!"); //open compressed video stream - if (Win32.FAILED(Win32.AVIMakeCompressedStream(out pAviCompressedVideoStream, pAviRawVideoStream, ref currVideoCodecToken.comprOptions, IntPtr.Zero))) + Win32.AVICOMPRESSOPTIONS opts = new Win32.AVICOMPRESSOPTIONS(); + currVideoCodecToken.AllocateToAVICOMPRESSOPTIONS(ref opts); + bool failed = Win32.FAILED(Win32.AVIMakeCompressedStream(out pAviCompressedVideoStream, pAviRawVideoStream, ref opts, IntPtr.Zero)); + CodecToken.DeallocateAVICOMPRESSOPTIONS(ref opts); + + if(failed) { CloseStreams(); throw new InvalidOperationException("Failed making compressed video stream"); diff --git a/BizHawk.Client.EmuHawk/CustomControls/Win32.cs b/BizHawk.Client.EmuHawk/CustomControls/Win32.cs index d1ebb963b5..9e734d75eb 100644 --- a/BizHawk.Client.EmuHawk/CustomControls/Win32.cs +++ b/BizHawk.Client.EmuHawk/CustomControls/Win32.cs @@ -7,7 +7,7 @@ using Microsoft.Win32.SafeHandles; namespace BizHawk.Client.EmuHawk { - public static class Win32 + public unsafe static class Win32 { public static bool Is64BitProcess { get { return (IntPtr.Size == 8); } } public static bool Is64BitOperatingSystem { get { return Is64BitProcess || InternalCheckIsWow64(); } } @@ -386,12 +386,7 @@ namespace BizHawk.Client.EmuHawk // Retrieve the save options for a file and returns them in a buffer [DllImport("avifil32.dll")] - public static extern int AVISaveOptions( - IntPtr hwnd, - int flags, - int streams, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] IntPtr[] ppavi, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] IntPtr[] plpOptions); + public static extern int AVISaveOptions(IntPtr hwnd, int flags, int streams, void* ppAvi, void* plpOptions); // Free the resources allocated by the AVISaveOptions function [DllImport("avifil32.dll")] diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 88a8460200..ba7be1d47a 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -2925,6 +2925,8 @@ namespace BizHawk.Client.EmuHawk try { + bool usingAvi = aw is AviWriter; //SO GROSS! + if (_dumpaudiosync) { aw = new VideoStretcher(aw); @@ -2954,6 +2956,11 @@ namespace BizHawk.Client.EmuHawk } else { + //THIS IS REALLY SLOPPY! + //PLEASE REDO ME TO NOT CARE WHICH AVWRITER IS USED! + if(usingAvi && !string.IsNullOrEmpty(Global.Config.AVICodecToken)) + aw.SetDefaultVideoCodecToken(); + var token = aw.AcquireVideoCodecToken(this); if (token == null) { From 250bc38a564c7e66b49623c74c1ae98760d74974 Mon Sep 17 00:00:00 2001 From: feos Date: Sat, 19 Dec 2015 19:03:51 +0300 Subject: [PATCH 039/106] changelog updates --- Dist/changelog.txt | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/Dist/changelog.txt b/Dist/changelog.txt index c29ec4871d..adcc8841cf 100644 --- a/Dist/changelog.txt +++ b/Dist/changelog.txt @@ -12,12 +12,13 @@ next **Validate user shaders at selection time **Support user custom AR selection **Add --load-state commandline -**fix --fullscreen and fullscreenOnLoad options +**Fix --fullscreen and fullscreenOnLoad options **Streamline editing RAM Watches **Tidy main form context menu **Add more options for U+D/L+R forbid/mutex **Fix Ram Search, Ram Watch, Cheats recent file lists **Fix ffmpeg path for AV writer broken a couple of releases ago +**Add menu command to record avi skipping av writer selection **Remember codec selection between program sessions **Fix toolbox **Improvements to Retro shader compatibility @@ -35,30 +36,43 @@ next ***Add Action Replay converter for SMS, SNES, Genesis, GBA ***Add Game Genie converter for Genesis, SNES, GG, NES -**Tastudio (TODO - feos adelikat write about it) -***Color stated frames on WasLag too. -***Don't truncate LagLog if the branch's one is shorter, but input is the same. -***Clean up garbage lua text and drawings. -***Put branch states to a separate greenzone file. -***TSM never actually uses currentBranch, so why should it have it? -***Last preparation before new tasproject entry. -***Save/load TasSession variables in .tasproj. -***Update RowCount before scrolling to frame. -***Account for mouse speed when advancing/rewinding. +**Tastudio +***Color stated frames on WasLag too +***Don't truncate LagLog if the branch's one is shorter, but input is the same +***Clean up garbage lua text and drawings in branches +***Default scroll speed to 3 +***Put branch states to a separate greenzone file +***Save/load TasSession variables (current frame and branch) in .tasproj +***Fix scrolling when loading a branch +***Account for mouse speed when advancing/rewinding ***Fix ALT+ hotkeys +***Update columns on every file load +***ScreenshotControl tweaks and fixes +***UserText in branches, available from lua and menu, is printed in ScreenshotControl +***Add GUI buttons to branch view and marker view +***Rightclick selects rows in branch and marker views +***Hotkeys and shortcuts for input view and branch view +***Add seeking progressbar +***Saving progressbar reports progress gradually +***Allow going to frame 0 for savestate-anchored movies +***Fix #515 - Save and load column settings in projects +***Fix #520 - An item with the same key has already been added +***Fix #504 - TAStudio opened several thousand Set Markers dialogs **Basic Bot ***Monospaced input display ***Get smarter **Lua -**Add tons of new fonts and text rendering options +**Add two new fonts (gens/snes9x and fceux) and text rendering options **Fix gameExtraPadding coordinate translation **Fix (or at least temporarily banish) floating point math errors when running n64 **Add CloseEmulatorWithCode (for returning exe process return code from script) **Clarify script pause/stop state in UI and logic +**Autoload recent scripts (unless there's a recent session to autoload) **Fix forms.destroyall() and call it when lua console closes **Fix error in sizing of lua draw buffers with SetGameExtraPadding (and probably ClientExtraPadding) use +**Fix #538 - Ability to pass memory domain to memory read/write functions *PSX **Fix #530 "AV Resizing shows black screen with PSX" @@ -69,7 +83,7 @@ next **Build dlls without msvcrt14 dependencies (to run on more systems) *Genesis -**Fix missing scrollbars in VDP viewer +**Add missing scrollbars in VDP viewer **Fix #543 (support up to 32MB roms) ========================================= From 260ad45a88f3ddcb0ed329b786cb54001800dfd1 Mon Sep 17 00:00:00 2001 From: zeromus Date: Sat, 19 Dec 2015 21:14:00 -0600 Subject: [PATCH 040/106] fix lua's reboot_core function... maybe --- .../tools/Lua/Libraries/EmuLuaLibrary.Client.cs | 3 +++ BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs | 3 ++- BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs | 2 ++ BizHawk.Client.EmuHawk/tools/ToolManager.cs | 5 +++++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Client.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Client.cs index 4b7b7e52ae..97488bf4ac 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Client.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Client.cs @@ -312,7 +312,10 @@ namespace BizHawk.Client.EmuHawk )] public static void RebootCore() { + //pretty hacky.. we dont want a lua script to be able to restart itself by rebooting the core + ((LuaConsole)GlobalWin.Tools.Get()).IsRebootingCore = true; GlobalWin.MainForm.RebootCore(); + ((LuaConsole)GlobalWin.Tools.Get()).IsRebootingCore = false; } [LuaMethodAttributes( diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs index ab48b62381..4bf4f196cd 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.cs @@ -144,7 +144,8 @@ namespace BizHawk.Client.EmuHawk public Lua SpawnCoroutine(string file) { var lua = _lua.NewThread(); - var main = lua.LoadString(File.ReadAllText(file), "main"); + var content = File.ReadAllText(file); + var main = lua.LoadString(content, "main"); lua.Push(main); // push main function on to stack for subsequent resuming return lua; } diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs index f65226a2b7..aa355b3a16 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs @@ -27,6 +27,8 @@ namespace BizHawk.Client.EmuHawk private List _consoleCommandHistory = new List(); private int _consoleCommandHistoryIndex = -1; + public bool IsRebootingCore; + public LuaConsole() { _sortReverse = false; diff --git a/BizHawk.Client.EmuHawk/tools/ToolManager.cs b/BizHawk.Client.EmuHawk/tools/ToolManager.cs index 8687179ae5..195fe65b2e 100644 --- a/BizHawk.Client.EmuHawk/tools/ToolManager.cs +++ b/BizHawk.Client.EmuHawk/tools/ToolManager.cs @@ -441,7 +441,12 @@ namespace BizHawk.Client.EmuHawk if (ServiceInjector.IsAvailable(Global.Emulator.ServiceProvider, tool.GetType())) { ServiceInjector.UpdateServices(Global.Emulator.ServiceProvider, tool); + bool restartTool = false; if ((tool.IsHandleCreated && !tool.IsDisposed) || tool is RamWatch) // Hack for Ram Watch - in display watches mode it wants to keep running even closed, it will handle disposed logic + restartTool = true; + if (tool is LuaConsole && ((LuaConsole)tool).IsRebootingCore) + restartTool = false; + if(restartTool) { tool.Restart(); } From 84428afc58e0cd08ed1bfdc31ec58f55a6a9e49f Mon Sep 17 00:00:00 2001 From: pjgat09 Date: Sat, 19 Dec 2015 22:14:49 -0500 Subject: [PATCH 041/106] Lua forms textbox: Ctrl+A now selects all text --- BizHawk.Client.EmuHawk/tools/Lua/LuaTextBox.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaTextBox.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaTextBox.cs index 971f29157c..a194a42ba5 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaTextBox.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaTextBox.cs @@ -64,6 +64,10 @@ namespace BizHawk.Client.EmuHawk break; } } + else if (e.KeyData == (Keys.Control | Keys.A)) + { + base.SelectAll(); + } else { base.OnKeyDown(e); From c5526a1169105f1910d7563470056f2c03619dca Mon Sep 17 00:00:00 2001 From: feos Date: Sun, 20 Dec 2015 11:57:05 +0300 Subject: [PATCH 042/106] Fix #134 - Option to turn off "savestate every frame" for bsnes Warning text: "Guarantee deterministic emulation by savestating every frame. Don't TAS without it! Only ~75% of runs sync without it, but speed boost is ~30%." --- .../config/SNES/SNESOptions.Designer.cs | 46 ++++++-- .../config/SNES/SNESOptions.cs | 111 ++++++++++-------- .../Consoles/Nintendo/SNES/LibsnesCore.cs | 9 +- 3 files changed, 105 insertions(+), 61 deletions(-) diff --git a/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.Designer.cs b/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.Designer.cs index 72a0cdf142..5db62f8058 100644 --- a/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.Designer.cs +++ b/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.Designer.cs @@ -32,20 +32,22 @@ this.btnCancel = new System.Windows.Forms.Button(); this.rbCompatibility = new System.Windows.Forms.RadioButton(); this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.label2 = new System.Windows.Forms.Label(); this.rbAccuracy = new System.Windows.Forms.RadioButton(); this.rbPerformance = new System.Windows.Forms.RadioButton(); this.cbRingbuf = new System.Windows.Forms.CheckBox(); this.label1 = new System.Windows.Forms.Label(); this.cbDoubleSize = new System.Windows.Forms.CheckBox(); this.lblDoubleSize = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); + this.cbForceDeterminism = new System.Windows.Forms.CheckBox(); + this.label3 = new System.Windows.Forms.Label(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // btnOk // this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnOk.Location = new System.Drawing.Point(136, 277); + this.btnOk.Location = new System.Drawing.Point(136, 344); this.btnOk.Name = "btnOk"; this.btnOk.Size = new System.Drawing.Size(75, 23); this.btnOk.TabIndex = 0; @@ -57,7 +59,7 @@ // this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(217, 277); + this.btnCancel.Location = new System.Drawing.Point(217, 344); this.btnCancel.Name = "btnCancel"; this.btnCancel.Size = new System.Drawing.Size(75, 23); this.btnCancel.TabIndex = 1; @@ -89,6 +91,14 @@ this.groupBox1.TabStop = false; this.groupBox1.Text = "Core Selection"; // + // label2 + // + this.label2.Location = new System.Drawing.Point(72, 85); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(136, 21); + this.label2.TabIndex = 8; + this.label2.Text = "NOT SUPPORTED YET!"; + // // rbAccuracy // this.rbAccuracy.AutoSize = true; @@ -152,13 +162,25 @@ "orce the SNES output to stay double-size always. NOTE: The Accuracy core runs as" + " if this is selected.\r\n"; // - // label2 + // cbForceDeterminism // - this.label2.Location = new System.Drawing.Point(72, 85); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(136, 21); - this.label2.TabIndex = 8; - this.label2.Text = "NOT SUPPORTED YET!"; + this.cbForceDeterminism.AutoSize = true; + this.cbForceDeterminism.Location = new System.Drawing.Point(19, 271); + this.cbForceDeterminism.Name = "cbForceDeterminism"; + this.cbForceDeterminism.Size = new System.Drawing.Size(113, 17); + this.cbForceDeterminism.TabIndex = 8; + this.cbForceDeterminism.Text = "Force Determinism"; + this.cbForceDeterminism.UseVisualStyleBackColor = true; + this.cbForceDeterminism.CheckedChanged += new System.EventHandler(this.cbForceDeterminism_CheckedChanged); + // + // label3 + // + this.label3.Location = new System.Drawing.Point(38, 295); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(251, 41); + this.label3.TabIndex = 9; + this.label3.Text = "Guarantee deterministic emulation by savestating every frame. Don\'t TAS without i" + + "t! Only ~75% of runs sync without it, but speed boost is ~30%."; // // SNESOptions // @@ -166,7 +188,9 @@ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(304, 312); + this.ClientSize = new System.Drawing.Size(304, 379); + this.Controls.Add(this.label3); + this.Controls.Add(this.cbForceDeterminism); this.Controls.Add(this.lblDoubleSize); this.Controls.Add(this.cbDoubleSize); this.Controls.Add(this.label1); @@ -202,5 +226,7 @@ private System.Windows.Forms.Label lblDoubleSize; private System.Windows.Forms.RadioButton rbAccuracy; private System.Windows.Forms.Label label2; + private System.Windows.Forms.CheckBox cbForceDeterminism; + private System.Windows.Forms.Label label3; } } \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs b/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs index 4377e2a537..28eca0c90f 100644 --- a/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs +++ b/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs @@ -15,6 +15,35 @@ namespace BizHawk.Client.EmuHawk bool SuppressDoubleSize; bool UserDoubleSizeOption; + public static void DoSettingsDialog(IWin32Window owner) + { + var s = ((LibsnesCore)Global.Emulator).GetSettings(); + var ss = ((LibsnesCore)Global.Emulator).GetSyncSettings(); + var dlg = new SNESOptions + { + UseRingBuffer = s.UseRingBuffer, + AlwaysDoubleSize = s.AlwaysDoubleSize, + ForceDeterminism = s.ForceDeterminism, + Profile = ss.Profile + }; + + var result = dlg.ShowDialog(owner); + if (result == DialogResult.OK) + { + s.UseRingBuffer = dlg.UseRingBuffer; + s.AlwaysDoubleSize = dlg.AlwaysDoubleSize; + s.ForceDeterminism = dlg.ForceDeterminism; + ss.Profile = dlg.Profile; + GlobalWin.MainForm.PutCoreSettings(s); + GlobalWin.MainForm.PutCoreSyncSettings(ss); + } + } + + private void SNESOptions_Load(object sender, EventArgs e) + { + rbAccuracy.Visible = VersionInfo.DeveloperBuild; + } + public string Profile { get @@ -45,6 +74,39 @@ namespace BizHawk.Client.EmuHawk set { UserDoubleSizeOption = value; RefreshDoubleSizeOption(); } } + public bool ForceDeterminism + { + get { return cbForceDeterminism.Checked; } + set { cbForceDeterminism.Checked = value; } + } + + void RefreshDoubleSizeOption() + { + SuppressDoubleSize = true; + if (cbDoubleSize.Enabled) + cbDoubleSize.Checked = UserDoubleSizeOption; + else cbDoubleSize.Checked = true; + SuppressDoubleSize = false; + } + + private void rbAccuracy_CheckedChanged(object sender, EventArgs e) + { + cbDoubleSize.Enabled = !rbAccuracy.Checked; + lblDoubleSize.ForeColor = cbDoubleSize.Enabled ? System.Drawing.SystemColors.ControlText : System.Drawing.SystemColors.GrayText; + RefreshDoubleSizeOption(); + } + + private void cbDoubleSize_CheckedChanged(object sender, EventArgs e) + { + if (SuppressDoubleSize) return; + UserDoubleSizeOption = cbDoubleSize.Checked; + } + + private void cbForceDeterminism_CheckedChanged(object sender, EventArgs e) + { + + } + private void btnOk_Click(object sender, EventArgs e) { DialogResult = DialogResult.OK; @@ -57,54 +119,5 @@ namespace BizHawk.Client.EmuHawk Close(); } - public static void DoSettingsDialog(IWin32Window owner) - { - var s = ((LibsnesCore)Global.Emulator).GetSettings(); - var ss = ((LibsnesCore)Global.Emulator).GetSyncSettings(); - var dlg = new SNESOptions - { - UseRingBuffer = s.UseRingBuffer, - AlwaysDoubleSize = s.AlwaysDoubleSize, - Profile = ss.Profile - }; - - var result = dlg.ShowDialog(owner); - if (result == DialogResult.OK) - { - s.UseRingBuffer = dlg.UseRingBuffer; - s.AlwaysDoubleSize = dlg.AlwaysDoubleSize; - ss.Profile = dlg.Profile; - GlobalWin.MainForm.PutCoreSettings(s); - GlobalWin.MainForm.PutCoreSyncSettings(ss); - } - } - - private void rbAccuracy_CheckedChanged(object sender, EventArgs e) - { - cbDoubleSize.Enabled = !rbAccuracy.Checked; - lblDoubleSize.ForeColor = cbDoubleSize.Enabled ? System.Drawing.SystemColors.ControlText : System.Drawing.SystemColors.GrayText; - RefreshDoubleSizeOption(); - } - - void RefreshDoubleSizeOption() - { - SuppressDoubleSize = true; - if (cbDoubleSize.Enabled) - cbDoubleSize.Checked = UserDoubleSizeOption; - else cbDoubleSize.Checked = true; - SuppressDoubleSize = false; - } - - private void cbDoubleSize_CheckedChanged(object sender, EventArgs e) - { - if (SuppressDoubleSize) return; - UserDoubleSizeOption = cbDoubleSize.Checked; - } - - private void SNESOptions_Load(object sender, EventArgs e) - { - rbAccuracy.Visible = VersionInfo.DeveloperBuild; - } - } } diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs index ad7b619b62..bb4e65571d 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs @@ -748,13 +748,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES // adelikat: Nasty hack to force new business logic. Compatibility (and Accuracy when fully supported) will ALWAYS be in deterministic mode, // a consequence is a permanent performance hit to the compatibility core // Perormance will NEVER be in deterministic mode (and the client side logic will prohibit movie recording on it) + // feos: Nasty hack to a nasty hack. Allow user disable it with a strong warning. public bool DeterministicEmulation { - get { return CurrentProfile == "Compatibility" || CurrentProfile == "Accuracy"; } + get + { + return Settings.ForceDeterminism && + (CurrentProfile == "Compatibility" || CurrentProfile == "Accuracy"); + } private set { /* Do nothing */ } } - public bool SaveRamModified { get @@ -1238,6 +1242,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES public bool UseRingBuffer = true; public bool AlwaysDoubleSize = false; + public bool ForceDeterminism = true; public string Palette = "BizHawk"; public SnesSettings Clone() From dfc139376a8b0648ca2419210aa0b0e8b2758994 Mon Sep 17 00:00:00 2001 From: zeromus Date: Sun, 20 Dec 2015 05:04:11 -0600 Subject: [PATCH 043/106] fix lua dlls on windows xp after changing to vs2015 building --- LuaInterface/Lua/src/lua514.vcxproj | 3 +++ LuaInterface/LuaInterface.sln | 2 +- References/lua51.dll | Bin 213504 -> 213504 bytes 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/LuaInterface/Lua/src/lua514.vcxproj b/LuaInterface/Lua/src/lua514.vcxproj index 33a9324ea5..536d9ff782 100644 --- a/LuaInterface/Lua/src/lua514.vcxproj +++ b/LuaInterface/Lua/src/lua514.vcxproj @@ -92,6 +92,7 @@ Level3 ProgramDatabase 4996;%(DisableSpecificWarnings) + /Zc:threadSafeInit- %(AdditionalOptions) gdi32.lib;opengl32.lib;shell32.lib;user32.lib;comctl32.lib;kernel32.lib;ws2_32.lib;psapi.lib;AdvAPI32.Lib;ole32.lib;mpr.lib;comdlg32.lib;WinSpool.Lib @@ -116,6 +117,7 @@ 4996;%(DisableSpecificWarnings) Cdecl _WINDLL;%(PreprocessorDefinitions) + /Zc:threadSafeInit- %(AdditionalOptions) .libs\luaperks.lib;gdi32.lib;opengl32.lib;shell32.lib;user32.lib;comctl32.lib;kernel32.lib;ws2_32.lib;psapi.lib;AdvAPI32.Lib;ole32.lib;mpr.lib;comdlg32.lib;WinSpool.Lib @@ -158,6 +160,7 @@ 4996;%(DisableSpecificWarnings) Cdecl LUAPERKS;_WINDLL;%(PreprocessorDefinitions) + /Zc:threadSafeInit- %(AdditionalOptions) .libs\luaperks.lib;gdi32.lib;opengl32.lib;shell32.lib;user32.lib;comctl32.lib;kernel32.lib;ws2_32.lib;psapi.lib;AdvAPI32.Lib;ole32.lib;mpr.lib;comdlg32.lib;WinSpool.Lib diff --git a/LuaInterface/LuaInterface.sln b/LuaInterface/LuaInterface.sln index 50776a5a8e..56fb380ace 100644 --- a/LuaInterface/LuaInterface.sln +++ b/LuaInterface/LuaInterface.sln @@ -1,6 +1,6 @@  Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 +# Visual Studio 2015 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua51", "Lua\src\lua514.vcxproj", "{0A82CC4C-9A27-461C-8DB0-A65AC6393748}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LuaInterface", "LuaInterface\LuaInterface.csproj", "{F55CABBB-4108-4A39-94E1-581FD46DC021}" diff --git a/References/lua51.dll b/References/lua51.dll index 4e4316442dea1fca46982e1d135108574d300808..22650d2c6f1a98e93c699e8b4c7f5a6daea4617c 100644 GIT binary patch delta 158 zcmZo@;caN)-5|lp{GqF?S(>q3nvrq4G$WH{wlz>7i~$IkfY=R)D@2(YDma-zLJTlD z9w1u;hz|he4j|;F*XJ-vf=t{#JBP`)M?mGAcIf{uA+L#Sg^BCiJ$bhO_`%d7AZQ>E jbl{>?ig)_~)s0)M->@=m@8x8k&cgg2s8OAd`KB=dZDuX^ delta 158 zcmZo@;caN)-5|lpyzgmYvovG7G$Z47X+|c^Y-^xE7y}S60kInpSBNq*RB$qbgcx9Q zJV3Sx5FY@_9YDxUug_tU1ev&fb`FzokHBdrvjhE+(|lWR-kEz*(qYH;A3vB{1O)xh i`9E+wd)I0HoB*Gi&HtSkxA$@~PiFyZROe&9X$$~FfikB6 From 23b3784123882ed434b5adcb3b904f9a9fdfa3fa Mon Sep 17 00:00:00 2001 From: feos Date: Sun, 20 Dec 2015 14:28:31 +0300 Subject: [PATCH 044/106] lua: gui.defaultTextBackground() --- .../tools/Lua/Libraries/EmuLuaLibrary.Gui.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs index 4b65078cfe..e15f452a45 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Gui.cs @@ -164,7 +164,7 @@ namespace BizHawk.Client.EmuHawk [LuaMethodAttributes( "defaultForeground", - "Sets the default foreground color to use when using drawing methods, white by default" + "Sets the default foreground color to use in drawing methods, white by default" )] public void SetDefaultForegroundColor(Color color) { @@ -173,13 +173,22 @@ namespace BizHawk.Client.EmuHawk [LuaMethodAttributes( "defaultBackground", - "Sets the default background color to use when using drawing methods, transparent by default" + "Sets the default background color to use in drawing methods, transparent by default" )] public void SetDefaultBackgroundColor(Color color) { DefaultBackground = color; } + [LuaMethodAttributes( + "defaultTextBackground", + "Sets the default backgroiund color to use in text drawing methods, half-transparent black by default" + )] + public void SetDefaultTextBackground(Color color) + { + DefaultTextBackground = color; + } + [LuaMethodAttributes( "drawBezier", "Draws a Bezier curve using the table of coordinates provided in the given color" From 538f0160d2b512551c0a7e6727d924909a2acd87 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 20 Dec 2015 11:22:24 -0500 Subject: [PATCH 045/106] Z80 - don't assume FetchMemory exists --- BizHawk.Emulation.Cores/CPUs/Z80/Z80A.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/BizHawk.Emulation.Cores/CPUs/Z80/Z80A.cs b/BizHawk.Emulation.Cores/CPUs/Z80/Z80A.cs index f16f5dfb14..6674982d86 100644 --- a/BizHawk.Emulation.Cores/CPUs/Z80/Z80A.cs +++ b/BizHawk.Emulation.Cores/CPUs/Z80/Z80A.cs @@ -56,7 +56,12 @@ namespace BizHawk.Emulation.Cores.Components.Z80 MemoryCallbacks.CallReads(addr); } - return FetchMemory(addr, true); + if (FetchMemory != null) + { + return FetchMemory(addr, true); + } + + return ReadMemory(addr); } public byte FetchMemoryWrapper(ushort addr) @@ -66,7 +71,12 @@ namespace BizHawk.Emulation.Cores.Components.Z80 MemoryCallbacks.CallReads(addr); } - return FetchMemory(addr, false); + if (FetchMemory != null) + { + return FetchMemory(addr, false); + } + + return ReadMemory(addr); } public void WriteMemoryWrapper(ushort addr, byte value) From fdc530626d7465188c439cf30eaf8b1357d7d55a Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 20 Dec 2015 11:45:39 -0500 Subject: [PATCH 046/106] Rework the ordering of the tool menu items, and make GameShark default window style "CenterParent" --- BizHawk.Client.EmuHawk/MainForm.Designer.cs | 674 ++++++------- BizHawk.Client.EmuHawk/MainForm.resx | 911 +++++++++--------- .../tools/GameShark.Designer.cs | 13 +- 3 files changed, 795 insertions(+), 803 deletions(-) diff --git a/BizHawk.Client.EmuHawk/MainForm.Designer.cs b/BizHawk.Client.EmuHawk/MainForm.Designer.cs index 4e6fde40f7..6f07dd6654 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Designer.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Designer.cs @@ -95,8 +95,8 @@ this.MovieEndStopMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.MovieEndPauseMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.AVSubMenu = new System.Windows.Forms.ToolStripMenuItem(); - this.ConfigAndRecordAVMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.RecordAVMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.ConfigAndRecordAVMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.StopAVIMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator19 = new System.Windows.Forms.ToolStripSeparator(); this.CaptureOSDMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -446,7 +446,7 @@ this.MainformMenu.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow; this.MainformMenu.Location = new System.Drawing.Point(0, 0); this.MainformMenu.Name = "MainformMenu"; - this.MainformMenu.Size = new System.Drawing.Size(470, 57); + this.MainformMenu.Size = new System.Drawing.Size(470, 61); this.MainformMenu.TabIndex = 0; this.MainformMenu.Text = "menuStrip1"; this.MainformMenu.MenuActivate += new System.EventHandler(this.MainformMenu_MenuActivate); @@ -472,7 +472,7 @@ this.toolStripSeparator4, this.ExitMenuItem}); this.FileSubMenu.Name = "FileSubMenu"; - this.FileSubMenu.Size = new System.Drawing.Size(35, 17); + this.FileSubMenu.Size = new System.Drawing.Size(37, 19); this.FileSubMenu.Text = "&File"; this.FileSubMenu.DropDownOpened += new System.EventHandler(this.FileSubMenu_DropDownOpened); // @@ -480,7 +480,7 @@ // this.OpenRomMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.OpenFile; this.OpenRomMenuItem.Name = "OpenRomMenuItem"; - this.OpenRomMenuItem.Size = new System.Drawing.Size(162, 22); + this.OpenRomMenuItem.Size = new System.Drawing.Size(159, 22); this.OpenRomMenuItem.Text = "&Open ROM"; this.OpenRomMenuItem.Click += new System.EventHandler(this.OpenRomMenuItem_Click); // @@ -490,7 +490,7 @@ this.toolStripSeparator3}); this.RecentRomSubMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; this.RecentRomSubMenu.Name = "RecentRomSubMenu"; - this.RecentRomSubMenu.Size = new System.Drawing.Size(162, 22); + this.RecentRomSubMenu.Size = new System.Drawing.Size(159, 22); this.RecentRomSubMenu.Text = "&Recent ROM"; this.RecentRomSubMenu.DropDownOpened += new System.EventHandler(this.RecentRomMenuItem_DropDownOpened); // @@ -502,7 +502,7 @@ // OpenAdvancedMenuItem // this.OpenAdvancedMenuItem.Name = "OpenAdvancedMenuItem"; - this.OpenAdvancedMenuItem.Size = new System.Drawing.Size(162, 22); + this.OpenAdvancedMenuItem.Size = new System.Drawing.Size(159, 22); this.OpenAdvancedMenuItem.Text = "Open Ad&vanced"; this.OpenAdvancedMenuItem.Click += new System.EventHandler(this.OpenAdvancedMenuItem_Click); // @@ -510,14 +510,14 @@ // this.CloseRomMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Close; this.CloseRomMenuItem.Name = "CloseRomMenuItem"; - this.CloseRomMenuItem.Size = new System.Drawing.Size(162, 22); + this.CloseRomMenuItem.Size = new System.Drawing.Size(159, 22); this.CloseRomMenuItem.Text = "&Close ROM"; this.CloseRomMenuItem.Click += new System.EventHandler(this.CloseRomMenuItem_Click); // // toolStripMenuItem1 // this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(159, 6); + this.toolStripMenuItem1.Size = new System.Drawing.Size(156, 6); // // SaveStateSubMenu // @@ -535,89 +535,89 @@ this.toolStripSeparator6, this.SaveNamedStateMenuItem}); this.SaveStateSubMenu.Name = "SaveStateSubMenu"; - this.SaveStateSubMenu.Size = new System.Drawing.Size(162, 22); + this.SaveStateSubMenu.Size = new System.Drawing.Size(159, 22); this.SaveStateSubMenu.Text = "&Save State"; this.SaveStateSubMenu.DropDownOpened += new System.EventHandler(this.SaveStateSubMenu_DropDownOpened); // // SaveState1MenuItem // this.SaveState1MenuItem.Name = "SaveState1MenuItem"; - this.SaveState1MenuItem.Size = new System.Drawing.Size(186, 22); + this.SaveState1MenuItem.Size = new System.Drawing.Size(178, 22); this.SaveState1MenuItem.Text = "1"; this.SaveState1MenuItem.Click += new System.EventHandler(this.Savestate1MenuItem_Click); // // SaveState2MenuItem // this.SaveState2MenuItem.Name = "SaveState2MenuItem"; - this.SaveState2MenuItem.Size = new System.Drawing.Size(186, 22); + this.SaveState2MenuItem.Size = new System.Drawing.Size(178, 22); this.SaveState2MenuItem.Text = "2"; this.SaveState2MenuItem.Click += new System.EventHandler(this.Savestate2MenuItem_Click); // // SaveState3MenuItem // this.SaveState3MenuItem.Name = "SaveState3MenuItem"; - this.SaveState3MenuItem.Size = new System.Drawing.Size(186, 22); + this.SaveState3MenuItem.Size = new System.Drawing.Size(178, 22); this.SaveState3MenuItem.Text = "3"; this.SaveState3MenuItem.Click += new System.EventHandler(this.Savestate3MenuItem_Click); // // SaveState4MenuItem // this.SaveState4MenuItem.Name = "SaveState4MenuItem"; - this.SaveState4MenuItem.Size = new System.Drawing.Size(186, 22); + this.SaveState4MenuItem.Size = new System.Drawing.Size(178, 22); this.SaveState4MenuItem.Text = "4"; this.SaveState4MenuItem.Click += new System.EventHandler(this.Savestate4MenuItem_Click); // // SaveState5MenuItem // this.SaveState5MenuItem.Name = "SaveState5MenuItem"; - this.SaveState5MenuItem.Size = new System.Drawing.Size(186, 22); + this.SaveState5MenuItem.Size = new System.Drawing.Size(178, 22); this.SaveState5MenuItem.Text = "5"; this.SaveState5MenuItem.Click += new System.EventHandler(this.Savestate5MenuItem_Click); // // SaveState6MenuItem // this.SaveState6MenuItem.Name = "SaveState6MenuItem"; - this.SaveState6MenuItem.Size = new System.Drawing.Size(186, 22); + this.SaveState6MenuItem.Size = new System.Drawing.Size(178, 22); this.SaveState6MenuItem.Text = "6"; this.SaveState6MenuItem.Click += new System.EventHandler(this.Savestate6MenuItem_Click); // // SaveState7MenuItem // this.SaveState7MenuItem.Name = "SaveState7MenuItem"; - this.SaveState7MenuItem.Size = new System.Drawing.Size(186, 22); + this.SaveState7MenuItem.Size = new System.Drawing.Size(178, 22); this.SaveState7MenuItem.Text = "7"; this.SaveState7MenuItem.Click += new System.EventHandler(this.Savestate7MenuItem_Click); // // SaveState8MenuItem // this.SaveState8MenuItem.Name = "SaveState8MenuItem"; - this.SaveState8MenuItem.Size = new System.Drawing.Size(186, 22); + this.SaveState8MenuItem.Size = new System.Drawing.Size(178, 22); this.SaveState8MenuItem.Text = "8"; this.SaveState8MenuItem.Click += new System.EventHandler(this.Savestate8MenuItem_Click); // // SaveState9MenuItem // this.SaveState9MenuItem.Name = "SaveState9MenuItem"; - this.SaveState9MenuItem.Size = new System.Drawing.Size(186, 22); + this.SaveState9MenuItem.Size = new System.Drawing.Size(178, 22); this.SaveState9MenuItem.Text = "9"; this.SaveState9MenuItem.Click += new System.EventHandler(this.Savestate9MenuItem_Click); // // SaveState0MenuItem // this.SaveState0MenuItem.Name = "SaveState0MenuItem"; - this.SaveState0MenuItem.Size = new System.Drawing.Size(186, 22); + this.SaveState0MenuItem.Size = new System.Drawing.Size(178, 22); this.SaveState0MenuItem.Text = "0"; this.SaveState0MenuItem.Click += new System.EventHandler(this.Savestate0MenuItem_Click); // // toolStripSeparator6 // this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(183, 6); + this.toolStripSeparator6.Size = new System.Drawing.Size(175, 6); // // SaveNamedStateMenuItem // this.SaveNamedStateMenuItem.Name = "SaveNamedStateMenuItem"; - this.SaveNamedStateMenuItem.Size = new System.Drawing.Size(186, 22); + this.SaveNamedStateMenuItem.Size = new System.Drawing.Size(178, 22); this.SaveNamedStateMenuItem.Text = "Save Named State..."; this.SaveNamedStateMenuItem.Click += new System.EventHandler(this.SaveNamedStateMenuItem_Click); // @@ -639,101 +639,101 @@ this.toolStripSeparator21, this.AutoloadLastSlotMenuItem}); this.LoadStateSubMenu.Name = "LoadStateSubMenu"; - this.LoadStateSubMenu.Size = new System.Drawing.Size(162, 22); + this.LoadStateSubMenu.Size = new System.Drawing.Size(159, 22); this.LoadStateSubMenu.Text = "&Load State"; this.LoadStateSubMenu.DropDownOpened += new System.EventHandler(this.LoadStateSubMenu_DropDownOpened); // // LoadState1MenuItem // this.LoadState1MenuItem.Name = "LoadState1MenuItem"; - this.LoadState1MenuItem.Size = new System.Drawing.Size(185, 22); + this.LoadState1MenuItem.Size = new System.Drawing.Size(180, 22); this.LoadState1MenuItem.Text = "1"; this.LoadState1MenuItem.Click += new System.EventHandler(this.Loadstate1MenuItem_Click); // // LoadState2MenuItem // this.LoadState2MenuItem.Name = "LoadState2MenuItem"; - this.LoadState2MenuItem.Size = new System.Drawing.Size(185, 22); + this.LoadState2MenuItem.Size = new System.Drawing.Size(180, 22); this.LoadState2MenuItem.Text = "2"; this.LoadState2MenuItem.Click += new System.EventHandler(this.Loadstate2MenuItem_Click); // // LoadState3MenuItem // this.LoadState3MenuItem.Name = "LoadState3MenuItem"; - this.LoadState3MenuItem.Size = new System.Drawing.Size(185, 22); + this.LoadState3MenuItem.Size = new System.Drawing.Size(180, 22); this.LoadState3MenuItem.Text = "3"; this.LoadState3MenuItem.Click += new System.EventHandler(this.Loadstate3MenuItem_Click); // // LoadState4MenuItem // this.LoadState4MenuItem.Name = "LoadState4MenuItem"; - this.LoadState4MenuItem.Size = new System.Drawing.Size(185, 22); + this.LoadState4MenuItem.Size = new System.Drawing.Size(180, 22); this.LoadState4MenuItem.Text = "4"; this.LoadState4MenuItem.Click += new System.EventHandler(this.Loadstate4MenuItem_Click); // // LoadState5MenuItem // this.LoadState5MenuItem.Name = "LoadState5MenuItem"; - this.LoadState5MenuItem.Size = new System.Drawing.Size(185, 22); + this.LoadState5MenuItem.Size = new System.Drawing.Size(180, 22); this.LoadState5MenuItem.Text = "5"; this.LoadState5MenuItem.Click += new System.EventHandler(this.Loadstate5MenuItem_Click); // // LoadState6MenuItem // this.LoadState6MenuItem.Name = "LoadState6MenuItem"; - this.LoadState6MenuItem.Size = new System.Drawing.Size(185, 22); + this.LoadState6MenuItem.Size = new System.Drawing.Size(180, 22); this.LoadState6MenuItem.Text = "6"; this.LoadState6MenuItem.Click += new System.EventHandler(this.Loadstate6MenuItem_Click); // // LoadState7MenuItem // this.LoadState7MenuItem.Name = "LoadState7MenuItem"; - this.LoadState7MenuItem.Size = new System.Drawing.Size(185, 22); + this.LoadState7MenuItem.Size = new System.Drawing.Size(180, 22); this.LoadState7MenuItem.Text = "7"; this.LoadState7MenuItem.Click += new System.EventHandler(this.Loadstate7MenuItem_Click); // // LoadState8MenuItem // this.LoadState8MenuItem.Name = "LoadState8MenuItem"; - this.LoadState8MenuItem.Size = new System.Drawing.Size(185, 22); + this.LoadState8MenuItem.Size = new System.Drawing.Size(180, 22); this.LoadState8MenuItem.Text = "8"; this.LoadState8MenuItem.Click += new System.EventHandler(this.Loadstate8MenuItem_Click); // // LoadState9MenuItem // this.LoadState9MenuItem.Name = "LoadState9MenuItem"; - this.LoadState9MenuItem.Size = new System.Drawing.Size(185, 22); + this.LoadState9MenuItem.Size = new System.Drawing.Size(180, 22); this.LoadState9MenuItem.Text = "9"; this.LoadState9MenuItem.Click += new System.EventHandler(this.Loadstate9MenuItem_Click); // // LoadState0MenuItem // this.LoadState0MenuItem.Name = "LoadState0MenuItem"; - this.LoadState0MenuItem.Size = new System.Drawing.Size(185, 22); + this.LoadState0MenuItem.Size = new System.Drawing.Size(180, 22); this.LoadState0MenuItem.Text = "0"; this.LoadState0MenuItem.Click += new System.EventHandler(this.Loadstate0MenuItem_Click); // // toolStripSeparator7 // this.toolStripSeparator7.Name = "toolStripSeparator7"; - this.toolStripSeparator7.Size = new System.Drawing.Size(182, 6); + this.toolStripSeparator7.Size = new System.Drawing.Size(177, 6); // // LoadNamedStateMenuItem // this.LoadNamedStateMenuItem.Name = "LoadNamedStateMenuItem"; - this.LoadNamedStateMenuItem.Size = new System.Drawing.Size(185, 22); + this.LoadNamedStateMenuItem.Size = new System.Drawing.Size(180, 22); this.LoadNamedStateMenuItem.Text = "Load Named State..."; this.LoadNamedStateMenuItem.Click += new System.EventHandler(this.LoadNamedStateMenuItem_Click); // // toolStripSeparator21 // this.toolStripSeparator21.Name = "toolStripSeparator21"; - this.toolStripSeparator21.Size = new System.Drawing.Size(182, 6); + this.toolStripSeparator21.Size = new System.Drawing.Size(177, 6); // // AutoloadLastSlotMenuItem // this.AutoloadLastSlotMenuItem.Name = "AutoloadLastSlotMenuItem"; - this.AutoloadLastSlotMenuItem.Size = new System.Drawing.Size(185, 22); + this.AutoloadLastSlotMenuItem.Size = new System.Drawing.Size(180, 22); this.AutoloadLastSlotMenuItem.Text = "Autoload last Slot"; this.AutoloadLastSlotMenuItem.Click += new System.EventHandler(this.AutoloadLastSlotMenuItem_Click); // @@ -756,77 +756,77 @@ this.SaveToCurrentSlotMenuItem, this.LoadCurrentSlotMenuItem}); this.SaveSlotSubMenu.Name = "SaveSlotSubMenu"; - this.SaveSlotSubMenu.Size = new System.Drawing.Size(162, 22); + this.SaveSlotSubMenu.Size = new System.Drawing.Size(159, 22); this.SaveSlotSubMenu.Text = "Save S&lot"; this.SaveSlotSubMenu.DropDownOpened += new System.EventHandler(this.SaveSlotSubMenu_DropDownOpened); // // SelectSlot0MenuItem // this.SelectSlot0MenuItem.Name = "SelectSlot0MenuItem"; - this.SelectSlot0MenuItem.Size = new System.Drawing.Size(183, 22); + this.SelectSlot0MenuItem.Size = new System.Drawing.Size(178, 22); this.SelectSlot0MenuItem.Text = "Select Slot 0"; this.SelectSlot0MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot1MenuItem // this.SelectSlot1MenuItem.Name = "SelectSlot1MenuItem"; - this.SelectSlot1MenuItem.Size = new System.Drawing.Size(183, 22); + this.SelectSlot1MenuItem.Size = new System.Drawing.Size(178, 22); this.SelectSlot1MenuItem.Text = "Select Slot 1"; this.SelectSlot1MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot2MenuItem // this.SelectSlot2MenuItem.Name = "SelectSlot2MenuItem"; - this.SelectSlot2MenuItem.Size = new System.Drawing.Size(183, 22); + this.SelectSlot2MenuItem.Size = new System.Drawing.Size(178, 22); this.SelectSlot2MenuItem.Text = "Select Slot 2"; this.SelectSlot2MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot3MenuItem // this.SelectSlot3MenuItem.Name = "SelectSlot3MenuItem"; - this.SelectSlot3MenuItem.Size = new System.Drawing.Size(183, 22); + this.SelectSlot3MenuItem.Size = new System.Drawing.Size(178, 22); this.SelectSlot3MenuItem.Text = "Select Slot 3"; this.SelectSlot3MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot4MenuItem // this.SelectSlot4MenuItem.Name = "SelectSlot4MenuItem"; - this.SelectSlot4MenuItem.Size = new System.Drawing.Size(183, 22); + this.SelectSlot4MenuItem.Size = new System.Drawing.Size(178, 22); this.SelectSlot4MenuItem.Text = "Select Slot 4"; this.SelectSlot4MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot5MenuItem // this.SelectSlot5MenuItem.Name = "SelectSlot5MenuItem"; - this.SelectSlot5MenuItem.Size = new System.Drawing.Size(183, 22); + this.SelectSlot5MenuItem.Size = new System.Drawing.Size(178, 22); this.SelectSlot5MenuItem.Text = "Select Slot 5"; this.SelectSlot5MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot6MenuItem // this.SelectSlot6MenuItem.Name = "SelectSlot6MenuItem"; - this.SelectSlot6MenuItem.Size = new System.Drawing.Size(183, 22); + this.SelectSlot6MenuItem.Size = new System.Drawing.Size(178, 22); this.SelectSlot6MenuItem.Text = "Select Slot 6"; this.SelectSlot6MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot7MenuItem // this.SelectSlot7MenuItem.Name = "SelectSlot7MenuItem"; - this.SelectSlot7MenuItem.Size = new System.Drawing.Size(183, 22); + this.SelectSlot7MenuItem.Size = new System.Drawing.Size(178, 22); this.SelectSlot7MenuItem.Text = "Select Slot 7"; this.SelectSlot7MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot8MenuItem // this.SelectSlot8MenuItem.Name = "SelectSlot8MenuItem"; - this.SelectSlot8MenuItem.Size = new System.Drawing.Size(183, 22); + this.SelectSlot8MenuItem.Size = new System.Drawing.Size(178, 22); this.SelectSlot8MenuItem.Text = "Select Slot 8"; this.SelectSlot8MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot9MenuItem // this.SelectSlot9MenuItem.Name = "SelectSlot9MenuItem"; - this.SelectSlot9MenuItem.Size = new System.Drawing.Size(183, 22); + this.SelectSlot9MenuItem.Size = new System.Drawing.Size(178, 22); this.SelectSlot9MenuItem.Text = "Select Slot 9"; this.SelectSlot9MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // @@ -834,7 +834,7 @@ // this.PreviousSlotMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MoveLeft; this.PreviousSlotMenuItem.Name = "PreviousSlotMenuItem"; - this.PreviousSlotMenuItem.Size = new System.Drawing.Size(183, 22); + this.PreviousSlotMenuItem.Size = new System.Drawing.Size(178, 22); this.PreviousSlotMenuItem.Text = "Previous Slot"; this.PreviousSlotMenuItem.Click += new System.EventHandler(this.PreviousSlotMenuItem_Click); // @@ -842,26 +842,26 @@ // this.NextSlotMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MoveRight; this.NextSlotMenuItem.Name = "NextSlotMenuItem"; - this.NextSlotMenuItem.Size = new System.Drawing.Size(183, 22); + this.NextSlotMenuItem.Size = new System.Drawing.Size(178, 22); this.NextSlotMenuItem.Text = "Next Slot"; this.NextSlotMenuItem.Click += new System.EventHandler(this.NextSlotMenuItem_Click); // // toolStripSeparator5 // this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(180, 6); + this.toolStripSeparator5.Size = new System.Drawing.Size(175, 6); // // SaveToCurrentSlotMenuItem // this.SaveToCurrentSlotMenuItem.Name = "SaveToCurrentSlotMenuItem"; - this.SaveToCurrentSlotMenuItem.Size = new System.Drawing.Size(183, 22); + this.SaveToCurrentSlotMenuItem.Size = new System.Drawing.Size(178, 22); this.SaveToCurrentSlotMenuItem.Text = "Save to Current Slot"; this.SaveToCurrentSlotMenuItem.Click += new System.EventHandler(this.SaveToCurrentSlotMenuItem_Click); // // LoadCurrentSlotMenuItem // this.LoadCurrentSlotMenuItem.Name = "LoadCurrentSlotMenuItem"; - this.LoadCurrentSlotMenuItem.Size = new System.Drawing.Size(183, 22); + this.LoadCurrentSlotMenuItem.Size = new System.Drawing.Size(178, 22); this.LoadCurrentSlotMenuItem.Text = "Load Current Slot"; this.LoadCurrentSlotMenuItem.Click += new System.EventHandler(this.LoadCurrentSlotMenuItem_Click); // @@ -871,21 +871,21 @@ this.FlushSaveRAMMenuItem}); this.SaveRAMSubMenu.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold); this.SaveRAMSubMenu.Name = "SaveRAMSubMenu"; - this.SaveRAMSubMenu.Size = new System.Drawing.Size(162, 22); + this.SaveRAMSubMenu.Size = new System.Drawing.Size(159, 22); this.SaveRAMSubMenu.Text = "Save &RAM"; // // FlushSaveRAMMenuItem // this.FlushSaveRAMMenuItem.Font = new System.Drawing.Font("Tahoma", 8.25F); this.FlushSaveRAMMenuItem.Name = "FlushSaveRAMMenuItem"; - this.FlushSaveRAMMenuItem.Size = new System.Drawing.Size(161, 22); + this.FlushSaveRAMMenuItem.Size = new System.Drawing.Size(150, 22); this.FlushSaveRAMMenuItem.Text = "&Flush Save Ram"; this.FlushSaveRAMMenuItem.Click += new System.EventHandler(this.FlushSaveRAMMenuItem_Click); // // toolStripMenuItem2 // this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(159, 6); + this.toolStripMenuItem2.Size = new System.Drawing.Size(156, 6); // // MovieSubMenu // @@ -905,7 +905,7 @@ this.FullMovieLoadstatesMenuItem, this.MovieEndSubMenu}); this.MovieSubMenu.Name = "MovieSubMenu"; - this.MovieSubMenu.Size = new System.Drawing.Size(162, 22); + this.MovieSubMenu.Size = new System.Drawing.Size(159, 22); this.MovieSubMenu.Text = "&Movie"; this.MovieSubMenu.DropDownOpened += new System.EventHandler(this.MovieSubMenu_DropDownOpened); // @@ -913,14 +913,14 @@ // this.ReadonlyMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.ReadOnly; this.ReadonlyMenuItem.Name = "ReadonlyMenuItem"; - this.ReadonlyMenuItem.Size = new System.Drawing.Size(222, 22); + this.ReadonlyMenuItem.Size = new System.Drawing.Size(231, 22); this.ReadonlyMenuItem.Text = "Read-only"; this.ReadonlyMenuItem.Click += new System.EventHandler(this.ReadonlyMenuItem_Click); // // toolStripSeparator15 // this.toolStripSeparator15.Name = "toolStripSeparator15"; - this.toolStripSeparator15.Size = new System.Drawing.Size(219, 6); + this.toolStripSeparator15.Size = new System.Drawing.Size(228, 6); // // RecentMovieSubMenu // @@ -928,7 +928,7 @@ this.toolStripSeparator16}); this.RecentMovieSubMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; this.RecentMovieSubMenu.Name = "RecentMovieSubMenu"; - this.RecentMovieSubMenu.Size = new System.Drawing.Size(222, 22); + this.RecentMovieSubMenu.Size = new System.Drawing.Size(231, 22); this.RecentMovieSubMenu.Text = "Recent"; this.RecentMovieSubMenu.DropDownOpened += new System.EventHandler(this.RecentMovieSubMenu_DropDownOpened); // @@ -941,7 +941,7 @@ // this.RecordMovieMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.RecordHS; this.RecordMovieMenuItem.Name = "RecordMovieMenuItem"; - this.RecordMovieMenuItem.Size = new System.Drawing.Size(222, 22); + this.RecordMovieMenuItem.Size = new System.Drawing.Size(231, 22); this.RecordMovieMenuItem.Text = "&Record Movie..."; this.RecordMovieMenuItem.Click += new System.EventHandler(this.RecordMovieMenuItem_Click); // @@ -949,7 +949,7 @@ // this.PlayMovieMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Play; this.PlayMovieMenuItem.Name = "PlayMovieMenuItem"; - this.PlayMovieMenuItem.Size = new System.Drawing.Size(222, 22); + this.PlayMovieMenuItem.Size = new System.Drawing.Size(231, 22); this.PlayMovieMenuItem.Text = "&Play Movie..."; this.PlayMovieMenuItem.Click += new System.EventHandler(this.PlayMovieMenuItem_Click); // @@ -957,7 +957,7 @@ // this.StopMovieMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopMovieMenuItem.Name = "StopMovieMenuItem"; - this.StopMovieMenuItem.Size = new System.Drawing.Size(222, 22); + this.StopMovieMenuItem.Size = new System.Drawing.Size(231, 22); this.StopMovieMenuItem.Text = "Stop Movie"; this.StopMovieMenuItem.Click += new System.EventHandler(this.StopMovieMenuItem_Click); // @@ -965,7 +965,7 @@ // this.PlayFromBeginningMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.restart; this.PlayFromBeginningMenuItem.Name = "PlayFromBeginningMenuItem"; - this.PlayFromBeginningMenuItem.Size = new System.Drawing.Size(222, 22); + this.PlayFromBeginningMenuItem.Size = new System.Drawing.Size(231, 22); this.PlayFromBeginningMenuItem.Text = "Play from Beginning"; this.PlayFromBeginningMenuItem.Click += new System.EventHandler(this.PlayFromBeginningMenuItem_Click); // @@ -973,7 +973,7 @@ // this.ImportMoviesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Import; this.ImportMoviesMenuItem.Name = "ImportMoviesMenuItem"; - this.ImportMoviesMenuItem.Size = new System.Drawing.Size(222, 22); + this.ImportMoviesMenuItem.Size = new System.Drawing.Size(231, 22); this.ImportMoviesMenuItem.Text = "Import Movies..."; this.ImportMoviesMenuItem.Click += new System.EventHandler(this.ImportMovieMenuItem_Click); // @@ -981,7 +981,7 @@ // this.SaveMovieMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs; this.SaveMovieMenuItem.Name = "SaveMovieMenuItem"; - this.SaveMovieMenuItem.Size = new System.Drawing.Size(222, 22); + this.SaveMovieMenuItem.Size = new System.Drawing.Size(231, 22); this.SaveMovieMenuItem.Text = "&Save Movie"; this.SaveMovieMenuItem.Click += new System.EventHandler(this.SaveMovieMenuItem_Click); // @@ -989,26 +989,26 @@ // this.StopMovieWithoutSavingMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopMovieWithoutSavingMenuItem.Name = "StopMovieWithoutSavingMenuItem"; - this.StopMovieWithoutSavingMenuItem.Size = new System.Drawing.Size(222, 22); + this.StopMovieWithoutSavingMenuItem.Size = new System.Drawing.Size(231, 22); this.StopMovieWithoutSavingMenuItem.Text = "Stop Movie without Saving"; this.StopMovieWithoutSavingMenuItem.Click += new System.EventHandler(this.StopMovieWithoutSavingMenuItem_Click); // // toolStripSeparator14 // this.toolStripSeparator14.Name = "toolStripSeparator14"; - this.toolStripSeparator14.Size = new System.Drawing.Size(219, 6); + this.toolStripSeparator14.Size = new System.Drawing.Size(228, 6); // // AutomaticallyBackupMoviesMenuItem // this.AutomaticallyBackupMoviesMenuItem.Name = "AutomaticallyBackupMoviesMenuItem"; - this.AutomaticallyBackupMoviesMenuItem.Size = new System.Drawing.Size(222, 22); + this.AutomaticallyBackupMoviesMenuItem.Size = new System.Drawing.Size(231, 22); this.AutomaticallyBackupMoviesMenuItem.Text = "Automatically Backup Movies"; this.AutomaticallyBackupMoviesMenuItem.Click += new System.EventHandler(this.AutomaticMovieBackupMenuItem_Click); // // FullMovieLoadstatesMenuItem // this.FullMovieLoadstatesMenuItem.Name = "FullMovieLoadstatesMenuItem"; - this.FullMovieLoadstatesMenuItem.Size = new System.Drawing.Size(222, 22); + this.FullMovieLoadstatesMenuItem.Size = new System.Drawing.Size(231, 22); this.FullMovieLoadstatesMenuItem.Text = "Full Movie Loadstates"; this.FullMovieLoadstatesMenuItem.Click += new System.EventHandler(this.FullMovieLoadstatesMenuItem_Click); // @@ -1020,35 +1020,35 @@ this.MovieEndStopMenuItem, this.MovieEndPauseMenuItem}); this.MovieEndSubMenu.Name = "MovieEndSubMenu"; - this.MovieEndSubMenu.Size = new System.Drawing.Size(222, 22); + this.MovieEndSubMenu.Size = new System.Drawing.Size(231, 22); this.MovieEndSubMenu.Text = "On Movie End"; this.MovieEndSubMenu.DropDownOpened += new System.EventHandler(this.MovieEndSubMenu_DropDownOpened); // // MovieEndFinishMenuItem // this.MovieEndFinishMenuItem.Name = "MovieEndFinishMenuItem"; - this.MovieEndFinishMenuItem.Size = new System.Drawing.Size(171, 22); + this.MovieEndFinishMenuItem.Size = new System.Drawing.Size(170, 22); this.MovieEndFinishMenuItem.Text = "Switch to Finished"; this.MovieEndFinishMenuItem.Click += new System.EventHandler(this.MovieEndFinishMenuItem_Click); // // MovieEndRecordMenuItem // this.MovieEndRecordMenuItem.Name = "MovieEndRecordMenuItem"; - this.MovieEndRecordMenuItem.Size = new System.Drawing.Size(171, 22); + this.MovieEndRecordMenuItem.Size = new System.Drawing.Size(170, 22); this.MovieEndRecordMenuItem.Text = "Switch To Record"; this.MovieEndRecordMenuItem.Click += new System.EventHandler(this.MovieEndRecordMenuItem_Click); // // MovieEndStopMenuItem // this.MovieEndStopMenuItem.Name = "MovieEndStopMenuItem"; - this.MovieEndStopMenuItem.Size = new System.Drawing.Size(171, 22); + this.MovieEndStopMenuItem.Size = new System.Drawing.Size(170, 22); this.MovieEndStopMenuItem.Text = "Stop"; this.MovieEndStopMenuItem.Click += new System.EventHandler(this.MovieEndStopMenuItem_Click); // // MovieEndPauseMenuItem // this.MovieEndPauseMenuItem.Name = "MovieEndPauseMenuItem"; - this.MovieEndPauseMenuItem.Size = new System.Drawing.Size(171, 22); + this.MovieEndPauseMenuItem.Size = new System.Drawing.Size(170, 22); this.MovieEndPauseMenuItem.Text = "Pause"; this.MovieEndPauseMenuItem.Click += new System.EventHandler(this.MovieEndPauseMenuItem_Click); // @@ -1062,50 +1062,50 @@ this.CaptureOSDMenuItem, this.SynclessRecordingMenuItem}); this.AVSubMenu.Name = "AVSubMenu"; - this.AVSubMenu.Size = new System.Drawing.Size(162, 22); + this.AVSubMenu.Size = new System.Drawing.Size(159, 22); this.AVSubMenu.Text = "&AVI/WAV"; this.AVSubMenu.DropDownOpened += new System.EventHandler(this.AVSubMenu_DropDownOpened); // - // ConfigAndRecordAVMenuItem - // - this.ConfigAndRecordAVMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AVI; - this.ConfigAndRecordAVMenuItem.Name = "ConfigAndRecordAVMenuItem"; - this.ConfigAndRecordAVMenuItem.Size = new System.Drawing.Size(221, 22); - this.ConfigAndRecordAVMenuItem.Text = "Config and Record AVI/WAV"; - this.ConfigAndRecordAVMenuItem.Click += new System.EventHandler(this.ConfigAndRecordAVMenuItem_Click); - // // RecordAVMenuItem // this.RecordAVMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.RecordHS; this.RecordAVMenuItem.Name = "RecordAVMenuItem"; - this.RecordAVMenuItem.Size = new System.Drawing.Size(221, 22); + this.RecordAVMenuItem.Size = new System.Drawing.Size(223, 22); this.RecordAVMenuItem.Text = "&Record AVI/WAV"; this.RecordAVMenuItem.Click += new System.EventHandler(this.RecordAVMenuItem_Click); // + // ConfigAndRecordAVMenuItem + // + this.ConfigAndRecordAVMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AVI; + this.ConfigAndRecordAVMenuItem.Name = "ConfigAndRecordAVMenuItem"; + this.ConfigAndRecordAVMenuItem.Size = new System.Drawing.Size(223, 22); + this.ConfigAndRecordAVMenuItem.Text = "Config and Record AVI/WAV"; + this.ConfigAndRecordAVMenuItem.Click += new System.EventHandler(this.ConfigAndRecordAVMenuItem_Click); + // // StopAVIMenuItem // this.StopAVIMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopAVIMenuItem.Name = "StopAVIMenuItem"; - this.StopAVIMenuItem.Size = new System.Drawing.Size(221, 22); + this.StopAVIMenuItem.Size = new System.Drawing.Size(223, 22); this.StopAVIMenuItem.Text = "&Stop AVI/WAV"; this.StopAVIMenuItem.Click += new System.EventHandler(this.StopAVMenuItem_Click); // // toolStripSeparator19 // this.toolStripSeparator19.Name = "toolStripSeparator19"; - this.toolStripSeparator19.Size = new System.Drawing.Size(218, 6); + this.toolStripSeparator19.Size = new System.Drawing.Size(220, 6); // // CaptureOSDMenuItem // this.CaptureOSDMenuItem.Name = "CaptureOSDMenuItem"; - this.CaptureOSDMenuItem.Size = new System.Drawing.Size(221, 22); + this.CaptureOSDMenuItem.Size = new System.Drawing.Size(223, 22); this.CaptureOSDMenuItem.Text = "Capture OSD"; this.CaptureOSDMenuItem.Click += new System.EventHandler(this.CaptureOSDMenuItem_Click); // // SynclessRecordingMenuItem // this.SynclessRecordingMenuItem.Name = "SynclessRecordingMenuItem"; - this.SynclessRecordingMenuItem.Size = new System.Drawing.Size(221, 22); + this.SynclessRecordingMenuItem.Size = new System.Drawing.Size(223, 22); this.SynclessRecordingMenuItem.Text = "S&yncless Recording Tools"; this.SynclessRecordingMenuItem.Click += new System.EventHandler(this.SynclessRecordingMenuItem_Click); // @@ -1119,7 +1119,7 @@ this.toolStripSeparator20, this.ScreenshotCaptureOSDMenuItem1}); this.ScreenshotSubMenu.Name = "ScreenshotSubMenu"; - this.ScreenshotSubMenu.Size = new System.Drawing.Size(162, 22); + this.ScreenshotSubMenu.Size = new System.Drawing.Size(159, 22); this.ScreenshotSubMenu.Text = "Scree&nshot"; this.ScreenshotSubMenu.DropDownOpening += new System.EventHandler(this.ScreenshotSubMenu_DropDownOpening); // @@ -1127,14 +1127,14 @@ // this.ScreenshotMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.camera; this.ScreenshotMenuItem.Name = "ScreenshotMenuItem"; - this.ScreenshotMenuItem.Size = new System.Drawing.Size(307, 22); + this.ScreenshotMenuItem.Size = new System.Drawing.Size(317, 22); this.ScreenshotMenuItem.Text = "Screenshot"; this.ScreenshotMenuItem.Click += new System.EventHandler(this.ScreenshotMenuItem_Click); // // ScreenshotAsMenuItem // this.ScreenshotAsMenuItem.Name = "ScreenshotAsMenuItem"; - this.ScreenshotAsMenuItem.Size = new System.Drawing.Size(307, 22); + this.ScreenshotAsMenuItem.Size = new System.Drawing.Size(317, 22); this.ScreenshotAsMenuItem.Text = "Screenshot As..."; this.ScreenshotAsMenuItem.Click += new System.EventHandler(this.ScreenshotAsMenuItem_Click); // @@ -1142,7 +1142,7 @@ // this.ScreenshotClipboardMenuItem.Name = "ScreenshotClipboardMenuItem"; this.ScreenshotClipboardMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C))); - this.ScreenshotClipboardMenuItem.Size = new System.Drawing.Size(307, 22); + this.ScreenshotClipboardMenuItem.Size = new System.Drawing.Size(317, 22); this.ScreenshotClipboardMenuItem.Text = "Screenshot (raw) -> Clipboard"; this.ScreenshotClipboardMenuItem.Click += new System.EventHandler(this.ScreenshotClipboardMenuItem_Click); // @@ -1151,32 +1151,32 @@ this.ScreenshotClientClipboardMenuItem.Name = "ScreenshotClientClipboardMenuItem"; this.ScreenshotClientClipboardMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.C))); - this.ScreenshotClientClipboardMenuItem.Size = new System.Drawing.Size(307, 22); + this.ScreenshotClientClipboardMenuItem.Size = new System.Drawing.Size(317, 22); this.ScreenshotClientClipboardMenuItem.Text = "Screenshot (client) -> Clipboard"; this.ScreenshotClientClipboardMenuItem.Click += new System.EventHandler(this.ScreenshotClientClipboardMenuItem_Click); // // toolStripSeparator20 // this.toolStripSeparator20.Name = "toolStripSeparator20"; - this.toolStripSeparator20.Size = new System.Drawing.Size(304, 6); + this.toolStripSeparator20.Size = new System.Drawing.Size(314, 6); // // ScreenshotCaptureOSDMenuItem1 // this.ScreenshotCaptureOSDMenuItem1.Name = "ScreenshotCaptureOSDMenuItem1"; - this.ScreenshotCaptureOSDMenuItem1.Size = new System.Drawing.Size(307, 22); + this.ScreenshotCaptureOSDMenuItem1.Size = new System.Drawing.Size(317, 22); this.ScreenshotCaptureOSDMenuItem1.Text = "Capture OSD"; this.ScreenshotCaptureOSDMenuItem1.Click += new System.EventHandler(this.ScreenshotCaptureOSDMenuItem_Click); // // toolStripSeparator4 // this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(159, 6); + this.toolStripSeparator4.Size = new System.Drawing.Size(156, 6); // // ExitMenuItem // this.ExitMenuItem.Name = "ExitMenuItem"; this.ExitMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.ExitMenuItem.Size = new System.Drawing.Size(162, 22); + this.ExitMenuItem.Size = new System.Drawing.Size(159, 22); this.ExitMenuItem.Text = "E&xit"; this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); // @@ -1189,7 +1189,7 @@ this.SoftResetMenuItem, this.HardResetMenuItem}); this.EmulationSubMenu.Name = "EmulationSubMenu"; - this.EmulationSubMenu.Size = new System.Drawing.Size(65, 17); + this.EmulationSubMenu.Size = new System.Drawing.Size(73, 19); this.EmulationSubMenu.Text = "&Emulation"; this.EmulationSubMenu.DropDownOpened += new System.EventHandler(this.emulationToolStripMenuItem_DropDownOpened); // @@ -1197,7 +1197,7 @@ // this.PauseMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Pause; this.PauseMenuItem.Name = "PauseMenuItem"; - this.PauseMenuItem.Size = new System.Drawing.Size(146, 22); + this.PauseMenuItem.Size = new System.Drawing.Size(140, 22); this.PauseMenuItem.Text = "&Pause"; this.PauseMenuItem.Click += new System.EventHandler(this.PauseMenuItem_Click); // @@ -1205,26 +1205,26 @@ // this.RebootCoreMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.reboot; this.RebootCoreMenuItem.Name = "RebootCoreMenuItem"; - this.RebootCoreMenuItem.Size = new System.Drawing.Size(146, 22); + this.RebootCoreMenuItem.Size = new System.Drawing.Size(140, 22); this.RebootCoreMenuItem.Text = "&Reboot Core"; this.RebootCoreMenuItem.Click += new System.EventHandler(this.PowerMenuItem_Click); // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(143, 6); + this.toolStripSeparator1.Size = new System.Drawing.Size(137, 6); // // SoftResetMenuItem // this.SoftResetMenuItem.Name = "SoftResetMenuItem"; - this.SoftResetMenuItem.Size = new System.Drawing.Size(146, 22); + this.SoftResetMenuItem.Size = new System.Drawing.Size(140, 22); this.SoftResetMenuItem.Text = "&Soft Reset"; this.SoftResetMenuItem.Click += new System.EventHandler(this.SoftResetMenuItem_Click); // // HardResetMenuItem // this.HardResetMenuItem.Name = "HardResetMenuItem"; - this.HardResetMenuItem.Size = new System.Drawing.Size(146, 22); + this.HardResetMenuItem.Size = new System.Drawing.Size(140, 22); this.HardResetMenuItem.Text = "&Hard Reset"; this.HardResetMenuItem.Click += new System.EventHandler(this.HardResetMenuItem_Click); // @@ -1245,7 +1245,7 @@ this.DisplayMessagesMenuItem, this.DisplayLogWindowMenuItem}); this.ViewSubMenu.Name = "ViewSubMenu"; - this.ViewSubMenu.Size = new System.Drawing.Size(41, 17); + this.ViewSubMenu.Size = new System.Drawing.Size(44, 19); this.ViewSubMenu.Text = "&View"; this.ViewSubMenu.DropDownOpened += new System.EventHandler(this.ViewSubMenu_DropDownOpened); // @@ -1266,42 +1266,42 @@ // x1MenuItem // this.x1MenuItem.Name = "x1MenuItem"; - this.x1MenuItem.Size = new System.Drawing.Size(105, 22); + this.x1MenuItem.Size = new System.Drawing.Size(96, 22); this.x1MenuItem.Text = "&1x"; this.x1MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // x2MenuItem // this.x2MenuItem.Name = "x2MenuItem"; - this.x2MenuItem.Size = new System.Drawing.Size(105, 22); + this.x2MenuItem.Size = new System.Drawing.Size(96, 22); this.x2MenuItem.Text = "&2x"; this.x2MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // x3MenuItem // this.x3MenuItem.Name = "x3MenuItem"; - this.x3MenuItem.Size = new System.Drawing.Size(105, 22); + this.x3MenuItem.Size = new System.Drawing.Size(96, 22); this.x3MenuItem.Text = "&3x"; this.x3MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // x4MenuItem // this.x4MenuItem.Name = "x4MenuItem"; - this.x4MenuItem.Size = new System.Drawing.Size(105, 22); + this.x4MenuItem.Size = new System.Drawing.Size(96, 22); this.x4MenuItem.Text = "&4x"; this.x4MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // x5MenuItem // this.x5MenuItem.Name = "x5MenuItem"; - this.x5MenuItem.Size = new System.Drawing.Size(105, 22); + this.x5MenuItem.Size = new System.Drawing.Size(96, 22); this.x5MenuItem.Text = "&5x"; this.x5MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // mzMenuItem // this.mzMenuItem.Name = "mzMenuItem"; - this.mzMenuItem.Size = new System.Drawing.Size(105, 22); + this.mzMenuItem.Size = new System.Drawing.Size(96, 22); this.mzMenuItem.Text = "&Max"; this.mzMenuItem.Click += new System.EventHandler(this.WindowSize_Click); // @@ -1409,7 +1409,7 @@ this.SaveConfigMenuItem, this.LoadConfigMenuItem}); this.ConfigSubMenu.Name = "ConfigSubMenu"; - this.ConfigSubMenu.Size = new System.Drawing.Size(50, 17); + this.ConfigSubMenu.Size = new System.Drawing.Size(55, 19); this.ConfigSubMenu.Text = "&Config"; this.ConfigSubMenu.DropDownOpened += new System.EventHandler(this.ConfigSubMenu_DropDownOpened); // @@ -1417,7 +1417,7 @@ // this.ControllersMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.ControllersMenuItem.Name = "ControllersMenuItem"; - this.ControllersMenuItem.Size = new System.Drawing.Size(176, 22); + this.ControllersMenuItem.Size = new System.Drawing.Size(169, 22); this.ControllersMenuItem.Text = "&Controllers..."; this.ControllersMenuItem.Click += new System.EventHandler(this.ControllersMenuItem_Click); // @@ -1425,7 +1425,7 @@ // this.HotkeysMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.HotKeys; this.HotkeysMenuItem.Name = "HotkeysMenuItem"; - this.HotkeysMenuItem.Size = new System.Drawing.Size(176, 22); + this.HotkeysMenuItem.Size = new System.Drawing.Size(169, 22); this.HotkeysMenuItem.Text = "&Hotkeys..."; this.HotkeysMenuItem.Click += new System.EventHandler(this.HotkeysMenuItem_Click); // @@ -1433,7 +1433,7 @@ // this.DisplayConfigMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("DisplayConfigMenuItem.Image"))); this.DisplayConfigMenuItem.Name = "DisplayConfigMenuItem"; - this.DisplayConfigMenuItem.Size = new System.Drawing.Size(176, 22); + this.DisplayConfigMenuItem.Size = new System.Drawing.Size(169, 22); this.DisplayConfigMenuItem.Text = "Display..."; this.DisplayConfigMenuItem.Click += new System.EventHandler(this.DisplayConfigMenuItem_Click); // @@ -1441,7 +1441,7 @@ // this.SoundMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AudioHS; this.SoundMenuItem.Name = "SoundMenuItem"; - this.SoundMenuItem.Size = new System.Drawing.Size(176, 22); + this.SoundMenuItem.Size = new System.Drawing.Size(169, 22); this.SoundMenuItem.Text = "&Sound..."; this.SoundMenuItem.Click += new System.EventHandler(this.SoundMenuItem_Click); // @@ -1449,7 +1449,7 @@ // this.PathsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CopyFolderHS; this.PathsMenuItem.Name = "PathsMenuItem"; - this.PathsMenuItem.Size = new System.Drawing.Size(176, 22); + this.PathsMenuItem.Size = new System.Drawing.Size(169, 22); this.PathsMenuItem.Text = "Paths..."; this.PathsMenuItem.Click += new System.EventHandler(this.PathsMenuItem_Click); // @@ -1457,7 +1457,7 @@ // this.FirmwaresMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("FirmwaresMenuItem.Image"))); this.FirmwaresMenuItem.Name = "FirmwaresMenuItem"; - this.FirmwaresMenuItem.Size = new System.Drawing.Size(176, 22); + this.FirmwaresMenuItem.Size = new System.Drawing.Size(169, 22); this.FirmwaresMenuItem.Text = "&Firmwares..."; this.FirmwaresMenuItem.Click += new System.EventHandler(this.FirmwaresMenuItem_Click); // @@ -1465,7 +1465,7 @@ // this.MessagesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MessageConfig; this.MessagesMenuItem.Name = "MessagesMenuItem"; - this.MessagesMenuItem.Size = new System.Drawing.Size(176, 22); + this.MessagesMenuItem.Size = new System.Drawing.Size(169, 22); this.MessagesMenuItem.Text = "&Messages..."; this.MessagesMenuItem.Click += new System.EventHandler(this.MessagesMenuItem_Click); // @@ -1473,7 +1473,7 @@ // this.AutofireMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lightning; this.AutofireMenuItem.Name = "AutofireMenuItem"; - this.AutofireMenuItem.Size = new System.Drawing.Size(176, 22); + this.AutofireMenuItem.Size = new System.Drawing.Size(169, 22); this.AutofireMenuItem.Text = "&Autofire..."; this.AutofireMenuItem.Click += new System.EventHandler(this.AutofireMenuItem_Click); // @@ -1481,21 +1481,21 @@ // this.RewindOptionsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Previous; this.RewindOptionsMenuItem.Name = "RewindOptionsMenuItem"; - this.RewindOptionsMenuItem.Size = new System.Drawing.Size(176, 22); + this.RewindOptionsMenuItem.Size = new System.Drawing.Size(169, 22); this.RewindOptionsMenuItem.Text = "&Rewind && States..."; this.RewindOptionsMenuItem.Click += new System.EventHandler(this.RewindOptionsMenuItem_Click); // // extensionsToolStripMenuItem // this.extensionsToolStripMenuItem.Name = "extensionsToolStripMenuItem"; - this.extensionsToolStripMenuItem.Size = new System.Drawing.Size(176, 22); + this.extensionsToolStripMenuItem.Size = new System.Drawing.Size(169, 22); this.extensionsToolStripMenuItem.Text = "File Extensions..."; this.extensionsToolStripMenuItem.Click += new System.EventHandler(this.FileExtensionsMenuItem_Click); // // ClientOptionsMenuItem // this.ClientOptionsMenuItem.Name = "ClientOptionsMenuItem"; - this.ClientOptionsMenuItem.Size = new System.Drawing.Size(176, 22); + this.ClientOptionsMenuItem.Size = new System.Drawing.Size(169, 22); this.ClientOptionsMenuItem.Text = "&Customize..."; this.ClientOptionsMenuItem.Click += new System.EventHandler(this.CustomizeMenuItem_Click); // @@ -1503,14 +1503,14 @@ // this.ProfilesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.user_blue_small; this.ProfilesMenuItem.Name = "ProfilesMenuItem"; - this.ProfilesMenuItem.Size = new System.Drawing.Size(176, 22); + this.ProfilesMenuItem.Size = new System.Drawing.Size(169, 22); this.ProfilesMenuItem.Text = "&Profiles..."; this.ProfilesMenuItem.Click += new System.EventHandler(this.ProfilesMenuItem_Click); // // toolStripSeparator9 // this.toolStripSeparator9.Name = "toolStripSeparator9"; - this.toolStripSeparator9.Size = new System.Drawing.Size(173, 6); + this.toolStripSeparator9.Size = new System.Drawing.Size(166, 6); // // SpeedSkipSubMenu // @@ -1533,66 +1533,66 @@ this.Speed200MenuItem, this.Speed400MenuItem}); this.SpeedSkipSubMenu.Name = "SpeedSkipSubMenu"; - this.SpeedSkipSubMenu.Size = new System.Drawing.Size(176, 22); + this.SpeedSkipSubMenu.Size = new System.Drawing.Size(169, 22); this.SpeedSkipSubMenu.Text = "Speed/Skip"; this.SpeedSkipSubMenu.DropDownOpened += new System.EventHandler(this.FrameSkipMenuItem_DropDownOpened); // // ClockThrottleMenuItem // this.ClockThrottleMenuItem.Name = "ClockThrottleMenuItem"; - this.ClockThrottleMenuItem.Size = new System.Drawing.Size(192, 22); + this.ClockThrottleMenuItem.Size = new System.Drawing.Size(202, 22); this.ClockThrottleMenuItem.Text = "Clock Throttle"; this.ClockThrottleMenuItem.Click += new System.EventHandler(this.ClockThrottleMenuItem_Click); // // AudioThrottleMenuItem // this.AudioThrottleMenuItem.Name = "AudioThrottleMenuItem"; - this.AudioThrottleMenuItem.Size = new System.Drawing.Size(192, 22); + this.AudioThrottleMenuItem.Size = new System.Drawing.Size(202, 22); this.AudioThrottleMenuItem.Text = "Audio Throttle"; this.AudioThrottleMenuItem.Click += new System.EventHandler(this.AudioThrottleMenuItem_Click); // // VsyncThrottleMenuItem // this.VsyncThrottleMenuItem.Name = "VsyncThrottleMenuItem"; - this.VsyncThrottleMenuItem.Size = new System.Drawing.Size(192, 22); + this.VsyncThrottleMenuItem.Size = new System.Drawing.Size(202, 22); this.VsyncThrottleMenuItem.Text = "VSync Throttle"; this.VsyncThrottleMenuItem.Click += new System.EventHandler(this.VsyncThrottleMenuItem_Click); // // toolStripSeparator27 // this.toolStripSeparator27.Name = "toolStripSeparator27"; - this.toolStripSeparator27.Size = new System.Drawing.Size(189, 6); + this.toolStripSeparator27.Size = new System.Drawing.Size(199, 6); // // VsyncEnabledMenuItem // this.VsyncEnabledMenuItem.Name = "VsyncEnabledMenuItem"; - this.VsyncEnabledMenuItem.Size = new System.Drawing.Size(192, 22); + this.VsyncEnabledMenuItem.Size = new System.Drawing.Size(202, 22); this.VsyncEnabledMenuItem.Text = "VSync Enabled"; this.VsyncEnabledMenuItem.Click += new System.EventHandler(this.VsyncEnabledMenuItem_Click); // // toolStripMenuItem3 // this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(189, 6); + this.toolStripMenuItem3.Size = new System.Drawing.Size(199, 6); // // miUnthrottled // this.miUnthrottled.Name = "miUnthrottled"; - this.miUnthrottled.Size = new System.Drawing.Size(192, 22); + this.miUnthrottled.Size = new System.Drawing.Size(202, 22); this.miUnthrottled.Text = "Unthrottled"; this.miUnthrottled.Click += new System.EventHandler(this.miUnthrottled_Click); // // MinimizeSkippingMenuItem // this.MinimizeSkippingMenuItem.Name = "MinimizeSkippingMenuItem"; - this.MinimizeSkippingMenuItem.Size = new System.Drawing.Size(192, 22); + this.MinimizeSkippingMenuItem.Size = new System.Drawing.Size(202, 22); this.MinimizeSkippingMenuItem.Text = "Auto-minimize skipping"; this.MinimizeSkippingMenuItem.Click += new System.EventHandler(this.MinimizeSkippingMenuItem_Click); // // NeverSkipMenuItem // this.NeverSkipMenuItem.Name = "NeverSkipMenuItem"; - this.NeverSkipMenuItem.Size = new System.Drawing.Size(192, 22); + this.NeverSkipMenuItem.Size = new System.Drawing.Size(202, 22); this.NeverSkipMenuItem.Text = "Skip 0 (never)"; this.NeverSkipMenuItem.Click += new System.EventHandler(this.NeverSkipMenuItem_Click); // @@ -1609,116 +1609,116 @@ this.Frameskip8MenuItem, this.Frameskip9MenuItem}); this.toolStripMenuItem17.Name = "toolStripMenuItem17"; - this.toolStripMenuItem17.Size = new System.Drawing.Size(192, 22); + this.toolStripMenuItem17.Size = new System.Drawing.Size(202, 22); this.toolStripMenuItem17.Text = "Skip 1..9"; // // Frameskip1MenuItem // this.Frameskip1MenuItem.Name = "Frameskip1MenuItem"; - this.Frameskip1MenuItem.Size = new System.Drawing.Size(91, 22); + this.Frameskip1MenuItem.Size = new System.Drawing.Size(80, 22); this.Frameskip1MenuItem.Text = "1"; this.Frameskip1MenuItem.Click += new System.EventHandler(this.Frameskip1MenuItem_Click); // // Frameskip2MenuItem // this.Frameskip2MenuItem.Name = "Frameskip2MenuItem"; - this.Frameskip2MenuItem.Size = new System.Drawing.Size(91, 22); + this.Frameskip2MenuItem.Size = new System.Drawing.Size(80, 22); this.Frameskip2MenuItem.Text = "2"; this.Frameskip2MenuItem.Click += new System.EventHandler(this.Frameskip2MenuItem_Click); // // Frameskip3MenuItem // this.Frameskip3MenuItem.Name = "Frameskip3MenuItem"; - this.Frameskip3MenuItem.Size = new System.Drawing.Size(91, 22); + this.Frameskip3MenuItem.Size = new System.Drawing.Size(80, 22); this.Frameskip3MenuItem.Text = "3"; this.Frameskip3MenuItem.Click += new System.EventHandler(this.Frameskip3MenuItem_Click); // // Frameskip4MenuItem // this.Frameskip4MenuItem.Name = "Frameskip4MenuItem"; - this.Frameskip4MenuItem.Size = new System.Drawing.Size(91, 22); + this.Frameskip4MenuItem.Size = new System.Drawing.Size(80, 22); this.Frameskip4MenuItem.Text = "4"; this.Frameskip4MenuItem.Click += new System.EventHandler(this.Frameskip4MenuItem_Click); // // Frameskip5MenuItem // this.Frameskip5MenuItem.Name = "Frameskip5MenuItem"; - this.Frameskip5MenuItem.Size = new System.Drawing.Size(91, 22); + this.Frameskip5MenuItem.Size = new System.Drawing.Size(80, 22); this.Frameskip5MenuItem.Text = "5"; this.Frameskip5MenuItem.Click += new System.EventHandler(this.Frameskip5MenuItem_Click); // // Frameskip6MenuItem // this.Frameskip6MenuItem.Name = "Frameskip6MenuItem"; - this.Frameskip6MenuItem.Size = new System.Drawing.Size(91, 22); + this.Frameskip6MenuItem.Size = new System.Drawing.Size(80, 22); this.Frameskip6MenuItem.Text = "6"; this.Frameskip6MenuItem.Click += new System.EventHandler(this.Frameskip6MenuItem_Click); // // Frameskip7MenuItem // this.Frameskip7MenuItem.Name = "Frameskip7MenuItem"; - this.Frameskip7MenuItem.Size = new System.Drawing.Size(91, 22); + this.Frameskip7MenuItem.Size = new System.Drawing.Size(80, 22); this.Frameskip7MenuItem.Text = "7"; this.Frameskip7MenuItem.Click += new System.EventHandler(this.Frameskip7MenuItem_Click); // // Frameskip8MenuItem // this.Frameskip8MenuItem.Name = "Frameskip8MenuItem"; - this.Frameskip8MenuItem.Size = new System.Drawing.Size(91, 22); + this.Frameskip8MenuItem.Size = new System.Drawing.Size(80, 22); this.Frameskip8MenuItem.Text = "8"; this.Frameskip8MenuItem.Click += new System.EventHandler(this.Frameskip8MenuItem_Click); // // Frameskip9MenuItem // this.Frameskip9MenuItem.Name = "Frameskip9MenuItem"; - this.Frameskip9MenuItem.Size = new System.Drawing.Size(91, 22); + this.Frameskip9MenuItem.Size = new System.Drawing.Size(80, 22); this.Frameskip9MenuItem.Text = "9"; this.Frameskip9MenuItem.Click += new System.EventHandler(this.Frameskip9MenuItem_Click); // // toolStripMenuItem5 // this.toolStripMenuItem5.Name = "toolStripMenuItem5"; - this.toolStripMenuItem5.Size = new System.Drawing.Size(189, 6); + this.toolStripMenuItem5.Size = new System.Drawing.Size(199, 6); // // Speed50MenuItem // this.Speed50MenuItem.Name = "Speed50MenuItem"; - this.Speed50MenuItem.Size = new System.Drawing.Size(192, 22); + this.Speed50MenuItem.Size = new System.Drawing.Size(202, 22); this.Speed50MenuItem.Text = "Speed 50%"; this.Speed50MenuItem.Click += new System.EventHandler(this.Speed50MenuItem_Click); // // Speed75MenuItem // this.Speed75MenuItem.Name = "Speed75MenuItem"; - this.Speed75MenuItem.Size = new System.Drawing.Size(192, 22); + this.Speed75MenuItem.Size = new System.Drawing.Size(202, 22); this.Speed75MenuItem.Text = "Speed 75%"; this.Speed75MenuItem.Click += new System.EventHandler(this.Speed75MenuItem_Click); // // Speed100MenuItem // this.Speed100MenuItem.Name = "Speed100MenuItem"; - this.Speed100MenuItem.Size = new System.Drawing.Size(192, 22); + this.Speed100MenuItem.Size = new System.Drawing.Size(202, 22); this.Speed100MenuItem.Text = "Speed 100%"; this.Speed100MenuItem.Click += new System.EventHandler(this.Speed100MenuItem_Click); // // Speed150MenuItem // this.Speed150MenuItem.Name = "Speed150MenuItem"; - this.Speed150MenuItem.Size = new System.Drawing.Size(192, 22); + this.Speed150MenuItem.Size = new System.Drawing.Size(202, 22); this.Speed150MenuItem.Text = "Speed 150%"; this.Speed150MenuItem.Click += new System.EventHandler(this.Speed150MenuItem_Click); // // Speed200MenuItem // this.Speed200MenuItem.Name = "Speed200MenuItem"; - this.Speed200MenuItem.Size = new System.Drawing.Size(192, 22); + this.Speed200MenuItem.Size = new System.Drawing.Size(202, 22); this.Speed200MenuItem.Text = "Speed 200%"; this.Speed200MenuItem.Click += new System.EventHandler(this.Speed200MenuItem_Click); // // Speed400MenuItem // this.Speed400MenuItem.Name = "Speed400MenuItem"; - this.Speed400MenuItem.Size = new System.Drawing.Size(192, 22); + this.Speed400MenuItem.Size = new System.Drawing.Size(202, 22); this.Speed400MenuItem.Text = "Speed 400%"; this.Speed400MenuItem.Click += new System.EventHandler(this.Speed400MenuItem_Click); // @@ -1729,28 +1729,28 @@ this.InputOverHkMenuItem, this.HkOverInputMenuItem}); this.KeyPrioritySubMenu.Name = "KeyPrioritySubMenu"; - this.KeyPrioritySubMenu.Size = new System.Drawing.Size(176, 22); + this.KeyPrioritySubMenu.Size = new System.Drawing.Size(169, 22); this.KeyPrioritySubMenu.Text = "Key Priority"; this.KeyPrioritySubMenu.DropDownOpened += new System.EventHandler(this.KeyPriorityMenuItem_DropDownOpened); // // BothHkAndControllerMenuItem // this.BothHkAndControllerMenuItem.Name = "BothHkAndControllerMenuItem"; - this.BothHkAndControllerMenuItem.Size = new System.Drawing.Size(225, 22); + this.BothHkAndControllerMenuItem.Size = new System.Drawing.Size(229, 22); this.BothHkAndControllerMenuItem.Text = "Both Hotkeys and Controllers"; this.BothHkAndControllerMenuItem.Click += new System.EventHandler(this.BothHkAndControllerMenuItem_Click); // // InputOverHkMenuItem // this.InputOverHkMenuItem.Name = "InputOverHkMenuItem"; - this.InputOverHkMenuItem.Size = new System.Drawing.Size(225, 22); + this.InputOverHkMenuItem.Size = new System.Drawing.Size(229, 22); this.InputOverHkMenuItem.Text = "Input overrides Hotkeys"; this.InputOverHkMenuItem.Click += new System.EventHandler(this.InputOverHkMenuItem_Click); // // HkOverInputMenuItem // this.HkOverInputMenuItem.Name = "HkOverInputMenuItem"; - this.HkOverInputMenuItem.Size = new System.Drawing.Size(225, 22); + this.HkOverInputMenuItem.Size = new System.Drawing.Size(229, 22); this.HkOverInputMenuItem.Text = "Hotkeys override Input"; this.HkOverInputMenuItem.Click += new System.EventHandler(this.HkOverInputMenuItem_Click); // @@ -1765,68 +1765,68 @@ this.N64VideoPluginSettingsMenuItem, this.setLibretroCoreToolStripMenuItem}); this.CoresSubMenu.Name = "CoresSubMenu"; - this.CoresSubMenu.Size = new System.Drawing.Size(176, 22); + this.CoresSubMenu.Size = new System.Drawing.Size(169, 22); this.CoresSubMenu.Text = "Cores"; this.CoresSubMenu.DropDownOpened += new System.EventHandler(this.CoresSubMenu_DropDownOpened); // // GBInSGBMenuItem // this.GBInSGBMenuItem.Name = "GBInSGBMenuItem"; - this.GBInSGBMenuItem.Size = new System.Drawing.Size(206, 22); + this.GBInSGBMenuItem.Size = new System.Drawing.Size(210, 22); this.GBInSGBMenuItem.Text = "GB in SGB"; this.GBInSGBMenuItem.Click += new System.EventHandler(this.GBInSGBMenuItem_Click); // // NesInQuickNESMenuItem // this.NesInQuickNESMenuItem.Name = "NesInQuickNESMenuItem"; - this.NesInQuickNESMenuItem.Size = new System.Drawing.Size(206, 22); + this.NesInQuickNESMenuItem.Size = new System.Drawing.Size(210, 22); this.NesInQuickNESMenuItem.Text = "NES with QuickNES"; this.NesInQuickNESMenuItem.Click += new System.EventHandler(this.NesInQuickNESMenuItem_Click); // // SnesWithSnes9xMenuItem // this.SnesWithSnes9xMenuItem.Name = "SnesWithSnes9xMenuItem"; - this.SnesWithSnes9xMenuItem.Size = new System.Drawing.Size(206, 22); + this.SnesWithSnes9xMenuItem.Size = new System.Drawing.Size(210, 22); this.SnesWithSnes9xMenuItem.Text = "SNES with Snes9x"; this.SnesWithSnes9xMenuItem.Click += new System.EventHandler(this.SnesWithSnes9xMenuItem_Click); // // gBAWithMGBAToolStripMenuItem // this.gBAWithMGBAToolStripMenuItem.Name = "gBAWithMGBAToolStripMenuItem"; - this.gBAWithMGBAToolStripMenuItem.Size = new System.Drawing.Size(206, 22); + this.gBAWithMGBAToolStripMenuItem.Size = new System.Drawing.Size(210, 22); this.gBAWithMGBAToolStripMenuItem.Text = "GBA with mGBA"; this.gBAWithMGBAToolStripMenuItem.Click += new System.EventHandler(this.gBAWithMGBAToolStripMenuItem_Click); // // toolStripSeparator8 // this.toolStripSeparator8.Name = "toolStripSeparator8"; - this.toolStripSeparator8.Size = new System.Drawing.Size(203, 6); + this.toolStripSeparator8.Size = new System.Drawing.Size(207, 6); // // N64VideoPluginSettingsMenuItem // this.N64VideoPluginSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.monitor; this.N64VideoPluginSettingsMenuItem.Name = "N64VideoPluginSettingsMenuItem"; - this.N64VideoPluginSettingsMenuItem.Size = new System.Drawing.Size(206, 22); + this.N64VideoPluginSettingsMenuItem.Size = new System.Drawing.Size(210, 22); this.N64VideoPluginSettingsMenuItem.Text = "N64 Video Plugin Settings"; this.N64VideoPluginSettingsMenuItem.Click += new System.EventHandler(this.N64VideoPluginSettingsMenuItem_Click); // // setLibretroCoreToolStripMenuItem // this.setLibretroCoreToolStripMenuItem.Name = "setLibretroCoreToolStripMenuItem"; - this.setLibretroCoreToolStripMenuItem.Size = new System.Drawing.Size(206, 22); + this.setLibretroCoreToolStripMenuItem.Size = new System.Drawing.Size(210, 22); this.setLibretroCoreToolStripMenuItem.Text = "Set Libretro Core"; this.setLibretroCoreToolStripMenuItem.Click += new System.EventHandler(this.setLibretroCoreToolStripMenuItem_Click); // // toolStripSeparator10 // this.toolStripSeparator10.Name = "toolStripSeparator10"; - this.toolStripSeparator10.Size = new System.Drawing.Size(173, 6); + this.toolStripSeparator10.Size = new System.Drawing.Size(166, 6); // // SaveConfigMenuItem // this.SaveConfigMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Save; this.SaveConfigMenuItem.Name = "SaveConfigMenuItem"; - this.SaveConfigMenuItem.Size = new System.Drawing.Size(176, 22); + this.SaveConfigMenuItem.Size = new System.Drawing.Size(169, 22); this.SaveConfigMenuItem.Text = "Save Config"; this.SaveConfigMenuItem.Click += new System.EventHandler(this.SaveConfigMenuItem_Click); // @@ -1834,7 +1834,7 @@ // this.LoadConfigMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.LoadConfig; this.LoadConfigMenuItem.Name = "LoadConfigMenuItem"; - this.LoadConfigMenuItem.Size = new System.Drawing.Size(176, 22); + this.LoadConfigMenuItem.Size = new System.Drawing.Size(169, 22); this.LoadConfigMenuItem.Text = "Load Config"; this.LoadConfigMenuItem.Click += new System.EventHandler(this.LoadConfigMenuItem_Click); // @@ -1854,16 +1854,16 @@ this.VirtualPadMenuItem, this.AutoHawkMenuItem, this.BasicBotMenuItem, + this.LuaConsoleMenuItem, this.toolStripSeparator11, this.CheatsMenuItem, - this.LuaConsoleMenuItem, - this.externalToolToolStripMenuItem, + this.gameSharkConverterToolStripMenuItem, this.toolStripSeparator29, this.MultiDiskBundlerFileMenuItem, - this.gameSharkConverterToolStripMenuItem, + this.externalToolToolStripMenuItem, this.batchRunnerToolStripMenuItem}); this.ToolsSubMenu.Name = "ToolsSubMenu"; - this.ToolsSubMenu.Size = new System.Drawing.Size(44, 17); + this.ToolsSubMenu.Size = new System.Drawing.Size(47, 19); this.ToolsSubMenu.Text = "&Tools"; this.ToolsSubMenu.DropDownOpened += new System.EventHandler(this.ToolsSubMenu_DropDownOpened); // @@ -1871,20 +1871,20 @@ // this.ToolBoxMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.ToolBox; this.ToolBoxMenuItem.Name = "ToolBoxMenuItem"; - this.ToolBoxMenuItem.Size = new System.Drawing.Size(191, 22); + this.ToolBoxMenuItem.Size = new System.Drawing.Size(189, 22); this.ToolBoxMenuItem.Text = "&Tool Box"; this.ToolBoxMenuItem.Click += new System.EventHandler(this.ToolBoxMenuItem_Click); // // toolStripSeparator12 // this.toolStripSeparator12.Name = "toolStripSeparator12"; - this.toolStripSeparator12.Size = new System.Drawing.Size(188, 6); + this.toolStripSeparator12.Size = new System.Drawing.Size(186, 6); // // RamWatchMenuItem // this.RamWatchMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.watch; this.RamWatchMenuItem.Name = "RamWatchMenuItem"; - this.RamWatchMenuItem.Size = new System.Drawing.Size(191, 22); + this.RamWatchMenuItem.Size = new System.Drawing.Size(189, 22); this.RamWatchMenuItem.Text = "RAM &Watch"; this.RamWatchMenuItem.Click += new System.EventHandler(this.RamWatchMenuItem_Click); // @@ -1892,7 +1892,7 @@ // this.RamSearchMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.search; this.RamSearchMenuItem.Name = "RamSearchMenuItem"; - this.RamSearchMenuItem.Size = new System.Drawing.Size(191, 22); + this.RamSearchMenuItem.Size = new System.Drawing.Size(189, 22); this.RamSearchMenuItem.Text = "RAM &Search"; this.RamSearchMenuItem.Click += new System.EventHandler(this.RamSearchMenuItem_Click); // @@ -1900,7 +1900,7 @@ // this.HexEditorMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.poke; this.HexEditorMenuItem.Name = "HexEditorMenuItem"; - this.HexEditorMenuItem.Size = new System.Drawing.Size(191, 22); + this.HexEditorMenuItem.Size = new System.Drawing.Size(189, 22); this.HexEditorMenuItem.Text = "&Hex Editor"; this.HexEditorMenuItem.Click += new System.EventHandler(this.HexEditorMenuItem_Click); // @@ -1908,7 +1908,7 @@ // this.TraceLoggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.pencil; this.TraceLoggerMenuItem.Name = "TraceLoggerMenuItem"; - this.TraceLoggerMenuItem.Size = new System.Drawing.Size(191, 22); + this.TraceLoggerMenuItem.Size = new System.Drawing.Size(189, 22); this.TraceLoggerMenuItem.Text = "Trace &Logger"; this.TraceLoggerMenuItem.Click += new System.EventHandler(this.TraceLoggerMenuItem_Click); // @@ -1916,7 +1916,7 @@ // this.CodeDataLoggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.cdlogger; this.CodeDataLoggerMenuItem.Name = "CodeDataLoggerMenuItem"; - this.CodeDataLoggerMenuItem.Size = new System.Drawing.Size(191, 22); + this.CodeDataLoggerMenuItem.Size = new System.Drawing.Size(189, 22); this.CodeDataLoggerMenuItem.Text = "Code-Data Logger"; this.CodeDataLoggerMenuItem.Click += new System.EventHandler(this.CodeDataLoggerMenuItem_Click); // @@ -1924,7 +1924,7 @@ // this.DebuggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Bug; this.DebuggerMenuItem.Name = "DebuggerMenuItem"; - this.DebuggerMenuItem.Size = new System.Drawing.Size(191, 22); + this.DebuggerMenuItem.Size = new System.Drawing.Size(189, 22); this.DebuggerMenuItem.Text = "&Debugger"; this.DebuggerMenuItem.Click += new System.EventHandler(this.DebuggerMenuItem_Click); // @@ -1932,14 +1932,14 @@ // this.TAStudioMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.TAStudio; this.TAStudioMenuItem.Name = "TAStudioMenuItem"; - this.TAStudioMenuItem.Size = new System.Drawing.Size(191, 22); + this.TAStudioMenuItem.Size = new System.Drawing.Size(189, 22); this.TAStudioMenuItem.Text = "&TAStudio"; this.TAStudioMenuItem.Click += new System.EventHandler(this.TAStudioMenuItem_Click); // // MacroToolMenuItem // this.MacroToolMenuItem.Name = "MacroToolMenuItem"; - this.MacroToolMenuItem.Size = new System.Drawing.Size(191, 22); + this.MacroToolMenuItem.Size = new System.Drawing.Size(189, 22); this.MacroToolMenuItem.Text = "&Macro Tool"; this.MacroToolMenuItem.Click += new System.EventHandler(this.MacroToolMenuItem_Click); // @@ -1947,34 +1947,34 @@ // this.VirtualPadMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.VirtualPadMenuItem.Name = "VirtualPadMenuItem"; - this.VirtualPadMenuItem.Size = new System.Drawing.Size(191, 22); + this.VirtualPadMenuItem.Size = new System.Drawing.Size(189, 22); this.VirtualPadMenuItem.Text = "Virtual Pad"; this.VirtualPadMenuItem.Click += new System.EventHandler(this.VirtualPadMenuItem_Click); // // AutoHawkMenuItem // this.AutoHawkMenuItem.Name = "AutoHawkMenuItem"; - this.AutoHawkMenuItem.Size = new System.Drawing.Size(191, 22); + this.AutoHawkMenuItem.Size = new System.Drawing.Size(189, 22); this.AutoHawkMenuItem.Text = "AutoHawk"; this.AutoHawkMenuItem.Click += new System.EventHandler(this.AutoHawkMenuItem_Click); // // BasicBotMenuItem // this.BasicBotMenuItem.Name = "BasicBotMenuItem"; - this.BasicBotMenuItem.Size = new System.Drawing.Size(191, 22); + this.BasicBotMenuItem.Size = new System.Drawing.Size(189, 22); this.BasicBotMenuItem.Text = "Basic Bot"; this.BasicBotMenuItem.Click += new System.EventHandler(this.BasicBotMenuItem_Click); // // toolStripSeparator11 // this.toolStripSeparator11.Name = "toolStripSeparator11"; - this.toolStripSeparator11.Size = new System.Drawing.Size(188, 6); + this.toolStripSeparator11.Size = new System.Drawing.Size(186, 6); // // CheatsMenuItem // this.CheatsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Freeze; this.CheatsMenuItem.Name = "CheatsMenuItem"; - this.CheatsMenuItem.Size = new System.Drawing.Size(191, 22); + this.CheatsMenuItem.Size = new System.Drawing.Size(189, 22); this.CheatsMenuItem.Text = "Cheats"; this.CheatsMenuItem.Click += new System.EventHandler(this.CheatsMenuItem_Click); // @@ -1982,7 +1982,7 @@ // this.LuaConsoleMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lua; this.LuaConsoleMenuItem.Name = "LuaConsoleMenuItem"; - this.LuaConsoleMenuItem.Size = new System.Drawing.Size(191, 22); + this.LuaConsoleMenuItem.Size = new System.Drawing.Size(189, 22); this.LuaConsoleMenuItem.Text = "Lua Console"; this.LuaConsoleMenuItem.Click += new System.EventHandler(this.LuaConsoleMenuItem_Click); // @@ -1991,26 +1991,26 @@ this.externalToolToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.dummyExternalTool}); this.externalToolToolStripMenuItem.Name = "externalToolToolStripMenuItem"; - this.externalToolToolStripMenuItem.Size = new System.Drawing.Size(191, 22); + this.externalToolToolStripMenuItem.Size = new System.Drawing.Size(189, 22); this.externalToolToolStripMenuItem.Text = "External Tool"; this.externalToolToolStripMenuItem.DropDownOpening += new System.EventHandler(this.ExternalToolToolStripMenuItem_DropDownOpening); // // dummyExternalTool // this.dummyExternalTool.Name = "dummyExternalTool"; - this.dummyExternalTool.Size = new System.Drawing.Size(110, 22); + this.dummyExternalTool.Size = new System.Drawing.Size(152, 22); this.dummyExternalTool.Text = "None"; // // toolStripSeparator29 // this.toolStripSeparator29.Name = "toolStripSeparator29"; - this.toolStripSeparator29.Size = new System.Drawing.Size(188, 6); + this.toolStripSeparator29.Size = new System.Drawing.Size(186, 6); // // MultiDiskBundlerFileMenuItem // this.MultiDiskBundlerFileMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveConfig; this.MultiDiskBundlerFileMenuItem.Name = "MultiDiskBundlerFileMenuItem"; - this.MultiDiskBundlerFileMenuItem.Size = new System.Drawing.Size(191, 22); + this.MultiDiskBundlerFileMenuItem.Size = new System.Drawing.Size(189, 22); this.MultiDiskBundlerFileMenuItem.Text = "Multi-disk Bundler"; this.MultiDiskBundlerFileMenuItem.Click += new System.EventHandler(this.CreateMultigameFileMenuItem_Click); // @@ -2018,14 +2018,14 @@ // this.gameSharkConverterToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("gameSharkConverterToolStripMenuItem.Image"))); this.gameSharkConverterToolStripMenuItem.Name = "gameSharkConverterToolStripMenuItem"; - this.gameSharkConverterToolStripMenuItem.Size = new System.Drawing.Size(191, 22); + this.gameSharkConverterToolStripMenuItem.Size = new System.Drawing.Size(189, 22); this.gameSharkConverterToolStripMenuItem.Text = "GameShark Converter"; this.gameSharkConverterToolStripMenuItem.Click += new System.EventHandler(this.gameSharkConverterToolStripMenuItem_Click); // // batchRunnerToolStripMenuItem // this.batchRunnerToolStripMenuItem.Name = "batchRunnerToolStripMenuItem"; - this.batchRunnerToolStripMenuItem.Size = new System.Drawing.Size(191, 22); + this.batchRunnerToolStripMenuItem.Size = new System.Drawing.Size(189, 22); this.batchRunnerToolStripMenuItem.Text = "Batch Runner"; this.batchRunnerToolStripMenuItem.Visible = false; this.batchRunnerToolStripMenuItem.Click += new System.EventHandler(this.batchRunnerToolStripMenuItem_Click); @@ -2048,7 +2048,7 @@ this.FDSControlsMenuItem, this.barcodeReaderToolStripMenuItem}); this.NESSubMenu.Name = "NESSubMenu"; - this.NESSubMenu.Size = new System.Drawing.Size(38, 17); + this.NESSubMenu.Size = new System.Drawing.Size(40, 19); this.NESSubMenu.Text = "&NES"; this.NESSubMenu.DropDownOpened += new System.EventHandler(this.NESSubMenu_DropDownOpened); // @@ -2058,67 +2058,67 @@ this.quickNESToolStripMenuItem, this.nesHawkToolStripMenuItem}); this.coreToolStripMenuItem.Name = "coreToolStripMenuItem"; - this.coreToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.coreToolStripMenuItem.Size = new System.Drawing.Size(233, 22); this.coreToolStripMenuItem.Text = "&Core"; this.coreToolStripMenuItem.DropDownOpened += new System.EventHandler(this.coreToolStripMenuItem_DropDownOpened); // // quickNESToolStripMenuItem // this.quickNESToolStripMenuItem.Name = "quickNESToolStripMenuItem"; - this.quickNESToolStripMenuItem.Size = new System.Drawing.Size(129, 22); + this.quickNESToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.quickNESToolStripMenuItem.Text = "&QuickNes"; this.quickNESToolStripMenuItem.Click += new System.EventHandler(this.quickNESToolStripMenuItem_Click); // // nesHawkToolStripMenuItem // this.nesHawkToolStripMenuItem.Name = "nesHawkToolStripMenuItem"; - this.nesHawkToolStripMenuItem.Size = new System.Drawing.Size(129, 22); + this.nesHawkToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.nesHawkToolStripMenuItem.Text = "&NesHawk"; this.nesHawkToolStripMenuItem.Click += new System.EventHandler(this.nesHawkToolStripMenuItem_Click); // // toolStripSeparator34 // this.toolStripSeparator34.Name = "toolStripSeparator34"; - this.toolStripSeparator34.Size = new System.Drawing.Size(225, 6); + this.toolStripSeparator34.Size = new System.Drawing.Size(230, 6); // // NESPPUViewerMenuItem // this.NESPPUViewerMenuItem.Name = "NESPPUViewerMenuItem"; - this.NESPPUViewerMenuItem.Size = new System.Drawing.Size(228, 22); + this.NESPPUViewerMenuItem.Size = new System.Drawing.Size(233, 22); this.NESPPUViewerMenuItem.Text = "&PPU Viewer"; this.NESPPUViewerMenuItem.Click += new System.EventHandler(this.NESPPUViewerMenuItem_Click); // // NESNametableViewerMenuItem // this.NESNametableViewerMenuItem.Name = "NESNametableViewerMenuItem"; - this.NESNametableViewerMenuItem.Size = new System.Drawing.Size(228, 22); + this.NESNametableViewerMenuItem.Size = new System.Drawing.Size(233, 22); this.NESNametableViewerMenuItem.Text = "&Nametable Viewer"; this.NESNametableViewerMenuItem.Click += new System.EventHandler(this.NESNametableViewerMenuItem_Click); // // NESGameGenieCodesMenuItem // this.NESGameGenieCodesMenuItem.Name = "NESGameGenieCodesMenuItem"; - this.NESGameGenieCodesMenuItem.Size = new System.Drawing.Size(228, 22); + this.NESGameGenieCodesMenuItem.Size = new System.Drawing.Size(233, 22); this.NESGameGenieCodesMenuItem.Text = "&Game Genie Encoder/Decoder"; this.NESGameGenieCodesMenuItem.Click += new System.EventHandler(this.NESGameGenieCodesMenuItem_Click); // // musicRipperToolStripMenuItem // this.musicRipperToolStripMenuItem.Name = "musicRipperToolStripMenuItem"; - this.musicRipperToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.musicRipperToolStripMenuItem.Size = new System.Drawing.Size(233, 22); this.musicRipperToolStripMenuItem.Text = "Music Ripper"; this.musicRipperToolStripMenuItem.Click += new System.EventHandler(this.musicRipperToolStripMenuItem_Click); // // toolStripSeparator17 // this.toolStripSeparator17.Name = "toolStripSeparator17"; - this.toolStripSeparator17.Size = new System.Drawing.Size(225, 6); + this.toolStripSeparator17.Size = new System.Drawing.Size(230, 6); // // NesControllerSettingsMenuItem // this.NesControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.NesControllerSettingsMenuItem.Name = "NesControllerSettingsMenuItem"; - this.NesControllerSettingsMenuItem.Size = new System.Drawing.Size(228, 22); + this.NesControllerSettingsMenuItem.Size = new System.Drawing.Size(233, 22); this.NesControllerSettingsMenuItem.Text = "Controller Settings..."; this.NesControllerSettingsMenuItem.Click += new System.EventHandler(this.NesControllerSettingsMenuItem_Click); // @@ -2126,7 +2126,7 @@ // this.NESGraphicSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.tvIcon; this.NESGraphicSettingsMenuItem.Name = "NESGraphicSettingsMenuItem"; - this.NESGraphicSettingsMenuItem.Size = new System.Drawing.Size(228, 22); + this.NESGraphicSettingsMenuItem.Size = new System.Drawing.Size(233, 22); this.NESGraphicSettingsMenuItem.Text = "Graphics Settings..."; this.NESGraphicSettingsMenuItem.Click += new System.EventHandler(this.NESGraphicSettingsMenuItem_Click); // @@ -2134,42 +2134,42 @@ // this.NESSoundChannelsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AudioHS; this.NESSoundChannelsMenuItem.Name = "NESSoundChannelsMenuItem"; - this.NESSoundChannelsMenuItem.Size = new System.Drawing.Size(228, 22); + this.NESSoundChannelsMenuItem.Size = new System.Drawing.Size(233, 22); this.NESSoundChannelsMenuItem.Text = "Sound Channels..."; this.NESSoundChannelsMenuItem.Click += new System.EventHandler(this.NESSoundChannelsMenuItem_Click); // // MovieSettingsMenuItem // this.MovieSettingsMenuItem.Name = "MovieSettingsMenuItem"; - this.MovieSettingsMenuItem.Size = new System.Drawing.Size(228, 22); + this.MovieSettingsMenuItem.Size = new System.Drawing.Size(233, 22); this.MovieSettingsMenuItem.Text = "Advanced Settings..."; this.MovieSettingsMenuItem.Click += new System.EventHandler(this.MovieSettingsMenuItem_Click); // // toolStripSeparator22 // this.toolStripSeparator22.Name = "toolStripSeparator22"; - this.toolStripSeparator22.Size = new System.Drawing.Size(225, 6); + this.toolStripSeparator22.Size = new System.Drawing.Size(230, 6); // // FDSControlsMenuItem // this.FDSControlsMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.FdsEjectDiskMenuItem}); this.FDSControlsMenuItem.Name = "FDSControlsMenuItem"; - this.FDSControlsMenuItem.Size = new System.Drawing.Size(228, 22); + this.FDSControlsMenuItem.Size = new System.Drawing.Size(233, 22); this.FDSControlsMenuItem.Text = "FDS Controls"; this.FDSControlsMenuItem.DropDownOpened += new System.EventHandler(this.FdsControlsMenuItem_DropDownOpened); // // FdsEjectDiskMenuItem // this.FdsEjectDiskMenuItem.Name = "FdsEjectDiskMenuItem"; - this.FdsEjectDiskMenuItem.Size = new System.Drawing.Size(131, 22); + this.FdsEjectDiskMenuItem.Size = new System.Drawing.Size(124, 22); this.FdsEjectDiskMenuItem.Text = "&Eject Disk"; this.FdsEjectDiskMenuItem.Click += new System.EventHandler(this.FdsEjectDiskMenuItem_Click); // // barcodeReaderToolStripMenuItem // this.barcodeReaderToolStripMenuItem.Name = "barcodeReaderToolStripMenuItem"; - this.barcodeReaderToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.barcodeReaderToolStripMenuItem.Size = new System.Drawing.Size(233, 22); this.barcodeReaderToolStripMenuItem.Text = "Barcode Reader"; this.barcodeReaderToolStripMenuItem.Click += new System.EventHandler(this.barcodeReaderToolStripMenuItem_Click); // @@ -2187,7 +2187,7 @@ this.PCEAlwaysEqualizeVolumesMenuItem, this.PCEArcadeCardRewindEnableMenuItem}); this.PCESubMenu.Name = "PCESubMenu"; - this.PCESubMenu.Size = new System.Drawing.Size(38, 17); + this.PCESubMenu.Size = new System.Drawing.Size(40, 19); this.PCESubMenu.Text = "&PCE"; this.PCESubMenu.DropDownOpened += new System.EventHandler(this.PCESubMenu_DropDownOpened); // @@ -2195,7 +2195,7 @@ // this.PceControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.PceControllerSettingsMenuItem.Name = "PceControllerSettingsMenuItem"; - this.PceControllerSettingsMenuItem.Size = new System.Drawing.Size(251, 22); + this.PceControllerSettingsMenuItem.Size = new System.Drawing.Size(258, 22); this.PceControllerSettingsMenuItem.Text = "Controller Settings"; this.PceControllerSettingsMenuItem.Click += new System.EventHandler(this.PceControllerSettingsMenuItem_Click); // @@ -2203,59 +2203,59 @@ // this.PCEGraphicsSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.tvIcon; this.PCEGraphicsSettingsMenuItem.Name = "PCEGraphicsSettingsMenuItem"; - this.PCEGraphicsSettingsMenuItem.Size = new System.Drawing.Size(251, 22); + this.PCEGraphicsSettingsMenuItem.Size = new System.Drawing.Size(258, 22); this.PCEGraphicsSettingsMenuItem.Text = "Graphics Settings"; this.PCEGraphicsSettingsMenuItem.Click += new System.EventHandler(this.PCEGraphicsSettingsMenuItem_Click); // // toolStripSeparator32 // this.toolStripSeparator32.Name = "toolStripSeparator32"; - this.toolStripSeparator32.Size = new System.Drawing.Size(248, 6); + this.toolStripSeparator32.Size = new System.Drawing.Size(255, 6); // // PCEBGViewerMenuItem // this.PCEBGViewerMenuItem.Name = "PCEBGViewerMenuItem"; - this.PCEBGViewerMenuItem.Size = new System.Drawing.Size(251, 22); + this.PCEBGViewerMenuItem.Size = new System.Drawing.Size(258, 22); this.PCEBGViewerMenuItem.Text = "&BG Viewer"; this.PCEBGViewerMenuItem.Click += new System.EventHandler(this.PCEBGViewerMenuItem_Click); // // PCEtileViewerToolStripMenuItem // this.PCEtileViewerToolStripMenuItem.Name = "PCEtileViewerToolStripMenuItem"; - this.PCEtileViewerToolStripMenuItem.Size = new System.Drawing.Size(251, 22); + this.PCEtileViewerToolStripMenuItem.Size = new System.Drawing.Size(258, 22); this.PCEtileViewerToolStripMenuItem.Text = "&Tile Viewer"; this.PCEtileViewerToolStripMenuItem.Click += new System.EventHandler(this.PceTileViewerMenuItem_Click); // // PceSoundDebuggerToolStripMenuItem // this.PceSoundDebuggerToolStripMenuItem.Name = "PceSoundDebuggerToolStripMenuItem"; - this.PceSoundDebuggerToolStripMenuItem.Size = new System.Drawing.Size(251, 22); + this.PceSoundDebuggerToolStripMenuItem.Size = new System.Drawing.Size(258, 22); this.PceSoundDebuggerToolStripMenuItem.Text = "&Sound Debugger"; this.PceSoundDebuggerToolStripMenuItem.Click += new System.EventHandler(this.PceSoundDebuggerToolStripMenuItem_Click); // // toolStripSeparator25 // this.toolStripSeparator25.Name = "toolStripSeparator25"; - this.toolStripSeparator25.Size = new System.Drawing.Size(248, 6); + this.toolStripSeparator25.Size = new System.Drawing.Size(255, 6); // // PCEAlwaysPerformSpriteLimitMenuItem // this.PCEAlwaysPerformSpriteLimitMenuItem.Name = "PCEAlwaysPerformSpriteLimitMenuItem"; - this.PCEAlwaysPerformSpriteLimitMenuItem.Size = new System.Drawing.Size(251, 22); + this.PCEAlwaysPerformSpriteLimitMenuItem.Size = new System.Drawing.Size(258, 22); this.PCEAlwaysPerformSpriteLimitMenuItem.Text = "Always Perform Sprite Limit"; this.PCEAlwaysPerformSpriteLimitMenuItem.Click += new System.EventHandler(this.PCEAlwaysPerformSpriteLimitMenuItem_Click); // // PCEAlwaysEqualizeVolumesMenuItem // this.PCEAlwaysEqualizeVolumesMenuItem.Name = "PCEAlwaysEqualizeVolumesMenuItem"; - this.PCEAlwaysEqualizeVolumesMenuItem.Size = new System.Drawing.Size(251, 22); + this.PCEAlwaysEqualizeVolumesMenuItem.Size = new System.Drawing.Size(258, 22); this.PCEAlwaysEqualizeVolumesMenuItem.Text = "Always Equalize Volumes (PCE-CD)"; this.PCEAlwaysEqualizeVolumesMenuItem.Click += new System.EventHandler(this.PCEAlwaysEqualizeVolumesMenuItem_Click); // // PCEArcadeCardRewindEnableMenuItem // this.PCEArcadeCardRewindEnableMenuItem.Name = "PCEArcadeCardRewindEnableMenuItem"; - this.PCEArcadeCardRewindEnableMenuItem.Size = new System.Drawing.Size(251, 22); + this.PCEArcadeCardRewindEnableMenuItem.Size = new System.Drawing.Size(258, 22); this.PCEArcadeCardRewindEnableMenuItem.Text = "Arcade Card Rewind-Enable Hack"; this.PCEArcadeCardRewindEnableMenuItem.Click += new System.EventHandler(this.PCEArcadeCardRewindEnableMenuItem_Click); // @@ -2278,7 +2278,7 @@ this.SMSVDPViewerToolStripMenuItem, this.GGGameGenieMenuItem}); this.SMSSubMenu.Name = "SMSSubMenu"; - this.SMSSubMenu.Size = new System.Drawing.Size(39, 17); + this.SMSSubMenu.Size = new System.Drawing.Size(42, 19); this.SMSSubMenu.Text = "&SMS"; this.SMSSubMenu.DropDownOpened += new System.EventHandler(this.SMSSubMenu_DropDownOpened); // @@ -2289,27 +2289,27 @@ this.SMSregionJapanToolStripMenuItem, this.SMSregionAutoToolStripMenuItem}); this.SMSregionToolStripMenuItem.Name = "SMSregionToolStripMenuItem"; - this.SMSregionToolStripMenuItem.Size = new System.Drawing.Size(232, 22); + this.SMSregionToolStripMenuItem.Size = new System.Drawing.Size(241, 22); this.SMSregionToolStripMenuItem.Text = "Region"; // // SMSregionExportToolStripMenuItem // this.SMSregionExportToolStripMenuItem.Name = "SMSregionExportToolStripMenuItem"; - this.SMSregionExportToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.SMSregionExportToolStripMenuItem.Size = new System.Drawing.Size(107, 22); this.SMSregionExportToolStripMenuItem.Text = "Export"; this.SMSregionExportToolStripMenuItem.Click += new System.EventHandler(this.SMS_RegionExport_Click); // // SMSregionJapanToolStripMenuItem // this.SMSregionJapanToolStripMenuItem.Name = "SMSregionJapanToolStripMenuItem"; - this.SMSregionJapanToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.SMSregionJapanToolStripMenuItem.Size = new System.Drawing.Size(107, 22); this.SMSregionJapanToolStripMenuItem.Text = "Japan"; this.SMSregionJapanToolStripMenuItem.Click += new System.EventHandler(this.SMS_RegionJapan_Click); // // SMSregionAutoToolStripMenuItem // this.SMSregionAutoToolStripMenuItem.Name = "SMSregionAutoToolStripMenuItem"; - this.SMSregionAutoToolStripMenuItem.Size = new System.Drawing.Size(117, 22); + this.SMSregionAutoToolStripMenuItem.Size = new System.Drawing.Size(107, 22); this.SMSregionAutoToolStripMenuItem.Text = "Auto"; this.SMSregionAutoToolStripMenuItem.Click += new System.EventHandler(this.SMS_RegionAuto_Click); // @@ -2320,114 +2320,114 @@ this.SMSdisplayPalToolStripMenuItem, this.SMSdisplayAutoToolStripMenuItem}); this.SMSdisplayToolStripMenuItem.Name = "SMSdisplayToolStripMenuItem"; - this.SMSdisplayToolStripMenuItem.Size = new System.Drawing.Size(232, 22); + this.SMSdisplayToolStripMenuItem.Size = new System.Drawing.Size(241, 22); this.SMSdisplayToolStripMenuItem.Text = "Display Type"; // // SMSdisplayNtscToolStripMenuItem // this.SMSdisplayNtscToolStripMenuItem.Name = "SMSdisplayNtscToolStripMenuItem"; - this.SMSdisplayNtscToolStripMenuItem.Size = new System.Drawing.Size(111, 22); + this.SMSdisplayNtscToolStripMenuItem.Size = new System.Drawing.Size(104, 22); this.SMSdisplayNtscToolStripMenuItem.Text = "NTSC"; this.SMSdisplayNtscToolStripMenuItem.Click += new System.EventHandler(this.SMS_DisplayNTSC_Click); // // SMSdisplayPalToolStripMenuItem // this.SMSdisplayPalToolStripMenuItem.Name = "SMSdisplayPalToolStripMenuItem"; - this.SMSdisplayPalToolStripMenuItem.Size = new System.Drawing.Size(111, 22); + this.SMSdisplayPalToolStripMenuItem.Size = new System.Drawing.Size(104, 22); this.SMSdisplayPalToolStripMenuItem.Text = "PAL"; this.SMSdisplayPalToolStripMenuItem.Click += new System.EventHandler(this.SMS_DisplayPAL_Click); // // SMSdisplayAutoToolStripMenuItem // this.SMSdisplayAutoToolStripMenuItem.Name = "SMSdisplayAutoToolStripMenuItem"; - this.SMSdisplayAutoToolStripMenuItem.Size = new System.Drawing.Size(111, 22); + this.SMSdisplayAutoToolStripMenuItem.Size = new System.Drawing.Size(104, 22); this.SMSdisplayAutoToolStripMenuItem.Text = "Auto"; this.SMSdisplayAutoToolStripMenuItem.Click += new System.EventHandler(this.SMS_DisplayAuto_Click); // // SMStoolStripMenuItem2 // this.SMStoolStripMenuItem2.Name = "SMStoolStripMenuItem2"; - this.SMStoolStripMenuItem2.Size = new System.Drawing.Size(229, 6); + this.SMStoolStripMenuItem2.Size = new System.Drawing.Size(238, 6); // // SMSenableBIOSToolStripMenuItem // this.SMSenableBIOSToolStripMenuItem.Name = "SMSenableBIOSToolStripMenuItem"; - this.SMSenableBIOSToolStripMenuItem.Size = new System.Drawing.Size(232, 22); + this.SMSenableBIOSToolStripMenuItem.Size = new System.Drawing.Size(241, 22); this.SMSenableBIOSToolStripMenuItem.Text = "Enable BIOS"; this.SMSenableBIOSToolStripMenuItem.Click += new System.EventHandler(this.SMS_BIOS_Click); // // SMSEnableFMChipMenuItem // this.SMSEnableFMChipMenuItem.Name = "SMSEnableFMChipMenuItem"; - this.SMSEnableFMChipMenuItem.Size = new System.Drawing.Size(232, 22); + this.SMSEnableFMChipMenuItem.Size = new System.Drawing.Size(241, 22); this.SMSEnableFMChipMenuItem.Text = "&Enable FM Chip"; this.SMSEnableFMChipMenuItem.Click += new System.EventHandler(this.SMSEnableFMChipMenuItem_Click); // // SMSOverclockMenuItem // this.SMSOverclockMenuItem.Name = "SMSOverclockMenuItem"; - this.SMSOverclockMenuItem.Size = new System.Drawing.Size(232, 22); + this.SMSOverclockMenuItem.Size = new System.Drawing.Size(241, 22); this.SMSOverclockMenuItem.Text = "&Overclock when Known Safe"; this.SMSOverclockMenuItem.Click += new System.EventHandler(this.SMSOverclockMenuItem_Click); // // SMSForceStereoMenuItem // this.SMSForceStereoMenuItem.Name = "SMSForceStereoMenuItem"; - this.SMSForceStereoMenuItem.Size = new System.Drawing.Size(232, 22); + this.SMSForceStereoMenuItem.Size = new System.Drawing.Size(241, 22); this.SMSForceStereoMenuItem.Text = "&Force Stereo Separation"; this.SMSForceStereoMenuItem.Click += new System.EventHandler(this.SMSForceStereoMenuItem_Click); // // SMSSpriteLimitMenuItem // this.SMSSpriteLimitMenuItem.Name = "SMSSpriteLimitMenuItem"; - this.SMSSpriteLimitMenuItem.Size = new System.Drawing.Size(232, 22); + this.SMSSpriteLimitMenuItem.Size = new System.Drawing.Size(241, 22); this.SMSSpriteLimitMenuItem.Text = "Sprite &Limit"; this.SMSSpriteLimitMenuItem.Click += new System.EventHandler(this.SMSSpriteLimitMenuItem_Click); // // SMSFix3DGameDisplayToolStripMenuItem // this.SMSFix3DGameDisplayToolStripMenuItem.Name = "SMSFix3DGameDisplayToolStripMenuItem"; - this.SMSFix3DGameDisplayToolStripMenuItem.Size = new System.Drawing.Size(232, 22); + this.SMSFix3DGameDisplayToolStripMenuItem.Size = new System.Drawing.Size(241, 22); this.SMSFix3DGameDisplayToolStripMenuItem.Text = "Fix 3D Game Display"; this.SMSFix3DGameDisplayToolStripMenuItem.Click += new System.EventHandler(this.SMSFix3DDisplayMenuItem_Click); // // ShowClippedRegionsMenuItem // this.ShowClippedRegionsMenuItem.Name = "ShowClippedRegionsMenuItem"; - this.ShowClippedRegionsMenuItem.Size = new System.Drawing.Size(232, 22); + this.ShowClippedRegionsMenuItem.Size = new System.Drawing.Size(241, 22); this.ShowClippedRegionsMenuItem.Text = "&Show Clipped Regions"; this.ShowClippedRegionsMenuItem.Click += new System.EventHandler(this.ShowClippedRegionsMenuItem_Click); // // HighlightActiveDisplayRegionMenuItem // this.HighlightActiveDisplayRegionMenuItem.Name = "HighlightActiveDisplayRegionMenuItem"; - this.HighlightActiveDisplayRegionMenuItem.Size = new System.Drawing.Size(232, 22); + this.HighlightActiveDisplayRegionMenuItem.Size = new System.Drawing.Size(241, 22); this.HighlightActiveDisplayRegionMenuItem.Text = "&Highlight Active Display Region"; this.HighlightActiveDisplayRegionMenuItem.Click += new System.EventHandler(this.HighlightActiveDisplayRegionMenuItem_Click); // // SMSGraphicsSettingsMenuItem // this.SMSGraphicsSettingsMenuItem.Name = "SMSGraphicsSettingsMenuItem"; - this.SMSGraphicsSettingsMenuItem.Size = new System.Drawing.Size(232, 22); + this.SMSGraphicsSettingsMenuItem.Size = new System.Drawing.Size(241, 22); this.SMSGraphicsSettingsMenuItem.Text = "&Graphics Settings..."; this.SMSGraphicsSettingsMenuItem.Click += new System.EventHandler(this.SMSGraphicsSettingsMenuItem_Click); // // toolStripSeparator24 // this.toolStripSeparator24.Name = "toolStripSeparator24"; - this.toolStripSeparator24.Size = new System.Drawing.Size(229, 6); + this.toolStripSeparator24.Size = new System.Drawing.Size(238, 6); // // SMSVDPViewerToolStripMenuItem // this.SMSVDPViewerToolStripMenuItem.Name = "SMSVDPViewerToolStripMenuItem"; - this.SMSVDPViewerToolStripMenuItem.Size = new System.Drawing.Size(232, 22); + this.SMSVDPViewerToolStripMenuItem.Size = new System.Drawing.Size(241, 22); this.SMSVDPViewerToolStripMenuItem.Text = "&VDP Viewer"; this.SMSVDPViewerToolStripMenuItem.Click += new System.EventHandler(this.SmsVdpViewerMenuItem_Click); // // GGGameGenieMenuItem // this.GGGameGenieMenuItem.Name = "GGGameGenieMenuItem"; - this.GGGameGenieMenuItem.Size = new System.Drawing.Size(232, 22); + this.GGGameGenieMenuItem.Size = new System.Drawing.Size(241, 22); this.GGGameGenieMenuItem.Text = "&Game Genie Encoder/Decoder"; this.GGGameGenieMenuItem.Click += new System.EventHandler(this.GGGameGenieMenuItem_Click); // @@ -2440,7 +2440,7 @@ this.AutoloadKeypadMenuItem, this.paletteToolStripMenuItem}); this.TI83SubMenu.Name = "TI83SubMenu"; - this.TI83SubMenu.Size = new System.Drawing.Size(41, 17); + this.TI83SubMenu.Size = new System.Drawing.Size(41, 19); this.TI83SubMenu.Text = "TI83"; this.TI83SubMenu.DropDownOpened += new System.EventHandler(this.TI83SubMenu_DropDownOpened); // @@ -2448,35 +2448,35 @@ // this.KeypadMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.calculator; this.KeypadMenuItem.Name = "KeypadMenuItem"; - this.KeypadMenuItem.Size = new System.Drawing.Size(168, 22); + this.KeypadMenuItem.Size = new System.Drawing.Size(165, 22); this.KeypadMenuItem.Text = "Keypad"; this.KeypadMenuItem.Click += new System.EventHandler(this.KeypadMenuItem_Click); // // LoadTIFileMenuItem // this.LoadTIFileMenuItem.Name = "LoadTIFileMenuItem"; - this.LoadTIFileMenuItem.Size = new System.Drawing.Size(168, 22); + this.LoadTIFileMenuItem.Size = new System.Drawing.Size(165, 22); this.LoadTIFileMenuItem.Text = "Load TI-83 File..."; this.LoadTIFileMenuItem.Click += new System.EventHandler(this.LoadTIFileMenuItem_Click); // // toolStripSeparator13 // this.toolStripSeparator13.Name = "toolStripSeparator13"; - this.toolStripSeparator13.Size = new System.Drawing.Size(165, 6); + this.toolStripSeparator13.Size = new System.Drawing.Size(162, 6); // // AutoloadKeypadMenuItem // this.AutoloadKeypadMenuItem.Checked = true; this.AutoloadKeypadMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.AutoloadKeypadMenuItem.Name = "AutoloadKeypadMenuItem"; - this.AutoloadKeypadMenuItem.Size = new System.Drawing.Size(168, 22); + this.AutoloadKeypadMenuItem.Size = new System.Drawing.Size(165, 22); this.AutoloadKeypadMenuItem.Text = "Autoload Keypad"; this.AutoloadKeypadMenuItem.Click += new System.EventHandler(this.AutoloadKeypadMenuItem_Click); // // paletteToolStripMenuItem // this.paletteToolStripMenuItem.Name = "paletteToolStripMenuItem"; - this.paletteToolStripMenuItem.Size = new System.Drawing.Size(168, 22); + this.paletteToolStripMenuItem.Size = new System.Drawing.Size(165, 22); this.paletteToolStripMenuItem.Text = "Palette..."; this.paletteToolStripMenuItem.Click += new System.EventHandler(this.TI83PaletteMenuItem_Click); // @@ -2485,14 +2485,14 @@ this.AtariSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.AtariSettingsToolStripMenuItem}); this.AtariSubMenu.Name = "AtariSubMenu"; - this.AtariSubMenu.Size = new System.Drawing.Size(42, 17); + this.AtariSubMenu.Size = new System.Drawing.Size(44, 19); this.AtariSubMenu.Text = "&Atari"; this.AtariSubMenu.DropDownOpened += new System.EventHandler(this.AtariSubMenu_DropDownOpened); // // AtariSettingsToolStripMenuItem // this.AtariSettingsToolStripMenuItem.Name = "AtariSettingsToolStripMenuItem"; - this.AtariSettingsToolStripMenuItem.Size = new System.Drawing.Size(136, 22); + this.AtariSettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.AtariSettingsToolStripMenuItem.Text = "Settings..."; this.AtariSettingsToolStripMenuItem.Click += new System.EventHandler(this.AtariSettingsToolStripMenuItem_Click); // @@ -2505,40 +2505,40 @@ this.GBGPUViewerMenuItem, this.GBGameGenieMenuItem}); this.GBSubMenu.Name = "GBSubMenu"; - this.GBSubMenu.Size = new System.Drawing.Size(32, 17); + this.GBSubMenu.Size = new System.Drawing.Size(34, 19); this.GBSubMenu.Text = "&GB"; this.GBSubMenu.DropDownOpened += new System.EventHandler(this.GBSubMenu_DropDownOpened); // // GBcoreSettingsToolStripMenuItem // this.GBcoreSettingsToolStripMenuItem.Name = "GBcoreSettingsToolStripMenuItem"; - this.GBcoreSettingsToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.GBcoreSettingsToolStripMenuItem.Size = new System.Drawing.Size(233, 22); this.GBcoreSettingsToolStripMenuItem.Text = "Settings..."; this.GBcoreSettingsToolStripMenuItem.Click += new System.EventHandler(this.GBCoreSettingsMenuItem_Click); // // LoadGBInSGBMenuItem // this.LoadGBInSGBMenuItem.Name = "LoadGBInSGBMenuItem"; - this.LoadGBInSGBMenuItem.Size = new System.Drawing.Size(228, 22); + this.LoadGBInSGBMenuItem.Size = new System.Drawing.Size(233, 22); this.LoadGBInSGBMenuItem.Text = "Load GB in SGB"; this.LoadGBInSGBMenuItem.Click += new System.EventHandler(this.LoadGBInSGBMenuItem_Click); // // toolStripSeparator28 // this.toolStripSeparator28.Name = "toolStripSeparator28"; - this.toolStripSeparator28.Size = new System.Drawing.Size(225, 6); + this.toolStripSeparator28.Size = new System.Drawing.Size(230, 6); // // GBGPUViewerMenuItem // this.GBGPUViewerMenuItem.Name = "GBGPUViewerMenuItem"; - this.GBGPUViewerMenuItem.Size = new System.Drawing.Size(228, 22); + this.GBGPUViewerMenuItem.Size = new System.Drawing.Size(233, 22); this.GBGPUViewerMenuItem.Text = "GPU Viewer"; this.GBGPUViewerMenuItem.Click += new System.EventHandler(this.GBGPUViewerMenuItem_Click); // // GBGameGenieMenuItem // this.GBGameGenieMenuItem.Name = "GBGameGenieMenuItem"; - this.GBGameGenieMenuItem.Size = new System.Drawing.Size(228, 22); + this.GBGameGenieMenuItem.Size = new System.Drawing.Size(233, 22); this.GBGameGenieMenuItem.Text = "&Game Genie Encoder/Decoder"; this.GBGameGenieMenuItem.Click += new System.EventHandler(this.GBGameGenieMenuItem_Click); // @@ -2550,7 +2550,7 @@ this.toolStripSeparator33, this.GbaGpuViewerMenuItem}); this.GBASubMenu.Name = "GBASubMenu"; - this.GBASubMenu.Size = new System.Drawing.Size(39, 17); + this.GBASubMenu.Size = new System.Drawing.Size(42, 19); this.GBASubMenu.Text = "GBA"; // // GBACoreSelectionSubMenu @@ -2559,40 +2559,40 @@ this.GBAmGBAMenuItem, this.GBAVBANextMenuItem}); this.GBACoreSelectionSubMenu.Name = "GBACoreSelectionSubMenu"; - this.GBACoreSelectionSubMenu.Size = new System.Drawing.Size(140, 22); + this.GBACoreSelectionSubMenu.Size = new System.Drawing.Size(135, 22); this.GBACoreSelectionSubMenu.Text = "&Core"; this.GBACoreSelectionSubMenu.DropDownOpened += new System.EventHandler(this.GBACoreSelectionSubMenu_DropDownOpened); // // GBAmGBAMenuItem // this.GBAmGBAMenuItem.Name = "GBAmGBAMenuItem"; - this.GBAmGBAMenuItem.Size = new System.Drawing.Size(131, 22); + this.GBAmGBAMenuItem.Size = new System.Drawing.Size(125, 22); this.GBAmGBAMenuItem.Text = "mGBA"; this.GBAmGBAMenuItem.Click += new System.EventHandler(this.GBAmGBAMenuItem_Click); // // GBAVBANextMenuItem // this.GBAVBANextMenuItem.Name = "GBAVBANextMenuItem"; - this.GBAVBANextMenuItem.Size = new System.Drawing.Size(131, 22); + this.GBAVBANextMenuItem.Size = new System.Drawing.Size(125, 22); this.GBAVBANextMenuItem.Text = "&VBA-Next"; this.GBAVBANextMenuItem.Click += new System.EventHandler(this.GBAVBANextMenuItem_Click); // // GBAcoresettingsToolStripMenuItem1 // this.GBAcoresettingsToolStripMenuItem1.Name = "GBAcoresettingsToolStripMenuItem1"; - this.GBAcoresettingsToolStripMenuItem1.Size = new System.Drawing.Size(140, 22); + this.GBAcoresettingsToolStripMenuItem1.Size = new System.Drawing.Size(135, 22); this.GBAcoresettingsToolStripMenuItem1.Text = "&Settings..."; this.GBAcoresettingsToolStripMenuItem1.Click += new System.EventHandler(this.GBAcoresettingsToolStripMenuItem1_Click); // // toolStripSeparator33 // this.toolStripSeparator33.Name = "toolStripSeparator33"; - this.toolStripSeparator33.Size = new System.Drawing.Size(137, 6); + this.toolStripSeparator33.Size = new System.Drawing.Size(132, 6); // // GbaGpuViewerMenuItem // this.GbaGpuViewerMenuItem.Name = "GbaGpuViewerMenuItem"; - this.GbaGpuViewerMenuItem.Size = new System.Drawing.Size(140, 22); + this.GbaGpuViewerMenuItem.Size = new System.Drawing.Size(135, 22); this.GbaGpuViewerMenuItem.Text = "GPU Viewer"; this.GbaGpuViewerMenuItem.Click += new System.EventHandler(this.GbaGpuViewerMenuItem_Click); // @@ -2604,7 +2604,7 @@ this.PSXDiscControlsMenuItem, this.PSXHashDiscsToolStripMenuItem}); this.PSXSubMenu.Name = "PSXSubMenu"; - this.PSXSubMenu.Size = new System.Drawing.Size(37, 17); + this.PSXSubMenu.Size = new System.Drawing.Size(39, 19); this.PSXSubMenu.Text = "PSX"; this.PSXSubMenu.DropDownOpened += new System.EventHandler(this.PSXSubMenu_DropDownOpened); // @@ -2612,28 +2612,28 @@ // this.PSXControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.PSXControllerSettingsMenuItem.Name = "PSXControllerSettingsMenuItem"; - this.PSXControllerSettingsMenuItem.Size = new System.Drawing.Size(227, 22); + this.PSXControllerSettingsMenuItem.Size = new System.Drawing.Size(234, 22); this.PSXControllerSettingsMenuItem.Text = "Controller / Memcard Settings"; this.PSXControllerSettingsMenuItem.Click += new System.EventHandler(this.PSXControllerSettingsMenuItem_Click); // // PSXOptionsMenuItem // this.PSXOptionsMenuItem.Name = "PSXOptionsMenuItem"; - this.PSXOptionsMenuItem.Size = new System.Drawing.Size(227, 22); + this.PSXOptionsMenuItem.Size = new System.Drawing.Size(234, 22); this.PSXOptionsMenuItem.Text = "&Options"; this.PSXOptionsMenuItem.Click += new System.EventHandler(this.PSXOptionsMenuItem_Click); // // PSXDiscControlsMenuItem // this.PSXDiscControlsMenuItem.Name = "PSXDiscControlsMenuItem"; - this.PSXDiscControlsMenuItem.Size = new System.Drawing.Size(227, 22); + this.PSXDiscControlsMenuItem.Size = new System.Drawing.Size(234, 22); this.PSXDiscControlsMenuItem.Text = "&Disc Controls"; this.PSXDiscControlsMenuItem.Click += new System.EventHandler(this.PSXDiscControlsMenuItem_Click); // // PSXHashDiscsToolStripMenuItem // this.PSXHashDiscsToolStripMenuItem.Name = "PSXHashDiscsToolStripMenuItem"; - this.PSXHashDiscsToolStripMenuItem.Size = new System.Drawing.Size(227, 22); + this.PSXHashDiscsToolStripMenuItem.Size = new System.Drawing.Size(234, 22); this.PSXHashDiscsToolStripMenuItem.Text = "&Hash Discs"; this.PSXHashDiscsToolStripMenuItem.Click += new System.EventHandler(this.PSXHashDiscsToolStripMenuItem_Click); // @@ -2647,7 +2647,7 @@ this.SnesGameGenieMenuItem, this.SnesOptionsMenuItem}); this.SNESSubMenu.Name = "SNESSubMenu"; - this.SNESSubMenu.Size = new System.Drawing.Size(44, 17); + this.SNESSubMenu.Size = new System.Drawing.Size(46, 19); this.SNESSubMenu.Text = "&SNES"; this.SNESSubMenu.DropDownOpened += new System.EventHandler(this.SNESSubMenu_DropDownOpened); // @@ -2663,97 +2663,97 @@ this.SnesObj3MenuItem, this.SnesObj4MenuItem}); this.SNESDisplayMenuItem.Name = "SNESDisplayMenuItem"; - this.SNESDisplayMenuItem.Size = new System.Drawing.Size(228, 22); + this.SNESDisplayMenuItem.Size = new System.Drawing.Size(233, 22); this.SNESDisplayMenuItem.Text = "Display"; this.SNESDisplayMenuItem.DropDownOpened += new System.EventHandler(this.SNESDisplayMenuItem_DropDownOpened); // // SnesBg1MenuItem // this.SnesBg1MenuItem.Name = "SnesBg1MenuItem"; - this.SnesBg1MenuItem.Size = new System.Drawing.Size(113, 22); + this.SnesBg1MenuItem.Size = new System.Drawing.Size(103, 22); this.SnesBg1MenuItem.Text = "BG 1"; this.SnesBg1MenuItem.Click += new System.EventHandler(this.SnesBg1MenuItem_Click); // // SnesBg2MenuItem // this.SnesBg2MenuItem.Name = "SnesBg2MenuItem"; - this.SnesBg2MenuItem.Size = new System.Drawing.Size(113, 22); + this.SnesBg2MenuItem.Size = new System.Drawing.Size(103, 22); this.SnesBg2MenuItem.Text = "BG 2"; this.SnesBg2MenuItem.Click += new System.EventHandler(this.SnesBg2MenuItem_Click); // // SnesBg3MenuItem // this.SnesBg3MenuItem.Name = "SnesBg3MenuItem"; - this.SnesBg3MenuItem.Size = new System.Drawing.Size(113, 22); + this.SnesBg3MenuItem.Size = new System.Drawing.Size(103, 22); this.SnesBg3MenuItem.Text = "BG 3"; this.SnesBg3MenuItem.Click += new System.EventHandler(this.SnesBg3MenuItem_Click); // // SnesBg4MenuItem // this.SnesBg4MenuItem.Name = "SnesBg4MenuItem"; - this.SnesBg4MenuItem.Size = new System.Drawing.Size(113, 22); + this.SnesBg4MenuItem.Size = new System.Drawing.Size(103, 22); this.SnesBg4MenuItem.Text = "BG 4"; this.SnesBg4MenuItem.Click += new System.EventHandler(this.SnesBg4MenuItem_Click); // // SnesObj1MenuItem // this.SnesObj1MenuItem.Name = "SnesObj1MenuItem"; - this.SnesObj1MenuItem.Size = new System.Drawing.Size(113, 22); + this.SnesObj1MenuItem.Size = new System.Drawing.Size(103, 22); this.SnesObj1MenuItem.Text = "OBJ 1"; this.SnesObj1MenuItem.Click += new System.EventHandler(this.SnesObj1MenuItem_Click); // // SnesObj2MenuItem // this.SnesObj2MenuItem.Name = "SnesObj2MenuItem"; - this.SnesObj2MenuItem.Size = new System.Drawing.Size(113, 22); + this.SnesObj2MenuItem.Size = new System.Drawing.Size(103, 22); this.SnesObj2MenuItem.Text = "OBJ 2"; this.SnesObj2MenuItem.Click += new System.EventHandler(this.SnesObj2MenuItem_Click); // // SnesObj3MenuItem // this.SnesObj3MenuItem.Name = "SnesObj3MenuItem"; - this.SnesObj3MenuItem.Size = new System.Drawing.Size(113, 22); + this.SnesObj3MenuItem.Size = new System.Drawing.Size(103, 22); this.SnesObj3MenuItem.Text = "OBJ 3"; this.SnesObj3MenuItem.Click += new System.EventHandler(this.SnesObj3MenuItem_Click); // // SnesObj4MenuItem // this.SnesObj4MenuItem.Name = "SnesObj4MenuItem"; - this.SnesObj4MenuItem.Size = new System.Drawing.Size(113, 22); + this.SnesObj4MenuItem.Size = new System.Drawing.Size(103, 22); this.SnesObj4MenuItem.Text = "OBJ 4"; this.SnesObj4MenuItem.Click += new System.EventHandler(this.SnesObj4MenuItem_Click); // // toolStripSeparator18 // this.toolStripSeparator18.Name = "toolStripSeparator18"; - this.toolStripSeparator18.Size = new System.Drawing.Size(225, 6); + this.toolStripSeparator18.Size = new System.Drawing.Size(230, 6); // // SnesGfxDebuggerMenuItem // this.SnesGfxDebuggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Bug; this.SnesGfxDebuggerMenuItem.Name = "SnesGfxDebuggerMenuItem"; - this.SnesGfxDebuggerMenuItem.Size = new System.Drawing.Size(228, 22); + this.SnesGfxDebuggerMenuItem.Size = new System.Drawing.Size(233, 22); this.SnesGfxDebuggerMenuItem.Text = "Graphics Debugger"; this.SnesGfxDebuggerMenuItem.Click += new System.EventHandler(this.SnesGfxDebuggerMenuItem_Click); // // SnesGBInSGBMenuItem // this.SnesGBInSGBMenuItem.Name = "SnesGBInSGBMenuItem"; - this.SnesGBInSGBMenuItem.Size = new System.Drawing.Size(228, 22); + this.SnesGBInSGBMenuItem.Size = new System.Drawing.Size(233, 22); this.SnesGBInSGBMenuItem.Text = "Load GB in SGB"; this.SnesGBInSGBMenuItem.Click += new System.EventHandler(this.SnesGBInSGBMenuItem_Click); // // SnesGameGenieMenuItem // this.SnesGameGenieMenuItem.Name = "SnesGameGenieMenuItem"; - this.SnesGameGenieMenuItem.Size = new System.Drawing.Size(228, 22); + this.SnesGameGenieMenuItem.Size = new System.Drawing.Size(233, 22); this.SnesGameGenieMenuItem.Text = "&Game Genie Encoder/Decoder"; this.SnesGameGenieMenuItem.Click += new System.EventHandler(this.SnesGameGenieMenuItem_Click); // // SnesOptionsMenuItem // this.SnesOptionsMenuItem.Name = "SnesOptionsMenuItem"; - this.SnesOptionsMenuItem.Size = new System.Drawing.Size(228, 22); + this.SnesOptionsMenuItem.Size = new System.Drawing.Size(233, 22); this.SnesOptionsMenuItem.Text = "&Options"; this.SnesOptionsMenuItem.Click += new System.EventHandler(this.SnesOptionsMenuItem_Click); // @@ -2762,14 +2762,14 @@ this.ColecoSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.ColecoSkipBiosMenuItem}); this.ColecoSubMenu.Name = "ColecoSubMenu"; - this.ColecoSubMenu.Size = new System.Drawing.Size(51, 17); + this.ColecoSubMenu.Size = new System.Drawing.Size(56, 19); this.ColecoSubMenu.Text = "&Coleco"; this.ColecoSubMenu.DropDownOpened += new System.EventHandler(this.ColecoSubMenu_DropDownOpened); // // ColecoSkipBiosMenuItem // this.ColecoSkipBiosMenuItem.Name = "ColecoSkipBiosMenuItem"; - this.ColecoSkipBiosMenuItem.Size = new System.Drawing.Size(156, 22); + this.ColecoSkipBiosMenuItem.Size = new System.Drawing.Size(152, 22); this.ColecoSkipBiosMenuItem.Text = "&Skip BIOS intro"; this.ColecoSkipBiosMenuItem.Click += new System.EventHandler(this.ColecoSkipBiosMenuItem_Click); // @@ -2783,7 +2783,7 @@ this.MupenStyleLagMenuItem, this.N64ExpansionSlotMenuItem}); this.N64SubMenu.Name = "N64SubMenu"; - this.N64SubMenu.Size = new System.Drawing.Size(38, 17); + this.N64SubMenu.Size = new System.Drawing.Size(40, 19); this.N64SubMenu.Text = "N64"; this.N64SubMenu.DropDownOpened += new System.EventHandler(this.N64SubMenu_DropDownOpened); // @@ -2791,7 +2791,7 @@ // this.N64PluginSettingsMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("N64PluginSettingsMenuItem.Image"))); this.N64PluginSettingsMenuItem.Name = "N64PluginSettingsMenuItem"; - this.N64PluginSettingsMenuItem.Size = new System.Drawing.Size(191, 22); + this.N64PluginSettingsMenuItem.Size = new System.Drawing.Size(192, 22); this.N64PluginSettingsMenuItem.Text = "Plugins"; this.N64PluginSettingsMenuItem.Click += new System.EventHandler(this.N64PluginSettingsMenuItem_Click); // @@ -2799,33 +2799,33 @@ // this.N64ControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.N64ControllerSettingsMenuItem.Name = "N64ControllerSettingsMenuItem"; - this.N64ControllerSettingsMenuItem.Size = new System.Drawing.Size(191, 22); + this.N64ControllerSettingsMenuItem.Size = new System.Drawing.Size(192, 22); this.N64ControllerSettingsMenuItem.Text = "Controller Settings..."; this.N64ControllerSettingsMenuItem.Click += new System.EventHandler(this.N64ControllerSettingsMenuItem_Click); // // toolStripSeparator23 // this.toolStripSeparator23.Name = "toolStripSeparator23"; - this.toolStripSeparator23.Size = new System.Drawing.Size(188, 6); + this.toolStripSeparator23.Size = new System.Drawing.Size(189, 6); // // N64CircularAnalogRangeMenuItem // this.N64CircularAnalogRangeMenuItem.Name = "N64CircularAnalogRangeMenuItem"; - this.N64CircularAnalogRangeMenuItem.Size = new System.Drawing.Size(191, 22); + this.N64CircularAnalogRangeMenuItem.Size = new System.Drawing.Size(192, 22); this.N64CircularAnalogRangeMenuItem.Text = "Circular Analog Range"; this.N64CircularAnalogRangeMenuItem.Click += new System.EventHandler(this.N64CircularAnalogRangeMenuItem_Click); // // MupenStyleLagMenuItem // this.MupenStyleLagMenuItem.Name = "MupenStyleLagMenuItem"; - this.MupenStyleLagMenuItem.Size = new System.Drawing.Size(191, 22); + this.MupenStyleLagMenuItem.Size = new System.Drawing.Size(192, 22); this.MupenStyleLagMenuItem.Text = "&Non-VI Lag Frames"; this.MupenStyleLagMenuItem.Click += new System.EventHandler(this.MupenStyleLagMenuItem_Click); // // N64ExpansionSlotMenuItem // this.N64ExpansionSlotMenuItem.Name = "N64ExpansionSlotMenuItem"; - this.N64ExpansionSlotMenuItem.Size = new System.Drawing.Size(191, 22); + this.N64ExpansionSlotMenuItem.Size = new System.Drawing.Size(192, 22); this.N64ExpansionSlotMenuItem.Text = "&Use Expansion Slot"; this.N64ExpansionSlotMenuItem.Click += new System.EventHandler(this.N64ExpansionSlotMenuItem_Click); // @@ -2834,13 +2834,13 @@ this.SaturnSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.SaturnPreferencesMenuItem}); this.SaturnSubMenu.Name = "SaturnSubMenu"; - this.SaturnSubMenu.Size = new System.Drawing.Size(51, 17); + this.SaturnSubMenu.Size = new System.Drawing.Size(53, 19); this.SaturnSubMenu.Text = "&Saturn"; // // SaturnPreferencesMenuItem // this.SaturnPreferencesMenuItem.Name = "SaturnPreferencesMenuItem"; - this.SaturnPreferencesMenuItem.Size = new System.Drawing.Size(155, 22); + this.SaturnPreferencesMenuItem.Size = new System.Drawing.Size(144, 22); this.SaturnPreferencesMenuItem.Text = "Preferences..."; this.SaturnPreferencesMenuItem.Click += new System.EventHandler(this.SaturnPreferencesMenuItem_Click); // @@ -2849,13 +2849,13 @@ this.DGBSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.DGBsettingsToolStripMenuItem}); this.DGBSubMenu.Name = "DGBSubMenu"; - this.DGBSubMenu.Size = new System.Drawing.Size(53, 17); + this.DGBSubMenu.Size = new System.Drawing.Size(59, 19); this.DGBSubMenu.Text = "&GB Link"; // // DGBsettingsToolStripMenuItem // this.DGBsettingsToolStripMenuItem.Name = "DGBsettingsToolStripMenuItem"; - this.DGBsettingsToolStripMenuItem.Size = new System.Drawing.Size(136, 22); + this.DGBsettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.DGBsettingsToolStripMenuItem.Text = "Settings..."; this.DGBsettingsToolStripMenuItem.Click += new System.EventHandler(this.DGBsettingsToolStripMenuItem_Click); // @@ -2867,32 +2867,32 @@ this.toolStripSeparator26, this.GenesisSettingsToolStripMenuItem}); this.GenesisSubMenu.Name = "GenesisSubMenu"; - this.GenesisSubMenu.Size = new System.Drawing.Size(56, 17); + this.GenesisSubMenu.Size = new System.Drawing.Size(59, 19); this.GenesisSubMenu.Text = "&Genesis"; // // vDPViewerToolStripMenuItem // this.vDPViewerToolStripMenuItem.Name = "vDPViewerToolStripMenuItem"; - this.vDPViewerToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.vDPViewerToolStripMenuItem.Size = new System.Drawing.Size(233, 22); this.vDPViewerToolStripMenuItem.Text = "&VDP Viewer"; this.vDPViewerToolStripMenuItem.Click += new System.EventHandler(this.GenVdpViewerMenuItem_Click); // // GenesisGameGenieECDC // this.GenesisGameGenieECDC.Name = "GenesisGameGenieECDC"; - this.GenesisGameGenieECDC.Size = new System.Drawing.Size(228, 22); + this.GenesisGameGenieECDC.Size = new System.Drawing.Size(233, 22); this.GenesisGameGenieECDC.Text = "&Game Genie Encoder/Decoder"; this.GenesisGameGenieECDC.Click += new System.EventHandler(this.GenesisGameGenieECDC_Click); // // toolStripSeparator26 // this.toolStripSeparator26.Name = "toolStripSeparator26"; - this.toolStripSeparator26.Size = new System.Drawing.Size(225, 6); + this.toolStripSeparator26.Size = new System.Drawing.Size(230, 6); // // GenesisSettingsToolStripMenuItem // this.GenesisSettingsToolStripMenuItem.Name = "GenesisSettingsToolStripMenuItem"; - this.GenesisSettingsToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.GenesisSettingsToolStripMenuItem.Size = new System.Drawing.Size(233, 22); this.GenesisSettingsToolStripMenuItem.Text = "&Settings..."; this.GenesisSettingsToolStripMenuItem.Click += new System.EventHandler(this.GenesisSettingsMenuItem_Click); // @@ -2901,13 +2901,13 @@ this.wonderSwanToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.settingsToolStripMenuItem}); this.wonderSwanToolStripMenuItem.Name = "wonderSwanToolStripMenuItem"; - this.wonderSwanToolStripMenuItem.Size = new System.Drawing.Size(83, 17); + this.wonderSwanToolStripMenuItem.Size = new System.Drawing.Size(89, 19); this.wonderSwanToolStripMenuItem.Text = "&WonderSwan"; // // settingsToolStripMenuItem // this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; - this.settingsToolStripMenuItem.Size = new System.Drawing.Size(136, 22); + this.settingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22); this.settingsToolStripMenuItem.Text = "&Settings..."; this.settingsToolStripMenuItem.Click += new System.EventHandler(this.WondersawnSettingsMenuItem_Click); // @@ -2917,7 +2917,7 @@ this.AppleDisksSubMenu, this.settingsToolStripMenuItem1}); this.AppleSubMenu.Name = "AppleSubMenu"; - this.AppleSubMenu.Size = new System.Drawing.Size(46, 17); + this.AppleSubMenu.Size = new System.Drawing.Size(50, 19); this.AppleSubMenu.Text = "Apple"; this.AppleSubMenu.DropDownOpened += new System.EventHandler(this.AppleSubMenu_DropDownOpened); // @@ -2926,7 +2926,7 @@ this.AppleDisksSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripSeparator31}); this.AppleDisksSubMenu.Name = "AppleDisksSubMenu"; - this.AppleDisksSubMenu.Size = new System.Drawing.Size(136, 22); + this.AppleDisksSubMenu.Size = new System.Drawing.Size(125, 22); this.AppleDisksSubMenu.Text = "Disks"; this.AppleDisksSubMenu.DropDownOpened += new System.EventHandler(this.AppleDisksSubMenu_DropDownOpened); // @@ -2938,7 +2938,7 @@ // settingsToolStripMenuItem1 // this.settingsToolStripMenuItem1.Name = "settingsToolStripMenuItem1"; - this.settingsToolStripMenuItem1.Size = new System.Drawing.Size(136, 22); + this.settingsToolStripMenuItem1.Size = new System.Drawing.Size(125, 22); this.settingsToolStripMenuItem1.Text = "&Settings..."; this.settingsToolStripMenuItem1.Click += new System.EventHandler(this.settingsToolStripMenuItem1_Click_1); // @@ -2947,13 +2947,13 @@ this.C64SubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.C64SettingsMenuItem}); this.C64SubMenu.Name = "C64SubMenu"; - this.C64SubMenu.Size = new System.Drawing.Size(38, 17); + this.C64SubMenu.Size = new System.Drawing.Size(39, 19); this.C64SubMenu.Text = "&C64"; // // C64SettingsMenuItem // this.C64SettingsMenuItem.Name = "C64SettingsMenuItem"; - this.C64SettingsMenuItem.Size = new System.Drawing.Size(136, 22); + this.C64SettingsMenuItem.Size = new System.Drawing.Size(125, 22); this.C64SettingsMenuItem.Text = "&Settings..."; this.C64SettingsMenuItem.Click += new System.EventHandler(this.C64SettingsMenuItem_Click); // @@ -2965,7 +2965,7 @@ this.FeaturesMenuItem, this.AboutMenuItem}); this.HelpSubMenu.Name = "HelpSubMenu"; - this.HelpSubMenu.Size = new System.Drawing.Size(40, 17); + this.HelpSubMenu.Size = new System.Drawing.Size(44, 19); this.HelpSubMenu.Text = "&Help"; this.HelpSubMenu.DropDownOpened += new System.EventHandler(this.HelpSubMenu_DropDownOpened); // @@ -2973,7 +2973,7 @@ // this.OnlineHelpMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Help; this.OnlineHelpMenuItem.Name = "OnlineHelpMenuItem"; - this.OnlineHelpMenuItem.Size = new System.Drawing.Size(151, 22); + this.OnlineHelpMenuItem.Size = new System.Drawing.Size(146, 22); this.OnlineHelpMenuItem.Text = "&Online Help..."; this.OnlineHelpMenuItem.Click += new System.EventHandler(this.OnlineHelpMenuItem_Click); // @@ -2981,7 +2981,7 @@ // this.ForumsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.TAStudio; this.ForumsMenuItem.Name = "ForumsMenuItem"; - this.ForumsMenuItem.Size = new System.Drawing.Size(151, 22); + this.ForumsMenuItem.Size = new System.Drawing.Size(146, 22); this.ForumsMenuItem.Text = "Forums..."; this.ForumsMenuItem.Click += new System.EventHandler(this.ForumsMenuItem_Click); // @@ -2989,7 +2989,7 @@ // this.FeaturesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.kitchensink; this.FeaturesMenuItem.Name = "FeaturesMenuItem"; - this.FeaturesMenuItem.Size = new System.Drawing.Size(151, 22); + this.FeaturesMenuItem.Size = new System.Drawing.Size(146, 22); this.FeaturesMenuItem.Text = "&Features"; this.FeaturesMenuItem.Click += new System.EventHandler(this.FeaturesMenuItem_Click); // @@ -2997,7 +2997,7 @@ // this.AboutMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CorpHawkSmall; this.AboutMenuItem.Name = "AboutMenuItem"; - this.AboutMenuItem.Size = new System.Drawing.Size(151, 22); + this.AboutMenuItem.Size = new System.Drawing.Size(146, 22); this.AboutMenuItem.Text = "&About"; this.AboutMenuItem.Click += new System.EventHandler(this.AboutMenuItem_Click); // @@ -3106,7 +3106,7 @@ // this.SaveSlotsStatusLabel.BackColor = System.Drawing.SystemColors.Control; this.SaveSlotsStatusLabel.Name = "SaveSlotsStatusLabel"; - this.SaveSlotsStatusLabel.Size = new System.Drawing.Size(56, 17); + this.SaveSlotsStatusLabel.Size = new System.Drawing.Size(58, 17); this.SaveSlotsStatusLabel.Text = "Save slots"; // // Slot1StatusButton @@ -3209,7 +3209,7 @@ // this.CoreNameStatusBarButton.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CorpHawkSmall; this.CoreNameStatusBarButton.Name = "CoreNameStatusBarButton"; - this.CoreNameStatusBarButton.Size = new System.Drawing.Size(66, 17); + this.CoreNameStatusBarButton.Size = new System.Drawing.Size(71, 17); this.CoreNameStatusBarButton.Text = "Neshawk"; // // ProfileFirstBootLabel @@ -3239,7 +3239,7 @@ this.UpdateNotification.IsLink = true; this.UpdateNotification.LinkColor = System.Drawing.Color.Red; this.UpdateNotification.Name = "UpdateNotification"; - this.UpdateNotification.Size = new System.Drawing.Size(53, 17); + this.UpdateNotification.Size = new System.Drawing.Size(46, 17); this.UpdateNotification.Spring = true; this.UpdateNotification.Text = "New version available!"; this.UpdateNotification.TextAlign = System.Drawing.ContentAlignment.MiddleRight; @@ -3436,7 +3436,7 @@ // this.toolStripMenuItem6.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.toolStripMenuItem6.Name = "toolStripMenuItem6"; - this.toolStripMenuItem6.Size = new System.Drawing.Size(168, 22); + this.toolStripMenuItem6.Size = new System.Drawing.Size(159, 22); this.toolStripMenuItem6.Text = "&Controllers..."; this.toolStripMenuItem6.Click += new System.EventHandler(this.ControllersMenuItem_Click); // @@ -3444,7 +3444,7 @@ // this.toolStripMenuItem7.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.HotKeys; this.toolStripMenuItem7.Name = "toolStripMenuItem7"; - this.toolStripMenuItem7.Size = new System.Drawing.Size(168, 22); + this.toolStripMenuItem7.Size = new System.Drawing.Size(159, 22); this.toolStripMenuItem7.Text = "&Hotkeys..."; this.toolStripMenuItem7.Click += new System.EventHandler(this.HotkeysMenuItem_Click); // @@ -3452,7 +3452,7 @@ // this.toolStripMenuItem8.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItem8.Image"))); this.toolStripMenuItem8.Name = "toolStripMenuItem8"; - this.toolStripMenuItem8.Size = new System.Drawing.Size(168, 22); + this.toolStripMenuItem8.Size = new System.Drawing.Size(159, 22); this.toolStripMenuItem8.Text = "Display..."; this.toolStripMenuItem8.Click += new System.EventHandler(this.DisplayConfigMenuItem_Click); // @@ -3460,7 +3460,7 @@ // this.toolStripMenuItem9.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AudioHS; this.toolStripMenuItem9.Name = "toolStripMenuItem9"; - this.toolStripMenuItem9.Size = new System.Drawing.Size(168, 22); + this.toolStripMenuItem9.Size = new System.Drawing.Size(159, 22); this.toolStripMenuItem9.Text = "&Sound..."; this.toolStripMenuItem9.Click += new System.EventHandler(this.SoundMenuItem_Click); // @@ -3468,7 +3468,7 @@ // this.toolStripMenuItem10.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CopyFolderHS; this.toolStripMenuItem10.Name = "toolStripMenuItem10"; - this.toolStripMenuItem10.Size = new System.Drawing.Size(168, 22); + this.toolStripMenuItem10.Size = new System.Drawing.Size(159, 22); this.toolStripMenuItem10.Text = "Paths..."; this.toolStripMenuItem10.Click += new System.EventHandler(this.PathsMenuItem_Click); // @@ -3476,7 +3476,7 @@ // this.toolStripMenuItem11.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItem11.Image"))); this.toolStripMenuItem11.Name = "toolStripMenuItem11"; - this.toolStripMenuItem11.Size = new System.Drawing.Size(168, 22); + this.toolStripMenuItem11.Size = new System.Drawing.Size(159, 22); this.toolStripMenuItem11.Text = "&Firmwares..."; this.toolStripMenuItem11.Click += new System.EventHandler(this.FirmwaresMenuItem_Click); // @@ -3484,7 +3484,7 @@ // this.toolStripMenuItem12.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MessageConfig; this.toolStripMenuItem12.Name = "toolStripMenuItem12"; - this.toolStripMenuItem12.Size = new System.Drawing.Size(168, 22); + this.toolStripMenuItem12.Size = new System.Drawing.Size(159, 22); this.toolStripMenuItem12.Text = "&Messages..."; this.toolStripMenuItem12.Click += new System.EventHandler(this.MessagesMenuItem_Click); // @@ -3492,7 +3492,7 @@ // this.toolStripMenuItem13.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lightning; this.toolStripMenuItem13.Name = "toolStripMenuItem13"; - this.toolStripMenuItem13.Size = new System.Drawing.Size(168, 22); + this.toolStripMenuItem13.Size = new System.Drawing.Size(159, 22); this.toolStripMenuItem13.Text = "&Autofire..."; this.toolStripMenuItem13.Click += new System.EventHandler(this.AutofireMenuItem_Click); // @@ -3500,28 +3500,28 @@ // this.toolStripMenuItem14.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Previous; this.toolStripMenuItem14.Name = "toolStripMenuItem14"; - this.toolStripMenuItem14.Size = new System.Drawing.Size(168, 22); + this.toolStripMenuItem14.Size = new System.Drawing.Size(159, 22); this.toolStripMenuItem14.Text = "&Rewind..."; this.toolStripMenuItem14.Click += new System.EventHandler(this.RewindOptionsMenuItem_Click); // // toolStripMenuItem15 // this.toolStripMenuItem15.Name = "toolStripMenuItem15"; - this.toolStripMenuItem15.Size = new System.Drawing.Size(168, 22); + this.toolStripMenuItem15.Size = new System.Drawing.Size(159, 22); this.toolStripMenuItem15.Text = "File Extensions..."; this.toolStripMenuItem15.Click += new System.EventHandler(this.FileExtensionsMenuItem_Click); // // customizeToolStripMenuItem // this.customizeToolStripMenuItem.Name = "customizeToolStripMenuItem"; - this.customizeToolStripMenuItem.Size = new System.Drawing.Size(168, 22); + this.customizeToolStripMenuItem.Size = new System.Drawing.Size(159, 22); this.customizeToolStripMenuItem.Text = "Customize..."; this.customizeToolStripMenuItem.Click += new System.EventHandler(this.CustomizeMenuItem_Click); // // toolStripSeparator30 // this.toolStripSeparator30.Name = "toolStripSeparator30"; - this.toolStripSeparator30.Size = new System.Drawing.Size(165, 6); + this.toolStripSeparator30.Size = new System.Drawing.Size(156, 6); // // SavestateTypeContextSubMenu // @@ -3530,26 +3530,26 @@ this.SavestateBinaryContextMenuItem, this.SavestateTextContextMenuItem}); this.SavestateTypeContextSubMenu.Name = "SavestateTypeContextSubMenu"; - this.SavestateTypeContextSubMenu.Size = new System.Drawing.Size(168, 22); + this.SavestateTypeContextSubMenu.Size = new System.Drawing.Size(159, 22); this.SavestateTypeContextSubMenu.Text = "Savestate Type"; this.SavestateTypeContextSubMenu.DropDownOpened += new System.EventHandler(this.SavestateTypeContextSubMenu_DropDownOpened); // // SavestateTypeDefaultContextMenuItem // this.SavestateTypeDefaultContextMenuItem.Name = "SavestateTypeDefaultContextMenuItem"; - this.SavestateTypeDefaultContextMenuItem.Size = new System.Drawing.Size(120, 22); + this.SavestateTypeDefaultContextMenuItem.Size = new System.Drawing.Size(112, 22); this.SavestateTypeDefaultContextMenuItem.Text = "&Default"; // // SavestateBinaryContextMenuItem // this.SavestateBinaryContextMenuItem.Name = "SavestateBinaryContextMenuItem"; - this.SavestateBinaryContextMenuItem.Size = new System.Drawing.Size(120, 22); + this.SavestateBinaryContextMenuItem.Size = new System.Drawing.Size(112, 22); this.SavestateBinaryContextMenuItem.Text = "&Binary"; // // SavestateTextContextMenuItem // this.SavestateTextContextMenuItem.Name = "SavestateTextContextMenuItem"; - this.SavestateTextContextMenuItem.Size = new System.Drawing.Size(120, 22); + this.SavestateTextContextMenuItem.Size = new System.Drawing.Size(112, 22); this.SavestateTextContextMenuItem.Text = "&Text"; // // CoreSelectionContextSubMenu @@ -3558,7 +3558,7 @@ this.GBInSGBContextMenuItem, this.NesInQuickNESContextMenuItem}); this.CoreSelectionContextSubMenu.Name = "CoreSelectionContextSubMenu"; - this.CoreSelectionContextSubMenu.Size = new System.Drawing.Size(168, 22); + this.CoreSelectionContextSubMenu.Size = new System.Drawing.Size(159, 22); this.CoreSelectionContextSubMenu.Text = "Core Selection"; this.CoreSelectionContextSubMenu.DropDownOpened += new System.EventHandler(this.CoreSelectionContextSubMenu_DropDownOpened); // @@ -3579,13 +3579,13 @@ // toolStripSeparator37 // this.toolStripSeparator37.Name = "toolStripSeparator37"; - this.toolStripSeparator37.Size = new System.Drawing.Size(165, 6); + this.toolStripSeparator37.Size = new System.Drawing.Size(156, 6); // // toolStripMenuItem66 // this.toolStripMenuItem66.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Save; this.toolStripMenuItem66.Name = "toolStripMenuItem66"; - this.toolStripMenuItem66.Size = new System.Drawing.Size(168, 22); + this.toolStripMenuItem66.Size = new System.Drawing.Size(159, 22); this.toolStripMenuItem66.Text = "Save Config"; this.toolStripMenuItem66.Click += new System.EventHandler(this.SaveConfigMenuItem_Click); // @@ -3593,7 +3593,7 @@ // this.toolStripMenuItem67.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.LoadConfig; this.toolStripMenuItem67.Name = "toolStripMenuItem67"; - this.toolStripMenuItem67.Size = new System.Drawing.Size(168, 22); + this.toolStripMenuItem67.Size = new System.Drawing.Size(159, 22); this.toolStripMenuItem67.Text = "Load Config"; this.toolStripMenuItem67.Click += new System.EventHandler(this.LoadConfigMenuItem_Click); // diff --git a/BizHawk.Client.EmuHawk/MainForm.resx b/BizHawk.Client.EmuHawk/MainForm.resx index ae8639d62d..8b1dffee71 100644 --- a/BizHawk.Client.EmuHawk/MainForm.resx +++ b/BizHawk.Client.EmuHawk/MainForm.resx @@ -123,463 +123,454 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOuwAA - DrsBx/jUNgAAAa9JREFUOE+dk0FrGlEUhd9/kloUxCBiQRBLQUglxIXQlspAMdiBKmEIlmahhAEJmBII - NMiQ2I0hEBOlUMZFwWzadffZdN3lab8HE1pjXEQ43Os539HxzWjMwisWi2nRi96vyv7ruK5750OWefd9 - kfX/LawsnwbHqtVqqtfrajabarfb6na76vV6oojY8chgYOnQNdVqVfP5/EGiayqVimazmda3j5V680kF - 70wbe1/1oj+3Yscjg4HNZDJ20jXlclmTyUSPXn3UX36lYGDDMLSTrimVShqNRnr8+lAfLn/JD38vFRkM - LFfApGuKxaIGg4GSzpGcox96eXAt9+Snds5vrNjxyGBgx+OxnXRNPp9Xv9+3v3HTD5V1T5aKDAaWK2DS - NdlsVp1OR2tbA1X3v+l558tSkcHADodDO+madDotz/OUaQS3Jx/dgcUJAxuJrkkmk2o0Gnr69lBP3n22 - t+zZ+wuVdq+s2PHIYGAj0TXxeFyO46jVasn3fQVBoOl0evtgseORwcBGomt2vJZYEomEUqmUPaBcLmcP - qFAoWLHjkcHA0qFr/zjfr2d6iOj+AdiQMGoJxWWRAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA67AAAOuwHH+NQ2AAABpElE + QVQ4T52TQUsCURSF33+SDAUxRAyEwQiEksiFUJEMhGEDOcQgRi2UGJBgCkFIZDDbGEGWEsTMItBNrdu3 + ad3y1HmkVNosvHC4l3u+A2/ezIi/5fP58D1OlJf3qzRNmwCn7TzrZ8AzfGk3kM1mkcvlUCgUUCqVUKlU + UK1WwSDFmTt6ZMgyw6zIZDIYDAYziVmRTqfhui5WDhoI7VxAMa6xdvKIDWsgxZk7emTIRiIR2ZkVqVQK + vV4Pc1vn+OI9RYas4ziyMyuSySQ6nQ7mt2s4unuH6XxMFT0yZHkCdmZFIpFAs9lEUK1Drb9g82wIrfWK + 4s2bFGfu6JEh2+12ZWdWxONxWJYln3HddBDVWlNFjwxZnoCdWRGNRlEul7Gw20Tm9Amr5YepokeGbLvd + lp1ZEQ6HYRgGInl7fPP/iQzZkZgVwWAQ+XweS3s1LO5fyVe2fHiL5PG9FGfu6JEhOxKzwu/3Q1VV6LoO + 0zRh2zb6/f74Y+HMHT0yZEdiVhQNXQ6BQAChUEheUCwWkxekKIoUZ+7okSHLDLPyf3geuphFQgjxCdiQ + MGrYYwVfAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAQSQAA - EEkBmHGG8gAAAHVJREFUOE/NkuEKwCAIhN2b781bGsZlarH9aIEEcX2eVxfdVOjTYoCpUhef2d3qWnMR - AoTEkV9OMwEMdQTwsxGc9PU19l7BS5qhNVyuOXS4wFlgoXgL4FoMHHUtfqTIgZ6HGaw6I2CCDXMmGagu - BaycvB4hAz9wYIvatCqJLwAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABBJAAAQSQGYcYbyAAAAcElE + QVQ4T82Q4QoAIQiDffR7804DY+pOov5c8GltwyiRR8YVTLTFOsWK2iA0eAapQkPOznwRGnJ25rX87AmK + /3ruFCvhCR9oclI8PNggJHg7A46w4rf5zY6H8jlAxQQOKMPWBswSIpmloXkEFbeR8QKDpKJKL1M/dQAA + AABJRU5ErkJggg== - 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 @@ -590,25 +581,25 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOuwAA - DrsBx/jUNgAAAa9JREFUOE+dk0FrGlEUhd9/kloUxCBiQRBLQUglxIXQlspAMdiBKmEIlmahhAEJmBII - NMiQ2I0hEBOlUMZFwWzadffZdN3lab8HE1pjXEQ43Os539HxzWjMwisWi2nRi96vyv7ruK5750OWefd9 - kfX/LawsnwbHqtVqqtfrajabarfb6na76vV6oojY8chgYOnQNdVqVfP5/EGiayqVimazmda3j5V680kF - 70wbe1/1oj+3Yscjg4HNZDJ20jXlclmTyUSPXn3UX36lYGDDMLSTrimVShqNRnr8+lAfLn/JD38vFRkM - LFfApGuKxaIGg4GSzpGcox96eXAt9+Snds5vrNjxyGBgx+OxnXRNPp9Xv9+3v3HTD5V1T5aKDAaWK2DS - NdlsVp1OR2tbA1X3v+l558tSkcHADodDO+madDotz/OUaQS3Jx/dgcUJAxuJrkkmk2o0Gnr69lBP3n22 - t+zZ+wuVdq+s2PHIYGAj0TXxeFyO46jVasn3fQVBoOl0evtgseORwcBGomt2vJZYEomEUqmUPaBcLmcP - qFAoWLHjkcHA0qFr/zjfr2d6iOj+AdiQMGoJxWWRAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA67AAAOuwHH+NQ2AAABpElE + QVQ4T52TQUsCURSF33+SDAUxRAyEwQiEksiFUJEMhGEDOcQgRi2UGJBgCkFIZDDbGEGWEsTMItBNrdu3 + ad3y1HmkVNosvHC4l3u+A2/ezIi/5fP58D1OlJf3qzRNmwCn7TzrZ8AzfGk3kM1mkcvlUCgUUCqVUKlU + UK1WwSDFmTt6ZMgyw6zIZDIYDAYziVmRTqfhui5WDhoI7VxAMa6xdvKIDWsgxZk7emTIRiIR2ZkVqVQK + vV4Pc1vn+OI9RYas4ziyMyuSySQ6nQ7mt2s4unuH6XxMFT0yZHkCdmZFIpFAs9lEUK1Drb9g82wIrfWK + 4s2bFGfu6JEh2+12ZWdWxONxWJYln3HddBDVWlNFjwxZnoCdWRGNRlEul7Gw20Tm9Amr5YepokeGbLvd + lp1ZEQ6HYRgGInl7fPP/iQzZkZgVwWAQ+XweS3s1LO5fyVe2fHiL5PG9FGfu6JEhOxKzwu/3Q1VV6LoO + 0zRh2zb6/f74Y+HMHT0yZEdiVhQNXQ6BQAChUEheUCwWkxekKIoUZ+7okSHLDLPyf3geuphFQgjxCdiQ + MGrYYwVfAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAQSQAA - EEkBmHGG8gAAAHVJREFUOE/NkuEKwCAIhN2b781bGsZlarH9aIEEcX2eVxfdVOjTYoCpUhef2d3qWnMR - AoTEkV9OMwEMdQTwsxGc9PU19l7BS5qhNVyuOXS4wFlgoXgL4FoMHHUtfqTIgZ6HGaw6I2CCDXMmGagu - BaycvB4hAz9wYIvatCqJLwAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABBJAAAQSQGYcYbyAAAAcElE + QVQ4T82Q4QoAIQiDffR7804DY+pOov5c8GltwyiRR8YVTLTFOsWK2iA0eAapQkPOznwRGnJ25rX87AmK + /3ruFCvhCR9oclI8PNggJHg7A46w4rf5zY6H8jlAxQQOKMPWBswSIpmloXkEFbeR8QKDpKJKL1M/dQAA + AABJRU5ErkJggg== diff --git a/BizHawk.Client.EmuHawk/tools/GameShark.Designer.cs b/BizHawk.Client.EmuHawk/tools/GameShark.Designer.cs index 8b4309c80e..9266ffc9e1 100644 --- a/BizHawk.Client.EmuHawk/tools/GameShark.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/GameShark.Designer.cs @@ -47,7 +47,7 @@ // // btnClear // - this.btnClear.Location = new System.Drawing.Point(141, 132); + this.btnClear.Location = new System.Drawing.Point(149, 92); this.btnClear.Name = "btnClear"; this.btnClear.Size = new System.Drawing.Size(75, 23); this.btnClear.TabIndex = 4; @@ -58,7 +58,7 @@ // lblCheat // this.lblCheat.AutoSize = true; - this.lblCheat.Location = new System.Drawing.Point(147, 91); + this.lblCheat.Location = new System.Drawing.Point(155, 51); this.lblCheat.Name = "lblCheat"; this.lblCheat.Size = new System.Drawing.Size(63, 13); this.lblCheat.TabIndex = 11; @@ -66,14 +66,14 @@ // // txtCheat // - this.txtCheat.Location = new System.Drawing.Point(128, 106); + this.txtCheat.Location = new System.Drawing.Point(136, 66); this.txtCheat.Name = "txtCheat"; this.txtCheat.Size = new System.Drawing.Size(100, 20); this.txtCheat.TabIndex = 2; // // btnGo // - this.btnGo.Location = new System.Drawing.Point(35, 131); + this.btnGo.Location = new System.Drawing.Point(43, 91); this.btnGo.Name = "btnGo"; this.btnGo.Size = new System.Drawing.Size(75, 24); this.btnGo.TabIndex = 3; @@ -84,7 +84,7 @@ // lblDescription // this.lblDescription.AutoSize = true; - this.lblDescription.Location = new System.Drawing.Point(42, 90); + this.lblDescription.Location = new System.Drawing.Point(50, 50); this.lblDescription.Name = "lblDescription"; this.lblDescription.Size = new System.Drawing.Size(60, 13); this.lblDescription.TabIndex = 17; @@ -92,7 +92,7 @@ // // txtDescription // - this.txtDescription.Location = new System.Drawing.Point(22, 106); + this.txtDescription.Location = new System.Drawing.Point(30, 66); this.txtDescription.Name = "txtDescription"; this.txtDescription.Size = new System.Drawing.Size(100, 20); this.txtDescription.TabIndex = 1; @@ -113,6 +113,7 @@ this.MainMenuStrip = this.mnuGameShark; this.MaximizeBox = false; this.Name = "GameShark"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "GameShark Converter"; this.Load += new System.EventHandler(this.GameShark_Load); this.ResumeLayout(false); From 13418e963b512480e6d8bbe0fec0d475d736454b Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 20 Dec 2015 11:49:50 -0500 Subject: [PATCH 047/106] GameShark - reposition and resize things slightly, there was a bit too much unused space for no reason --- .../tools/GameShark.Designer.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/GameShark.Designer.cs b/BizHawk.Client.EmuHawk/tools/GameShark.Designer.cs index 9266ffc9e1..009fa6cd7f 100644 --- a/BizHawk.Client.EmuHawk/tools/GameShark.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/GameShark.Designer.cs @@ -42,12 +42,12 @@ // this.mnuGameShark.Location = new System.Drawing.Point(0, 0); this.mnuGameShark.Name = "mnuGameShark"; - this.mnuGameShark.Size = new System.Drawing.Size(284, 24); + this.mnuGameShark.Size = new System.Drawing.Size(281, 24); this.mnuGameShark.TabIndex = 0; // // btnClear // - this.btnClear.Location = new System.Drawing.Point(149, 92); + this.btnClear.Location = new System.Drawing.Point(156, 90); this.btnClear.Name = "btnClear"; this.btnClear.Size = new System.Drawing.Size(75, 23); this.btnClear.TabIndex = 4; @@ -58,7 +58,7 @@ // lblCheat // this.lblCheat.AutoSize = true; - this.lblCheat.Location = new System.Drawing.Point(155, 51); + this.lblCheat.Location = new System.Drawing.Point(162, 49); this.lblCheat.Name = "lblCheat"; this.lblCheat.Size = new System.Drawing.Size(63, 13); this.lblCheat.TabIndex = 11; @@ -66,14 +66,14 @@ // // txtCheat // - this.txtCheat.Location = new System.Drawing.Point(136, 66); + this.txtCheat.Location = new System.Drawing.Point(143, 64); this.txtCheat.Name = "txtCheat"; this.txtCheat.Size = new System.Drawing.Size(100, 20); this.txtCheat.TabIndex = 2; // // btnGo // - this.btnGo.Location = new System.Drawing.Point(43, 91); + this.btnGo.Location = new System.Drawing.Point(50, 89); this.btnGo.Name = "btnGo"; this.btnGo.Size = new System.Drawing.Size(75, 24); this.btnGo.TabIndex = 3; @@ -84,7 +84,7 @@ // lblDescription // this.lblDescription.AutoSize = true; - this.lblDescription.Location = new System.Drawing.Point(50, 50); + this.lblDescription.Location = new System.Drawing.Point(57, 48); this.lblDescription.Name = "lblDescription"; this.lblDescription.Size = new System.Drawing.Size(60, 13); this.lblDescription.TabIndex = 17; @@ -92,7 +92,7 @@ // // txtDescription // - this.txtDescription.Location = new System.Drawing.Point(30, 66); + this.txtDescription.Location = new System.Drawing.Point(37, 64); this.txtDescription.Name = "txtDescription"; this.txtDescription.Size = new System.Drawing.Size(100, 20); this.txtDescription.TabIndex = 1; @@ -101,7 +101,7 @@ // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(284, 261); + this.ClientSize = new System.Drawing.Size(281, 144); this.Controls.Add(this.txtDescription); this.Controls.Add(this.lblDescription); this.Controls.Add(this.btnClear); From 1d10565992af6e042896f5880aacab273bf23d62 Mon Sep 17 00:00:00 2001 From: Hathor86 Date: Sun, 20 Dec 2015 18:13:32 +0100 Subject: [PATCH 048/106] Bug fix: Crash if ExternalTool directory does not exists As mentionned, this bug is fixed, it creates the directory if it does not exists + ExternalTool code exemple is cloned from repo and added inot ExternalTool folder --- BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs | 7 ++++++- Dist/BuildAndPackage.bat | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs b/BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs index 120df998ec..8b851306db 100644 --- a/BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs +++ b/BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs @@ -19,7 +19,7 @@ namespace BizHawk.Client.ApiHawk { #region Fields - private static FileSystemWatcher directoryMonitor = new FileSystemWatcher(Global.Config.PathEntries["Global", "External Tools"].Path, "*.dll"); + private static FileSystemWatcher directoryMonitor; private static List menuItems = new List(); #endregion @@ -31,6 +31,11 @@ namespace BizHawk.Client.ApiHawk ///
  • U{*dok4dz%J7Q&Jh(zTb<*Z4xd}DG4I?_(>vb?$ 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 B_H+OM diff --git a/output/dll/libsneshawk-32-performance.dll b/output/dll/libsneshawk-32-performance.dll index 1d1e77fbf56dbef27cbb7fd922eb8fb979602fa9..21f1c9a1a5a79ec7d104d3c32793512e0a1779fb 100644 GIT binary patch delta 337142 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

    static ExternalToolManager() { + if(!Directory.Exists(Global.Config.PathEntries["Global", "External Tools"].Path)) + { + Directory.CreateDirectory(Global.Config.PathEntries["Global", "External Tools"].Path); + } + directoryMonitor = new FileSystemWatcher(Global.Config.PathEntries["Global", "External Tools"].Path, "*.dll"); directoryMonitor.IncludeSubdirectories = false; directoryMonitor.Created += DirectoryMonitor_Created; diff --git a/Dist/BuildAndPackage.bat b/Dist/BuildAndPackage.bat index 07b66fd005..7a1aa3f293 100644 --- a/Dist/BuildAndPackage.bat +++ b/Dist/BuildAndPackage.bat @@ -46,6 +46,12 @@ rmdir /s /q temp\firmware rmdir /s /q gitsucks git --git-dir ../.git archive --format zip --output lua.zip master output/Lua git --git-dir ../.git archive --format zip --output firmware.zip master output/Firmware +rem Getting externaltools example from my repo +rem I once talked about a dedicated repo for external tools, think about moving the exemple to it it it happend +git clone https://github.com/Hathor86/HelloWorld_BizHawkTool.git +git --git-dir HelloWorld_BizHawkTool/.git archive --format zip --output HelloWorld_BizHawkTool.zip master +rmdir /s /q HelloWorld_BizHawkTool + unzip lua.zip -d gitsucks rem del lua.zip move gitsucks\output\Lua temp @@ -64,6 +70,7 @@ upx -d *.exe rem Patch up working dir with a few other things we want mkdir ExternalTools copy ..\HelloWorld_BizHawkTool.dll ExternalTools +copy ..\HelloWorld_BizHawkTool.zip ExternalTools rem Build the final zip ..\zip.exe -X -9 -r ..\%NAME% . -i \* From 765437468210fe7e1feba013f604da2640fb0161 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 20 Dec 2015 12:38:59 -0500 Subject: [PATCH 049/106] Cheats - use the integrated tool instead of the one-off platform specific tools --- BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs | 8 ++--- BizHawk.Client.EmuHawk/tools/ToolManager.cs | 29 ++----------------- 2 files changed, 4 insertions(+), 33 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs b/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs index 666e508773..6e6df537e0 100644 --- a/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs +++ b/BizHawk.Client.EmuHawk/tools/Cheats/Cheats.cs @@ -7,10 +7,6 @@ using System.Linq; using System.Windows.Forms; using BizHawk.Emulation.Common; -using BizHawk.Emulation.Common.IEmulatorExtensions; -using BizHawk.Emulation.Cores.Nintendo.SNES; -using BizHawk.Emulation.Cores.Sega.Genesis; - using BizHawk.Client.Common; using BizHawk.Client.EmuHawk.ToolExtensions; using BizHawk.Client.EmuHawk.WinFormExtensions; @@ -172,7 +168,7 @@ namespace BizHawk.Client.EmuHawk { GameGenieToolbarSeparator.Visible = LoadGameGenieToolbarItem.Visible = - GlobalWin.Tools.GameGenieAvailable; + GlobalWin.Tools.IsAvailable(); } private void AddCheat() @@ -443,7 +439,7 @@ namespace BizHawk.Client.EmuHawk GameGenieSeparator.Visible = OpenGameGenieEncoderDecoderMenuItem.Visible = - GlobalWin.Tools.GameGenieAvailable; + GlobalWin.Tools.IsAvailable(); } private void RemoveCheatMenuItem_Click(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/tools/ToolManager.cs b/BizHawk.Client.EmuHawk/tools/ToolManager.cs index 195fe65b2e..1a15873f24 100644 --- a/BizHawk.Client.EmuHawk/tools/ToolManager.cs +++ b/BizHawk.Client.EmuHawk/tools/ToolManager.cs @@ -716,19 +716,6 @@ namespace BizHawk.Client.EmuHawk return true; } - // Eventually we want a single game genie tool, then this mess goes away - public bool GameGenieAvailable - { - get - { - return (Global.Emulator.SystemId == "NES") - || (Global.Emulator.SystemId == "GEN") - || (Global.Emulator.SystemId == "GB") - || (Global.Game.System == "GG") - || (Global.Emulator is BizHawk.Emulation.Cores.Nintendo.SNES.LibsnesCore); - } - } - // Note: Referencing these properties creates an instance of the tool and persists it. They should be referenced by type if this is not desired #region Tools @@ -943,21 +930,9 @@ namespace BizHawk.Client.EmuHawk public void LoadGameGenieEc() { - if (Global.Emulator.SystemId == "NES") + if (GlobalWin.Tools.IsAvailable()) { - Load(); - } - else if (Global.Emulator.SystemId == "SNES") - { - Load(); - } - else if ((Global.Emulator.SystemId == "GB") || (Global.Game.System == "GG")) - { - Load(); - } - else if (Global.Emulator.SystemId == "GEN") - { - Load(); + GlobalWin.Tools.Load(); } } From 01e72a2d944b627f3d3e65a45e2d0a21e4fc9fdf Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 20 Dec 2015 12:46:17 -0500 Subject: [PATCH 050/106] Change macro input to released = false --- BizHawk.Client.EmuHawk/tools/Macros/MacroInput.cs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/Macros/MacroInput.cs b/BizHawk.Client.EmuHawk/tools/Macros/MacroInput.cs index e2d7a4539f..5f6f40a1c4 100644 --- a/BizHawk.Client.EmuHawk/tools/Macros/MacroInput.cs +++ b/BizHawk.Client.EmuHawk/tools/Macros/MacroInput.cs @@ -1,10 +1,5 @@ using System; using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; using System.Windows.Forms; using System.IO; @@ -15,6 +10,7 @@ using BizHawk.Client.EmuHawk.ToolExtensions; namespace BizHawk.Client.EmuHawk { + [ToolAttributes(false, null)] public partial class MacroInputTool : Form, IToolFormAutoConfig { [RequiredService] From 223295cd87e4fad785c85b97e70e542978b21359 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 20 Dec 2015 12:49:14 -0500 Subject: [PATCH 051/106] Make platform specific game genie tools not released, so they don't show up in the toolbox --- BizHawk.Client.EmuHawk/tools/GB/GBGameGenie.cs | 2 +- BizHawk.Client.EmuHawk/tools/Genesis/GenGameGenie.cs | 1 + BizHawk.Client.EmuHawk/tools/NES/NESGameGenie.cs | 2 +- BizHawk.Client.EmuHawk/tools/SNES/SNESGameGenie.cs | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/GB/GBGameGenie.cs b/BizHawk.Client.EmuHawk/tools/GB/GBGameGenie.cs index 2a35ca3afc..b09573ba1e 100644 --- a/BizHawk.Client.EmuHawk/tools/GB/GBGameGenie.cs +++ b/BizHawk.Client.EmuHawk/tools/GB/GBGameGenie.cs @@ -5,11 +5,11 @@ using System.Text.RegularExpressions; using System.Windows.Forms; using BizHawk.Emulation.Common; -using BizHawk.Emulation.Common.IEmulatorExtensions; using BizHawk.Client.Common; namespace BizHawk.Client.EmuHawk { + [ToolAttributes(false, null)] public partial class GBGameGenie : Form, IToolFormAutoConfig { // TODO: fix the use of Global.Game.System and Emulator.SystemId diff --git a/BizHawk.Client.EmuHawk/tools/Genesis/GenGameGenie.cs b/BizHawk.Client.EmuHawk/tools/Genesis/GenGameGenie.cs index 3d5b730ab2..a00b0858f2 100644 --- a/BizHawk.Client.EmuHawk/tools/Genesis/GenGameGenie.cs +++ b/BizHawk.Client.EmuHawk/tools/Genesis/GenGameGenie.cs @@ -12,6 +12,7 @@ using BizHawk.Emulation.Cores.Consoles.Sega.gpgx; namespace BizHawk.Client.EmuHawk { + [ToolAttributes(false, null)] public partial class GenGameGenie : Form, IToolFormAutoConfig { #pragma warning disable 675 diff --git a/BizHawk.Client.EmuHawk/tools/NES/NESGameGenie.cs b/BizHawk.Client.EmuHawk/tools/NES/NESGameGenie.cs index 9bce0c8c31..6cbfcfc980 100644 --- a/BizHawk.Client.EmuHawk/tools/NES/NESGameGenie.cs +++ b/BizHawk.Client.EmuHawk/tools/NES/NESGameGenie.cs @@ -4,11 +4,11 @@ using System.Globalization; using System.Windows.Forms; using BizHawk.Emulation.Common; -using BizHawk.Emulation.Common.IEmulatorExtensions; using BizHawk.Client.Common; namespace BizHawk.Client.EmuHawk { + [ToolAttributes(false, null)] public partial class NESGameGenie : Form, IToolFormAutoConfig { [RequiredService] diff --git a/BizHawk.Client.EmuHawk/tools/SNES/SNESGameGenie.cs b/BizHawk.Client.EmuHawk/tools/SNES/SNESGameGenie.cs index 160d08cfb3..e527112d68 100644 --- a/BizHawk.Client.EmuHawk/tools/SNES/SNESGameGenie.cs +++ b/BizHawk.Client.EmuHawk/tools/SNES/SNESGameGenie.cs @@ -5,12 +5,12 @@ using System.Text.RegularExpressions; using System.Windows.Forms; using BizHawk.Emulation.Common; -using BizHawk.Emulation.Common.IEmulatorExtensions; using BizHawk.Emulation.Cores.Nintendo.SNES; using BizHawk.Client.Common; namespace BizHawk.Client.EmuHawk { + [ToolAttributes(false, null)] public partial class SNESGameGenie : Form, IToolFormAutoConfig { [RequiredService] From 752235b848f8f6e9597db663cdc9138e5dde50ff Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 20 Dec 2015 12:51:05 -0500 Subject: [PATCH 052/106] NES Music ripper tool - clean it up slightly to be more presentable --- .../tools/NES/NESMusicRipper.Designer.cs | 11 +- .../tools/NES/NESMusicRipper.cs | 4 + .../tools/NES/NESMusicRipper.resx | 295 ++++++++++++++++++ 3 files changed, 306 insertions(+), 4 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/NES/NESMusicRipper.Designer.cs b/BizHawk.Client.EmuHawk/tools/NES/NESMusicRipper.Designer.cs index 35507aecf6..16e2b91d92 100644 --- a/BizHawk.Client.EmuHawk/tools/NES/NESMusicRipper.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/NES/NESMusicRipper.Designer.cs @@ -164,19 +164,19 @@ this.toolStripSeparator2, this.ExitMenuItem}); this.FileSubMenu.Name = "FileSubMenu"; - this.FileSubMenu.Size = new System.Drawing.Size(35, 20); + this.FileSubMenu.Size = new System.Drawing.Size(37, 20); this.FileSubMenu.Text = "&File"; // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(129, 6); + this.toolStripSeparator2.Size = new System.Drawing.Size(131, 6); // // ExitMenuItem // this.ExitMenuItem.Name = "ExitMenuItem"; this.ExitMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.ExitMenuItem.Size = new System.Drawing.Size(132, 22); + this.ExitMenuItem.Size = new System.Drawing.Size(134, 22); this.ExitMenuItem.Text = "E&xit"; this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); // @@ -189,9 +189,12 @@ this.Controls.Add(this.groupBox1); this.Controls.Add(this.textBox1); this.Controls.Add(this.menuStrip1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "NESMusicRipper"; - this.Text = "NESMusicRipper"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Music Ripper"; this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.NESMusicRipper_FormClosed); + this.Load += new System.EventHandler(this.NESMusicRipper_Load); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.groupBox2.ResumeLayout(false); diff --git a/BizHawk.Client.EmuHawk/tools/NES/NESMusicRipper.cs b/BizHawk.Client.EmuHawk/tools/NES/NESMusicRipper.cs index de54555a79..3d173c1ebd 100644 --- a/BizHawk.Client.EmuHawk/tools/NES/NESMusicRipper.cs +++ b/BizHawk.Client.EmuHawk/tools/NES/NESMusicRipper.cs @@ -515,5 +515,9 @@ namespace BizHawk.Client.EmuHawk apu.DebugCallback = null; } + private void NESMusicRipper_Load(object sender, EventArgs e) + { + + } } } diff --git a/BizHawk.Client.EmuHawk/tools/NES/NESMusicRipper.resx b/BizHawk.Client.EmuHawk/tools/NES/NESMusicRipper.resx index 803443a4c1..a9a2d5347c 100644 --- a/BizHawk.Client.EmuHawk/tools/NES/NESMusicRipper.resx +++ b/BizHawk.Client.EmuHawk/tools/NES/NESMusicRipper.resx @@ -125,4 +125,299 @@ Make sure the template has 5 tracks. There should be pulse waveforms in instrume 17, 17 + + + + AAABAAYAMBwAAAEAIAAIFgAAZgAAADAcAAABAAgASAoAAG4WAAAgIAAAAQAgAKgQAAC2IAAAICAAAAEA + CACoCAAAXjEAABAQAAABACAAaAQAAAY6AAAQEAAAAQAIAGgFAABuPgAAKAAAADAAAAA4AAAAAQAgAAAA + AAAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NQYpKSkY5aUlIGWlJKBl5WVfpSS + koGUlJSBlpaWepaWlnqWlpZ6lZWVfpWVlX6VlZV+lZWVfpWVlX6XlZV+mZeVfpmXlX6XlZV+l5WVfpaU + lIGWlJSBl5WVfpWXlX6Vl5V+lZeVfpWXlX6Xl5V+l5eVfpeXlX6Xl5V+l5WVfpeVlX6WlJSBl5WVfpeV + lX6XlZV+l5WVfpeVlX6VlZV+l5WVfpeVlX6Vk5GFlJKSgaSkpGPY2NgUAAAAALe3t0QsLCz/CAQD/w4L + B/8WEQ7/Ew4L/xQQD/8NCwr/DwoJ/xALCv8RDAv/Eg0M/xINDP8SDQz/FA8O/xUQD/8QDAv/EQ0M/xMP + Dv8TDw7/FBAP/xUREP8WEhH/FxMS/xMREP8TERD/EhAP/xIQD/8RDw7/EA4N/xAODf8PDQz/FBAP/xMP + Dv8SDg3/Eg4N/xIODf8SDg3/EQ0M/xAMC/8MCgn/Ew8O/xEMCf8UDwz/DwwI/wsHBv8tLS3/s7O3Ry0s + Lv8bGRn/bWhl/4aAe/+Gfnf/eXNu/4B5dv+FgH3/h357/4qBfv+NhIH/j4aD/5GIhf+Tiof/lo2K/5iP + jP+blpP/nJeU/5+al/+hnJn/o56b/6ahnv+oo6D/qqWi/6qlov+ppKH/p6Kf/6Wgnf+inZr/oJuY/5+a + l/+emZb/mJOQ/5eSj/+VkI3/k46L/5GMif+Qi4j/jomG/4yHhP+KhYL/hX57/395dP+Lg3z/jIaB/3Nu + a/8dGxv/KSgq/wQCAv9OSUj/qaOe/6Wck/+onZX/rKOa/6igmf+moJv/rKSd/66mn/+yqqP/tKyl/7au + p/+4sKn/u7Os/762r/++tbL/wLe0/8O6t//Gvbr/yL+8/8vCv//OxcL/0MfE/9HKx//Qycb/zcbD/8rD + wP/HwL3/xL26/8K7uP/Burf/w7u0/8G5sv++tq//u7Os/7iwqf+1rab/s6uk/7Gpov+uqKP/sami/7Ws + o/+uo5v/qaCX/62nov9STUz/BwUF/wQAAP9VUE3/tq6n/8e9s//GurD/x72z/8rBuP/Jwbr/ycG6/8zE + vf/Oxr//z8fA/8/HwP/QyMH/08vE/9XNxv/Yz8v/2tHN/9zTz//e1dH/4djU/+Pa1v/l3Nj/597a/+rh + 3f/p4Nz/597a/+Tb1//h2NT/39bS/93U0P/c08//1c3G/9TMxf/QyMH/zcW+/8rCu//Hv7j/xLy1/8K6 + s/+8tK3/v7at/7uxp/+3q6H/t62j/6ujnP9STUr/BQAB/wAAAP9tbW3/7u7u/+Li4v/c3Nz/19fX/9fX + 1//Z2dn/2tra/9zc3P/U1NT/1tbW/9zc3P/d29v/1NLS/9rY2P/d29v/3NjX/+Xg3f/m4Nv/6ePe/+nj + 3v/n4N3/5+Dd/+bk2v/k4dz/4d3j/+Tc5v/i2+D/49nf/93Y2f/Y3c7/3NnU/97Z0P/i2+L/1tfT/9LV + 0//Y0dj/3NrQ/9fUz//i4bv/0c7d/8vO1v/d1db/4tvS/+Hp2P9dYmX/BwUA/wAAAP9+fn7/6enp/2ho + aP8mJib/JiYm/ysrK/8pKSn/JiYm/yoqKv8pKSn/MjAw/yYkJP8sKir/NTMz/zEvL/8wLi7/VVFQ/4aB + fv95c27/fXdy/3lzbv9ya2j/e3Rx/3dvaP91cmr/dHJq/3FvZf99d2z/X1ZT/z01PP9BPUP/RT5L/0FE + Nf8+Qjz/OjhM/0FFP/9QVkX/QjtI/0tMSv9PQE7/TEZl/0tPUP9VT0j/hHt3/+bo6P92dYX/BAIA/wMD + A/9ycnL/3Nzc/zk5Of8AAAD/BAQE/wAAAP8BAQH/AgAA/wQCAv8CAAD/AwEB/wQCAv8CAAD/BAIC/wMB + Af8DAQH/Ih4d/0pFQv9IQj3/TEZB/09JRP9KQ0D/SEE+/0s/Pf9DOjf/RkE4/0Q+Mf9JQTT/OTAm/xkS + D/8fGiP/HxUi/xgfCv8iISv/LRpN/yUbLP8kIhr/IB0f/ygmJv8qHzn/JSM3/x4iHP8sJiH/XFRU/+Ti + 6P95dYj/BAAA/wMFBf9zdXX/4+Xl/zAyMv8AAAD/AQMD/wACAv8GCAj/W1lY/2xqaf9pZ2b/NzU0/wcF + BP8FAwL/DQsK/wcIBv8RDw//GhgX/yckIP8tKST/JiAb/yslIP80LSr/KiUi/zIpJv8yKSz/Ni4v/zQp + K/8tHyP/KyUY/zw+Kv+TlpT/q6aj/52hov+jpqr/in2N/11PUf+ioYz/rK+m/6Sjp/+mrLH/dn53/yos + Jv80KjD/YVxb/+Pi3v9vbXP/BwUE/wIDAf9tbmz/4+Ti/zk6OP8AAQD/AAEA/wMEAv8eHx3/cGxr/0E9 + PP9TT07/XVta/wgGBf8GBAP/CQcG/wsMCv8GBgb/YV9e/8bDv//KxsH/w724/7q0r/+5tLH/w767/7q0 + r/+1rrH/rKin/6+oq/++sr7/cG5k/1RaT//NzOb/mYzg/4F75v+mquX/vbjH/4iCff/S0+j/kYrl/4N9 + 3P+zt+f/pKyr/zUyLf8tIir/XVpW/+bj3v9wb2v/CQsF/xMUEv9pamj/2NnX/zk6OP8AAQD/AwQC/wME + Av8nKCb/RkFA/xINDP8gHBv/VFBP/wQCAf8VExL/BwgG/wgJB/8LCwv/fnx7/+Xi3v+Cfnn/Z2Ne/2ll + YP+KhYL/zsnG/3l2bv9dWlb/YGJP/4aFd//Ty9L/fn15/0ZIU/+GecX/Hhi9/wANof8kJrr/gYek/3aC + bP9gX7v/DhKt/wkRsv8/L73/hoak/z85NP8zLi3/YF1Z/+Td4P9wa2r/Cw4F/wkHBv9pZ2b/4d/e/zo4 + N/8NCwr/UU9O/1BOTf9oZmX/TUhH/yIdHP8qJST/cm5t/15cW/9aWFf/MTIw/wwNC/8KCgr/eXd2/+jl + 4f+sqKP/pKCb/6Sgm/+wq6j/2NPQ/6ymof+WkJH/nZ6K/7Ctnv/Qxc//fnx0/0tNVf9hUaX/BADM/wAE + xv8QCs3/bGic/3Bxb/9GO7//BAjL/wAAx/8lEr//dHOV/zkyKf8yLSr/YWJZ/+Xb4f9nYWL/CgwM/xkV + FP9jX17/3dnY/0I+Pf8YFBP/YFxb/zMvLv87Nzb/MCsq/xwXFv8lIB//My8u/y8tLP9APj3/U1RS/wkK + CP8NDQ3/QUJA/39+ev+Kh4L/hIB7/4J+ef+GgX7/gHt4/4R4eP+LfYj/f3Zy/4V5ef+EcYT/U1BB/09X + Rv+bksr/JyTe/w4H+P88RMf/npWq/4N3bf+JiMz/GRLl/xEW4/9XVtz/iZGY/0M6MP80LTD/YGRZ/+Xf + 2v9lXV3/ExEd/xYWFv9aWFj/2dXU/0E/Pv8SExH/UFFN/ysoJP8wJyT/LSQg/y8mIv8rJSD/LCYh/ykk + If84MzD/UUxJ/xYTD/8bGBD/IyIU/zMzJ/8oKyn/Jyo4/ycoPP8uLzn/NzU0/y40L/81Ozr/MDQ1/zU1 + Nf8+Ozf/Mi0q/0E8Pf9vbXP/Y12A/1tYbv9xb3X/YWJZ/0tMQ/93dnj/ZGBz/11Xdv93dXT/XFhX/zw3 + NP82Lyz/aWJf/+Db2P9aWFf/FhcV/x4eHv9cV1j/1dHQ/0NBQP8dHhz/VVZS/zs4NP8+NTL/Rz84/0Q7 + N/86NC//QTs2/zk0Mf9ST0v/YF1Z/y8rKv8zLyr/QzlF/1xJdP9VPIb/UDeN/0w5fv9USmj/XllW/1E8 + ev9QOYP/SDF7/006a/9USlb/Pzwu/yopH/8wLzP/My81/yolJ/82Lyz/Ny4q/ygfG/87MDL/MSkw/zEp + NP80MjH/NjIx/zUwLf86MzD/aGFe/9nU0f9XVVT/Hh8d/x4fHf9RTUz/0c3M/1ZSUf85Ojj/X2Be/1lW + Uv9lXlv/TkY//0Q8Nf9GQDv/aWNe/1RPTP9YVFP/SUdG/zAuLf87ODT/RkI9/1lVUP9VUFL/Uk5a/05K + Vv9STFH/V05K/09EVP9QRlf/SkJT/01FT/9UTEz/R0E8/zQxLf8uLi7/MjYq/zAxJ/8wLSn/OTI1/zct + M/8yKy7/NzIz/zQyMf8tKyr/NjIx/zo1Mv8/ODX/bWZj/9jT0P9RT07/HR4c/ygpJ/9LR0b/z8rJ/15a + Wf85Ojj/Ozw6/zw6Of9PSkn/ZFxV/01FPv9HQTz/XVhV/z47N/87OTj/NTU1/z4+Pv8xKjf/OzQ3/01H + QP9JRDv/SkZB/0dAQ/9KPUX/SzpD/0c/OP9GQjf/Q0I0/0M/NP9COTX/OjIz/zMuL/8wMS//Li8z/zUy + O/80LTr/NCo7/zkvQP8xKjf/OjU+/zEvNf86ODf/Ozc2/zgzMP86MzD/bWZj/9nU0f9OTEv/ICEf/ygp + J/9DPz7/zcjH/2NeXf9DQUD/Ozw6/0JAP/9QTEv/WVNO/1JMR/9WUk3/WVZS/z87Ov87OTj/MzMz/zU1 + Nf85OjH/S0k//2hhWP9oXlf/Zl1Z/2FZUv9kW1H/aV5Q/2RZUf9cUlL/WU5W/15TVv9YUUj/SkQ5/zg0 + M/8uKzT/GBSR/x0bk/8hHpL/FxOE/yAdiv8eG4j/IR6L/xsbh/81MzL/OjY1/zs2M/88NTL/bWZj/9PO + y/9HRUT/KSoo/y8wLP9DQDz/zcXF/11YV/9APj3/QUJA/0NEQv9EQD//U05L/0xHRP9OS0f/TElF/0A+ + Pf89Ozr/Ojs5/zs8Ov81NDb/RT9A/2BUUv9eUkz/XlVM/1tSSf9aT0v/Xk9N/1xVQv9VTj3/U01A/1hS + R/9XTkX/SD87/zkzNP8zMjb/MCxP/ywqR/8yM0f/Ky04/zI1Pf8wMzv/LjA7/zMzQ/87OTj/Pzs6/0A7 + OP9AOTb/cGlm/8/Kx/9APj3/LS4s/zM0MP8/PDj/zcbD/2JaWv9CQD//R0hG/0RERP9CQED/R0VE/0A+ + Pf89Ozr/Q0FA/0E/Pv88Ozf/PDs3/z8+Ov88QDX/RkI9/1tNTv9ZSkj/W09J/1lQRv9WTkH/VEs+/1VD + UP9RR0f/TUo8/05HPv9MPkL/QDI9/zkzNP86PjL/PTY5/zgyM/89ODX/Ozcy/z06Mv89NzL/PTcy/0A5 + Nv89Ozr/Ozc2/zo1Mv8+NzT/cmto/87Jxv89Ozr/MzQy/zY3M/85NjL/zMXC/2piYv9HQ0L/QUJA/zs7 + O/9EQkL/Ojo6/0RERP89PT3/QD49/zs5OP9APzv/QD87/z06Nf84ODj/S0ZF/2peWv9rX1X/amJR/2Ve + T/9iW1L/ZFhY/2BXTv9hWVL/XFZR/1pUTf9dVEv/UEhB/z86N/86ODj/PDov/z89M/8/Ojf/QDo7/z84 + O/9COjv/Rj4+/0A5Nv8+PDv/QDw7/0I9Ov9GPzz/dm9s/8rFwv84NjX/Njc1/zs6Nv80MS3/ysPA/7qv + q/+Xi4X/loyF/5mSif+TjoX/mJCJ/5iQif+YkIn/mJCJ/5iQif+YkIn/mJCJ/5iQif+Zj4j/oJaP/6ie + l/+roZr/qqCZ/6iel/+nnZb/qJ6X/6ael/+mnpf/pp6X/6Sclf+impP/npaP/5uTjP+ZkYr/nZWO/52V + jv+dlY7/nZWO/52Vjv+dlY7/nZWO/52Vjv+cl47/oJmQ/6CWj/+glI7/uq+r/8nCv/82My//Ozo2/0ZH + Rf8lISD/wLu4/+Pa1//h1tL/5dzY/9rUzf/e29P/39fQ/9/X0P/f19D/39fQ/9/X0P/f19D/39fQ/9/X + 0P/c1M3/39fQ/+La0//i2tP/4NjR/9/X0P/g2NH/4trT/97Wz//f19D/4NjR/+HZ0v/h2dL/4NjR/9/X + 0P/f19D/39fQ/9/X0P/f19D/39fQ/9/X0P/f19D/39fQ/9/X0P/Y1c3/39nS/+Tb1//d0s7/6N/c/8G8 + uf8hHRz/TU5M/4SEhP8RDw7/ZmJh/6mhof+mn5z/pp+c/6qmof+in5r/p6Kf/6ein/+nop//p6Kf/6ei + n/+nop//p6Kf/6ein/+nop//p6Kf/6ahnv+loJ3/pJ+c/6Oem/+loJ3/pqGe/6Wgnf+loJ3/pqGe/6ah + nv+moZ7/p6Kf/6ahnv+moZ7/p6Kf/6ein/+nop//p6Kf/6ein/+nop//p6Kf/6ein/+mo57/pqKd/6eg + nf+qo6D/o5ub/2RgX/8VExL/f39//9ra2gdcXFzXCQcH/wkEBf8ZFRT/DQkI/xAODf8PDQz/EAwL/xAM + C/8QDAv/EAwL/xAMC/8QDAv/EAwL/xAMC/8SDg3/Eg4N/xENDP8RDQz/Eg4N/xIODf8RDQz/EAwL/xIO + Df8SDg3/Eg4N/xENDP8RDQz/EAwL/xAMC/8QDAv/EQ0M/xENDP8RDQz/EQ0M/xENDP8RDQz/EQ0M/xEN + DP8NCwr/EQ8O/wsHBv8XExL/DQgJ/wwKCv9cXFzX////AwAAAAAAAAAAtbW1SZyZmXScmZl0kpCQhJmZ + mXSYmJV3mJWVd5iVlXeYlZV3mJWVd5iVlXeYlZV3mJWVd5iVlXeXlZV7l5WVe5eVlXuYlZV3mpiYd5qY + mHeYlZV3l5WVe5eVlXuXlZV7l5WVe5eVlXuXlZV7l5WVe5iVlXeYlZV3mJWVd5iVlXeYlZV3mJWVd5iV + lXeYlZV3mJWVd5iVlXeXl5V7mZmZdJCOjoiYlZV3n5ycbba2tkYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /////wAA5P/5/9/nAACAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAgAAAAAABAAD7/////98AAP///////wAAKAAAADAAAAA4AAAAAQAIAAAA + AACACgAAAAAAAAAAAAAAAAAAAAAAAAMCAf8JBgX/BwgG/woLBv8GCAj/DAsK/xENDP8VEg7/FBMR/xkV + FP8aGBP/ExEd/x0dHP8hHRz/KB8b/x4iHP8lIhv/Hxci/ykdJ/8qHzn/JiQj/yslIv8nKCb/Kikl/yIh + K/8tIir/Kysq/zAnJP8yKSb/Mi0s/y4yLf8xMif/OTAm/zMyLf85Myz/PTwt/yUjN/8uLTP/Jyk6/ywu + OP8yKzP/NCs6/y4wO/80MzL/OjQz/zw5Nf8yMzv/PDU7/zU7Ov87Ojn/Qjo0/0AyPf9BPTv/ST88/zxA + Nf8+Qjz/Q0I1/0lBNP9EQTz/SkQ8/0xJPf9UTD3/LRpN/ywqR/85L0D/MCxP/zIzRf86OEz/QzxC/0s8 + Q/9DPEn/TTpr/0o1fP9RPHr/REJB/0pGQv9HSEb/TUlF/05CTv9NS0r/UUdH/1NMQv9STUv/W01L/09X + Rv9RU0P/WVJF/1NQTf9bU0v/VFpP/0tIU/9SRFP/U0tT/1tOU/9STlr/VVNR/1tUUv9cWFb/XFdY/1xa + Wv9gV07/ZV5P/2BUUv9iWlL/aV5U/2JcW/9qXlr/X2Be/2BiT/9qYlH/YmJb/2hhXP9MRmX/VEpo/1tY + bv9cSXT/XVd2/11iZf9mYWH/amVj/21oZf9ra2r/cGxl/3Jtav93c2z/a2hz/3Fvdf90dHP/fHZy/3Z+ + d/9+enT/d3Z4/359e/+Dd23/g3t4/3aCbP+GgXz/FxOE/xsbh/8eG4j/GBSR/x0bk/8gHYr/IR6S/wAN + of8OEq3/CRGy/x4Yvf8lEr//JCa6/z8vvf9ROYf/Rju//2NdgP93dYb/bGic/3Rzlf9hUaX/YF+7/wID + yf8QCs3/JyTe/xUU5P8OB/j/PETH/1dW3P+IeYj/hnnF/4N93P+Be+b/hISE/4uFgv+OiYb/lIuF/5KM + iv+Yj4r/lpGO/5qSi/+dnor/iZGY/5WUlP+Ylpb/l5iW/52Zlv+bmZn/oJWO/6SclP+onZb/o52a/6Kh + jP+poJf/pqGe/6uim/+wrZ7/g4ak/56Vqv+doaL/paSm/6qkof+sqaT/o6aq/6Ssq/+vqKv/tKuj/7Cr + qP+6r6v/u7Os/6assf+1rrH/tbS1/7u0sf+7tLv/wLe0/8O6s//DvLn/yL+8/8bBvv/Kwrz/4uG7/4mI + zP+bksr/vbjH/5WL4v+mquX/s7fn/8zFwf/Oycb/z8rJ/9DHxP/SysT/0MXP/9LNy//Yz8v/19TP/9vT + zf/Y3c7/y87W/9LM1//U1NT/3dbQ/9zZ0//Y0dj/29ra/+HW0v/h2dP/5Nza/+jf3P/m4tz/zczm/9LT + 6P/j2+L/3uDg/+bm5v//////AAAA/wAAAP/9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39 + /f39/f39/f39/f39/f397sW0tbW1tLW1t7S0tLS4tbW1tbW0tLS0tLa0tri4trW0tLW0tLW1tLS1sLDH + 7v3TGgEDBwYHAwYGBgYGBgYGBgYGBgcICAkICAYIBgUGBggHBwUHBwYFBQcGBgYBGtEaDHiIiHyCiIiI + iKytra+xtbW8vLzAwMbGxsa8vLy3tbGwsLCsrqyrq4aGiKt7DBkATb+6u8C+v8DHy8vLzc7O0tTV19fZ + 5OTl5eHh2dbW1tXVzs7Oy8vLx8vLwb7HUgEAV87X1dXZ2NjZ4uXi5eXo6urv7/T19fb29/X18/Pv7+fl + 5eHZ1tbVzs7Oy8vAVwAAfvz78vLu8vLy7u7y8u7x8vD19vf19vb39fz69frw6/Dr+u7u7+vu2u3s8PT3 + dQEAhPx5FBYaFhQaGSsVGiseJVeqfICAe3x8fHt6fGUvREY4N0NKVEZPTnBaWIb8mgAAfvIxAAAAAAAA + AAAAAAAAAA1LO0tRO0s7Mjk5OSAHEQ0KGD4SEAwUEyQQEGD8mgAAgfweAAAAAmN5eSsAAAUCBgwQFw4Q + IRAcHSgdEhAjtsfExaZgvcrFz4EXKGn3fgAAefwwAAAAD3s0UmMFAAUFAmPY4tjS0tjS0MbL3XhZ+N6p + 392I+d6o4MkhGWH8eQMIee4xAAAAGUoGDVwACAQFBYT8gm5uq+J8Y2yI54Rap5OQlcKHnpGSmMIyHWf6 + ewUFefUvBV9Xd0sNFXxjYCEFBIT3x7+/zOrGsbLB5oJanZ+foJt+mJ+flJwgHW71dwUJbvI3CGMoMR0J + EB0dSl8DBjqIrIaEiISGpoaGpj1U3KGjpMOF26KipbMyKG71aQsIYe9ECFQXGxUbFRwQIVcHBxAfFycm + KiweLiUrNB06fZlyfm5NgHR0f2MsIHfyYwgRY+5KDF8tLDk0IjIsV2EaHURzl5eXcWBJl0hHWyMVKCsX + IR0OLCgoKyshLGrvXwwPT+NXLXZgaVEyOm9XYE8lLTphXF5aW1NbWlpaUjUhHiEdHSwsKCsrGiEsMnfu + Xw8WTuNjMDExT2c7O2ExMSs3JSw7O01LRUU1OTgyMiwdJSUuKSlAJy8oLS8iLHjvTxEXOuN2SjA6UldS + V2ExMSsrLU1qaGdmZW1lYF1mVjsrJYyNjYmOi46KKy0sLHjnShoeOuRgN0pMN1JNUk00MTAxK0RmZGRT + U1NWPT1XVjUsK0E/QiUuLilCLzI0MnrhSh4rMeFpOkxKSk0xMTo3LS06NjpTU1NWUT1bUDw9RTMsLS0s + MiwsMiwyNC8sLHvjMSsrLeF3RToxOjFMMTQtOjotLUtqaGxtZWlYZ2FYWFE0LS0jNC80NDQyMTQ0NXvh + KystIdnNr62wra+vsa+vra+tr7q+wMC7u7rAvru6urGxsbm1srqxurm1srm5uc3hLDFMDdP18/Xq8O/z + 7/T09PT06ur09PTw9PTq7/Pw9PTv7+rq6urq6urr6vD16vbWDVSqCHbGvMDGv8W/v7+/v7+/xsa/v7y8 + v7+/v8XAv7+/v8bGxsbGxsbGv8a8xrx2CITyYwMBCQEGBQYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYG + BgYGBgYGBQUFCAUFY/v9/dG4uLS2t7W1tbW1tbW1tbW1tbi4tbW1tbS0tbW1tbW1tbW1tbW1triuuLjR + /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3///////8AAOT/ + +f/f5wAAgAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIAAAAAAAQAA+//////fAAD///////8AACgAAAAgAAAAQAAAAAEAIAAAAAAAACAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzAWoqKhBlpSUaZeUlGeUlJRplJSUZZeXl2OWlpZmlpaWZpaW + lmaWlpZmmJaWZpiWlmaYlpZmlpSUaZeUlGeWlpZmlpaWZpaWlmaWmJZmlpiWZpaWlmaXlJRnl5SUZ5iW + lmaYlpZmlpaWZpaWlmaYlZNolZKSaqenp0C/v78Ea2tuUSIhH8gpJCLYKyck1yomJdgnIiLWJyMi1Sgk + I9YpJSTXKicl1yonJdcpJSTXKicl1ysoJ9csKSjYLikp1yopKNcpKCfXKSgn1ygnJdcoJyTXKicn1yon + JdcpJSXXKSUl1yklJNcnIyPXKSUk1yklI9cpJSLYJCIiyGxsbFI4ODjCOTUz/1JNSP9OSET/UEtJ/1JL + Sf9VTUv/V1BO/1lSUP9cVVP/XldV/15aWP9iXVv/ZF9d/2ZiYP9pZGL/Z2Rh/2ZiYP9kYF7/YV1b/2Bc + Wv9eWlj/XFhW/1pWVP9ZVFL/V1NR/1VQTv9TTUv/UEtG/1VQS/89OTf/ODY4wyAeH/9xbGn/k4yF/5CI + gf+Ri4b/lo6J/5qSjf+elpH/oZmU/6WcmP+poJz/q6Sh/6+opf+yq6j/trCt/7qzsP+6tLH/uLKv/7Su + q/+wqqf/rqil/6uloP+oop3/pZ6a/6Gblv+emJP/m5WQ/5iRjf+Xj4j/mZGK/3Zxbv8gHh//FxMT/5WP + i/+wpp3/s6mg/7Kqo/+0rKX/uLCp/7y0rf++tq//wbmy/8W9t//Hvrv/y8K//8/Gwv/Tysb/1s3K/9jQ + zf/Vzsr/0cnG/83Fwv/Kwr//yMC6/8a+t//BubL/vLSt/7iwqf+1raf/tKyl/7Wrov+upJv/lY+K/xkV + Ff8YFRT/pqCb/8vDuv/Kwbn/zMW+/8zFv//PyML/0MnD/9HLxf/TzMb/1s/K/9rSzv/e1dH/4dnV/+Tb + 1//m3dr/6OHc/+be2//j2tj/4NfU/9zU0P/X0Mr/1c3H/8/Jw//LxL//yMG7/8W+tv/CurT/vrWu/760 + q/+cmJH/GRQU/xsbG//Nzc3/19fX/83Nzf/MzMz/zs7O/87Ozv/Ly8v/0NDQ/8zKyv/Qzs7/08/O/9/Z + 1v/h29b/4dvW/+DZ1v/e3NP/2tfZ/9zV3P/a0db/0c/M/9HQyf/V0Mr/z87N/8rLy//Rzsn/0M7C/8zJ + zf/Hx83/2tLM/8DHvP8cHBn/Hx8f/87Ozv9gYGD/MTEx/zU1Nf8xMTH/NDQ0/zo4OP8yMDD/PDo6/zs5 + Of9UUVD/iIOA/4J8d/9+eHP/f3h1/312b/97eHH/endu/25lYf9HQUf/TUdR/0pMQP9ERFD/TVFJ/05L + T/9UUVL/VU1m/1VXVv9+dnH/ycvO/yAeIP8eHh7/w8PD/zMzM/8JCQn/CAgI/wgHB/8KCQn/CwkJ/woI + CP8MCgr/CwkJ/yMgH/9UTkv/VE5J/1VPSv9RSkf/UUdD/05IQf9OSDv/RDwy/yEaG/8lHSn/ISYZ/y0h + Rf8qJSz/JyQl/y8rMP8tKD7/KSsm/1dPTv/Jx8//IR0h/x4gIP/Fxsb/Jicn/wECAv8BAgL/MC8u/0pI + SP8vLSz/BQMC/wgGBf8HBwX/GBYV/zIuKv8yLSj/NzEs/zUvLP85Ly3/OjIx/zguK/8wKB//QEA1/3t2 + eP91eXb/cGV7/1dNTv9+f3b/fXyB/2Vpbf8pKCT/U01N/8fFx/8hHiD/HR8e/8bHxv8nKSj/AAEA/wYH + Bv9RUE7/VlJR/1BOTf8HBQT/CQcG/wkKCP80MjH/gX56/4B6df98dnH/f3p3/312dP95cnP/enB0/11W + UP9kZ1//pZ7E/5OSyP+moLX/h4B//6Six/+Ylsf/l56j/zAsKv9TTU3/x8XC/yEhH/8hIiD/wcLA/yor + Kv8AAQD/CgsJ/05LSv8wLCv/UU5N/wcFBP8JCAb/CQoI/1RSUv/JxsH/npmU/5qUkP++ubb/mZSQ/4uJ + gv+noaD/ioaD/2Vncv91bNL/UVTK/5WVvv+IiY3/aWjO/1pZzP+Rk7P/NjEu/1JOTP/Hw8H/IyQe/yYm + JP++vrz/LCwq/xUVFP8jIyH/REFA/xoVFP9OSkn/IiAf/xkZGP8JCgj/YF5d/9DMyP9/e3b/gn15/8K9 + uv+Cfnj/cnJj/6Kflv+Tj43/VFJt/y8nwP8HDrH/Y2Wp/21ygP8eILf/EhK5/25ppv86NC//VFJN/8a/ + wv8jJB//IiAf/8K/vv8wLi3/QkA//09NTP9NSUj/Ih0c/1ZSUf9VU1L/Pj89/wsLCv9VVFP/yMXB/5+b + lv+gnJf/v7q3/6CZlv+Wk4f/rqeh/4iEgP9TUmj/IhzG/wgIzv9eWan/a2eD/xoZzP8NCsr/ZWKh/zgx + Kv9VVU3/xbzA/yIhI/8rJyb/vrq5/zczMv9NSUj/NDAv/zItLP8fGhj/Lyop/zIwL/9OTUz/CgsJ/zIz + Mf98e3b/f3x4/315dv98d3X/gHV3/3xzc/9/cnf/XFVP/2BjZf9GQdP/HRrk/4N/rP+BeIH/ODLY/yYp + 2v96gKT/PjYw/1VWTv/Evrr/JyQs/ycmJv+5trX/NTMy/0FCPv8sKCT/LiUh/y0kIP8rJiH/LSgl/0pG + Q/8WEw7/IiAV/zU1LP8tLzj/Li8//zk4Of81OTb/Njk6/zw6Of83Mi//TUpM/2Negv9cWXf/Z2Zl/1hY + U/9lYnr/X1p8/2RhYv86NTH/W1VS/766t/8nJyX/LCsr/7ezsv84Nzb/RUZD/zg0MP9AODL/PTUx/zs1 + MP87NzP/WVVR/ysnJP85Mjb/UkFp/0k1ev9HOW3/VE5T/0o6bv9FM2//Sjxc/0E8Nf8xMCv/OzhC/zYx + Nf8/ODT/NCwp/z01Pf87ND//PTo5/zcxLv9cVVL/ubWy/ysrKf8rKyn/sq6t/0hFRP9QUU//UU1K/09H + Qf9DOzb/VU9K/05JRv9RT03/MS8t/0E8O/9YT13/Ukdo/05GX/9XT1D/T0Fh/0s+YP9ORFX/SEI9/zAu + Kv8xMi3/Ly0n/zYvL/8yKSz/NS4x/zIuMP80MC//OTQx/19YVf+2srD/Kiop/y4tLP+vqqn/Uk9O/0ZH + Rf9MSUf/WVJM/0hAOv9bVVH/R0RB/0A+Pv83NTb/PTc4/1FMRv9NSUr/SkRL/09CR/9KQUT/R0JC/0hB + P/9COjj/Mi8u/y8xLv8yMDL/NS02/zYtOP82MTf/MjAy/zc0M/85NDH/YFlW/7ayr/8qKyn/Ly8t/6yn + pv9XVFL/Ozw6/0JAP/9bVE//TkhC/1dTT/89Ojj/NTU1/zg3OP8+Ojj/WFFJ/1ZPSv9TSkn/V0lJ/1JK + Qv9NR0L/TkZB/0M8N/8zMDD/JyVR/yonYf8oIVz/LCZe/y0pXv8rKk//OTY1/zk0Mf9gWVb/s6+s/y0t + LP8wMC3/qqWk/1lVVP8+Pjz/RENB/1RPS/9QS0f/VFFN/z47Ov82NjX/Nzc1/0RCPP9lXFX/Y1pU/19W + T/9kWE//X1ZM/1dOTv9bUk7/TEU8/zYyM/8jH2r/IiB7/x8db/8lJHH/JCNx/ycnYv86NjX/PDc0/2Fa + V/+uqqf/MDEv/zQ0MP+qo6L/VlFR/0FBQP9DQ0H/TUlH/0pFQ/9KR0T/Pz08/zo7OP86Ojj/QT09/15S + T/9dU0v/WlBI/1tOSf9ZUEP/Ukw//1VORf9KQD3/NzM0/zIvRf8vLUP/LzA6/zM1Ov8xMTn/NjU+/z06 + Of8/OTb/ZF1a/6qmpP8yMjD/NjYy/6mjoP9aU1P/RUVE/0NCQv9FQ0L/Pz08/0E/Pv8/PTz/PDs3/z4+ + OP9DQTv/W01N/1tOSf9ZUEX/VUxA/1RFTf9OSj//TkU//0Q2Pv85NTP/PDg2/zk0M/87NzP/PTky/z03 + Mv8/OTf/Ozg3/zs2M/9lXlv/qaWi/zU1NP82NjL/p6Ge/2BZWf9CQkD/PT09/z08PP9CQUH/Pz09/zw6 + OP8/Pjr/Ozk1/0ZCQf9pXVf/aWBR/2NcT/9iV1X/X1ZO/1xVUP9ZU0v/UklD/z05N/87OTH/Pjsz/z85 + Of8/ODr/RDw8/z85N/8/Ozr/Qj06/2liX/+loZ//NjY0/zg3M/+ln5v/opeU/4Z9eP+GgXn/hX95/4eB + e/+HgHr/hn95/4eAev+Gf3n/jYR//52Si/+elIv/m5GJ/5qQiv+YkIn/mJCJ/5WOh/+QiIH/iYF7/4mD + e/+LhH3/i4N+/4uDfv+MhH7/i4R9/42Hf/+OhX7/pZuX/6Sem/85NzT/PDs5/5yXlP/TycX/y8G9/8XA + uP/Iwbr/yMC5/8jAuf/IwLn/yMC5/8jAuf/Kwbr/0MfA/8/Gv//Nxb7/z8a//8zEvf/Nxb7/zcW+/8vD + vP/Jwbr/ysK7/8rCu//Kwrv/ysK7/8rCu//Jwrr/ycS8/83Dvv/Vy8j/nJeU/z8+PP9VVFP/cGxq/8G5 + t//BubX/vrmz/765tP+/ubT/v7m0/7+5tP+/ubT/v7i0/7+4tP/AubX/vriz/723sv+/ubT/vrey/7+4 + tP+/ubT/v7m0/764s/+/ubT/v7m0/7+5tP+/ubT/v7m0/765s/++ubP/wbm1/8C4tv9wbGr/VVVU/2Zm + Zqk4NjX7ZF1d/2ReXP9lYl//ZGBd/2RgXv9kYF7/ZGBe/2RgXv9lYF7/ZWFf/2RgXf9kX13/Y19d/2Rf + Xf9kYF7/ZWBe/2RgXv9kYF7/ZF9d/2VgXv9lYF7/ZWBe/2VgXv9lYF7/ZGBe/2RhXv9kXlz/Y11c/zk2 + NvtkYmKoaWlpKSkmJrolICDUKCMj1yYlJNQnIyLVJyMi1ScjItUnIyLVJyMi1ScjI9UpJiTWKCUj1Sgl + JdUoJSXVJyMj1SkmJNYoJiTWKCQj1igkI9YnIyLVJyMj1SclI9UnJSPVJyUj1SclI9UnIyPVJiYl1CYj + ItgmISPSKikpuWJiYicAAAAAs7OzLJ2aml6Tk5NomJiYX5iVlWGYlZVhmJWVYZiVlWGYlZVhlpaWYpiW + lmSXlZVjmJWVYZiVlWGXlZVjmJaWZJaTk2SWk5NkmJaWZJiVlWGYlZVhmJWVYZiVlWGYlZVhmJWVYZaW + lmKXl5dgkY6Oa5yamlu3t7crAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////+AAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAB//////////8oAAAAIAAAAEAAAAABAAgAAAAAAAAI + AAAAAAAAAAAAAAAAAAAAAAAAAQIC/wgGBf8HCQj/DAwL/xEPD/8UExP/HRoW/x0bGv8hHR3/JSAf/yQj + I/8rJiP/LCkm/ysrKv80LCb/Mi0s/zIwLv88NC//Liww/zMuM/80LDn/LzEx/zExMP81MjH/NjQy/zMx + Nf82MjT/NjU1/zgyMf84NDL/PTYx/zk2Nf89NzT/Nzg2/zw4Nf81MDn/OTc4/zo7OP89OTj/PTw6/z05 + Pf8+Pj3/QDc0/0I7Nv9BPDv/SDw//0NBPf9KQz3/KCdP/y0rTv8yL0b/My5J/zIyQP85NUf/PTlA/yok + Xf8rKVv/JyNg/yonYf8lI2n/JSNz/0E8Rf9APk7/QD5Q/0g9Vv9MP13/RDZm/0U6ZP9JPWL/Rjdt/0VD + Q/9KRUP/TEhF/0ZETP9KRUr/SklI/01KSf9LTEn/TkxK/05KTP9OTE3/UUpE/1lPRv9QREj/U01K/1hL + Sf9WUEz/W1FL/05DVf9PSVL/Vk5S/1ZMXP9UUlH/WVRT/1xZVP9XV1j/W1VY/1paWv9dWlj/XVhd/11d + XP9iVk7/YVpU/2FaWP9gXVv/ZF1a/2JdXP9mX1z/aF5Z/2VhXv9rYVv/cGZa/09GYP9QQmD/UUZo/1lX + Yv9OS3//XFl0/2FeY/9jXW7/YGBg/2diYP9jYmT/ZGRk/2llY/9taGb/aWxn/2Fhaf9ybGn/dnBv/3ly + bv97em3/bGN3/21ufP90b3L/eG9y/29ydf9xcXH/dnNz/3d1c/92dHT/enJy/3x3cv98cnT/eHZ2/3l4 + c/95eHf/fHh1/3d2f/95eHj/fHx9/4V+ef+FgHr/iYJ9/xIXuf8cGr3/KSq8/1JPgf9ZVYL/YF2f/21q + jP9ucYv/eXOD/2xtlv9yb57/XVqq/2Zhov9gYan/DQ7O/xUSy/8vKMb/JCLL/ykny/8wMMf/OTLA/0A9 + xf9KRcP/VVfJ/11by/9sa8z/d2/P/4B/gP+LhoL/kouE/5OMif+XkY3/mZGM/4qLlv+PlZ3/k5GR/5WR + kP+WlZX/mZOR/5mVkf+dlZH/mJaW/5yXlv+XmJb/mJiX/56Zlf+ZmJj/nZqa/56cnP+glpP/opqW/6Oe + m/+moZ3/qaKd/7Cmnv+HiKz/npmv/42Nuf+loaD/q6Wj/66ppv+op6j/rayr/7Oqo/+yrKr/tbGu/7qz + rf+1rrD/srGx/7Wysf+2tLL/tbK1/7W1tf+6tLD/vLi1/7m3vv+8vLz/wbev/8K6tP/Fvrn/yL+4/8bA + tv/DwLz/ycG8/5OTxP+gnMD/w8HA/8zEwf/OyMT/zcbJ/83JyP/RysX/1c3K/9bQyv/Z0s7/0dDS/93U + 0v/h2dX/49vZ/wAAAP8AAAD/AAAA//nYv7+/xca/v7/DxsbDw8G/xcXFxcbDw8bDv8O/wNj5tZKSkpCQ + kpWSkpCVlZOVlpWVlZWVlZWSlZKSlZOSlZZfDRgRHRAQGB0dHxwiHyIkIB8fGx0fHxgYGxAQHRAPXxsi + UUhIVlZXXV1mYmpqfHx7fGttaF5eXl1XXVZRViIbCXy3t7e3ubrCzM3V1dna3Nza2tXVz8/MzMK6ubq3 + gAoHttbQ2drc3Ofk6Ort8vX3+Pf08e3t6Ojc3NnZ2c+2CQrO7e3x7fLy8vb3+Pr7/Pz8/Pz6+Pj19e3s + 7Onj58EICubs3t7e4t7i3+Pm8vL19fX08fHm5OTl4uTc4+Lp4AoN5ohGS0lGT0dOTHm2tpiZmJiXgmBi + XnNoZHl3erblDQ3iKQMEBAcFAwQEClZSVlRRUVErCxQQNRQeKDUQZ+UNDd4WAAANLA0BAQIGIiIrKysq + KhEuhoWEXZKifw9d4g0N3hUAAkhcSwMCAhuTjoGTjYqHXn7v7tK27+68HV3hDQ3YFQADRhFIAwIDXOTH + udvAmdS2hbSx07uzstEfXeMNDdgYBg0uCEYMBwNk7Ji247aDzrh1rpqnoZybpite3Q0N2B8bRy8JR00n + A1bbwcHawLfPtnWqqKWgq6mfIl7aDQ/YJy4fEAkREUYFGJGLi5OPhodmf7CspKKvraMrXtoNEtQpJxAO + CwwQRgYLRj8/SklKSidQnp1/Yp6ddiJm2BAW1C4uIh4RIiJWDBpBRUNZREJAKx09KCsqPT0sHWnUFRDN + UE1WSCtRSFQYLFtycVpxRFgvEBYNEw8TExcdZ9QQFsldRkhXL1ZIKSMsSE9KU0dHLywQFRMUFCQaGxxr + zhUXxF4pRlZIViwhISZXV1RSUUhIKxMwOjc6ODEfHmvNFhDBaClGVk5WJyQhLmZlZWVlUlcvHzk8Ozs7 + OCIfa8kYIcBgLkZIR0YuIicvV2VXUlJRUi0fMjM0NDQ0JitswhgYwWdGRkYuRiknIi5VZVJSUlFRLR0i + JSIiJCsmIHzDGyG6fUxIS1BIR0hHVW9vbm5sZmZXSC8vSEhRSEhRgMEhIr7LmZmYmJiYmJe2urq6urq6 + t7eZmZmZmZmZmbbLviInuPHo5Ojo6Ojo6Ojt7ert6urp6ejo6Ojo6OTp6vG4J1B93ePc3Nzj49zc3OPj + 4+Pj49zj4+Pj4+Pj3Nzj3H1QZCZrbXltfHlufHl8bW1tbW1rfGtteXl5eXl5eW1rJmR4GxcdGB0XFxcX + HB8fHR0dHx8dHxccHR0dHRcYFxcbZHiMlYySkJWVlZWVkJCSkpCQkJCQlZWVlZWVlZKMlZV44t7Jv8jG + w8PDw8PDw8jIw8O/v8PDw8PDw8PDxr3K3uL//////////4AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAH//////////ygAAAAQAAAAIAAAAAEAIAAAAAAAAAgAAAAA + AAAAAAAAAAAAAAAAAADGxsYJlJSUMJSUlDCVlZUukpKSL5eXki+Xl5IvlJSUMJeXki+Xl5cvl5eXL5SU + lDCXl5cvkpKSL5OTkzLf398IKSkp/yQeG/8cGRj/IBsZ/yIcG/8hHRz/JCAf/ygkIv8lIyL/IyAf/yAe + Hf8iHh3/IR0c/xsZGP8iHRr/Kyoq/0dDQv+jmZH/oZyX/62lnv+zq6T/ubGu/8G4tf/JwL3/y8TB/8K7 + uP+8tbL/uLGq/7Coov+po57/qZ+X/0tGRf9kYmH/08/L/9PQzf/Rzsz/2NPR/9vW1f/j29f/5t7b/+Xg + 3P/h2dv/2dnO/9vT1f/Rysz/09C1/87Fwv9YWlr/eXl5/xcXF/8aGhr/GhkZ/xwaGv8fHR3/ZmBb/2Nc + Wf9iXVb/aWJX/zQvN/8zNTX/P0I0/0EzRv9FPzn/d3WG/3J0c/8AAAD/CQoK/2ZkY/8FAwL/Dw0N/0A8 + N/9EPTr/Qjk8/z8xNv+anJ7/o6ax/6inl/+nrbf/Mykv/29tcv9pamj/AAEA/yUmJP8mIiH/ExEQ/woK + Cv+Lh4L/j4qH/2hkYf/Qx8//joPJ/zQ2v/9ubcD/TUDC/zIsLP9wa2r/ZWJh/xMQD/9LSEf/JiEg/0lH + Rv8LCwv/lpOO/5WQjf+PhIv/oJCg/4V5vP8rLsn/b2vH/0Q80f8zLS3/ZV5e/1pXWP8WFxX/NSwp/zAq + Jf9BPTr/JCAZ/zgxS/88OUr/PzpV/0ZAQv9XVVv/WldZ/2BbXf9dW1r/NzAt/1hWVf9QTEv/OTo4/2Jb + WP9GQDv/VFBP/zk2NP9TTk//UUpP/05FU/9RSUn/Li4u/zAtK/8xKi//Liwr/z43NP9QTk3/REA//0FA + P/9PS0r/VE9K/zs5OP84ODH/ZFpT/2BXT/9ZUE7/VU5F/y4rM/8jH4f/IBx9/zUzMv87NDH/R0VE/0A9 + Of9BPz7/QkA//0NBPv88Ozj/OTs1/1pNSf9XTkT/UklD/1BEQ/83OTP/ODY7/zg1Nf88Ojn/Pjc0/z48 + O/83NDD/ZV5b/2FeW/9fXFn/YV1Y/1xYVv+Dd27/e3Nr/3pya/92bmb/XVlW/2JcV/9kXFr/YV5a/2de + Wv83NDL/Ih4d/9nPy//W08v/2NDJ/9jQyf/Vzcf/2tLM/9jRyv/X0Mn/2dLL/9fQyf/Y0Mn/2NDJ/9HO + x//WzMj/Hxsa/1FPT9wqJiX/IR8d/yIeHf8iHh3/JCAf/yMfHv8jHx7/JCAf/yMfHv8iHh3/Ix8e/yMf + Hv8gHhz/KSUj/1FRUdwAAAAAnJycLJiYmC2YmJgtmJiYLZWVlS6YmJgtmJiYLZWVlS6VlZUumJiYLZiY + mC2YmJgtlZWVLpiYmC0AAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//8AACgAAAAQAAAAIAAAAAEACAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAA + AAAHBQX/EhMS/xMSEf8WFRT/GBcX/xgZF/8bGRn/ICEg/yUlJP8oJCD/KCYl/ysrK/8tLSz/NS4p/zEt + LP8wLi3/MTAu/zIrMv8zLzD/NS4z/zQxMf8yMTf/NzU0/zc2Nf86NTT/ODY2/zk2Nf86Njb/OTk3/zo4 + N/8/Ojb/NTI6/zg1Of88ODn/Pjk4/zw6OP8+Ojn/Pzs6/z08Ov8/Pjr/Pzk//0A7N/9BOzr/Qz88/0Q+ + PP9DQD//RUE//0ZCPP9IQj//LSpG/zIwRf89N0b/PzpN/z01Uv89N1T/JiJr/yklaP9DQUH/Q0JB/0ZB + QP9FQ0H/RkNB/0ZEQ/9GRUT/SUFD/0hDQv9NQ0D/SEVD/0lEQ/9LRUL/TEZD/09HQf9IRUT/SUVE/0pH + Rf9OSEL/SUhG/0pIR/9LSEb/TUlH/09JRv9OSkf/SUVN/0pJSP9NSEv/TEpJ/05KSP9PTEj/T0tO/1NL + Q/9SSUb/WU9G/1BMSv9TTUn/U05J/1ZNSP9cVUv/XFBM/15WT/9LQVL/UEdQ/1BMU/9SS1X/W1NS/1tV + Uf9aVlH/YVtV/2BdW/9kXlr/YF5c/2VgWv9jYl3/ZGFd/2VhXP9nYV3/ZmJf/2diXP9pYV//aGJe/2ll + Yv9oZmP/aWZl/2pnZP9qaGb/bGlo/2xqaP9ta2n/b2xs/3Rtav93b2j/cG5s/3Jvbv95cGz/fXZv/3Nu + cf9xcnD/cnNz/3Rycv91cnD/dXV1/3V0ev92dHr/gXhw/4V7cv+Fgnv/TUqf/1JOr/9fWqL/REO//1NW + u/9cWrr/Y2Sp/z48xf+FgYb/i4KB/5CIhv+Iipv/ioif/5WVlf+WlJT/l5WU/5aXlf+Xlpb/mpWS/5iW + lf+Zl5f/l5iW/5iYl/+dmpX/mZiY/5+bmf+imZH/o5uW/6WclP+noJr/pqGd/6ujnf+tpqD/rKij/66u + rv+xqaP/ta6o/7iwrP+0tLT/tra2/7u0sP+/t7T/wLq2/8O+t//Fvbj/xL+4/8W+uP/Gvrn/yb+8/8fA + uv/Iwbv/yMG+/8nAvf/LxMD/zsnA/9DMyP/Sz8v/087K/9PQzf/W0s//19LO/9rV0v/b1tH/49zY/+ff + 2//i2tz/5uDd/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/s6Ceop6ipaCipqKipJ+fsxYeIiosO0NVTUg9Li0lJRlWq6ywtLa6wMS7ubWxrq1cecrJy8zO + 0NHT0s/NyMfGb4sLBAYGCnZsamARFRczV4yIAQdNAANpaGhajZ2ZnB6JhwUOGAIMsq+QqpOVl5YsioMZ + OQ4/CKijm5qRmJKUL4Z/HA0NKwk1NDYoUlhUZUGCfVNdS0obZmRjQBASExRFfnlMUV4dI2JhX0cxNzgy + Rn16VT48JidhW1lCIB8XIVB7d4Bwc3Fyj46FgW50dXaEeGvBvL+/vcPCwMK/wMC+xW06RENERElERElJ + REREQ0E5t6SppaWkpaWkpKWlpaeguP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAA= + + \ No newline at end of file From 69a5b6fb523b9fe84df6aca302dbc6361c416b35 Mon Sep 17 00:00:00 2001 From: hegyak Date: Sun, 20 Dec 2015 09:51:19 -0800 Subject: [PATCH 053/106] SNES Cheats: Properly Support GameGenie codes. Fix a bug with Byte Vs. Word cheats. GBA Cheats: Add Check for DEADFACE to return without conversion and issue warning about this. Add Skeleton for Action Replay MAX code conversion. Needs detection. --- BizHawk.Client.EmuHawk/tools/GameShark.cs | 60 +++++++++++++++++++---- 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/GameShark.cs b/BizHawk.Client.EmuHawk/tools/GameShark.cs index 6e1ea192b2..0d8ceba08e 100644 --- a/BizHawk.Client.EmuHawk/tools/GameShark.cs +++ b/BizHawk.Client.EmuHawk/tools/GameShark.cs @@ -12,7 +12,7 @@ namespace BizHawk.Client.EmuHawk //Add Support/Handling for The Following Systems and Devices: //GBA: Action Replay MAX, Code Breaker (That uses unique Encryption keys) //NES: Pro Action Rocky (When someone asks) - //SNES: Possible Warning for Game Genie not working? Test fixed behaviors when ready. + //SNES: GoldFinger (Action Replay II) Support? //Clean up the checks to be more robust/less "hacky" //They work but feel bad @@ -210,7 +210,6 @@ namespace BizHawk.Client.EmuHawk SMS(); break; case "SNES": - //Currently only does Action Replay SNES(); break; default: @@ -394,7 +393,13 @@ namespace BizHawk.Client.EmuHawk //Make Slide Code Handling suck less. //TODO: //Determine how to make Action Replay Max Code detection a thing? - if (Slider == true) + //DEADFACE means, "NEW Decryption Keys ahead." + if (txtCheat.Text == "DEADFACE") + { + MessageBox.Show("Sorry, this tool does not support DEADFACE codes.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + return; + } + if (Slider == true) { secondSlide = txtCheat.Text; GBASlide(); @@ -457,7 +462,32 @@ namespace BizHawk.Client.EmuHawk MessageBox.Show("ALL Codes for Action Replay, Action Replay MAX, Codebreaker, GameShark Advance, GameShark SP, Xploder have a Space after the 8th character.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } - + //Action Replay MAX Code stuff. Not detected, yet. + //TODO: Detect Action Replay MAX codes. + //DEADFACE is NOT to be used. It's a special code. + if (txtCheat.Text == "DEADFACE") + { + return; + parseString = txtCheat.Text; + UInt32 op1 = 0; + UInt32 op2 = 0; + UInt32 sum = 0xC6EF3720; + op1 = UInt32.Parse(parseString.Remove(8, 9), NumberStyles.HexNumber); + op2 = UInt32.Parse(parseString.Remove(0, 9), NumberStyles.HexNumber); + //Tiny Encryption Algorithm + int i; + for (i = 0; i < 32; ++i) + { + op2 -= ((op1 << 4) + GBAProActionReplaySeeds[2]) ^ (op1 + sum) ^ ((op1 >> 5) + GBAProActionReplaySeeds[3]); + op1 -= ((op2 << 4) + GBAProActionReplaySeeds[0]) ^ (op2 + sum) ^ ((op2 >> 5) + GBAProActionReplaySeeds[1]); + sum -= 0x9E3779B9; + } + RAMAddress = string.Format("{0:X8}", op1); + RAMAddress = RAMAddress.Remove(0, 1); + RAMValue = string.Format("{0:X8}", op2); + MessageBox.Show(RAMAddress); + MessageBox.Show(RAMValue); + } //Decrypted Codebreaker, GameShark SP, Xploder //Encypted Codebreaker, GameShark SP, Xploder is not handled, yet. if (txtCheat.Text.Length == 13 && txtCheat.Text.IndexOf(" ") == 8) @@ -1241,8 +1271,7 @@ namespace BizHawk.Client.EmuHawk } private void SNES() { - //TODO: Make these checks Suck less. - //Game Genie check and do. + Boolean GameGenie = false; if (txtCheat.Text.Contains("-") && txtCheat.Text.Length == 9) { int val = 0, add = 0; @@ -1252,9 +1281,13 @@ namespace BizHawk.Client.EmuHawk SnesGGDecode(input, ref val, ref add); RAMAddress = string.Format("{0:X6}", add); RAMValue = string.Format("{0:X2}", val); + //We trim the first value here to make it work. + RAMAddress = RAMAddress.Remove(0, 1); //Note, it's not actually a byte, but a Word. However, we are using this to keep from repeating code. byteSize = 8; - } + GameGenie = true; + + } //This ONLY applies to Action Replay. if (txtCheat.Text.Length == 8) { @@ -1290,9 +1323,16 @@ namespace BizHawk.Client.EmuHawk if (byteSize == 8) { //Is this correct? - //I don't think so, but Changing it to CARTROM, causes a major issue. - var watch = Watch.GenerateWatch(MemoryDomains["System Bus"], long.Parse(RAMAddress, NumberStyles.HexNumber), WatchSize.Word, Client.Common.DisplayType.Hex, false, txtDescription.Text); - Global.CheatList.Add(new Cheat(watch, int.Parse(RAMValue, NumberStyles.HexNumber))); + if (GameGenie == true) + { + var watch = Watch.GenerateWatch(MemoryDomains["CARTROM"], long.Parse(RAMAddress, NumberStyles.HexNumber), WatchSize.Byte, Client.Common.DisplayType.Hex, false, txtDescription.Text); + Global.CheatList.Add(new Cheat(watch, int.Parse(RAMValue, NumberStyles.HexNumber))); + } + else if (GameGenie == false) + { + var watch = Watch.GenerateWatch(MemoryDomains["System Bus"], long.Parse(RAMAddress, NumberStyles.HexNumber), WatchSize.Byte, Client.Common.DisplayType.Hex, false, txtDescription.Text); + Global.CheatList.Add(new Cheat(watch, int.Parse(RAMValue, NumberStyles.HexNumber))); + } } //Take Watch, Add our Value we want, and it should be active when addded? From 65415608e5df5cb1e9027054245727454d4a4e92 Mon Sep 17 00:00:00 2001 From: feos Date: Sun, 20 Dec 2015 22:51:07 +0300 Subject: [PATCH 054/106] hexeditor tweaks: - don't show chars between scrollbar and right label border - don't add existing items to _secondaryHighlightedAddresses - view scrolls after offscreen mouse selection - spacing becomes more comprehensible - display number of selected addresses if more than 1 --- .../tools/HexEditor/HexEditor.Designer.cs | 97 ++++++++++--------- .../tools/HexEditor/HexEditor.cs | 36 ++++--- 2 files changed, 74 insertions(+), 59 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.Designer.cs b/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.Designer.cs index 8730509b58..727dd6bc3e 100644 --- a/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.Designer.cs @@ -87,8 +87,8 @@ this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); this.viewN64MatrixToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.MemoryViewerBox = new System.Windows.Forms.GroupBox(); - this.AddressLabel = new System.Windows.Forms.Label(); this.HexScrollBar = new System.Windows.Forms.VScrollBar(); + this.AddressLabel = new System.Windows.Forms.Label(); this.AddressesLabel = new System.Windows.Forms.Label(); this.Header = new System.Windows.Forms.Label(); this.HexMenuStrip.SuspendLayout(); @@ -133,7 +133,7 @@ this.SaveMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs; this.SaveMenuItem.Name = "SaveMenuItem"; this.SaveMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); - this.SaveMenuItem.Size = new System.Drawing.Size(225, 22); + this.SaveMenuItem.Size = new System.Drawing.Size(236, 22); this.SaveMenuItem.Text = "Save"; this.SaveMenuItem.Click += new System.EventHandler(this.SaveMenuItem_Click); // @@ -142,33 +142,33 @@ this.SaveAsBinaryMenuItem.Name = "SaveAsBinaryMenuItem"; this.SaveAsBinaryMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.S))); - this.SaveAsBinaryMenuItem.Size = new System.Drawing.Size(225, 22); + this.SaveAsBinaryMenuItem.Size = new System.Drawing.Size(236, 22); this.SaveAsBinaryMenuItem.Text = "Save as binary..."; this.SaveAsBinaryMenuItem.Click += new System.EventHandler(this.SaveAsBinaryMenuItem_Click); // // SaveAsTextMenuItem // this.SaveAsTextMenuItem.Name = "SaveAsTextMenuItem"; - this.SaveAsTextMenuItem.Size = new System.Drawing.Size(225, 22); + this.SaveAsTextMenuItem.Size = new System.Drawing.Size(236, 22); this.SaveAsTextMenuItem.Text = "Save as text..."; this.SaveAsTextMenuItem.Click += new System.EventHandler(this.SaveAsTextMenuItem_Click); // // toolStripSeparator4 // this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(222, 6); + this.toolStripSeparator4.Size = new System.Drawing.Size(233, 6); // // LoadTableFileMenuItem // this.LoadTableFileMenuItem.Name = "LoadTableFileMenuItem"; - this.LoadTableFileMenuItem.Size = new System.Drawing.Size(225, 22); + this.LoadTableFileMenuItem.Size = new System.Drawing.Size(236, 22); this.LoadTableFileMenuItem.Text = "&Load .tbl file"; this.LoadTableFileMenuItem.Click += new System.EventHandler(this.LoadTableFileMenuItem_Click); // // CloseTableFileMenuItem // this.CloseTableFileMenuItem.Name = "CloseTableFileMenuItem"; - this.CloseTableFileMenuItem.Size = new System.Drawing.Size(225, 22); + this.CloseTableFileMenuItem.Size = new System.Drawing.Size(236, 22); this.CloseTableFileMenuItem.Text = "Close .tbl file"; this.CloseTableFileMenuItem.Click += new System.EventHandler(this.CloseTableFileMenuItem_Click); // @@ -177,26 +177,26 @@ this.RecentTablesSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.noneToolStripMenuItem}); this.RecentTablesSubMenu.Name = "RecentTablesSubMenu"; - this.RecentTablesSubMenu.Size = new System.Drawing.Size(225, 22); + this.RecentTablesSubMenu.Size = new System.Drawing.Size(236, 22); this.RecentTablesSubMenu.Text = "Recent"; this.RecentTablesSubMenu.DropDownOpened += new System.EventHandler(this.RecentTablesSubMenu_DropDownOpened); // // noneToolStripMenuItem // this.noneToolStripMenuItem.Name = "noneToolStripMenuItem"; - this.noneToolStripMenuItem.Size = new System.Drawing.Size(99, 22); + this.noneToolStripMenuItem.Size = new System.Drawing.Size(110, 22); this.noneToolStripMenuItem.Text = "None"; // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(222, 6); + this.toolStripSeparator1.Size = new System.Drawing.Size(233, 6); // // ExitMenuItem // this.ExitMenuItem.Name = "ExitMenuItem"; this.ExitMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.ExitMenuItem.Size = new System.Drawing.Size(225, 22); + this.ExitMenuItem.Size = new System.Drawing.Size(236, 22); this.ExitMenuItem.Text = "E&xit"; this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); // @@ -220,7 +220,7 @@ this.CopyMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Duplicate; this.CopyMenuItem.Name = "CopyMenuItem"; this.CopyMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C))); - this.CopyMenuItem.Size = new System.Drawing.Size(144, 22); + this.CopyMenuItem.Size = new System.Drawing.Size(155, 22); this.CopyMenuItem.Text = "&Copy"; this.CopyMenuItem.Click += new System.EventHandler(this.CopyMenuItem_Click); // @@ -228,7 +228,7 @@ // this.ExportMenuItem.Name = "ExportMenuItem"; this.ExportMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E))); - this.ExportMenuItem.Size = new System.Drawing.Size(144, 22); + this.ExportMenuItem.Size = new System.Drawing.Size(155, 22); this.ExportMenuItem.Text = "&Export"; this.ExportMenuItem.Click += new System.EventHandler(this.ExportMenuItem_Click); // @@ -237,20 +237,20 @@ this.PasteMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Paste; this.PasteMenuItem.Name = "PasteMenuItem"; this.PasteMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V))); - this.PasteMenuItem.Size = new System.Drawing.Size(144, 22); + this.PasteMenuItem.Size = new System.Drawing.Size(155, 22); this.PasteMenuItem.Text = "&Paste"; this.PasteMenuItem.Click += new System.EventHandler(this.PasteMenuItem_Click); // // toolStripSeparator6 // this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(141, 6); + this.toolStripSeparator6.Size = new System.Drawing.Size(152, 6); // // FindMenuItem // this.FindMenuItem.Name = "FindMenuItem"; this.FindMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F))); - this.FindMenuItem.Size = new System.Drawing.Size(144, 22); + this.FindMenuItem.Size = new System.Drawing.Size(155, 22); this.FindMenuItem.Text = "&Find..."; this.FindMenuItem.Click += new System.EventHandler(this.FindMenuItem_Click); // @@ -258,7 +258,7 @@ // this.FindNextMenuItem.Name = "FindNextMenuItem"; this.FindNextMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F3; - this.FindNextMenuItem.Size = new System.Drawing.Size(144, 22); + this.FindNextMenuItem.Size = new System.Drawing.Size(155, 22); this.FindNextMenuItem.Text = "Find Next"; this.FindNextMenuItem.Click += new System.EventHandler(this.FindNextMenuItem_Click); // @@ -266,7 +266,7 @@ // this.FindPrevMenuItem.Name = "FindPrevMenuItem"; this.FindPrevMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F2; - this.FindPrevMenuItem.Size = new System.Drawing.Size(144, 22); + this.FindPrevMenuItem.Size = new System.Drawing.Size(155, 22); this.FindPrevMenuItem.Text = "Find Prev"; this.FindPrevMenuItem.Click += new System.EventHandler(this.FindPrevMenuItem_Click); // @@ -292,7 +292,7 @@ this.MemoryDomainsMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripSeparator3}); this.MemoryDomainsMenuItem.Name = "MemoryDomainsMenuItem"; - this.MemoryDomainsMenuItem.Size = new System.Drawing.Size(206, 22); + this.MemoryDomainsMenuItem.Size = new System.Drawing.Size(217, 22); this.MemoryDomainsMenuItem.Text = "&Memory Domains"; this.MemoryDomainsMenuItem.DropDownOpened += new System.EventHandler(this.MemoryDomainsMenuItem_DropDownOpened); // @@ -308,47 +308,47 @@ this.DataSizeWordMenuItem, this.DataSizeDWordMenuItem}); this.DataSizeSubMenu.Name = "DataSizeSubMenu"; - this.DataSizeSubMenu.Size = new System.Drawing.Size(206, 22); + this.DataSizeSubMenu.Size = new System.Drawing.Size(217, 22); this.DataSizeSubMenu.Text = "Data Size"; // // DataSizeByteMenuItem // this.DataSizeByteMenuItem.Name = "DataSizeByteMenuItem"; - this.DataSizeByteMenuItem.Size = new System.Drawing.Size(105, 22); + this.DataSizeByteMenuItem.Size = new System.Drawing.Size(116, 22); this.DataSizeByteMenuItem.Text = "1 Byte"; this.DataSizeByteMenuItem.Click += new System.EventHandler(this.DataSizeByteMenuItem_Click); // // DataSizeWordMenuItem // this.DataSizeWordMenuItem.Name = "DataSizeWordMenuItem"; - this.DataSizeWordMenuItem.Size = new System.Drawing.Size(105, 22); + this.DataSizeWordMenuItem.Size = new System.Drawing.Size(116, 22); this.DataSizeWordMenuItem.Text = "2 Byte"; this.DataSizeWordMenuItem.Click += new System.EventHandler(this.DataSizeWordMenuItem_Click); // // DataSizeDWordMenuItem // this.DataSizeDWordMenuItem.Name = "DataSizeDWordMenuItem"; - this.DataSizeDWordMenuItem.Size = new System.Drawing.Size(105, 22); + this.DataSizeDWordMenuItem.Size = new System.Drawing.Size(116, 22); this.DataSizeDWordMenuItem.Text = "4 Byte"; this.DataSizeDWordMenuItem.Click += new System.EventHandler(this.DataSizeDWordMenuItem_Click); // // BigEndianMenuItem // this.BigEndianMenuItem.Name = "BigEndianMenuItem"; - this.BigEndianMenuItem.Size = new System.Drawing.Size(206, 22); + this.BigEndianMenuItem.Size = new System.Drawing.Size(217, 22); this.BigEndianMenuItem.Text = "Big Endian"; this.BigEndianMenuItem.Click += new System.EventHandler(this.BigEndianMenuItem_Click); // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(203, 6); + this.toolStripSeparator2.Size = new System.Drawing.Size(214, 6); // // GoToAddressMenuItem // this.GoToAddressMenuItem.Name = "GoToAddressMenuItem"; this.GoToAddressMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.G))); - this.GoToAddressMenuItem.Size = new System.Drawing.Size(206, 22); + this.GoToAddressMenuItem.Size = new System.Drawing.Size(217, 22); this.GoToAddressMenuItem.Text = "&Go to Address..."; this.GoToAddressMenuItem.Click += new System.EventHandler(this.GoToAddressMenuItem_Click); // @@ -357,7 +357,7 @@ this.AddToRamWatchMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.FindHS; this.AddToRamWatchMenuItem.Name = "AddToRamWatchMenuItem"; this.AddToRamWatchMenuItem.ShortcutKeyDisplayString = "Ctrl+W"; - this.AddToRamWatchMenuItem.Size = new System.Drawing.Size(206, 22); + this.AddToRamWatchMenuItem.Size = new System.Drawing.Size(217, 22); this.AddToRamWatchMenuItem.Text = "Add to Ram Watch"; this.AddToRamWatchMenuItem.Click += new System.EventHandler(this.AddToRamWatchMenuItem_Click); // @@ -366,7 +366,7 @@ this.FreezeAddressMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Freeze; this.FreezeAddressMenuItem.Name = "FreezeAddressMenuItem"; this.FreezeAddressMenuItem.ShortcutKeyDisplayString = "Space"; - this.FreezeAddressMenuItem.Size = new System.Drawing.Size(206, 22); + this.FreezeAddressMenuItem.Size = new System.Drawing.Size(217, 22); this.FreezeAddressMenuItem.Text = "&Freeze Address"; this.FreezeAddressMenuItem.Click += new System.EventHandler(this.FreezeAddressMenuItem_Click); // @@ -375,7 +375,7 @@ this.UnfreezeAllMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Unfreeze; this.UnfreezeAllMenuItem.Name = "UnfreezeAllMenuItem"; this.UnfreezeAllMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.Delete))); - this.UnfreezeAllMenuItem.Size = new System.Drawing.Size(206, 22); + this.UnfreezeAllMenuItem.Size = new System.Drawing.Size(217, 22); this.UnfreezeAllMenuItem.Text = "Unfreeze All"; this.UnfreezeAllMenuItem.Click += new System.EventHandler(this.UnfreezeAllMenuItem_Click); // @@ -384,7 +384,7 @@ this.PokeAddressMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.poke; this.PokeAddressMenuItem.Name = "PokeAddressMenuItem"; this.PokeAddressMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.P))); - this.PokeAddressMenuItem.Size = new System.Drawing.Size(206, 22); + this.PokeAddressMenuItem.Size = new System.Drawing.Size(217, 22); this.PokeAddressMenuItem.Text = "&Poke Address"; this.PokeAddressMenuItem.Click += new System.EventHandler(this.PokeAddressMenuItem_Click); // @@ -403,25 +403,25 @@ this.toolStripSeparator8, this.ResetColorsToDefaultMenuItem}); this.CustomColorsSubMenu.Name = "CustomColorsSubMenu"; - this.CustomColorsSubMenu.Size = new System.Drawing.Size(143, 22); + this.CustomColorsSubMenu.Size = new System.Drawing.Size(154, 22); this.CustomColorsSubMenu.Text = "Custom Colors"; // // SetColorsMenuItem // this.SetColorsMenuItem.Name = "SetColorsMenuItem"; - this.SetColorsMenuItem.Size = new System.Drawing.Size(153, 22); + this.SetColorsMenuItem.Size = new System.Drawing.Size(164, 22); this.SetColorsMenuItem.Text = "Set Colors"; this.SetColorsMenuItem.Click += new System.EventHandler(this.SetColorsMenuItem_Click); // // toolStripSeparator8 // this.toolStripSeparator8.Name = "toolStripSeparator8"; - this.toolStripSeparator8.Size = new System.Drawing.Size(150, 6); + this.toolStripSeparator8.Size = new System.Drawing.Size(161, 6); // // ResetColorsToDefaultMenuItem // this.ResetColorsToDefaultMenuItem.Name = "ResetColorsToDefaultMenuItem"; - this.ResetColorsToDefaultMenuItem.Size = new System.Drawing.Size(153, 22); + this.ResetColorsToDefaultMenuItem.Size = new System.Drawing.Size(164, 22); this.ResetColorsToDefaultMenuItem.Text = "Reset to Default"; this.ResetColorsToDefaultMenuItem.Click += new System.EventHandler(this.ResetColorsToDefaultMenuItem_Click); // @@ -570,19 +570,31 @@ | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.MemoryViewerBox.ContextMenuStrip = this.ViewerContextMenuStrip; - this.MemoryViewerBox.Controls.Add(this.AddressLabel); this.MemoryViewerBox.Controls.Add(this.HexScrollBar); + this.MemoryViewerBox.Controls.Add(this.AddressLabel); this.MemoryViewerBox.Controls.Add(this.AddressesLabel); + this.MemoryViewerBox.Controls.Add(this.Header); this.MemoryViewerBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.MemoryViewerBox.Location = new System.Drawing.Point(12, 27); this.MemoryViewerBox.MaximumSize = new System.Drawing.Size(600, 1024); this.MemoryViewerBox.MinimumSize = new System.Drawing.Size(260, 180); this.MemoryViewerBox.Name = "MemoryViewerBox"; - this.MemoryViewerBox.Size = new System.Drawing.Size(558, 262); + this.MemoryViewerBox.Size = new System.Drawing.Size(560, 262); this.MemoryViewerBox.TabIndex = 2; this.MemoryViewerBox.TabStop = false; this.MemoryViewerBox.Paint += new System.Windows.Forms.PaintEventHandler(this.MemoryViewerBox_Paint); // + // HexScrollBar + // + this.HexScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.HexScrollBar.LargeChange = 16; + this.HexScrollBar.Location = new System.Drawing.Point(544, 16); + this.HexScrollBar.Name = "HexScrollBar"; + this.HexScrollBar.Size = new System.Drawing.Size(16, 246); + this.HexScrollBar.TabIndex = 1; + this.HexScrollBar.ValueChanged += new System.EventHandler(this.HexScrollBar_ValueChanged); + // // AddressLabel // this.AddressLabel.AutoSize = true; @@ -593,22 +605,11 @@ this.AddressLabel.TabIndex = 2; this.AddressLabel.Text = " "; // - // HexScrollBar - // - this.HexScrollBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Right))); - this.HexScrollBar.LargeChange = 16; - this.HexScrollBar.Location = new System.Drawing.Point(539, 8); - this.HexScrollBar.Name = "HexScrollBar"; - this.HexScrollBar.Size = new System.Drawing.Size(16, 251); - this.HexScrollBar.TabIndex = 1; - this.HexScrollBar.ValueChanged += new System.EventHandler(this.HexScrollBar_ValueChanged); - // // AddressesLabel // this.AddressesLabel.AutoSize = true; this.AddressesLabel.ContextMenuStrip = this.ViewerContextMenuStrip; - this.AddressesLabel.Location = new System.Drawing.Point(65, 30); + this.AddressesLabel.Location = new System.Drawing.Point(79, 30); this.AddressesLabel.Name = "AddressesLabel"; this.AddressesLabel.Size = new System.Drawing.Size(31, 13); this.AddressesLabel.TabIndex = 0; diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs b/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs index 8aa2722435..0ddf1f32d7 100644 --- a/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs @@ -480,7 +480,7 @@ namespace BizHawk.Client.EmuHawk addrStr.Append(" "); } - addrStr.AppendLine(_addr.ToHexString(_numDigits)); + addrStr.AppendLine(_addr.ToHexString(_numDigits) + " |"); } return addrStr.ToString(); @@ -516,7 +516,7 @@ namespace BizHawk.Client.EmuHawk } } - rowStr.Append(" | "); + rowStr.Append("| "); for (var k = 0; k < 16; k++) { if (_addr + k < _domain.Size) @@ -669,13 +669,15 @@ namespace BizHawk.Client.EmuHawk private void UpdateFormText() { + Text = "Hex Editor"; if (_addressHighlighted >= 0) { - Text = "Hex Editor - Editing Address 0x" + string.Format(_numDigitsStr, _addressHighlighted); - } - else - { - Text = "Hex Editor"; + Text += " - Editing Address 0x" + string.Format(_numDigitsStr, _addressHighlighted); + if (_secondaryHighlightedAddresses.Any()) + { + Text += string.Format(" (Selected 0x{0:X})", _secondaryHighlightedAddresses.Count() + + (_secondaryHighlightedAddresses.Contains(_addressHighlighted) ? 0 : 1)); + } } } @@ -690,13 +692,13 @@ namespace BizHawk.Client.EmuHawk switch (DataSize) { case 1: - Header.Text = " 0 1 2 3 4 5 6 7 8 9 A B C D E F"; + Header.Text = " 0 1 2 3 4 5 6 7 8 9 A B C D E F"; break; case 2: - Header.Text = " 0 2 4 6 8 A C E"; + Header.Text = " 0 2 4 6 8 A C E"; break; case 4: - Header.Text = " 0 4 8 C"; + Header.Text = " 0 4 8 C"; break; } @@ -977,6 +979,17 @@ namespace BizHawk.Client.EmuHawk _secondaryHighlightedAddresses.Add(x); } } + + if (!IsVisible(_addressOver)) + { + var value = (_addressOver / 16) + 1 - ((_addressOver / 16) < HexScrollBar.Value ? 1 : _rowsVisible); + if (value < 0) + { + value = 0; + } + + HexScrollBar.Value = (int)value; // This will fail on a sufficiently large domain + } } } @@ -1043,7 +1056,7 @@ namespace BizHawk.Client.EmuHawk private void AddToSecondaryHighlights(long address) { - if (address >= 0 && address < _domain.Size) + if (address >= 0 && address < _domain.Size && !_secondaryHighlightedAddresses.Contains(address)) { _secondaryHighlightedAddresses.Add(address); } @@ -2190,6 +2203,7 @@ namespace BizHawk.Client.EmuHawk if (_mouseIsDown) { DoShiftClick(); + UpdateFormText(); MemoryViewerBox.Refresh(); } } From a77a224f9b6964e4a269a294eb66ce54428f654d Mon Sep 17 00:00:00 2001 From: feos Date: Sun, 20 Dec 2015 23:06:44 +0300 Subject: [PATCH 055/106] hexeditor: make secondary highlight color depend on primary fixes custom color mismatch --- BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs b/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs index 0ddf1f32d7..e91bb2770d 100644 --- a/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs @@ -2179,8 +2179,8 @@ namespace BizHawk.Client.EmuHawk } else { - e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(0x77FFD4D4)), rect); - e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(0x77FFD4D4)), textrect); + e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(0x44, Global.Config.HexHighlightColor)), rect); + e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(0x44, Global.Config.HexHighlightColor)), textrect); } } } From 55eef165aaac6643e269c5b0d697507a27d7056d Mon Sep 17 00:00:00 2001 From: hegyak Date: Sun, 20 Dec 2015 12:44:50 -0800 Subject: [PATCH 056/106] Add one to the VersionInfo.cs --- BizHawk.Client.EmuHawk/tools/GameShark.cs | 6 ++++-- Version/VersionInfo.cs | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/GameShark.cs b/BizHawk.Client.EmuHawk/tools/GameShark.cs index 0d8ceba08e..168e563d32 100644 --- a/BizHawk.Client.EmuHawk/tools/GameShark.cs +++ b/BizHawk.Client.EmuHawk/tools/GameShark.cs @@ -394,12 +394,14 @@ namespace BizHawk.Client.EmuHawk //TODO: //Determine how to make Action Replay Max Code detection a thing? //DEADFACE means, "NEW Decryption Keys ahead." - if (txtCheat.Text == "DEADFACE") + + if (txtCheat.Text.Contains("DEADFACE") == true) { MessageBox.Show("Sorry, this tool does not support DEADFACE codes.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } - if (Slider == true) + + if (Slider == true) { secondSlide = txtCheat.Text; GBASlide(); diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index d795488a31..bed9f095ee 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -1,7 +1,7 @@ static class VersionInfo { - public const string MAINVERSION = "1.11.3"; // Use numbers only or the new version notification won't work - public static readonly string RELEASEDATE = "October 14, 2015"; + public const string MAINVERSION = "1.11.4"; // Use numbers only or the new version notification won't work + public static readonly string RELEASEDATE = "December 25, 2015"; public static readonly bool DeveloperBuild = true; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html"; @@ -9,4 +9,4 @@ static class VersionInfo { return DeveloperBuild ? ("GIT " + SubWCRev.GIT_BRANCH + "#" + SubWCRev.GIT_SHORTHASH) : ("Version " + MAINVERSION); } -} +} From b25f7d65e20593c29fcdd65aa243c90300ca1811 Mon Sep 17 00:00:00 2001 From: hegyak Date: Sun, 20 Dec 2015 12:46:37 -0800 Subject: [PATCH 057/106] Version 1.11.4 --- Version/VersionInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index bed9f095ee..46059f6dc7 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -2,7 +2,7 @@ static class VersionInfo { public const string MAINVERSION = "1.11.4"; // Use numbers only or the new version notification won't work public static readonly string RELEASEDATE = "December 25, 2015"; - public static readonly bool DeveloperBuild = true; + public static readonly bool DeveloperBuild = false; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html"; public static string GetEmuVersion() From c53c841d94ed64ae048cb3ba4fdc1dbe38e66c4c Mon Sep 17 00:00:00 2001 From: hegyak Date: Sun, 20 Dec 2015 14:40:03 -0800 Subject: [PATCH 058/106] Update the ReleaseDate to be the 20th of December --- Version/VersionInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index 46059f6dc7..4cf3bb2378 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -1,7 +1,7 @@ static class VersionInfo { public const string MAINVERSION = "1.11.4"; // Use numbers only or the new version notification won't work - public static readonly string RELEASEDATE = "December 25, 2015"; + public static readonly string RELEASEDATE = "December 20, 2015"; public static readonly bool DeveloperBuild = false; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html"; From 41ba4b6927c30b37003604bc01ff0dd86f3ebd64 Mon Sep 17 00:00:00 2001 From: hegyak Date: Sun, 20 Dec 2015 14:41:17 -0800 Subject: [PATCH 059/106] This is a DeveloperBuild. --- Version/VersionInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Version/VersionInfo.cs b/Version/VersionInfo.cs index 4cf3bb2378..7b34588790 100644 --- a/Version/VersionInfo.cs +++ b/Version/VersionInfo.cs @@ -2,7 +2,7 @@ static class VersionInfo { public const string MAINVERSION = "1.11.4"; // Use numbers only or the new version notification won't work public static readonly string RELEASEDATE = "December 20, 2015"; - public static readonly bool DeveloperBuild = false; + public static readonly bool DeveloperBuild = true; public static readonly string HomePage = "http://tasvideos.org/BizHawk.html"; public static string GetEmuVersion() From f0c939d87c5dc11359ace81d4d69ec88a4f15075 Mon Sep 17 00:00:00 2001 From: Connor Olding Date: Wed, 23 Dec 2015 17:18:39 -0800 Subject: [PATCH 060/106] reimplement strings for OSD watches also fixed saving separators --- BizHawk.Client.Common/tools/Watch/SeparatorWatch.cs | 2 +- BizHawk.Client.Common/tools/Watch/Watch.cs | 7 ++++++- BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/BizHawk.Client.Common/tools/Watch/SeparatorWatch.cs b/BizHawk.Client.Common/tools/Watch/SeparatorWatch.cs index e00d522ee6..dae9193522 100644 --- a/BizHawk.Client.Common/tools/Watch/SeparatorWatch.cs +++ b/BizHawk.Client.Common/tools/Watch/SeparatorWatch.cs @@ -75,7 +75,7 @@ namespace BizHawk.Client.Common get { return string.Empty; } } - public override string ToString() + public override string ToDisplayString() { return "----"; } diff --git a/BizHawk.Client.Common/tools/Watch/Watch.cs b/BizHawk.Client.Common/tools/Watch/Watch.cs index 42bab1ba87..e6ece27059 100644 --- a/BizHawk.Client.Common/tools/Watch/Watch.cs +++ b/BizHawk.Client.Common/tools/Watch/Watch.cs @@ -558,7 +558,7 @@ namespace BizHawk.Client.Common public override string ToString() { return string.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}" - , Address.ToHexString((Domain.Size - 1).NumHexDigits()) + , Domain == null && Address == 0 ? "0" : Address.ToHexString((Domain.Size - 1).NumHexDigits()) , SizeAsChar , TypeAsChar , Convert.ToInt32(BigEndian) @@ -567,6 +567,11 @@ namespace BizHawk.Client.Common ); } + public virtual string ToDisplayString() + { + return Notes + ": " + ValueString; + } + #endregion #region Properties diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs index 80d2d3e11c..09e8e9995f 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs @@ -254,7 +254,7 @@ namespace BizHawk.Client.EmuHawk { var frozen = !_watches[i].IsSeparator && Global.CheatList.IsActive(_watches[i].Domain, _watches[i].Address); GlobalWin.OSD.AddGUIText( - _watches[i].ToString(), + _watches[i].ToDisplayString(), Global.Config.DispRamWatchx, Global.Config.DispRamWatchy + (i * 14), Color.Black, @@ -324,7 +324,7 @@ namespace BizHawk.Client.EmuHawk { var frozen = !_watches[i].IsSeparator && Global.CheatList.IsActive(_watches[i].Domain, _watches[i].Address); GlobalWin.OSD.AddGUIText( - _watches[i].ToString(), + _watches[i].ToDisplayString(), Global.Config.DispRamWatchx, Global.Config.DispRamWatchy + (i * 14), Color.Black, From d470703a407dadf661a12b5aaa38fbf4dc0e11fc Mon Sep 17 00:00:00 2001 From: adelikat Date: Wed, 23 Dec 2015 21:11:25 -0500 Subject: [PATCH 061/106] Add an Experimental Tools submenu that only shows in Developer Builds and move autohawk there. Add a NewHexEditor tool (in the experimental section), which is currently just a bare bones winform with all the necessary plumbing set up --- .../BizHawk.Client.EmuHawk.csproj | 9 ++ BizHawk.Client.EmuHawk/MainForm.Designer.cs | 103 +++++++++------ BizHawk.Client.EmuHawk/MainForm.Events.cs | 11 +- .../tools/HexEditor/NewHexEditor.Designer.cs | 87 +++++++++++++ .../tools/HexEditor/NewHexEditor.cs | 80 ++++++++++++ .../tools/HexEditor/NewHexEditor.resx | 123 ++++++++++++++++++ 6 files changed, 368 insertions(+), 45 deletions(-) create mode 100644 BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.Designer.cs create mode 100644 BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.cs create mode 100644 BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.resx diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj index 88b0b3faa6..7c313a5b1a 100644 --- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj +++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj @@ -807,6 +807,12 @@ HexFind.cs + + Form + + + NewHexEditor.cs + @@ -1421,6 +1427,9 @@ HexFind.cs + + NewHexEditor.cs + LuaCanvas.cs diff --git a/BizHawk.Client.EmuHawk/MainForm.Designer.cs b/BizHawk.Client.EmuHawk/MainForm.Designer.cs index 6f07dd6654..0cc1e43ef9 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Designer.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Designer.cs @@ -204,17 +204,19 @@ this.TAStudioMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.MacroToolMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.VirtualPadMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.AutoHawkMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.BasicBotMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.LuaConsoleMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator(); this.CheatsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.LuaConsoleMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.externalToolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.dummyExternalTool = new System.Windows.Forms.ToolStripMenuItem(); + this.gameSharkConverterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator29 = new System.Windows.Forms.ToolStripSeparator(); this.MultiDiskBundlerFileMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.gameSharkConverterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.externalToolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.dummyExternalTool = new System.Windows.Forms.ToolStripMenuItem(); this.batchRunnerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.ExperimentalToolsSubMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.AutoHawkMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.NewHexEditorMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.NESSubMenu = new System.Windows.Forms.ToolStripMenuItem(); this.coreToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.quickNESToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -1852,7 +1854,6 @@ this.TAStudioMenuItem, this.MacroToolMenuItem, this.VirtualPadMenuItem, - this.AutoHawkMenuItem, this.BasicBotMenuItem, this.LuaConsoleMenuItem, this.toolStripSeparator11, @@ -1861,7 +1862,8 @@ this.toolStripSeparator29, this.MultiDiskBundlerFileMenuItem, this.externalToolToolStripMenuItem, - this.batchRunnerToolStripMenuItem}); + this.batchRunnerToolStripMenuItem, + this.ExperimentalToolsSubMenu}); this.ToolsSubMenu.Name = "ToolsSubMenu"; this.ToolsSubMenu.Size = new System.Drawing.Size(47, 19); this.ToolsSubMenu.Text = "&Tools"; @@ -1951,13 +1953,6 @@ this.VirtualPadMenuItem.Text = "Virtual Pad"; this.VirtualPadMenuItem.Click += new System.EventHandler(this.VirtualPadMenuItem_Click); // - // AutoHawkMenuItem - // - this.AutoHawkMenuItem.Name = "AutoHawkMenuItem"; - this.AutoHawkMenuItem.Size = new System.Drawing.Size(189, 22); - this.AutoHawkMenuItem.Text = "AutoHawk"; - this.AutoHawkMenuItem.Click += new System.EventHandler(this.AutoHawkMenuItem_Click); - // // BasicBotMenuItem // this.BasicBotMenuItem.Name = "BasicBotMenuItem"; @@ -1965,6 +1960,14 @@ this.BasicBotMenuItem.Text = "Basic Bot"; this.BasicBotMenuItem.Click += new System.EventHandler(this.BasicBotMenuItem_Click); // + // LuaConsoleMenuItem + // + this.LuaConsoleMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lua; + this.LuaConsoleMenuItem.Name = "LuaConsoleMenuItem"; + this.LuaConsoleMenuItem.Size = new System.Drawing.Size(189, 22); + this.LuaConsoleMenuItem.Text = "Lua Console"; + this.LuaConsoleMenuItem.Click += new System.EventHandler(this.LuaConsoleMenuItem_Click); + // // toolStripSeparator11 // this.toolStripSeparator11.Name = "toolStripSeparator11"; @@ -1978,28 +1981,13 @@ this.CheatsMenuItem.Text = "Cheats"; this.CheatsMenuItem.Click += new System.EventHandler(this.CheatsMenuItem_Click); // - // LuaConsoleMenuItem + // gameSharkConverterToolStripMenuItem // - this.LuaConsoleMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lua; - this.LuaConsoleMenuItem.Name = "LuaConsoleMenuItem"; - this.LuaConsoleMenuItem.Size = new System.Drawing.Size(189, 22); - this.LuaConsoleMenuItem.Text = "Lua Console"; - this.LuaConsoleMenuItem.Click += new System.EventHandler(this.LuaConsoleMenuItem_Click); - // - // externalToolToolStripMenuItem - // - this.externalToolToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.dummyExternalTool}); - this.externalToolToolStripMenuItem.Name = "externalToolToolStripMenuItem"; - this.externalToolToolStripMenuItem.Size = new System.Drawing.Size(189, 22); - this.externalToolToolStripMenuItem.Text = "External Tool"; - this.externalToolToolStripMenuItem.DropDownOpening += new System.EventHandler(this.ExternalToolToolStripMenuItem_DropDownOpening); - // - // dummyExternalTool - // - this.dummyExternalTool.Name = "dummyExternalTool"; - this.dummyExternalTool.Size = new System.Drawing.Size(152, 22); - this.dummyExternalTool.Text = "None"; + this.gameSharkConverterToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("gameSharkConverterToolStripMenuItem.Image"))); + this.gameSharkConverterToolStripMenuItem.Name = "gameSharkConverterToolStripMenuItem"; + this.gameSharkConverterToolStripMenuItem.Size = new System.Drawing.Size(189, 22); + this.gameSharkConverterToolStripMenuItem.Text = "GameShark Converter"; + this.gameSharkConverterToolStripMenuItem.Click += new System.EventHandler(this.gameSharkConverterToolStripMenuItem_Click); // // toolStripSeparator29 // @@ -2014,13 +2002,20 @@ this.MultiDiskBundlerFileMenuItem.Text = "Multi-disk Bundler"; this.MultiDiskBundlerFileMenuItem.Click += new System.EventHandler(this.CreateMultigameFileMenuItem_Click); // - // gameSharkConverterToolStripMenuItem + // externalToolToolStripMenuItem // - this.gameSharkConverterToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("gameSharkConverterToolStripMenuItem.Image"))); - this.gameSharkConverterToolStripMenuItem.Name = "gameSharkConverterToolStripMenuItem"; - this.gameSharkConverterToolStripMenuItem.Size = new System.Drawing.Size(189, 22); - this.gameSharkConverterToolStripMenuItem.Text = "GameShark Converter"; - this.gameSharkConverterToolStripMenuItem.Click += new System.EventHandler(this.gameSharkConverterToolStripMenuItem_Click); + this.externalToolToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.dummyExternalTool}); + this.externalToolToolStripMenuItem.Name = "externalToolToolStripMenuItem"; + this.externalToolToolStripMenuItem.Size = new System.Drawing.Size(189, 22); + this.externalToolToolStripMenuItem.Text = "External Tool"; + this.externalToolToolStripMenuItem.DropDownOpening += new System.EventHandler(this.ExternalToolToolStripMenuItem_DropDownOpening); + // + // dummyExternalTool + // + this.dummyExternalTool.Name = "dummyExternalTool"; + this.dummyExternalTool.Size = new System.Drawing.Size(103, 22); + this.dummyExternalTool.Text = "None"; // // batchRunnerToolStripMenuItem // @@ -2030,6 +2025,28 @@ this.batchRunnerToolStripMenuItem.Visible = false; this.batchRunnerToolStripMenuItem.Click += new System.EventHandler(this.batchRunnerToolStripMenuItem_Click); // + // ExperimentalToolsSubMenu + // + this.ExperimentalToolsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.AutoHawkMenuItem, + this.NewHexEditorMenuItem}); + this.ExperimentalToolsSubMenu.Name = "ExperimentalToolsSubMenu"; + this.ExperimentalToolsSubMenu.Size = new System.Drawing.Size(189, 22); + this.ExperimentalToolsSubMenu.Text = "Experimental Tools"; + this.ExperimentalToolsSubMenu.DropDownOpened += new System.EventHandler(this.ExperimentalToolsSubMenu_DropDownOpened); + // + // AutoHawkMenuItem + // + this.AutoHawkMenuItem.Name = "AutoHawkMenuItem"; + this.AutoHawkMenuItem.Size = new System.Drawing.Size(155, 22); + this.AutoHawkMenuItem.Text = "AutoHawk"; + // + // NewHexEditorMenuItem + // + this.NewHexEditorMenuItem.Name = "NewHexEditorMenuItem"; + this.NewHexEditorMenuItem.Size = new System.Drawing.Size(155, 22); + this.NewHexEditorMenuItem.Text = "New Hex Editor"; + // // NESSubMenu // this.NESSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -4033,7 +4050,6 @@ private System.Windows.Forms.ToolStripMenuItem GBAmGBAMenuItem; private System.Windows.Forms.ToolStripMenuItem GBAVBANextMenuItem; private System.Windows.Forms.ToolStripMenuItem gBAWithMGBAToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem AutoHawkMenuItem; private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem PSXHashDiscsToolStripMenuItem; private System.Windows.Forms.Timer timerMouseIdle; @@ -4060,5 +4076,8 @@ private System.Windows.Forms.ToolStripMenuItem gameSharkConverterToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem dummyExternalTool; private System.Windows.Forms.ToolStripMenuItem RecordAVMenuItem; + private System.Windows.Forms.ToolStripMenuItem ExperimentalToolsSubMenu; + private System.Windows.Forms.ToolStripMenuItem AutoHawkMenuItem; + private System.Windows.Forms.ToolStripMenuItem NewHexEditorMenuItem; } } diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 9f154f379a..8412798904 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -1260,12 +1260,11 @@ namespace BizHawk.Client.EmuHawk batchRunnerToolStripMenuItem.Visible = VersionInfo.DeveloperBuild; - AutoHawkMenuItem.Enabled = GlobalWin.Tools.IsAvailable(); - AutoHawkMenuItem.Visible = VersionInfo.DeveloperBuild; - BasicBotMenuItem.Enabled = GlobalWin.Tools.IsAvailable(); gameSharkConverterToolStripMenuItem.Enabled = GlobalWin.Tools.IsAvailable(); + + ExperimentalToolsSubMenu.Visible = VersionInfo.DeveloperBuild; } private void ExternalToolToolStripMenuItem_DropDownOpening(object sender, EventArgs e) @@ -1294,6 +1293,12 @@ namespace BizHawk.Client.EmuHawk } } + private void ExperimentalToolsSubMenu_DropDownOpened(object sender, EventArgs e) + { + AutoHawkMenuItem.Enabled = GlobalWin.Tools.IsAvailable(); + NewHexEditorMenuItem.Enabled = GlobalWin.Tools.IsAvailable(); + } + private void AutoHawkMenuItem_Click(object sender, EventArgs e) { GlobalWin.Tools.Load(); diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.Designer.cs b/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.Designer.cs new file mode 100644 index 0000000000..59e8d1d5b5 --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.Designer.cs @@ -0,0 +1,87 @@ +namespace BizHawk.Client.EmuHawk +{ + partial class NewHexEditor + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.HexMenu = new System.Windows.Forms.MenuStrip(); + this.FileSubMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.ExitMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.HexMenu.SuspendLayout(); + this.SuspendLayout(); + // + // HexMenu + // + this.HexMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.FileSubMenu}); + this.HexMenu.Location = new System.Drawing.Point(0, 0); + this.HexMenu.Name = "HexMenu"; + this.HexMenu.Size = new System.Drawing.Size(284, 24); + this.HexMenu.TabIndex = 0; + this.HexMenu.Text = "menuStrip1"; + // + // FileSubMenu + // + this.FileSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.ExitMenuItem}); + this.FileSubMenu.Name = "FileSubMenu"; + this.FileSubMenu.Size = new System.Drawing.Size(37, 20); + this.FileSubMenu.Text = "&File"; + this.FileSubMenu.DropDownOpened += new System.EventHandler(this.FileSubMenu_DropDownOpened); + // + // ExitMenuItem + // + this.ExitMenuItem.Name = "ExitMenuItem"; + this.ExitMenuItem.ShortcutKeyDisplayString = "Alt+F4"; + this.ExitMenuItem.Size = new System.Drawing.Size(152, 22); + this.ExitMenuItem.Text = "E&xit"; + this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); + // + // NewHexEditor + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 261); + this.Controls.Add(this.HexMenu); + this.MainMenuStrip = this.HexMenu; + this.Name = "NewHexEditor"; + this.Text = "NewHexEditor"; + this.Load += new System.EventHandler(this.NewHexEditor_Load); + this.HexMenu.ResumeLayout(false); + this.HexMenu.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.MenuStrip HexMenu; + private System.Windows.Forms.ToolStripMenuItem FileSubMenu; + private System.Windows.Forms.ToolStripMenuItem ExitMenuItem; + } +} \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.cs b/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.cs new file mode 100644 index 0000000000..1bc295183b --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; + +using BizHawk.Emulation.Common; + +namespace BizHawk.Client.EmuHawk +{ + public partial class NewHexEditor : Form, IToolFormAutoConfig + { + #region Initialize and Dependencies + + [RequiredService] + private IMemoryDomains MemoryDomains { get; set; } + + [RequiredService] + private IEmulator Emulator { get; set; } + + public NewHexEditor() + { + InitializeComponent(); + + Closing += (o, e) => SaveConfigSettings(); + } + + private void NewHexEditor_Load(object sender, EventArgs e) + { + + } + + private void SaveConfigSettings() + { + + } + + #endregion + + #region IToolForm implementation + + public void UpdateValues() + { + // TODO + } + + public void FastUpdate() + { + // TODO + } + + public void Restart() + { + // TODO + } + + public bool AskSaveChanges() + { + return true; // TODO + } + + public bool UpdateBefore { get { return false; } } + + #endregion + + #region Menu Items + + private void FileSubMenu_DropDownOpened(object sender, EventArgs e) + { + + } + + private void ExitMenuItem_Click(object sender, EventArgs e) + { + Close(); + } + + #endregion + } +} diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.resx b/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.resx new file mode 100644 index 0000000000..9a68370371 --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file From 9a45066e27f8c06280710e6c045866cb75b7925c Mon Sep 17 00:00:00 2001 From: Connor Olding Date: Wed, 23 Dec 2015 21:29:48 -0800 Subject: [PATCH 062/106] Fix selections in HexEditor text columns --- BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs b/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs index e91bb2770d..365b37c407 100644 --- a/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs @@ -942,10 +942,11 @@ namespace BizHawk.Client.EmuHawk var column = x / (fontWidth * colWidth); - var start = GetTextOffset() - 50; + var innerOffset = AddressesLabel.Location.X - AddressLabel.Location.X + AddressesLabel.Margin.Left; + var start = GetTextOffset() - innerOffset; if (x > start) { - column = (x - start) / (fontWidth / DataSize); + column = (x - start) / (fontWidth * DataSize); } if (i >= 0 && i <= _maxRow && column >= 0 && column < (16 / DataSize)) @@ -1022,7 +1023,7 @@ namespace BizHawk.Client.EmuHawk { int start = (16 / DataSize) * fontWidth * (DataSize * 2 + 1); start += AddressesLabel.Location.X + fontWidth / 2; - start += fontWidth * 4; + start += fontWidth * 2; return start; } From da25052e09e08ac9ef6d08f00bbcc9ac26502533 Mon Sep 17 00:00:00 2001 From: Hathor86 Date: Thu, 24 Dec 2015 14:00:08 +0100 Subject: [PATCH 063/106] Just few comments on above notwa's method :) (Oh and transform string concatenation with + to a string.Format) Also made a small fix to externaltoolmanager --- BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs | 5 ++++- BizHawk.Client.Common/tools/Watch/SeparatorWatch.cs | 7 ++++++- BizHawk.Client.Common/tools/Watch/Watch.cs | 7 ++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs b/BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs index 8b851306db..631d789319 100644 --- a/BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs +++ b/BizHawk.Client.ApiHawk/Classes/ExternalToolManager.cs @@ -37,7 +37,10 @@ namespace BizHawk.Client.ApiHawk } directoryMonitor = new FileSystemWatcher(Global.Config.PathEntries["Global", "External Tools"].Path, "*.dll"); directoryMonitor.IncludeSubdirectories = false; - directoryMonitor.Created += DirectoryMonitor_Created; + directoryMonitor.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName; + directoryMonitor.Filter = "*.dll"; + directoryMonitor.Created += new FileSystemEventHandler(DirectoryMonitor_Created); + directoryMonitor.EnableRaisingEvents = true; BuildToolStrip(); } diff --git a/BizHawk.Client.Common/tools/Watch/SeparatorWatch.cs b/BizHawk.Client.Common/tools/Watch/SeparatorWatch.cs index dae9193522..a7314c7f4c 100644 --- a/BizHawk.Client.Common/tools/Watch/SeparatorWatch.cs +++ b/BizHawk.Client.Common/tools/Watch/SeparatorWatch.cs @@ -74,7 +74,12 @@ namespace BizHawk.Client.Common { get { return string.Empty; } } - + + /// + /// TTransform the current instance into a displayable (short representation) string + /// It's used by the "Display on screen" option in the RamWatch window + /// + /// A well formatted string representation public override string ToDisplayString() { return "----"; diff --git a/BizHawk.Client.Common/tools/Watch/Watch.cs b/BizHawk.Client.Common/tools/Watch/Watch.cs index e6ece27059..affdf673fb 100644 --- a/BizHawk.Client.Common/tools/Watch/Watch.cs +++ b/BizHawk.Client.Common/tools/Watch/Watch.cs @@ -567,9 +567,14 @@ namespace BizHawk.Client.Common ); } + /// + /// Transform the current instance into a displayable (short representation) string + /// It's used by the "Display on screen" option in the RamWatch window + /// + /// A well formatted string representation public virtual string ToDisplayString() { - return Notes + ": " + ValueString; + return string.Format("{0}: {1}", Notes, ValueString); } #endregion From 60692450e8a1ddf0be94af9990174e5aa36e869a Mon Sep 17 00:00:00 2001 From: adelikat Date: Thu, 24 Dec 2015 11:15:29 -0500 Subject: [PATCH 064/106] New Hex Editor - add the plumbing for the HexView widget, that will use the GDIRenderer as the basis for the drawing. --- .../BizHawk.Client.EmuHawk.csproj | 3 + .../CustomControls/HexView.cs | 65 +++++++++++++++++++ BizHawk.Client.EmuHawk/MainForm.Designer.cs | 35 +++++----- BizHawk.Client.EmuHawk/MainForm.Events.cs | 5 ++ BizHawk.Client.EmuHawk/MainForm.cs | 1 - BizHawk.Client.EmuHawk/MainForm.resx | 10 +-- .../tools/HexEditor/NewHexEditor.Designer.cs | 20 +++++- 7 files changed, 113 insertions(+), 26 deletions(-) create mode 100644 BizHawk.Client.EmuHawk/CustomControls/HexView.cs diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj index 7c313a5b1a..83d24e01eb 100644 --- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj +++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj @@ -479,6 +479,9 @@ Component + + Component + Form diff --git a/BizHawk.Client.EmuHawk/CustomControls/HexView.cs b/BizHawk.Client.EmuHawk/CustomControls/HexView.cs new file mode 100644 index 0000000000..9c8af21eea --- /dev/null +++ b/BizHawk.Client.EmuHawk/CustomControls/HexView.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; + +using BizHawk.Client.Common; +using BizHawk.Client.EmuHawk.CustomControls; + +namespace BizHawk.Client.EmuHawk +{ + public class HexView : Control + { + private readonly GDIRenderer Gdi; + private readonly Font NormalFont; + private Size _charSize; + + public HexView() + { + NormalFont = new Font("Courier New", 8); // Only support fixed width + + SetStyle(ControlStyles.AllPaintingInWmPaint, true); + SetStyle(ControlStyles.UserPaint, true); + SetStyle(ControlStyles.SupportsTransparentBackColor, true); + SetStyle(ControlStyles.Opaque, true); + + Gdi = new GDIRenderer(); + + using (var g = CreateGraphics()) + using (var LCK = Gdi.LockGraphics(g)) + { + _charSize = Gdi.MeasureString("A", NormalFont); // TODO make this a property so changing it updates other values. + } + } + + protected override void Dispose(bool disposing) + { + Gdi.Dispose(); + + NormalFont.Dispose(); + + base.Dispose(disposing); + } + + protected override void OnPaint(PaintEventArgs e) + { + using (var LCK = Gdi.LockGraphics(e.Graphics)) + { + Gdi.StartOffScreenBitmap(Width, Height); + + // White Background + Gdi.SetBrush(Color.White); + Gdi.SetSolidPen(Color.White); + Gdi.FillRectangle(0, 0, Width, Height); + + + Gdi.DrawString("Hello World", new Point(10, 10)); + + Gdi.CopyToScreen(); + Gdi.EndOffScreenBitmap(); + } + } + } +} diff --git a/BizHawk.Client.EmuHawk/MainForm.Designer.cs b/BizHawk.Client.EmuHawk/MainForm.Designer.cs index 0cc1e43ef9..472d906507 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Designer.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Designer.cs @@ -1072,7 +1072,7 @@ // this.RecordAVMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.RecordHS; this.RecordAVMenuItem.Name = "RecordAVMenuItem"; - this.RecordAVMenuItem.Size = new System.Drawing.Size(223, 22); + this.RecordAVMenuItem.Size = new System.Drawing.Size(225, 22); this.RecordAVMenuItem.Text = "&Record AVI/WAV"; this.RecordAVMenuItem.Click += new System.EventHandler(this.RecordAVMenuItem_Click); // @@ -1080,7 +1080,7 @@ // this.ConfigAndRecordAVMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AVI; this.ConfigAndRecordAVMenuItem.Name = "ConfigAndRecordAVMenuItem"; - this.ConfigAndRecordAVMenuItem.Size = new System.Drawing.Size(223, 22); + this.ConfigAndRecordAVMenuItem.Size = new System.Drawing.Size(225, 22); this.ConfigAndRecordAVMenuItem.Text = "Config and Record AVI/WAV"; this.ConfigAndRecordAVMenuItem.Click += new System.EventHandler(this.ConfigAndRecordAVMenuItem_Click); // @@ -1088,26 +1088,26 @@ // this.StopAVIMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopAVIMenuItem.Name = "StopAVIMenuItem"; - this.StopAVIMenuItem.Size = new System.Drawing.Size(223, 22); + this.StopAVIMenuItem.Size = new System.Drawing.Size(225, 22); this.StopAVIMenuItem.Text = "&Stop AVI/WAV"; this.StopAVIMenuItem.Click += new System.EventHandler(this.StopAVMenuItem_Click); // // toolStripSeparator19 // this.toolStripSeparator19.Name = "toolStripSeparator19"; - this.toolStripSeparator19.Size = new System.Drawing.Size(220, 6); + this.toolStripSeparator19.Size = new System.Drawing.Size(222, 6); // // CaptureOSDMenuItem // this.CaptureOSDMenuItem.Name = "CaptureOSDMenuItem"; - this.CaptureOSDMenuItem.Size = new System.Drawing.Size(223, 22); + this.CaptureOSDMenuItem.Size = new System.Drawing.Size(225, 22); this.CaptureOSDMenuItem.Text = "Capture OSD"; this.CaptureOSDMenuItem.Click += new System.EventHandler(this.CaptureOSDMenuItem_Click); // // SynclessRecordingMenuItem // this.SynclessRecordingMenuItem.Name = "SynclessRecordingMenuItem"; - this.SynclessRecordingMenuItem.Size = new System.Drawing.Size(223, 22); + this.SynclessRecordingMenuItem.Size = new System.Drawing.Size(225, 22); this.SynclessRecordingMenuItem.Text = "S&yncless Recording Tools"; this.SynclessRecordingMenuItem.Click += new System.EventHandler(this.SynclessRecordingMenuItem_Click); // @@ -1865,7 +1865,7 @@ this.batchRunnerToolStripMenuItem, this.ExperimentalToolsSubMenu}); this.ToolsSubMenu.Name = "ToolsSubMenu"; - this.ToolsSubMenu.Size = new System.Drawing.Size(47, 19); + this.ToolsSubMenu.Size = new System.Drawing.Size(48, 19); this.ToolsSubMenu.Text = "&Tools"; this.ToolsSubMenu.DropDownOpened += new System.EventHandler(this.ToolsSubMenu_DropDownOpened); // @@ -2046,6 +2046,7 @@ this.NewHexEditorMenuItem.Name = "NewHexEditorMenuItem"; this.NewHexEditorMenuItem.Size = new System.Drawing.Size(155, 22); this.NewHexEditorMenuItem.Text = "New Hex Editor"; + this.NewHexEditorMenuItem.Click += new System.EventHandler(this.NewHexEditorMenuItem_Click); // // NESSubMenu // @@ -2212,7 +2213,7 @@ // this.PceControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.PceControllerSettingsMenuItem.Name = "PceControllerSettingsMenuItem"; - this.PceControllerSettingsMenuItem.Size = new System.Drawing.Size(258, 22); + this.PceControllerSettingsMenuItem.Size = new System.Drawing.Size(259, 22); this.PceControllerSettingsMenuItem.Text = "Controller Settings"; this.PceControllerSettingsMenuItem.Click += new System.EventHandler(this.PceControllerSettingsMenuItem_Click); // @@ -2220,59 +2221,59 @@ // this.PCEGraphicsSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.tvIcon; this.PCEGraphicsSettingsMenuItem.Name = "PCEGraphicsSettingsMenuItem"; - this.PCEGraphicsSettingsMenuItem.Size = new System.Drawing.Size(258, 22); + this.PCEGraphicsSettingsMenuItem.Size = new System.Drawing.Size(259, 22); this.PCEGraphicsSettingsMenuItem.Text = "Graphics Settings"; this.PCEGraphicsSettingsMenuItem.Click += new System.EventHandler(this.PCEGraphicsSettingsMenuItem_Click); // // toolStripSeparator32 // this.toolStripSeparator32.Name = "toolStripSeparator32"; - this.toolStripSeparator32.Size = new System.Drawing.Size(255, 6); + this.toolStripSeparator32.Size = new System.Drawing.Size(256, 6); // // PCEBGViewerMenuItem // this.PCEBGViewerMenuItem.Name = "PCEBGViewerMenuItem"; - this.PCEBGViewerMenuItem.Size = new System.Drawing.Size(258, 22); + this.PCEBGViewerMenuItem.Size = new System.Drawing.Size(259, 22); this.PCEBGViewerMenuItem.Text = "&BG Viewer"; this.PCEBGViewerMenuItem.Click += new System.EventHandler(this.PCEBGViewerMenuItem_Click); // // PCEtileViewerToolStripMenuItem // this.PCEtileViewerToolStripMenuItem.Name = "PCEtileViewerToolStripMenuItem"; - this.PCEtileViewerToolStripMenuItem.Size = new System.Drawing.Size(258, 22); + this.PCEtileViewerToolStripMenuItem.Size = new System.Drawing.Size(259, 22); this.PCEtileViewerToolStripMenuItem.Text = "&Tile Viewer"; this.PCEtileViewerToolStripMenuItem.Click += new System.EventHandler(this.PceTileViewerMenuItem_Click); // // PceSoundDebuggerToolStripMenuItem // this.PceSoundDebuggerToolStripMenuItem.Name = "PceSoundDebuggerToolStripMenuItem"; - this.PceSoundDebuggerToolStripMenuItem.Size = new System.Drawing.Size(258, 22); + this.PceSoundDebuggerToolStripMenuItem.Size = new System.Drawing.Size(259, 22); this.PceSoundDebuggerToolStripMenuItem.Text = "&Sound Debugger"; this.PceSoundDebuggerToolStripMenuItem.Click += new System.EventHandler(this.PceSoundDebuggerToolStripMenuItem_Click); // // toolStripSeparator25 // this.toolStripSeparator25.Name = "toolStripSeparator25"; - this.toolStripSeparator25.Size = new System.Drawing.Size(255, 6); + this.toolStripSeparator25.Size = new System.Drawing.Size(256, 6); // // PCEAlwaysPerformSpriteLimitMenuItem // this.PCEAlwaysPerformSpriteLimitMenuItem.Name = "PCEAlwaysPerformSpriteLimitMenuItem"; - this.PCEAlwaysPerformSpriteLimitMenuItem.Size = new System.Drawing.Size(258, 22); + this.PCEAlwaysPerformSpriteLimitMenuItem.Size = new System.Drawing.Size(259, 22); this.PCEAlwaysPerformSpriteLimitMenuItem.Text = "Always Perform Sprite Limit"; this.PCEAlwaysPerformSpriteLimitMenuItem.Click += new System.EventHandler(this.PCEAlwaysPerformSpriteLimitMenuItem_Click); // // PCEAlwaysEqualizeVolumesMenuItem // this.PCEAlwaysEqualizeVolumesMenuItem.Name = "PCEAlwaysEqualizeVolumesMenuItem"; - this.PCEAlwaysEqualizeVolumesMenuItem.Size = new System.Drawing.Size(258, 22); + this.PCEAlwaysEqualizeVolumesMenuItem.Size = new System.Drawing.Size(259, 22); this.PCEAlwaysEqualizeVolumesMenuItem.Text = "Always Equalize Volumes (PCE-CD)"; this.PCEAlwaysEqualizeVolumesMenuItem.Click += new System.EventHandler(this.PCEAlwaysEqualizeVolumesMenuItem_Click); // // PCEArcadeCardRewindEnableMenuItem // this.PCEArcadeCardRewindEnableMenuItem.Name = "PCEArcadeCardRewindEnableMenuItem"; - this.PCEArcadeCardRewindEnableMenuItem.Size = new System.Drawing.Size(258, 22); + this.PCEArcadeCardRewindEnableMenuItem.Size = new System.Drawing.Size(259, 22); this.PCEArcadeCardRewindEnableMenuItem.Text = "Arcade Card Rewind-Enable Hack"; this.PCEArcadeCardRewindEnableMenuItem.Click += new System.EventHandler(this.PCEArcadeCardRewindEnableMenuItem_Click); // diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 8412798904..9e22d44a13 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -1369,6 +1369,11 @@ namespace BizHawk.Client.EmuHawk new BatchRun().ShowDialog(); } + private void NewHexEditorMenuItem_Click(object sender, EventArgs e) + { + GlobalWin.Tools.Load(); + } + #endregion #region NES diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index ba7be1d47a..97456e918f 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -4094,6 +4094,5 @@ namespace BizHawk.Client.EmuHawk quickNESToolStripMenuItem.Checked = Global.Config.NES_InQuickNES == true; nesHawkToolStripMenuItem.Checked = Global.Config.NES_InQuickNES == false; } - } } diff --git a/BizHawk.Client.EmuHawk/MainForm.resx b/BizHawk.Client.EmuHawk/MainForm.resx index 8b1dffee71..5da4e4a6be 100644 --- a/BizHawk.Client.EmuHawk/MainForm.resx +++ b/BizHawk.Client.EmuHawk/MainForm.resx @@ -124,7 +124,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA67AAAOuwHH+NQ2AAABpElE + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA66AAAOugEVvzbSAAABpElE QVQ4T52TQUsCURSF33+SDAUxRAyEwQiEksiFUJEMhGEDOcQgRi2UGJBgCkFIZDDbGEGWEsTMItBNrdu3 ad3y1HmkVNosvHC4l3u+A2/ezIi/5fP58D1OlJf3qzRNmwCn7TzrZ8AzfGk3kM1mkcvlUCgUUCqVUKlU UK1WwSDFmTt6ZMgyw6zIZDIYDAYziVmRTqfhui5WDhoI7VxAMa6xdvKIDWsgxZk7emTIRiIR2ZkVqVQK @@ -138,7 +138,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABBJAAAQSQGYcYbyAAAAcElE + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABBIAAAQSAFKNmQWAAAAcElE QVQ4T82Q4QoAIQiDffR7804DY+pOov5c8GltwyiRR8YVTLTFOsWK2iA0eAapQkPOznwRGnJ25rX87AmK /3ruFCvhCR9oclI8PNggJHg7A46w4rf5zY6H8jlAxQQOKMPWBswSIpmloXkEFbeR8QKDpKJKL1M/dQAA AABJRU5ErkJggg== @@ -147,7 +147,7 @@ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAGPUlE + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAGPUlE QVRIS7WWaVCTVxSGUWf0h3+gQhFqx6WgFG0tE5AwKSBLQIjAgGIrCLEgEmSTTSSUWBhAghI2bcsSNukU CGHAALKFPeyLCjoECy7gPjru+9I3fmkIaQD94Tt3Ml++3HOee88599yovP/M+mTAu3fvnj9//vDhwwcP HuDz0aNHT58+ff36tfTn/+kTAM+ePbt58+Y/HzQ5OXnlypWrV69OT0/fuHED7+/evYsJ0qly+ijA48eP @@ -582,7 +582,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA67AAAOuwHH+NQ2AAABpElE + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA66AAAOugEVvzbSAAABpElE QVQ4T52TQUsCURSF33+SDAUxRAyEwQiEksiFUJEMhGEDOcQgRi2UGJBgCkFIZDDbGEGWEsTMItBNrdu3 ad3y1HmkVNosvHC4l3u+A2/ezIi/5fP58D1OlJf3qzRNmwCn7TzrZ8AzfGk3kM1mkcvlUCgUUCqVUKlU UK1WwSDFmTt6ZMgyw6zIZDIYDAYziVmRTqfhui5WDhoI7VxAMa6xdvKIDWsgxZk7emTIRiIR2ZkVqVQK @@ -596,7 +596,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABBJAAAQSQGYcYbyAAAAcElE + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABBIAAAQSAFKNmQWAAAAcElE QVQ4T82Q4QoAIQiDffR7804DY+pOov5c8GltwyiRR8YVTLTFOsWK2iA0eAapQkPOznwRGnJ25rX87AmK /3ruFCvhCR9oclI8PNggJHg7A46w4rf5zY6H8jlAxQQOKMPWBswSIpmloXkEFbeR8QKDpKJKL1M/dQAA AABJRU5ErkJggg== diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.Designer.cs b/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.Designer.cs index 59e8d1d5b5..e07734890e 100644 --- a/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.Designer.cs @@ -31,6 +31,7 @@ this.HexMenu = new System.Windows.Forms.MenuStrip(); this.FileSubMenu = new System.Windows.Forms.ToolStripMenuItem(); this.ExitMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.hexView1 = new BizHawk.Client.EmuHawk.HexView(); this.HexMenu.SuspendLayout(); this.SuspendLayout(); // @@ -40,7 +41,7 @@ this.FileSubMenu}); this.HexMenu.Location = new System.Drawing.Point(0, 0); this.HexMenu.Name = "HexMenu"; - this.HexMenu.Size = new System.Drawing.Size(284, 24); + this.HexMenu.Size = new System.Drawing.Size(448, 24); this.HexMenu.TabIndex = 0; this.HexMenu.Text = "menuStrip1"; // @@ -57,15 +58,27 @@ // this.ExitMenuItem.Name = "ExitMenuItem"; this.ExitMenuItem.ShortcutKeyDisplayString = "Alt+F4"; - this.ExitMenuItem.Size = new System.Drawing.Size(152, 22); + this.ExitMenuItem.Size = new System.Drawing.Size(134, 22); this.ExitMenuItem.Text = "E&xit"; this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); // + // hexView1 + // + this.hexView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.hexView1.Location = new System.Drawing.Point(12, 27); + this.hexView1.Name = "hexView1"; + this.hexView1.Size = new System.Drawing.Size(424, 231); + this.hexView1.TabIndex = 1; + this.hexView1.Text = "hexView1"; + // // NewHexEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(284, 261); + this.ClientSize = new System.Drawing.Size(448, 270); + this.Controls.Add(this.hexView1); this.Controls.Add(this.HexMenu); this.MainMenuStrip = this.HexMenu; this.Name = "NewHexEditor"; @@ -83,5 +96,6 @@ private System.Windows.Forms.MenuStrip HexMenu; private System.Windows.Forms.ToolStripMenuItem FileSubMenu; private System.Windows.Forms.ToolStripMenuItem ExitMenuItem; + private HexView hexView1; } } \ No newline at end of file From ac1c7d0992cf70da41294e3785008b664d582dab Mon Sep 17 00:00:00 2001 From: adelikat Date: Thu, 24 Dec 2015 15:46:57 -0500 Subject: [PATCH 065/106] HexView - setting up some API --- .../CustomControls/HexView.cs | 51 +++++++++++++++++++ .../tools/HexEditor/NewHexEditor.Designer.cs | 21 ++++---- .../tools/HexEditor/NewHexEditor.cs | 25 ++++++++- 3 files changed, 86 insertions(+), 11 deletions(-) diff --git a/BizHawk.Client.EmuHawk/CustomControls/HexView.cs b/BizHawk.Client.EmuHawk/CustomControls/HexView.cs index 9c8af21eea..30faae953b 100644 --- a/BizHawk.Client.EmuHawk/CustomControls/HexView.cs +++ b/BizHawk.Client.EmuHawk/CustomControls/HexView.cs @@ -16,6 +16,8 @@ namespace BizHawk.Client.EmuHawk private readonly Font NormalFont; private Size _charSize; + private long _arrayLength; + public HexView() { NormalFont = new Font("Courier New", 8); // Only support fixed width @@ -43,6 +45,8 @@ namespace BizHawk.Client.EmuHawk base.Dispose(disposing); } + #region Paint + protected override void OnPaint(PaintEventArgs e) { using (var LCK = Gdi.LockGraphics(e.Graphics)) @@ -61,5 +65,52 @@ namespace BizHawk.Client.EmuHawk Gdi.EndOffScreenBitmap(); } } + + #endregion + + #region Properties + + /// + /// Gets or sets the sets the virtual number of the length of the array to display + /// + [Category("Behavior")] + public long ArrayLength + { + get + { + return _arrayLength; + } + + set + { + _arrayLength = value; + RecalculateScrollBars(); + } + } + + #endregion + + #region Event Handlers + + [Category("Virtual")] + public event QueryIndexValueHandler QueryIndexValue; + + [Category("Virtual")] + public event QueryIndexBkColorHandler QueryIndexBgColor; + + [Category("Virtual")] + public event QueryIndexForeColorHandler QueryIndexForeColor; + + public delegate void QueryIndexValueHandler(int index, out long value); + + public delegate void QueryIndexBkColorHandler(int index, ref Color color); + + public delegate void QueryIndexForeColorHandler(int index, ref Color color); + + #endregion + + private void RecalculateScrollBars() + { + } } } diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.Designer.cs b/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.Designer.cs index e07734890e..d6074c0358 100644 --- a/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.Designer.cs @@ -31,7 +31,7 @@ this.HexMenu = new System.Windows.Forms.MenuStrip(); this.FileSubMenu = new System.Windows.Forms.ToolStripMenuItem(); this.ExitMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.hexView1 = new BizHawk.Client.EmuHawk.HexView(); + this.HexViewControl = new BizHawk.Client.EmuHawk.HexView(); this.HexMenu.SuspendLayout(); this.SuspendLayout(); // @@ -62,23 +62,24 @@ this.ExitMenuItem.Text = "E&xit"; this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); // - // hexView1 + // HexViewControl // - this.hexView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.HexViewControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.hexView1.Location = new System.Drawing.Point(12, 27); - this.hexView1.Name = "hexView1"; - this.hexView1.Size = new System.Drawing.Size(424, 231); - this.hexView1.TabIndex = 1; - this.hexView1.Text = "hexView1"; + this.HexViewControl.ArrayLength = 0; + this.HexViewControl.Location = new System.Drawing.Point(12, 27); + this.HexViewControl.Name = "HexViewControl"; + this.HexViewControl.Size = new System.Drawing.Size(424, 231); + this.HexViewControl.TabIndex = 1; + this.HexViewControl.Text = "hexView1"; // // NewHexEditor // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(448, 270); - this.Controls.Add(this.hexView1); + this.Controls.Add(this.HexViewControl); this.Controls.Add(this.HexMenu); this.MainMenuStrip = this.HexMenu; this.Name = "NewHexEditor"; @@ -96,6 +97,6 @@ private System.Windows.Forms.MenuStrip HexMenu; private System.Windows.Forms.ToolStripMenuItem FileSubMenu; private System.Windows.Forms.ToolStripMenuItem ExitMenuItem; - private HexView hexView1; + private HexView HexViewControl; } } \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.cs b/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.cs index 1bc295183b..dc34d45caa 100644 --- a/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.cs +++ b/BizHawk.Client.EmuHawk/tools/HexEditor/NewHexEditor.cs @@ -23,11 +23,15 @@ namespace BizHawk.Client.EmuHawk InitializeComponent(); Closing += (o, e) => SaveConfigSettings(); + + HexViewControl.QueryIndexValue += HexView_QueryIndexValue; + HexViewControl.QueryIndexForeColor += HexView_QueryIndexForeColor; + HexViewControl.QueryIndexBgColor += HexView_QueryIndexForeColor; } private void NewHexEditor_Load(object sender, EventArgs e) { - + HexViewControl.ArrayLength = MemoryDomains.MainMemory.Size; } private void SaveConfigSettings() @@ -63,6 +67,25 @@ namespace BizHawk.Client.EmuHawk #endregion + #region HexView Callbacks + + private void HexView_QueryIndexValue(int index, out long value) + { + value = MemoryDomains.MainMemory.PeekByte(index); + } + + private void HexView_QueryIndexBgColor(int index, ref Color color) + { + color = Color.White; + } + + private void HexView_QueryIndexForeColor(int index, ref Color color) + { + color = Color.Black; + } + + #endregion + #region Menu Items private void FileSubMenu_DropDownOpened(object sender, EventArgs e) From dc3a133d0bdc5127f7f3ad160bfc804daf1b70b4 Mon Sep 17 00:00:00 2001 From: feos Date: Sat, 26 Dec 2015 13:16:14 +0300 Subject: [PATCH 066/106] tastudio: fix upward drawing. --- BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index c42d350a1c..184a103660 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -206,6 +206,8 @@ namespace BizHawk.Client.EmuHawk double progress = (double)100d / (GlobalWin.MainForm.PauseOnFrame.Value - _seekStartFrame.Value) * (Global.Emulator.Frame - _seekStartFrame.Value); + if (progress < 0) + progress = 0; _seekBackgroundWorker.ReportProgress((int)progress); System.Threading.Thread.Sleep(1); } From a0f7caf6861c53e2a407356d6bce0ba44bf920e4 Mon Sep 17 00:00:00 2001 From: feos Date: Sun, 27 Dec 2015 23:25:29 +0300 Subject: [PATCH 067/106] jum 2 lua script: added bg and hitboxes --- output/Lua/Genesis/Earthworm Jim 2.lua | 347 +++++++++++++++++-------- 1 file changed, 238 insertions(+), 109 deletions(-) diff --git a/output/Lua/Genesis/Earthworm Jim 2.lua b/output/Lua/Genesis/Earthworm Jim 2.lua index 92ac38af97..884c2f2a23 100644 --- a/output/Lua/Genesis/Earthworm Jim 2.lua +++ b/output/Lua/Genesis/Earthworm Jim 2.lua @@ -1,29 +1,233 @@ -- feos, 2015 --== Globals ==-- -lastcfg = 0 -dcfg = 0 -rngcount = 0 -rngcolor = "white" -rngobject = 0 -rngroutine = 0 -MsgTime = 16 -MsgStep = 256/MsgTime -MsgTable = {} +local lastcfg = 0 +local dcfg = 0 +local rngcount = 0 +local rngobject = 0 +local rngroutine = 0 +local rngcolor = "white" +local MsgTime = 16 +local MsgStep = 256/MsgTime +local MsgTable = {} + +--== Slow stuff ==-- +local drawwalls = 1 +local drawfloor = 1 +local drawbg = 1 +local drawrng = 1 --== Shortcuts ==-- -local rb = memory.read_u8 -local rbs = memory.read_s8 -local rw = memory.read_u16_be -local rws = memory.read_s16_be -local rl = memory.read_u32_be -local box = gui.drawBox -local text = gui.pixelText -local line = gui.drawLine -local AND = bit.band -local SHIFT= bit.lshift +local rb = memory.read_u8 +local rbs = memory.read_s8 +local rw = memory.read_u16_be +local rws = memory.read_s16_be +local rl = memory.read_u32_be +local box = gui.drawBox +local text = gui.pixelText +local line = gui.drawLine +local AND = bit.band +local SHIFTL = bit.lshift +local SHIFTR = bit.rshift -function Configs() +event.onframestart(function() + rngcount = 0 + rngcolor = "white" + rngobject = 0 +end) + +event.onmemorywrite(function() + rngcount = rngcount+1 + rngcolor = "red" + rngobject = emu.getregister("M68K A1") + rngroutine = emu.getregister("M68K A0") + for i = 1, 30 do + if MsgTable[i] == nil then + MsgTable[i] = { + timer_ = MsgTime + emu.framecount(), + object_ = rngobject-0xff0000, + routine_ = rngroutine + } + break + end + end +end, 0xffa1d4) + +local function PostRngRoll(object,x,y) + if drawrng==0 then return end + for i = 1, #MsgTable do + if (MsgTable[i]) then + if object==MsgTable[i].object_ then + local color = 0x00ff0000+SHIFTL((MsgTable[i].timer_-emu.framecount())*MsgStep,24) + line(130,7*i+8,x,y,color) + text(120,7*i+8,string.format("%X",MsgTable[i].routine_),color) + end + if (MsgTable[i].timer_0 and id<130 and hbbase<0x300000) then + -- hitbox -- + local x1 = rb(hbbase+2,"MD CART") + local x2 = rb(hbbase+4,"MD CART") + local y1 = rb(hbbase+3,"MD CART") + local y2 = rb(hbbase+5,"MD CART") + if x1>0 and x2>0 and y1>0 and y2>0 then + if facing==-1 then + x1 = 256-x1 + x2 = 256-x2 + end + if d==-1 then + y1 = 256-y1 + y2 = 256-y2 + end + x1 = x+x1-of + x2 = x+x2-of + y1 = y+y1-of + y2 = y+y2-of + if id>=120 and id<=124 then color = 0xffff0000 end + box(x1,y1,x2,y2,color,0) + if hp>0 and id~=120 then text(x,y-2,hp,color) end + --text(x,y,string.format("%X",id),"yellow") + end + -- whip + if base==0xa20e then + local wx = rb(hbbase+6,"MD CART") + local wy = rb(hbbase+7,"MD CART") + local ww = rb(0xff0c) + local wh = rb(0xff0d) + if facing==-1 then wx = 256-wx end + if d ~= 0 then wy = 256-wy end + wx = wx+x-of + wy = wy+y-of + box(wx-ww,wy-wh,wx+ww,wy+wh,0xffff0000,0) + if invcount>0 then text(x,y,invcount) end + end + end + end + end +end + +local function GetFloor(x, y) + if drawfloor==0 then return {0,0} end + x = x*16+AND(camx,0xfff0) + y = y*16+AND(camy,0xfff0) + local d6 = SHIFTR(AND(y,0xfff0),3) + local a0 = rw(d6+0xb4e8) + local d0 = SHIFTR(x+0x10,4) + local d2 = AND(x,0xf) + local a1 = 0xb806+rw(0xfb9e) + local a2 = 0x273e1e + local d3 = SHIFTR(rw(a0+d0*2),1) + local d5 = SHIFTL(rb(a1+d3),4)+d2 + local newd5 = SHIFTL(rb(a1+d3),4)+d2+15 + local newd0 = AND(rb(a2+newd5,"MD CART"),0x1f) + return {AND(rb(a2+d5,"MD CART"),0x1f), newd0} +end + +local function GetWall(x, y) + if drawwalls==0 then return 0 end + x = x*16+AND(camx,0xfff0) + y = y*16+AND(camy,0xfff0) + if y<0 then return 0 end + local d6 = SHIFTR(AND(y+6,0xfff0),3) + local a0 = rw(d6+0xb4e6) + local d0 = rw(a0+SHIFTR(x,4)*2) + return rb(0xb808+SHIFTR(d0,1)) +end + +local function DrawBG() + if drawbg==0 then return end + for j=1,15 do + for i=1,21 do + local a0 = GetWall(i,j) + if a0>0 then + x1 = i*16-AND(camx,0xf)-16 + y1 = j*16-AND(camy,0xf)-16 + x2 = i*16-AND(camx,0xf)-1 + y2 = j*16-AND(camy,0xf)-1 + if a0==255 then -- normal + box(x1,y1,x2,y2,0xff00ffff,0x4400ffff) + elseif a0==228 then -- snot + box(x1,y1,x2,y2,0xff00ff00,0x4400ff00) + elseif a0==117 then -- right + box(x1,y1,x2,y2,0x4400ffff,0x4400ffff) + line(x2,y1,x2,y2,0xff00ffff) + elseif a0==116 then -- left + box(x1,y1,x2,y2,0x4400ffff,0x4400ffff) + line(x1,y1,x1,y2,0xff00ffff) + elseif a0==113 or a0==114 then -- grab corner + box(x1,y1,x2,y2,0x66ffff00,0x66ffff00) + elseif a0==60 or a0==61 + or a0>=74 and a0<=77 + or a0==58 or a0==59 then -- stomack + box(x1,y1,x2,y2,0xffff0000,0x44ff0000) + elseif a0==73 then -- stomack + box(x1,y1,x2,y2,0x44ff0000,0x44ff0000) + elseif a0==54 or a0==40 then -- kitchen + box(x1,y1,x2,y2,0xffff0000,0x44ff0000) + elseif a0==41 then -- kitchen + box(x1,y1,x2,y2,0x44ff0000,0x44ff0000) + else -- other occasional crap + box(x1,y1,x2,y2,0x66ffffff,0x66ffffff) + --text(x1,y1,a0) + end + end + + local d0 = GetFloor(i,j)[1] + if d0>0 then + local newd0 = GetFloor(i,j)[2] + if newd0>0 then + x1 = i*16-AND(camx,0xf) + y1 = j*16-AND(camy,0xf)+d0 + x2 = i*16-AND(camx,0xf)+15 + y2 = j*16-AND(camy,0xf)+newd0 + else + for k=-2,2 do + newd0 = GetFloor(i+1,j+k)[1] + if newd0>0 then + local add = 1 + if k==-2 then + k = 0 + add = -1 + elseif k==-1 then + add = 2 + elseif k==2 then + add = 1 + end + x1 = i*16-AND(camx,0xf) + y1 = j*16-AND(camy,0xf)+d0 + x2 = i*16-AND(camx,0xf)+16 + y2 = j*16-AND(camy,0xf)-newd0+k*16+add + --text(x1,y2,k,"red") + end + end + end + line(x1,y1,x2,y2,0xff00ff00) + end + end + end +end + +local function Configs() local rng = rl(0xa1d4) text(120,0,string.format("rng: %08X:%d",rng,rngcount),rngcolor) local cfg0 = rl(0xfc2a) @@ -59,7 +263,7 @@ function Configs() Seek() end -function Seek() +local function Seek() bytes = 0 waves = 0 steps = 0 @@ -93,21 +297,14 @@ function Seek() text(120,7,ret) end -function Clamp(v1,v2,v3) - if v1v3 then v1=v3 - end - return v1 -end - -function Bounce() +local function Bounce() if rb(0xa515)==0x60 then offset = 8 else offset = 0 end local counter = rb(0xfc87) local a0 = 0xfc88 - local d0 = SHIFT(rb(a0+counter),5)+offset + local d0 = SHIFTL(rb(a0+counter),5)+offset local vel = rw(0x25d482+d0, "MD CART") if vel == 0x200 then bounce = 3 elseif vel == 0x3e0 then bounce = 1 @@ -116,87 +313,19 @@ function Bounce() text(60,0,string.format("bounce: %X",bounce)) end -function Objects() - local base0 = 0xa2ea - for i=0,0x32 do - local base = base0+i*0x6e - local id = rb(base) - if id>0 and id~=0x82 then - local hp = rbs(base+1) - local x = rw(base+2)-4096-camx - local y = rw(base+4)-4096-camy - --x = Clamp(x,0,300) - --y = Clamp(y,8,210) - local dx = rws(base+0x18) - local dy = rws(base+0x1a) - local hitboxbase = rl(base+0x14) - if hitboxbase<0x300000 then - local x1 = rb(hitboxbase+2,"MD CART") - local x2 = rb(hitboxbase+4,"MD CART") - local y1 = rb(hitboxbase+3,"MD CART") - local y2 = rb(hitboxbase+5,"MD CART") - local of = 124 - if x1>0 and x2>0 and y1>0 and y2>0 then - x1 = x1+x-of - x2 = x2+x-of - y1 = y1+y-of - y2 = y2+y-of - box(x1,y1,x2,y2,0xff00ff00,0) - end - end - --text(x,y,string.format("%X",id),"yellow") - if hp~=0 then - text(x,y+6,hp,0xff00ff00) - end - PostRngRoll(base,x,y) - end - end -end - -function PostRngRoll(object,x,y) - for i = 1, #MsgTable do - if (MsgTable[i]) then - if object==MsgTable[i].object_ then - local color = 0x00ff0000+SHIFT((MsgTable[i].timer_-emu.framecount())*MsgStep,24) - line(130,7*i+8,x,y,color) - text(120,7*i+8,string.format("%X",MsgTable[i].routine_),color) - end - if (MsgTable[i].timer_ Date: Mon, 28 Dec 2015 19:15:53 +0300 Subject: [PATCH 068/106] jim 2 lua: small fixes. --- output/Lua/Genesis/Earthworm Jim 2.lua | 98 ++++++++++++++------------ 1 file changed, 52 insertions(+), 46 deletions(-) diff --git a/output/Lua/Genesis/Earthworm Jim 2.lua b/output/Lua/Genesis/Earthworm Jim 2.lua index 884c2f2a23..7d5d626a82 100644 --- a/output/Lua/Genesis/Earthworm Jim 2.lua +++ b/output/Lua/Genesis/Earthworm Jim 2.lua @@ -31,20 +31,20 @@ local SHIFTL = bit.lshift local SHIFTR = bit.rshift event.onframestart(function() - rngcount = 0 - rngcolor = "white" + rngcount = 0 rngobject = 0 + rngcolor = "white" end) event.onmemorywrite(function() - rngcount = rngcount+1 - rngcolor = "red" - rngobject = emu.getregister("M68K A1") + rngcount = rngcount+1 + rngcolor = "red" + rngobject = emu.getregister("M68K A1") rngroutine = emu.getregister("M68K A0") for i = 1, 30 do if MsgTable[i] == nil then MsgTable[i] = { - timer_ = MsgTime + emu.framecount(), + timer_ = MsgTime + emu.framecount(), object_ = rngobject-0xff0000, routine_ = rngroutine } @@ -137,7 +137,9 @@ local function GetFloor(x, y) local a1 = 0xb806+rw(0xfb9e) local a2 = 0x273e1e local d3 = SHIFTR(rw(a0+d0*2),1) - local d5 = SHIFTL(rb(a1+d3),4)+d2 + local temp = a1+d3 + if temp>0xffff then return {0,0} end + local d5 = SHIFTL(rb(temp),4)+d2 local newd5 = SHIFTL(rb(a1+d3),4)+d2+15 local newd0 = AND(rb(a2+newd5,"MD CART"),0x1f) return {AND(rb(a2+d5,"MD CART"),0x1f), newd0} @@ -150,8 +152,12 @@ local function GetWall(x, y) if y<0 then return 0 end local d6 = SHIFTR(AND(y+6,0xfff0),3) local a0 = rw(d6+0xb4e6) - local d0 = rw(a0+SHIFTR(x,4)*2) - return rb(0xb808+SHIFTR(d0,1)) + local temp = a0+SHIFTR(x,4)*2 + if temp>0xffff then return 0 end + local d0 = rw(temp) + temp = 0xb808+SHIFTR(d0,1) + if temp>0xffff then return 0 end + return rb(temp) end local function DrawBG() @@ -227,42 +233,6 @@ local function DrawBG() end end -local function Configs() - local rng = rl(0xa1d4) - text(120,0,string.format("rng: %08X:%d",rng,rngcount),rngcolor) - local cfg0 = rl(0xfc2a) - if cfg0==0 then return end - local cfg1 = rl(0xfc9a) - text(220,0,string.format("cfg old: %X\ncfg step: %d",cfg1,dcfg)) - if lastcfg~=cfg0 then dcfg = cfg0-lastcfg end - lastcfg = cfg0 - local h = 7 - for i=0,20 do - local config = rl(0xfc2a)+i - local action = rb(config,"MD CART") - local newaction = memory.readbyte(config+1,"MD CART") - if action==0x62 - or (action==0xe and newaction==8) - or action==8 - or action==3 then color = "red" - elseif action>=0x63 and action<=0x64 then color = "orange" - elseif action>=0x30 and action<=0x32 then color = 0xff00ff00 - elseif action>=0x65 and action<=0x70 then color = 0xff00cc00 - elseif action==0x7a then color = "white" - else color = 0xffaaaaaa - end - text(270,i*h+42,string.format("%X:%02X",config,action),color) - if i>0 - and action==0x7a - or action==0x2b - or action==0x2d - then break - end - end - Bounce() - Seek() -end - local function Seek() bytes = 0 waves = 0 @@ -313,6 +283,42 @@ local function Bounce() text(60,0,string.format("bounce: %X",bounce)) end +local function Configs() + local rng = rl(0xa1d4) + text(120,0,string.format("rng: %08X:%d",rng,rngcount),rngcolor) + local cfg0 = rl(0xfc2a) + if cfg0==0 then return end + local cfg1 = rl(0xfc9a) + text(220,0,string.format("cfg old: %X\ncfg step: %d",cfg1,dcfg)) + if lastcfg~=cfg0 then dcfg = cfg0-lastcfg end + lastcfg = cfg0 + local h = 7 + for i=0,20 do + local config = rl(0xfc2a)+i + local action = rb(config,"MD CART") + local newaction = memory.readbyte(config+1,"MD CART") + if action==0x62 + or (action==0xe and newaction==8) + or action==8 + or action==3 then color = "red" + elseif action>=0x63 and action<=0x64 then color = "orange" + elseif action>=0x30 and action<=0x32 then color = 0xff00ff00 + elseif action>=0x65 and action<=0x70 then color = 0xff00cc00 + elseif action==0x7a then color = "white" + else color = 0xffaaaaaa + end + text(270,i*h+42,string.format("%X:%02X",config,action),color) + if i>0 + and action==0x7a + or action==0x2b + or action==0x2d + then break + end + end + Bounce() + Seek() +end + while true do camx = rw(0xa172) camy = rw(0xa174) @@ -321,7 +327,7 @@ while true do absx = rw(0xa17e)-0x1000 absy = rw(0xa180)-0x1000 invcount = rb(0xfbd6) - if rb(0xa313)==4 then + if rb(0xa313)==4 and rb(0xa317)~=2 then DrawBG() Objects(0xa2ea, 0x23) Objects(0xa20e, 0) From 2876f63dd8caabea6a1b305438f0d091f8779b89 Mon Sep 17 00:00:00 2001 From: Hathor86 Date: Wed, 30 Dec 2015 11:00:56 +0100 Subject: [PATCH 069/106] ExternalTools: Allow several tools running simultaneously --- .../Attributes/ExternalToolAttribute.cs | 2 +- BizHawk.Client.EmuHawk/tools/ToolManager.cs | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/BizHawk.Client.ApiHawk/Attributes/ExternalToolAttribute.cs b/BizHawk.Client.ApiHawk/Attributes/ExternalToolAttribute.cs index 2285079810..260eaf71c7 100644 --- a/BizHawk.Client.ApiHawk/Attributes/ExternalToolAttribute.cs +++ b/BizHawk.Client.ApiHawk/Attributes/ExternalToolAttribute.cs @@ -7,7 +7,7 @@ namespace BizHawk.Client.ApiHawk /// This attribute helps BizHawk to handle ExternalTools ///
    [AttributeUsage(AttributeTargets.Assembly)] - public class BizHawkExternalToolAttribute : Attribute + public sealed class BizHawkExternalToolAttribute : Attribute { #region Fields diff --git a/BizHawk.Client.EmuHawk/tools/ToolManager.cs b/BizHawk.Client.EmuHawk/tools/ToolManager.cs index 1a15873f24..3bc23bcfb2 100644 --- a/BizHawk.Client.EmuHawk/tools/ToolManager.cs +++ b/BizHawk.Client.EmuHawk/tools/ToolManager.cs @@ -84,12 +84,22 @@ namespace BizHawk.Client.EmuHawk public T Load(string toolPath, bool focus = true) where T : class, IToolForm { - if (!IsAvailable() && typeof(T) != typeof(IExternalToolForm)) + bool isExternal = typeof(T) == typeof(IExternalToolForm); + + if (!IsAvailable() && !isExternal) { return null; } - T existingTool = (T)_tools.FirstOrDefault(x => x is T); + T existingTool; + if (isExternal) + { + existingTool = (T)_tools.FirstOrDefault(x => x is T && x.GetType().Assembly.Location == toolPath); + } + else + { + existingTool = (T)_tools.FirstOrDefault(x => x is T); + } if (existingTool != null) { @@ -446,7 +456,7 @@ namespace BizHawk.Client.EmuHawk restartTool = true; if (tool is LuaConsole && ((LuaConsole)tool).IsRebootingCore) restartTool = false; - if(restartTool) + if (restartTool) { tool.Restart(); } From 1b3c05d6eafa6bfc9f996bac030bd2ac0d6313dc Mon Sep 17 00:00:00 2001 From: hegyak Date: Thu, 31 Dec 2015 06:13:07 -0800 Subject: [PATCH 070/106] =?UTF-8?q?Super=20Ultra=20Mega=20HD=20BizHawk=20G?= =?UTF-8?q?ameShark/Action=20Replay/Code=20Breaker=20Final=20Hyper=20Editi?= =?UTF-8?q?on=20Arcade=20Remix=20EX=20+=20=CE=B1=20GBA=20Code=20detection?= =?UTF-8?q?=20method.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BizHawk.Client.EmuHawk/tools/GameShark.cs | 2090 +++++++++++++++++++-- 1 file changed, 1946 insertions(+), 144 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/GameShark.cs b/BizHawk.Client.EmuHawk/tools/GameShark.cs index 168e563d32..b7f7b2545c 100644 --- a/BizHawk.Client.EmuHawk/tools/GameShark.cs +++ b/BizHawk.Client.EmuHawk/tools/GameShark.cs @@ -10,7 +10,7 @@ namespace BizHawk.Client.EmuHawk //TODO: //Add Support/Handling for The Following Systems and Devices: - //GBA: Action Replay MAX, Code Breaker (That uses unique Encryption keys) + //GBA: Code Breaker (That uses unique Encryption keys) //NES: Pro Action Rocky (When someone asks) //SNES: GoldFinger (Action Replay II) Support? @@ -381,166 +381,1969 @@ namespace BizHawk.Client.EmuHawk private string firstSlide; private string secondSlide; Boolean Slider = false; - + //blnGameShark means, "This is a Game Shark/Action Replay (Not MAX) code." + Boolean blnGameShark = false; + //blnActionReplayMax means "This is an Action Replay MAX code." + Boolean blnActionReplayMax = false; + //blnCodeBreaker means "This is a CodeBreaker code." + Boolean blnCodeBreaker = false; + //blnUnhandled means "BizHawk can't do this one or the tool can't." + Boolean blnUnhandled = false; + //blnUnneeded means "You don't need this code." + Boolean blnUnneeded = false; private void GBA() { - Boolean blnNoCode = true; - //TODO: - //Clean the detection methods and improve/optimize code conversion. - testo = null; - //Slider is special code that allows us to break out and do Slide Codes. It needs work - //TODO: - //Make Slide Code Handling suck less. - //TODO: - //Determine how to make Action Replay Max Code detection a thing? - //DEADFACE means, "NEW Decryption Keys ahead." + bool blnNoCode = true; + //Super Ultra Mega HD BizHawk GameShark/Action Replay/Code Breaker Final Hyper Edition Arcade Remix EX + α GBA Code detection method. + //Seriously, it's that complex. - if (txtCheat.Text.Contains("DEADFACE") == true) + //Check Game Shark/Action Replay (Not Max) Codes + if (txtCheat.Text.Length == 17 && txtCheat.Text.IndexOf(" ") == 8) { - MessageBox.Show("Sorry, this tool does not support DEADFACE codes.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - return; - } + bool blnNoCode = true; + //Super Ultra Mega HD BizHawk GameShark/Action Replay/Code Breaker Final Hyper Edition Arcade Remix EX + α GBA Code detection method. + //Seriously, it's that complex. - if (Slider == true) - { - secondSlide = txtCheat.Text; - GBASlide(); - } - else if (Slider == false) - { - //We have a Game Shark or Action Replay? + //Check Game Shark/Action Replay (Not Max) Codes if (txtCheat.Text.Length == 17 && txtCheat.Text.IndexOf(" ") == 8) { - parseString = txtCheat.Text; + //These are for the Decyption Values for GameShark and Action Replay MAX. UInt32 op1 = 0; UInt32 op2 = 0; UInt32 sum = 0xC6EF3720; - op1 = UInt32.Parse(parseString.Remove(8, 9), NumberStyles.HexNumber); - op2 = UInt32.Parse(parseString.Remove(0, 9), NumberStyles.HexNumber); - //Tiny Encryption Algorithm - int i; - for (i = 0; i < 32; ++i) + + //Let's get the stuff seperated. + RAMAddress = txtCheat.Text.Remove(8, 9); + RAMValue = txtCheat.Text.Remove(0, 9); + //Let's see if this code matches the GameShark. + GBAGameShark(); + //We got an Un-Needed code. + if (blnUnneeded == true) { - op2 -= ((op1 << 4) + GBAGameSharkSeeds[2]) ^ (op1 + sum) ^ ((op1 >> 5) + GBAGameSharkSeeds[3]); - op1 -= ((op2 << 4) + GBAGameSharkSeeds[0]) ^ (op2 + sum) ^ ((op2 >> 5) + GBAGameSharkSeeds[1]); - sum -= 0x9E3779B9; - } - //op1 has the Address - //op2 has the Value - //Sum, is pointless? - RAMAddress = string.Format("{0:X8}", op1); - RAMAddress = RAMAddress.Remove(0, 1); - RAMValue = string.Format("{0:X8}", op2); - if (RAMAddress.StartsWith("D4")) - { - MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } - parseString = RAMValue; - //MessageBox.Show(parseString); - parseString = RAMValue.Remove(4, 4); - //Is it a Word or Double Word? - if (parseString == "0000") + //We got an Unhandled code. + else if (blnUnhandled == true) { - //We assume. Why not? - byteSize = 16; - RAMValue = RAMValue.Remove(0, 4); - //MessageBox.Show(RAMValue); - } - else if (parseString != "0000") - { - byteSize = 32; - } - blnNoCode = false; - } - } - if (txtCheat.Text.Length == 12) - { - MessageBox.Show("Encrypted Codebreaker/GameShark SP/Xploder codes are not supported by this tool.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - return; - } - if (txtCheat.Text.IndexOf(" ") != 8 && txtCheat.Text.Length != 12) - { - MessageBox.Show("ALL Codes for Action Replay, Action Replay MAX, Codebreaker, GameShark Advance, GameShark SP, Xploder have a Space after the 8th character.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } - //Action Replay MAX Code stuff. Not detected, yet. - //TODO: Detect Action Replay MAX codes. - //DEADFACE is NOT to be used. It's a special code. - if (txtCheat.Text == "DEADFACE") - { - return; - parseString = txtCheat.Text; - UInt32 op1 = 0; - UInt32 op2 = 0; - UInt32 sum = 0xC6EF3720; - op1 = UInt32.Parse(parseString.Remove(8, 9), NumberStyles.HexNumber); - op2 = UInt32.Parse(parseString.Remove(0, 9), NumberStyles.HexNumber); - //Tiny Encryption Algorithm - int i; - for (i = 0; i < 32; ++i) - { - op2 -= ((op1 << 4) + GBAProActionReplaySeeds[2]) ^ (op1 + sum) ^ ((op1 >> 5) + GBAProActionReplaySeeds[3]); - op1 -= ((op2 << 4) + GBAProActionReplaySeeds[0]) ^ (op2 + sum) ^ ((op2 >> 5) + GBAProActionReplaySeeds[1]); - sum -= 0x9E3779B9; - } - RAMAddress = string.Format("{0:X8}", op1); - RAMAddress = RAMAddress.Remove(0, 1); - RAMValue = string.Format("{0:X8}", op2); - MessageBox.Show(RAMAddress); - MessageBox.Show(RAMValue); - } - //Decrypted Codebreaker, GameShark SP, Xploder - //Encypted Codebreaker, GameShark SP, Xploder is not handled, yet. - if (txtCheat.Text.Length == 13 && txtCheat.Text.IndexOf(" ") == 8) - { - //Get the first byte to deterime what kind of code it is. - testo = txtCheat.Text.Remove(1, 12); - switch(testo) - { - case "3": - //8-Bit - byteSize = 8; - break; - case "8": - case "E": - //16-Bit - byteSize = 16; - break; - default: - //What code is this?! It must be bad? - MessageBox.Show("The code you entered is not recognized as a decrypted Codebreaker, GameShark SP or Xploder Code.", "Unrecognized Code", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; + } + if (blnGameShark == false) + { + //We don't have a GameShark code, or we have an encrypted code? + //Further testing required. + //GameShark Decryption Method + parseString = txtCheat.Text; + + op1 = UInt32.Parse(parseString.Remove(8, 9), NumberStyles.HexNumber); + op2 = UInt32.Parse(parseString.Remove(0, 9), NumberStyles.HexNumber); + //Tiny Encryption Algorithm + int i; + for (i = 0; i < 32; ++i) + { + op2 -= ((op1 << 4) + GBAGameSharkSeeds[2]) ^ (op1 + sum) ^ ((op1 >> 5) + GBAGameSharkSeeds[3]); + op1 -= ((op2 << 4) + GBAGameSharkSeeds[0]) ^ (op2 + sum) ^ ((op2 >> 5) + GBAGameSharkSeeds[1]); + sum -= 0x9E3779B9; + } + //op1 has the Address + //op2 has the Value + //Sum, is pointless? + RAMAddress = string.Format("{0:X8}", op1); + RAMValue = string.Format("{0:X8}", op2); + GBAGameShark(); + } + //We don't do Else If after the if here because it won't allow us to verify the second code check. + if (blnGameShark == true) + { + //We got a Valid GameShark Code. Hopefully. + //AddGBA(); + return; + } + + //We are going to assume that we got an Action Replay MAX code, or at least try to guess that we did. + GBAActionReplay(); + + if (blnActionReplayMax == false) + { + //Action Replay Max decryption Method + parseString = txtCheat.Text; + op1 = 0; + op2 = 0; + sum = 0xC6EF3720; + op1 = UInt32.Parse(parseString.Remove(8, 9), NumberStyles.HexNumber); + op2 = UInt32.Parse(parseString.Remove(0, 9), NumberStyles.HexNumber); + //Tiny Encryption Algorithm + int j; + for (j = 0; j < 32; ++j) + { + op2 -= ((op1 << 4) + GBAProActionReplaySeeds[2]) ^ (op1 + sum) ^ ((op1 >> 5) + GBAProActionReplaySeeds[3]); + op1 -= ((op2 << 4) + GBAProActionReplaySeeds[0]) ^ (op2 + sum) ^ ((op2 >> 5) + GBAProActionReplaySeeds[1]); + sum -= 0x9E3779B9; + } + //op1 has the Address + //op2 has the Value + //Sum, is pointless? + RAMAddress = string.Format("{0:X8}", op1); + RAMValue = string.Format("{0:X8}", op2); + MessageBox.Show(RAMAddress); + MessageBox.Show(RAMValue); + GBAActionReplay(); + } + MessageBox.Show(blnActionReplayMax.ToString()); + //We don't do Else If after the if here because it won't allow us to verify the second code check. + if (blnActionReplayMax == true) + { + //We got a Valid Action Replay Max Code. Hopefully. + //AddGBA(); + MessageBox.Show("ARM"); + return; + } } - blnNoCode = false; - //Now let's do some legit crazy - parseString = txtCheat.Text.Remove(0, 1); - RAMAddress = parseString.Remove(7, 5); - RAMValue = parseString.Remove(0, 8); - } - //We have a code - if (blnNoCode == false) - { - if (byteSize == 8) + //Detect CodeBreaker/GameShark SP/Xploder codes + if (txtCheat.Text.Length == 12 && txtCheat.Text.IndexOf(" ") != 8) { - var watch = Watch.GenerateWatch(MemoryDomains["System Bus"], long.Parse(RAMAddress, NumberStyles.HexNumber), WatchSize.Byte, Client.Common.DisplayType.Hex, false, txtDescription.Text); - Global.CheatList.Add(new Cheat(watch, int.Parse(RAMValue, NumberStyles.HexNumber))); + MessageBox.Show("Codebreaker/GameShark SP/Xploder codes are not supported by this tool.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + return; + + //WARNING!! + //This code is NOT ready yet. + //The GameShark Key + //09F4FBBD + //9681884A + //352027E9 + //F3DEE5A7 + + //The CodeBreaker Key, for Advance Wars 2 (USA) + //911B9B36 + //BC7C46FC + //CE58668D + //5C453661 + //Four sets, and this guy... + //9D6E + + //Sample Code + //Encyped: 6C2A1F51C2C0 + //Decrypted: 82028048 FFFFFFFF + GBACodeBreaker(); + + if (blnCodeBreaker == false) + { + parseString = txtCheat.Text; + UInt32 op1 = 0; + UInt32 op2 = 0; + UInt32 sum = 0xC6EF3720; + string test1; + string test2; + test1 = parseString.Remove(5, 6); + test2 = parseString.Remove(0, 6); + MessageBox.Show(test1.ToString()); + MessageBox.Show(test2.ToString()); + op1 = UInt32.Parse(parseString.Remove(5, 6), NumberStyles.HexNumber); + op2 = UInt32.Parse(parseString.Remove(0, 6), NumberStyles.HexNumber); + + //Tiny Encryption Algorithm + int i; + for (i = 0; i < 32; ++i) + { + op2 -= ((op1 << 4) + GBAGameSharkSeeds[2]) ^ (op1 + sum) ^ ((op1 >> 5) + GBAGameSharkSeeds[3]); + op1 -= ((op2 << 4) + GBAGameSharkSeeds[0]) ^ (op2 + sum) ^ ((op2 >> 5) + GBAGameSharkSeeds[1]); + sum -= 0x9E3779B9; + } + //op1 has the Address + //op2 has the Value + //Sum, is pointless? + RAMAddress = string.Format("{0:X8}", op1); + //RAMAddress = RAMAddress.Remove(0, 1); + RAMValue = string.Format("{0:X8}", op2); + // && RAMAddress[6] == '0' + } + + if (blnCodeBreaker == true) + { + //We got a Valid Code Breaker Code. Hopefully. + //AddGBA(); + return; + } + + if (txtCheat.Text.IndexOf(" ") != 8 && txtCheat.Text.Length != 12) + { + MessageBox.Show("ALL Codes for Action Replay, Action Replay MAX, Codebreaker, GameShark Advance, GameShark SP, Xploder have a Space after the 8th character.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + //We have a code + if (blnNoCode == false) + { + } + } - else if (byteSize == 16) - { - var watch = Watch.GenerateWatch(MemoryDomains["System Bus"], long.Parse(RAMAddress, NumberStyles.HexNumber), WatchSize.Word, Client.Common.DisplayType.Hex, false, txtDescription.Text); - Global.CheatList.Add(new Cheat(watch, int.Parse(RAMValue, NumberStyles.HexNumber))); - } - else if (byteSize == 32) - { - var watch = Watch.GenerateWatch(MemoryDomains["System Bus"], long.Parse(RAMAddress, NumberStyles.HexNumber), WatchSize.DWord, Client.Common.DisplayType.Hex, false, txtDescription.Text); - Global.CheatList.Add(new Cheat(watch, int.Parse(RAMValue, NumberStyles.HexNumber))); - } - //Clear old Inputs - txtCheat.Clear(); - txtDescription.Clear(); } } + public void GBAGameShark() + { + //This is for the Game Shark/Action Replay (Not Max) + if (RAMAddress.StartsWith("0") == true && RAMValue.StartsWith("000000") == true) + { + //0aaaaaaaa 000000xx 1 Byte Constant Write + //1 Byte Size Value + byteSize = 8; + blnGameShark = true; + } + else if (RAMAddress.StartsWith("1") == true && RAMValue.StartsWith("0000") == true) + { + //1aaaaaaaa 0000xxxx 2 Byte Constant Write + //2 Byte Size Value + byteSize = 16; + blnGameShark = true; + } + else if (RAMAddress.StartsWith("2") == true) + { + //2aaaaaaaa xxxxxxxx 4 Byte Constant Write + //4 Byte Size Value + byteSize = 32; + blnGameShark = true; + } + else if (RAMAddress.StartsWith("3000") == true) + { + //3000cccc xxxxxxxx aaaaaaaa 4 Byte Group Write What? Is this like a Slide Code + //4 Byte Size Value + //Sample + //30000004 01010101 03001FF0 03001FF4 03001FF8 00000000 + //write 01010101 to 3 addresses - 01010101, 03001FF0, 03001FF4, and 03001FF8. '00000000' is used for padding, to ensure the last code encrypts correctly. + //Note: The device improperly writes the Value, to the address. We should ignore that. + MessageBox.Show("Sorry, this tool does not support 3000XXXX codes.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("6") == true && RAMValue.StartsWith("0000") == true) + { + //6aaaaaaa 0000xxxx 2 Byte ROM patch + byteSize = 16; + blnGameShark = true; + } + else if (RAMAddress.StartsWith("6") == true && RAMValue.StartsWith("1000") == true) + { + //6aaaaaaa 1000xxxx 4 Byte ROM patch + byteSize = 32; + blnGameShark = true; + } + else if (RAMAddress.StartsWith("6") == true && RAMValue.StartsWith("2000") == true) + { + //6aaaaaaa 2000xxxx 8 Byte ROM patch + byteSize = 32; + blnGameShark = true; + } + else if (RAMAddress.StartsWith("8") == true && RAMAddress[2] == '1' == true && RAMValue.StartsWith("00") == true) + { + //8a1aaaaa 000000xx 1 Byte Write when GS Button Pushed + //Treat as Constant Write. + byteSize = 8; + blnGameShark = true; + } + else if (RAMAddress.StartsWith("8") == true && RAMAddress[2] == '2' == true && RAMValue.StartsWith("00") == true) + { + //8a2aaaaa 000000xx 2 Byte Write when GS Button Pushed + //Treat as Constant Write. + byteSize = 16; + blnGameShark = true; + } + else if (RAMAddress.StartsWith("80F00000") == true) + { + //80F00000 0000xxxx Slow down when GS Button Pushed. + MessageBox.Show("The code you entered is not needed by Bizhawk.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnneeded = true; + return; + } + else if (RAMAddress.StartsWith("D") == true && RAMAddress.StartsWith("DEADFACE") == false && RAMValue.StartsWith("0000") == true) + { + //Daaaaaaa 0000xxxx 2 Byte If Equal, Activate next code + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("E0") == true) + { + //E0zzxxxx aaaaaaaa 2 Byte if Equal, Activate ZZ Lines. + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("F") == true && RAMValue.StartsWith("0000") == true) + { + //Faaaaaaa 0000xxxx Hook Routine. Probably not necessary? + MessageBox.Show("The code you entered is not needed by Bizhawk.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnneeded = true; + return; + } + else if (RAMAddress.StartsWith("001DC0DE") == true) + { + //xxxxxxxx 001DC0DE Auto-Detect Game. Useless for Us. + MessageBox.Show("The code you entered is not needed by Bizhawk.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnneeded = true; + return; + } + else if (RAMAddress.StartsWith("DEADFACE") == true) + { + //DEADFACE 0000xxxx Change Encryption Seeds. Unsure how this works. + MessageBox.Show("Sorry, this tool does not support DEADFACE codes.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + blnUnhandled = true; + return; + } + else + { + blnGameShark = false; + } + //It's not a GameShark/Action Replay (Not MAX) code, so we say False. + + return; + } + public void GBAActionReplay() + { + //These checks are done on the DECYPTED code, not the Encrypted one. + //ARM Code Types + // 1) Normal RAM Write Codes + if (RAMAddress.StartsWith("002") == true) + { + // 0022 Should be Changed to 020 + // Fill area (XXXXXXXX) to (XXXXXXXX+YYYYYY) with Byte ZZ. + // XXXXXXXX + // YYYYYYZZ + //This corrects the value + RAMAddress = RAMAddress.Replace("002", "020"); + blnActionReplayMax = true; + byteSize = 8; + } + else if (RAMAddress.StartsWith("022") == true) + { + // 0222 Should be Changed to 020 + // Fill area (XXXXXXXX) to (XXXXXXXX+YYYY*2) with Halfword ZZZZ. + // XXXXXXXX + // YYYYZZZZ + //This corrects the value + RAMAddress = RAMAddress.Replace("022", "020"); + blnActionReplayMax = true; + byteSize = 16; + } + + else if (RAMAddress.StartsWith("042") == true) + { + // 0422 Should be Changed to 020 + // Write the Word ZZZZZZZZ to address XXXXXXXX. + // XXXXXXXX + // ZZZZZZZZ + //This corrects the value + RAMAddress = RAMAddress.Replace("042", "020"); + blnActionReplayMax = true; + byteSize = 32; + } + // 2) Pointer RAM Write Codes + else if (RAMAddress.StartsWith("402") == true) + { + // 4022 Should be Changed to 020 + // Writes Byte ZZ to ([the address kept in XXXXXXXX]+[YYYYYY]). + // XXXXXXXX + // YYYYYYZZ + //This corrects the value + RAMAddress = RAMAddress.Replace("402", "020"); + blnActionReplayMax = true; + byteSize = 8; + } + else if (RAMAddress.StartsWith("420") == true) + { + // 4202 Should be Changed to 020 + // Writes Halfword ZZZZ ([the address kept in XXXXXXXX]+[YYYY*2]). + // XXXXXXXX + // YYYYZZZZ + //This corrects the value + RAMAddress = RAMAddress.Replace("420", "020"); + blnActionReplayMax = true; + byteSize = 16; + } + else if (RAMAddress.StartsWith("422") == true) + { + // 442 Should be Changed to 020 + // Writes the Word ZZZZZZZZ to [the address kept in XXXXXXXX]. + // XXXXXXXX + // ZZZZZZZZ + RAMAddress = RAMAddress.Replace("422", "020"); + blnActionReplayMax = true; + byteSize = 32; + } + // 3) Add Codes + else if (RAMAddress.StartsWith("802") == true) + { + // 802 Should be Changed to 020 + // Add the Byte ZZ to the Byte stored in XXXXXXXX. + // XXXXXXXX + // 000000ZZ + //RAMAddress = RAMAddress.Replace("8022", "020"); + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("822") == true & RAMAddress.StartsWith("8222") == false) + { + // 822 Should be Changed to 020 + // Add the Halfword ZZZZ to the Halfword stored in XXXXXXXX. + // XXXXXXXX + // 0000ZZZZ + //RAMAddress = RAMAddress.Replace("822", "020"); + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("842") == true) + { + //NOTE! + //This is duplicated below with different function results. + // 842 Should be Changed to 020 + // Add the Word ZZZZ to the Halfword stored in XXXXXXXX. + // XXXXXXXX + // ZZZZZZZZ + //RAMAddress = RAMAddress.Replace("842", "020"); + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + + // 4) Write to $4000000 (IO Registers!) + else if (RAMAddress.StartsWith("C6000130") == true) + { + // C6000130 Should be Changed to 00000130 + // Write the Halfword ZZZZ to the address $4XXXXXX + // 00XXXXXX + // 0000ZZZZ + RAMAddress = RAMAddress.Replace("C6000130", "00000130"); + blnActionReplayMax = true; + byteSize = 16; + } + else if (RAMAddress.StartsWith("C7000130") == true) + { + // C7000130 Should be Changed to 00000130 + // Write the Word ZZZZZZZZ to the address $4XXXXXX + // 00XXXXXX + // ZZZZZZZZ + RAMAddress = RAMAddress.Replace("C7000130", "00000130"); + blnActionReplayMax = true; + byteSize = 32; + } + // 5) If Equal Code (= Joker Code) + else if (RAMAddress.StartsWith("082") == true) + { + // 082 Should be Changed to 020 + // If Byte at XXXXXXXX = ZZ then execute next code. + // XXXXXXXX + // 000000ZZ + RAMAddress = RAMAddress.Replace("082", "020"); + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("482") == true) + { + // 482 Should be Changed to 020 + // If Byte at XXXXXXXX = ZZ then execute next 2 codes. + // XXXXXXXX + // 000000ZZ + RAMAddress = RAMAddress.Replace("482", "020"); + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("882") == true) + { + // 882 Should be Changed to 020 + // If Byte at XXXXXXXX = ZZ execute all the codes below this one in the same row (else execute none of the codes below). + // XXXXXXXX + // 000000ZZ + RAMAddress = RAMAddress.Replace("882", "020"); + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("C82") == true) + { + // C82 Should be Changed to 020 + // While Byte at XXXXXXXX <> ZZ turn off all codes. + // XXXXXXXX + // 000000ZZ + RAMAddress = RAMAddress.Replace("C82", "020"); + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("0A2") == true) + { + // 0A2 Should be Changed to 020 + // If Halfword at XXXXXXXX = ZZZZ then execute next code. + // XXXXXXXX + // 0000ZZZZ + RAMAddress = RAMAddress.Replace("0A2", "020"); + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("4A2") == true) + { + // 4A2 Should be Changed to 020 + // If Halfword at XXXXXXXX = ZZZZ then execute next 2 codes. + // XXXXXXXX + // 0000ZZZZ + RAMAddress = RAMAddress.Replace("4A2", "020"); + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("8A2") == true) + { + // 8A2 Should be Changed to 020 + // If Halfword at XXXXXXXX = ZZZZ execute all the codes below this one in the same row (else execute none of the codes below). + // XXXXXXXX + // 0000ZZZZ + RAMAddress = RAMAddress.Replace("8A2", "020"); + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("CA2") == true) + { + // CA2 Should be Changed to 020 + // While Halfword at XXXXXXXX <> ZZZZ turn off all codes. + // XXXXXXXX + // 0000ZZZZ + RAMAddress = RAMAddress.Replace("CA2", "020"); + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("0C2") == true) + { + // 0C2 Should be Changed to 020 + // If Word at XXXXXXXX = ZZZZZZZZ then execute next code. + // XXXXXXXX + // ZZZZZZZZ + RAMAddress = RAMAddress.Replace("0C2", "020"); + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("4C2") == true) + { + // 4C2 Should be Changed to 020 + // If Word at XXXXXXXX = ZZZZZZZZ then execute next 2 codes. + // XXXXXXXX + // ZZZZZZZZ + RAMAddress = RAMAddress.Replace("4C2", "020"); + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("8C2") == true) + { + // 8C2 Should be Changed to 020 + // If Word at XXXXXXXX = ZZZZZZZZ execute all the codes below this one in the same row (else execute none of the codes below). + // XXXXXXXX + // ZZZZZZZZ + RAMAddress = RAMAddress.Replace("8C2", "020"); + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("CC2") == true) + { + // CC2 Should be Changed to 020 + // While Word at XXXXXXXX <> ZZZZZZZZ turn off all codes. + // XXXXXXXX + // ZZZZZZZZ + RAMAddress = RAMAddress.Replace("CC2", "020"); + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + // 6) If Different Code + else if (RAMAddress.StartsWith("102") == true) + { + // 102 Should be Changed to 020 + // If Byte at XXXXXXXX <> ZZ then execute next code. + // XXXXXXXX + // 000000ZZ + RAMAddress = RAMAddress.Replace("102", "020"); + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("502") == true) + { + // 502 Should be Changed to 020 + // If Byte at XXXXXXXX <> ZZ then execute next 2 codes. + // XXXXXXXX + // 000000ZZ + RAMAddress = RAMAddress.Replace("502", "020"); + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("902") == true) + { + // 902 Should be Changed to 020 + // If Byte at XXXXXXXX <> ZZ execute all the codes below this one in the same row (else execute none of the codes below). + // XXXXXXXX + // 000000ZZ + RAMAddress = RAMAddress.Replace("902", "020"); + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("D02") == true) + { + // D02 Should be Changed to 020 + // While Byte at XXXXXXXX = ZZ turn off all codes. + // XXXXXXXX + // 000000ZZ + RAMAddress = RAMAddress.Replace("D02", "020"); + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("122") == true) + { + // 122 Should be Changed to 020 + // If Halfword at XXXXXXXX <> ZZZZ then execute next code. + // XXXXXXXX + // 0000ZZZZ + RAMAddress = RAMAddress.Replace("122", "020"); + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("522") == true) + { + // 522 Should be Changed to 020 + // If Halfword at XXXXXXXX <> ZZZZ then execute next 2 codes. + // XXXXXXXX + // 0000ZZZZ + RAMAddress = RAMAddress.Replace("522", "020"); + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("922") == true) + { + // 922 Should be Changed to 020 + // If Halfword at XXXXXXXX <> ZZZZ disable all the codes below this one. + // XXXXXXXX + // 0000ZZZZ + RAMAddress = RAMAddress.Replace("922", "020"); + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("D22") == true) + { + // D22 Should be Changed to 020 + // While Halfword at XXXXXXXX = ZZZZ turn off all codes. + // XXXXXXXX + // 0000ZZZZ + RAMAddress = RAMAddress.Replace("D22", "020"); + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("142") == true) + { + // 142 Should be Changed to 020 + // If Word at XXXXXXXX <> ZZZZZZZZ then execute next code. + // XXXXXXXX + // ZZZZZZZZ + RAMAddress = RAMAddress.Replace("142", "020"); + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("542") == true) + { + // 542 Should be Changed to 020 + // If Word at XXXXXXXX <> ZZZZZZZZ then execute next 2 codes. + // XXXXXXXX + // ZZZZZZZZ + RAMAddress = RAMAddress.Replace("542", "020"); + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("942") == true) + { + // 942 Should be Changed to 020 + // If Word at XXXXXXXX <> ZZZZZZZZ disable all the codes below this one. + // XXXXXXXX + // ZZZZZZZZ + RAMAddress = RAMAddress.Replace("942", "020"); + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("D42") == true) + { + // D42 Should be Changed to 020 + // While Word at XXXXXXXX = ZZZZZZZZ turn off all codes. + // XXXXXXXX + // ZZZZZZZZ + RAMAddress = RAMAddress.Replace("D42", "020"); + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + // 7) + // [If Byte at address XXXXXXXX is lower than ZZ] (signed) Code + // Signed means : For bytes : values go from -128 to +127. For Halfword : values go from -32768/+32767. For Words : values go from -2147483648 to 2147483647. For exemple, for the Byte comparison, 7F (127) will be > to FF (-1). + // + // + else if (RAMAddress.StartsWith("182") == true) + { + // 182 Should be Changed to 020 + // If ZZ > Byte at XXXXXXXX then execute next code. + // XXXXXXXX + // 000000ZZ + if (RAMAddress.StartsWith("182") == true) + { + RAMAddress = RAMAddress.Replace("182", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("582") == true) + { + // 582 Should be Changed to 020 + // If ZZ > Byte at XXXXXXXX then execute next 2 codes. + // XXXXXXXX + // 000000ZZ + if (RAMAddress.StartsWith("582") == true) + { + RAMAddress = RAMAddress.Replace("582", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("982") == true) + { + // 982 Should be Changed to 020 + // If ZZ > Byte at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). + // XXXXXXXX + // 000000ZZ + if (RAMAddress.StartsWith("982") == true) + { + RAMAddress = RAMAddress.Replace("982", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("D82") == true || (RAMAddress.StartsWith("E82") == true)) + { + // D82 or E82 Should be Changed to 020 + // While ZZ <= Byte at XXXXXXXX turn off all codes. + // XXXXXXXX + // 000000ZZ + if (RAMAddress.StartsWith("D82") == true) + { + RAMAddress = RAMAddress.Replace("D82", "020"); + } + else if ((RAMAddress.StartsWith("E82") == true)) + { + RAMAddress = RAMAddress.Replace("E82", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("1A2") == true) + { + // 1A2 Should be Changed to 020 + // If ZZZZ > Halfword at XXXXXXXX then execute next line. + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("1A2") == true) + { + RAMAddress = RAMAddress.Replace("1A2", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("5A2") == true) + { + // 5A2 Should be Changed to 020 + // If ZZZZ > Halfword at XXXXXXXX then execute next 2 lines. + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("5A2") == true) + { + RAMAddress = RAMAddress.Replace("5A2", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("9A2") == true) + { + // 9A2 Should be Changed to 020 + // If ZZZZ > Halfword at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("9A2") == true) + { + RAMAddress = RAMAddress.Replace("9A2", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("DA2") == true) + { + // DA2 Should be Changed to 020 + // While ZZZZ <= Halfword at XXXXXXXX turn off all codes. + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("DA2") == true) + { + RAMAddress = RAMAddress.Replace("DA2", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("1C2") == true) + { + // 1C2 or Should be Changed to 020 + // If ZZZZ > Word at XXXXXXXX then execute next line. + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("1C2") == true) + { + RAMAddress = RAMAddress.Replace("1C2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("5C2") == true) + { + // 5C2 Should be Changed to 020 + // If ZZZZ > Word at XXXXXXXX then execute next 2 lines. + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("5C2") == true) + { + RAMAddress = RAMAddress.Replace("5C2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("9C2") == true) + { + // 9C2 Should be Changed to 020 + // If ZZZZZZZZ > Word at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("9C2") == true) + { + RAMAddress = RAMAddress.Replace("9C2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("DC2") == true) + { + // DC2 Should be Changed to 020 + // While ZZZZZZZZ <= Word at XXXXXXXX turn off all codes. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("DC2") == true) + { + RAMAddress = RAMAddress.Replace("DC2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + // 8) + // [If Byte at address XXXXXXXX is higher than ZZ] (signed) Code + // Signed means : For bytes : values go from -128 to +127. For Halfword : values go from -32768/+32767. For Words : values go from -2147483648 to 2147483647. For exemple, for the Byte comparison, 7F (127) will be > to FF (-1). + // + else if (RAMAddress.StartsWith("202") == true) + { + // 202 Should be Changed to 020 + // If ZZ < Byte at XXXXXXXX then execute next code. + // XXXXXXXX + // 000000ZZ + if (RAMAddress.StartsWith("202") == true) + { + RAMAddress = RAMAddress.Replace("202", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("602") == true) + { + // 602 Should be Changed to 020 + // If ZZ < Byte at XXXXXXXX then execute next 2 codes. + // XXXXXXXX + // 000000ZZ + if (RAMAddress.StartsWith("602") == true) + { + RAMAddress = RAMAddress.Replace("602", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("A02") == true) + { + // A02 Should be Changed to 020 + // If ZZ < Byte at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). + // XXXXXXXX + // 000000ZZ + if (RAMAddress.StartsWith("A02") == true) + { + RAMAddress = RAMAddress.Replace("A02", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("E02") == true) + { + // E02 Should be Changed to 020 + // While ZZ => Byte at XXXXXXXX turn off all codes. + // XXXXXXXX + // 000000ZZ + if (RAMAddress.StartsWith("E02") == true) + { + RAMAddress = RAMAddress.Replace("E02", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("222") == true) + { + // 222 Should be Changed to 020 + // If ZZZZ < Halfword at XXXXXXXX then execute next line. + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("222") == true) + { + RAMAddress = RAMAddress.Replace("222", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("622") == true) + { + // 622 Should be Changed to 020 + // If ZZZZ < Halfword at XXXXXXXX then execute next 2 lines. + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("622") == true) + { + RAMAddress = RAMAddress.Replace("622", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("A22") == true) + { + // A22 Should be Changed to 020 + // If ZZZZ < Halfword at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("A22") == true) + { + RAMAddress = RAMAddress.Replace("A22", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("E22") == true) + { + // E22 Should be Changed to 020 + // While ZZZZ => Halfword at XXXXXXXX turn off all codes. + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("E22") == true) + { + RAMAddress = RAMAddress.Replace("E22", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("242") == true) + { + // 242 Should be Changed to 020 + // If ZZZZ < Halfword at XXXXXXXX then execute next line. + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("242") == true) + { + RAMAddress = RAMAddress.Replace("242", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("642") == true) + { + // 642 Should be Changed to 020 + // If ZZZZ < Halfword at XXXXXXXX then execute next 2 lines. + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("642") == true) + { + RAMAddress = RAMAddress.Replace("642", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("A42") == true) + { + // A42 Should be Changed to 020 + // If ZZZZ < Halfword at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("A42") == true) + { + RAMAddress = RAMAddress.Replace("A42", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("E42") == true) + { + // E42 Should be Changed to 020 + // While ZZZZ => Halfword at XXXXXXXX turn off all codes. + // XXXXXXXX 0000ZZZZ + if (RAMAddress.StartsWith("E42") == true) + { + RAMAddress = RAMAddress.Replace("E42", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + // 9) + // [If Value at adress XXXXXXXX is lower than...] (unsigned) Code + // Unsigned means : For bytes : values go from 0 to +255. For Halfword : values go from 0 to +65535. For Words : values go from 0 to 4294967295. For exemple, for the Byte comparison, 7F (127) will be < to FF (255). + // + // + else if (RAMAddress.StartsWith("282") == true) + { + // 282 Should be Changed to 020 + // If ZZZZZZZZ > Byte at XXXXXXXX then execute next line. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("282") == true) + { + RAMAddress = RAMAddress.Replace("282", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("682") == true) + { + // 682 Should be Changed to 020 + // If ZZZZZZZZ > Byte at XXXXXXXX then execute next 2 lines. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("682") == true) + { + RAMAddress = RAMAddress.Replace("682", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("A82") == true) + { + // A82 Should be Changed to 020 + // If ZZZZZZZZ > Byte at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("A82") == true) + { + RAMAddress = RAMAddress.Replace("A82", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("2A2") == true) + { + // 2A2 Should be Changed to 020 + // If ZZZZZZZZ > Halfword at XXXXXXXX then execute next line. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("2A2") == true) + { + RAMAddress = RAMAddress.Replace("2A2", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("6A2") == true) + { + // 6A2 Should be Changed to 020 + // If ZZZZZZZZ > Halfword at XXXXXXXX then execute next 2 lines. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("6A2") == true) + { + RAMAddress = RAMAddress.Replace("6A2", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("AA2") == true) + { + // AA2 Should be Changed to 020 + // If ZZZZZZZZ > Halfword at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("AA2") == true) + { + RAMAddress = RAMAddress.Replace("AA2", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("EA2") == true) + { + // EA2 Should be Changed to 020 + // While ZZZZZZZZ <= Halfword at XXXXXXXX turn off all codes. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("EA2") == true) + { + RAMAddress = RAMAddress.Replace("EA2", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("2C2") == true) + { + // 2C2 Should be Changed to 020 + // If ZZZZZZZZ > Word at XXXXXXXX then execute next line. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("2C2") == true) + { + RAMAddress = RAMAddress.Replace("2C2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("6C2") == true) + { + // 6C2 Should be Changed to 020 + // If ZZZZZZZZ > Word at XXXXXXXX then execute next 2 lines. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("6C2") == true) + { + RAMAddress = RAMAddress.Replace("6C2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("AC2") == true) + { + // AC2 Should be Changed to 020 + // If ZZZZZZZZ > Word at XXXXXXXX then execute all following codes in the same row (else execute none of the codes below). + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("AC2") == true) + { + RAMAddress = RAMAddress.Replace("AC2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("EC2") == true) + { + // EC2 Should be Changed to 020 + // While ZZZZZZZZ <= Word at XXXXXXXX turn off all codes. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("EC2") == true) + { + RAMAddress = RAMAddress.Replace("EC2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + // 10) + // [If Value at adress XXXXXXXX is higher than...] (unsigned) Code + // Unsigned means For bytes : values go from 0 to +255. For Halfword : values go from 0 to +65535. For Words : values go from 0 to 4294967295. For exemple, for the Byte comparison, 7F (127) will be < to FF (255). + else if (RAMAddress.StartsWith("302") == true) + { + // 302 Should be Changed to 020 + // If ZZZZZZZZ < Byte at XXXXXXXX then execute next line.. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("302") == true) + { + RAMAddress = RAMAddress.Replace("302", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("702") == true) + { + // 702 Should be Changed to 020 + // If ZZZZZZZZ < Byte at XXXXXXXX then execute next line.. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("702") == true) + { + RAMAddress = RAMAddress.Replace("702", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("B02") == true) + { + // B02 Should be Changed to 020 + // If ZZZZZZZZ < Byte at XXXXXXXX then execute next line.. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("B02") == true) + { + RAMAddress = RAMAddress.Replace("B02", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("F02") == true) + { + // F02 Should be Changed to 020 + // If ZZZZZZZZ < Byte at XXXXXXXX then execute next line.. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("F02") == true) + { + RAMAddress = RAMAddress.Replace("F02", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("322") == true) + { + // 322 Should be Changed to 020 + //If ZZZZZZZZ < Halfword at XXXXXXXX then execute next line. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("322") == true) + { + RAMAddress = RAMAddress.Replace("322", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("722") == true) + { + // 722 Should be Changed to 020 + // If ZZZZZZZZ < Halfword at XXXXXXXX then execute next line.. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("722") == true) + { + RAMAddress = RAMAddress.Replace("722", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("B22") == true) + { + // B22 Should be Changed to 020 + // If ZZZZZZZZ < Halfword at XXXXXXXX then execute next line.. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("B22") == true) + { + RAMAddress = RAMAddress.Replace("B22", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("F22") == true) + { + // F22 Should be Changed to 020 + // If ZZZZZZZZ < Halfword at XXXXXXXX then execute next line.. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("F22") == true) + { + RAMAddress = RAMAddress.Replace("F22", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + + else if (RAMAddress.StartsWith("342") == true) + { + // 342 Should be Changed to 020 + //If ZZZZZZZZ < Halfword at XXXXXXXX then execute next line. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("342") == true) + { + RAMAddress = RAMAddress.Replace("342", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("742") == true) + { + // 742 Should be Changed to 020 + // If ZZZZZZZZ < Halfword at XXXXXXXX then execute next line.. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("742") == true) + { + RAMAddress = RAMAddress.Replace("742", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("B42") == true) + { + // B42 Should be Changed to 020 + // If ZZZZZZZZ < Halfword at XXXXXXXX then execute next line.. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("B42") == true) + { + RAMAddress = RAMAddress.Replace("B42", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("F42") == true) + { + // F42 Should be Changed to 020 + // If ZZZZZZZZ < Halfword at XXXXXXXX then execute next line.. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("F42") == true) + { + RAMAddress = RAMAddress.Replace("F42", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + // 11) If AND Code + else if (RAMAddress.StartsWith("382") == true) + { + // 382 Should be Changed to 020 + // If ZZ AND Byte at XXXXXXXX <> 0 (= True) then execute next code. + // XXXXXXXX + // 000000ZZ + if (RAMAddress.StartsWith("382") == true) + { + RAMAddress = RAMAddress.Replace("382", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("782") == true) + { + // 782 Should be Changed to 020 + // If ZZ AND Byte at XXXXXXXX <> 0 (= True) then execute next 2 codes. + // XXXXXXXX + // 000000ZZ + if (RAMAddress.StartsWith("782") == true) + { + RAMAddress = RAMAddress.Replace("782", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("B82") == true) + { + // B82 Should be Changed to 020 + // If ZZ AND Byte at XXXXXXXX <> 0 (= True) then execute all following codes in the same row (else execute none of the codes below). + // XXXXXXXX + // 000000ZZ + if (RAMAddress.StartsWith("B82") == true) + { + RAMAddress = RAMAddress.Replace("B82", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("F82") == true) + { + // F82 Should be Changed to 020 + // While ZZ AND Byte at XXXXXXXX = 0 (= False) then turn off all codes. + // XXXXXXXX + // 000000ZZ + if (RAMAddress.StartsWith("F82") == true) + { + RAMAddress = RAMAddress.Replace("F82", "020"); + } + byteSize = 8; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("3A2") == true) + { + // 3A2 Should be Changed to 020 + // If ZZZZ AND Halfword at XXXXXXXX <> 0 (= True) then execute next code. + // XXXXXXXX + // 0000ZZZZ + if (RAMAddress.StartsWith("3A2") == true) + { + RAMAddress = RAMAddress.Replace("3A2", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("7A2") == true) + { + // 7A2 Should be Changed to 020 + // If ZZZZ AND Halfword at XXXXXXXX <> 0 (= True) then execute next 2 codes. + // XXXXXXXX + // 0000ZZZZ + if (RAMAddress.StartsWith("7A2") == true) + { + RAMAddress = RAMAddress.Replace("7A2", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("3C2") == true) + { + // 3C2 Should be Changed to 020 + // If ZZZZZZZZ AND Word at XXXXXXXX <> 0 (= True) then execute next code. + // XXXXXXXX + // ZZZZZZZZ + if (RAMAddress.StartsWith("3C2") == true) + { + RAMAddress = RAMAddress.Replace("3C2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("7C2") == true) + { + // 7C2 Should be Changed to 020 + // If ZZZZZZZZ AND Word at XXXXXXXX <> 0 (= True) then execute next 2 codes. + // XXXXXXXX + // ZZZZZZZZ + if (RAMAddress.StartsWith("7C2") == true) + { + RAMAddress = RAMAddress.Replace("7C2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("BC2") == true) + { + // BC2 Should be Changed to 020 + // If ZZZZZZZZ AND Word at XXXXXXXX <> 0 (= True) then execute all following codes in the same row (else execute none of the codes below). + // XXXXXXXX + // ZZZZZZZZ + if (RAMAddress.StartsWith("BC2") == true) + { + RAMAddress = RAMAddress.Replace("BC2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("FC2") == true) + { + // FC2 Should be Changed to 020 + // While ZZZZZZZZ AND Word at XXXXXXXX = 0 (= False) then turn off all codes. + // XXXXXXXX + // ZZZZZZZZ + if (RAMAddress.StartsWith("FC2") == true) + { + RAMAddress = RAMAddress.Replace("FC2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + // 12) "Always..." Codes + // For the "Always..." codes: -XXXXXXXX can be any authorised address BUT 00000000 (use 02000000 if you don't know what to choose). -ZZZZZZZZ can be anything. -The "y" in the code data must be in the [1-7] range (which means not 0). + // + // + else if (RAMAddress.StartsWith("0E2") == true) + { + // 0E2 Should be Changed to 020 + // Always skip next line. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("0E2") == true) + { + RAMAddress = RAMAddress.Replace("0E2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("4E2") == true) + { + // 4E2 Should be Changed to 020 + // Always skip next 2 lines. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("4E2") == true) + { + RAMAddress = RAMAddress.Replace("4E2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("8E2") == true) + { + // 8E2 Should be Changed to 020 + // Always Stops executing all the codes below. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("8E2") == true) + { + RAMAddress = RAMAddress.Replace("8E2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("CE2") == true) + { + // CE2 Should be Changed to 020 + // Always turn off all codes. + // XXXXXXXX ZZZZZZZZ + if (RAMAddress.StartsWith("CE2") == true) + { + RAMAddress = RAMAddress.Replace("CE2", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + // 13) 1 Line Special Codes (= starting with "00000000") + else if (RAMAddress.StartsWith("00000000") == true) + { + // End of the code list (even if you put values in the 2nd line). + // 00000000 + //Let's ignore the user's input on this one? + if (RAMAddress.StartsWith("00000000") == true) + { + RAMAddress = RAMAddress.Replace("00000000", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not needed by Bizhawk.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnneeded = true; + return; + } + else if (RAMAddress.StartsWith("080") == true) + { + // End of the code list (even if you put values in the 2nd line). + // 00000000 + //Let's ignore the user's input on this one? + if (RAMAddress.StartsWith("080") == true) + { + RAMAddress = RAMAddress.Replace("080", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not needed by Bizhawk.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnneeded = true; + return; + } + else if (RAMAddress.StartsWith("0800") == true && RAMAddress[6] == '0' == true && RAMAddress[7] == '0' == true) + { + // AR Slowdown : loops the AR XX times + // 0800XX00 + if (RAMAddress.StartsWith("0800") == true && RAMAddress[6] == '0' == true && RAMAddress[7] == '0' == true) + { + RAMAddress = RAMAddress.Replace("0800", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not needed by Bizhawk.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnneeded = true; + return; + } + // 14) 2 Lines Special Codes (= starting with '00000000' and padded (if needed) with "00000000") + // Note: You have to add the 0es manually, after clicking the "create" button. + //Ocean Prince's note: + //Several of these appear to be conflicted with above detections. + else if (RAMAddress.StartsWith("1E2") == true) + { + // 1E2 Should be Changed to 020 + // Patches ROM address (XXXXXXXX << 1) with Halfword ZZZZ. Does not work on V1/2 upgraded to V3. Only for a real V3 Hardware? + // XXXXXXXX + // 0000ZZZZ + if (RAMAddress.StartsWith("1E2") == true) + { + RAMAddress = RAMAddress.Replace("1E2", "020"); + } + byteSize = 16; + blnActionReplayMax = true; + } + else if (RAMAddress.StartsWith("40000000") == true) + { + // 40000000 Should be Changed to 00000000 + // (SP = 0) (means : stops the "then execute all following codes in the same row" and stops the "else execute none of the codes below)". + // 00000000 + // 00000000 + if (RAMAddress.StartsWith("40000000") == true) + { + RAMAddress = RAMAddress.Replace("40000000", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("60000000") == true) + { + // 60000000 Should be Changed to 00000000 + // (SP = 1) (means : start to execute all codes until end of codes or SP = 0). (bypass the number of codes to executes set by the master code). Should be Changed to (If SP <> 2) + // 00000000 + // 00000000 + if (RAMAddress.StartsWith("60000000") == true) + { + RAMAddress = RAMAddress.Replace("60000000", "020"); + } + byteSize = 16; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + //TODO: + //Figure out how these work. + //NOTE: + //This is a Three Line Checker + #region "The Three Line Adds" + else if (RAMAddress.StartsWith("8022") == true) + { + // 802 Should be Changed to 020 + // Writes Byte YY at address XXXXXXXX. Then makes YY = YY + Z1, XXXXXXXX = XXXXXXXX + Z3Z3, Z2 = Z2 - 1, and repeats until Z2 < 0. + // XXXXXXXX + // 000000YY + // Z1Z2Z3Z3 + if (RAMAddress.StartsWith("8022") == true) + { + RAMAddress = RAMAddress.Replace("8022", "0200"); + } + byteSize = 8; + MessageBox.Show("Sorry, this tool does not support 8022 codes.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + blnUnhandled = true; + return; + } + //I Don't get what this is doing. + else if (RAMAddress.StartsWith("8222") == true) + { + // 822 Should be Changed to 020 + // Writes Halfword YYYY at address XXXXXXXX. Then makes YYYY = YYYY + Z1, XXXXXXXX = XXXXXXXX + Z3Z3*2, + // XXXXXXXX + // 0000YYYY + // Z1Z2Z3Z3 + if (RAMAddress.StartsWith("8222") == true) + { + RAMAddress = RAMAddress.Replace("8222", "0200"); + } + byteSize = 16; + MessageBox.Show("Sorry, this tool does not support 8222 codes.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("842") == true) + { + // 842 Should be Changed to 020 + // Writes Word YYYYYYYY at address XXXXXXXX. Then makes YYYYYYYY = YYYYYYYY + Z1, XXXXXXXX = XXXXXXXX + Z3Z3*4, Z2 = Z2 - 1, and repeats until Z2<0. + // XXXXXXXX + // YYYYYYYY + // Z1Z2Z3Z3 + // WARNING: There is a BUG on the REAL AR (v2 upgraded to v3, and maybe on real v3) with the 32Bits Increment Slide code. You HAVE to add a code (best choice is 80000000 00000000 : add 0 to value at address 0) right after it, else the AR will erase the 2 last 8 digits lines of the 32 Bits Inc. Slide code when you enter it !!! + if (RAMAddress.StartsWith("842") == true) + { + RAMAddress = RAMAddress.Replace("842", "020"); + } + byteSize = 32; + MessageBox.Show("Sorry, this tool does not support 8222 codes.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + blnUnhandled = true; + return; + } + #endregion + // 15) Special Codes + // -Master Code- + // address to patch AND $1FFFFFE Should be Changed to address to patch + // Master Code settings. + // XXXXXXXX + // 0000YYYY + // + else if (RAMValue.StartsWith("001DC0DE") == true) + { + // -ID Code- + // Word at address 080000AC + // Must always be 001DC0DE + // XXXXXXXX + // 001DC0DE + if (RAMValue.StartsWith("001DC0DE") == true) + { + RAMValue = RAMValue.Replace("001DC0DE", "020"); + } + byteSize = 32; + MessageBox.Show("The code you entered is not needed by Bizhawk.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnneeded = true; + return; + } + else if (RAMAddress.StartsWith("DEADFACE") == true) + { + // -DEADFACE- + // New Encryption seed. + // DEADFACE + // 0000XXXX + MessageBox.Show("Sorry, this tool does not support DEADFACE codes.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + blnUnhandled = true; + return; + } + else if (blnActionReplayMax == false) + { + //Is it a bad code? Check the others. + blnActionReplayMax = false; + } + return; + } + public void GBACodeBreaker() + { + //These checks are done on the DECYPTED code, not the Encrypted one. + if (RAMAddress.StartsWith("0000") == true && RAMValue.StartsWith("0008") == true || RAMAddress.StartsWith("0000") == true && RAMValue.StartsWith("0002") == true) + { + //Master Code #1 + //0000xxxx yyyy + + //xxxx is the CRC value (the "Game ID" converted to hex) + //Flags("yyyy"): + //0008 - CRC Exists(CRC is used to autodetect the inserted game) + //0002 - Disable Interupts + MessageBox.Show("The code you entered is not needed by Bizhawk.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnneeded = true; + return; + } + else if (RAMAddress.StartsWith("1") == true && RAMValue.StartsWith("1000") == true || RAMAddress.StartsWith("1") == true && RAMValue.StartsWith("2000") == true || RAMAddress.StartsWith("1") == true && RAMValue.StartsWith("3000") == true || RAMAddress.StartsWith("1") == true && RAMValue.StartsWith("4000") == true || RAMAddress.StartsWith("1") == true && RAMValue.StartsWith("0020") == true) + { + //Master Code #2 + //1aaaaaaa xxxy + //'y' is the CBA Code Handler Store Address(0 - 7)[address = ((d << 0x16) + 0x08000100)] + + //1000 - 32 - bit Long - Branch Type(Thumb) + //2000 - 32 - bit Long - Branch Type(ARM) + //3000 - 8 - bit(?) Long - Branch Type(Thumb) + //4000 - 8 - bit(?) Long - Branch Type(ARM) + //0020 - Unknown(Odd Effect) + MessageBox.Show("The code you entered is not needed by Bizhawk.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnneeded = true; + return; + } + else if (RAMAddress.StartsWith("3") == true) + { + //8 - Bit Constant RAM Write + //3aaaaaaa 00yy + //Continuosly writes the 8 - Bit value specified by 'yy' to address aaaaaaa. + RAMAddress = RAMAddress.Remove(0, 1); + byteSize = 16; + } + else if (RAMAddress.StartsWith("4") == true) + { + //Slide Code + //4aaaaaaa yyyy + //xxxxxxxx iiii + //This is one of those two - line codes.The "yyyy" set is the data to store at the address (aaaaaaa), with xxxxxxxx being the number of addresses to store to, and iiii being the value to increment the addresses by. The codetype is usually use to fill memory with a certain value. + RAMAddress = RAMAddress.Remove(0, 1); + byteSize = 32; + MessageBox.Show("Sorry, this tool does not support 4 codes.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("6") == true) + { + //16 - Bit Logical AND + //6aaaaaaa yyyy + //Performs the AND function on the address provided with the value provided. I'm not going to explain what AND does, so if you'd like to know I suggest you see the instruction manual for a graphing calculator. + //This is another advanced code type you'll probably never need to use. + + //Ocean Prince's note: + //AND means "If ALL conditions are True then Do" + //I don't understand how this would be applied/works. Samples are requested. + MessageBox.Show("Sorry, this tool does not support 6 codes.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("7") == true) + { + //16 - Bit 'If Equal To' Activator + //7aaaaaaa yyyy + //If the value at the specified RAM address(aaaaaaa) is equal to yyyy value, active the code on the next line. + byteSize = 32; + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("8") == true) + { + //16 - Bit Constant RAM Write + //8aaaaaaa yyyy + //Continuosly writes yyyy values to the specified RAM address(aaaaaaa). + //Continuosly writes the 8 - Bit value specified by 'yy' to address aaaaaaa. + RAMAddress = RAMAddress.Remove(0, 1); + byteSize = 32; + } + else if (RAMAddress.StartsWith("9") == true) + { + //Change Encryption Seeds + //9yyyyyyy yyyy + //(When 1st Code Only!) + //Works like the DEADFACE on GSA.Changes the encryption seeds used for the rest of the codes. + MessageBox.Show("Sorry, this tool does not support 9 codes.", "Tool error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + byteSize = 32; + blnUnhandled = true; + return; + } + else if (RAMAddress.StartsWith("A") == true) + { + //16 - Bit 'If Not Equal' Activator + //Axxxxxxx yyyy + //Basicly the opposite of an 'If Equal To' Activator.Activates the code on the next line if address xxxxxxx is NOT equal to yyyy + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + byteSize = 32; + return; + + } + else if (RAMAddress.StartsWith("D00000") == true) + { + //16 - Bit Conditional RAM Write + //D00000xx yyyy + //No Description available at this time. + MessageBox.Show("The code you entered is not supported by BizHawk.", "Emulator Error", MessageBoxButtons.OK, MessageBoxIcon.Information); + blnUnhandled = true; + byteSize = 32; + return; + } + return; + } + public void AddGBA() + { + if (byteSize == 8) + { + var watch = Watch.GenerateWatch(MemoryDomains["System Bus"], long.Parse(RAMAddress, NumberStyles.HexNumber), WatchSize.Byte, Client.Common.DisplayType.Hex, false, txtDescription.Text); + Global.CheatList.Add(new Cheat(watch, int.Parse(RAMValue, NumberStyles.HexNumber))); + } + else if (byteSize == 16) + { + var watch = Watch.GenerateWatch(MemoryDomains["System Bus"], long.Parse(RAMAddress, NumberStyles.HexNumber), WatchSize.Word, Client.Common.DisplayType.Hex, false, txtDescription.Text); + Global.CheatList.Add(new Cheat(watch, int.Parse(RAMValue, NumberStyles.HexNumber))); + } + else if (byteSize == 32) + { + var watch = Watch.GenerateWatch(MemoryDomains["System Bus"], long.Parse(RAMAddress, NumberStyles.HexNumber), WatchSize.DWord, Client.Common.DisplayType.Hex, false, txtDescription.Text); + Global.CheatList.Add(new Cheat(watch, int.Parse(RAMValue, NumberStyles.HexNumber))); + } + //Clear old Inputs + txtCheat.Clear(); + txtDescription.Clear(); + } + //TODO: + //Make Slide Code Handling suck less. + //Make Slide Code Handling exist. public void GBASlide() { //This works on the Action Replay MAX, not the Codebreaker, GameShark SP/Xploder @@ -566,8 +2369,6 @@ namespace BizHawk.Client.EmuHawk txtCheat.Clear(); txtDescription.Clear(); } - - private void GEN() { //Game Genie only, for now. @@ -1359,6 +3160,7 @@ namespace BizHawk.Client.EmuHawk { //TODO? //Add special handling for cores that need special things? + //GBA may need a special thing. } } -} +} \ No newline at end of file From 364a1498c164b7486b105194105bcb26ba13919f Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 31 Dec 2015 11:38:35 -0600 Subject: [PATCH 071/106] fix compile errors in hyper HD edition commit --- BizHawk.Client.EmuHawk/tools/GameShark.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/GameShark.cs b/BizHawk.Client.EmuHawk/tools/GameShark.cs index b7f7b2545c..b9a75a0507 100644 --- a/BizHawk.Client.EmuHawk/tools/GameShark.cs +++ b/BizHawk.Client.EmuHawk/tools/GameShark.cs @@ -393,14 +393,14 @@ namespace BizHawk.Client.EmuHawk Boolean blnUnneeded = false; private void GBA() { - bool blnNoCode = true; + bool blnNoCode = false; //Super Ultra Mega HD BizHawk GameShark/Action Replay/Code Breaker Final Hyper Edition Arcade Remix EX + α GBA Code detection method. //Seriously, it's that complex. //Check Game Shark/Action Replay (Not Max) Codes if (txtCheat.Text.Length == 17 && txtCheat.Text.IndexOf(" ") == 8) { - bool blnNoCode = true; + blnNoCode = true; //Super Ultra Mega HD BizHawk GameShark/Action Replay/Code Breaker Final Hyper Edition Arcade Remix EX + α GBA Code detection method. //Seriously, it's that complex. From 91d070094d5d254bef72f2f19772f8d80a9b71a0 Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 31 Dec 2015 11:43:38 -0600 Subject: [PATCH 072/106] 6502 cpu core: make JAM/KIL actually do something like the right thing --- .../CPUs/MOS 6502X/Execute.cs | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs b/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs index a79d0f8881..1fd4e0b784 100644 --- a/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs +++ b/BizHawk.Emulation.Cores/CPUs/MOS 6502X/Execute.cs @@ -34,7 +34,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //0x00 /*BRK [implied]*/ new Uop[] { Uop.Fetch2, Uop.PushPCH, Uop.PushPCL, Uop.PushP_BRK, Uop.FetchPCLVector, Uop.FetchPCHVector, Uop.End_SuppressInterrupt }, /*ORA (addr,X) [indexed indirect READ]*/ new Uop[] { Uop.Fetch2, Uop.IdxInd_Stage3, Uop.IdxInd_Stage4, Uop.IdxInd_Stage5, Uop.IdxInd_Stage6_READ_ORA, Uop.End }, - /*JAM*/ new Uop[] { Uop.End }, + /*JAM*/ new Uop[] { Uop.Jam }, /*SLO* (addr,X) [indexed indirect RMW] [unofficial]*/ new Uop[] { Uop.Fetch2, Uop.IdxInd_Stage3, Uop.IdxInd_Stage4, Uop.IdxInd_Stage5, Uop.IdxInd_Stage6_RMW, Uop.IdxInd_Stage7_RMW_SLO, Uop.IdxInd_Stage8_RMW, Uop.End }, /*NOP zp [zero page READ]*/ new Uop[] { Uop.Fetch2, Uop.ZP_READ_NOP, Uop.End }, /*ORA zp [zero page READ]*/ new Uop[] { Uop.Fetch2, Uop.ZP_READ_ORA, Uop.End }, @@ -51,7 +51,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //0x10 /*BPL +/-rel*/ new Uop[] { Uop.RelBranch_Stage2_BPL, Uop.End }, /*ORA (addr),Y* [indirect indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_READ_Stage5, Uop.IndIdx_READ_Stage6_ORA, Uop.End }, - /*JAM*/ new Uop[] { Uop.End }, + /*JAM*/ new Uop[] { Uop.Jam }, /*SLO (addr),Y* [indirect indexed RMW] [unofficial] */ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_RMW_Stage5, Uop.IndIdx_RMW_Stage6, Uop.IndIdx_RMW_Stage7_SLO, Uop.IndIdx_RMW_Stage8, Uop.End }, /*NOP zp,X [zero page indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_NOP, Uop.End }, /*ORA zp,X [zero page indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_ORA, Uop.End }, @@ -68,7 +68,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //0x20 /*JSR*/ new Uop[] { Uop.Fetch2, Uop.NOP, Uop.PushPCH, Uop.PushPCL, Uop.JSR, Uop.End }, /*AND (addr,X) [indexed indirect READ]*/ new Uop[] { Uop.Fetch2, Uop.IdxInd_Stage3, Uop.IdxInd_Stage4, Uop.IdxInd_Stage5, Uop.IdxInd_Stage6_READ_AND, Uop.End }, - /*JAM*/ new Uop[] { Uop.End }, + /*JAM*/ new Uop[] { Uop.Jam }, /*RLA* (addr,X) [indexed indirect RMW] [unofficial]*/ new Uop[] { Uop.Fetch2, Uop.IdxInd_Stage3, Uop.IdxInd_Stage4, Uop.IdxInd_Stage5, Uop.IdxInd_Stage6_RMW, Uop.IdxInd_Stage7_RMW_RLA, Uop.IdxInd_Stage8_RMW, Uop.End }, /*BIT zp [zero page READ]*/ new Uop[] { Uop.Fetch2, Uop.ZP_READ_BIT, Uop.End }, /*AND zp [zero page READ]*/ new Uop[] { Uop.Fetch2, Uop.ZP_READ_AND, Uop.End }, @@ -85,7 +85,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //0x30 /*BMI +/-rel [relative]*/ new Uop[] { Uop.RelBranch_Stage2_BMI, Uop.End }, /*AND (addr),Y* [indirect indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_READ_Stage5, Uop.IndIdx_READ_Stage6_AND, Uop.End }, - /*JAM*/ new Uop[] { Uop.End }, + /*JAM*/ new Uop[] { Uop.Jam }, /*RLA* (addr),Y* [indirect indexed RMW] [unofficial] */ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_RMW_Stage5, Uop.IndIdx_RMW_Stage6, Uop.IndIdx_RMW_Stage7_RLA, Uop.IndIdx_RMW_Stage8, Uop.End }, /*NOP zp,X [zero page indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_NOP, Uop.End }, /*AND zp,X [zero page indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_AND, Uop.End }, @@ -102,7 +102,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //0x40 /*RTI*/ new Uop[] { Uop.FetchDummy, Uop.IncS, Uop.PullP, Uop.PullPCL, Uop.PullPCH_NoInc, Uop.End }, /*EOR (addr,X) [indexed indirect READ]*/ new Uop[] { Uop.Fetch2, Uop.IdxInd_Stage3, Uop.IdxInd_Stage4, Uop.IdxInd_Stage5, Uop.IdxInd_Stage6_READ_EOR, Uop.End }, - /*JAM*/ new Uop[] { Uop.End }, + /*JAM*/ new Uop[] { Uop.Jam }, /*SRE* (addr,X) [indexed indirect RMW] [unofficial]*/ new Uop[] { Uop.Fetch2, Uop.IdxInd_Stage3, Uop.IdxInd_Stage4, Uop.IdxInd_Stage5, Uop.IdxInd_Stage6_RMW, Uop.IdxInd_Stage7_RMW_SRE, Uop.IdxInd_Stage8_RMW, Uop.End }, /*NOP zp [zero page READ]*/ new Uop[] { Uop.Fetch2, Uop.ZP_READ_NOP, Uop.End }, /*EOR zp [zero page READ]*/ new Uop[] { Uop.Fetch2, Uop.ZP_READ_EOR, Uop.End }, @@ -119,7 +119,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //0x50 /*BVC +/-rel [relative]*/ new Uop[] { Uop.RelBranch_Stage2_BVC, Uop.End }, /*EOR (addr),Y* [indirect indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_READ_Stage5, Uop.IndIdx_READ_Stage6_EOR, Uop.End }, - /*JAM*/ new Uop[] { Uop.End }, + /*JAM*/ new Uop[] { Uop.Jam }, /*SRE* (addr),Y* [indirect indexed RMW] [unofficial] */ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_RMW_Stage5, Uop.IndIdx_RMW_Stage6, Uop.IndIdx_RMW_Stage7_SRE, Uop.IndIdx_RMW_Stage8, Uop.End }, /*NOP zp,X [zero page indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_NOP, Uop.End }, /*EOR zp,X [zero page indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_EOR, Uop.End }, @@ -136,7 +136,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //0x60 /*RTS*/ new Uop[] { Uop.FetchDummy, Uop.IncS, Uop.PullPCL, Uop.PullPCH_NoInc, Uop.IncPC, Uop.End }, //can't fetch here because the PC isnt ready until the end of the last clock /*ADC (addr,X) [indexed indirect READ]*/ new Uop[] { Uop.Fetch2, Uop.IdxInd_Stage3, Uop.IdxInd_Stage4, Uop.IdxInd_Stage5, Uop.IdxInd_Stage6_READ_ADC, Uop.End }, - /*JAM*/ new Uop[] { Uop.End }, + /*JAM*/ new Uop[] { Uop.Jam }, /*RRA* (addr,X) [indexed indirect RMW] [unofficial]*/ new Uop[] { Uop.Fetch2, Uop.IdxInd_Stage3, Uop.IdxInd_Stage4, Uop.IdxInd_Stage5, Uop.IdxInd_Stage6_RMW, Uop.IdxInd_Stage7_RMW_RRA, Uop.IdxInd_Stage8_RMW, Uop.End }, /*NOP zp [zero page READ]*/ new Uop[] { Uop.Fetch2, Uop.ZP_READ_NOP, Uop.End }, /*ADC zp [zero page READ]*/ new Uop[] { Uop.Fetch2, Uop.ZP_READ_ADC, Uop.End }, @@ -153,7 +153,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //0x70 /*BVS +/-rel [relative]*/ new Uop[] { Uop.RelBranch_Stage2_BVS, Uop.End }, /*ADC (addr),Y [indirect indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_READ_Stage5, Uop.IndIdx_READ_Stage6_ADC, Uop.End }, - /*JAM*/ new Uop[] { Uop.End }, + /*JAM*/ new Uop[] { Uop.Jam }, /*RRA* (addr),Y [indirect indexed RMW Y] [unofficial] */ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_RMW_Stage5, Uop.IndIdx_RMW_Stage6, Uop.IndIdx_RMW_Stage7_RRA, Uop.IndIdx_RMW_Stage8, Uop.End }, /*NOP zp,X [zero page indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_NOP, Uop.End }, /*ADC zp,X [zero page indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_ADC, Uop.End }, @@ -187,7 +187,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //0x90 /*BCC +/-rel [relative]*/ new Uop[] { Uop.RelBranch_Stage2_BCC, Uop.End }, /*STA (addr),Y [indirect indexed WRITE]*/ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_WRITE_Stage5, Uop.IndIdx_WRITE_Stage6_STA, Uop.End }, - /*JAM*/ new Uop[] { Uop.End }, + /*JAM*/ new Uop[] { Uop.Jam }, /*SHA** [indirect indexed WRITE] [unofficial] [not tested by blargg's instruction tests]*/ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_WRITE_Stage5, Uop.IndIdx_WRITE_Stage6_SHA, Uop.End }, /*STY zp,X [zero page indexed WRITE X]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_WRITE_STY, Uop.End }, /*STA zp,X [zero page indexed WRITE X]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_WRITE_STA, Uop.End }, @@ -221,7 +221,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //0xB0 /*BCS +/-rel [relative]*/ new Uop[] { Uop.RelBranch_Stage2_BCS, Uop.End }, /*LDA (addr),Y* [indirect indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_READ_Stage5, Uop.IndIdx_READ_Stage6_LDA, Uop.End }, - /*JAM*/ new Uop[] { Uop.End }, + /*JAM*/ new Uop[] { Uop.Jam }, /*LAX* (addr),Y* [indirect indexed READ] [unofficial] */ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_READ_Stage5, Uop.IndIdx_READ_Stage6_LAX, Uop.End }, /*LDY zp,X [zero page indexed READ X]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_LDY, Uop.End }, /*LDA zp,X [zero page indexed READ X]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_LDA, Uop.End }, @@ -255,7 +255,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //0xD0 /*BNE +/-rel [relative]*/ new Uop[] { Uop.RelBranch_Stage2_BNE, Uop.End }, /*CMP (addr),Y* [indirect indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_READ_Stage5, Uop.IndIdx_READ_Stage6_CMP, Uop.End }, - /*JAM*/ new Uop[] { Uop.End }, + /*JAM*/ new Uop[] { Uop.Jam }, /*DCP* (addr),Y* [indirect indexed RMW Y] [unofficial] */ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_RMW_Stage5, Uop.IndIdx_RMW_Stage6, Uop.IndIdx_RMW_Stage7_DCP, Uop.IndIdx_RMW_Stage8, Uop.End }, /*NOP zp,X [zero page indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_NOP, Uop.End }, /*CMP zp,X [zero page indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_CMP, Uop.End }, @@ -289,7 +289,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 //0xF0 /*BEQ +/-rel [relative]*/ new Uop[] { Uop.RelBranch_Stage2_BEQ, Uop.End }, /*SBC (addr),Y* [indirect indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_READ_Stage5, Uop.IndIdx_READ_Stage6_SBC, Uop.End }, - /*JAM*/ new Uop[] { Uop.End }, + /*JAM*/ new Uop[] { Uop.Jam }, /*ISC* (addr),Y* [indirect indexed RMW Y] [unofficial] */ new Uop[] { Uop.Fetch2, Uop.IndIdx_Stage3, Uop.IndIdx_Stage4, Uop.IndIdx_RMW_Stage5, Uop.IndIdx_RMW_Stage6, Uop.IndIdx_RMW_Stage7_ISC, Uop.IndIdx_RMW_Stage8, Uop.End }, /*NOP zp,X [zero page indexed READ]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_NOP, Uop.End }, /*SBC zp,X [zero page indexed READ X]*/ new Uop[] { Uop.Fetch2, Uop.ZpIdx_Stage3_X, Uop.ZP_READ_SBC, Uop.End }, @@ -466,6 +466,8 @@ namespace BizHawk.Emulation.Cores.Components.M6502 End_ISpecial, //same as end, but preserves the iflag set by the instruction End_BranchSpecial, End_SuppressInterrupt, + + Jam, } void InitOpcodeHandlers() @@ -2659,6 +2661,11 @@ namespace BizHawk.Emulation.Cores.Components.M6502 End(); } + void Jam() + { + rdy_freeze = true; + } + void ExecuteOneRetry() { //dont know whether this system is any faster. hard to get benchmarks someone else try it? @@ -2912,6 +2919,7 @@ namespace BizHawk.Emulation.Cores.Components.M6502 case Uop.End_SuppressInterrupt: End_SuppressInterrupt(); break; case Uop.End: End(); break; case Uop.End_BranchSpecial: End_BranchSpecial(); break; + case Uop.Jam: Jam(); break; } } From 2765961984a5b95f3e57d143de291d8aefabebde Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 31 Dec 2015 12:37:48 -0600 Subject: [PATCH 073/106] load NSF without annoyance --- BizHawk.Client.Common/RomLoader.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/BizHawk.Client.Common/RomLoader.cs b/BizHawk.Client.Common/RomLoader.cs index cc977ef0a4..677f153f25 100644 --- a/BizHawk.Client.Common/RomLoader.cs +++ b/BizHawk.Client.Common/RomLoader.cs @@ -652,13 +652,16 @@ namespace BizHawk.Client.Common rom = new RomGame(file); game = rom.GameInfo; } - else if(ext != null) // most extensions + else if (ext != null) // most extensions { rom = new RomGame(file); //hacky for now if (file.Extension.ToLowerInvariant() == ".exe") rom.GameInfo.System = "PSX"; + else if (file.Extension.ToLowerInvariant() == ".nsf") + rom.GameInfo.System = "NES"; + if (string.IsNullOrEmpty(rom.GameInfo.System)) { From 3844bf3c12db20a8aace9140e73d56c6e7abdc5c Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 31 Dec 2015 12:52:09 -0600 Subject: [PATCH 074/106] NSF player: limit track number to legal range and print current track number to console --- .../Consoles/Nintendo/NES/Boards/NSFBoard.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/NSFBoard.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/NSFBoard.cs index 4816614864..a3bf9dc415 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/NSFBoard.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/Boards/NSFBoard.cs @@ -125,12 +125,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES Buffer.BlockCopy(nsf.NSFData, 0x80, FakePRG, load_start, load_size); } - ReplayInit(); CurrentSong = nsf.StartingSong; + ReplayInit(); } void ReplayInit() { + Console.WriteLine("NSF: Playing track {0}/{1}", CurrentSong, nsf.TotalSongs-1); InitPending = true; Patch_Vectors = true; } @@ -330,13 +331,19 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES bool reset = false; if (right) { - CurrentSong++; - reset = true; + if (CurrentSong < nsf.TotalSongs - 1) + { + CurrentSong++; + reset = true; + } } if (left) { - CurrentSong--; - reset = true; + if (CurrentSong > 0) + { + CurrentSong--; + reset = true; + } } if (a) From f0ab9edc1022a5504fee1464f110af58ffc1b7b9 Mon Sep 17 00:00:00 2001 From: Hathor86 Date: Sun, 3 Jan 2016 00:52:09 +0100 Subject: [PATCH 075/106] Attempt to fix OutOfMemory when saving states (I guess it works) Just add an EnsureCapacity() before appending log. I didn't have any crash yet compare to current release. Let's hope! --- BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs b/BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs index 99425ac9ed..a7e591b2e8 100644 --- a/BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs +++ b/BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs @@ -299,8 +299,9 @@ namespace BizHawk.Client.Common var lg = new Bk2LogEntryGenerator(LogKey); lg.SetSource(Global.MovieOutputHardpoint); - var sb = new StringBuilder(); + var sb = new StringBuilder(); sb.AppendLine(lg.GenerateLogKey()); + sb.EnsureCapacity(sb.Capacity + _log.Count); foreach (var record in _log) { sb.AppendLine(record); From e1ddb51826d8971a12c996970c1624721490dae8 Mon Sep 17 00:00:00 2001 From: zeromus Date: Sun, 10 Jan 2016 22:45:43 -0600 Subject: [PATCH 076/106] fix off-by-one-too-short-inputlog bug in MoviesOnDisk mode --- BizHawk.Client.Common/movie/bk2/StringLogs.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BizHawk.Client.Common/movie/bk2/StringLogs.cs b/BizHawk.Client.Common/movie/bk2/StringLogs.cs index 16391df2b5..e284fadf8c 100644 --- a/BizHawk.Client.Common/movie/bk2/StringLogs.cs +++ b/BizHawk.Client.Common/movie/bk2/StringLogs.cs @@ -143,7 +143,7 @@ namespace BizHawk.Client.Common class Enumerator : IEnumerator { public DiskStringLog log; - int index; + int index = -1; public string Current { get { return log[index]; } } object System.Collections.IEnumerator.Current { get { return log[index]; } } bool System.Collections.IEnumerator.MoveNext() @@ -156,7 +156,7 @@ namespace BizHawk.Client.Common } return true; } - void System.Collections.IEnumerator.Reset() { index = 0; } + void System.Collections.IEnumerator.Reset() { index = -1; } public void Dispose() { } } From a355f78631aa4690d0b57aaff06bcfaa6ae4360a Mon Sep 17 00:00:00 2001 From: zeromus Date: Sun, 10 Jan 2016 23:08:13 -0600 Subject: [PATCH 077/106] don't load entire inputlog into a string when parking it in a savestate --- BizHawk.Client.Common/movie/MovieSession.cs | 2 +- .../movie/bk2/Bk2Movie.IO.cs | 2 +- .../movie/bk2/Bk2Movie.InputLog.cs | 26 ++++++++++--------- .../movie/bkm/BkmMovie.InputLog.cs | 15 +++++++---- .../movie/interfaces/IMovie.cs | 5 ++++ .../movie/tasproj/TasMovie.IO.cs | 2 +- 6 files changed, 32 insertions(+), 20 deletions(-) diff --git a/BizHawk.Client.Common/movie/MovieSession.cs b/BizHawk.Client.Common/movie/MovieSession.cs index 5b59362755..31a76adcc2 100644 --- a/BizHawk.Client.Common/movie/MovieSession.cs +++ b/BizHawk.Client.Common/movie/MovieSession.cs @@ -219,7 +219,7 @@ namespace BizHawk.Client.Common { if (Movie.IsActive) { - writer.Write(Movie.GetInputLog()); + Movie.WriteInputLog(writer); } } diff --git a/BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs b/BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs index 396f6239f8..e9e0b1bc83 100644 --- a/BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs +++ b/BizHawk.Client.Common/movie/bk2/Bk2Movie.IO.cs @@ -183,7 +183,7 @@ namespace BizHawk.Client.Common bs.PutLump(BinaryStateLump.Subtitles, tw => tw.WriteLine(Subtitles.ToString())); bs.PutLump(BinaryStateLump.SyncSettings, tw => tw.WriteLine(_syncSettingsJson)); - bs.PutLump(BinaryStateLump.Input, tw => tw.WriteLine(RawInputLog())); + bs.PutLump(BinaryStateLump.Input, tw => WriteInputLog(tw)); if (StartsFromSavestate) { diff --git a/BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs b/BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs index a7e591b2e8..efd991227d 100644 --- a/BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs +++ b/BizHawk.Client.Common/movie/bk2/Bk2Movie.InputLog.cs @@ -14,14 +14,19 @@ namespace BizHawk.Client.Common public string GetInputLog() { var sb = new StringBuilder(); - - sb.AppendLine("[Input]"); - sb.Append(RawInputLog()); - sb.AppendLine("[/Input]"); - + var writer = new StringWriter(sb); + WriteInputLog(writer); + writer.Flush(); return sb.ToString(); } + public void WriteInputLog(TextWriter writer) + { + writer.WriteLine("[Input]"); + WriteRawInputLog(writer); + writer.WriteLine("[/Input]"); + } + public string GetInputLogEntry(int frame) { if (frame < FrameCount && frame >= 0) @@ -294,20 +299,17 @@ namespace BizHawk.Client.Common return true; } - protected StringBuilder RawInputLog() + protected void WriteRawInputLog(TextWriter writer) { var lg = new Bk2LogEntryGenerator(LogKey); lg.SetSource(Global.MovieOutputHardpoint); - var sb = new StringBuilder(); - sb.AppendLine(lg.GenerateLogKey()); - sb.EnsureCapacity(sb.Capacity + _log.Count); + writer.WriteLine(lg.GenerateLogKey()); + foreach (var record in _log) { - sb.AppendLine(record); + writer.WriteLine(record); } - - return sb; } /// diff --git a/BizHawk.Client.Common/movie/bkm/BkmMovie.InputLog.cs b/BizHawk.Client.Common/movie/bkm/BkmMovie.InputLog.cs index a508936aca..5926206ce2 100644 --- a/BizHawk.Client.Common/movie/bkm/BkmMovie.InputLog.cs +++ b/BizHawk.Client.Common/movie/bkm/BkmMovie.InputLog.cs @@ -13,17 +13,22 @@ namespace BizHawk.Client.Common public string GetInputLog() { var sb = new StringBuilder(); + var writer = new StringWriter(sb); + WriteInputLog(writer); + writer.Flush(); + return sb.ToString(); + } - sb.AppendLine("[Input]"); + public void WriteInputLog(TextWriter writer) + { + writer.WriteLine("[Input]"); foreach (var record in _log) { - sb.AppendLine(record); + writer.WriteLine(record); } - sb.AppendLine("[/Input]"); - - return sb.ToString(); + writer.WriteLine("[/Input]"); } public string GetInputLogEntry(int frame) diff --git a/BizHawk.Client.Common/movie/interfaces/IMovie.cs b/BizHawk.Client.Common/movie/interfaces/IMovie.cs index d6edda3e0a..4da742a75a 100644 --- a/BizHawk.Client.Common/movie/interfaces/IMovie.cs +++ b/BizHawk.Client.Common/movie/interfaces/IMovie.cs @@ -114,6 +114,11 @@ namespace BizHawk.Client.Common /// returns a string represntation of the input log in its current state string GetInputLog(); + /// + /// Writes the input log directly to the stream, bypassing the need to load it all into ram as a string + /// + void WriteInputLog(TextWriter writer); + /// /// Gets one frame from the input log. /// diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.IO.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.IO.cs index ddf0861d33..ae9ae95442 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovie.IO.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.IO.cs @@ -31,7 +31,7 @@ namespace BizHawk.Client.Common bs.PutLump(BinaryStateLump.Comments, tw => tw.WriteLine(CommentsString())); bs.PutLump(BinaryStateLump.Subtitles, tw => tw.WriteLine(Subtitles.ToString())); bs.PutLump(BinaryStateLump.SyncSettings, tw => tw.WriteLine(SyncSettingsJson)); - bs.PutLump(BinaryStateLump.Input, tw => tw.WriteLine(RawInputLog())); + bs.PutLump(BinaryStateLump.Input, tw => WriteInputLog(tw)); // TasProj extras bs.PutLump(BinaryStateLump.StateHistorySettings, tw => tw.WriteLine(StateManager.Settings.ToString())); From 192458a19053dec4de4df56a25167fa9c2e34d0e Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 14 Jan 2016 01:50:41 -0600 Subject: [PATCH 078/106] try catching some missing prereqs in emuhawk startup and print a report about it --- .../BizHawk.Client.EmuHawk.csproj | 9 + .../CustomControls/PrereqsAlert.Designer.cs | 168 ++++++++++++++++++ .../CustomControls/PrereqsAlert.cs | 36 ++++ .../CustomControls/PrereqsAlert.resx | 124 +++++++++++++ BizHawk.Client.EmuHawk/Program.cs | 44 ++++- 5 files changed, 379 insertions(+), 2 deletions(-) create mode 100644 BizHawk.Client.EmuHawk/CustomControls/PrereqsAlert.Designer.cs create mode 100644 BizHawk.Client.EmuHawk/CustomControls/PrereqsAlert.cs create mode 100644 BizHawk.Client.EmuHawk/CustomControls/PrereqsAlert.resx diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj index 83d24e01eb..a99f24dbb9 100644 --- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj +++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj @@ -504,6 +504,12 @@ MsgBox.cs + + Form + + + PrereqsAlert.cs + Form @@ -1327,6 +1333,9 @@ MsgBox.cs + + PrereqsAlert.cs + QuickProgressPopup.cs diff --git a/BizHawk.Client.EmuHawk/CustomControls/PrereqsAlert.Designer.cs b/BizHawk.Client.EmuHawk/CustomControls/PrereqsAlert.Designer.cs new file mode 100644 index 0000000000..506c08a998 --- /dev/null +++ b/BizHawk.Client.EmuHawk/CustomControls/PrereqsAlert.Designer.cs @@ -0,0 +1,168 @@ +namespace BizHawk.Client.EmuHawk.CustomControls +{ + partial class PrereqsAlert + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PrereqsAlert)); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.label1 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.linkLabel2 = new System.Windows.Forms.LinkLabel(); + this.label3 = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.label4 = new System.Windows.Forms.Label(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // linkLabel1 + // + this.linkLabel1.AutoSize = true; + this.linkLabel1.Location = new System.Drawing.Point(21, 214); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(291, 13); + this.linkLabel1.TabIndex = 0; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "https://sourceforge.net/projects/bizhawk/files/Prerequisites"; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(425, 13); + this.label1.TabIndex = 1; + this.label1.Text = "You\'re missing some of the following prerequisites, which prevents BizHawk from r" + + "unning:"; + // + // textBox1 + // + this.textBox1.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBox1.Location = new System.Drawing.Point(12, 34); + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.ReadOnly = true; + this.textBox1.Size = new System.Drawing.Size(422, 142); + this.textBox1.TabIndex = 2; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(0, 191); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(250, 13); + this.label2.TabIndex = 3; + this.label2.Text = "You should run the latest prerequisites installer from:"; + // + // linkLabel2 + // + this.linkLabel2.AutoSize = true; + this.linkLabel2.Location = new System.Drawing.Point(21, 261); + this.linkLabel2.Name = "linkLabel2"; + this.linkLabel2.Size = new System.Drawing.Size(168, 13); + this.linkLabel2.TabIndex = 4; + this.linkLabel2.TabStop = true; + this.linkLabel2.Text = "http://tasvideos.org/Bizhawk.html"; + this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(3, 238); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(282, 13); + this.label3.TabIndex = 5; + this.label3.Text = "In case that URL is gone, you can get more information at:"; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(374, 370); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.TabIndex = 6; + this.button1.Text = "Close"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(3, 286); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(141, 13); + this.label4.TabIndex = 7; + this.label4.Text = "Here\'s some general advice:"; + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(12, 315); + this.textBox2.Multiline = true; + this.textBox2.Name = "textBox2"; + this.textBox2.ReadOnly = true; + this.textBox2.Size = new System.Drawing.Size(332, 78); + this.textBox2.TabIndex = 8; + this.textBox2.Text = resources.GetString("textBox2.Text"); + // + // PrereqsAlert + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(461, 402); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.label4); + this.Controls.Add(this.button1); + this.Controls.Add(this.label3); + this.Controls.Add(this.linkLabel2); + this.Controls.Add(this.label2); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.label1); + this.Controls.Add(this.linkLabel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "PrereqsAlert"; + this.Text = "Prerequisites Missing!"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.LinkLabel linkLabel2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Button button1; + public System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox textBox2; + } +} \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/CustomControls/PrereqsAlert.cs b/BizHawk.Client.EmuHawk/CustomControls/PrereqsAlert.cs new file mode 100644 index 0000000000..f3f2aebf4c --- /dev/null +++ b/BizHawk.Client.EmuHawk/CustomControls/PrereqsAlert.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace BizHawk.Client.EmuHawk.CustomControls +{ + public partial class PrereqsAlert : Form + { + public PrereqsAlert() + { + InitializeComponent(); + } + + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + linkLabel1.LinkVisited = true; + System.Diagnostics.Process.Start("https://sourceforge.net/projects/bizhawk/files/Prerequisites"); + } + + private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + linkLabel2.LinkVisited = true; + System.Diagnostics.Process.Start("http://tasvideos.org/Bizhawk.html"); + } + + private void button1_Click(object sender, EventArgs e) + { + Close(); + } + } +} diff --git a/BizHawk.Client.EmuHawk/CustomControls/PrereqsAlert.resx b/BizHawk.Client.EmuHawk/CustomControls/PrereqsAlert.resx new file mode 100644 index 0000000000..c4598d71c2 --- /dev/null +++ b/BizHawk.Client.EmuHawk/CustomControls/PrereqsAlert.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + We're not checking the version number of the VC 2010 runtime. Be sure you have the SP1 version installed. +DirectX Web Update is reportedly failing for some people as part of our prereqs installer. Try installing it manually. + + \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/Program.cs b/BizHawk.Client.EmuHawk/Program.cs index 407ed5fe98..bebeeb581b 100644 --- a/BizHawk.Client.EmuHawk/Program.cs +++ b/BizHawk.Client.EmuHawk/Program.cs @@ -19,6 +19,37 @@ namespace BizHawk.Client.EmuHawk { //http://www.codeproject.com/Articles/310675/AppDomain-AssemblyResolve-Event-Tips #if WINDOWS + //try loading libraries we know we'll need + //something in the winforms, etc. code below will cause .net to popup a missing msvcr100.dll in case that one's missing + //but oddly it lets us proceed and we'll then catch it here + var d3dx9 = Win32.LoadLibrary("d3dx9_43.dll"); + var vc2015 = Win32.LoadLibrary("vcruntime140.dll"); + var vc2010 = Win32.LoadLibrary("msvcr100.dll"); //TODO - check version? + var vc2010p = Win32.LoadLibrary("msvcp100.dll"); + bool fail = false; + fail |= d3dx9 == IntPtr.Zero; + fail |= vc2015 == IntPtr.Zero; + fail |= vc2010 == IntPtr.Zero; + fail |= vc2010p == IntPtr.Zero; + if (fail) + { + var sw = new System.IO.StringWriter(); + sw.WriteLine("[ OK ] .Net 4.0 (You couldn't even get here without it)"); + sw.WriteLine("[{0}] Direct3d 9", d3dx9 == IntPtr.Zero ? "FAIL" : " OK "); + sw.WriteLine("[{0}] Visual C++ 2010 SP1 Runtime", (vc2010 == IntPtr.Zero || vc2010p == IntPtr.Zero) ? "FAIL" : " OK "); + sw.WriteLine("[{0}] Visual C++ 2015 Runtime", (vc2015 == IntPtr.Zero) ? "FAIL" : " OK "); + var str = sw.ToString(); + var box = new BizHawk.Client.EmuHawk.CustomControls.PrereqsAlert(); + box.textBox1.Text = str; + box.ShowDialog(); + System.Diagnostics.Process.GetCurrentProcess().Kill(); + } + + Win32.FreeLibrary(d3dx9); + Win32.FreeLibrary(vc2015); + Win32.FreeLibrary(vc2010); + Win32.FreeLibrary(vc2010p); + // this will look in subdirectory "dll" to load pinvoked stuff string dllDir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "dll"); SetDllDirectory(dllDir); @@ -30,6 +61,7 @@ namespace BizHawk.Client.EmuHawk //in case assembly resolution fails, such as if we moved them into the dll subdiretory, this event handler can reroute to them AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); + #endif } @@ -39,12 +71,20 @@ namespace BizHawk.Client.EmuHawk return SubMain(args); } + private static class Win32 + { + [DllImport("kernel32.dll")] + public static extern IntPtr LoadLibrary(string dllToLoad); + [DllImport("kernel32.dll")] + public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName); + [DllImport("kernel32.dll")] + public static extern bool FreeLibrary(IntPtr hModule); + } + //NoInlining should keep this code from getting jammed into Main() which would create dependencies on types which havent been setup by the resolver yet... or something like that [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] static int SubMain(string[] args) { - GlobalWin.ExitCode = 0; - // this check has to be done VERY early. i stepped through a debug build with wrong .dll versions purposely used, // and there was a TypeLoadException before the first line of SubMain was reached (some static ColorType init?) // zero 25-dec-2012 - only do for public builds. its annoying during development From bf93d816e1685e54d685c09e0104326ecdfd4957 Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 14 Jan 2016 01:50:54 -0600 Subject: [PATCH 079/106] why does my visual studio keep changing the newlines in here --- .../BizHawk.Client.ApiHawk.csproj | 190 +++++++++--------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj b/BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj index 1ff45588dc..3d00484fca 100644 --- a/BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj +++ b/BizHawk.Client.ApiHawk/BizHawk.Client.ApiHawk.csproj @@ -1,102 +1,102 @@ - - - - - Debug - AnyCPU - {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA} - Library - Properties - BizHawk.Client.ApiHawk - BizHawk.Client.ApiHawk - v4.0 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - - - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - true - ..\output\dll\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - - - - - ..\output\dll\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - {24a0aa3c-b25f-4197-b23d-476d6462dba0} - BizHawk.Client.Common - - - {866f8d13-0678-4ff9-80a4-a3993fd4d8a3} - BizHawk.Common - - - {e1a23168-b571-411c-b360-2229e7225e0e} - BizHawk.Emulation.Common - - - - - - - + + + + + Debug + AnyCPU + {8E2F11F2-3955-4382-8C3A-CEBA1276CAEA} + Library + Properties + BizHawk.Client.ApiHawk + BizHawk.Client.ApiHawk + v4.0 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + x86 + + + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + true + ..\output\dll\ + DEBUG;TRACE + full + x86 + prompt + MinimumRecommendedRules.ruleset + + + + + ..\output\dll\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + + + + + + + + + + + + + + + + + + + + + + + {24a0aa3c-b25f-4197-b23d-476d6462dba0} + BizHawk.Client.Common + + + {866f8d13-0678-4ff9-80a4-a3993fd4d8a3} + BizHawk.Common + + + {e1a23168-b571-411c-b360-2229e7225e0e} + BizHawk.Emulation.Common + + + + + + + + --> \ No newline at end of file From d786292ccfe9ccb259be8cb78ea51a09743c6cc4 Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 14 Jan 2016 01:51:40 -0600 Subject: [PATCH 080/106] remove unused code Apply MOTW code --- BizHawk.Client.DBMan/Program.cs | 19 ------------------- BizHawk.Client.DiscoHawk/DiscoHawk.cs | 19 ------------------- BizHawk.Client.EmuHawk/Program.cs | 19 ------------------- BizHawk.Client.MultiHawk/Program.cs | 19 ------------------- 4 files changed, 76 deletions(-) diff --git a/BizHawk.Client.DBMan/Program.cs b/BizHawk.Client.DBMan/Program.cs index 4cf8786185..cea5503d08 100644 --- a/BizHawk.Client.DBMan/Program.cs +++ b/BizHawk.Client.DBMan/Program.cs @@ -68,25 +68,6 @@ namespace BizHawk.Client.DBMan DeleteFileW(path + ":Zone.Identifier"); } - //for debugging purposes, this is provided. when we're satisfied everyone understands whats going on, we'll get rid of this - [DllImportAttribute("kernel32.dll", EntryPoint = "CreateFileW")] - public static extern System.IntPtr CreateFileW([InAttribute()] [MarshalAsAttribute(UnmanagedType.LPWStr)] string lpFileName, int dwDesiredAccess, int dwShareMode, [InAttribute()] int lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, [InAttribute()] int hTemplateFile); - static void ApplyMOTW(string path) - { - int generic_write = 0x40000000; - int file_share_write = 2; - int create_always = 2; - var adsHandle = CreateFileW(path + ":Zone.Identifier", generic_write, file_share_write, 0, create_always, 0, 0); - using (var sfh = new Microsoft.Win32.SafeHandles.SafeFileHandle(adsHandle, true)) - { - var adsStream = new System.IO.FileStream(sfh, FileAccess.Write); - StreamWriter sw = new StreamWriter(adsStream); - sw.Write("[ZoneTransfer]\r\nZoneId=3"); - sw.Flush(); - adsStream.Close(); - } - } - static void WhackAllMOTW(string dllDir) { var todo = new Queue(new[] { new DirectoryInfo(dllDir) }); diff --git a/BizHawk.Client.DiscoHawk/DiscoHawk.cs b/BizHawk.Client.DiscoHawk/DiscoHawk.cs index 682af2bfa2..7508c3bcd2 100644 --- a/BizHawk.Client.DiscoHawk/DiscoHawk.cs +++ b/BizHawk.Client.DiscoHawk/DiscoHawk.cs @@ -123,25 +123,6 @@ namespace BizHawk.Client.DiscoHawk DeleteFileW(path + ":Zone.Identifier"); } - //for debugging purposes, this is provided. when we're satisfied everyone understands whats going on, we'll get rid of this - [DllImportAttribute("kernel32.dll", EntryPoint = "CreateFileW")] - public static extern System.IntPtr CreateFileW([InAttribute()] [MarshalAsAttribute(UnmanagedType.LPWStr)] string lpFileName, int dwDesiredAccess, int dwShareMode, [InAttribute()] int lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, [InAttribute()] int hTemplateFile); - static void ApplyMOTW(string path) - { - int generic_write = 0x40000000; - int file_share_write = 2; - int create_always = 2; - var adsHandle = CreateFileW(path + ":Zone.Identifier", generic_write, file_share_write, 0, create_always, 0, 0); - using (var sfh = new Microsoft.Win32.SafeHandles.SafeFileHandle(adsHandle, true)) - { - var adsStream = new System.IO.FileStream(sfh, FileAccess.Write); - StreamWriter sw = new StreamWriter(adsStream); - sw.Write("[ZoneTransfer]\r\nZoneId=3"); - sw.Flush(); - adsStream.Close(); - } - } - static void WhackAllMOTW(string dllDir) { var todo = new Queue(new[] { new DirectoryInfo(dllDir) }); diff --git a/BizHawk.Client.EmuHawk/Program.cs b/BizHawk.Client.EmuHawk/Program.cs index bebeeb581b..3160d4e98b 100644 --- a/BizHawk.Client.EmuHawk/Program.cs +++ b/BizHawk.Client.EmuHawk/Program.cs @@ -285,25 +285,6 @@ namespace BizHawk.Client.EmuHawk DeleteFileW(path + ":Zone.Identifier"); } - //for debugging purposes, this is provided. when we're satisfied everyone understands whats going on, we'll get rid of this - [DllImportAttribute("kernel32.dll", EntryPoint = "CreateFileW")] - public static extern IntPtr CreateFileW([InAttribute()] [MarshalAsAttribute(UnmanagedType.LPWStr)] string lpFileName, int dwDesiredAccess, int dwShareMode, [InAttribute()] int lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, [InAttribute()] int hTemplateFile); - static void ApplyMOTW(string path) - { - int generic_write = 0x40000000; - int file_share_write = 2; - int create_always = 2; - var adsHandle = CreateFileW(path + ":Zone.Identifier", generic_write, file_share_write, 0, create_always, 0, 0); - using (var sfh = new Microsoft.Win32.SafeHandles.SafeFileHandle(adsHandle, true)) - { - var adsStream = new FileStream(sfh, FileAccess.Write); - StreamWriter sw = new StreamWriter(adsStream); - sw.Write("[ZoneTransfer]\r\nZoneId=3"); - sw.Flush(); - adsStream.Close(); - } - } - static void WhackAllMOTW(string dllDir) { var todo = new Queue(new[] { new DirectoryInfo(dllDir) }); diff --git a/BizHawk.Client.MultiHawk/Program.cs b/BizHawk.Client.MultiHawk/Program.cs index 3b2fd1c6b9..800eb0e459 100644 --- a/BizHawk.Client.MultiHawk/Program.cs +++ b/BizHawk.Client.MultiHawk/Program.cs @@ -158,25 +158,6 @@ namespace BizHawk.Client.MultiHawk DeleteFileW(path + ":Zone.Identifier"); } - //for debugging purposes, this is provided. when we're satisfied everyone understands whats going on, we'll get rid of this - [DllImportAttribute("kernel32.dll", EntryPoint = "CreateFileW")] - public static extern IntPtr CreateFileW([InAttribute()] [MarshalAsAttribute(UnmanagedType.LPWStr)] string lpFileName, int dwDesiredAccess, int dwShareMode, [InAttribute()] int lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, [InAttribute()] int hTemplateFile); - static void ApplyMOTW(string path) - { - int generic_write = 0x40000000; - int file_share_write = 2; - int create_always = 2; - var adsHandle = CreateFileW(path + ":Zone.Identifier", generic_write, file_share_write, 0, create_always, 0, 0); - using (var sfh = new Microsoft.Win32.SafeHandles.SafeFileHandle(adsHandle, true)) - { - var adsStream = new FileStream(sfh, FileAccess.Write); - StreamWriter sw = new StreamWriter(adsStream); - sw.Write("[ZoneTransfer]\r\nZoneId=3"); - sw.Flush(); - adsStream.Close(); - } - } - static void WhackAllMOTW(string dllDir) { var todo = new Queue(new[] { new DirectoryInfo(dllDir) }); From e4a4a9606c1474e46bbbb2ecf38e053f1df2cea6 Mon Sep 17 00:00:00 2001 From: pjgat09 Date: Fri, 15 Jan 2016 21:19:25 -0500 Subject: [PATCH 081/106] Lua forms: Added a scrollbars argument for creating a textbox. --- .../Lua/Libraries/EmuLuaLibrary.Forms.cs | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Forms.cs b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Forms.cs index e9be4da0e9..0de2784db0 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Forms.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/Libraries/EmuLuaLibrary.Forms.cs @@ -565,7 +565,7 @@ namespace BizHawk.Client.EmuHawk [LuaMethodAttributes( "textbox", - "Creates a textbox control on the given form. The caption property will be the initial value of the textbox (default is empty). Width and Height are option, if not specified they will be a default size of 100, 20. Type is an optional property to restrict the textbox input. The available options are HEX, SIGNED, and UNSIGNED. Passing it null or any other value will set it to no restriction. x, and y are the optional location parameters for the position of the textbox within the given form. The function returns the handle of the created textbox. If true, the multiline will enable the standard winform multi-line property. If true, the fixedWidth options will create a fixed width font" + "Creates a textbox control on the given form. The caption property will be the initial value of the textbox (default is empty). Width and Height are option, if not specified they will be a default size of 100, 20. Type is an optional property to restrict the textbox input. The available options are HEX, SIGNED, and UNSIGNED. Passing it null or any other value will set it to no restriction. x, and y are the optional location parameters for the position of the textbox within the given form. The function returns the handle of the created textbox. If true, the multiline will enable the standard winform multi-line property. If true, the fixedWidth options will create a fixed width font. Scrollbars is an optional property to specify which scrollbars to display. The available options are Vertical, Horizontal, Both, and None. Scrollbars are only shown on a multiline textbox" )] public int Textbox( int formHandle, @@ -576,7 +576,8 @@ namespace BizHawk.Client.EmuHawk int? x = null, int? y = null, bool multiline = false, - bool fixedWidth = false) + bool fixedWidth = false, + string scrollbars = null) { var form = GetForm(formHandle); if (form == null) @@ -591,6 +592,26 @@ namespace BizHawk.Client.EmuHawk } textbox.Multiline = multiline; + if (scrollbars != null) + { + switch (scrollbars.ToUpper()) + { + case "VERTICAL": + textbox.ScrollBars = ScrollBars.Vertical; + break; + case "HORIZONTAL": + textbox.ScrollBars = ScrollBars.Horizontal; + textbox.WordWrap = false; + break; + case "BOTH": + textbox.ScrollBars = ScrollBars.Both; + textbox.WordWrap = false; + break; + case "NONE": + textbox.ScrollBars = ScrollBars.None; + break; + } + } SetText(textbox, caption); if (x.HasValue && y.HasValue) From 7949e2e18232f2925d5cee258e52e5282e59e6b6 Mon Sep 17 00:00:00 2001 From: Adam Sturge Date: Fri, 15 Jan 2016 19:14:59 -0800 Subject: [PATCH 082/106] Added Directory.Exists check for Movie director when clicking the browse button --- BizHawk.Client.EmuHawk/movie/RecordMovie.cs | 24 +++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/BizHawk.Client.EmuHawk/movie/RecordMovie.cs b/BizHawk.Client.EmuHawk/movie/RecordMovie.cs index fb8fdfc849..323ac13b61 100644 --- a/BizHawk.Client.EmuHawk/movie/RecordMovie.cs +++ b/BizHawk.Client.EmuHawk/movie/RecordMovie.cs @@ -150,10 +150,30 @@ namespace BizHawk.Client.EmuHawk } private void BrowseBtn_Click(object sender, EventArgs e) - { + { + string movieFolderPath = PathManager.MakeAbsolutePath(Global.Config.PathEntries.MoviesPathFragment, null); + + // Create movie folder if it doesn't already exist + try + { + if (!Directory.Exists(movieFolderPath)) + { + Directory.CreateDirectory(movieFolderPath); + } + } + catch (Exception movieDirException) + when ( + movieDirException is IOException || + movieDirException is UnauthorizedAccessException || + movieDirException is PathTooLongException + ) + { + + } + var sfd = new SaveFileDialog { - InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.PathEntries.MoviesPathFragment, null), + InitialDirectory = movieFolderPath, DefaultExt = "." + Global.MovieSession.Movie.PreferredExtension, FileName = RecordBox.Text, OverwritePrompt = false, From 2f11a3adca296779d05167bc1a1babdc6c335243 Mon Sep 17 00:00:00 2001 From: Adam Sturge Date: Fri, 15 Jan 2016 19:16:35 -0800 Subject: [PATCH 083/106] Updated brace alignment --- BizHawk.Client.EmuHawk/movie/RecordMovie.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BizHawk.Client.EmuHawk/movie/RecordMovie.cs b/BizHawk.Client.EmuHawk/movie/RecordMovie.cs index 323ac13b61..17ad298449 100644 --- a/BizHawk.Client.EmuHawk/movie/RecordMovie.cs +++ b/BizHawk.Client.EmuHawk/movie/RecordMovie.cs @@ -166,9 +166,9 @@ namespace BizHawk.Client.EmuHawk movieDirException is IOException || movieDirException is UnauthorizedAccessException || movieDirException is PathTooLongException - ) - { - + ) + { + //TO DO : Pass error to user? } var sfd = new SaveFileDialog From a7f24179cb20b442505d5398e6fee5859dd865b4 Mon Sep 17 00:00:00 2001 From: Adam Sturge Date: Sat, 16 Jan 2016 16:22:39 -0800 Subject: [PATCH 084/106] Added UI components for specifying comparision values. Added logic to control enabling them. --- .../tools/BasicBot/BasicBot.Designer.cs | 1891 +++++++++-------- .../tools/BasicBot/BasicBot.cs | 85 +- 2 files changed, 1139 insertions(+), 837 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs index 9fb14f3aa9..68b07cc604 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs @@ -28,107 +28,131 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BasicBot)); - this.BotMenu = new MenuStripEx(); - this.FileSubMenu = new System.Windows.Forms.ToolStripMenuItem(); - this.NewMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.OpenMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.SaveMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.SaveAsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.RecentSubMenu = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.ExitMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.OptionsSubMenu = new System.Windows.Forms.ToolStripMenuItem(); - this.MemoryDomainsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); - this.DataSizeMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this._1ByteMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this._2ByteMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this._4ByteMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.BigEndianMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); - this.TurboWhileBottingMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.RunBtn = new System.Windows.Forms.Button(); - this.BotStatusStrip = new System.Windows.Forms.StatusStrip(); - this.BotStatusButton = new System.Windows.Forms.ToolStripStatusLabel(); - this.MessageLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.ControlsBox = new System.Windows.Forms.GroupBox(); - this.ControlProbabilityPanel = new System.Windows.Forms.Panel(); - this.BestGroupBox = new System.Windows.Forms.GroupBox(); - this.PlayBestButton = new System.Windows.Forms.Button(); - this.ClearBestButton = new System.Windows.Forms.Button(); - this.BestAttemptNumberLabel = new System.Windows.Forms.Label(); - this.label17 = new System.Windows.Forms.Label(); - this.panel1 = new System.Windows.Forms.Panel(); - this.BestAttemptLogLabel = new System.Windows.Forms.Label(); - this.BestTieBreak3Box = new System.Windows.Forms.TextBox(); - this.BestTieBreak2Box = new System.Windows.Forms.TextBox(); - this.BestTieBreak1Box = new System.Windows.Forms.TextBox(); - this.BestMaximizeBox = new System.Windows.Forms.TextBox(); - this.label16 = new System.Windows.Forms.Label(); - this.label15 = new System.Windows.Forms.Label(); - this.label14 = new System.Windows.Forms.Label(); - this.label13 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.AttemptsLabel = new System.Windows.Forms.Label(); - this.FramesLabel = new System.Windows.Forms.Label(); - this.GoalGroupBox = new System.Windows.Forms.GroupBox(); - this.Tiebreak3Operator = new System.Windows.Forms.ComboBox(); - this.Tiebreak2Operator = new System.Windows.Forms.ComboBox(); - this.Tiebreak1Operator = new System.Windows.Forms.ComboBox(); - this.mainOperator = new System.Windows.Forms.ComboBox(); - this.label12 = new System.Windows.Forms.Label(); - this.label11 = new System.Windows.Forms.Label(); - this.label10 = new System.Windows.Forms.Label(); - this.label9 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.TieBreaker1Box = new BizHawk.Client.EmuHawk.HexTextBox(); - this.TieBreaker2Box = new BizHawk.Client.EmuHawk.HexTextBox(); - this.TieBreaker3Box = new BizHawk.Client.EmuHawk.HexTextBox(); - this.label5 = new System.Windows.Forms.Label(); - this.MaximizeAddressBox = new BizHawk.Client.EmuHawk.HexTextBox(); - this.maximizeLabeltext = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.FrameLengthNumeric = new System.Windows.Forms.NumericUpDown(); - this.label3 = new System.Windows.Forms.Label(); - this.StopBtn = new System.Windows.Forms.Button(); - this.label8 = new System.Windows.Forms.Label(); - this.StartFromSlotBox = new System.Windows.Forms.ComboBox(); - this.ControlGroupBox = new System.Windows.Forms.GroupBox(); - this.panel2 = new System.Windows.Forms.Panel(); - this.StatsContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components); - this.ClearStatsContextMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.BotMenu.SuspendLayout(); - this.BotStatusStrip.SuspendLayout(); - this.ControlsBox.SuspendLayout(); - this.BestGroupBox.SuspendLayout(); - this.panel1.SuspendLayout(); - this.GoalGroupBox.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.FrameLengthNumeric)).BeginInit(); - this.ControlGroupBox.SuspendLayout(); - this.panel2.SuspendLayout(); - this.StatsContextMenu.SuspendLayout(); - this.SuspendLayout(); - // - // BotMenu - // - this.BotMenu.ClickThrough = true; - this.BotMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BasicBot)); + this.BotMenu = new MenuStripEx(); + this.FileSubMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.NewMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.OpenMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.SaveMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.SaveAsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.RecentSubMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.ExitMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.OptionsSubMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.MemoryDomainsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.DataSizeMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this._1ByteMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this._2ByteMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this._4ByteMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.BigEndianMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); + this.TurboWhileBottingMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.RunBtn = new System.Windows.Forms.Button(); + this.BotStatusStrip = new System.Windows.Forms.StatusStrip(); + this.BotStatusButton = new System.Windows.Forms.ToolStripStatusLabel(); + this.MessageLabel = new System.Windows.Forms.ToolStripStatusLabel(); + this.ControlsBox = new System.Windows.Forms.GroupBox(); + this.ControlProbabilityPanel = new System.Windows.Forms.Panel(); + this.BestGroupBox = new System.Windows.Forms.GroupBox(); + this.PlayBestButton = new System.Windows.Forms.Button(); + this.ClearBestButton = new System.Windows.Forms.Button(); + this.BestAttemptNumberLabel = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.BestAttemptLogLabel = new System.Windows.Forms.Label(); + this.BestTieBreak3Box = new System.Windows.Forms.TextBox(); + this.BestTieBreak2Box = new System.Windows.Forms.TextBox(); + this.BestTieBreak1Box = new System.Windows.Forms.TextBox(); + this.BestMaximizeBox = new System.Windows.Forms.TextBox(); + this.label16 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.AttemptsLabel = new System.Windows.Forms.Label(); + this.FramesLabel = new System.Windows.Forms.Label(); + this.GoalGroupBox = new System.Windows.Forms.GroupBox(); + this.Tiebreak2Operator = new System.Windows.Forms.ComboBox(); + this.Tiebreak1Operator = new System.Windows.Forms.ComboBox(); + this.label11 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.TieBreaker1Box = new BizHawk.Client.EmuHawk.HexTextBox(); + this.TieBreaker2Box = new BizHawk.Client.EmuHawk.HexTextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.FrameLengthNumeric = new System.Windows.Forms.NumericUpDown(); + this.label3 = new System.Windows.Forms.Label(); + this.StopBtn = new System.Windows.Forms.Button(); + this.label8 = new System.Windows.Forms.Label(); + this.StartFromSlotBox = new System.Windows.Forms.ComboBox(); + this.ControlGroupBox = new System.Windows.Forms.GroupBox(); + this.panel2 = new System.Windows.Forms.Panel(); + this.StatsContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components); + this.ClearStatsContextMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.panel3 = new System.Windows.Forms.Panel(); + this.mainOperator = new System.Windows.Forms.ComboBox(); + this.label9 = new System.Windows.Forms.Label(); + this.MaximizeAddressBox = new BizHawk.Client.EmuHawk.HexTextBox(); + this.maximizeLabeltext = new System.Windows.Forms.Label(); + this.mainBestRadio = new System.Windows.Forms.RadioButton(); + this.mainValueRadio = new System.Windows.Forms.RadioButton(); + this.mainValueNumeric = new System.Windows.Forms.NumericUpDown(); + this.panel4 = new System.Windows.Forms.Panel(); + this.tiebreak1Numeric = new System.Windows.Forms.NumericUpDown(); + this.tiebreak1ValueRadio = new System.Windows.Forms.RadioButton(); + this.tiebreak1BestRadio = new System.Windows.Forms.RadioButton(); + this.panel5 = new System.Windows.Forms.Panel(); + this.tiebreak2Numeric = new System.Windows.Forms.NumericUpDown(); + this.tiebreak2ValueRadio = new System.Windows.Forms.RadioButton(); + this.tiebreak2BestRadio = new System.Windows.Forms.RadioButton(); + this.panel6 = new System.Windows.Forms.Panel(); + this.tiebreak3Numeric = new System.Windows.Forms.NumericUpDown(); + this.tiebreak3ValueRadio = new System.Windows.Forms.RadioButton(); + this.tiebreak3BestRadio = new System.Windows.Forms.RadioButton(); + this.Tiebreak3Operator = new System.Windows.Forms.ComboBox(); + this.label12 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.TieBreaker3Box = new BizHawk.Client.EmuHawk.HexTextBox(); + this.BotMenu.SuspendLayout(); + this.BotStatusStrip.SuspendLayout(); + this.ControlsBox.SuspendLayout(); + this.BestGroupBox.SuspendLayout(); + this.panel1.SuspendLayout(); + this.GoalGroupBox.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.FrameLengthNumeric)).BeginInit(); + this.ControlGroupBox.SuspendLayout(); + this.panel2.SuspendLayout(); + this.StatsContextMenu.SuspendLayout(); + this.panel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.mainValueNumeric)).BeginInit(); + this.panel4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tiebreak1Numeric)).BeginInit(); + this.panel5.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tiebreak2Numeric)).BeginInit(); + this.panel6.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tiebreak3Numeric)).BeginInit(); + this.SuspendLayout(); + // + // BotMenu + // + this.BotMenu.ClickThrough = true; + this.BotMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.FileSubMenu, this.OptionsSubMenu}); - this.BotMenu.Location = new System.Drawing.Point(0, 0); - this.BotMenu.Name = "BotMenu"; - this.BotMenu.Size = new System.Drawing.Size(587, 24); - this.BotMenu.TabIndex = 0; - this.BotMenu.Text = "menuStrip1"; - // - // FileSubMenu - // - this.FileSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.BotMenu.Location = new System.Drawing.Point(0, 0); + this.BotMenu.Name = "BotMenu"; + this.BotMenu.Size = new System.Drawing.Size(842, 24); + this.BotMenu.TabIndex = 0; + this.BotMenu.Text = "menuStrip1"; + // + // FileSubMenu + // + this.FileSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.NewMenuItem, this.OpenMenuItem, this.SaveMenuItem, @@ -136,694 +160,591 @@ this.RecentSubMenu, this.toolStripSeparator1, this.ExitMenuItem}); - this.FileSubMenu.Name = "FileSubMenu"; - this.FileSubMenu.Size = new System.Drawing.Size(37, 20); - this.FileSubMenu.Text = "&File"; - this.FileSubMenu.DropDownOpened += new System.EventHandler(this.FileSubMenu_DropDownOpened); - // - // NewMenuItem - // - this.NewMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.NewFile; - this.NewMenuItem.Name = "NewMenuItem"; - this.NewMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); - this.NewMenuItem.Size = new System.Drawing.Size(195, 22); - this.NewMenuItem.Text = "&New"; - this.NewMenuItem.Click += new System.EventHandler(this.NewMenuItem_Click); - // - // OpenMenuItem - // - this.OpenMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.OpenFile; - this.OpenMenuItem.Name = "OpenMenuItem"; - this.OpenMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.OpenMenuItem.Size = new System.Drawing.Size(195, 22); - this.OpenMenuItem.Text = "&Open..."; - this.OpenMenuItem.Click += new System.EventHandler(this.OpenMenuItem_Click); - // - // SaveMenuItem - // - this.SaveMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs; - this.SaveMenuItem.Name = "SaveMenuItem"; - this.SaveMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); - this.SaveMenuItem.Size = new System.Drawing.Size(195, 22); - this.SaveMenuItem.Text = "&Save"; - this.SaveMenuItem.Click += new System.EventHandler(this.SaveMenuItem_Click); - // - // SaveAsMenuItem - // - this.SaveAsMenuItem.Name = "SaveAsMenuItem"; - this.SaveAsMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) + this.FileSubMenu.Name = "FileSubMenu"; + this.FileSubMenu.Size = new System.Drawing.Size(37, 20); + this.FileSubMenu.Text = "&File"; + this.FileSubMenu.DropDownOpened += new System.EventHandler(this.FileSubMenu_DropDownOpened); + // + // NewMenuItem + // + this.NewMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.NewFile; + this.NewMenuItem.Name = "NewMenuItem"; + this.NewMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); + this.NewMenuItem.Size = new System.Drawing.Size(195, 22); + this.NewMenuItem.Text = "&New"; + this.NewMenuItem.Click += new System.EventHandler(this.NewMenuItem_Click); + // + // OpenMenuItem + // + this.OpenMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.OpenFile; + this.OpenMenuItem.Name = "OpenMenuItem"; + this.OpenMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); + this.OpenMenuItem.Size = new System.Drawing.Size(195, 22); + this.OpenMenuItem.Text = "&Open..."; + this.OpenMenuItem.Click += new System.EventHandler(this.OpenMenuItem_Click); + // + // SaveMenuItem + // + this.SaveMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs; + this.SaveMenuItem.Name = "SaveMenuItem"; + this.SaveMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); + this.SaveMenuItem.Size = new System.Drawing.Size(195, 22); + this.SaveMenuItem.Text = "&Save"; + this.SaveMenuItem.Click += new System.EventHandler(this.SaveMenuItem_Click); + // + // SaveAsMenuItem + // + this.SaveAsMenuItem.Name = "SaveAsMenuItem"; + this.SaveAsMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.S))); - this.SaveAsMenuItem.Size = new System.Drawing.Size(195, 22); - this.SaveAsMenuItem.Text = "Save &As..."; - this.SaveAsMenuItem.Click += new System.EventHandler(this.SaveAsMenuItem_Click); - // - // RecentSubMenu - // - this.RecentSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.SaveAsMenuItem.Size = new System.Drawing.Size(195, 22); + this.SaveAsMenuItem.Text = "Save &As..."; + this.SaveAsMenuItem.Click += new System.EventHandler(this.SaveAsMenuItem_Click); + // + // RecentSubMenu + // + this.RecentSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripSeparator2}); - this.RecentSubMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; - this.RecentSubMenu.Name = "RecentSubMenu"; - this.RecentSubMenu.Size = new System.Drawing.Size(195, 22); - this.RecentSubMenu.Text = "Recent"; - this.RecentSubMenu.DropDownOpened += new System.EventHandler(this.RecentSubMenu_DropDownOpened); - // - // toolStripSeparator2 - // - this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(57, 6); - // - // toolStripSeparator1 - // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(192, 6); - // - // ExitMenuItem - // - this.ExitMenuItem.Name = "ExitMenuItem"; - this.ExitMenuItem.ShortcutKeyDisplayString = "Alt+F4"; - this.ExitMenuItem.Size = new System.Drawing.Size(195, 22); - this.ExitMenuItem.Text = "E&xit"; - this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); - // - // OptionsSubMenu - // - this.OptionsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.RecentSubMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; + this.RecentSubMenu.Name = "RecentSubMenu"; + this.RecentSubMenu.Size = new System.Drawing.Size(195, 22); + this.RecentSubMenu.Text = "Recent"; + this.RecentSubMenu.DropDownOpened += new System.EventHandler(this.RecentSubMenu_DropDownOpened); + // + // toolStripSeparator2 + // + this.toolStripSeparator2.Name = "toolStripSeparator2"; + this.toolStripSeparator2.Size = new System.Drawing.Size(57, 6); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(192, 6); + // + // ExitMenuItem + // + this.ExitMenuItem.Name = "ExitMenuItem"; + this.ExitMenuItem.ShortcutKeyDisplayString = "Alt+F4"; + this.ExitMenuItem.Size = new System.Drawing.Size(195, 22); + this.ExitMenuItem.Text = "E&xit"; + this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); + // + // OptionsSubMenu + // + this.OptionsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.MemoryDomainsMenuItem, this.DataSizeMenuItem, this.BigEndianMenuItem, this.toolStripSeparator4, this.TurboWhileBottingMenuItem}); - this.OptionsSubMenu.Name = "OptionsSubMenu"; - this.OptionsSubMenu.Size = new System.Drawing.Size(61, 20); - this.OptionsSubMenu.Text = "&Options"; - this.OptionsSubMenu.DropDownOpened += new System.EventHandler(this.OptionsSubMenu_DropDownOpened); - // - // MemoryDomainsMenuItem - // - this.MemoryDomainsMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.OptionsSubMenu.Name = "OptionsSubMenu"; + this.OptionsSubMenu.Size = new System.Drawing.Size(61, 20); + this.OptionsSubMenu.Text = "&Options"; + this.OptionsSubMenu.DropDownOpened += new System.EventHandler(this.OptionsSubMenu_DropDownOpened); + // + // MemoryDomainsMenuItem + // + this.MemoryDomainsMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripSeparator3}); - this.MemoryDomainsMenuItem.Name = "MemoryDomainsMenuItem"; - this.MemoryDomainsMenuItem.Size = new System.Drawing.Size(181, 22); - this.MemoryDomainsMenuItem.Text = "Memory Domains"; - this.MemoryDomainsMenuItem.DropDownOpened += new System.EventHandler(this.MemoryDomainsMenuItem_DropDownOpened); - // - // toolStripSeparator3 - // - this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(57, 6); - // - // DataSizeMenuItem - // - this.DataSizeMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.MemoryDomainsMenuItem.Name = "MemoryDomainsMenuItem"; + this.MemoryDomainsMenuItem.Size = new System.Drawing.Size(181, 22); + this.MemoryDomainsMenuItem.Text = "Memory Domains"; + this.MemoryDomainsMenuItem.DropDownOpened += new System.EventHandler(this.MemoryDomainsMenuItem_DropDownOpened); + // + // toolStripSeparator3 + // + this.toolStripSeparator3.Name = "toolStripSeparator3"; + this.toolStripSeparator3.Size = new System.Drawing.Size(57, 6); + // + // DataSizeMenuItem + // + this.DataSizeMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this._1ByteMenuItem, this._2ByteMenuItem, this._4ByteMenuItem}); - this.DataSizeMenuItem.Name = "DataSizeMenuItem"; - this.DataSizeMenuItem.Size = new System.Drawing.Size(181, 22); - this.DataSizeMenuItem.Text = "Data Size"; - this.DataSizeMenuItem.DropDownOpened += new System.EventHandler(this.DataSizeMenuItem_DropDownOpened); - // - // _1ByteMenuItem - // - this._1ByteMenuItem.Name = "_1ByteMenuItem"; - this._1ByteMenuItem.Size = new System.Drawing.Size(111, 22); - this._1ByteMenuItem.Text = "1 Byte"; - this._1ByteMenuItem.Click += new System.EventHandler(this._1ByteMenuItem_Click); - // - // _2ByteMenuItem - // - this._2ByteMenuItem.Name = "_2ByteMenuItem"; - this._2ByteMenuItem.Size = new System.Drawing.Size(111, 22); - this._2ByteMenuItem.Text = "2 Bytes"; - this._2ByteMenuItem.Click += new System.EventHandler(this._2ByteMenuItem_Click); - // - // _4ByteMenuItem - // - this._4ByteMenuItem.Name = "_4ByteMenuItem"; - this._4ByteMenuItem.Size = new System.Drawing.Size(111, 22); - this._4ByteMenuItem.Text = "4 Bytes"; - this._4ByteMenuItem.Click += new System.EventHandler(this._4ByteMenuItem_Click); - // - // BigEndianMenuItem - // - this.BigEndianMenuItem.Name = "BigEndianMenuItem"; - this.BigEndianMenuItem.Size = new System.Drawing.Size(181, 22); - this.BigEndianMenuItem.Text = "Big Endian"; - this.BigEndianMenuItem.Click += new System.EventHandler(this.BigEndianMenuItem_Click); - // - // toolStripSeparator4 - // - this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(178, 6); - // - // TurboWhileBottingMenuItem - // - this.TurboWhileBottingMenuItem.Name = "TurboWhileBottingMenuItem"; - this.TurboWhileBottingMenuItem.Size = new System.Drawing.Size(181, 22); - this.TurboWhileBottingMenuItem.Text = "Turbo While Botting"; - this.TurboWhileBottingMenuItem.Click += new System.EventHandler(this.TurboWhileBottingMenuItem_Click); - // - // RunBtn - // - this.RunBtn.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Play; - this.RunBtn.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.RunBtn.Location = new System.Drawing.Point(6, 56); - this.RunBtn.Name = "RunBtn"; - this.RunBtn.Size = new System.Drawing.Size(75, 23); - this.RunBtn.TabIndex = 2001; - this.RunBtn.Text = "&Run"; - this.RunBtn.UseVisualStyleBackColor = true; - this.RunBtn.Click += new System.EventHandler(this.RunBtn_Click); - // - // BotStatusStrip - // - this.BotStatusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.DataSizeMenuItem.Name = "DataSizeMenuItem"; + this.DataSizeMenuItem.Size = new System.Drawing.Size(181, 22); + this.DataSizeMenuItem.Text = "Data Size"; + this.DataSizeMenuItem.DropDownOpened += new System.EventHandler(this.DataSizeMenuItem_DropDownOpened); + // + // _1ByteMenuItem + // + this._1ByteMenuItem.Name = "_1ByteMenuItem"; + this._1ByteMenuItem.Size = new System.Drawing.Size(111, 22); + this._1ByteMenuItem.Text = "1 Byte"; + this._1ByteMenuItem.Click += new System.EventHandler(this._1ByteMenuItem_Click); + // + // _2ByteMenuItem + // + this._2ByteMenuItem.Name = "_2ByteMenuItem"; + this._2ByteMenuItem.Size = new System.Drawing.Size(111, 22); + this._2ByteMenuItem.Text = "2 Bytes"; + this._2ByteMenuItem.Click += new System.EventHandler(this._2ByteMenuItem_Click); + // + // _4ByteMenuItem + // + this._4ByteMenuItem.Name = "_4ByteMenuItem"; + this._4ByteMenuItem.Size = new System.Drawing.Size(111, 22); + this._4ByteMenuItem.Text = "4 Bytes"; + this._4ByteMenuItem.Click += new System.EventHandler(this._4ByteMenuItem_Click); + // + // BigEndianMenuItem + // + this.BigEndianMenuItem.Name = "BigEndianMenuItem"; + this.BigEndianMenuItem.Size = new System.Drawing.Size(181, 22); + this.BigEndianMenuItem.Text = "Big Endian"; + this.BigEndianMenuItem.Click += new System.EventHandler(this.BigEndianMenuItem_Click); + // + // toolStripSeparator4 + // + this.toolStripSeparator4.Name = "toolStripSeparator4"; + this.toolStripSeparator4.Size = new System.Drawing.Size(178, 6); + // + // TurboWhileBottingMenuItem + // + this.TurboWhileBottingMenuItem.Name = "TurboWhileBottingMenuItem"; + this.TurboWhileBottingMenuItem.Size = new System.Drawing.Size(181, 22); + this.TurboWhileBottingMenuItem.Text = "Turbo While Botting"; + this.TurboWhileBottingMenuItem.Click += new System.EventHandler(this.TurboWhileBottingMenuItem_Click); + // + // RunBtn + // + this.RunBtn.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Play; + this.RunBtn.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.RunBtn.Location = new System.Drawing.Point(6, 56); + this.RunBtn.Name = "RunBtn"; + this.RunBtn.Size = new System.Drawing.Size(75, 23); + this.RunBtn.TabIndex = 2001; + this.RunBtn.Text = "&Run"; + this.RunBtn.UseVisualStyleBackColor = true; + this.RunBtn.Click += new System.EventHandler(this.RunBtn_Click); + // + // BotStatusStrip + // + this.BotStatusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.BotStatusButton, this.MessageLabel}); - this.BotStatusStrip.Location = new System.Drawing.Point(0, 565); - this.BotStatusStrip.Name = "BotStatusStrip"; - this.BotStatusStrip.Size = new System.Drawing.Size(587, 22); - this.BotStatusStrip.TabIndex = 2; - this.BotStatusStrip.Text = "statusStrip1"; - // - // BotStatusButton - // - this.BotStatusButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.BotStatusButton.Image = ((System.Drawing.Image)(resources.GetObject("BotStatusButton.Image"))); - this.BotStatusButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.BotStatusButton.Name = "BotStatusButton"; - this.BotStatusButton.RightToLeftAutoMirrorImage = true; - this.BotStatusButton.Size = new System.Drawing.Size(16, 17); - this.BotStatusButton.Text = " "; - this.BotStatusButton.ToolTipText = " "; - // - // MessageLabel - // - this.MessageLabel.Name = "MessageLabel"; - this.MessageLabel.Size = new System.Drawing.Size(109, 17); - this.MessageLabel.Text = " "; - // - // ControlsBox - // - this.ControlsBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.BotStatusStrip.Location = new System.Drawing.Point(0, 565); + this.BotStatusStrip.Name = "BotStatusStrip"; + this.BotStatusStrip.Size = new System.Drawing.Size(842, 22); + this.BotStatusStrip.TabIndex = 2; + this.BotStatusStrip.Text = "statusStrip1"; + // + // BotStatusButton + // + this.BotStatusButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.BotStatusButton.Image = ((System.Drawing.Image)(resources.GetObject("BotStatusButton.Image"))); + this.BotStatusButton.ImageTransparentColor = System.Drawing.Color.Magenta; + this.BotStatusButton.Name = "BotStatusButton"; + this.BotStatusButton.RightToLeftAutoMirrorImage = true; + this.BotStatusButton.Size = new System.Drawing.Size(16, 17); + this.BotStatusButton.Text = " "; + this.BotStatusButton.ToolTipText = " "; + // + // MessageLabel + // + this.MessageLabel.Name = "MessageLabel"; + this.MessageLabel.Size = new System.Drawing.Size(109, 17); + this.MessageLabel.Text = " "; + // + // ControlsBox + // + this.ControlsBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.ControlsBox.Controls.Add(this.ControlProbabilityPanel); - this.ControlsBox.Location = new System.Drawing.Point(12, 183); - this.ControlsBox.Name = "ControlsBox"; - this.ControlsBox.Size = new System.Drawing.Size(312, 369); - this.ControlsBox.TabIndex = 3; - this.ControlsBox.TabStop = false; - this.ControlsBox.Text = "Controls"; - // - // ControlProbabilityPanel - // - this.ControlProbabilityPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.ControlsBox.Controls.Add(this.ControlProbabilityPanel); + this.ControlsBox.Location = new System.Drawing.Point(12, 183); + this.ControlsBox.Name = "ControlsBox"; + this.ControlsBox.Size = new System.Drawing.Size(567, 369); + this.ControlsBox.TabIndex = 3; + this.ControlsBox.TabStop = false; + this.ControlsBox.Text = "Controls"; + // + // ControlProbabilityPanel + // + this.ControlProbabilityPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.ControlProbabilityPanel.AutoScroll = true; - this.ControlProbabilityPanel.Location = new System.Drawing.Point(6, 19); - this.ControlProbabilityPanel.Name = "ControlProbabilityPanel"; - this.ControlProbabilityPanel.Size = new System.Drawing.Size(299, 344); - this.ControlProbabilityPanel.TabIndex = 0; - // - // BestGroupBox - // - this.BestGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.ControlProbabilityPanel.AutoScroll = true; + this.ControlProbabilityPanel.Location = new System.Drawing.Point(6, 19); + this.ControlProbabilityPanel.Name = "ControlProbabilityPanel"; + this.ControlProbabilityPanel.Size = new System.Drawing.Size(554, 344); + this.ControlProbabilityPanel.TabIndex = 0; + // + // BestGroupBox + // + this.BestGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Right))); - this.BestGroupBox.Controls.Add(this.PlayBestButton); - this.BestGroupBox.Controls.Add(this.ClearBestButton); - this.BestGroupBox.Controls.Add(this.BestAttemptNumberLabel); - this.BestGroupBox.Controls.Add(this.label17); - this.BestGroupBox.Controls.Add(this.panel1); - this.BestGroupBox.Controls.Add(this.BestTieBreak3Box); - this.BestGroupBox.Controls.Add(this.BestTieBreak2Box); - this.BestGroupBox.Controls.Add(this.BestTieBreak1Box); - this.BestGroupBox.Controls.Add(this.BestMaximizeBox); - this.BestGroupBox.Controls.Add(this.label16); - this.BestGroupBox.Controls.Add(this.label15); - this.BestGroupBox.Controls.Add(this.label14); - this.BestGroupBox.Controls.Add(this.label13); - this.BestGroupBox.Location = new System.Drawing.Point(330, 183); - this.BestGroupBox.Name = "BestGroupBox"; - this.BestGroupBox.Size = new System.Drawing.Size(245, 369); - this.BestGroupBox.TabIndex = 4; - this.BestGroupBox.TabStop = false; - this.BestGroupBox.Text = "Best"; - // - // PlayBestButton - // - this.PlayBestButton.Enabled = false; - this.PlayBestButton.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Play; - this.PlayBestButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.PlayBestButton.Location = new System.Drawing.Point(12, 46); - this.PlayBestButton.Name = "PlayBestButton"; - this.PlayBestButton.Size = new System.Drawing.Size(75, 23); - this.PlayBestButton.TabIndex = 2004; - this.PlayBestButton.Text = "&Play"; - this.PlayBestButton.UseVisualStyleBackColor = true; - this.PlayBestButton.Click += new System.EventHandler(this.PlayBestButton_Click); - // - // ClearBestButton - // - this.ClearBestButton.Enabled = false; - this.ClearBestButton.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Close; - this.ClearBestButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.ClearBestButton.Location = new System.Drawing.Point(12, 70); - this.ClearBestButton.Name = "ClearBestButton"; - this.ClearBestButton.Size = new System.Drawing.Size(75, 23); - this.ClearBestButton.TabIndex = 2003; - this.ClearBestButton.Text = "&Clear"; - this.ClearBestButton.UseVisualStyleBackColor = true; - this.ClearBestButton.Click += new System.EventHandler(this.ClearBestButton_Click); - // - // BestAttemptNumberLabel - // - this.BestAttemptNumberLabel.AutoSize = true; - this.BestAttemptNumberLabel.Location = new System.Drawing.Point(59, 20); - this.BestAttemptNumberLabel.Name = "BestAttemptNumberLabel"; - this.BestAttemptNumberLabel.Size = new System.Drawing.Size(13, 13); - this.BestAttemptNumberLabel.TabIndex = 23; - this.BestAttemptNumberLabel.Text = "0"; - // - // label17 - // - this.label17.AutoSize = true; - this.label17.Location = new System.Drawing.Point(17, 20); - this.label17.Name = "label17"; - this.label17.Size = new System.Drawing.Size(46, 13); - this.label17.TabIndex = 22; - this.label17.Text = "Attempt:"; - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + this.BestGroupBox.Controls.Add(this.PlayBestButton); + this.BestGroupBox.Controls.Add(this.ClearBestButton); + this.BestGroupBox.Controls.Add(this.BestAttemptNumberLabel); + this.BestGroupBox.Controls.Add(this.label17); + this.BestGroupBox.Controls.Add(this.panel1); + this.BestGroupBox.Controls.Add(this.BestTieBreak3Box); + this.BestGroupBox.Controls.Add(this.BestTieBreak2Box); + this.BestGroupBox.Controls.Add(this.BestTieBreak1Box); + this.BestGroupBox.Controls.Add(this.BestMaximizeBox); + this.BestGroupBox.Controls.Add(this.label16); + this.BestGroupBox.Controls.Add(this.label15); + this.BestGroupBox.Controls.Add(this.label14); + this.BestGroupBox.Controls.Add(this.label13); + this.BestGroupBox.Location = new System.Drawing.Point(585, 183); + this.BestGroupBox.Name = "BestGroupBox"; + this.BestGroupBox.Size = new System.Drawing.Size(245, 369); + this.BestGroupBox.TabIndex = 4; + this.BestGroupBox.TabStop = false; + this.BestGroupBox.Text = "Best"; + // + // PlayBestButton + // + this.PlayBestButton.Enabled = false; + this.PlayBestButton.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Play; + this.PlayBestButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.PlayBestButton.Location = new System.Drawing.Point(12, 46); + this.PlayBestButton.Name = "PlayBestButton"; + this.PlayBestButton.Size = new System.Drawing.Size(75, 23); + this.PlayBestButton.TabIndex = 2004; + this.PlayBestButton.Text = "&Play"; + this.PlayBestButton.UseVisualStyleBackColor = true; + this.PlayBestButton.Click += new System.EventHandler(this.PlayBestButton_Click); + // + // ClearBestButton + // + this.ClearBestButton.Enabled = false; + this.ClearBestButton.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Close; + this.ClearBestButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.ClearBestButton.Location = new System.Drawing.Point(12, 70); + this.ClearBestButton.Name = "ClearBestButton"; + this.ClearBestButton.Size = new System.Drawing.Size(75, 23); + this.ClearBestButton.TabIndex = 2003; + this.ClearBestButton.Text = "&Clear"; + this.ClearBestButton.UseVisualStyleBackColor = true; + this.ClearBestButton.Click += new System.EventHandler(this.ClearBestButton_Click); + // + // BestAttemptNumberLabel + // + this.BestAttemptNumberLabel.AutoSize = true; + this.BestAttemptNumberLabel.Location = new System.Drawing.Point(59, 20); + this.BestAttemptNumberLabel.Name = "BestAttemptNumberLabel"; + this.BestAttemptNumberLabel.Size = new System.Drawing.Size(13, 13); + this.BestAttemptNumberLabel.TabIndex = 23; + this.BestAttemptNumberLabel.Text = "0"; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(17, 20); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(46, 13); + this.label17.TabIndex = 22; + this.label17.Text = "Attempt:"; + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.panel1.AutoScroll = true; - this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.panel1.Controls.Add(this.BestAttemptLogLabel); - this.panel1.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.panel1.Location = new System.Drawing.Point(12, 112); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(227, 251); - this.panel1.TabIndex = 21; - // - // BestAttemptLogLabel - // - this.BestAttemptLogLabel.AutoSize = true; - this.BestAttemptLogLabel.Location = new System.Drawing.Point(8, 8); - this.BestAttemptLogLabel.Name = "BestAttemptLogLabel"; - this.BestAttemptLogLabel.Size = new System.Drawing.Size(294, 14); - this.BestAttemptLogLabel.TabIndex = 0; - this.BestAttemptLogLabel.Text = " "; - // - // BestTieBreak3Box - // - this.BestTieBreak3Box.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.BestTieBreak3Box.Location = new System.Drawing.Point(178, 73); - this.BestTieBreak3Box.Name = "BestTieBreak3Box"; - this.BestTieBreak3Box.ReadOnly = true; - this.BestTieBreak3Box.Size = new System.Drawing.Size(58, 20); - this.BestTieBreak3Box.TabIndex = 20; - this.BestTieBreak3Box.TabStop = false; - // - // BestTieBreak2Box - // - this.BestTieBreak2Box.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.BestTieBreak2Box.Location = new System.Drawing.Point(178, 53); - this.BestTieBreak2Box.Name = "BestTieBreak2Box"; - this.BestTieBreak2Box.ReadOnly = true; - this.BestTieBreak2Box.Size = new System.Drawing.Size(58, 20); - this.BestTieBreak2Box.TabIndex = 19; - this.BestTieBreak2Box.TabStop = false; - // - // BestTieBreak1Box - // - this.BestTieBreak1Box.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.BestTieBreak1Box.Location = new System.Drawing.Point(178, 33); - this.BestTieBreak1Box.Name = "BestTieBreak1Box"; - this.BestTieBreak1Box.ReadOnly = true; - this.BestTieBreak1Box.Size = new System.Drawing.Size(58, 20); - this.BestTieBreak1Box.TabIndex = 18; - this.BestTieBreak1Box.TabStop = false; - // - // BestMaximizeBox - // - this.BestMaximizeBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.BestMaximizeBox.Location = new System.Drawing.Point(178, 13); - this.BestMaximizeBox.Name = "BestMaximizeBox"; - this.BestMaximizeBox.ReadOnly = true; - this.BestMaximizeBox.Size = new System.Drawing.Size(58, 20); - this.BestMaximizeBox.TabIndex = 17; - this.BestMaximizeBox.TabStop = false; - // - // label16 - // - this.label16.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.label16.AutoSize = true; - this.label16.Location = new System.Drawing.Point(111, 76); - this.label16.Name = "label16"; - this.label16.Size = new System.Drawing.Size(61, 13); - this.label16.TabIndex = 16; - this.label16.Text = "Tiebreak 3:"; - // - // label15 - // - this.label15.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.label15.AutoSize = true; - this.label15.Location = new System.Drawing.Point(111, 56); - this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(61, 13); - this.label15.TabIndex = 15; - this.label15.Text = "Tiebreak 2:"; - // - // label14 - // - this.label14.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.label14.AutoSize = true; - this.label14.Location = new System.Drawing.Point(111, 36); - this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(61, 13); - this.label14.TabIndex = 6; - this.label14.Text = "Tiebreak 1:"; - // - // label13 - // - this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(119, 16); - this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(53, 13); - this.label13.TabIndex = 0; - this.label13.Text = "Main Value:"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(3, 2); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(51, 13); - this.label1.TabIndex = 5; - this.label1.Text = "Attempts:"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(10, 17); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(44, 13); - this.label2.TabIndex = 6; - this.label2.Text = "Frames:"; - // - // AttemptsLabel - // - this.AttemptsLabel.AutoSize = true; - this.AttemptsLabel.Location = new System.Drawing.Point(61, 2); - this.AttemptsLabel.Name = "AttemptsLabel"; - this.AttemptsLabel.Size = new System.Drawing.Size(13, 13); - this.AttemptsLabel.TabIndex = 7; - this.AttemptsLabel.Text = "0"; - // - // FramesLabel - // - this.FramesLabel.AutoSize = true; - this.FramesLabel.Location = new System.Drawing.Point(61, 17); - this.FramesLabel.Name = "FramesLabel"; - this.FramesLabel.Size = new System.Drawing.Size(13, 13); - this.FramesLabel.TabIndex = 8; - this.FramesLabel.Text = "0"; - // - // GoalGroupBox - // - this.GoalGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + this.panel1.AutoScroll = true; + this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.panel1.Controls.Add(this.BestAttemptLogLabel); + this.panel1.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.panel1.Location = new System.Drawing.Point(12, 112); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(227, 251); + this.panel1.TabIndex = 21; + // + // BestAttemptLogLabel + // + this.BestAttemptLogLabel.AutoSize = true; + this.BestAttemptLogLabel.Location = new System.Drawing.Point(8, 8); + this.BestAttemptLogLabel.Name = "BestAttemptLogLabel"; + this.BestAttemptLogLabel.Size = new System.Drawing.Size(294, 14); + this.BestAttemptLogLabel.TabIndex = 0; + this.BestAttemptLogLabel.Text = " "; + // + // BestTieBreak3Box + // + this.BestTieBreak3Box.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.BestTieBreak3Box.Location = new System.Drawing.Point(178, 73); + this.BestTieBreak3Box.Name = "BestTieBreak3Box"; + this.BestTieBreak3Box.ReadOnly = true; + this.BestTieBreak3Box.Size = new System.Drawing.Size(58, 20); + this.BestTieBreak3Box.TabIndex = 20; + this.BestTieBreak3Box.TabStop = false; + // + // BestTieBreak2Box + // + this.BestTieBreak2Box.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.BestTieBreak2Box.Location = new System.Drawing.Point(178, 53); + this.BestTieBreak2Box.Name = "BestTieBreak2Box"; + this.BestTieBreak2Box.ReadOnly = true; + this.BestTieBreak2Box.Size = new System.Drawing.Size(58, 20); + this.BestTieBreak2Box.TabIndex = 19; + this.BestTieBreak2Box.TabStop = false; + // + // BestTieBreak1Box + // + this.BestTieBreak1Box.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.BestTieBreak1Box.Location = new System.Drawing.Point(178, 33); + this.BestTieBreak1Box.Name = "BestTieBreak1Box"; + this.BestTieBreak1Box.ReadOnly = true; + this.BestTieBreak1Box.Size = new System.Drawing.Size(58, 20); + this.BestTieBreak1Box.TabIndex = 18; + this.BestTieBreak1Box.TabStop = false; + // + // BestMaximizeBox + // + this.BestMaximizeBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.BestMaximizeBox.Location = new System.Drawing.Point(178, 13); + this.BestMaximizeBox.Name = "BestMaximizeBox"; + this.BestMaximizeBox.ReadOnly = true; + this.BestMaximizeBox.Size = new System.Drawing.Size(58, 20); + this.BestMaximizeBox.TabIndex = 17; + this.BestMaximizeBox.TabStop = false; + // + // label16 + // + this.label16.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(111, 76); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(61, 13); + this.label16.TabIndex = 16; + this.label16.Text = "Tiebreak 3:"; + // + // label15 + // + this.label15.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(111, 56); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(61, 13); + this.label15.TabIndex = 15; + this.label15.Text = "Tiebreak 2:"; + // + // label14 + // + this.label14.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(111, 36); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(61, 13); + this.label14.TabIndex = 6; + this.label14.Text = "Tiebreak 1:"; + // + // label13 + // + this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(119, 16); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(63, 13); + this.label13.TabIndex = 0; + this.label13.Text = "Main Value:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(3, 2); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(51, 13); + this.label1.TabIndex = 5; + this.label1.Text = "Attempts:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(10, 17); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(44, 13); + this.label2.TabIndex = 6; + this.label2.Text = "Frames:"; + // + // AttemptsLabel + // + this.AttemptsLabel.AutoSize = true; + this.AttemptsLabel.Location = new System.Drawing.Point(61, 2); + this.AttemptsLabel.Name = "AttemptsLabel"; + this.AttemptsLabel.Size = new System.Drawing.Size(13, 13); + this.AttemptsLabel.TabIndex = 7; + this.AttemptsLabel.Text = "0"; + // + // FramesLabel + // + this.FramesLabel.AutoSize = true; + this.FramesLabel.Location = new System.Drawing.Point(61, 17); + this.FramesLabel.Name = "FramesLabel"; + this.FramesLabel.Size = new System.Drawing.Size(13, 13); + this.FramesLabel.TabIndex = 8; + this.FramesLabel.Text = "0"; + // + // GoalGroupBox + // + this.GoalGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.GoalGroupBox.Controls.Add(this.Tiebreak3Operator); - this.GoalGroupBox.Controls.Add(this.Tiebreak2Operator); - this.GoalGroupBox.Controls.Add(this.Tiebreak1Operator); - this.GoalGroupBox.Controls.Add(this.mainOperator); - this.GoalGroupBox.Controls.Add(this.label12); - this.GoalGroupBox.Controls.Add(this.label11); - this.GoalGroupBox.Controls.Add(this.label10); - this.GoalGroupBox.Controls.Add(this.label9); - this.GoalGroupBox.Controls.Add(this.label7); - this.GoalGroupBox.Controls.Add(this.label6); - this.GoalGroupBox.Controls.Add(this.TieBreaker1Box); - this.GoalGroupBox.Controls.Add(this.TieBreaker2Box); - this.GoalGroupBox.Controls.Add(this.TieBreaker3Box); - this.GoalGroupBox.Controls.Add(this.label5); - this.GoalGroupBox.Controls.Add(this.MaximizeAddressBox); - this.GoalGroupBox.Controls.Add(this.maximizeLabeltext); - this.GoalGroupBox.Controls.Add(this.label4); - this.GoalGroupBox.Controls.Add(this.FrameLengthNumeric); - this.GoalGroupBox.Controls.Add(this.label3); - this.GoalGroupBox.Location = new System.Drawing.Point(12, 27); - this.GoalGroupBox.Name = "GoalGroupBox"; - this.GoalGroupBox.Size = new System.Drawing.Size(312, 150); - this.GoalGroupBox.TabIndex = 9; - this.GoalGroupBox.TabStop = false; - this.GoalGroupBox.Text = " "; - // - // Tiebreak3Operator - // - this.Tiebreak3Operator.FormattingEnabled = true; - this.Tiebreak3Operator.Items.AddRange(new object[] { + this.GoalGroupBox.Controls.Add(this.panel6); + this.GoalGroupBox.Controls.Add(this.label4); + this.GoalGroupBox.Controls.Add(this.FrameLengthNumeric); + this.GoalGroupBox.Controls.Add(this.label3); + this.GoalGroupBox.Controls.Add(this.panel3); + this.GoalGroupBox.Controls.Add(this.panel4); + this.GoalGroupBox.Controls.Add(this.panel5); + this.GoalGroupBox.Location = new System.Drawing.Point(12, 27); + this.GoalGroupBox.Name = "GoalGroupBox"; + this.GoalGroupBox.Size = new System.Drawing.Size(567, 150); + this.GoalGroupBox.TabIndex = 9; + this.GoalGroupBox.TabStop = false; + this.GoalGroupBox.Text = " "; + // + // Tiebreak2Operator + // + this.Tiebreak2Operator.FormattingEnabled = true; + this.Tiebreak2Operator.Items.AddRange(new object[] { ">", ">=", "=", "<=", "<"}); - this.Tiebreak3Operator.Location = new System.Drawing.Point(266, 119); - this.Tiebreak3Operator.Name = "Tiebreak3Operator"; - this.Tiebreak3Operator.Size = new System.Drawing.Size(40, 21); - this.Tiebreak3Operator.TabIndex = 1009; - Tiebreak3Operator.SelectedIndex = 0; - // - // Tiebreak2Operator - // - this.Tiebreak2Operator.FormattingEnabled = true; - this.Tiebreak2Operator.Items.AddRange(new object[] { + this.Tiebreak2Operator.Location = new System.Drawing.Point(262, 3); + this.Tiebreak2Operator.Name = "Tiebreak2Operator"; + this.Tiebreak2Operator.Size = new System.Drawing.Size(40, 21); + this.Tiebreak2Operator.TabIndex = 1008; + // + // Tiebreak1Operator + // + this.Tiebreak1Operator.FormattingEnabled = true; + this.Tiebreak1Operator.Items.AddRange(new object[] { ">", ">=", "=", "<=", "<"}); - this.Tiebreak2Operator.Location = new System.Drawing.Point(266, 98); - this.Tiebreak2Operator.Name = "Tiebreak2Operator"; - this.Tiebreak2Operator.Size = new System.Drawing.Size(40, 21); - this.Tiebreak2Operator.TabIndex = 1008; - Tiebreak2Operator.SelectedIndex = 0; - // - // Tiebreak1Operator - // - this.Tiebreak1Operator.FormattingEnabled = true; - this.Tiebreak1Operator.Items.AddRange(new object[] { - ">", - ">=", - "=", - "<=", - "<"}); - this.Tiebreak1Operator.Location = new System.Drawing.Point(266, 76); - this.Tiebreak1Operator.Name = "Tiebreak1Operator"; - this.Tiebreak1Operator.Size = new System.Drawing.Size(40, 21); - this.Tiebreak1Operator.TabIndex = 1007; - Tiebreak1Operator.SelectedIndex = 0; - // - // mainOperator - // - this.mainOperator.FormattingEnabled = true; - this.mainOperator.Items.AddRange(new object[] { - ">", - ">=", - "=", - "<=", - "<"}); - this.mainOperator.Location = new System.Drawing.Point(266, 54); - this.mainOperator.Name = "mainOperator"; - this.mainOperator.Size = new System.Drawing.Size(40, 21); - this.mainOperator.TabIndex = 1006; - mainOperator.SelectedIndex = 0; - // - // label12 - // - this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(74, 122); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(59, 13); - this.label12.TabIndex = 14; - this.label12.Text = "Address 0x"; - // - // label11 - // - this.label11.AutoSize = true; - this.label11.Location = new System.Drawing.Point(73, 101); - this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(59, 13); - this.label11.TabIndex = 13; - this.label11.Text = "Address 0x"; - // - // label10 - // - this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(73, 79); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(59, 13); - this.label10.TabIndex = 12; - this.label10.Text = "Address 0x"; - // - // label9 - // - this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(73, 57); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(59, 13); - this.label9.TabIndex = 11; - this.label9.Text = "Address 0x"; - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(6, 122); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(61, 13); - this.label7.TabIndex = 10; - this.label7.Text = "Tiebreak 3:"; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(6, 101); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(61, 13); - this.label6.TabIndex = 9; - this.label6.Text = "Tiebreak 2:"; - // - // TieBreaker1Box - // - this.TieBreaker1Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + this.Tiebreak1Operator.Location = new System.Drawing.Point(262, 3); + this.Tiebreak1Operator.Name = "Tiebreak1Operator"; + this.Tiebreak1Operator.Size = new System.Drawing.Size(40, 21); + this.Tiebreak1Operator.TabIndex = 1007; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(67, 7); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(59, 13); + this.label11.TabIndex = 13; + this.label11.Text = "Address 0x"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(67, 7); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(59, 13); + this.label10.TabIndex = 12; + this.label10.Text = "Address 0x"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(1, 7); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(61, 13); + this.label6.TabIndex = 9; + this.label6.Text = "Tiebreak 2:"; + // + // TieBreaker1Box + // + this.TieBreaker1Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.TieBreaker1Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.TieBreaker1Box.Location = new System.Drawing.Point(139, 76); - this.TieBreaker1Box.Name = "TieBreaker1Box"; - this.TieBreaker1Box.Nullable = true; - this.TieBreaker1Box.Size = new System.Drawing.Size(121, 20); - this.TieBreaker1Box.TabIndex = 1002; - // - // TieBreaker2Box - // - this.TieBreaker2Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + this.TieBreaker1Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; + this.TieBreaker1Box.Location = new System.Drawing.Point(133, 4); + this.TieBreaker1Box.Name = "TieBreaker1Box"; + this.TieBreaker1Box.Nullable = true; + this.TieBreaker1Box.Size = new System.Drawing.Size(123, 20); + this.TieBreaker1Box.TabIndex = 1002; + // + // TieBreaker2Box + // + this.TieBreaker2Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.TieBreaker2Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.TieBreaker2Box.Location = new System.Drawing.Point(139, 98); - this.TieBreaker2Box.Name = "TieBreaker2Box"; - this.TieBreaker2Box.Nullable = true; - this.TieBreaker2Box.Size = new System.Drawing.Size(121, 20); - this.TieBreaker2Box.TabIndex = 1003; - // - // TieBreaker3Box - // - this.TieBreaker3Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.TieBreaker3Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.TieBreaker3Box.Location = new System.Drawing.Point(139, 119); - this.TieBreaker3Box.Name = "TieBreaker3Box"; - this.TieBreaker3Box.Nullable = true; - this.TieBreaker3Box.Size = new System.Drawing.Size(121, 20); - this.TieBreaker3Box.TabIndex = 1004; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(7, 79); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(61, 13); - this.label5.TabIndex = 5; - this.label5.Text = "Tiebreak 1:"; - // - // MaximizeAddressBox - // - this.MaximizeAddressBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.MaximizeAddressBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.MaximizeAddressBox.Location = new System.Drawing.Point(139, 54); - this.MaximizeAddressBox.Name = "MaximizeAddressBox"; - this.MaximizeAddressBox.Nullable = true; - this.MaximizeAddressBox.Size = new System.Drawing.Size(121, 20); - this.MaximizeAddressBox.TabIndex = 1001; - this.MaximizeAddressBox.TextChanged += new System.EventHandler(this.FrameLengthNumeric_ValueChanged); - // - // maximizeLabeltext - // - this.maximizeLabeltext.AutoSize = true; - this.maximizeLabeltext.Location = new System.Drawing.Point(7, 57); - this.maximizeLabeltext.Name = "maximizeLabeltext"; - this.maximizeLabeltext.Size = new System.Drawing.Size(63, 13); - this.maximizeLabeltext.TabIndex = 3; - this.maximizeLabeltext.Text = "Main Value:"; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(113, 29); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(38, 13); - this.label4.TabIndex = 2; - this.label4.Text = "frames"; - // - // FrameLengthNumeric - // - this.FrameLengthNumeric.Location = new System.Drawing.Point(60, 25); - this.FrameLengthNumeric.Maximum = new decimal(new int[] { + this.TieBreaker2Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; + this.TieBreaker2Box.Location = new System.Drawing.Point(133, 4); + this.TieBreaker2Box.Name = "TieBreaker2Box"; + this.TieBreaker2Box.Nullable = true; + this.TieBreaker2Box.Size = new System.Drawing.Size(123, 20); + this.TieBreaker2Box.TabIndex = 1003; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(1, 7); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(61, 13); + this.label5.TabIndex = 5; + this.label5.Text = "Tiebreak 1:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(113, 29); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(38, 13); + this.label4.TabIndex = 2; + this.label4.Text = "frames"; + // + // FrameLengthNumeric + // + this.FrameLengthNumeric.Location = new System.Drawing.Point(60, 25); + this.FrameLengthNumeric.Maximum = new decimal(new int[] { 999, 0, 0, 0}); - this.FrameLengthNumeric.Name = "FrameLengthNumeric"; - this.FrameLengthNumeric.Size = new System.Drawing.Size(46, 20); - this.FrameLengthNumeric.TabIndex = 1000; - this.FrameLengthNumeric.Value = new decimal(new int[] { + this.FrameLengthNumeric.Name = "FrameLengthNumeric"; + this.FrameLengthNumeric.Size = new System.Drawing.Size(46, 20); + this.FrameLengthNumeric.TabIndex = 1000; + this.FrameLengthNumeric.Value = new decimal(new int[] { 100, 0, 0, 0}); - this.FrameLengthNumeric.ValueChanged += new System.EventHandler(this.FrameLengthNumeric_ValueChanged); - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(7, 29); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(50, 13); - this.label3.TabIndex = 0; - this.label3.Text = "End after"; - // - // StopBtn - // - this.StopBtn.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; - this.StopBtn.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.StopBtn.Location = new System.Drawing.Point(6, 56); - this.StopBtn.Name = "StopBtn"; - this.StopBtn.Size = new System.Drawing.Size(75, 23); - this.StopBtn.TabIndex = 2002; - this.StopBtn.Text = "&Stop"; - this.StopBtn.UseVisualStyleBackColor = true; - this.StopBtn.Visible = false; - this.StopBtn.Click += new System.EventHandler(this.StopBtn_Click); - // - // label8 - // - this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(7, 29); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(58, 13); - this.label8.TabIndex = 11; - this.label8.Text = "Start From:"; - // - // StartFromSlotBox - // - this.StartFromSlotBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.StartFromSlotBox.FormattingEnabled = true; - this.StartFromSlotBox.Items.AddRange(new object[] { + this.FrameLengthNumeric.ValueChanged += new System.EventHandler(this.FrameLengthNumeric_ValueChanged); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(7, 29); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(50, 13); + this.label3.TabIndex = 0; + this.label3.Text = "End after"; + // + // StopBtn + // + this.StopBtn.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; + this.StopBtn.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.StopBtn.Location = new System.Drawing.Point(6, 56); + this.StopBtn.Name = "StopBtn"; + this.StopBtn.Size = new System.Drawing.Size(75, 23); + this.StopBtn.TabIndex = 2002; + this.StopBtn.Text = "&Stop"; + this.StopBtn.UseVisualStyleBackColor = true; + this.StopBtn.Visible = false; + this.StopBtn.Click += new System.EventHandler(this.StopBtn_Click); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(7, 29); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(58, 13); + this.label8.TabIndex = 11; + this.label8.Text = "Start From:"; + // + // StartFromSlotBox + // + this.StartFromSlotBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.StartFromSlotBox.FormattingEnabled = true; + this.StartFromSlotBox.Items.AddRange(new object[] { "Slot 0", "Slot 1", "Slot 2", @@ -834,88 +755,370 @@ "Slot 7", "Slot 8", "Slot 9"}); - this.StartFromSlotBox.Location = new System.Drawing.Point(71, 25); - this.StartFromSlotBox.Name = "StartFromSlotBox"; - this.StartFromSlotBox.Size = new System.Drawing.Size(75, 21); - this.StartFromSlotBox.TabIndex = 2000; - // - // ControlGroupBox - // - this.ControlGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ControlGroupBox.Controls.Add(this.panel2); - this.ControlGroupBox.Controls.Add(this.StopBtn); - this.ControlGroupBox.Controls.Add(this.RunBtn); - this.ControlGroupBox.Controls.Add(this.StartFromSlotBox); - this.ControlGroupBox.Controls.Add(this.label8); - this.ControlGroupBox.Location = new System.Drawing.Point(329, 27); - this.ControlGroupBox.Name = "ControlGroupBox"; - this.ControlGroupBox.Size = new System.Drawing.Size(245, 150); - this.ControlGroupBox.TabIndex = 2004; - this.ControlGroupBox.TabStop = false; - this.ControlGroupBox.Text = "Control"; - // - // panel2 - // - this.panel2.ContextMenuStrip = this.StatsContextMenu; - this.panel2.Controls.Add(this.label1); - this.panel2.Controls.Add(this.label2); - this.panel2.Controls.Add(this.FramesLabel); - this.panel2.Controls.Add(this.AttemptsLabel); - this.panel2.Location = new System.Drawing.Point(6, 85); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(140, 33); - this.panel2.TabIndex = 2003; - // - // StatsContextMenu - // - this.StatsContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.StartFromSlotBox.Location = new System.Drawing.Point(71, 25); + this.StartFromSlotBox.Name = "StartFromSlotBox"; + this.StartFromSlotBox.Size = new System.Drawing.Size(75, 21); + this.StartFromSlotBox.TabIndex = 2000; + // + // ControlGroupBox + // + this.ControlGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.ControlGroupBox.Controls.Add(this.panel2); + this.ControlGroupBox.Controls.Add(this.StopBtn); + this.ControlGroupBox.Controls.Add(this.RunBtn); + this.ControlGroupBox.Controls.Add(this.StartFromSlotBox); + this.ControlGroupBox.Controls.Add(this.label8); + this.ControlGroupBox.Location = new System.Drawing.Point(584, 27); + this.ControlGroupBox.Name = "ControlGroupBox"; + this.ControlGroupBox.Size = new System.Drawing.Size(245, 150); + this.ControlGroupBox.TabIndex = 2004; + this.ControlGroupBox.TabStop = false; + this.ControlGroupBox.Text = "Control"; + // + // panel2 + // + this.panel2.ContextMenuStrip = this.StatsContextMenu; + this.panel2.Controls.Add(this.label1); + this.panel2.Controls.Add(this.label2); + this.panel2.Controls.Add(this.FramesLabel); + this.panel2.Controls.Add(this.AttemptsLabel); + this.panel2.Location = new System.Drawing.Point(6, 85); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(140, 33); + this.panel2.TabIndex = 2003; + // + // StatsContextMenu + // + this.StatsContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.ClearStatsContextMenuItem}); - this.StatsContextMenu.Name = "StatsContextMenu"; - this.StatsContextMenu.Size = new System.Drawing.Size(102, 26); - // - // ClearStatsContextMenuItem - // - this.ClearStatsContextMenuItem.Name = "ClearStatsContextMenuItem"; - this.ClearStatsContextMenuItem.Size = new System.Drawing.Size(101, 22); - this.ClearStatsContextMenuItem.Text = "&Clear"; - this.ClearStatsContextMenuItem.Click += new System.EventHandler(this.ClearStatsContextMenuItem_Click); - // - // BasicBot - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(587, 587); - this.Controls.Add(this.ControlGroupBox); - this.Controls.Add(this.GoalGroupBox); - this.Controls.Add(this.BestGroupBox); - this.Controls.Add(this.ControlsBox); - this.Controls.Add(this.BotStatusStrip); - this.Controls.Add(this.BotMenu); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MainMenuStrip = this.BotMenu; - this.Name = "BasicBot"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Basic Bot"; - this.Load += new System.EventHandler(this.BasicBot_Load); - this.BotMenu.ResumeLayout(false); - this.BotMenu.PerformLayout(); - this.BotStatusStrip.ResumeLayout(false); - this.BotStatusStrip.PerformLayout(); - this.ControlsBox.ResumeLayout(false); - this.BestGroupBox.ResumeLayout(false); - this.BestGroupBox.PerformLayout(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.GoalGroupBox.ResumeLayout(false); - this.GoalGroupBox.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.FrameLengthNumeric)).EndInit(); - this.ControlGroupBox.ResumeLayout(false); - this.ControlGroupBox.PerformLayout(); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - this.StatsContextMenu.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); + this.StatsContextMenu.Name = "StatsContextMenu"; + this.StatsContextMenu.Size = new System.Drawing.Size(102, 26); + // + // ClearStatsContextMenuItem + // + this.ClearStatsContextMenuItem.Name = "ClearStatsContextMenuItem"; + this.ClearStatsContextMenuItem.Size = new System.Drawing.Size(101, 22); + this.ClearStatsContextMenuItem.Text = "&Clear"; + this.ClearStatsContextMenuItem.Click += new System.EventHandler(this.ClearStatsContextMenuItem_Click); + // + // panel3 + // + this.panel3.Controls.Add(this.mainValueNumeric); + this.panel3.Controls.Add(this.mainValueRadio); + this.panel3.Controls.Add(this.mainBestRadio); + this.panel3.Controls.Add(this.mainOperator); + this.panel3.Controls.Add(this.label9); + this.panel3.Controls.Add(this.MaximizeAddressBox); + this.panel3.Controls.Add(this.maximizeLabeltext); + this.panel3.Location = new System.Drawing.Point(9, 51); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(546, 26); + this.panel3.TabIndex = 0; + // + // mainOperator + // + this.mainOperator.FormattingEnabled = true; + this.mainOperator.Items.AddRange(new object[] { + ">", + ">=", + "=", + "<=", + "<"}); + this.mainOperator.Location = new System.Drawing.Point(262, 3); + this.mainOperator.Name = "mainOperator"; + this.mainOperator.Size = new System.Drawing.Size(40, 21); + this.mainOperator.TabIndex = 1010; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(67, 7); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(59, 13); + this.label9.TabIndex = 1008; + this.label9.Text = "Address 0x"; + // + // MaximizeAddressBox + // + this.MaximizeAddressBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.MaximizeAddressBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; + this.MaximizeAddressBox.Location = new System.Drawing.Point(133, 4); + this.MaximizeAddressBox.Name = "MaximizeAddressBox"; + this.MaximizeAddressBox.Nullable = true; + this.MaximizeAddressBox.Size = new System.Drawing.Size(123, 20); + this.MaximizeAddressBox.TabIndex = 1009; + // + // maximizeLabeltext + // + this.maximizeLabeltext.AutoSize = true; + this.maximizeLabeltext.Location = new System.Drawing.Point(1, 7); + this.maximizeLabeltext.Name = "maximizeLabeltext"; + this.maximizeLabeltext.Size = new System.Drawing.Size(63, 13); + this.maximizeLabeltext.TabIndex = 1007; + this.maximizeLabeltext.Text = "Main Value:"; + // + // mainBestRadio + // + this.mainBestRadio.AutoSize = true; + this.mainBestRadio.Checked = true; + this.mainBestRadio.Location = new System.Drawing.Point(307, 6); + this.mainBestRadio.Name = "mainBestRadio"; + this.mainBestRadio.Size = new System.Drawing.Size(46, 17); + this.mainBestRadio.TabIndex = 1011; + this.mainBestRadio.TabStop = true; + this.mainBestRadio.Text = "Best"; + this.mainBestRadio.UseVisualStyleBackColor = true; + this.mainBestRadio.CheckedChanged += new System.EventHandler(this.mainBestRadio_CheckedChanged); + // + // mainValueRadio + // + this.mainValueRadio.AutoSize = true; + this.mainValueRadio.Location = new System.Drawing.Point(359, 6); + this.mainValueRadio.Name = "mainValueRadio"; + this.mainValueRadio.Size = new System.Drawing.Size(52, 17); + this.mainValueRadio.TabIndex = 1012; + this.mainValueRadio.Text = "Value"; + this.mainValueRadio.UseVisualStyleBackColor = true; + this.mainValueRadio.CheckedChanged += new System.EventHandler(this.mainValueRadio_CheckedChanged); + // + // mainValueNumeric + // + this.mainValueNumeric.Enabled = false; + this.mainValueNumeric.Location = new System.Drawing.Point(417, 4); + this.mainValueNumeric.Name = "mainValueNumeric"; + this.mainValueNumeric.Size = new System.Drawing.Size(120, 20); + this.mainValueNumeric.TabIndex = 1013; + // + // panel4 + // + this.panel4.Controls.Add(this.tiebreak1Numeric); + this.panel4.Controls.Add(this.tiebreak1ValueRadio); + this.panel4.Controls.Add(this.Tiebreak1Operator); + this.panel4.Controls.Add(this.tiebreak1BestRadio); + this.panel4.Controls.Add(this.label5); + this.panel4.Controls.Add(this.TieBreaker1Box); + this.panel4.Controls.Add(this.label10); + this.panel4.Location = new System.Drawing.Point(9, 74); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(546, 26); + this.panel4.TabIndex = 1; + // + // tiebreak1Numeric + // + this.tiebreak1Numeric.Enabled = false; + this.tiebreak1Numeric.Location = new System.Drawing.Point(417, 4); + this.tiebreak1Numeric.Name = "tiebreak1Numeric"; + this.tiebreak1Numeric.Size = new System.Drawing.Size(120, 20); + this.tiebreak1Numeric.TabIndex = 1013; + // + // tiebreak1ValueRadio + // + this.tiebreak1ValueRadio.AutoSize = true; + this.tiebreak1ValueRadio.Location = new System.Drawing.Point(359, 6); + this.tiebreak1ValueRadio.Name = "tiebreak1ValueRadio"; + this.tiebreak1ValueRadio.Size = new System.Drawing.Size(52, 17); + this.tiebreak1ValueRadio.TabIndex = 1012; + this.tiebreak1ValueRadio.Text = "Value"; + this.tiebreak1ValueRadio.UseVisualStyleBackColor = true; + this.tiebreak1ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak1ValueRadio_CheckedChanged); + // + // tiebreak1BestRadio + // + this.tiebreak1BestRadio.AutoSize = true; + this.tiebreak1BestRadio.Checked = true; + this.tiebreak1BestRadio.Location = new System.Drawing.Point(307, 6); + this.tiebreak1BestRadio.Name = "tiebreak1BestRadio"; + this.tiebreak1BestRadio.Size = new System.Drawing.Size(46, 17); + this.tiebreak1BestRadio.TabIndex = 1011; + this.tiebreak1BestRadio.TabStop = true; + this.tiebreak1BestRadio.Text = "Best"; + this.tiebreak1BestRadio.UseVisualStyleBackColor = true; + this.tiebreak1BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak1BestRadio_CheckedChanged); + // + // panel5 + // + this.panel5.Controls.Add(this.tiebreak2Numeric); + this.panel5.Controls.Add(this.Tiebreak2Operator); + this.panel5.Controls.Add(this.tiebreak2ValueRadio); + this.panel5.Controls.Add(this.tiebreak2BestRadio); + this.panel5.Controls.Add(this.label11); + this.panel5.Controls.Add(this.label6); + this.panel5.Controls.Add(this.TieBreaker2Box); + this.panel5.Location = new System.Drawing.Point(9, 97); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(546, 26); + this.panel5.TabIndex = 2; + // + // tiebreak2Numeric + // + this.tiebreak2Numeric.Enabled = false; + this.tiebreak2Numeric.Location = new System.Drawing.Point(417, 4); + this.tiebreak2Numeric.Name = "tiebreak2Numeric"; + this.tiebreak2Numeric.Size = new System.Drawing.Size(120, 20); + this.tiebreak2Numeric.TabIndex = 1013; + // + // tiebreak2ValueRadio + // + this.tiebreak2ValueRadio.AutoSize = true; + this.tiebreak2ValueRadio.Location = new System.Drawing.Point(359, 6); + this.tiebreak2ValueRadio.Name = "tiebreak2ValueRadio"; + this.tiebreak2ValueRadio.Size = new System.Drawing.Size(52, 17); + this.tiebreak2ValueRadio.TabIndex = 1012; + this.tiebreak2ValueRadio.Text = "Value"; + this.tiebreak2ValueRadio.UseVisualStyleBackColor = true; + this.tiebreak2ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak2ValueRadio_CheckedChanged); + // + // tiebreak2BestRadio + // + this.tiebreak2BestRadio.AutoSize = true; + this.tiebreak2BestRadio.Checked = true; + this.tiebreak2BestRadio.Location = new System.Drawing.Point(307, 6); + this.tiebreak2BestRadio.Name = "tiebreak2BestRadio"; + this.tiebreak2BestRadio.Size = new System.Drawing.Size(46, 17); + this.tiebreak2BestRadio.TabIndex = 1011; + this.tiebreak2BestRadio.TabStop = true; + this.tiebreak2BestRadio.Text = "Best"; + this.tiebreak2BestRadio.UseVisualStyleBackColor = true; + this.tiebreak2BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak2BestRadio_CheckedChanged); + // + // panel6 + // + this.panel6.Controls.Add(this.Tiebreak3Operator); + this.panel6.Controls.Add(this.label12); + this.panel6.Controls.Add(this.label7); + this.panel6.Controls.Add(this.TieBreaker3Box); + this.panel6.Controls.Add(this.tiebreak3Numeric); + this.panel6.Controls.Add(this.tiebreak3ValueRadio); + this.panel6.Controls.Add(this.tiebreak3BestRadio); + this.panel6.Location = new System.Drawing.Point(9, 120); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(546, 26); + this.panel6.TabIndex = 3; + // + // tiebreak3Numeric + // + this.tiebreak3Numeric.Enabled = false; + this.tiebreak3Numeric.Location = new System.Drawing.Point(417, 4); + this.tiebreak3Numeric.Name = "tiebreak3Numeric"; + this.tiebreak3Numeric.Size = new System.Drawing.Size(120, 20); + this.tiebreak3Numeric.TabIndex = 1013; + // + // tiebreak3ValueRadio + // + this.tiebreak3ValueRadio.AutoSize = true; + this.tiebreak3ValueRadio.Location = new System.Drawing.Point(359, 6); + this.tiebreak3ValueRadio.Name = "tiebreak3ValueRadio"; + this.tiebreak3ValueRadio.Size = new System.Drawing.Size(52, 17); + this.tiebreak3ValueRadio.TabIndex = 1012; + this.tiebreak3ValueRadio.Text = "Value"; + this.tiebreak3ValueRadio.UseVisualStyleBackColor = true; + this.tiebreak3ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak3ValueRadio_CheckedChanged); + // + // tiebreak3BestRadio + // + this.tiebreak3BestRadio.AutoSize = true; + this.tiebreak3BestRadio.Checked = true; + this.tiebreak3BestRadio.Location = new System.Drawing.Point(307, 6); + this.tiebreak3BestRadio.Name = "tiebreak3BestRadio"; + this.tiebreak3BestRadio.Size = new System.Drawing.Size(46, 17); + this.tiebreak3BestRadio.TabIndex = 1011; + this.tiebreak3BestRadio.TabStop = true; + this.tiebreak3BestRadio.Text = "Best"; + this.tiebreak3BestRadio.UseVisualStyleBackColor = true; + this.tiebreak3BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak3BestRadio_CheckedChanged); + // + // Tiebreak3Operator + // + this.Tiebreak3Operator.FormattingEnabled = true; + this.Tiebreak3Operator.Items.AddRange(new object[] { + ">", + ">=", + "=", + "<=", + "<"}); + this.Tiebreak3Operator.Location = new System.Drawing.Point(262, 3); + this.Tiebreak3Operator.Name = "Tiebreak3Operator"; + this.Tiebreak3Operator.Size = new System.Drawing.Size(40, 21); + this.Tiebreak3Operator.TabIndex = 1017; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(67, 7); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(59, 13); + this.label12.TabIndex = 1015; + this.label12.Text = "Address 0x"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(1, 7); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(61, 13); + this.label7.TabIndex = 1014; + this.label7.Text = "Tiebreak 3:"; + // + // TieBreaker3Box + // + this.TieBreaker3Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TieBreaker3Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; + this.TieBreaker3Box.Location = new System.Drawing.Point(133, 4); + this.TieBreaker3Box.Name = "TieBreaker3Box"; + this.TieBreaker3Box.Nullable = true; + this.TieBreaker3Box.Size = new System.Drawing.Size(123, 20); + this.TieBreaker3Box.TabIndex = 1016; + // + // BasicBot + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(842, 587); + this.Controls.Add(this.ControlGroupBox); + this.Controls.Add(this.GoalGroupBox); + this.Controls.Add(this.BestGroupBox); + this.Controls.Add(this.ControlsBox); + this.Controls.Add(this.BotStatusStrip); + this.Controls.Add(this.BotMenu); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MainMenuStrip = this.BotMenu; + this.Name = "BasicBot"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Basic Bot"; + this.Load += new System.EventHandler(this.BasicBot_Load); + this.BotMenu.ResumeLayout(false); + this.BotMenu.PerformLayout(); + this.BotStatusStrip.ResumeLayout(false); + this.BotStatusStrip.PerformLayout(); + this.ControlsBox.ResumeLayout(false); + this.BestGroupBox.ResumeLayout(false); + this.BestGroupBox.PerformLayout(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.GoalGroupBox.ResumeLayout(false); + this.GoalGroupBox.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.FrameLengthNumeric)).EndInit(); + this.ControlGroupBox.ResumeLayout(false); + this.ControlGroupBox.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.StatsContextMenu.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.mainValueNumeric)).EndInit(); + this.panel4.ResumeLayout(false); + this.panel4.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tiebreak1Numeric)).EndInit(); + this.panel5.ResumeLayout(false); + this.panel5.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tiebreak2Numeric)).EndInit(); + this.panel6.ResumeLayout(false); + this.panel6.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tiebreak3Numeric)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); } @@ -939,24 +1142,18 @@ private System.Windows.Forms.Label FramesLabel; private System.Windows.Forms.ToolStripMenuItem OptionsSubMenu; private System.Windows.Forms.GroupBox GoalGroupBox; - private System.Windows.Forms.Label label7; private System.Windows.Forms.Label label6; private HexTextBox TieBreaker1Box; private HexTextBox TieBreaker2Box; - private HexTextBox TieBreaker3Box; private System.Windows.Forms.Label label5; - private HexTextBox MaximizeAddressBox; - private System.Windows.Forms.Label maximizeLabeltext; private System.Windows.Forms.Label label4; private System.Windows.Forms.NumericUpDown FrameLengthNumeric; private System.Windows.Forms.Label label3; private System.Windows.Forms.Button StopBtn; private System.Windows.Forms.Label label8; private System.Windows.Forms.ComboBox StartFromSlotBox; - private System.Windows.Forms.Label label12; private System.Windows.Forms.Label label11; private System.Windows.Forms.Label label10; - private System.Windows.Forms.Label label9; private System.Windows.Forms.TextBox BestTieBreak3Box; private System.Windows.Forms.TextBox BestTieBreak2Box; private System.Windows.Forms.TextBox BestTieBreak1Box; @@ -989,9 +1186,31 @@ private System.Windows.Forms.ToolStripMenuItem _1ByteMenuItem; private System.Windows.Forms.ToolStripMenuItem _2ByteMenuItem; private System.Windows.Forms.ToolStripMenuItem _4ByteMenuItem; - private System.Windows.Forms.ComboBox Tiebreak3Operator; private System.Windows.Forms.ComboBox Tiebreak2Operator; private System.Windows.Forms.ComboBox Tiebreak1Operator; - private System.Windows.Forms.ComboBox mainOperator; - } + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.ComboBox Tiebreak3Operator; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label7; + private HexTextBox TieBreaker3Box; + private System.Windows.Forms.NumericUpDown tiebreak3Numeric; + private System.Windows.Forms.RadioButton tiebreak3ValueRadio; + private System.Windows.Forms.RadioButton tiebreak3BestRadio; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.NumericUpDown tiebreak2Numeric; + private System.Windows.Forms.RadioButton tiebreak2ValueRadio; + private System.Windows.Forms.RadioButton tiebreak2BestRadio; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.NumericUpDown tiebreak1Numeric; + private System.Windows.Forms.RadioButton tiebreak1ValueRadio; + private System.Windows.Forms.RadioButton tiebreak1BestRadio; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.NumericUpDown mainValueNumeric; + private System.Windows.Forms.RadioButton mainValueRadio; + private System.Windows.Forms.RadioButton mainBestRadio; + private System.Windows.Forms.ComboBox mainOperator; + private System.Windows.Forms.Label label9; + private HexTextBox MaximizeAddressBox; + private System.Windows.Forms.Label maximizeLabeltext; + } } diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs index eeaccbe605..3e14e085c0 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs @@ -44,6 +44,7 @@ namespace BizHawk.Client.EmuHawk private bool _oldCountingSetting = false; private BotAttempt _currentBotAttempt = null; private BotAttempt _bestBotAttempt = null; + private BotAttempt _comparisonBotAttempt = null; private bool _replayMode = false; private int _startFrame = 0; private string _lastRom = string.Empty; @@ -93,7 +94,9 @@ namespace BizHawk.Client.EmuHawk InitializeComponent(); Text = DialogTitle; Settings = new BasicBotSettings(); - } + + _comparisonBotAttempt = new BotAttempt(); + } private void BasicBot_Load(object sender, EventArgs e) { @@ -1101,5 +1104,85 @@ namespace BizHawk.Client.EmuHawk && !string.IsNullOrWhiteSpace(MaximizeAddressBox.Text) && ControlProbabilities.Any(kvp => kvp.Value > 0); } + + private void mainBestRadio_CheckedChanged(object sender, EventArgs e) + { + RadioButton radioButton = (RadioButton)sender; + if (radioButton.Checked) + { + this.mainValueNumeric.Enabled = false; + _comparisonBotAttempt.Maximize = _bestBotAttempt == null ? 0 : _bestBotAttempt.Maximize; + } + } + + private void tiebreak1BestRadio_CheckedChanged(object sender, EventArgs e) + { + RadioButton radioButton = (RadioButton)sender; + if (radioButton.Checked) + { + this.tiebreak1Numeric.Enabled = false; + _comparisonBotAttempt.TieBreak1 = _bestBotAttempt == null ? 0 : _bestBotAttempt.TieBreak1; + } + } + + private void tiebreak2BestRadio_CheckedChanged(object sender, EventArgs e) + { + RadioButton radioButton = (RadioButton)sender; + if (radioButton.Checked) + { + this.tiebreak2Numeric.Enabled = false; + _comparisonBotAttempt.TieBreak2 = _bestBotAttempt == null ? 0 : _bestBotAttempt.TieBreak2; + } + } + + private void tiebreak3BestRadio_CheckedChanged(object sender, EventArgs e) + { + RadioButton radioButton = (RadioButton)sender; + if (radioButton.Checked) + { + this.tiebreak3Numeric.Enabled = false; + _comparisonBotAttempt.TieBreak3 = _bestBotAttempt == null ? 0 : _bestBotAttempt.TieBreak3; + } + } + + private void mainValueRadio_CheckedChanged(object sender, EventArgs e) + { + RadioButton radioButton = (RadioButton)sender; + if (radioButton.Checked) + { + this.mainValueNumeric.Enabled = true; + _comparisonBotAttempt.Maximize = (int)this.mainValueNumeric.Value; + } + } + + private void tiebreak1ValueRadio_CheckedChanged(object sender, EventArgs e) + { + RadioButton radioButton = (RadioButton)sender; + if (radioButton.Checked) + { + this.tiebreak1Numeric.Enabled = true; + _comparisonBotAttempt.TieBreak1 = (int)this.tiebreak1Numeric.Value; + } + } + + private void tiebreak2ValueRadio_CheckedChanged(object sender, EventArgs e) + { + RadioButton radioButton = (RadioButton)sender; + if (radioButton.Checked) + { + this.tiebreak2Numeric.Enabled = true; + _comparisonBotAttempt.TieBreak2 = (int)this.tiebreak2Numeric.Value; + } + } + + private void tiebreak3ValueRadio_CheckedChanged(object sender, EventArgs e) + { + RadioButton radioButton = (RadioButton)sender; + if (radioButton.Checked) + { + this.tiebreak3Numeric.Enabled = true; + _comparisonBotAttempt.TieBreak3 = (int)this.tiebreak3Numeric.Value; + } + } } } From f67b8e5bdf68b343e9ae67172caba21169c6f7ed Mon Sep 17 00:00:00 2001 From: Adam Sturge Date: Sun, 17 Jan 2016 17:01:17 -0800 Subject: [PATCH 085/106] Added update code for _comparisonBotAttempt --- .../tools/BasicBot/BasicBot.Designer.cs | 770 +++++++++--------- .../tools/BasicBot/BasicBot.cs | 96 ++- 2 files changed, 473 insertions(+), 393 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs index 68b07cc604..5912af311e 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs @@ -76,17 +76,41 @@ this.AttemptsLabel = new System.Windows.Forms.Label(); this.FramesLabel = new System.Windows.Forms.Label(); this.GoalGroupBox = new System.Windows.Forms.GroupBox(); - this.Tiebreak2Operator = new System.Windows.Forms.ComboBox(); - this.Tiebreak1Operator = new System.Windows.Forms.ComboBox(); - this.label11 = new System.Windows.Forms.Label(); - this.label10 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.TieBreaker1Box = new BizHawk.Client.EmuHawk.HexTextBox(); - this.TieBreaker2Box = new BizHawk.Client.EmuHawk.HexTextBox(); - this.label5 = new System.Windows.Forms.Label(); + this.panel6 = new System.Windows.Forms.Panel(); + this.Tiebreak3Operator = new System.Windows.Forms.ComboBox(); + this.label12 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.TieBreaker3Box = new BizHawk.Client.EmuHawk.HexTextBox(); + this.tiebreak3Numeric = new System.Windows.Forms.NumericUpDown(); + this.tiebreak3ValueRadio = new System.Windows.Forms.RadioButton(); + this.tiebreak3BestRadio = new System.Windows.Forms.RadioButton(); this.label4 = new System.Windows.Forms.Label(); this.FrameLengthNumeric = new System.Windows.Forms.NumericUpDown(); this.label3 = new System.Windows.Forms.Label(); + this.panel3 = new System.Windows.Forms.Panel(); + this.mainValueNumeric = new System.Windows.Forms.NumericUpDown(); + this.mainValueRadio = new System.Windows.Forms.RadioButton(); + this.mainBestRadio = new System.Windows.Forms.RadioButton(); + this.mainOperator = new System.Windows.Forms.ComboBox(); + this.label9 = new System.Windows.Forms.Label(); + this.MaximizeAddressBox = new BizHawk.Client.EmuHawk.HexTextBox(); + this.maximizeLabeltext = new System.Windows.Forms.Label(); + this.panel4 = new System.Windows.Forms.Panel(); + this.tiebreak1Numeric = new System.Windows.Forms.NumericUpDown(); + this.tiebreak1ValueRadio = new System.Windows.Forms.RadioButton(); + this.Tiebreak1Operator = new System.Windows.Forms.ComboBox(); + this.tiebreak1BestRadio = new System.Windows.Forms.RadioButton(); + this.label5 = new System.Windows.Forms.Label(); + this.TieBreaker1Box = new BizHawk.Client.EmuHawk.HexTextBox(); + this.label10 = new System.Windows.Forms.Label(); + this.panel5 = new System.Windows.Forms.Panel(); + this.tiebreak2Numeric = new System.Windows.Forms.NumericUpDown(); + this.Tiebreak2Operator = new System.Windows.Forms.ComboBox(); + this.tiebreak2ValueRadio = new System.Windows.Forms.RadioButton(); + this.tiebreak2BestRadio = new System.Windows.Forms.RadioButton(); + this.label11 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.TieBreaker2Box = new BizHawk.Client.EmuHawk.HexTextBox(); this.StopBtn = new System.Windows.Forms.Button(); this.label8 = new System.Windows.Forms.Label(); this.StartFromSlotBox = new System.Windows.Forms.ComboBox(); @@ -94,48 +118,24 @@ this.panel2 = new System.Windows.Forms.Panel(); this.StatsContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components); this.ClearStatsContextMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.panel3 = new System.Windows.Forms.Panel(); - this.mainOperator = new System.Windows.Forms.ComboBox(); - this.label9 = new System.Windows.Forms.Label(); - this.MaximizeAddressBox = new BizHawk.Client.EmuHawk.HexTextBox(); - this.maximizeLabeltext = new System.Windows.Forms.Label(); - this.mainBestRadio = new System.Windows.Forms.RadioButton(); - this.mainValueRadio = new System.Windows.Forms.RadioButton(); - this.mainValueNumeric = new System.Windows.Forms.NumericUpDown(); - this.panel4 = new System.Windows.Forms.Panel(); - this.tiebreak1Numeric = new System.Windows.Forms.NumericUpDown(); - this.tiebreak1ValueRadio = new System.Windows.Forms.RadioButton(); - this.tiebreak1BestRadio = new System.Windows.Forms.RadioButton(); - this.panel5 = new System.Windows.Forms.Panel(); - this.tiebreak2Numeric = new System.Windows.Forms.NumericUpDown(); - this.tiebreak2ValueRadio = new System.Windows.Forms.RadioButton(); - this.tiebreak2BestRadio = new System.Windows.Forms.RadioButton(); - this.panel6 = new System.Windows.Forms.Panel(); - this.tiebreak3Numeric = new System.Windows.Forms.NumericUpDown(); - this.tiebreak3ValueRadio = new System.Windows.Forms.RadioButton(); - this.tiebreak3BestRadio = new System.Windows.Forms.RadioButton(); - this.Tiebreak3Operator = new System.Windows.Forms.ComboBox(); - this.label12 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.TieBreaker3Box = new BizHawk.Client.EmuHawk.HexTextBox(); this.BotMenu.SuspendLayout(); this.BotStatusStrip.SuspendLayout(); this.ControlsBox.SuspendLayout(); this.BestGroupBox.SuspendLayout(); this.panel1.SuspendLayout(); this.GoalGroupBox.SuspendLayout(); + this.panel6.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tiebreak3Numeric)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.FrameLengthNumeric)).BeginInit(); - this.ControlGroupBox.SuspendLayout(); - this.panel2.SuspendLayout(); - this.StatsContextMenu.SuspendLayout(); this.panel3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.mainValueNumeric)).BeginInit(); this.panel4.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.tiebreak1Numeric)).BeginInit(); this.panel5.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.tiebreak2Numeric)).BeginInit(); - this.panel6.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.tiebreak3Numeric)).BeginInit(); + this.ControlGroupBox.SuspendLayout(); + this.panel2.SuspendLayout(); + this.StatsContextMenu.SuspendLayout(); this.SuspendLayout(); // // BotMenu @@ -596,91 +596,95 @@ this.GoalGroupBox.TabStop = false; this.GoalGroupBox.Text = " "; // - // Tiebreak2Operator + // panel6 // - this.Tiebreak2Operator.FormattingEnabled = true; - this.Tiebreak2Operator.Items.AddRange(new object[] { + this.panel6.Controls.Add(this.Tiebreak3Operator); + this.panel6.Controls.Add(this.label12); + this.panel6.Controls.Add(this.label7); + this.panel6.Controls.Add(this.TieBreaker3Box); + this.panel6.Controls.Add(this.tiebreak3Numeric); + this.panel6.Controls.Add(this.tiebreak3ValueRadio); + this.panel6.Controls.Add(this.tiebreak3BestRadio); + this.panel6.Location = new System.Drawing.Point(9, 120); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(546, 26); + this.panel6.TabIndex = 3; + // + // Tiebreak3Operator + // + this.Tiebreak3Operator.FormattingEnabled = true; + this.Tiebreak3Operator.Items.AddRange(new object[] { ">", ">=", "=", "<=", "<"}); - this.Tiebreak2Operator.Location = new System.Drawing.Point(262, 3); - this.Tiebreak2Operator.Name = "Tiebreak2Operator"; - this.Tiebreak2Operator.Size = new System.Drawing.Size(40, 21); - this.Tiebreak2Operator.TabIndex = 1008; + this.Tiebreak3Operator.Location = new System.Drawing.Point(262, 3); + this.Tiebreak3Operator.Name = "Tiebreak3Operator"; + this.Tiebreak3Operator.Size = new System.Drawing.Size(40, 21); + this.Tiebreak3Operator.TabIndex = 1017; // - // Tiebreak1Operator + // label12 // - this.Tiebreak1Operator.FormattingEnabled = true; - this.Tiebreak1Operator.Items.AddRange(new object[] { - ">", - ">=", - "=", - "<=", - "<"}); - this.Tiebreak1Operator.Location = new System.Drawing.Point(262, 3); - this.Tiebreak1Operator.Name = "Tiebreak1Operator"; - this.Tiebreak1Operator.Size = new System.Drawing.Size(40, 21); - this.Tiebreak1Operator.TabIndex = 1007; + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(67, 7); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(59, 13); + this.label12.TabIndex = 1015; + this.label12.Text = "Address 0x"; // - // label11 + // label7 // - this.label11.AutoSize = true; - this.label11.Location = new System.Drawing.Point(67, 7); - this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(59, 13); - this.label11.TabIndex = 13; - this.label11.Text = "Address 0x"; + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(1, 7); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(61, 13); + this.label7.TabIndex = 1014; + this.label7.Text = "Tiebreak 3:"; // - // label10 + // TieBreaker3Box // - this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(67, 7); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(59, 13); - this.label10.TabIndex = 12; - this.label10.Text = "Address 0x"; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(1, 7); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(61, 13); - this.label6.TabIndex = 9; - this.label6.Text = "Tiebreak 2:"; - // - // TieBreaker1Box - // - this.TieBreaker1Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + this.TieBreaker3Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.TieBreaker1Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.TieBreaker1Box.Location = new System.Drawing.Point(133, 4); - this.TieBreaker1Box.Name = "TieBreaker1Box"; - this.TieBreaker1Box.Nullable = true; - this.TieBreaker1Box.Size = new System.Drawing.Size(123, 20); - this.TieBreaker1Box.TabIndex = 1002; + this.TieBreaker3Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; + this.TieBreaker3Box.Location = new System.Drawing.Point(133, 4); + this.TieBreaker3Box.Name = "TieBreaker3Box"; + this.TieBreaker3Box.Nullable = true; + this.TieBreaker3Box.Size = new System.Drawing.Size(123, 20); + this.TieBreaker3Box.TabIndex = 1016; // - // TieBreaker2Box + // tiebreak3Numeric // - this.TieBreaker2Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.TieBreaker2Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.TieBreaker2Box.Location = new System.Drawing.Point(133, 4); - this.TieBreaker2Box.Name = "TieBreaker2Box"; - this.TieBreaker2Box.Nullable = true; - this.TieBreaker2Box.Size = new System.Drawing.Size(123, 20); - this.TieBreaker2Box.TabIndex = 1003; + this.tiebreak3Numeric.Enabled = false; + this.tiebreak3Numeric.Location = new System.Drawing.Point(417, 4); + this.tiebreak3Numeric.Name = "tiebreak3Numeric"; + this.tiebreak3Numeric.Size = new System.Drawing.Size(120, 20); + this.tiebreak3Numeric.TabIndex = 1013; + this.tiebreak3Numeric.ValueChanged += new System.EventHandler(this.tiebreak3Numeric_ValueChanged); // - // label5 + // tiebreak3ValueRadio // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(1, 7); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(61, 13); - this.label5.TabIndex = 5; - this.label5.Text = "Tiebreak 1:"; + this.tiebreak3ValueRadio.AutoSize = true; + this.tiebreak3ValueRadio.Location = new System.Drawing.Point(359, 6); + this.tiebreak3ValueRadio.Name = "tiebreak3ValueRadio"; + this.tiebreak3ValueRadio.Size = new System.Drawing.Size(52, 17); + this.tiebreak3ValueRadio.TabIndex = 1012; + this.tiebreak3ValueRadio.Text = "Value"; + this.tiebreak3ValueRadio.UseVisualStyleBackColor = true; + this.tiebreak3ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak3ValueRadio_CheckedChanged); + // + // tiebreak3BestRadio + // + this.tiebreak3BestRadio.AutoSize = true; + this.tiebreak3BestRadio.Checked = true; + this.tiebreak3BestRadio.Location = new System.Drawing.Point(307, 6); + this.tiebreak3BestRadio.Name = "tiebreak3BestRadio"; + this.tiebreak3BestRadio.Size = new System.Drawing.Size(46, 17); + this.tiebreak3BestRadio.TabIndex = 1011; + this.tiebreak3BestRadio.TabStop = true; + this.tiebreak3BestRadio.Text = "Best"; + this.tiebreak3BestRadio.UseVisualStyleBackColor = true; + this.tiebreak3BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak3BestRadio_CheckedChanged); // // label4 // @@ -718,6 +722,276 @@ this.label3.TabIndex = 0; this.label3.Text = "End after"; // + // panel3 + // + this.panel3.Controls.Add(this.mainValueNumeric); + this.panel3.Controls.Add(this.mainValueRadio); + this.panel3.Controls.Add(this.mainBestRadio); + this.panel3.Controls.Add(this.mainOperator); + this.panel3.Controls.Add(this.label9); + this.panel3.Controls.Add(this.MaximizeAddressBox); + this.panel3.Controls.Add(this.maximizeLabeltext); + this.panel3.Location = new System.Drawing.Point(9, 51); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(546, 26); + this.panel3.TabIndex = 0; + // + // mainValueNumeric + // + this.mainValueNumeric.Enabled = false; + this.mainValueNumeric.Location = new System.Drawing.Point(417, 4); + this.mainValueNumeric.Name = "mainValueNumeric"; + this.mainValueNumeric.Size = new System.Drawing.Size(120, 20); + this.mainValueNumeric.TabIndex = 1013; + this.mainValueNumeric.ValueChanged += new System.EventHandler(this.mainValueNumeric_ValueChanged); + // + // mainValueRadio + // + this.mainValueRadio.AutoSize = true; + this.mainValueRadio.Location = new System.Drawing.Point(359, 6); + this.mainValueRadio.Name = "mainValueRadio"; + this.mainValueRadio.Size = new System.Drawing.Size(52, 17); + this.mainValueRadio.TabIndex = 1012; + this.mainValueRadio.Text = "Value"; + this.mainValueRadio.UseVisualStyleBackColor = true; + this.mainValueRadio.CheckedChanged += new System.EventHandler(this.mainValueRadio_CheckedChanged); + // + // mainBestRadio + // + this.mainBestRadio.AutoSize = true; + this.mainBestRadio.Checked = true; + this.mainBestRadio.Location = new System.Drawing.Point(307, 6); + this.mainBestRadio.Name = "mainBestRadio"; + this.mainBestRadio.Size = new System.Drawing.Size(46, 17); + this.mainBestRadio.TabIndex = 1011; + this.mainBestRadio.TabStop = true; + this.mainBestRadio.Text = "Best"; + this.mainBestRadio.UseVisualStyleBackColor = true; + this.mainBestRadio.CheckedChanged += new System.EventHandler(this.mainBestRadio_CheckedChanged); + // + // mainOperator + // + this.mainOperator.FormattingEnabled = true; + this.mainOperator.Items.AddRange(new object[] { + ">", + ">=", + "=", + "<=", + "<"}); + this.mainOperator.Location = new System.Drawing.Point(262, 3); + this.mainOperator.Name = "mainOperator"; + this.mainOperator.Size = new System.Drawing.Size(40, 21); + this.mainOperator.TabIndex = 1010; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(67, 7); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(59, 13); + this.label9.TabIndex = 1008; + this.label9.Text = "Address 0x"; + // + // MaximizeAddressBox + // + this.MaximizeAddressBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.MaximizeAddressBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; + this.MaximizeAddressBox.Location = new System.Drawing.Point(133, 4); + this.MaximizeAddressBox.Name = "MaximizeAddressBox"; + this.MaximizeAddressBox.Nullable = true; + this.MaximizeAddressBox.Size = new System.Drawing.Size(123, 20); + this.MaximizeAddressBox.TabIndex = 1009; + // + // maximizeLabeltext + // + this.maximizeLabeltext.AutoSize = true; + this.maximizeLabeltext.Location = new System.Drawing.Point(1, 7); + this.maximizeLabeltext.Name = "maximizeLabeltext"; + this.maximizeLabeltext.Size = new System.Drawing.Size(63, 13); + this.maximizeLabeltext.TabIndex = 1007; + this.maximizeLabeltext.Text = "Main Value:"; + // + // panel4 + // + this.panel4.Controls.Add(this.tiebreak1Numeric); + this.panel4.Controls.Add(this.tiebreak1ValueRadio); + this.panel4.Controls.Add(this.Tiebreak1Operator); + this.panel4.Controls.Add(this.tiebreak1BestRadio); + this.panel4.Controls.Add(this.label5); + this.panel4.Controls.Add(this.TieBreaker1Box); + this.panel4.Controls.Add(this.label10); + this.panel4.Location = new System.Drawing.Point(9, 74); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(546, 26); + this.panel4.TabIndex = 1; + // + // tiebreak1Numeric + // + this.tiebreak1Numeric.Enabled = false; + this.tiebreak1Numeric.Location = new System.Drawing.Point(417, 4); + this.tiebreak1Numeric.Name = "tiebreak1Numeric"; + this.tiebreak1Numeric.Size = new System.Drawing.Size(120, 20); + this.tiebreak1Numeric.TabIndex = 1013; + this.tiebreak1Numeric.ValueChanged += new System.EventHandler(this.tiebreak1Numeric_ValueChanged); + // + // tiebreak1ValueRadio + // + this.tiebreak1ValueRadio.AutoSize = true; + this.tiebreak1ValueRadio.Location = new System.Drawing.Point(359, 6); + this.tiebreak1ValueRadio.Name = "tiebreak1ValueRadio"; + this.tiebreak1ValueRadio.Size = new System.Drawing.Size(52, 17); + this.tiebreak1ValueRadio.TabIndex = 1012; + this.tiebreak1ValueRadio.Text = "Value"; + this.tiebreak1ValueRadio.UseVisualStyleBackColor = true; + this.tiebreak1ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak1ValueRadio_CheckedChanged); + // + // Tiebreak1Operator + // + this.Tiebreak1Operator.FormattingEnabled = true; + this.Tiebreak1Operator.Items.AddRange(new object[] { + ">", + ">=", + "=", + "<=", + "<"}); + this.Tiebreak1Operator.Location = new System.Drawing.Point(262, 3); + this.Tiebreak1Operator.Name = "Tiebreak1Operator"; + this.Tiebreak1Operator.Size = new System.Drawing.Size(40, 21); + this.Tiebreak1Operator.TabIndex = 1007; + // + // tiebreak1BestRadio + // + this.tiebreak1BestRadio.AutoSize = true; + this.tiebreak1BestRadio.Checked = true; + this.tiebreak1BestRadio.Location = new System.Drawing.Point(307, 6); + this.tiebreak1BestRadio.Name = "tiebreak1BestRadio"; + this.tiebreak1BestRadio.Size = new System.Drawing.Size(46, 17); + this.tiebreak1BestRadio.TabIndex = 1011; + this.tiebreak1BestRadio.TabStop = true; + this.tiebreak1BestRadio.Text = "Best"; + this.tiebreak1BestRadio.UseVisualStyleBackColor = true; + this.tiebreak1BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak1BestRadio_CheckedChanged); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(1, 7); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(61, 13); + this.label5.TabIndex = 5; + this.label5.Text = "Tiebreak 1:"; + // + // TieBreaker1Box + // + this.TieBreaker1Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TieBreaker1Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; + this.TieBreaker1Box.Location = new System.Drawing.Point(133, 4); + this.TieBreaker1Box.Name = "TieBreaker1Box"; + this.TieBreaker1Box.Nullable = true; + this.TieBreaker1Box.Size = new System.Drawing.Size(123, 20); + this.TieBreaker1Box.TabIndex = 1002; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(67, 7); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(59, 13); + this.label10.TabIndex = 12; + this.label10.Text = "Address 0x"; + // + // panel5 + // + this.panel5.Controls.Add(this.tiebreak2Numeric); + this.panel5.Controls.Add(this.Tiebreak2Operator); + this.panel5.Controls.Add(this.tiebreak2ValueRadio); + this.panel5.Controls.Add(this.tiebreak2BestRadio); + this.panel5.Controls.Add(this.label11); + this.panel5.Controls.Add(this.label6); + this.panel5.Controls.Add(this.TieBreaker2Box); + this.panel5.Location = new System.Drawing.Point(9, 97); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(546, 26); + this.panel5.TabIndex = 2; + // + // tiebreak2Numeric + // + this.tiebreak2Numeric.Enabled = false; + this.tiebreak2Numeric.Location = new System.Drawing.Point(417, 4); + this.tiebreak2Numeric.Name = "tiebreak2Numeric"; + this.tiebreak2Numeric.Size = new System.Drawing.Size(120, 20); + this.tiebreak2Numeric.TabIndex = 1013; + this.tiebreak2Numeric.ValueChanged += new System.EventHandler(this.tiebreak2Numeric_ValueChanged); + // + // Tiebreak2Operator + // + this.Tiebreak2Operator.FormattingEnabled = true; + this.Tiebreak2Operator.Items.AddRange(new object[] { + ">", + ">=", + "=", + "<=", + "<"}); + this.Tiebreak2Operator.Location = new System.Drawing.Point(262, 3); + this.Tiebreak2Operator.Name = "Tiebreak2Operator"; + this.Tiebreak2Operator.Size = new System.Drawing.Size(40, 21); + this.Tiebreak2Operator.TabIndex = 1008; + // + // tiebreak2ValueRadio + // + this.tiebreak2ValueRadio.AutoSize = true; + this.tiebreak2ValueRadio.Location = new System.Drawing.Point(359, 6); + this.tiebreak2ValueRadio.Name = "tiebreak2ValueRadio"; + this.tiebreak2ValueRadio.Size = new System.Drawing.Size(52, 17); + this.tiebreak2ValueRadio.TabIndex = 1012; + this.tiebreak2ValueRadio.Text = "Value"; + this.tiebreak2ValueRadio.UseVisualStyleBackColor = true; + this.tiebreak2ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak2ValueRadio_CheckedChanged); + // + // tiebreak2BestRadio + // + this.tiebreak2BestRadio.AutoSize = true; + this.tiebreak2BestRadio.Checked = true; + this.tiebreak2BestRadio.Location = new System.Drawing.Point(307, 6); + this.tiebreak2BestRadio.Name = "tiebreak2BestRadio"; + this.tiebreak2BestRadio.Size = new System.Drawing.Size(46, 17); + this.tiebreak2BestRadio.TabIndex = 1011; + this.tiebreak2BestRadio.TabStop = true; + this.tiebreak2BestRadio.Text = "Best"; + this.tiebreak2BestRadio.UseVisualStyleBackColor = true; + this.tiebreak2BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak2BestRadio_CheckedChanged); + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(67, 7); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(59, 13); + this.label11.TabIndex = 13; + this.label11.Text = "Address 0x"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(1, 7); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(61, 13); + this.label6.TabIndex = 9; + this.label6.Text = "Tiebreak 2:"; + // + // TieBreaker2Box + // + this.TieBreaker2Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TieBreaker2Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; + this.TieBreaker2Box.Location = new System.Drawing.Point(133, 4); + this.TieBreaker2Box.Name = "TieBreaker2Box"; + this.TieBreaker2Box.Nullable = true; + this.TieBreaker2Box.Size = new System.Drawing.Size(123, 20); + this.TieBreaker2Box.TabIndex = 1003; + // // StopBtn // this.StopBtn.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; @@ -801,276 +1075,6 @@ this.ClearStatsContextMenuItem.Text = "&Clear"; this.ClearStatsContextMenuItem.Click += new System.EventHandler(this.ClearStatsContextMenuItem_Click); // - // panel3 - // - this.panel3.Controls.Add(this.mainValueNumeric); - this.panel3.Controls.Add(this.mainValueRadio); - this.panel3.Controls.Add(this.mainBestRadio); - this.panel3.Controls.Add(this.mainOperator); - this.panel3.Controls.Add(this.label9); - this.panel3.Controls.Add(this.MaximizeAddressBox); - this.panel3.Controls.Add(this.maximizeLabeltext); - this.panel3.Location = new System.Drawing.Point(9, 51); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(546, 26); - this.panel3.TabIndex = 0; - // - // mainOperator - // - this.mainOperator.FormattingEnabled = true; - this.mainOperator.Items.AddRange(new object[] { - ">", - ">=", - "=", - "<=", - "<"}); - this.mainOperator.Location = new System.Drawing.Point(262, 3); - this.mainOperator.Name = "mainOperator"; - this.mainOperator.Size = new System.Drawing.Size(40, 21); - this.mainOperator.TabIndex = 1010; - // - // label9 - // - this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(67, 7); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(59, 13); - this.label9.TabIndex = 1008; - this.label9.Text = "Address 0x"; - // - // MaximizeAddressBox - // - this.MaximizeAddressBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.MaximizeAddressBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.MaximizeAddressBox.Location = new System.Drawing.Point(133, 4); - this.MaximizeAddressBox.Name = "MaximizeAddressBox"; - this.MaximizeAddressBox.Nullable = true; - this.MaximizeAddressBox.Size = new System.Drawing.Size(123, 20); - this.MaximizeAddressBox.TabIndex = 1009; - // - // maximizeLabeltext - // - this.maximizeLabeltext.AutoSize = true; - this.maximizeLabeltext.Location = new System.Drawing.Point(1, 7); - this.maximizeLabeltext.Name = "maximizeLabeltext"; - this.maximizeLabeltext.Size = new System.Drawing.Size(63, 13); - this.maximizeLabeltext.TabIndex = 1007; - this.maximizeLabeltext.Text = "Main Value:"; - // - // mainBestRadio - // - this.mainBestRadio.AutoSize = true; - this.mainBestRadio.Checked = true; - this.mainBestRadio.Location = new System.Drawing.Point(307, 6); - this.mainBestRadio.Name = "mainBestRadio"; - this.mainBestRadio.Size = new System.Drawing.Size(46, 17); - this.mainBestRadio.TabIndex = 1011; - this.mainBestRadio.TabStop = true; - this.mainBestRadio.Text = "Best"; - this.mainBestRadio.UseVisualStyleBackColor = true; - this.mainBestRadio.CheckedChanged += new System.EventHandler(this.mainBestRadio_CheckedChanged); - // - // mainValueRadio - // - this.mainValueRadio.AutoSize = true; - this.mainValueRadio.Location = new System.Drawing.Point(359, 6); - this.mainValueRadio.Name = "mainValueRadio"; - this.mainValueRadio.Size = new System.Drawing.Size(52, 17); - this.mainValueRadio.TabIndex = 1012; - this.mainValueRadio.Text = "Value"; - this.mainValueRadio.UseVisualStyleBackColor = true; - this.mainValueRadio.CheckedChanged += new System.EventHandler(this.mainValueRadio_CheckedChanged); - // - // mainValueNumeric - // - this.mainValueNumeric.Enabled = false; - this.mainValueNumeric.Location = new System.Drawing.Point(417, 4); - this.mainValueNumeric.Name = "mainValueNumeric"; - this.mainValueNumeric.Size = new System.Drawing.Size(120, 20); - this.mainValueNumeric.TabIndex = 1013; - // - // panel4 - // - this.panel4.Controls.Add(this.tiebreak1Numeric); - this.panel4.Controls.Add(this.tiebreak1ValueRadio); - this.panel4.Controls.Add(this.Tiebreak1Operator); - this.panel4.Controls.Add(this.tiebreak1BestRadio); - this.panel4.Controls.Add(this.label5); - this.panel4.Controls.Add(this.TieBreaker1Box); - this.panel4.Controls.Add(this.label10); - this.panel4.Location = new System.Drawing.Point(9, 74); - this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(546, 26); - this.panel4.TabIndex = 1; - // - // tiebreak1Numeric - // - this.tiebreak1Numeric.Enabled = false; - this.tiebreak1Numeric.Location = new System.Drawing.Point(417, 4); - this.tiebreak1Numeric.Name = "tiebreak1Numeric"; - this.tiebreak1Numeric.Size = new System.Drawing.Size(120, 20); - this.tiebreak1Numeric.TabIndex = 1013; - // - // tiebreak1ValueRadio - // - this.tiebreak1ValueRadio.AutoSize = true; - this.tiebreak1ValueRadio.Location = new System.Drawing.Point(359, 6); - this.tiebreak1ValueRadio.Name = "tiebreak1ValueRadio"; - this.tiebreak1ValueRadio.Size = new System.Drawing.Size(52, 17); - this.tiebreak1ValueRadio.TabIndex = 1012; - this.tiebreak1ValueRadio.Text = "Value"; - this.tiebreak1ValueRadio.UseVisualStyleBackColor = true; - this.tiebreak1ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak1ValueRadio_CheckedChanged); - // - // tiebreak1BestRadio - // - this.tiebreak1BestRadio.AutoSize = true; - this.tiebreak1BestRadio.Checked = true; - this.tiebreak1BestRadio.Location = new System.Drawing.Point(307, 6); - this.tiebreak1BestRadio.Name = "tiebreak1BestRadio"; - this.tiebreak1BestRadio.Size = new System.Drawing.Size(46, 17); - this.tiebreak1BestRadio.TabIndex = 1011; - this.tiebreak1BestRadio.TabStop = true; - this.tiebreak1BestRadio.Text = "Best"; - this.tiebreak1BestRadio.UseVisualStyleBackColor = true; - this.tiebreak1BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak1BestRadio_CheckedChanged); - // - // panel5 - // - this.panel5.Controls.Add(this.tiebreak2Numeric); - this.panel5.Controls.Add(this.Tiebreak2Operator); - this.panel5.Controls.Add(this.tiebreak2ValueRadio); - this.panel5.Controls.Add(this.tiebreak2BestRadio); - this.panel5.Controls.Add(this.label11); - this.panel5.Controls.Add(this.label6); - this.panel5.Controls.Add(this.TieBreaker2Box); - this.panel5.Location = new System.Drawing.Point(9, 97); - this.panel5.Name = "panel5"; - this.panel5.Size = new System.Drawing.Size(546, 26); - this.panel5.TabIndex = 2; - // - // tiebreak2Numeric - // - this.tiebreak2Numeric.Enabled = false; - this.tiebreak2Numeric.Location = new System.Drawing.Point(417, 4); - this.tiebreak2Numeric.Name = "tiebreak2Numeric"; - this.tiebreak2Numeric.Size = new System.Drawing.Size(120, 20); - this.tiebreak2Numeric.TabIndex = 1013; - // - // tiebreak2ValueRadio - // - this.tiebreak2ValueRadio.AutoSize = true; - this.tiebreak2ValueRadio.Location = new System.Drawing.Point(359, 6); - this.tiebreak2ValueRadio.Name = "tiebreak2ValueRadio"; - this.tiebreak2ValueRadio.Size = new System.Drawing.Size(52, 17); - this.tiebreak2ValueRadio.TabIndex = 1012; - this.tiebreak2ValueRadio.Text = "Value"; - this.tiebreak2ValueRadio.UseVisualStyleBackColor = true; - this.tiebreak2ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak2ValueRadio_CheckedChanged); - // - // tiebreak2BestRadio - // - this.tiebreak2BestRadio.AutoSize = true; - this.tiebreak2BestRadio.Checked = true; - this.tiebreak2BestRadio.Location = new System.Drawing.Point(307, 6); - this.tiebreak2BestRadio.Name = "tiebreak2BestRadio"; - this.tiebreak2BestRadio.Size = new System.Drawing.Size(46, 17); - this.tiebreak2BestRadio.TabIndex = 1011; - this.tiebreak2BestRadio.TabStop = true; - this.tiebreak2BestRadio.Text = "Best"; - this.tiebreak2BestRadio.UseVisualStyleBackColor = true; - this.tiebreak2BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak2BestRadio_CheckedChanged); - // - // panel6 - // - this.panel6.Controls.Add(this.Tiebreak3Operator); - this.panel6.Controls.Add(this.label12); - this.panel6.Controls.Add(this.label7); - this.panel6.Controls.Add(this.TieBreaker3Box); - this.panel6.Controls.Add(this.tiebreak3Numeric); - this.panel6.Controls.Add(this.tiebreak3ValueRadio); - this.panel6.Controls.Add(this.tiebreak3BestRadio); - this.panel6.Location = new System.Drawing.Point(9, 120); - this.panel6.Name = "panel6"; - this.panel6.Size = new System.Drawing.Size(546, 26); - this.panel6.TabIndex = 3; - // - // tiebreak3Numeric - // - this.tiebreak3Numeric.Enabled = false; - this.tiebreak3Numeric.Location = new System.Drawing.Point(417, 4); - this.tiebreak3Numeric.Name = "tiebreak3Numeric"; - this.tiebreak3Numeric.Size = new System.Drawing.Size(120, 20); - this.tiebreak3Numeric.TabIndex = 1013; - // - // tiebreak3ValueRadio - // - this.tiebreak3ValueRadio.AutoSize = true; - this.tiebreak3ValueRadio.Location = new System.Drawing.Point(359, 6); - this.tiebreak3ValueRadio.Name = "tiebreak3ValueRadio"; - this.tiebreak3ValueRadio.Size = new System.Drawing.Size(52, 17); - this.tiebreak3ValueRadio.TabIndex = 1012; - this.tiebreak3ValueRadio.Text = "Value"; - this.tiebreak3ValueRadio.UseVisualStyleBackColor = true; - this.tiebreak3ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak3ValueRadio_CheckedChanged); - // - // tiebreak3BestRadio - // - this.tiebreak3BestRadio.AutoSize = true; - this.tiebreak3BestRadio.Checked = true; - this.tiebreak3BestRadio.Location = new System.Drawing.Point(307, 6); - this.tiebreak3BestRadio.Name = "tiebreak3BestRadio"; - this.tiebreak3BestRadio.Size = new System.Drawing.Size(46, 17); - this.tiebreak3BestRadio.TabIndex = 1011; - this.tiebreak3BestRadio.TabStop = true; - this.tiebreak3BestRadio.Text = "Best"; - this.tiebreak3BestRadio.UseVisualStyleBackColor = true; - this.tiebreak3BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak3BestRadio_CheckedChanged); - // - // Tiebreak3Operator - // - this.Tiebreak3Operator.FormattingEnabled = true; - this.Tiebreak3Operator.Items.AddRange(new object[] { - ">", - ">=", - "=", - "<=", - "<"}); - this.Tiebreak3Operator.Location = new System.Drawing.Point(262, 3); - this.Tiebreak3Operator.Name = "Tiebreak3Operator"; - this.Tiebreak3Operator.Size = new System.Drawing.Size(40, 21); - this.Tiebreak3Operator.TabIndex = 1017; - // - // label12 - // - this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(67, 7); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(59, 13); - this.label12.TabIndex = 1015; - this.label12.Text = "Address 0x"; - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(1, 7); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(61, 13); - this.label7.TabIndex = 1014; - this.label7.Text = "Tiebreak 3:"; - // - // TieBreaker3Box - // - this.TieBreaker3Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.TieBreaker3Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.TieBreaker3Box.Location = new System.Drawing.Point(133, 4); - this.TieBreaker3Box.Name = "TieBreaker3Box"; - this.TieBreaker3Box.Nullable = true; - this.TieBreaker3Box.Size = new System.Drawing.Size(123, 20); - this.TieBreaker3Box.TabIndex = 1016; - // // BasicBot // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -1099,12 +1103,10 @@ this.panel1.PerformLayout(); this.GoalGroupBox.ResumeLayout(false); this.GoalGroupBox.PerformLayout(); + this.panel6.ResumeLayout(false); + this.panel6.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tiebreak3Numeric)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.FrameLengthNumeric)).EndInit(); - this.ControlGroupBox.ResumeLayout(false); - this.ControlGroupBox.PerformLayout(); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - this.StatsContextMenu.ResumeLayout(false); this.panel3.ResumeLayout(false); this.panel3.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.mainValueNumeric)).EndInit(); @@ -1114,9 +1116,11 @@ this.panel5.ResumeLayout(false); this.panel5.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.tiebreak2Numeric)).EndInit(); - this.panel6.ResumeLayout(false); - this.panel6.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.tiebreak3Numeric)).EndInit(); + this.ControlGroupBox.ResumeLayout(false); + this.ControlGroupBox.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.StatsContextMenu.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs index 3e14e085c0..212bceaa31 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs @@ -453,6 +453,7 @@ namespace BizHawk.Client.EmuHawk Tiebreak3Operator.SelectedIndex = 0; UpdateBestAttempt(); + UpdateComparisonBotAttempt(); } private void OpenMenuItem_Click(object sender, EventArgs e) @@ -565,6 +566,7 @@ namespace BizHawk.Client.EmuHawk { _bestBotAttempt = null; UpdateBestAttempt(); + UpdateComparisonBotAttempt(); } private void PlayBestButton_Click(object sender, EventArgs e) @@ -706,6 +708,7 @@ namespace BizHawk.Client.EmuHawk _dataSize = botData.DataSize > 0 ? botData.DataSize : 1; UpdateBestAttempt(); + UpdateComparisonBotAttempt(); if (_bestBotAttempt != null) { @@ -860,7 +863,7 @@ namespace BizHawk.Client.EmuHawk _currentBotAttempt.TieBreak3 = TieBreaker3Value; PlayBestButton.Enabled = true; - if (_bestBotAttempt == null || IsBetter(_bestBotAttempt, _currentBotAttempt)) + if (IsBetter(_comparisonBotAttempt, _currentBotAttempt)) { _bestBotAttempt = _currentBotAttempt; UpdateBestAttempt(); @@ -883,25 +886,25 @@ namespace BizHawk.Client.EmuHawk MessageLabel.Text = "Replay stopped"; } - private bool IsBetter(BotAttempt best, BotAttempt current) + private bool IsBetter(BotAttempt comparison, BotAttempt current) { - if (!TestValue(MainComparisonType, current.Maximize, best.Maximize)) + if (!TestValue(MainComparisonType, current.Maximize, comparison.Maximize)) { return false; } - else if (current.Maximize == best.Maximize) + else if (current.Maximize == comparison.Maximize) { - if (!TestValue(Tie1ComparisonType, current.TieBreak1, best.TieBreak1)) + if (!TestValue(Tie1ComparisonType, current.TieBreak1, comparison.TieBreak1)) { return false; } - else if (current.TieBreak1 == best.TieBreak1) + else if (current.TieBreak1 == comparison.TieBreak1) { - if (!TestValue(Tie2ComparisonType, current.TieBreak2, best.TieBreak2)) + if (!TestValue(Tie2ComparisonType, current.TieBreak2, comparison.TieBreak2)) { return false; } - else if (current.TieBreak2 == best.TieBreak2) + else if (current.TieBreak2 == comparison.TieBreak2) { if (!TestValue(Tie3ComparisonType, current.TieBreak3, current.TieBreak3)) { @@ -936,8 +939,6 @@ namespace BizHawk.Client.EmuHawk { if (_bestBotAttempt != null) { - - ClearBestButton.Enabled = true; BestAttemptNumberLabel.Text = _bestBotAttempt.Attempt.ToString(); BestMaximizeBox.Text = _bestBotAttempt.Maximize.ToString(); @@ -1105,6 +1106,57 @@ namespace BizHawk.Client.EmuHawk && ControlProbabilities.Any(kvp => kvp.Value > 0); } + /// + /// Updates comparison bot attempt with current best bot attempt values for values where the "best" radio button is selected + /// + private void UpdateComparisonBotAttempt() + { + if(_bestBotAttempt == null) + { + if (mainBestRadio.Checked) + { + _comparisonBotAttempt.Maximize = 0; + } + + if (tiebreak1BestRadio.Checked) + { + _comparisonBotAttempt.TieBreak1 = 0; + } + + if (tiebreak2BestRadio.Checked) + { + _comparisonBotAttempt.TieBreak2= 0; + } + + if (tiebreak3BestRadio.Checked) + { + _comparisonBotAttempt.TieBreak3 = 0; + } + } + else + { + if (mainBestRadio.Checked && _bestBotAttempt.Maximize != _comparisonBotAttempt.Maximize) + { + _comparisonBotAttempt.Maximize = _bestBotAttempt.Maximize; + } + + if (tiebreak1BestRadio.Checked && _bestBotAttempt.TieBreak1 != _comparisonBotAttempt.TieBreak1) + { + _comparisonBotAttempt.TieBreak1 = _bestBotAttempt.TieBreak1; + } + + if (tiebreak2BestRadio.Checked && _bestBotAttempt.TieBreak2 != _comparisonBotAttempt.TieBreak2) + { + _comparisonBotAttempt.TieBreak2 = _bestBotAttempt.TieBreak2; + } + + if (tiebreak3BestRadio.Checked && _bestBotAttempt.TieBreak3 != _comparisonBotAttempt.TieBreak3) + { + _comparisonBotAttempt.TieBreak3 = _bestBotAttempt.TieBreak3; + } + } + } + private void mainBestRadio_CheckedChanged(object sender, EventArgs e) { RadioButton radioButton = (RadioButton)sender; @@ -1184,5 +1236,29 @@ namespace BizHawk.Client.EmuHawk _comparisonBotAttempt.TieBreak3 = (int)this.tiebreak3Numeric.Value; } } + + private void mainValueNumeric_ValueChanged(object sender, EventArgs e) + { + NumericUpDown numericUpDown = (NumericUpDown)sender; + this._comparisonBotAttempt.Maximize = (int)numericUpDown.Value; + } + + private void tiebreak1Numeric_ValueChanged(object sender, EventArgs e) + { + NumericUpDown numericUpDown = (NumericUpDown)sender; + this._comparisonBotAttempt.TieBreak1 = (int)numericUpDown.Value; + } + + private void tiebreak2Numeric_ValueChanged(object sender, EventArgs e) + { + NumericUpDown numericUpDown = (NumericUpDown)sender; + this._comparisonBotAttempt.TieBreak2 = (int)numericUpDown.Value; + } + + private void tiebreak3Numeric_ValueChanged(object sender, EventArgs e) + { + NumericUpDown numericUpDown = (NumericUpDown)sender; + this._comparisonBotAttempt.TieBreak3 = (int)numericUpDown.Value; + } } } From c172590ce44487f3e82e251fd5f6eb651a27db44 Mon Sep 17 00:00:00 2001 From: Adam Sturge Date: Sun, 17 Jan 2016 17:20:12 -0800 Subject: [PATCH 086/106] Reset comparison values when new is pressed. Adjusted camel casing on UI elements --- .../tools/BasicBot/BasicBot.Designer.cs | 324 +++++++++--------- .../tools/BasicBot/BasicBot.cs | 56 +-- 2 files changed, 194 insertions(+), 186 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs index 5912af311e..34e7baafcf 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs @@ -81,33 +81,33 @@ this.label12 = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label(); this.TieBreaker3Box = new BizHawk.Client.EmuHawk.HexTextBox(); - this.tiebreak3Numeric = new System.Windows.Forms.NumericUpDown(); - this.tiebreak3ValueRadio = new System.Windows.Forms.RadioButton(); - this.tiebreak3BestRadio = new System.Windows.Forms.RadioButton(); + this.TieBreak3Numeric = new System.Windows.Forms.NumericUpDown(); + this.TieBreak3ValueRadio = new System.Windows.Forms.RadioButton(); + this.TieBreak3BestRadio = new System.Windows.Forms.RadioButton(); this.label4 = new System.Windows.Forms.Label(); this.FrameLengthNumeric = new System.Windows.Forms.NumericUpDown(); this.label3 = new System.Windows.Forms.Label(); this.panel3 = new System.Windows.Forms.Panel(); - this.mainValueNumeric = new System.Windows.Forms.NumericUpDown(); - this.mainValueRadio = new System.Windows.Forms.RadioButton(); - this.mainBestRadio = new System.Windows.Forms.RadioButton(); - this.mainOperator = new System.Windows.Forms.ComboBox(); + this.MainValueNumeric = new System.Windows.Forms.NumericUpDown(); + this.MainValueRadio = new System.Windows.Forms.RadioButton(); + this.MainBestRadio = new System.Windows.Forms.RadioButton(); + this.MainOperator = new System.Windows.Forms.ComboBox(); this.label9 = new System.Windows.Forms.Label(); this.MaximizeAddressBox = new BizHawk.Client.EmuHawk.HexTextBox(); this.maximizeLabeltext = new System.Windows.Forms.Label(); this.panel4 = new System.Windows.Forms.Panel(); - this.tiebreak1Numeric = new System.Windows.Forms.NumericUpDown(); - this.tiebreak1ValueRadio = new System.Windows.Forms.RadioButton(); + this.TieBreak1Numeric = new System.Windows.Forms.NumericUpDown(); + this.TieBreak1ValueRadio = new System.Windows.Forms.RadioButton(); this.Tiebreak1Operator = new System.Windows.Forms.ComboBox(); - this.tiebreak1BestRadio = new System.Windows.Forms.RadioButton(); + this.TieBreak1BestRadio = new System.Windows.Forms.RadioButton(); this.label5 = new System.Windows.Forms.Label(); this.TieBreaker1Box = new BizHawk.Client.EmuHawk.HexTextBox(); this.label10 = new System.Windows.Forms.Label(); this.panel5 = new System.Windows.Forms.Panel(); - this.tiebreak2Numeric = new System.Windows.Forms.NumericUpDown(); + this.TieBreak2Numeric = new System.Windows.Forms.NumericUpDown(); this.Tiebreak2Operator = new System.Windows.Forms.ComboBox(); - this.tiebreak2ValueRadio = new System.Windows.Forms.RadioButton(); - this.tiebreak2BestRadio = new System.Windows.Forms.RadioButton(); + this.TieBreak2ValueRadio = new System.Windows.Forms.RadioButton(); + this.TieBreak2BestRadio = new System.Windows.Forms.RadioButton(); this.label11 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.TieBreaker2Box = new BizHawk.Client.EmuHawk.HexTextBox(); @@ -125,14 +125,14 @@ this.panel1.SuspendLayout(); this.GoalGroupBox.SuspendLayout(); this.panel6.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.tiebreak3Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TieBreak3Numeric)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.FrameLengthNumeric)).BeginInit(); this.panel3.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.mainValueNumeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.MainValueNumeric)).BeginInit(); this.panel4.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.tiebreak1Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TieBreak1Numeric)).BeginInit(); this.panel5.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.tiebreak2Numeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TieBreak2Numeric)).BeginInit(); this.ControlGroupBox.SuspendLayout(); this.panel2.SuspendLayout(); this.StatsContextMenu.SuspendLayout(); @@ -602,9 +602,9 @@ this.panel6.Controls.Add(this.label12); this.panel6.Controls.Add(this.label7); this.panel6.Controls.Add(this.TieBreaker3Box); - this.panel6.Controls.Add(this.tiebreak3Numeric); - this.panel6.Controls.Add(this.tiebreak3ValueRadio); - this.panel6.Controls.Add(this.tiebreak3BestRadio); + this.panel6.Controls.Add(this.TieBreak3Numeric); + this.panel6.Controls.Add(this.TieBreak3ValueRadio); + this.panel6.Controls.Add(this.TieBreak3BestRadio); this.panel6.Location = new System.Drawing.Point(9, 120); this.panel6.Name = "panel6"; this.panel6.Size = new System.Drawing.Size(546, 26); @@ -653,38 +653,38 @@ this.TieBreaker3Box.Size = new System.Drawing.Size(123, 20); this.TieBreaker3Box.TabIndex = 1016; // - // tiebreak3Numeric + // TieBreak3Numeric // - this.tiebreak3Numeric.Enabled = false; - this.tiebreak3Numeric.Location = new System.Drawing.Point(417, 4); - this.tiebreak3Numeric.Name = "tiebreak3Numeric"; - this.tiebreak3Numeric.Size = new System.Drawing.Size(120, 20); - this.tiebreak3Numeric.TabIndex = 1013; - this.tiebreak3Numeric.ValueChanged += new System.EventHandler(this.tiebreak3Numeric_ValueChanged); + this.TieBreak3Numeric.Enabled = false; + this.TieBreak3Numeric.Location = new System.Drawing.Point(417, 4); + this.TieBreak3Numeric.Name = "TieBreak3Numeric"; + this.TieBreak3Numeric.Size = new System.Drawing.Size(120, 20); + this.TieBreak3Numeric.TabIndex = 1013; + this.TieBreak3Numeric.ValueChanged += new System.EventHandler(this.tiebreak3Numeric_ValueChanged); // - // tiebreak3ValueRadio + // TieBreak3ValueRadio // - this.tiebreak3ValueRadio.AutoSize = true; - this.tiebreak3ValueRadio.Location = new System.Drawing.Point(359, 6); - this.tiebreak3ValueRadio.Name = "tiebreak3ValueRadio"; - this.tiebreak3ValueRadio.Size = new System.Drawing.Size(52, 17); - this.tiebreak3ValueRadio.TabIndex = 1012; - this.tiebreak3ValueRadio.Text = "Value"; - this.tiebreak3ValueRadio.UseVisualStyleBackColor = true; - this.tiebreak3ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak3ValueRadio_CheckedChanged); + this.TieBreak3ValueRadio.AutoSize = true; + this.TieBreak3ValueRadio.Location = new System.Drawing.Point(359, 6); + this.TieBreak3ValueRadio.Name = "TieBreak3ValueRadio"; + this.TieBreak3ValueRadio.Size = new System.Drawing.Size(52, 17); + this.TieBreak3ValueRadio.TabIndex = 1012; + this.TieBreak3ValueRadio.Text = "Value"; + this.TieBreak3ValueRadio.UseVisualStyleBackColor = true; + this.TieBreak3ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak3ValueRadio_CheckedChanged); // - // tiebreak3BestRadio + // TieBreak3BestRadio // - this.tiebreak3BestRadio.AutoSize = true; - this.tiebreak3BestRadio.Checked = true; - this.tiebreak3BestRadio.Location = new System.Drawing.Point(307, 6); - this.tiebreak3BestRadio.Name = "tiebreak3BestRadio"; - this.tiebreak3BestRadio.Size = new System.Drawing.Size(46, 17); - this.tiebreak3BestRadio.TabIndex = 1011; - this.tiebreak3BestRadio.TabStop = true; - this.tiebreak3BestRadio.Text = "Best"; - this.tiebreak3BestRadio.UseVisualStyleBackColor = true; - this.tiebreak3BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak3BestRadio_CheckedChanged); + this.TieBreak3BestRadio.AutoSize = true; + this.TieBreak3BestRadio.Checked = true; + this.TieBreak3BestRadio.Location = new System.Drawing.Point(307, 6); + this.TieBreak3BestRadio.Name = "TieBreak3BestRadio"; + this.TieBreak3BestRadio.Size = new System.Drawing.Size(46, 17); + this.TieBreak3BestRadio.TabIndex = 1011; + this.TieBreak3BestRadio.TabStop = true; + this.TieBreak3BestRadio.Text = "Best"; + this.TieBreak3BestRadio.UseVisualStyleBackColor = true; + this.TieBreak3BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak3BestRadio_CheckedChanged); // // label4 // @@ -724,10 +724,10 @@ // // panel3 // - this.panel3.Controls.Add(this.mainValueNumeric); - this.panel3.Controls.Add(this.mainValueRadio); - this.panel3.Controls.Add(this.mainBestRadio); - this.panel3.Controls.Add(this.mainOperator); + this.panel3.Controls.Add(this.MainValueNumeric); + this.panel3.Controls.Add(this.MainValueRadio); + this.panel3.Controls.Add(this.MainBestRadio); + this.panel3.Controls.Add(this.MainOperator); this.panel3.Controls.Add(this.label9); this.panel3.Controls.Add(this.MaximizeAddressBox); this.panel3.Controls.Add(this.maximizeLabeltext); @@ -736,52 +736,52 @@ this.panel3.Size = new System.Drawing.Size(546, 26); this.panel3.TabIndex = 0; // - // mainValueNumeric + // MainValueNumeric // - this.mainValueNumeric.Enabled = false; - this.mainValueNumeric.Location = new System.Drawing.Point(417, 4); - this.mainValueNumeric.Name = "mainValueNumeric"; - this.mainValueNumeric.Size = new System.Drawing.Size(120, 20); - this.mainValueNumeric.TabIndex = 1013; - this.mainValueNumeric.ValueChanged += new System.EventHandler(this.mainValueNumeric_ValueChanged); + this.MainValueNumeric.Enabled = false; + this.MainValueNumeric.Location = new System.Drawing.Point(417, 4); + this.MainValueNumeric.Name = "MainValueNumeric"; + this.MainValueNumeric.Size = new System.Drawing.Size(120, 20); + this.MainValueNumeric.TabIndex = 1013; + this.MainValueNumeric.ValueChanged += new System.EventHandler(this.mainValueNumeric_ValueChanged); // - // mainValueRadio + // MainValueRadio // - this.mainValueRadio.AutoSize = true; - this.mainValueRadio.Location = new System.Drawing.Point(359, 6); - this.mainValueRadio.Name = "mainValueRadio"; - this.mainValueRadio.Size = new System.Drawing.Size(52, 17); - this.mainValueRadio.TabIndex = 1012; - this.mainValueRadio.Text = "Value"; - this.mainValueRadio.UseVisualStyleBackColor = true; - this.mainValueRadio.CheckedChanged += new System.EventHandler(this.mainValueRadio_CheckedChanged); + this.MainValueRadio.AutoSize = true; + this.MainValueRadio.Location = new System.Drawing.Point(359, 6); + this.MainValueRadio.Name = "MainValueRadio"; + this.MainValueRadio.Size = new System.Drawing.Size(52, 17); + this.MainValueRadio.TabIndex = 1012; + this.MainValueRadio.Text = "Value"; + this.MainValueRadio.UseVisualStyleBackColor = true; + this.MainValueRadio.CheckedChanged += new System.EventHandler(this.mainValueRadio_CheckedChanged); // - // mainBestRadio + // MainBestRadio // - this.mainBestRadio.AutoSize = true; - this.mainBestRadio.Checked = true; - this.mainBestRadio.Location = new System.Drawing.Point(307, 6); - this.mainBestRadio.Name = "mainBestRadio"; - this.mainBestRadio.Size = new System.Drawing.Size(46, 17); - this.mainBestRadio.TabIndex = 1011; - this.mainBestRadio.TabStop = true; - this.mainBestRadio.Text = "Best"; - this.mainBestRadio.UseVisualStyleBackColor = true; - this.mainBestRadio.CheckedChanged += new System.EventHandler(this.mainBestRadio_CheckedChanged); + this.MainBestRadio.AutoSize = true; + this.MainBestRadio.Checked = true; + this.MainBestRadio.Location = new System.Drawing.Point(307, 6); + this.MainBestRadio.Name = "MainBestRadio"; + this.MainBestRadio.Size = new System.Drawing.Size(46, 17); + this.MainBestRadio.TabIndex = 1011; + this.MainBestRadio.TabStop = true; + this.MainBestRadio.Text = "Best"; + this.MainBestRadio.UseVisualStyleBackColor = true; + this.MainBestRadio.CheckedChanged += new System.EventHandler(this.mainBestRadio_CheckedChanged); // - // mainOperator + // MainOperator // - this.mainOperator.FormattingEnabled = true; - this.mainOperator.Items.AddRange(new object[] { + this.MainOperator.FormattingEnabled = true; + this.MainOperator.Items.AddRange(new object[] { ">", ">=", "=", "<=", "<"}); - this.mainOperator.Location = new System.Drawing.Point(262, 3); - this.mainOperator.Name = "mainOperator"; - this.mainOperator.Size = new System.Drawing.Size(40, 21); - this.mainOperator.TabIndex = 1010; + this.MainOperator.Location = new System.Drawing.Point(262, 3); + this.MainOperator.Name = "MainOperator"; + this.MainOperator.Size = new System.Drawing.Size(40, 21); + this.MainOperator.TabIndex = 1010; // // label9 // @@ -814,10 +814,10 @@ // // panel4 // - this.panel4.Controls.Add(this.tiebreak1Numeric); - this.panel4.Controls.Add(this.tiebreak1ValueRadio); + this.panel4.Controls.Add(this.TieBreak1Numeric); + this.panel4.Controls.Add(this.TieBreak1ValueRadio); this.panel4.Controls.Add(this.Tiebreak1Operator); - this.panel4.Controls.Add(this.tiebreak1BestRadio); + this.panel4.Controls.Add(this.TieBreak1BestRadio); this.panel4.Controls.Add(this.label5); this.panel4.Controls.Add(this.TieBreaker1Box); this.panel4.Controls.Add(this.label10); @@ -826,25 +826,25 @@ this.panel4.Size = new System.Drawing.Size(546, 26); this.panel4.TabIndex = 1; // - // tiebreak1Numeric + // TieBreak1Numeric // - this.tiebreak1Numeric.Enabled = false; - this.tiebreak1Numeric.Location = new System.Drawing.Point(417, 4); - this.tiebreak1Numeric.Name = "tiebreak1Numeric"; - this.tiebreak1Numeric.Size = new System.Drawing.Size(120, 20); - this.tiebreak1Numeric.TabIndex = 1013; - this.tiebreak1Numeric.ValueChanged += new System.EventHandler(this.tiebreak1Numeric_ValueChanged); + this.TieBreak1Numeric.Enabled = false; + this.TieBreak1Numeric.Location = new System.Drawing.Point(417, 4); + this.TieBreak1Numeric.Name = "TieBreak1Numeric"; + this.TieBreak1Numeric.Size = new System.Drawing.Size(120, 20); + this.TieBreak1Numeric.TabIndex = 1013; + this.TieBreak1Numeric.ValueChanged += new System.EventHandler(this.tiebreak1Numeric_ValueChanged); // - // tiebreak1ValueRadio + // TieBreak1ValueRadio // - this.tiebreak1ValueRadio.AutoSize = true; - this.tiebreak1ValueRadio.Location = new System.Drawing.Point(359, 6); - this.tiebreak1ValueRadio.Name = "tiebreak1ValueRadio"; - this.tiebreak1ValueRadio.Size = new System.Drawing.Size(52, 17); - this.tiebreak1ValueRadio.TabIndex = 1012; - this.tiebreak1ValueRadio.Text = "Value"; - this.tiebreak1ValueRadio.UseVisualStyleBackColor = true; - this.tiebreak1ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak1ValueRadio_CheckedChanged); + this.TieBreak1ValueRadio.AutoSize = true; + this.TieBreak1ValueRadio.Location = new System.Drawing.Point(359, 6); + this.TieBreak1ValueRadio.Name = "TieBreak1ValueRadio"; + this.TieBreak1ValueRadio.Size = new System.Drawing.Size(52, 17); + this.TieBreak1ValueRadio.TabIndex = 1012; + this.TieBreak1ValueRadio.Text = "Value"; + this.TieBreak1ValueRadio.UseVisualStyleBackColor = true; + this.TieBreak1ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak1ValueRadio_CheckedChanged); // // Tiebreak1Operator // @@ -860,18 +860,18 @@ this.Tiebreak1Operator.Size = new System.Drawing.Size(40, 21); this.Tiebreak1Operator.TabIndex = 1007; // - // tiebreak1BestRadio + // TieBreak1BestRadio // - this.tiebreak1BestRadio.AutoSize = true; - this.tiebreak1BestRadio.Checked = true; - this.tiebreak1BestRadio.Location = new System.Drawing.Point(307, 6); - this.tiebreak1BestRadio.Name = "tiebreak1BestRadio"; - this.tiebreak1BestRadio.Size = new System.Drawing.Size(46, 17); - this.tiebreak1BestRadio.TabIndex = 1011; - this.tiebreak1BestRadio.TabStop = true; - this.tiebreak1BestRadio.Text = "Best"; - this.tiebreak1BestRadio.UseVisualStyleBackColor = true; - this.tiebreak1BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak1BestRadio_CheckedChanged); + this.TieBreak1BestRadio.AutoSize = true; + this.TieBreak1BestRadio.Checked = true; + this.TieBreak1BestRadio.Location = new System.Drawing.Point(307, 6); + this.TieBreak1BestRadio.Name = "TieBreak1BestRadio"; + this.TieBreak1BestRadio.Size = new System.Drawing.Size(46, 17); + this.TieBreak1BestRadio.TabIndex = 1011; + this.TieBreak1BestRadio.TabStop = true; + this.TieBreak1BestRadio.Text = "Best"; + this.TieBreak1BestRadio.UseVisualStyleBackColor = true; + this.TieBreak1BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak1BestRadio_CheckedChanged); // // label5 // @@ -904,10 +904,10 @@ // // panel5 // - this.panel5.Controls.Add(this.tiebreak2Numeric); + this.panel5.Controls.Add(this.TieBreak2Numeric); this.panel5.Controls.Add(this.Tiebreak2Operator); - this.panel5.Controls.Add(this.tiebreak2ValueRadio); - this.panel5.Controls.Add(this.tiebreak2BestRadio); + this.panel5.Controls.Add(this.TieBreak2ValueRadio); + this.panel5.Controls.Add(this.TieBreak2BestRadio); this.panel5.Controls.Add(this.label11); this.panel5.Controls.Add(this.label6); this.panel5.Controls.Add(this.TieBreaker2Box); @@ -916,14 +916,14 @@ this.panel5.Size = new System.Drawing.Size(546, 26); this.panel5.TabIndex = 2; // - // tiebreak2Numeric + // TieBreak2Numeric // - this.tiebreak2Numeric.Enabled = false; - this.tiebreak2Numeric.Location = new System.Drawing.Point(417, 4); - this.tiebreak2Numeric.Name = "tiebreak2Numeric"; - this.tiebreak2Numeric.Size = new System.Drawing.Size(120, 20); - this.tiebreak2Numeric.TabIndex = 1013; - this.tiebreak2Numeric.ValueChanged += new System.EventHandler(this.tiebreak2Numeric_ValueChanged); + this.TieBreak2Numeric.Enabled = false; + this.TieBreak2Numeric.Location = new System.Drawing.Point(417, 4); + this.TieBreak2Numeric.Name = "TieBreak2Numeric"; + this.TieBreak2Numeric.Size = new System.Drawing.Size(120, 20); + this.TieBreak2Numeric.TabIndex = 1013; + this.TieBreak2Numeric.ValueChanged += new System.EventHandler(this.tiebreak2Numeric_ValueChanged); // // Tiebreak2Operator // @@ -939,29 +939,29 @@ this.Tiebreak2Operator.Size = new System.Drawing.Size(40, 21); this.Tiebreak2Operator.TabIndex = 1008; // - // tiebreak2ValueRadio + // TieBreak2ValueRadio // - this.tiebreak2ValueRadio.AutoSize = true; - this.tiebreak2ValueRadio.Location = new System.Drawing.Point(359, 6); - this.tiebreak2ValueRadio.Name = "tiebreak2ValueRadio"; - this.tiebreak2ValueRadio.Size = new System.Drawing.Size(52, 17); - this.tiebreak2ValueRadio.TabIndex = 1012; - this.tiebreak2ValueRadio.Text = "Value"; - this.tiebreak2ValueRadio.UseVisualStyleBackColor = true; - this.tiebreak2ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak2ValueRadio_CheckedChanged); + this.TieBreak2ValueRadio.AutoSize = true; + this.TieBreak2ValueRadio.Location = new System.Drawing.Point(359, 6); + this.TieBreak2ValueRadio.Name = "TieBreak2ValueRadio"; + this.TieBreak2ValueRadio.Size = new System.Drawing.Size(52, 17); + this.TieBreak2ValueRadio.TabIndex = 1012; + this.TieBreak2ValueRadio.Text = "Value"; + this.TieBreak2ValueRadio.UseVisualStyleBackColor = true; + this.TieBreak2ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak2ValueRadio_CheckedChanged); // - // tiebreak2BestRadio + // TieBreak2BestRadio // - this.tiebreak2BestRadio.AutoSize = true; - this.tiebreak2BestRadio.Checked = true; - this.tiebreak2BestRadio.Location = new System.Drawing.Point(307, 6); - this.tiebreak2BestRadio.Name = "tiebreak2BestRadio"; - this.tiebreak2BestRadio.Size = new System.Drawing.Size(46, 17); - this.tiebreak2BestRadio.TabIndex = 1011; - this.tiebreak2BestRadio.TabStop = true; - this.tiebreak2BestRadio.Text = "Best"; - this.tiebreak2BestRadio.UseVisualStyleBackColor = true; - this.tiebreak2BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak2BestRadio_CheckedChanged); + this.TieBreak2BestRadio.AutoSize = true; + this.TieBreak2BestRadio.Checked = true; + this.TieBreak2BestRadio.Location = new System.Drawing.Point(307, 6); + this.TieBreak2BestRadio.Name = "TieBreak2BestRadio"; + this.TieBreak2BestRadio.Size = new System.Drawing.Size(46, 17); + this.TieBreak2BestRadio.TabIndex = 1011; + this.TieBreak2BestRadio.TabStop = true; + this.TieBreak2BestRadio.Text = "Best"; + this.TieBreak2BestRadio.UseVisualStyleBackColor = true; + this.TieBreak2BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak2BestRadio_CheckedChanged); // // label11 // @@ -1105,17 +1105,17 @@ this.GoalGroupBox.PerformLayout(); this.panel6.ResumeLayout(false); this.panel6.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.tiebreak3Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TieBreak3Numeric)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.FrameLengthNumeric)).EndInit(); this.panel3.ResumeLayout(false); this.panel3.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.mainValueNumeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.MainValueNumeric)).EndInit(); this.panel4.ResumeLayout(false); this.panel4.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.tiebreak1Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TieBreak1Numeric)).EndInit(); this.panel5.ResumeLayout(false); this.panel5.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.tiebreak2Numeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TieBreak2Numeric)).EndInit(); this.ControlGroupBox.ResumeLayout(false); this.ControlGroupBox.PerformLayout(); this.panel2.ResumeLayout(false); @@ -1197,22 +1197,22 @@ private System.Windows.Forms.Label label12; private System.Windows.Forms.Label label7; private HexTextBox TieBreaker3Box; - private System.Windows.Forms.NumericUpDown tiebreak3Numeric; - private System.Windows.Forms.RadioButton tiebreak3ValueRadio; - private System.Windows.Forms.RadioButton tiebreak3BestRadio; + private System.Windows.Forms.NumericUpDown TieBreak3Numeric; + private System.Windows.Forms.RadioButton TieBreak3ValueRadio; + private System.Windows.Forms.RadioButton TieBreak3BestRadio; private System.Windows.Forms.Panel panel5; - private System.Windows.Forms.NumericUpDown tiebreak2Numeric; - private System.Windows.Forms.RadioButton tiebreak2ValueRadio; - private System.Windows.Forms.RadioButton tiebreak2BestRadio; + private System.Windows.Forms.NumericUpDown TieBreak2Numeric; + private System.Windows.Forms.RadioButton TieBreak2ValueRadio; + private System.Windows.Forms.RadioButton TieBreak2BestRadio; private System.Windows.Forms.Panel panel4; - private System.Windows.Forms.NumericUpDown tiebreak1Numeric; - private System.Windows.Forms.RadioButton tiebreak1ValueRadio; - private System.Windows.Forms.RadioButton tiebreak1BestRadio; + private System.Windows.Forms.NumericUpDown TieBreak1Numeric; + private System.Windows.Forms.RadioButton TieBreak1ValueRadio; + private System.Windows.Forms.RadioButton TieBreak1BestRadio; private System.Windows.Forms.Panel panel3; - private System.Windows.Forms.NumericUpDown mainValueNumeric; - private System.Windows.Forms.RadioButton mainValueRadio; - private System.Windows.Forms.RadioButton mainBestRadio; - private System.Windows.Forms.ComboBox mainOperator; + private System.Windows.Forms.NumericUpDown MainValueNumeric; + private System.Windows.Forms.RadioButton MainValueRadio; + private System.Windows.Forms.RadioButton MainBestRadio; + private System.Windows.Forms.ComboBox MainOperator; private System.Windows.Forms.Label label9; private HexTextBox MaximizeAddressBox; private System.Windows.Forms.Label maximizeLabeltext; diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs index 212bceaa31..b050e2839d 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs @@ -291,12 +291,12 @@ namespace BizHawk.Client.EmuHawk { get { - return (byte)mainOperator.SelectedIndex; + return (byte)MainOperator.SelectedIndex; } set { - if (value < 5) mainOperator.SelectedIndex = value; - else mainOperator.SelectedIndex = 0; + if (value < 5) MainOperator.SelectedIndex = value; + else MainOperator.SelectedIndex = 0; } } @@ -447,10 +447,18 @@ namespace BizHawk.Client.EmuHawk TieBreaker2Address = 0; TieBreaker3Address = 0; StartFromSlotBox.SelectedIndex = 0; - mainOperator.SelectedIndex = 0; + MainOperator.SelectedIndex = 0; Tiebreak1Operator.SelectedIndex = 0; Tiebreak2Operator.SelectedIndex = 0; Tiebreak3Operator.SelectedIndex = 0; + MainBestRadio.Checked = true; + MainValueNumeric.Value = 0; + TieBreak1Numeric.Value = 0; + TieBreak2Numeric.Value = 0; + TieBreak3Numeric.Value = 0; + TieBreak1BestRadio.Checked = true; + TieBreak2BestRadio.Checked = true; + TieBreak3BestRadio.Checked = true; UpdateBestAttempt(); UpdateComparisonBotAttempt(); @@ -1113,44 +1121,44 @@ namespace BizHawk.Client.EmuHawk { if(_bestBotAttempt == null) { - if (mainBestRadio.Checked) + if (MainBestRadio.Checked) { _comparisonBotAttempt.Maximize = 0; } - if (tiebreak1BestRadio.Checked) + if (TieBreak1BestRadio.Checked) { _comparisonBotAttempt.TieBreak1 = 0; } - if (tiebreak2BestRadio.Checked) + if (TieBreak2BestRadio.Checked) { _comparisonBotAttempt.TieBreak2= 0; } - if (tiebreak3BestRadio.Checked) + if (TieBreak3BestRadio.Checked) { _comparisonBotAttempt.TieBreak3 = 0; } } else { - if (mainBestRadio.Checked && _bestBotAttempt.Maximize != _comparisonBotAttempt.Maximize) + if (MainBestRadio.Checked && _bestBotAttempt.Maximize != _comparisonBotAttempt.Maximize) { _comparisonBotAttempt.Maximize = _bestBotAttempt.Maximize; } - if (tiebreak1BestRadio.Checked && _bestBotAttempt.TieBreak1 != _comparisonBotAttempt.TieBreak1) + if (TieBreak1BestRadio.Checked && _bestBotAttempt.TieBreak1 != _comparisonBotAttempt.TieBreak1) { _comparisonBotAttempt.TieBreak1 = _bestBotAttempt.TieBreak1; } - if (tiebreak2BestRadio.Checked && _bestBotAttempt.TieBreak2 != _comparisonBotAttempt.TieBreak2) + if (TieBreak2BestRadio.Checked && _bestBotAttempt.TieBreak2 != _comparisonBotAttempt.TieBreak2) { _comparisonBotAttempt.TieBreak2 = _bestBotAttempt.TieBreak2; } - if (tiebreak3BestRadio.Checked && _bestBotAttempt.TieBreak3 != _comparisonBotAttempt.TieBreak3) + if (TieBreak3BestRadio.Checked && _bestBotAttempt.TieBreak3 != _comparisonBotAttempt.TieBreak3) { _comparisonBotAttempt.TieBreak3 = _bestBotAttempt.TieBreak3; } @@ -1162,7 +1170,7 @@ namespace BizHawk.Client.EmuHawk RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) { - this.mainValueNumeric.Enabled = false; + this.MainValueNumeric.Enabled = false; _comparisonBotAttempt.Maximize = _bestBotAttempt == null ? 0 : _bestBotAttempt.Maximize; } } @@ -1172,7 +1180,7 @@ namespace BizHawk.Client.EmuHawk RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) { - this.tiebreak1Numeric.Enabled = false; + this.TieBreak1Numeric.Enabled = false; _comparisonBotAttempt.TieBreak1 = _bestBotAttempt == null ? 0 : _bestBotAttempt.TieBreak1; } } @@ -1182,7 +1190,7 @@ namespace BizHawk.Client.EmuHawk RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) { - this.tiebreak2Numeric.Enabled = false; + this.TieBreak2Numeric.Enabled = false; _comparisonBotAttempt.TieBreak2 = _bestBotAttempt == null ? 0 : _bestBotAttempt.TieBreak2; } } @@ -1192,7 +1200,7 @@ namespace BizHawk.Client.EmuHawk RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) { - this.tiebreak3Numeric.Enabled = false; + this.TieBreak3Numeric.Enabled = false; _comparisonBotAttempt.TieBreak3 = _bestBotAttempt == null ? 0 : _bestBotAttempt.TieBreak3; } } @@ -1202,8 +1210,8 @@ namespace BizHawk.Client.EmuHawk RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) { - this.mainValueNumeric.Enabled = true; - _comparisonBotAttempt.Maximize = (int)this.mainValueNumeric.Value; + this.MainValueNumeric.Enabled = true; + _comparisonBotAttempt.Maximize = (int)this.MainValueNumeric.Value; } } @@ -1212,8 +1220,8 @@ namespace BizHawk.Client.EmuHawk RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) { - this.tiebreak1Numeric.Enabled = true; - _comparisonBotAttempt.TieBreak1 = (int)this.tiebreak1Numeric.Value; + this.TieBreak1Numeric.Enabled = true; + _comparisonBotAttempt.TieBreak1 = (int)this.TieBreak1Numeric.Value; } } @@ -1222,8 +1230,8 @@ namespace BizHawk.Client.EmuHawk RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) { - this.tiebreak2Numeric.Enabled = true; - _comparisonBotAttempt.TieBreak2 = (int)this.tiebreak2Numeric.Value; + this.TieBreak2Numeric.Enabled = true; + _comparisonBotAttempt.TieBreak2 = (int)this.TieBreak2Numeric.Value; } } @@ -1232,8 +1240,8 @@ namespace BizHawk.Client.EmuHawk RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) { - this.tiebreak3Numeric.Enabled = true; - _comparisonBotAttempt.TieBreak3 = (int)this.tiebreak3Numeric.Value; + this.TieBreak3Numeric.Enabled = true; + _comparisonBotAttempt.TieBreak3 = (int)this.TieBreak3Numeric.Value; } } From 16aae180e51f07910e40dfb517ee6d9ad46c6927 Mon Sep 17 00:00:00 2001 From: Adam Sturge Date: Sun, 17 Jan 2016 17:44:39 -0800 Subject: [PATCH 087/106] Save/Load bot data now accounts for comparison values --- .../tools/BasicBot/BasicBot.Designer.cs | 40 +++++++++++++++ .../tools/BasicBot/BasicBot.cs | 51 +++++++++++++++++-- 2 files changed, 87 insertions(+), 4 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs index 34e7baafcf..730b88664e 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs @@ -657,6 +657,16 @@ // this.TieBreak3Numeric.Enabled = false; this.TieBreak3Numeric.Location = new System.Drawing.Point(417, 4); + this.TieBreak3Numeric.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.TieBreak3Numeric.Minimum = new decimal(new int[] { + 100000, + 0, + 0, + -2147483648}); this.TieBreak3Numeric.Name = "TieBreak3Numeric"; this.TieBreak3Numeric.Size = new System.Drawing.Size(120, 20); this.TieBreak3Numeric.TabIndex = 1013; @@ -740,6 +750,16 @@ // this.MainValueNumeric.Enabled = false; this.MainValueNumeric.Location = new System.Drawing.Point(417, 4); + this.MainValueNumeric.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.MainValueNumeric.Minimum = new decimal(new int[] { + 100000, + 0, + 0, + -2147483648}); this.MainValueNumeric.Name = "MainValueNumeric"; this.MainValueNumeric.Size = new System.Drawing.Size(120, 20); this.MainValueNumeric.TabIndex = 1013; @@ -830,6 +850,16 @@ // this.TieBreak1Numeric.Enabled = false; this.TieBreak1Numeric.Location = new System.Drawing.Point(417, 4); + this.TieBreak1Numeric.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.TieBreak1Numeric.Minimum = new decimal(new int[] { + 100000, + 0, + 0, + -2147483648}); this.TieBreak1Numeric.Name = "TieBreak1Numeric"; this.TieBreak1Numeric.Size = new System.Drawing.Size(120, 20); this.TieBreak1Numeric.TabIndex = 1013; @@ -920,6 +950,16 @@ // this.TieBreak2Numeric.Enabled = false; this.TieBreak2Numeric.Location = new System.Drawing.Point(417, 4); + this.TieBreak2Numeric.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.TieBreak2Numeric.Minimum = new decimal(new int[] { + 100000, + 0, + 0, + -2147483648}); this.TieBreak2Numeric.Name = "TieBreak2Numeric"; this.TieBreak2Numeric.Size = new System.Drawing.Size(120, 20); this.TieBreak2Numeric.TabIndex = 1013; diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs index b050e2839d..33ddd6ce51 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs @@ -638,7 +638,15 @@ namespace BizHawk.Client.EmuHawk public byte ComparisonTypeTie1 { get; set; } public byte ComparisonTypeTie2 { get; set; } public byte ComparisonTypeTie3 { get; set; } - public int FrameLength { get; set; } + public bool MainCompareToBest { get; set; } = true; + public bool TieBreaker1CompareToBest { get; set; } = true; + public bool TieBreaker2CompareToBest { get; set; } = true; + public bool TieBreaker3CompareToBest { get; set; } = true; + public int MainCompareToValue { get; set; } + public int TieBreaker1CompareToValue { get; set; } + public int TieBreaker2CompareToValue { get; set; } + public int TieBreaker3CompareToValue { get; set; } + public int FrameLength { get; set; } public string FromSlot { get; set; } public long Attempts { get; set; } public long Frames { get; set; } @@ -674,7 +682,6 @@ namespace BizHawk.Client.EmuHawk _bestBotAttempt = botData.Best; - var probabilityControls = ControlProbabilityPanel.Controls .OfType() .ToList(); @@ -695,14 +702,42 @@ namespace BizHawk.Client.EmuHawk Tie1ComparisonType = botData.ComparisonTypeTie1; Tie2ComparisonType = botData.ComparisonTypeTie2; Tie3ComparisonType = botData.ComparisonTypeTie3; - } + + MainBestRadio.Checked = botData.MainCompareToBest; + TieBreak1BestRadio.Checked = botData.TieBreaker1CompareToBest; + TieBreak2BestRadio.Checked = botData.TieBreaker2CompareToBest; + TieBreak3BestRadio.Checked = botData.TieBreaker3CompareToBest; + MainValueRadio.Checked = !botData.MainCompareToBest; + TieBreak1ValueRadio.Checked = !botData.TieBreaker1CompareToBest; + TieBreak2ValueRadio.Checked = !botData.TieBreaker2CompareToBest; + TieBreak3ValueRadio.Checked = !botData.TieBreaker3CompareToBest; + + MainValueNumeric.Value = botData.MainCompareToValue; + TieBreak1Numeric.Value = botData.TieBreaker1CompareToValue; + TieBreak2Numeric.Value = botData.TieBreaker2CompareToValue; + TieBreak3Numeric.Value = botData.TieBreaker3CompareToValue; + } catch { MainComparisonType = 0; Tie1ComparisonType = 0; Tie2ComparisonType = 0; Tie3ComparisonType = 0; - } + + MainBestRadio.Checked = true; + TieBreak1BestRadio.Checked = true; + TieBreak2BestRadio.Checked = true; + TieBreak3BestRadio.Checked = true; + MainBestRadio.Checked = false; + TieBreak1BestRadio.Checked = false; + TieBreak2BestRadio.Checked = false; + TieBreak3BestRadio.Checked = false; + + MainValueNumeric.Value = 0; + TieBreak1Numeric.Value = 0; + TieBreak2Numeric.Value = 0; + TieBreak3Numeric.Value = 0; + } FrameLength = botData.FrameLength; FromSlot = botData.FromSlot; Attempts = botData.Attempts; @@ -744,6 +779,14 @@ namespace BizHawk.Client.EmuHawk ComparisonTypeTie1 = Tie1ComparisonType, ComparisonTypeTie2 = Tie2ComparisonType, ComparisonTypeTie3 = Tie3ComparisonType, + MainCompareToBest = MainBestRadio.Checked, + TieBreaker1CompareToBest = TieBreak1BestRadio.Checked, + TieBreaker2CompareToBest = TieBreak2BestRadio.Checked, + TieBreaker3CompareToBest = TieBreak3BestRadio.Checked, + MainCompareToValue = (int)MainValueNumeric.Value, + TieBreaker1CompareToValue = (int)TieBreak1Numeric.Value, + TieBreaker2CompareToValue = (int)TieBreak2Numeric.Value, + TieBreaker3CompareToValue = (int)TieBreak3Numeric.Value, FromSlot = FromSlot, FrameLength = FrameLength, Attempts = Attempts, From 19ae023d8e035b7b9e1266abdbcb8068038fe428 Mon Sep 17 00:00:00 2001 From: Adam Sturge Date: Sun, 17 Jan 2016 17:46:48 -0800 Subject: [PATCH 088/106] Changed case of event listeners for comparison UI elements --- .../tools/BasicBot/BasicBot.Designer.cs | 24 +++++++++---------- .../tools/BasicBot/BasicBot.cs | 24 +++++++++---------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs index 730b88664e..ef5d79b90d 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs @@ -670,7 +670,7 @@ this.TieBreak3Numeric.Name = "TieBreak3Numeric"; this.TieBreak3Numeric.Size = new System.Drawing.Size(120, 20); this.TieBreak3Numeric.TabIndex = 1013; - this.TieBreak3Numeric.ValueChanged += new System.EventHandler(this.tiebreak3Numeric_ValueChanged); + this.TieBreak3Numeric.ValueChanged += new System.EventHandler(this.TieBreak3Numeric_ValueChanged); // // TieBreak3ValueRadio // @@ -681,7 +681,7 @@ this.TieBreak3ValueRadio.TabIndex = 1012; this.TieBreak3ValueRadio.Text = "Value"; this.TieBreak3ValueRadio.UseVisualStyleBackColor = true; - this.TieBreak3ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak3ValueRadio_CheckedChanged); + this.TieBreak3ValueRadio.CheckedChanged += new System.EventHandler(this.TieBreak3ValueRadio_CheckedChanged); // // TieBreak3BestRadio // @@ -694,7 +694,7 @@ this.TieBreak3BestRadio.TabStop = true; this.TieBreak3BestRadio.Text = "Best"; this.TieBreak3BestRadio.UseVisualStyleBackColor = true; - this.TieBreak3BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak3BestRadio_CheckedChanged); + this.TieBreak3BestRadio.CheckedChanged += new System.EventHandler(this.Tiebreak3BestRadio_CheckedChanged); // // label4 // @@ -763,7 +763,7 @@ this.MainValueNumeric.Name = "MainValueNumeric"; this.MainValueNumeric.Size = new System.Drawing.Size(120, 20); this.MainValueNumeric.TabIndex = 1013; - this.MainValueNumeric.ValueChanged += new System.EventHandler(this.mainValueNumeric_ValueChanged); + this.MainValueNumeric.ValueChanged += new System.EventHandler(this.MainValueNumeric_ValueChanged); // // MainValueRadio // @@ -774,7 +774,7 @@ this.MainValueRadio.TabIndex = 1012; this.MainValueRadio.Text = "Value"; this.MainValueRadio.UseVisualStyleBackColor = true; - this.MainValueRadio.CheckedChanged += new System.EventHandler(this.mainValueRadio_CheckedChanged); + this.MainValueRadio.CheckedChanged += new System.EventHandler(this.MainValueRadio_CheckedChanged); // // MainBestRadio // @@ -787,7 +787,7 @@ this.MainBestRadio.TabStop = true; this.MainBestRadio.Text = "Best"; this.MainBestRadio.UseVisualStyleBackColor = true; - this.MainBestRadio.CheckedChanged += new System.EventHandler(this.mainBestRadio_CheckedChanged); + this.MainBestRadio.CheckedChanged += new System.EventHandler(this.MainBestRadio_CheckedChanged); // // MainOperator // @@ -863,7 +863,7 @@ this.TieBreak1Numeric.Name = "TieBreak1Numeric"; this.TieBreak1Numeric.Size = new System.Drawing.Size(120, 20); this.TieBreak1Numeric.TabIndex = 1013; - this.TieBreak1Numeric.ValueChanged += new System.EventHandler(this.tiebreak1Numeric_ValueChanged); + this.TieBreak1Numeric.ValueChanged += new System.EventHandler(this.TieBreak1Numeric_ValueChanged); // // TieBreak1ValueRadio // @@ -874,7 +874,7 @@ this.TieBreak1ValueRadio.TabIndex = 1012; this.TieBreak1ValueRadio.Text = "Value"; this.TieBreak1ValueRadio.UseVisualStyleBackColor = true; - this.TieBreak1ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak1ValueRadio_CheckedChanged); + this.TieBreak1ValueRadio.CheckedChanged += new System.EventHandler(this.TieBreak1ValueRadio_CheckedChanged); // // Tiebreak1Operator // @@ -901,7 +901,7 @@ this.TieBreak1BestRadio.TabStop = true; this.TieBreak1BestRadio.Text = "Best"; this.TieBreak1BestRadio.UseVisualStyleBackColor = true; - this.TieBreak1BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak1BestRadio_CheckedChanged); + this.TieBreak1BestRadio.CheckedChanged += new System.EventHandler(this.Tiebreak1BestRadio_CheckedChanged); // // label5 // @@ -963,7 +963,7 @@ this.TieBreak2Numeric.Name = "TieBreak2Numeric"; this.TieBreak2Numeric.Size = new System.Drawing.Size(120, 20); this.TieBreak2Numeric.TabIndex = 1013; - this.TieBreak2Numeric.ValueChanged += new System.EventHandler(this.tiebreak2Numeric_ValueChanged); + this.TieBreak2Numeric.ValueChanged += new System.EventHandler(this.TieBreak2Numeric_ValueChanged); // // Tiebreak2Operator // @@ -988,7 +988,7 @@ this.TieBreak2ValueRadio.TabIndex = 1012; this.TieBreak2ValueRadio.Text = "Value"; this.TieBreak2ValueRadio.UseVisualStyleBackColor = true; - this.TieBreak2ValueRadio.CheckedChanged += new System.EventHandler(this.tiebreak2ValueRadio_CheckedChanged); + this.TieBreak2ValueRadio.CheckedChanged += new System.EventHandler(this.TieBreak2ValueRadio_CheckedChanged); // // TieBreak2BestRadio // @@ -1001,7 +1001,7 @@ this.TieBreak2BestRadio.TabStop = true; this.TieBreak2BestRadio.Text = "Best"; this.TieBreak2BestRadio.UseVisualStyleBackColor = true; - this.TieBreak2BestRadio.CheckedChanged += new System.EventHandler(this.tiebreak2BestRadio_CheckedChanged); + this.TieBreak2BestRadio.CheckedChanged += new System.EventHandler(this.Tiebreak2BestRadio_CheckedChanged); // // label11 // diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs index 33ddd6ce51..8ce2c4cd4d 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs @@ -1208,7 +1208,7 @@ namespace BizHawk.Client.EmuHawk } } - private void mainBestRadio_CheckedChanged(object sender, EventArgs e) + private void MainBestRadio_CheckedChanged(object sender, EventArgs e) { RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) @@ -1218,7 +1218,7 @@ namespace BizHawk.Client.EmuHawk } } - private void tiebreak1BestRadio_CheckedChanged(object sender, EventArgs e) + private void Tiebreak1BestRadio_CheckedChanged(object sender, EventArgs e) { RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) @@ -1228,7 +1228,7 @@ namespace BizHawk.Client.EmuHawk } } - private void tiebreak2BestRadio_CheckedChanged(object sender, EventArgs e) + private void Tiebreak2BestRadio_CheckedChanged(object sender, EventArgs e) { RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) @@ -1238,7 +1238,7 @@ namespace BizHawk.Client.EmuHawk } } - private void tiebreak3BestRadio_CheckedChanged(object sender, EventArgs e) + private void Tiebreak3BestRadio_CheckedChanged(object sender, EventArgs e) { RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) @@ -1248,7 +1248,7 @@ namespace BizHawk.Client.EmuHawk } } - private void mainValueRadio_CheckedChanged(object sender, EventArgs e) + private void MainValueRadio_CheckedChanged(object sender, EventArgs e) { RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) @@ -1258,7 +1258,7 @@ namespace BizHawk.Client.EmuHawk } } - private void tiebreak1ValueRadio_CheckedChanged(object sender, EventArgs e) + private void TieBreak1ValueRadio_CheckedChanged(object sender, EventArgs e) { RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) @@ -1268,7 +1268,7 @@ namespace BizHawk.Client.EmuHawk } } - private void tiebreak2ValueRadio_CheckedChanged(object sender, EventArgs e) + private void TieBreak2ValueRadio_CheckedChanged(object sender, EventArgs e) { RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) @@ -1278,7 +1278,7 @@ namespace BizHawk.Client.EmuHawk } } - private void tiebreak3ValueRadio_CheckedChanged(object sender, EventArgs e) + private void TieBreak3ValueRadio_CheckedChanged(object sender, EventArgs e) { RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) @@ -1288,25 +1288,25 @@ namespace BizHawk.Client.EmuHawk } } - private void mainValueNumeric_ValueChanged(object sender, EventArgs e) + private void MainValueNumeric_ValueChanged(object sender, EventArgs e) { NumericUpDown numericUpDown = (NumericUpDown)sender; this._comparisonBotAttempt.Maximize = (int)numericUpDown.Value; } - private void tiebreak1Numeric_ValueChanged(object sender, EventArgs e) + private void TieBreak1Numeric_ValueChanged(object sender, EventArgs e) { NumericUpDown numericUpDown = (NumericUpDown)sender; this._comparisonBotAttempt.TieBreak1 = (int)numericUpDown.Value; } - private void tiebreak2Numeric_ValueChanged(object sender, EventArgs e) + private void TieBreak2Numeric_ValueChanged(object sender, EventArgs e) { NumericUpDown numericUpDown = (NumericUpDown)sender; this._comparisonBotAttempt.TieBreak2 = (int)numericUpDown.Value; } - private void tiebreak3Numeric_ValueChanged(object sender, EventArgs e) + private void TieBreak3Numeric_ValueChanged(object sender, EventArgs e) { NumericUpDown numericUpDown = (NumericUpDown)sender; this._comparisonBotAttempt.TieBreak3 = (int)numericUpDown.Value; From 36250ee7828112bf7906300c66873210e8d594d5 Mon Sep 17 00:00:00 2001 From: adelikat Date: Wed, 20 Jan 2016 17:56:08 -0500 Subject: [PATCH 089/106] Basic Bot - have the clear button clear out the attempts and frames values --- BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs index eeaccbe605..d25350638f 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs @@ -561,6 +561,8 @@ namespace BizHawk.Client.EmuHawk private void ClearBestButton_Click(object sender, EventArgs e) { _bestBotAttempt = null; + Attempts = 0; + Frames = 0; UpdateBestAttempt(); } From 40a38703c1aed89d0fe620bf7c3eb17fa7fad6f8 Mon Sep 17 00:00:00 2001 From: Adam Sturge Date: Wed, 20 Jan 2016 21:44:17 -0800 Subject: [PATCH 090/106] reduced basic bot window size --- .../tools/BasicBot/BasicBot.Designer.cs | 310 +++++++++--------- .../tools/BasicBot/BasicBot.cs | 1 + .../tools/BasicBot/BotControlsRow.Designer.cs | 4 +- 3 files changed, 159 insertions(+), 156 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs index ef5d79b90d..b8c88e3e8a 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.Designer.cs @@ -76,14 +76,6 @@ this.AttemptsLabel = new System.Windows.Forms.Label(); this.FramesLabel = new System.Windows.Forms.Label(); this.GoalGroupBox = new System.Windows.Forms.GroupBox(); - this.panel6 = new System.Windows.Forms.Panel(); - this.Tiebreak3Operator = new System.Windows.Forms.ComboBox(); - this.label12 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.TieBreaker3Box = new BizHawk.Client.EmuHawk.HexTextBox(); - this.TieBreak3Numeric = new System.Windows.Forms.NumericUpDown(); - this.TieBreak3ValueRadio = new System.Windows.Forms.RadioButton(); - this.TieBreak3BestRadio = new System.Windows.Forms.RadioButton(); this.label4 = new System.Windows.Forms.Label(); this.FrameLengthNumeric = new System.Windows.Forms.NumericUpDown(); this.label3 = new System.Windows.Forms.Label(); @@ -111,6 +103,14 @@ this.label11 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.TieBreaker2Box = new BizHawk.Client.EmuHawk.HexTextBox(); + this.panel6 = new System.Windows.Forms.Panel(); + this.label12 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.TieBreaker3Box = new BizHawk.Client.EmuHawk.HexTextBox(); + this.TieBreak3Numeric = new System.Windows.Forms.NumericUpDown(); + this.TieBreak3ValueRadio = new System.Windows.Forms.RadioButton(); + this.TieBreak3BestRadio = new System.Windows.Forms.RadioButton(); + this.Tiebreak3Operator = new System.Windows.Forms.ComboBox(); this.StopBtn = new System.Windows.Forms.Button(); this.label8 = new System.Windows.Forms.Label(); this.StartFromSlotBox = new System.Windows.Forms.ComboBox(); @@ -124,8 +124,6 @@ this.BestGroupBox.SuspendLayout(); this.panel1.SuspendLayout(); this.GoalGroupBox.SuspendLayout(); - this.panel6.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.TieBreak3Numeric)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.FrameLengthNumeric)).BeginInit(); this.panel3.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.MainValueNumeric)).BeginInit(); @@ -133,6 +131,8 @@ ((System.ComponentModel.ISupportInitialize)(this.TieBreak1Numeric)).BeginInit(); this.panel5.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.TieBreak2Numeric)).BeginInit(); + this.panel6.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.TieBreak3Numeric)).BeginInit(); this.ControlGroupBox.SuspendLayout(); this.panel2.SuspendLayout(); this.StatsContextMenu.SuspendLayout(); @@ -146,7 +146,7 @@ this.OptionsSubMenu}); this.BotMenu.Location = new System.Drawing.Point(0, 0); this.BotMenu.Name = "BotMenu"; - this.BotMenu.Size = new System.Drawing.Size(842, 24); + this.BotMenu.Size = new System.Drawing.Size(687, 24); this.BotMenu.TabIndex = 0; this.BotMenu.Text = "menuStrip1"; // @@ -326,7 +326,7 @@ this.MessageLabel}); this.BotStatusStrip.Location = new System.Drawing.Point(0, 565); this.BotStatusStrip.Name = "BotStatusStrip"; - this.BotStatusStrip.Size = new System.Drawing.Size(842, 22); + this.BotStatusStrip.Size = new System.Drawing.Size(687, 22); this.BotStatusStrip.TabIndex = 2; this.BotStatusStrip.Text = "statusStrip1"; // @@ -355,7 +355,7 @@ this.ControlsBox.Controls.Add(this.ControlProbabilityPanel); this.ControlsBox.Location = new System.Drawing.Point(12, 183); this.ControlsBox.Name = "ControlsBox"; - this.ControlsBox.Size = new System.Drawing.Size(567, 369); + this.ControlsBox.Size = new System.Drawing.Size(422, 369); this.ControlsBox.TabIndex = 3; this.ControlsBox.TabStop = false; this.ControlsBox.Text = "Controls"; @@ -368,7 +368,7 @@ this.ControlProbabilityPanel.AutoScroll = true; this.ControlProbabilityPanel.Location = new System.Drawing.Point(6, 19); this.ControlProbabilityPanel.Name = "ControlProbabilityPanel"; - this.ControlProbabilityPanel.Size = new System.Drawing.Size(554, 344); + this.ControlProbabilityPanel.Size = new System.Drawing.Size(410, 350); this.ControlProbabilityPanel.TabIndex = 0; // // BestGroupBox @@ -388,9 +388,9 @@ this.BestGroupBox.Controls.Add(this.label15); this.BestGroupBox.Controls.Add(this.label14); this.BestGroupBox.Controls.Add(this.label13); - this.BestGroupBox.Location = new System.Drawing.Point(585, 183); + this.BestGroupBox.Location = new System.Drawing.Point(441, 183); this.BestGroupBox.Name = "BestGroupBox"; - this.BestGroupBox.Size = new System.Drawing.Size(245, 369); + this.BestGroupBox.Size = new System.Drawing.Size(230, 369); this.BestGroupBox.TabIndex = 4; this.BestGroupBox.TabStop = false; this.BestGroupBox.Text = "Best"; @@ -450,7 +450,7 @@ this.panel1.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.panel1.Location = new System.Drawing.Point(12, 112); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(227, 251); + this.panel1.Size = new System.Drawing.Size(212, 251); this.panel1.TabIndex = 21; // // BestAttemptLogLabel @@ -465,7 +465,7 @@ // BestTieBreak3Box // this.BestTieBreak3Box.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.BestTieBreak3Box.Location = new System.Drawing.Point(178, 73); + this.BestTieBreak3Box.Location = new System.Drawing.Point(163, 73); this.BestTieBreak3Box.Name = "BestTieBreak3Box"; this.BestTieBreak3Box.ReadOnly = true; this.BestTieBreak3Box.Size = new System.Drawing.Size(58, 20); @@ -475,7 +475,7 @@ // BestTieBreak2Box // this.BestTieBreak2Box.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.BestTieBreak2Box.Location = new System.Drawing.Point(178, 53); + this.BestTieBreak2Box.Location = new System.Drawing.Point(163, 53); this.BestTieBreak2Box.Name = "BestTieBreak2Box"; this.BestTieBreak2Box.ReadOnly = true; this.BestTieBreak2Box.Size = new System.Drawing.Size(58, 20); @@ -485,7 +485,7 @@ // BestTieBreak1Box // this.BestTieBreak1Box.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.BestTieBreak1Box.Location = new System.Drawing.Point(178, 33); + this.BestTieBreak1Box.Location = new System.Drawing.Point(163, 33); this.BestTieBreak1Box.Name = "BestTieBreak1Box"; this.BestTieBreak1Box.ReadOnly = true; this.BestTieBreak1Box.Size = new System.Drawing.Size(58, 20); @@ -495,7 +495,7 @@ // BestMaximizeBox // this.BestMaximizeBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.BestMaximizeBox.Location = new System.Drawing.Point(178, 13); + this.BestMaximizeBox.Location = new System.Drawing.Point(163, 13); this.BestMaximizeBox.Name = "BestMaximizeBox"; this.BestMaximizeBox.ReadOnly = true; this.BestMaximizeBox.Size = new System.Drawing.Size(58, 20); @@ -506,7 +506,7 @@ // this.label16.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label16.AutoSize = true; - this.label16.Location = new System.Drawing.Point(111, 76); + this.label16.Location = new System.Drawing.Point(96, 76); this.label16.Name = "label16"; this.label16.Size = new System.Drawing.Size(61, 13); this.label16.TabIndex = 16; @@ -516,7 +516,7 @@ // this.label15.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label15.AutoSize = true; - this.label15.Location = new System.Drawing.Point(111, 56); + this.label15.Location = new System.Drawing.Point(96, 56); this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(61, 13); this.label15.TabIndex = 15; @@ -526,7 +526,7 @@ // this.label14.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label14.AutoSize = true; - this.label14.Location = new System.Drawing.Point(111, 36); + this.label14.Location = new System.Drawing.Point(96, 36); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(61, 13); this.label14.TabIndex = 6; @@ -536,7 +536,7 @@ // this.label13.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(119, 16); + this.label13.Location = new System.Drawing.Point(104, 16); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(63, 13); this.label13.TabIndex = 0; @@ -582,120 +582,20 @@ // this.GoalGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.GoalGroupBox.Controls.Add(this.panel6); this.GoalGroupBox.Controls.Add(this.label4); this.GoalGroupBox.Controls.Add(this.FrameLengthNumeric); this.GoalGroupBox.Controls.Add(this.label3); this.GoalGroupBox.Controls.Add(this.panel3); this.GoalGroupBox.Controls.Add(this.panel4); this.GoalGroupBox.Controls.Add(this.panel5); + this.GoalGroupBox.Controls.Add(this.panel6); this.GoalGroupBox.Location = new System.Drawing.Point(12, 27); this.GoalGroupBox.Name = "GoalGroupBox"; - this.GoalGroupBox.Size = new System.Drawing.Size(567, 150); + this.GoalGroupBox.Size = new System.Drawing.Size(422, 150); this.GoalGroupBox.TabIndex = 9; this.GoalGroupBox.TabStop = false; this.GoalGroupBox.Text = " "; // - // panel6 - // - this.panel6.Controls.Add(this.Tiebreak3Operator); - this.panel6.Controls.Add(this.label12); - this.panel6.Controls.Add(this.label7); - this.panel6.Controls.Add(this.TieBreaker3Box); - this.panel6.Controls.Add(this.TieBreak3Numeric); - this.panel6.Controls.Add(this.TieBreak3ValueRadio); - this.panel6.Controls.Add(this.TieBreak3BestRadio); - this.panel6.Location = new System.Drawing.Point(9, 120); - this.panel6.Name = "panel6"; - this.panel6.Size = new System.Drawing.Size(546, 26); - this.panel6.TabIndex = 3; - // - // Tiebreak3Operator - // - this.Tiebreak3Operator.FormattingEnabled = true; - this.Tiebreak3Operator.Items.AddRange(new object[] { - ">", - ">=", - "=", - "<=", - "<"}); - this.Tiebreak3Operator.Location = new System.Drawing.Point(262, 3); - this.Tiebreak3Operator.Name = "Tiebreak3Operator"; - this.Tiebreak3Operator.Size = new System.Drawing.Size(40, 21); - this.Tiebreak3Operator.TabIndex = 1017; - // - // label12 - // - this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(67, 7); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(59, 13); - this.label12.TabIndex = 1015; - this.label12.Text = "Address 0x"; - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(1, 7); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(61, 13); - this.label7.TabIndex = 1014; - this.label7.Text = "Tiebreak 3:"; - // - // TieBreaker3Box - // - this.TieBreaker3Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.TieBreaker3Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; - this.TieBreaker3Box.Location = new System.Drawing.Point(133, 4); - this.TieBreaker3Box.Name = "TieBreaker3Box"; - this.TieBreaker3Box.Nullable = true; - this.TieBreaker3Box.Size = new System.Drawing.Size(123, 20); - this.TieBreaker3Box.TabIndex = 1016; - // - // TieBreak3Numeric - // - this.TieBreak3Numeric.Enabled = false; - this.TieBreak3Numeric.Location = new System.Drawing.Point(417, 4); - this.TieBreak3Numeric.Maximum = new decimal(new int[] { - 100000, - 0, - 0, - 0}); - this.TieBreak3Numeric.Minimum = new decimal(new int[] { - 100000, - 0, - 0, - -2147483648}); - this.TieBreak3Numeric.Name = "TieBreak3Numeric"; - this.TieBreak3Numeric.Size = new System.Drawing.Size(120, 20); - this.TieBreak3Numeric.TabIndex = 1013; - this.TieBreak3Numeric.ValueChanged += new System.EventHandler(this.TieBreak3Numeric_ValueChanged); - // - // TieBreak3ValueRadio - // - this.TieBreak3ValueRadio.AutoSize = true; - this.TieBreak3ValueRadio.Location = new System.Drawing.Point(359, 6); - this.TieBreak3ValueRadio.Name = "TieBreak3ValueRadio"; - this.TieBreak3ValueRadio.Size = new System.Drawing.Size(52, 17); - this.TieBreak3ValueRadio.TabIndex = 1012; - this.TieBreak3ValueRadio.Text = "Value"; - this.TieBreak3ValueRadio.UseVisualStyleBackColor = true; - this.TieBreak3ValueRadio.CheckedChanged += new System.EventHandler(this.TieBreak3ValueRadio_CheckedChanged); - // - // TieBreak3BestRadio - // - this.TieBreak3BestRadio.AutoSize = true; - this.TieBreak3BestRadio.Checked = true; - this.TieBreak3BestRadio.Location = new System.Drawing.Point(307, 6); - this.TieBreak3BestRadio.Name = "TieBreak3BestRadio"; - this.TieBreak3BestRadio.Size = new System.Drawing.Size(46, 17); - this.TieBreak3BestRadio.TabIndex = 1011; - this.TieBreak3BestRadio.TabStop = true; - this.TieBreak3BestRadio.Text = "Best"; - this.TieBreak3BestRadio.UseVisualStyleBackColor = true; - this.TieBreak3BestRadio.CheckedChanged += new System.EventHandler(this.Tiebreak3BestRadio_CheckedChanged); - // // label4 // this.label4.AutoSize = true; @@ -743,13 +643,13 @@ this.panel3.Controls.Add(this.maximizeLabeltext); this.panel3.Location = new System.Drawing.Point(9, 51); this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(546, 26); + this.panel3.Size = new System.Drawing.Size(407, 26); this.panel3.TabIndex = 0; // // MainValueNumeric // this.MainValueNumeric.Enabled = false; - this.MainValueNumeric.Location = new System.Drawing.Point(417, 4); + this.MainValueNumeric.Location = new System.Drawing.Point(336, 4); this.MainValueNumeric.Maximum = new decimal(new int[] { 100000, 0, @@ -761,14 +661,14 @@ 0, -2147483648}); this.MainValueNumeric.Name = "MainValueNumeric"; - this.MainValueNumeric.Size = new System.Drawing.Size(120, 20); + this.MainValueNumeric.Size = new System.Drawing.Size(61, 20); this.MainValueNumeric.TabIndex = 1013; this.MainValueNumeric.ValueChanged += new System.EventHandler(this.MainValueNumeric_ValueChanged); // // MainValueRadio // this.MainValueRadio.AutoSize = true; - this.MainValueRadio.Location = new System.Drawing.Point(359, 6); + this.MainValueRadio.Location = new System.Drawing.Point(281, 6); this.MainValueRadio.Name = "MainValueRadio"; this.MainValueRadio.Size = new System.Drawing.Size(52, 17); this.MainValueRadio.TabIndex = 1012; @@ -780,7 +680,7 @@ // this.MainBestRadio.AutoSize = true; this.MainBestRadio.Checked = true; - this.MainBestRadio.Location = new System.Drawing.Point(307, 6); + this.MainBestRadio.Location = new System.Drawing.Point(235, 6); this.MainBestRadio.Name = "MainBestRadio"; this.MainBestRadio.Size = new System.Drawing.Size(46, 17); this.MainBestRadio.TabIndex = 1011; @@ -798,7 +698,7 @@ "=", "<=", "<"}); - this.MainOperator.Location = new System.Drawing.Point(262, 3); + this.MainOperator.Location = new System.Drawing.Point(187, 3); this.MainOperator.Name = "MainOperator"; this.MainOperator.Size = new System.Drawing.Size(40, 21); this.MainOperator.TabIndex = 1010; @@ -820,7 +720,7 @@ this.MaximizeAddressBox.Location = new System.Drawing.Point(133, 4); this.MaximizeAddressBox.Name = "MaximizeAddressBox"; this.MaximizeAddressBox.Nullable = true; - this.MaximizeAddressBox.Size = new System.Drawing.Size(123, 20); + this.MaximizeAddressBox.Size = new System.Drawing.Size(47, 20); this.MaximizeAddressBox.TabIndex = 1009; // // maximizeLabeltext @@ -843,13 +743,13 @@ this.panel4.Controls.Add(this.label10); this.panel4.Location = new System.Drawing.Point(9, 74); this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(546, 26); + this.panel4.Size = new System.Drawing.Size(407, 26); this.panel4.TabIndex = 1; // // TieBreak1Numeric // this.TieBreak1Numeric.Enabled = false; - this.TieBreak1Numeric.Location = new System.Drawing.Point(417, 4); + this.TieBreak1Numeric.Location = new System.Drawing.Point(336, 4); this.TieBreak1Numeric.Maximum = new decimal(new int[] { 100000, 0, @@ -861,14 +761,14 @@ 0, -2147483648}); this.TieBreak1Numeric.Name = "TieBreak1Numeric"; - this.TieBreak1Numeric.Size = new System.Drawing.Size(120, 20); + this.TieBreak1Numeric.Size = new System.Drawing.Size(61, 20); this.TieBreak1Numeric.TabIndex = 1013; this.TieBreak1Numeric.ValueChanged += new System.EventHandler(this.TieBreak1Numeric_ValueChanged); // // TieBreak1ValueRadio // this.TieBreak1ValueRadio.AutoSize = true; - this.TieBreak1ValueRadio.Location = new System.Drawing.Point(359, 6); + this.TieBreak1ValueRadio.Location = new System.Drawing.Point(281, 6); this.TieBreak1ValueRadio.Name = "TieBreak1ValueRadio"; this.TieBreak1ValueRadio.Size = new System.Drawing.Size(52, 17); this.TieBreak1ValueRadio.TabIndex = 1012; @@ -885,7 +785,7 @@ "=", "<=", "<"}); - this.Tiebreak1Operator.Location = new System.Drawing.Point(262, 3); + this.Tiebreak1Operator.Location = new System.Drawing.Point(187, 3); this.Tiebreak1Operator.Name = "Tiebreak1Operator"; this.Tiebreak1Operator.Size = new System.Drawing.Size(40, 21); this.Tiebreak1Operator.TabIndex = 1007; @@ -894,7 +794,7 @@ // this.TieBreak1BestRadio.AutoSize = true; this.TieBreak1BestRadio.Checked = true; - this.TieBreak1BestRadio.Location = new System.Drawing.Point(307, 6); + this.TieBreak1BestRadio.Location = new System.Drawing.Point(235, 6); this.TieBreak1BestRadio.Name = "TieBreak1BestRadio"; this.TieBreak1BestRadio.Size = new System.Drawing.Size(46, 17); this.TieBreak1BestRadio.TabIndex = 1011; @@ -920,7 +820,7 @@ this.TieBreaker1Box.Location = new System.Drawing.Point(133, 4); this.TieBreaker1Box.Name = "TieBreaker1Box"; this.TieBreaker1Box.Nullable = true; - this.TieBreaker1Box.Size = new System.Drawing.Size(123, 20); + this.TieBreaker1Box.Size = new System.Drawing.Size(47, 20); this.TieBreaker1Box.TabIndex = 1002; // // label10 @@ -943,13 +843,13 @@ this.panel5.Controls.Add(this.TieBreaker2Box); this.panel5.Location = new System.Drawing.Point(9, 97); this.panel5.Name = "panel5"; - this.panel5.Size = new System.Drawing.Size(546, 26); + this.panel5.Size = new System.Drawing.Size(407, 26); this.panel5.TabIndex = 2; // // TieBreak2Numeric // this.TieBreak2Numeric.Enabled = false; - this.TieBreak2Numeric.Location = new System.Drawing.Point(417, 4); + this.TieBreak2Numeric.Location = new System.Drawing.Point(336, 4); this.TieBreak2Numeric.Maximum = new decimal(new int[] { 100000, 0, @@ -961,7 +861,7 @@ 0, -2147483648}); this.TieBreak2Numeric.Name = "TieBreak2Numeric"; - this.TieBreak2Numeric.Size = new System.Drawing.Size(120, 20); + this.TieBreak2Numeric.Size = new System.Drawing.Size(61, 20); this.TieBreak2Numeric.TabIndex = 1013; this.TieBreak2Numeric.ValueChanged += new System.EventHandler(this.TieBreak2Numeric_ValueChanged); // @@ -974,7 +874,7 @@ "=", "<=", "<"}); - this.Tiebreak2Operator.Location = new System.Drawing.Point(262, 3); + this.Tiebreak2Operator.Location = new System.Drawing.Point(187, 3); this.Tiebreak2Operator.Name = "Tiebreak2Operator"; this.Tiebreak2Operator.Size = new System.Drawing.Size(40, 21); this.Tiebreak2Operator.TabIndex = 1008; @@ -982,7 +882,7 @@ // TieBreak2ValueRadio // this.TieBreak2ValueRadio.AutoSize = true; - this.TieBreak2ValueRadio.Location = new System.Drawing.Point(359, 6); + this.TieBreak2ValueRadio.Location = new System.Drawing.Point(281, 6); this.TieBreak2ValueRadio.Name = "TieBreak2ValueRadio"; this.TieBreak2ValueRadio.Size = new System.Drawing.Size(52, 17); this.TieBreak2ValueRadio.TabIndex = 1012; @@ -994,7 +894,7 @@ // this.TieBreak2BestRadio.AutoSize = true; this.TieBreak2BestRadio.Checked = true; - this.TieBreak2BestRadio.Location = new System.Drawing.Point(307, 6); + this.TieBreak2BestRadio.Location = new System.Drawing.Point(235, 6); this.TieBreak2BestRadio.Name = "TieBreak2BestRadio"; this.TieBreak2BestRadio.Size = new System.Drawing.Size(46, 17); this.TieBreak2BestRadio.TabIndex = 1011; @@ -1029,9 +929,109 @@ this.TieBreaker2Box.Location = new System.Drawing.Point(133, 4); this.TieBreaker2Box.Name = "TieBreaker2Box"; this.TieBreaker2Box.Nullable = true; - this.TieBreaker2Box.Size = new System.Drawing.Size(123, 20); + this.TieBreaker2Box.Size = new System.Drawing.Size(47, 20); this.TieBreaker2Box.TabIndex = 1003; // + // panel6 + // + this.panel6.Controls.Add(this.label12); + this.panel6.Controls.Add(this.label7); + this.panel6.Controls.Add(this.TieBreaker3Box); + this.panel6.Controls.Add(this.TieBreak3Numeric); + this.panel6.Controls.Add(this.TieBreak3ValueRadio); + this.panel6.Controls.Add(this.TieBreak3BestRadio); + this.panel6.Controls.Add(this.Tiebreak3Operator); + this.panel6.Location = new System.Drawing.Point(9, 120); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(407, 26); + this.panel6.TabIndex = 3; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(67, 7); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(59, 13); + this.label12.TabIndex = 1015; + this.label12.Text = "Address 0x"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(1, 7); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(61, 13); + this.label7.TabIndex = 1014; + this.label7.Text = "Tiebreak 3:"; + // + // TieBreaker3Box + // + this.TieBreaker3Box.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TieBreaker3Box.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; + this.TieBreaker3Box.Location = new System.Drawing.Point(133, 4); + this.TieBreaker3Box.Name = "TieBreaker3Box"; + this.TieBreaker3Box.Nullable = true; + this.TieBreaker3Box.Size = new System.Drawing.Size(47, 20); + this.TieBreaker3Box.TabIndex = 1016; + // + // TieBreak3Numeric + // + this.TieBreak3Numeric.Enabled = false; + this.TieBreak3Numeric.Location = new System.Drawing.Point(336, 4); + this.TieBreak3Numeric.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.TieBreak3Numeric.Minimum = new decimal(new int[] { + 100000, + 0, + 0, + -2147483648}); + this.TieBreak3Numeric.Name = "TieBreak3Numeric"; + this.TieBreak3Numeric.Size = new System.Drawing.Size(61, 20); + this.TieBreak3Numeric.TabIndex = 1013; + this.TieBreak3Numeric.ValueChanged += new System.EventHandler(this.TieBreak3Numeric_ValueChanged); + // + // TieBreak3ValueRadio + // + this.TieBreak3ValueRadio.AutoSize = true; + this.TieBreak3ValueRadio.Location = new System.Drawing.Point(281, 6); + this.TieBreak3ValueRadio.Name = "TieBreak3ValueRadio"; + this.TieBreak3ValueRadio.Size = new System.Drawing.Size(52, 17); + this.TieBreak3ValueRadio.TabIndex = 1012; + this.TieBreak3ValueRadio.Text = "Value"; + this.TieBreak3ValueRadio.UseVisualStyleBackColor = true; + this.TieBreak3ValueRadio.CheckedChanged += new System.EventHandler(this.TieBreak3ValueRadio_CheckedChanged); + // + // TieBreak3BestRadio + // + this.TieBreak3BestRadio.AutoSize = true; + this.TieBreak3BestRadio.Checked = true; + this.TieBreak3BestRadio.Location = new System.Drawing.Point(235, 6); + this.TieBreak3BestRadio.Name = "TieBreak3BestRadio"; + this.TieBreak3BestRadio.Size = new System.Drawing.Size(46, 17); + this.TieBreak3BestRadio.TabIndex = 1011; + this.TieBreak3BestRadio.TabStop = true; + this.TieBreak3BestRadio.Text = "Best"; + this.TieBreak3BestRadio.UseVisualStyleBackColor = true; + this.TieBreak3BestRadio.CheckedChanged += new System.EventHandler(this.Tiebreak3BestRadio_CheckedChanged); + // + // Tiebreak3Operator + // + this.Tiebreak3Operator.FormattingEnabled = true; + this.Tiebreak3Operator.Items.AddRange(new object[] { + ">", + ">=", + "=", + "<=", + "<"}); + this.Tiebreak3Operator.Location = new System.Drawing.Point(187, 3); + this.Tiebreak3Operator.Name = "Tiebreak3Operator"; + this.Tiebreak3Operator.Size = new System.Drawing.Size(40, 21); + this.Tiebreak3Operator.TabIndex = 1017; + // // StopBtn // this.StopBtn.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; @@ -1082,9 +1082,9 @@ this.ControlGroupBox.Controls.Add(this.RunBtn); this.ControlGroupBox.Controls.Add(this.StartFromSlotBox); this.ControlGroupBox.Controls.Add(this.label8); - this.ControlGroupBox.Location = new System.Drawing.Point(584, 27); + this.ControlGroupBox.Location = new System.Drawing.Point(440, 27); this.ControlGroupBox.Name = "ControlGroupBox"; - this.ControlGroupBox.Size = new System.Drawing.Size(245, 150); + this.ControlGroupBox.Size = new System.Drawing.Size(230, 150); this.ControlGroupBox.TabIndex = 2004; this.ControlGroupBox.TabStop = false; this.ControlGroupBox.Text = "Control"; @@ -1119,7 +1119,9 @@ // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(842, 587); + this.AutoSize = true; + this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.ClientSize = new System.Drawing.Size(687, 587); this.Controls.Add(this.ControlGroupBox); this.Controls.Add(this.GoalGroupBox); this.Controls.Add(this.BestGroupBox); @@ -1143,9 +1145,6 @@ this.panel1.PerformLayout(); this.GoalGroupBox.ResumeLayout(false); this.GoalGroupBox.PerformLayout(); - this.panel6.ResumeLayout(false); - this.panel6.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.TieBreak3Numeric)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.FrameLengthNumeric)).EndInit(); this.panel3.ResumeLayout(false); this.panel3.PerformLayout(); @@ -1156,6 +1155,9 @@ this.panel5.ResumeLayout(false); this.panel5.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.TieBreak2Numeric)).EndInit(); + this.panel6.ResumeLayout(false); + this.panel6.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.TieBreak3Numeric)).EndInit(); this.ControlGroupBox.ResumeLayout(false); this.ControlGroupBox.PerformLayout(); this.panel2.ResumeLayout(false); diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs index 4c49e8a502..2f2dd9e804 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs @@ -1313,5 +1313,6 @@ namespace BizHawk.Client.EmuHawk NumericUpDown numericUpDown = (NumericUpDown)sender; this._comparisonBotAttempt.TieBreak3 = (int)numericUpDown.Value; } + } } diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BotControlsRow.Designer.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BotControlsRow.Designer.cs index 81655e6afe..6343a907c3 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BotControlsRow.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BotControlsRow.Designer.cs @@ -65,7 +65,7 @@ this.ProbabilitySlider.Location = new System.Drawing.Point(147, -2); this.ProbabilitySlider.Maximum = 100; this.ProbabilitySlider.Name = "ProbabilitySlider"; - this.ProbabilitySlider.Size = new System.Drawing.Size(111, 45); + this.ProbabilitySlider.Size = new System.Drawing.Size(203, 45); this.ProbabilitySlider.TabIndex = 2; this.ProbabilitySlider.TickFrequency = 25; this.ProbabilitySlider.ValueChanged += new System.EventHandler(this.ProbabilitySlider_ValueChanged); @@ -78,7 +78,7 @@ this.Controls.Add(this.ProbabilityUpDown); this.Controls.Add(this.ButtonNameLabel); this.Name = "BotControlsRow"; - this.Size = new System.Drawing.Size(258, 29); + this.Size = new System.Drawing.Size(350, 29); this.Load += new System.EventHandler(this.BotControlsRow_Load); ((System.ComponentModel.ISupportInitialize)(this.ProbabilityUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.ProbabilitySlider)).EndInit(); From d7186c9e6f947bb8b624cec383b3f1e77e60b8ff Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 21 Jan 2016 21:22:26 -0600 Subject: [PATCH 091/106] remove c#6isms --- BizHawk.Client.EmuHawk/movie/RecordMovie.cs | 12 +++-- .../tools/BasicBot/BasicBot.cs | 52 +++++++++++-------- 2 files changed, 37 insertions(+), 27 deletions(-) diff --git a/BizHawk.Client.EmuHawk/movie/RecordMovie.cs b/BizHawk.Client.EmuHawk/movie/RecordMovie.cs index 17ad298449..20a9ea91f2 100644 --- a/BizHawk.Client.EmuHawk/movie/RecordMovie.cs +++ b/BizHawk.Client.EmuHawk/movie/RecordMovie.cs @@ -162,13 +162,15 @@ namespace BizHawk.Client.EmuHawk } } catch (Exception movieDirException) - when ( - movieDirException is IOException || + { + if (movieDirException is IOException || movieDirException is UnauthorizedAccessException || movieDirException is PathTooLongException - ) - { - //TO DO : Pass error to user? + ) + { + //TO DO : Pass error to user? + } + else throw; } var sfd = new SaveFileDialog diff --git a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs index 4c49e8a502..e55aa28e36 100644 --- a/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs +++ b/BizHawk.Client.EmuHawk/tools/BasicBot/BasicBot.cs @@ -630,20 +630,28 @@ namespace BizHawk.Client.EmuHawk private class BotData { + public BotData() + { + MainCompareToBest = true; + TieBreaker1CompareToBest = true; + TieBreaker2CompareToBest = true; + TieBreaker3CompareToBest = true; + } + public BotAttempt Best { get; set; } public Dictionary ControlProbabilities { get; set; } public int Maximize { get; set; } public int TieBreaker1 { get; set; } public int TieBreaker2 { get; set; } public int TieBreaker3 { get; set; } - public byte ComparisonTypeMain { get; set; } - public byte ComparisonTypeTie1 { get; set; } - public byte ComparisonTypeTie2 { get; set; } - public byte ComparisonTypeTie3 { get; set; } - public bool MainCompareToBest { get; set; } = true; - public bool TieBreaker1CompareToBest { get; set; } = true; - public bool TieBreaker2CompareToBest { get; set; } = true; - public bool TieBreaker3CompareToBest { get; set; } = true; + public byte ComparisonTypeMain { get; set; } + public byte ComparisonTypeTie1 { get; set; } + public byte ComparisonTypeTie2 { get; set; } + public byte ComparisonTypeTie3 { get; set; } + public bool MainCompareToBest { get; set; } + public bool TieBreaker1CompareToBest { get; set; } + public bool TieBreaker2CompareToBest { get; set; } + public bool TieBreaker3CompareToBest { get; set; } public int MainCompareToValue { get; set; } public int TieBreaker1CompareToValue { get; set; } public int TieBreaker2CompareToValue { get; set; } @@ -767,20 +775,20 @@ namespace BizHawk.Client.EmuHawk return true; } - private void SaveBotFile(string path) - { - var data = new BotData - { - Best = _bestBotAttempt, - ControlProbabilities = ControlProbabilities, - Maximize = MaximizeAddress, - TieBreaker1 = TieBreaker1Address, - TieBreaker2 = TieBreaker2Address, - TieBreaker3 = TieBreaker3Address, - ComparisonTypeMain = MainComparisonType, - ComparisonTypeTie1 = Tie1ComparisonType, - ComparisonTypeTie2 = Tie2ComparisonType, - ComparisonTypeTie3 = Tie3ComparisonType, + private void SaveBotFile(string path) + { + var data = new BotData + { + Best = _bestBotAttempt, + ControlProbabilities = ControlProbabilities, + Maximize = MaximizeAddress, + TieBreaker1 = TieBreaker1Address, + TieBreaker2 = TieBreaker2Address, + TieBreaker3 = TieBreaker3Address, + ComparisonTypeMain = MainComparisonType, + ComparisonTypeTie1 = Tie1ComparisonType, + ComparisonTypeTie2 = Tie2ComparisonType, + ComparisonTypeTie3 = Tie3ComparisonType, MainCompareToBest = MainBestRadio.Checked, TieBreaker1CompareToBest = TieBreak1BestRadio.Checked, TieBreaker2CompareToBest = TieBreak2BestRadio.Checked, From c0421965f1b76eab448c5037439a0daeccbc13e5 Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 21 Jan 2016 21:47:16 -0600 Subject: [PATCH 092/106] psx - support memory callbacks --- .../Consoles/Sony/PSX/Octoshock.cs | 40 ++++++++++++++++-- .../Consoles/Sony/PSX/OctoshockDll.cs | 22 ++++++++-- output/dll/octoshock.dll | Bin 927232 -> 927232 bytes psx/octoshock/psx/cpu.cpp | 8 ++++ psx/octoshock/psx/psx.cpp | 10 +++++ psx/octoshock/psx/psx.h | 14 +++++- 6 files changed, 86 insertions(+), 8 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs b/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs index abcc6566d9..d9794a467f 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs @@ -324,6 +324,7 @@ namespace BizHawk.Emulation.Cores.Sony.PSX OctoshockDll.shock_Create(out psx, SystemRegion, pFirmware); SetMemoryDomains(); + InitMemCallbacks(); //set a default framebuffer based on the first frame of emulation, to cut down on flickering or whatever //this is probably quixotic, but we have to pick something @@ -790,6 +791,39 @@ namespace BizHawk.Emulation.Cores.Sony.PSX #region Debugging + OctoshockDll.ShockCallback_Mem mem_cb; + + void ShockMemCallback(uint address, OctoshockDll.eShockMemCb type, uint size, uint value) + { + switch (type) + { + case OctoshockDll.eShockMemCb.Read: + MemoryCallbacks.CallReads(address); + break; + case OctoshockDll.eShockMemCb.Write: + MemoryCallbacks.CallWrites(address); + break; + case OctoshockDll.eShockMemCb.Execute: + MemoryCallbacks.CallExecutes(address); + break; + } + } + + void InitMemCallbacks() + { + mem_cb = new OctoshockDll.ShockCallback_Mem(ShockMemCallback); + _memoryCallbacks.ActiveChanged += RefreshMemCallbacks; + } + + void RefreshMemCallbacks() + { + OctoshockDll.eShockMemCb mask = OctoshockDll.eShockMemCb.None; + if (MemoryCallbacks.HasReads) mask |= OctoshockDll.eShockMemCb.Read; + if (MemoryCallbacks.HasWrites) mask |= OctoshockDll.eShockMemCb.Write; + if (MemoryCallbacks.HasExecutes) mask |= OctoshockDll.eShockMemCb.Execute; + OctoshockDll.shock_SetMemCb(psx, mem_cb, mask); + } + unsafe void SetMemoryDomains() { var mmd = new List(); @@ -1284,13 +1318,13 @@ namespace BizHawk.Emulation.Cores.Sony.PSX public ITraceable Tracer { get { return tracer; } } - public int ShockTraceCallback(IntPtr opaque, uint PC, uint inst, string dis) + public void ShockTraceCallback(IntPtr opaque, uint PC, uint inst, string dis) { Tracer.Put(dis); - return OctoshockDll.SHOCK_OK; } - public IMemoryCallbackSystem MemoryCallbacks { get { throw new NotImplementedException(); } } + private readonly MemoryCallbackSystem _memoryCallbacks = new MemoryCallbackSystem(); + public IMemoryCallbackSystem MemoryCallbacks { get { return _memoryCallbacks; } } public bool CanStep(StepType type) { return false; } diff --git a/BizHawk.Emulation.Cores/Consoles/Sony/PSX/OctoshockDll.cs b/BizHawk.Emulation.Cores/Consoles/Sony/PSX/OctoshockDll.cs index ddecc7141a..955d5f382d 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sony/PSX/OctoshockDll.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sony/PSX/OctoshockDll.cs @@ -96,6 +96,15 @@ namespace BizHawk.Emulation.Cores.Sony.PSX BobOffset } + [Flags] + public enum eShockMemCb : int + { + None = 0, + Read = 1, + Write = 2, + Execute = 4 + } + public const int SHOCK_OK = 0; public const int SHOCK_FALSE = 0; public const int SHOCK_TRUE = 1; @@ -172,8 +181,9 @@ namespace BizHawk.Emulation.Cores.Sony.PSX public TextStateFPtrs ff; }; + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate int ShockTraceCallback(IntPtr opaque, uint PC, uint inst, string dis); + public delegate void ShockCallback_Trace(IntPtr opaque, uint PC, uint inst, string dis); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] public delegate int ShockDisc_ReadTOC(IntPtr opaque, ShockTOC* read_target, ShockTOCTrack* tracks101); @@ -181,6 +191,9 @@ namespace BizHawk.Emulation.Cores.Sony.PSX [UnmanagedFunctionPointer(CallingConvention.Cdecl)] public delegate int ShockDisc_ReadLBA(IntPtr opaque, int lba, void* dst); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + public delegate void ShockCallback_Mem(uint address, eShockMemCb type, uint size, uint value); + [DllImport(dd, CallingConvention = cc)] public static extern int shock_Util_DisassembleMIPS(uint PC, uint instr, IntPtr outbuf, int buflen); @@ -193,8 +206,6 @@ namespace BizHawk.Emulation.Cores.Sony.PSX [DllImport(dd, CallingConvention = cc)] public static extern int shock_AnalyzeDisc(IntPtr disc, out ShockDiscInfo info); - - [DllImport(dd, CallingConvention = cc)] public static extern int shock_Create(out IntPtr psx, eRegion region, void* firmware512k); @@ -271,7 +282,10 @@ namespace BizHawk.Emulation.Cores.Sony.PSX public static extern int shock_SetRegister_CPU(IntPtr psx, int index, uint value); [DllImport(dd, CallingConvention = cc)] - public static extern int shock_SetTraceCallback(IntPtr psx, IntPtr opaque, ShockTraceCallback callback); + public static extern int shock_SetTraceCallback(IntPtr psx, IntPtr opaque, ShockCallback_Trace callback); + + [DllImport(dd, CallingConvention = cc)] + public static extern int shock_SetMemCb(IntPtr psx, ShockCallback_Mem cb, eShockMemCb cbMask); [DllImport(dd, CallingConvention = cc)] public static extern int shock_SetLEC(IntPtr psx, bool enable); diff --git a/output/dll/octoshock.dll b/output/dll/octoshock.dll index 1dadf2281d34d8a760d02397a315bcf1574ea4ea..e2f63ab329b870e5880c9e31b875a7417648d92f 100644 GIT binary patch delta 82017 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%0D_MmN~ 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 M1;2J_=x{RaUv>p7WdHyG delta 83232 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 29]; if(address >= 0x1F800000 && address <= 0x1F8003FF) @@ -296,6 +301,9 @@ INLINE T PS_CPU::ReadMemory(pscpu_timestamp_t ×tamp, uint32 address, bool D template INLINE void PS_CPU::WriteMemory(pscpu_timestamp_t ×tamp, uint32 address, uint32 value, bool DS24) { + if (g_ShockMemCallback && (g_ShockMemCbType & eShockMemCb_Write)) + g_ShockMemCallback(address, eShockMemCb_Write, DS24 ? 24 : 32, value); + if(MDFN_LIKELY(!(CP0.SR & 0x10000))) { address &= addr_mask[address >> 29]; diff --git a/psx/octoshock/psx/psx.cpp b/psx/octoshock/psx/psx.cpp index e57a3afe10..ab41268a99 100644 --- a/psx/octoshock/psx/psx.cpp +++ b/psx/octoshock/psx/psx.cpp @@ -2700,6 +2700,8 @@ EW_EXPORT s32 shock_SetRenderOptions(void* pxs, ShockRenderOptions* opts) extern void* g_ShockTraceCallbackOpaque; extern ShockCallback_Trace g_ShockTraceCallback; +extern ShockCallback_Mem g_ShockMemCallback; +extern eShockMemCb g_ShockMemCbType; //Sets the callback to be used for CPU tracing EW_EXPORT s32 shock_SetTraceCallback(void* psx, void* opaque, ShockCallback_Trace callback) @@ -2710,6 +2712,14 @@ EW_EXPORT s32 shock_SetTraceCallback(void* psx, void* opaque, ShockCallback_Trac return SHOCK_OK; } +//Sets the callback to be used for memory hook events +EW_EXPORT s32 shock_SetMemCb(void* psx, ShockCallback_Mem callback, eShockMemCb cbMask) +{ + g_ShockMemCallback = callback; + g_ShockMemCbType = cbMask; + return SHOCK_OK; +} + //Sets whether LEC is enabled (sector level error correction). Defaults to FALSE (disabled) EW_EXPORT s32 shock_SetLEC(void* psx, bool enabled) { diff --git a/psx/octoshock/psx/psx.h b/psx/octoshock/psx/psx.h index 44b297e4f7..1804885245 100644 --- a/psx/octoshock/psx/psx.h +++ b/psx/octoshock/psx/psx.h @@ -192,6 +192,13 @@ enum eShockMemcardTransaction eShockMemcardTransaction_CheckDirty = 4, //checks whether the memcard is dirty }; +enum eShockMemCb +{ + eShockMemCb_None = 0, + eShockMemCb_Read = 1, + eShockMemCb_Write = 2, + eShockMemCb_Execute = 4 +}; #define MDFN_MSC_RESET 0 #define MDFN_MSC_POWER 1 @@ -237,7 +244,12 @@ typedef s32 (*ShockDisc_ReadTOC)(void* opaque, ShockTOC *read_target, ShockTOCTr typedef s32 (*ShockDisc_ReadLBA)(void* opaque, s32 lba, void* dst); //The callback to be issued for traces -typedef s32 (*ShockCallback_Trace)(void* opaque, u32 PC, u32 inst, const char* msg); +typedef void (*ShockCallback_Trace)(void* opaque, u32 PC, u32 inst, const char* msg); + +//the callback to be issued for memory hook events +//note: only one callback can be set. the type is sent to mask that one callback, not indicate which event type the callback is fore. +//there isnt one callback per type. +typedef void (*ShockCallback_Mem)(u32 address, eShockMemCb type, u32 size, u32 value); class ShockDiscRef { From f145f3cc68c0f192a7881dc2caeec39267ec1d7e Mon Sep 17 00:00:00 2001 From: Hathor86 Date: Sat, 23 Jan 2016 16:16:19 +0100 Subject: [PATCH 093/106] Polar Coord - Add polar coordinates to VirtualPadAnalogStick - Update N64 pad Schema as VirtualPadAnalogStick is a bit larger - Add Clamp method to NumberExtensions (allows a IComparable value to be restriced between 2 specified other values) --- .../tools/VirtualPads/VirtualPad.cs | 2 +- .../VirtualPadAnalogStick.Designer.cs | 104 ++++++++++++++---- .../controls/VirtualPadAnalogStick.cs | 81 ++++++++------ .../controls/components/AnalogSticklPanel.cs | 6 +- .../tools/VirtualPads/schema/N64Schema.cs | 30 ++--- BizHawk.Common/Extensions/NumberExtensions.cs | 27 ++++- 6 files changed, 178 insertions(+), 72 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs index aa8238de3d..1c1935bb36 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs @@ -85,7 +85,7 @@ namespace BizHawk.Client.EmuHawk { Name = button.Name, Location = UIHelper.Scale(button.Location), - Size = UIHelper.Scale(new Size(127 + 79, 127 + 9)), + Size = UIHelper.Scale(new Size(180 + 79, 200 + 9)), RangeX = new float[] { button.MinValue, button.MidValue, button.MaxValue }, RangeY = new float[] { button.MinValueSec, button.MidValueSec, button.MaxValueSec }, }); diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.Designer.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.Designer.cs index 6245962f67..2d3abd745e 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.Designer.cs @@ -35,18 +35,24 @@ this.MaxLabel = new System.Windows.Forms.Label(); this.MaxXNumeric = new System.Windows.Forms.NumericUpDown(); this.MaxYNumeric = new System.Windows.Forms.NumericUpDown(); + this.rLabel = new System.Windows.Forms.Label(); + this.manualR = new System.Windows.Forms.NumericUpDown(); + this.manualTheta = new System.Windows.Forms.NumericUpDown(); + this.thetaLabel = new System.Windows.Forms.Label(); this.AnalogStick = new BizHawk.Client.EmuHawk.AnalogStickPanel(); ((System.ComponentModel.ISupportInitialize)(this.ManualX)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.ManualY)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.MaxXNumeric)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.MaxYNumeric)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.manualR)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.manualTheta)).BeginInit(); this.SuspendLayout(); // // XLabel // this.XLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.XLabel.AutoSize = true; - this.XLabel.Location = new System.Drawing.Point(138, 7); + this.XLabel.Location = new System.Drawing.Point(187, 7); this.XLabel.Name = "XLabel"; this.XLabel.Size = new System.Drawing.Size(14, 13); this.XLabel.TabIndex = 23; @@ -55,7 +61,7 @@ // ManualX // this.ManualX.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ManualX.Location = new System.Drawing.Point(156, 3); + this.ManualX.Location = new System.Drawing.Point(205, 3); this.ManualX.Maximum = new decimal(new int[] { 127, 0, @@ -69,14 +75,13 @@ this.ManualX.Name = "ManualX"; this.ManualX.Size = new System.Drawing.Size(44, 20); this.ManualX.TabIndex = 24; - this.ManualX.ValueChanged += new System.EventHandler(this.ManualX_ValueChanged); - this.ManualX.KeyUp += new System.Windows.Forms.KeyEventHandler(this.ManualX_KeyUp); + this.ManualX.KeyUp += new System.Windows.Forms.KeyEventHandler(this.ManualXY_ValueChanged); // // YLabel // this.YLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.YLabel.AutoSize = true; - this.YLabel.Location = new System.Drawing.Point(138, 33); + this.YLabel.Location = new System.Drawing.Point(187, 33); this.YLabel.Name = "YLabel"; this.YLabel.Size = new System.Drawing.Size(14, 13); this.YLabel.TabIndex = 26; @@ -85,7 +90,7 @@ // ManualY // this.ManualY.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ManualY.Location = new System.Drawing.Point(156, 29); + this.ManualY.Location = new System.Drawing.Point(205, 29); this.ManualY.Maximum = new decimal(new int[] { 127, 0, @@ -100,14 +105,13 @@ this.ManualY.RightToLeft = System.Windows.Forms.RightToLeft.No; this.ManualY.Size = new System.Drawing.Size(44, 20); this.ManualY.TabIndex = 25; - this.ManualY.ValueChanged += new System.EventHandler(this.ManualY_ValueChanged); - this.ManualY.KeyUp += new System.Windows.Forms.KeyEventHandler(this.ManualY_KeyUp); + this.ManualY.KeyUp += new System.Windows.Forms.KeyEventHandler(this.ManualXY_ValueChanged); // // MaxLabel // this.MaxLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.MaxLabel.AutoSize = true; - this.MaxLabel.Location = new System.Drawing.Point(138, 72); + this.MaxLabel.Location = new System.Drawing.Point(205, 107); this.MaxLabel.Name = "MaxLabel"; this.MaxLabel.Size = new System.Drawing.Size(47, 13); this.MaxLabel.TabIndex = 27; @@ -116,7 +120,7 @@ // MaxXNumeric // this.MaxXNumeric.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.MaxXNumeric.Location = new System.Drawing.Point(138, 89); + this.MaxXNumeric.Location = new System.Drawing.Point(205, 124); this.MaxXNumeric.Maximum = new decimal(new int[] { 127, 0, @@ -130,13 +134,13 @@ this.MaxXNumeric.Name = "MaxXNumeric"; this.MaxXNumeric.Size = new System.Drawing.Size(44, 20); this.MaxXNumeric.TabIndex = 28; - this.MaxXNumeric.ValueChanged += new System.EventHandler(this.MaxXNumeric_ValueChanged); - this.MaxXNumeric.KeyUp += new System.Windows.Forms.KeyEventHandler(this.MaxXNumeric_KeyUp); + this.MaxXNumeric.ValueChanged += new System.EventHandler(this.MaxManualXY_ValueChanged); + this.MaxXNumeric.KeyUp += new System.Windows.Forms.KeyEventHandler(this.MaxManualXY_ValueChanged); // // MaxYNumeric // this.MaxYNumeric.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.MaxYNumeric.Location = new System.Drawing.Point(138, 112); + this.MaxYNumeric.Location = new System.Drawing.Point(205, 147); this.MaxYNumeric.Maximum = new decimal(new int[] { 127, 0, @@ -151,21 +155,71 @@ this.MaxYNumeric.RightToLeft = System.Windows.Forms.RightToLeft.No; this.MaxYNumeric.Size = new System.Drawing.Size(44, 20); this.MaxYNumeric.TabIndex = 29; - this.MaxYNumeric.ValueChanged += new System.EventHandler(this.MaxYNumeric_ValueChanged); - this.MaxYNumeric.KeyUp += new System.Windows.Forms.KeyEventHandler(this.MaxYNumeric_KeyUp); + this.MaxYNumeric.ValueChanged += new System.EventHandler(this.MaxManualXY_ValueChanged); + this.MaxYNumeric.KeyUp += new System.Windows.Forms.KeyEventHandler(this.MaxManualXY_ValueChanged); + // + // rLabel + // + this.rLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rLabel.AutoSize = true; + this.rLabel.Location = new System.Drawing.Point(167, 60); + this.rLabel.Name = "rLabel"; + this.rLabel.Size = new System.Drawing.Size(26, 13); + this.rLabel.TabIndex = 30; + this.rLabel.Text = "Ray"; + // + // manualR + // + this.manualR.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.manualR.DecimalPlaces = 2; + this.manualR.Location = new System.Drawing.Point(193, 58); + this.manualR.Maximum = new decimal(new int[] { + 182, + 0, + 0, + 0}); + this.manualR.Name = "manualR"; + this.manualR.Size = new System.Drawing.Size(56, 20); + this.manualR.TabIndex = 31; + // + // manualTheta + // + this.manualTheta.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.manualTheta.DecimalPlaces = 2; + this.manualTheta.Location = new System.Drawing.Point(193, 84); + this.manualTheta.Maximum = new decimal(new int[] { + 360, + 0, + 0, + 0}); + this.manualTheta.Minimum = new decimal(new int[] { + 360, + 0, + 0, + -2147483648}); + this.manualTheta.Name = "manualTheta"; + this.manualTheta.Size = new System.Drawing.Size(56, 20); + this.manualTheta.TabIndex = 33; + // + // thetaLabel + // + this.thetaLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.thetaLabel.AutoSize = true; + this.thetaLabel.Location = new System.Drawing.Point(167, 86); + this.thetaLabel.Name = "thetaLabel"; + this.thetaLabel.Size = new System.Drawing.Size(20, 13); + this.thetaLabel.TabIndex = 32; + this.thetaLabel.Text = "θ °"; // // AnalogStick // - this.AnalogStick.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); this.AnalogStick.BackColor = System.Drawing.Color.Gray; this.AnalogStick.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.AnalogStick.ClearCallback = null; this.AnalogStick.Location = new System.Drawing.Point(3, 3); this.AnalogStick.Name = "AnalogStick"; this.AnalogStick.ReadOnly = false; - this.AnalogStick.Size = new System.Drawing.Size(129, 129); + this.AnalogStick.Size = new System.Drawing.Size(164, 164); this.AnalogStick.TabIndex = 0; this.AnalogStick.X = 0; this.AnalogStick.Y = 0; @@ -176,6 +230,10 @@ // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.manualTheta); + this.Controls.Add(this.thetaLabel); + this.Controls.Add(this.manualR); + this.Controls.Add(this.rLabel); this.Controls.Add(this.MaxYNumeric); this.Controls.Add(this.MaxXNumeric); this.Controls.Add(this.MaxLabel); @@ -185,12 +243,14 @@ this.Controls.Add(this.XLabel); this.Controls.Add(this.AnalogStick); this.Name = "VirtualPadAnalogStick"; - this.Size = new System.Drawing.Size(204, 136); + this.Size = new System.Drawing.Size(253, 172); this.Load += new System.EventHandler(this.VirtualPadAnalogStick_Load); ((System.ComponentModel.ISupportInitialize)(this.ManualX)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.ManualY)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.MaxXNumeric)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.MaxYNumeric)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.manualR)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.manualTheta)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -206,5 +266,9 @@ private System.Windows.Forms.Label MaxLabel; private System.Windows.Forms.NumericUpDown MaxXNumeric; private System.Windows.Forms.NumericUpDown MaxYNumeric; + private System.Windows.Forms.Label rLabel; + private System.Windows.Forms.NumericUpDown manualR; + private System.Windows.Forms.NumericUpDown manualTheta; + private System.Windows.Forms.Label thetaLabel; } } diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.cs index edd6b6cd02..f562c323c0 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/VirtualPadAnalogStick.cs @@ -5,18 +5,34 @@ using System.Windows.Forms; using BizHawk.Emulation.Common; using BizHawk.Client.Common; using System.Windows; +using BizHawk.Common.NumberExtensions; namespace BizHawk.Client.EmuHawk { public partial class VirtualPadAnalogStick : UserControl, IVirtualPadControl { + #region Fields + private bool _programmaticallyUpdatingNumerics; private bool _readonly; + private EventHandler manualXYValueChangedEventHandler; + private EventHandler polarNumericChangedEventHandler; + + #endregion + public VirtualPadAnalogStick() { InitializeComponent(); AnalogStick.ClearCallback = ClearCallback; + + manualXYValueChangedEventHandler = new EventHandler(ManualXY_ValueChanged); + polarNumericChangedEventHandler = new EventHandler(PolarNumeric_Changed); + + ManualX.ValueChanged += manualXYValueChangedEventHandler; + ManualY.ValueChanged += manualXYValueChangedEventHandler; + manualR.ValueChanged += polarNumericChangedEventHandler; + manualTheta.ValueChanged += polarNumericChangedEventHandler; } public float[] RangeX = new float[] { -128f, 0.0f, 127f }; @@ -64,6 +80,8 @@ namespace BizHawk.Client.EmuHawk { ManualX.Value = 0; ManualY.Value = 0; + manualR.Value = 0; + manualTheta.Value = 0; //see HOOMOO Global.AutofireStickyXORAdapter.SetSticky(AnalogStick.XName, false); Global.StickyXORAdapter.Unset(AnalogStick.XName); @@ -95,12 +113,16 @@ namespace BizHawk.Client.EmuHawk MaxLabel.Enabled = MaxXNumeric.Enabled = MaxYNumeric.Enabled = + manualR.Enabled = + rLabel.Enabled = + manualTheta.Enabled = + thetaLabel.Enabled = !value; - AnalogStick.ReadOnly = + AnalogStick.ReadOnly = _readonly = value; - + Refresh(); } } @@ -130,24 +152,30 @@ namespace BizHawk.Client.EmuHawk AnalogStick.SetPrevious(previous); } - private void ManualX_ValueChanged(object sender, EventArgs e) + private void ManualXY_ValueChanged(object sender, EventArgs e) { SetAnalogControlFromNumerics(); } - - private void ManualX_KeyUp(object sender, KeyEventArgs e) + private void MaxManualXY_ValueChanged(object sender, EventArgs e) { - SetAnalogControlFromNumerics(); + SetAnalogMaxFromNumerics(); } - private void ManualY_KeyUp(object sender, KeyEventArgs e) + private void PolarNumeric_Changed(object sender, EventArgs e) { - SetAnalogControlFromNumerics(); - } + ManualX.ValueChanged -= manualXYValueChangedEventHandler; + ManualY.ValueChanged -= manualXYValueChangedEventHandler; - private void ManualY_ValueChanged(object sender, EventArgs e) - { - SetAnalogControlFromNumerics(); + ManualX.Value = Math.Ceiling(manualR.Value * (decimal)Math.Cos(Math.PI * (double)manualTheta.Value / 180)).Clamp(-127, 127); + ManualY.Value = Math.Ceiling(manualR.Value * (decimal)Math.Sin(Math.PI * (double)manualTheta.Value / 180)).Clamp(-127, 127); + + AnalogStick.X = (int)ManualX.Value; + AnalogStick.Y = (int)ManualY.Value; + AnalogStick.HasValue = true; + AnalogStick.Refresh(); + + ManualX.ValueChanged += manualXYValueChangedEventHandler; + ManualY.ValueChanged += manualXYValueChangedEventHandler; } private void SetAnalogControlFromNumerics() @@ -188,6 +216,15 @@ namespace BizHawk.Client.EmuHawk ManualY.Value = 0; } } + + manualR.ValueChanged -= polarNumericChangedEventHandler; + manualTheta.ValueChanged -= polarNumericChangedEventHandler; + + manualR.Value = (decimal)Math.Sqrt(Math.Pow(AnalogStick.X, 2) + Math.Pow(AnalogStick.Y, 2)); + manualTheta.Value = (decimal)(Math.Atan2(AnalogStick.Y, AnalogStick.X) * (180 / Math.PI)); + + manualR.ValueChanged += polarNumericChangedEventHandler; + manualTheta.ValueChanged += polarNumericChangedEventHandler; } private void AnalogStick_MouseDown(object sender, MouseEventArgs e) @@ -210,26 +247,6 @@ namespace BizHawk.Client.EmuHawk } } - private void MaxXNumeric_ValueChanged(object sender, EventArgs e) - { - SetAnalogMaxFromNumerics(); - } - - private void MaxXNumeric_KeyUp(object sender, KeyEventArgs e) - { - SetAnalogMaxFromNumerics(); - } - - private void MaxYNumeric_ValueChanged(object sender, EventArgs e) - { - SetAnalogMaxFromNumerics(); - } - - private void MaxYNumeric_KeyUp(object sender, KeyEventArgs e) - { - SetAnalogMaxFromNumerics(); - } - private void SetAnalogMaxFromNumerics() { if (!_programmaticallyUpdatingNumerics) diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/components/AnalogSticklPanel.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/components/AnalogSticklPanel.cs index 77da016124..46d17aa5c7 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/components/AnalogSticklPanel.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/controls/components/AnalogSticklPanel.cs @@ -123,8 +123,8 @@ namespace BizHawk.Client.EmuHawk //dont count on this working. it's never been tested. //but it kind of must be, or else nothing here would work... - public float ScaleX = 0.5f; - public float ScaleY = 0.5f; + public float ScaleX = 0.60f; + public float ScaleY = 0.60f; int MinX { get { return (int)(RangeX[0]); } } int MinY { get { return (int)(RangeY[0]); } } @@ -252,7 +252,7 @@ namespace BizHawk.Client.EmuHawk unchecked { // Background - e.Graphics.Clear(Color.Black); + e.Graphics.Clear(Color.LightGray); e.Graphics.FillRectangle(GrayBrush, PixelMinX, PixelMinY, PixelMaxX - PixelMinX, PixelMaxY- PixelMinY); e.Graphics.FillEllipse(ReadOnly ? OffWhiteBrush : WhiteBrush, PixelMinX, PixelMinY, PixelMaxX - PixelMinX - 2, PixelMaxY - PixelMinY - 3); diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/N64Schema.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/N64Schema.cs index 6afa6fb363..aa3ecbfa1d 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/N64Schema.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/N64Schema.cs @@ -26,7 +26,7 @@ namespace BizHawk.Client.EmuHawk return new PadSchema { IsConsole = false, - DefaultSize = new Size(220, 316), + DefaultSize = new Size(275, 316), Buttons = new[] { new PadSchema.ButtonScema @@ -34,7 +34,7 @@ namespace BizHawk.Client.EmuHawk Name = "P" + controller + " DPad U", DisplayName = "", Icon = Properties.Resources.BlueUp, - Location = new Point(24, 195), + Location = new Point(24, 230), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema @@ -42,7 +42,7 @@ namespace BizHawk.Client.EmuHawk Name = "P" + controller + " DPad D", DisplayName = "", Icon = Properties.Resources.BlueDown, - Location = new Point(24, 216), + Location = new Point(24, 251), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema @@ -50,7 +50,7 @@ namespace BizHawk.Client.EmuHawk Name = "P" + controller + " DPad L", DisplayName = "", Icon = Properties.Resources.Back, - Location = new Point(3, 207), + Location = new Point(3, 242), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema @@ -58,77 +58,77 @@ namespace BizHawk.Client.EmuHawk Name = "P" + controller + " DPad R", DisplayName = "", Icon = Properties.Resources.Forward, - Location = new Point(45, 207), + Location = new Point(45, 242), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema { Name = "P" + controller + " L", DisplayName = "L", - Location = new Point(3, 150), + Location = new Point(3, 185), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema { Name = "P" + controller + " R", DisplayName = "R", - Location = new Point(191, 150), + Location = new Point(191, 185), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema { Name = "P" + controller + " Z", DisplayName = "Z", - Location = new Point(81, 234), + Location = new Point(81, 269), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema { Name = "P" + controller + " Start", DisplayName = "S", - Location = new Point(81, 211), + Location = new Point(81, 246), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema { Name = "P" + controller + " B", DisplayName = "B", - Location = new Point(127, 211), + Location = new Point(127, 246), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema { Name = "P" + controller + " A", DisplayName = "A", - Location = new Point(138, 234), + Location = new Point(138, 269), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema { Name = "P" + controller + " C Up", Icon = Properties.Resources.YellowUp, - Location = new Point(173, 175), + Location = new Point(173, 210), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema { Name = "P" + controller + " C Down", Icon = Properties.Resources.YellowDown, - Location = new Point(173, 196), + Location = new Point(173, 231), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema { Name = "P" + controller + " C Left", Icon = Properties.Resources.YellowLeft, - Location = new Point(152, 189), + Location = new Point(152, 221), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema { Name = "P" + controller + " C Right", Icon = Properties.Resources.YellowRight, - Location = new Point(194, 189), + Location = new Point(194, 221), Type = PadSchema.PadInputType.Boolean }, new PadSchema.ButtonScema diff --git a/BizHawk.Common/Extensions/NumberExtensions.cs b/BizHawk.Common/Extensions/NumberExtensions.cs index cb2f5f19b6..3cb3294de2 100644 --- a/BizHawk.Common/Extensions/NumberExtensions.cs +++ b/BizHawk.Common/Extensions/NumberExtensions.cs @@ -1,4 +1,5 @@ -using System.Linq; +using System; +using System.Linq; namespace BizHawk.Common.NumberExtensions { @@ -106,5 +107,29 @@ namespace BizHawk.Common.NumberExtensions { return a - (b * (int)System.Math.Floor((float)a / b)); } + + /// + /// Force the value to be stricly between min and max (both exclued) + /// + /// Anything that implements + /// Value that will be clamped + /// Minimum allowed + /// Maximum allowed + /// The value if strictly between min and max; otherwise min (or max depending of what is passed) + public static T Clamp(this T val, T min, T max) where T : IComparable + { + if(val.CompareTo(min) < 0) + { + return min; + } + else if(val.CompareTo(max) > 0) + { + return max; + } + else + { + return val; + } + } } } From ef1bc65ce6200559862b38f0d6360fa5a67e57e0 Mon Sep 17 00:00:00 2001 From: scrimpeh Date: Tue, 26 Jan 2016 11:34:42 +0100 Subject: [PATCH 094/106] IInputPollable - Make IsLagFrame settable --- BizHawk.Emulation.Common/Interfaces/IInputPollable.cs | 2 +- BizHawk.Emulation.Cores/Calculator/TI83.IInputPollable.cs | 1 + .../Computers/AppleII/AppleII.IInputPollable.cs | 2 +- .../Computers/Commodore64/C64.IInputPollable.cs | 1 + .../Consoles/Atari/2600/Atari2600.IInputPollable.cs | 1 + .../Consoles/Atari/7800/Atari7800.IInputPollable.cs | 1 + .../Consoles/Atari/lynx/Lynx.IInputPollable.cs | 2 +- .../Consoles/Coleco/ColecoVision.IInputPollable.cs | 1 + BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs | 2 +- BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/Meteor.cs | 2 +- BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs | 2 +- BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/Gambatte.cs | 2 +- .../Consoles/Nintendo/Gameboy/GambatteLink.IInputPollable.cs | 2 +- .../Consoles/Nintendo/N64/N64.IInputPollable.cs | 2 +- .../Consoles/Nintendo/NES/NES.IInputPollable.cs | 1 + .../Consoles/Nintendo/QuickNES/QuickNES.IInputPollable.cs | 2 +- BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs | 2 +- BizHawk.Emulation.Cores/Consoles/PC Engine/PCEngine.cs | 2 +- BizHawk.Emulation.Cores/Consoles/Sega/Genesis/Genesis.cs | 2 +- BizHawk.Emulation.Cores/Consoles/Sega/SMS/SMS.cs | 2 +- .../Consoles/Sega/Saturn/Yabause.IInputPollable.cs | 2 +- BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs | 2 +- BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs | 2 +- BizHawk.Emulation.Cores/Consoles/WonderSwan/WonderSwan.cs | 2 +- BizHawk.Emulation.Cores/Libretro/LibRetroEmulator.cs | 2 +- 25 files changed, 25 insertions(+), 19 deletions(-) diff --git a/BizHawk.Emulation.Common/Interfaces/IInputPollable.cs b/BizHawk.Emulation.Common/Interfaces/IInputPollable.cs index 54a3ef5f50..fdb9259a8e 100644 --- a/BizHawk.Emulation.Common/Interfaces/IInputPollable.cs +++ b/BizHawk.Emulation.Common/Interfaces/IInputPollable.cs @@ -11,7 +11,7 @@ /// If the current frame is a lag frame. /// All cores should define it the same, a lag frame is a frame in which input was not polled. /// - bool IsLagFrame { get; } + bool IsLagFrame { get; set; } IInputCallbackSystem InputCallbacks { get; } } diff --git a/BizHawk.Emulation.Cores/Calculator/TI83.IInputPollable.cs b/BizHawk.Emulation.Cores/Calculator/TI83.IInputPollable.cs index 22927c62ee..b4eb0fa967 100644 --- a/BizHawk.Emulation.Cores/Calculator/TI83.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Calculator/TI83.IInputPollable.cs @@ -19,6 +19,7 @@ namespace BizHawk.Emulation.Cores.Calculators public bool IsLagFrame { get { return _isLag; } + set { _isLag = value; } } } } diff --git a/BizHawk.Emulation.Cores/Computers/AppleII/AppleII.IInputPollable.cs b/BizHawk.Emulation.Cores/Computers/AppleII/AppleII.IInputPollable.cs index 26419f41e5..a595a2b73b 100644 --- a/BizHawk.Emulation.Cores/Computers/AppleII/AppleII.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Computers/AppleII/AppleII.IInputPollable.cs @@ -9,7 +9,7 @@ namespace BizHawk.Emulation.Cores.Computers.AppleII public bool IsLagFrame { get { return _machine.Lagged; } - private set { _machine.Lagged = value; } + set { _machine.Lagged = value; } } public IInputCallbackSystem InputCallbacks { get; private set; } diff --git a/BizHawk.Emulation.Cores/Computers/Commodore64/C64.IInputPollable.cs b/BizHawk.Emulation.Cores/Computers/Commodore64/C64.IInputPollable.cs index b0aef31cbd..212b0e2678 100644 --- a/BizHawk.Emulation.Cores/Computers/Commodore64/C64.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Computers/Commodore64/C64.IInputPollable.cs @@ -7,6 +7,7 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64 public bool IsLagFrame { get { return _islag; } + set { _islag = value; } } public int LagCount diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/2600/Atari2600.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Atari/2600/Atari2600.IInputPollable.cs index efe6e472c9..05f5d69a8e 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/2600/Atari2600.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/2600/Atari2600.IInputPollable.cs @@ -13,6 +13,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600 public bool IsLagFrame { get { return _islag; } + set { _islag = value; } } public IInputCallbackSystem InputCallbacks { get; private set; } diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/7800/Atari7800.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Atari/7800/Atari7800.IInputPollable.cs index 74937501de..0efb7e7393 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/7800/Atari7800.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/7800/Atari7800.IInputPollable.cs @@ -13,6 +13,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari7800 public bool IsLagFrame { get { return _islag; } + set { _islag = value; } } public IInputCallbackSystem InputCallbacks { get; private set; } diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/lynx/Lynx.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Atari/lynx/Lynx.IInputPollable.cs index 9ba1ba6b32..334b78474d 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/lynx/Lynx.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/lynx/Lynx.IInputPollable.cs @@ -10,7 +10,7 @@ namespace BizHawk.Emulation.Cores.Atari.Lynx { public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } // TODO public IInputCallbackSystem InputCallbacks diff --git a/BizHawk.Emulation.Cores/Consoles/Coleco/ColecoVision.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Coleco/ColecoVision.IInputPollable.cs index bfac04bd55..63853300ab 100644 --- a/BizHawk.Emulation.Cores/Consoles/Coleco/ColecoVision.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Coleco/ColecoVision.IInputPollable.cs @@ -14,6 +14,7 @@ namespace BizHawk.Emulation.Cores.ColecoVision public bool IsLagFrame { get { return _isLag; } + set { _isLag = value; } } public IInputCallbackSystem InputCallbacks diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs index cec1c68c4e..b2d06b0e42 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/MGBAHawk.cs @@ -371,7 +371,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA } public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } [FeatureNotImplemented] public IInputCallbackSystem InputCallbacks diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/Meteor.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/Meteor.cs index 965192275e..3e918a1258 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/Meteor.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/Meteor.cs @@ -102,7 +102,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA public int Frame { get; private set; } public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } private readonly InputCallbackSystem _inputCallbacks = new InputCallbackSystem(); diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs index f529b4ffbc..3678b24584 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.cs @@ -116,7 +116,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA public int Frame { get; private set; } public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } private ITraceable Tracer { get; set; } diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/Gambatte.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/Gambatte.cs index b8270fe39e..428b6a7894 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/Gambatte.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/Gambatte.cs @@ -196,7 +196,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy public int Frame { get; set; } public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } // all cycle counts are relative to a 2*1024*1024 mhz refclock diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/GambatteLink.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/GambatteLink.IInputPollable.cs index efddc620da..1148b51f94 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/GambatteLink.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/Gameboy/GambatteLink.IInputPollable.cs @@ -7,7 +7,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy { public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } public IInputCallbackSystem InputCallbacks { diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.IInputPollable.cs index 14103da9d6..31d7b96745 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.IInputPollable.cs @@ -19,7 +19,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64 return !_inputProvider.LastFrameInputPolled; } - internal set + set { if (_settings.UseMupenStyleLag) { diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.IInputPollable.cs index 8438b25012..1d6212f445 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.IInputPollable.cs @@ -13,6 +13,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public bool IsLagFrame { get { return islag; } + set { islag = value; } } public IInputCallbackSystem InputCallbacks diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.IInputPollable.cs index 9164bb7653..a83c9d6bc9 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.IInputPollable.cs @@ -6,7 +6,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES public partial class QuickNES : IInputPollable { public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } public IInputCallbackSystem InputCallbacks { diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs index bb4e65571d..0d1d3e5657 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/SNES/LibsnesCore.cs @@ -740,7 +740,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES int timeFrameCounter; public int Frame { get { return timeFrameCounter; } set { timeFrameCounter = value; } } public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } public string SystemId { get; private set; } public string BoardName { get; private set; } diff --git a/BizHawk.Emulation.Cores/Consoles/PC Engine/PCEngine.cs b/BizHawk.Emulation.Cores/Consoles/PC Engine/PCEngine.cs index b288ae20ef..c39273e240 100644 --- a/BizHawk.Emulation.Cores/Consoles/PC Engine/PCEngine.cs +++ b/BizHawk.Emulation.Cores/Consoles/PC Engine/PCEngine.cs @@ -310,7 +310,7 @@ namespace BizHawk.Emulation.Cores.PCEngine bool isLag = false; public int Frame { get { return frame; } set { frame = value; } } public int LagCount { get { return lagCount; } set { lagCount = value; } } - public bool IsLagFrame { get { return isLag; } } + public bool IsLagFrame { get { return isLag; } set { isLag = value; } } private readonly InputCallbackSystem _inputCallbacks = new InputCallbackSystem(); public IInputCallbackSystem InputCallbacks { get { return _inputCallbacks; } } diff --git a/BizHawk.Emulation.Cores/Consoles/Sega/Genesis/Genesis.cs b/BizHawk.Emulation.Cores/Consoles/Sega/Genesis/Genesis.cs index ef74d601bf..48f1faa3c8 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sega/Genesis/Genesis.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sega/Genesis/Genesis.cs @@ -310,7 +310,7 @@ namespace BizHawk.Emulation.Cores.Sega.Genesis public int Frame { get; set; } public int LagCount { get { return _lagcount; } set { _lagcount = value; } } - public bool IsLagFrame { get { return islag; } } + public bool IsLagFrame { get { return islag; } set { islag = value; } } public bool DeterministicEmulation { get { return true; } } public string SystemId { get { return "GEN"; } } diff --git a/BizHawk.Emulation.Cores/Consoles/Sega/SMS/SMS.cs b/BizHawk.Emulation.Cores/Consoles/Sega/SMS/SMS.cs index fb5f254241..fde4cac977 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sega/SMS/SMS.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sega/SMS/SMS.cs @@ -78,7 +78,7 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem bool isLag = false; public int Frame { get { return frame; } set { frame = value; } } public int LagCount { get { return lagCount; } set { lagCount = value; } } - public bool IsLagFrame { get { return isLag; } } + public bool IsLagFrame { get { return isLag; } set { isLag = value; } } private readonly InputCallbackSystem _inputCallbacks = new InputCallbackSystem(); public IInputCallbackSystem InputCallbacks { get { return _inputCallbacks; } } diff --git a/BizHawk.Emulation.Cores/Consoles/Sega/Saturn/Yabause.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Sega/Saturn/Yabause.IInputPollable.cs index 65519c8f89..76fcd17db9 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sega/Saturn/Yabause.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sega/Saturn/Yabause.IInputPollable.cs @@ -10,7 +10,7 @@ namespace BizHawk.Emulation.Cores.Sega.Saturn { public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } // TODO: optimize managed to unmanaged using the ActiveChanged event public IInputCallbackSystem InputCallbacks diff --git a/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs b/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs index 77318a76ec..304dc65aee 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sega/gpgx/GPGX.cs @@ -475,7 +475,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx public int Frame { get; private set; } public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } public string SystemId { get { return "GEN"; } } public bool DeterministicEmulation { get { return true; } } diff --git a/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs b/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs index d9794a467f..d47b89fbf3 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs @@ -769,7 +769,7 @@ namespace BizHawk.Emulation.Cores.Sony.PSX public int Frame { get; private set; } public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } public IInputCallbackSystem InputCallbacks { diff --git a/BizHawk.Emulation.Cores/Consoles/WonderSwan/WonderSwan.cs b/BizHawk.Emulation.Cores/Consoles/WonderSwan/WonderSwan.cs index 5d77013af8..4746759cec 100644 --- a/BizHawk.Emulation.Cores/Consoles/WonderSwan/WonderSwan.cs +++ b/BizHawk.Emulation.Cores/Consoles/WonderSwan/WonderSwan.cs @@ -101,7 +101,7 @@ namespace BizHawk.Emulation.Cores.WonderSwan public int Frame { get; private set; } public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } public string SystemId { get { return "WSWAN"; } } public bool DeterministicEmulation { get; private set; } diff --git a/BizHawk.Emulation.Cores/Libretro/LibRetroEmulator.cs b/BizHawk.Emulation.Cores/Libretro/LibRetroEmulator.cs index e67ff90ede..f3028acab3 100644 --- a/BizHawk.Emulation.Cores/Libretro/LibRetroEmulator.cs +++ b/BizHawk.Emulation.Cores/Libretro/LibRetroEmulator.cs @@ -903,7 +903,7 @@ namespace BizHawk.Emulation.Cores #region IInputPollable public int LagCount { get; set; } - public bool IsLagFrame { get; private set; } + public bool IsLagFrame { get; set; } public IInputCallbackSystem InputCallbacks { [FeatureNotImplemented] From e4a1a517cd5f4b0d9bdb3e0ef0a00235fb925e0d Mon Sep 17 00:00:00 2001 From: scrimpeh Date: Tue, 26 Jan 2016 11:46:52 +0100 Subject: [PATCH 095/106] IInputPollable - Now with tabs instead of spaces. --- BizHawk.Emulation.Cores/Calculator/TI83.IInputPollable.cs | 2 +- .../Computers/Commodore64/C64.IInputPollable.cs | 2 +- .../Consoles/Atari/2600/Atari2600.IInputPollable.cs | 2 +- .../Consoles/Atari/7800/Atari7800.IInputPollable.cs | 2 +- .../Consoles/Coleco/ColecoVision.IInputPollable.cs | 2 +- .../Consoles/Nintendo/NES/NES.IInputPollable.cs | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/BizHawk.Emulation.Cores/Calculator/TI83.IInputPollable.cs b/BizHawk.Emulation.Cores/Calculator/TI83.IInputPollable.cs index b4eb0fa967..83e05e04e3 100644 --- a/BizHawk.Emulation.Cores/Calculator/TI83.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Calculator/TI83.IInputPollable.cs @@ -19,7 +19,7 @@ namespace BizHawk.Emulation.Cores.Calculators public bool IsLagFrame { get { return _isLag; } - set { _isLag = value; } + set { _isLag = value; } } } } diff --git a/BizHawk.Emulation.Cores/Computers/Commodore64/C64.IInputPollable.cs b/BizHawk.Emulation.Cores/Computers/Commodore64/C64.IInputPollable.cs index 212b0e2678..fd668b5830 100644 --- a/BizHawk.Emulation.Cores/Computers/Commodore64/C64.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Computers/Commodore64/C64.IInputPollable.cs @@ -7,7 +7,7 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64 public bool IsLagFrame { get { return _islag; } - set { _islag = value; } + set { _islag = value; } } public int LagCount diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/2600/Atari2600.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Atari/2600/Atari2600.IInputPollable.cs index 05f5d69a8e..8d6efbf22d 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/2600/Atari2600.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/2600/Atari2600.IInputPollable.cs @@ -13,7 +13,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600 public bool IsLagFrame { get { return _islag; } - set { _islag = value; } + set { _islag = value; } } public IInputCallbackSystem InputCallbacks { get; private set; } diff --git a/BizHawk.Emulation.Cores/Consoles/Atari/7800/Atari7800.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Atari/7800/Atari7800.IInputPollable.cs index 0efb7e7393..479cba9ca9 100644 --- a/BizHawk.Emulation.Cores/Consoles/Atari/7800/Atari7800.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Atari/7800/Atari7800.IInputPollable.cs @@ -13,7 +13,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari7800 public bool IsLagFrame { get { return _islag; } - set { _islag = value; } + set { _islag = value; } } public IInputCallbackSystem InputCallbacks { get; private set; } diff --git a/BizHawk.Emulation.Cores/Consoles/Coleco/ColecoVision.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Coleco/ColecoVision.IInputPollable.cs index 63853300ab..3c9708667b 100644 --- a/BizHawk.Emulation.Cores/Consoles/Coleco/ColecoVision.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Coleco/ColecoVision.IInputPollable.cs @@ -14,7 +14,7 @@ namespace BizHawk.Emulation.Cores.ColecoVision public bool IsLagFrame { get { return _isLag; } - set { _isLag = value; } + set { _isLag = value; } } public IInputCallbackSystem InputCallbacks diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.IInputPollable.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.IInputPollable.cs index 1d6212f445..8e2ecccd8b 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.IInputPollable.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/NES/NES.IInputPollable.cs @@ -13,7 +13,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES public bool IsLagFrame { get { return islag; } - set { islag = value; } + set { islag = value; } } public IInputCallbackSystem InputCallbacks From 1b8ef3738a01045bb6d3d248338f3a054a22c55e Mon Sep 17 00:00:00 2001 From: feos Date: Wed, 27 Jan 2016 12:53:26 +0300 Subject: [PATCH 096/106] tastudio: - history form: canonical colors, show the current item better, report marker operations - markers: adding markers updates dialog, don't ever remove marker 0 - tsm: attempt to fix exception in AllLag() --- BizHawk.Client.Common/movie/tasproj/TasMovie.History.cs | 5 +++++ BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs | 2 +- BizHawk.Client.Common/movie/tasproj/TasStateManager.cs | 2 +- BizHawk.Client.EmuHawk/tools/TAStudio/MarkerControl.cs | 1 + BizHawk.Client.EmuHawk/tools/TAStudio/UndoHistoryForm.cs | 6 +++--- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovie.History.cs b/BizHawk.Client.Common/movie/tasproj/TasMovie.History.cs index 5a0c12abb2..2ddc1a639e 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovie.History.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovie.History.cs @@ -283,6 +283,11 @@ namespace BizHawk.Client.Common { if (IsRecording || force) { + if (oldPosition == -1) + name = "Set Marker at frame " + newMarker.Frame; + else + name = "Remove Marker at frame " + oldPosition; + AddMovieAction(name); History.Last().Add(new MovieActionMarker(newMarker, oldPosition, old_message)); } diff --git a/BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs b/BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs index 41fca12525..3328df7ed4 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasMovieMarker.cs @@ -169,7 +169,7 @@ namespace BizHawk.Client.Common public new void Remove(TasMovieMarker item) { - if (item == null) // TODO: Don't do this. + if (item == null || item.Frame == 0) // TODO: Don't do this. return; _movie.ChangeLog.AddMarkerChange(null, item.Frame, item.Message); base.Remove(item); diff --git a/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs b/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs index 566c5d866d..06a6e75f86 100644 --- a/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs +++ b/BizHawk.Client.Common/movie/tasproj/TasStateManager.cs @@ -320,7 +320,7 @@ namespace BizHawk.Client.Common for (int i = from; i < upTo; i++) { - if (!_movie[i].Lagged.Value) + if (_movie[i].Lagged == null) return false; } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/MarkerControl.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/MarkerControl.cs index 500ee69340..0c6818d5a8 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/MarkerControl.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/MarkerControl.cs @@ -187,6 +187,7 @@ namespace BizHawk.Client.EmuHawk Markers.Add(new TasMovieMarker(markerFrame, "")); UpdateValues(); } + Tastudio.RefreshDialog(); } public void EditMarkerPopUp(TasMovieMarker marker) diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/UndoHistoryForm.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/UndoHistoryForm.cs index b15d391224..692f8ef1b8 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/UndoHistoryForm.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/UndoHistoryForm.cs @@ -44,9 +44,9 @@ namespace BizHawk.Client.EmuHawk return; if (row == log.UndoIndex) - color = Color.Green; + color = TAStudio.GreenZone_InputLog; else if (row > log.UndoIndex) - color = Color.Red; + color = TAStudio.LagZone_InputLog; } private string _lastUndoAction = null; @@ -55,7 +55,7 @@ namespace BizHawk.Client.EmuHawk HistoryView.ItemCount = log.Names.Count; if (AutoScrollCheck.Checked && _lastUndoAction != log.NextUndoStepName) { - HistoryView.ensureVisible(log.UndoIndex - 1); + HistoryView.ensureVisible(log.UndoIndex); HistoryView.clearSelection(); HistoryView.SelectItem(log.UndoIndex - 1, true); } From 1c6a40dec97b2fc5adfea0ec406340d569c4dd4a Mon Sep 17 00:00:00 2001 From: feos Date: Wed, 27 Jan 2016 15:44:42 +0300 Subject: [PATCH 097/106] tastudio: seek progress bar: - stop dividing by zero! - ignore if seeking closer than 2 frames ahead (todo: make cutoff configurable) --- .../tools/TAStudio/TAStudio.ListView.cs | 4 +++- .../tools/TAStudio/TAStudio.Navigation.cs | 2 -- BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs | 13 +++++++++---- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index 8f9e89dd16..b9cd757df2 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -70,13 +70,15 @@ namespace BizHawk.Client.EmuHawk _seekStartFrame = Emulator.Frame; GlobalWin.MainForm.PauseOnFrame = frame.Value; + int? diff = GlobalWin.MainForm.PauseOnFrame - _seekStartFrame; + int seekCutoff = 2; // todo if (pause) GlobalWin.MainForm.PauseEmulator(); else GlobalWin.MainForm.UnpauseEmulator(); - if (!_seekBackgroundWorker.IsBusy) + if (!_seekBackgroundWorker.IsBusy && diff.Value > seekCutoff) _seekBackgroundWorker.RunWorkerAsync(); } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs index 43fcf6d34f..53b806b1cc 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Navigation.cs @@ -38,8 +38,6 @@ namespace BizHawk.Client.EmuHawk StartAtNearestFrameAndEmulate(frame); MaybeFollowCursor(); - - //return; seriously? well, maybe it's for some insane speedup, but it skipped updating when putting playback to frame zero. } else // Emulate to a future frame { diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index 184a103660..cc6567755c 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -203,11 +203,16 @@ namespace BizHawk.Client.EmuHawk e.Cancel = true; break; } - double progress = (double)100d / - (GlobalWin.MainForm.PauseOnFrame.Value - _seekStartFrame.Value) * - (Global.Emulator.Frame - _seekStartFrame.Value); + + int diff = Global.Emulator.Frame - _seekStartFrame.Value; + int unit = GlobalWin.MainForm.PauseOnFrame.Value - _seekStartFrame.Value; + double progress = 0; + + if (diff != 0 && unit != 0) + progress = (double)100d / unit * diff; if (progress < 0) progress = 0; + _seekBackgroundWorker.ReportProgress((int)progress); System.Threading.Thread.Sleep(1); } @@ -215,7 +220,7 @@ namespace BizHawk.Client.EmuHawk _seekBackgroundWorker.ProgressChanged += (s, e) => { - SavingProgressBar.Value = e.ProgressPercentage; + this.Invoke(() => this.SavingProgressBar.Value = e.ProgressPercentage); }; _seekBackgroundWorker.RunWorkerCompleted += (s, e) => From d39aa6433ef12eb37a260fe41a029433e0a049ff Mon Sep 17 00:00:00 2001 From: feos Date: Wed, 27 Jan 2016 16:18:20 +0300 Subject: [PATCH 098/106] tastudio: implement SeekingCutoffInterval --- .../CustomControls/InputRoll.cs | 6 + .../tools/TAStudio/TAStudio.Designer.cs | 210 +++++++++--------- .../tools/TAStudio/TAStudio.ListView.cs | 3 +- .../tools/TAStudio/TAStudio.MenuItems.cs | 22 ++ .../tools/TAStudio/TAStudio.cs | 3 + .../tools/TAStudio/TAStudio.resx | 24 +- 6 files changed, 154 insertions(+), 114 deletions(-) diff --git a/BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs b/BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs index e596621cfc..79a33f85b4 100644 --- a/BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs +++ b/BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs @@ -279,6 +279,12 @@ namespace BizHawk.Client.EmuHawk [Category("Behavior")] public bool AlwaysScroll { get; set; } + /// + /// Gets or sets the lowest seek interval to activate the progress bar + /// + [Category("Behavior")] + public int SeekingCutoffInterval { get; set; } + /// /// Returns all columns including those that are not visible /// diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs index 03440d8b38..dab12d5ce1 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.Designer.cs @@ -82,6 +82,7 @@ namespace BizHawk.Client.EmuHawk this.ConfigSubMenu = new System.Windows.Forms.ToolStripMenuItem(); this.SetMaxUndoLevelsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.SetBranchCellHoverIntervalMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.SetSeekingCutoffIntervalMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator(); this.AutoadjustInputMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator(); @@ -241,7 +242,7 @@ namespace BizHawk.Client.EmuHawk // this.NewTASMenuItem.Name = "NewTASMenuItem"; this.NewTASMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); - this.NewTASMenuItem.Size = new System.Drawing.Size(190, 22); + this.NewTASMenuItem.Size = new System.Drawing.Size(201, 22); this.NewTASMenuItem.Text = "&New"; this.NewTASMenuItem.Click += new System.EventHandler(this.NewTasMenuItem_Click); // @@ -251,21 +252,21 @@ namespace BizHawk.Client.EmuHawk this.NewFromNowMenuItem, this.NewFromCurrentSaveRamMenuItem}); this.NewFromSubMenu.Name = "NewFromSubMenu"; - this.NewFromSubMenu.Size = new System.Drawing.Size(190, 22); + this.NewFromSubMenu.Size = new System.Drawing.Size(201, 22); this.NewFromSubMenu.Text = "New From"; this.NewFromSubMenu.DropDownOpened += new System.EventHandler(this.NewFromSubMenu_DropDownOpened); // // NewFromNowMenuItem // this.NewFromNowMenuItem.Name = "NewFromNowMenuItem"; - this.NewFromNowMenuItem.Size = new System.Drawing.Size(159, 22); + this.NewFromNowMenuItem.Size = new System.Drawing.Size(170, 22); this.NewFromNowMenuItem.Text = "&Now"; this.NewFromNowMenuItem.Click += new System.EventHandler(this.StartNewProjectFromNowMenuItem_Click); // // NewFromCurrentSaveRamMenuItem // this.NewFromCurrentSaveRamMenuItem.Name = "NewFromCurrentSaveRamMenuItem"; - this.NewFromCurrentSaveRamMenuItem.Size = new System.Drawing.Size(159, 22); + this.NewFromCurrentSaveRamMenuItem.Size = new System.Drawing.Size(170, 22); this.NewFromCurrentSaveRamMenuItem.Text = "&Current SaveRam"; this.NewFromCurrentSaveRamMenuItem.Click += new System.EventHandler(this.StartANewProjectFromSaveRamMenuItem_Click); // @@ -273,7 +274,7 @@ namespace BizHawk.Client.EmuHawk // this.OpenTASMenuItem.Name = "OpenTASMenuItem"; this.OpenTASMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.OpenTASMenuItem.Size = new System.Drawing.Size(190, 22); + this.OpenTASMenuItem.Size = new System.Drawing.Size(201, 22); this.OpenTASMenuItem.Text = "&Open"; this.OpenTASMenuItem.Click += new System.EventHandler(this.OpenTasMenuItem_Click); // @@ -281,7 +282,7 @@ namespace BizHawk.Client.EmuHawk // this.SaveTASMenuItem.Name = "SaveTASMenuItem"; this.SaveTASMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); - this.SaveTASMenuItem.Size = new System.Drawing.Size(190, 22); + this.SaveTASMenuItem.Size = new System.Drawing.Size(201, 22); this.SaveTASMenuItem.Text = "&Save"; this.SaveTASMenuItem.Click += new System.EventHandler(this.SaveTasMenuItem_Click); // @@ -290,7 +291,7 @@ namespace BizHawk.Client.EmuHawk this.SaveAsTASMenuItem.Name = "SaveAsTASMenuItem"; this.SaveAsTASMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.S))); - this.SaveAsTASMenuItem.Size = new System.Drawing.Size(190, 22); + this.SaveAsTASMenuItem.Size = new System.Drawing.Size(201, 22); this.SaveAsTASMenuItem.Text = "Save As"; this.SaveAsTASMenuItem.Click += new System.EventHandler(this.SaveAsTasMenuItem_Click); // @@ -300,7 +301,7 @@ namespace BizHawk.Client.EmuHawk this.toolStripSeparator3}); this.RecentSubMenu.Image = ((System.Drawing.Image)(resources.GetObject("RecentSubMenu.Image"))); this.RecentSubMenu.Name = "RecentSubMenu"; - this.RecentSubMenu.Size = new System.Drawing.Size(190, 22); + this.RecentSubMenu.Size = new System.Drawing.Size(201, 22); this.RecentSubMenu.Text = "Recent"; this.RecentSubMenu.DropDownOpened += new System.EventHandler(this.RecentSubMenu_DropDownOpened); // @@ -312,19 +313,19 @@ namespace BizHawk.Client.EmuHawk // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(187, 6); + this.toolStripSeparator1.Size = new System.Drawing.Size(198, 6); // // saveSelectionToMacroToolStripMenuItem // this.saveSelectionToMacroToolStripMenuItem.Name = "saveSelectionToMacroToolStripMenuItem"; - this.saveSelectionToMacroToolStripMenuItem.Size = new System.Drawing.Size(190, 22); + this.saveSelectionToMacroToolStripMenuItem.Size = new System.Drawing.Size(201, 22); this.saveSelectionToMacroToolStripMenuItem.Text = "Save Selection to Macro"; this.saveSelectionToMacroToolStripMenuItem.Click += new System.EventHandler(this.saveSelectionToMacroToolStripMenuItem_Click); // // placeMacroAtSelectionToolStripMenuItem // this.placeMacroAtSelectionToolStripMenuItem.Name = "placeMacroAtSelectionToolStripMenuItem"; - this.placeMacroAtSelectionToolStripMenuItem.Size = new System.Drawing.Size(190, 22); + this.placeMacroAtSelectionToolStripMenuItem.Size = new System.Drawing.Size(201, 22); this.placeMacroAtSelectionToolStripMenuItem.Text = "Place Macro at Selection"; this.placeMacroAtSelectionToolStripMenuItem.Click += new System.EventHandler(this.placeMacroAtSelectionToolStripMenuItem_Click); // @@ -334,7 +335,7 @@ namespace BizHawk.Client.EmuHawk this.toolStripSeparator22}); this.recentMacrosToolStripMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; this.recentMacrosToolStripMenuItem.Name = "recentMacrosToolStripMenuItem"; - this.recentMacrosToolStripMenuItem.Size = new System.Drawing.Size(190, 22); + this.recentMacrosToolStripMenuItem.Size = new System.Drawing.Size(201, 22); this.recentMacrosToolStripMenuItem.Text = "Recent Macros"; this.recentMacrosToolStripMenuItem.DropDownOpened += new System.EventHandler(this.recentMacrosToolStripMenuItem_DropDownOpened); // @@ -346,25 +347,25 @@ namespace BizHawk.Client.EmuHawk // toolStripSeparator20 // this.toolStripSeparator20.Name = "toolStripSeparator20"; - this.toolStripSeparator20.Size = new System.Drawing.Size(187, 6); + this.toolStripSeparator20.Size = new System.Drawing.Size(198, 6); // // ToBk2MenuItem // this.ToBk2MenuItem.Name = "ToBk2MenuItem"; - this.ToBk2MenuItem.Size = new System.Drawing.Size(190, 22); + this.ToBk2MenuItem.Size = new System.Drawing.Size(201, 22); this.ToBk2MenuItem.Text = "&Export to Bk2"; this.ToBk2MenuItem.Click += new System.EventHandler(this.ToBk2MenuItem_Click); // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(187, 6); + this.toolStripSeparator2.Size = new System.Drawing.Size(198, 6); // // ExitMenuItem // this.ExitMenuItem.Name = "ExitMenuItem"; this.ExitMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.ExitMenuItem.Size = new System.Drawing.Size(190, 22); + this.ExitMenuItem.Size = new System.Drawing.Size(201, 22); this.ExitMenuItem.Text = "E&xit"; this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); // @@ -406,7 +407,7 @@ namespace BizHawk.Client.EmuHawk // this.UndoMenuItem.Name = "UndoMenuItem"; this.UndoMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z))); - this.UndoMenuItem.Size = new System.Drawing.Size(280, 22); + this.UndoMenuItem.Size = new System.Drawing.Size(291, 22); this.UndoMenuItem.Text = "&Undo"; this.UndoMenuItem.Click += new System.EventHandler(this.UndoMenuItem_Click); // @@ -415,14 +416,14 @@ namespace BizHawk.Client.EmuHawk this.RedoMenuItem.Enabled = false; this.RedoMenuItem.Name = "RedoMenuItem"; this.RedoMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y))); - this.RedoMenuItem.Size = new System.Drawing.Size(280, 22); + this.RedoMenuItem.Size = new System.Drawing.Size(291, 22); this.RedoMenuItem.Text = "&Redo"; this.RedoMenuItem.Click += new System.EventHandler(this.RedoMenuItem_Click); // // showUndoHistoryToolStripMenuItem // this.showUndoHistoryToolStripMenuItem.Name = "showUndoHistoryToolStripMenuItem"; - this.showUndoHistoryToolStripMenuItem.Size = new System.Drawing.Size(280, 22); + this.showUndoHistoryToolStripMenuItem.Size = new System.Drawing.Size(291, 22); this.showUndoHistoryToolStripMenuItem.Text = "Show Undo History"; this.showUndoHistoryToolStripMenuItem.Click += new System.EventHandler(this.showUndoHistoryToolStripMenuItem_Click); // @@ -431,7 +432,7 @@ namespace BizHawk.Client.EmuHawk this.SelectionUndoMenuItem.Enabled = false; this.SelectionUndoMenuItem.Name = "SelectionUndoMenuItem"; this.SelectionUndoMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Q))); - this.SelectionUndoMenuItem.Size = new System.Drawing.Size(280, 22); + this.SelectionUndoMenuItem.Size = new System.Drawing.Size(291, 22); this.SelectionUndoMenuItem.Text = "Selection Undo"; // // SelectionRedoMenuItem @@ -439,18 +440,18 @@ namespace BizHawk.Client.EmuHawk this.SelectionRedoMenuItem.Enabled = false; this.SelectionRedoMenuItem.Name = "SelectionRedoMenuItem"; this.SelectionRedoMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.W))); - this.SelectionRedoMenuItem.Size = new System.Drawing.Size(280, 22); + this.SelectionRedoMenuItem.Size = new System.Drawing.Size(291, 22); this.SelectionRedoMenuItem.Text = "Selection Redo"; // // toolStripSeparator5 // this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(277, 6); + this.toolStripSeparator5.Size = new System.Drawing.Size(288, 6); // // DeselectMenuItem // this.DeselectMenuItem.Name = "DeselectMenuItem"; - this.DeselectMenuItem.Size = new System.Drawing.Size(280, 22); + this.DeselectMenuItem.Size = new System.Drawing.Size(291, 22); this.DeselectMenuItem.Text = "Deselect"; this.DeselectMenuItem.Click += new System.EventHandler(this.DeselectMenuItem_Click); // @@ -458,7 +459,7 @@ namespace BizHawk.Client.EmuHawk // this.SelectBetweenMarkersMenuItem.Name = "SelectBetweenMarkersMenuItem"; this.SelectBetweenMarkersMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A))); - this.SelectBetweenMarkersMenuItem.Size = new System.Drawing.Size(280, 22); + this.SelectBetweenMarkersMenuItem.Size = new System.Drawing.Size(291, 22); this.SelectBetweenMarkersMenuItem.Text = "Select between Markers"; this.SelectBetweenMarkersMenuItem.Click += new System.EventHandler(this.SelectBetweenMarkersMenuItem_Click); // @@ -468,7 +469,7 @@ namespace BizHawk.Client.EmuHawk this.SelectAllMenuItem.ShortcutKeyDisplayString = ""; this.SelectAllMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.A))); - this.SelectAllMenuItem.Size = new System.Drawing.Size(280, 22); + this.SelectAllMenuItem.Size = new System.Drawing.Size(291, 22); this.SelectAllMenuItem.Text = "Select &All"; this.SelectAllMenuItem.Click += new System.EventHandler(this.SelectAllMenuItem_Click); // @@ -476,20 +477,20 @@ namespace BizHawk.Client.EmuHawk // this.ReselectClipboardMenuItem.Name = "ReselectClipboardMenuItem"; this.ReselectClipboardMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.B))); - this.ReselectClipboardMenuItem.Size = new System.Drawing.Size(280, 22); + this.ReselectClipboardMenuItem.Size = new System.Drawing.Size(291, 22); this.ReselectClipboardMenuItem.Text = "Reselect Clipboard"; this.ReselectClipboardMenuItem.Click += new System.EventHandler(this.ReselectClipboardMenuItem_Click); // // toolStripSeparator7 // this.toolStripSeparator7.Name = "toolStripSeparator7"; - this.toolStripSeparator7.Size = new System.Drawing.Size(277, 6); + this.toolStripSeparator7.Size = new System.Drawing.Size(288, 6); // // CopyMenuItem // this.CopyMenuItem.Name = "CopyMenuItem"; this.CopyMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C))); - this.CopyMenuItem.Size = new System.Drawing.Size(280, 22); + this.CopyMenuItem.Size = new System.Drawing.Size(291, 22); this.CopyMenuItem.Text = "Copy"; this.CopyMenuItem.Click += new System.EventHandler(this.CopyMenuItem_Click); // @@ -497,7 +498,7 @@ namespace BizHawk.Client.EmuHawk // this.PasteMenuItem.Name = "PasteMenuItem"; this.PasteMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V))); - this.PasteMenuItem.Size = new System.Drawing.Size(280, 22); + this.PasteMenuItem.Size = new System.Drawing.Size(291, 22); this.PasteMenuItem.Text = "&Paste"; this.PasteMenuItem.Click += new System.EventHandler(this.PasteMenuItem_Click); // @@ -506,7 +507,7 @@ namespace BizHawk.Client.EmuHawk this.PasteInsertMenuItem.Name = "PasteInsertMenuItem"; this.PasteInsertMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.V))); - this.PasteInsertMenuItem.Size = new System.Drawing.Size(280, 22); + this.PasteInsertMenuItem.Size = new System.Drawing.Size(291, 22); this.PasteInsertMenuItem.Text = "&Paste Insert"; this.PasteInsertMenuItem.Click += new System.EventHandler(this.PasteInsertMenuItem_Click); // @@ -514,21 +515,21 @@ namespace BizHawk.Client.EmuHawk // this.CutMenuItem.Name = "CutMenuItem"; this.CutMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X))); - this.CutMenuItem.Size = new System.Drawing.Size(280, 22); + this.CutMenuItem.Size = new System.Drawing.Size(291, 22); this.CutMenuItem.Text = "&Cut"; this.CutMenuItem.Click += new System.EventHandler(this.CutMenuItem_Click); // // toolStripSeparator8 // this.toolStripSeparator8.Name = "toolStripSeparator8"; - this.toolStripSeparator8.Size = new System.Drawing.Size(277, 6); + this.toolStripSeparator8.Size = new System.Drawing.Size(288, 6); // // ClearMenuItem // this.ClearMenuItem.Name = "ClearMenuItem"; this.ClearMenuItem.ShortcutKeyDisplayString = ""; this.ClearMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Delete; - this.ClearMenuItem.Size = new System.Drawing.Size(280, 22); + this.ClearMenuItem.Size = new System.Drawing.Size(291, 22); this.ClearMenuItem.Text = "Clear"; this.ClearMenuItem.Click += new System.EventHandler(this.ClearMenuItem_Click); // @@ -536,7 +537,7 @@ namespace BizHawk.Client.EmuHawk // this.InsertFrameMenuItem.Name = "InsertFrameMenuItem"; this.InsertFrameMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Insert; - this.InsertFrameMenuItem.Size = new System.Drawing.Size(280, 22); + this.InsertFrameMenuItem.Size = new System.Drawing.Size(291, 22); this.InsertFrameMenuItem.Text = "&Insert"; this.InsertFrameMenuItem.Click += new System.EventHandler(this.InsertFrameMenuItem_Click); // @@ -544,7 +545,7 @@ namespace BizHawk.Client.EmuHawk // this.DeleteFramesMenuItem.Name = "DeleteFramesMenuItem"; this.DeleteFramesMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Delete))); - this.DeleteFramesMenuItem.Size = new System.Drawing.Size(280, 22); + this.DeleteFramesMenuItem.Size = new System.Drawing.Size(291, 22); this.DeleteFramesMenuItem.Text = "&Delete"; this.DeleteFramesMenuItem.Click += new System.EventHandler(this.DeleteFramesMenuItem_Click); // @@ -552,7 +553,7 @@ namespace BizHawk.Client.EmuHawk // this.CloneMenuItem.Name = "CloneMenuItem"; this.CloneMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Insert))); - this.CloneMenuItem.Size = new System.Drawing.Size(280, 22); + this.CloneMenuItem.Size = new System.Drawing.Size(291, 22); this.CloneMenuItem.Text = "&Clone"; this.CloneMenuItem.Click += new System.EventHandler(this.CloneMenuItem_Click); // @@ -562,40 +563,40 @@ namespace BizHawk.Client.EmuHawk this.InsertNumFramesMenuItem.ShortcutKeyDisplayString = ""; this.InsertNumFramesMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.Insert))); - this.InsertNumFramesMenuItem.Size = new System.Drawing.Size(280, 22); + this.InsertNumFramesMenuItem.Size = new System.Drawing.Size(291, 22); this.InsertNumFramesMenuItem.Text = "Insert # of Frames"; this.InsertNumFramesMenuItem.Click += new System.EventHandler(this.InsertNumFramesMenuItem_Click); // // toolStripSeparator6 // this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(277, 6); + this.toolStripSeparator6.Size = new System.Drawing.Size(288, 6); // // TruncateMenuItem // this.TruncateMenuItem.Name = "TruncateMenuItem"; - this.TruncateMenuItem.Size = new System.Drawing.Size(280, 22); + this.TruncateMenuItem.Size = new System.Drawing.Size(291, 22); this.TruncateMenuItem.Text = "&Truncate Movie"; this.TruncateMenuItem.Click += new System.EventHandler(this.TruncateMenuItem_Click); // // ClearGreenzoneMenuItem // this.ClearGreenzoneMenuItem.Name = "ClearGreenzoneMenuItem"; - this.ClearGreenzoneMenuItem.Size = new System.Drawing.Size(280, 22); + this.ClearGreenzoneMenuItem.Size = new System.Drawing.Size(291, 22); this.ClearGreenzoneMenuItem.Text = "&Clear Savestate History"; this.ClearGreenzoneMenuItem.Click += new System.EventHandler(this.ClearGreenzoneMenuItem_Click); // // GreenzoneICheckSeparator // this.GreenzoneICheckSeparator.Name = "GreenzoneICheckSeparator"; - this.GreenzoneICheckSeparator.Size = new System.Drawing.Size(277, 6); + this.GreenzoneICheckSeparator.Size = new System.Drawing.Size(288, 6); // // StateHistoryIntegrityCheckMenuItem // this.StateHistoryIntegrityCheckMenuItem.Name = "StateHistoryIntegrityCheckMenuItem"; this.StateHistoryIntegrityCheckMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.I))); - this.StateHistoryIntegrityCheckMenuItem.Size = new System.Drawing.Size(280, 22); + this.StateHistoryIntegrityCheckMenuItem.Size = new System.Drawing.Size(291, 22); this.StateHistoryIntegrityCheckMenuItem.Text = "State History Integrity Check"; this.StateHistoryIntegrityCheckMenuItem.Click += new System.EventHandler(this.StateHistoryIntegrityCheckMenuItem_Click); // @@ -604,6 +605,7 @@ namespace BizHawk.Client.EmuHawk this.ConfigSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.SetMaxUndoLevelsMenuItem, this.SetBranchCellHoverIntervalMenuItem, + this.SetSeekingCutoffIntervalMenuItem, this.toolStripSeparator9, this.AutoadjustInputMenuItem, this.toolStripSeparator11, @@ -629,38 +631,45 @@ namespace BizHawk.Client.EmuHawk // SetMaxUndoLevelsMenuItem // this.SetMaxUndoLevelsMenuItem.Name = "SetMaxUndoLevelsMenuItem"; - this.SetMaxUndoLevelsMenuItem.Size = new System.Drawing.Size(242, 22); + this.SetMaxUndoLevelsMenuItem.Size = new System.Drawing.Size(253, 22); this.SetMaxUndoLevelsMenuItem.Text = "Set max Undo Levels"; this.SetMaxUndoLevelsMenuItem.Click += new System.EventHandler(this.SetMaxUndoLevelsMenuItem_Click); // // SetBranchCellHoverIntervalMenuItem // this.SetBranchCellHoverIntervalMenuItem.Name = "SetBranchCellHoverIntervalMenuItem"; - this.SetBranchCellHoverIntervalMenuItem.Size = new System.Drawing.Size(242, 22); + this.SetBranchCellHoverIntervalMenuItem.Size = new System.Drawing.Size(253, 22); this.SetBranchCellHoverIntervalMenuItem.Text = "Set Branch Cell Hover Interval"; this.SetBranchCellHoverIntervalMenuItem.Click += new System.EventHandler(this.SetBranchCellHoverIntervalMenuItem_Click); // + // SetSeekingCutoffIntervalMenuItem + // + this.SetSeekingCutoffIntervalMenuItem.Name = "SetSeekingCutoffIntervalMenuItem"; + this.SetSeekingCutoffIntervalMenuItem.Size = new System.Drawing.Size(253, 22); + this.SetSeekingCutoffIntervalMenuItem.Text = "Set Seeking Cutoff Interval"; + this.SetSeekingCutoffIntervalMenuItem.Click += new System.EventHandler(this.SetSeekingCutoffIntervalMenuItem_Click); + // // toolStripSeparator9 // this.toolStripSeparator9.Name = "toolStripSeparator9"; - this.toolStripSeparator9.Size = new System.Drawing.Size(239, 6); + this.toolStripSeparator9.Size = new System.Drawing.Size(250, 6); // // AutoadjustInputMenuItem // this.AutoadjustInputMenuItem.CheckOnClick = true; this.AutoadjustInputMenuItem.Name = "AutoadjustInputMenuItem"; - this.AutoadjustInputMenuItem.Size = new System.Drawing.Size(242, 22); + this.AutoadjustInputMenuItem.Size = new System.Drawing.Size(253, 22); this.AutoadjustInputMenuItem.Text = "Auto-adjust Input according to Lag"; // // toolStripSeparator11 // this.toolStripSeparator11.Name = "toolStripSeparator11"; - this.toolStripSeparator11.Size = new System.Drawing.Size(239, 6); + this.toolStripSeparator11.Size = new System.Drawing.Size(250, 6); // // DrawInputByDraggingMenuItem // this.DrawInputByDraggingMenuItem.Name = "DrawInputByDraggingMenuItem"; - this.DrawInputByDraggingMenuItem.Size = new System.Drawing.Size(242, 22); + this.DrawInputByDraggingMenuItem.Size = new System.Drawing.Size(253, 22); this.DrawInputByDraggingMenuItem.Text = "Draw Input by dragging"; this.DrawInputByDraggingMenuItem.Click += new System.EventHandler(this.DrawInputByDraggingMenuItem_Click); // @@ -668,7 +677,7 @@ namespace BizHawk.Client.EmuHawk // this.applyPatternToPaintedInputToolStripMenuItem.CheckOnClick = true; this.applyPatternToPaintedInputToolStripMenuItem.Name = "applyPatternToPaintedInputToolStripMenuItem"; - this.applyPatternToPaintedInputToolStripMenuItem.Size = new System.Drawing.Size(242, 22); + this.applyPatternToPaintedInputToolStripMenuItem.Size = new System.Drawing.Size(253, 22); this.applyPatternToPaintedInputToolStripMenuItem.Text = "Apply Pattern to painted input"; this.applyPatternToPaintedInputToolStripMenuItem.CheckedChanged += new System.EventHandler(this.applyPatternToPaintedInputToolStripMenuItem_CheckedChanged); // @@ -679,20 +688,20 @@ namespace BizHawk.Client.EmuHawk this.onlyOnAutoFireColumnsToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.onlyOnAutoFireColumnsToolStripMenuItem.Enabled = false; this.onlyOnAutoFireColumnsToolStripMenuItem.Name = "onlyOnAutoFireColumnsToolStripMenuItem"; - this.onlyOnAutoFireColumnsToolStripMenuItem.Size = new System.Drawing.Size(242, 22); + this.onlyOnAutoFireColumnsToolStripMenuItem.Size = new System.Drawing.Size(253, 22); this.onlyOnAutoFireColumnsToolStripMenuItem.Text = "Only on Auto-Fire columns"; // // UseInputKeysItem // this.UseInputKeysItem.Enabled = false; this.UseInputKeysItem.Name = "UseInputKeysItem"; - this.UseInputKeysItem.Size = new System.Drawing.Size(242, 22); + this.UseInputKeysItem.Size = new System.Drawing.Size(253, 22); this.UseInputKeysItem.Text = "Use Input keys for Column Set"; // // toolStripSeparator4 // this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(239, 6); + this.toolStripSeparator4.Size = new System.Drawing.Size(250, 6); // // BindMarkersToInputMenuItem // @@ -700,52 +709,52 @@ namespace BizHawk.Client.EmuHawk this.BindMarkersToInputMenuItem.CheckOnClick = true; this.BindMarkersToInputMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.BindMarkersToInputMenuItem.Name = "BindMarkersToInputMenuItem"; - this.BindMarkersToInputMenuItem.Size = new System.Drawing.Size(242, 22); + this.BindMarkersToInputMenuItem.Size = new System.Drawing.Size(253, 22); this.BindMarkersToInputMenuItem.Text = "Bind Markers to Input"; this.BindMarkersToInputMenuItem.Click += new System.EventHandler(this.BindMarkersToInputMenuItem_Click); // // EmptyNewMarkerNotesMenuItem // this.EmptyNewMarkerNotesMenuItem.Name = "EmptyNewMarkerNotesMenuItem"; - this.EmptyNewMarkerNotesMenuItem.Size = new System.Drawing.Size(242, 22); + this.EmptyNewMarkerNotesMenuItem.Size = new System.Drawing.Size(253, 22); this.EmptyNewMarkerNotesMenuItem.Text = "Empty new Marker Notes"; this.EmptyNewMarkerNotesMenuItem.Click += new System.EventHandler(this.EmptyNewMarkerNotesMenuItem_Click); // // toolStripSeparator13 // this.toolStripSeparator13.Name = "toolStripSeparator13"; - this.toolStripSeparator13.Size = new System.Drawing.Size(239, 6); + this.toolStripSeparator13.Size = new System.Drawing.Size(250, 6); // // BranchesRestoreEntireMovieMenuItem // this.BranchesRestoreEntireMovieMenuItem.Enabled = false; this.BranchesRestoreEntireMovieMenuItem.Name = "BranchesRestoreEntireMovieMenuItem"; - this.BranchesRestoreEntireMovieMenuItem.Size = new System.Drawing.Size(242, 22); + this.BranchesRestoreEntireMovieMenuItem.Size = new System.Drawing.Size(253, 22); this.BranchesRestoreEntireMovieMenuItem.Text = "Branches restore entire Movie"; // // OsdInBranchScreenshotsMenuItem // this.OsdInBranchScreenshotsMenuItem.Enabled = false; this.OsdInBranchScreenshotsMenuItem.Name = "OsdInBranchScreenshotsMenuItem"; - this.OsdInBranchScreenshotsMenuItem.Size = new System.Drawing.Size(242, 22); + this.OsdInBranchScreenshotsMenuItem.Size = new System.Drawing.Size(253, 22); this.OsdInBranchScreenshotsMenuItem.Text = "OSD in Branch screenshots"; // // toolStripSeparator14 // this.toolStripSeparator14.Name = "toolStripSeparator14"; - this.toolStripSeparator14.Size = new System.Drawing.Size(239, 6); + this.toolStripSeparator14.Size = new System.Drawing.Size(250, 6); // // AutopauseAtEndOfMovieMenuItem // this.AutopauseAtEndOfMovieMenuItem.Name = "AutopauseAtEndOfMovieMenuItem"; - this.AutopauseAtEndOfMovieMenuItem.Size = new System.Drawing.Size(242, 22); + this.AutopauseAtEndOfMovieMenuItem.Size = new System.Drawing.Size(253, 22); this.AutopauseAtEndOfMovieMenuItem.Text = "Autopause at end of Movie"; this.AutopauseAtEndOfMovieMenuItem.Click += new System.EventHandler(this.AutopauseAtEndMenuItem_Click); // // sepToolStripMenuItem // this.sepToolStripMenuItem.Name = "sepToolStripMenuItem"; - this.sepToolStripMenuItem.Size = new System.Drawing.Size(239, 6); + this.sepToolStripMenuItem.Size = new System.Drawing.Size(250, 6); // // autoHoldFireToolStripMenuItem // @@ -758,20 +767,20 @@ namespace BizHawk.Client.EmuHawk this.setpToolStripMenuItem, this.setCustomsToolStripMenuItem}); this.autoHoldFireToolStripMenuItem.Name = "autoHoldFireToolStripMenuItem"; - this.autoHoldFireToolStripMenuItem.Size = new System.Drawing.Size(242, 22); + this.autoHoldFireToolStripMenuItem.Size = new System.Drawing.Size(253, 22); this.autoHoldFireToolStripMenuItem.Text = "Auto Hold/Fire"; // // keepSetPatternsToolStripMenuItem // this.keepSetPatternsToolStripMenuItem.CheckOnClick = true; this.keepSetPatternsToolStripMenuItem.Name = "keepSetPatternsToolStripMenuItem"; - this.keepSetPatternsToolStripMenuItem.Size = new System.Drawing.Size(160, 22); + this.keepSetPatternsToolStripMenuItem.Size = new System.Drawing.Size(171, 22); this.keepSetPatternsToolStripMenuItem.Text = "Keep set patterns"; // // sepToolStripMenuItem1 // this.sepToolStripMenuItem1.Name = "sepToolStripMenuItem1"; - this.sepToolStripMenuItem1.Size = new System.Drawing.Size(157, 6); + this.sepToolStripMenuItem1.Size = new System.Drawing.Size(168, 6); // // autoHoldToolStripMenuItem // @@ -779,7 +788,7 @@ namespace BizHawk.Client.EmuHawk this.autoHoldToolStripMenuItem.CheckOnClick = true; this.autoHoldToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.autoHoldToolStripMenuItem.Name = "autoHoldToolStripMenuItem"; - this.autoHoldToolStripMenuItem.Size = new System.Drawing.Size(160, 22); + this.autoHoldToolStripMenuItem.Size = new System.Drawing.Size(171, 22); this.autoHoldToolStripMenuItem.Text = "Auto-Hold"; this.autoHoldToolStripMenuItem.CheckedChanged += new System.EventHandler(this.autoHoldToolStripMenuItem_CheckedChanged); // @@ -787,7 +796,7 @@ namespace BizHawk.Client.EmuHawk // this.autoFireToolStripMenuItem.CheckOnClick = true; this.autoFireToolStripMenuItem.Name = "autoFireToolStripMenuItem"; - this.autoFireToolStripMenuItem.Size = new System.Drawing.Size(160, 22); + this.autoFireToolStripMenuItem.Size = new System.Drawing.Size(171, 22); this.autoFireToolStripMenuItem.Text = "Auto-Fire"; this.autoFireToolStripMenuItem.CheckedChanged += new System.EventHandler(this.autoFireToolStripMenuItem_CheckedChanged); // @@ -795,19 +804,19 @@ namespace BizHawk.Client.EmuHawk // this.customPatternToolStripMenuItem.CheckOnClick = true; this.customPatternToolStripMenuItem.Name = "customPatternToolStripMenuItem"; - this.customPatternToolStripMenuItem.Size = new System.Drawing.Size(160, 22); + this.customPatternToolStripMenuItem.Size = new System.Drawing.Size(171, 22); this.customPatternToolStripMenuItem.Text = "Custom Pattern"; this.customPatternToolStripMenuItem.CheckedChanged += new System.EventHandler(this.customPatternToolStripMenuItem_CheckedChanged); // // setpToolStripMenuItem // this.setpToolStripMenuItem.Name = "setpToolStripMenuItem"; - this.setpToolStripMenuItem.Size = new System.Drawing.Size(157, 6); + this.setpToolStripMenuItem.Size = new System.Drawing.Size(168, 6); // // setCustomsToolStripMenuItem // this.setCustomsToolStripMenuItem.Name = "setCustomsToolStripMenuItem"; - this.setCustomsToolStripMenuItem.Size = new System.Drawing.Size(160, 22); + this.setCustomsToolStripMenuItem.Size = new System.Drawing.Size(171, 22); this.setCustomsToolStripMenuItem.Text = "Set Customs..."; this.setCustomsToolStripMenuItem.Click += new System.EventHandler(this.setCustomsToolStripMenuItem_Click); // @@ -827,40 +836,40 @@ namespace BizHawk.Client.EmuHawk // HeaderMenuItem // this.HeaderMenuItem.Name = "HeaderMenuItem"; - this.HeaderMenuItem.Size = new System.Drawing.Size(229, 22); + this.HeaderMenuItem.Size = new System.Drawing.Size(240, 22); this.HeaderMenuItem.Text = "&Header..."; this.HeaderMenuItem.Click += new System.EventHandler(this.HeaderMenuItem_Click); // // StateHistorySettingsMenuItem // this.StateHistorySettingsMenuItem.Name = "StateHistorySettingsMenuItem"; - this.StateHistorySettingsMenuItem.Size = new System.Drawing.Size(229, 22); + this.StateHistorySettingsMenuItem.Size = new System.Drawing.Size(240, 22); this.StateHistorySettingsMenuItem.Text = "&Savestate History Settings..."; this.StateHistorySettingsMenuItem.Click += new System.EventHandler(this.StateHistorySettingsMenuItem_Click); // // CommentsMenuItem // this.CommentsMenuItem.Name = "CommentsMenuItem"; - this.CommentsMenuItem.Size = new System.Drawing.Size(229, 22); + this.CommentsMenuItem.Size = new System.Drawing.Size(240, 22); this.CommentsMenuItem.Text = "&Comments..."; this.CommentsMenuItem.Click += new System.EventHandler(this.CommentsMenuItem_Click); // // SubtitlesMenuItem // this.SubtitlesMenuItem.Name = "SubtitlesMenuItem"; - this.SubtitlesMenuItem.Size = new System.Drawing.Size(229, 22); + this.SubtitlesMenuItem.Size = new System.Drawing.Size(240, 22); this.SubtitlesMenuItem.Text = "&Subtitles..."; this.SubtitlesMenuItem.Click += new System.EventHandler(this.SubtitlesMenuItem_Click); // // toolStripSeparator21 // this.toolStripSeparator21.Name = "toolStripSeparator21"; - this.toolStripSeparator21.Size = new System.Drawing.Size(226, 6); + this.toolStripSeparator21.Size = new System.Drawing.Size(237, 6); // // DefaultStateSettingsMenuItem // this.DefaultStateSettingsMenuItem.Name = "DefaultStateSettingsMenuItem"; - this.DefaultStateSettingsMenuItem.Size = new System.Drawing.Size(229, 22); + this.DefaultStateSettingsMenuItem.Size = new System.Drawing.Size(240, 22); this.DefaultStateSettingsMenuItem.Text = "&Default State History Settings..."; this.DefaultStateSettingsMenuItem.Click += new System.EventHandler(this.DefaultStateSettingsMenuItem_Click); // @@ -882,7 +891,7 @@ namespace BizHawk.Client.EmuHawk // RotateMenuItem // this.RotateMenuItem.Name = "RotateMenuItem"; - this.RotateMenuItem.Size = new System.Drawing.Size(177, 22); + this.RotateMenuItem.Size = new System.Drawing.Size(188, 22); this.RotateMenuItem.Text = "Rotate"; this.RotateMenuItem.Click += new System.EventHandler(this.RotateMenuItem_Click); // @@ -896,7 +905,7 @@ namespace BizHawk.Client.EmuHawk this.toolStripSeparator12, this.hideWasLagFramesToolStripMenuItem}); this.HideLagFramesSubMenu.Name = "HideLagFramesSubMenu"; - this.HideLagFramesSubMenu.Size = new System.Drawing.Size(177, 22); + this.HideLagFramesSubMenu.Size = new System.Drawing.Size(188, 22); this.HideLagFramesSubMenu.Text = "Hide Lag Frames"; this.HideLagFramesSubMenu.DropDownOpened += new System.EventHandler(this.HideLagFramesSubMenu_DropDownOpened); // @@ -906,7 +915,7 @@ namespace BizHawk.Client.EmuHawk this.HideLagFrames0.CheckOnClick = true; this.HideLagFrames0.CheckState = System.Windows.Forms.CheckState.Checked; this.HideLagFrames0.Name = "HideLagFrames0"; - this.HideLagFrames0.Size = new System.Drawing.Size(174, 22); + this.HideLagFrames0.Size = new System.Drawing.Size(185, 22); this.HideLagFrames0.Tag = 0; this.HideLagFrames0.Text = "Don\'t Hide"; this.HideLagFrames0.Click += new System.EventHandler(this.HideLagFramesX_Click); @@ -915,7 +924,7 @@ namespace BizHawk.Client.EmuHawk // this.HideLagFrames1.CheckOnClick = true; this.HideLagFrames1.Name = "HideLagFrames1"; - this.HideLagFrames1.Size = new System.Drawing.Size(174, 22); + this.HideLagFrames1.Size = new System.Drawing.Size(185, 22); this.HideLagFrames1.Tag = 1; this.HideLagFrames1.Text = "1 (30 fps)"; this.HideLagFrames1.Click += new System.EventHandler(this.HideLagFramesX_Click); @@ -923,7 +932,7 @@ namespace BizHawk.Client.EmuHawk // HideLagFrames2 // this.HideLagFrames2.Name = "HideLagFrames2"; - this.HideLagFrames2.Size = new System.Drawing.Size(174, 22); + this.HideLagFrames2.Size = new System.Drawing.Size(185, 22); this.HideLagFrames2.Tag = 2; this.HideLagFrames2.Text = "2 (20 fps)"; this.HideLagFrames2.Click += new System.EventHandler(this.HideLagFramesX_Click); @@ -932,7 +941,7 @@ namespace BizHawk.Client.EmuHawk // this.HideLagFrames3.CheckOnClick = true; this.HideLagFrames3.Name = "HideLagFrames3"; - this.HideLagFrames3.Size = new System.Drawing.Size(174, 22); + this.HideLagFrames3.Size = new System.Drawing.Size(185, 22); this.HideLagFrames3.Tag = 3; this.HideLagFrames3.Text = "3 (15fps)"; this.HideLagFrames3.Click += new System.EventHandler(this.HideLagFramesX_Click); @@ -940,13 +949,13 @@ namespace BizHawk.Client.EmuHawk // toolStripSeparator12 // this.toolStripSeparator12.Name = "toolStripSeparator12"; - this.toolStripSeparator12.Size = new System.Drawing.Size(171, 6); + this.toolStripSeparator12.Size = new System.Drawing.Size(182, 6); // // hideWasLagFramesToolStripMenuItem // this.hideWasLagFramesToolStripMenuItem.CheckOnClick = true; this.hideWasLagFramesToolStripMenuItem.Name = "hideWasLagFramesToolStripMenuItem"; - this.hideWasLagFramesToolStripMenuItem.Size = new System.Drawing.Size(174, 22); + this.hideWasLagFramesToolStripMenuItem.Size = new System.Drawing.Size(185, 22); this.hideWasLagFramesToolStripMenuItem.Text = "Hide WasLag Frames"; this.hideWasLagFramesToolStripMenuItem.Click += new System.EventHandler(this.hideWasLagFramesToolStripMenuItem_Click); // @@ -958,7 +967,7 @@ namespace BizHawk.Client.EmuHawk this.denoteMarkersWithIconsToolStripMenuItem, this.denoteMarkersWithBGColorToolStripMenuItem}); this.iconsToolStripMenuItem.Name = "iconsToolStripMenuItem"; - this.iconsToolStripMenuItem.Size = new System.Drawing.Size(177, 22); + this.iconsToolStripMenuItem.Size = new System.Drawing.Size(188, 22); this.iconsToolStripMenuItem.Text = "Icons"; this.iconsToolStripMenuItem.DropDownOpened += new System.EventHandler(this.iconsToolStripMenuItem_DropDownOpened); // @@ -966,7 +975,7 @@ namespace BizHawk.Client.EmuHawk // this.denoteStatesWithIconsToolStripMenuItem.CheckOnClick = true; this.denoteStatesWithIconsToolStripMenuItem.Name = "denoteStatesWithIconsToolStripMenuItem"; - this.denoteStatesWithIconsToolStripMenuItem.Size = new System.Drawing.Size(219, 22); + this.denoteStatesWithIconsToolStripMenuItem.Size = new System.Drawing.Size(230, 22); this.denoteStatesWithIconsToolStripMenuItem.Text = "Denote States With Icons"; this.denoteStatesWithIconsToolStripMenuItem.Click += new System.EventHandler(this.denoteStatesWithIconsToolStripMenuItem_Click); // @@ -974,7 +983,7 @@ namespace BizHawk.Client.EmuHawk // this.denoteStatesWithBGColorToolStripMenuItem.CheckOnClick = true; this.denoteStatesWithBGColorToolStripMenuItem.Name = "denoteStatesWithBGColorToolStripMenuItem"; - this.denoteStatesWithBGColorToolStripMenuItem.Size = new System.Drawing.Size(219, 22); + this.denoteStatesWithBGColorToolStripMenuItem.Size = new System.Drawing.Size(230, 22); this.denoteStatesWithBGColorToolStripMenuItem.Text = "Denote States With BG Color"; this.denoteStatesWithBGColorToolStripMenuItem.Click += new System.EventHandler(this.denoteStatesWithBGColorToolStripMenuItem_Click); // @@ -982,7 +991,7 @@ namespace BizHawk.Client.EmuHawk // this.denoteMarkersWithIconsToolStripMenuItem.CheckOnClick = true; this.denoteMarkersWithIconsToolStripMenuItem.Name = "denoteMarkersWithIconsToolStripMenuItem"; - this.denoteMarkersWithIconsToolStripMenuItem.Size = new System.Drawing.Size(219, 22); + this.denoteMarkersWithIconsToolStripMenuItem.Size = new System.Drawing.Size(230, 22); this.denoteMarkersWithIconsToolStripMenuItem.Text = "Denote Markers With Icons"; this.denoteMarkersWithIconsToolStripMenuItem.Click += new System.EventHandler(this.denoteMarkersWithIconsToolStripMenuItem_Click); // @@ -990,14 +999,14 @@ namespace BizHawk.Client.EmuHawk // this.denoteMarkersWithBGColorToolStripMenuItem.CheckOnClick = true; this.denoteMarkersWithBGColorToolStripMenuItem.Name = "denoteMarkersWithBGColorToolStripMenuItem"; - this.denoteMarkersWithBGColorToolStripMenuItem.Size = new System.Drawing.Size(219, 22); + this.denoteMarkersWithBGColorToolStripMenuItem.Size = new System.Drawing.Size(230, 22); this.denoteMarkersWithBGColorToolStripMenuItem.Text = "Denote Markers With BG Color"; this.denoteMarkersWithBGColorToolStripMenuItem.Click += new System.EventHandler(this.denoteMarkersWithBGColorToolStripMenuItem_Click); // // toolStripSeparator23 // this.toolStripSeparator23.Name = "toolStripSeparator23"; - this.toolStripSeparator23.Size = new System.Drawing.Size(174, 6); + this.toolStripSeparator23.Size = new System.Drawing.Size(185, 6); // // followCursorToolStripMenuItem // @@ -1009,7 +1018,7 @@ namespace BizHawk.Client.EmuHawk this.scrollToBottomToolStripMenuItem, this.scrollToCenterToolStripMenuItem}); this.followCursorToolStripMenuItem.Name = "followCursorToolStripMenuItem"; - this.followCursorToolStripMenuItem.Size = new System.Drawing.Size(177, 22); + this.followCursorToolStripMenuItem.Size = new System.Drawing.Size(188, 22); this.followCursorToolStripMenuItem.Text = "Follow Cursor"; this.followCursorToolStripMenuItem.DropDownOpened += new System.EventHandler(this.followCursorToolStripMenuItem_DropDownOpened); // @@ -1017,14 +1026,14 @@ namespace BizHawk.Client.EmuHawk // this.alwaysScrollToolStripMenuItem.CheckOnClick = true; this.alwaysScrollToolStripMenuItem.Name = "alwaysScrollToolStripMenuItem"; - this.alwaysScrollToolStripMenuItem.Size = new System.Drawing.Size(149, 22); + this.alwaysScrollToolStripMenuItem.Size = new System.Drawing.Size(160, 22); this.alwaysScrollToolStripMenuItem.Text = "Always Scroll"; this.alwaysScrollToolStripMenuItem.Click += new System.EventHandler(this.alwaysScrollToolStripMenuItem_Click); // // toolStripSeparator24 // this.toolStripSeparator24.Name = "toolStripSeparator24"; - this.toolStripSeparator24.Size = new System.Drawing.Size(146, 6); + this.toolStripSeparator24.Size = new System.Drawing.Size(157, 6); // // scrollToViewToolStripMenuItem // @@ -1032,7 +1041,7 @@ namespace BizHawk.Client.EmuHawk this.scrollToViewToolStripMenuItem.CheckOnClick = true; this.scrollToViewToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.scrollToViewToolStripMenuItem.Name = "scrollToViewToolStripMenuItem"; - this.scrollToViewToolStripMenuItem.Size = new System.Drawing.Size(149, 22); + this.scrollToViewToolStripMenuItem.Size = new System.Drawing.Size(160, 22); this.scrollToViewToolStripMenuItem.Text = "Scroll to View"; this.scrollToViewToolStripMenuItem.Click += new System.EventHandler(this.scrollToViewToolStripMenuItem_Click); // @@ -1040,7 +1049,7 @@ namespace BizHawk.Client.EmuHawk // this.scrollToTopToolStripMenuItem.CheckOnClick = true; this.scrollToTopToolStripMenuItem.Name = "scrollToTopToolStripMenuItem"; - this.scrollToTopToolStripMenuItem.Size = new System.Drawing.Size(149, 22); + this.scrollToTopToolStripMenuItem.Size = new System.Drawing.Size(160, 22); this.scrollToTopToolStripMenuItem.Text = "Scroll to Top"; this.scrollToTopToolStripMenuItem.Click += new System.EventHandler(this.scrollToTopToolStripMenuItem_Click); // @@ -1048,7 +1057,7 @@ namespace BizHawk.Client.EmuHawk // this.scrollToBottomToolStripMenuItem.CheckOnClick = true; this.scrollToBottomToolStripMenuItem.Name = "scrollToBottomToolStripMenuItem"; - this.scrollToBottomToolStripMenuItem.Size = new System.Drawing.Size(149, 22); + this.scrollToBottomToolStripMenuItem.Size = new System.Drawing.Size(160, 22); this.scrollToBottomToolStripMenuItem.Text = "Scroll to Bottom"; this.scrollToBottomToolStripMenuItem.Click += new System.EventHandler(this.scrollToBottomToolStripMenuItem_Click); // @@ -1056,19 +1065,19 @@ namespace BizHawk.Client.EmuHawk // this.scrollToCenterToolStripMenuItem.CheckOnClick = true; this.scrollToCenterToolStripMenuItem.Name = "scrollToCenterToolStripMenuItem"; - this.scrollToCenterToolStripMenuItem.Size = new System.Drawing.Size(149, 22); + this.scrollToCenterToolStripMenuItem.Size = new System.Drawing.Size(160, 22); this.scrollToCenterToolStripMenuItem.Text = "Scroll to Center"; this.scrollToCenterToolStripMenuItem.Click += new System.EventHandler(this.scrollToCenterToolStripMenuItem_Click); // // toolStripSeparator25 // this.toolStripSeparator25.Name = "toolStripSeparator25"; - this.toolStripSeparator25.Size = new System.Drawing.Size(174, 6); + this.toolStripSeparator25.Size = new System.Drawing.Size(185, 6); // // wheelScrollSpeedToolStripMenuItem // this.wheelScrollSpeedToolStripMenuItem.Name = "wheelScrollSpeedToolStripMenuItem"; - this.wheelScrollSpeedToolStripMenuItem.Size = new System.Drawing.Size(177, 22); + this.wheelScrollSpeedToolStripMenuItem.Size = new System.Drawing.Size(188, 22); this.wheelScrollSpeedToolStripMenuItem.Text = "Wheel Scroll Speed..."; this.wheelScrollSpeedToolStripMenuItem.Click += new System.EventHandler(this.wheelScrollSpeedToolStripMenuItem_Click); // @@ -1099,19 +1108,19 @@ namespace BizHawk.Client.EmuHawk // this.EnableTooltipsMenuItem.Enabled = false; this.EnableTooltipsMenuItem.Name = "EnableTooltipsMenuItem"; - this.EnableTooltipsMenuItem.Size = new System.Drawing.Size(146, 22); + this.EnableTooltipsMenuItem.Size = new System.Drawing.Size(157, 22); this.EnableTooltipsMenuItem.Text = "&Enable Tooltips"; // // toolStripSeparator10 // this.toolStripSeparator10.Name = "toolStripSeparator10"; - this.toolStripSeparator10.Size = new System.Drawing.Size(143, 6); + this.toolStripSeparator10.Size = new System.Drawing.Size(154, 6); // // aboutToolStripMenuItem // this.aboutToolStripMenuItem.Enabled = false; this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; - this.aboutToolStripMenuItem.Size = new System.Drawing.Size(146, 22); + this.aboutToolStripMenuItem.Size = new System.Drawing.Size(157, 22); this.aboutToolStripMenuItem.Text = "&About"; // // TasView @@ -1691,5 +1700,6 @@ namespace BizHawk.Client.EmuHawk private System.Windows.Forms.ToolStripMenuItem NewFromCurrentSaveRamMenuItem; private System.Windows.Forms.ToolStripMenuItem SetBranchCellHoverIntervalMenuItem; private System.Windows.Forms.ToolStripMenuItem SetMarkerWithTextContextMenuItem; + private System.Windows.Forms.ToolStripMenuItem SetSeekingCutoffIntervalMenuItem; } } \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index b9cd757df2..779e93e187 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -71,14 +71,13 @@ namespace BizHawk.Client.EmuHawk _seekStartFrame = Emulator.Frame; GlobalWin.MainForm.PauseOnFrame = frame.Value; int? diff = GlobalWin.MainForm.PauseOnFrame - _seekStartFrame; - int seekCutoff = 2; // todo if (pause) GlobalWin.MainForm.PauseEmulator(); else GlobalWin.MainForm.UnpauseEmulator(); - if (!_seekBackgroundWorker.IsBusy && diff.Value > seekCutoff) + if (!_seekBackgroundWorker.IsBusy && diff.Value > TasView.SeekingCutoffInterval) _seekBackgroundWorker.RunWorkerAsync(); } diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs index de81acd338..ee409d3d6d 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs @@ -695,6 +695,28 @@ namespace BizHawk.Client.EmuHawk } } + private void SetSeekingCutoffIntervalMenuItem_Click(object sender, EventArgs e) + { + using (var prompt = new InputPrompt + { + TextInputType = InputPrompt.InputType.Unsigned, + Message = "Seeking Cutoff Interval", + InitialValue = Settings.SeekingCutoffInterval.ToString() + }) + { + DialogResult result = prompt.ShowDialog(); + if (result == DialogResult.OK) + { + int val = int.Parse(prompt.PromptText); + if (val > 0) + { + Settings.SeekingCutoffInterval = val; + TasView.SeekingCutoffInterval = val; + } + } + } + } + private void ConfigSubMenu_DropDownOpened(object sender, EventArgs e) { DrawInputByDraggingMenuItem.Checked = Settings.DrawInput; diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs index cc6567755c..e15827b30c 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.cs @@ -65,6 +65,7 @@ namespace BizHawk.Client.EmuHawk FollowCursorAlwaysScroll = false; FollowCursorScrollMethod = "near"; BranchCellHoverInterval = 1; + SeekingCutoffInterval = 2; // default to taseditor fashion denoteStatesWithIcons = false; denoteStatesWithBGColor = true; @@ -82,6 +83,7 @@ namespace BizHawk.Client.EmuHawk public bool FollowCursorAlwaysScroll { get; set; } public string FollowCursorScrollMethod { get; set; } public int BranchCellHoverInterval { get; set; } + public int SeekingCutoffInterval { get; set; } public bool denoteStatesWithIcons { get; set; } public bool denoteStatesWithBGColor { get; set; } @@ -260,6 +262,7 @@ namespace BizHawk.Client.EmuHawk TasView.ScrollSpeed = Settings.ScrollSpeed; TasView.AlwaysScroll = Settings.FollowCursorAlwaysScroll; TasView.ScrollMethod = Settings.FollowCursorScrollMethod; + TasView.SeekingCutoffInterval = Settings.SeekingCutoffInterval; BookMarkControl.HoverInterval = Settings.BranchCellHoverInterval; TasView.denoteStatesWithIcons = Settings.denoteStatesWithIcons; diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.resx b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.resx index 37beccf209..15d4726218 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.resx +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.resx @@ -124,18 +124,18 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALCQAA - CwkBEvpHPgAAAk1JREFUOE+VkktvUlEUhVsfsdHoREcOHJr4C/RPONHoXzBxoOlAJybOlAZtkdSa2piY - NsjjFiiX8qY8ChYL+ECB2lKB8rq0k5bEmiiRbtc+6b2B6MTBR/ZZa+919j3tEBH9RbudHD6E63/2qAwc - treT58BVRVnWl8vBbLEg7wNC/QPaMrwb4GT/jFa024mzQLe56c9GwjM7klXXlcw6ksyPSbLoKByc/lUq - +TbQMwrODARAGAF3SxtexSMbf8vOCVp9ZyK+/euaW9TO+SfksOlprSjvoteAjU5rAYqSuFyvR1PR8Ewv - GJii8rcAoYFSb+d4gDAgNI/8jGTHOFUroT3410QAHuk4Am4Vi/KOzz2JGxfFcLMZI3wK5T7ZqaXEhcYb - WU2PKJM2H7Ra8XE14AQO91dTpk4k9JLq9YgYHghoxcWZPa/bSCH/C2o0orPaBo1GbDQee9VJxF+zoYFP - wtpGWgpN0/uMRWgcyiG1WsSkBhxFwG0E7AV8z2lrKyxuYvgBs2kLr4z1XcLj4SA2gD+nBhxB8p1sxtKZ - t4xR/otTDNdqS1oQw7ezx2/AfxVok1oAmh+WSt7v/MKLLgOtr3tEQD+sseeyPyX0dqHdVAOGq9XQPazX - /JyzH9itY+SQ9LSSnKV8fkHANWvsoYc/JYaZERHAPzicBw9AoZBf+BnwTZEN/4G2N4egZg1eDz05cIHn - tACmUgmeAtdhRsvlwH6x6Dr4+EESoO5B68JLo+eSOjMQwKDpGLgCJtDoBysgBXzQDOBifz8zcPh/aOgP - 7nYTiVA2JaoAAAAASUVORK5CYII= + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALBwAA + CwcBtnMLwAAAAllJREFUOE+VU8tuUlEUFR+x0ehEB40DhyZ+gQ78BSca/QUTB5oOdGLiTGnQFkmtqY2J + aYO8CpRLeVMehRYL+ECB2lKB8qYTS2JNlAjbtU96b2h1IskiZ6+19jr7HA4qIjp08NNuL6v2OCEOD1/5 + y6MQHCCj3Y6fBa42m0uaYtGfzuekXYCw/gFuCdoN4MRgj9LcasXOAOrNTW86FJzetpjUXYtBTRbDY7IY + 1RT0T/0qFDwb8IwAp+UQEQBiCLhb2HA3XZLut2Qfp9W3euLdv6w5xdo+94RsZg2t5aVv8Gox0SlxfP5q + NmOXqtVwIhyc7vl9k1T86iMYKLE8yw2EBsG5pGck2caoXArsQL8mAlqt+DEE3MrnpW2PcwI7Lojmej1C + OAplPlqp0YwKjicy6R9RKmnoNxrRMTngOIr7qwl9JxR4SdVqSDTvC2hERc2a26mjgPcF1WrhGWWCWi0y + Eo286sSir1lQgCNhbB0tBqboXcooeJ6KQyqVkF4OOIKA2wjY8Xme09ZWUOzE4AtMJ408MsZ3CI2b/ZgA + +qwccBjJd9IpY2fOOErZz3bRXKksKkFc8+6s8R3wrwJuQgmA+WGh4P7ON7zg0NL6uksEDII51hzWpwRv + F9pNOUBVLgfuYbz6p4y1bzWNks2ioZX4DGWz8wK8Zo41ePgoEfQMKe8AxTngAZDLZed/+jyTZMYLNL/Z + A9bMQevBkwHO73uJXJRK/pPAdYjhYtG3m887+h/eWwSw7oHrQkvCc/Gf/wUmYToKXAbGYfQCK0AC8IDT + AhcGm5UjHCT/p/4DPvHsVpirf9UAAAAASUVORK5CYII= From 3c779a897b121b299f5401e896712a37a4eb6bd4 Mon Sep 17 00:00:00 2001 From: feos Date: Wed, 27 Jan 2016 16:41:41 +0300 Subject: [PATCH 099/106] lua: emu.setislagged() --- BizHawk.Client.Common/lua/EmuLuaLibrary.Emu.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/BizHawk.Client.Common/lua/EmuLuaLibrary.Emu.cs b/BizHawk.Client.Common/lua/EmuLuaLibrary.Emu.cs index 6aa64e4dc9..8aa78ed661 100644 --- a/BizHawk.Client.Common/lua/EmuLuaLibrary.Emu.cs +++ b/BizHawk.Client.Common/lua/EmuLuaLibrary.Emu.cs @@ -174,6 +174,22 @@ namespace BizHawk.Client.Common } } + [LuaMethodAttributes( + "setislagged", + "marks the current frame as a lag frame" + )] + public void SetIsLagged(bool value = true) + { + if (InputPollableCore != null) + { + InputPollableCore.IsLagFrame = value; + } + else + { + Log(string.Format("Can not set lag information, {0} does not implement IInputPollable", Emulator.Attributes().CoreName)); + } + } + [LuaMethodAttributes( "lagcount", "Returns the current lag count" From 7421bd7244a4895f6f74254f5cc7891232fc3cf8 Mon Sep 17 00:00:00 2001 From: feos Date: Wed, 27 Jan 2016 17:06:22 +0300 Subject: [PATCH 100/106] lua docs derp --- BizHawk.Client.Common/lua/EmuLuaLibrary.Emu.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BizHawk.Client.Common/lua/EmuLuaLibrary.Emu.cs b/BizHawk.Client.Common/lua/EmuLuaLibrary.Emu.cs index 8aa78ed661..93f55f608f 100644 --- a/BizHawk.Client.Common/lua/EmuLuaLibrary.Emu.cs +++ b/BizHawk.Client.Common/lua/EmuLuaLibrary.Emu.cs @@ -159,7 +159,7 @@ namespace BizHawk.Client.Common [LuaMethodAttributes( "islagged", - "returns whether or not the current frame is a lag frame" + "Returns whether or not the current frame is a lag frame" )] public bool IsLagged() { @@ -176,7 +176,7 @@ namespace BizHawk.Client.Common [LuaMethodAttributes( "setislagged", - "marks the current frame as a lag frame" + "Sets the lag flag for the current frame. If no value is provided, it will default to true" )] public void SetIsLagged(bool value = true) { From 099df32224111b3569a943f2f897ecf3f3e588b6 Mon Sep 17 00:00:00 2001 From: feos Date: Wed, 27 Jan 2016 19:07:26 +0300 Subject: [PATCH 101/106] ability to save/load specific config files --- BizHawk.Client.EmuHawk/MainForm.Designer.cs | 678 ++++++++------- BizHawk.Client.EmuHawk/MainForm.Events.cs | 37 + BizHawk.Client.EmuHawk/MainForm.cs | 7 +- BizHawk.Client.EmuHawk/MainForm.resx | 911 ++++++++++---------- 4 files changed, 851 insertions(+), 782 deletions(-) diff --git a/BizHawk.Client.EmuHawk/MainForm.Designer.cs b/BizHawk.Client.EmuHawk/MainForm.Designer.cs index 472d906507..5cf4346cd1 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Designer.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Designer.cs @@ -191,6 +191,7 @@ this.setLibretroCoreToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator(); this.SaveConfigMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.SaveConfigAsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.LoadConfigMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ToolsSubMenu = new System.Windows.Forms.ToolStripMenuItem(); this.ToolBoxMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -413,6 +414,7 @@ this.ShowMenuContextMenuSeparator = new System.Windows.Forms.ToolStripSeparator(); this.ShowMenuContextMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.timerMouseIdle = new System.Windows.Forms.Timer(this.components); + this.LoadConfigFromMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.MainformMenu.SuspendLayout(); this.MainStatusBar.SuspendLayout(); this.MainFormContextMenu.SuspendLayout(); @@ -448,7 +450,7 @@ this.MainformMenu.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow; this.MainformMenu.Location = new System.Drawing.Point(0, 0); this.MainformMenu.Name = "MainformMenu"; - this.MainformMenu.Size = new System.Drawing.Size(470, 61); + this.MainformMenu.Size = new System.Drawing.Size(470, 57); this.MainformMenu.TabIndex = 0; this.MainformMenu.Text = "menuStrip1"; this.MainformMenu.MenuActivate += new System.EventHandler(this.MainformMenu_MenuActivate); @@ -474,7 +476,7 @@ this.toolStripSeparator4, this.ExitMenuItem}); this.FileSubMenu.Name = "FileSubMenu"; - this.FileSubMenu.Size = new System.Drawing.Size(37, 19); + this.FileSubMenu.Size = new System.Drawing.Size(35, 17); this.FileSubMenu.Text = "&File"; this.FileSubMenu.DropDownOpened += new System.EventHandler(this.FileSubMenu_DropDownOpened); // @@ -482,7 +484,7 @@ // this.OpenRomMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.OpenFile; this.OpenRomMenuItem.Name = "OpenRomMenuItem"; - this.OpenRomMenuItem.Size = new System.Drawing.Size(159, 22); + this.OpenRomMenuItem.Size = new System.Drawing.Size(162, 22); this.OpenRomMenuItem.Text = "&Open ROM"; this.OpenRomMenuItem.Click += new System.EventHandler(this.OpenRomMenuItem_Click); // @@ -492,7 +494,7 @@ this.toolStripSeparator3}); this.RecentRomSubMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; this.RecentRomSubMenu.Name = "RecentRomSubMenu"; - this.RecentRomSubMenu.Size = new System.Drawing.Size(159, 22); + this.RecentRomSubMenu.Size = new System.Drawing.Size(162, 22); this.RecentRomSubMenu.Text = "&Recent ROM"; this.RecentRomSubMenu.DropDownOpened += new System.EventHandler(this.RecentRomMenuItem_DropDownOpened); // @@ -504,7 +506,7 @@ // OpenAdvancedMenuItem // this.OpenAdvancedMenuItem.Name = "OpenAdvancedMenuItem"; - this.OpenAdvancedMenuItem.Size = new System.Drawing.Size(159, 22); + this.OpenAdvancedMenuItem.Size = new System.Drawing.Size(162, 22); this.OpenAdvancedMenuItem.Text = "Open Ad&vanced"; this.OpenAdvancedMenuItem.Click += new System.EventHandler(this.OpenAdvancedMenuItem_Click); // @@ -512,14 +514,14 @@ // this.CloseRomMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Close; this.CloseRomMenuItem.Name = "CloseRomMenuItem"; - this.CloseRomMenuItem.Size = new System.Drawing.Size(159, 22); + this.CloseRomMenuItem.Size = new System.Drawing.Size(162, 22); this.CloseRomMenuItem.Text = "&Close ROM"; this.CloseRomMenuItem.Click += new System.EventHandler(this.CloseRomMenuItem_Click); // // toolStripMenuItem1 // this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(156, 6); + this.toolStripMenuItem1.Size = new System.Drawing.Size(159, 6); // // SaveStateSubMenu // @@ -537,89 +539,89 @@ this.toolStripSeparator6, this.SaveNamedStateMenuItem}); this.SaveStateSubMenu.Name = "SaveStateSubMenu"; - this.SaveStateSubMenu.Size = new System.Drawing.Size(159, 22); + this.SaveStateSubMenu.Size = new System.Drawing.Size(162, 22); this.SaveStateSubMenu.Text = "&Save State"; this.SaveStateSubMenu.DropDownOpened += new System.EventHandler(this.SaveStateSubMenu_DropDownOpened); // // SaveState1MenuItem // this.SaveState1MenuItem.Name = "SaveState1MenuItem"; - this.SaveState1MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState1MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState1MenuItem.Text = "1"; this.SaveState1MenuItem.Click += new System.EventHandler(this.Savestate1MenuItem_Click); // // SaveState2MenuItem // this.SaveState2MenuItem.Name = "SaveState2MenuItem"; - this.SaveState2MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState2MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState2MenuItem.Text = "2"; this.SaveState2MenuItem.Click += new System.EventHandler(this.Savestate2MenuItem_Click); // // SaveState3MenuItem // this.SaveState3MenuItem.Name = "SaveState3MenuItem"; - this.SaveState3MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState3MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState3MenuItem.Text = "3"; this.SaveState3MenuItem.Click += new System.EventHandler(this.Savestate3MenuItem_Click); // // SaveState4MenuItem // this.SaveState4MenuItem.Name = "SaveState4MenuItem"; - this.SaveState4MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState4MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState4MenuItem.Text = "4"; this.SaveState4MenuItem.Click += new System.EventHandler(this.Savestate4MenuItem_Click); // // SaveState5MenuItem // this.SaveState5MenuItem.Name = "SaveState5MenuItem"; - this.SaveState5MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState5MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState5MenuItem.Text = "5"; this.SaveState5MenuItem.Click += new System.EventHandler(this.Savestate5MenuItem_Click); // // SaveState6MenuItem // this.SaveState6MenuItem.Name = "SaveState6MenuItem"; - this.SaveState6MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState6MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState6MenuItem.Text = "6"; this.SaveState6MenuItem.Click += new System.EventHandler(this.Savestate6MenuItem_Click); // // SaveState7MenuItem // this.SaveState7MenuItem.Name = "SaveState7MenuItem"; - this.SaveState7MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState7MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState7MenuItem.Text = "7"; this.SaveState7MenuItem.Click += new System.EventHandler(this.Savestate7MenuItem_Click); // // SaveState8MenuItem // this.SaveState8MenuItem.Name = "SaveState8MenuItem"; - this.SaveState8MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState8MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState8MenuItem.Text = "8"; this.SaveState8MenuItem.Click += new System.EventHandler(this.Savestate8MenuItem_Click); // // SaveState9MenuItem // this.SaveState9MenuItem.Name = "SaveState9MenuItem"; - this.SaveState9MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState9MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState9MenuItem.Text = "9"; this.SaveState9MenuItem.Click += new System.EventHandler(this.Savestate9MenuItem_Click); // // SaveState0MenuItem // this.SaveState0MenuItem.Name = "SaveState0MenuItem"; - this.SaveState0MenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveState0MenuItem.Size = new System.Drawing.Size(186, 22); this.SaveState0MenuItem.Text = "0"; this.SaveState0MenuItem.Click += new System.EventHandler(this.Savestate0MenuItem_Click); // // toolStripSeparator6 // this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(175, 6); + this.toolStripSeparator6.Size = new System.Drawing.Size(183, 6); // // SaveNamedStateMenuItem // this.SaveNamedStateMenuItem.Name = "SaveNamedStateMenuItem"; - this.SaveNamedStateMenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveNamedStateMenuItem.Size = new System.Drawing.Size(186, 22); this.SaveNamedStateMenuItem.Text = "Save Named State..."; this.SaveNamedStateMenuItem.Click += new System.EventHandler(this.SaveNamedStateMenuItem_Click); // @@ -641,101 +643,101 @@ this.toolStripSeparator21, this.AutoloadLastSlotMenuItem}); this.LoadStateSubMenu.Name = "LoadStateSubMenu"; - this.LoadStateSubMenu.Size = new System.Drawing.Size(159, 22); + this.LoadStateSubMenu.Size = new System.Drawing.Size(162, 22); this.LoadStateSubMenu.Text = "&Load State"; this.LoadStateSubMenu.DropDownOpened += new System.EventHandler(this.LoadStateSubMenu_DropDownOpened); // // LoadState1MenuItem // this.LoadState1MenuItem.Name = "LoadState1MenuItem"; - this.LoadState1MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState1MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState1MenuItem.Text = "1"; this.LoadState1MenuItem.Click += new System.EventHandler(this.Loadstate1MenuItem_Click); // // LoadState2MenuItem // this.LoadState2MenuItem.Name = "LoadState2MenuItem"; - this.LoadState2MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState2MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState2MenuItem.Text = "2"; this.LoadState2MenuItem.Click += new System.EventHandler(this.Loadstate2MenuItem_Click); // // LoadState3MenuItem // this.LoadState3MenuItem.Name = "LoadState3MenuItem"; - this.LoadState3MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState3MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState3MenuItem.Text = "3"; this.LoadState3MenuItem.Click += new System.EventHandler(this.Loadstate3MenuItem_Click); // // LoadState4MenuItem // this.LoadState4MenuItem.Name = "LoadState4MenuItem"; - this.LoadState4MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState4MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState4MenuItem.Text = "4"; this.LoadState4MenuItem.Click += new System.EventHandler(this.Loadstate4MenuItem_Click); // // LoadState5MenuItem // this.LoadState5MenuItem.Name = "LoadState5MenuItem"; - this.LoadState5MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState5MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState5MenuItem.Text = "5"; this.LoadState5MenuItem.Click += new System.EventHandler(this.Loadstate5MenuItem_Click); // // LoadState6MenuItem // this.LoadState6MenuItem.Name = "LoadState6MenuItem"; - this.LoadState6MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState6MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState6MenuItem.Text = "6"; this.LoadState6MenuItem.Click += new System.EventHandler(this.Loadstate6MenuItem_Click); // // LoadState7MenuItem // this.LoadState7MenuItem.Name = "LoadState7MenuItem"; - this.LoadState7MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState7MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState7MenuItem.Text = "7"; this.LoadState7MenuItem.Click += new System.EventHandler(this.Loadstate7MenuItem_Click); // // LoadState8MenuItem // this.LoadState8MenuItem.Name = "LoadState8MenuItem"; - this.LoadState8MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState8MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState8MenuItem.Text = "8"; this.LoadState8MenuItem.Click += new System.EventHandler(this.Loadstate8MenuItem_Click); // // LoadState9MenuItem // this.LoadState9MenuItem.Name = "LoadState9MenuItem"; - this.LoadState9MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState9MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState9MenuItem.Text = "9"; this.LoadState9MenuItem.Click += new System.EventHandler(this.Loadstate9MenuItem_Click); // // LoadState0MenuItem // this.LoadState0MenuItem.Name = "LoadState0MenuItem"; - this.LoadState0MenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadState0MenuItem.Size = new System.Drawing.Size(185, 22); this.LoadState0MenuItem.Text = "0"; this.LoadState0MenuItem.Click += new System.EventHandler(this.Loadstate0MenuItem_Click); // // toolStripSeparator7 // this.toolStripSeparator7.Name = "toolStripSeparator7"; - this.toolStripSeparator7.Size = new System.Drawing.Size(177, 6); + this.toolStripSeparator7.Size = new System.Drawing.Size(182, 6); // // LoadNamedStateMenuItem // this.LoadNamedStateMenuItem.Name = "LoadNamedStateMenuItem"; - this.LoadNamedStateMenuItem.Size = new System.Drawing.Size(180, 22); + this.LoadNamedStateMenuItem.Size = new System.Drawing.Size(185, 22); this.LoadNamedStateMenuItem.Text = "Load Named State..."; this.LoadNamedStateMenuItem.Click += new System.EventHandler(this.LoadNamedStateMenuItem_Click); // // toolStripSeparator21 // this.toolStripSeparator21.Name = "toolStripSeparator21"; - this.toolStripSeparator21.Size = new System.Drawing.Size(177, 6); + this.toolStripSeparator21.Size = new System.Drawing.Size(182, 6); // // AutoloadLastSlotMenuItem // this.AutoloadLastSlotMenuItem.Name = "AutoloadLastSlotMenuItem"; - this.AutoloadLastSlotMenuItem.Size = new System.Drawing.Size(180, 22); + this.AutoloadLastSlotMenuItem.Size = new System.Drawing.Size(185, 22); this.AutoloadLastSlotMenuItem.Text = "Autoload last Slot"; this.AutoloadLastSlotMenuItem.Click += new System.EventHandler(this.AutoloadLastSlotMenuItem_Click); // @@ -758,77 +760,77 @@ this.SaveToCurrentSlotMenuItem, this.LoadCurrentSlotMenuItem}); this.SaveSlotSubMenu.Name = "SaveSlotSubMenu"; - this.SaveSlotSubMenu.Size = new System.Drawing.Size(159, 22); + this.SaveSlotSubMenu.Size = new System.Drawing.Size(162, 22); this.SaveSlotSubMenu.Text = "Save S&lot"; this.SaveSlotSubMenu.DropDownOpened += new System.EventHandler(this.SaveSlotSubMenu_DropDownOpened); // // SelectSlot0MenuItem // this.SelectSlot0MenuItem.Name = "SelectSlot0MenuItem"; - this.SelectSlot0MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot0MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot0MenuItem.Text = "Select Slot 0"; this.SelectSlot0MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot1MenuItem // this.SelectSlot1MenuItem.Name = "SelectSlot1MenuItem"; - this.SelectSlot1MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot1MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot1MenuItem.Text = "Select Slot 1"; this.SelectSlot1MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot2MenuItem // this.SelectSlot2MenuItem.Name = "SelectSlot2MenuItem"; - this.SelectSlot2MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot2MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot2MenuItem.Text = "Select Slot 2"; this.SelectSlot2MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot3MenuItem // this.SelectSlot3MenuItem.Name = "SelectSlot3MenuItem"; - this.SelectSlot3MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot3MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot3MenuItem.Text = "Select Slot 3"; this.SelectSlot3MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot4MenuItem // this.SelectSlot4MenuItem.Name = "SelectSlot4MenuItem"; - this.SelectSlot4MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot4MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot4MenuItem.Text = "Select Slot 4"; this.SelectSlot4MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot5MenuItem // this.SelectSlot5MenuItem.Name = "SelectSlot5MenuItem"; - this.SelectSlot5MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot5MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot5MenuItem.Text = "Select Slot 5"; this.SelectSlot5MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot6MenuItem // this.SelectSlot6MenuItem.Name = "SelectSlot6MenuItem"; - this.SelectSlot6MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot6MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot6MenuItem.Text = "Select Slot 6"; this.SelectSlot6MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot7MenuItem // this.SelectSlot7MenuItem.Name = "SelectSlot7MenuItem"; - this.SelectSlot7MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot7MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot7MenuItem.Text = "Select Slot 7"; this.SelectSlot7MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot8MenuItem // this.SelectSlot8MenuItem.Name = "SelectSlot8MenuItem"; - this.SelectSlot8MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot8MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot8MenuItem.Text = "Select Slot 8"; this.SelectSlot8MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // // SelectSlot9MenuItem // this.SelectSlot9MenuItem.Name = "SelectSlot9MenuItem"; - this.SelectSlot9MenuItem.Size = new System.Drawing.Size(178, 22); + this.SelectSlot9MenuItem.Size = new System.Drawing.Size(183, 22); this.SelectSlot9MenuItem.Text = "Select Slot 9"; this.SelectSlot9MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click); // @@ -836,7 +838,7 @@ // this.PreviousSlotMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MoveLeft; this.PreviousSlotMenuItem.Name = "PreviousSlotMenuItem"; - this.PreviousSlotMenuItem.Size = new System.Drawing.Size(178, 22); + this.PreviousSlotMenuItem.Size = new System.Drawing.Size(183, 22); this.PreviousSlotMenuItem.Text = "Previous Slot"; this.PreviousSlotMenuItem.Click += new System.EventHandler(this.PreviousSlotMenuItem_Click); // @@ -844,26 +846,26 @@ // this.NextSlotMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MoveRight; this.NextSlotMenuItem.Name = "NextSlotMenuItem"; - this.NextSlotMenuItem.Size = new System.Drawing.Size(178, 22); + this.NextSlotMenuItem.Size = new System.Drawing.Size(183, 22); this.NextSlotMenuItem.Text = "Next Slot"; this.NextSlotMenuItem.Click += new System.EventHandler(this.NextSlotMenuItem_Click); // // toolStripSeparator5 // this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(175, 6); + this.toolStripSeparator5.Size = new System.Drawing.Size(180, 6); // // SaveToCurrentSlotMenuItem // this.SaveToCurrentSlotMenuItem.Name = "SaveToCurrentSlotMenuItem"; - this.SaveToCurrentSlotMenuItem.Size = new System.Drawing.Size(178, 22); + this.SaveToCurrentSlotMenuItem.Size = new System.Drawing.Size(183, 22); this.SaveToCurrentSlotMenuItem.Text = "Save to Current Slot"; this.SaveToCurrentSlotMenuItem.Click += new System.EventHandler(this.SaveToCurrentSlotMenuItem_Click); // // LoadCurrentSlotMenuItem // this.LoadCurrentSlotMenuItem.Name = "LoadCurrentSlotMenuItem"; - this.LoadCurrentSlotMenuItem.Size = new System.Drawing.Size(178, 22); + this.LoadCurrentSlotMenuItem.Size = new System.Drawing.Size(183, 22); this.LoadCurrentSlotMenuItem.Text = "Load Current Slot"; this.LoadCurrentSlotMenuItem.Click += new System.EventHandler(this.LoadCurrentSlotMenuItem_Click); // @@ -873,21 +875,21 @@ this.FlushSaveRAMMenuItem}); this.SaveRAMSubMenu.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold); this.SaveRAMSubMenu.Name = "SaveRAMSubMenu"; - this.SaveRAMSubMenu.Size = new System.Drawing.Size(159, 22); + this.SaveRAMSubMenu.Size = new System.Drawing.Size(162, 22); this.SaveRAMSubMenu.Text = "Save &RAM"; // // FlushSaveRAMMenuItem // this.FlushSaveRAMMenuItem.Font = new System.Drawing.Font("Tahoma", 8.25F); this.FlushSaveRAMMenuItem.Name = "FlushSaveRAMMenuItem"; - this.FlushSaveRAMMenuItem.Size = new System.Drawing.Size(150, 22); + this.FlushSaveRAMMenuItem.Size = new System.Drawing.Size(161, 22); this.FlushSaveRAMMenuItem.Text = "&Flush Save Ram"; this.FlushSaveRAMMenuItem.Click += new System.EventHandler(this.FlushSaveRAMMenuItem_Click); // // toolStripMenuItem2 // this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(156, 6); + this.toolStripMenuItem2.Size = new System.Drawing.Size(159, 6); // // MovieSubMenu // @@ -907,7 +909,7 @@ this.FullMovieLoadstatesMenuItem, this.MovieEndSubMenu}); this.MovieSubMenu.Name = "MovieSubMenu"; - this.MovieSubMenu.Size = new System.Drawing.Size(159, 22); + this.MovieSubMenu.Size = new System.Drawing.Size(162, 22); this.MovieSubMenu.Text = "&Movie"; this.MovieSubMenu.DropDownOpened += new System.EventHandler(this.MovieSubMenu_DropDownOpened); // @@ -915,14 +917,14 @@ // this.ReadonlyMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.ReadOnly; this.ReadonlyMenuItem.Name = "ReadonlyMenuItem"; - this.ReadonlyMenuItem.Size = new System.Drawing.Size(231, 22); + this.ReadonlyMenuItem.Size = new System.Drawing.Size(222, 22); this.ReadonlyMenuItem.Text = "Read-only"; this.ReadonlyMenuItem.Click += new System.EventHandler(this.ReadonlyMenuItem_Click); // // toolStripSeparator15 // this.toolStripSeparator15.Name = "toolStripSeparator15"; - this.toolStripSeparator15.Size = new System.Drawing.Size(228, 6); + this.toolStripSeparator15.Size = new System.Drawing.Size(219, 6); // // RecentMovieSubMenu // @@ -930,7 +932,7 @@ this.toolStripSeparator16}); this.RecentMovieSubMenu.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; this.RecentMovieSubMenu.Name = "RecentMovieSubMenu"; - this.RecentMovieSubMenu.Size = new System.Drawing.Size(231, 22); + this.RecentMovieSubMenu.Size = new System.Drawing.Size(222, 22); this.RecentMovieSubMenu.Text = "Recent"; this.RecentMovieSubMenu.DropDownOpened += new System.EventHandler(this.RecentMovieSubMenu_DropDownOpened); // @@ -943,7 +945,7 @@ // this.RecordMovieMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.RecordHS; this.RecordMovieMenuItem.Name = "RecordMovieMenuItem"; - this.RecordMovieMenuItem.Size = new System.Drawing.Size(231, 22); + this.RecordMovieMenuItem.Size = new System.Drawing.Size(222, 22); this.RecordMovieMenuItem.Text = "&Record Movie..."; this.RecordMovieMenuItem.Click += new System.EventHandler(this.RecordMovieMenuItem_Click); // @@ -951,7 +953,7 @@ // this.PlayMovieMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Play; this.PlayMovieMenuItem.Name = "PlayMovieMenuItem"; - this.PlayMovieMenuItem.Size = new System.Drawing.Size(231, 22); + this.PlayMovieMenuItem.Size = new System.Drawing.Size(222, 22); this.PlayMovieMenuItem.Text = "&Play Movie..."; this.PlayMovieMenuItem.Click += new System.EventHandler(this.PlayMovieMenuItem_Click); // @@ -959,7 +961,7 @@ // this.StopMovieMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopMovieMenuItem.Name = "StopMovieMenuItem"; - this.StopMovieMenuItem.Size = new System.Drawing.Size(231, 22); + this.StopMovieMenuItem.Size = new System.Drawing.Size(222, 22); this.StopMovieMenuItem.Text = "Stop Movie"; this.StopMovieMenuItem.Click += new System.EventHandler(this.StopMovieMenuItem_Click); // @@ -967,7 +969,7 @@ // this.PlayFromBeginningMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.restart; this.PlayFromBeginningMenuItem.Name = "PlayFromBeginningMenuItem"; - this.PlayFromBeginningMenuItem.Size = new System.Drawing.Size(231, 22); + this.PlayFromBeginningMenuItem.Size = new System.Drawing.Size(222, 22); this.PlayFromBeginningMenuItem.Text = "Play from Beginning"; this.PlayFromBeginningMenuItem.Click += new System.EventHandler(this.PlayFromBeginningMenuItem_Click); // @@ -975,7 +977,7 @@ // this.ImportMoviesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Import; this.ImportMoviesMenuItem.Name = "ImportMoviesMenuItem"; - this.ImportMoviesMenuItem.Size = new System.Drawing.Size(231, 22); + this.ImportMoviesMenuItem.Size = new System.Drawing.Size(222, 22); this.ImportMoviesMenuItem.Text = "Import Movies..."; this.ImportMoviesMenuItem.Click += new System.EventHandler(this.ImportMovieMenuItem_Click); // @@ -983,7 +985,7 @@ // this.SaveMovieMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs; this.SaveMovieMenuItem.Name = "SaveMovieMenuItem"; - this.SaveMovieMenuItem.Size = new System.Drawing.Size(231, 22); + this.SaveMovieMenuItem.Size = new System.Drawing.Size(222, 22); this.SaveMovieMenuItem.Text = "&Save Movie"; this.SaveMovieMenuItem.Click += new System.EventHandler(this.SaveMovieMenuItem_Click); // @@ -991,26 +993,26 @@ // this.StopMovieWithoutSavingMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopMovieWithoutSavingMenuItem.Name = "StopMovieWithoutSavingMenuItem"; - this.StopMovieWithoutSavingMenuItem.Size = new System.Drawing.Size(231, 22); + this.StopMovieWithoutSavingMenuItem.Size = new System.Drawing.Size(222, 22); this.StopMovieWithoutSavingMenuItem.Text = "Stop Movie without Saving"; this.StopMovieWithoutSavingMenuItem.Click += new System.EventHandler(this.StopMovieWithoutSavingMenuItem_Click); // // toolStripSeparator14 // this.toolStripSeparator14.Name = "toolStripSeparator14"; - this.toolStripSeparator14.Size = new System.Drawing.Size(228, 6); + this.toolStripSeparator14.Size = new System.Drawing.Size(219, 6); // // AutomaticallyBackupMoviesMenuItem // this.AutomaticallyBackupMoviesMenuItem.Name = "AutomaticallyBackupMoviesMenuItem"; - this.AutomaticallyBackupMoviesMenuItem.Size = new System.Drawing.Size(231, 22); + this.AutomaticallyBackupMoviesMenuItem.Size = new System.Drawing.Size(222, 22); this.AutomaticallyBackupMoviesMenuItem.Text = "Automatically Backup Movies"; this.AutomaticallyBackupMoviesMenuItem.Click += new System.EventHandler(this.AutomaticMovieBackupMenuItem_Click); // // FullMovieLoadstatesMenuItem // this.FullMovieLoadstatesMenuItem.Name = "FullMovieLoadstatesMenuItem"; - this.FullMovieLoadstatesMenuItem.Size = new System.Drawing.Size(231, 22); + this.FullMovieLoadstatesMenuItem.Size = new System.Drawing.Size(222, 22); this.FullMovieLoadstatesMenuItem.Text = "Full Movie Loadstates"; this.FullMovieLoadstatesMenuItem.Click += new System.EventHandler(this.FullMovieLoadstatesMenuItem_Click); // @@ -1022,35 +1024,35 @@ this.MovieEndStopMenuItem, this.MovieEndPauseMenuItem}); this.MovieEndSubMenu.Name = "MovieEndSubMenu"; - this.MovieEndSubMenu.Size = new System.Drawing.Size(231, 22); + this.MovieEndSubMenu.Size = new System.Drawing.Size(222, 22); this.MovieEndSubMenu.Text = "On Movie End"; this.MovieEndSubMenu.DropDownOpened += new System.EventHandler(this.MovieEndSubMenu_DropDownOpened); // // MovieEndFinishMenuItem // this.MovieEndFinishMenuItem.Name = "MovieEndFinishMenuItem"; - this.MovieEndFinishMenuItem.Size = new System.Drawing.Size(170, 22); + this.MovieEndFinishMenuItem.Size = new System.Drawing.Size(171, 22); this.MovieEndFinishMenuItem.Text = "Switch to Finished"; this.MovieEndFinishMenuItem.Click += new System.EventHandler(this.MovieEndFinishMenuItem_Click); // // MovieEndRecordMenuItem // this.MovieEndRecordMenuItem.Name = "MovieEndRecordMenuItem"; - this.MovieEndRecordMenuItem.Size = new System.Drawing.Size(170, 22); + this.MovieEndRecordMenuItem.Size = new System.Drawing.Size(171, 22); this.MovieEndRecordMenuItem.Text = "Switch To Record"; this.MovieEndRecordMenuItem.Click += new System.EventHandler(this.MovieEndRecordMenuItem_Click); // // MovieEndStopMenuItem // this.MovieEndStopMenuItem.Name = "MovieEndStopMenuItem"; - this.MovieEndStopMenuItem.Size = new System.Drawing.Size(170, 22); + this.MovieEndStopMenuItem.Size = new System.Drawing.Size(171, 22); this.MovieEndStopMenuItem.Text = "Stop"; this.MovieEndStopMenuItem.Click += new System.EventHandler(this.MovieEndStopMenuItem_Click); // // MovieEndPauseMenuItem // this.MovieEndPauseMenuItem.Name = "MovieEndPauseMenuItem"; - this.MovieEndPauseMenuItem.Size = new System.Drawing.Size(170, 22); + this.MovieEndPauseMenuItem.Size = new System.Drawing.Size(171, 22); this.MovieEndPauseMenuItem.Text = "Pause"; this.MovieEndPauseMenuItem.Click += new System.EventHandler(this.MovieEndPauseMenuItem_Click); // @@ -1064,7 +1066,7 @@ this.CaptureOSDMenuItem, this.SynclessRecordingMenuItem}); this.AVSubMenu.Name = "AVSubMenu"; - this.AVSubMenu.Size = new System.Drawing.Size(159, 22); + this.AVSubMenu.Size = new System.Drawing.Size(162, 22); this.AVSubMenu.Text = "&AVI/WAV"; this.AVSubMenu.DropDownOpened += new System.EventHandler(this.AVSubMenu_DropDownOpened); // @@ -1072,7 +1074,7 @@ // this.RecordAVMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.RecordHS; this.RecordAVMenuItem.Name = "RecordAVMenuItem"; - this.RecordAVMenuItem.Size = new System.Drawing.Size(225, 22); + this.RecordAVMenuItem.Size = new System.Drawing.Size(221, 22); this.RecordAVMenuItem.Text = "&Record AVI/WAV"; this.RecordAVMenuItem.Click += new System.EventHandler(this.RecordAVMenuItem_Click); // @@ -1080,7 +1082,7 @@ // this.ConfigAndRecordAVMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AVI; this.ConfigAndRecordAVMenuItem.Name = "ConfigAndRecordAVMenuItem"; - this.ConfigAndRecordAVMenuItem.Size = new System.Drawing.Size(225, 22); + this.ConfigAndRecordAVMenuItem.Size = new System.Drawing.Size(221, 22); this.ConfigAndRecordAVMenuItem.Text = "Config and Record AVI/WAV"; this.ConfigAndRecordAVMenuItem.Click += new System.EventHandler(this.ConfigAndRecordAVMenuItem_Click); // @@ -1088,26 +1090,26 @@ // this.StopAVIMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopAVIMenuItem.Name = "StopAVIMenuItem"; - this.StopAVIMenuItem.Size = new System.Drawing.Size(225, 22); + this.StopAVIMenuItem.Size = new System.Drawing.Size(221, 22); this.StopAVIMenuItem.Text = "&Stop AVI/WAV"; this.StopAVIMenuItem.Click += new System.EventHandler(this.StopAVMenuItem_Click); // // toolStripSeparator19 // this.toolStripSeparator19.Name = "toolStripSeparator19"; - this.toolStripSeparator19.Size = new System.Drawing.Size(222, 6); + this.toolStripSeparator19.Size = new System.Drawing.Size(218, 6); // // CaptureOSDMenuItem // this.CaptureOSDMenuItem.Name = "CaptureOSDMenuItem"; - this.CaptureOSDMenuItem.Size = new System.Drawing.Size(225, 22); + this.CaptureOSDMenuItem.Size = new System.Drawing.Size(221, 22); this.CaptureOSDMenuItem.Text = "Capture OSD"; this.CaptureOSDMenuItem.Click += new System.EventHandler(this.CaptureOSDMenuItem_Click); // // SynclessRecordingMenuItem // this.SynclessRecordingMenuItem.Name = "SynclessRecordingMenuItem"; - this.SynclessRecordingMenuItem.Size = new System.Drawing.Size(225, 22); + this.SynclessRecordingMenuItem.Size = new System.Drawing.Size(221, 22); this.SynclessRecordingMenuItem.Text = "S&yncless Recording Tools"; this.SynclessRecordingMenuItem.Click += new System.EventHandler(this.SynclessRecordingMenuItem_Click); // @@ -1121,7 +1123,7 @@ this.toolStripSeparator20, this.ScreenshotCaptureOSDMenuItem1}); this.ScreenshotSubMenu.Name = "ScreenshotSubMenu"; - this.ScreenshotSubMenu.Size = new System.Drawing.Size(159, 22); + this.ScreenshotSubMenu.Size = new System.Drawing.Size(162, 22); this.ScreenshotSubMenu.Text = "Scree&nshot"; this.ScreenshotSubMenu.DropDownOpening += new System.EventHandler(this.ScreenshotSubMenu_DropDownOpening); // @@ -1129,14 +1131,14 @@ // this.ScreenshotMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.camera; this.ScreenshotMenuItem.Name = "ScreenshotMenuItem"; - this.ScreenshotMenuItem.Size = new System.Drawing.Size(317, 22); + this.ScreenshotMenuItem.Size = new System.Drawing.Size(307, 22); this.ScreenshotMenuItem.Text = "Screenshot"; this.ScreenshotMenuItem.Click += new System.EventHandler(this.ScreenshotMenuItem_Click); // // ScreenshotAsMenuItem // this.ScreenshotAsMenuItem.Name = "ScreenshotAsMenuItem"; - this.ScreenshotAsMenuItem.Size = new System.Drawing.Size(317, 22); + this.ScreenshotAsMenuItem.Size = new System.Drawing.Size(307, 22); this.ScreenshotAsMenuItem.Text = "Screenshot As..."; this.ScreenshotAsMenuItem.Click += new System.EventHandler(this.ScreenshotAsMenuItem_Click); // @@ -1144,7 +1146,7 @@ // this.ScreenshotClipboardMenuItem.Name = "ScreenshotClipboardMenuItem"; this.ScreenshotClipboardMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C))); - this.ScreenshotClipboardMenuItem.Size = new System.Drawing.Size(317, 22); + this.ScreenshotClipboardMenuItem.Size = new System.Drawing.Size(307, 22); this.ScreenshotClipboardMenuItem.Text = "Screenshot (raw) -> Clipboard"; this.ScreenshotClipboardMenuItem.Click += new System.EventHandler(this.ScreenshotClipboardMenuItem_Click); // @@ -1153,32 +1155,32 @@ this.ScreenshotClientClipboardMenuItem.Name = "ScreenshotClientClipboardMenuItem"; this.ScreenshotClientClipboardMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) | System.Windows.Forms.Keys.C))); - this.ScreenshotClientClipboardMenuItem.Size = new System.Drawing.Size(317, 22); + this.ScreenshotClientClipboardMenuItem.Size = new System.Drawing.Size(307, 22); this.ScreenshotClientClipboardMenuItem.Text = "Screenshot (client) -> Clipboard"; this.ScreenshotClientClipboardMenuItem.Click += new System.EventHandler(this.ScreenshotClientClipboardMenuItem_Click); // // toolStripSeparator20 // this.toolStripSeparator20.Name = "toolStripSeparator20"; - this.toolStripSeparator20.Size = new System.Drawing.Size(314, 6); + this.toolStripSeparator20.Size = new System.Drawing.Size(304, 6); // // ScreenshotCaptureOSDMenuItem1 // this.ScreenshotCaptureOSDMenuItem1.Name = "ScreenshotCaptureOSDMenuItem1"; - this.ScreenshotCaptureOSDMenuItem1.Size = new System.Drawing.Size(317, 22); + this.ScreenshotCaptureOSDMenuItem1.Size = new System.Drawing.Size(307, 22); this.ScreenshotCaptureOSDMenuItem1.Text = "Capture OSD"; this.ScreenshotCaptureOSDMenuItem1.Click += new System.EventHandler(this.ScreenshotCaptureOSDMenuItem_Click); // // toolStripSeparator4 // this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(156, 6); + this.toolStripSeparator4.Size = new System.Drawing.Size(159, 6); // // ExitMenuItem // this.ExitMenuItem.Name = "ExitMenuItem"; this.ExitMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.ExitMenuItem.Size = new System.Drawing.Size(159, 22); + this.ExitMenuItem.Size = new System.Drawing.Size(162, 22); this.ExitMenuItem.Text = "E&xit"; this.ExitMenuItem.Click += new System.EventHandler(this.ExitMenuItem_Click); // @@ -1191,7 +1193,7 @@ this.SoftResetMenuItem, this.HardResetMenuItem}); this.EmulationSubMenu.Name = "EmulationSubMenu"; - this.EmulationSubMenu.Size = new System.Drawing.Size(73, 19); + this.EmulationSubMenu.Size = new System.Drawing.Size(65, 17); this.EmulationSubMenu.Text = "&Emulation"; this.EmulationSubMenu.DropDownOpened += new System.EventHandler(this.emulationToolStripMenuItem_DropDownOpened); // @@ -1199,7 +1201,7 @@ // this.PauseMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Pause; this.PauseMenuItem.Name = "PauseMenuItem"; - this.PauseMenuItem.Size = new System.Drawing.Size(140, 22); + this.PauseMenuItem.Size = new System.Drawing.Size(146, 22); this.PauseMenuItem.Text = "&Pause"; this.PauseMenuItem.Click += new System.EventHandler(this.PauseMenuItem_Click); // @@ -1207,26 +1209,26 @@ // this.RebootCoreMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.reboot; this.RebootCoreMenuItem.Name = "RebootCoreMenuItem"; - this.RebootCoreMenuItem.Size = new System.Drawing.Size(140, 22); + this.RebootCoreMenuItem.Size = new System.Drawing.Size(146, 22); this.RebootCoreMenuItem.Text = "&Reboot Core"; this.RebootCoreMenuItem.Click += new System.EventHandler(this.PowerMenuItem_Click); // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(137, 6); + this.toolStripSeparator1.Size = new System.Drawing.Size(143, 6); // // SoftResetMenuItem // this.SoftResetMenuItem.Name = "SoftResetMenuItem"; - this.SoftResetMenuItem.Size = new System.Drawing.Size(140, 22); + this.SoftResetMenuItem.Size = new System.Drawing.Size(146, 22); this.SoftResetMenuItem.Text = "&Soft Reset"; this.SoftResetMenuItem.Click += new System.EventHandler(this.SoftResetMenuItem_Click); // // HardResetMenuItem // this.HardResetMenuItem.Name = "HardResetMenuItem"; - this.HardResetMenuItem.Size = new System.Drawing.Size(140, 22); + this.HardResetMenuItem.Size = new System.Drawing.Size(146, 22); this.HardResetMenuItem.Text = "&Hard Reset"; this.HardResetMenuItem.Click += new System.EventHandler(this.HardResetMenuItem_Click); // @@ -1247,7 +1249,7 @@ this.DisplayMessagesMenuItem, this.DisplayLogWindowMenuItem}); this.ViewSubMenu.Name = "ViewSubMenu"; - this.ViewSubMenu.Size = new System.Drawing.Size(44, 19); + this.ViewSubMenu.Size = new System.Drawing.Size(41, 17); this.ViewSubMenu.Text = "&View"; this.ViewSubMenu.DropDownOpened += new System.EventHandler(this.ViewSubMenu_DropDownOpened); // @@ -1268,42 +1270,42 @@ // x1MenuItem // this.x1MenuItem.Name = "x1MenuItem"; - this.x1MenuItem.Size = new System.Drawing.Size(96, 22); + this.x1MenuItem.Size = new System.Drawing.Size(105, 22); this.x1MenuItem.Text = "&1x"; this.x1MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // x2MenuItem // this.x2MenuItem.Name = "x2MenuItem"; - this.x2MenuItem.Size = new System.Drawing.Size(96, 22); + this.x2MenuItem.Size = new System.Drawing.Size(105, 22); this.x2MenuItem.Text = "&2x"; this.x2MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // x3MenuItem // this.x3MenuItem.Name = "x3MenuItem"; - this.x3MenuItem.Size = new System.Drawing.Size(96, 22); + this.x3MenuItem.Size = new System.Drawing.Size(105, 22); this.x3MenuItem.Text = "&3x"; this.x3MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // x4MenuItem // this.x4MenuItem.Name = "x4MenuItem"; - this.x4MenuItem.Size = new System.Drawing.Size(96, 22); + this.x4MenuItem.Size = new System.Drawing.Size(105, 22); this.x4MenuItem.Text = "&4x"; this.x4MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // x5MenuItem // this.x5MenuItem.Name = "x5MenuItem"; - this.x5MenuItem.Size = new System.Drawing.Size(96, 22); + this.x5MenuItem.Size = new System.Drawing.Size(105, 22); this.x5MenuItem.Text = "&5x"; this.x5MenuItem.Click += new System.EventHandler(this.WindowSize_Click); // // mzMenuItem // this.mzMenuItem.Name = "mzMenuItem"; - this.mzMenuItem.Size = new System.Drawing.Size(96, 22); + this.mzMenuItem.Size = new System.Drawing.Size(105, 22); this.mzMenuItem.Text = "&Max"; this.mzMenuItem.Click += new System.EventHandler(this.WindowSize_Click); // @@ -1409,9 +1411,11 @@ this.CoresSubMenu, this.toolStripSeparator10, this.SaveConfigMenuItem, - this.LoadConfigMenuItem}); + this.SaveConfigAsMenuItem, + this.LoadConfigMenuItem, + this.LoadConfigFromMenuItem}); this.ConfigSubMenu.Name = "ConfigSubMenu"; - this.ConfigSubMenu.Size = new System.Drawing.Size(55, 19); + this.ConfigSubMenu.Size = new System.Drawing.Size(50, 17); this.ConfigSubMenu.Text = "&Config"; this.ConfigSubMenu.DropDownOpened += new System.EventHandler(this.ConfigSubMenu_DropDownOpened); // @@ -1419,7 +1423,7 @@ // this.ControllersMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.ControllersMenuItem.Name = "ControllersMenuItem"; - this.ControllersMenuItem.Size = new System.Drawing.Size(169, 22); + this.ControllersMenuItem.Size = new System.Drawing.Size(181, 22); this.ControllersMenuItem.Text = "&Controllers..."; this.ControllersMenuItem.Click += new System.EventHandler(this.ControllersMenuItem_Click); // @@ -1427,7 +1431,7 @@ // this.HotkeysMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.HotKeys; this.HotkeysMenuItem.Name = "HotkeysMenuItem"; - this.HotkeysMenuItem.Size = new System.Drawing.Size(169, 22); + this.HotkeysMenuItem.Size = new System.Drawing.Size(181, 22); this.HotkeysMenuItem.Text = "&Hotkeys..."; this.HotkeysMenuItem.Click += new System.EventHandler(this.HotkeysMenuItem_Click); // @@ -1435,7 +1439,7 @@ // this.DisplayConfigMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("DisplayConfigMenuItem.Image"))); this.DisplayConfigMenuItem.Name = "DisplayConfigMenuItem"; - this.DisplayConfigMenuItem.Size = new System.Drawing.Size(169, 22); + this.DisplayConfigMenuItem.Size = new System.Drawing.Size(181, 22); this.DisplayConfigMenuItem.Text = "Display..."; this.DisplayConfigMenuItem.Click += new System.EventHandler(this.DisplayConfigMenuItem_Click); // @@ -1443,7 +1447,7 @@ // this.SoundMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AudioHS; this.SoundMenuItem.Name = "SoundMenuItem"; - this.SoundMenuItem.Size = new System.Drawing.Size(169, 22); + this.SoundMenuItem.Size = new System.Drawing.Size(181, 22); this.SoundMenuItem.Text = "&Sound..."; this.SoundMenuItem.Click += new System.EventHandler(this.SoundMenuItem_Click); // @@ -1451,7 +1455,7 @@ // this.PathsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CopyFolderHS; this.PathsMenuItem.Name = "PathsMenuItem"; - this.PathsMenuItem.Size = new System.Drawing.Size(169, 22); + this.PathsMenuItem.Size = new System.Drawing.Size(181, 22); this.PathsMenuItem.Text = "Paths..."; this.PathsMenuItem.Click += new System.EventHandler(this.PathsMenuItem_Click); // @@ -1459,7 +1463,7 @@ // this.FirmwaresMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("FirmwaresMenuItem.Image"))); this.FirmwaresMenuItem.Name = "FirmwaresMenuItem"; - this.FirmwaresMenuItem.Size = new System.Drawing.Size(169, 22); + this.FirmwaresMenuItem.Size = new System.Drawing.Size(181, 22); this.FirmwaresMenuItem.Text = "&Firmwares..."; this.FirmwaresMenuItem.Click += new System.EventHandler(this.FirmwaresMenuItem_Click); // @@ -1467,7 +1471,7 @@ // this.MessagesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MessageConfig; this.MessagesMenuItem.Name = "MessagesMenuItem"; - this.MessagesMenuItem.Size = new System.Drawing.Size(169, 22); + this.MessagesMenuItem.Size = new System.Drawing.Size(181, 22); this.MessagesMenuItem.Text = "&Messages..."; this.MessagesMenuItem.Click += new System.EventHandler(this.MessagesMenuItem_Click); // @@ -1475,7 +1479,7 @@ // this.AutofireMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lightning; this.AutofireMenuItem.Name = "AutofireMenuItem"; - this.AutofireMenuItem.Size = new System.Drawing.Size(169, 22); + this.AutofireMenuItem.Size = new System.Drawing.Size(181, 22); this.AutofireMenuItem.Text = "&Autofire..."; this.AutofireMenuItem.Click += new System.EventHandler(this.AutofireMenuItem_Click); // @@ -1483,21 +1487,21 @@ // this.RewindOptionsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Previous; this.RewindOptionsMenuItem.Name = "RewindOptionsMenuItem"; - this.RewindOptionsMenuItem.Size = new System.Drawing.Size(169, 22); + this.RewindOptionsMenuItem.Size = new System.Drawing.Size(181, 22); this.RewindOptionsMenuItem.Text = "&Rewind && States..."; this.RewindOptionsMenuItem.Click += new System.EventHandler(this.RewindOptionsMenuItem_Click); // // extensionsToolStripMenuItem // this.extensionsToolStripMenuItem.Name = "extensionsToolStripMenuItem"; - this.extensionsToolStripMenuItem.Size = new System.Drawing.Size(169, 22); + this.extensionsToolStripMenuItem.Size = new System.Drawing.Size(181, 22); this.extensionsToolStripMenuItem.Text = "File Extensions..."; this.extensionsToolStripMenuItem.Click += new System.EventHandler(this.FileExtensionsMenuItem_Click); // // ClientOptionsMenuItem // this.ClientOptionsMenuItem.Name = "ClientOptionsMenuItem"; - this.ClientOptionsMenuItem.Size = new System.Drawing.Size(169, 22); + this.ClientOptionsMenuItem.Size = new System.Drawing.Size(181, 22); this.ClientOptionsMenuItem.Text = "&Customize..."; this.ClientOptionsMenuItem.Click += new System.EventHandler(this.CustomizeMenuItem_Click); // @@ -1505,14 +1509,14 @@ // this.ProfilesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.user_blue_small; this.ProfilesMenuItem.Name = "ProfilesMenuItem"; - this.ProfilesMenuItem.Size = new System.Drawing.Size(169, 22); + this.ProfilesMenuItem.Size = new System.Drawing.Size(181, 22); this.ProfilesMenuItem.Text = "&Profiles..."; this.ProfilesMenuItem.Click += new System.EventHandler(this.ProfilesMenuItem_Click); // // toolStripSeparator9 // this.toolStripSeparator9.Name = "toolStripSeparator9"; - this.toolStripSeparator9.Size = new System.Drawing.Size(166, 6); + this.toolStripSeparator9.Size = new System.Drawing.Size(178, 6); // // SpeedSkipSubMenu // @@ -1535,66 +1539,66 @@ this.Speed200MenuItem, this.Speed400MenuItem}); this.SpeedSkipSubMenu.Name = "SpeedSkipSubMenu"; - this.SpeedSkipSubMenu.Size = new System.Drawing.Size(169, 22); + this.SpeedSkipSubMenu.Size = new System.Drawing.Size(181, 22); this.SpeedSkipSubMenu.Text = "Speed/Skip"; this.SpeedSkipSubMenu.DropDownOpened += new System.EventHandler(this.FrameSkipMenuItem_DropDownOpened); // // ClockThrottleMenuItem // this.ClockThrottleMenuItem.Name = "ClockThrottleMenuItem"; - this.ClockThrottleMenuItem.Size = new System.Drawing.Size(202, 22); + this.ClockThrottleMenuItem.Size = new System.Drawing.Size(192, 22); this.ClockThrottleMenuItem.Text = "Clock Throttle"; this.ClockThrottleMenuItem.Click += new System.EventHandler(this.ClockThrottleMenuItem_Click); // // AudioThrottleMenuItem // this.AudioThrottleMenuItem.Name = "AudioThrottleMenuItem"; - this.AudioThrottleMenuItem.Size = new System.Drawing.Size(202, 22); + this.AudioThrottleMenuItem.Size = new System.Drawing.Size(192, 22); this.AudioThrottleMenuItem.Text = "Audio Throttle"; this.AudioThrottleMenuItem.Click += new System.EventHandler(this.AudioThrottleMenuItem_Click); // // VsyncThrottleMenuItem // this.VsyncThrottleMenuItem.Name = "VsyncThrottleMenuItem"; - this.VsyncThrottleMenuItem.Size = new System.Drawing.Size(202, 22); + this.VsyncThrottleMenuItem.Size = new System.Drawing.Size(192, 22); this.VsyncThrottleMenuItem.Text = "VSync Throttle"; this.VsyncThrottleMenuItem.Click += new System.EventHandler(this.VsyncThrottleMenuItem_Click); // // toolStripSeparator27 // this.toolStripSeparator27.Name = "toolStripSeparator27"; - this.toolStripSeparator27.Size = new System.Drawing.Size(199, 6); + this.toolStripSeparator27.Size = new System.Drawing.Size(189, 6); // // VsyncEnabledMenuItem // this.VsyncEnabledMenuItem.Name = "VsyncEnabledMenuItem"; - this.VsyncEnabledMenuItem.Size = new System.Drawing.Size(202, 22); + this.VsyncEnabledMenuItem.Size = new System.Drawing.Size(192, 22); this.VsyncEnabledMenuItem.Text = "VSync Enabled"; this.VsyncEnabledMenuItem.Click += new System.EventHandler(this.VsyncEnabledMenuItem_Click); // // toolStripMenuItem3 // this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(199, 6); + this.toolStripMenuItem3.Size = new System.Drawing.Size(189, 6); // // miUnthrottled // this.miUnthrottled.Name = "miUnthrottled"; - this.miUnthrottled.Size = new System.Drawing.Size(202, 22); + this.miUnthrottled.Size = new System.Drawing.Size(192, 22); this.miUnthrottled.Text = "Unthrottled"; this.miUnthrottled.Click += new System.EventHandler(this.miUnthrottled_Click); // // MinimizeSkippingMenuItem // this.MinimizeSkippingMenuItem.Name = "MinimizeSkippingMenuItem"; - this.MinimizeSkippingMenuItem.Size = new System.Drawing.Size(202, 22); + this.MinimizeSkippingMenuItem.Size = new System.Drawing.Size(192, 22); this.MinimizeSkippingMenuItem.Text = "Auto-minimize skipping"; this.MinimizeSkippingMenuItem.Click += new System.EventHandler(this.MinimizeSkippingMenuItem_Click); // // NeverSkipMenuItem // this.NeverSkipMenuItem.Name = "NeverSkipMenuItem"; - this.NeverSkipMenuItem.Size = new System.Drawing.Size(202, 22); + this.NeverSkipMenuItem.Size = new System.Drawing.Size(192, 22); this.NeverSkipMenuItem.Text = "Skip 0 (never)"; this.NeverSkipMenuItem.Click += new System.EventHandler(this.NeverSkipMenuItem_Click); // @@ -1611,116 +1615,116 @@ this.Frameskip8MenuItem, this.Frameskip9MenuItem}); this.toolStripMenuItem17.Name = "toolStripMenuItem17"; - this.toolStripMenuItem17.Size = new System.Drawing.Size(202, 22); + this.toolStripMenuItem17.Size = new System.Drawing.Size(192, 22); this.toolStripMenuItem17.Text = "Skip 1..9"; // // Frameskip1MenuItem // this.Frameskip1MenuItem.Name = "Frameskip1MenuItem"; - this.Frameskip1MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip1MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip1MenuItem.Text = "1"; this.Frameskip1MenuItem.Click += new System.EventHandler(this.Frameskip1MenuItem_Click); // // Frameskip2MenuItem // this.Frameskip2MenuItem.Name = "Frameskip2MenuItem"; - this.Frameskip2MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip2MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip2MenuItem.Text = "2"; this.Frameskip2MenuItem.Click += new System.EventHandler(this.Frameskip2MenuItem_Click); // // Frameskip3MenuItem // this.Frameskip3MenuItem.Name = "Frameskip3MenuItem"; - this.Frameskip3MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip3MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip3MenuItem.Text = "3"; this.Frameskip3MenuItem.Click += new System.EventHandler(this.Frameskip3MenuItem_Click); // // Frameskip4MenuItem // this.Frameskip4MenuItem.Name = "Frameskip4MenuItem"; - this.Frameskip4MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip4MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip4MenuItem.Text = "4"; this.Frameskip4MenuItem.Click += new System.EventHandler(this.Frameskip4MenuItem_Click); // // Frameskip5MenuItem // this.Frameskip5MenuItem.Name = "Frameskip5MenuItem"; - this.Frameskip5MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip5MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip5MenuItem.Text = "5"; this.Frameskip5MenuItem.Click += new System.EventHandler(this.Frameskip5MenuItem_Click); // // Frameskip6MenuItem // this.Frameskip6MenuItem.Name = "Frameskip6MenuItem"; - this.Frameskip6MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip6MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip6MenuItem.Text = "6"; this.Frameskip6MenuItem.Click += new System.EventHandler(this.Frameskip6MenuItem_Click); // // Frameskip7MenuItem // this.Frameskip7MenuItem.Name = "Frameskip7MenuItem"; - this.Frameskip7MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip7MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip7MenuItem.Text = "7"; this.Frameskip7MenuItem.Click += new System.EventHandler(this.Frameskip7MenuItem_Click); // // Frameskip8MenuItem // this.Frameskip8MenuItem.Name = "Frameskip8MenuItem"; - this.Frameskip8MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip8MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip8MenuItem.Text = "8"; this.Frameskip8MenuItem.Click += new System.EventHandler(this.Frameskip8MenuItem_Click); // // Frameskip9MenuItem // this.Frameskip9MenuItem.Name = "Frameskip9MenuItem"; - this.Frameskip9MenuItem.Size = new System.Drawing.Size(80, 22); + this.Frameskip9MenuItem.Size = new System.Drawing.Size(91, 22); this.Frameskip9MenuItem.Text = "9"; this.Frameskip9MenuItem.Click += new System.EventHandler(this.Frameskip9MenuItem_Click); // // toolStripMenuItem5 // this.toolStripMenuItem5.Name = "toolStripMenuItem5"; - this.toolStripMenuItem5.Size = new System.Drawing.Size(199, 6); + this.toolStripMenuItem5.Size = new System.Drawing.Size(189, 6); // // Speed50MenuItem // this.Speed50MenuItem.Name = "Speed50MenuItem"; - this.Speed50MenuItem.Size = new System.Drawing.Size(202, 22); + this.Speed50MenuItem.Size = new System.Drawing.Size(192, 22); this.Speed50MenuItem.Text = "Speed 50%"; this.Speed50MenuItem.Click += new System.EventHandler(this.Speed50MenuItem_Click); // // Speed75MenuItem // this.Speed75MenuItem.Name = "Speed75MenuItem"; - this.Speed75MenuItem.Size = new System.Drawing.Size(202, 22); + this.Speed75MenuItem.Size = new System.Drawing.Size(192, 22); this.Speed75MenuItem.Text = "Speed 75%"; this.Speed75MenuItem.Click += new System.EventHandler(this.Speed75MenuItem_Click); // // Speed100MenuItem // this.Speed100MenuItem.Name = "Speed100MenuItem"; - this.Speed100MenuItem.Size = new System.Drawing.Size(202, 22); + this.Speed100MenuItem.Size = new System.Drawing.Size(192, 22); this.Speed100MenuItem.Text = "Speed 100%"; this.Speed100MenuItem.Click += new System.EventHandler(this.Speed100MenuItem_Click); // // Speed150MenuItem // this.Speed150MenuItem.Name = "Speed150MenuItem"; - this.Speed150MenuItem.Size = new System.Drawing.Size(202, 22); + this.Speed150MenuItem.Size = new System.Drawing.Size(192, 22); this.Speed150MenuItem.Text = "Speed 150%"; this.Speed150MenuItem.Click += new System.EventHandler(this.Speed150MenuItem_Click); // // Speed200MenuItem // this.Speed200MenuItem.Name = "Speed200MenuItem"; - this.Speed200MenuItem.Size = new System.Drawing.Size(202, 22); + this.Speed200MenuItem.Size = new System.Drawing.Size(192, 22); this.Speed200MenuItem.Text = "Speed 200%"; this.Speed200MenuItem.Click += new System.EventHandler(this.Speed200MenuItem_Click); // // Speed400MenuItem // this.Speed400MenuItem.Name = "Speed400MenuItem"; - this.Speed400MenuItem.Size = new System.Drawing.Size(202, 22); + this.Speed400MenuItem.Size = new System.Drawing.Size(192, 22); this.Speed400MenuItem.Text = "Speed 400%"; this.Speed400MenuItem.Click += new System.EventHandler(this.Speed400MenuItem_Click); // @@ -1731,28 +1735,28 @@ this.InputOverHkMenuItem, this.HkOverInputMenuItem}); this.KeyPrioritySubMenu.Name = "KeyPrioritySubMenu"; - this.KeyPrioritySubMenu.Size = new System.Drawing.Size(169, 22); + this.KeyPrioritySubMenu.Size = new System.Drawing.Size(181, 22); this.KeyPrioritySubMenu.Text = "Key Priority"; this.KeyPrioritySubMenu.DropDownOpened += new System.EventHandler(this.KeyPriorityMenuItem_DropDownOpened); // // BothHkAndControllerMenuItem // this.BothHkAndControllerMenuItem.Name = "BothHkAndControllerMenuItem"; - this.BothHkAndControllerMenuItem.Size = new System.Drawing.Size(229, 22); + this.BothHkAndControllerMenuItem.Size = new System.Drawing.Size(225, 22); this.BothHkAndControllerMenuItem.Text = "Both Hotkeys and Controllers"; this.BothHkAndControllerMenuItem.Click += new System.EventHandler(this.BothHkAndControllerMenuItem_Click); // // InputOverHkMenuItem // this.InputOverHkMenuItem.Name = "InputOverHkMenuItem"; - this.InputOverHkMenuItem.Size = new System.Drawing.Size(229, 22); + this.InputOverHkMenuItem.Size = new System.Drawing.Size(225, 22); this.InputOverHkMenuItem.Text = "Input overrides Hotkeys"; this.InputOverHkMenuItem.Click += new System.EventHandler(this.InputOverHkMenuItem_Click); // // HkOverInputMenuItem // this.HkOverInputMenuItem.Name = "HkOverInputMenuItem"; - this.HkOverInputMenuItem.Size = new System.Drawing.Size(229, 22); + this.HkOverInputMenuItem.Size = new System.Drawing.Size(225, 22); this.HkOverInputMenuItem.Text = "Hotkeys override Input"; this.HkOverInputMenuItem.Click += new System.EventHandler(this.HkOverInputMenuItem_Click); // @@ -1767,76 +1771,83 @@ this.N64VideoPluginSettingsMenuItem, this.setLibretroCoreToolStripMenuItem}); this.CoresSubMenu.Name = "CoresSubMenu"; - this.CoresSubMenu.Size = new System.Drawing.Size(169, 22); + this.CoresSubMenu.Size = new System.Drawing.Size(181, 22); this.CoresSubMenu.Text = "Cores"; this.CoresSubMenu.DropDownOpened += new System.EventHandler(this.CoresSubMenu_DropDownOpened); // // GBInSGBMenuItem // this.GBInSGBMenuItem.Name = "GBInSGBMenuItem"; - this.GBInSGBMenuItem.Size = new System.Drawing.Size(210, 22); + this.GBInSGBMenuItem.Size = new System.Drawing.Size(206, 22); this.GBInSGBMenuItem.Text = "GB in SGB"; this.GBInSGBMenuItem.Click += new System.EventHandler(this.GBInSGBMenuItem_Click); // // NesInQuickNESMenuItem // this.NesInQuickNESMenuItem.Name = "NesInQuickNESMenuItem"; - this.NesInQuickNESMenuItem.Size = new System.Drawing.Size(210, 22); + this.NesInQuickNESMenuItem.Size = new System.Drawing.Size(206, 22); this.NesInQuickNESMenuItem.Text = "NES with QuickNES"; this.NesInQuickNESMenuItem.Click += new System.EventHandler(this.NesInQuickNESMenuItem_Click); // // SnesWithSnes9xMenuItem // this.SnesWithSnes9xMenuItem.Name = "SnesWithSnes9xMenuItem"; - this.SnesWithSnes9xMenuItem.Size = new System.Drawing.Size(210, 22); + this.SnesWithSnes9xMenuItem.Size = new System.Drawing.Size(206, 22); this.SnesWithSnes9xMenuItem.Text = "SNES with Snes9x"; this.SnesWithSnes9xMenuItem.Click += new System.EventHandler(this.SnesWithSnes9xMenuItem_Click); // // gBAWithMGBAToolStripMenuItem // this.gBAWithMGBAToolStripMenuItem.Name = "gBAWithMGBAToolStripMenuItem"; - this.gBAWithMGBAToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.gBAWithMGBAToolStripMenuItem.Size = new System.Drawing.Size(206, 22); this.gBAWithMGBAToolStripMenuItem.Text = "GBA with mGBA"; this.gBAWithMGBAToolStripMenuItem.Click += new System.EventHandler(this.gBAWithMGBAToolStripMenuItem_Click); // // toolStripSeparator8 // this.toolStripSeparator8.Name = "toolStripSeparator8"; - this.toolStripSeparator8.Size = new System.Drawing.Size(207, 6); + this.toolStripSeparator8.Size = new System.Drawing.Size(203, 6); // // N64VideoPluginSettingsMenuItem // this.N64VideoPluginSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.monitor; this.N64VideoPluginSettingsMenuItem.Name = "N64VideoPluginSettingsMenuItem"; - this.N64VideoPluginSettingsMenuItem.Size = new System.Drawing.Size(210, 22); + this.N64VideoPluginSettingsMenuItem.Size = new System.Drawing.Size(206, 22); this.N64VideoPluginSettingsMenuItem.Text = "N64 Video Plugin Settings"; this.N64VideoPluginSettingsMenuItem.Click += new System.EventHandler(this.N64VideoPluginSettingsMenuItem_Click); // // setLibretroCoreToolStripMenuItem // this.setLibretroCoreToolStripMenuItem.Name = "setLibretroCoreToolStripMenuItem"; - this.setLibretroCoreToolStripMenuItem.Size = new System.Drawing.Size(210, 22); + this.setLibretroCoreToolStripMenuItem.Size = new System.Drawing.Size(206, 22); this.setLibretroCoreToolStripMenuItem.Text = "Set Libretro Core"; this.setLibretroCoreToolStripMenuItem.Click += new System.EventHandler(this.setLibretroCoreToolStripMenuItem_Click); // // toolStripSeparator10 // this.toolStripSeparator10.Name = "toolStripSeparator10"; - this.toolStripSeparator10.Size = new System.Drawing.Size(166, 6); + this.toolStripSeparator10.Size = new System.Drawing.Size(178, 6); // // SaveConfigMenuItem // this.SaveConfigMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Save; this.SaveConfigMenuItem.Name = "SaveConfigMenuItem"; - this.SaveConfigMenuItem.Size = new System.Drawing.Size(169, 22); + this.SaveConfigMenuItem.Size = new System.Drawing.Size(181, 22); this.SaveConfigMenuItem.Text = "Save Config"; this.SaveConfigMenuItem.Click += new System.EventHandler(this.SaveConfigMenuItem_Click); // + // SaveConfigAsMenuItem + // + this.SaveConfigAsMenuItem.Name = "SaveConfigAsMenuItem"; + this.SaveConfigAsMenuItem.Size = new System.Drawing.Size(181, 22); + this.SaveConfigAsMenuItem.Text = "Save Config As..."; + this.SaveConfigAsMenuItem.Click += new System.EventHandler(this.SaveConfigAsMenuItem_Click); + // // LoadConfigMenuItem // this.LoadConfigMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.LoadConfig; this.LoadConfigMenuItem.Name = "LoadConfigMenuItem"; - this.LoadConfigMenuItem.Size = new System.Drawing.Size(169, 22); + this.LoadConfigMenuItem.Size = new System.Drawing.Size(181, 22); this.LoadConfigMenuItem.Text = "Load Config"; this.LoadConfigMenuItem.Click += new System.EventHandler(this.LoadConfigMenuItem_Click); // @@ -1865,7 +1876,7 @@ this.batchRunnerToolStripMenuItem, this.ExperimentalToolsSubMenu}); this.ToolsSubMenu.Name = "ToolsSubMenu"; - this.ToolsSubMenu.Size = new System.Drawing.Size(48, 19); + this.ToolsSubMenu.Size = new System.Drawing.Size(44, 17); this.ToolsSubMenu.Text = "&Tools"; this.ToolsSubMenu.DropDownOpened += new System.EventHandler(this.ToolsSubMenu_DropDownOpened); // @@ -1873,20 +1884,20 @@ // this.ToolBoxMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.ToolBox; this.ToolBoxMenuItem.Name = "ToolBoxMenuItem"; - this.ToolBoxMenuItem.Size = new System.Drawing.Size(189, 22); + this.ToolBoxMenuItem.Size = new System.Drawing.Size(191, 22); this.ToolBoxMenuItem.Text = "&Tool Box"; this.ToolBoxMenuItem.Click += new System.EventHandler(this.ToolBoxMenuItem_Click); // // toolStripSeparator12 // this.toolStripSeparator12.Name = "toolStripSeparator12"; - this.toolStripSeparator12.Size = new System.Drawing.Size(186, 6); + this.toolStripSeparator12.Size = new System.Drawing.Size(188, 6); // // RamWatchMenuItem // this.RamWatchMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.watch; this.RamWatchMenuItem.Name = "RamWatchMenuItem"; - this.RamWatchMenuItem.Size = new System.Drawing.Size(189, 22); + this.RamWatchMenuItem.Size = new System.Drawing.Size(191, 22); this.RamWatchMenuItem.Text = "RAM &Watch"; this.RamWatchMenuItem.Click += new System.EventHandler(this.RamWatchMenuItem_Click); // @@ -1894,7 +1905,7 @@ // this.RamSearchMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.search; this.RamSearchMenuItem.Name = "RamSearchMenuItem"; - this.RamSearchMenuItem.Size = new System.Drawing.Size(189, 22); + this.RamSearchMenuItem.Size = new System.Drawing.Size(191, 22); this.RamSearchMenuItem.Text = "RAM &Search"; this.RamSearchMenuItem.Click += new System.EventHandler(this.RamSearchMenuItem_Click); // @@ -1902,7 +1913,7 @@ // this.HexEditorMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.poke; this.HexEditorMenuItem.Name = "HexEditorMenuItem"; - this.HexEditorMenuItem.Size = new System.Drawing.Size(189, 22); + this.HexEditorMenuItem.Size = new System.Drawing.Size(191, 22); this.HexEditorMenuItem.Text = "&Hex Editor"; this.HexEditorMenuItem.Click += new System.EventHandler(this.HexEditorMenuItem_Click); // @@ -1910,7 +1921,7 @@ // this.TraceLoggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.pencil; this.TraceLoggerMenuItem.Name = "TraceLoggerMenuItem"; - this.TraceLoggerMenuItem.Size = new System.Drawing.Size(189, 22); + this.TraceLoggerMenuItem.Size = new System.Drawing.Size(191, 22); this.TraceLoggerMenuItem.Text = "Trace &Logger"; this.TraceLoggerMenuItem.Click += new System.EventHandler(this.TraceLoggerMenuItem_Click); // @@ -1918,7 +1929,7 @@ // this.CodeDataLoggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.cdlogger; this.CodeDataLoggerMenuItem.Name = "CodeDataLoggerMenuItem"; - this.CodeDataLoggerMenuItem.Size = new System.Drawing.Size(189, 22); + this.CodeDataLoggerMenuItem.Size = new System.Drawing.Size(191, 22); this.CodeDataLoggerMenuItem.Text = "Code-Data Logger"; this.CodeDataLoggerMenuItem.Click += new System.EventHandler(this.CodeDataLoggerMenuItem_Click); // @@ -1926,7 +1937,7 @@ // this.DebuggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Bug; this.DebuggerMenuItem.Name = "DebuggerMenuItem"; - this.DebuggerMenuItem.Size = new System.Drawing.Size(189, 22); + this.DebuggerMenuItem.Size = new System.Drawing.Size(191, 22); this.DebuggerMenuItem.Text = "&Debugger"; this.DebuggerMenuItem.Click += new System.EventHandler(this.DebuggerMenuItem_Click); // @@ -1934,14 +1945,14 @@ // this.TAStudioMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.TAStudio; this.TAStudioMenuItem.Name = "TAStudioMenuItem"; - this.TAStudioMenuItem.Size = new System.Drawing.Size(189, 22); + this.TAStudioMenuItem.Size = new System.Drawing.Size(191, 22); this.TAStudioMenuItem.Text = "&TAStudio"; this.TAStudioMenuItem.Click += new System.EventHandler(this.TAStudioMenuItem_Click); // // MacroToolMenuItem // this.MacroToolMenuItem.Name = "MacroToolMenuItem"; - this.MacroToolMenuItem.Size = new System.Drawing.Size(189, 22); + this.MacroToolMenuItem.Size = new System.Drawing.Size(191, 22); this.MacroToolMenuItem.Text = "&Macro Tool"; this.MacroToolMenuItem.Click += new System.EventHandler(this.MacroToolMenuItem_Click); // @@ -1949,14 +1960,14 @@ // this.VirtualPadMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.VirtualPadMenuItem.Name = "VirtualPadMenuItem"; - this.VirtualPadMenuItem.Size = new System.Drawing.Size(189, 22); + this.VirtualPadMenuItem.Size = new System.Drawing.Size(191, 22); this.VirtualPadMenuItem.Text = "Virtual Pad"; this.VirtualPadMenuItem.Click += new System.EventHandler(this.VirtualPadMenuItem_Click); // // BasicBotMenuItem // this.BasicBotMenuItem.Name = "BasicBotMenuItem"; - this.BasicBotMenuItem.Size = new System.Drawing.Size(189, 22); + this.BasicBotMenuItem.Size = new System.Drawing.Size(191, 22); this.BasicBotMenuItem.Text = "Basic Bot"; this.BasicBotMenuItem.Click += new System.EventHandler(this.BasicBotMenuItem_Click); // @@ -1964,20 +1975,20 @@ // this.LuaConsoleMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lua; this.LuaConsoleMenuItem.Name = "LuaConsoleMenuItem"; - this.LuaConsoleMenuItem.Size = new System.Drawing.Size(189, 22); + this.LuaConsoleMenuItem.Size = new System.Drawing.Size(191, 22); this.LuaConsoleMenuItem.Text = "Lua Console"; this.LuaConsoleMenuItem.Click += new System.EventHandler(this.LuaConsoleMenuItem_Click); // // toolStripSeparator11 // this.toolStripSeparator11.Name = "toolStripSeparator11"; - this.toolStripSeparator11.Size = new System.Drawing.Size(186, 6); + this.toolStripSeparator11.Size = new System.Drawing.Size(188, 6); // // CheatsMenuItem // this.CheatsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Freeze; this.CheatsMenuItem.Name = "CheatsMenuItem"; - this.CheatsMenuItem.Size = new System.Drawing.Size(189, 22); + this.CheatsMenuItem.Size = new System.Drawing.Size(191, 22); this.CheatsMenuItem.Text = "Cheats"; this.CheatsMenuItem.Click += new System.EventHandler(this.CheatsMenuItem_Click); // @@ -1985,20 +1996,20 @@ // this.gameSharkConverterToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("gameSharkConverterToolStripMenuItem.Image"))); this.gameSharkConverterToolStripMenuItem.Name = "gameSharkConverterToolStripMenuItem"; - this.gameSharkConverterToolStripMenuItem.Size = new System.Drawing.Size(189, 22); + this.gameSharkConverterToolStripMenuItem.Size = new System.Drawing.Size(191, 22); this.gameSharkConverterToolStripMenuItem.Text = "GameShark Converter"; this.gameSharkConverterToolStripMenuItem.Click += new System.EventHandler(this.gameSharkConverterToolStripMenuItem_Click); // // toolStripSeparator29 // this.toolStripSeparator29.Name = "toolStripSeparator29"; - this.toolStripSeparator29.Size = new System.Drawing.Size(186, 6); + this.toolStripSeparator29.Size = new System.Drawing.Size(188, 6); // // MultiDiskBundlerFileMenuItem // this.MultiDiskBundlerFileMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveConfig; this.MultiDiskBundlerFileMenuItem.Name = "MultiDiskBundlerFileMenuItem"; - this.MultiDiskBundlerFileMenuItem.Size = new System.Drawing.Size(189, 22); + this.MultiDiskBundlerFileMenuItem.Size = new System.Drawing.Size(191, 22); this.MultiDiskBundlerFileMenuItem.Text = "Multi-disk Bundler"; this.MultiDiskBundlerFileMenuItem.Click += new System.EventHandler(this.CreateMultigameFileMenuItem_Click); // @@ -2007,20 +2018,20 @@ this.externalToolToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.dummyExternalTool}); this.externalToolToolStripMenuItem.Name = "externalToolToolStripMenuItem"; - this.externalToolToolStripMenuItem.Size = new System.Drawing.Size(189, 22); + this.externalToolToolStripMenuItem.Size = new System.Drawing.Size(191, 22); this.externalToolToolStripMenuItem.Text = "External Tool"; this.externalToolToolStripMenuItem.DropDownOpening += new System.EventHandler(this.ExternalToolToolStripMenuItem_DropDownOpening); // // dummyExternalTool // this.dummyExternalTool.Name = "dummyExternalTool"; - this.dummyExternalTool.Size = new System.Drawing.Size(103, 22); + this.dummyExternalTool.Size = new System.Drawing.Size(110, 22); this.dummyExternalTool.Text = "None"; // // batchRunnerToolStripMenuItem // this.batchRunnerToolStripMenuItem.Name = "batchRunnerToolStripMenuItem"; - this.batchRunnerToolStripMenuItem.Size = new System.Drawing.Size(189, 22); + this.batchRunnerToolStripMenuItem.Size = new System.Drawing.Size(191, 22); this.batchRunnerToolStripMenuItem.Text = "Batch Runner"; this.batchRunnerToolStripMenuItem.Visible = false; this.batchRunnerToolStripMenuItem.Click += new System.EventHandler(this.batchRunnerToolStripMenuItem_Click); @@ -2031,20 +2042,20 @@ this.AutoHawkMenuItem, this.NewHexEditorMenuItem}); this.ExperimentalToolsSubMenu.Name = "ExperimentalToolsSubMenu"; - this.ExperimentalToolsSubMenu.Size = new System.Drawing.Size(189, 22); + this.ExperimentalToolsSubMenu.Size = new System.Drawing.Size(191, 22); this.ExperimentalToolsSubMenu.Text = "Experimental Tools"; this.ExperimentalToolsSubMenu.DropDownOpened += new System.EventHandler(this.ExperimentalToolsSubMenu_DropDownOpened); // // AutoHawkMenuItem // this.AutoHawkMenuItem.Name = "AutoHawkMenuItem"; - this.AutoHawkMenuItem.Size = new System.Drawing.Size(155, 22); + this.AutoHawkMenuItem.Size = new System.Drawing.Size(159, 22); this.AutoHawkMenuItem.Text = "AutoHawk"; // // NewHexEditorMenuItem // this.NewHexEditorMenuItem.Name = "NewHexEditorMenuItem"; - this.NewHexEditorMenuItem.Size = new System.Drawing.Size(155, 22); + this.NewHexEditorMenuItem.Size = new System.Drawing.Size(159, 22); this.NewHexEditorMenuItem.Text = "New Hex Editor"; this.NewHexEditorMenuItem.Click += new System.EventHandler(this.NewHexEditorMenuItem_Click); // @@ -2066,7 +2077,7 @@ this.FDSControlsMenuItem, this.barcodeReaderToolStripMenuItem}); this.NESSubMenu.Name = "NESSubMenu"; - this.NESSubMenu.Size = new System.Drawing.Size(40, 19); + this.NESSubMenu.Size = new System.Drawing.Size(38, 17); this.NESSubMenu.Text = "&NES"; this.NESSubMenu.DropDownOpened += new System.EventHandler(this.NESSubMenu_DropDownOpened); // @@ -2076,67 +2087,67 @@ this.quickNESToolStripMenuItem, this.nesHawkToolStripMenuItem}); this.coreToolStripMenuItem.Name = "coreToolStripMenuItem"; - this.coreToolStripMenuItem.Size = new System.Drawing.Size(233, 22); + this.coreToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.coreToolStripMenuItem.Text = "&Core"; this.coreToolStripMenuItem.DropDownOpened += new System.EventHandler(this.coreToolStripMenuItem_DropDownOpened); // // quickNESToolStripMenuItem // this.quickNESToolStripMenuItem.Name = "quickNESToolStripMenuItem"; - this.quickNESToolStripMenuItem.Size = new System.Drawing.Size(125, 22); + this.quickNESToolStripMenuItem.Size = new System.Drawing.Size(129, 22); this.quickNESToolStripMenuItem.Text = "&QuickNes"; this.quickNESToolStripMenuItem.Click += new System.EventHandler(this.quickNESToolStripMenuItem_Click); // // nesHawkToolStripMenuItem // this.nesHawkToolStripMenuItem.Name = "nesHawkToolStripMenuItem"; - this.nesHawkToolStripMenuItem.Size = new System.Drawing.Size(125, 22); + this.nesHawkToolStripMenuItem.Size = new System.Drawing.Size(129, 22); this.nesHawkToolStripMenuItem.Text = "&NesHawk"; this.nesHawkToolStripMenuItem.Click += new System.EventHandler(this.nesHawkToolStripMenuItem_Click); // // toolStripSeparator34 // this.toolStripSeparator34.Name = "toolStripSeparator34"; - this.toolStripSeparator34.Size = new System.Drawing.Size(230, 6); + this.toolStripSeparator34.Size = new System.Drawing.Size(225, 6); // // NESPPUViewerMenuItem // this.NESPPUViewerMenuItem.Name = "NESPPUViewerMenuItem"; - this.NESPPUViewerMenuItem.Size = new System.Drawing.Size(233, 22); + this.NESPPUViewerMenuItem.Size = new System.Drawing.Size(228, 22); this.NESPPUViewerMenuItem.Text = "&PPU Viewer"; this.NESPPUViewerMenuItem.Click += new System.EventHandler(this.NESPPUViewerMenuItem_Click); // // NESNametableViewerMenuItem // this.NESNametableViewerMenuItem.Name = "NESNametableViewerMenuItem"; - this.NESNametableViewerMenuItem.Size = new System.Drawing.Size(233, 22); + this.NESNametableViewerMenuItem.Size = new System.Drawing.Size(228, 22); this.NESNametableViewerMenuItem.Text = "&Nametable Viewer"; this.NESNametableViewerMenuItem.Click += new System.EventHandler(this.NESNametableViewerMenuItem_Click); // // NESGameGenieCodesMenuItem // this.NESGameGenieCodesMenuItem.Name = "NESGameGenieCodesMenuItem"; - this.NESGameGenieCodesMenuItem.Size = new System.Drawing.Size(233, 22); + this.NESGameGenieCodesMenuItem.Size = new System.Drawing.Size(228, 22); this.NESGameGenieCodesMenuItem.Text = "&Game Genie Encoder/Decoder"; this.NESGameGenieCodesMenuItem.Click += new System.EventHandler(this.NESGameGenieCodesMenuItem_Click); // // musicRipperToolStripMenuItem // this.musicRipperToolStripMenuItem.Name = "musicRipperToolStripMenuItem"; - this.musicRipperToolStripMenuItem.Size = new System.Drawing.Size(233, 22); + this.musicRipperToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.musicRipperToolStripMenuItem.Text = "Music Ripper"; this.musicRipperToolStripMenuItem.Click += new System.EventHandler(this.musicRipperToolStripMenuItem_Click); // // toolStripSeparator17 // this.toolStripSeparator17.Name = "toolStripSeparator17"; - this.toolStripSeparator17.Size = new System.Drawing.Size(230, 6); + this.toolStripSeparator17.Size = new System.Drawing.Size(225, 6); // // NesControllerSettingsMenuItem // this.NesControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.NesControllerSettingsMenuItem.Name = "NesControllerSettingsMenuItem"; - this.NesControllerSettingsMenuItem.Size = new System.Drawing.Size(233, 22); + this.NesControllerSettingsMenuItem.Size = new System.Drawing.Size(228, 22); this.NesControllerSettingsMenuItem.Text = "Controller Settings..."; this.NesControllerSettingsMenuItem.Click += new System.EventHandler(this.NesControllerSettingsMenuItem_Click); // @@ -2144,7 +2155,7 @@ // this.NESGraphicSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.tvIcon; this.NESGraphicSettingsMenuItem.Name = "NESGraphicSettingsMenuItem"; - this.NESGraphicSettingsMenuItem.Size = new System.Drawing.Size(233, 22); + this.NESGraphicSettingsMenuItem.Size = new System.Drawing.Size(228, 22); this.NESGraphicSettingsMenuItem.Text = "Graphics Settings..."; this.NESGraphicSettingsMenuItem.Click += new System.EventHandler(this.NESGraphicSettingsMenuItem_Click); // @@ -2152,42 +2163,42 @@ // this.NESSoundChannelsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AudioHS; this.NESSoundChannelsMenuItem.Name = "NESSoundChannelsMenuItem"; - this.NESSoundChannelsMenuItem.Size = new System.Drawing.Size(233, 22); + this.NESSoundChannelsMenuItem.Size = new System.Drawing.Size(228, 22); this.NESSoundChannelsMenuItem.Text = "Sound Channels..."; this.NESSoundChannelsMenuItem.Click += new System.EventHandler(this.NESSoundChannelsMenuItem_Click); // // MovieSettingsMenuItem // this.MovieSettingsMenuItem.Name = "MovieSettingsMenuItem"; - this.MovieSettingsMenuItem.Size = new System.Drawing.Size(233, 22); + this.MovieSettingsMenuItem.Size = new System.Drawing.Size(228, 22); this.MovieSettingsMenuItem.Text = "Advanced Settings..."; this.MovieSettingsMenuItem.Click += new System.EventHandler(this.MovieSettingsMenuItem_Click); // // toolStripSeparator22 // this.toolStripSeparator22.Name = "toolStripSeparator22"; - this.toolStripSeparator22.Size = new System.Drawing.Size(230, 6); + this.toolStripSeparator22.Size = new System.Drawing.Size(225, 6); // // FDSControlsMenuItem // this.FDSControlsMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.FdsEjectDiskMenuItem}); this.FDSControlsMenuItem.Name = "FDSControlsMenuItem"; - this.FDSControlsMenuItem.Size = new System.Drawing.Size(233, 22); + this.FDSControlsMenuItem.Size = new System.Drawing.Size(228, 22); this.FDSControlsMenuItem.Text = "FDS Controls"; this.FDSControlsMenuItem.DropDownOpened += new System.EventHandler(this.FdsControlsMenuItem_DropDownOpened); // // FdsEjectDiskMenuItem // this.FdsEjectDiskMenuItem.Name = "FdsEjectDiskMenuItem"; - this.FdsEjectDiskMenuItem.Size = new System.Drawing.Size(124, 22); + this.FdsEjectDiskMenuItem.Size = new System.Drawing.Size(131, 22); this.FdsEjectDiskMenuItem.Text = "&Eject Disk"; this.FdsEjectDiskMenuItem.Click += new System.EventHandler(this.FdsEjectDiskMenuItem_Click); // // barcodeReaderToolStripMenuItem // this.barcodeReaderToolStripMenuItem.Name = "barcodeReaderToolStripMenuItem"; - this.barcodeReaderToolStripMenuItem.Size = new System.Drawing.Size(233, 22); + this.barcodeReaderToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.barcodeReaderToolStripMenuItem.Text = "Barcode Reader"; this.barcodeReaderToolStripMenuItem.Click += new System.EventHandler(this.barcodeReaderToolStripMenuItem_Click); // @@ -2205,7 +2216,7 @@ this.PCEAlwaysEqualizeVolumesMenuItem, this.PCEArcadeCardRewindEnableMenuItem}); this.PCESubMenu.Name = "PCESubMenu"; - this.PCESubMenu.Size = new System.Drawing.Size(40, 19); + this.PCESubMenu.Size = new System.Drawing.Size(38, 17); this.PCESubMenu.Text = "&PCE"; this.PCESubMenu.DropDownOpened += new System.EventHandler(this.PCESubMenu_DropDownOpened); // @@ -2213,7 +2224,7 @@ // this.PceControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.PceControllerSettingsMenuItem.Name = "PceControllerSettingsMenuItem"; - this.PceControllerSettingsMenuItem.Size = new System.Drawing.Size(259, 22); + this.PceControllerSettingsMenuItem.Size = new System.Drawing.Size(251, 22); this.PceControllerSettingsMenuItem.Text = "Controller Settings"; this.PceControllerSettingsMenuItem.Click += new System.EventHandler(this.PceControllerSettingsMenuItem_Click); // @@ -2221,59 +2232,59 @@ // this.PCEGraphicsSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.tvIcon; this.PCEGraphicsSettingsMenuItem.Name = "PCEGraphicsSettingsMenuItem"; - this.PCEGraphicsSettingsMenuItem.Size = new System.Drawing.Size(259, 22); + this.PCEGraphicsSettingsMenuItem.Size = new System.Drawing.Size(251, 22); this.PCEGraphicsSettingsMenuItem.Text = "Graphics Settings"; this.PCEGraphicsSettingsMenuItem.Click += new System.EventHandler(this.PCEGraphicsSettingsMenuItem_Click); // // toolStripSeparator32 // this.toolStripSeparator32.Name = "toolStripSeparator32"; - this.toolStripSeparator32.Size = new System.Drawing.Size(256, 6); + this.toolStripSeparator32.Size = new System.Drawing.Size(248, 6); // // PCEBGViewerMenuItem // this.PCEBGViewerMenuItem.Name = "PCEBGViewerMenuItem"; - this.PCEBGViewerMenuItem.Size = new System.Drawing.Size(259, 22); + this.PCEBGViewerMenuItem.Size = new System.Drawing.Size(251, 22); this.PCEBGViewerMenuItem.Text = "&BG Viewer"; this.PCEBGViewerMenuItem.Click += new System.EventHandler(this.PCEBGViewerMenuItem_Click); // // PCEtileViewerToolStripMenuItem // this.PCEtileViewerToolStripMenuItem.Name = "PCEtileViewerToolStripMenuItem"; - this.PCEtileViewerToolStripMenuItem.Size = new System.Drawing.Size(259, 22); + this.PCEtileViewerToolStripMenuItem.Size = new System.Drawing.Size(251, 22); this.PCEtileViewerToolStripMenuItem.Text = "&Tile Viewer"; this.PCEtileViewerToolStripMenuItem.Click += new System.EventHandler(this.PceTileViewerMenuItem_Click); // // PceSoundDebuggerToolStripMenuItem // this.PceSoundDebuggerToolStripMenuItem.Name = "PceSoundDebuggerToolStripMenuItem"; - this.PceSoundDebuggerToolStripMenuItem.Size = new System.Drawing.Size(259, 22); + this.PceSoundDebuggerToolStripMenuItem.Size = new System.Drawing.Size(251, 22); this.PceSoundDebuggerToolStripMenuItem.Text = "&Sound Debugger"; this.PceSoundDebuggerToolStripMenuItem.Click += new System.EventHandler(this.PceSoundDebuggerToolStripMenuItem_Click); // // toolStripSeparator25 // this.toolStripSeparator25.Name = "toolStripSeparator25"; - this.toolStripSeparator25.Size = new System.Drawing.Size(256, 6); + this.toolStripSeparator25.Size = new System.Drawing.Size(248, 6); // // PCEAlwaysPerformSpriteLimitMenuItem // this.PCEAlwaysPerformSpriteLimitMenuItem.Name = "PCEAlwaysPerformSpriteLimitMenuItem"; - this.PCEAlwaysPerformSpriteLimitMenuItem.Size = new System.Drawing.Size(259, 22); + this.PCEAlwaysPerformSpriteLimitMenuItem.Size = new System.Drawing.Size(251, 22); this.PCEAlwaysPerformSpriteLimitMenuItem.Text = "Always Perform Sprite Limit"; this.PCEAlwaysPerformSpriteLimitMenuItem.Click += new System.EventHandler(this.PCEAlwaysPerformSpriteLimitMenuItem_Click); // // PCEAlwaysEqualizeVolumesMenuItem // this.PCEAlwaysEqualizeVolumesMenuItem.Name = "PCEAlwaysEqualizeVolumesMenuItem"; - this.PCEAlwaysEqualizeVolumesMenuItem.Size = new System.Drawing.Size(259, 22); + this.PCEAlwaysEqualizeVolumesMenuItem.Size = new System.Drawing.Size(251, 22); this.PCEAlwaysEqualizeVolumesMenuItem.Text = "Always Equalize Volumes (PCE-CD)"; this.PCEAlwaysEqualizeVolumesMenuItem.Click += new System.EventHandler(this.PCEAlwaysEqualizeVolumesMenuItem_Click); // // PCEArcadeCardRewindEnableMenuItem // this.PCEArcadeCardRewindEnableMenuItem.Name = "PCEArcadeCardRewindEnableMenuItem"; - this.PCEArcadeCardRewindEnableMenuItem.Size = new System.Drawing.Size(259, 22); + this.PCEArcadeCardRewindEnableMenuItem.Size = new System.Drawing.Size(251, 22); this.PCEArcadeCardRewindEnableMenuItem.Text = "Arcade Card Rewind-Enable Hack"; this.PCEArcadeCardRewindEnableMenuItem.Click += new System.EventHandler(this.PCEArcadeCardRewindEnableMenuItem_Click); // @@ -2296,7 +2307,7 @@ this.SMSVDPViewerToolStripMenuItem, this.GGGameGenieMenuItem}); this.SMSSubMenu.Name = "SMSSubMenu"; - this.SMSSubMenu.Size = new System.Drawing.Size(42, 19); + this.SMSSubMenu.Size = new System.Drawing.Size(39, 17); this.SMSSubMenu.Text = "&SMS"; this.SMSSubMenu.DropDownOpened += new System.EventHandler(this.SMSSubMenu_DropDownOpened); // @@ -2307,27 +2318,27 @@ this.SMSregionJapanToolStripMenuItem, this.SMSregionAutoToolStripMenuItem}); this.SMSregionToolStripMenuItem.Name = "SMSregionToolStripMenuItem"; - this.SMSregionToolStripMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSregionToolStripMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSregionToolStripMenuItem.Text = "Region"; // // SMSregionExportToolStripMenuItem // this.SMSregionExportToolStripMenuItem.Name = "SMSregionExportToolStripMenuItem"; - this.SMSregionExportToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + this.SMSregionExportToolStripMenuItem.Size = new System.Drawing.Size(117, 22); this.SMSregionExportToolStripMenuItem.Text = "Export"; this.SMSregionExportToolStripMenuItem.Click += new System.EventHandler(this.SMS_RegionExport_Click); // // SMSregionJapanToolStripMenuItem // this.SMSregionJapanToolStripMenuItem.Name = "SMSregionJapanToolStripMenuItem"; - this.SMSregionJapanToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + this.SMSregionJapanToolStripMenuItem.Size = new System.Drawing.Size(117, 22); this.SMSregionJapanToolStripMenuItem.Text = "Japan"; this.SMSregionJapanToolStripMenuItem.Click += new System.EventHandler(this.SMS_RegionJapan_Click); // // SMSregionAutoToolStripMenuItem // this.SMSregionAutoToolStripMenuItem.Name = "SMSregionAutoToolStripMenuItem"; - this.SMSregionAutoToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + this.SMSregionAutoToolStripMenuItem.Size = new System.Drawing.Size(117, 22); this.SMSregionAutoToolStripMenuItem.Text = "Auto"; this.SMSregionAutoToolStripMenuItem.Click += new System.EventHandler(this.SMS_RegionAuto_Click); // @@ -2338,114 +2349,114 @@ this.SMSdisplayPalToolStripMenuItem, this.SMSdisplayAutoToolStripMenuItem}); this.SMSdisplayToolStripMenuItem.Name = "SMSdisplayToolStripMenuItem"; - this.SMSdisplayToolStripMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSdisplayToolStripMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSdisplayToolStripMenuItem.Text = "Display Type"; // // SMSdisplayNtscToolStripMenuItem // this.SMSdisplayNtscToolStripMenuItem.Name = "SMSdisplayNtscToolStripMenuItem"; - this.SMSdisplayNtscToolStripMenuItem.Size = new System.Drawing.Size(104, 22); + this.SMSdisplayNtscToolStripMenuItem.Size = new System.Drawing.Size(111, 22); this.SMSdisplayNtscToolStripMenuItem.Text = "NTSC"; this.SMSdisplayNtscToolStripMenuItem.Click += new System.EventHandler(this.SMS_DisplayNTSC_Click); // // SMSdisplayPalToolStripMenuItem // this.SMSdisplayPalToolStripMenuItem.Name = "SMSdisplayPalToolStripMenuItem"; - this.SMSdisplayPalToolStripMenuItem.Size = new System.Drawing.Size(104, 22); + this.SMSdisplayPalToolStripMenuItem.Size = new System.Drawing.Size(111, 22); this.SMSdisplayPalToolStripMenuItem.Text = "PAL"; this.SMSdisplayPalToolStripMenuItem.Click += new System.EventHandler(this.SMS_DisplayPAL_Click); // // SMSdisplayAutoToolStripMenuItem // this.SMSdisplayAutoToolStripMenuItem.Name = "SMSdisplayAutoToolStripMenuItem"; - this.SMSdisplayAutoToolStripMenuItem.Size = new System.Drawing.Size(104, 22); + this.SMSdisplayAutoToolStripMenuItem.Size = new System.Drawing.Size(111, 22); this.SMSdisplayAutoToolStripMenuItem.Text = "Auto"; this.SMSdisplayAutoToolStripMenuItem.Click += new System.EventHandler(this.SMS_DisplayAuto_Click); // // SMStoolStripMenuItem2 // this.SMStoolStripMenuItem2.Name = "SMStoolStripMenuItem2"; - this.SMStoolStripMenuItem2.Size = new System.Drawing.Size(238, 6); + this.SMStoolStripMenuItem2.Size = new System.Drawing.Size(229, 6); // // SMSenableBIOSToolStripMenuItem // this.SMSenableBIOSToolStripMenuItem.Name = "SMSenableBIOSToolStripMenuItem"; - this.SMSenableBIOSToolStripMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSenableBIOSToolStripMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSenableBIOSToolStripMenuItem.Text = "Enable BIOS"; this.SMSenableBIOSToolStripMenuItem.Click += new System.EventHandler(this.SMS_BIOS_Click); // // SMSEnableFMChipMenuItem // this.SMSEnableFMChipMenuItem.Name = "SMSEnableFMChipMenuItem"; - this.SMSEnableFMChipMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSEnableFMChipMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSEnableFMChipMenuItem.Text = "&Enable FM Chip"; this.SMSEnableFMChipMenuItem.Click += new System.EventHandler(this.SMSEnableFMChipMenuItem_Click); // // SMSOverclockMenuItem // this.SMSOverclockMenuItem.Name = "SMSOverclockMenuItem"; - this.SMSOverclockMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSOverclockMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSOverclockMenuItem.Text = "&Overclock when Known Safe"; this.SMSOverclockMenuItem.Click += new System.EventHandler(this.SMSOverclockMenuItem_Click); // // SMSForceStereoMenuItem // this.SMSForceStereoMenuItem.Name = "SMSForceStereoMenuItem"; - this.SMSForceStereoMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSForceStereoMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSForceStereoMenuItem.Text = "&Force Stereo Separation"; this.SMSForceStereoMenuItem.Click += new System.EventHandler(this.SMSForceStereoMenuItem_Click); // // SMSSpriteLimitMenuItem // this.SMSSpriteLimitMenuItem.Name = "SMSSpriteLimitMenuItem"; - this.SMSSpriteLimitMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSSpriteLimitMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSSpriteLimitMenuItem.Text = "Sprite &Limit"; this.SMSSpriteLimitMenuItem.Click += new System.EventHandler(this.SMSSpriteLimitMenuItem_Click); // // SMSFix3DGameDisplayToolStripMenuItem // this.SMSFix3DGameDisplayToolStripMenuItem.Name = "SMSFix3DGameDisplayToolStripMenuItem"; - this.SMSFix3DGameDisplayToolStripMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSFix3DGameDisplayToolStripMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSFix3DGameDisplayToolStripMenuItem.Text = "Fix 3D Game Display"; this.SMSFix3DGameDisplayToolStripMenuItem.Click += new System.EventHandler(this.SMSFix3DDisplayMenuItem_Click); // // ShowClippedRegionsMenuItem // this.ShowClippedRegionsMenuItem.Name = "ShowClippedRegionsMenuItem"; - this.ShowClippedRegionsMenuItem.Size = new System.Drawing.Size(241, 22); + this.ShowClippedRegionsMenuItem.Size = new System.Drawing.Size(232, 22); this.ShowClippedRegionsMenuItem.Text = "&Show Clipped Regions"; this.ShowClippedRegionsMenuItem.Click += new System.EventHandler(this.ShowClippedRegionsMenuItem_Click); // // HighlightActiveDisplayRegionMenuItem // this.HighlightActiveDisplayRegionMenuItem.Name = "HighlightActiveDisplayRegionMenuItem"; - this.HighlightActiveDisplayRegionMenuItem.Size = new System.Drawing.Size(241, 22); + this.HighlightActiveDisplayRegionMenuItem.Size = new System.Drawing.Size(232, 22); this.HighlightActiveDisplayRegionMenuItem.Text = "&Highlight Active Display Region"; this.HighlightActiveDisplayRegionMenuItem.Click += new System.EventHandler(this.HighlightActiveDisplayRegionMenuItem_Click); // // SMSGraphicsSettingsMenuItem // this.SMSGraphicsSettingsMenuItem.Name = "SMSGraphicsSettingsMenuItem"; - this.SMSGraphicsSettingsMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSGraphicsSettingsMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSGraphicsSettingsMenuItem.Text = "&Graphics Settings..."; this.SMSGraphicsSettingsMenuItem.Click += new System.EventHandler(this.SMSGraphicsSettingsMenuItem_Click); // // toolStripSeparator24 // this.toolStripSeparator24.Name = "toolStripSeparator24"; - this.toolStripSeparator24.Size = new System.Drawing.Size(238, 6); + this.toolStripSeparator24.Size = new System.Drawing.Size(229, 6); // // SMSVDPViewerToolStripMenuItem // this.SMSVDPViewerToolStripMenuItem.Name = "SMSVDPViewerToolStripMenuItem"; - this.SMSVDPViewerToolStripMenuItem.Size = new System.Drawing.Size(241, 22); + this.SMSVDPViewerToolStripMenuItem.Size = new System.Drawing.Size(232, 22); this.SMSVDPViewerToolStripMenuItem.Text = "&VDP Viewer"; this.SMSVDPViewerToolStripMenuItem.Click += new System.EventHandler(this.SmsVdpViewerMenuItem_Click); // // GGGameGenieMenuItem // this.GGGameGenieMenuItem.Name = "GGGameGenieMenuItem"; - this.GGGameGenieMenuItem.Size = new System.Drawing.Size(241, 22); + this.GGGameGenieMenuItem.Size = new System.Drawing.Size(232, 22); this.GGGameGenieMenuItem.Text = "&Game Genie Encoder/Decoder"; this.GGGameGenieMenuItem.Click += new System.EventHandler(this.GGGameGenieMenuItem_Click); // @@ -2458,7 +2469,7 @@ this.AutoloadKeypadMenuItem, this.paletteToolStripMenuItem}); this.TI83SubMenu.Name = "TI83SubMenu"; - this.TI83SubMenu.Size = new System.Drawing.Size(41, 19); + this.TI83SubMenu.Size = new System.Drawing.Size(41, 17); this.TI83SubMenu.Text = "TI83"; this.TI83SubMenu.DropDownOpened += new System.EventHandler(this.TI83SubMenu_DropDownOpened); // @@ -2466,35 +2477,35 @@ // this.KeypadMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.calculator; this.KeypadMenuItem.Name = "KeypadMenuItem"; - this.KeypadMenuItem.Size = new System.Drawing.Size(165, 22); + this.KeypadMenuItem.Size = new System.Drawing.Size(168, 22); this.KeypadMenuItem.Text = "Keypad"; this.KeypadMenuItem.Click += new System.EventHandler(this.KeypadMenuItem_Click); // // LoadTIFileMenuItem // this.LoadTIFileMenuItem.Name = "LoadTIFileMenuItem"; - this.LoadTIFileMenuItem.Size = new System.Drawing.Size(165, 22); + this.LoadTIFileMenuItem.Size = new System.Drawing.Size(168, 22); this.LoadTIFileMenuItem.Text = "Load TI-83 File..."; this.LoadTIFileMenuItem.Click += new System.EventHandler(this.LoadTIFileMenuItem_Click); // // toolStripSeparator13 // this.toolStripSeparator13.Name = "toolStripSeparator13"; - this.toolStripSeparator13.Size = new System.Drawing.Size(162, 6); + this.toolStripSeparator13.Size = new System.Drawing.Size(165, 6); // // AutoloadKeypadMenuItem // this.AutoloadKeypadMenuItem.Checked = true; this.AutoloadKeypadMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.AutoloadKeypadMenuItem.Name = "AutoloadKeypadMenuItem"; - this.AutoloadKeypadMenuItem.Size = new System.Drawing.Size(165, 22); + this.AutoloadKeypadMenuItem.Size = new System.Drawing.Size(168, 22); this.AutoloadKeypadMenuItem.Text = "Autoload Keypad"; this.AutoloadKeypadMenuItem.Click += new System.EventHandler(this.AutoloadKeypadMenuItem_Click); // // paletteToolStripMenuItem // this.paletteToolStripMenuItem.Name = "paletteToolStripMenuItem"; - this.paletteToolStripMenuItem.Size = new System.Drawing.Size(165, 22); + this.paletteToolStripMenuItem.Size = new System.Drawing.Size(168, 22); this.paletteToolStripMenuItem.Text = "Palette..."; this.paletteToolStripMenuItem.Click += new System.EventHandler(this.TI83PaletteMenuItem_Click); // @@ -2503,14 +2514,14 @@ this.AtariSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.AtariSettingsToolStripMenuItem}); this.AtariSubMenu.Name = "AtariSubMenu"; - this.AtariSubMenu.Size = new System.Drawing.Size(44, 19); + this.AtariSubMenu.Size = new System.Drawing.Size(42, 17); this.AtariSubMenu.Text = "&Atari"; this.AtariSubMenu.DropDownOpened += new System.EventHandler(this.AtariSubMenu_DropDownOpened); // // AtariSettingsToolStripMenuItem // this.AtariSettingsToolStripMenuItem.Name = "AtariSettingsToolStripMenuItem"; - this.AtariSettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22); + this.AtariSettingsToolStripMenuItem.Size = new System.Drawing.Size(136, 22); this.AtariSettingsToolStripMenuItem.Text = "Settings..."; this.AtariSettingsToolStripMenuItem.Click += new System.EventHandler(this.AtariSettingsToolStripMenuItem_Click); // @@ -2523,40 +2534,40 @@ this.GBGPUViewerMenuItem, this.GBGameGenieMenuItem}); this.GBSubMenu.Name = "GBSubMenu"; - this.GBSubMenu.Size = new System.Drawing.Size(34, 19); + this.GBSubMenu.Size = new System.Drawing.Size(32, 17); this.GBSubMenu.Text = "&GB"; this.GBSubMenu.DropDownOpened += new System.EventHandler(this.GBSubMenu_DropDownOpened); // // GBcoreSettingsToolStripMenuItem // this.GBcoreSettingsToolStripMenuItem.Name = "GBcoreSettingsToolStripMenuItem"; - this.GBcoreSettingsToolStripMenuItem.Size = new System.Drawing.Size(233, 22); + this.GBcoreSettingsToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.GBcoreSettingsToolStripMenuItem.Text = "Settings..."; this.GBcoreSettingsToolStripMenuItem.Click += new System.EventHandler(this.GBCoreSettingsMenuItem_Click); // // LoadGBInSGBMenuItem // this.LoadGBInSGBMenuItem.Name = "LoadGBInSGBMenuItem"; - this.LoadGBInSGBMenuItem.Size = new System.Drawing.Size(233, 22); + this.LoadGBInSGBMenuItem.Size = new System.Drawing.Size(228, 22); this.LoadGBInSGBMenuItem.Text = "Load GB in SGB"; this.LoadGBInSGBMenuItem.Click += new System.EventHandler(this.LoadGBInSGBMenuItem_Click); // // toolStripSeparator28 // this.toolStripSeparator28.Name = "toolStripSeparator28"; - this.toolStripSeparator28.Size = new System.Drawing.Size(230, 6); + this.toolStripSeparator28.Size = new System.Drawing.Size(225, 6); // // GBGPUViewerMenuItem // this.GBGPUViewerMenuItem.Name = "GBGPUViewerMenuItem"; - this.GBGPUViewerMenuItem.Size = new System.Drawing.Size(233, 22); + this.GBGPUViewerMenuItem.Size = new System.Drawing.Size(228, 22); this.GBGPUViewerMenuItem.Text = "GPU Viewer"; this.GBGPUViewerMenuItem.Click += new System.EventHandler(this.GBGPUViewerMenuItem_Click); // // GBGameGenieMenuItem // this.GBGameGenieMenuItem.Name = "GBGameGenieMenuItem"; - this.GBGameGenieMenuItem.Size = new System.Drawing.Size(233, 22); + this.GBGameGenieMenuItem.Size = new System.Drawing.Size(228, 22); this.GBGameGenieMenuItem.Text = "&Game Genie Encoder/Decoder"; this.GBGameGenieMenuItem.Click += new System.EventHandler(this.GBGameGenieMenuItem_Click); // @@ -2568,7 +2579,7 @@ this.toolStripSeparator33, this.GbaGpuViewerMenuItem}); this.GBASubMenu.Name = "GBASubMenu"; - this.GBASubMenu.Size = new System.Drawing.Size(42, 19); + this.GBASubMenu.Size = new System.Drawing.Size(39, 17); this.GBASubMenu.Text = "GBA"; // // GBACoreSelectionSubMenu @@ -2577,40 +2588,40 @@ this.GBAmGBAMenuItem, this.GBAVBANextMenuItem}); this.GBACoreSelectionSubMenu.Name = "GBACoreSelectionSubMenu"; - this.GBACoreSelectionSubMenu.Size = new System.Drawing.Size(135, 22); + this.GBACoreSelectionSubMenu.Size = new System.Drawing.Size(140, 22); this.GBACoreSelectionSubMenu.Text = "&Core"; this.GBACoreSelectionSubMenu.DropDownOpened += new System.EventHandler(this.GBACoreSelectionSubMenu_DropDownOpened); // // GBAmGBAMenuItem // this.GBAmGBAMenuItem.Name = "GBAmGBAMenuItem"; - this.GBAmGBAMenuItem.Size = new System.Drawing.Size(125, 22); + this.GBAmGBAMenuItem.Size = new System.Drawing.Size(131, 22); this.GBAmGBAMenuItem.Text = "mGBA"; this.GBAmGBAMenuItem.Click += new System.EventHandler(this.GBAmGBAMenuItem_Click); // // GBAVBANextMenuItem // this.GBAVBANextMenuItem.Name = "GBAVBANextMenuItem"; - this.GBAVBANextMenuItem.Size = new System.Drawing.Size(125, 22); + this.GBAVBANextMenuItem.Size = new System.Drawing.Size(131, 22); this.GBAVBANextMenuItem.Text = "&VBA-Next"; this.GBAVBANextMenuItem.Click += new System.EventHandler(this.GBAVBANextMenuItem_Click); // // GBAcoresettingsToolStripMenuItem1 // this.GBAcoresettingsToolStripMenuItem1.Name = "GBAcoresettingsToolStripMenuItem1"; - this.GBAcoresettingsToolStripMenuItem1.Size = new System.Drawing.Size(135, 22); + this.GBAcoresettingsToolStripMenuItem1.Size = new System.Drawing.Size(140, 22); this.GBAcoresettingsToolStripMenuItem1.Text = "&Settings..."; this.GBAcoresettingsToolStripMenuItem1.Click += new System.EventHandler(this.GBAcoresettingsToolStripMenuItem1_Click); // // toolStripSeparator33 // this.toolStripSeparator33.Name = "toolStripSeparator33"; - this.toolStripSeparator33.Size = new System.Drawing.Size(132, 6); + this.toolStripSeparator33.Size = new System.Drawing.Size(137, 6); // // GbaGpuViewerMenuItem // this.GbaGpuViewerMenuItem.Name = "GbaGpuViewerMenuItem"; - this.GbaGpuViewerMenuItem.Size = new System.Drawing.Size(135, 22); + this.GbaGpuViewerMenuItem.Size = new System.Drawing.Size(140, 22); this.GbaGpuViewerMenuItem.Text = "GPU Viewer"; this.GbaGpuViewerMenuItem.Click += new System.EventHandler(this.GbaGpuViewerMenuItem_Click); // @@ -2622,7 +2633,7 @@ this.PSXDiscControlsMenuItem, this.PSXHashDiscsToolStripMenuItem}); this.PSXSubMenu.Name = "PSXSubMenu"; - this.PSXSubMenu.Size = new System.Drawing.Size(39, 19); + this.PSXSubMenu.Size = new System.Drawing.Size(37, 17); this.PSXSubMenu.Text = "PSX"; this.PSXSubMenu.DropDownOpened += new System.EventHandler(this.PSXSubMenu_DropDownOpened); // @@ -2630,28 +2641,28 @@ // this.PSXControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.PSXControllerSettingsMenuItem.Name = "PSXControllerSettingsMenuItem"; - this.PSXControllerSettingsMenuItem.Size = new System.Drawing.Size(234, 22); + this.PSXControllerSettingsMenuItem.Size = new System.Drawing.Size(227, 22); this.PSXControllerSettingsMenuItem.Text = "Controller / Memcard Settings"; this.PSXControllerSettingsMenuItem.Click += new System.EventHandler(this.PSXControllerSettingsMenuItem_Click); // // PSXOptionsMenuItem // this.PSXOptionsMenuItem.Name = "PSXOptionsMenuItem"; - this.PSXOptionsMenuItem.Size = new System.Drawing.Size(234, 22); + this.PSXOptionsMenuItem.Size = new System.Drawing.Size(227, 22); this.PSXOptionsMenuItem.Text = "&Options"; this.PSXOptionsMenuItem.Click += new System.EventHandler(this.PSXOptionsMenuItem_Click); // // PSXDiscControlsMenuItem // this.PSXDiscControlsMenuItem.Name = "PSXDiscControlsMenuItem"; - this.PSXDiscControlsMenuItem.Size = new System.Drawing.Size(234, 22); + this.PSXDiscControlsMenuItem.Size = new System.Drawing.Size(227, 22); this.PSXDiscControlsMenuItem.Text = "&Disc Controls"; this.PSXDiscControlsMenuItem.Click += new System.EventHandler(this.PSXDiscControlsMenuItem_Click); // // PSXHashDiscsToolStripMenuItem // this.PSXHashDiscsToolStripMenuItem.Name = "PSXHashDiscsToolStripMenuItem"; - this.PSXHashDiscsToolStripMenuItem.Size = new System.Drawing.Size(234, 22); + this.PSXHashDiscsToolStripMenuItem.Size = new System.Drawing.Size(227, 22); this.PSXHashDiscsToolStripMenuItem.Text = "&Hash Discs"; this.PSXHashDiscsToolStripMenuItem.Click += new System.EventHandler(this.PSXHashDiscsToolStripMenuItem_Click); // @@ -2665,7 +2676,7 @@ this.SnesGameGenieMenuItem, this.SnesOptionsMenuItem}); this.SNESSubMenu.Name = "SNESSubMenu"; - this.SNESSubMenu.Size = new System.Drawing.Size(46, 19); + this.SNESSubMenu.Size = new System.Drawing.Size(44, 17); this.SNESSubMenu.Text = "&SNES"; this.SNESSubMenu.DropDownOpened += new System.EventHandler(this.SNESSubMenu_DropDownOpened); // @@ -2681,97 +2692,97 @@ this.SnesObj3MenuItem, this.SnesObj4MenuItem}); this.SNESDisplayMenuItem.Name = "SNESDisplayMenuItem"; - this.SNESDisplayMenuItem.Size = new System.Drawing.Size(233, 22); + this.SNESDisplayMenuItem.Size = new System.Drawing.Size(228, 22); this.SNESDisplayMenuItem.Text = "Display"; this.SNESDisplayMenuItem.DropDownOpened += new System.EventHandler(this.SNESDisplayMenuItem_DropDownOpened); // // SnesBg1MenuItem // this.SnesBg1MenuItem.Name = "SnesBg1MenuItem"; - this.SnesBg1MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesBg1MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesBg1MenuItem.Text = "BG 1"; this.SnesBg1MenuItem.Click += new System.EventHandler(this.SnesBg1MenuItem_Click); // // SnesBg2MenuItem // this.SnesBg2MenuItem.Name = "SnesBg2MenuItem"; - this.SnesBg2MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesBg2MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesBg2MenuItem.Text = "BG 2"; this.SnesBg2MenuItem.Click += new System.EventHandler(this.SnesBg2MenuItem_Click); // // SnesBg3MenuItem // this.SnesBg3MenuItem.Name = "SnesBg3MenuItem"; - this.SnesBg3MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesBg3MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesBg3MenuItem.Text = "BG 3"; this.SnesBg3MenuItem.Click += new System.EventHandler(this.SnesBg3MenuItem_Click); // // SnesBg4MenuItem // this.SnesBg4MenuItem.Name = "SnesBg4MenuItem"; - this.SnesBg4MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesBg4MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesBg4MenuItem.Text = "BG 4"; this.SnesBg4MenuItem.Click += new System.EventHandler(this.SnesBg4MenuItem_Click); // // SnesObj1MenuItem // this.SnesObj1MenuItem.Name = "SnesObj1MenuItem"; - this.SnesObj1MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesObj1MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesObj1MenuItem.Text = "OBJ 1"; this.SnesObj1MenuItem.Click += new System.EventHandler(this.SnesObj1MenuItem_Click); // // SnesObj2MenuItem // this.SnesObj2MenuItem.Name = "SnesObj2MenuItem"; - this.SnesObj2MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesObj2MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesObj2MenuItem.Text = "OBJ 2"; this.SnesObj2MenuItem.Click += new System.EventHandler(this.SnesObj2MenuItem_Click); // // SnesObj3MenuItem // this.SnesObj3MenuItem.Name = "SnesObj3MenuItem"; - this.SnesObj3MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesObj3MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesObj3MenuItem.Text = "OBJ 3"; this.SnesObj3MenuItem.Click += new System.EventHandler(this.SnesObj3MenuItem_Click); // // SnesObj4MenuItem // this.SnesObj4MenuItem.Name = "SnesObj4MenuItem"; - this.SnesObj4MenuItem.Size = new System.Drawing.Size(103, 22); + this.SnesObj4MenuItem.Size = new System.Drawing.Size(113, 22); this.SnesObj4MenuItem.Text = "OBJ 4"; this.SnesObj4MenuItem.Click += new System.EventHandler(this.SnesObj4MenuItem_Click); // // toolStripSeparator18 // this.toolStripSeparator18.Name = "toolStripSeparator18"; - this.toolStripSeparator18.Size = new System.Drawing.Size(230, 6); + this.toolStripSeparator18.Size = new System.Drawing.Size(225, 6); // // SnesGfxDebuggerMenuItem // this.SnesGfxDebuggerMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Bug; this.SnesGfxDebuggerMenuItem.Name = "SnesGfxDebuggerMenuItem"; - this.SnesGfxDebuggerMenuItem.Size = new System.Drawing.Size(233, 22); + this.SnesGfxDebuggerMenuItem.Size = new System.Drawing.Size(228, 22); this.SnesGfxDebuggerMenuItem.Text = "Graphics Debugger"; this.SnesGfxDebuggerMenuItem.Click += new System.EventHandler(this.SnesGfxDebuggerMenuItem_Click); // // SnesGBInSGBMenuItem // this.SnesGBInSGBMenuItem.Name = "SnesGBInSGBMenuItem"; - this.SnesGBInSGBMenuItem.Size = new System.Drawing.Size(233, 22); + this.SnesGBInSGBMenuItem.Size = new System.Drawing.Size(228, 22); this.SnesGBInSGBMenuItem.Text = "Load GB in SGB"; this.SnesGBInSGBMenuItem.Click += new System.EventHandler(this.SnesGBInSGBMenuItem_Click); // // SnesGameGenieMenuItem // this.SnesGameGenieMenuItem.Name = "SnesGameGenieMenuItem"; - this.SnesGameGenieMenuItem.Size = new System.Drawing.Size(233, 22); + this.SnesGameGenieMenuItem.Size = new System.Drawing.Size(228, 22); this.SnesGameGenieMenuItem.Text = "&Game Genie Encoder/Decoder"; this.SnesGameGenieMenuItem.Click += new System.EventHandler(this.SnesGameGenieMenuItem_Click); // // SnesOptionsMenuItem // this.SnesOptionsMenuItem.Name = "SnesOptionsMenuItem"; - this.SnesOptionsMenuItem.Size = new System.Drawing.Size(233, 22); + this.SnesOptionsMenuItem.Size = new System.Drawing.Size(228, 22); this.SnesOptionsMenuItem.Text = "&Options"; this.SnesOptionsMenuItem.Click += new System.EventHandler(this.SnesOptionsMenuItem_Click); // @@ -2780,14 +2791,14 @@ this.ColecoSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.ColecoSkipBiosMenuItem}); this.ColecoSubMenu.Name = "ColecoSubMenu"; - this.ColecoSubMenu.Size = new System.Drawing.Size(56, 19); + this.ColecoSubMenu.Size = new System.Drawing.Size(51, 17); this.ColecoSubMenu.Text = "&Coleco"; this.ColecoSubMenu.DropDownOpened += new System.EventHandler(this.ColecoSubMenu_DropDownOpened); // // ColecoSkipBiosMenuItem // this.ColecoSkipBiosMenuItem.Name = "ColecoSkipBiosMenuItem"; - this.ColecoSkipBiosMenuItem.Size = new System.Drawing.Size(152, 22); + this.ColecoSkipBiosMenuItem.Size = new System.Drawing.Size(156, 22); this.ColecoSkipBiosMenuItem.Text = "&Skip BIOS intro"; this.ColecoSkipBiosMenuItem.Click += new System.EventHandler(this.ColecoSkipBiosMenuItem_Click); // @@ -2801,7 +2812,7 @@ this.MupenStyleLagMenuItem, this.N64ExpansionSlotMenuItem}); this.N64SubMenu.Name = "N64SubMenu"; - this.N64SubMenu.Size = new System.Drawing.Size(40, 19); + this.N64SubMenu.Size = new System.Drawing.Size(38, 17); this.N64SubMenu.Text = "N64"; this.N64SubMenu.DropDownOpened += new System.EventHandler(this.N64SubMenu_DropDownOpened); // @@ -2809,7 +2820,7 @@ // this.N64PluginSettingsMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("N64PluginSettingsMenuItem.Image"))); this.N64PluginSettingsMenuItem.Name = "N64PluginSettingsMenuItem"; - this.N64PluginSettingsMenuItem.Size = new System.Drawing.Size(192, 22); + this.N64PluginSettingsMenuItem.Size = new System.Drawing.Size(191, 22); this.N64PluginSettingsMenuItem.Text = "Plugins"; this.N64PluginSettingsMenuItem.Click += new System.EventHandler(this.N64PluginSettingsMenuItem_Click); // @@ -2817,33 +2828,33 @@ // this.N64ControllerSettingsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.N64ControllerSettingsMenuItem.Name = "N64ControllerSettingsMenuItem"; - this.N64ControllerSettingsMenuItem.Size = new System.Drawing.Size(192, 22); + this.N64ControllerSettingsMenuItem.Size = new System.Drawing.Size(191, 22); this.N64ControllerSettingsMenuItem.Text = "Controller Settings..."; this.N64ControllerSettingsMenuItem.Click += new System.EventHandler(this.N64ControllerSettingsMenuItem_Click); // // toolStripSeparator23 // this.toolStripSeparator23.Name = "toolStripSeparator23"; - this.toolStripSeparator23.Size = new System.Drawing.Size(189, 6); + this.toolStripSeparator23.Size = new System.Drawing.Size(188, 6); // // N64CircularAnalogRangeMenuItem // this.N64CircularAnalogRangeMenuItem.Name = "N64CircularAnalogRangeMenuItem"; - this.N64CircularAnalogRangeMenuItem.Size = new System.Drawing.Size(192, 22); + this.N64CircularAnalogRangeMenuItem.Size = new System.Drawing.Size(191, 22); this.N64CircularAnalogRangeMenuItem.Text = "Circular Analog Range"; this.N64CircularAnalogRangeMenuItem.Click += new System.EventHandler(this.N64CircularAnalogRangeMenuItem_Click); // // MupenStyleLagMenuItem // this.MupenStyleLagMenuItem.Name = "MupenStyleLagMenuItem"; - this.MupenStyleLagMenuItem.Size = new System.Drawing.Size(192, 22); + this.MupenStyleLagMenuItem.Size = new System.Drawing.Size(191, 22); this.MupenStyleLagMenuItem.Text = "&Non-VI Lag Frames"; this.MupenStyleLagMenuItem.Click += new System.EventHandler(this.MupenStyleLagMenuItem_Click); // // N64ExpansionSlotMenuItem // this.N64ExpansionSlotMenuItem.Name = "N64ExpansionSlotMenuItem"; - this.N64ExpansionSlotMenuItem.Size = new System.Drawing.Size(192, 22); + this.N64ExpansionSlotMenuItem.Size = new System.Drawing.Size(191, 22); this.N64ExpansionSlotMenuItem.Text = "&Use Expansion Slot"; this.N64ExpansionSlotMenuItem.Click += new System.EventHandler(this.N64ExpansionSlotMenuItem_Click); // @@ -2852,13 +2863,13 @@ this.SaturnSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.SaturnPreferencesMenuItem}); this.SaturnSubMenu.Name = "SaturnSubMenu"; - this.SaturnSubMenu.Size = new System.Drawing.Size(53, 19); + this.SaturnSubMenu.Size = new System.Drawing.Size(51, 17); this.SaturnSubMenu.Text = "&Saturn"; // // SaturnPreferencesMenuItem // this.SaturnPreferencesMenuItem.Name = "SaturnPreferencesMenuItem"; - this.SaturnPreferencesMenuItem.Size = new System.Drawing.Size(144, 22); + this.SaturnPreferencesMenuItem.Size = new System.Drawing.Size(155, 22); this.SaturnPreferencesMenuItem.Text = "Preferences..."; this.SaturnPreferencesMenuItem.Click += new System.EventHandler(this.SaturnPreferencesMenuItem_Click); // @@ -2867,13 +2878,13 @@ this.DGBSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.DGBsettingsToolStripMenuItem}); this.DGBSubMenu.Name = "DGBSubMenu"; - this.DGBSubMenu.Size = new System.Drawing.Size(59, 19); + this.DGBSubMenu.Size = new System.Drawing.Size(53, 17); this.DGBSubMenu.Text = "&GB Link"; // // DGBsettingsToolStripMenuItem // this.DGBsettingsToolStripMenuItem.Name = "DGBsettingsToolStripMenuItem"; - this.DGBsettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22); + this.DGBsettingsToolStripMenuItem.Size = new System.Drawing.Size(136, 22); this.DGBsettingsToolStripMenuItem.Text = "Settings..."; this.DGBsettingsToolStripMenuItem.Click += new System.EventHandler(this.DGBsettingsToolStripMenuItem_Click); // @@ -2885,32 +2896,32 @@ this.toolStripSeparator26, this.GenesisSettingsToolStripMenuItem}); this.GenesisSubMenu.Name = "GenesisSubMenu"; - this.GenesisSubMenu.Size = new System.Drawing.Size(59, 19); + this.GenesisSubMenu.Size = new System.Drawing.Size(56, 17); this.GenesisSubMenu.Text = "&Genesis"; // // vDPViewerToolStripMenuItem // this.vDPViewerToolStripMenuItem.Name = "vDPViewerToolStripMenuItem"; - this.vDPViewerToolStripMenuItem.Size = new System.Drawing.Size(233, 22); + this.vDPViewerToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.vDPViewerToolStripMenuItem.Text = "&VDP Viewer"; this.vDPViewerToolStripMenuItem.Click += new System.EventHandler(this.GenVdpViewerMenuItem_Click); // // GenesisGameGenieECDC // this.GenesisGameGenieECDC.Name = "GenesisGameGenieECDC"; - this.GenesisGameGenieECDC.Size = new System.Drawing.Size(233, 22); + this.GenesisGameGenieECDC.Size = new System.Drawing.Size(228, 22); this.GenesisGameGenieECDC.Text = "&Game Genie Encoder/Decoder"; this.GenesisGameGenieECDC.Click += new System.EventHandler(this.GenesisGameGenieECDC_Click); // // toolStripSeparator26 // this.toolStripSeparator26.Name = "toolStripSeparator26"; - this.toolStripSeparator26.Size = new System.Drawing.Size(230, 6); + this.toolStripSeparator26.Size = new System.Drawing.Size(225, 6); // // GenesisSettingsToolStripMenuItem // this.GenesisSettingsToolStripMenuItem.Name = "GenesisSettingsToolStripMenuItem"; - this.GenesisSettingsToolStripMenuItem.Size = new System.Drawing.Size(233, 22); + this.GenesisSettingsToolStripMenuItem.Size = new System.Drawing.Size(228, 22); this.GenesisSettingsToolStripMenuItem.Text = "&Settings..."; this.GenesisSettingsToolStripMenuItem.Click += new System.EventHandler(this.GenesisSettingsMenuItem_Click); // @@ -2919,13 +2930,13 @@ this.wonderSwanToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.settingsToolStripMenuItem}); this.wonderSwanToolStripMenuItem.Name = "wonderSwanToolStripMenuItem"; - this.wonderSwanToolStripMenuItem.Size = new System.Drawing.Size(89, 19); + this.wonderSwanToolStripMenuItem.Size = new System.Drawing.Size(83, 17); this.wonderSwanToolStripMenuItem.Text = "&WonderSwan"; // // settingsToolStripMenuItem // this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; - this.settingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22); + this.settingsToolStripMenuItem.Size = new System.Drawing.Size(136, 22); this.settingsToolStripMenuItem.Text = "&Settings..."; this.settingsToolStripMenuItem.Click += new System.EventHandler(this.WondersawnSettingsMenuItem_Click); // @@ -2935,7 +2946,7 @@ this.AppleDisksSubMenu, this.settingsToolStripMenuItem1}); this.AppleSubMenu.Name = "AppleSubMenu"; - this.AppleSubMenu.Size = new System.Drawing.Size(50, 19); + this.AppleSubMenu.Size = new System.Drawing.Size(46, 17); this.AppleSubMenu.Text = "Apple"; this.AppleSubMenu.DropDownOpened += new System.EventHandler(this.AppleSubMenu_DropDownOpened); // @@ -2944,7 +2955,7 @@ this.AppleDisksSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripSeparator31}); this.AppleDisksSubMenu.Name = "AppleDisksSubMenu"; - this.AppleDisksSubMenu.Size = new System.Drawing.Size(125, 22); + this.AppleDisksSubMenu.Size = new System.Drawing.Size(136, 22); this.AppleDisksSubMenu.Text = "Disks"; this.AppleDisksSubMenu.DropDownOpened += new System.EventHandler(this.AppleDisksSubMenu_DropDownOpened); // @@ -2956,7 +2967,7 @@ // settingsToolStripMenuItem1 // this.settingsToolStripMenuItem1.Name = "settingsToolStripMenuItem1"; - this.settingsToolStripMenuItem1.Size = new System.Drawing.Size(125, 22); + this.settingsToolStripMenuItem1.Size = new System.Drawing.Size(136, 22); this.settingsToolStripMenuItem1.Text = "&Settings..."; this.settingsToolStripMenuItem1.Click += new System.EventHandler(this.settingsToolStripMenuItem1_Click_1); // @@ -2965,13 +2976,13 @@ this.C64SubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.C64SettingsMenuItem}); this.C64SubMenu.Name = "C64SubMenu"; - this.C64SubMenu.Size = new System.Drawing.Size(39, 19); + this.C64SubMenu.Size = new System.Drawing.Size(38, 17); this.C64SubMenu.Text = "&C64"; // // C64SettingsMenuItem // this.C64SettingsMenuItem.Name = "C64SettingsMenuItem"; - this.C64SettingsMenuItem.Size = new System.Drawing.Size(125, 22); + this.C64SettingsMenuItem.Size = new System.Drawing.Size(136, 22); this.C64SettingsMenuItem.Text = "&Settings..."; this.C64SettingsMenuItem.Click += new System.EventHandler(this.C64SettingsMenuItem_Click); // @@ -2983,7 +2994,7 @@ this.FeaturesMenuItem, this.AboutMenuItem}); this.HelpSubMenu.Name = "HelpSubMenu"; - this.HelpSubMenu.Size = new System.Drawing.Size(44, 19); + this.HelpSubMenu.Size = new System.Drawing.Size(40, 17); this.HelpSubMenu.Text = "&Help"; this.HelpSubMenu.DropDownOpened += new System.EventHandler(this.HelpSubMenu_DropDownOpened); // @@ -2991,7 +3002,7 @@ // this.OnlineHelpMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Help; this.OnlineHelpMenuItem.Name = "OnlineHelpMenuItem"; - this.OnlineHelpMenuItem.Size = new System.Drawing.Size(146, 22); + this.OnlineHelpMenuItem.Size = new System.Drawing.Size(151, 22); this.OnlineHelpMenuItem.Text = "&Online Help..."; this.OnlineHelpMenuItem.Click += new System.EventHandler(this.OnlineHelpMenuItem_Click); // @@ -2999,7 +3010,7 @@ // this.ForumsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.TAStudio; this.ForumsMenuItem.Name = "ForumsMenuItem"; - this.ForumsMenuItem.Size = new System.Drawing.Size(146, 22); + this.ForumsMenuItem.Size = new System.Drawing.Size(151, 22); this.ForumsMenuItem.Text = "Forums..."; this.ForumsMenuItem.Click += new System.EventHandler(this.ForumsMenuItem_Click); // @@ -3007,7 +3018,7 @@ // this.FeaturesMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.kitchensink; this.FeaturesMenuItem.Name = "FeaturesMenuItem"; - this.FeaturesMenuItem.Size = new System.Drawing.Size(146, 22); + this.FeaturesMenuItem.Size = new System.Drawing.Size(151, 22); this.FeaturesMenuItem.Text = "&Features"; this.FeaturesMenuItem.Click += new System.EventHandler(this.FeaturesMenuItem_Click); // @@ -3015,7 +3026,7 @@ // this.AboutMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CorpHawkSmall; this.AboutMenuItem.Name = "AboutMenuItem"; - this.AboutMenuItem.Size = new System.Drawing.Size(146, 22); + this.AboutMenuItem.Size = new System.Drawing.Size(151, 22); this.AboutMenuItem.Text = "&About"; this.AboutMenuItem.Click += new System.EventHandler(this.AboutMenuItem_Click); // @@ -3124,7 +3135,7 @@ // this.SaveSlotsStatusLabel.BackColor = System.Drawing.SystemColors.Control; this.SaveSlotsStatusLabel.Name = "SaveSlotsStatusLabel"; - this.SaveSlotsStatusLabel.Size = new System.Drawing.Size(58, 17); + this.SaveSlotsStatusLabel.Size = new System.Drawing.Size(56, 17); this.SaveSlotsStatusLabel.Text = "Save slots"; // // Slot1StatusButton @@ -3227,7 +3238,7 @@ // this.CoreNameStatusBarButton.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CorpHawkSmall; this.CoreNameStatusBarButton.Name = "CoreNameStatusBarButton"; - this.CoreNameStatusBarButton.Size = new System.Drawing.Size(71, 17); + this.CoreNameStatusBarButton.Size = new System.Drawing.Size(66, 17); this.CoreNameStatusBarButton.Text = "Neshawk"; // // ProfileFirstBootLabel @@ -3257,7 +3268,7 @@ this.UpdateNotification.IsLink = true; this.UpdateNotification.LinkColor = System.Drawing.Color.Red; this.UpdateNotification.Name = "UpdateNotification"; - this.UpdateNotification.Size = new System.Drawing.Size(46, 17); + this.UpdateNotification.Size = new System.Drawing.Size(53, 17); this.UpdateNotification.Spring = true; this.UpdateNotification.Text = "New version available!"; this.UpdateNotification.TextAlign = System.Drawing.ContentAlignment.MiddleRight; @@ -3454,7 +3465,7 @@ // this.toolStripMenuItem6.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.GameController; this.toolStripMenuItem6.Name = "toolStripMenuItem6"; - this.toolStripMenuItem6.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem6.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem6.Text = "&Controllers..."; this.toolStripMenuItem6.Click += new System.EventHandler(this.ControllersMenuItem_Click); // @@ -3462,7 +3473,7 @@ // this.toolStripMenuItem7.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.HotKeys; this.toolStripMenuItem7.Name = "toolStripMenuItem7"; - this.toolStripMenuItem7.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem7.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem7.Text = "&Hotkeys..."; this.toolStripMenuItem7.Click += new System.EventHandler(this.HotkeysMenuItem_Click); // @@ -3470,7 +3481,7 @@ // this.toolStripMenuItem8.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItem8.Image"))); this.toolStripMenuItem8.Name = "toolStripMenuItem8"; - this.toolStripMenuItem8.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem8.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem8.Text = "Display..."; this.toolStripMenuItem8.Click += new System.EventHandler(this.DisplayConfigMenuItem_Click); // @@ -3478,7 +3489,7 @@ // this.toolStripMenuItem9.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.AudioHS; this.toolStripMenuItem9.Name = "toolStripMenuItem9"; - this.toolStripMenuItem9.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem9.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem9.Text = "&Sound..."; this.toolStripMenuItem9.Click += new System.EventHandler(this.SoundMenuItem_Click); // @@ -3486,7 +3497,7 @@ // this.toolStripMenuItem10.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.CopyFolderHS; this.toolStripMenuItem10.Name = "toolStripMenuItem10"; - this.toolStripMenuItem10.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem10.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem10.Text = "Paths..."; this.toolStripMenuItem10.Click += new System.EventHandler(this.PathsMenuItem_Click); // @@ -3494,7 +3505,7 @@ // this.toolStripMenuItem11.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItem11.Image"))); this.toolStripMenuItem11.Name = "toolStripMenuItem11"; - this.toolStripMenuItem11.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem11.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem11.Text = "&Firmwares..."; this.toolStripMenuItem11.Click += new System.EventHandler(this.FirmwaresMenuItem_Click); // @@ -3502,7 +3513,7 @@ // this.toolStripMenuItem12.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.MessageConfig; this.toolStripMenuItem12.Name = "toolStripMenuItem12"; - this.toolStripMenuItem12.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem12.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem12.Text = "&Messages..."; this.toolStripMenuItem12.Click += new System.EventHandler(this.MessagesMenuItem_Click); // @@ -3510,7 +3521,7 @@ // this.toolStripMenuItem13.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Lightning; this.toolStripMenuItem13.Name = "toolStripMenuItem13"; - this.toolStripMenuItem13.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem13.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem13.Text = "&Autofire..."; this.toolStripMenuItem13.Click += new System.EventHandler(this.AutofireMenuItem_Click); // @@ -3518,28 +3529,28 @@ // this.toolStripMenuItem14.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Previous; this.toolStripMenuItem14.Name = "toolStripMenuItem14"; - this.toolStripMenuItem14.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem14.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem14.Text = "&Rewind..."; this.toolStripMenuItem14.Click += new System.EventHandler(this.RewindOptionsMenuItem_Click); // // toolStripMenuItem15 // this.toolStripMenuItem15.Name = "toolStripMenuItem15"; - this.toolStripMenuItem15.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem15.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem15.Text = "File Extensions..."; this.toolStripMenuItem15.Click += new System.EventHandler(this.FileExtensionsMenuItem_Click); // // customizeToolStripMenuItem // this.customizeToolStripMenuItem.Name = "customizeToolStripMenuItem"; - this.customizeToolStripMenuItem.Size = new System.Drawing.Size(159, 22); + this.customizeToolStripMenuItem.Size = new System.Drawing.Size(168, 22); this.customizeToolStripMenuItem.Text = "Customize..."; this.customizeToolStripMenuItem.Click += new System.EventHandler(this.CustomizeMenuItem_Click); // // toolStripSeparator30 // this.toolStripSeparator30.Name = "toolStripSeparator30"; - this.toolStripSeparator30.Size = new System.Drawing.Size(156, 6); + this.toolStripSeparator30.Size = new System.Drawing.Size(165, 6); // // SavestateTypeContextSubMenu // @@ -3548,26 +3559,26 @@ this.SavestateBinaryContextMenuItem, this.SavestateTextContextMenuItem}); this.SavestateTypeContextSubMenu.Name = "SavestateTypeContextSubMenu"; - this.SavestateTypeContextSubMenu.Size = new System.Drawing.Size(159, 22); + this.SavestateTypeContextSubMenu.Size = new System.Drawing.Size(168, 22); this.SavestateTypeContextSubMenu.Text = "Savestate Type"; this.SavestateTypeContextSubMenu.DropDownOpened += new System.EventHandler(this.SavestateTypeContextSubMenu_DropDownOpened); // // SavestateTypeDefaultContextMenuItem // this.SavestateTypeDefaultContextMenuItem.Name = "SavestateTypeDefaultContextMenuItem"; - this.SavestateTypeDefaultContextMenuItem.Size = new System.Drawing.Size(112, 22); + this.SavestateTypeDefaultContextMenuItem.Size = new System.Drawing.Size(120, 22); this.SavestateTypeDefaultContextMenuItem.Text = "&Default"; // // SavestateBinaryContextMenuItem // this.SavestateBinaryContextMenuItem.Name = "SavestateBinaryContextMenuItem"; - this.SavestateBinaryContextMenuItem.Size = new System.Drawing.Size(112, 22); + this.SavestateBinaryContextMenuItem.Size = new System.Drawing.Size(120, 22); this.SavestateBinaryContextMenuItem.Text = "&Binary"; // // SavestateTextContextMenuItem // this.SavestateTextContextMenuItem.Name = "SavestateTextContextMenuItem"; - this.SavestateTextContextMenuItem.Size = new System.Drawing.Size(112, 22); + this.SavestateTextContextMenuItem.Size = new System.Drawing.Size(120, 22); this.SavestateTextContextMenuItem.Text = "&Text"; // // CoreSelectionContextSubMenu @@ -3576,7 +3587,7 @@ this.GBInSGBContextMenuItem, this.NesInQuickNESContextMenuItem}); this.CoreSelectionContextSubMenu.Name = "CoreSelectionContextSubMenu"; - this.CoreSelectionContextSubMenu.Size = new System.Drawing.Size(159, 22); + this.CoreSelectionContextSubMenu.Size = new System.Drawing.Size(168, 22); this.CoreSelectionContextSubMenu.Text = "Core Selection"; this.CoreSelectionContextSubMenu.DropDownOpened += new System.EventHandler(this.CoreSelectionContextSubMenu_DropDownOpened); // @@ -3597,13 +3608,13 @@ // toolStripSeparator37 // this.toolStripSeparator37.Name = "toolStripSeparator37"; - this.toolStripSeparator37.Size = new System.Drawing.Size(156, 6); + this.toolStripSeparator37.Size = new System.Drawing.Size(165, 6); // // toolStripMenuItem66 // this.toolStripMenuItem66.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Save; this.toolStripMenuItem66.Name = "toolStripMenuItem66"; - this.toolStripMenuItem66.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem66.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem66.Text = "Save Config"; this.toolStripMenuItem66.Click += new System.EventHandler(this.SaveConfigMenuItem_Click); // @@ -3611,7 +3622,7 @@ // this.toolStripMenuItem67.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.LoadConfig; this.toolStripMenuItem67.Name = "toolStripMenuItem67"; - this.toolStripMenuItem67.Size = new System.Drawing.Size(159, 22); + this.toolStripMenuItem67.Size = new System.Drawing.Size(168, 22); this.toolStripMenuItem67.Text = "Load Config"; this.toolStripMenuItem67.Click += new System.EventHandler(this.LoadConfigMenuItem_Click); // @@ -3656,6 +3667,13 @@ this.timerMouseIdle.Interval = 2000; this.timerMouseIdle.Tick += new System.EventHandler(this.timerMouseIdle_Tick); // + // LoadConfigFromMenuItem + // + this.LoadConfigFromMenuItem.Name = "LoadConfigFromMenuItem"; + this.LoadConfigFromMenuItem.Size = new System.Drawing.Size(181, 22); + this.LoadConfigFromMenuItem.Text = "Load Config From..."; + this.LoadConfigFromMenuItem.Click += new System.EventHandler(this.LoadConfigFromMenuItem_Click); + // // MainForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -4080,5 +4098,7 @@ private System.Windows.Forms.ToolStripMenuItem ExperimentalToolsSubMenu; private System.Windows.Forms.ToolStripMenuItem AutoHawkMenuItem; private System.Windows.Forms.ToolStripMenuItem NewHexEditorMenuItem; + private System.Windows.Forms.ToolStripMenuItem SaveConfigAsMenuItem; + private System.Windows.Forms.ToolStripMenuItem LoadConfigFromMenuItem; } } diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 9e22d44a13..2756a90599 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -1188,6 +1188,24 @@ namespace BizHawk.Client.EmuHawk GlobalWin.OSD.AddMessage("Saved settings"); } + private void SaveConfigAsMenuItem_Click(object sender, EventArgs e) + { + var path = PathManager.DefaultIniPath; + var sfd = new SaveFileDialog + { + InitialDirectory = Path.GetDirectoryName(path), + FileName = Path.GetFileName(path), + Filter = "Config File (*.ini)|*.ini" + }; + + var result = sfd.ShowHawkDialog(); + if (result == DialogResult.OK) + { + SaveConfig(sfd.FileName); + GlobalWin.OSD.AddMessage("Copied settings"); + } + } + private void LoadConfigMenuItem_Click(object sender, EventArgs e) { Global.Config = ConfigService.Load(PathManager.DefaultIniPath); @@ -1195,6 +1213,25 @@ namespace BizHawk.Client.EmuHawk GlobalWin.OSD.AddMessage("Config file loaded"); } + private void LoadConfigFromMenuItem_Click(object sender, EventArgs e) + { + var path = PathManager.DefaultIniPath; + var ofd = new OpenFileDialog + { + InitialDirectory = Path.GetDirectoryName(path), + FileName = Path.GetFileName(path), + Filter = "Config File (*.ini)|*.ini" + }; + + var result = ofd.ShowHawkDialog(); + if (result == DialogResult.OK) + { + Global.Config = ConfigService.Load(ofd.FileName); + Global.Config.ResolveDefaults(); + GlobalWin.OSD.AddMessage("Config file loaded"); + } + } + private void miUnthrottled_Click(object sender, EventArgs e) { _unthrottled ^= true; diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index 97456e918f..9d224d2a07 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -2100,7 +2100,7 @@ namespace BizHawk.Client.EmuHawk } } - private void SaveConfig() + private void SaveConfig(string path = "") { if (Global.Config.SaveWindowPosition) { @@ -2125,7 +2125,10 @@ namespace BizHawk.Client.EmuHawk LogConsole.SaveConfigSettings(); } - ConfigService.Save(PathManager.DefaultIniPath, Global.Config); + if (string.IsNullOrEmpty(path)) + path = PathManager.DefaultIniPath; + + ConfigService.Save(path, Global.Config); } private static void ToggleFPS() diff --git a/BizHawk.Client.EmuHawk/MainForm.resx b/BizHawk.Client.EmuHawk/MainForm.resx index 5da4e4a6be..633bacee68 100644 --- a/BizHawk.Client.EmuHawk/MainForm.resx +++ b/BizHawk.Client.EmuHawk/MainForm.resx @@ -123,454 +123,463 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA66AAAOugEVvzbSAAABpElE - QVQ4T52TQUsCURSF33+SDAUxRAyEwQiEksiFUJEMhGEDOcQgRi2UGJBgCkFIZDDbGEGWEsTMItBNrdu3 - ad3y1HmkVNosvHC4l3u+A2/ezIi/5fP58D1OlJf3qzRNmwCn7TzrZ8AzfGk3kM1mkcvlUCgUUCqVUKlU - UK1WwSDFmTt6ZMgyw6zIZDIYDAYziVmRTqfhui5WDhoI7VxAMa6xdvKIDWsgxZk7emTIRiIR2ZkVqVQK - vV4Pc1vn+OI9RYas4ziyMyuSySQ6nQ7mt2s4unuH6XxMFT0yZHkCdmZFIpFAs9lEUK1Drb9g82wIrfWK - 4s2bFGfu6JEh2+12ZWdWxONxWJYln3HddBDVWlNFjwxZnoCdWRGNRlEul7Gw20Tm9Amr5YepokeGbLvd - lp1ZEQ6HYRgGInl7fPP/iQzZkZgVwWAQ+XweS3s1LO5fyVe2fHiL5PG9FGfu6JEhOxKzwu/3Q1VV6LoO - 0zRh2zb6/f74Y+HMHT0yZEdiVhQNXQ6BQAChUEheUCwWkxekKIoUZ+7okSHLDLPyf3geuphFQgjxCdiQ - MGrYYwVfAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOuAAA + DrgBakH1WwAAAa9JREFUOE+dk0FrGlEUhd9/kloUxCBiQRBLQUglxIXQlspAMdiBKmEIlmahhAEJmBII + NMiQ2I0hEBOlUMZFwWzadffZdN3lab8HE1pjXEQ43Os539HxzWjMwisWi2nRi96vyv7ruK5750OWefd9 + kfX/LawsnwbHqtVqqtfrajabarfb6na76vV6oojY8chgYOnQNdVqVfP5/EGiayqVimazmda3j5V680kF + 70wbe1/1oj+3Yscjg4HNZDJ20jXlclmTyUSPXn3UX36lYGDDMLSTrimVShqNRnr8+lAfLn/JD38vFRkM + LFfApGuKxaIGg4GSzpGcox96eXAt9+Snds5vrNjxyGBgx+OxnXRNPp9Xv9+3v3HTD5V1T5aKDAaWK2DS + NdlsVp1OR2tbA1X3v+l558tSkcHADodDO+madDotz/OUaQS3Jx/dgcUJAxuJrkkmk2o0Gnr69lBP3n22 + t+zZ+wuVdq+s2PHIYGAj0TXxeFyO46jVasn3fQVBoOl0evtgseORwcBGomt2vJZYEomEUqmUPaBcLmcP + qFAoWLHjkcHA0qFr/zjfr2d6iOj+AdiQMGoJxWWRAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABBIAAAQSAFKNmQWAAAAcElE - QVQ4T82Q4QoAIQiDffR7804DY+pOov5c8GltwyiRR8YVTLTFOsWK2iA0eAapQkPOznwRGnJ25rX87AmK - /3ruFCvhCR9oclI8PNggJHg7A46w4rf5zY6H8jlAxQQOKMPWBswSIpmloXkEFbeR8QKDpKJKL1M/dQAA - AABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAQRgAA + EEYB7r8o6AAAAHVJREFUOE/NkuEKwCAIhN2b781bGsZlarH9aIEEcX2eVxfdVOjTYoCpUhef2d3qWnMR + AoTEkV9OMwEMdQTwsxGc9PU19l7BS5qhNVyuOXS4wFlgoXgL4FoMHHUtfqTIgZ6HGaw6I2CCDXMmGagu + BaycvB4hAz9wYIvatCqJLwAAAABJRU5ErkJggg== - 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 @@ -581,25 +590,25 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA66AAAOugEVvzbSAAABpElE - QVQ4T52TQUsCURSF33+SDAUxRAyEwQiEksiFUJEMhGEDOcQgRi2UGJBgCkFIZDDbGEGWEsTMItBNrdu3 - ad3y1HmkVNosvHC4l3u+A2/ezIi/5fP58D1OlJf3qzRNmwCn7TzrZ8AzfGk3kM1mkcvlUCgUUCqVUKlU - UK1WwSDFmTt6ZMgyw6zIZDIYDAYziVmRTqfhui5WDhoI7VxAMa6xdvKIDWsgxZk7emTIRiIR2ZkVqVQK - vV4Pc1vn+OI9RYas4ziyMyuSySQ6nQ7mt2s4unuH6XxMFT0yZHkCdmZFIpFAs9lEUK1Drb9g82wIrfWK - 4s2bFGfu6JEh2+12ZWdWxONxWJYln3HddBDVWlNFjwxZnoCdWRGNRlEul7Gw20Tm9Amr5YepokeGbLvd - lp1ZEQ6HYRgGInl7fPP/iQzZkZgVwWAQ+XweS3s1LO5fyVe2fHiL5PG9FGfu6JEhOxKzwu/3Q1VV6LoO - 0zRh2zb6/f74Y+HMHT0yZEdiVhQNXQ6BQAChUEheUCwWkxekKIoUZ+7okSHLDLPyf3geuphFQgjxCdiQ - MGrYYwVfAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOuAAA + DrgBakH1WwAAAa9JREFUOE+dk0FrGlEUhd9/kloUxCBiQRBLQUglxIXQlspAMdiBKmEIlmahhAEJmBII + NMiQ2I0hEBOlUMZFwWzadffZdN3lab8HE1pjXEQ43Os539HxzWjMwisWi2nRi96vyv7ruK5750OWefd9 + kfX/LawsnwbHqtVqqtfrajabarfb6na76vV6oojY8chgYOnQNdVqVfP5/EGiayqVimazmda3j5V680kF + 70wbe1/1oj+3Yscjg4HNZDJ20jXlclmTyUSPXn3UX36lYGDDMLSTrimVShqNRnr8+lAfLn/JD38vFRkM + LFfApGuKxaIGg4GSzpGcox96eXAt9+Snds5vrNjxyGBgx+OxnXRNPp9Xv9+3v3HTD5V1T5aKDAaWK2DS + NdlsVp1OR2tbA1X3v+l558tSkcHADodDO+madDotz/OUaQS3Jx/dgcUJAxuJrkkmk2o0Gnr69lBP3n22 + t+zZ+wuVdq+s2PHIYGAj0TXxeFyO46jVasn3fQVBoOl0evtgseORwcBGomt2vJZYEomEUqmUPaBcLmcP + qFAoWLHjkcHA0qFr/zjfr2d6iOj+AdiQMGoJxWWRAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 - JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABBIAAAQSAFKNmQWAAAAcElE - QVQ4T82Q4QoAIQiDffR7804DY+pOov5c8GltwyiRR8YVTLTFOsWK2iA0eAapQkPOznwRGnJ25rX87AmK - /3ruFCvhCR9oclI8PNggJHg7A46w4rf5zY6H8jlAxQQOKMPWBswSIpmloXkEFbeR8QKDpKJKL1M/dQAA - AABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAQRgAA + EEYB7r8o6AAAAHVJREFUOE/NkuEKwCAIhN2b781bGsZlarH9aIEEcX2eVxfdVOjTYoCpUhef2d3qWnMR + AoTEkV9OMwEMdQTwsxGc9PU19l7BS5qhNVyuOXS4wFlgoXgL4FoMHHUtfqTIgZ6HGaw6I2CCDXMmGagu + BaycvB4hAz9wYIvatCqJLwAAAABJRU5ErkJggg== From 259b8eaeb9fc15a9661e8973bfd59432063febf8 Mon Sep 17 00:00:00 2001 From: Isaac Miell Date: Thu, 28 Jan 2016 03:45:22 +1030 Subject: [PATCH 102/106] Fix #561 --- BizHawk.Client.EmuHawk/Input/GamePad360.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/BizHawk.Client.EmuHawk/Input/GamePad360.cs b/BizHawk.Client.EmuHawk/Input/GamePad360.cs index 63dbd570ab..ee121155eb 100644 --- a/BizHawk.Client.EmuHawk/Input/GamePad360.cs +++ b/BizHawk.Client.EmuHawk/Input/GamePad360.cs @@ -181,10 +181,10 @@ namespace BizHawk.Client.EmuHawk AddItem("LStickLeft", () => state.Gamepad.sThumbLX <= dzn); AddItem("LStickRight", () => state.Gamepad.sThumbLX >= dzp); - AddItem("RStickUp", () => state.Gamepad.sThumbLY >= dzp); - AddItem("RStickDown", () => state.Gamepad.sThumbLY <= dzn); - AddItem("RStickLeft", () => state.Gamepad.sThumbLX <= dzn); - AddItem("RStickRight", () => state.Gamepad.sThumbLX >= dzp); + AddItem("RStickUp", () => state.Gamepad.sThumbRY >= dzp); + AddItem("RStickDown", () => state.Gamepad.sThumbRY <= dzn); + AddItem("RStickLeft", () => state.Gamepad.sThumbRX <= dzn); + AddItem("RStickRight", () => state.Gamepad.sThumbRX >= dzp); AddItem("LeftTrigger", () => state.Gamepad.bLeftTrigger > dzt); AddItem("RightTrigger", () => state.Gamepad.bRightTrigger > dzt); From 9c698011f60e5b623c54ae7d94651ae0932066df Mon Sep 17 00:00:00 2001 From: zeromus Date: Wed, 27 Jan 2016 20:33:31 -0600 Subject: [PATCH 103/106] when automatic movie backups are enabled, take a backup when the movie is closed without saving --- BizHawk.Client.EmuHawk/MainForm.Events.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 2756a90599..fde02b6643 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -553,6 +553,8 @@ namespace BizHawk.Client.EmuHawk private void StopMovieWithoutSavingMenuItem_Click(object sender, EventArgs e) { + if (Global.Config.EnableBackupMovies) + Global.MovieSession.Movie.SaveBackup(); StopMovie(saveChanges: false); } From 6a1c2ba924895b4eccebb7fdd940212682360dc9 Mon Sep 17 00:00:00 2001 From: feos Date: Thu, 28 Jan 2016 13:29:51 +0300 Subject: [PATCH 104/106] movie: save as menu item (mainform and context menu) --- BizHawk.Client.EmuHawk/MainForm.Designer.cs | 86 +++++++++++++-------- BizHawk.Client.EmuHawk/MainForm.Events.cs | 22 ++++++ 2 files changed, 76 insertions(+), 32 deletions(-) diff --git a/BizHawk.Client.EmuHawk/MainForm.Designer.cs b/BizHawk.Client.EmuHawk/MainForm.Designer.cs index 5cf4346cd1..10fd359a5f 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Designer.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Designer.cs @@ -85,6 +85,7 @@ this.PlayFromBeginningMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ImportMoviesMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.SaveMovieMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.SaveMovieAsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.StopMovieWithoutSavingMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator14 = new System.Windows.Forms.ToolStripSeparator(); this.AutomaticallyBackupMoviesMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -193,6 +194,7 @@ this.SaveConfigMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.SaveConfigAsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.LoadConfigMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.LoadConfigFromMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ToolsSubMenu = new System.Windows.Forms.ToolStripMenuItem(); this.ToolBoxMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator(); @@ -414,7 +416,7 @@ this.ShowMenuContextMenuSeparator = new System.Windows.Forms.ToolStripSeparator(); this.ShowMenuContextMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.timerMouseIdle = new System.Windows.Forms.Timer(this.components); - this.LoadConfigFromMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.SaveMovieAsContextMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.MainformMenu.SuspendLayout(); this.MainStatusBar.SuspendLayout(); this.MainFormContextMenu.SuspendLayout(); @@ -450,7 +452,7 @@ this.MainformMenu.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow; this.MainformMenu.Location = new System.Drawing.Point(0, 0); this.MainformMenu.Name = "MainformMenu"; - this.MainformMenu.Size = new System.Drawing.Size(470, 57); + this.MainformMenu.Size = new System.Drawing.Size(470, 55); this.MainformMenu.TabIndex = 0; this.MainformMenu.Text = "menuStrip1"; this.MainformMenu.MenuActivate += new System.EventHandler(this.MainformMenu_MenuActivate); @@ -903,6 +905,7 @@ this.PlayFromBeginningMenuItem, this.ImportMoviesMenuItem, this.SaveMovieMenuItem, + this.SaveMovieAsMenuItem, this.StopMovieWithoutSavingMenuItem, this.toolStripSeparator14, this.AutomaticallyBackupMoviesMenuItem, @@ -989,6 +992,14 @@ this.SaveMovieMenuItem.Text = "&Save Movie"; this.SaveMovieMenuItem.Click += new System.EventHandler(this.SaveMovieMenuItem_Click); // + // SaveMovieAsMenuItem + // + this.SaveMovieAsMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs; + this.SaveMovieAsMenuItem.Name = "SaveMovieAsMenuItem"; + this.SaveMovieAsMenuItem.Size = new System.Drawing.Size(222, 22); + this.SaveMovieAsMenuItem.Text = "Save Movie As..."; + this.SaveMovieAsMenuItem.Click += new System.EventHandler(this.SaveMovieAsMenuItem_Click); + // // StopMovieWithoutSavingMenuItem // this.StopMovieWithoutSavingMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; @@ -1851,6 +1862,13 @@ this.LoadConfigMenuItem.Text = "Load Config"; this.LoadConfigMenuItem.Click += new System.EventHandler(this.LoadConfigMenuItem_Click); // + // LoadConfigFromMenuItem + // + this.LoadConfigFromMenuItem.Name = "LoadConfigFromMenuItem"; + this.LoadConfigFromMenuItem.Size = new System.Drawing.Size(181, 22); + this.LoadConfigFromMenuItem.Text = "Load Config From..."; + this.LoadConfigFromMenuItem.Click += new System.EventHandler(this.LoadConfigFromMenuItem_Click); + // // ToolsSubMenu // this.ToolsSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -3292,6 +3310,7 @@ this.AddSubtitleContextMenuItem, this.ViewCommentsContextMenuItem, this.SaveMovieContextMenuItem, + this.SaveMovieAsContextMenuItem, this.ContextSeparator_AfterMovie, this.UndoSavestateContextMenuItem, this.ContextSeparator_AfterUndo, @@ -3302,7 +3321,7 @@ this.ShowMenuContextMenuSeparator, this.ShowMenuContextMenuItem}); this.MainFormContextMenu.Name = "contextMenuStrip1"; - this.MainFormContextMenu.Size = new System.Drawing.Size(217, 468); + this.MainFormContextMenu.Size = new System.Drawing.Size(213, 512); this.MainFormContextMenu.Closing += new System.Windows.Forms.ToolStripDropDownClosingEventHandler(this.MainFormContextMenu_Closing); this.MainFormContextMenu.Opening += new System.ComponentModel.CancelEventHandler(this.MainFormContextMenu_Opening); // @@ -3310,7 +3329,7 @@ // this.OpenRomContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.OpenFile; this.OpenRomContextMenuItem.Name = "OpenRomContextMenuItem"; - this.OpenRomContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.OpenRomContextMenuItem.Size = new System.Drawing.Size(212, 22); this.OpenRomContextMenuItem.Text = "Open Rom"; this.OpenRomContextMenuItem.Click += new System.EventHandler(this.OpenRomMenuItem_Click); // @@ -3318,7 +3337,7 @@ // this.LoadLastRomContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; this.LoadLastRomContextMenuItem.Name = "LoadLastRomContextMenuItem"; - this.LoadLastRomContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.LoadLastRomContextMenuItem.Size = new System.Drawing.Size(212, 22); this.LoadLastRomContextMenuItem.Text = "Load Last ROM"; this.LoadLastRomContextMenuItem.Click += new System.EventHandler(this.LoadLastRomContextMenuItem_Click); // @@ -3326,20 +3345,20 @@ // this.StopAVContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopAVContextMenuItem.Name = "StopAVContextMenuItem"; - this.StopAVContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.StopAVContextMenuItem.Size = new System.Drawing.Size(212, 22); this.StopAVContextMenuItem.Text = "Stop AVI/WAV"; this.StopAVContextMenuItem.Click += new System.EventHandler(this.StopAVMenuItem_Click); // // ContextSeparator_AfterROM // this.ContextSeparator_AfterROM.Name = "ContextSeparator_AfterROM"; - this.ContextSeparator_AfterROM.Size = new System.Drawing.Size(213, 6); + this.ContextSeparator_AfterROM.Size = new System.Drawing.Size(209, 6); // // RecordMovieContextMenuItem // this.RecordMovieContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.RecordHS; this.RecordMovieContextMenuItem.Name = "RecordMovieContextMenuItem"; - this.RecordMovieContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.RecordMovieContextMenuItem.Size = new System.Drawing.Size(212, 22); this.RecordMovieContextMenuItem.Text = "Record Movie"; this.RecordMovieContextMenuItem.Click += new System.EventHandler(this.RecordMovieMenuItem_Click); // @@ -3347,7 +3366,7 @@ // this.PlayMovieContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Play; this.PlayMovieContextMenuItem.Name = "PlayMovieContextMenuItem"; - this.PlayMovieContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.PlayMovieContextMenuItem.Size = new System.Drawing.Size(212, 22); this.PlayMovieContextMenuItem.Text = "Play Movie"; this.PlayMovieContextMenuItem.Click += new System.EventHandler(this.PlayMovieMenuItem_Click); // @@ -3355,7 +3374,7 @@ // this.RestartMovieContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.restart; this.RestartMovieContextMenuItem.Name = "RestartMovieContextMenuItem"; - this.RestartMovieContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.RestartMovieContextMenuItem.Size = new System.Drawing.Size(212, 22); this.RestartMovieContextMenuItem.Text = "Restart Movie"; this.RestartMovieContextMenuItem.Click += new System.EventHandler(this.PlayFromBeginningMenuItem_Click); // @@ -3363,7 +3382,7 @@ // this.StopMovieContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopMovieContextMenuItem.Name = "StopMovieContextMenuItem"; - this.StopMovieContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.StopMovieContextMenuItem.Size = new System.Drawing.Size(212, 22); this.StopMovieContextMenuItem.Text = "Stop Movie"; this.StopMovieContextMenuItem.Click += new System.EventHandler(this.StopMovieMenuItem_Click); // @@ -3371,14 +3390,14 @@ // this.LoadLastMovieContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Recent; this.LoadLastMovieContextMenuItem.Name = "LoadLastMovieContextMenuItem"; - this.LoadLastMovieContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.LoadLastMovieContextMenuItem.Size = new System.Drawing.Size(212, 22); this.LoadLastMovieContextMenuItem.Text = "Load Last Movie"; this.LoadLastMovieContextMenuItem.Click += new System.EventHandler(this.LoadLastMovieContextMenuItem_Click); // // BackupMovieContextMenuItem // this.BackupMovieContextMenuItem.Name = "BackupMovieContextMenuItem"; - this.BackupMovieContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.BackupMovieContextMenuItem.Size = new System.Drawing.Size(212, 22); this.BackupMovieContextMenuItem.Text = "Backup Movie"; this.BackupMovieContextMenuItem.Click += new System.EventHandler(this.BackupMovieContextMenuItem_Click); // @@ -3386,28 +3405,28 @@ // this.StopNoSaveContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Stop; this.StopNoSaveContextMenuItem.Name = "StopNoSaveContextMenuItem"; - this.StopNoSaveContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.StopNoSaveContextMenuItem.Size = new System.Drawing.Size(212, 22); this.StopNoSaveContextMenuItem.Text = "Stop Movie without Saving"; this.StopNoSaveContextMenuItem.Click += new System.EventHandler(this.StopMovieWithoutSavingMenuItem_Click); // // ViewSubtitlesContextMenuItem // this.ViewSubtitlesContextMenuItem.Name = "ViewSubtitlesContextMenuItem"; - this.ViewSubtitlesContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.ViewSubtitlesContextMenuItem.Size = new System.Drawing.Size(212, 22); this.ViewSubtitlesContextMenuItem.Text = "View Subtitles"; this.ViewSubtitlesContextMenuItem.Click += new System.EventHandler(this.ViewSubtitlesContextMenuItem_Click); // // AddSubtitleContextMenuItem // this.AddSubtitleContextMenuItem.Name = "AddSubtitleContextMenuItem"; - this.AddSubtitleContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.AddSubtitleContextMenuItem.Size = new System.Drawing.Size(212, 22); this.AddSubtitleContextMenuItem.Text = "Add Subtitle"; this.AddSubtitleContextMenuItem.Click += new System.EventHandler(this.AddSubtitleContextMenuItem_Click); // // ViewCommentsContextMenuItem // this.ViewCommentsContextMenuItem.Name = "ViewCommentsContextMenuItem"; - this.ViewCommentsContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.ViewCommentsContextMenuItem.Size = new System.Drawing.Size(212, 22); this.ViewCommentsContextMenuItem.Text = "View Comments"; this.ViewCommentsContextMenuItem.Click += new System.EventHandler(this.ViewCommentsContextMenuItem_Click); // @@ -3415,27 +3434,27 @@ // this.SaveMovieContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs; this.SaveMovieContextMenuItem.Name = "SaveMovieContextMenuItem"; - this.SaveMovieContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.SaveMovieContextMenuItem.Size = new System.Drawing.Size(212, 22); this.SaveMovieContextMenuItem.Text = "Save Movie"; this.SaveMovieContextMenuItem.Click += new System.EventHandler(this.SaveMovieMenuItem_Click); // // ContextSeparator_AfterMovie // this.ContextSeparator_AfterMovie.Name = "ContextSeparator_AfterMovie"; - this.ContextSeparator_AfterMovie.Size = new System.Drawing.Size(213, 6); + this.ContextSeparator_AfterMovie.Size = new System.Drawing.Size(209, 6); // // UndoSavestateContextMenuItem // this.UndoSavestateContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.undo; this.UndoSavestateContextMenuItem.Name = "UndoSavestateContextMenuItem"; - this.UndoSavestateContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.UndoSavestateContextMenuItem.Size = new System.Drawing.Size(212, 22); this.UndoSavestateContextMenuItem.Text = "Undo Savestate"; this.UndoSavestateContextMenuItem.Click += new System.EventHandler(this.UndoSavestateContextMenuItem_Click); // // ContextSeparator_AfterUndo // this.ContextSeparator_AfterUndo.Name = "ContextSeparator_AfterUndo"; - this.ContextSeparator_AfterUndo.Size = new System.Drawing.Size(213, 6); + this.ContextSeparator_AfterUndo.Size = new System.Drawing.Size(209, 6); // // ConfigContextMenuItem // @@ -3458,7 +3477,7 @@ this.toolStripMenuItem66, this.toolStripMenuItem67}); this.ConfigContextMenuItem.Name = "ConfigContextMenuItem"; - this.ConfigContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.ConfigContextMenuItem.Size = new System.Drawing.Size(212, 22); this.ConfigContextMenuItem.Text = "Config"; // // toolStripMenuItem6 @@ -3630,7 +3649,7 @@ // this.ScreenshotContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.camera; this.ScreenshotContextMenuItem.Name = "ScreenshotContextMenuItem"; - this.ScreenshotContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.ScreenshotContextMenuItem.Size = new System.Drawing.Size(212, 22); this.ScreenshotContextMenuItem.Text = "Screenshot"; this.ScreenshotContextMenuItem.Click += new System.EventHandler(this.ScreenshotMenuItem_Click); // @@ -3638,26 +3657,26 @@ // this.CloseRomContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.Close; this.CloseRomContextMenuItem.Name = "CloseRomContextMenuItem"; - this.CloseRomContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.CloseRomContextMenuItem.Size = new System.Drawing.Size(212, 22); this.CloseRomContextMenuItem.Text = "Close ROM"; this.CloseRomContextMenuItem.Click += new System.EventHandler(this.CloseRomMenuItem_Click); // // ClearSRAMContextMenuItem // this.ClearSRAMContextMenuItem.Name = "ClearSRAMContextMenuItem"; - this.ClearSRAMContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.ClearSRAMContextMenuItem.Size = new System.Drawing.Size(212, 22); this.ClearSRAMContextMenuItem.Text = "Close and Clear SRAM"; this.ClearSRAMContextMenuItem.Click += new System.EventHandler(this.ClearSRAMContextMenuItem_Click); // // ShowMenuContextMenuSeparator // this.ShowMenuContextMenuSeparator.Name = "ShowMenuContextMenuSeparator"; - this.ShowMenuContextMenuSeparator.Size = new System.Drawing.Size(213, 6); + this.ShowMenuContextMenuSeparator.Size = new System.Drawing.Size(209, 6); // // ShowMenuContextMenuItem // this.ShowMenuContextMenuItem.Name = "ShowMenuContextMenuItem"; - this.ShowMenuContextMenuItem.Size = new System.Drawing.Size(216, 22); + this.ShowMenuContextMenuItem.Size = new System.Drawing.Size(212, 22); this.ShowMenuContextMenuItem.Text = "Show Menu"; this.ShowMenuContextMenuItem.Click += new System.EventHandler(this.ShowMenuContextMenuItem_Click); // @@ -3667,12 +3686,13 @@ this.timerMouseIdle.Interval = 2000; this.timerMouseIdle.Tick += new System.EventHandler(this.timerMouseIdle_Tick); // - // LoadConfigFromMenuItem + // SaveMovieAsContextMenuItem // - this.LoadConfigFromMenuItem.Name = "LoadConfigFromMenuItem"; - this.LoadConfigFromMenuItem.Size = new System.Drawing.Size(181, 22); - this.LoadConfigFromMenuItem.Text = "Load Config From..."; - this.LoadConfigFromMenuItem.Click += new System.EventHandler(this.LoadConfigFromMenuItem_Click); + this.SaveMovieAsContextMenuItem.Image = global::BizHawk.Client.EmuHawk.Properties.Resources.SaveAs; + this.SaveMovieAsContextMenuItem.Name = "SaveMovieAsContextMenuItem"; + this.SaveMovieAsContextMenuItem.Size = new System.Drawing.Size(212, 22); + this.SaveMovieAsContextMenuItem.Text = "Save Movie As..."; + this.SaveMovieAsContextMenuItem.Click += new System.EventHandler(this.SaveMovieAsMenuItem_Click); // // MainForm // @@ -4100,5 +4120,7 @@ private System.Windows.Forms.ToolStripMenuItem NewHexEditorMenuItem; private System.Windows.Forms.ToolStripMenuItem SaveConfigAsMenuItem; private System.Windows.Forms.ToolStripMenuItem LoadConfigFromMenuItem; + private System.Windows.Forms.ToolStripMenuItem SaveMovieAsMenuItem; + private System.Windows.Forms.ToolStripMenuItem SaveMovieAsContextMenuItem; } } diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index fde02b6643..36aa25f384 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -551,6 +551,28 @@ namespace BizHawk.Client.EmuHawk SaveMovie(); } + private void SaveMovieAsMenuItem_Click(object sender, EventArgs e) + { + var filename = Global.MovieSession.Movie.Filename; + if (string.IsNullOrWhiteSpace(filename)) + { + filename = PathManager.FilesystemSafeName(Global.Game); + } + + var file = ToolHelpers.SaveFileDialog( + filename, + PathManager.MakeAbsolutePath(Global.Config.PathEntries.MoviesPathFragment, null), + "Movie Files", + Global.MovieSession.Movie.PreferredExtension); + + if (file != null) + { + Global.MovieSession.Movie.Filename = file.FullName; + Global.Config.RecentMovies.Add(Global.MovieSession.Movie.Filename); + SaveMovie(); + } + } + private void StopMovieWithoutSavingMenuItem_Click(object sender, EventArgs e) { if (Global.Config.EnableBackupMovies) From bff12a4fdcc765f2899835a9a959537154e7153c Mon Sep 17 00:00:00 2001 From: feos Date: Thu, 28 Jan 2016 16:11:05 +0300 Subject: [PATCH 105/106] movie save as - hide when needed. --- BizHawk.Client.EmuHawk/MainForm.Events.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 36aa25f384..e6d325e048 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -238,6 +238,7 @@ namespace BizHawk.Client.EmuHawk StopMovieMenuItem.Enabled = PlayFromBeginningMenuItem.Enabled = SaveMovieMenuItem.Enabled + = SaveMovieAsMenuItem.Enabled = Global.MovieSession.Movie.IsActive; ReadonlyMenuItem.Checked = Global.MovieSession.ReadOnly; @@ -2344,6 +2345,7 @@ namespace BizHawk.Client.EmuHawk ViewSubtitlesContextMenuItem.Visible = ViewCommentsContextMenuItem.Visible = SaveMovieContextMenuItem.Visible = + SaveMovieAsContextMenuItem.Visible = Global.MovieSession.Movie.IsActive; BackupMovieContextMenuItem.Visible = Global.MovieSession.Movie.IsActive; From e855cb39cdcceb0d0a7f3b17109242bb90c2799e Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 28 Jan 2016 13:53:07 -0600 Subject: [PATCH 106/106] psx - add "determine lag from GPU frames" option --- .../config/PSX/PSXOptions.Designer.cs | 34 ++++++++++++++++-- .../config/PSX/PSXOptions.cs | 3 ++ .../Consoles/Sony/PSX/Octoshock.cs | 7 +++- .../Consoles/Sony/PSX/OctoshockDll.cs | 3 ++ output/dll/octoshock.dll | Bin 927232 -> 944128 bytes psx/octoshock/psx/dma.cpp | 5 +++ psx/octoshock/psx/psx.cpp | 21 +++++++++-- psx/octoshock/psx/psx.h | 6 +++- 8 files changed, 73 insertions(+), 6 deletions(-) diff --git a/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.Designer.cs b/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.Designer.cs index c4ea108b5c..873f3d9a5d 100644 --- a/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.Designer.cs +++ b/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.Designer.cs @@ -64,6 +64,8 @@ this.groupBox4 = new System.Windows.Forms.GroupBox(); this.groupBox5 = new System.Windows.Forms.GroupBox(); this.cbLEC = new System.Windows.Forms.CheckBox(); + this.cbGpuLag = new System.Windows.Forms.CheckBox(); + this.groupBox6 = new System.Windows.Forms.GroupBox(); this.groupBox1.SuspendLayout(); this.groupBox2.SuspendLayout(); this.groupBox3.SuspendLayout(); @@ -73,6 +75,7 @@ ((System.ComponentModel.ISupportInitialize)(this.NTSC_FirstLineNumeric)).BeginInit(); this.groupBox4.SuspendLayout(); this.groupBox5.SuspendLayout(); + this.groupBox6.SuspendLayout(); this.SuspendLayout(); // // btnCancel @@ -454,10 +457,10 @@ this.groupBox5.Controls.Add(this.cbLEC); this.groupBox5.Location = new System.Drawing.Point(12, 306); this.groupBox5.Name = "groupBox5"; - this.groupBox5.Size = new System.Drawing.Size(299, 85); + this.groupBox5.Size = new System.Drawing.Size(238, 85); this.groupBox5.TabIndex = 47; this.groupBox5.TabStop = false; - this.groupBox5.Text = "Emulation"; + this.groupBox5.Text = "Emulation Sync Settings"; // // cbLEC // @@ -469,6 +472,28 @@ this.cbLEC.Text = "Emulate Sector Error Correction\r\n(usually unneeded; breaks some patches)"; this.cbLEC.UseVisualStyleBackColor = true; // + // cbGpuLag + // + this.cbGpuLag.AutoSize = true; + this.cbGpuLag.Location = new System.Drawing.Point(16, 19); + this.cbGpuLag.Name = "cbGpuLag"; + this.cbGpuLag.Size = new System.Drawing.Size(181, 17); + this.cbGpuLag.TabIndex = 1; + this.cbGpuLag.Text = "Determine Lag from GPU Frames"; + this.cbGpuLag.UseVisualStyleBackColor = true; + // + // groupBox6 + // + this.groupBox6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox6.Controls.Add(this.cbGpuLag); + this.groupBox6.Location = new System.Drawing.Point(264, 308); + this.groupBox6.Name = "groupBox6"; + this.groupBox6.Size = new System.Drawing.Size(238, 85); + this.groupBox6.TabIndex = 48; + this.groupBox6.TabStop = false; + this.groupBox6.Text = "Emulation User Settings"; + // // PSXOptions // this.AcceptButton = this.btnOk; @@ -476,6 +501,7 @@ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.btnCancel; this.ClientSize = new System.Drawing.Size(713, 405); + this.Controls.Add(this.groupBox6); this.Controls.Add(this.groupBox5); this.Controls.Add(this.groupBox4); this.Controls.Add(this.groupBox2); @@ -501,6 +527,8 @@ this.groupBox4.PerformLayout(); this.groupBox5.ResumeLayout(false); this.groupBox5.PerformLayout(); + this.groupBox6.ResumeLayout(false); + this.groupBox6.PerformLayout(); this.ResumeLayout(false); } @@ -541,5 +569,7 @@ private System.Windows.Forms.RadioButton rbBob; private System.Windows.Forms.GroupBox groupBox5; private System.Windows.Forms.CheckBox cbLEC; + private System.Windows.Forms.CheckBox cbGpuLag; + private System.Windows.Forms.GroupBox groupBox6; } } \ No newline at end of file diff --git a/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.cs b/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.cs index fea6e3a3b9..5650ac92b5 100644 --- a/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.cs +++ b/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.cs @@ -42,6 +42,7 @@ namespace BizHawk.Client.EmuHawk rbClipToFramebuffer.Checked = _settings.HorizontalClipping == Octoshock.eHorizontalClipping.Framebuffer; cbLEC.Checked = _syncSettings.EnableLEC; + cbGpuLag.Checked = _settings.GPULag; rbWeave.Checked = _settings.DeinterlaceMode == Octoshock.eDeinterlaceMode.Weave; rbBob.Checked = _settings.DeinterlaceMode == Octoshock.eDeinterlaceMode.Bob; @@ -98,6 +99,8 @@ namespace BizHawk.Client.EmuHawk settings.ScanlineStart_PAL = (int)PAL_FirstLineNumeric.Value; settings.ScanlineEnd_PAL = (int)PAL_LastLineNumeric.Value; + settings.GPULag = cbGpuLag.Checked; + syncSettings.EnableLEC = cbLEC.Checked; } diff --git a/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs b/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs index d47b89fbf3..1ae0a88609 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sony/PSX/Octoshock.cs @@ -716,6 +716,8 @@ namespace BizHawk.Emulation.Cores.Sony.PSX IsLagFrame = true; if (pad1 == OctoshockDll.SHOCK_TRUE) IsLagFrame = false; if (pad2 == OctoshockDll.SHOCK_TRUE) IsLagFrame = false; + if (_Settings.GPULag) + IsLagFrame = OctoshockDll.shock_GetGPUUnlagged(psx) != OctoshockDll.SHOCK_TRUE; if (IsLagFrame) LagCount++; @@ -1144,8 +1146,11 @@ namespace BizHawk.Emulation.Cores.Sony.PSX public class Settings { + [DisplayName("Determine Lag from GPU Frames")] + [DefaultValue(false)] + public bool GPULag { get; set; } + [DisplayName("Resolution Mode")] - [Description("Stuff")] [DefaultValue(eResolutionMode.PixelPro)] public eResolutionMode ResolutionMode { get; set; } diff --git a/BizHawk.Emulation.Cores/Consoles/Sony/PSX/OctoshockDll.cs b/BizHawk.Emulation.Cores/Consoles/Sony/PSX/OctoshockDll.cs index 955d5f382d..1be06a008c 100644 --- a/BizHawk.Emulation.Cores/Consoles/Sony/PSX/OctoshockDll.cs +++ b/BizHawk.Emulation.Cores/Consoles/Sony/PSX/OctoshockDll.cs @@ -289,5 +289,8 @@ namespace BizHawk.Emulation.Cores.Sony.PSX [DllImport(dd, CallingConvention = cc)] public static extern int shock_SetLEC(IntPtr psx, bool enable); + + [DllImport(dd, CallingConvention = cc)] + public static extern int shock_GetGPUUnlagged(IntPtr psx); } } \ No newline at end of file diff --git a/output/dll/octoshock.dll b/output/dll/octoshock.dll index e2f63ab329b870e5880c9e31b875a7417648d92f..751238f81c357ad3cb2e9690db26d1d5ca48db94 100644 GIT binary patch literal 944128 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 o8z-) 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�)`@GB@=;TPZhYWgu?{3>iD`Lz~Ho$_mGs^9!FVHHgI^}}%f z`Q;eR1HaCVQuyVKU*{?*h;${t7Sd6(;aAFNghlJY^jE6C_R)A??>r6 zLY#rp!wB&ql&&YlJk%Y}cnv#3@+%KZo%X**MElLJV61{^|LcR_@y{>I9X#-BL%hN- zZ~QWr1&m*7Kcb>$!>^z_6n^o|ucog8#;-!W*(BY)eq$|`I_1~WoBigO39DeruOA}$ z=a(af2Y#I!s_@Gjzg~Kuf=E}+e?`zyv*A}tjKVLz`4#^~!1%RkAIYzJEOpAS?Kk+% zuM(_+DZg$7jl7Q^s(;G^zY?MpetF|puXh8+uczLjqGrRdq9}!5eDiBAte6eZ_+j&I zl3&qPzVNGOxZnJ$7{HoeX3)qxzmjj{fnW0mEBx}tuX%4!5b4VPmx_*>4Zoa&6@Kx} zud<4O@oU&Nl3#gP>a_ngqQBq#3dSm!_P;&|<&6dE?iK*8;|`JUVJN z{0bVV@QZJLHI)a9UxiMRUu&_{DZiHX_M2ZOtb!@Oe)t9d{Br1d;Mcip6@Gc+*TlaB zj9;~@sHoZSD+Sh@p>HQUwW^)?Up6{vJyLHu8KPFHUJa@Lg)U}`t=Iq_h*aZqP(jGY zaG^q`aQp0VTc#n)Hs26#9}@?c`h?&Gx|r&CweYgj9+n*hkDUlb!SU*kV9A?G$gD!9 z!~|1B!6-r31Em`D{}l@F)}g!fg04H7Z_o>URB$I}E1?Xy3IRn~pzz|}Zj2UEz2`d^crrj1 zB_>n~#mTU`&**^FeX)0{Ad>`pG~7U@ILJj~Fx-w_8RIlM?^Hpq3HC4?b`4S+ouDET zLL72Cw}M9A#}CzgdEi$){K_mkYBu~T>Z9G$sOin^DN51!(9KD$R!Yd_$y=1Ksd`sfG;bC1(n+ zq#CY8`GyR5Fw&N9h&vIB_CUij&RA6!j8!o0e|^yO6ZibGXnEk*293fmZ~S^|83mE9 zT)z=bN6m&`L0W}heDka6Zvo?1;onJqt;JHO{95{7zxidtDwy)?hco>1%kgtJl_u4Y z1dV`*e&Y#fI3%g=lf}L3plwNphrJ zyTDPawQn@QGBcH?5!4v0r`0X__!q8y@>n&>w`lEQ7PyQ=eXXa1Y_lWi@KlR7W}D4q zusBqWEiDlHG;6iWm~Tk3g~q|JVr}E%w73N$i7#4Uj@Yp zw+qXoU=9ZIGE3Ay+L&rc#d-#0f)dbhb1M9NEB@7hafVn&ZGT5&fBgG|lJMR-m9Pvv z+Ncsr3~*i8!&>RFf+|7Tz5-@&kS`9U}wf|L*rB3;^{iNUgD#0q4^6OU62v#H(422=41?)|!@glJ@|OQ_*HMFqGrRdpyLX^_~uvB z(tz=+5YO1Q_P^F*sZ)L}-S0QQOjrd|e*N$z|NL?s;(=f14l4Ze#;>pPD2R0B`i*IH z)NJ^ba>#>UCk@ihuTO1h=TVwL(4~cqN2hIRN6@Gc+o)QhPg)&XJOgG9t+j?kgE?a1 zrdwb-QDweX_;B%G;I?LQKKvi!ctb4|!`cBAO4Fg`dUynOkcAp69LM@QTKXq66?8Z5 z)-)L%_n?;}AkZEbY#*sk*i+aIZ8laUEh;bk6UwedlN&6DTJVhLsQQ~1EQcE5sNW37p&%gBs3VqxaB!ju)GSb` z90!B(y_(!!&&NWfxwf3INIOQ+&`fna$~Ee-dKf7 z#LNi2CMlt^um}1xmW=yS7F8FT?I~)@VVoCx8p~7*VUFB+vp9k4INZ}VxmKEQwrgW@ z7loSa;U;q;8r6W(>K(`RkO7b%j=BL3yloDp9dXpbJ)9kban3kugL_rx_IgsvkY1v0 zG`V&}`l9Lu?@fV>nHuxi#JcNh>6{U_3rhJD)s{a}WicBdb8u}bsI`sqIg7*!(~PqS zD$J8Oiy)grjhh{Z`#a9{PdETsv_o^i=s-_O^+l5mwWWuYVaCl+V}#|Oh#7puo}u2; zq^WeA(%<|ft}{@1Y~~tdZh$*bccdC+Gw-#H+HcE-YF*>Xp@ZFe?UF7n+f=o3L*ZLwpJd2hyWc>O15wY0QMlrnru-5aox50C7- zt77Z^%#+a!^ZP8$v5U@c@F)%y+SmN9y0HA#>~Q7y40|Z#cf4)XUbMS|OyARdwgQ(1 zDyW65H}^x?d)@i(s@FZ?J(0Oe%ILXdM*q*(?u`BztH@mxHU^$GS5qa0%jv`?9`&8F zk9dbHu4iuJh;4%x16hGhLN9FFvP02gSAEwR|K&K;-|E#<|7>Zswu1d& z0S1c}p|)Eu2ih%NAME)HvC7v5^-6<0EPoT{MSiAcyFGCcZk=mIql49G1unQ9j$-{_o$lDD0{yN3TM%e3wBP$h8Nr2SN}!k z1fS_&>@EEV_)q_h-qOFH|Mc(M>ZSgF$$$DE_m=*B9_f$3?IPQ#^U%T?k7Ce7t?^!M z4*JPvu1B|^yR~Q+Sbd{l+-l6x;^xBwt|zk>{^?-!8WrNF+j08xgExXCo99NkBdT&2$~KK#iwy8+3m`FXLuSrDnfvRH(5&2YoD&A;xZ! z$Z*#9Um%09JOL{yh(x36P%tDjR8t9iY48OqI0;Kz(;`t)7>GyUep)27icpeX6dTdj zv-@oYdo|_iB8eq{Z@n#TCu9d)I3BJAp$b*Nbry19?&`DZCTzj2&?;MYW$vPCX`Lua zt3f+Z!4d00jrEvj;YZQX)>N5$mf_V|pWs!i!uo1^Xc=-k4)z$Vnh!FRg`=^z@ZrXg zN};z7IS1Fmv$>9A-5{jOdT5~VUiMB$V-LqqTH(WD@tNFSjd0mhd_21bKMHqHTIFEe zaLDcTu}FS==g45(`f$|t)NIbRC8nT)y(cs%y9QDY{NF!Z6QY>|^%N%?vhK-&&`vpVU-&*z>(^dtN2l^Xw|H=i*R}*c}5C4rag2p6>)REZOtjqCH;%=S)He%$Bx4 z7X}52Vb><~(2syUufpd1kY?d0k~t3%&AI*VmNxrp*P1>N&F`W(R8V6}+hTqUrR}$e zJuR$n1Zo_T8T(~A(Rx?7jQv4u>~~s^fw3>B#Kyh_8+-AY++LM%d9C<(0T}y(VC*3g z`(4If>SN^vZVU_#t!*6~Dz21eq1Zm=J^xJLNRCbZrB+;x`BwoR z0omlAcIzd}zoQJk-_@7q`#lD3p@j9&+uoLc6ZO^F!-jt(HNS$)zsN;a>C1NH+JZX# zmjBxNEq}B{mX~;tgWdOh8RzHh^_L<)XTWLO?a!Yvv5%K=ejfYqQsk!|e8je&pRpeO zHE}*h?5|xQwYRxCYs8dHE46KAT|#3)ZwcJSdO$bak+C~OoScFCcogo53+uJj$nd?t z72kLgO&oY5dTo2f{nxEsH;L?@!3@9HRo^KN#qAeu*b&&HSgV1)+rka5ak!80I9!=D z4tK^LwgheMsB5;B?3(Sh9)+%%xe9m9nq^(HYjD@BwO_W=)h}ypRKP4X48WarV(XND zi>AUJJ6u@b{TEmSONN|yR!>J=;YwoIW+WV6i|5tdsaW1p;7ZX8ChinOPh~?Cu&xOqWIx%_lYWU{L8f5p^IK|vd-CdPtxuo5rPQYj zsZU2fRO*v^)>^Soxr_X@PtTUNSD)zlaDV5^zHuSXHD5Lvn0DHDKw774o2-MS%DrK! zawRNQ#;YLUj(gVZSJJFm2>O@to8fRDFHL;%!n$Cs3n8k|WgOV-*IbFYV}6xMG$ z>k#{2>0m-M-w5lq6T}sf_C$3|C9EGVhL`=)xQAX<`4cRu+zoSiu%t2HIaCb?pt+>P;zu}^=0=VIy;tZlro^&xpQ?=EV6$ZswTbM1{ZQka7! zC2i|N_R1hP1I_^>1{t67p;Px09%S@w{l{L3Y~mneyJSNJm921V9cKhQq1~{U{m4Ca zHhfH(G&l$=K=#W<2BXOpAfLV^FX499_sQBbS3&u{d|8+8o7fGMZ{_>#n@ah@NS^Hb z&442WFXQib+Y3IIZ?`v;^7Sm=%I7cZ^0nb(xP1G52fwbAZ#(4+AIN3={l58}&*hu; zSEYPC%l8fVKrZ9*-G<#*`S$((;WedvJmYpW|32Mr`Fi-HJB{}bnp=I*x&3o_ z@y#Xf95=dV23@|n4uE?o(G^IOhbxdq^t`m}Gr_%c{3qi%)1nq(`L}p>&i5^Z#LQp? zUI2slAc$@cg@Fq}6FA#)t?%3=u1}Z@H(~ugtY*ZUk){xvkz7kn?$B(8btm@N^tRRh zRn%&KG^$ow>5pu#eTcB&ADL@U^vOlbr8}^A5*&Ag!m5?XG2o?2KB?Ctx$c@Ox$Kxy zSN|kYDB^tH)l(kt6kUGhF>U$PTOMCqF2C}qTGmNqO`@0{W?R<4~>r$u9R zw7;6@GN7|O{;VsXNaL2uKYFL}eY8Fk_kJ!$1ZnA1!&Wl_os}}rVw3;k&*RwD% zsm)$V`(56FBSc&~CugCw+E&LETV3V~HYLRlw`+%EXt~#c)Anl5PtqcAWIh55!p%`_ zyDVXmH>~(RalO|~nCW1^z`G-?rawY1OaL1;R`fgM+Oiadh%yovg1i1}&z^ByUSAhn z8Ra$Krj!?U1@<58%1hdrd|7{AJ4-I0yxhKo-5%Upz5j^qH!q%lhPg~)yDOQ^wX{hD zlTa&L$=pp`$&8mVpYhEkdiZmbFJqRkSN;o}h5=1+*qoF9DA{z9k&#nqnumsUrnD`&qflZR1{%v3& z&zF{-+pPKO-=^YGTq>e}n^3$a6z#~Vdu$d&CHCsuacJ{N>t6BqE$*C>8eF2i;XS`* z=X>VYaL7X+^2@sLD$K9ocJixVo=^F8&w{HkziyxDS--50_>^CR3a`TaItFz~Zolq< zJoMpv{O|m$Fu!KElV5`#_9?$M&$|lq>+gT^tY6lLe9Et9p12D0D+lV5$M^W4Px&={ z?p2sy$Dl6B^J@^)IUnp-%$%z*zpnkGXMU}Dz^DAu%)Scqs{-;yUcVlj;ZuHnZoUfh zE2o|O8V+^NhwpJs{#BS?CDT3Y*P2|P^6Rn3uEPAf9rDKGd;Eh>`89mjRhVBDkT>%D z8h*b|`PJ{ycJiyk^H`3wp2u>e^*ok3_jxS!?(HQQJv&7_Iwf2@k0lJB#}bMr!09aY#yMg5Bo=%u zOIj^Hj|D5AOz9PW31_$9!&qo_5u!T1OPyX+r*Bh-m1!KVvs1Ngcer z$MG%(+3_xt|D~ih|B`q!FoFXdL*NJ;130y4JK#k+n6k6eUFNu^1jN%_@JRqLc-@g# z=pxs#U($hV>#!sq{3R@p7PUme$zLcLj+vBJsVWKoS0$+ePXBc}|gKz(2gBSqLuVB%~WW4CZb^J@)6lsNBn}W}N*^DNG zKdU2f+!&mH35!4$ek?kbw2j)C4?aI?(QfIG0Py(_J|&kH2VuXEp%KD|;CgE(-nR{I z{Kb2cNB`?ZkN(+vT|2sA>fppc>A12J8V5cejy|sp7L$~tQB|&k+=}q}kkKZXb+tOc z!)>J+yVu%+)04JelU8mURR#XMu)DUq$hp<3hlx)}9N&|dZ??fTr8*f-XuPmla0@*P z?zMcaRQbM7lyAJNd?%CT3&rQXe4$vS@`Wd*@`aL`OqQ?fI0(YAXlwb3Zs5UR#3-l| zV&Q%#7Ovzm6z632-cHL`EJdPxQCgL}#Mf_gm+x`0e4TXpIw6w3ea|n7<^6B*0L4cx>U)ODA^)EDgRgetd#)F~7@3LVoTT!`-|<$- zAC`H)>tlwKN&Wqphe{u_`*;pm_~kC_Q|*1sFu4eYU4{L^N`8srH5KAwv6PM$i-{}6 zAc^GnpKI$5hnkXSor*4EQ@|dKRHxzd45eDK7h8lh(F;*9t|ji}VvYyMS|ZwmRGGcc zHh>E%aS0zx0bkhp!=JnAN9*yL*xq+gKU@cFy6T5?z@}6`kgI;c0c+UaO9mdUC3_%Q zchN6}%ieDk?R~2~fF~t;0EKNP>jyDCEH3hMFNqP2fmA=>Y%tOuY;qZUeA-v1_CWO0 z(TP3Snui%?vToOq#vxfLr;e4d;RnhgcmKd4lVoZ`YN@uWC7 z5Z7g3z84LQy8`XZPlBU_z%SZCjgL)*I|vWc;7;0IZ@zEOw16FfdLx<^X(_`DzN}@~3k?$T)Yx2GFc=%My5Oa$xWZHpSHp3ClC6QVN~;+G_GVEvcwWV; zz0zugC(l65!4(Hivz}5n@(=QwL(DhI&R6!Qy*b%cef(>0_IFhqvAyZGEur`V8l0Lo z%OeI|L^D%tQ9`55vr$>qsgdz$VtiP95sgZG4ldfBQ&*D(CxJ?fzrnNkUQI>_9H9#p zSd#%KO+tHmza~QmUoLJ`rju=rdDE5hZ0j~$KIQrLn2RgVw|=jb=jB+Q^G9D?d44rj zDbLHXJSUC1xbo~ZMJdnAu{@(PFRnZjCV45(4#ziZTgNwR+a2FLBAz$Retfg`!pAp{ zupQq#B8_jh4Zy-kCyZ|<6XTooaH&BYE`{T@#evcg_i5NC(F8bc+jSZ?DD@nDRkt_z zN}R0?qqs0WE1j(k+S<<6_Rw~rXKTCqQz!_=WSP^pI=9##Ln&c|0yyVdQUF6IZ~+RSOCu>Tw4*>i9)Qve#QEM;ZNo*` zJ6#6^b~Xb1U$R9G$2Bkrp6&kPgSQK09_@r;# zU`Hm%EF8KQdd6534+F;?7?XGoI37qf;jyJ7FoJ?ic<=zO_97Exk$7l09wvrgwhj~5 z2m@i)Bwo!~upfqz9N)w7;4r>iP!5M}<3>H4UNou_jthtTwt_8nH)e>hFKzDiV*J{SFTpxX%+Gmm@QCO8vSN_3QP!uG0F|Fixpo zqOH2L_N)8VYQLTx+g|<3Y#T54pN|3@ONaLrh$B`P%g2fE=o*+#)3G1 zTWX#QgOvC*_OwcSm<3e~R>77%n5hM@11f=~?VZWKQS!sO>HM&zpthud7}_5JW$atTW)axYgh~84Oibc_>VB+8kEc@2`*GJD zFJBTn^Uw*y^OJC=1{O4dI|jIh&NVD|!rj$u++7v@LO|aQcSzH=K%Y&#fb(a?zi@cU z5xB@g?&DDl<5jRw59YdIFCiRXC>^J}|H6*bg(I5Us7f8DTPYo1xTW*sbj#a7x?kk_ zB|1(w`-lm$4IihQrPYLpv%j^PEV!tJMHiYZIA9W12UTgZU*gN{ds)1&gpG z!43D;#Y7u!fu5Jje68@I^)G@>rLpG2|1qLNxrr{o!=eI0!9qT|_*v z9wu=1V?E(O8(4=1i;wUiHKsgVv{K#)L)hXHB=8jHVtng(w2SrSZq{!>4nREG0js9* z0wGL$@yO!36}PzR>Q3sY;tE%9TUrQf_I^~cG#c&dK~t>XBC%c^jrM+2aqE#*&=?_D z-@5({A5|>5sM^`;q6!)?F^<8%)~Zy-D$O3*QN>otiykc2--(YZ9!?%r>$46fC{`gFWu>b!e34aN^(*Z{^4cDjcRcH)De{|xN~*QEH=x?yojeeH_+`s8nv`if7J_P4$+zg4NP zT~S|OiB#$F5ntLVb!DD88lt z^=a4;r9NHK`gCR3r>by9_34yRsZW=*KILA2McAhSjOx?NH!Jn&lGdjmrINbL+fP+` zM)hg*O-g;br1j~_uuluGVN{=*4N85wr1k0XepdqT%EK7dr+05q>eD5yPu=@p3H2$j zFQfW2B|@oBm$W`z8TKgxmL-XUe8d*YiyD9G{VSzDUDEorIP^-ePYZi9s!y8+DD~-* z)~9QvlDf?MchOR<_kTQd=5omJ_kjQ09Q3j_NT(V! zIYjev2wb4&L-GHc2W5w9p4Y*pqb_K03&ig@)DsqTZifw>$Gcl=LoEmE;byN&$MGP$ zcGM!3R;6*+6Bi?=wf4L%EhOF)k{@doeb$~w+pP!B3+uI`!N;qxK6P|ZuFVvLFSKx> z#TVV-qC2?JvYA2_9@c>O+VaCeXb1cx=kq#ituQqg6{o9II@Oeklbs=|R)4PG9IMqA zLmHeLZ~%?cxg1{KJ08v&2bb45!umLP9q`7`vOuNk+%fIh3hcaiD*SSa`FG?Ab$l>KeT`vc(2>UZow(cHqP8^C3SdO*8IvmHbo-S9*_i744Bxkqd(RN7Z zJeRZOa#U|T9aCx98d0oMSq|d=k?S;IxN^d}n7VF8I1PBvE?9n&izLVGy(*``p}+H{ zit)F;vlF7owP{_qrT6JLzjASYNe+Blv+RQ3iCyOTl7Eixf-HxQ!OXU0J1#Svi((4!0T6)eqM{pT6%sb@I=z!n|6TG}80{tHp)lt` z%6(yWft1h4=r4nxR#b@!E7oSKK43V9tvv=$nY~TM@-7=eo4z?VKovN z-WOK8k#aSxsUqcB23jr}Ov@{7l*u>I@@ud-mDINmHUm&HEVd@)Sy8k+bO#(Qa6mN~enuv*n?;Au zdW@Eb=F@VunU-h4(e9-Fpt-dC+7q;#0)Di}=c@~7*;z=->!77aKEDE52c%qNq2*ac zv^>^I%V&yddBtK{zF`S1J8iUlAEMGUa#|kx6fHZSrseydq2-|GXnDo+v^?|$ zTCQG6%lExR%Rzsk<=0-O<)N!-x%yRFp0$RSgZ@U#uf0yoDR0nn^_#Tp{0A+sdyAG= zyiLnR@6htBcWHU-d$gRgmX?S9la~9gqvfFYY59yyt}dm+ogdKhx({i2#d=yU`iPci zmC^Fpk7+q&11%5TNXvcykCuZr(efFYT>S|hzM`C#$2w@aualOmW%7#6bokgUwA}Yo zTCSGKE4I?%V=HL+OeHO^*iOqg?4)JqXS96ZZdyK5Mazfw&~kM(EwB5WmS5XT%PYR1 zi_>q=xXryIl6D{9&j+W1yr{zOG({gn)Ew5{# z<=0ediYF`7v^*<_mhaQh@>ne`5A8t#%lGxB<*@=S57p7~4Si_2Z(mwIBa_$lqr+!~(eh9@B!}ep8JWE98ajN|wX{4` zPs?Xy^1AEj@LAW>a^G-TUiV8{P8mqchazaX=muKuYoO(z!L)ovCRg7`hdXbg<#my? zyy9kB9%`iJ>L^;iZwM_1!6BGre!q4LEf0;M z$I{`>duVyxI9gtjP0K~&X?a!-Esvc*%PIHL^3eaK<-QYXIcO3spOMMca1<6 zylyHjub4*5MZc%zS@+TM*y*&Kaz8B({ew$}AscbXOB#2sM_F1JuhyeEA(q2%qLj*U zusFdz*nIO5wY-{^l4ymHyHwXJW z8vDa9EkCIuRI1tI^Ai_U=SP5~1D{a8zsGtqB&Wq3a(5QmRreIU5qPGb?9{5L`*S+D zKdtRP=!3}2eW>3hwS|-8O_xo2%iG?Mdha(nxKHFyyXnnq``u-kUR`ec<=fcy-c&x+ zw%uS#9r6eW!69+>dCx-)?$|{J1R3H?Qsesq{|h;C@ou{dUt! zo#11eIcgq4Nn2vM( z>yAx5*Mc60ldPm>*eN*8rxE7w)UdoEtsX7G?J@KeZi;DkqmOVSO!GOkyDZ1V2G}9o z`hqr^r3E*@gpzMn@PF}(@c*Kg{JY^UG{l5O(3ym_5)GD?g$oy|%)h)F+GH)}^W$60 zjbradm350A6ipra7B|jtgN+Pa@(>Z|MTyIPw6A3P1HLKw>S5wJ`J0@YNd!XDaGNmE z%NxziBc7Klvph-!x(ihFAL(y-{_(GYF3&VGkv4h4Gae@bz2u&57V(^1$)LxGKrc#O znoT?>SMu&0BG8BO9P$M5yj)rGJR*=P&k&RiT_Bh>m!`Mtg%49g&@3%Xjb9I+rPK|A zdp*$DQ20I(oFHM<<&>Ck$yLv#p#s1E259i=-& z&C>S>!;?^irOypCX=cwVl|@gfmO zmFJaaPhTMtBDX*ZtBJslY}o5B5f8~V99TsJcBJ92uM!W*HGKIR5!jhMeetiv!*WfZ z{f!9h*q-7BDYQ`0Id84fyR+e|OAkerjyfHzfdnLqYy51Z8ZZ<+8m4R88m1BmTN|b# z2xmW-KLP-FlLSEXJXZ@8nAc)%5Zjk6(k;s~+3(jbJ}PPpn=aeK;fv_Bk%>S)FX z0cf^rc0&V7K9-DYOf}RPX)KwpG0;%jQTILB%B6Bd46Y^Hub#nAQ;kn)fSJw_QOgLj zE!9E$#HaeA9^19`l7Z2Y1ls~upxoh($ znQZ)cX26*xLU_aj?79p_Kf3POuJe=ghaiEKVlNfy6^)np^cGni^GxCT(#`JVpu z7cxhfwDqhP*)p`p`c7 z)jx>m&@;)V= zlPl3w5P@ElytI>ePOfCwE+Wu}@9$St#Pf1x|J*|aQs19Pd+Gw`7rwLyx;#JFN2E=j z@VNa%pqHXpTTMJCS2BDr5$Hw9R|kma_|iGG2$V)hA-=gz|QRH$KMeT%QcNUNdz*pr@^U# z{{GCTiFC;;YU3Fq(95Tj^&jFnxsv~$A_BcAd8>hVPOfCwk3^sk-`}qqiRb0Y{@FwX zQs1Ay_OxV4pv&{qW+H9!glDLN+J?fs6vgVFyeJudo(S}!xTvU`+H7Lq)T2=U$~A4^z!LU>rXrY6TV~+5$L5TvIY{*$(2lx zAOgK8`N}{%Cs%T6FcIiOc`m<+cwVmT)kq?cD$gs-o-TiRa`>hEE~_y(rl*jd)J3WY_PBKp)C;=5*qD zxiZWBL?Bh3SC~DWF@s2m+yXuL01?=cHN5Q)#6xlocjXd+9ckF|C*mQwhA$r^0z0#( zPdrRKEZ1b8Ndz*prxim2{{77&(j~8`Gae%Xy?i>+j}Xtvl?=}#0=+2NkWV}(SF+1Y z1p4y*%_g3gE3?cY0;%uMUwdkLEYRhdJ)cOMJmC`xh(Iqz5iyr|POc>82_n#olD7(p z=j2K@Eg%AYD9vc4Q52v=R@=HN+PafgNcm zT|zu0*HB?20z0#(e?r8=a!m!xh(KocboR{w|NfpL(j~8`6P_jly?i2E9N8dQtMyD&jf0l6U_?1o}{(qhBGOmn-}IY9f#-&nwKHX8e^%h};5={2LM2 zku|*LRpKGJhMQj_0z1<1*Vl=MXdE)A{qq`{5;@VwbJb3TZ_tYo1Yx76_UPrY@ z%%2;`<=>w9^VmA#*B$3iIJqL(oj;fB_tZizET)nyeoql)M3Oy&A1x<>JN}-oraH&r_dPl8>*D+&SDt!iK;JLC zX5TY4L~zI7Qxv(<(w#q->-RK}T+~VBi1a-jCX(zK{3^MSv*YjS4sv0lKkb?1>$|qT z+(NFDq>?Y$Uvf#OXYl9LQpyg$r?+K`B>k{Ak76%2UDzJpL#~1J%mC-Pj%tsXeUGV$ zoK=9>~jB}7W5!qmdX+Fd&=wXHTc)$vc!(Rr=NQNKYL#T7gd@4KfI_Tpm$U> zH&Ib>^R0YA%R*OB87;$iv8~XuDYLzaLIcTgWpm4Rbz3X7{jJ-!YpmM>&Bge4j(D#HIf&wZIQ&&<7CV7j0TpU*He&w1wD=bZCB=Q+>4=ROy4X^uag z>7g%P`r%qc7wri1Qx_zcJGlVY<0<3i@3{6)!b{WUr+)Y9s~lA3`Dy83G*}mrsXyKKTUBxwT$ZNnPe0&#=j;o1~xC z>Q4)AM}u_{nflXAvntsSmjo&M)7R4xm*)7>ER()?@xwJcF502~bQYH?xs$ixIvZuY ztiTmC5?-3-PiZ>u53>o^z_=^m1zg?YPM&l>f`zhv!X8B3B>l8jf12?S8mx=R)Ssdg zRmo>usy-C=KiTsK#HBg@#K9GF-Gn{iz%mT)2~8{38-u8846E8UP6|P4lOb zI`0qjXIy#Uu7GEsK?-muN2VdNvVKC+Q8!6Ht<|3<*wA2IM5g{U;yG3FaeN_Pd4Brf zPlyZgC)lr^-w%5$JxlkH<;U{Tfw0Lw>>bO$L$*_b{kLGRS7A%7W9?u|%784oe^O2N zfM>~$N@Uk0*gFaKfUW5cb_j<}_~#_w23u|Qg>SI;t7XA_*o1$H-x9x>v-mxZ;Pzx$ zOt*Q(&DHHZHh(KOize>k!t8%C8B9z6beHEI&+<(6+`|W1GP%X%*((phMbqzj zZr&(2dz5FTOl~oGUhd!#Sm~adAC;Ru$}?Rix0pN+8$HT1*K_lDx!I#UePnWr$uq5^ zM|nnjZtg8Ndz7cH<>le!5xV$KvghUmx!I#Uzmv%=W}m(C5M1PW&vWxex!I#UD`j$v z$rBvp5pUJ<$XvwyR&Mqv&;Mj{i^((1vpl0cH}{sCJ<3z(NgkM{nf(`efBtD{d-)pv z0@=>mxf3I|ePWQXx#CP=cST30A0*y%(?wwq#(+X$qei;vVw$JN__*vMe*kuor&}6NU&td9^hALLF$;58`5s|5?lRF*3!m=FB^wGfKkpZX^%VAXn zB8rA#_c4>l;{RLJndQ{|21Jx%IeDkoBb(_@nYEYniGRa~A}Ltl%^rq`D*p5VRt3xC zr$O47yniF=$1-u;goqmaY3m5opJjGRG>y;B7mN?I#LNwB|5Mo9rswtG^P(YWCVkf5tApSQ={uARG8$%kB z|13^!+0lQGlUA0v-b23WCjT6qMro5@$mYe&Ur6a8BN4I_&6}(@VD&XP3uFab)m_Ev zqk18tlGT602?~+AsrG)o+Ut17nGY*@_i!W}OB{#qFpc%Vg>_L=-Kdw!R-5 zhx)V3{yiNLy_4Tgy}7Zz+C+OTorA{C3RXTB5mi+E#thVtWpZUEBC0T19FO|3Ov>gX zq6T{v{~q;cnMK`$h|c*$%hTUd!Lkg>NhLj=iRi)G7W=cv?lU{AUnRMb)?c5%puW^Vt)K zsKR7%3hKu)G2-VvYOt3hRfX9z_%_GZ9sk~1jpSe>Mx+f9m7>>wt*8^rAtnP6l{kEp zg*veuR;@wAhT`9%KcUVnr*qFEqSxc!4?4xa;V&U6SQNkW7erKXg`hv9ek_y!ynu)* zOct+4{a7Y78xT>0Kb5_V`m@X)-iU}^ihsj&ihr+eMq_6M>;F0;s;K(uS5QBeN$=MX zQH9AD|3Lj%CQ1K9L=ElFW9{Rm0H0&nxjh^XQUOLn4uER&QE z5K)E6x&NVlEE8iMB5Lrbt#;I(W%gk{B6=zQ-Jnza+g6Ci&IA43HHP~y%Ueuo*(cVuHv31A4(o!^3HewvykBCaq>y^(?Cziw8C5WiR zVc0>`iRCcib3|+?{*`}$IlNihoDHMpCfAD?f~gDz5Oxm#81hB;L{w4r2ggxAmdR)3 zh^WFO_6O9DWpbAT5jEJWrULb6nFUuOV(X57rqgJsY{ckRg@{Vg>j)N><#6Vd1`dy$ zL7i9*tIi@~L-DVFHR{ZA8gmX2y&nI{bc%m{FCr;e;PtmEh1|0r$Ke7Kg%qt9ud71|H#HPjk;FZ#Ooi!1JJEDtYD)85mCinm#_j@CY}7W zG0A9$`ms#bw?{+`_8MzM{aI$yIwE50j(;;dp`o%7V@_v8REmFnf>0-x!^mJnRO0Za zhv#6)C5yQx%t5$AQt|r7qOPbjI~GefMD%+6JE&9qTX-Fkf(70p{75Vne;R_f;b57J z$B)EPVe&rSW`ku?j30@m!Jm@CRK$7)KN8DJ@vo;&@o#BA6~UI_M_#F@`Zl~R2&?Ki z{KzX6CZ7yY8A(|LB5JVLlfOm%*%9&hkyoud{;eH~1f@$b})s1rMe`kN3@G>l^W+dKkwW;wl&Hv{o{{43EZ{=GT|iO2$PGv3fd#TAx} zQel!3iHIsp&fS9gu_H0!JySIJ)7INmn0<)1De+SLBOBG|k^gO*pd#2i_z_hqs(yN$ z3X^R7h$eSQDklClslNHW-HnZT4b^-4_eBdmwzzR| zFBRg{{)i~5$*sQm;6T*Lsez`}`v!82jUf%mKXDiuAS?er2B{D;aiy%1{M{lE2W|4} zQSZ9uRx~VD>eFLXhzIbEBuY{zL?aGF>ZaOzSE0A@-gOEZ8Y}r2T%^hpGw(pZRFXW> zwQf|hcvIyM4e>VK`_DsCup-9JQX#It3lWv%pM*;jCF#}euLs`8;d)0_>V*rDU@Y++ zT;Hf9b;1(Fp*eW}yujOdU-mc}8Y`UTQ59lMG9oHT{^FCUlQw&+-Omuw(c5@`VHFx6 zEB{N+s1SSNDl;Yd-+c~o&?dhgc>gFH4U3gJ7uVRa#EE}Kzf_X?+jXc@bMSs5&)axE z`!_T+R=Dr~szO|kOTLsOUyduEwAot?@1xs$8}IMnk}FpJf8fe6mU!1zq#PyrBXQ}G zHu?3y`wCoB#R|3*S46SI{*;@_olLNescYj>$!-{wgS23}~t;I-lO7dHA(Tz6w^}ze5xQ2!mEEku@u*7A! z@!CixZN1tJmpy2+w;JB(8oZ77*(X)x zkNr-CSmUAI!cG2zxU@i<{CeO$4A(2LhUI=%kvjhuL{!52MtuF9NZnMthwkt;-pene z@w1YDQKLf4#Mk$gB!2*3$<}6XHM~D~#oO|4##hN%`Cr0U`dQ*sd`VnM{sAHA^qn^O z^}zch9-c}dZ^^I_Un6Iw?uxIoDoOoQ4@T;y;yvPhZ`*qmzADQKHxOU{Wr=0@ilvg| z@8WBt+U%`{_vB07mj5ii%E^lOJ-(jG64$$2_!G(&+~WIke0@=y{CeR1BYdHd6>J;6 z9?23H;l~juS$#adZbqaAyz8_7u5pQx?!U|b*8tn7$oua~&B>md6Xa%>{Q{+5{Z1xJ z7Svsy!}1X5#*Na*c6o08kKF80o^88OGx0pQBJj*lMb8~OG*`qvlEiVr*kI=;s$)1}NL-<`NJkj76A{Hs&C~uoQvacV@*ei1v>d!KJ`4dERo?mHA`|}96 z+vixj8x2*e=#hvo?m?IU;JX*Vq%NKg;al?-8+e$G>A0XsB$&2&hCvrRepClc*ERVbc$YsKnusQ>YWm z;nklIv7z|4=rroga(bx>5t;bcr25Rz*Ba|XO7)3C{NC#*|2G<0JuocXZAy;Q7%_Z>LX5yOI;v{kO}jcBNBMi>x;h)UUMNg(RPa_H9{5tTTs z2}Ye*4)r03C>lm_eSfwy>dbOlY(hk5wD*ob4SGo@e_GfbNx=fIyaytxxWe6CP(PN* zPxw(^DoiqZsxTRJJtAuGCy&pok`lm|dn0Dvu~+d|I@v3?KN>r$>WLAEsG{l*`k;O+ zleln1RAKTxzWa=2l6eDSqQPECgHeB$+2tXK*t+B2h!JS0Y{YnXBqAzBubc2ab1Vn@ zjT$)I8;Lrx9O_3SVngw-{ASddYjyIcZR3#?EbvB6KtvT+$ijF0u}p4^ z(#GWbXw;8o^5jHB)ZkBdO-B7$W|gss=%x7gxlZ=#I}MGU6>RgJh^S((OJ>xMWwLQ9 zBC0T%hwnyYnK*Y_2krXWO`X?fyiYxqxAFRPLxw1$b z6U+ZY{a7ZMNr=p|TNU&eMpf6utWV5p`lYjKt5zP~!0B zGb$W%S0G|T@o&*e)R`TN1>gMZ_4xOkPX4qI--yftZ&5muU&Wt>q@sQ-lksVYsKVs^ z4AhThQv4huYVfC|Ow^xc_6)v9*-PyCeG@lD`t#CUN%l0zwaEx@^Yc&4BLS^ zu^cAsM8t;TU-<{9Gt24RhluF)__snQe>$3rq+o$po`;AkuJFc3s2|JZ*H7>d!K}{0Sm@DgHHjubC!ZuRpyTjhz+j>>fl^QS}Ffs2|JZvm!)P zVG{c(>c=v<3vUyl!Co~bD$IgQ5wUg0Khx)EsBFaO_5~s;MXw`RSeCd!Kp_A?^3?)W$JEE*~sd*=Lth)VIV&uP?&~bp-v)_YMM=}Q& z#X2>hR^P0)-$nX%Z_A&rR?<2USL?F!8_Q5}n+OxPdfylEZ6ey_*Q4Gw1m9c23bqvA zAHx!7;~Pnor2f`{R70e0s=X&K^|rlVz{RYraPQ+HRhDSw_Q=E=HPwq zBi^?6+25d{v67$bu0njWHzF!Y-mM?%q|M%H@%{C;y)A#&L1=)i{M{o|i0g+UqLTcP z!%-(~^6L@b$K8yE#Y#P4lnOEbRzy^iI$=EO)EvA&_>i~ly=)R18Y}tYXcb~lGa@QU z{>xO1cqg`~#<{5X)vFqLTdYy4G1q8c>_x^uT*9uBl?BK0OZ! z#u7K0%Qx+f&&B1$eqPOjx{{R{qE8P3{sSuMA5m8CSe2Z`l`l$Ce};=%nuGWB2fS_X zuIVb0w@XtY?syInl_Y=BhB|4pw_1Gve5<$RKkz3sK-RdQ@G8V7|BQ%A^3TDg1={4- z1Mh#|fX2>B{rq24h!b&rf|As|@%8uS;C(PTh=VqJ ztKt1bqxW2C==@ZFe3hKFe0O{?pCuOKOX5oMZ+WlL^6P>3Q#;YHSiz3ws1RSk*IAXM zeiUEPZ4TaFPw+P0-`S-i+&}Cp#JliCNhQf6@#W9v|H)*@g0TM5SDt%3%QM+?^Nn(|M|nESuRH|0pQEJd z_dGXml$$-uvr;Cvm^?4va{dXrUAhu<;&XtH07b2pEdKal*5LJ-^liv4gWAf5{sGn4#A{}At{fH=LYM%Dz zk@^pM0QF~?MLmd!-lAC!Ps3LrDOljmPC-N!fBFEc zf@Sj4Q`(rkzY_IhnK)JoOUr}e4Q}+#s$i%-U)n~4o+E^b_I{z)i@4b#ibI}l` zlV1{X-YgZOk)DN6*nd~zP(YWCUfX~7M7Fo(KZ}!FR{rmC(#jIod&oECdOb=0IXI1S zBA}(}8KhyY!C4?H*s4SotB-mF5k=>4llmu|posH*lkom}thepG2xmU5Bh4oj@TDS?vw-JV12waNc$p8uEdeu_uK zVg-8@rvxl9AI~*PQh)nr#9qXEv-8`n6B}#$Ca&*~;wg+xEN0^=OeNL19?z&OlSf}d z`cYx>#otgrmdVt=Bcf;twe|hjS5SYJ*}q>!MDOIcQ&;O`ucfb}v9p4e{{sPJ7y?6X+>v)~~>FCEu3Kn>aauHF* z6~5ky`mszN{SXmVn6$H_ek_x%`G}~&pFBRVN}3RR6(VNdvDegRb+Xrly=d&LmhwME zL={!vhVM&bnS55PjmhE?)Q@Fi#7|t(U@ymh6=u&IM8wt||K2J?LuF%6eU)2Cv7zu{!zF@RLYH7RB%UfQTyo z6ol{iW10L1KmJ06$zuE*3zkXEk7y(s{Hg2|>d!KJ_-91)Qv6HN$zHGG8wFXx`s1fg zsHpmBe4irAr1u%59Tg^DoJajwCP_7jsKH)SFQNV{v%{AWv31A4a6eQr#zu@S{)ng) zz3OU_uq=m7b%?0M;od-W7?#87c8J(e{5ybeUSv5f?ua;fJ^n@Nf)P=L$vJ#8D9gmy1u@a!Ph0U#qb#!zyCG&?ihob)WUp=4p|P`qz0(sB zRaE_SDC);D$;S7ssxWDHy$X|_y%14@y>^75{_KeM;+th#cl;~uhvZ-*#=-uGs1&_k z>4Q449NzAWh)NuWMW9YBhY14_v7z`^{#(?U<#g@_MD%+6yGbX1Iyw|d!2+**7$T~; z!W;NLXqL&xgS9aka}(;vGMS2Rh1TFtju9%%E{{Y+FU7y*I@#;=7&LZPOK0(&*(&z> z0N{!%~WpbB?JH6G;*Vf#o!Yp_kBDU`MXTmpuvk{|P43a}BdL6;S zvK-Ffd*hWjJTeg-hUKsd-@@Kd{Ocd9!f6b?rQPfCZ?I1O)b|b~B8%ew(-2X`6@J93 zV3}N*qK%2=PSlTOk{O4H8sgue8K^(YEDGO@@1^+n2c7ISe6EUMqwvl6D)zdB6~Jnz z(``@$*fVD#l0zwa^}%~4upCC- ztAWFtcw+*VL+<^UgRrrf;`NV3c>e>IljT9g$?NeiLMMM(n1rNYfw$-(L{xEwA&XHz zmdW@;L{wq&{u0!WWm5bwB5Lrbq(@PImf16STL&-2zeevh)5PobOP8q#wrn{fs;K(5 zrKlgPow&ykQH9AT$*3R8q|Abd8tnDt6R1DSjDHdlTX+0hy8;cBjTkScAfi(ITksU> z#BzB2X+%`wa0+j*!E&fyg*h}3|2C(g&Mc?*pG8Ek$G^Th#lKgdLsGE7+q@bPRa{|- z74>78q@*LF3X^l0s2|J3n1zTM{AnwX`m@YFT!V;SihmF4WUp;&(b!qR-od+&sHpns zY!xQicoP&AChcBSVbXIQB5JVLj+an>R;;~v50cg$|4RRcq8CIcl$qvE*G)I zjf-(HFH4;2aw`(E|E^R=a`2Ccy;B2f_04Mau7O_L-$okXM0|e^E8;(%LZfGinYdC` zgo#_Fb2oe^h&K84sCQk1?=4{kJB@2}S>geFBZ-pK2_EWQn}qjW*LfT7UDvCabPO(1 zWhKvi8U0d8@<`XZQOV*>#e1mN_P3Gn-v9rQ6s(A`n^lPG|AmN3@=wC0iIVir`H252 ze!kWE5oa<~aXAx>{L_K_1wHUS4%a)fQZIZ93C0rN!S#(wQYYa0JtB2e?frSExADFV zR|T@dS^lRYdCez?s3iG|yHO`?_EwAU5qEoA{ugkS9V`D!xEPQn_QX|YO7g$^WuxWS z1MeRlLBnDN%f&TzEO8>P(^8W9Tf7N-bMStmi?{84*3%a1QtT2%zk^GzSmXW!SB9~~yDlQ-D9Im*OOLe4uLs^&_@P9b6>KT4h+>KTaV3|1DCvEcUf%i}Qp<%It<>K-fmbeU8z9>l@$JVVhHJ=F#@wUBR!1X4q za2dFcge8vkP#@yHUc+S%+U%`{_qnsYE&uFWR4gAmT7_8Sq29tx{)4!*K%4w};5`i2 zE3k&;Ca6fAKN%5~@V*gWe0Jue951c{EOR>a4azsU*A`f`~iF=TbsSr z@c!U*Z_B@VzKV!1;Vb>D{8RBIaV7Z&Bp~+MuaUFFuJ}5ulGH!_ zKg7N{c#mlBZF`TxS7lk@2IA|#EU^qYklVhNxoh&SHLb82MOci!*X}mhr2@;ahZ6DL12(UmZa{+vb^~s<;_d zHcLp<5iT3fr5d=tlMM!bbrPHtvmT2W7hwrY%^eAS4VG?P&gzZO9I!eW{zn#U^-GSA z+P`u(Zy%cPx0;+pi`tVinYV=V1q18-$k6Lo!O)Kd1=xq~&kmfDn3%}*h4atwm&iXq z8hB<$`zHpMB-*CdS%37i{0IVoNW3Lv5)5X|llArWu#I0rewcyGf0BMojnR)0^b_zk z(ojgi8Bsr_+?}8Ws-I%pJkSqli|WS~7ZO#*%>Z>#6^Z&WMU`;ba5_@Ee(a#1q^Pe~ z_Q{^+$LCv*)me|%4K3#L_g@@p=i@?#76>}y^P>)?MDu4rTc9)h$sn$8v>`jBeRk-K zorY9URYs7d8y^>*cARK4F_pQR=}z+gWdJci z*PM9%ECm;UjQ22cZp0nUP}_}I_@J4G5n7g)whkTsuAF$R1YRl{vRZ?n{b zxw$)Qc&n($6skz8tVoJAtBAEwQJ3LSCA_7U%dR3w5b$Po;w?P&LjiBsaXD6sH!H;( z=#xu_Q=^8cFF~hw`0+)uPKzX+=KIl;xqMO7B`%vl4YUSY4`xHv{kuZNG3Sg6MgU-C2-y=keTb835w&sC|4&4VMk) znIIw=c&+}ki`eIo;6EPhBl%BZ)LAYYu1rb(b0O^{(IuG1W|95peDWOPKVN2tf&T;x z4w5}CC~|*VdB1e9?1iCc(@utyPbK^zdqumUAhT)c{@^dk$hQ-SNluj|SS6VM8hq+Y zMW3n$pUM!dCHs^=Ybxqi!g@)Jb}*;XXa`Y`1h=0}5ZqiM9+^;yp$br}qh1A$4@R=Z z)k6H0e9GxfWj10erD?U8n^A0w3y*^MTAT8?)(LfjqH$`aN%q!x#+2@}AcpUA41BVt z9vs{Zhlo16qLQFEu67au_4DEexG;B;zc!+e_n+|T!+`J+>(hq`>*M=B`tX7EVQGXu zNd6Za3JVltz(KN2F-Np-kZZ$yz${0?aJv0EOh96ONb`@Zgr4e45|VO101y6%DqR^Yg-h}rkgBNs zlxbW}5o8epznNT40l#miW1Xe0p4*<6n30#7z(G+istpNgPlrG$0 zb}_=TjZ8p-GC`}LGD)AHGNMmd8&MTzJsK8OmJ%|gk}vaj*b+iA9}QDdrj&1+$l9(e zWD4^7OPG$b;)p&o;|9PgPbsT|RUVhV3k=~|tz0(jnq}Z}KC#7Cfl}>6sS}ckQp*xE z4ktgx?@jy80GR`CA83Hh`nYYewf36MT+Z6!ft^jzcq{-$WiM|Bgc|GdzTCFBYI{vb z`^7*mCzW(b3@+tz(X1>X{b|4NgE;Dew}aiJ;NDRfF@05oRB4KPCvo@$3AuL^{N zRA$ZnU?ou8q`FT)U7)n61Tfu&I=aC0kdD*!CS;uROsR1_{XAe^SYnr@1Pv)OB=qFV z2-*ef0NRUFIu5zW7i-5kY!oN1xHTdCe$S>zxm`dwSwBknes5W$@V(a^-w&$eo9G8& zT);Ouiy=cCz)rGYKsvyi0NuGhDF*!&8{&HMkSIyf0?>UVrK=b%Ae1x;<8TELug`xa zd@p>wb>O?cdH8O8JQvTFq;wuq>>n4F1sI1YSQ!8jUMT{(gmc*G53B>hpiyXVR6O6c zv{86>#`AqmisvT4dprbm3G5-xc>WcM=lL4qc~ogimm#J8^TM)z}s%z-5z3*EOCm{ez76N4y@- zVXhTJI-PP8gAdBloCfj)6v%(!)+9kV;^&2cekRs^CTJ@P&Ty=`>>A5q{ssLvA$~*f zZX&v2Ye~2H)$94niANfRZ)ZH$if{LL4#Aw@8&FPDmJk%r^GQ7aN-3TT(V{u%4i-|D z$#T5-b@2WC!!3+&DUde~-;Iyotv??>@o1y)?Tp{Pd|X)Oc*@70r$NJ)k856c{(AX% zAPqH|*PG7xE#uplkGth3+a8kRcZ;q!r7+&a^=9MadF#)|Lz9{q&$Z?&XzfW7l{S%& z=O)T{_vPcbmceDUsY^aSdU2!h?TqJI@!b~l@uLs4FutWg?#stRsVOw)E53Z3z3kvA zAJ4sC#&?V6E57sNj?wouF@F2q(FLso-%=R&<>T`8pvei1!n-q`Yt2{MVm^NQ z9vSbxe7t4z@dxj26uy1=xR&cb-0xc$-%=p=Za#jURIdUT-Tlk>!pwx8wpb%vdxH!5 z%{^28F}c8|wPtoD=}e1O!l7aoDw~Bu@mQl&H7i!vLmyhnGE2D5FJ0p=olVSBOsZvX zaH(9$4wWik{Vkmmd7<<**q&(f$Mq~bpq>RpMkOti+%NgldKS2z)|`44N#Az3Ebm_o z`i>Lz4Fv!~?S%HqmMXbS2r66PCPSyPHB_^}lSGvD4Hq4m${{WrcGG}MqOoDN*i+*5 zYtTI{b(uR$c8!&wds?vXEFBW+mJ>6KmivE&>!zX3QkX=WNvL|MqE#=a#HyEga$y@S@* zT2B%Ga6eyz$^%S7VT`tNnCIyo6Eh>B*TQ*k(xBHNCV^h>u zTsGX1Y>01Ug%>HSIUW#W09_Ei`o|$(#h*0nNYkJ3@?`*PnkmZ3qeaI^W57UQme~bJ4 z(WvwFlD-w^kH%KgI42RPq!~|Y4Ve1K28$zUF%4|fA{Nuo>3f>X^i8G{w!-EEr|U?5 z6Edxil(h&|lU#Z#VVSQun>_fd&nBeAhLlkzpa})CuQ>1^VK#y48z@wQ0vuX>^O@^x zLgS&{^*05eGsb@M?4ooFBdHf&)tJ<4wvc+Q1-sGu;kmar*?F8(i|jdO_ryyGM^687 zpI`K?&vEgY-!-*92e$oboXh0G59ACC>VYJ``Fu+2^&42V(3!{SH?AdX#jMkawkB_+ zeyut4&(*YkscO0pxlBOvDOnE_kZ=7WdrvC3lI%apQ(IZS=3BqOtt!j{f1lY4lZ={o z_|`AdeDYvyEAt26`Xz)p9m9IZ+mo8?9WK*{oP~LqKAibiGp=u3%j=h66I*W{2A8>+ zJPgi;`PMIV{gNErWasg%U&#G48khV^>zC@^wO+sRtzWcVf2kVZWFK;wfYdTH-}*&i z{W7kVo3Wpo9sN!sYUi2-}M)g@p`&ssknX_)q4G=nd=wpDcFoO z#BUzm@+cm5Dk3|W{K7v^cRNC58FZ&3p;%)-E!N2A_mg6cd2+EvXf&->lD1s6)QZI# zp;7y}Y_i8|;#${gjczLY@z6`obQjEDU>CpXetdzv%VL3Gy>3Gbg`Gujh3)CGGl0L4 zJJ(1_!mGoG)08G=97vvz3dSzvlZ|?kM+X#SkDkJ9Z!hk)=(^RSxJeS-aS?V(O0;!` zy)i3I^4>{%VB1F6Fexjp+a%axvCf_u*DdM@Y}z+31j;TZ!sbz+m#BH6+?pWaTBo@A z4qe|gbHAhp&#%Fi>n81-1Y2@9s=f@K<6ry;E--_g+PG|Zbd6{rc>|@o zA;dsci5cg)^nU{xwi%_{FTyUCE}JN2(oK}|#Z8os3!5mF!zN1e=q5^+oSP^Wb2-ln zn{U|Aie<(f<_YKP`K`H0XN))VQgjebN5_p0ot3K^KIl={3UzpC727 z3qt536Qa`v(S-;t{^xrAsZsk0HaI`R@6tllgI8v<+63Wb0;eBOn8Dr z<)Pd0hJY@l$mLC1w>u<1Bs9_y!{yLz56 z<_HNXiSpg6bmKmYq{*$yGe02C#?wTgZ znw%4-kjYjFnd~HC13K7D6#Vj4JbQ}gqdobf!u)wvtsf`!*UJHY>qmIZMdR0xuUze3 z*U*G0-N~dlAu8st*WCK?oj!Uwqi_AF@r;g#^5ytsf2ae5!|2IKzAC=YqcV zBYxzNch-+fe{+>PXG7DaZ~X|jZp)WHQm@m`U483EjdP~L`tkGbSGjBY){pXu0oeg_ zL-le%-}&HIbu5zzyXhQU@A7y78)kQC7^sOH?&V?S5V{3V zNI*W>B8EJ&lRSx!Jh4f9WG8yWBs^e}FNEC>dDRP%wb4<`qsW9^$7)F->p-|({6A7b z>i#^k2J3geA_WBWd1M~%r|gEeP%4Xx4V9i!Mz-Xu#@Cy7`N_WdC@O6YC=d%AC(4f# zuaO@o?polw|B~<&ad<#AmBupAxpN{s)xEM?Vg@{rJY)*mQ87Q!<|h=qRtpQx1gHyG zLTap_1~?&<6u#1`*II7P3D?WSa)BMaUWNC^BDHm-uny|$Xki@`*a@|Dw6M+?0Gq?m zN@OtUt#QVbVAv!s)~M+*p-h>8RK#$(5{888EXUcnMdMtf)bKNR#MwQJ{ z9R+)z^&{qUsSat-W4~>*$I_=i(oHmL63PBqv_2%X?ut~3{)i`kbsDF(vBs%YHx8{& z7nh{iUoF+tI-wJVN5w+5`XO%3QCI6I+;6B)J*erUPlIxuGsliZ**I95^*E-ohvse)K>jGzOaK3H01haw1CA!bRf*aQo zHzrnfdA_Q);@R>>yYd?{AYk%Mg)j1cQj;%f^=IYzS0UKeH0;mSaQ8K-uXXX~TEU-b zsk>CT2QK}!iy6H?|Ed?$s!hTcw`km;KR0{+T~l+d`ZK*DUvg+>{-qC)73%lAHUFxY z(yC3uWY=DH|4Oa(??=G}8<#(mr(=n?h2i`;{k&HH)qg&g9`_5*`>l)f3i~Cx@4wuf z`MB}*wl4GXQ;qlGG2|zj?;7)i-r}5$?YFD?+Vx|o!)@4)SF^|vmRK~tH#|R^#76?y zua))iI;TJT*2A7}{#2WaTWmf2%{A=D(qqRU!Di-T-+K7O+15M%QtSBE!(6t9_3*GW z*Xq3MTMsk)`Fl7St-Kx%J+0NBee2;FrP2-=^IUT2mRJwp`_r}R&%X6AT&i)uo}{oI zo?EHae|_s=wM4q5*2C*6u3bO&t%rpt@j~tVHdxuw>_lMi3Je(Z(yu(026JpUC`S@GO6i(qC0~Z*^M~ZEN3G$|0`;5GQ8nC*8r~WK zU!!d)HR3bOLrLw{O{Dq*J%84k#F-4Je(S@L@FRoeIxfe$5hwxHWcVLRHv>K*7Jt+T z`=8Hno1csPtRF#dC=ek9;8jsYT(;A_VR;PozO){5?@UMf=N|oAte(C-ppf5_J#G@W zy~DuzRR#k*c|Ec??RdX*s9ZQSbbnfTIQf*%@3A}D4Lv)wIJg8h2j;fh6M23#44>{7 z%<(BTWZPJ=WlumM>=!%X!|OOj0z z;{`i{O+#TPfPjl~6*Z}!wir`5(YitnwZ+I&lSY-Kbjykj8)D~6{Ha+pq2N3&gr^1- z-CMLKoU$gywWXYj+Q()8k<@Zf6G~fHk`k_dsiGBox>_+dWUC*SK7#xPYT!!+Gv2|N zk!%_)nUROWT~k!P`;{oLVEzGO!J5R3dM-VWAmhul9}KC)EZ*EZc%S>;!R97_!^DEa z6Efg2#PdSy>_YVi5&W!JnVE75N`|4jKH3%=0-#=#<+=6))n`)w7D}p#i^Dw;DJGu! zb-+bkMr`c+1E#BP6&Hh3`wTc%@w?H(;i#LOPg(9G8$$<+> zTiAig9ZPNw>@21xTYs0k+exm!#QO`wy$^H1cc~A9FN;15{wsU0;Lo)XronLvQ#uc! zwv>x^BquhBK^gp*?98skgP-*jkF`59Ey!%7Go#xgg!*{!=IWAb)0@R2Yc+4SVU&pV zTTPswsV^&5W@>ThzOqAWo0GpLkr(XW7;oO<^k%31KW$-mCiT>A?(9-aO+5NIwv`-j z@%>E1mzy&m3nmmpbQlTI8m8eC;>5!JOpTn3z2(27_gyfI``W2U&Yy2Lw?Z?n>_jN=#Q>V z|Mjhp;q;gEIN3&AKR)q63;VP3eC%5vYr1~if9JL7(TX#&Go$uhKc49ru)T#HSYbl; zt&i)5!eg7onC!6_#MAsd_x)?rn-%A0r#Ji7$8h~=?z=7Q&dT$#Z+$G(16nPVSDTo6`!KP*+7wm7WxqlSI_M6!P`?GGxM8WeLP2#mE(bplz`oTl z`2kY-;js!Ah747>tHok!sHDzMxtYr;vc-nN<)s3C-%Q8ke-eA=C1&I$hs>~ z9aYfA&kKY4=Fqx=sIw~$0vnJirmhG^9~Ecf)+~Zb=Y;Rm^h)^Z0oe zl0JX!c;9=Yo{(P(M{|L^YrNNr_qLF~KM2@n^Y;;dcjDb8-uv=*$j6ukk*EBfqd|n+ zlBh@ip7u8e?QQ{Hu$yXtzh?7yD}b2=_>2usfI9=a3c7vyJKX7kSEx6>tYxhpM?u%jNGQ*6RuW&FdKOyM=eH z`Al2L-`4@w-SGdS6aUU|uL6Ew{!Z@f!|{InOL{_n+n*W8yT*I1cyAN=J46Q-?~ko@ z;@u_Qt7JHO#d|p6)%wrBa}Y3uEk*Rm-|c^5(C!xCH6%FKZvGCjfCc#T*-n5v1G);j zefc{R&u@efp&!DJ@(jXVIGCElxKIC{nVt0I5j_N<<0-(+Rb?iS!RBskY>{yreh9pFpBJ`%v40bK>%zWklZ z-#=TWC&F`68HBsWa}DrrGx_`ImF{p)1!GBYcZugJDU4q6{A$eKOIPR#{`?dM{BGf0 zYd+H!^7qltc)&l{OTxc1+^c}!m%p?5`?pW&3Hg0bGmv+U_geAZ7V`H98jD=(-`9e% zB)q%CdzB1FuXuk|C?aIV?>eG-j4t^nWmM<>9Y0bK>%zWklZ z-+uzk>4)(8WCr1`@mvGE+f4pG7og3af6QC%gu6>TS4m;?isx5j{$2%e)DQgr%NX#x zg?Fv_Ok2p`=K|K<@c)<-|ITo)0)Aiq&gSn|9@i7{+)@VeuJK+g-rGd}P7ULl-jqJ- z#JfwpSIKbniuYGX{to!lFTnSEgh9JofY*@VT)X-EAKU}_=_O8pI|I53x_$XOo4*6* z^h5ZBhZuyr#&ZquZaew=!|rf5Bst;k63PKGP=h zcfdNEzZ(`i@$U@xD&Y6!?{4`!fKWfk&v<}=ylcGIiubmVzwf%w9q+F#a^l@3-m7Fd zdd2&zB7a}HP*1d<0Ta61t?d@zH6%FKZ2taTf;+%-!9LOjCTBobLANh|XY%*#d-X&( zw}3&oYdqHg?>3XaSKsXp_fjyH1b3Hsu9Cv&70<86{C(~3^#p&{dl>M$g?Fv_Ok2p` ztLJ;bKiEsczcbvcfZvzDv-$hRcs(KC_bvwVuJK+g-rGX{egag*u2+wNu_U~^#Cw$t zN3VE)Rpjr_(;%YP{xc)zF=%%S@EQ`FYc_umppnP*0#p4QC%~NnT?O5~{GG|)|1($5 zcs^q`gK*b)t^wX{CVvkFXtVL$G|LHhmw2v{!sr#xug3iSEzqZaCnIOiV8HJd-nHg4 zZ6SXTo#_Gp)1CNthIrQ{?tS??eYU!` zc%KldC*+?W!$96O-fP8sTgcyE2UWSPSHTA)yt~AEl?+F(^EFq+`S%$#i0D;6vuPBA zcDDepA;Gz3^Y;SK4h!(5Bb@+u26Pp4`_8{J=ieU%4eED3CU-c4aMyUQ0p4vUfBzg* z#lk)HCMVoo;<-u+qgOn?8qdE!2Kv+w{Q1Ke@VkX~t@%t_$lpH)ZMorps1yIraIXS> z-}!g;{Cf(hP(R4;8_Yo7HQsB*dz;ALhq&W??I0)KUE;k;hND-!zdG`Fz@L6-KmJ<= z?QQ{HLxOYd=I=MS1AN;+C%~NnT?O5~{GH9;0dx8xynXyxfZr{=Yt3icME(xiV)OUBzE1o*!@Ualefhgv{vNI; zPKGPQR_v9`f@DDyA;olkVRlx7d-`V`Vw@FXP zAMMIO-ZkE9#d}-G-yZ~3vFp{>zy~C}yTp5y3`ehce^un~91S9R)z6&a7__?ucnt~8 zHJiU%K|3tKb2~c$?hNQE==SCBO#Xf&Xi&dXkX$DQ;jZyq1H9Wz{=P269qy&UPPn_o zbCncEuXuhn=I6!k^tMzm$x6MAZ zlrP}6?cYfof9%R_%O6@rTF%;khA)Lfi@6;5Rs#KF_E*&H&deM%aE2+Z-eB-EEPM5} z8-6>(v~a=ZLGX4@!KX=ZY{L>m(lPkzI6czOuw*8DizeTWlW)=R?KSf4Abg9=D{2=A zyvRVg`S2x7{9@e|k+>xkz9epmfd5-gMUamM+F*kJT$gtD-2m->2TqCHp>~hKm&7e= z;oFvVLaqJ{xisA>rR9$uyrTm6(ria6UoRskqw%ObmS|MkGvBJ3;6tjhGVN&T`237 zmsW15s$Vq_l$08rzvW&s(zVt97i78&FMr@41h1~}`VGAL!D}$QKot6y9pkXpba-My zeMCknG;g9K*+d7z<+h^(fp`XajgAA}={Ppg|$&+A_>$TERrpW% z6Ks%o0uS>37xA4Sg?uMa5xCzZwv3QlMv)diA9{@@Z4Q9i&F}%fk0ozgZX@(fq`%m- zg>c(MJ5wP^hb@G@iTq#-A&_GdM3VO)@jXO*?=09qvpaz*kt+q>Ww}~B-vBN zK54kmv$T&@>O)+B@X5e^o}+zMlRmcY6#lmE#3|rgweVIWyw#F7KHqw*ul-nu#4SW~ zWH9YW!;eAGW-afVNL|ie-T}n<8xb#_KWpnw+$-%Q!ENMjTPNaYYpoZ%dq>jJOez^fm;2E!{3UXR1;C3yWEUR&Vx2E5*e*A94H4}f&QyW}r`*T@6bi+#D( zD+I)j_)n0D+fH%HZKqMkUTz95&)8PGFP9AL(SP>|bPq`G#!Y9Efq>TVtXd`wIenB7& z2d5a94!*rRfi<*JoI6_yvZ0lN*V#%C46OvdviRF6fQ2Iv2n(MGh=orC#^h5D1uFOo*GeWuVCd-D|La1fpX zoqixtrymH|=?4OL_>j1X==6iWfYL;JO$Tm!abm{qrvf8)SGG@#+QZG*lemefn$YHO z+shI&4g>KpA%4xx_&RYD(Z29Q@(c%{nhZZt4l6zF;@h*ViXs*U4ZAH*6s-qO#giU1fG6zu-F&CEG6sqTVKt zy=kE8L@eR#Jq&moh2F1`sJ@w49*$xxq{cTCh({twC~)@3>_i(R|K@3Mqhp4t+{3H@cXfiI!IT#zRGv8?ggKWx5kA@p8(S=Jn+Qj+ z+hR}gMH~1seosKcv2Jl?X&1rTh84Y51!f#x)}2qO+0h4t7+S>ryU<2uC54GK(5t4t zepQbZ&}+GAM=#ed-0NS3+P@3s-rO5%zZja9V$6e4+Tt9RD1JX*06W+?HU|0|#uJmQ z=rEqz&9tK@!()D4BG)bUb3V3=Pxzc@Ft%y~U(8<$*xN0|0a>s#%H1%^1aXuFc$5h> z&`TQSZfTUxE`01M?)8148|=qnq!&Z&^`Qa9-7blodw~4Amzf0Noxf4%NZ2{K@nml{ z{!7Q(0saOafDyQnIPxR_i1l&+_w3hK0FZGeM|o|1{lW$J@ZTqpJXrdp_!_p!Sk=iC z`H3yIRze!TXMSY8E$*Ah!+hY!uYp=OaIfcw5HwA`a*WIM<8p8Jx6QqBg3Em|nnI(L z%e79VpI|uO02ypw25pmtHXCR-AM_e<=apmK;CE@4sA65jciJAPZVGi$!BpJqdjt*a z54B$kB?H-D1J2&!|M{=V-<3IUrz4LGAyPO_`GFDRzOfdxw*`Jo>^Q}GxhwbV6Lnz3 z6w@ZsV*i25ex8OVdrIfD5`eQG@Sr{;V7!aaNP~;eE@XAWuQrh&9VPx0!kYU}Qw`{+ zd|VaZokVIO1>|F^xi{@0_L>lIP4KIf5OT0+gK!)%!nw3%ucl)y2QjLahk3WR7$$im?Woa1UEKXY8EF&GH2 z;rK9>t?aOayj7M!NTo?iTf{~@rd<}dPJ@)uw!2Ds#pUiiA# z0sGILtS1BP6`Z}Yi}iSb{bZoEJj8xF$ogGCS|M=>>kod`ivgCtFk~`cB-&zY;3Lf% zY_XT%BZ=pg;oSDX&+dasOP~jSMwUeI89D@h_8@$o4_|7t17DsUpB+Nim)Y}b9D$eW z>#e&&c0lwoV6TO7W(RhSD&n5Y1WM#?ZhQWPd~!m-63X?RY%o|anwAFz&o^*TSong z9;=`qq$8{TNP*@j_JH7Ove%n{1w^`(4m-(PWhdwv0Fdaile_`LXo(?=21Z7#1!LMU zdnSNoEPQc1T`i7{ETZMH^^nI#jwz3-!O_?{ku_HXV+xnXL>HOP)g=t+HW-p~X}OTD zEf=5&F6fu6@8g~7-Tn&|;VfP86A{i@>*`nal11o3^P^5g44Ro#wxbOh=U0TvsttlH z#ZMp$GH`F639;9OfG_rl+}+6l)~3IOF_OFi#soq_#Lx;Hs9 z!P~*@YSMlnE_dN*uX?*9$a>7r`U7MvwUOr&DV}G}pOqbYj<}Cw7T6qCV#K4tGx)uZ zDljl#w!|>U@fVomth&Yt7=ZtaSk^-d(t0$8`pS0ndTR|34&0 zfe-)-S{TofUgwFgp9}#npC6x83NrEscg`gUNjgskLO~6#3S&W@zcUGX2;NQIAAb6l z&{FFd0l$OZj?8L!FEFNECadxln_*NW^$|uTj0g0RV&u=xkIxRJp@SZmj=@oRu4xB< z7k)=`J{SR)+lhE2U8g{9wx2IKcu6=bz~y`{I)%L)C@`s0DF~TN8?e?BRE*l zmy_g6HBiVpv$Btvz{1JPUH0RFkj4r`GCoLA;d^9##(4|rdLsG*ML{MAs@mXnUBwysgN`3+yJmzfMcw$B45NDWOkL1syO4J^;GB_F1I)FNR^0qYLkdn zTS^sw7Ea&4UV@BpHm!~V_IkRU2<3Z|`8aJagq3I;{S4Em&{jvG+Z7g6yO)R19!8-D zFce^WCe&U>V0(z)=Sa8!mWZw0v`h4pv!d5}K6+Prbb)KQz!kYab9?7B_KAuVOc>XHKOQFZBhKWJ|S_i=qL&QXyCahFRej*d66B1|F_kRNJ42CKx<&@Cj>=VNQYH`Pa$YET>*$!(aC zWkcfSVPulAgk={VnQScQ$mp50*y;vH7VSPVSWIl-tN2S|#FqzG*zHTlS;)IQ3{A4D z`_M$Y@^P@dmPZGp+Co+4|l? zP|90sZ1ZY21i&dRdRD#5yxO5hA+U4X3ZSvu9xI&RBT05096NQnQj)!!CfP7Q!1@Ix z*$ZuB$V!1?6`iHwws#^cU@!n#90%CpJ4t}yLvAN>9q&Q~Uu=bwnGGlR2h@^#`^6Ap z#n=wI!%5R0U{-{ao)<&;A~?6Z*RktoKRDw}Gh#Yb%A&(?#G#ORYJ+2%+fc}qTn|$+ zIYhW{2oDDjR5|z*ba1*X5>`n>7jZ-p{MVa^mNz&`zV|bL5~Pe1A6Yzw1q%&UY=7a% zB(S`GS&;lFT}c!{YW(R>M6=bx9LN0t@$R;h)Re?Y@xoU0FkyZvYA2kZF&M}SYbWIN z2ENdGY{GnN%>-`slW=B)%Sqj_H^>BK1oy%lUr1+1xP%KUVW?2B{~R>njP+PZ{LER7 zJr!j3k(S}$zho)zco5<`U$w*#?+Aj4kGwBBO=cU@P7V%M(H#!qNQHA+d~rob_{^8k z^U?6_vOgJ%ha*KEh}`Y?81iSBpmvfOyrPtJEphCI#U}hPU-%Yvihg@f_|_Yg3AF!% zZ_YW3uR}AIbh-h}SiS1uOD)I3B#u(I}i|B)TmRi3f4(sLld+b|L(alciUQ<7t8aLGrDR znne-;&X`cU{15`eEd^&4PEYLqUVC~V%1PvR{26`+vN|fhtFPbLnT%keFoH6$C@6In zd=tH%FG)L2vGG-}-Q2c3>+ukxy_0?iYh0Z%4;ow?1RCIK7!5(QPrzXaYAfKZEQt0Y zz{21n8Z}4!{14!`aHiAoHdT(%TIpx`F?(8<3Oh7Az7e$ZKKc9>Ogu17n5l@~ULc4p zu6P-~Nte<~#Np$?=PM3ApB+3jNP~X~bmYh@7bU2?6^@rr(Or2He?*Fy5HLY2-vOo~ z>*L`pz&=MG(Bu^Bu0U8{ulQ-_4KTC|f@eY{P;!uT7S)hSPsc4>Kx=`rW9q42C$23l z3NrO74l>;UuQBkt4_<$O*9v%L!Rs`m_(yfR{gb`v`a$3_ak_kNoT553hj0cI`X#Fv6#fLBTyjdUPTL`0Lz}>(Rs1rAJrc ztMI>DXm@Eshq{pT-AUu1#EMpm(K<1{Jzv75uLCpI&kQ7AlA?jWBru5tC8=pDX_`qZ z$)u*aq$!$~lSxf)Zl^yaRZddVTS5~#TProaN1FVTNMMqhb_h-6M5)yDk?=!O6(u$0 z3B5>SB{dZbO(X@8n(iax>X}5=4^mUDz>5@hNKJ+vbPy!xp-o9iEU1%cp22#@+^25L+ za_$kD78KN*+)N_0V2cPX*dRg+wujJy%^|d4YX~ja7(xrSh0uacA+%si2rbwULJPKo z(1OhXEsPa}KG+CC3$}sKf=wW_U<(K>*Z@Kc*1yn#)elvLFh6I-8lgBcGbW6;7sUiZ zOfVG1kogYYLWDO{PdL+E6cb9{{KD*=Oo>G?y$y!Kn7+^{Lg+Mzyg@sx;GhgL=BA>U zu>xTnc}vI-G!P$!@)V}JYPNwAGCDHMY#oxg-9XMZJxIpSB`Ll2!7+)if z<-GbskH^OvZ81H$97ASIAD(=O_REavD}3_Lj0qP$1!Ttb6FvoI#`G6Hwabhdzzj&x zSL#!}fm?4&czRxPn5zani!F)sDfwkGXMJjr!P3$C)Hp+Oz*~L=qw?e-1Ajgit_SjG z-t{XYiZi6H>}{|Z7i1OOlaOyT%;#5*%cxK0c=On->4UQF9dXlv%GB@t`00bVocLkH zl<)32a4e`aJI2p?tV3q}Fq?T0myrj2;8z{%&118t)Z5JCcyol+VMu<`>hR+-HUl*) zzsMW`nSmkGd}E>crn|>Yw8U~b=04|3GtI-{LtpY?1bhh3G>?S0ewpS`@YX-m90_j& zGR>oTbI&5PU~==g4#24}y1ifJ?Z6h6n)QiA=HY-SGX+ECu+&R_$sI*f<-pXHVTK*c z;U_!iz&|e5o@u_R-W&nF$AfUx^*F};&bsZR|tSb|cY8f@U!fkO|5 zp5zCTZpgcM1X2wx9K>1-ys2PCF{8-v3S(}DAyPXP#YB@9@WIJ~Q=5xoW|Eeon7JZh zF!{kygDqxQqAg}bVay=ELWm5`LxO%&Q;ddq-V#DCahD|B2hoG?vBWQXO4v*;J&sJu zvjh1a*;9HaJqe^Gelz(Ju_ZidEom`2TLvX+G`iN;6l2pvJ3{ComX&IJuinO$M zavqgbOIrM$Eu)h{@?FO>CdouvP@h|pdXknv=~qeN^lSE%aeT>4QHtoK5iWhQr%X;7 zOInbmu}M>z7IV@}(t>24nRFk+XKvDCsAVC?V1cA4f|;jMk9`LUSe=@qHRXE%6?hqQKNQ85vC)%cTgPi`A%k}lC|Ihzo*7U(}0RQt}UB5f^xPMS_<_v#`xg=X_FMP?zkndic<$yBu%-YQPCBYg%NcErH9 zon(@t^OL#WJkIq86(2xPu*&32b1clhFv$YbyR*!(FqQTrAAuHYKW23O6?CgegCCBY zWVxRlMx;XDF=WP_0v~QBAEqXgS@@Pr^X>39Hq(3uyxp2xP%q1`vPa$657_fEc0WF}zsqh9mB&q}*5>tY^N=MhW{WQv?R|5akz|k;YVYq4@&M#RT4?~yar8K<{QWPSx_Snjo_hojy2zu zJY}qTc=E)t<`K!`$C^hbkEK5yMSi*%deNZLCw1j8g9ZNIWJvCrx^lQ7xohgm5r*WD z)RiL*$?cuLh?IT-^cxKppx@+Y5$JR<-GH7}VVFe3=?3D^LDzv=$4;NjWqbi2GN%u% z_zd1b^jIQj7KoT^0U<#V$v4veB|rwXO}0Axle^L+@_lG2G!OBscvJXbsMrD@ip=1% zgm4G#4iY(G2Y@t?Bvkl4xgDa=JlL;dx$wbIu>?MVpF(;?92`8zuVOW8iV^6hIlBA31i{zD76z^bQ{SM*fun+c!B{3D4^&8kJV6!j1AQDxpW&Uh`}sk8XvId6 z0}BP&y#J3Y^N5E&|W|su1p+^OQa@xiAaX@|^?$jg7fX^vU z!~31UU~ckI_(ar~UPP$|Xyq~v!)L)9d*BltXbqfl5(Y}eGz1zd{th%U#B6w{oIiEKv*-$s)+w+w~+lH?~5G(Uk{MZOcxQw+h6d^wuLGu$>{DzZIb{B*~%OA;FIvj!!tfdD-NF-}%NZ-u8$vi$3KF~$= zFgo1`vYAIiOomy<->>pk_$hcSnWKjigHow0!^HJ6B~^9@rZM&AaG(;mC^Azn)|C+g zfI$iF0LJ)PGS>0Yeq!K2Qs}t5C|Uqdv;dxH0X)$Hc%lXH7(NB?Bo;-3?F*y9^3maN zV0aTu6fIbO>M+~X5w@wLWpKek!M@g0#yR{~@#G?%^_f734f*g>E@v7H(s(4M2i>+2t?s)YcTJu&s6ycgHQ6)mU`Ho?&Od9@D}-TffkwNad% zmOB1#5}_u0O6o(!cf+k0G^q|Kv0pT09DrM-4pg?I)!%R-J>xulKM&ulxEWRAmE(3$ zOgy6)PAx37LFtRhHiC~0U0^e2O$!!B1hk&_*o+`weyG73WfD%EkW$J09}-KzwZUJw zoI64eo`nC#=?5K=2L=>E8P-F2B;~nq9tO<+V)NsRfZU08>L_Op*AoCk-O)?AGw@8ve2KxE!Dy~LR(B9IEes@{{FU@h|HKla0USU z9=?xOKYJKjK+hib1oXsQ4+AxDU1Dyw#Z0xu+?g3O(-t$Aw>!@scsyTtSG;4)KBf2s zMFT}Kz?`1op!{K=o<_+YRy-()SM!YAc7ON{RL)N%@BOnT21fW9W3JDP>BZ$t3@mkI z#{7nliO9%X83^N!I6pDa`2UG}7x<{EYkz!RNd_{>8Dzi^K%xYT4OKLtV1gz<9#tLz zB-kQgd+pqjw)fgFBiQno;pBC49K=@r)7D$%V(;~~y#;Gaf{!GVU?vC!0#;GDZFt;z zLh{k57=}lg|97o@&SWxyqF4L*&F6FG?6dZ3?Y-Apd+)XPUfVm|PddFcmP9Ggtq@Nk zUbAM!q_J?KA-JIJGgy(|%pXqwItMg+=e%kD4P_=@O1OlF&hk1ZdNS&v<#kzb{T?oL zZg%b=si`CjOZqErC=c2St$WUXgw64=X@slpD|GW&k^#!v~J#H$p71Q`43%Z`IN!(e~JPvXjLar5%Ry3IWu?eqd@_@$J+P`~c#ARJOUf(@LGe9d+|Y0g#C~ee?08=FX(Pj@#O6 z=S?F~z8>OzjM+5QOUsCp8Nb^u%JjSg+^-y073NOy9D;}*! z2^Y^vLH@PHncWyZPSX36JE*JRT8#B4>_z>_?f(=lo&;afpKy)Km|d{G6_qOb6G+-Y z`ql(_@cCrH1CRyGt>{$>$6QttQ2JnJW@rinZcfbO3Y;uRES{gQ)A>1T5I<)_`+rrA z9ttc5adbcb(#|w$^{mTsF)a!UE`AO!gNv^tF3!@KSl*D0Ln+E!hp)oF0i&AlF;A-> zfva_fJ_Ckc0ER9ihAv=+9twuOJveJ*Ui*eyuFTMn(kgWvL$CX)y7&w+>+jGzG14)P z)frZ8<6VMaS7v=^r{h_F5?62>{^@}ggZyM@s5WhvNQVse6 zn0=_~JPnl&mJ~1zVUq5mxjCr%)_$t)qC=|irjb_H7W^@Hl9X=NAl;$Y>)L2Q2lDJ9 z=2=T~r)40|nwyU&H+QDQ^Xw@99zXb(R#zg);MGWyFWG;513=82b0~A-O4sGM5_4F1 zL-mr#ckO^0>m291a4s9Ay$;V;@iaUS9*XNyhzdP)5Nf3PT@HES(87R=g-e;MNICiHw+p1p#qNZ^5Z|FsdSMP|qey_XQs&|P%uNi>i z40Buc&jj#!9T={DL3e5AG4sO=r@ucRIKN5vG$UlW_Hi3k%%CO5wt&DX5W^`D!zmEM zDIjnP#BeIi(ED}BgMsTEzeoFs^^OdzcR-@+>m4{g*8G&<2LX>; zAgCdv64xVY2t{3C-XEQ?O!iNRkwrcrLLBeKlFkBujX1`ROK&e=N4)LELKP_ z?>%&)aOit5eN@XZMFgm-fPh9KLxS_7N-d?RZl>0)I^?^}e<2`MmBPQSG^6j`u%CQE zL8h>uLXe9VOYF6^lzrDt2q>R7`%3Hf*49!Z`_C=(j`p8h;vL!Mrx1w869AgZ_PU-20@PeFXQ)E(~63ez%LQgSP`M4z>rsSqMs7s7T;<7njc-7M{_rHXbB z;h+MO2l`VIu})Jg3&$d-FP{y2xuvk1$BII0qci{X6yf@q- z)pKg0<0;lR>mE0c!o(&%W$dZ!PgkiW!s)^xW1#Oxbl-%!zk_&y@;t5dM)Yt z6~n0Qd{ZyeV6~g6GA`3>9n{(Zj!aJ9t?`j3b1Z6e(TMTwO&grMN;x9$b)JsW1GM4R zy1jZ~AGeIc2{D}vqRb$Pt7AUgcZkSmUiTWkrCy=-g8`fh-6z_;9E}&;F$!qNp;3ArTie?T zGE552zI8OMMVji+ymZXHTWoThP5#if>cj2{(8`EdyRs1AlV8ey5~JoeKXpT9c{7Vw z2(rYo(db5QU|G0)DYlz5uvG9SL)4*y>WZSeh|}d^g9*tQgCD?xg`?uWSbu@N4^FiM zQtWPdBjbQ!v;1Sue-Tb*F3EXUJvT3at<+{y-Rx^e-DykprnGHjH0x}sg|&cH_4$sj zSc)ZH$H3V$?8yZvN%cuejxrAOH%e>@2aFyh9wA+OLtDMjA_#T)Jzn=?c&1Oh!kBg8 z2enETP19~blxzZo3nz-#B=O?eIzmBX8O9b8{Mridgfm}w7tpKqa{Iq#WB=FdmmQ3u zJm_y&dzFI`R^gZcw7t0jld>RV?dZC~8?p+o*RdOjQ>=HR{Vo|IW4*opA%)V@rk9Sd z#ax)J&a{~eCk7tNK7q~5>q#d>4t$%ii+de?lOyohM8lsQ_%{660fm#@UU)sdurDpH zWFk|&|9>nC`jf27>rdhv;BxT??KjIBs2?d1`jPz4p&!|UIv4Y`eAbT?82S-f7GnL# zf5LGY{m6rAd3M7F_+dkveBQq<|*>Cb=$q#4C&vscmLgyv2_czYkQafuj z;w0;#C`E*#q&QT1EYui;vR@_?BS8roIo94gR;r&r^x-{}?TY1>PwhHvtQ4D5(S8O$ z4bVqsAvUUB7kdzJv4)6?DG0&;n9xUx^{8o=(?^oA7Yv|jgD1Lq6P81vAQ`g4ASmqY ztZJqWo>M-@g4AD-j)<5NEuK=U6hj9=D^gM=Ex3Z?yw@|^kzQmvREO2Sg(IBe$A4Wb z?7Ps`vCAx5VUttwDAIb+vQ;KICc!ZpdqnXXgI$_m(y#SzHI1OT`^WR!JtS>2KDXB5Z+sFtVLlH#2e35@hl~Cv_-WKo z9dHi9pe#a#lbXLOEXjtGIwu;gi5Z4#Qp`0u=4y_)cE?=px=Xta3+kM@=O&zA$~L~9 zN7~v*e6d;p)@(HZ!bvY85USP`PMV^l(UxSvMthTX`n~?JI}j?Iv|A6M9fwrCoe$RR{-FY|>;sK2%EKq-XVz?ro=lVxU86Jo@lnlj*If;-n;Ah|>9)-Y6nojB*mz&}9=zMIxLPQc~AB zrN;J$TTP~uCPm^{SB%q0=t=W&-qsQL$Pc$71wN)XQoxd+fUQtQVi9d=oGBcp7nE1- znbco5i`22yV6cj;jg~vDP>;!^x1@R25-2WzZ%%avP9kYrxG2(z`aFBIX)9itNBt+) z_*-i?=k`gBjyt5r`|gO!A&A_N++vr{Z3q`#BqZsK-kf%6XN!EiSDAZ}3!B#g5R|>m zT^J2phT=$IvO}~paaAGW3Zpn(h*4w1#QK-eL+_h zu};udMLeS{KBE+MZVoO!rS4zYaW1%6TNqs2vryV;Geg&nm92|)u3>eK$=XWT>XCL9 z^%URMD(`mI!U$E72JA|(RkP?6IV^J63Ue$}Sudf2)y2KQA4|qFQNw|Agbxg)0X6CI ze}&{S%0k0mQI^(lQ7?r8eVJ^0da--x1m{c){Z5+v=+0AH$!u0L86<2&nXzI=MfF7* zspvtMNm=|BnbeD*pe?ykEDj_V^dcl7d z&8{wf3xszjaEU5JdYrbk3zEx1#=2dx%`aaX>bxsD)VUMSMpJ6cRxU9V@zbf^K+lT^ zFRb|NRw}b!z!ywXlF)*_Te&YgLro*Og%vVoZMJK4^VuWH>}+RMpHxLB^BPQ-Xi^!G zDud7wxYcmz{bV-|6aPC2K@|Z*oyo98Mv_))3Wp-eFah)xbi&u}!n#Sck=R2j-4AnQ zu@{DO0`UE$f;F8U7Mm+gc*gT^n?ybd8@sZ-lUkm*CQ z#0);gp>z_=SZjHl3zfT1d+Ar;YuJ)|MIe3Ncc*-*K$0gSF6^~RJFCmKra6nP%?cNP zhM$m=_rN#zkXzYIsUdvDJ6&hUqy8NrdU`0zQy}bFaa!2jVEMUY1kiF=vEpi z4HeZWa=={tO{yb~Ne3NJS*Sm0=Tnop!geN6EwZg9z3RS(s>|f6YZ6s=fT}Kns-oH> z`|m)?_`F&Lj?pV{K(!gQATV?*jv~fc&;V+y>X*Q?zf;4;vekFNI`}?YsuS&!rMWQ? zdxfM%_jUYTPTwR6X4|g>BAM-~;Om9F0bzLmxcU0(sy4Gb}r^BF+{m8z&zxf_+FjtRbaElfEOYK3lVFAQb76%MD& z$#$qM3S)>fSo?qdikTv7z=^Gtr^?CZ-47c6cGo{{^lvI(lkcLn<;lPc6q2?w&D*krp^jPSlrK;~z z^}UVJr9LhUogR&Wc#<(->^m4vGKP#8qRJ<%)J?{QUi~z_O%SAY^$pSNr+1@aZ)@gp zSogI%l7%CEhfO$=o~Hp?usqt9L}NA+587bxk{X4|^%0>Y%7u;WZtG#lF&-SkBD)@J z{x+f)l5wKk>i&M5v{LXv=mYk}8HPLY#l)F|R0dSU8swAPyp3oik4xk&*p&tH%}JvY zOO+*rM;g@xdO+$x)N2Y9SFiv80WL&!N4a_w4%Yp$PJ9EXE$^^YH32QyHG}qqp0`Mq z*!%|lz10iDc}!tlUx82VQSJ>DrhYM`1rJhve2n0O+u5zYO_V9xS!l1|jE{)ZLi_G!~P&7z)K(OF9&7d`xeDZD`9c2oK z7un>6h!~}+2T>>{)UFj|fAFv7+(Tp}v`rGEY!vQi7!HUz3rSZ}1ZuF&6)>hBj*1bmbJy+wcDiuX|X(K8&+7(5B` zZh<<2=!0$bg{cHs4)U(rN(^*Q-B==RY3BtMrc41Sz?cnGTbD+Ju5dgIbL0~#+bFoS z{T*dwU&!uF3)=oh3FU-y4k{!4Ni>Uz`qD3jYR8hZmZQT2z$TLLMX;pCBRvT1W_H9O z*pNlZB#}&&BUu$Uo;7A}1>Q{m44$!hhp~`zPfsF-OIT-vJTLESu}PJ`Lps=Efgy~t z1x}iLkvNA_%nWf<9eg9GY#RyUf2YK^(VUDW%{CIQ+eni0Ct-8J%{|1jV!EJ(y0KJx>8Td$q1@)2G^+k`x5~_o zqmX0=ztwsu6=w0r;(`b@jj*j43p4SUfO0I6f@w&apVAk;Y~^`Jb1 z$Stcv;_z7mLbPwCst;)vnoOpIj*m`lm+IS6L(5ZJmf{)!iU{Hy$HZxnB#M3ylOIeU zbBNa5=9oec6GV^c4J^OgJk)8c$;PpHrvMTSFvv3ofbwXWT}`HK4EsG=phLAM4uf)spd&;vfe?izgeccI zggA~sNL0%tsy7&M0ACpSO%Wg(?-`&1J(N+qK))8J)6ohN7wO0wfxO#w7;SBjOTQ8lXpF0jV!Apld}y;#>xKY6)QW@LVNkw_$TEE{Opn?iLZ3 zSlj@;AV4%aFhDyfZZoLdL!GJteN6H)O`WI#k;>jP7t5Ls*6i@sD5>NXA5>NUVRuBt(*_1y3 z87BMz$S~bwk5B^HU!#6WR4+1%Cwc*ir+ER1CwT#hr+5L0CwKu#pmza`CwBo!pmqU_ zCw4#*XkCO!AawzZr*r{{Cv*WxpmPC?CvyRbr*Z*_CvpLar*Q#^CvgFZr*K%-5LC_j zz=B=G;LuRXT^7t_=I-Nfxyz=^eM@&HL%XFr?YLlror~lyM>+1mXrw{du9;v=9Q9cO zJ)XONKc3X|40))y>R?FI?>Lv;4HO<8BpFCg)%46=>}rQApIxxj_RO8^LcC{4)F^YC zrKU|J*;HSzvbYnsSg`$TShoyrfL3HP4_B9B$OM~j4zsjq;1UIqHlD-aT_2GNeNj(A17RC3Izt0qS+gib?F^AM zoOn5?JCmVB)17u`4%xX#)*Qiapwe*-$H&1!3+}L3f`cXl>ib>`*R#}QdWGs)q5Dcw z(Mq^(>Jom#~nKkJm((uf9 z^1)LJqP~l`AOI!|VI3U6ZG?$7{%JFA9WZ0A1(WF=@V&T=G7sAF)O8oFV9H*FQHPm7 zXKpyu<-}DcbaeAk4NPT_;b%)uugA@JMb0L1_$WkGG$rbC-^4;3g+J`NAu zu2=DFYfp7%rB+K4*Ot`<9#LWerfp%%liiCrnT zt1}%+v4j2}u`3mh?%UVjp|%NqpjzO_TVvZ0Q4wmML%GMHmLsZNxyP=S+7&nu4~`#j z)b+Nlgc7usrM9i@FQ+@lr}g5SHclC9(!j4=yEd~gsvhLQyml{zay3nR`DVm^=@W)05&TmSA>$H5MMnaZ zIF)cz-(8Zo+_rWFY)h@Tm&y^_>ThGYr7|Pc8GY2IJvyo{+I<^b0yC{|;-}H>8`OC= z?bsR&{xirm6KHg&a~R5ByN$9>R}X5BA#ZiH1Ie%3D$k$_z;qWYh)Y|w@{gci-h2ac znS>`FPcfb{JjNKO+=GUu3oMVIMzB{piAaCMAD5Ud%RG&E`IUp|eNYoC7lX_V~0+L0OVVBvog z|6c@d+iY-Z--7u&bt+MocH=Bi(S9xJ`V^)g!^Ih#?YEXgI#-u1Lw?my;h%vHYabFW zTOgK-VLldPTlY3v4AzdLuq#d4H?Qp{-c586iisB<9XIwYQc^<^sfq z7^R{XIxXk@W}5)wNU+_60JkLun2rDhGy>e57$5@y2*?4rvM4E(l2b&s*W&rp=u~GP z9)o|WJ&NpdrzA(HJtF<>kzpzgx|&tn(~LdrYO$dKs=9gfm%<5W;5dz=*7h_t1#ZlQ z>uYe;6=lFhxYQMmf$J7_IpLbjE*D(4!j;>+tOY6HwyjWNWD$iTizpPCqSO_+Y8@iG zE`m{w(_;yo-W5Uf&7HHZnqbfcj1NEt$C@)H;z>~;+BE?AM<+@G9CL@mgV9!zcVo?5|* zBKF3(Wy9E1=OsKTsD$hBl;fcaMEym5&?P#w+rab7h@WwKGU^)>^<_kTF5T}xz|vwT z0sQ&cr`V7}@!sTkarCFh`8L>_)1&(v%3nc+KaUYFx|K(EQQrb%$QW2rCr!)NE%1IY zw-5J>v;|tJ2O8dntMT%BSKm@$%R9X4CJc+(aIY3<(n(=)x(g$|w@pgr6KkN^%JcPB z{Lg9xtat~br`$eHt`md2_e5gKvK}M7J2<^t)nz?#Ng^@owf!P#Jy9f2>Hdk+J%FJm z&|4f4394p$9(YW@tzwPuZiOoTs>YB#p?v7 zRY#>ttPPujGX9QJgO5X%;X=cNrc1=w42-u@0=a$E3g4obcB@!wTrGu|RP#bmrq zg;&oNc=t~e4DuE0`B<+cwJ?nTk`do9QpG6YrYD)J)m{dY1!w0@9^WWasht=K(l6KE zRhd%(Fq^bbHuuNE_1}o~9#;Ip$jVg0+2fy(WYYHQf!ej#ANn-vd0;W_`6SNJ{t)x{ z{d7`?J%~%Cc1!ShHs+xYMU37NxJQ&n8nW<^*EuZGQ?To`X8~kTP2|()wu4A8H;Sb) zdlrg=H_1SHJDqk@2Hq|^ek&(y1xP~e4I)69C(DX#3oQ5}*8(h~6;o`CVY0<*qIgZB zmo_ed;gyZUEA=)AaBcn@7~|AjL`k9Tl*2IWYhU}Ur;-A{`-G^Oc5UKGphtqafkyxZ zU=Pfjmo%e`rfy$u&Ys~#Vr&0b`zBKyLFij)3v9+#~{ z*Fk(>*iIm-=AZir*?ss#H|1QQ{TwF3!b$W^wXEmQLpqEYe0NXhnBKK3O`Om+N=I9g zkj9d~lZM4tAP_Qn@6Zzw*id#_T0%-`15(n*mg)>52J9?@B0_c41MeZ|9KH2+tR@tr zlV5vUw8JA934bh2N~1d3N^Fr=TQ7;wbSgEg_ABgc zq1_vZNUJ(w4oa1^joNxEadrQsrhnEF_8W7Cu-puE=%@Ww`&5kEZ<_iPBHuLi1^)j% z|L^AixA1RFkHwr6;@O$h3kv+{HX`4xMA+C0lhh6nu6zf`Kf{iH(45Iz>Yp*3=2O05 zp#6b!0nqgj1Vg!q$~}}~bSg7U%@1fgM)AyGUQWxj67)WjQo?kS62}k4go^}?b~?nu zp-l6gV#i90_KpGiwg6$s9(NCj!T&m=;j(6AkID8H2w|A6m~j!G>e;HJ8!T#uJYx)a z$>J;A%B{JhQgWJdcKGqH)@qQXfoK*Yd7Xi1FR=33t$lqVv)BCfpzYSY@LHRCAZLGW zbJZTHw0(tAVOy?bhG*Ide`qI`8gj(IhsH}iQy@Nqi}ztdwhYw9x$f#j7V5HtjU-%Q zdFB-=w!h(jfP`r)p(hpXSFkq@Jel&!8HDMELd>$O6E10Xhq`VbkM0!gChWyPMDd*o zL^mVF4c7%O5b_%wbjl3|_u<)nZ3DT<<G59ZfywG-eGyIQml z#7;DA98+6$NZLfbqdHf+X)Z3XHdXCe zFF}WQ>62eWy8c@Az-HB|B&)P*QYpsH3OgN*@7YSY3&%}9K1BsgUg(w9%0kvFdK@l~n7bMC3j zRRW4c)uk{2D0ZcmiVgMShzK$sxZ?oykNMzM5@nF%86^IM+*_c%v=L~L2hfUbQ)Yf4 z#)UoJzGA!CJHkJM#RO&=J22A_Lc^@ipsa$}(s@7|0x$)|HQQ)xuU#EWZG=i&+^dXK zmfO@v9XQ;!P-Sd!EjQE=)F6Uj(FCB`pp8iil$1jRbS*Fw!GT)PMu&pXBE8m#?#Avf zklvpzx4%NiU)Yn11n+ffnYSSF!Qj1f8 zGpHNw|GEPLRp{xWR90m$*&{xjhB#fR-*8MoQ@P;34eGD{%bi)44 z52HeD%@U9LgPZ9-)Ucnz+D)C-u;0eg6oRfksSi1ZEvDzp`DqwV=Z9z7oX#7jK;GI- z1*Y&!F@&AzG$TNGrpsiSI7OM6A=S4c^i6P%*-90alSJji)REIrW@g1fvC$dOuTG)b zS7v61XHG;uPljjW6xKc0hi6VUnXca&o(Vfvp*l_?&)8@s|)M~;RU~LuAQCs2`o&0h|S~Zsp!yq8d+y5 z*G^;PL|YkV&`1T%{)x1{sCQcgZN1VKEOFv=SW+)OJZJD%rcCX@OIhvEtT>+wVxW5W z4q0giA73BE7z)=_H?PS3<8tku^(fN7yV$8u1-?)#LR~qF#%;T80}9jckMaKH{rxlk z1TA^0Y09fUpcc#H@|J1S|?|SfL;zf-bXuV9uyBJ-#u2FqE$%1(UW6vHK?z zM*H9bW$gx;t0|%SsXVdsaSluxaNj@%)XN)1oesWlfUgqEJ!GK6^l>T@=otf^>EC~z zfiI8(iBaBwK06!cu>iy7^9;p{jiMzkbp>yBR7)IZkLR>vx{SS&qu|tDq(nmy?otP9i+CU&dzrDM(1Jyh=yN}XH!<#8~pRN+*~afL+w>ttow%}7;M?q zdyj5bUs4e3q?+<=MkvLt@G_6EmbYCEr?FWLQnJ{2m&*jTc6(m&*0kZ zEH-@5=*L&S*_+f@3&$tF#MbW&73g9A6Sk{X{s0Zln_u6~IjpueQZYx*$#z}TAk?xNWI5Jpqb!v0R{VWK>b@JzfUc6sta5(a=|yQTtuP<1o<~OAa=Bqk3mA) zd()h`Z(w)>%4va_@!eAML$00H+$hccXc&akf0a`yjr^=fGxBlo zIii(mTizq?u+>)1AWTXyB`mFYClDnRCHWo z(Ly2Qm7df^PO9R_+$%tPBKi1M9YP$pD?%N#2+l&WL6<4LKaJF}F3dkg|aPI;(34gG~ZT;f1GMb(sYkI4^pep!aDA8aeeK33mo&%wW- zo2uGJ3G#nFm-3sxK%yzZpoXi(SDK-~Ar4-k9*CA9a2J4qX|rZehQ++Up#gC7iY@#8V9el(VHJEu(l9!}YWl*y3rkBEGN)gVM|@&sho8w_s3hw_JJ1l7g@q*NV* z6N=sEO%(>7yE!%bf1FeM-M=B~wIG1~(hKdlqCIpxwT#eQn4zYq2h@Tw(Sy`4t4~v^ z(hD7_p%barrzu_R70CNYdSWVYUTe>5k>nh>sK_VbNkv|17UlK7P7s{9r3=x*Y|^=I)26+*L#HADFi2 z8;kCfsuq%ajjd?z%`nnl#2@x~#d)aEX%sei8cAr5Y|0#sfQqU*MJOWs@bgr9WF7iz zs(Jt@o65Q5!61i7Y&QaWe#7;)Yzs43@DZCnf2>Q+&+^*xhxn|;-Jj&okg8rou64!c zVt^z0L%e5Jrg(mjsO8$mw<#+68>wmw!pLnYD_4|jYky{NthEiw%$v)#l>;Gpm|qTn zsQZHp%ys5M$cA${xZ~6Yt3OE3f7c?Z>TZ#F{w%K}e~#Cl|8=Qq5Sw+G@-^`c234n1P`fM3Bm{HmfKaYo&=Y&5_7-E`#kcFs&8Dz~&g3^j9&kGX^I0 zV+^b(QUuioDL(_DHP=HXK|MoR*r?Z8)=F!?t(%j9*%&;zc<#aTEj(-R#1%&$Z(>Q0 zX6V@3jg2c0qfniBIJq`E+lFNXTj{URU%|nXGwtW2P*bzB?X0TDb|CbH)1U~&E+9J{ zwxLKA*!}=w;fX3fXCD)KZSqm3LF+tHrB$a%H*ePe4O0`Q8rS1 zRqn|mHw9PaUUox9!hHtr<;q43Zh&s=TsY{{Sg)N=TUstZpHkC^(&Qi7&2({7pdDID zd|-tMAA3k|YEc56^qz^GW~bngupTii$wlg~na*vr+@UAU{NUKu3)now6{_JzjzzM>Xh%nPlW zkkbyiTrplgH-7bawS9rM8OsnDW6(wlZ4Hj@Ypdw*U+9lc@@o&_PqZ4+U$97h58K9Y z6RpW_S~U`5nE-CL9A~OC)yl-f%a?v*Su6QAkHf9GSfL7!ld3mBeDe+(H9fD?wl+z# zzK1?gHuY}koPoF|sip_Q8-P;;fSg`U3CkxhN%f|(MGLh13ej4WFoI|spa+&#U&{e- zHW~qVQ-0Dg2Q4h-}t)bHvoJtCvw5od#XQ_5*04I%2bB+%wwx?-#mySsD zhXU1W1R}ulfju!ycIciDQJQ<@t{?;8|;DhUGA#U^6*z=lYS|L*+%z6 zSmVVL$@hWuPUR8w?p9$H?#dLuE|KDgz4N&!{@Zt5jp83njy1<1ir{Djq1_JBum)LA?IoQvAA-81k2)_;JlwrTAy(U6JBf=oG)?GgAC5 zgDHO4=Bv^B^)pkQx8s?KXC9uVsM4#@JJ$CHNcfx>#Y4{VMmCkiJhoid%J0HatG>rl zpGG2yV!tkt2^?=FFu}P5u`i^$A@-N$5ff0#{c@i;5E9ss``@%u6Nw-O8|d3kr{#G)T-YM)W`3tSA@KOFJU2|@Nh2mxteYOsQbQoXG3pD$RU zwwPJLi`QUQpqygTU;hx|U;hyDUm#?30JHTh{|_C&zs&A0fx!>dV0sTAy{_|v$k6Bl zM(H8A3sCRX8G^zj^Z{Q6M+{&H%40weK!DAYiog$e=Hqz)&-YQcSKcK1g}x z>UE0*Gi2!cpR2Qjd-If1%y025!SfKFwW#C2!w(C#p2F-K z8u5?R_sq#^Ix#UO0%L-OR>2lnfiHsTEAAx}yD=Wbc1_GlQcSBy@uZ%Drl7BPz;=^e z52cQvqabZ+@1Gb{k5x~gbm0F(}&R*W&Z(MPzDA3BIzng(WQFo($SBMH;iICKno zeoHi2svkjPbqwWwDR9&19U0Ly<)k(6CYom)rYZf|8YC;yJ=ZWWS3_)PP%+hXZAi)B z%EX3NH0B1=>M~%&%hq8tCY(`dGajOr-C!cBFq>AT!qAmfuR&gBR!7j{b52VVdFLHj zh3i@?heHt*)dT6IKZ4IIsj%maLiZC$kzFYAxkYH8PUG{>MvwKMi5}~(M30O1er|fq zLKH!dH{LP03iVkm=+PnQaTwN0|1Lc`PYi4*Ly(JR{Bh%#PLI#MHZa41^!P2PIR6p! z`0&nwxhB%%W3vZW=I5Zt`m51n{THN1j2A9XkyC|ugq&1hj*Cal(oP;i!!A4wQS9W& zB)fHzr(p#|S4?!?qNb5T)R3L`jl#9UvqzajC+uW0!#0W?6c+-9;>HWqAGcqYfa?+j z>Q~|f>Iy^=1pJ*T@pZ1FrBm=|IXOd6@caw$6f8m+B9%nk0&Ol%i|I5YybT(LH)QJm zS7S6x-nvlz+GiH3B27c8ju2Ay-CYTJ8e}Z;{2A=u3_!_{tCK&ETopMRf>osa{L2X$ z8Qj`9Pf+|TUfsKNo*l@fQ-$OcFxHqO2~x@i3!P;%MN9z zAOj(Ir?TK}GX(DfY3JkDSs-{JfUh&-t;emrj->H`__|CUIanrBu|aQ!P^QlT>Jwc* zetCXK7%`|Z0WB)CpX}pD3~Ee3bKY?yhL_&BEP?+tfxvH( z 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 -4!rKmA)J<=PdhPx{-rfZ+ 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 + } else *V = GPU->ReadDMA(); break; diff --git a/psx/octoshock/psx/psx.cpp b/psx/octoshock/psx/psx.cpp index ab41268a99..b95c9f6b22 100644 --- a/psx/octoshock/psx/psx.cpp +++ b/psx/octoshock/psx/psx.cpp @@ -51,6 +51,7 @@ int16 soundbuf[1024 * 1024]; //how big? big enough. int VTBackBuffer = 0; +bool GpuFrameForLag = false; static MDFN_Rect VTDisplayRects[2]; #include "video/Deinterlacer.h" static bool PrevInterlaced; @@ -547,8 +548,15 @@ template static INLINE void MemRW(pscpu if(!IsWrite) timestamp++; - if(IsWrite) - MDEC_Write(timestamp, A, V); + if (IsWrite) + { + if (A == 0x1F801820) + { + //per pcsx-rr: + GpuFrameForLag = true; + } + MDEC_Write(timestamp, A, V); + } else V = MDEC_Read(timestamp, A); @@ -1407,6 +1415,8 @@ EW_EXPORT s32 shock_Step(void* psx, eShockStep step) static const int ResampleQuality = 5; SPU->StartFrame(espec.SoundRate, ResampleQuality); + GpuFrameForLag = false; + Running = -1; timestamp = CPU->Run(timestamp, psx_dbg_level >= PSX_DBG_BIOS_PRINT, /*psf_loader != NULL*/ false); //huh? assert(timestamp); @@ -2725,4 +2735,11 @@ EW_EXPORT s32 shock_SetLEC(void* psx, bool enabled) { CDC->SetLEC(enabled); return SHOCK_OK; +} + +//whether "determine lag from GPU frames" signal is set (GPU did something considered non-lag) +//returns SHOCK_TRUE or SHOCK_FALSE +EW_EXPORT s32 shock_GetGPUUnlagged(void* psx) +{ + return GpuFrameForLag ? SHOCK_TRUE : SHOCK_FALSE; } \ No newline at end of file diff --git a/psx/octoshock/psx/psx.h b/psx/octoshock/psx/psx.h index 1804885245..85267ddf7b 100644 --- a/psx/octoshock/psx/psx.h +++ b/psx/octoshock/psx/psx.h @@ -428,4 +428,8 @@ EW_EXPORT s32 shock_SetRegister_CPU(void* psx, s32 index, u32 value); EW_EXPORT s32 shock_SetTraceCallback(void* psx, void* opaque, ShockCallback_Trace callback); //Sets whether LEC is enabled (sector level error correction). Defaults to FALSE (disabled) -EW_EXPORT s32 shock_SetLEC(void* psx, bool enabled); \ No newline at end of file +EW_EXPORT s32 shock_SetLEC(void* psx, bool enabled); + +//whether "determine lag from GPU frames" signal is set (GPU did something considered non-lag) +//returns SHOCK_TRUE or SHOCK_FALSE +EW_EXPORT s32 shock_GetGPUUnlagged(void* psx); \ No newline at end of file