diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj index 259a5d6f7e..61c793714a 100644 --- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj +++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj @@ -899,6 +899,11 @@ VirtualPadTargetScreen.cs + + + + + @@ -906,6 +911,7 @@ + UserControl diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/GBASchema.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/GBASchema.cs new file mode 100644 index 0000000000..8437b56b61 --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/GBASchema.cs @@ -0,0 +1,105 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; + +using BizHawk.Client.Common; + +namespace BizHawk.Client.EmuHawk +{ + [Description("GBA")] + class GBASchema : IVirtualPadSchema + { + public IEnumerable GetPads() + { + yield return new VirtualPad(StandardController(1)) + { + Location = new Point(15, 15) + }; + } + public static PadSchema StandardController(int controller) + { + return new PadSchema + { + IsConsole = false, + DefaultSize = new Size(194, 74), + Buttons = new[] + { + new PadSchema.ButtonScema + { + Name = "P" + controller + " Up", + DisplayName = "", + Icon = Properties.Resources.BlueUp, + Location = new Point(14, 2), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Down", + DisplayName = "", + Icon = Properties.Resources.BlueDown, + Location = new Point(14, 46), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Left", + DisplayName = "", + Icon = Properties.Resources.Back, + Location = new Point(2, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Right", + DisplayName = "", + Icon = Properties.Resources.Forward, + Location = new Point(24, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " B", + DisplayName = "B", + Location = new Point(122, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " A", + DisplayName = "A", + Location = new Point(146, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Select", + DisplayName = "s", + Location = new Point(52, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Start", + DisplayName = "S", + Location = new Point(74, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " L", + DisplayName = "L", + Location = new Point(2, 2), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " R", + DisplayName = "R", + Location = new Point(166, 2), + Type = PadSchema.PadInputType.Boolean + } + } + }; + } + } +} diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/GBSchema.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/GBSchema.cs new file mode 100644 index 0000000000..a4fda02361 --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/GBSchema.cs @@ -0,0 +1,91 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; + +using BizHawk.Client.Common; + +namespace BizHawk.Client.EmuHawk +{ + [Description("GB")] + class GBSchema : IVirtualPadSchema + { + public IEnumerable GetPads() + { + yield return new VirtualPad(StandardController(1)) + { + Location = new Point(15, 15) + }; + } + public static PadSchema StandardController(int controller) + { + return new PadSchema + { + IsConsole = false, + DefaultSize = new Size(174, 74), + Buttons = new[] + { + new PadSchema.ButtonScema + { + Name = "P" + controller + " Up", + DisplayName = "", + Icon = Properties.Resources.BlueUp, + Location = new Point(14, 2), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Down", + DisplayName = "", + Icon = Properties.Resources.BlueDown, + Location = new Point(14, 46), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Left", + DisplayName = "", + Icon = Properties.Resources.Back, + Location = new Point(2, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Right", + DisplayName = "", + Icon = Properties.Resources.Forward, + Location = new Point(24, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " B", + DisplayName = "B", + Location = new Point(122, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " A", + DisplayName = "A", + Location = new Point(146, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Select", + DisplayName = "s", + Location = new Point(52, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Start", + DisplayName = "S", + Location = new Point(74, 24), + Type = PadSchema.PadInputType.Boolean + } + } + }; + } + } +} diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/Gen3ButtonSchema.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/Gen3ButtonSchema.cs new file mode 100644 index 0000000000..115a03d47c --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/Gen3ButtonSchema.cs @@ -0,0 +1,97 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; + +using BizHawk.Client.Common; + +namespace BizHawk.Client.EmuHawk +{ + [Description("GEN")] + public class Gen3ButtonSchema : IVirtualPadSchema + { + public IEnumerable GetPads() + { + yield return new VirtualPad(StandardController(1)) + { + Location = new Point(15, 15) + }; + + yield return new VirtualPad(StandardController(2)) + { + Location = new Point(200, 15) + }; + } + + public static PadSchema StandardController(int controller) + { + return new PadSchema + { + IsConsole = false, + DefaultSize = new Size(174, 74), + Buttons = new[] + { + new PadSchema.ButtonScema + { + Name = "P" + controller + " Up", + DisplayName = "", + Icon = Properties.Resources.BlueUp, + Location = new Point(14, 2), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Down", + DisplayName = "", + Icon = Properties.Resources.BlueDown, + Location = new Point(14, 46), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Left", + DisplayName = "", + Icon = Properties.Resources.Back, + Location = new Point(2, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Right", + DisplayName = "", + Icon = Properties.Resources.Forward, + Location = new Point(24, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " B", + DisplayName = "B", + Location = new Point(122, 36), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " A", + DisplayName = "A", + Location = new Point(98, 36), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " C", + DisplayName = "C", + Location = new Point(146, 36), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Start", + DisplayName = "S", + Location = new Point(122, 2), + Type = PadSchema.PadInputType.Boolean + } + } + }; + } + } +} diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/Gen6ButtonSchema.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/Gen6ButtonSchema.cs new file mode 100644 index 0000000000..a81e5822ff --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/Gen6ButtonSchema.cs @@ -0,0 +1,98 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; + +using BizHawk.Client.Common; + +namespace BizHawk.Client.EmuHawk +{ + [Description("GEN")] + public class Gen6ButtonSchema : IVirtualPadSchema + { + public IEnumerable GetPads() + { + yield return new VirtualPad(StandardController(1)) + { + Location = new Point(15, 15) + }; + + yield return new VirtualPad(StandardController(2)) + { + Location = new Point(200, 15) + }; + } + + public static PadSchema StandardController(int controller) + { + //TODO: Need X,Y,Z, M buttons + return new PadSchema + { + IsConsole = false, + DefaultSize = new Size(174, 74), + Buttons = new[] + { + new PadSchema.ButtonScema + { + Name = "P" + controller + " Up", + DisplayName = "", + Icon = Properties.Resources.BlueUp, + Location = new Point(14, 2), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Down", + DisplayName = "", + Icon = Properties.Resources.BlueDown, + Location = new Point(14, 46), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Left", + DisplayName = "", + Icon = Properties.Resources.Back, + Location = new Point(2, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Right", + DisplayName = "", + Icon = Properties.Resources.Forward, + Location = new Point(24, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " B", + DisplayName = "B", + Location = new Point(122, 36), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " A", + DisplayName = "A", + Location = new Point(98, 36), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " C", + DisplayName = "C", + Location = new Point(146, 36), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Start", + DisplayName = "S", + Location = new Point(122, 2), + Type = PadSchema.PadInputType.Boolean + } + } + }; + } + } +} diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/SatSchema.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/SatSchema.cs new file mode 100644 index 0000000000..bff68cc987 --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/SatSchema.cs @@ -0,0 +1,118 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; + +using BizHawk.Client.Common; + +namespace BizHawk.Client.EmuHawk +{ + [Description("SAT")] + public class SaturnSchema : IVirtualPadSchema + { + public IEnumerable GetPads() + { + yield return new VirtualPad(StandardController(1)) + { + Location = new Point(15, 15) + }; + + yield return new VirtualPad(StandardController(2)) + { + Location = new Point(200, 15) + }; + } + public static PadSchema StandardController(int controller) + { + return new PadSchema + { + IsConsole = false, + DefaultSize = new Size(174, 74), + Buttons = new[] + { + //TODO: C Button and Z Button, Need All Locations + new PadSchema.ButtonScema + { + Name = "P" + controller + " Up", + DisplayName = "", + Icon = Properties.Resources.BlueUp, + Location = new Point(14, 2), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Down", + DisplayName = "", + Icon = Properties.Resources.BlueDown, + Location = new Point(14, 46), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Left", + DisplayName = "", + Icon = Properties.Resources.Back, + Location = new Point(2, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Right", + DisplayName = "", + Icon = Properties.Resources.Forward, + Location = new Point(24, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " B", + DisplayName = "B", + Location = new Point(134, 48), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " A", + DisplayName = "A", + Location = new Point(146, 22), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Start", + DisplayName = "S", + Location = new Point(78, 42), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " X", + DisplayName = "X", + Location = new Point(122, 12), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Y", + DisplayName = "Y", + Location = new Point(110, 34), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " L", + DisplayName = "L", + Location = new Point(42, 0), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " R", + DisplayName = "R", + Location = new Point(94, 0), + Type = PadSchema.PadInputType.Boolean + } + } + }; + } + } +} diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/SnesSchema.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/SnesSchema.cs index 7137687765..df86a67942 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/SnesSchema.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/SnesSchema.cs @@ -116,7 +116,7 @@ namespace BizHawk.Client.EmuHawk DisplayName = "R", Location = new Point(94, 0), Type = PadSchema.PadInputType.Boolean - }, + } } }; } diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/WonderSwanSchema.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/WonderSwanSchema.cs new file mode 100644 index 0000000000..1cf462f121 --- /dev/null +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/schema/WonderSwanSchema.cs @@ -0,0 +1,124 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; + +using BizHawk.Client.Common; + +namespace BizHawk.Client.EmuHawk +{ + [Description("WSWAN")] + public class WonderSwanSchema : IVirtualPadSchema + { + public IEnumerable GetPads() + { + yield return new VirtualPad(StandardController(1)) + { + Location = new Point(15, 15) + }; + } + public static PadSchema StandardController(int controller) + { + return new PadSchema + { + IsConsole = false, + DefaultSize = new Size(174, 74), + Buttons = new[] + { + //TODO: Need All Locations and DisplayNames + new PadSchema.ButtonScema + { + Name = "P" + controller + " Up X", + DisplayName = "", + Icon = Properties.Resources.BlueUp, + Location = new Point(14, 2), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Down X", + DisplayName = "", + Icon = Properties.Resources.BlueDown, + Location = new Point(14, 46), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Left X", + DisplayName = "", + Icon = Properties.Resources.Back, + Location = new Point(2, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Right X", + DisplayName = "", + Icon = Properties.Resources.Forward, + Location = new Point(24, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Up Y", + DisplayName = "", + Icon = Properties.Resources.BlueUp, + Location = new Point(14, 2), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Down Y", + DisplayName = "", + Icon = Properties.Resources.BlueDown, + Location = new Point(14, 46), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Left Y", + DisplayName = "", + Icon = Properties.Resources.Back, + Location = new Point(2, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Right Y", + DisplayName = "", + Icon = Properties.Resources.Forward, + Location = new Point(24, 24), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " B", + DisplayName = "B", + Location = new Point(134, 48), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " A", + DisplayName = "A", + Location = new Point(146, 22), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema + { + Name = "P" + controller + " Start", + DisplayName = "S", + Location = new Point(78, 42), + Type = PadSchema.PadInputType.Boolean + }, + new PadSchema.ButtonScema //Power + { + Name = "P" + controller + " P", + DisplayName = "P", + Location = new Point(110, 34), + Type = PadSchema.PadInputType.Boolean + } + } + }; + } + } +}