diff --git a/stella/docs/stella.html b/stella/docs/stella.html
index 35bd4a500..b25763c50 100644
--- a/stella/docs/stella.html
+++ b/stella/docs/stella.html
@@ -209,40 +209,33 @@
software. Stella is written in C++, which allows it to be ported to other
operating systems and architectures. Since its original release Stella has
been ported to AcornOS, AmigaOS, DOS, FreeBSD, Linux, MacOS, OpenStep, OS/2,
- Sega Dreamcast, Unix, and Windows.
+ Sega Dreamcast, Unix, and Windows.
- New in Release 1.4.1
+ New in Release 1.4.2
- - Fixed PAL sound issues. PAL games now should sound correct (no distortion
- or missing sounds), but some games may still run too fast. This is still
- a work-in-progress, and will be fixed in Stella 1.5.
+ - Updated the sound system. All popping and cracking sounds that previously
+ occurred at program start/stop and when entering/exiting menu or pause mode
+ have been eliminated.
- - Cleaned up the SDL event gathering loop. This should hopefully fix the
- problems with "double-pumping events" reported by some Windows users.
- Event gathering and dispatching is now much faster as well.
+ - Added Control [ and Control ] keys to dynamically adjust the
+ sound volume during emulation.
- - Fixed a bug where the Control or Alt keys could be assigned to some event,
- but they could never be used. Control/Alt can now be used for any event.
+ - Added Control 0, Control 1, Control 2, Control 3
+ keys to dynamically change which paddle the mouse should emulate.
- - Updated stella.pro file to work with the latest Good2600 ROMset release
- (Thanks go to Voch for helping to maintain the stella.pro file).
+ - Added -video_driver argument. This accepts the different options
+ that can be specified for SDL_VIDEODRIVER (see SDL homepage for more
+ information). Basically, it eliminates the need to set the SDL_VIDEODRIVER
+ environment variable.
- - For the Windows port; removed requirement for ROM files to be named *.bin
- in the StellaX frontend. The ROM's can now have any name, but ZIP-files are
- not yet supported.
+ - For the Windows port; added windib and directx as options for
+ 'video_driver' when using software rendering. The 'windib' option is now
+ the default, and in many cases it's up to 10 times faster than using
+ 'directx'.
- - For the Windows port; fixed the problems with the included modified SDL
- library and Windows 98 users. Stella should now run in Windows 98.
-
- - For the OSX port; added preference to allow user to select the directory
- in which ROM images are stored. This sets the default directory to start
- the browsing for a ROM in, and doesn't preclude the user from selecting a
- file outside that directory.
-
- - For the OSX port; fixed preferences bug where Preferences changed before
- a game was opened were not being saved.
+ - For the OSX port; blah ...
@@ -328,8 +321,9 @@
The Mac version of Stella is designed to work on a Power Macintosh with
the following:
- - Mac OSX 10.1 or Above
- - 500 MHz G3 PPC processor or Above
+ - Mac OSX 10.1 or Above
+ - 500 MHz G4 PPC processor or above (Stella may work with a G3
+ processor, but this is still a work-in-progress)
@@ -1491,6 +1485,35 @@
Control + s |
+
+ Increase volume |
+ Control + ] |
+
+
+
+ Decrease volume |
+ Control + [ |
+
+
+
+ Set mouse to emulate paddle 0 |
+ Control + 0 |
+
+
+
+ Set mouse to emulate paddle 1 |
+ Control + 1 |
+
+
+
+ Set mouse to emulate paddle 2 |
+ Control + 2 |
+
+
+
+ Set mouse to emulate paddle 3 |
+ Control + 3 |
+
diff --git a/stella/src/common/FrameBufferGL.cxx b/stella/src/common/FrameBufferGL.cxx
index 027de2470..cebbd04ea 100644
--- a/stella/src/common/FrameBufferGL.cxx
+++ b/stella/src/common/FrameBufferGL.cxx
@@ -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.7 2005-01-03 19:16:09 stephena Exp $
+// $Id: FrameBufferGL.cxx,v 1.8 2005-01-04 02:29:28 stephena Exp $
//============================================================================
#include
@@ -319,7 +319,7 @@ void FrameBufferGL::drawBoundedBox(uInt32 x, uInt32 y, uInt32 w, uInt32 h)
glRecti(x, y, x+w, y+h);
// Now draw the outer edges
- glLineWidth(theZoomLevel/2);
+ glLineWidth(theZoomLevel);
glColor4f(0.8, 0.8, 0.8, 1.0);
glBegin(GL_LINE_LOOP);
glVertex2i(x, y ); // Top Left
diff --git a/stella/src/common/SoundSDL.cxx b/stella/src/common/SoundSDL.cxx
index 11726e76b..da957bb69 100644
--- a/stella/src/common/SoundSDL.cxx
+++ b/stella/src/common/SoundSDL.cxx
@@ -13,17 +13,20 @@
// 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.6 2004-07-22 01:54:08 stephena Exp $
+// $Id: SoundSDL.cxx,v 1.7 2005-01-04 02:29:29 stephena Exp $
//============================================================================
+#include
#include
#include
#include
#include "TIASound.h"
#include "Console.hxx"
+#include "FrameBuffer.hxx"
#include "Serializer.hxx"
#include "Deserializer.hxx"
+#include "Settings.hxx"
#include "System.hxx"
#include "SoundSDL.hxx"
@@ -155,6 +158,33 @@ void SoundSDL::setVolume(Int32 percent)
}
}
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+void SoundSDL::adjustVolume(Int8 direction)
+{
+ ostringstream strval;
+ string message;
+
+ Int32 percent = myVolume;
+
+ if(direction == -1)
+ percent -= 2;
+ else if(direction == 1)
+ percent += 2;
+
+ if((percent < 0) || (percent > 100))
+ return;
+
+ setVolume(percent);
+
+ // Now show an onscreen message
+ strval << percent;
+ message = "Volume set to ";
+ message += strval.str();
+
+ myConsole->frameBuffer().showMessage(message);
+ myConsole->settings().setInt("volume", percent);
+}
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void SoundSDL::set(uInt16 addr, uInt8 value, Int32 cycle)
{
diff --git a/stella/src/common/SoundSDL.hxx b/stella/src/common/SoundSDL.hxx
index 25c0c89de..0358e6447 100644
--- a/stella/src/common/SoundSDL.hxx
+++ b/stella/src/common/SoundSDL.hxx
@@ -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.hxx,v 1.5 2004-06-20 00:52:37 stephena Exp $
+// $Id: SoundSDL.hxx,v 1.6 2005-01-04 02:29:29 stephena Exp $
//============================================================================
#ifndef SOUNDSDL_HXX
@@ -29,7 +29,7 @@
This class implements the sound API for SDL.
@author Stephen Anthony and Bradford W. Mott
- @version $Id: SoundSDL.hxx,v 1.5 2004-06-20 00:52:37 stephena Exp $
+ @version $Id: SoundSDL.hxx,v 1.6 2005-01-04 02:29:29 stephena Exp $
*/
class SoundSDL : public Sound
{
@@ -83,6 +83,14 @@ class SoundSDL : public Sound
*/
virtual void setVolume(Int32 percent);
+ /**
+ Adjusts the volume of the sound device based on the given direction.
+
+ @param direction Increase or decrease the current volume by a predefined
+ amount based on the direction (1 = increase, -1 =decrease)
+ */
+ virtual void adjustVolume(Int8 direction);
+
public:
/**
Loads the current state of this device from the given Deserializer.
diff --git a/stella/src/common/mainSDL.cxx b/stella/src/common/mainSDL.cxx
index 766b33300..78a62280e 100644
--- a/stella/src/common/mainSDL.cxx
+++ b/stella/src/common/mainSDL.cxx
@@ -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.18 2005-01-03 19:16:09 stephena Exp $
+// $Id: mainSDL.cxx,v 1.19 2005-01-04 02:29:29 stephena Exp $
//============================================================================
#include
@@ -64,6 +64,7 @@ static void HandleEvents();
static uInt32 GetTicks();
static void SetupProperties(PropertiesSet& set);
static void ShowInfo(const string& msg);
+static void SetPaddleMode(Int32 mode);
#ifdef JOYSTICK_SUPPORT
// Lookup table for joystick numbers and events
@@ -266,6 +267,21 @@ static KeyList keyList[] = {
};
+/**
+ Set the mouse to emulate the given paddle
+*/
+void SetPaddleMode(Int32 mode)
+{
+ thePaddleMode = mode;
+
+ ostringstream buf;
+ buf << "Mouse is paddle " << mode;
+ theDisplay->showMessage(buf.str());
+
+ theSettings->setInt("paddle",thePaddleMode);
+}
+
+
/**
Prints given message based on 'theShowInfoFlag'
*/
@@ -412,6 +428,15 @@ void HandleEvents()
case SDLK_RETURN:
theDisplay->toggleFullscreen();
break;
+
+ case SDLK_LEFTBRACKET:
+ theSound->adjustVolume(-1);
+ break;
+
+ case SDLK_RIGHTBRACKET:
+ theSound->adjustVolume(1);
+ break;
+
#ifdef DISPLAY_OPENGL
case SDLK_f:
if(theUseOpenGLFlag)
@@ -475,6 +500,22 @@ void HandleEvents()
theDisplay->setupPalette();
break;
+ case SDLK_0: // Ctrl-0 sets the mouse to paddle 0
+ SetPaddleMode(0);
+ break;
+
+ case SDLK_1: // Ctrl-1 sets the mouse to paddle 1
+ SetPaddleMode(1);
+ break;
+
+ case SDLK_2: // Ctrl-2 sets the mouse to paddle 2
+ SetPaddleMode(2);
+ break;
+
+ case SDLK_3: // Ctrl-3 sets the mouse to paddle 3
+ SetPaddleMode(3);
+ break;
+
#ifdef DEVELOPER_SUPPORT
case SDLK_END: // Ctrl-End increases Width
theConsole->changeWidth(1);
diff --git a/stella/src/emucore/Sound.cxx b/stella/src/emucore/Sound.cxx
index 993779eea..567099401 100644
--- a/stella/src/emucore/Sound.cxx
+++ b/stella/src/emucore/Sound.cxx
@@ -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.13 2004-07-22 01:54:08 stephena Exp $
+// $Id: Sound.cxx,v 1.14 2005-01-04 02:29:30 stephena Exp $
//============================================================================
#include "Serializer.hxx"
@@ -76,6 +76,11 @@ void Sound::setVolume(Int32 volume)
{
}
+// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+void Sound::adjustVolume(Int8 direction)
+{
+}
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool Sound::load(Deserializer& in)
{
diff --git a/stella/src/emucore/Sound.hxx b/stella/src/emucore/Sound.hxx
index 6d207f8f4..641653e99 100644
--- a/stella/src/emucore/Sound.hxx
+++ b/stella/src/emucore/Sound.hxx
@@ -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.hxx,v 1.12 2004-07-22 01:54:08 stephena Exp $
+// $Id: Sound.hxx,v 1.13 2005-01-04 02:29:31 stephena Exp $
//============================================================================
#ifndef SOUND_HXX
@@ -33,7 +33,7 @@ class System;
to compile Stella with no sound support whatsoever.
@author Stephen Anthony and Bradford W. Mott
- @version $Id: Sound.hxx,v 1.12 2004-07-22 01:54:08 stephena Exp $
+ @version $Id: Sound.hxx,v 1.13 2005-01-04 02:29:31 stephena Exp $
*/
class Sound
{
@@ -107,6 +107,14 @@ class Sound
*/
virtual void setVolume(Int32 percent);
+ /**
+ Adjusts the volume of the sound device based on the given direction.
+
+ @param direction Increase or decrease the current volume by a predefined
+ amount based on the direction (1 = increase, -1 =decrease)
+ */
+ virtual void adjustVolume(Int8 direction);
+
public:
/**
Loads the current state of this device from the given Deserializer.