From 23555d06c5acdb7295ff925a021ebb647c2c5383 Mon Sep 17 00:00:00 2001 From: kylethomson Date: Sat, 19 Feb 2011 21:27:10 +0000 Subject: [PATCH] Added PCE, todo: Genesis, Gameboy, (LOL TI-83?) --- BizHawk.MultiClient/Config.cs | 36 +++++++--- BizHawk.MultiClient/MainForm.cs | 19 +++--- BizHawk.MultiClient/config/InputConfig.cs | 82 ++++++++++++++++++++--- 3 files changed, 112 insertions(+), 25 deletions(-) diff --git a/BizHawk.MultiClient/Config.cs b/BizHawk.MultiClient/Config.cs index 0a7196f4cb..ca58322e8e 100644 --- a/BizHawk.MultiClient/Config.cs +++ b/BizHawk.MultiClient/Config.cs @@ -6,6 +6,11 @@ { SMSController[0] = new SMSControllerTemplate(1); SMSController[1] = new SMSControllerTemplate(2); + PCEController[0] = new PCEControllerTemplate(1); + PCEController[1] = new PCEControllerTemplate(2); + PCEController[2] = new PCEControllerTemplate(3); + PCEController[3] = new PCEControllerTemplate(4); + PCEController[4] = new PCEControllerTemplate(5); } // General Client Settings @@ -80,14 +85,7 @@ public SMSControllerTemplate[] SMSController = new SMSControllerTemplate[2]; // PCEngine Settings - public string PCEUp = "J1 Up, UpArrow"; - public string PCEDown = "J1 Down, DownArrow"; - public string PCELeft = "J1 Left, LeftArrow"; - public string PCERight = "J1 Right, RightArrow"; - public string PCEBII = "J1 B1, Z"; - public string PCEBI = "J1 B2, X"; - public string PCESelect = "J1 B9, Space"; - public string PCERun = "J1 B10, Return"; + public PCEControllerTemplate[] PCEController = new PCEControllerTemplate[5]; // Genesis Settings public string GenP1Up = "J1 Up, UpArrow"; @@ -117,5 +115,27 @@ B2 = string.Format("J{0} B2", i); } } + public class PCEControllerTemplate + { + public string Up; + public string Down; + public string Left; + public string Right; + public string I; + public string II; + public string Run; + public string Select; + public PCEControllerTemplate(int i) + { + Up = string.Format("J{0} Up", i); + Down = string.Format("J{0} Down", i); + Left = string.Format("J{0} Left", i); + Right = string.Format("J{0} Right", i); + I = string.Format("J{0} I", i); + II = string.Format("J{0} II", i); + Run = string.Format("J{0} Run", i); + Select = string.Format("J{0} Select", i); + } + } } \ No newline at end of file diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index d8d8f95395..ce5b513140 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -196,15 +196,18 @@ namespace BizHawk.MultiClient Global.SMSControls = smsControls; var pceControls = new Controller(PCEngine.PCEngineController); - pceControls.BindMulti("Up", Global.Config.PCEUp); - pceControls.BindMulti("Down", Global.Config.PCEDown); - pceControls.BindMulti("Left", Global.Config.PCELeft); - pceControls.BindMulti("Right", Global.Config.PCERight); + for (int i = 0; i < 1; i++) + { + pceControls.BindMulti("Up", Global.Config.PCEController[i].Up); + pceControls.BindMulti("Down", Global.Config.PCEController[i].Down); + pceControls.BindMulti("Left", Global.Config.PCEController[i].Left); + pceControls.BindMulti("Right", Global.Config.PCEController[i].Right); - pceControls.BindMulti("II", Global.Config.PCEBII); - pceControls.BindMulti("I", Global.Config.PCEBI); - pceControls.BindMulti("Select", Global.Config.PCESelect); - pceControls.BindMulti("Run", Global.Config.PCERun); + pceControls.BindMulti("II", Global.Config.PCEController[i].II); + pceControls.BindMulti("I", Global.Config.PCEController[i].I); + pceControls.BindMulti("Select", Global.Config.PCEController[i].Select); + pceControls.BindMulti("Run", Global.Config.PCEController[i].Run); + } Global.PCEControls = pceControls; var genControls = new Controller(Genesis.GenesisController); diff --git a/BizHawk.MultiClient/config/InputConfig.cs b/BizHawk.MultiClient/config/InputConfig.cs index 7ff5e6640a..434603e798 100644 --- a/BizHawk.MultiClient/config/InputConfig.cs +++ b/BizHawk.MultiClient/config/InputConfig.cs @@ -13,8 +13,10 @@ namespace BizHawk.MultiClient public partial class InputConfig : Form { const string ControllerStr = "Configure Controllers - "; - public static string[] SMSList = new string[] { "Up", "Down", "Left", "Right", "B1", "B2", "Pause", "Reset" }; - public static string[] GenesisList = new string[] { "Up", "Down", "Left", "Right", "A", "B", "C", "Start", "X", "Y", "Z" }; + public static string[] SMSControlList = new string[] { "Up", "Down", "Left", "Right", "B1", "B2", "Pause", "Reset" }; + public static string[] PCEControlList = new string[] { "Up", "Down", "Left", "Right", "I", "II","Run","Select"}; + public static string[] GenesisControlList = new string[] { "Up", "Down", "Left", "Right", "A", "B", "C", "Start", "X", "Y", "Z" }; + public static string[] GameboyControlList = new string[] { "Up", "Down", "Left", "Right", "A", "B", "Start", "Select" }; private ArrayList Labels; private ArrayList TextBoxes; private string CurSelectConsole; @@ -45,6 +47,7 @@ namespace BizHawk.MultiClient else return oldmap + ", " + button; } + private void DoSMS() { Label TempLabel; @@ -53,7 +56,7 @@ namespace BizHawk.MultiClient ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.SMSController; this.SystemComboBox.SelectedIndex = 0; int jpad = this.ControllComboBox.SelectedIndex; - string[] ButtonMappings = new string[SMSList.Length]; + string[] ButtonMappings = new string[SMSControlList.Length]; ButtonMappings[0] = TruncateButtonMapping(Global.Config.SMSController[jpad].Up); ButtonMappings[1] = TruncateButtonMapping(Global.Config.SMSController[jpad].Down); ButtonMappings[2] = TruncateButtonMapping(Global.Config.SMSController[jpad].Left); @@ -63,13 +66,12 @@ namespace BizHawk.MultiClient ButtonMappings[6] = TruncateButtonMapping(Global.Config.SmsPause); ButtonMappings[7] = TruncateButtonMapping(Global.Config.SmsReset); Changed = true; - Labels.Clear(); TextBoxes.Clear(); - for (int i = 0; i < SMSList.Length; i++) + for (int i = 0; i < SMSControlList.Length; i++) { TempLabel = new Label(); - TempLabel.Text = SMSList[i]; + TempLabel.Text = SMSControlList[i]; TempLabel.Location = new Point(8, 20 + (i * 24)); Labels.Add(TempLabel); TempTextBox = new InputWidget(); @@ -117,10 +119,72 @@ namespace BizHawk.MultiClient } private void DoPCE() { + Label TempLabel; + InputWidget TempTextBox; this.Text = ControllerStr + "PCEjin / SGX"; - ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.PCEngineController; + ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.PCEngineController; + int jpad = this.ControllComboBox.SelectedIndex; + string[] ButtonMappings = new string[PCEControlList.Length]; + ButtonMappings[0] = TruncateButtonMapping(Global.Config.PCEController[jpad].Up); + ButtonMappings[1] = TruncateButtonMapping(Global.Config.PCEController[jpad].Down); + ButtonMappings[2] = TruncateButtonMapping(Global.Config.PCEController[jpad].Left); + ButtonMappings[3] = TruncateButtonMapping(Global.Config.PCEController[jpad].Right); + ButtonMappings[4] = TruncateButtonMapping(Global.Config.PCEController[jpad].I); + ButtonMappings[5] = TruncateButtonMapping(Global.Config.PCEController[jpad].II); + ButtonMappings[6] = TruncateButtonMapping(Global.Config.PCEController[jpad].Run); + ButtonMappings[7] = TruncateButtonMapping(Global.Config.PCEController[jpad].Select); + Changed = true; + Labels.Clear(); + TextBoxes.Clear(); + for (int i = 0; i < PCEControlList.Length; i++) + { + TempLabel = new Label(); + TempLabel.Text = PCEControlList[i]; + TempLabel.Location = new Point(8, 20 + (i * 24)); + Labels.Add(TempLabel); + TempTextBox = new InputWidget(); + TempTextBox.Location = new Point(48, 20 + (i * 24)); + TextBoxes.Add(TempTextBox); + TempTextBox.Text = ButtonMappings[i]; + ButtonsGroupBox.Controls.Add(TempTextBox); + ButtonsGroupBox.Controls.Add(TempLabel); + } + Changed = true; + } + private void UpdatePCE(int prev) + { + InputWidget TempBox; + Label TempLabel; + TempBox = TextBoxes[0] as InputWidget; + Global.Config.PCEController[prev].Up = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Up); + TempBox.Dispose(); + TempBox = TextBoxes[1] as InputWidget; + Global.Config.PCEController[prev].Down = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Down); + TempBox.Dispose(); + TempBox = TextBoxes[2] as InputWidget; + Global.Config.PCEController[prev].Left = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Left); + TempBox.Dispose(); + TempBox = TextBoxes[3] as InputWidget; + Global.Config.PCEController[prev].Right = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Right); + TempBox.Dispose(); + TempBox = TextBoxes[4] as InputWidget; + Global.Config.PCEController[prev].I = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].I); + TempBox.Dispose(); + TempBox = TextBoxes[5] as InputWidget; + Global.Config.PCEController[prev].II = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].II); + TempBox.Dispose(); + TempBox = TextBoxes[6] as InputWidget; + Global.Config.PCEController[prev].Run = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Run); + TempBox.Dispose(); + TempBox = TextBoxes[7] as InputWidget; + Global.Config.PCEController[prev].Select = AppendButtonMapping(TempBox.Text, Global.Config.PCEController[prev].Select); + TempBox.Dispose(); + for (int i = 0; i < 8; i++) + { + TempLabel = Labels[i] as Label; + TempLabel.Dispose(); + } } - private void DoGen() { this.Text = ControllerStr + "Sega Genesis"; @@ -203,7 +267,7 @@ namespace BizHawk.MultiClient UpdateSMS(CurSelectController); break; case "PC Engine / SGX": - //UpdatePCE(CurSelectController); + UpdatePCE(CurSelectController); break; case "Gameboy": //UpdateGB();