Playing around with the sound start/stop logic a little, since it seems

that the fix for ATI cards only works for the first ROM.  I may mark this
down as a driver bug and be done with it (at least until I can find some
hardware to test it myself).

Upped the GL aspect ratio setting to a maximum of 120, due to a request
for aspect ratios greater than 100.  Still have to bugfix it, though;
it might cause some problems with the video modes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1654 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2009-01-22 00:49:32 +00:00
parent 9575440922
commit 9d1020b79f
9 changed files with 28 additions and 26 deletions

View File

@ -611,7 +611,7 @@
<td>OpenGL mode only. Specify the amount (as a percentage) to scale the <td>OpenGL mode only. Specify the amount (as a percentage) to scale the
image width. Since many video modes do not use square pixels, you can image width. Since many video modes do not use square pixels, you can
reduce width until the pixels appear square. Allowable values are reduce width until the pixels appear square. Allowable values are
80 - 100; I find 85 - 90 gives the most authentic look.</td> 80 - 120; I find 85 - 90 gives the most authentic look.</td>
</tr> </tr>
<tr> <tr>

View File

@ -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.134 2009-01-19 16:52:32 stephena Exp $ // $Id: FrameBufferGL.cxx,v 1.135 2009-01-22 00:49:32 stephena Exp $
//============================================================================ //============================================================================
#ifdef DISPLAY_OPENGL #ifdef DISPLAY_OPENGL
@ -223,7 +223,7 @@ bool FrameBufferGL::setVidMode(VideoMode& mode)
{ {
// Aspect ratio // Aspect ratio
int aspect = myOSystem->settings().getInt("gl_aspect"); int aspect = myOSystem->settings().getInt("gl_aspect");
if(aspect < 100) if(aspect != 100)
mode.image_w = (uInt16)(float(mode.image_w * aspect) / 100.0); mode.image_w = (uInt16)(float(mode.image_w * aspect) / 100.0);
// Fullscreen mode stretching // Fullscreen mode stretching

View File

@ -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.cxx,v 1.47 2009-01-20 16:41:15 stephena Exp $ // $Id: SoundSDL.cxx,v 1.48 2009-01-22 00:49:32 stephena Exp $
//============================================================================ //============================================================================
#ifdef SOUND_SUPPORT #ifdef SOUND_SUPPORT
@ -68,7 +68,7 @@ void SoundSDL::setEnabled(bool state)
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void SoundSDL::initialize() void SoundSDL::open()
{ {
// Check whether to start the sound subsystem // Check whether to start the sound subsystem
if(!myIsEnabled) if(!myIsEnabled)

View File

@ -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.22 2009-01-19 16:52:32 stephena Exp $ // $Id: SoundSDL.hxx,v 1.23 2009-01-22 00:49:32 stephena Exp $
//============================================================================ //============================================================================
#ifndef SOUND_SDL_HXX #ifndef SOUND_SDL_HXX
@ -33,7 +33,7 @@ class OSystem;
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.22 2009-01-19 16:52:32 stephena Exp $ @version $Id: SoundSDL.hxx,v 1.23 2009-01-22 00:49:32 stephena Exp $
*/ */
class SoundSDL : public Sound class SoundSDL : public Sound
{ {
@ -84,11 +84,11 @@ class SoundSDL : public Sound
Initializes the sound device. This must be called before any Initializes the sound device. This must be called before any
calls are made to derived methods. calls are made to derived methods.
*/ */
void initialize(); void open();
/** /**
Should be called to close the sound device. Once called the sound Should be called to close the sound device. Once called the sound
device can be started again using the initialize method. device can be started again using the open method.
*/ */
void close(); void close();

View File

@ -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: Console.cxx,v 1.153 2009-01-21 12:03:16 stephena Exp $ // $Id: Console.cxx,v 1.154 2009-01-22 00:49:32 stephena Exp $
//============================================================================ //============================================================================
#include <cassert> #include <cassert>
@ -465,7 +465,7 @@ void Console::initializeAudio()
myOSystem->sound().close(); myOSystem->sound().close();
myOSystem->sound().setChannels(channels); myOSystem->sound().setChannels(channels);
myOSystem->sound().setFrameRate(myFramerate); myOSystem->sound().setFrameRate(myFramerate);
myOSystem->sound().initialize(); myOSystem->sound().open();
// Make sure auto-frame calculation is only enabled when necessary // Make sure auto-frame calculation is only enabled when necessary
myTIA->enableAutoFrame(framerate <= 0); myTIA->enableAutoFrame(framerate <= 0);

View File

@ -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: OSystem.cxx,v 1.152 2009-01-21 15:32:15 stephena Exp $ // $Id: OSystem.cxx,v 1.153 2009-01-22 00:49:32 stephena Exp $
//============================================================================ //============================================================================
#include <cassert> #include <cassert>
@ -854,8 +854,10 @@ void OSystem::mainLoop()
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void OSystem::queryVideoHardware() void OSystem::queryVideoHardware()
{ {
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0) // Go ahead and open the video hardware; we're going to need it eventually
return; if(SDL_WasInit(SDL_INIT_VIDEO) == 0)
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0)
return;
// First get the maximum windowed desktop resolution // First get the maximum windowed desktop resolution
const SDL_VideoInfo* info = SDL_GetVideoInfo(); const SDL_VideoInfo* info = SDL_GetVideoInfo();

View File

@ -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: Settings.cxx,v 1.161 2009-01-21 15:32:15 stephena Exp $ // $Id: Settings.cxx,v 1.162 2009-01-22 00:49:32 stephena Exp $
//============================================================================ //============================================================================
#include <cassert> #include <cassert>
@ -229,7 +229,7 @@ void Settings::validate()
setInternal("gl_filter", "nearest"); setInternal("gl_filter", "nearest");
i = getInt("gl_aspect"); i = getInt("gl_aspect");
if(i < 80 || i > 100) if(i < 80 || i > 120)
setInternal("gl_aspect", "100"); setInternal("gl_aspect", "100");
#endif #endif

View File

@ -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.26 2009-01-01 18:13:37 stephena Exp $ // $Id: Sound.hxx,v 1.27 2009-01-22 00:49:32 stephena Exp $
//============================================================================ //============================================================================
#ifndef SOUND_HXX #ifndef SOUND_HXX
@ -30,7 +30,7 @@ class Deserializer;
It has no functionality whatsoever. It has no functionality whatsoever.
@author Stephen Anthony @author Stephen Anthony
@version $Id: Sound.hxx,v 1.26 2009-01-01 18:13:37 stephena Exp $ @version $Id: Sound.hxx,v 1.27 2009-01-22 00:49:32 stephena Exp $
*/ */
class Sound class Sound
{ {
@ -78,14 +78,14 @@ class Sound
virtual void setFrameRate(float framerate) = 0; virtual void setFrameRate(float framerate) = 0;
/** /**
Initializes the sound device. This must be called before any Start the sound system, initializing it if necessary. This must be
calls are made to derived methods. called before any calls are made to derived methods.
*/ */
virtual void initialize() = 0; virtual void open() = 0;
/** /**
Should be called to close the sound device. Once called the sound Should be called to stop the sound system. Once called the sound
device can be started again using the initialize method. device can be started again using the ::open() method.
*/ */
virtual void close() = 0; virtual void close() = 0;
@ -134,7 +134,7 @@ class Sound
*/ */
virtual void adjustVolume(Int8 direction) = 0; virtual void adjustVolume(Int8 direction) = 0;
public: public:
/** /**
Loads the current state of this device from the given Deserializer. Loads the current state of this device from the given Deserializer.

View File

@ -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: VideoDialog.cxx,v 1.64 2009-01-19 16:52:32 stephena Exp $ // $Id: VideoDialog.cxx,v 1.65 2009-01-22 00:49:32 stephena Exp $
// //
// Based on code from ScummVM - Scumm Interpreter // Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project // Copyright (C) 2002-2004 The ScummVM project
@ -126,7 +126,7 @@ VideoDialog::VideoDialog(OSystem* osystem, DialogContainer* parent,
myAspectRatioSlider = myAspectRatioSlider =
new SliderWidget(this, font, xpos, ypos, pwidth, lineHeight, new SliderWidget(this, font, xpos, ypos, pwidth, lineHeight,
"GL Aspect: ", lwidth, kAspectRatioChanged); "GL Aspect: ", lwidth, kAspectRatioChanged);
myAspectRatioSlider->setMinValue(80); myAspectRatioSlider->setMaxValue(100); myAspectRatioSlider->setMinValue(80); myAspectRatioSlider->setMaxValue(120);
wid.push_back(myAspectRatioSlider); wid.push_back(myAspectRatioSlider);
myAspectRatioLabel = myAspectRatioLabel =
new StaticTextWidget(this, font, xpos + myAspectRatioSlider->getWidth() + 4, new StaticTextWidget(this, font, xpos + myAspectRatioSlider->getWidth() + 4,