From 51ac954f8cb0b68bbb308137e05a438e7eae127d Mon Sep 17 00:00:00 2001 From: Sour Date: Mon, 25 Dec 2017 23:26:35 -0500 Subject: [PATCH] Input: Added UI to configure bandai microphone bindings --- Core/BandaiFcg.h | 4 +- Core/BandaiKaraoke.h | 1 + Core/BandaiMicrophone.h | 14 +- Core/EmulationSettings.h | 27 +- Core/Types.h | 2 + GUI.NET/Config/InputInfo.cs | 4 + GUI.NET/Config/KeyPresets.cs | 11 + GUI.NET/Dependencies/resources.ca.xml | 9 + GUI.NET/Dependencies/resources.en.xml | 2 + GUI.NET/Dependencies/resources.es.xml | 9 + GUI.NET/Dependencies/resources.fr.xml | 19 +- GUI.NET/Dependencies/resources.ja.xml | 11 +- GUI.NET/Dependencies/resources.pt.xml | 9 + GUI.NET/Dependencies/resources.ru.xml | 13 +- GUI.NET/Dependencies/resources.uk.xml | 11 +- .../ctrlBandaiMicrophone.Designer.cs | 165 +++++++ .../Controllers/ctrlBandaiMicrophone.cs | 42 ++ .../Controllers/ctrlBandaiMicrophone.resx | 120 +++++ .../frmBandaiMicrophone.Designer.cs | 413 ++++++++++++++++++ .../Config/Controllers/frmBandaiMicrophone.cs | 43 ++ .../Controllers/frmBandaiMicrophone.resx | 175 ++++++++ .../Forms/Config/frmInputConfig.Designer.cs | 58 ++- GUI.NET/Forms/Config/frmInputConfig.cs | 84 ++-- GUI.NET/Forms/frmMain.Help.cs | 1 + GUI.NET/GUI.NET.csproj | 19 + GUI.NET/InteropEmu.cs | 5 + 26 files changed, 1222 insertions(+), 49 deletions(-) create mode 100644 GUI.NET/Forms/Config/Controllers/ctrlBandaiMicrophone.Designer.cs create mode 100644 GUI.NET/Forms/Config/Controllers/ctrlBandaiMicrophone.cs create mode 100644 GUI.NET/Forms/Config/Controllers/ctrlBandaiMicrophone.resx create mode 100644 GUI.NET/Forms/Config/Controllers/frmBandaiMicrophone.Designer.cs create mode 100644 GUI.NET/Forms/Config/Controllers/frmBandaiMicrophone.cs create mode 100644 GUI.NET/Forms/Config/Controllers/frmBandaiMicrophone.resx diff --git a/Core/BandaiFcg.h b/Core/BandaiFcg.h index e238c484..efbf5140 100644 --- a/Core/BandaiFcg.h +++ b/Core/BandaiFcg.h @@ -21,7 +21,7 @@ protected: uint16_t RegisterStartAddress() override { return 0x6000; } uint16_t RegisterEndAddress() override { return 0xFFFF; } bool AllowRegisterRead() override { return true; } - ConsoleFeatures GetAvailableFeatures() override { return _mapperID == 157 ? ConsoleFeatures::BarcodeReader : ConsoleFeatures::None; } + ConsoleFeatures GetAvailableFeatures() override { return _mapperID == 157 ? (ConsoleFeatures)((int)ConsoleFeatures::BarcodeReader | (int)ConsoleFeatures::DatachBarcodeReader) : ConsoleFeatures::None; } void InitMapper() override { @@ -77,7 +77,7 @@ protected: uint8_t ReadRegister(uint16_t addr) override { //Pretend EEPROM data is always 0 - return _barcodeReader->GetOutput() | MemoryManager::GetOpenBus(0xE7); + return (_barcodeReader ? _barcodeReader->GetOutput() : 0) | MemoryManager::GetOpenBus(0xE7); } void WriteRegister(uint16_t addr, uint8_t value) override diff --git a/Core/BandaiKaraoke.h b/Core/BandaiKaraoke.h index cb4be937..b4b35ba1 100644 --- a/Core/BandaiKaraoke.h +++ b/Core/BandaiKaraoke.h @@ -12,6 +12,7 @@ protected: uint16_t GetCHRPageSize() override { return 0x2000; } bool AllowRegisterRead() override { return true; } bool HasBusConflicts() override { return true; } + ConsoleFeatures GetAvailableFeatures() { return ConsoleFeatures::BandaiMicrophone; } void InitMapper() override { diff --git a/Core/BandaiMicrophone.h b/Core/BandaiMicrophone.h index 798e0a37..39f9dd7b 100644 --- a/Core/BandaiMicrophone.h +++ b/Core/BandaiMicrophone.h @@ -1,6 +1,7 @@ #pragma once #include "stdafx.h" #include "BaseControlDevice.h" +#include "PPU.h" class BandaiMicrophone : public BaseControlDevice { @@ -14,11 +15,16 @@ protected: void InternalSetStateFromInput() override { + //Make sure the key bindings are properly updated (not ideal, but good enough) + _keyMappings = EmulationSettings::GetControllerKeys(0).GetKeyMappingArray(); + for(KeyMapping keyMapping : _keyMappings) { - //TODO: Add proper key mappings - SetPressedState(Buttons::A, keyMapping.A); - SetPressedState(Buttons::B, keyMapping.B); - SetPressedState(Buttons::Microphone, keyMapping.Microphone); + SetPressedState(Buttons::A, keyMapping.BandaiMicrophoneButtons[0]); + SetPressedState(Buttons::B, keyMapping.BandaiMicrophoneButtons[1]); + if((PPU::GetFrameCount() % 2) == 0) { + //Alternate between 1 and 0s (not sure if the game does anything with this data?) + SetPressedState(Buttons::Microphone, keyMapping.BandaiMicrophoneButtons[2]); + } } } diff --git a/Core/EmulationSettings.h b/Core/EmulationSettings.h index 15ec6ee9..d83b311e 100644 --- a/Core/EmulationSettings.h +++ b/Core/EmulationSettings.h @@ -310,10 +310,35 @@ struct KeyMapping uint32_t ExcitingBoxingButtons[8] = {}; uint32_t JissenMahjongButtons[21] = {}; uint32_t SuborKeyboardButtons[99] = {}; + uint32_t BandaiMicrophoneButtons[3] = {}; bool HasKeySet() { - return true || A || B || Up || Down || Left || Right || Start || Select || TurboA || TurboB || TurboStart || TurboSelect || Microphone || LButton || RButton; + if(A || B || Up || Down || Left || Right || Start || Select || TurboA || TurboB || TurboStart || TurboSelect || Microphone || LButton || RButton) { + return true; + } + + bool hasKeyBinding = false; + hasKeyBinding |= HasKeyBinding(PowerPadButtons, sizeof(PowerPadButtons) / sizeof(PowerPadButtons[0])); + hasKeyBinding |= HasKeyBinding(FamilyBasicKeyboardButtons, sizeof(FamilyBasicKeyboardButtons) / sizeof(FamilyBasicKeyboardButtons[0])); + hasKeyBinding |= HasKeyBinding(PartyTapButtons, sizeof(PartyTapButtons) / sizeof(PartyTapButtons[0])); + hasKeyBinding |= HasKeyBinding(PachinkoButtons, sizeof(PachinkoButtons) / sizeof(PachinkoButtons[0])); + hasKeyBinding |= HasKeyBinding(ExcitingBoxingButtons, sizeof(ExcitingBoxingButtons) / sizeof(ExcitingBoxingButtons[0])); + hasKeyBinding |= HasKeyBinding(JissenMahjongButtons, sizeof(JissenMahjongButtons) / sizeof(JissenMahjongButtons[0])); + hasKeyBinding |= HasKeyBinding(SuborKeyboardButtons, sizeof(SuborKeyboardButtons) / sizeof(SuborKeyboardButtons[0])); + hasKeyBinding |= HasKeyBinding(BandaiMicrophoneButtons, sizeof(BandaiMicrophoneButtons) / sizeof(BandaiMicrophoneButtons[0])); + return hasKeyBinding; + } + +private: + bool HasKeyBinding(uint32_t* buttons, uint32_t count) + { + for(uint32_t i = 0; i < count; i++) { + if(buttons[i] != 0) { + return true; + } + } + return false; } }; diff --git a/Core/Types.h b/Core/Types.h index 6db92259..195d4bee 100644 --- a/Core/Types.h +++ b/Core/Types.h @@ -251,6 +251,8 @@ enum class ConsoleFeatures VsSystem = 4, BarcodeReader = 8, TapeRecorder = 16, + BandaiMicrophone = 32, + DatachBarcodeReader = 64 }; enum class RecordMovieFrom diff --git a/GUI.NET/Config/InputInfo.cs b/GUI.NET/Config/InputInfo.cs index d4886c28..21736d10 100644 --- a/GUI.NET/Config/InputInfo.cs +++ b/GUI.NET/Config/InputInfo.cs @@ -35,6 +35,7 @@ namespace Mesen.GUI.Config public UInt32[] ExcitingBoxingButtons = new UInt32[8]; public UInt32[] JissenMahjongButtons = new UInt32[21]; public UInt32[] SuborKeyboardButtons = new UInt32[99]; + public UInt32[] BandaiMicrophoneButtons = new UInt32[3]; public KeyMappings() { @@ -50,6 +51,7 @@ namespace Mesen.GUI.Config clone.ExcitingBoxingButtons = (UInt32[])this.ExcitingBoxingButtons.Clone(); clone.JissenMahjongButtons = (UInt32[])this.JissenMahjongButtons.Clone(); clone.SuborKeyboardButtons = (UInt32[])this.SuborKeyboardButtons.Clone(); + clone.BandaiMicrophoneButtons = (UInt32[])this.BandaiMicrophoneButtons.Clone(); return clone; } @@ -79,6 +81,7 @@ namespace Mesen.GUI.Config mapping.ExcitingBoxingButtons= ExcitingBoxingButtons; mapping.JissenMahjongButtons = JissenMahjongButtons; mapping.SuborKeyboardButtons = SuborKeyboardButtons; + mapping.BandaiMicrophoneButtons = BandaiMicrophoneButtons; return mapping; } @@ -173,6 +176,7 @@ namespace Mesen.GUI.Config controllerInfo.Keys[0].PartyTapButtons = presets.PartyTap.PartyTapButtons; controllerInfo.Keys[0].PowerPadButtons = presets.PowerPad.PowerPadButtons; controllerInfo.Keys[0].SuborKeyboardButtons = presets.SuborKeyboard.SuborKeyboardButtons; + controllerInfo.Keys[0].BandaiMicrophoneButtons = presets.BandaiMicrophone.BandaiMicrophoneButtons; } Controllers.Add(controllerInfo); diff --git a/GUI.NET/Config/KeyPresets.cs b/GUI.NET/Config/KeyPresets.cs index d76b7f33..2159e03e 100644 --- a/GUI.NET/Config/KeyPresets.cs +++ b/GUI.NET/Config/KeyPresets.cs @@ -34,6 +34,9 @@ namespace Mesen.GUI.Config KeyMappings _suborKeyboard; public KeyMappings SuborKeyboard { get { return _suborKeyboard.Clone(); } } + KeyMappings _bandaiMicrophone; + public KeyMappings BandaiMicrophone { get { return _bandaiMicrophone.Clone(); } } + public KeyMappings WasdLayout { get { return _wasdLayout.Clone(); } } public KeyMappings ArrowLayout { get { return _arrowLayout.Clone(); } } public KeyMappings NestopiaLayout { get { return _nestopiaLayout.Clone(); } } @@ -204,6 +207,14 @@ namespace Mesen.GUI.Config } }; + _bandaiMicrophone = new KeyMappings() { + BandaiMicrophoneButtons = new UInt32[3] { + InteropEmu.GetKeyCode("1"), + InteropEmu.GetKeyCode("2"), + InteropEmu.GetKeyCode("3") + } + }; + _excitingBoxing = new KeyMappings() { ExcitingBoxingButtons = new UInt32[8] { InteropEmu.GetKeyCode("Numpad 7"), diff --git a/GUI.NET/Dependencies/resources.ca.xml b/GUI.NET/Dependencies/resources.ca.xml index 28f75b3a..bc8ede91 100644 --- a/GUI.NET/Dependencies/resources.ca.xml +++ b/GUI.NET/Dependencies/resources.ca.xml @@ -184,6 +184,8 @@ Configuració Configuració Configuració + Configuració + Cartridge: Jugador 1: Jugador 2: Jugador 4: @@ -641,6 +643,8 @@
+
+
@@ -657,6 +661,9 @@ Press Release + + Microphone + Tots els fitxers (*.*)|*.* @@ -678,6 +685,8 @@ Darrera carpeta utilitzada Mouse mode enabled - press ESC or pause to release the cursor. + Bandai Microphone + Datach Barcode Reader Continua Pausa diff --git a/GUI.NET/Dependencies/resources.en.xml b/GUI.NET/Dependencies/resources.en.xml index fafa4549..3a714efc 100644 --- a/GUI.NET/Dependencies/resources.en.xml +++ b/GUI.NET/Dependencies/resources.en.xml @@ -20,6 +20,8 @@ Last Folder Used Mouse mode enabled - press ESC or pause to release the cursor. + Bandai Microphone + Datach Barcode Reader Resume Pause diff --git a/GUI.NET/Dependencies/resources.es.xml b/GUI.NET/Dependencies/resources.es.xml index 155632d2..ed4daa1b 100644 --- a/GUI.NET/Dependencies/resources.es.xml +++ b/GUI.NET/Dependencies/resources.es.xml @@ -183,6 +183,8 @@ Configuración Configuración Configuración + Configuración + Cartridge: Jugador 1: Jugador 2: Jugador 4: @@ -659,6 +661,8 @@
+
+
@@ -675,6 +679,9 @@ Press Release + + Microphone + Todos los tipos de archivo (*.*)|*.* @@ -696,6 +703,8 @@ Última carpeta usada Mouse mode enabled - press ESC or pause to release the cursor. + Bandai Microphone + Datach Barcode Reader Continuar Pausa diff --git a/GUI.NET/Dependencies/resources.fr.xml b/GUI.NET/Dependencies/resources.fr.xml index 84fea613..5fefc333 100644 --- a/GUI.NET/Dependencies/resources.fr.xml +++ b/GUI.NET/Dependencies/resources.fr.xml @@ -184,10 +184,12 @@ Configuration Configuration Configuration - Joueur 1: - Joueur 2: - Joueur 4: - Joueur 3: + Configuration + Cartouche : + Joueur 1 : + Joueur 2 : + Joueur 4 : + Joueur 3 : Configuration Configuration Type de console : @@ -671,6 +673,8 @@
+
+
@@ -687,6 +691,9 @@ Appuyer Relâcher + + Microphone + Tous les fichiers (*.*)|*.* @@ -708,7 +715,9 @@ Dernier dossier utilisé Mode souris activé - appuyez sur ESC ou pause pour y mettre fin. - + Microphone Bandai + Lecteur code-barres Datach + Continuer Pause Démarrer serveur diff --git a/GUI.NET/Dependencies/resources.ja.xml b/GUI.NET/Dependencies/resources.ja.xml index 77b0109a..18404f0c 100644 --- a/GUI.NET/Dependencies/resources.ja.xml +++ b/GUI.NET/Dependencies/resources.ja.xml @@ -185,6 +185,8 @@ 設定 設定 設定 + 設定 + ロムカセット: プレーヤー 1: プレーヤー 2: プレーヤー 4: @@ -655,6 +657,8 @@
+
+
@@ -671,6 +675,9 @@ 押す 放す + + マイク + すべてのファイル (*.*)|*.* @@ -692,7 +699,9 @@ 最後に使用したフォルダ マウスモード有効。 無効にするにはESCやポースボタンを使ってください。 - + Bandaiマイクロフォン + Datachバーコードリーダー + 再開 ポーズ サーバを起動する diff --git a/GUI.NET/Dependencies/resources.pt.xml b/GUI.NET/Dependencies/resources.pt.xml index 88f49dc9..fc3daad0 100644 --- a/GUI.NET/Dependencies/resources.pt.xml +++ b/GUI.NET/Dependencies/resources.pt.xml @@ -183,6 +183,8 @@ Configuração Configuração Configuração + Configuração + Cartridge: Jogador 1: Jogador 2: Jogador 4: @@ -657,6 +659,8 @@
+
+
@@ -673,6 +677,9 @@ Press Release + + Microphone + Todos os tipos de arquivo (*.*)|*.* @@ -694,6 +701,8 @@ Última pasta usada Mouse mode enabled - press ESC or pause to release the cursor. + Bandai Microphone + Datach Barcode Reader Continuar Pausar diff --git a/GUI.NET/Dependencies/resources.ru.xml b/GUI.NET/Dependencies/resources.ru.xml index 6ced8a4a..9a081d0f 100644 --- a/GUI.NET/Dependencies/resources.ru.xml +++ b/GUI.NET/Dependencies/resources.ru.xml @@ -183,6 +183,8 @@ Настроить Настроить Настроить + Настроить + Cartridge: Контроллер 1: Контроллер 2: Контроллер 4: @@ -660,6 +662,8 @@
+
+
@@ -676,6 +680,9 @@ Press Release + + Microphone + Все файлы (*.*)|*.* @@ -696,8 +703,10 @@ Clear History Last Folder Used - Mouse mode enabled - press ESC or pause to release the cursor. - + Mouse mode enabled - press ESC or pause to release the cursor. + Bandai Microphone + Datach Barcode Reader + Продолжить Пауза Запустить сервер diff --git a/GUI.NET/Dependencies/resources.uk.xml b/GUI.NET/Dependencies/resources.uk.xml index cf6c240a..7e52ebe8 100644 --- a/GUI.NET/Dependencies/resources.uk.xml +++ b/GUI.NET/Dependencies/resources.uk.xml @@ -183,6 +183,8 @@ Налаштувати Налаштувати Налаштувати + Налаштувати + Cartridge: Контролер 1: Контролер 2: Контролер 4: @@ -660,6 +662,8 @@
+
+
@@ -676,6 +680,9 @@ Press Release + + Microphone + Всi файли (*.*)|*.* @@ -697,7 +704,9 @@ Використовувана остання папка Mouse mode enabled - press ESC or pause to release the cursor. - + Bandai Microphone + Datach Barcode Reader + Продовжити Пауза Запустити сервер diff --git a/GUI.NET/Forms/Config/Controllers/ctrlBandaiMicrophone.Designer.cs b/GUI.NET/Forms/Config/Controllers/ctrlBandaiMicrophone.Designer.cs new file mode 100644 index 00000000..b310e5cb --- /dev/null +++ b/GUI.NET/Forms/Config/Controllers/ctrlBandaiMicrophone.Designer.cs @@ -0,0 +1,165 @@ +namespace Mesen.GUI.Forms.Config +{ + partial class ctrlBandaiMicrophone + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if(disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.btn1 = new System.Windows.Forms.Button(); + this.btn2 = new System.Windows.Forms.Button(); + this.btn3 = new System.Windows.Forms.Button(); + this.lblA = new System.Windows.Forms.Label(); + this.lblB = new System.Windows.Forms.Label(); + this.lblMicrophone = new System.Windows.Forms.Label(); + this.btnClearKeys = new System.Windows.Forms.Button(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 5; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.Controls.Add(this.btn1, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.btn2, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.btn3, 3, 1); + this.tableLayoutPanel1.Controls.Add(this.lblA, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.lblB, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.lblMicrophone, 3, 2); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(292, 86); + this.tableLayoutPanel1.TabIndex = 2; + // + // btn1 + // + this.btn1.Location = new System.Drawing.Point(32, 4); + this.btn1.Name = "btn1"; + this.btn1.Size = new System.Drawing.Size(61, 59); + this.btn1.TabIndex = 30; + this.btn1.Text = "B"; + this.btn1.UseVisualStyleBackColor = true; + // + // btn2 + // + this.btn2.Location = new System.Drawing.Point(99, 4); + this.btn2.Name = "btn2"; + this.btn2.Size = new System.Drawing.Size(61, 59); + this.btn2.TabIndex = 34; + this.btn2.Text = "B"; + this.btn2.UseVisualStyleBackColor = true; + // + // btn3 + // + this.btn3.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.btn3.Location = new System.Drawing.Point(182, 4); + this.btn3.Name = "btn3"; + this.btn3.Size = new System.Drawing.Size(61, 59); + this.btn3.TabIndex = 32; + this.btn3.Text = "B"; + this.btn3.UseVisualStyleBackColor = true; + // + // lblA + // + this.lblA.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.lblA.AutoSize = true; + this.lblA.Font = new System.Drawing.Font("Arial", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblA.Location = new System.Drawing.Point(54, 66); + this.lblA.Name = "lblA"; + this.lblA.Size = new System.Drawing.Size(17, 18); + this.lblA.TabIndex = 31; + this.lblA.Text = "A"; + // + // lblB + // + this.lblB.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.lblB.AutoSize = true; + this.lblB.Font = new System.Drawing.Font("Arial", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblB.Location = new System.Drawing.Point(120, 66); + this.lblB.Name = "lblB"; + this.lblB.Size = new System.Drawing.Size(19, 18); + this.lblB.TabIndex = 45; + this.lblB.Text = "B"; + // + // lblMicrophone + // + this.lblMicrophone.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.lblMicrophone.AutoSize = true; + this.lblMicrophone.Font = new System.Drawing.Font("Arial", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblMicrophone.Location = new System.Drawing.Point(166, 66); + this.lblMicrophone.Name = "lblMicrophone"; + this.lblMicrophone.Size = new System.Drawing.Size(93, 18); + this.lblMicrophone.TabIndex = 44; + this.lblMicrophone.Text = "Microphone"; + // + // btnClearKeys + // + this.btnClearKeys.AutoSize = true; + this.btnClearKeys.Location = new System.Drawing.Point(3, 3); + this.btnClearKeys.Name = "btnClearKeys"; + this.btnClearKeys.Size = new System.Drawing.Size(105, 23); + this.btnClearKeys.TabIndex = 3; + this.btnClearKeys.Text = "Clear Key Bindings"; + this.btnClearKeys.UseVisualStyleBackColor = true; + // + // ctrlBandaiMicrophone + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.tableLayoutPanel1); + this.Name = "ctrlBandaiMicrophone"; + this.Size = new System.Drawing.Size(292, 86); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Button btn1; + private System.Windows.Forms.Button btn2; + private System.Windows.Forms.Button btn3; + private System.Windows.Forms.Label lblA; + private System.Windows.Forms.Label lblB; + private System.Windows.Forms.Label lblMicrophone; + private System.Windows.Forms.Button btnClearKeys; + } +} \ No newline at end of file diff --git a/GUI.NET/Forms/Config/Controllers/ctrlBandaiMicrophone.cs b/GUI.NET/Forms/Config/Controllers/ctrlBandaiMicrophone.cs new file mode 100644 index 00000000..83a8f737 --- /dev/null +++ b/GUI.NET/Forms/Config/Controllers/ctrlBandaiMicrophone.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using Mesen.GUI.Config; +using Mesen.GUI.Controls; + +namespace Mesen.GUI.Forms.Config +{ + public partial class ctrlBandaiMicrophone : BaseInputConfigControl + { + private List