From 63b1f9b93ab14f7d8a90f17b6b17a54b3684da51 Mon Sep 17 00:00:00 2001 From: "andres.delikat" Date: Tue, 9 Aug 2011 02:16:46 +0000 Subject: [PATCH] Input Config - autofire for SMS/GG/SG, disable autofire pulldown item for TI83 --- BizHawk.MultiClient/Config.cs | 7 +- BizHawk.MultiClient/Global.cs | 3 +- BizHawk.MultiClient/MainForm.cs | 20 +++- BizHawk.MultiClient/config/InputConfig.cs | 117 +++++++++++++++------- 4 files changed, 109 insertions(+), 38 deletions(-) diff --git a/BizHawk.MultiClient/Config.cs b/BizHawk.MultiClient/Config.cs index 715a0f88ac..d2fa113d7c 100644 --- a/BizHawk.MultiClient/Config.cs +++ b/BizHawk.MultiClient/Config.cs @@ -22,6 +22,10 @@ NESAutoController[1] = new NESControllerTemplate(false); NESAutoController[2] = new NESControllerTemplate(false); NESAutoController[3] = new NESControllerTemplate(false); + + SMSAutoController[0] = new SMSControllerTemplate(true); + SMSAutoController[1] = new SMSControllerTemplate(false); + } // Directories @@ -396,7 +400,8 @@ public string SmsReset = "C"; public string SmsPause = "V, J1 B8"; public SMSControllerTemplate[] SMSController = new SMSControllerTemplate[2]; - + public SMSControllerTemplate[] SMSAutoController = new SMSControllerTemplate[2]; + // PCEngine Settings public PCEControllerTemplate[] PCEController = new PCEControllerTemplate[5]; diff --git a/BizHawk.MultiClient/Global.cs b/BizHawk.MultiClient/Global.cs index 67ad41dac6..17f9614fa2 100644 --- a/BizHawk.MultiClient/Global.cs +++ b/BizHawk.MultiClient/Global.cs @@ -24,7 +24,8 @@ namespace BizHawk.MultiClient public static Controller NullControls; public static CheatList CheatList; - public static Controller autofireNESControls; + public static Controller AutofireNESControls; + public static Controller AutofireSMSControls; //the movie will be spliced inbetween these if it is present public static CopyControllerAdapter MovieInputSourceAdapter = new CopyControllerAdapter(); diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index 82a83109d1..e471df912f 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -503,6 +503,21 @@ namespace BizHawk.MultiClient } Global.SMSControls = smsControls; + var asmsControls = new Controller(SMS.SmsController); + asmsControls.Autofire = true; + asmsControls.BindMulti("Reset", Global.Config.SmsReset); + asmsControls.BindMulti("Pause", Global.Config.SmsPause); + for (int i = 0; i < 2; i++) + { + asmsControls.BindMulti(string.Format("P{0} Up", i + 1), Global.Config.SMSAutoController[i].Up); + asmsControls.BindMulti(string.Format("P{0} Left", i + 1), Global.Config.SMSAutoController[i].Left); + asmsControls.BindMulti(string.Format("P{0} Right", i + 1), Global.Config.SMSAutoController[i].Right); + asmsControls.BindMulti(string.Format("P{0} Down", i + 1), Global.Config.SMSAutoController[i].Down); + asmsControls.BindMulti(string.Format("P{0} B1", i + 1), Global.Config.SMSAutoController[i].B1); + asmsControls.BindMulti(string.Format("P{0} B2", i + 1), Global.Config.SMSAutoController[i].B2); + } + Global.AutofireSMSControls = asmsControls; + var pceControls = new Controller(PCEngine.PCEngineController); for (int i = 0; i < 5; i++) { @@ -547,7 +562,7 @@ namespace BizHawk.MultiClient anesControls.BindMulti("P" + (i + 1) + " Select", Global.Config.NESAutoController[i].Select); anesControls.BindMulti("P" + (i + 1) + " Start", Global.Config.NESAutoController[i].Start); } - Global.autofireNESControls = anesControls; + Global.AutofireNESControls = anesControls; var gbControls = new Controller(Gameboy.GbController); gbControls.BindMulti("Up", Global.Config.GBController.Up); @@ -777,6 +792,7 @@ namespace BizHawk.MultiClient case "SG": case "SMS": Global.ActiveController = Global.SMSControls; + Global.AutoFireController = Global.AutofireSMSControls; break; case "GG": Global.ActiveController = Global.SMSControls; @@ -795,7 +811,7 @@ namespace BizHawk.MultiClient break; case "NES": Global.ActiveController = Global.NESControls; - Global.AutoFireController = Global.autofireNESControls; + Global.AutoFireController = Global.AutofireNESControls; break; case "GB": break; diff --git a/BizHawk.MultiClient/config/InputConfig.cs b/BizHawk.MultiClient/config/InputConfig.cs index 6b9892cb08..7e2864ebe2 100644 --- a/BizHawk.MultiClient/config/InputConfig.cs +++ b/BizHawk.MultiClient/config/InputConfig.cs @@ -72,15 +72,32 @@ namespace BizHawk.MultiClient int jpad = this.ControllComboBox.SelectedIndex; string[] ButtonMappings = new string[SMSControlList.Length]; - ButtonMappings[0] = Global.Config.SMSController[jpad].Up; - ButtonMappings[1] = Global.Config.SMSController[jpad].Down; - ButtonMappings[2] = Global.Config.SMSController[jpad].Left; - ButtonMappings[3] = Global.Config.SMSController[jpad].Right; - ButtonMappings[4] = Global.Config.SMSController[jpad].B1; - ButtonMappings[5] = Global.Config.SMSController[jpad].B2; - ButtonMappings[6] = Global.Config.SmsPause; - ButtonMappings[7] = Global.Config.SmsReset; - IDX_CONTROLLERENABLED.Checked = Global.Config.SMSController[jpad].Enabled; + + if (jpad < 2) + { + ButtonMappings[0] = Global.Config.SMSController[jpad].Up; + ButtonMappings[1] = Global.Config.SMSController[jpad].Down; + ButtonMappings[2] = Global.Config.SMSController[jpad].Left; + ButtonMappings[3] = Global.Config.SMSController[jpad].Right; + ButtonMappings[4] = Global.Config.SMSController[jpad].B1; + ButtonMappings[5] = Global.Config.SMSController[jpad].B2; + ButtonMappings[6] = Global.Config.SmsPause; + ButtonMappings[7] = Global.Config.SmsReset; + IDX_CONTROLLERENABLED.Checked = Global.Config.SMSController[jpad].Enabled; + } + else + { + ButtonMappings[0] = Global.Config.SMSAutoController[jpad - 2].Up; + ButtonMappings[1] = Global.Config.SMSAutoController[jpad - 2].Down; + ButtonMappings[2] = Global.Config.SMSAutoController[jpad - 2].Left; + ButtonMappings[3] = Global.Config.SMSAutoController[jpad - 2].Right; + ButtonMappings[4] = Global.Config.SMSAutoController[jpad - 2].B1; + ButtonMappings[5] = Global.Config.SMSAutoController[jpad - 2].B2; + ButtonMappings[6] = Global.Config.SmsPause; + ButtonMappings[7] = Global.Config.SmsReset; + IDX_CONTROLLERENABLED.Checked = Global.Config.SMSController[jpad - 2].Enabled; + } + Changed = true; Labels.Clear(); TextBoxes.Clear(); @@ -104,30 +121,61 @@ namespace BizHawk.MultiClient ButtonsGroupBox.Controls.Clear(); InputWidget TempBox; Label TempLabel; - TempBox = TextBoxes[0] as InputWidget; - Global.Config.SMSController[prev].Up = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].Up); - TempBox.Dispose(); - TempBox = TextBoxes[1] as InputWidget; - Global.Config.SMSController[prev].Down = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].Down); - TempBox.Dispose(); - TempBox = TextBoxes[2] as InputWidget; - Global.Config.SMSController[prev].Left = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].Left); - TempBox.Dispose(); - TempBox = TextBoxes[3] as InputWidget; - Global.Config.SMSController[prev].Right = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].Right); - TempBox.Dispose(); - TempBox = TextBoxes[4] as InputWidget; - Global.Config.SMSController[prev].B1 = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].B1); - TempBox.Dispose(); - TempBox = TextBoxes[5] as InputWidget; - Global.Config.SMSController[prev].B2 = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].B2); - TempBox.Dispose(); - TempBox = TextBoxes[6] as InputWidget; - Global.Config.SmsPause = AppendButtonMapping(TempBox.Text, Global.Config.SmsPause); - TempBox.Dispose(); - TempBox = TextBoxes[7] as InputWidget; - Global.Config.SmsReset = AppendButtonMapping(TempBox.Text, Global.Config.SmsReset); - Global.Config.SMSController[prev].Enabled = IDX_CONTROLLERENABLED.Checked; + + if (prev < 2) + { + TempBox = TextBoxes[0] as InputWidget; + Global.Config.SMSController[prev].Up = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].Up); + TempBox.Dispose(); + TempBox = TextBoxes[1] as InputWidget; + Global.Config.SMSController[prev].Down = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].Down); + TempBox.Dispose(); + TempBox = TextBoxes[2] as InputWidget; + Global.Config.SMSController[prev].Left = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].Left); + TempBox.Dispose(); + TempBox = TextBoxes[3] as InputWidget; + Global.Config.SMSController[prev].Right = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].Right); + TempBox.Dispose(); + TempBox = TextBoxes[4] as InputWidget; + Global.Config.SMSController[prev].B1 = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].B1); + TempBox.Dispose(); + TempBox = TextBoxes[5] as InputWidget; + Global.Config.SMSController[prev].B2 = AppendButtonMapping(TempBox.Text, Global.Config.SMSController[prev].B2); + TempBox.Dispose(); + TempBox = TextBoxes[6] as InputWidget; + Global.Config.SmsPause = AppendButtonMapping(TempBox.Text, Global.Config.SmsPause); + TempBox.Dispose(); + TempBox = TextBoxes[7] as InputWidget; + Global.Config.SmsReset = AppendButtonMapping(TempBox.Text, Global.Config.SmsReset); + Global.Config.SMSController[prev].Enabled = IDX_CONTROLLERENABLED.Checked; + } + else + { + TempBox = TextBoxes[0] as InputWidget; + Global.Config.SMSAutoController[prev - 2].Up = AppendButtonMapping(TempBox.Text, Global.Config.SMSAutoController[prev - 2].Up); + TempBox.Dispose(); + TempBox = TextBoxes[1] as InputWidget; + Global.Config.SMSAutoController[prev - 2].Down = AppendButtonMapping(TempBox.Text, Global.Config.SMSAutoController[prev - 2].Down); + TempBox.Dispose(); + TempBox = TextBoxes[2] as InputWidget; + Global.Config.SMSAutoController[prev - 2].Left = AppendButtonMapping(TempBox.Text, Global.Config.SMSAutoController[prev - 2].Left); + TempBox.Dispose(); + TempBox = TextBoxes[3] as InputWidget; + Global.Config.SMSAutoController[prev - 2].Right = AppendButtonMapping(TempBox.Text, Global.Config.SMSAutoController[prev - 2].Right); + TempBox.Dispose(); + TempBox = TextBoxes[4] as InputWidget; + Global.Config.SMSAutoController[prev - 2].B1 = AppendButtonMapping(TempBox.Text, Global.Config.SMSAutoController[prev - 2].B1); + TempBox.Dispose(); + TempBox = TextBoxes[5] as InputWidget; + Global.Config.SMSAutoController[prev - 2].B2 = AppendButtonMapping(TempBox.Text, Global.Config.SMSAutoController[prev - 2].B2); + TempBox.Dispose(); + TempBox = TextBoxes[6] as InputWidget; + Global.Config.SmsPause = AppendButtonMapping(TempBox.Text, Global.Config.SmsPause); + TempBox.Dispose(); + TempBox = TextBoxes[7] as InputWidget; + Global.Config.SmsReset = AppendButtonMapping(TempBox.Text, Global.Config.SmsReset); + Global.Config.SMSController[prev - 2].Enabled = IDX_CONTROLLERENABLED.Checked; + } TempBox.Dispose(); for (int i = 0; i < SMSControlList.Length; i++) { @@ -785,7 +833,8 @@ namespace BizHawk.MultiClient } for (int i = 0; i < joypads; i++) { - ControllComboBox.Items.Add(string.Format("Autofire Joypad {0}", i + 1)); + if (this.SystemComboBox.SelectedItem.ToString() != "TI-83") + ControllComboBox.Items.Add(string.Format("Autofire Joypad {0}", i + 1)); } ControllComboBox.SelectedIndex = 0; CurSelectConsole = this.SystemComboBox.SelectedItem.ToString();