Input Config: Added "Select Preset" button with presets for keyboard, Xbox/PS4 controllers + added icon on key mapping tabs that are in use (Keyboard or gamepad icon)

This commit is contained in:
Souryo 2016-09-01 18:56:35 -04:00
parent 1ddb980be9
commit 901fa5923a
9 changed files with 510 additions and 118 deletions

View file

@ -27,89 +27,9 @@ namespace Mesen.GUI.Config
{
}
public KeyMappings(int controllerIndex, int keySetIndex)
public KeyMappings Clone()
{
if(controllerIndex == 0) {
if(keySetIndex == 0) {
A = InteropEmu.GetKeyCode("A");
B = InteropEmu.GetKeyCode("S");
Select = InteropEmu.GetKeyCode("Q");
Start = InteropEmu.GetKeyCode("W");
Up = InteropEmu.GetKeyCode("Up Arrow");
Down = InteropEmu.GetKeyCode("Down Arrow");
Left = InteropEmu.GetKeyCode("Left Arrow");
Right = InteropEmu.GetKeyCode("Right Arrow");
TurboA = InteropEmu.GetKeyCode("Z");
TurboB = InteropEmu.GetKeyCode("X");
} else if(keySetIndex == 1) {
//XInput Default (Xbox controllers)
A = InteropEmu.GetKeyCode("Pad1 A");
B = InteropEmu.GetKeyCode("Pad1 X");
Select = InteropEmu.GetKeyCode("Pad1 Back");
Start = InteropEmu.GetKeyCode("Pad1 Start");
Up = InteropEmu.GetKeyCode("Pad1 Up");
Down = InteropEmu.GetKeyCode("Pad1 Down");
Left = InteropEmu.GetKeyCode("Pad1 Left");
Right = InteropEmu.GetKeyCode("Pad1 Right");
TurboA = InteropEmu.GetKeyCode("Pad1 B");
TurboB = InteropEmu.GetKeyCode("Pad1 Y");
} else if(keySetIndex == 2) {
//DirectInput Default (Used PS4 controller as a default)
A = InteropEmu.GetKeyCode("Joy1 But2");
B = InteropEmu.GetKeyCode("Joy1 But1");
Select = InteropEmu.GetKeyCode("Joy1 But9");
Start = InteropEmu.GetKeyCode("Joy1 But10");
Up = InteropEmu.GetKeyCode("Joy1 DPad Up");
Down = InteropEmu.GetKeyCode("Joy1 DPad Down");
Left = InteropEmu.GetKeyCode("Joy1 DPad Left");
Right = InteropEmu.GetKeyCode("Joy1 DPad Right");
TurboA = InteropEmu.GetKeyCode("Joy1 But3");
TurboB = InteropEmu.GetKeyCode("Joy1 But4");
}
} else if(controllerIndex == 1) {
if(keySetIndex == 0) {
A = InteropEmu.GetKeyCode("G");
B = InteropEmu.GetKeyCode("H");
Select = InteropEmu.GetKeyCode("T");
Start = InteropEmu.GetKeyCode("Y");
Up = InteropEmu.GetKeyCode("I");
Down = InteropEmu.GetKeyCode("K");
Left = InteropEmu.GetKeyCode("J");
Right = InteropEmu.GetKeyCode("L");
TurboA = InteropEmu.GetKeyCode("B");
TurboB = InteropEmu.GetKeyCode("N");
} else if(keySetIndex == 1) {
//XInput Default (Xbox controllers)
A = InteropEmu.GetKeyCode("Pad2 A");
B = InteropEmu.GetKeyCode("Pad2 X");
Select = InteropEmu.GetKeyCode("Pad2 Back");
Start = InteropEmu.GetKeyCode("Pad2 Start");
Up = InteropEmu.GetKeyCode("Pad2 Up");
Down = InteropEmu.GetKeyCode("Pad2 Down");
Left = InteropEmu.GetKeyCode("Pad2 Left");
Right = InteropEmu.GetKeyCode("Pad2 Right");
TurboA = InteropEmu.GetKeyCode("Pad2 B");
TurboB = InteropEmu.GetKeyCode("Pad2 Y");
} else if(keySetIndex == 2) {
//DirectInput Default (Used PS4 controller as a default)
A = InteropEmu.GetKeyCode("Joy2 But2");
B = InteropEmu.GetKeyCode("Joy2 But1");
Select = InteropEmu.GetKeyCode("Joy2 But9");
Start = InteropEmu.GetKeyCode("Joy2 But10");
Up = InteropEmu.GetKeyCode("Joy2 DPad Up");
Down = InteropEmu.GetKeyCode("Joy2 DPad Down");
Left = InteropEmu.GetKeyCode("Joy2 DPad Left");
Right = InteropEmu.GetKeyCode("Joy2 DPad Right");
TurboA = InteropEmu.GetKeyCode("Joy2 But3");
TurboB = InteropEmu.GetKeyCode("Joy2 But4");
}
}
return (KeyMappings)this.MemberwiseClone();
}
public InteropEmu.KeyMapping ToInteropMapping()
@ -174,14 +94,15 @@ namespace Mesen.GUI.Config
public void InitializeDefaults()
{
KeyPresets presets = new KeyPresets();
while(Controllers.Count < 4) {
var controllerInfo = new ControllerInfo();
controllerInfo.ControllerType = Controllers.Count <= 1 ? InteropEmu.ControllerType.StandardController : InteropEmu.ControllerType.None;
if(Controllers.Count <= 1) {
controllerInfo.Keys.Add(new KeyMappings(Controllers.Count, 0));
controllerInfo.Keys.Add(new KeyMappings(Controllers.Count, 1));
controllerInfo.Keys.Add(new KeyMappings(Controllers.Count, 2));
controllerInfo.Keys.Add(Controllers.Count == 0 ? presets.ArrowLayout : presets.NestopiaLayout);
controllerInfo.Keys.Add(Controllers.Count == 0 ? presets.XboxLayout1 : presets.XboxLayout2);
controllerInfo.Keys.Add(Controllers.Count == 0 ? presets.Ps4Layout1 : presets.Ps4Layout2);
}
Controllers.Add(controllerInfo);
}

View file

@ -0,0 +1,87 @@
namespace Mesen.GUI.Config
{
public class KeyPresets
{
KeyMappings _wasdLayout;
KeyMappings _arrowLayout;
KeyMappings _nestopiaLayout;
KeyMappings _fceuxLayout;
KeyMappings[] _xboxLayouts = new KeyMappings[2];
KeyMappings[] _ps4Layouts = new KeyMappings[2];
KeyMappings[] _snes30Layouts = new KeyMappings[2];
public KeyMappings WasdLayout { get { return _wasdLayout.Clone(); } }
public KeyMappings ArrowLayout { get { return _arrowLayout.Clone(); } }
public KeyMappings NestopiaLayout { get { return _nestopiaLayout.Clone(); } }
public KeyMappings FceuxLayout { get { return _fceuxLayout.Clone(); } }
public KeyMappings XboxLayout1 { get { return _xboxLayouts[0].Clone(); } }
public KeyMappings XboxLayout2 { get { return _xboxLayouts[1].Clone(); } }
public KeyMappings Ps4Layout1 { get { return _ps4Layouts[0].Clone(); } }
public KeyMappings Ps4Layout2 { get { return _ps4Layouts[1].Clone(); } }
public KeyMappings Snes30Layout1 { get { return _snes30Layouts[0].Clone(); } }
public KeyMappings Snes30Layout2 { get { return _snes30Layouts[1].Clone(); } }
public KeyPresets()
{
_wasdLayout = new KeyMappings() {
A = InteropEmu.GetKeyCode("K"), B = InteropEmu.GetKeyCode("J"),
TurboA = InteropEmu.GetKeyCode(","), TurboB = InteropEmu.GetKeyCode("M"),
Select = InteropEmu.GetKeyCode("U"), Start = InteropEmu.GetKeyCode("I"),
Up = InteropEmu.GetKeyCode("W"), Down = InteropEmu.GetKeyCode("S"),
Left = InteropEmu.GetKeyCode("A"), Right = InteropEmu.GetKeyCode("D")
};
_arrowLayout= new KeyMappings() {
A = InteropEmu.GetKeyCode("S"), B = InteropEmu.GetKeyCode("A"),
TurboA = InteropEmu.GetKeyCode("Z"), TurboB = InteropEmu.GetKeyCode("X"),
Select = InteropEmu.GetKeyCode("Q"), Start = InteropEmu.GetKeyCode("W"),
Up = InteropEmu.GetKeyCode("Up Arrow"), Down = InteropEmu.GetKeyCode("Down Arrow"),
Left = InteropEmu.GetKeyCode("Left Arrow"), Right = InteropEmu.GetKeyCode("Right Arrow")
};
_nestopiaLayout = new KeyMappings() {
A = InteropEmu.GetKeyCode("."), B = InteropEmu.GetKeyCode(","),
TurboA = InteropEmu.GetKeyCode("L"), TurboB = InteropEmu.GetKeyCode("K"),
Select = InteropEmu.GetKeyCode("Shift"), Start = InteropEmu.GetKeyCode("Enter"),
Up = InteropEmu.GetKeyCode("Up Arrow"), Down = InteropEmu.GetKeyCode("Down Arrow"),
Left = InteropEmu.GetKeyCode("Left Arrow"), Right = InteropEmu.GetKeyCode("Right Arrow")
};
_fceuxLayout = new KeyMappings() {
A = InteropEmu.GetKeyCode("F"), B = InteropEmu.GetKeyCode("D"),
TurboA = 0, TurboB = 0,
Select = InteropEmu.GetKeyCode("S"), Start = InteropEmu.GetKeyCode("Enter"),
Up = InteropEmu.GetKeyCode("Up Arrow"), Down = InteropEmu.GetKeyCode("Down Arrow"),
Left = InteropEmu.GetKeyCode("Left Arrow"), Right = InteropEmu.GetKeyCode("Right Arrow")
};
for(int i = 0; i < 2; i++) {
string prefix = "Pad" + (i+1).ToString() + " ";
_xboxLayouts[i] = new KeyMappings() {
A = InteropEmu.GetKeyCode(prefix + "A"), B = InteropEmu.GetKeyCode(prefix + "X"),
TurboA = InteropEmu.GetKeyCode(prefix + "B"), TurboB = InteropEmu.GetKeyCode(prefix + "Y"),
Select = InteropEmu.GetKeyCode(prefix + "Back"), Start = InteropEmu.GetKeyCode(prefix + "Start"),
Up = InteropEmu.GetKeyCode(prefix + "Up"), Down = InteropEmu.GetKeyCode(prefix + "Down"),
Left = InteropEmu.GetKeyCode(prefix + "Left"), Right = InteropEmu.GetKeyCode(prefix + "Right")
};
prefix = "Joy" + (i+1).ToString() + " ";
_ps4Layouts[i] = new KeyMappings() {
A = InteropEmu.GetKeyCode(prefix + "But2"), B = InteropEmu.GetKeyCode(prefix + "But1"),
TurboA = InteropEmu.GetKeyCode(prefix + "But3"), TurboB = InteropEmu.GetKeyCode(prefix + "But4"),
Select = InteropEmu.GetKeyCode(prefix + "But9"), Start = InteropEmu.GetKeyCode(prefix + "But10"),
Up = InteropEmu.GetKeyCode(prefix + "DPad Up"), Down = InteropEmu.GetKeyCode(prefix + "DPad Down"),
Left = InteropEmu.GetKeyCode(prefix + "DPad Left"), Right = InteropEmu.GetKeyCode(prefix + "DPad Right")
};
_snes30Layouts[i] = new KeyMappings() {
A = InteropEmu.GetKeyCode(prefix + "But2"), B = InteropEmu.GetKeyCode(prefix + "But5"),
TurboA = InteropEmu.GetKeyCode(prefix + "But1"), TurboB = InteropEmu.GetKeyCode(prefix + "But4"),
Select = InteropEmu.GetKeyCode(prefix + "But11"), Start = InteropEmu.GetKeyCode(prefix + "But12"),
Up = InteropEmu.GetKeyCode(prefix + "Y+"), Down = InteropEmu.GetKeyCode(prefix + "Y-"),
Left = InteropEmu.GetKeyCode(prefix + "X-"), Right = InteropEmu.GetKeyCode(prefix + "X+")
};
}
}
}
}

View file

@ -177,7 +177,23 @@
<Control ID="tpgSet2">Mappage #2</Control>
<Control ID="tpgSet3">Mappage #3</Control>
<Control ID="tpgSet4">Mappage #4</Control>
<Control ID="btnReset">Réinitialiser</Control>
<Control ID="btnSelectPreset">Choisir un préréglage...</Control>
<Control ID="mnuKeyboard">Clavier</Control>
<Control ID="mnuWasdLayout">Déplacement avec WSAD</Control>
<Control ID="mnuArrowLayout">Déplacement avec les flèches</Control>
<Control ID="mnuFceuxLayout">Disposition par défaut de FCEUX</Control>
<Control ID="mnuNestopiaLayout">Disposition par défaut de Nestopia</Control>
<Control ID="mnuXboxController">Manette Xbox</Control>
<Control ID="mnuXboxLayout1">Manette #1</Control>
<Control ID="mnuXboxLayout2">Manette #2</Control>
<Control ID="mnuPs4Controller">Manette PS4</Control>
<Control ID="mnuPs4Layout1">Manette #1</Control>
<Control ID="mnuPs4Layout2">Manette #2</Control>
<Control ID="mnuSnes30Controller">Manette SNES30</Control>
<Control ID="mnuSnes30Layout1">Manette #1</Control>
<Control ID="mnuSnes30Layout2">Manette #2</Control>
<Control ID="btnClear">Effacer le mappage</Control>
<Control ID="btnOK">OK</Control>
<Control ID="btnCancel">Annuler</Control>

View file

@ -177,7 +177,23 @@
<Control ID="tpgSet2">キーセット 2</Control>
<Control ID="tpgSet3">キーセット 3</Control>
<Control ID="tpgSet4">キーセット 4</Control>
<Control ID="btnReset">リセット</Control>
<Control ID="btnSelectPreset">プリセットを選ぶ..</Control>
<Control ID="mnuKeyboard">キーボード</Control>
<Control ID="mnuWasdLayout">WSADレイアウト</Control>
<Control ID="mnuArrowLayout">アローキーレイアウト</Control>
<Control ID="mnuFceuxLayout">FCEUXのデフォルトレイアウト</Control>
<Control ID="mnuNestopiaLayout">Nestopiaのデフォルトレイアウト</Control>
<Control ID="mnuXboxController">Xboxコントローラ</Control>
<Control ID="mnuXboxLayout1">コントローラ1</Control>
<Control ID="mnuXboxLayout2">コントローラ2</Control>
<Control ID="mnuPs4Controller">PS4コントローラ</Control>
<Control ID="mnuPs4Layout1">コントローラ1</Control>
<Control ID="mnuPs4Layout2">コントローラ2</Control>
<Control ID="mnuSnes30Controller">SFC30コントローラ</Control>
<Control ID="mnuSnes30Layout1">コントローラ1</Control>
<Control ID="mnuSnes30Layout2">コントローラ2</Control>
<Control ID="btnClear">キーセットを削除</Control>
<Control ID="btnOK">OK</Control>
<Control ID="btnCancel">キャンセル</Control>

View file

@ -13,9 +13,21 @@ namespace Mesen.GUI.Forms.Config
{
public partial class ctrlStandardController : UserControl
{
public event EventHandler OnChange;
public enum MappedKeyType
{
None,
Keyboard,
Controller
}
public ctrlStandardController()
{
InitializeComponent();
if(LicenseManager.UsageMode != LicenseUsageMode.Designtime) {
Initialize(new KeyMappings());
}
}
private void InitButton(Button btn, UInt32 scanCode)
@ -36,6 +48,22 @@ namespace Mesen.GUI.Forms.Config
InitButton(btnRight, mappings.Right);
InitButton(btnTurboA, mappings.TurboA);
InitButton(btnTurboB, mappings.TurboB);
this.OnChange?.Invoke(this, null);
}
public MappedKeyType GetKeyType()
{
KeyMappings mappings = GetKeyMappings();
MappedKeyType keyType = MappedKeyType.None;
if(mappings.A > 0xFFFF || mappings.B > 0xFFFF || mappings.Down > 0xFFFF || mappings.Left > 0xFFFF || mappings.Right > 0xFFFF || mappings.Select > 0xFFFF ||
mappings.Start > 0xFFFF || mappings.TurboA > 0xFFFF || mappings.TurboB > 0xFFFF || mappings.TurboSelect > 0xFFFF || mappings.TurboStart > 0xFFFF || mappings.Up > 0xFFFF) {
keyType = MappedKeyType.Controller;
} else if(mappings.A > 0 || mappings.B > 0 || mappings.Down > 0 || mappings.Left > 0 || mappings.Right > 0 || mappings.Select > 0 ||
mappings.Start > 0 || mappings.TurboA > 0 || mappings.TurboB > 0 || mappings.TurboSelect > 0 || mappings.TurboStart > 0 || mappings.Up > 0) {
keyType = MappedKeyType.Keyboard;
}
return keyType;
}
public void ClearKeys()
@ -50,6 +78,8 @@ namespace Mesen.GUI.Forms.Config
InitButton(btnRight, 0);
InitButton(btnTurboA, 0);
InitButton(btnTurboB, 0);
this.OnChange?.Invoke(this, null);
}
private void btnMapping_Click(object sender, EventArgs e)
@ -58,6 +88,8 @@ namespace Mesen.GUI.Forms.Config
frm.ShowDialog();
((Button)sender).Text = frm.BindedKeyName;
((Button)sender).Tag = frm.BindedKeyCode;
this.OnChange?.Invoke(this, null);
}
public KeyMappings GetKeyMappings()

