diff --git a/BizHawk.MultiClient/tools/TAStudio.cs b/BizHawk.MultiClient/tools/TAStudio.cs index f61e54c1d9..7ed2a376d2 100644 --- a/BizHawk.MultiClient/tools/TAStudio.cs +++ b/BizHawk.MultiClient/tools/TAStudio.cs @@ -107,8 +107,10 @@ namespace BizHawk.MultiClient case "NES": VirtualPadNES nespad1 = new VirtualPadNES(); nespad1.Location = new Point(8, 19); + nespad1.Controller = "P1"; VirtualPadNES nespad2 = new VirtualPadNES(); nespad2.Location = new Point(188, 19); + nespad2.Controller = "P2"; Pads.Add(nespad1); Pads.Add(nespad2); ControllerBox.Controls.Add(Pads[0]); @@ -142,6 +144,9 @@ namespace BizHawk.MultiClient Global.Config.TASWndy = this.Location.Y; Global.Config.TASWidth = this.Right - this.Left; Global.Config.TASHeight = this.Bottom - this.Top; + + for (int x = 0; x < Pads.Count; x++) + Pads[x].Clear(); } public void Restart() diff --git a/BizHawk.MultiClient/tools/VirtualPad.cs b/BizHawk.MultiClient/tools/VirtualPad.cs index a588032ae7..0be2397f2d 100644 --- a/BizHawk.MultiClient/tools/VirtualPad.cs +++ b/BizHawk.MultiClient/tools/VirtualPad.cs @@ -26,6 +26,7 @@ namespace BizHawk.MultiClient public CheckBox B6; public CheckBox B7; public CheckBox B8; + public string Controller; public VirtualPad() { @@ -34,11 +35,30 @@ namespace BizHawk.MultiClient SetStyle(ControlStyles.DoubleBuffer, true); this.BorderStyle = BorderStyle.Fixed3D; this.Size = new Size(174, 74); + Controller = "P1"; } public virtual string GetMnemonic() { return "......|"; } + + public virtual void Clear() + { + PU.Checked = false; + PD.Checked = false; + PL.Checked = false; + PR.Checked = false; + + B1.Checked = false; + B2.Checked = false; + B3.Checked = false; + B4.Checked = false; + B5.Checked = false; + B6.Checked = false; + B7.Checked = false; + B8.Checked = false; + } + } } diff --git a/BizHawk.MultiClient/tools/VirtualPadNES.cs b/BizHawk.MultiClient/tools/VirtualPadNES.cs index 5be487b2d4..470fa4f68c 100644 --- a/BizHawk.MultiClient/tools/VirtualPadNES.cs +++ b/BizHawk.MultiClient/tools/VirtualPadNES.cs @@ -172,22 +172,48 @@ namespace BizHawk.MultiClient { if (Global.Emulator.SystemId != "NES") return; if (sender == PU) - Global.ActiveController.SetSticky("Up", PU.Checked); + Global.StickyXORAdapter.SetSticky(Controller + " Up", PU.Checked); else if (sender == PD) - Global.ActiveController.SetSticky("Down", PD.Checked); + Global.StickyXORAdapter.SetSticky(Controller + " Down", PD.Checked); else if (sender == PL) - Global.ActiveController.SetSticky("Left", PL.Checked); + Global.StickyXORAdapter.SetSticky(Controller + " Left", PL.Checked); else if (sender == PR) - Global.ActiveController.SetSticky("Right", PR.Checked); + Global.StickyXORAdapter.SetSticky(Controller + " Right", PR.Checked); else if (sender == B1) - Global.ActiveController.SetSticky("Select", B1.Checked); + Global.StickyXORAdapter.SetSticky(Controller + " Select", B1.Checked); else if (sender == B2) - Global.ActiveController.SetSticky("Start", B2.Checked); + Global.StickyXORAdapter.SetSticky(Controller + " Start", B2.Checked); else if (sender == B3) - Global.ActiveController.SetSticky("B", B3.Checked); + Global.StickyXORAdapter.SetSticky(Controller + " B", B3.Checked); else if (sender == B4) - Global.ActiveController.SetSticky("A", B4.Checked); + Global.StickyXORAdapter.SetSticky(Controller + " A", B4.Checked); + } + public override void Clear() + { + if (Global.Emulator.SystemId != "NES") return; + PU.Checked = false; + PD.Checked = false; + PL.Checked = false; + PR.Checked = false; + + B1.Checked = false; + B2.Checked = false; + B3.Checked = false; + B4.Checked = false; + B5.Checked = false; + B6.Checked = false; + B7.Checked = false; + B8.Checked = false; + + Global.StickyXORAdapter.SetSticky(Controller + " Up", false); + Global.StickyXORAdapter.SetSticky(Controller + " Down", false); + Global.StickyXORAdapter.SetSticky(Controller + " Left", false); + Global.StickyXORAdapter.SetSticky(Controller + " Right", false); + Global.StickyXORAdapter.SetSticky(Controller + " Select", false); + Global.StickyXORAdapter.SetSticky(Controller + " Start", false); + Global.StickyXORAdapter.SetSticky(Controller + " B", false); + Global.StickyXORAdapter.SetSticky(Controller + " A", false); } } } diff --git a/BizHawk.MultiClient/tools/VirtualPadSMS.cs b/BizHawk.MultiClient/tools/VirtualPadSMS.cs index 6201d16a46..ade247804c 100644 --- a/BizHawk.MultiClient/tools/VirtualPadSMS.cs +++ b/BizHawk.MultiClient/tools/VirtualPadSMS.cs @@ -148,17 +148,44 @@ namespace BizHawk.MultiClient { if (Global.Emulator.SystemId != "SMS") return; if (sender == PU) - Global.ActiveController.SetSticky("Up", PU.Checked); + Global.StickyXORAdapter.SetSticky(Controller + "Up", PU.Checked); else if (sender == PD) - Global.ActiveController.SetSticky("Down", PD.Checked); + Global.StickyXORAdapter.SetSticky(Controller + "Down", PD.Checked); else if (sender == PL) - Global.ActiveController.SetSticky("Left", PL.Checked); + Global.StickyXORAdapter.SetSticky(Controller + "Left", PL.Checked); else if (sender == PR) - Global.ActiveController.SetSticky("Right", PR.Checked); + Global.StickyXORAdapter.SetSticky(Controller + "Right", PR.Checked); else if (sender == B1) - Global.ActiveController.SetSticky("1", B3.Checked); + Global.StickyXORAdapter.SetSticky(Controller + "B1", B3.Checked); else if (sender == B2) - Global.ActiveController.SetSticky("2", B4.Checked); + Global.StickyXORAdapter.SetSticky(Controller + "B2", B4.Checked); + } + + public override void Clear() + { + if (Global.Emulator.SystemId != "SMS") return; //TODO: GG & SG can share pad? + PU.Checked = false; + PD.Checked = false; + PL.Checked = false; + PR.Checked = false; + + B1.Checked = false; + B2.Checked = false; + B3.Checked = false; + B4.Checked = false; + B5.Checked = false; + B6.Checked = false; + B7.Checked = false; + B8.Checked = false; + + Global.StickyXORAdapter.SetSticky(Controller + " Up", false); + Global.StickyXORAdapter.SetSticky(Controller + " Down", false); + Global.StickyXORAdapter.SetSticky(Controller + " Left", false); + Global.StickyXORAdapter.SetSticky(Controller + " Right", false); + Global.StickyXORAdapter.SetSticky(Controller + " Select", false); + Global.StickyXORAdapter.SetSticky(Controller + " Start", false); + Global.StickyXORAdapter.SetSticky(Controller + " B1", false); + Global.StickyXORAdapter.SetSticky(Controller + " B2", false); } } }