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
+ }
+ }
+ };
+ }
+ }
+}