atari7800: control hooked up, more or less

This commit is contained in:
goyuken 2012-12-15 02:36:38 +00:00
parent 158e6a5dd6
commit 2983c23920
3 changed files with 28 additions and 15 deletions

View File

@ -24,8 +24,11 @@ namespace BizHawk.Emulation
_frame++; _frame++;
_islag = true; _islag = true;
ControlAdapter.Convert(Controller, theMachine.InputState);
theMachine.ComputeNextFrame(avProvider.framebuffer); theMachine.ComputeNextFrame(avProvider.framebuffer);
_islag = false; // until we put in a working lagometer
if (_islag) if (_islag)
{ {
LagCount++; LagCount++;
@ -110,8 +113,11 @@ namespace BizHawk.Emulation
return ms.ToArray(); return ms.ToArray();
} }
public ControllerDefinition ControllerDefinition { get { return Atari7800ControllerDefinition; } } Atari7800Control ControlAdapter;
public ControllerDefinition ControllerDefinition { get; private set; }
public IController Controller { get; set; } public IController Controller { get; set; }
/*
public static readonly ControllerDefinition Atari7800ControllerDefinition = new ControllerDefinition public static readonly ControllerDefinition Atari7800ControllerDefinition = new ControllerDefinition
{ {
Name = "Atari 7800 Basic Controller", Name = "Atari 7800 Basic Controller",
@ -121,7 +127,7 @@ namespace BizHawk.Emulation
"P2 Up", "P2 Down", "P2 Left", "P2 Right", "P2 B1", "P2 B2", "P2 Up", "P2 Down", "P2 Left", "P2 Right", "P2 B1", "P2 B2",
"Reset", "Select" "Reset", "Select"
} }
}; };*/
class ConsoleLogger : ILogger class ConsoleLogger : ILogger
{ {
@ -188,6 +194,12 @@ namespace BizHawk.Emulation
logger); logger);
theMachine.Reset(); 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) if (avProvider != null)
avProvider.Dispose(); avProvider.Dispose();
avProvider.ConnectToMachine(theMachine); avProvider.ConnectToMachine(theMachine);

View File

