mirror of https://github.com/stella-emu/stella.git
- Added 'Ctrl ]' and 'Ctrl [' keys to dynamically increase/decrease volume.
- Added 'Ctrl 0', 'Ctrl 1', 'Ctrl 2', 'Ctrl 3' keys to dynamically set which paddle the mouse should emulate. - Updated the user manual with above options. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@350 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
219687f521
commit
6508718b39
|
@ -212,37 +212,30 @@
|
||||||
Sega Dreamcast, Unix, and Windows.
|
Sega Dreamcast, Unix, and Windows.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2><b>New in Release 1.4.1</b></h2>
|
<h2><b>New in Release 1.4.2</b></h2>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Fixed PAL sound issues. PAL games now should sound correct (no distortion
|
<li>Updated the sound system. All popping and cracking sounds that previously
|
||||||
or missing sounds), but some games may still run too fast. This is still
|
occurred at program start/stop and when entering/exiting menu or pause mode
|
||||||
a work-in-progress, and will be fixed in Stella 1.5.</li>
|
have been eliminated.</li>
|
||||||
|
|
||||||
<li>Cleaned up the SDL event gathering loop. This should hopefully fix the
|
<li>Added <b>Control [</b> and <b>Control ]</b> keys to dynamically adjust the
|
||||||
problems with "double-pumping events" reported by some Windows users.
|
sound volume during emulation.</li>
|
||||||
Event gathering and dispatching is now much faster as well.</li>
|
|
||||||
|
|
||||||
<li>Fixed a bug where the Control or Alt keys could be assigned to some event,
|
<li>Added <b>Control 0</b>, <b>Control 1</b>, <b>Control 2</b>, <b>Control 3</b>
|
||||||
but they could never be used. Control/Alt can now be used for any event.</li>
|
keys to dynamically change which paddle the mouse should emulate.</li>
|
||||||
|
|
||||||
<li>Updated stella.pro file to work with the latest Good2600 ROMset release
|
<li>Added <b>-video_driver</b> argument. This accepts the different options
|
||||||
(Thanks go to Voch for helping to maintain the stella.pro file).</li>
|
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.</li>
|
||||||
|
|
||||||
<li>For the Windows port; removed requirement for ROM files to be named *.bin
|
<li>For the Windows port; added <i>windib</i> and <i>directx</i> as options for
|
||||||
in the StellaX frontend. The ROM's can now have any name, but ZIP-files are
|
'video_driver' when using software rendering. The 'windib' option is now
|
||||||
not yet supported.</li>
|
the default, and in many cases it's up to 10 times faster than using
|
||||||
|
'directx'.</li>
|
||||||
|
|
||||||
<li>For the Windows port; fixed the problems with the included modified SDL
|
<li>For the OSX port; blah ...</li>
|
||||||
library and Windows 98 users. Stella should now run in Windows 98.</li>
|
|
||||||
|
|
||||||
<li>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.</li>
|
|
||||||
|
|
||||||
<li>For the OSX port; fixed preferences bug where Preferences changed before
|
|
||||||
a game was opened were not being saved.</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -328,8 +321,9 @@
|
||||||
<p>The Mac version of Stella is designed to work on a Power Macintosh with
|
<p>The Mac version of Stella is designed to work on a Power Macintosh with
|
||||||
the following:</p>
|
the following:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Mac OSX 10.1 or Above </li>
|
<li>Mac OSX 10.1 or Above</li>
|
||||||
<li>500 MHz G3 PPC processor or Above </li>
|
<li>500 MHz G4 PPC processor or above (Stella <b>may</b> work with a G3
|
||||||
|
processor, but this is still a work-in-progress)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -1491,6 +1485,35 @@
|
||||||
<td>Control + s</td>
|
<td>Control + s</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>Increase volume</td>
|
||||||
|
<td>Control + ]</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>Decrease volume</td>
|
||||||
|
<td>Control + [</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>Set mouse to emulate paddle 0</td>
|
||||||
|
<td>Control + 0</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>Set mouse to emulate paddle 1</td>
|
||||||
|
<td>Control + 1</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>Set mouse to emulate paddle 2</td>
|
||||||
|
<td>Control + 2</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>Set mouse to emulate paddle 3</td>
|
||||||
|
<td>Control + 3</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<br><br><br>
|
<br><br><br>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// 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 <SDL.h>
|
#include <SDL.h>
|
||||||
|
@ -319,7 +319,7 @@ void FrameBufferGL::drawBoundedBox(uInt32 x, uInt32 y, uInt32 w, uInt32 h)
|
||||||
glRecti(x, y, x+w, y+h);
|
glRecti(x, y, x+w, y+h);
|
||||||
|
|
||||||
// Now draw the outer edges
|
// Now draw the outer edges
|
||||||
glLineWidth(theZoomLevel/2);
|
glLineWidth(theZoomLevel);
|
||||||
glColor4f(0.8, 0.8, 0.8, 1.0);
|
glColor4f(0.8, 0.8, 0.8, 1.0);
|
||||||
glBegin(GL_LINE_LOOP);
|
glBegin(GL_LINE_LOOP);
|
||||||
glVertex2i(x, y ); // Top Left
|
glVertex2i(x, y ); // Top Left
|
||||||
|
|
|
@ -13,17 +13,20 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// 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 <sstream>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
|
|
||||||
#include "TIASound.h"
|
#include "TIASound.h"
|
||||||
#include "Console.hxx"
|
#include "Console.hxx"
|
||||||
|
#include "FrameBuffer.hxx"
|
||||||
#include "Serializer.hxx"
|
#include "Serializer.hxx"
|
||||||
#include "Deserializer.hxx"
|
#include "Deserializer.hxx"
|
||||||
|
#include "Settings.hxx"
|
||||||
#include "System.hxx"
|
#include "System.hxx"
|
||||||
#include "SoundSDL.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)
|
void SoundSDL::set(uInt16 addr, uInt8 value, Int32 cycle)
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// 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
|
#ifndef SOUNDSDL_HXX
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
This class implements the sound API for SDL.
|
This class implements the sound API for SDL.
|
||||||
|
|
||||||
@author Stephen Anthony and Bradford W. Mott
|
@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
|
class SoundSDL : public Sound
|
||||||
{
|
{
|
||||||
|
@ -83,6 +83,14 @@ class SoundSDL : public Sound
|
||||||
*/
|
*/
|
||||||
virtual void setVolume(Int32 percent);
|
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:
|
public:
|
||||||
/**
|
/**
|
||||||
Loads the current state of this device from the given Deserializer.
|
Loads the current state of this device from the given Deserializer.
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// 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 <fstream>
|
#include <fstream>
|
||||||
|
@ -64,6 +64,7 @@ static void HandleEvents();
|
||||||
static uInt32 GetTicks();
|
static uInt32 GetTicks();
|
||||||
static void SetupProperties(PropertiesSet& set);
|
static void SetupProperties(PropertiesSet& set);
|
||||||
static void ShowInfo(const string& msg);
|
static void ShowInfo(const string& msg);
|
||||||
|
static void SetPaddleMode(Int32 mode);
|
||||||
|
|
||||||
#ifdef JOYSTICK_SUPPORT
|
#ifdef JOYSTICK_SUPPORT
|
||||||
// Lookup table for joystick numbers and events
|
// 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'
|
Prints given message based on 'theShowInfoFlag'
|
||||||
*/
|
*/
|
||||||
|
@ -412,6 +428,15 @@ void HandleEvents()
|
||||||
case SDLK_RETURN:
|
case SDLK_RETURN:
|
||||||
theDisplay->toggleFullscreen();
|
theDisplay->toggleFullscreen();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SDLK_LEFTBRACKET:
|
||||||
|
theSound->adjustVolume(-1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SDLK_RIGHTBRACKET:
|
||||||
|
theSound->adjustVolume(1);
|
||||||
|
break;
|
||||||
|
|
||||||
#ifdef DISPLAY_OPENGL
|
#ifdef DISPLAY_OPENGL
|
||||||
case SDLK_f:
|
case SDLK_f:
|
||||||
if(theUseOpenGLFlag)
|
if(theUseOpenGLFlag)
|
||||||
|
@ -475,6 +500,22 @@ void HandleEvents()
|
||||||
theDisplay->setupPalette();
|
theDisplay->setupPalette();
|
||||||
break;
|
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
|
#ifdef DEVELOPER_SUPPORT
|
||||||
case SDLK_END: // Ctrl-End increases Width
|
case SDLK_END: // Ctrl-End increases Width
|
||||||
theConsole->changeWidth(1);
|
theConsole->changeWidth(1);
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// 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"
|
#include "Serializer.hxx"
|
||||||
|
@ -76,6 +76,11 @@ void Sound::setVolume(Int32 volume)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void Sound::adjustVolume(Int8 direction)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool Sound::load(Deserializer& in)
|
bool Sound::load(Deserializer& in)
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// 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
|
#ifndef SOUND_HXX
|
||||||
|
@ -33,7 +33,7 @@ class System;
|
||||||
to compile Stella with no sound support whatsoever.
|
to compile Stella with no sound support whatsoever.
|
||||||
|
|
||||||
@author Stephen Anthony and Bradford W. Mott
|
@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
|
class Sound
|
||||||
{
|
{
|
||||||
|
@ -107,6 +107,14 @@ class Sound
|
||||||
*/
|
*/
|
||||||
virtual void setVolume(Int32 percent);
|
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:
|
public:
|
||||||
/**
|
/**
|
||||||
Loads the current state of this device from the given Deserializer.
|
Loads the current state of this device from the given Deserializer.
|
||||||
|
|
Loading…
Reference in New Issue