mirror of https://github.com/stella-emu/stella.git
- Removed the 'joyleft' and 'joyright' arguments, since they never
really worked right anyway. - Stella now tries to open all joysticks you have (up to 4), and they can then be remapped any way you want. - As of the previous cvs commit, all old state files are now invalid. Sorry, but it had to happen sometime (and it may happen again). git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@241 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
6c3b06d19e
commit
ada3f7cf24
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: Console.cxx,v 1.26 2004-04-26 17:27:31 stephena Exp $
|
||||
// $Id: Console.cxx,v 1.27 2004-04-27 00:50:51 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <assert.h>
|
||||
|
@ -207,7 +207,6 @@ Console::~Console()
|
|||
void Console::update()
|
||||
{
|
||||
myFrameBuffer.update();
|
||||
//FIXME mySound.update();
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: FrameBuffer.cxx,v 1.7 2003-11-24 14:51:06 stephena Exp $
|
||||
// $Id: FrameBuffer.cxx,v 1.8 2004-04-27 00:50:51 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <sstream>
|
||||
|
@ -409,9 +409,9 @@ void FrameBuffer::sendJoyEvent(StellaEvent::JoyStick stick,
|
|||
case MAIN_MENU:
|
||||
// if(key == StellaEvent::KCODE_RETURN)
|
||||
// myCurrentWidget = currentSelectedWidget();
|
||||
if(stick == StellaEvent::JSTICK_0 && code == StellaEvent::JAXIS_UP)
|
||||
if(code == StellaEvent::JAXIS_UP)
|
||||
moveCursorUp(1);
|
||||
else if(stick == StellaEvent::JSTICK_0 && code == StellaEvent::JAXIS_DOWN)
|
||||
else if(code == StellaEvent::JAXIS_DOWN)
|
||||
moveCursorDown(1);
|
||||
|
||||
break; // MAIN_MENU
|
||||
|
@ -422,9 +422,9 @@ void FrameBuffer::sendJoyEvent(StellaEvent::JoyStick stick,
|
|||
addJoyBinding(mySelectedEvent, stick, code);
|
||||
myRemapEventSelectedFlag = false;
|
||||
}
|
||||
else if(stick == StellaEvent::JSTICK_0 && code == StellaEvent::JAXIS_UP)
|
||||
else if(code == StellaEvent::JAXIS_UP)
|
||||
moveCursorUp(1);
|
||||
else if(stick == StellaEvent::JSTICK_0 && code == StellaEvent::JAXIS_DOWN)
|
||||
else if(code == StellaEvent::JAXIS_DOWN)
|
||||
moveCursorDown(1);
|
||||
// else if(key == StellaEvent::KCODE_PAGEUP)
|
||||
// movePageUp();
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: Settings.cxx,v 1.18 2004-04-04 02:03:15 stephena Exp $
|
||||
// $Id: Settings.cxx,v 1.19 2004-04-27 00:50:51 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <cassert>
|
||||
|
@ -53,8 +53,6 @@ Settings::Settings()
|
|||
set("hidecursor", "false");
|
||||
set("volume", "-1");
|
||||
set("accurate", "true");
|
||||
set("joyleft", "0");
|
||||
set("joyright", "1");
|
||||
set("framerate", "60");
|
||||
set("keymap", "");
|
||||
set("joymap", "");
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: Sound.cxx,v 1.10 2004-04-26 17:27:31 stephena Exp $
|
||||
// $Id: Sound.cxx,v 1.11 2004-04-27 00:50:51 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include "Serializer.hxx"
|
||||
|
@ -75,6 +75,8 @@ bool Sound::save(Serializer& out)
|
|||
out.putLong(reg);
|
||||
out.putLong(reg);
|
||||
|
||||
out.putLong(myLastSoundUpdateCycle);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -93,5 +95,7 @@ bool Sound::load(Deserializer& in)
|
|||
reg = (uInt8) in.getLong();
|
||||
reg = (uInt8) in.getLong();
|
||||
|
||||
myLastSoundUpdateCycle = (Int32) in.getLong();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: StellaEvent.hxx,v 1.7 2003-09-30 18:46:12 stephena Exp $
|
||||
// $Id: StellaEvent.hxx,v 1.8 2004-04-27 00:50:51 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#ifndef STELLAEVENT_HXX
|
||||
|
@ -28,7 +28,7 @@
|
|||
by the frontends directly.
|
||||
|
||||
@author Stephen Anthony
|
||||
@version $Id: StellaEvent.hxx,v 1.7 2003-09-30 18:46:12 stephena Exp $
|
||||
@version $Id: StellaEvent.hxx,v 1.8 2004-04-27 00:50:51 stephena Exp $
|
||||
*/
|
||||
class StellaEvent
|
||||
{
|
||||
|
@ -80,7 +80,6 @@ class StellaEvent
|
|||
enum JoyStick
|
||||
{
|
||||
JSTICK_0, JSTICK_1, JSTICK_2, JSTICK_3,
|
||||
JSTICK_4, JSTICK_5, JSTICK_6, JSTICK_7,
|
||||
LastJSTICK
|
||||
};
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: TIA.cxx,v 1.31 2004-04-26 17:27:31 stephena Exp $
|
||||
// $Id: TIA.cxx,v 1.32 2004-04-27 00:50:51 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <cassert>
|
||||
|
@ -288,7 +288,6 @@ bool TIA::save(Serializer& out)
|
|||
{
|
||||
out.putString(device);
|
||||
|
||||
//FIXME out.putLong(myLastSoundUpdateCycle);
|
||||
out.putLong(myClockWhenFrameStarted);
|
||||
out.putLong(myClockStartDisplay);
|
||||
out.putLong(myClockStopDisplay);
|
||||
|
@ -385,7 +384,6 @@ bool TIA::load(Deserializer& in)
|
|||
if(in.getString() != device)
|
||||
return false;
|
||||
|
||||
//FIXME myLastSoundUpdateCycle = (Int32) in.getLong();
|
||||
myClockWhenFrameStarted = (Int32) in.getLong();
|
||||
myClockStartDisplay = (Int32) in.getLong();
|
||||
myClockStopDisplay = (Int32) in.getLong();
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: FrameBufferGL.cxx,v 1.18 2004-04-26 12:49:46 stephena Exp $
|
||||
// $Id: FrameBufferGL.cxx,v 1.19 2004-04-27 00:50:52 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <SDL.h>
|
||||
|
@ -229,7 +229,7 @@ bool FrameBufferGL::init()
|
|||
<< "Vendor : " << glGetString(GL_VENDOR) << endl
|
||||
<< "Renderer: " << glGetString(GL_RENDERER) << endl
|
||||
<< "Version : " << glGetString(GL_VERSION) << endl
|
||||
<< colormode.str() << endl;
|
||||
<< colormode.str() << endl << endl;
|
||||
}
|
||||
|
||||
// Make sure that theUseFullScreenFlag sets up fullscreen mode correctly
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: SettingsUNIX.cxx,v 1.8 2004-04-04 02:03:15 stephena Exp $
|
||||
// $Id: SettingsUNIX.cxx,v 1.9 2004-04-27 00:50:52 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <cstdlib>
|
||||
|
@ -98,8 +98,6 @@ void SettingsUNIX::usage(string& message)
|
|||
#ifdef JOYSTICK_SUPPORT
|
||||
<< " -paddle <0|1|2|3|real> Indicates which paddle the mouse should emulate\n"
|
||||
<< " or that real Atari 2600 paddles are being used\n"
|
||||
<< " -joyleft <number> The joystick number representing the left controller\n"
|
||||
<< " -joyright <number> The joystick number representing the right controller\n"
|
||||
#else
|
||||
<< " -paddle <0|1|2|3> Indicates which paddle the mouse should emulate\n"
|
||||
#endif
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: SettingsWin32.cxx,v 1.3 2004-04-04 02:03:15 stephena Exp $
|
||||
// $Id: SettingsWin32.cxx,v 1.4 2004-04-27 00:50:52 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <cstdlib>
|
||||
|
@ -104,8 +104,6 @@ void SettingsWin32::usage(string& message)
|
|||
#ifdef JOYSTICK_SUPPORT
|
||||
<< " -paddle <0|1|2|3|real> Indicates which paddle the mouse should emulate\n"
|
||||
<< " or that real Atari 2600 paddles are being used\n"
|
||||
<< " -joyleft <number> The joystick number representing the left controller\n"
|
||||
<< " -joyright <number> The joystick number representing the right controller\n"
|
||||
#else
|
||||
<< " -paddle <0|1|2|3> Indicates which paddle the mouse should emulate\n"
|
||||
#endif
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: mainSDL.cxx,v 1.72 2004-04-26 12:49:46 stephena Exp $
|
||||
// $Id: mainSDL.cxx,v 1.73 2004-04-27 00:50:52 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <fstream>
|
||||
|
@ -64,11 +64,20 @@ static uInt32 getTicks();
|
|||
static bool setupProperties(PropertiesSet& set);
|
||||
|
||||
#ifdef JOYSTICK_SUPPORT
|
||||
static SDL_Joystick* theLeftJoystick = (SDL_Joystick*) NULL;
|
||||
static SDL_Joystick* theRightJoystick = (SDL_Joystick*) NULL;
|
||||
static uInt32 theLeftJoystickNumber;
|
||||
static uInt32 theRightJoystickNumber;
|
||||
static SDL_Joystick* theJoysticks[StellaEvent::LastJSTICK];
|
||||
// static uInt32 thePaddleNumber;
|
||||
|
||||
// Lookup table for joystick numbers and events
|
||||
StellaEvent::JoyStick joyList[StellaEvent::LastJSTICK] = {
|
||||
StellaEvent::JSTICK_0, StellaEvent::JSTICK_1,
|
||||
StellaEvent::JSTICK_2, StellaEvent::JSTICK_3
|
||||
};
|
||||
StellaEvent::JoyCode joyButtonList[StellaEvent::LastJCODE] = {
|
||||
StellaEvent::JBUTTON_0, StellaEvent::JBUTTON_1, StellaEvent::JBUTTON_2,
|
||||
StellaEvent::JBUTTON_3, StellaEvent::JBUTTON_4, StellaEvent::JBUTTON_5,
|
||||
StellaEvent::JBUTTON_6, StellaEvent::JBUTTON_7, StellaEvent::JBUTTON_8,
|
||||
StellaEvent::JBUTTON_9
|
||||
};
|
||||
#endif
|
||||
|
||||
// Pointer to the console object or the null pointer
|
||||
|
@ -221,19 +230,6 @@ static Switches keyList[] = {
|
|||
{ SDLK_PAGEDOWN, StellaEvent::KCODE_PAGEDOWN }
|
||||
};
|
||||
|
||||
// Lookup table for joystick numbers and events
|
||||
StellaEvent::JoyStick joyList[StellaEvent::LastJSTICK] = {
|
||||
StellaEvent::JSTICK_0, StellaEvent::JSTICK_1,
|
||||
StellaEvent::JSTICK_2, StellaEvent::JSTICK_3
|
||||
};
|
||||
StellaEvent::JoyCode joyButtonList[StellaEvent::LastJCODE] = {
|
||||
StellaEvent::JBUTTON_0, StellaEvent::JBUTTON_1, StellaEvent::JBUTTON_2,
|
||||
StellaEvent::JBUTTON_3, StellaEvent::JBUTTON_4, StellaEvent::JBUTTON_5,
|
||||
StellaEvent::JBUTTON_6, StellaEvent::JBUTTON_7, StellaEvent::JBUTTON_8,
|
||||
StellaEvent::JBUTTON_9
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
Returns number of ticks in microseconds
|
||||
*/
|
||||
|
@ -260,41 +256,31 @@ inline uInt32 getTicks()
|
|||
bool setupJoystick()
|
||||
{
|
||||
#ifdef JOYSTICK_SUPPORT
|
||||
// First clear the joystick array
|
||||
for(uInt32 i = 0; i < StellaEvent::LastJSTICK; i++)
|
||||
theJoysticks[i] = (SDL_Joystick*) NULL;
|
||||
|
||||
// Initialize the joystick subsystem
|
||||
if((SDL_InitSubSystem(SDL_INIT_JOYSTICK) == -1) || (SDL_NumJoysticks() <= 0))
|
||||
{
|
||||
if(theShowInfoFlag)
|
||||
cout << "No joysticks present, use the keyboard.\n";
|
||||
theLeftJoystick = theRightJoystick = 0;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
theLeftJoystickNumber = (uInt32) theConsole->settings().getInt("joyleft");
|
||||
if((theLeftJoystick = SDL_JoystickOpen(theLeftJoystickNumber)) != NULL)
|
||||
// Try to open as many joysticks as possible (up to 4)
|
||||
// Let the user decide how to map them
|
||||
uInt32 limit = SDL_NumJoysticks() <= StellaEvent::LastJSTICK ?
|
||||
SDL_NumJoysticks() : StellaEvent::LastJSTICK;
|
||||
for(uInt32 i = 0; i < limit; i++)
|
||||
{
|
||||
if(theShowInfoFlag)
|
||||
cout << "Left joystick is a "
|
||||
<< SDL_JoystickName(theLeftJoystickNumber)
|
||||
<< " with " << SDL_JoystickNumButtons(theLeftJoystick) << " buttons.\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if(theShowInfoFlag)
|
||||
cout << "Left joystick not present, use keyboard instead.\n";
|
||||
}
|
||||
|
||||
theRightJoystickNumber = theConsole->settings().getInt("joyright");
|
||||
if((theRightJoystick = SDL_JoystickOpen(theRightJoystickNumber)) != NULL)
|
||||
{
|
||||
if(theShowInfoFlag)
|
||||
cout << "Right joystick is a "
|
||||
<< SDL_JoystickName(theRightJoystickNumber)
|
||||
<< " with " << SDL_JoystickNumButtons(theRightJoystick) << " buttons.\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if(theShowInfoFlag)
|
||||
cout << "Right joystick not present, use keyboard instead.\n";
|
||||
theJoysticks[i] = SDL_JoystickOpen(i);
|
||||
if(theJoysticks[i] != NULL && theShowInfoFlag)
|
||||
{
|
||||
cout << "Joystick " << i << ": " << SDL_JoystickName(i)
|
||||
<< " with " << SDL_JoystickNumButtons(theJoysticks[i]) << " buttons.\n";
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -540,6 +526,7 @@ void handleEvents()
|
|||
|
||||
if(event.jbutton.which >= StellaEvent::LastJSTICK)
|
||||
return;
|
||||
|
||||
stick = joyList[event.jbutton.which];
|
||||
|
||||
if((event.type == SDL_JOYBUTTONDOWN) || (event.type == SDL_JOYBUTTONUP))
|
||||
|
@ -644,10 +631,11 @@ void cleanup()
|
|||
if(SDL_WasInit(SDL_INIT_EVERYTHING))
|
||||
{
|
||||
#ifdef JOYSTICK_SUPPORT
|
||||
if(SDL_JoystickOpened(theLeftJoystickNumber))
|
||||
SDL_JoystickClose(theLeftJoystick);
|
||||
if(SDL_JoystickOpened(theRightJoystickNumber))
|
||||
SDL_JoystickClose(theRightJoystick);
|
||||
for(uInt32 i = 0; i < StellaEvent::LastJSTICK; i++)
|
||||
{
|
||||
if(SDL_JoystickOpened(i))
|
||||
SDL_JoystickClose(theJoysticks[i]);
|
||||
}
|
||||
#endif
|
||||
|
||||
SDL_Quit();
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: SoundSDL.cxx,v 1.9 2004-04-26 17:27:32 stephena Exp $
|
||||
// $Id: SoundSDL.cxx,v 1.10 2004-04-27 00:50:52 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <SDL.h>
|
||||
|
@ -25,7 +25,7 @@
|
|||
|
||||
#include "SoundSDL.hxx"
|
||||
|
||||
#define DIGITAL_SOUND
|
||||
//#define DIGITAL_SOUND
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
SoundSDL::SoundSDL(uInt32 fragsize, uInt32 queuesize)
|
||||
|
@ -235,6 +235,8 @@ bool SoundSDL::save(Serializer& out)
|
|||
out.putLong(reg4);
|
||||
out.putLong(reg5);
|
||||
out.putLong(reg6);
|
||||
|
||||
out.putLong(myLastSoundUpdateCycle);
|
||||
}
|
||||
catch(char *msg)
|
||||
{
|
||||
|
@ -268,6 +270,8 @@ bool SoundSDL::load(Deserializer& in)
|
|||
reg5 = (uInt8) in.getLong();
|
||||
reg6 = (uInt8) in.getLong();
|
||||
|
||||
myLastSoundUpdateCycle = (Int32) in.getLong();
|
||||
|
||||
// Only update the TIA sound registers if sound is enabled
|
||||
if(myIsInitializedFlag)
|
||||
Tia_set_registers(reg1, reg2, reg3, reg4, reg5, reg6);
|
||||
|
|
Loading…
Reference in New Issue