diff --git a/BizHawk.MultiClient/Config.cs b/BizHawk.MultiClient/Config.cs index 4eaca5dc7e..715a0f88ac 100644 --- a/BizHawk.MultiClient/Config.cs +++ b/BizHawk.MultiClient/Config.cs @@ -17,6 +17,11 @@ NESController[3] = new NESControllerTemplate(false); GameBoyController = new NESControllerTemplate(true); TI83Controller[0] = new TI83ControllerTemplate(true); + + NESAutoController[0] = new NESControllerTemplate(false); + NESAutoController[1] = new NESControllerTemplate(false); + NESAutoController[2] = new NESControllerTemplate(false); + NESAutoController[3] = new NESControllerTemplate(false); } // Directories @@ -411,6 +416,7 @@ //NES settings public string NESReset = "Backspace"; public NESControllerTemplate[] NESController = new NESControllerTemplate[4]; + public NESControllerTemplate[] NESAutoController = new NESControllerTemplate[4]; //TI 83 settings public TI83ControllerTemplate[] TI83Controller = new TI83ControllerTemplate[1]; diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index dcdcbce972..82a83109d1 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -536,16 +536,16 @@ namespace BizHawk.MultiClient var anesControls = new Controller(NES.NESController); anesControls.Autofire = true; - for (int i = 0; i < 1 /*TODO make 2*/; i++) + for (int i = 0; i < 2 /*TODO*/; i++) { - anesControls.BindMulti("P" + (i + 1) + " Up", ""); - anesControls.BindMulti("P" + (i + 1) + " Down", ""); - anesControls.BindMulti("P" + (i + 1) + " Left", ""); - anesControls.BindMulti("P" + (i + 1) + " Right", ""); - anesControls.BindMulti("P" + (i + 1) + " A", "D"); - anesControls.BindMulti("P" + (i + 1) + " B", "F"); - anesControls.BindMulti("P" + (i + 1) + " Select", ""); - anesControls.BindMulti("P" + (i + 1) + " Start", ""); + anesControls.BindMulti("P" + (i + 1) + " Up", Global.Config.NESAutoController[i].Up); + anesControls.BindMulti("P" + (i + 1) + " Down", Global.Config.NESAutoController[i].Down); + anesControls.BindMulti("P" + (i + 1) + " Left", Global.Config.NESAutoController[i].Left); + anesControls.BindMulti("P" + (i + 1) + " Right", Global.Config.NESAutoController[i].Right); + anesControls.BindMulti("P" + (i + 1) + " A", Global.Config.NESAutoController[i].A); + anesControls.BindMulti("P" + (i + 1) + " B", Global.Config.NESAutoController[i].B); + 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; diff --git a/BizHawk.MultiClient/config/InputConfig.cs b/BizHawk.MultiClient/config/InputConfig.cs index 494e103e41..6b9892cb08 100644 --- a/BizHawk.MultiClient/config/InputConfig.cs +++ b/BizHawk.MultiClient/config/InputConfig.cs @@ -565,16 +565,34 @@ namespace BizHawk.MultiClient ControllerImage.Image = BizHawk.MultiClient.Properties.Resources.NESController; int jpad = this.ControllComboBox.SelectedIndex; string[] ButtonMappings = new string[NESControlList.Length]; - ButtonMappings[0] = Global.Config.NESController[jpad].Up; - ButtonMappings[1] = Global.Config.NESController[jpad].Down; - ButtonMappings[2] = Global.Config.NESController[jpad].Left; - ButtonMappings[3] = Global.Config.NESController[jpad].Right; - ButtonMappings[4] = Global.Config.NESController[jpad].A; - ButtonMappings[5] = Global.Config.NESController[jpad].B; - ButtonMappings[6] = Global.Config.NESController[jpad].Select; - ButtonMappings[7] = Global.Config.NESController[jpad].Start; - IDX_CONTROLLERENABLED.Checked = Global.Config.NESController[jpad].Enabled; + if (jpad < 4) + { + ButtonMappings[0] = Global.Config.NESController[jpad].Up; + ButtonMappings[1] = Global.Config.NESController[jpad].Down; + ButtonMappings[2] = Global.Config.NESController[jpad].Left; + ButtonMappings[3] = Global.Config.NESController[jpad].Right; + ButtonMappings[4] = Global.Config.NESController[jpad].A; + ButtonMappings[5] = Global.Config.NESController[jpad].B; + ButtonMappings[6] = Global.Config.NESController[jpad].Select; + ButtonMappings[7] = Global.Config.NESController[jpad].Start; + IDX_CONTROLLERENABLED.Checked = Global.Config.NESController[jpad].Enabled; + } + + else + { + ButtonMappings[0] = Global.Config.NESAutoController[jpad - 4].Up; + ButtonMappings[1] = Global.Config.NESAutoController[jpad - 4].Down; + ButtonMappings[2] = Global.Config.NESAutoController[jpad - 4].Left; + ButtonMappings[3] = Global.Config.NESAutoController[jpad - 4].Right; + ButtonMappings[4] = Global.Config.NESAutoController[jpad - 4].A; + ButtonMappings[5] = Global.Config.NESAutoController[jpad - 4].B; + ButtonMappings[6] = Global.Config.NESAutoController[jpad - 4].Select; + ButtonMappings[7] = Global.Config.NESAutoController[jpad - 4].Start; + IDX_CONTROLLERENABLED.Checked = Global.Config.NESController[jpad - 4].Enabled; + } + + Changed = true; Labels.Clear(); TextBoxes.Clear(); @@ -599,31 +617,63 @@ namespace BizHawk.MultiClient InputWidget TempBox; Label TempLabel; TempBox = TextBoxes[0] as InputWidget; - Global.Config.NESController[prev].Up = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].Up); - TempBox.Dispose(); - TempBox = TextBoxes[1] as InputWidget; - Global.Config.NESController[prev].Down = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].Down); - TempBox.Dispose(); - TempBox = TextBoxes[2] as InputWidget; - Global.Config.NESController[prev].Left = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].Left); - TempBox.Dispose(); - TempBox = TextBoxes[3] as InputWidget; - Global.Config.NESController[prev].Right = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].Right); - TempBox.Dispose(); - TempBox = TextBoxes[4] as InputWidget; - Global.Config.NESController[prev].A = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].A); - TempBox.Dispose(); - TempBox = TextBoxes[5] as InputWidget; - Global.Config.NESController[prev].B = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].B); - TempBox.Dispose(); - TempBox = TextBoxes[6] as InputWidget; - Global.Config.NESController[prev].Select = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].Select); - TempBox.Dispose(); - TempBox = TextBoxes[7] as InputWidget; - Global.Config.NESController[prev].Start = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].Start); - TempBox.Dispose(); - Global.Config.NESController[prev].Enabled = IDX_CONTROLLERENABLED.Checked; + if (prev < 4) + { + Global.Config.NESController[prev].Up = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].Up); + TempBox.Dispose(); + TempBox = TextBoxes[1] as InputWidget; + Global.Config.NESController[prev].Down = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].Down); + TempBox.Dispose(); + TempBox = TextBoxes[2] as InputWidget; + Global.Config.NESController[prev].Left = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].Left); + TempBox.Dispose(); + TempBox = TextBoxes[3] as InputWidget; + Global.Config.NESController[prev].Right = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].Right); + TempBox.Dispose(); + TempBox = TextBoxes[4] as InputWidget; + Global.Config.NESController[prev].A = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].A); + TempBox.Dispose(); + TempBox = TextBoxes[5] as InputWidget; + Global.Config.NESController[prev].B = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].B); + TempBox.Dispose(); + TempBox = TextBoxes[6] as InputWidget; + Global.Config.NESController[prev].Select = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].Select); + TempBox.Dispose(); + TempBox = TextBoxes[7] as InputWidget; + Global.Config.NESController[prev].Start = AppendButtonMapping(TempBox.Text, Global.Config.NESController[prev].Start); + TempBox.Dispose(); + + Global.Config.NESController[prev].Enabled = IDX_CONTROLLERENABLED.Checked; + } + else + { + Global.Config.NESAutoController[prev - 4].Up = AppendButtonMapping(TempBox.Text, Global.Config.NESAutoController[prev - 4].Up); + TempBox.Dispose(); + TempBox = TextBoxes[1] as InputWidget; + Global.Config.NESAutoController[prev - 4].Down = AppendButtonMapping(TempBox.Text, Global.Config.NESAutoController[prev - 4].Down); + TempBox.Dispose(); + TempBox = TextBoxes[2] as InputWidget; + Global.Config.NESAutoController[prev - 4].Left = AppendButtonMapping(TempBox.Text, Global.Config.NESAutoController[prev - 4].Left); + TempBox.Dispose(); + TempBox = TextBoxes[3] as InputWidget; + Global.Config.NESAutoController[prev - 4].Right = AppendButtonMapping(TempBox.Text, Global.Config.NESAutoController[prev - 4].Right); + TempBox.Dispose(); + TempBox = TextBoxes[4] as InputWidget; + Global.Config.NESAutoController[prev - 4].A = AppendButtonMapping(TempBox.Text, Global.Config.NESAutoController[prev - 4].A); + TempBox.Dispose(); + TempBox = TextBoxes[5] as InputWidget; + Global.Config.NESAutoController[prev - 4].B = AppendButtonMapping(TempBox.Text, Global.Config.NESAutoController[prev - 4].B); + TempBox.Dispose(); + TempBox = TextBoxes[6] as InputWidget; + Global.Config.NESAutoController[prev - 4].Select = AppendButtonMapping(TempBox.Text, Global.Config.NESAutoController[prev - 4].Select); + TempBox.Dispose(); + TempBox = TextBoxes[7] as InputWidget; + Global.Config.NESAutoController[prev - 4].Start = AppendButtonMapping(TempBox.Text, Global.Config.NESAutoController[prev - 4].Start); + TempBox.Dispose(); + + Global.Config.NESController[prev - 4].Enabled = IDX_CONTROLLERENABLED.Checked; + } TempBox.Dispose(); for (int i = 0; i < NESControlList.Length; i++) @@ -733,6 +783,10 @@ namespace BizHawk.MultiClient { ControllComboBox.Items.Add(string.Format("Joypad {0}", i + 1)); } + for (int i = 0; i < joypads; i++) + { + ControllComboBox.Items.Add(string.Format("Autofire Joypad {0}", i + 1)); + } ControllComboBox.SelectedIndex = 0; CurSelectConsole = this.SystemComboBox.SelectedItem.ToString(); CurSelectController = 0;