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