@ -995,40 +995,41 @@ namespace BizHawk.MultiClient
Global.AutofireAtari2600Controls = autofireA2600Controls; 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 Up", Global.Config.Atari7800Controller[0].Up);
a7800Controls.BindMulti("P1 Left", Global.Config.Atari7800Controller[0].Left); a7800Controls.BindMulti("P1 Left", Global.Config.Atari7800Controller[0].Left);
a7800Controls.BindMulti("P1 Right", Global.Config.Atari7800Controller[0].Right); a7800Controls.BindMulti("P1 Right", Global.Config.Atari7800Controller[0].Right);
a7800Controls.BindMulti("P1 Down", Global.Config.Atari7800Controller[0].Down); a7800Controls.BindMulti("P1 Down", Global.Config.Atari7800Controller[0].Down);
a7800Controls.BindMulti("P1 B1", Global.Config.Atari7800Controller[0].Button1); a7800Controls.BindMulti("P1 Trigger", Global.Config.Atari7800Controller[0].Button1);
a7800Controls.BindMulti("P1 B2", Global.Config.Atari7800Controller[0].Button2); a7800Controls.BindMulti("P1 Trigger 2", Global.Config.Atari7800Controller[0].Button2);
a7800Controls.BindMulti("P2 Up", Global.Config.Atari7800Controller[1].Up); a7800Controls.BindMulti("P2 Up", Global.Config.Atari7800Controller[1].Up);
a7800Controls.BindMulti("P2 Left", Global.Config.Atari7800Controller[1].Left); a7800Controls.BindMulti("P2 Left", Global.Config.Atari7800Controller[1].Left);
a7800Controls.BindMulti("P2 Right", Global.Config.Atari7800Controller[1].Right); a7800Controls.BindMulti("P2 Right", Global.Config.Atari7800Controller[1].Right);
a7800Controls.BindMulti("P2 Down", Global.Config.Atari7800Controller[1].Down); a7800Controls.BindMulti("P2 Down", Global.Config.Atari7800Controller[1].Down);
a7800Controls.BindMulti("P2 B1", Global.Config.Atari7800Controller[1].Button1); a7800Controls.BindMulti("P2 Trigger", Global.Config.Atari7800Controller[1].Button1);
a7800Controls.BindMulti("P2 B2", Global.Config.Atari7800Controller[1].Button2); a7800Controls.BindMulti("P2 Trigger 2", Global.Config.Atari7800Controller[1].Button2);
a7800Controls.BindMulti("Reset", Global.Config.Atari2600ConsoleButtons[0].Reset); //FIXME
a7800Controls.BindMulti("Select", Global.Config.Atari2600ConsoleButtons[0].Select); //a7800Controls.BindMulti("Reset", Global.Config.Atari2600ConsoleButtons[0].Reset);
//a7800Controls.BindMulti("Select", Global.Config.Atari2600ConsoleButtons[0].Select);
Global.Atari7800Controls = a7800Controls; 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 Up", Global.Config.Atari7800AutoController[0].Up);
autofireA7800Controls.BindMulti("P1 Left", Global.Config.Atari7800AutoController[0].Left); autofireA7800Controls.BindMulti("P1 Left", Global.Config.Atari7800AutoController[0].Left);
autofireA7800Controls.BindMulti("P1 Right", Global.Config.Atari7800AutoController[0].Right); autofireA7800Controls.BindMulti("P1 Right", Global.Config.Atari7800AutoController[0].Right);
autofireA7800Controls.BindMulti("P1 Down", Global.Config.Atari7800AutoController[0].Down); autofireA7800Controls.BindMulti("P1 Down", Global.Config.Atari7800AutoController[0].Down);
autofireA7800Controls.BindMulti("P1 B1", Global.Config.Atari7800AutoController[0].Button1); autofireA7800Controls.BindMulti("P1 Trigger", Global.Config.Atari7800Controller[0].Button1);
autofireA7800Controls.BindMulti("P1 B2", Global.Config.Atari7800AutoController[0].Button2); autofireA7800Controls.BindMulti("P1 Trigger 2", Global.Config.Atari7800Controller[0].Button2);
autofireA7800Controls.BindMulti("P2 Up", Global.Config.Atari7800AutoController[1].Up); autofireA7800Controls.BindMulti("P2 Up", Global.Config.Atari7800AutoController[1].Up);
autofireA7800Controls.BindMulti("P2 Left", Global.Config.Atari7800AutoController[1].Left); autofireA7800Controls.BindMulti("P2 Left", Global.Config.Atari7800AutoController[1].Left);
autofireA7800Controls.BindMulti("P2 Right", Global.Config.Atari7800AutoController[1].Right); autofireA7800Controls.BindMulti("P2 Right", Global.Config.Atari7800AutoController[1].Right);
autofireA7800Controls.BindMulti("P2 Down", Global.Config.Atari7800AutoController[1].Down); autofireA7800Controls.BindMulti("P2 Down", Global.Config.Atari7800AutoController[1].Down);
autofireA7800Controls.BindMulti("P2 B1", Global.Config.Atari7800AutoController[1].Button1); autofireA7800Controls.BindMulti("P2 Trigger", Global.Config.Atari7800Controller[1].Button1);
autofireA7800Controls.BindMulti("P2 B2", Global.Config.Atari7800AutoController[1].Button2); autofireA7800Controls.BindMulti("P2 Trigger 2", Global.Config.Atari7800Controller[1].Button2);
Global.AutofireAtari7800Controls = autofireA2600Controls; Global.AutofireAtari7800Controls = autofireA2600Controls;

View File

@ -454,7 +454,7 @@ namespace BizHawk.MultiClient
{ {
return "|.|"; return "|.|";
} }
else if (ControlType == "Atari 7800 Basic Controller") else if (ControlType == "Atari 7800 ProLine Joystick Controller")
{ {
return "|.|"; //TODO return "|.|"; //TODO
} }