Adding '-timing' commandline argument as a setting in VideoDialog, so you

don't need to use the commandline to change it.

Fixed RomAuditDialog to show more meaningful descriptions in its buttons.

More documentation updates.  It looks like I won't be splitting the doc
into multiple HTML files for this release, but I can at least make it
more descriptive (I just realized that some options in Stella have never
been in the documentation at all).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1603 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2009-01-06 23:02:18 +00:00
parent f431c850c1
commit 26988867fa
12 changed files with 192 additions and 124 deletions

View File

@ -33,12 +33,7 @@ X * Add infrastructure to show all info gathered from a ROM (similar to what
is currently displayed on the commandline). Add a UI part for this, so is currently displayed on the commandline). Add a UI part for this, so
users aren't forced to use the commandline to see it. users aren't forced to use the commandline to see it.
* Research starting bank for 8K/F8 ROMs. Probably default should be 0 * Fix issue with paddle support in Activision Casino ROM.
instead of 1.
* Add commandline argument to randomly generate startup bank for all ROMs
bigger than 4K. Shouldn't make a difference for all 'well-designed' ROMS,
but will pick up on errors when a ROM doesn't start from every bank.
* More work to the ROM launcher, including at least the following: * More work to the ROM launcher, including at least the following:
X (1) Only show files with certain extensions (including a UI part to X (1) Only show files with certain extensions (including a UI part to
@ -52,10 +47,20 @@ X (3) Have time between keypresses be configurable when jumping to files.
X (4) Reload current listing (possibly tied to a RMB context menu). X (4) Reload current listing (possibly tied to a RMB context menu).
* Add new TIA infrastructure with improved HMOVE emulation
* 'Fixed Debug Colours' option as explained in the 'Stella 2.6.1 released'
thread, post #40 on AtariAge. Basically emulates no$2k6 behaviour.
* Research lockups in Stay Frosty ROM. Test out sample state file in * Research lockups in Stay Frosty ROM. Test out sample state file in
AtariAge email. AtariAge email.
* Fix issue with paddle support in Activision Casino ROM. * Research starting bank for 8K/F8 ROMs. Probably default should be 0
instead of 1.
* Add commandline argument to randomly generate startup bank for all ROMs
bigger than 4K. Shouldn't make a difference for all 'well-designed' ROMS,
but will pick up on errors when a ROM doesn't start from every bank.
* More support for copy and paste. * More support for copy and paste.
@ -66,15 +71,10 @@ X (4) Reload current listing (possibly tied to a RMB context menu).
* Fix Props.cxx (or GameInfoDialog) to properly deal with quotes and * Fix Props.cxx (or GameInfoDialog) to properly deal with quotes and
backslashes in strings meant to be saved to the properties file. backslashes in strings meant to be saved to the properties file.
* 'Fixed Debug Colours' option as explained in the 'Stella 2.6.1 released'
thread, post #40 on AtariAge. Basically emulates no$2k6 behaviour.
* Extra controllers (KidVid, Lightgun) * Extra controllers (KidVid, Lightgun)
* Fix "Tron Man Picture Cart" (32K Tigervision bankswitching) issue * Fix "Tron Man Picture Cart" (32K Tigervision bankswitching) issue
* Add new TIA infrastructure with improved HMOVE emulation
* Possible 'trace mode' in debugger (generate a file containing all * Possible 'trace mode' in debugger (generate a file containing all
internal state) internal state)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -218,12 +218,15 @@
software. Stella is written in C++, which allows it to be ported to other software. Stella is written in C++, which allows it to be ported to other
operating systems and architectures. Since its original release Stella has operating systems and architectures. Since its original release Stella has
been ported to AcornOS, AmigaOS, DOS, FreeBSD, Linux, MacOS, OpenStep, OS/2, been ported to AcornOS, AmigaOS, DOS, FreeBSD, Linux, MacOS, OpenStep, OS/2,
Sega Dreamcast, Unix, and Windows. Unix, and Windows, as well as consoles such as Sega Dreamcast, GP2X, Nintendo
DS and Playstation Portable (among others).
</p> </p>
<h2><b>New in Release 2.6.1</b></h2> <h2><b>New in Release 2.7</b></h2>
<ul> <ul>
<li>FIXME - add info</li>
<!--
<li>Introduced more accurate timing for NTSC vs. PAL modes, where the <li>Introduced more accurate timing for NTSC vs. PAL modes, where the
framerate is based on the number of scanlines per frame. This should framerate is based on the number of scanlines per frame. This should
eliminate 'clicking' sounds when emulating ROMs that don't follow eliminate 'clicking' sounds when emulating ROMs that don't follow
@ -265,6 +268,7 @@
<li>Fixed bug in CommandMenu where console buttons (Select, Reset, etc) <li>Fixed bug in CommandMenu where console buttons (Select, Reset, etc)
weren't doing anything.</li> weren't doing anything.</li>
-->
</ul> </ul>
<p> <p>
@ -288,8 +292,8 @@
<li>Support for real Atari 2600 controllers using the <li>Support for real Atari 2600 controllers using the
<a href="http://www.pixelspast.com/products">Stelladaptor</a></li> <a href="http://www.pixelspast.com/products">Stelladaptor</a></li>
<li>Support for the speech portion of a real <li>Support for the speech portion of a real
<a href="http://www.atariage.com/store/product_info.php?products_id=295"> <a href="http://www.richard.hutchinson.dsl.pipex.com/new_page_5.htm">
AtariVox</a> device using a USB adaptor</li> AtariVox</a> device connected to your PC using a USB adaptor</li>
<li>Supports EEPROM emulation for AtariVox and SaveKey controllers</li> <li>Supports EEPROM emulation for AtariVox and SaveKey controllers</li>
<li>Supports almost all known bankswitching schemes (let us know if there's one we missed)</li> <li>Supports almost all known bankswitching schemes (let us know if there's one we missed)</li>
<li>Supports cartridge autodetection for almost all bankswitching schemes</li> <li>Supports cartridge autodetection for almost all bankswitching schemes</li>
@ -336,11 +340,11 @@
the following:</p> the following:</p>
<ul> <ul>
<li>Linux Kernel 2.4.x, Linux Kernel 2.6.x is highly recommended</li> <li>Linux Kernel 2.4.x, Linux Kernel 2.6.x is highly recommended</li>
<li>GNU C++ compiler version 2.95 and the make utility are required for compiling <li>i386 or x86_64 class machine, with 32 or 64-bit distribution</li>
the Stella source code; GNU C++ compiler version 3.2.x/4.x or later is highly <li>Other architectures (MIPS, PPC, PPC64, etc) have been confirmed to work,
recommended</li> but aren't as well tested as i386/x86_64</li>
<li>i386, x86_64 or PowerPC class machine, in either 32 or 64-bit mode</li> <li>GNU C++ compiler version 3.2.x or 4.x and the make utility are required for compiling
<li>Other architectures (MIPS, PPC64, etc) have been confirmed to work as well</li> the Stella source code</li>
</ul> </ul>
<p> <p>
@ -349,11 +353,12 @@
<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.2 or Above</li> <li>Mac OSX 10.3 or Above</li>
<li>500 MHz G4 PPC/Intel processor or above (Stella <b>may</b> work with a G3 <li>500 MHz G4 PPC/Intel processor or above (Stella <b>may</b> work with a G3
processor, but this is still a work-in-progress)</li> processor, but this is still a work-in-progress)</li>
<li>OpenGL capable video card. Software rendering mode is still available, <li>OpenGL capable video card. Software rendering mode is still available,
but as of OSX 10.4 is substandard compared to OpenGL.</li> but as of OSX 10.4 is substandard compared to OpenGL.</li>
<li>Xcode 3.0 is required to compile the Stella source code</li>
</ul> </ul>
<p> <p>
@ -363,20 +368,22 @@
with the following:</p> with the following:</p>
<ul> <ul>
<li>Visual C++ 7/8 or MinGW compiler is required to compile the Stella
source code</li>
<li>Pentium class machine required; OpenGL accelerated video card highly <li>Pentium class machine required; OpenGL accelerated video card highly
recommended</li> recommended</li>
<li>Experimental 64-bit port has been tested on Vista64 only; it may work on
WinXP64 as well, but isn't a priority</li>
<li>Visual C++ 2008 or MinGW compiler is required to compile the Stella
source code</li>
</ul> </ul>
<p> <p>
<h2><b>Other</b></h2> <h2><b>Other</b></h2>
<p>Stella is extremely portable, and in its lifetime has been ported to almost every <p>Stella is extremely portable, and in its lifetime has been ported to almost every
platform known. It is 32/64 bit clean in Linux/Unix and Windows (Win32/Win64), and platform where the SDL library exists. It is 32/64 bit clean in Linux/Unix and Windows
is expected to be compatible with 64-bit OSX as well. The Stella team is interested (Win32/Win64), and is expected to be compatible with 64-bit OSX as well. The Stella
in hearing about any problems you may encounter with diverse operating systems and team is interested in hearing about any problems you may encounter with diverse
CPU types.</p> operating systems and CPU types.</p>
<!-- ///////////////////////////////////////////////////////////////////////// --> <!-- ///////////////////////////////////////////////////////////////////////// -->
@ -384,9 +391,11 @@
<p><h1> <p><h1>
<a name="Installation">3. Installation</a></h1> <a name="Installation">3. Installation</a></h1>
<hr> <hr>
<p>Stella is distributed in both source and binary form. Once you have a Stella <p>Stella is distributed in both source and binary form. In general, you should always
distribution you should follow the instructions for your operating system given download and install the appropriate binary version. Compiling from source is only
below.</p> recommended for developers, or if the binary version doesn't work for some reason.
Once you have a Stella distribution you should follow the instructions for your
operating system given below.</p>
<p>If you have a supported joystick and driver installed and SDL can access the device, <p>If you have a supported joystick and driver installed and SDL can access the device,
you can play games using joysticks.</p> you can play games using joysticks.</p>
@ -397,66 +406,84 @@
<p> <p>
<h2><b>Linux/UNIX</b></h2> <h2><b>Linux/UNIX</b></h2>
<ul> <ul>
<li><b>Compressed tarball</b> (stella-<i>release</i>-src.tar.gz)</li> <li><b>Binary DEB</b> (stella-<i>release</i>-1_arch.deb)
<ol> <ol>
<li>Extract files from the distribution: <li>Install the binary DEB with the following command:
<pre> tar zxvf stella-release-src.tar.gz</pre></li> <pre> dpkg -i stella-<i>release</i>-1_arch.deb</pre></li>
<li>Change directories to the stella-<i>release</i> directory</li> </ol>
</li>
<li>Configure the build with the following command: <li><b>Binary RPM</b> (stella-<i>release</i>-1.arch.rpm)
<pre> ./configure (--help for list of options)</pre></li> <ol>
<li>Build the executable with the following command: <li>Install the binary RPM with the following command:
<pre> make</pre></li> <pre> rpm -Uvh stella-<i>release</i>-1.arch.rpm</pre></li>
<li>Install the executable with the following command: </ol>
<pre> make install</pre></li> </li>
</ol> <li><b>Compressed tarball : building from source code</b> (stella-<i>release</i>-src.tar.gz)
<li><b>Binary DEB</b> (stella-<i>release</i>-1_arch.deb)</li> <ol>
<ol> <li>Extract files from the distribution:
<li>Install the binary DEB with the following command: <pre> tar zxvf stella-release-src.tar.gz</pre></li>
<pre> dpkg -i stella-<i>release</i>-1_arch.deb</pre></li> <li>Change directories to the stella-<i>release</i> directory</li>
</ol> <li>Configure the build with the following command:
<li><b>Binary RPM</b> (stella-<i>release</i>-1.ix86.rpm)</li> <pre> ./configure (--help for list of options)</pre></li>
<ol> <li>Build the executable with the following command:
<li>Install the binary RPM with the following command: <pre> make</pre></li>
<pre> rpm -Uvh stella-<i>release</i>-1.ix86.rpm</pre></li> <li>Install the executable with the following command:
</ol> <pre> make install</pre></li>
</ol>
</li>
</ul> </ul>
<p> <p>
<h2><b>Macintosh</b></h2> <h2><b>Macintosh</b></h2>
<ul>
<p>To install the Mac binary, simply download the DMG disk <li><b>Binary DMG file</b> (StellaOSX<i>release</i>.dmg)
image. Mount the disk image, then copy the StellaOSX<i>release</i> folder to <ol>
your hard drive.<br> <li>Mount the disk image, then copy the StellaOSX<i>release</i> folder to
</p> your hard drive.</li>
</ol>
</li>
<li><b>Compressed tarball : building from source code</b> (stella-<i>release</i>-src.tar.gz)
<ol>
<li>Extract files from the distribution using an archiving program that supports
gzipped tar files</li>
<li>Open the <b>stella-<i>release</i>/src/macosx/stella.xcodeproj</b>
file using Xcode 3.0</li>
<li>Build the 'Stella' project</li>
<li>Copy the <b>StellaOSX.app</b> package somewhere on your system</li>
</ol>
</li>
</ul>
<p> <p>
<h2><b>Windows</b></h2> <h2><b>Windows</b></h2>
<ul> <ul>
<li><b>Compressed tarball</b> (stella-<i>release</i>-src.tar.gz)</li> <li><b>Binary EXE installer</b> (stella-<i>release</i>-win32.exe)
<ol> <ol>
<li>Extract files from the distribution using <b>Winzip</b>, <li>Double-click on the installer and follow the onscreen instructions</li>
<b>Total Commander</b>, or some other archiving program that supports </ol>
gzipped tar files</li> </li>
<li>If compiling the Stella executable using MinGW, use the same commands <li><b>Binary ZIP file</b> (stella-<i>release</i>-win32.zip)
as specified under <i>Linux/UNIX - Compressed tarball</i></li> <ol>
<li>If compiling using Visual C++ 7:</li> <li>Unzip the binary ZIP file using <b>Winzip</b> or <b>Total Commander</b>
<ul> and copy that directory somewhere</li>
<li>Open the <b>stella-<i>release</i>/src/win32/Stella.sln</b> </ol>
file using Visual C++ 7</li> </li>
<li>Build the 'Stella' solution</li> <li><b>Compressed tarball : building from source code</b> (stella-<i>release</i>-src.tar.gz)
<li>Copy the <b>Stella.exe</b> file to some directory</li> <ol>
</ul> <li>Extract files from the distribution using <b>Winzip</b>,
</ol> <b>Total Commander</b>, or some other archiving program that supports
<li><b>Binary ZIP file</b> (stella-<i>release</i>-win32.zip)</li> gzipped tar files</li>
<ol> <li>If compiling the Stella executable using MinGW, use the same commands
<li>Unzip the binary ZIP file using <b>Winzip</b> or <b>Total Commander</b> as specified under <i>Linux/UNIX - Compressed tarball</i></li>
and copy that directory somewhere</li> <li>If compiling using Visual C++ 7:</li>
</ol> <ul>
<li><b>Binary EXE installer</b> (stella-<i>release</i>-win32.exe)</li> <li>Open the <b>stella-<i>release</i>/src/win32/Stella.sln</b>
<ol> file using Visual C++ 7</li>
<li>Double-click on the installer and follow the onscreen instructions</li> <li>Build the 'Stella' solution</li>
</ol> <li>Copy the <b>Stella.exe</b> file somewhere on your system</li>
</ul>
</ol>
</li>
</ul> </ul>
@ -539,30 +566,49 @@
<p> <p>
<h2><b>Integrated GUI</b></h2> <h2><b>Integrated GUI</b></h2>
<p>As of Stella version 2.0, there is an integrated GUI for all ports. This means <p>Stella contains an integrated GUI for all ports. Commandline support is also
that using the commandline is no longer required (but commandline support is still available for those who want to use it.</p>
included for those who want to use it).</p>
<p>If you start Stella and do not specify a ROM image, it will start in <p>If you start Stella and do not specify a ROM image, it will start in
'ROM Launcher' mode:<br><br> 'ROM Launcher' mode:<br><br>
<img src="graphics/launcher.png"></p> <img src="graphics/launcher.png"></p>
<p>The ROM browser, snapshot, and external file settings may be changed by <p>If this is your first time starting Stella, you'll probably want to set the locations
clicking the 'Options / Config Files' button:<br><br> for ROM files, snapshots, and other external paths. These items are accessible by clicking
<img src="graphics/launcher_options_files.png"></p> the <b>Options =&gt; Config Files</b> buttons. Many other options can be set here,
but for now we'll concentrate on <i>Config Files</i> only:</p>
<table>
<tr>
<td><p><b>Config Files</b> dialog:</p><p><img src="graphics/launcher_options_files.png"></p></td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td valign="top">
<table border="1" cellpadding="4">
<tr><th>Item</th><th>Description</th><th>Commandline</th></tr>
<tr><td>Rom path</td><td>specifies location of ROM files</td><td>-romdir</td></tr>
<tr><td>State path</td><td>specifies location of state files</td><td>-statedir</td></tr>
<tr><td>Cheat file</td><td>specifies location of cheatfile database</td><td>-cheatfile</td></tr>
<tr><td>Palette file</td><td>specifies location of user palette</td><td>-palettefile</td></tr>
<tr><td>Properties file </td><td>specifies location of external stella.pro database</td><td>-propsfile</td></tr>
<tr><td>Snapshot path</td><td>specifies where to load/save snapshots</td><td>-ssdir</td></tr>
<tr><td>Multiple snapshots</td><td>whether to overwrite old snapshots</td><td>-sssingle</td></tr>
<tr><td>Snapshot in 1x mode</td><td>save snapshot in 1x mode, without filtering</td><td>-ss1x</td></tr>
</table>
</td>
</tr>
</table>
<p>Selecting a new path for an item is done by clicking the appropriate button(s):<br><br> <p>Selecting a new path for an item is done by clicking the appropriate button(s)
<img src="graphics/rom_browser.png"></p> (in this case, 'Rom path' was selected):</p>
<p><img src="graphics/rom_browser.png"></p>
<p>You can start emulation by selecting a ROM and pressing 'Enter' or <p>Once you've changed your settings, you can start emulation by selecting a ROM
clicking 'Select', or double-clicking a ROM.</p> and pressing 'Enter' or clicking 'Select', or double-clicking a ROM.</p>
<p> <p>
<h2><b>Command Line</b></h2> <h2><b>Command Line</b></h2>
<p>Stella can also be used from the commandline (assuming your operating system <p>Stella can also be used from the commandline (assuming your operating system
has a commandline). When using this mode and specifying a ROM, the ROM launcher has a commandline).</p>
is disabled.</p>
<p>To run Stella from the commandline, use the following format:</p> <p>To run Stella from the commandline, use the following format:</p>
@ -1005,15 +1051,14 @@
<a name="Options">6. Changing Options</a></h1> <a name="Options">6. Changing Options</a></h1>
<hr> <hr>
<p>As of version 2.0, all settings can be changed within the integrated Options <p>All settings can be changed within the integrated Options UI while Stella is
GUI while Stella is running. The options are documented elsewhere in this manual running (unless otherwise noted - some settings require an application restart).
and are generally self-explanatory. The Options menu can be accessed from The Options menu can be accessed from the ROM launcher by clicking the
the ROM launcher by clicking the 'Options' button, or in-game by pressing the <b>Options</b> button, or in-game by pressing the 'Tab' key.</p>
'Tab' key.</p>
<p><b>Options Menu</b> dialog:<br><br> <p><b>Options Menu</b> dialog:<br><br>
<img src="graphics/options.png"> <img src="graphics/options.png">
<br><br><br> <br><br>
<p><b>Video Settings</b> dialog:<br><br> <p><b>Video Settings</b> dialog:<br><br>
<img src="graphics/options_video.png"> <img src="graphics/options_video.png">
@ -2103,11 +2148,9 @@
the format was auto-detected as 'NTSC'.</li> the format was auto-detected as 'NTSC'.</li>
<li>Cartridge information. If the characters 'AUTO =&gt;' are present, <li>Cartridge information. If the characters 'AUTO =&gt;' are present,
it means the bankswitch format was auto-detected as shown. The item it means the bankswitch format was auto-detected as shown. The item
in round brackets indicates ROM size. The item in square brackets in round brackets indicates ROM size. For the given example,
indicates the starting bank(s) used by the cart. the bankswitch type was auto-detected as 4K, and the file size was
For the given example, the bankswitch type was auto-detected as 4K, 4K (4096 bytes).</li>
the file size was 4K (4096 bytes), and the start bank was 0
(since a 4K ROM has only one bank). FIXME - image must be updated</li>
</li> </li>
</ol></p></li> </ol></p></li>
</ul></p> </ul></p>

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: Cart.cxx,v 1.46 2009-01-01 18:13:35 stephena Exp $ // $Id: Cart.cxx,v 1.47 2009-01-06 23:02:18 stephena Exp $
//============================================================================ //============================================================================
#include <cassert> #include <cassert>
@ -489,4 +489,4 @@ Cartridge& Cartridge::operator = (const Cartridge&)
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
string Cartridge::myAboutString; string Cartridge::myAboutString= "";

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: Dialog.cxx,v 1.74 2009-01-01 18:13:38 stephena Exp $ // $Id: Dialog.cxx,v 1.75 2009-01-06 23:02:18 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
@ -567,27 +567,32 @@ Widget* Dialog::findWidget(int x, int y)
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Dialog::addOKCancelBGroup(WidgetArray& wid, const GUI::Font& font) void Dialog::addOKCancelBGroup(WidgetArray& wid, const GUI::Font& font,
const string& okText, const string& cancelText)
{ {
int buttonWidth = font.getStringWidth("Cancel") + 15; int buttonWidth = font.getStringWidth("Cancel") + 15;
int buttonHeight = font.getLineHeight() + 4; int buttonHeight = font.getLineHeight() + 4;
ButtonWidget* b; ButtonWidget* b;
#ifndef MAC_OSX #ifndef MAC_OSX
b = new ButtonWidget(this, font, _w - 2 * (buttonWidth + 7), _h - buttonHeight - 10, b = new ButtonWidget(this, font, _w - 2 * (buttonWidth + 7), _h - buttonHeight - 10,
buttonWidth, buttonHeight, "OK", kOKCmd); buttonWidth, buttonHeight,
okText == "" ? "OK" : okText, kOKCmd);
wid.push_back(b); wid.push_back(b);
addOKWidget(b); addOKWidget(b);
b = new ButtonWidget(this, font, _w - (buttonWidth + 10), _h - buttonHeight - 10, b = new ButtonWidget(this, font, _w - (buttonWidth + 10), _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Cancel", kCloseCmd); buttonWidth, buttonHeight,
cancelText == "" ? "Cancel" : cancelText, kCloseCmd);
wid.push_back(b); wid.push_back(b);
addCancelWidget(b); addCancelWidget(b);
#else #else
b = new ButtonWidget(this, font, _w - 2 * (buttonWidth + 7), _h - buttonHeight - 10, b = new ButtonWidget(this, font, _w - 2 * (buttonWidth + 7), _h - buttonHeight - 10,
buttonWidth, buttonHeight, "Cancel", kCloseCmd); buttonWidth, buttonHeight,
cancelText == "" ? "Cancel" : cancelText, kCloseCmd);
wid.push_back(b); wid.push_back(b);
addCancelWidget(b); addCancelWidget(b);
b = new ButtonWidget(this, font, _w - (buttonWidth + 10), _h - buttonHeight - 10, b = new ButtonWidget(this, font, _w - (buttonWidth + 10), _h - buttonHeight - 10,
buttonWidth, buttonHeight, "OK", kOKCmd); buttonWidth, buttonHeight,
okText == "" ? "OK" : okText, kOKCmd);
wid.push_back(b); wid.push_back(b);
addOKWidget(b); addOKWidget(b);
#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: Dialog.hxx,v 1.42 2009-01-01 18:13:38 stephena Exp $ // $Id: Dialog.hxx,v 1.43 2009-01-06 23:02:18 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
@ -47,7 +47,7 @@ class TabWidget;
This is the base class for all dialog boxes. This is the base class for all dialog boxes.
@author Stephen Anthony @author Stephen Anthony
@version $Id: Dialog.hxx,v 1.42 2009-01-01 18:13:38 stephena Exp $ @version $Id: Dialog.hxx,v 1.43 2009-01-06 23:02:18 stephena Exp $
*/ */
class Dialog : public GuiObject class Dialog : public GuiObject
{ {
@ -106,7 +106,9 @@ class Dialog : public GuiObject
Widget* findWidget(int x, int y); // Find the widget at pos x,y if any Widget* findWidget(int x, int y); // Find the widget at pos x,y if any
void addOKCancelBGroup(WidgetArray& wid, const GUI::Font& font); void addOKCancelBGroup(WidgetArray& wid, const GUI::Font& font,
const string& okText = "",
const string& cancelText = "");
void setResult(int result) { _result = result; } void setResult(int result) { _result = result; }
int getResult() const { return _result; } int getResult() const { return _result; }

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: RomAuditDialog.cxx,v 1.10 2009-01-05 19:44:30 stephena Exp $ // $Id: RomAuditDialog.cxx,v 1.11 2009-01-06 23:02:18 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
@ -86,7 +86,7 @@ RomAuditDialog::RomAuditDialog(OSystem* osystem, DialogContainer* parent,
// Add OK and Cancel buttons // Add OK and Cancel buttons
wid.clear(); wid.clear();
addOKCancelBGroup(wid, font); addOKCancelBGroup(wid, font, "Audit", "Done");
addBGroupToFocusList(wid); addBGroupToFocusList(wid);
// Create file browser dialog // Create file browser dialog

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.60 2009-01-04 22:27:44 stephena Exp $ // $Id: VideoDialog.cxx,v 1.61 2009-01-06 23:02:18 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
@ -55,7 +55,7 @@ VideoDialog::VideoDialog(OSystem* osystem, DialogContainer* parent,
// Set real dimensions // Set real dimensions
_w = 46 * fontWidth + 10; _w = 46 * fontWidth + 10;
_h = 11 * (lineHeight + 4) + 10; _h = 12 * (lineHeight + 4) + 10;
xpos = 5; ypos = 10; xpos = 5; ypos = 10;
@ -104,6 +104,15 @@ VideoDialog::VideoDialog(OSystem* osystem, DialogContainer* parent,
wid.push_back(myFSResPopup); wid.push_back(myFSResPopup);
ypos += lineHeight + 4; ypos += lineHeight + 4;
// Timing to use between frames
items.clear();
items.push_back("Sleep", "sleep");
items.push_back("Busy-wait", "busy");
myFrameTimingPopup = new PopUpWidget(this, font, xpos, ypos, pwidth, lineHeight,
items, "Timing (*): ", lwidth);
wid.push_back(myFrameTimingPopup);
ypos += lineHeight + 4;
// GL Video filter // GL Video filter
items.clear(); items.clear();
items.push_back("Linear", "linear"); items.push_back("Linear", "linear");
@ -235,9 +244,13 @@ void VideoDialog::loadConfig()
myFSResPopup->setSelected( myFSResPopup->setSelected(
instance().settings().getString("fullres"), "auto"); instance().settings().getString("fullres"), "auto");
// Wait between frames
myFrameTimingPopup->setSelected(
instance().settings().getString("timing"), "sleep");
// GL Filter setting // GL Filter setting
myGLFilterPopup->setSelected( myGLFilterPopup->setSelected(
instance().settings().getString("gl_filter"), "linear"); instance().settings().getString("gl_filter"), "nearest");
myGLFilterPopup->setEnabled(gl); myGLFilterPopup->setEnabled(gl);
// GL aspect ratio setting // GL aspect ratio setting
@ -286,6 +299,9 @@ void VideoDialog::saveConfig()
// Fullscreen resolution // Fullscreen resolution
instance().settings().setString("fullres", myFSResPopup->getSelectedTag()); instance().settings().setString("fullres", myFSResPopup->getSelectedTag());
// Wait between frames
instance().settings().setString("timing", myFrameTimingPopup->getSelectedTag());
// GL Filter setting // GL Filter setting
instance().settings().setString("gl_filter", myGLFilterPopup->getSelectedTag()); instance().settings().setString("gl_filter", myGLFilterPopup->getSelectedTag());
@ -333,7 +349,8 @@ void VideoDialog::setDefaults()
#endif #endif
myTIAPalettePopup->setSelected("standard", ""); myTIAPalettePopup->setSelected("standard", "");
myFSResPopup->setSelected("auto", ""); myFSResPopup->setSelected("auto", "");
myGLFilterPopup->setSelected("linear", ""); myFrameTimingPopup->setSelected("sleep", "");
myGLFilterPopup->setSelected("nearest", "");
myAspectRatioSlider->setValue(100); myAspectRatioSlider->setValue(100);
myAspectRatioLabel->setLabel("100"); myAspectRatioLabel->setLabel("100");
myFrameRateSlider->setValue(0); myFrameRateSlider->setValue(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: VideoDialog.hxx,v 1.28 2009-01-04 22:27:44 stephena Exp $ // $Id: VideoDialog.hxx,v 1.29 2009-01-06 23:02:18 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
@ -54,6 +54,7 @@ class VideoDialog : public Dialog
PopUpWidget* myTIAFilterPopup; PopUpWidget* myTIAFilterPopup;
PopUpWidget* myTIAPalettePopup; PopUpWidget* myTIAPalettePopup;
PopUpWidget* myFSResPopup; PopUpWidget* myFSResPopup;
PopUpWidget* myFrameTimingPopup;
PopUpWidget* myGLFilterPopup; PopUpWidget* myGLFilterPopup;
SliderWidget* myAspectRatioSlider; SliderWidget* myAspectRatioSlider;
StaticTextWidget* myAspectRatioLabel; StaticTextWidget* myAspectRatioLabel;