View file

@ -27,6 +27,8 @@
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmControllerConfig));
this.ctrlStandardController0 = new Mesen.GUI.Forms.Config.ctrlStandardController();
this.tabMain = new System.Windows.Forms.TabControl();
this.tpgSet1 = new System.Windows.Forms.TabPage();
@ -36,15 +38,32 @@
this.ctrlStandardController2 = new Mesen.GUI.Forms.Config.ctrlStandardController();
this.tpgSet4 = new System.Windows.Forms.TabPage();
this.ctrlStandardController3 = new Mesen.GUI.Forms.Config.ctrlStandardController();
this.imageList = new System.Windows.Forms.ImageList(this.components);
this.btnClear = new System.Windows.Forms.Button();
this.btnReset = new System.Windows.Forms.Button();
this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.btnSelectPreset = new System.Windows.Forms.Button();
this.trkTurboSpeed = new System.Windows.Forms.TrackBar();
this.lblTurboSpeed = new System.Windows.Forms.Label();
this.panel1 = new System.Windows.Forms.Panel();
this.lblTurboFast = new System.Windows.Forms.Label();
this.lblSlow = new System.Windows.Forms.Label();
this.mnuStripPreset = new System.Windows.Forms.ContextMenuStrip(this.components);
this.mnuKeyboard = new System.Windows.Forms.ToolStripMenuItem();
this.mnuWasdLayout = new System.Windows.Forms.ToolStripMenuItem();
this.mnuArrowLayout = new System.Windows.Forms.ToolStripMenuItem();
this.mnuFceuxLayout = new System.Windows.Forms.ToolStripMenuItem();
this.mnuNestopiaLayout = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
this.mnuXboxController = new System.Windows.Forms.ToolStripMenuItem();
this.mnuXboxLayout1 = new System.Windows.Forms.ToolStripMenuItem();
this.mnuXboxLayout2 = new System.Windows.Forms.ToolStripMenuItem();
this.mnuPs4Controller = new System.Windows.Forms.ToolStripMenuItem();
this.mnuPs4Layout1 = new System.Windows.Forms.ToolStripMenuItem();
this.mnuPs4Layout2 = new System.Windows.Forms.ToolStripMenuItem();
this.mnuSnes30Controller = new System.Windows.Forms.ToolStripMenuItem();
this.mnuSnes30Layout1 = new System.Windows.Forms.ToolStripMenuItem();
this.mnuSnes30Layout2 = new System.Windows.Forms.ToolStripMenuItem();
this.baseConfigPanel.SuspendLayout();
this.tabMain.SuspendLayout();
this.tpgSet1.SuspendLayout();
@ -55,6 +74,7 @@
this.tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.trkTurboSpeed)).BeginInit();
this.panel1.SuspendLayout();
this.mnuStripPreset.SuspendLayout();
this.SuspendLayout();
//
// baseConfigPanel
@ -70,8 +90,9 @@
this.ctrlStandardController0.Location = new System.Drawing.Point(0, 0);
this.ctrlStandardController0.Margin = new System.Windows.Forms.Padding(0);
this.ctrlStandardController0.Name = "ctrlStandardController0";
this.ctrlStandardController0.Size = new System.Drawing.Size(585, 209);
this.ctrlStandardController0.Size = new System.Drawing.Size(585, 208);
this.ctrlStandardController0.TabIndex = 0;
this.ctrlStandardController0.OnChange += new System.EventHandler(this.ctrlStandardController_OnChange);
//
// tabMain
//
@ -81,6 +102,7 @@
this.tabMain.Controls.Add(this.tpgSet3);
this.tabMain.Controls.Add(this.tpgSet4);
this.tabMain.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabMain.ImageList = this.imageList;
this.tabMain.Location = new System.Drawing.Point(3, 3);
this.tabMain.Name = "tabMain";
this.tabMain.SelectedIndex = 0;
@ -90,9 +112,9 @@
// tpgSet1
//
this.tpgSet1.Controls.Add(this.ctrlStandardController0);
this.tpgSet1.Location = new System.Drawing.Point(4, 22);
this.tpgSet1.Location = new System.Drawing.Point(4, 23);
this.tpgSet1.Name = "tpgSet1";
this.tpgSet1.Size = new System.Drawing.Size(585, 209);
this.tpgSet1.Size = new System.Drawing.Size(585, 208);
this.tpgSet1.TabIndex = 0;
this.tpgSet1.Text = "Key Set #1";
this.tpgSet1.UseVisualStyleBackColor = true;
@ -100,9 +122,9 @@
// tpgSet2
//
this.tpgSet2.Controls.Add(this.ctrlStandardController1);
this.tpgSet2.Location = new System.Drawing.Point(4, 22);
this.tpgSet2.Location = new System.Drawing.Point(4, 23);
this.tpgSet2.Name = "tpgSet2";
this.tpgSet2.Size = new System.Drawing.Size(585, 209);
this.tpgSet2.Size = new System.Drawing.Size(585, 208);
this.tpgSet2.TabIndex = 1;
this.tpgSet2.Text = "Key Set #2";
this.tpgSet2.UseVisualStyleBackColor = true;
@ -113,15 +135,16 @@
this.ctrlStandardController1.Location = new System.Drawing.Point(0, 0);
this.ctrlStandardController1.Margin = new System.Windows.Forms.Padding(0);
this.ctrlStandardController1.Name = "ctrlStandardController1";
this.ctrlStandardController1.Size = new System.Drawing.Size(585, 209);
this.ctrlStandardController1.Size = new System.Drawing.Size(585, 208);
this.ctrlStandardController1.TabIndex = 1;
this.ctrlStandardController1.OnChange += new System.EventHandler(this.ctrlStandardController_OnChange);
//
// tpgSet3
//
this.tpgSet3.Controls.Add(this.ctrlStandardController2);
this.tpgSet3.Location = new System.Drawing.Point(4, 22);
this.tpgSet3.Location = new System.Drawing.Point(4, 23);
this.tpgSet3.Name = "tpgSet3";
this.tpgSet3.Size = new System.Drawing.Size(585, 209);
this.tpgSet3.Size = new System.Drawing.Size(585, 208);
this.tpgSet3.TabIndex = 2;
this.tpgSet3.Text = "Key Set #3";
this.tpgSet3.UseVisualStyleBackColor = true;
@ -132,15 +155,16 @@
this.ctrlStandardController2.Location = new System.Drawing.Point(0, 0);
this.ctrlStandardController2.Margin = new System.Windows.Forms.Padding(0);
this.ctrlStandardController2.Name = "ctrlStandardController2";
this.ctrlStandardController2.Size = new System.Drawing.Size(585, 209);
this.ctrlStandardController2.Size = new System.Drawing.Size(585, 208);
this.ctrlStandardController2.TabIndex = 1;
this.ctrlStandardController2.OnChange += new System.EventHandler(this.ctrlStandardController_OnChange);
//
// tpgSet4
//
this.tpgSet4.Controls.Add(this.ctrlStandardController3);
this.tpgSet4.Location = new System.Drawing.Point(4, 22);
this.tpgSet4.Location = new System.Drawing.Point(4, 23);
this.tpgSet4.Name = "tpgSet4";
this.tpgSet4.Size = new System.Drawing.Size(585, 209);
this.tpgSet4.Size = new System.Drawing.Size(585, 208);
this.tpgSet4.TabIndex = 3;
this.tpgSet4.Text = "Key Set #4";
this.tpgSet4.UseVisualStyleBackColor = true;
@ -151,35 +175,30 @@
this.ctrlStandardController3.Location = new System.Drawing.Point(0, 0);
this.ctrlStandardController3.Margin = new System.Windows.Forms.Padding(0);
this.ctrlStandardController3.Name = "ctrlStandardController3";
this.ctrlStandardController3.Size = new System.Drawing.Size(585, 209);
this.ctrlStandardController3.Size = new System.Drawing.Size(585, 208);
this.ctrlStandardController3.TabIndex = 1;
this.ctrlStandardController3.OnChange += new System.EventHandler(this.ctrlStandardController_OnChange);
//
// imageList
//
this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream")));
this.imageList.TransparentColor = System.Drawing.Color.Transparent;
this.imageList.Images.SetKeyName(0, "Keyboard");
this.imageList.Images.SetKeyName(1, "Controller");
//
// btnClear
//
this.btnClear.AutoSize = true;
this.btnClear.Location = new System.Drawing.Point(118, 3);
this.btnClear.Location = new System.Drawing.Point(3, 3);
this.btnClear.Name = "btnClear";
this.btnClear.Size = new System.Drawing.Size(109, 23);
this.btnClear.Size = new System.Drawing.Size(105, 23);
this.btnClear.TabIndex = 3;
this.btnClear.Text = "Clear Key Bindings";
this.btnClear.UseVisualStyleBackColor = true;
this.btnClear.Click += new System.EventHandler(this.btnClear_Click);
//
// btnReset
//
this.btnReset.AutoSize = true;
this.btnReset.Location = new System.Drawing.Point(3, 3);
this.btnReset.Name = "btnReset";
this.btnReset.Size = new System.Drawing.Size(109, 23);
this.btnReset.TabIndex = 4;
this.btnReset.Text = "Reset to Default";
this.btnReset.UseVisualStyleBackColor = true;
this.btnReset.Visible = false;
this.btnReset.Click += new System.EventHandler(this.btnReset_Click);
//
// flowLayoutPanel2
//
this.flowLayoutPanel2.Controls.Add(this.btnReset);
this.flowLayoutPanel2.Controls.Add(this.btnClear);
this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Left;
this.flowLayoutPanel2.Location = new System.Drawing.Point(0, 0);
@ -194,6 +213,7 @@
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tableLayoutPanel1.Controls.Add(this.btnSelectPreset, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.trkTurboSpeed, 2, 1);
this.tableLayoutPanel1.Controls.Add(this.lblTurboSpeed, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.panel1, 2, 2);
@ -209,6 +229,20 @@
this.tableLayoutPanel1.Size = new System.Drawing.Size(599, 288);
this.tableLayoutPanel1.TabIndex = 23;
//
// btnSelectPreset
//
this.btnSelectPreset.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.btnSelectPreset.AutoSize = true;
this.btnSelectPreset.Image = ((System.Drawing.Image)(resources.GetObject("btnSelectPreset.Image")));
this.btnSelectPreset.Location = new System.Drawing.Point(3, 245);
this.btnSelectPreset.Name = "btnSelectPreset";
this.btnSelectPreset.Size = new System.Drawing.Size(105, 23);
this.btnSelectPreset.TabIndex = 4;
this.btnSelectPreset.Text = "Select Preset...";
this.btnSelectPreset.TextImageRelation = System.Windows.Forms.TextImageRelation.TextBeforeImage;
this.btnSelectPreset.UseVisualStyleBackColor = true;
this.btnSelectPreset.Click += new System.EventHandler(this.btnSelectPreset_Click);
//
// trkTurboSpeed
//
this.trkTurboSpeed.LargeChange = 2;
@ -257,6 +291,130 @@
this.lblSlow.TabIndex = 0;
this.lblSlow.Text = "Slow";
//
// mnuStripPreset
//
this.mnuStripPreset.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.mnuKeyboard,
this.toolStripMenuItem1,
this.mnuXboxController,
this.mnuPs4Controller,
this.mnuSnes30Controller});
this.mnuStripPreset.Name = "mnuStripPreset";
this.mnuStripPreset.Size = new System.Drawing.Size(170, 120);
//
// mnuKeyboard
//
this.mnuKeyboard.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.mnuWasdLayout,
this.mnuArrowLayout,
this.mnuFceuxLayout,
this.mnuNestopiaLayout});
this.mnuKeyboard.Name = "mnuKeyboard";
this.mnuKeyboard.Size = new System.Drawing.Size(169, 22);
this.mnuKeyboard.Text = "Keyboard";
//
// mnuWasdLayout
//
this.mnuWasdLayout.Name = "mnuWasdLayout";
this.mnuWasdLayout.Size = new System.Drawing.Size(172, 22);
this.mnuWasdLayout.Text = "WASD Layout";
this.mnuWasdLayout.Click += new System.EventHandler(this.mnuWasdLayout_Click);
//
// mnuArrowLayout
//
this.mnuArrowLayout.Name = "mnuArrowLayout";
this.mnuArrowLayout.Size = new System.Drawing.Size(172, 22);
this.mnuArrowLayout.Text = "Arrow Keys Layout";
this.mnuArrowLayout.Click += new System.EventHandler(this.mnuArrowLayout_Click);
//
// mnuFceuxLayout
//
this.mnuFceuxLayout.Name = "mnuFceuxLayout";
this.mnuFceuxLayout.Size = new System.Drawing.Size(172, 22);
this.mnuFceuxLayout.Text = "FCEUX Default";
this.mnuFceuxLayout.Click += new System.EventHandler(this.mnuFceuxLayout_Click);
//
// mnuNestopiaLayout
//
this.mnuNestopiaLayout.Name = "mnuNestopiaLayout";
this.mnuNestopiaLayout.Size = new System.Drawing.Size(172, 22);
this.mnuNestopiaLayout.Text = "Nestopia Default";
this.mnuNestopiaLayout.Click += new System.EventHandler(this.mnuNestopiaLayout_Click);
//
// toolStripMenuItem1
//
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
this.toolStripMenuItem1.Size = new System.Drawing.Size(166, 6);
//
// mnuXboxController
//
this.mnuXboxController.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.mnuXboxLayout1,
this.mnuXboxLayout2});
this.mnuXboxController.Name = "mnuXboxController";
this.mnuXboxController.Size = new System.Drawing.Size(169, 22);
this.mnuXboxController.Text = "Xbox Controller";
//
// mnuXboxLayout1
//
this.mnuXboxLayout1.Name = "mnuXboxLayout1";
this.mnuXboxLayout1.Size = new System.Drawing.Size(143, 22);
this.mnuXboxLayout1.Text = "Controller #1";
this.mnuXboxLayout1.Click += new System.EventHandler(this.mnuXboxLayout1_Click);
//
// mnuXboxLayout2
//
this.mnuXboxLayout2.Name = "mnuXboxLayout2";
this.mnuXboxLayout2.Size = new System.Drawing.Size(143, 22);
this.mnuXboxLayout2.Text = "Controller #2";
this.mnuXboxLayout2.Click += new System.EventHandler(this.mnuXboxLayout2_Click);
//
// mnuPs4Controller
//
this.mnuPs4Controller.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.mnuPs4Layout1,
this.mnuPs4Layout2});
this.mnuPs4Controller.Name = "mnuPs4Controller";
this.mnuPs4Controller.Size = new System.Drawing.Size(169, 22);
this.mnuPs4Controller.Text = "PS4 Controller";
//
// mnuPs4Layout1
//
this.mnuPs4Layout1.Name = "mnuPs4Layout1";
this.mnuPs4Layout1.Size = new System.Drawing.Size(152, 22);
this.mnuPs4Layout1.Text = "Controller #1";
this.mnuPs4Layout1.Click += new System.EventHandler(this.mnuPs4Layout1_Click);
//
// mnuPs4Layout2
//
this.mnuPs4Layout2.Name = "mnuPs4Layout2";
this.mnuPs4Layout2.Size = new System.Drawing.Size(152, 22);
this.mnuPs4Layout2.Text = "Controller #2";
this.mnuPs4Layout2.Click += new System.EventHandler(this.mnuPs4Layout2_Click);
//
// mnuSnes30Controller
//
this.mnuSnes30Controller.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.mnuSnes30Layout1,
this.mnuSnes30Layout2});
this.mnuSnes30Controller.Name = "mnuSnes30Controller";
this.mnuSnes30Controller.Size = new System.Drawing.Size(169, 22);
this.mnuSnes30Controller.Text = "SNES30 Controller";
//
// mnuSnes30Layout1
//
this.mnuSnes30Layout1.Name = "mnuSnes30Layout1";
this.mnuSnes30Layout1.Size = new System.Drawing.Size(152, 22);
this.mnuSnes30Layout1.Text = "Controller #1";
this.mnuSnes30Layout1.Click += new System.EventHandler(this.mnuSnes30Layout1_Click);
//
// mnuSnes30Layout2
//
this.mnuSnes30Layout2.Name = "mnuSnes30Layout2";
this.mnuSnes30Layout2.Size = new System.Drawing.Size(152, 22);
this.mnuSnes30Layout2.Text = "Controller #2";
this.mnuSnes30Layout2.Click += new System.EventHandler(this.mnuSnes30Layout2_Click);
//
// frmControllerConfig
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -281,6 +439,7 @@
((System.ComponentModel.ISupportInitialize)(this.trkTurboSpeed)).EndInit();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.mnuStripPreset.ResumeLayout(false);
this.ResumeLayout(false);
}
@ -289,7 +448,6 @@
private ctrlStandardController ctrlStandardController0;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2;
private System.Windows.Forms.Button btnReset;
private System.Windows.Forms.Button btnClear;
private System.Windows.Forms.TabControl tabMain;
private System.Windows.Forms.TabPage tpgSet1;
@ -305,5 +463,23 @@
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Label lblTurboFast;
private System.Windows.Forms.Label lblSlow;
private System.Windows.Forms.Button btnSelectPreset;
private System.Windows.Forms.ContextMenuStrip mnuStripPreset;
private System.Windows.Forms.ToolStripMenuItem mnuKeyboard;
private System.Windows.Forms.ToolStripMenuItem mnuWasdLayout;
private System.Windows.Forms.ToolStripMenuItem mnuArrowLayout;
private System.Windows.Forms.ToolStripMenuItem mnuFceuxLayout;
private System.Windows.Forms.ToolStripMenuItem mnuNestopiaLayout;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem mnuXboxController;
private System.Windows.Forms.ToolStripMenuItem mnuXboxLayout1;
private System.Windows.Forms.ToolStripMenuItem mnuXboxLayout2;
private System.Windows.Forms.ToolStripMenuItem mnuSnes30Controller;
private System.Windows.Forms.ToolStripMenuItem mnuPs4Controller;
private System.Windows.Forms.ToolStripMenuItem mnuPs4Layout1;
private System.Windows.Forms.ToolStripMenuItem mnuPs4Layout2;
private System.Windows.Forms.ToolStripMenuItem mnuSnes30Layout1;
private System.Windows.Forms.ToolStripMenuItem mnuSnes30Layout2;
private System.Windows.Forms.ImageList imageList;
}
}

