diff --git a/BizHawk.MultiClient/BizHawk.MultiClient.csproj b/BizHawk.MultiClient/BizHawk.MultiClient.csproj index e9a8a41aa9..3dcc16209b 100644 --- a/BizHawk.MultiClient/BizHawk.MultiClient.csproj +++ b/BizHawk.MultiClient/BizHawk.MultiClient.csproj @@ -671,6 +671,7 @@ + diff --git a/BizHawk.MultiClient/MainForm.Movie.cs b/BizHawk.MultiClient/MainForm.Movie.cs index e2630204fe..bdf873460f 100644 --- a/BizHawk.MultiClient/MainForm.Movie.cs +++ b/BizHawk.MultiClient/MainForm.Movie.cs @@ -70,13 +70,13 @@ namespace BizHawk.MultiClient return false; } - private void PlayMovie() + public void PlayMovie() { PlayMovie p = new PlayMovie(); DialogResult d = p.ShowDialog(); } - private void RecordMovie() + public void RecordMovie() { RecordMovie r = new RecordMovie(); r.ShowDialog(); diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index 2e86243914..d92c1a989e 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -30,6 +30,9 @@ namespace BizHawk.MultiClient public bool PressFrameAdvance = false; public bool PressRewind = false; + public bool FastForward = false; + public bool TurboFastForward = false; + public bool StopOnEnd = false; //avi/wav state IVideoWriter CurrAviWriter = null; @@ -357,7 +360,7 @@ namespace BizHawk.MultiClient void SyncThrottle() { - bool fastforward = Global.ClientControls["Fast Forward"]; + bool fastforward = Global.ClientControls["Fast Forward"] || FastForward; Global.ForceNoVsync = unthrottled || fastforward; throttle.SetCoreFps(Global.Emulator.CoreOutputComm.VsyncRate); @@ -1774,12 +1777,22 @@ namespace BizHawk.MultiClient runFrame = true; } - if (Global.Config.RewindEnabled && Global.ClientControls["Rewind"] || PressRewind) + MOVIEMODE movieMode = Global.MovieSession.Movie.Mode; + if (Global.Config.RewindEnabled && (Global.ClientControls["Rewind"] || PressRewind)) { Rewind(1); suppressCaptureRewind = true; - runFrame = true; - PressRewind = false; + if (0 == RewindBuf.Count) + { + runFrame = false; + } + else + { + runFrame = true; + } + //Save this here and restore it later, we don't want to capture input when rewinding, even in record mode + movieMode = Global.MovieSession.Movie.Mode; + Global.MovieSession.Movie.Mode = MOVIEMODE.PLAY; } bool genSound = false; @@ -1788,7 +1801,7 @@ namespace BizHawk.MultiClient //client input-related duties Global.OSD.ClearGUIText(); - UpdateTools(); + UpdateToolsBefore(); #if WINDOWS LuaConsole1.ResumeScripts(true); #endif @@ -1813,7 +1826,6 @@ namespace BizHawk.MultiClient Global.OSD.FPS = fps_string; } - if (!suppressCaptureRewind && Global.Config.RewindEnabled) CaptureRewindState(); if (!runloop_frameadvance) genSound = true; else if (!Global.Config.MuteFrameAdvance) @@ -1836,12 +1848,12 @@ namespace BizHawk.MultiClient { session.LatchInputFromPlayer(Global.MovieInputSourceAdapter); } - - //the movie session makes sure that the correct input has been read and merged to its MovieControllerAdapter; - //this has been wired to Global.MovieOutputHardpoint in RewireInputChain - session.Movie.CommitFrame(Global.Emulator.Frame, Global.MovieOutputHardpoint); } + //the movie session makes sure that the correct input has been read and merged to its MovieControllerAdapter; + //this has been wired to Global.MovieOutputHardpoint in RewireInputChain + session.Movie.CommitFrame(Global.Emulator.Frame, Global.MovieOutputHardpoint); + if (Global.MovieSession.Movie.Mode == MOVIEMODE.INACTIVE || Global.MovieSession.Movie.Mode == MOVIEMODE.FINISHED) { session.LatchInputFromPlayer(Global.MovieInputSourceAdapter); @@ -1849,8 +1861,9 @@ namespace BizHawk.MultiClient if (Global.MovieSession.Movie.Mode == MOVIEMODE.PLAY) { - if (Global.MovieSession.Movie.Length() == Global.Emulator.Frame) + if (Global.MovieSession.Movie.Length() == Global.Emulator.Frame && true == StopOnEnd) { + StopOnEnd = false; Global.MovieSession.Movie.SetMovieFinished(); } } @@ -1898,7 +1911,15 @@ namespace BizHawk.MultiClient } PressFrameAdvance = false; - } + UpdateToolsAfter(); + } + + if (Global.ClientControls["Rewind"] || PressRewind) + { + UpdateToolsAfter(); + Global.MovieSession.Movie.Mode = movieMode; + PressRewind = false; + } if (genSound) { @@ -1913,9 +1934,9 @@ namespace BizHawk.MultiClient } /// - /// Update all tools that are frame dependent like Ram Search + /// Update all tools that are frame dependent like Ram Search before processing /// - public void UpdateTools() + public void UpdateToolsBefore() { RamWatch1.UpdateValues(); RamSearch1.UpdateValues(); @@ -1924,10 +1945,19 @@ namespace BizHawk.MultiClient NESPPU1.UpdateValues(); PCEBGViewer1.UpdateValues(); PCEBGViewer1.Generate(); // TODO: just a makeshift. PCE core should provide callbacks. - TAStudio1.UpdateValues(); GBDebugger.UpdateValues(); } + /// + /// Update all tools that are frame dependent like Ram Search after processing + /// + public void UpdateToolsAfter() + { + //The other tool updates are earlier, TAStudio needs to be later so it can display the latest + //frame of execution in its list view. + TAStudio1.UpdateValues(); + } + private unsafe Image MakeScreenshotImage() { var video = Global.Emulator.VideoProvider; @@ -2078,8 +2108,9 @@ namespace BizHawk.MultiClient } reader.Close(); - UpdateTools(); - Global.OSD.AddMessage("Loaded state: " + name); + UpdateToolsBefore(); + UpdateToolsAfter(); + Global.OSD.AddMessage("Loaded state: " + name); } else Global.OSD.AddMessage("Loadstate error!"); @@ -2563,10 +2594,16 @@ namespace BizHawk.MultiClient public void SetReadOnly(bool read_only) { ReadOnly = read_only; - if (ReadOnly) - Global.OSD.AddMessage("Movie read-only mode"); - else - Global.OSD.AddMessage("Movie read+write mode"); + if (ReadOnly) + { + Global.MovieSession.Movie.Mode = MOVIEMODE.PLAY; + Global.OSD.AddMessage("Movie read-only mode"); + } + else + { + Global.MovieSession.Movie.Mode = MOVIEMODE.RECORD; + Global.OSD.AddMessage("Movie read+write mode"); + } } public void LoadRamWatch() diff --git a/BizHawk.MultiClient/Properties/Resources.Designer.cs b/BizHawk.MultiClient/Properties/Resources.Designer.cs index a6d637dfa4..58fac28b3c 100644 --- a/BizHawk.MultiClient/Properties/Resources.Designer.cs +++ b/BizHawk.MultiClient/Properties/Resources.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.261 +// Runtime Version:4.0.30319.1 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -647,6 +647,13 @@ namespace BizHawk.MultiClient.Properties { } } + internal static System.Drawing.Bitmap TurboFastForward { + get { + object obj = ResourceManager.GetObject("TurboFastForward", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + internal static System.Drawing.Bitmap undo { get { object obj = ResourceManager.GetObject("undo", resourceCulture); diff --git a/BizHawk.MultiClient/Properties/Resources.resx b/BizHawk.MultiClient/Properties/Resources.resx index cf436b345a..ad991c9afb 100644 --- a/BizHawk.MultiClient/Properties/Resources.resx +++ b/BizHawk.MultiClient/Properties/Resources.resx @@ -816,4 +816,7 @@ ..\images\atari_controller.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - + + ..\Resources\TurboFastForward.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/BizHawk.MultiClient/RecordMovie.cs b/BizHawk.MultiClient/RecordMovie.cs index 0ff1e63fe9..1104175a2a 100644 --- a/BizHawk.MultiClient/RecordMovie.cs +++ b/BizHawk.MultiClient/RecordMovie.cs @@ -119,18 +119,11 @@ namespace BizHawk.MultiClient private void button1_Click(object sender, EventArgs e) { - SaveFileDialog sfd = new SaveFileDialog(); - sfd.InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.MoviesPath, ""); - sfd.DefaultExt = "." + Global.Config.MovieExtension; - sfd.FileName = RecordBox.Text; - sfd.Filter = "Generic Movie Files (*." + Global.Config.MovieExtension + ")|*." + Global.Config.MovieExtension + "|" + Global.MainForm.GetMovieExtName() + "|All Files (*.*)|*.*"; + string fileName = Movie.SaveRecordingAs(); - Global.Sound.StopSound(); - var result = sfd.ShowDialog(); - Global.Sound.StartSound(); - if (result == DialogResult.OK) + if ("" != fileName) { - RecordBox.Text = sfd.FileName; + RecordBox.Text = fileName; } } diff --git a/BizHawk.MultiClient/Rewind.cs b/BizHawk.MultiClient/Rewind.cs index 2881ccdc7f..042b8ec796 100644 --- a/BizHawk.MultiClient/Rewind.cs +++ b/BizHawk.MultiClient/Rewind.cs @@ -24,6 +24,20 @@ namespace BizHawk.MultiClient Global.OSD.AddMessage("Rewind Disabled: State too large."); Global.OSD.AddMessage("See 'Arcade Card Rewind Hack' in Emulation->PC Engine options."); } + + var ms = new MemoryStream(); + var writer = new BinaryWriter(ms); + for (int i = 0; i < LastState.Length; i++) + { + if (i == 254 || i == LastState.Length - 1) + { + writer.Write((byte)(i + 1)); + writer.Write((ushort) 0); + writer.Write(LastState, 0, i + 1); + } + } + RewindBuf.Push(ms); + return; } @@ -162,7 +176,7 @@ namespace BizHawk.MultiClient { for (int i = 0; i < frames; i++) { - if (RewindBuf.Count == 0) + if (RewindBuf.Count == 0 || 0 == Global.MovieSession.Movie.Length()) return; if (LastState.Length < 0x10000) Rewind64K(); @@ -177,5 +191,10 @@ namespace BizHawk.MultiClient RewindImpossible = false; LastState = null; } + + public int RewindBufferCount() + { + return RewindBuf.Count; + } } } diff --git a/BizHawk.MultiClient/Throttle.cs b/BizHawk.MultiClient/Throttle.cs index d26a94c24d..885a75b432 100644 --- a/BizHawk.MultiClient/Throttle.cs +++ b/BizHawk.MultiClient/Throttle.cs @@ -162,7 +162,7 @@ namespace BizHawk.MultiClient public void SetCoreFps(double desired_fps) { - core_desiredfps = (ulong)(65536 * desired_fps); + core_desiredfps = (ulong)(65536 * desired_fps); int target_pct = pct; pct = -1; SetSpeedPercent(target_pct); @@ -177,7 +177,7 @@ namespace BizHawk.MultiClient float fraction = percent / 100.0f; desiredfps = (ulong)(core_desiredfps * fraction); //Console.WriteLine("throttle set desiredfps " + desiredfps); - desiredspf = 65536.0f / desiredfps; + desiredspf = 65536.0f / desiredfps; AutoFrameSkip_IgnorePreviousDelay(); } diff --git a/BizHawk.MultiClient/images/FastForward.png b/BizHawk.MultiClient/images/FastForward.png index 6301539f62..5abc5f4c87 100644 Binary files a/BizHawk.MultiClient/images/FastForward.png and b/BizHawk.MultiClient/images/FastForward.png differ diff --git a/BizHawk.MultiClient/movie/InputAdapters.cs b/BizHawk.MultiClient/movie/InputAdapters.cs index d5f54d2c77..ae7915c4db 100644 --- a/BizHawk.MultiClient/movie/InputAdapters.cs +++ b/BizHawk.MultiClient/movie/InputAdapters.cs @@ -401,7 +401,7 @@ namespace BizHawk.MultiClient if (ControlType == "NES Controller") { if (mnemonic.Length < 2) return; - Force("Reset", mnemonic[1] != '.' && mnemonic[1] != '0' && mnemonic[1] != 'l'); + Force("Reset", mnemonic[1] != '.' && mnemonic[1] != 'r' && mnemonic[1] != 'l'); } if (ControlType == "SMS Controller" || ControlType == "TI83 Controller") { diff --git a/BizHawk.MultiClient/movie/Movie.cs b/BizHawk.MultiClient/movie/Movie.cs index cb890a2a92..476659eb8c 100644 --- a/BizHawk.MultiClient/movie/Movie.cs +++ b/BizHawk.MultiClient/movie/Movie.cs @@ -18,7 +18,7 @@ namespace BizHawk.MultiClient public bool IsText { get; private set; } public string Filename { get; private set; } - public MOVIEMODE Mode { get; private set; } + public MOVIEMODE Mode { get; set; } public int Rerecords { get; private set; } private int Frames; public bool RerecordCounting { get; set; } @@ -69,13 +69,18 @@ namespace BizHawk.MultiClient return Header.GetHeaderLine(MovieHeader.GAMENAME); } - public int Length() - { - if (Loaded) - return Log.Length(); - else - return Frames; - } + public int Length() + { + if (Loaded) + return Log.Length(); + else + return Frames; + } + + public void UpdateFileName(string filename) + { + this.Filename = filename; + } public void StopMovie() { @@ -105,6 +110,26 @@ namespace BizHawk.MultiClient if(truncate) Log.Clear(); } + public static string SaveRecordingAs() + { + SaveFileDialog sfd = new SaveFileDialog(); + sfd.InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.MoviesPath, ""); + sfd.DefaultExt = "." + Global.Config.MovieExtension; + //sfd.FileName = RecordBox.Text; + sfd.FileName = Global.MovieSession.Movie.Filename; + sfd.Filter = "Generic Movie Files (*." + Global.Config.MovieExtension + ")|*." + Global.Config.MovieExtension + "|" + Global.MainForm.GetMovieExtName() + "|All Files (*.*)|*.*"; + + Global.Sound.StopSound(); + var result = sfd.ShowDialog(); + Global.Sound.StartSound(); + if (result == DialogResult.OK) + { + return sfd.FileName; + } + return ""; + } + + public void StartPlayback() { ClearSaveRAM(); diff --git a/BizHawk.MultiClient/movie/MovieSession.cs b/BizHawk.MultiClient/movie/MovieSession.cs index 29051a10b9..9f4a683de0 100644 --- a/BizHawk.MultiClient/movie/MovieSession.cs +++ b/BizHawk.MultiClient/movie/MovieSession.cs @@ -46,8 +46,7 @@ namespace BizHawk.MultiClient public void LatchInputFromLog() { string loggedFrame = Movie.GetInputFrame(Global.Emulator.Frame); - if (loggedFrame != "") - MovieControllerAdapter.SetControllersAsMnemonic(loggedFrame); + MovieControllerAdapter.SetControllersAsMnemonic(loggedFrame); } } diff --git a/BizHawk.MultiClient/tools/TAStudio.Designer.cs b/BizHawk.MultiClient/tools/TAStudio.Designer.cs index aa8cafef62..e380812a55 100644 --- a/BizHawk.MultiClient/tools/TAStudio.Designer.cs +++ b/BizHawk.MultiClient/tools/TAStudio.Designer.cs @@ -28,73 +28,75 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TAStudio)); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.newProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveProjectAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.recentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.nToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); - this.clearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.importTASFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.insertFrameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); - this.clearVirtualPadsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveWindowPositionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.autoloadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.updatePadsOnMovePlaybackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); - this.restoreWindowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStrip1 = new ToolStripEx(); - this.RewindToBeginning = new System.Windows.Forms.ToolStripButton(); - this.RewindButton = new System.Windows.Forms.ToolStripButton(); - this.PauseButton = new System.Windows.Forms.ToolStripButton(); - this.FrameAdvanceButton = new System.Windows.Forms.ToolStripButton(); - this.FastFowardToEnd = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); - this.StopButton = new System.Windows.Forms.ToolStripButton(); - this.ReadOnlyCheckBox = new System.Windows.Forms.CheckBox(); - this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.insertFrameToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); - this.selectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.ControllerBox = new System.Windows.Forms.GroupBox(); - this.TASView = new BizHawk.VirtualListView(); - this.Frame = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.Log = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); - this.ControllersContext = new System.Windows.Forms.ContextMenuStrip(this.components); - this.clearToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.menuStrip1.SuspendLayout(); - this.toolStrip1.SuspendLayout(); - this.contextMenuStrip1.SuspendLayout(); - this.ControllersContext.SuspendLayout(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TAStudio)); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.newProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveProjectAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.recentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.nToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.clearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.importTASFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.insertFrameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); + this.clearVirtualPadsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveWindowPositionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.autoloadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.updatePadsOnMovePlaybackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); + this.restoreWindowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStrip1 = new ToolStripEx(); + this.RewindToBeginning = new System.Windows.Forms.ToolStripButton(); + this.RewindButton = new System.Windows.Forms.ToolStripButton(); + this.PauseButton = new System.Windows.Forms.ToolStripButton(); + this.FrameAdvanceButton = new System.Windows.Forms.ToolStripButton(); + this.FastForward = new System.Windows.Forms.ToolStripButton(); + this.TurboFastForward = new System.Windows.Forms.ToolStripButton(); + this.FastFowardToEnd = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); + this.StopButton = new System.Windows.Forms.ToolStripButton(); + this.ReadOnlyCheckBox = new System.Windows.Forms.CheckBox(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.insertFrameToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + this.selectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.ControllerBox = new System.Windows.Forms.GroupBox(); + this.ControllersContext = new System.Windows.Forms.ContextMenuStrip(this.components); + this.clearToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.TASView = new BizHawk.VirtualListView(); + this.Frame = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.Log = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.menuStrip1.SuspendLayout(); + this.toolStrip1.SuspendLayout(); + this.contextMenuStrip1.SuspendLayout(); + this.ControllersContext.SuspendLayout(); + this.SuspendLayout(); + // + // menuStrip1 + // + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.fileToolStripMenuItem, this.editToolStripMenuItem, this.settingsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(686, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(686, 24); + this.menuStrip1.TabIndex = 0; + this.menuStrip1.Text = "menuStrip1"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.newProjectToolStripMenuItem, this.openProjectToolStripMenuItem, this.saveProjectToolStripMenuItem, @@ -104,376 +106,400 @@ this.importTASFileToolStripMenuItem, this.toolStripSeparator2, this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // newProjectToolStripMenuItem - // - this.newProjectToolStripMenuItem.Name = "newProjectToolStripMenuItem"; - this.newProjectToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); - this.newProjectToolStripMenuItem.Size = new System.Drawing.Size(186, 22); - this.newProjectToolStripMenuItem.Text = "New Project"; - this.newProjectToolStripMenuItem.Click += new System.EventHandler(this.newProjectToolStripMenuItem_Click); - // - // openProjectToolStripMenuItem - // - this.openProjectToolStripMenuItem.Name = "openProjectToolStripMenuItem"; - this.openProjectToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.openProjectToolStripMenuItem.Size = new System.Drawing.Size(186, 22); - this.openProjectToolStripMenuItem.Text = "&Open Project"; - this.openProjectToolStripMenuItem.Click += new System.EventHandler(this.openProjectToolStripMenuItem_Click); - // - // saveProjectToolStripMenuItem - // - this.saveProjectToolStripMenuItem.Name = "saveProjectToolStripMenuItem"; - this.saveProjectToolStripMenuItem.Size = new System.Drawing.Size(186, 22); - this.saveProjectToolStripMenuItem.Text = "&Save Project"; - this.saveProjectToolStripMenuItem.Click += new System.EventHandler(this.saveProjectToolStripMenuItem_Click); - // - // saveProjectAsToolStripMenuItem - // - this.saveProjectAsToolStripMenuItem.Name = "saveProjectAsToolStripMenuItem"; - this.saveProjectAsToolStripMenuItem.Size = new System.Drawing.Size(186, 22); - this.saveProjectAsToolStripMenuItem.Text = "Save Project As"; - this.saveProjectAsToolStripMenuItem.Click += new System.EventHandler(this.saveProjectAsToolStripMenuItem_Click); - // - // recentToolStripMenuItem - // - this.recentToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); + this.fileToolStripMenuItem.Text = "&File"; + // + // newProjectToolStripMenuItem + // + this.newProjectToolStripMenuItem.Name = "newProjectToolStripMenuItem"; + this.newProjectToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); + this.newProjectToolStripMenuItem.Size = new System.Drawing.Size(186, 22); + this.newProjectToolStripMenuItem.Text = "New Project"; + this.newProjectToolStripMenuItem.Click += new System.EventHandler(this.newProjectToolStripMenuItem_Click); + // + // openProjectToolStripMenuItem + // + this.openProjectToolStripMenuItem.Name = "openProjectToolStripMenuItem"; + this.openProjectToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); + this.openProjectToolStripMenuItem.Size = new System.Drawing.Size(186, 22); + this.openProjectToolStripMenuItem.Text = "&Open Project"; + this.openProjectToolStripMenuItem.Click += new System.EventHandler(this.openProjectToolStripMenuItem_Click); + // + // saveProjectToolStripMenuItem + // + this.saveProjectToolStripMenuItem.Name = "saveProjectToolStripMenuItem"; + this.saveProjectToolStripMenuItem.Size = new System.Drawing.Size(186, 22); + this.saveProjectToolStripMenuItem.Text = "&Save Project"; + this.saveProjectToolStripMenuItem.Click += new System.EventHandler(this.saveProjectToolStripMenuItem_Click); + // + // saveProjectAsToolStripMenuItem + // + this.saveProjectAsToolStripMenuItem.Name = "saveProjectAsToolStripMenuItem"; + this.saveProjectAsToolStripMenuItem.Size = new System.Drawing.Size(186, 22); + this.saveProjectAsToolStripMenuItem.Text = "Save Project As"; + this.saveProjectAsToolStripMenuItem.Click += new System.EventHandler(this.saveProjectAsToolStripMenuItem_Click); + // + // recentToolStripMenuItem + // + this.recentToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.nToolStripMenuItem, this.toolStripSeparator3, this.clearToolStripMenuItem}); - this.recentToolStripMenuItem.Image = global::BizHawk.MultiClient.Properties.Resources.Recent; - this.recentToolStripMenuItem.Name = "recentToolStripMenuItem"; - this.recentToolStripMenuItem.Size = new System.Drawing.Size(186, 22); - this.recentToolStripMenuItem.Text = "Recent"; - // - // nToolStripMenuItem - // - this.nToolStripMenuItem.Name = "nToolStripMenuItem"; - this.nToolStripMenuItem.Size = new System.Drawing.Size(103, 22); - this.nToolStripMenuItem.Text = "None"; - // - // toolStripSeparator3 - // - this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(100, 6); - // - // clearToolStripMenuItem - // - this.clearToolStripMenuItem.Name = "clearToolStripMenuItem"; - this.clearToolStripMenuItem.Size = new System.Drawing.Size(103, 22); - this.clearToolStripMenuItem.Text = "Clear"; - // - // toolStripSeparator1 - // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(183, 6); - // - // importTASFileToolStripMenuItem - // - this.importTASFileToolStripMenuItem.Name = "importTASFileToolStripMenuItem"; - this.importTASFileToolStripMenuItem.Size = new System.Drawing.Size(186, 22); - this.importTASFileToolStripMenuItem.Text = "Import TAS file"; - // - // toolStripSeparator2 - // - this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(183, 6); - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); - this.exitToolStripMenuItem.Size = new System.Drawing.Size(186, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // editToolStripMenuItem - // - this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.recentToolStripMenuItem.Image = global::BizHawk.MultiClient.Properties.Resources.Recent; + this.recentToolStripMenuItem.Name = "recentToolStripMenuItem"; + this.recentToolStripMenuItem.Size = new System.Drawing.Size(186, 22); + this.recentToolStripMenuItem.Text = "Recent"; + // + // nToolStripMenuItem + // + this.nToolStripMenuItem.Name = "nToolStripMenuItem"; + this.nToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.nToolStripMenuItem.Text = "None"; + // + // toolStripSeparator3 + // + this.toolStripSeparator3.Name = "toolStripSeparator3"; + this.toolStripSeparator3.Size = new System.Drawing.Size(100, 6); + // + // clearToolStripMenuItem + // + this.clearToolStripMenuItem.Name = "clearToolStripMenuItem"; + this.clearToolStripMenuItem.Size = new System.Drawing.Size(103, 22); + this.clearToolStripMenuItem.Text = "Clear"; + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(183, 6); + // + // importTASFileToolStripMenuItem + // + this.importTASFileToolStripMenuItem.Name = "importTASFileToolStripMenuItem"; + this.importTASFileToolStripMenuItem.Size = new System.Drawing.Size(186, 22); + this.importTASFileToolStripMenuItem.Text = "Import TAS file"; + // + // toolStripSeparator2 + // + this.toolStripSeparator2.Name = "toolStripSeparator2"; + this.toolStripSeparator2.Size = new System.Drawing.Size(183, 6); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F4))); + this.exitToolStripMenuItem.Size = new System.Drawing.Size(186, 22); + this.exitToolStripMenuItem.Text = "E&xit"; + this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); + // + // editToolStripMenuItem + // + this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.insertFrameToolStripMenuItem, this.toolStripSeparator7, this.clearVirtualPadsToolStripMenuItem}); - this.editToolStripMenuItem.Name = "editToolStripMenuItem"; - this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20); - this.editToolStripMenuItem.Text = "&Edit"; - this.editToolStripMenuItem.DropDownOpened += new System.EventHandler(this.editToolStripMenuItem_DropDownOpened); - // - // insertFrameToolStripMenuItem - // - this.insertFrameToolStripMenuItem.Name = "insertFrameToolStripMenuItem"; - this.insertFrameToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A))); - this.insertFrameToolStripMenuItem.Size = new System.Drawing.Size(191, 22); - this.insertFrameToolStripMenuItem.Text = "Insert Frame"; - this.insertFrameToolStripMenuItem.Click += new System.EventHandler(this.insertFrameToolStripMenuItem_Click); - // - // toolStripSeparator7 - // - this.toolStripSeparator7.Name = "toolStripSeparator7"; - this.toolStripSeparator7.Size = new System.Drawing.Size(188, 6); - // - // clearVirtualPadsToolStripMenuItem - // - this.clearVirtualPadsToolStripMenuItem.Name = "clearVirtualPadsToolStripMenuItem"; - this.clearVirtualPadsToolStripMenuItem.Size = new System.Drawing.Size(191, 22); - this.clearVirtualPadsToolStripMenuItem.Text = "&Clear Controller Holds"; - this.clearVirtualPadsToolStripMenuItem.Click += new System.EventHandler(this.clearVirtualPadsToolStripMenuItem_Click); - // - // settingsToolStripMenuItem - // - this.settingsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.editToolStripMenuItem.Name = "editToolStripMenuItem"; + this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20); + this.editToolStripMenuItem.Text = "&Edit"; + this.editToolStripMenuItem.DropDownOpened += new System.EventHandler(this.editToolStripMenuItem_DropDownOpened); + // + // insertFrameToolStripMenuItem + // + this.insertFrameToolStripMenuItem.Name = "insertFrameToolStripMenuItem"; + this.insertFrameToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.A))); + this.insertFrameToolStripMenuItem.Size = new System.Drawing.Size(191, 22); + this.insertFrameToolStripMenuItem.Text = "Insert Frame"; + this.insertFrameToolStripMenuItem.Click += new System.EventHandler(this.insertFrameToolStripMenuItem_Click); + // + // toolStripSeparator7 + // + this.toolStripSeparator7.Name = "toolStripSeparator7"; + this.toolStripSeparator7.Size = new System.Drawing.Size(188, 6); + // + // clearVirtualPadsToolStripMenuItem + // + this.clearVirtualPadsToolStripMenuItem.Name = "clearVirtualPadsToolStripMenuItem"; + this.clearVirtualPadsToolStripMenuItem.Size = new System.Drawing.Size(191, 22); + this.clearVirtualPadsToolStripMenuItem.Text = "&Clear Controller Holds"; + this.clearVirtualPadsToolStripMenuItem.Click += new System.EventHandler(this.clearVirtualPadsToolStripMenuItem_Click); + // + // settingsToolStripMenuItem + // + this.settingsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.saveWindowPositionToolStripMenuItem, this.autoloadToolStripMenuItem, this.updatePadsOnMovePlaybackToolStripMenuItem, this.toolStripSeparator4, this.restoreWindowToolStripMenuItem}); - this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; - this.settingsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); - this.settingsToolStripMenuItem.Text = "&Settings"; - this.settingsToolStripMenuItem.DropDownOpened += new System.EventHandler(this.settingsToolStripMenuItem_DropDownOpened); - // - // saveWindowPositionToolStripMenuItem - // - this.saveWindowPositionToolStripMenuItem.Name = "saveWindowPositionToolStripMenuItem"; - this.saveWindowPositionToolStripMenuItem.Size = new System.Drawing.Size(240, 22); - this.saveWindowPositionToolStripMenuItem.Text = "Save Window Position"; - this.saveWindowPositionToolStripMenuItem.Click += new System.EventHandler(this.saveWindowPositionToolStripMenuItem_Click); - // - // autoloadToolStripMenuItem - // - this.autoloadToolStripMenuItem.Name = "autoloadToolStripMenuItem"; - this.autoloadToolStripMenuItem.Size = new System.Drawing.Size(240, 22); - this.autoloadToolStripMenuItem.Text = "Autoload"; - this.autoloadToolStripMenuItem.Click += new System.EventHandler(this.autoloadToolStripMenuItem_Click); - // - // updatePadsOnMovePlaybackToolStripMenuItem - // - this.updatePadsOnMovePlaybackToolStripMenuItem.Name = "updatePadsOnMovePlaybackToolStripMenuItem"; - this.updatePadsOnMovePlaybackToolStripMenuItem.Size = new System.Drawing.Size(240, 22); - this.updatePadsOnMovePlaybackToolStripMenuItem.Text = "Update Pads on Move playback"; - this.updatePadsOnMovePlaybackToolStripMenuItem.Click += new System.EventHandler(this.updatePadsOnMovePlaybackToolStripMenuItem_Click); - // - // toolStripSeparator4 - // - this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(237, 6); - // - // restoreWindowToolStripMenuItem - // - this.restoreWindowToolStripMenuItem.Name = "restoreWindowToolStripMenuItem"; - this.restoreWindowToolStripMenuItem.Size = new System.Drawing.Size(240, 22); - this.restoreWindowToolStripMenuItem.Text = "Restore Default Settings"; - this.restoreWindowToolStripMenuItem.Click += new System.EventHandler(this.restoreWindowToolStripMenuItem_Click); - // - // toolStrip1 - // - this.toolStrip1.ClickThrough = true; - this.toolStrip1.Dock = System.Windows.Forms.DockStyle.None; - this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; + this.settingsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); + this.settingsToolStripMenuItem.Text = "&Settings"; + this.settingsToolStripMenuItem.DropDownOpened += new System.EventHandler(this.settingsToolStripMenuItem_DropDownOpened); + // + // saveWindowPositionToolStripMenuItem + // + this.saveWindowPositionToolStripMenuItem.Name = "saveWindowPositionToolStripMenuItem"; + this.saveWindowPositionToolStripMenuItem.Size = new System.Drawing.Size(240, 22); + this.saveWindowPositionToolStripMenuItem.Text = "Save Window Position"; + this.saveWindowPositionToolStripMenuItem.Click += new System.EventHandler(this.saveWindowPositionToolStripMenuItem_Click); + // + // autoloadToolStripMenuItem + // + this.autoloadToolStripMenuItem.Name = "autoloadToolStripMenuItem"; + this.autoloadToolStripMenuItem.Size = new System.Drawing.Size(240, 22); + this.autoloadToolStripMenuItem.Text = "Autoload"; + this.autoloadToolStripMenuItem.Click += new System.EventHandler(this.autoloadToolStripMenuItem_Click); + // + // updatePadsOnMovePlaybackToolStripMenuItem + // + this.updatePadsOnMovePlaybackToolStripMenuItem.Name = "updatePadsOnMovePlaybackToolStripMenuItem"; + this.updatePadsOnMovePlaybackToolStripMenuItem.Size = new System.Drawing.Size(240, 22); + this.updatePadsOnMovePlaybackToolStripMenuItem.Text = "Update Pads on Move playback"; + this.updatePadsOnMovePlaybackToolStripMenuItem.Click += new System.EventHandler(this.updatePadsOnMovePlaybackToolStripMenuItem_Click); + // + // toolStripSeparator4 + // + this.toolStripSeparator4.Name = "toolStripSeparator4"; + this.toolStripSeparator4.Size = new System.Drawing.Size(237, 6); + // + // restoreWindowToolStripMenuItem + // + this.restoreWindowToolStripMenuItem.Name = "restoreWindowToolStripMenuItem"; + this.restoreWindowToolStripMenuItem.Size = new System.Drawing.Size(240, 22); + this.restoreWindowToolStripMenuItem.Text = "Restore Default Settings"; + this.restoreWindowToolStripMenuItem.Click += new System.EventHandler(this.restoreWindowToolStripMenuItem_Click); + // + // toolStrip1 + // + this.toolStrip1.ClickThrough = true; + this.toolStrip1.Dock = System.Windows.Forms.DockStyle.None; + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.RewindToBeginning, this.RewindButton, this.PauseButton, this.FrameAdvanceButton, + this.FastForward, + this.TurboFastForward, this.FastFowardToEnd, this.toolStripSeparator6, this.StopButton}); - this.toolStrip1.Location = new System.Drawing.Point(37, 27); - this.toolStrip1.Name = "toolStrip1"; - this.toolStrip1.Size = new System.Drawing.Size(156, 25); - this.toolStrip1.TabIndex = 0; - // - // RewindToBeginning - // - this.RewindToBeginning.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.RewindToBeginning.Image = global::BizHawk.MultiClient.Properties.Resources.BackMore; - this.RewindToBeginning.ImageTransparentColor = System.Drawing.Color.Magenta; - this.RewindToBeginning.Name = "RewindToBeginning"; - this.RewindToBeginning.Size = new System.Drawing.Size(23, 22); - this.RewindToBeginning.Text = "<<"; - this.RewindToBeginning.ToolTipText = "Rewind to Beginning"; - this.RewindToBeginning.Click += new System.EventHandler(this.RewindToBeginning_Click); - // - // RewindButton - // - this.RewindButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.RewindButton.Image = global::BizHawk.MultiClient.Properties.Resources.Back; - this.RewindButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.RewindButton.Name = "RewindButton"; - this.RewindButton.Size = new System.Drawing.Size(23, 22); - this.RewindButton.Text = "<"; - this.RewindButton.ToolTipText = "Rewind"; - this.RewindButton.Click += new System.EventHandler(this.RewindButton_Click); - // - // PauseButton - // - this.PauseButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.PauseButton.Image = global::BizHawk.MultiClient.Properties.Resources.Pause; - this.PauseButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.PauseButton.Name = "PauseButton"; - this.PauseButton.Size = new System.Drawing.Size(23, 22); - this.PauseButton.Text = "Pause Button"; - this.PauseButton.ToolTipText = "Pause"; - this.PauseButton.Click += new System.EventHandler(this.PauseButton_Click); - // - // FrameAdvanceButton - // - this.FrameAdvanceButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.FrameAdvanceButton.Image = global::BizHawk.MultiClient.Properties.Resources.Forward; - this.FrameAdvanceButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.FrameAdvanceButton.Name = "FrameAdvanceButton"; - this.FrameAdvanceButton.Size = new System.Drawing.Size(23, 22); - this.FrameAdvanceButton.Text = ">"; - this.FrameAdvanceButton.ToolTipText = "Frame Advance"; - this.FrameAdvanceButton.Click += new System.EventHandler(this.FrameAdvanceButton_Click); - // - // FastFowardToEnd - // - this.FastFowardToEnd.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.FastFowardToEnd.Enabled = false; - this.FastFowardToEnd.Image = global::BizHawk.MultiClient.Properties.Resources.ForwardMore; - this.FastFowardToEnd.ImageTransparentColor = System.Drawing.Color.Magenta; - this.FastFowardToEnd.Name = "FastFowardToEnd"; - this.FastFowardToEnd.Size = new System.Drawing.Size(23, 22); - this.FastFowardToEnd.Text = ">>"; - this.FastFowardToEnd.ToolTipText = "Fast Foward To End"; - this.FastFowardToEnd.Click += new System.EventHandler(this.FastForwardToEnd_Click); - // - // toolStripSeparator6 - // - this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(6, 25); - // - // StopButton - // - this.StopButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.StopButton.Image = global::BizHawk.MultiClient.Properties.Resources.Stop; - this.StopButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.StopButton.Name = "StopButton"; - this.StopButton.Size = new System.Drawing.Size(23, 22); - this.StopButton.Text = "Stop Movie"; - this.StopButton.Click += new System.EventHandler(this.StopButton_Click); - // - // ReadOnlyCheckBox - // - this.ReadOnlyCheckBox.Appearance = System.Windows.Forms.Appearance.Button; - this.ReadOnlyCheckBox.AutoSize = true; - this.ReadOnlyCheckBox.BackColor = System.Drawing.SystemColors.Control; - this.ReadOnlyCheckBox.Image = global::BizHawk.MultiClient.Properties.Resources.ReadOnly; - this.ReadOnlyCheckBox.ImageAlign = System.Drawing.ContentAlignment.BottomRight; - this.ReadOnlyCheckBox.Location = new System.Drawing.Point(12, 27); - this.ReadOnlyCheckBox.Name = "ReadOnlyCheckBox"; - this.ReadOnlyCheckBox.Size = new System.Drawing.Size(22, 22); - this.ReadOnlyCheckBox.TabIndex = 3; - this.toolTip1.SetToolTip(this.ReadOnlyCheckBox, "Read-only"); - this.ReadOnlyCheckBox.UseVisualStyleBackColor = false; - this.ReadOnlyCheckBox.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); - // - // contextMenuStrip1 - // - this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStrip1.Location = new System.Drawing.Point(37, 27); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(202, 25); + this.toolStrip1.TabIndex = 0; + // + // RewindToBeginning + // + this.RewindToBeginning.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.RewindToBeginning.Image = global::BizHawk.MultiClient.Properties.Resources.BackMore; + this.RewindToBeginning.ImageTransparentColor = System.Drawing.Color.Magenta; + this.RewindToBeginning.Name = "RewindToBeginning"; + this.RewindToBeginning.Size = new System.Drawing.Size(23, 22); + this.RewindToBeginning.Text = "<<"; + this.RewindToBeginning.ToolTipText = "Rewind to Beginning"; + this.RewindToBeginning.Click += new System.EventHandler(this.RewindToBeginning_Click); + // + // RewindButton + // + this.RewindButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.RewindButton.Image = global::BizHawk.MultiClient.Properties.Resources.Back; + this.RewindButton.ImageTransparentColor = System.Drawing.Color.Magenta; + this.RewindButton.Name = "RewindButton"; + this.RewindButton.Size = new System.Drawing.Size(23, 22); + this.RewindButton.Text = "<"; + this.RewindButton.ToolTipText = "Rewind"; + this.RewindButton.Click += new System.EventHandler(this.RewindButton_Click); + // + // PauseButton + // + this.PauseButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.PauseButton.Image = global::BizHawk.MultiClient.Properties.Resources.Pause; + this.PauseButton.ImageTransparentColor = System.Drawing.Color.Magenta; + this.PauseButton.Name = "PauseButton"; + this.PauseButton.Size = new System.Drawing.Size(23, 22); + this.PauseButton.Text = "Pause Button"; + this.PauseButton.ToolTipText = "Pause"; + this.PauseButton.Click += new System.EventHandler(this.PauseButton_Click); + // + // FrameAdvanceButton + // + this.FrameAdvanceButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.FrameAdvanceButton.Image = global::BizHawk.MultiClient.Properties.Resources.Forward; + this.FrameAdvanceButton.ImageTransparentColor = System.Drawing.Color.Magenta; + this.FrameAdvanceButton.Name = "FrameAdvanceButton"; + this.FrameAdvanceButton.Size = new System.Drawing.Size(23, 22); + this.FrameAdvanceButton.Text = ">"; + this.FrameAdvanceButton.ToolTipText = "Frame Advance"; + this.FrameAdvanceButton.Click += new System.EventHandler(this.FrameAdvanceButton_Click); + // + // FastForward + // + this.FastForward.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.FastForward.Image = global::BizHawk.MultiClient.Properties.Resources.FastForward; + this.FastForward.ImageTransparentColor = System.Drawing.Color.Magenta; + this.FastForward.Name = "FastForward"; + this.FastForward.Size = new System.Drawing.Size(23, 22); + this.FastForward.Text = ">>"; + this.FastForward.ToolTipText = "Fast Forward"; + this.FastForward.Click += new System.EventHandler(this.FastForward_Click); + // + // TurboFastForward + // + this.TurboFastForward.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.TurboFastForward.Enabled = false; + this.TurboFastForward.Image = global::BizHawk.MultiClient.Properties.Resources.TurboFastForward; + this.TurboFastForward.ImageTransparentColor = System.Drawing.Color.Magenta; + this.TurboFastForward.Name = "TurboFastForward"; + this.TurboFastForward.Size = new System.Drawing.Size(23, 22); + this.TurboFastForward.Text = ">>>"; + this.TurboFastForward.ToolTipText = "Turbo Fast Forward"; + this.TurboFastForward.Click += new System.EventHandler(this.TurboFastForward_Click); + // + // FastFowardToEnd + // + this.FastFowardToEnd.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.FastFowardToEnd.Image = global::BizHawk.MultiClient.Properties.Resources.ForwardMore; + this.FastFowardToEnd.ImageTransparentColor = System.Drawing.Color.Magenta; + this.FastFowardToEnd.Name = "FastFowardToEnd"; + this.FastFowardToEnd.Size = new System.Drawing.Size(23, 22); + this.FastFowardToEnd.Text = ">>"; + this.FastFowardToEnd.ToolTipText = "Fast Foward To End"; + this.FastFowardToEnd.Click += new System.EventHandler(this.FastForwardToEnd_Click); + // + // toolStripSeparator6 + // + this.toolStripSeparator6.Name = "toolStripSeparator6"; + this.toolStripSeparator6.Size = new System.Drawing.Size(6, 25); + // + // StopButton + // + this.StopButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.StopButton.Image = global::BizHawk.MultiClient.Properties.Resources.Stop; + this.StopButton.ImageTransparentColor = System.Drawing.Color.Magenta; + this.StopButton.Name = "StopButton"; + this.StopButton.Size = new System.Drawing.Size(23, 22); + this.StopButton.Text = "Stop Movie"; + this.StopButton.Click += new System.EventHandler(this.StopButton_Click); + // + // ReadOnlyCheckBox + // + this.ReadOnlyCheckBox.Appearance = System.Windows.Forms.Appearance.Button; + this.ReadOnlyCheckBox.AutoSize = true; + this.ReadOnlyCheckBox.BackColor = System.Drawing.SystemColors.Control; + this.ReadOnlyCheckBox.Image = global::BizHawk.MultiClient.Properties.Resources.ReadOnly; + this.ReadOnlyCheckBox.ImageAlign = System.Drawing.ContentAlignment.BottomRight; + this.ReadOnlyCheckBox.Location = new System.Drawing.Point(12, 27); + this.ReadOnlyCheckBox.Name = "ReadOnlyCheckBox"; + this.ReadOnlyCheckBox.Size = new System.Drawing.Size(22, 22); + this.ReadOnlyCheckBox.TabIndex = 3; + this.toolTip1.SetToolTip(this.ReadOnlyCheckBox, "Read-only"); + this.ReadOnlyCheckBox.UseVisualStyleBackColor = false; + this.ReadOnlyCheckBox.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.insertFrameToolStripMenuItem1, this.toolStripSeparator5, this.selectAllToolStripMenuItem}); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(140, 54); - // - // insertFrameToolStripMenuItem1 - // - this.insertFrameToolStripMenuItem1.Name = "insertFrameToolStripMenuItem1"; - this.insertFrameToolStripMenuItem1.Size = new System.Drawing.Size(139, 22); - this.insertFrameToolStripMenuItem1.Text = "Insert Frame"; - // - // toolStripSeparator5 - // - this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(136, 6); - // - // selectAllToolStripMenuItem - // - this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem"; - this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(139, 22); - this.selectAllToolStripMenuItem.Text = "Select All"; - // - // ControllerBox - // - this.ControllerBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ControllerBox.ContextMenuStrip = this.ControllersContext; - this.ControllerBox.Location = new System.Drawing.Point(300, 55); - this.ControllerBox.Name = "ControllerBox"; - this.ControllerBox.Size = new System.Drawing.Size(367, 197); - this.ControllerBox.TabIndex = 4; - this.ControllerBox.TabStop = false; - this.ControllerBox.Text = "Controllers"; - // - // TASView - // - this.TASView.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.TASView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(140, 54); + // + // insertFrameToolStripMenuItem1 + // + this.insertFrameToolStripMenuItem1.Name = "insertFrameToolStripMenuItem1"; + this.insertFrameToolStripMenuItem1.Size = new System.Drawing.Size(139, 22); + this.insertFrameToolStripMenuItem1.Text = "Insert Frame"; + // + // toolStripSeparator5 + // + this.toolStripSeparator5.Name = "toolStripSeparator5"; + this.toolStripSeparator5.Size = new System.Drawing.Size(136, 6); + // + // selectAllToolStripMenuItem + // + this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem"; + this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(139, 22); + this.selectAllToolStripMenuItem.Text = "Select All"; + // + // ControllerBox + // + this.ControllerBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.ControllerBox.ContextMenuStrip = this.ControllersContext; + this.ControllerBox.Location = new System.Drawing.Point(300, 55); + this.ControllerBox.Name = "ControllerBox"; + this.ControllerBox.Size = new System.Drawing.Size(367, 197); + this.ControllerBox.TabIndex = 4; + this.ControllerBox.TabStop = false; + this.ControllerBox.Text = "Controllers"; + // + // ControllersContext + // + this.ControllersContext.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.clearToolStripMenuItem1}); + this.ControllersContext.Name = "ControllersContext"; + this.ControllersContext.Size = new System.Drawing.Size(136, 26); + // + // clearToolStripMenuItem1 + // + this.clearToolStripMenuItem1.Name = "clearToolStripMenuItem1"; + this.clearToolStripMenuItem1.Size = new System.Drawing.Size(135, 22); + this.clearToolStripMenuItem1.Text = "&Clear Holds"; + this.clearToolStripMenuItem1.Click += new System.EventHandler(this.clearToolStripMenuItem1_Click); + // + // TASView + // + this.TASView.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.TASView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.Frame, this.Log}); - this.TASView.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.TASView.FullRowSelect = true; - this.TASView.GridLines = true; - this.TASView.ItemCount = 0; - this.TASView.Location = new System.Drawing.Point(12, 55); - this.TASView.Name = "TASView"; - this.TASView.selectedItem = -1; - this.TASView.Size = new System.Drawing.Size(282, 452); - this.TASView.TabIndex = 1; - this.TASView.UseCompatibleStateImageBehavior = false; - this.TASView.View = System.Windows.Forms.View.Details; - // - // Frame - // - this.Frame.Text = "Frame"; - // - // Log - // - this.Log.Text = "Log"; - this.Log.Width = 201; - // - // ControllersContext - // - this.ControllersContext.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.clearToolStripMenuItem1}); - this.ControllersContext.Name = "ControllersContext"; - this.ControllersContext.Size = new System.Drawing.Size(153, 48); - // - // clearToolStripMenuItem1 - // - this.clearToolStripMenuItem1.Name = "clearToolStripMenuItem1"; - this.clearToolStripMenuItem1.Size = new System.Drawing.Size(152, 22); - this.clearToolStripMenuItem1.Text = "&Clear Holds"; - this.clearToolStripMenuItem1.Click += new System.EventHandler(this.clearToolStripMenuItem1_Click); - // - // TAStudio - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(686, 519); - this.Controls.Add(this.toolStrip1); - this.Controls.Add(this.menuStrip1); - this.Controls.Add(this.ReadOnlyCheckBox); - this.Controls.Add(this.TASView); - this.Controls.Add(this.ControllerBox); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MainMenuStrip = this.menuStrip1; - this.MinimumSize = new System.Drawing.Size(437, 148); - this.Name = "TAStudio"; - this.Text = "TAStudio"; - this.Load += new System.EventHandler(this.TAStudio_Load); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.toolStrip1.ResumeLayout(false); - this.toolStrip1.PerformLayout(); - this.contextMenuStrip1.ResumeLayout(false); - this.ControllersContext.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); + this.TASView.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.TASView.FullRowSelect = true; + this.TASView.GridLines = true; + this.TASView.ItemCount = 0; + this.TASView.Location = new System.Drawing.Point(12, 55); + this.TASView.Name = "TASView"; + this.TASView.selectedItem = -1; + this.TASView.Size = new System.Drawing.Size(282, 452); + this.TASView.TabIndex = 1; + this.TASView.UseCompatibleStateImageBehavior = false; + this.TASView.View = System.Windows.Forms.View.Details; + // + // Frame + // + this.Frame.Text = "Frame"; + // + // Log + // + this.Log.Text = "Log"; + this.Log.Width = 201; + // + // TAStudio + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(686, 519); + this.Controls.Add(this.toolStrip1); + this.Controls.Add(this.menuStrip1); + this.Controls.Add(this.ReadOnlyCheckBox); + this.Controls.Add(this.TASView); + this.Controls.Add(this.ControllerBox); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MainMenuStrip = this.menuStrip1; + this.MinimumSize = new System.Drawing.Size(437, 148); + this.Name = "TAStudio"; + this.Text = "TAStudio"; + this.Load += new System.EventHandler(this.TAStudio_Load); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.contextMenuStrip1.ResumeLayout(false); + this.ControllersContext.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); } @@ -523,5 +549,7 @@ private System.Windows.Forms.ToolStripMenuItem clearVirtualPadsToolStripMenuItem; private System.Windows.Forms.ContextMenuStrip ControllersContext; private System.Windows.Forms.ToolStripMenuItem clearToolStripMenuItem1; + private System.Windows.Forms.ToolStripButton FastForward; + private System.Windows.Forms.ToolStripButton TurboFastForward; } } \ No newline at end of file diff --git a/BizHawk.MultiClient/tools/TAStudio.cs b/BizHawk.MultiClient/tools/TAStudio.cs index 3c6e24ba1c..8f1e5d042d 100644 --- a/BizHawk.MultiClient/tools/TAStudio.cs +++ b/BizHawk.MultiClient/tools/TAStudio.cs @@ -23,6 +23,7 @@ namespace BizHawk.MultiClient //PCE virtualpad //Dynamic virtualpad system based on platform //ensureVisible when recording + //Allow hotkeys when TAStudio has focus int defaultWidth; //For saving the default size of the dialog, so the user can restore if desired int defaultHeight; @@ -102,7 +103,7 @@ namespace BizHawk.MultiClient private void TASView_QueryItemBkColor(int index, int column, ref Color color) { - if (index == Global.Emulator.Frame) + if (index < Global.MainForm.RewindBufferCount()) color = Color.LightGreen; else if (Global.MovieSession.Movie.GetInputFrame(index)[1] == 'L') color = Color.Pink; @@ -120,7 +121,7 @@ namespace BizHawk.MultiClient private void DisplayList() { TASView.ItemCount = Global.MovieSession.Movie.Length(); - TASView.ensureVisible(Global.Emulator.Frame); + TASView.ensureVisible(Global.Emulator.Frame-1); } public void Restart() @@ -335,10 +336,6 @@ namespace BizHawk.MultiClient } } - private void toolStripButton1_Click(object sender, EventArgs e) - { - Global.MainForm.PlayMovieFromBeginning(); - } private void RewindToBeginning_Click(object sender, EventArgs e) { @@ -348,8 +345,15 @@ namespace BizHawk.MultiClient private void FastForwardToEnd_Click(object sender, EventArgs e) { - - } + Global.MainForm.StopOnEnd ^= true; + this.FastFowardToEnd.Checked ^= true; + Global.MainForm.FastForward = this.FastFowardToEnd.Checked; + if (true == this.FastFowardToEnd.Checked) + { + this.FastForward.Checked = false; + this.TurboFastForward.Checked = false; + } + } private void editToolStripMenuItem_DropDownOpened(object sender, EventArgs e) { @@ -376,22 +380,28 @@ namespace BizHawk.MultiClient private void newProjectToolStripMenuItem_Click(object sender, EventArgs e) { - - } + Global.MainForm.RecordMovie(); + } private void openProjectToolStripMenuItem_Click(object sender, EventArgs e) { - - } + Global.MainForm.PlayMovie(); + } private void saveProjectToolStripMenuItem_Click(object sender, EventArgs e) { - + Global.MovieSession.Movie.WriteMovie(); } private void saveProjectAsToolStripMenuItem_Click(object sender, EventArgs e) { + string fileName = Movie.SaveRecordingAs(); + if ("" != fileName) + { + Global.MovieSession.Movie.UpdateFileName(fileName); + Global.MovieSession.Movie.WriteMovie(); + } } private void ClearVirtualPadHolds() @@ -412,5 +422,27 @@ namespace BizHawk.MultiClient { ClearVirtualPadHolds(); } + + private void FastForward_Click(object sender, EventArgs e) + { + this.FastForward.Checked ^= true; + Global.MainForm.FastForward = this.FastForward.Checked; + if (true == this.FastForward.Checked) + { + this.TurboFastForward.Checked = false; + this.FastFowardToEnd.Checked = false; + } + } + + private void TurboFastForward_Click(object sender, EventArgs e) + { + Global.MainForm.TurboFastForward ^= true; + this.TurboFastForward.Checked ^= true; + if (true == this.TurboFastForward.Checked) + { + this.FastForward.Checked = false; + this.FastFowardToEnd.Checked = false; + } + } } } diff --git a/BizHawk.MultiClient/tools/VirtualPadNES.cs b/BizHawk.MultiClient/tools/VirtualPadNES.cs index bf7cf9055f..ef88677e46 100644 --- a/BizHawk.MultiClient/tools/VirtualPadNES.cs +++ b/BizHawk.MultiClient/tools/VirtualPadNES.cs @@ -171,16 +171,16 @@ namespace BizHawk.MultiClient public override void SetButtons(string buttons) { if (buttons.Length < 8) return; - if (buttons[0] == '.') PR.Checked = false; else PR.Checked = true; - if (buttons[1] == '.') PL.Checked = false; else PL.Checked = true; - if (buttons[2] == '.') PD.Checked = false; else PD.Checked = true; - if (buttons[3] == '.') PU.Checked = false; else PU.Checked = true; - - if (buttons[4] == '.') B2.Checked = false; else B2.Checked = true; - if (buttons[5] == '.') B1.Checked = false; else B1.Checked = true; - if (buttons[6] == '.') B4.Checked = false; else B4.Checked = true; - if (buttons[7] == '.') B3.Checked = false; else B3.Checked = true; - } + if (buttons[0] == '.') PU.Checked = false; else PU.Checked = true; + if (buttons[1] == '.') PD.Checked = false; else PD.Checked = true; + if (buttons[2] == '.') PL.Checked = false; else PL.Checked = true; + if (buttons[3] == '.') PR.Checked = false; else PR.Checked = true; + + if (buttons[4] == '.') B1.Checked = false; else B1.Checked = true; + if (buttons[5] == '.') B2.Checked = false; else B2.Checked = true; + if (buttons[6] == '.') B3.Checked = false; else B3.Checked = true; + if (buttons[7] == '.') B4.Checked = false; else B4.Checked = true; + } private void Buttons_CheckedChanged(object sender, EventArgs e) { diff --git a/BizHawk.MultiClient/tools/VirtualPadNESControl.cs b/BizHawk.MultiClient/tools/VirtualPadNESControl.cs index 5b51d075fa..4250ba0f41 100644 --- a/BizHawk.MultiClient/tools/VirtualPadNESControl.cs +++ b/BizHawk.MultiClient/tools/VirtualPadNESControl.cs @@ -88,7 +88,7 @@ namespace BizHawk.MultiClient public override string GetMnemonic() { StringBuilder input = new StringBuilder(""); - input.Append(B2.Checked ? "1" : "."); + input.Append(B2.Checked ? "r" : "."); input.Append("|"); return input.ToString(); } @@ -96,7 +96,14 @@ namespace BizHawk.MultiClient public override void SetButtons(string buttons) { if (buttons.Length < 1) return; - if (buttons[0] == '.' || buttons[0] == '0') B2.Checked = false; else B2.Checked = true; + if (buttons[0] == '.' || buttons[0] == 'l') + { + B2.Checked = false; + } + else + { + B2.Checked = true; + } } private void Buttons_CheckedChanged(object sender, EventArgs e)