545 lines
14 KiB
C#
545 lines
14 KiB
C#
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
|
|
namespace BizHawk.Client.EmuHawk
|
|
{
|
|
[SchemaAttributes("C64")]
|
|
public class C64Schema : IVirtualPadSchema
|
|
{
|
|
public IEnumerable<PadSchema> GetPadSchemas()
|
|
{
|
|
yield return StandardController(1);
|
|
yield return StandardController(2);
|
|
yield return Keyboard();
|
|
}
|
|
|
|
private static PadSchema StandardController(int controller)
|
|
{
|
|
return new PadSchema
|
|
{
|
|
DisplayName = "Player " + controller,
|
|
IsConsole = false,
|
|
DefaultSize = new Size(174, 74),
|
|
MaxSize = new Size(174, 74),
|
|
Buttons = new[]
|
|
{
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "P" + controller + " Up",
|
|
DisplayName = "",
|
|
Icon = Properties.Resources.BlueUp,
|
|
Location = new Point(23, 15),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "P" + controller + " Down",
|
|
DisplayName = "",
|
|
Icon = Properties.Resources.BlueDown,
|
|
Location = new Point(23, 36),
|
|
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(44, 24),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "P" + controller + " B",
|
|
DisplayName = "B",
|
|
Location = new Point(124, 24),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
private static PadSchema Keyboard()
|
|
{
|
|
return new PadSchema
|
|
{
|
|
DisplayName = "Keyboard",
|
|
IsConsole = false,
|
|
DefaultSize = new Size(500, 150),
|
|
Buttons = new[]
|
|
{
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Left Arrow",
|
|
DisplayName = "←",
|
|
Location = new Point(16, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key 1",
|
|
DisplayName = "1",
|
|
Location = new Point(46, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key 2",
|
|
DisplayName = "2",
|
|
Location = new Point(70, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key 3",
|
|
DisplayName = "3",
|
|
Location = new Point(94, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key 4",
|
|
DisplayName = "4",
|
|
Location = new Point(118, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key 5",
|
|
DisplayName = "5",
|
|
Location = new Point(142, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key 6",
|
|
DisplayName = "6",
|
|
Location = new Point(166, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key 7",
|
|
DisplayName = "7",
|
|
Location = new Point(190, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key 8",
|
|
DisplayName = "8",
|
|
Location = new Point(214, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key 9",
|
|
DisplayName = "9",
|
|
Location = new Point(238, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key 0",
|
|
DisplayName = "0",
|
|
Location = new Point(262, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Plus",
|
|
DisplayName = "+",
|
|
Location = new Point(286, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Minus",
|
|
DisplayName = "-",
|
|
Location = new Point(310, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Pound",
|
|
DisplayName = "£",
|
|
Location = new Point(330, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Clear/Home",
|
|
DisplayName = "C/H",
|
|
Location = new Point(354, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Insert/Delete",
|
|
DisplayName = "I/D",
|
|
Location = new Point(392, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key F1",
|
|
DisplayName = "F 1",
|
|
Location = new Point(450, 18),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key F3",
|
|
DisplayName = "F 3",
|
|
Location = new Point(450, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key F5",
|
|
DisplayName = "F 5",
|
|
Location = new Point(450, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key F7",
|
|
DisplayName = "F 7",
|
|
Location = new Point(450, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Control",
|
|
DisplayName = "CTRL",
|
|
Location = new Point(16, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Q",
|
|
DisplayName = "Q",
|
|
Location = new Point(62, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key W",
|
|
DisplayName = "W",
|
|
Location = new Point(88, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key E",
|
|
DisplayName = "E",
|
|
Location = new Point(116, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key R",
|
|
DisplayName = "R",
|
|
Location = new Point(140, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key T",
|
|
DisplayName = "T",
|
|
Location = new Point(166, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Y",
|
|
DisplayName = "Y",
|
|
Location = new Point(190, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key U",
|
|
DisplayName = "U",
|
|
Location = new Point(214, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key I",
|
|
DisplayName = "I",
|
|
Location = new Point(240, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key O",
|
|
DisplayName = "O",
|
|
Location = new Point(260, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key P",
|
|
DisplayName = "P",
|
|
Location = new Point(286, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key At",
|
|
DisplayName = "@",
|
|
Location = new Point(310, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Asterisk",
|
|
DisplayName = "*",
|
|
Location = new Point(338, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Up Arrow",
|
|
DisplayName = "↑",
|
|
Location = new Point(360, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Restore",
|
|
DisplayName = "RST",
|
|
Location = new Point(390, 42),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Run/Stop",
|
|
DisplayName = "R/S",
|
|
Location = new Point(12, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Lck",
|
|
DisplayName = "Lck",
|
|
Location = new Point(50, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key A",
|
|
DisplayName = "A",
|
|
Location = new Point(86, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key S",
|
|
DisplayName = "S",
|
|
Location = new Point(110, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key D",
|
|
DisplayName = "D",
|
|
Location = new Point(134, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key F",
|
|
DisplayName = "F",
|
|
Location = new Point(160, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key G",
|
|
DisplayName = "G",
|
|
Location = new Point(184, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key H",
|
|
DisplayName = "H",
|
|
Location = new Point(210, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key J",
|
|
DisplayName = "J",
|
|
Location = new Point(236, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key K",
|
|
DisplayName = "K",
|
|
Location = new Point(258, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key L",
|
|
DisplayName = "L",
|
|
Location = new Point(282, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Colon",
|
|
DisplayName = ":",
|
|
Location = new Point(306, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Semicolon",
|
|
DisplayName = ";",
|
|
Location = new Point(326, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Equal",
|
|
DisplayName = "=",
|
|
Location = new Point(346, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Return",
|
|
DisplayName = "Return",
|
|
Location = new Point(370, 66),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Commodore",
|
|
DisplayName = "C64",
|
|
Location = new Point(8, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Left Shift",
|
|
DisplayName = "Shift",
|
|
Location = new Point(44, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Z",
|
|
DisplayName = "Z",
|
|
Location = new Point(82, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key X",
|
|
DisplayName = "X",
|
|
Location = new Point(106, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key C",
|
|
DisplayName = "C",
|
|
Location = new Point(130, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key V",
|
|
DisplayName = "V",
|
|
Location = new Point(154, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key B",
|
|
DisplayName = "B",
|
|
Location = new Point(178, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key N",
|
|
DisplayName = "N",
|
|
Location = new Point(202, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key M",
|
|
DisplayName = "M",
|
|
Location = new Point(226, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Comma",
|
|
DisplayName = ",",
|
|
Location = new Point(252, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Period",
|
|
DisplayName = ".",
|
|
Location = new Point(272, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Slash",
|
|
DisplayName = "/",
|
|
Location = new Point(292, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Right Shift",
|
|
DisplayName = "Shift",
|
|
Location = new Point(314, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Cursor Up/Down",
|
|
DisplayName = "Csr U",
|
|
Location = new Point(352, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Cursor Left/Right",
|
|
DisplayName = "Csr L",
|
|
Location = new Point(396, 90),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
},
|
|
new PadSchema.ButtonScema
|
|
{
|
|
Name = "Key Space",
|
|
DisplayName = " Space ",
|
|
Location = new Point(120, 114),
|
|
Type = PadSchema.PadInputType.Boolean
|
|
}
|
|
}
|
|
};
|
|
}
|
|
}
|
|
}
|