View file

@ -13,6 +13,8 @@ namespace Mesen.GUI.Forms.Config
{
public partial class frmControllerConfig : BaseConfigForm
{
private KeyPresets _presets = new KeyPresets();
public frmControllerConfig(ControllerInfo controllerInfo)
{
InitializeComponent();
@ -24,6 +26,31 @@ namespace Mesen.GUI.Forms.Config
ctrlStandardController1.Initialize(controllerInfo.Keys[1]);
ctrlStandardController2.Initialize(controllerInfo.Keys[2]);
ctrlStandardController3.Initialize(controllerInfo.Keys[3]);
ResourceHelper.ApplyResources(this, mnuStripPreset);
}
private ctrlStandardController GetControllerControl()
{
if(tabMain.SelectedTab == tpgSet1) {
return ctrlStandardController0;
} else if(tabMain.SelectedTab == tpgSet2) {
return ctrlStandardController1;
} else if(tabMain.SelectedTab == tpgSet3) {
return ctrlStandardController2;
} else if(tabMain.SelectedTab == tpgSet4) {
return ctrlStandardController3;
}
return ctrlStandardController0;
}
private void UpdateTabIcons()
{
tpgSet1.ImageIndex = (int)ctrlStandardController0.GetKeyType() - 1;
tpgSet2.ImageIndex = (int)ctrlStandardController1.GetKeyType() - 1;
tpgSet3.ImageIndex = (int)ctrlStandardController2.GetKeyType() - 1;
tpgSet4.ImageIndex = (int)ctrlStandardController3.GetKeyType() - 1;
}
protected override void UpdateConfig()
@ -50,9 +77,64 @@ namespace Mesen.GUI.Forms.Config
}
}
private void btnReset_Click(object sender, EventArgs e)
private void btnSelectPreset_Click(object sender, EventArgs e)
{
mnuStripPreset.Show(btnSelectPreset.PointToScreen(new Point(0, btnSelectPreset.Height-1)));
}
private void mnuWasdLayout_Click(object sender, EventArgs e)
{
GetControllerControl().Initialize(_presets.WasdLayout);
}
private void mnuArrowLayout_Click(object sender, EventArgs e)
{
GetControllerControl().Initialize(_presets.ArrowLayout);
}
private void mnuFceuxLayout_Click(object sender, EventArgs e)
{
GetControllerControl().Initialize(_presets.FceuxLayout);
}
private void mnuNestopiaLayout_Click(object sender, EventArgs e)
{
GetControllerControl().Initialize(_presets.NestopiaLayout);
}
private void mnuXboxLayout1_Click(object sender, EventArgs e)
{
GetControllerControl().Initialize(_presets.XboxLayout1);
}
private void mnuXboxLayout2_Click(object sender, EventArgs e)
{
GetControllerControl().Initialize(_presets.XboxLayout1);
}
private void mnuPs4Layout1_Click(object sender, EventArgs e)
{
GetControllerControl().Initialize(_presets.Ps4Layout1);
}
private void mnuPs4Layout2_Click(object sender, EventArgs e)
{
GetControllerControl().Initialize(_presets.Ps4Layout2);
}
private void mnuSnes30Layout1_Click(object sender, EventArgs e)
{
GetControllerControl().Initialize(_presets.Snes30Layout1);
}
private void mnuSnes30Layout2_Click(object sender, EventArgs e)
{
GetControllerControl().Initialize(_presets.Snes30Layout2);
}
private void ctrlStandardController_OnChange(object sender, EventArgs e)
{
UpdateTabIcons();
}
}
}

