diff --git a/BizHawk.MultiClient/config/InputConfig.cs b/BizHawk.MultiClient/config/InputConfig.cs index 056c8ff296..099be1c955 100644 --- a/BizHawk.MultiClient/config/InputConfig.cs +++ b/BizHawk.MultiClient/config/InputConfig.cs @@ -19,7 +19,6 @@ namespace BizHawk.MultiClient int prevWidth; int prevHeight; const string ControllerStr = "Configure Controllers - "; - 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", }; public static string[] NESControlList = new string[] { "Up", "Down", "Left", "Right", "A", "B", "Select", "Start" }; public static string[] TI83ControlList = new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "ON", @@ -30,7 +29,7 @@ namespace BizHawk.MultiClient { {"Genesis 3-Button", new string[8] { "Up", "Down", "Left", "Right", "A", "B", "C", "Start", } }, {"NES", new string[8] { "Up", "Down", "Left", "Right", "A", "B", "Select", "Start" } }, - {"PC Engine", new string[8] { "Up", "Down", "Left", "Right", "I", "II", "Run", "Select" } }, + {"PC Engine / SGX", new string[8] { "Up", "Down", "Left", "Right", "I", "II", "Run", "Select" } }, {"SMS / GG / SG-1000", new string[8] { "Up", "Down", "Left", "Right", "B1", "B2", "Pause", "Reset" } }, { // TODO: display shift / alpha names too, Also order these like on the calculator @@ -42,7 +41,7 @@ namespace BizHawk.MultiClient }; public static readonly Dictionary PADS = new Dictionary() { - {"NES", 4}, {"SMS / GG / SG-1000", 2} + {"NES", 4}, {"PC Engine / SGX", 5}, {"SMS / GG / SG-1000", 2} }; public static string[] AtariControlList = new string[] { "Up", "Down", "Left", "Right", "Button" }; private ArrayList Labels; @@ -184,128 +183,6 @@ namespace BizHawk.MultiClient } } - private void DoPCE() - { - Label TempLabel; - InputWidget TempTextBox; - this.Text = ControllerStr + "PCE Engine / SuperGrafx"; - ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.PCEngineController; - int jpad = this.ControllComboBox.SelectedIndex; - string[] ButtonMappings = new string[PCEControlList.Length]; - - if (jpad < 5) - { - ButtonMappings[0] = Global.Config.PCEController[jpad].Up; - ButtonMappings[1] = Global.Config.PCEController[jpad].Down; - ButtonMappings[2] = Global.Config.PCEController[jpad].Left; - ButtonMappings[3] = Global.Config.PCEController[jpad].Right; - ButtonMappings[4] = Global.Config.PCEController[jpad].I; - ButtonMappings[5] = Global.Config.PCEController[jpad].II; - ButtonMappings[6] = Global.Config.PCEController[jpad].Run; - ButtonMappings[7] = Global.Config.PCEController[jpad].Select; - IDX_CONTROLLERENABLED.Checked = Global.Config.PCEController[jpad].Enabled; - } - else - { - ButtonMappings[0] = Global.Config.PCEAutoController[jpad - 5].Up; - ButtonMappings[1] = Global.Config.PCEAutoController[jpad - 5].Down; - ButtonMappings[2] = Global.Config.PCEAutoController[jpad - 5].Left; - ButtonMappings[3] = Global.Config.PCEAutoController[jpad - 5].Right; - ButtonMappings[4] = Global.Config.PCEAutoController[jpad - 5].I; - ButtonMappings[5] = Global.Config.PCEAutoController[jpad - 5].II; - ButtonMappings[6] = Global.Config.PCEAutoController[jpad - 5].Run; - ButtonMappings[7] = Global.Config.PCEAutoController[jpad - 5].Select; - IDX_CONTROLLERENABLED.Checked = Global.Config.PCEAutoController[jpad - 5].Enabled; - } - - 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.SetBindings(ButtonMappings[i]); - ButtonsGroupBox.Controls.Add(TempTextBox); - ButtonsGroupBox.Controls.Add(TempLabel); - } - Changed = true; - } - - private void UpdatePCE(int prev) - { - ButtonsGroupBox.Controls.Clear(); - InputWidget TempBox; - Label TempLabel; - - if (prev < 5) - { - 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(); - Global.Config.PCEController[prev].Enabled = IDX_CONTROLLERENABLED.Checked; - } - else - { - TempBox = TextBoxes[0] as InputWidget; - Global.Config.PCEAutoController[prev - 5].Up = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].Up); - TempBox.Dispose(); - TempBox = TextBoxes[1] as InputWidget; - Global.Config.PCEAutoController[prev - 5].Down = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].Down); - TempBox.Dispose(); - TempBox = TextBoxes[2] as InputWidget; - Global.Config.PCEAutoController[prev - 5].Left = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].Left); - TempBox.Dispose(); - TempBox = TextBoxes[3] as InputWidget; - Global.Config.PCEAutoController[prev - 5].Right = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].Right); - TempBox.Dispose(); - TempBox = TextBoxes[4] as InputWidget; - Global.Config.PCEAutoController[prev - 5].I = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].I); - TempBox.Dispose(); - TempBox = TextBoxes[5] as InputWidget; - Global.Config.PCEAutoController[prev - 5].II = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].II); - TempBox.Dispose(); - TempBox = TextBoxes[6] as InputWidget; - Global.Config.PCEAutoController[prev - 5].Run = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].Run); - TempBox.Dispose(); - TempBox = TextBoxes[7] as InputWidget; - Global.Config.PCEAutoController[prev - 5].Select = AppendButtonMapping(TempBox.Text, Global.Config.PCEAutoController[prev - 5].Select); - TempBox.Dispose(); - Global.Config.PCEAutoController[prev - 5].Enabled = IDX_CONTROLLERENABLED.Checked; - } - - for (int i = 0; i < PCEControlList.Length; i++) - { - TempLabel = Labels[i] as Label; - TempLabel.Dispose(); - } - } - private void DoGen() { Label TempLabel; @@ -742,18 +619,22 @@ namespace BizHawk.MultiClient case "NES": ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.NESController; controller = Global.Config.NESController; - mainController = controller; autoController = Global.Config.NESAutoController; break; + case "PC Engine / SGX": + ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.PCEngineController; + controller = Global.Config.PCEController; + autoController = Global.Config.PCEAutoController; + break; case "SMS / GG / SG-1000": ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.SMSController; controller = Global.Config.SMSController; - mainController = controller; autoController = Global.Config.SMSAutoController; break; default: return; } + mainController = controller; int jpad = this.ControllComboBox.SelectedIndex; if (jpad >= PADS[platform]) { @@ -765,6 +646,9 @@ namespace BizHawk.MultiClient case "NES": IDX_CONTROLLERENABLED.Checked = ((NESControllerTemplate)mainController[jpad]).Enabled; break; + case "PC Engine / SGX": + IDX_CONTROLLERENABLED.Checked = ((PCEControllerTemplate)mainController[jpad]).Enabled; + break; case "SMS / GG / SG-1000": IDX_CONTROLLERENABLED.Checked = ((SMSControllerTemplate)mainController[jpad]).Enabled; break; @@ -790,6 +674,12 @@ namespace BizHawk.MultiClient field = obj.GetType().GetField(fieldName).GetValue(obj); break; } + case "PC Engine / SGX": + { + PCEControllerTemplate obj = (PCEControllerTemplate)controller[jpad]; + field = obj.GetType().GetField(fieldName).GetValue(obj); + break; + } case "SMS / GG / SG-1000": { if (button < 6) @@ -821,17 +711,20 @@ namespace BizHawk.MultiClient { case "NES": controller = Global.Config.NESController; - mainController = controller; autoController = Global.Config.NESAutoController; break; + case "PC Engine / SGX": + controller = Global.Config.PCEController; + autoController = Global.Config.PCEAutoController; + break; case "SMS / GG / SG-1000": controller = Global.Config.SMSController; - mainController = controller; autoController = Global.Config.SMSAutoController; break; default: return; } + mainController = controller; if (prev >= PADS[platform]) { prev -= PADS[platform]; @@ -842,6 +735,9 @@ namespace BizHawk.MultiClient case "NES": ((NESControllerTemplate)mainController[prev]).Enabled = IDX_CONTROLLERENABLED.Checked; break; + case "PC Engine / SGX": + ((PCEControllerTemplate)mainController[prev]).Enabled = IDX_CONTROLLERENABLED.Checked; + break; case "SMS / GG / SG-1000": ((SMSControllerTemplate)mainController[prev]).Enabled = IDX_CONTROLLERENABLED.Checked; break; @@ -861,6 +757,14 @@ namespace BizHawk.MultiClient buttonField.SetValue(obj, AppendButtonMapping(TempBox.Text, (string)field)); break; } + case "PC Engine / SGX": + { + PCEControllerTemplate obj = (PCEControllerTemplate)controller[prev]; + FieldInfo buttonField = obj.GetType().GetField(fieldName); + field = buttonField.GetValue(obj); + buttonField.SetValue(obj, AppendButtonMapping(TempBox.Text, (string)field)); + break; + } case "SMS / GG / SG-1000": { if (button < 6) @@ -899,7 +803,8 @@ namespace BizHawk.MultiClient Dictionary systems = new Dictionary() { {"A26", "Atari"}, {"GB", "Gameboy"}, {"GEN", "Sega Genesis"}, {"GG", "SMS / GG / SG-1000"}, {"NES", "NES"}, - {"SGX", "PC Engine / SGX"}, {"TI83", "TI-83"} + {"PCE", "PC Engine / SGX"}, {"SG", "SMS / GG / SG-1000"}, {"SGX", "PC Engine / SGX"}, + {"SMS", "SMS / GG / SG-1000"}, {"TI83", "TI-83"} }; if (systems.ContainsKey(Global.Game.System)) this.SystemComboBox.SelectedIndex = SystemComboBox.Items.IndexOf(systems[Global.Game.System]); @@ -994,12 +899,11 @@ namespace BizHawk.MultiClient } switch (SystemComboBox.SelectedItem.ToString()) { + case "NES": + case "PC Engine / SGX": case "SMS / GG / SG-1000": Do(SystemComboBox.SelectedItem.ToString()); break; - case "PC Engine / SGX": - DoPCE(); - break; case "Gameboy": DoGameBoy(); break; @@ -1009,9 +913,6 @@ namespace BizHawk.MultiClient case "TI-83": DoTI83(); break; - case "NES": - Do(SystemComboBox.SelectedItem.ToString()); - break; case "Atari": DoAtari(); break; @@ -1023,12 +924,11 @@ namespace BizHawk.MultiClient { switch (CurSelectConsole) { + case "NES": + case "PC Engine / SGX": case "SMS / GG / SG-1000": Update(CurSelectController, CurSelectConsole); break; - case "PC Engine / SGX": - UpdatePCE(CurSelectController); - break; case "Gameboy": UpdateGameBoy(); break; @@ -1038,9 +938,6 @@ namespace BizHawk.MultiClient case "TI-83": UpdateTI83(); break; - case "NES": - Update(CurSelectController, CurSelectConsole); - break; case "Atari": UpdateAtari(CurSelectController); break;