From 2983c239209baa909b27c838e990f406f67cd264 Mon Sep 17 00:00:00 2001 From: goyuken Date: Sat, 15 Dec 2012 02:36:38 +0000 Subject: [PATCH] atari7800: control hooked up, more or less --- .../Consoles/Atari/7800/Atari7800.cs | 16 ++++++++++-- BizHawk.MultiClient/MainForm.cs | 25 ++++++++++--------- BizHawk.MultiClient/movie/InputAdapters.cs | 2 +- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/BizHawk.Emulation/Consoles/Atari/7800/Atari7800.cs b/BizHawk.Emulation/Consoles/Atari/7800/Atari7800.cs index f9a443bdfe..57698f5cea 100644 --- a/BizHawk.Emulation/Consoles/Atari/7800/Atari7800.cs +++ b/BizHawk.Emulation/Consoles/Atari/7800/Atari7800.cs @@ -24,8 +24,11 @@ namespace BizHawk.Emulation _frame++; _islag = true; + ControlAdapter.Convert(Controller, theMachine.InputState); theMachine.ComputeNextFrame(avProvider.framebuffer); + _islag = false; // until we put in a working lagometer + if (_islag) { LagCount++; @@ -110,8 +113,11 @@ namespace BizHawk.Emulation return ms.ToArray(); } - public ControllerDefinition ControllerDefinition { get { return Atari7800ControllerDefinition; } } + Atari7800Control ControlAdapter; + + public ControllerDefinition ControllerDefinition { get; private set; } public IController Controller { get; set; } + /* public static readonly ControllerDefinition Atari7800ControllerDefinition = new ControllerDefinition { Name = "Atari 7800 Basic Controller", @@ -121,7 +127,7 @@ namespace BizHawk.Emulation "P2 Up", "P2 Down", "P2 Left", "P2 Right", "P2 B1", "P2 B2", "Reset", "Select" } - }; + };*/ class ConsoleLogger : ILogger { @@ -188,6 +194,12 @@ namespace BizHawk.Emulation logger); theMachine.Reset(); + + ControlAdapter = new Atari7800Control(theMachine); + if (ControlAdapter.ControlType.Name != "Atari 7800 ProLine Joystick Controller") + throw new Exception("For now, only Atari 7800 ProLine Joystick games are supported."); + ControllerDefinition = ControlAdapter.ControlType; + if (avProvider != null) avProvider.Dispose(); avProvider.ConnectToMachine(theMachine); diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index e68f22c2df..9797de35a6 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -995,40 +995,41 @@ namespace BizHawk.MultiClient Global.AutofireAtari2600Controls = autofireA2600Controls; - var a7800Controls = new Controller(Atari7800.Atari7800ControllerDefinition); + var a7800Controls = new Controller(Atari7800Control.ProLineJoystick); a7800Controls.BindMulti("P1 Up", Global.Config.Atari7800Controller[0].Up); a7800Controls.BindMulti("P1 Left", Global.Config.Atari7800Controller[0].Left); a7800Controls.BindMulti("P1 Right", Global.Config.Atari7800Controller[0].Right); a7800Controls.BindMulti("P1 Down", Global.Config.Atari7800Controller[0].Down); - a7800Controls.BindMulti("P1 B1", Global.Config.Atari7800Controller[0].Button1); - a7800Controls.BindMulti("P1 B2", Global.Config.Atari7800Controller[0].Button2); + a7800Controls.BindMulti("P1 Trigger", Global.Config.Atari7800Controller[0].Button1); + a7800Controls.BindMulti("P1 Trigger 2", Global.Config.Atari7800Controller[0].Button2); a7800Controls.BindMulti("P2 Up", Global.Config.Atari7800Controller[1].Up); a7800Controls.BindMulti("P2 Left", Global.Config.Atari7800Controller[1].Left); a7800Controls.BindMulti("P2 Right", Global.Config.Atari7800Controller[1].Right); a7800Controls.BindMulti("P2 Down", Global.Config.Atari7800Controller[1].Down); - a7800Controls.BindMulti("P2 B1", Global.Config.Atari7800Controller[1].Button1); - a7800Controls.BindMulti("P2 B2", Global.Config.Atari7800Controller[1].Button2); + a7800Controls.BindMulti("P2 Trigger", Global.Config.Atari7800Controller[1].Button1); + a7800Controls.BindMulti("P2 Trigger 2", Global.Config.Atari7800Controller[1].Button2); - a7800Controls.BindMulti("Reset", Global.Config.Atari2600ConsoleButtons[0].Reset); - a7800Controls.BindMulti("Select", Global.Config.Atari2600ConsoleButtons[0].Select); + //FIXME + //a7800Controls.BindMulti("Reset", Global.Config.Atari2600ConsoleButtons[0].Reset); + //a7800Controls.BindMulti("Select", Global.Config.Atari2600ConsoleButtons[0].Select); Global.Atari7800Controls = a7800Controls; - var autofireA7800Controls = new AutofireController(Atari7800.Atari7800ControllerDefinition); + var autofireA7800Controls = new AutofireController(Atari7800Control.ProLineJoystick); autofireA7800Controls.BindMulti("P1 Up", Global.Config.Atari7800AutoController[0].Up); autofireA7800Controls.BindMulti("P1 Left", Global.Config.Atari7800AutoController[0].Left); autofireA7800Controls.BindMulti("P1 Right", Global.Config.Atari7800AutoController[0].Right); autofireA7800Controls.BindMulti("P1 Down", Global.Config.Atari7800AutoController[0].Down); - autofireA7800Controls.BindMulti("P1 B1", Global.Config.Atari7800AutoController[0].Button1); - autofireA7800Controls.BindMulti("P1 B2", Global.Config.Atari7800AutoController[0].Button2); + autofireA7800Controls.BindMulti("P1 Trigger", Global.Config.Atari7800Controller[0].Button1); + autofireA7800Controls.BindMulti("P1 Trigger 2", Global.Config.Atari7800Controller[0].Button2); autofireA7800Controls.BindMulti("P2 Up", Global.Config.Atari7800AutoController[1].Up); autofireA7800Controls.BindMulti("P2 Left", Global.Config.Atari7800AutoController[1].Left); autofireA7800Controls.BindMulti("P2 Right", Global.Config.Atari7800AutoController[1].Right); autofireA7800Controls.BindMulti("P2 Down", Global.Config.Atari7800AutoController[1].Down); - autofireA7800Controls.BindMulti("P2 B1", Global.Config.Atari7800AutoController[1].Button1); - autofireA7800Controls.BindMulti("P2 B2", Global.Config.Atari7800AutoController[1].Button2); + autofireA7800Controls.BindMulti("P2 Trigger", Global.Config.Atari7800Controller[1].Button1); + autofireA7800Controls.BindMulti("P2 Trigger 2", Global.Config.Atari7800Controller[1].Button2); Global.AutofireAtari7800Controls = autofireA2600Controls; diff --git a/BizHawk.MultiClient/movie/InputAdapters.cs b/BizHawk.MultiClient/movie/InputAdapters.cs index b5a2f0ff00..38664f92d8 100644 --- a/BizHawk.MultiClient/movie/InputAdapters.cs +++ b/BizHawk.MultiClient/movie/InputAdapters.cs @@ -454,7 +454,7 @@ namespace BizHawk.MultiClient { return "|.|"; } - else if (ControlType == "Atari 7800 Basic Controller") + else if (ControlType == "Atari 7800 ProLine Joystick Controller") { return "|.|"; //TODO }