View file

@ -120,4 +120,65 @@
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="imageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>242, 17</value>
</metadata>
<data name="imageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAK
CQAAAk1TRnQBSQFMAgEBAgEAATABAAEwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEAAQcO6wEHAbwO6wG8
IAAB6wHvAe0BkgbtAZIB7QGSAe0B7wLrBPEC8Ai8AesgAAHsAfcB9AGSAfME8gHzAZIB8wGSAfMB9wHs
AesOvAHrIAAB7AEHCPcB7wP3AQcB7AHrCP8C9ALzAfIB9AHrIAAB7AHxAe8B9AHvAfQB7wH0Ae8B9AHv
A/MB7wHsAesB9AF0ASsBdAnyAfQB6yAAAe0BvAzvAbwB7QHrAf8DKwLyAQcC7AEHA/IB9AHrIAABkgEH
Af8BBwH/AQcB/wEHAf8BBwH/AQcC/wEHAZIB6wH/AXQBKwF0AvMB7AHzAbwB7APzAfQB6yAAAZIB8QG8
AfEBvAHxAbwB8QG8AfEBvAHxArwB8QGSAesB/wXzAewB8wG8AewD8wH0AesgAAHwDvcB8AHrAf8F8wHs
AisBbgPzAfQB6yIAAf8B7AH/CwAB6wH/BPMBTAFSAlMBUgFMAvMB9AHrIwABBwG8Af8KAAHrBP8BmQFM
BCsBUgGTAf8B9AHrIwAB/wG8COwBBwH/AQABvATrAysBUgIrAVMBKwLrAbwsAAH/AQcB8AYAAUwDUgFM
ASsBUwFMMAAB9AGSBgABGgErAlIBTAErAVIBmTAAAf8B7AYAAf8CTAJSASsBTAH/OQAB/wGZAkwBmQH/
JAABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD/0kAAccB/wYAAeMB/wYAAeABAQYA
Af8B8QH4AQcEAAH/AfkB+AEHBAAB/wH5AfgBBwQAAv8B/AEPBAAL
</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="btnSelectPreset.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAcAAAAGCAYAAAAPDoR2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuNWWFMmUA
AAArSURBVBhXY/j//z9OjFUQhkEARGLHUBUYEmBxJCNQJFAkwRwkif///zMAAD5AXaOzoq98AAAAAElF
TkSuQmCC
</value>
</data>
<metadata name="mnuStripPreset.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>107, 17</value>
</metadata>
</root>

View file

@ -209,6 +209,7 @@
<ItemGroup>
<Compile Include="Config\DebugInfo.cs" />
<Compile Include="Config\EmulationInfo.cs" />
<Compile Include="Config\KeyPresets.cs" />
<Compile Include="Config\PreferenceInfo.cs" />
<Compile Include="Config\VideoInfo.cs" />
<Compile Include="Config\CheatInfo.cs" />