Added '-cp' developer commandline argument, to set the 'Controller.SwapPaddles'
property (Yes or No). Changed the static initialization of Scaler related items to use const char* instead of string, since the WinCE port has trouble with that. Updated 'scale_ui' and 'scale_tia' to use lowercase options. So those settings will be reset with this commit. Added all recently added options to Settings::usage(). Huge update to the user manual. Things are getting very close now :) git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1207 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 7.5 KiB |
|
@ -30,6 +30,7 @@
|
|||
<li><a href="#Debugger">Integrated Debugger</a></li>
|
||||
<li><a href="#Properties">Game Properties</a></li>
|
||||
<li><a href="#Adaptor">Stelladaptor Support</a></li>
|
||||
<li><a href="#Palette">Palette Support</a></li>
|
||||
<li><a href="#Acknowledgments">Acknowledgments</a></li>
|
||||
<li><a href="#License">License and Disclaimer</a></li>
|
||||
</ol>
|
||||
|
@ -218,6 +219,10 @@
|
|||
<h2><b>New in Release 2.3</b></h2>
|
||||
|
||||
<ul>
|
||||
<li>Potentially huge speedups in software rendering mode, both in emulation
|
||||
and UI modes. Deactivating 'dirty rects' uses these new modes, which
|
||||
can be 2-3 times faster for many configurations.</li>
|
||||
|
||||
<li>For UI navigation, changed from using 'joymouse' to the more familiar
|
||||
'tabbing' functionality, where you move from object to object by use of
|
||||
some tab key. As a result, completely removed the 'joymouse' commandline
|
||||
|
@ -226,12 +231,6 @@ argument and all associated functionality.</li>
|
|||
<li>Added event remapping for UI events, separate from events while in emulation
|
||||
mode.</li>
|
||||
|
||||
<li>Changed naming of snapshots and state files. These files are now
|
||||
named based on the names given in the properties database, and no longer
|
||||
use the 'md5sum' name. As a result, state files from previous versions
|
||||
will no longer work unless they're manually renamed. Related to this,
|
||||
removed the '-ssname' commandline argument.</li>
|
||||
|
||||
<li>Added support for PAL60 ROMs, which use the PAL palette and resolution
|
||||
but run at NTSC timing (60Hz). Added ROM property for this, and updated
|
||||
the internal properties database for many PAL60 ROMs.</li>
|
||||
|
@ -242,26 +241,32 @@ is supported, but in the future we may have them specified per-ROM.</li>
|
|||
<li>Fixed bug in PAL colour-loss emulation, which wasn't actually being done
|
||||
for the original Stella and z26 palettes.</li>
|
||||
|
||||
<li>Fixed bug where 'Snapshot saved' appeared when taking snapshots in
|
||||
succession.</li>
|
||||
|
||||
<li>Fixed several TIA-related emulation bugs as reported on AtariAge. More
|
||||
fixes will come with the TIA rewrite, due in the next release.</li>
|
||||
|
||||
<li>Added '-gl_vsync' commandline argument and associated UI elements, which
|
||||
uses synchronization to vertical blank interrupt in OpenGL on supported
|
||||
systems. This eliminates tearing in OpenGL rendering.</li>
|
||||
|
||||
<li>Added a 'Previous directory' entry to the top of each listing while
|
||||
in ROM Browse mode, which is equivalent to the 'Go Up' button. This makes
|
||||
it easier to navigate the filesystem, since you never have to 'tab out'
|
||||
of the ROM listing.</li>
|
||||
|
||||
<li>Added new scaler infrastructure, replacing the '-zoom' commandline argument
|
||||
with '-scale_ui' and '-scale_tia'. This means the UI and emulation can now
|
||||
be scaled independently. In the future, support will be added for advanced
|
||||
scalers in TIA mode, such as Scale2x, Scale3x, HQ2x, HQ3x, etc.</li>
|
||||
|
||||
<li>Added '-gl_vsync' commandline argument and associated UI elements, which
|
||||
uses synchronization to vertical blank interrupt in OpenGL on supported
|
||||
systems. This eliminates tearing in OpenGL rendering.</li>
|
||||
|
||||
<li>Changed naming of snapshots and state files. These files are now
|
||||
named based on the names given in the properties database, and no longer
|
||||
use the 'md5sum' name. As a result, state files from previous versions
|
||||
will no longer work unless they're manually renamed. Related to this,
|
||||
removed the '-ssname' commandline argument.</li>
|
||||
|
||||
<li>Fixed bug where 'Snapshot saved' appeared when taking snapshots in
|
||||
succession.</li>
|
||||
|
||||
<li>Added a 'Previous directory' entry to the top of each listing while
|
||||
in ROM Browse mode, which is equivalent to the 'Go Up' button. This makes
|
||||
it easier to navigate the filesystem, since you never have to 'tab out'
|
||||
of the ROM listing.</li>
|
||||
|
||||
<li>Added all sound related commandline options to the UI, so you no
|
||||
longer have to use the commandline to set those options.</li>
|
||||
|
||||
|
@ -608,6 +613,13 @@ scaling.</li>
|
|||
<td>Use SDL software or OpenGL rendering mode.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-gl_lib <filename></pre></td>
|
||||
<td>OpenGL mode only. Specify the OpenGL library to use (only use
|
||||
this if you know what you're doing). For OSX, this should
|
||||
probably be left blank.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-gl_filter <nearest|linear></pre></td>
|
||||
<td>OpenGL mode only. Use GL_NEAREST or GL_LINEAR filtering.
|
||||
|
@ -631,14 +643,21 @@ scaling.</li>
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-gl_lib <filename></pre></td>
|
||||
<td>OpenGL mode only. Specify the OpenGL library to use (only use
|
||||
this if you know what you're doing).</td>
|
||||
<td><pre>-gl_vsync <0|1></pre></td>
|
||||
<td>OpenGL mode only. Synchronize screen updates to the vertical blank
|
||||
period. This can result in smoother updates, and eliminate tearing.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-zoom <size></pre></td>
|
||||
<td>Makes window be 'size' times normal.</td>
|
||||
<td><pre>-scale_tia <scaler></pre></td>
|
||||
<td>Use the specified scaler while in TIA/emulation mode. Possible
|
||||
scalers are 'zoom1x, ..., zoom6x'.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-scale_ui <scaler></pre></td>
|
||||
<td>Use the specified scaler while in UI mode (currently, the ROM
|
||||
launcher and debugger). Possible scalers are 'zoom1x, ..., zoom6x'.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
@ -657,9 +676,9 @@ scaling.</li>
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-palette <original|standard|z26></pre></td>
|
||||
<td>Set the palette to either pre-Stella 1.4, Stella 1.4 and above
|
||||
or the palette used in the z26 emulator.</td>
|
||||
<td><pre>-palette <original|standard|z26|user></pre></td>
|
||||
<td>Set the palette to either pre-Stella 1.4, Stella 1.4 and above,
|
||||
the palette used in the z26 emulator, or a user-defined palette.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
@ -668,12 +687,6 @@ scaling.</li>
|
|||
will determine framerate based on ROM format.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-ppblend <number></pre></td>
|
||||
<td>Set blending for phosphor effect, if enabled (0-100).
|
||||
Default is 77.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-sound <1|0></pre></td>
|
||||
<td>Enable or disable sound generation.</td>
|
||||
|
@ -738,29 +751,23 @@ scaling.</li>
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-joymouse <0|1></pre></td>
|
||||
<td>Indicates whether the joystick emulates the mouse in GUI mode
|
||||
(defaults to off).</td>
|
||||
<td><pre>-p0speed <number></pre></td>
|
||||
<td>Speed of digital emulation for paddle 0 (0-100).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-p1speed <number></pre></td>
|
||||
<td>Speed of emulated mouse movement for paddle 1 (0-100).</td>
|
||||
<td>Speed of digital emulation for paddle 1 (0-100).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-p2speed <number></pre></td>
|
||||
<td>Speed of emulated mouse movement for paddle 2 (0-100).</td>
|
||||
<td>Speed of digital emulation for paddle 2 (0-100).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-p3speed <number></pre></td>
|
||||
<td>Speed of emulated mouse movement for paddle 3 (0-100).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-p4speed <number></pre></td>
|
||||
<td>Speed of emulated mouse movement for paddle 4 (0-100).</td>
|
||||
<td>Speed of digital emulation for paddle 3 (0-100).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
@ -775,6 +782,23 @@ scaling.</li>
|
|||
a real 2600 system (in most cases).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-rombrowse <1|0></pre></td>
|
||||
<td>The ROM listing is treated as a filesystem, where one can traverse
|
||||
folders. As of Stella 2.3, this is the default browsing mode.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-autoslot <1|0></pre></td>
|
||||
<td>Automatically switch to the next available save state slot after
|
||||
saving a ROM state file.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-fastscbios <1|0></pre></td>
|
||||
<td>Set loading of Supercharger BIOS bars to maximum speed (8x normal).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-accurate <1|0></pre></td>
|
||||
<td>Linux only, may be removed in future versions. Use this when
|
||||
|
@ -787,13 +811,6 @@ scaling.</li>
|
|||
<td>The directory to save snapshot files to.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-ssname <romname|md5sum></pre></td>
|
||||
<td>How to name the snapshot. Option 'romname' will use the filename
|
||||
provided in stella.pro, while 'md5sum' will use the calculated
|
||||
MD5 sum of the rom.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-sssingle <0|1></pre></td>
|
||||
<td>Generate single snapshot instead of many.</td>
|
||||
|
@ -801,8 +818,8 @@ scaling.</li>
|
|||
|
||||
<tr>
|
||||
<td><pre>-listrominfo</pre></td>
|
||||
<td>Prints the contents of the stella.pro file, one ROM per line,
|
||||
and then exit Stella.</td>
|
||||
<td>Prints relevant contents of the Stella ROM database, one ROM per line,
|
||||
and then exit Stella. This can be used for external frontends.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
@ -896,6 +913,11 @@ scaling.</li>
|
|||
type is one of Booster-Grip, Driving, Keyboard, Paddles, or Joystick.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-cp <Yes|No></pre></td>
|
||||
<td>Set "Controller.SwapPaddles" property.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-format <NTSC|PAL></pre></td>
|
||||
<td>Set "Display.Format" property.</td>
|
||||
|
@ -926,6 +948,12 @@ scaling.</li>
|
|||
<td>Set "Display.Phosphor" property.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-ppblend <number></pre></td>
|
||||
<td>Set "Display.PPBlend" property, used for phosphor effect (0-100).
|
||||
Default is 77.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-hmove <Yes|No></pre></td>
|
||||
<td>Set "Emulation.HmoveBlanks" property.</td>
|
||||
|
@ -1000,24 +1028,28 @@ scaling.</li>
|
|||
</table>
|
||||
|
||||
<p>The settings file has a special name/location depending on which version of Stella
|
||||
you use:</p>
|
||||
you use. Note that if the environment variable 'STELLA_BASEDIR' is set, the
|
||||
location of the settings file will change accordingly:</p>
|
||||
|
||||
<p>
|
||||
<h2><b>Linux/UNIX</b></h2>
|
||||
<p>The Linux and UNIX version of Stella searches for the <i>stellarc</i> file in
|
||||
your $HOME/.stella directory.</p>
|
||||
your $HOME/.stella directory, or in $STELLA_BASEDIR if that environment
|
||||
variable is set.</p>
|
||||
|
||||
<p>
|
||||
<h2><b>Macintosh</b></h2>
|
||||
<p>The Macintosh version does not use an INI file, but stores it
|
||||
preferences in the expected location for application preferences, in
|
||||
the Users home directory, in the Library/Preferences/StellaOSX.plist
|
||||
file.<br>
|
||||
file. The STELLA_BASEDIR environment variable has no effect for
|
||||
the settings file in OSX.<br>
|
||||
|
||||
<p>
|
||||
<h2><b>Windows</b></h2>
|
||||
<p>The Windows version of Stella looks for the <i>stella.ini</i> file in the same
|
||||
directory containing the application. Future versions of Stella for Windows may look in
|
||||
directory containing the application, or in $STELLA_BASEDIR if that environment
|
||||
variable is set. Future versions of Stella for Windows may look in
|
||||
user-specific locations (C:\Documents and Settings\...).</p>
|
||||
|
||||
<br><br>
|
||||
|
@ -1609,13 +1641,13 @@ scaling.</li>
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Resize window to next <i>larger</i> size</td>
|
||||
<td>Switch to next <i>larger</i> scaler</td>
|
||||
<td>Alt + =</td>
|
||||
<td>Cmd + =</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Resize window to next <i>smaller</i> size</td>
|
||||
<td>Switch to next <i>smaller</i> scaler</td>
|
||||
<td>Alt + -</td>
|
||||
<td>Cmd + -</td>
|
||||
</tr>
|
||||
|
@ -1652,7 +1684,7 @@ scaling.</li>
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle display format between <i>NTSC</i> and <i>PAL</i></td>
|
||||
<td>Toggle display format between <i>NTSC, PAL, PAL60</i></td>
|
||||
<td>Control + f</td>
|
||||
<td>Cmd + f</td>
|
||||
</tr>
|
||||
|
@ -1663,12 +1695,6 @@ scaling.</li>
|
|||
<td>Cmd + s</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Merge current properties into the properties file</td>
|
||||
<td>Alt + s</td>
|
||||
<td>Shift-Cmd + s</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Set mouse to emulate paddle 0</td>
|
||||
<td>Control + 0</td>
|
||||
|
@ -1840,24 +1866,28 @@ Ms Pac-Man (Stella extended codes):
|
|||
<p>Stella uses game properties to specify the "best" emulator settings for a
|
||||
game. As of version 2.2 of Stella, a default database of properties are
|
||||
built-in, but you may modify these through the use of a <b>stella.pro</b> file.
|
||||
This per-user file will contain all properties 'merged' by the user
|
||||
(by pressing Alt-s while a game is running). So this means that when you
|
||||
upgrade Stella, your personal properties settings are preserved.</p>
|
||||
This per-user file will contain all properties modified by the user. So this
|
||||
means that when you upgrade Stella, your personal properties settings are
|
||||
preserved.</p>
|
||||
|
||||
<p>
|
||||
<h2><b>Linux/Unix</b></h2>
|
||||
<p>The Linux and Unix versions of Stella looks for your personal properties
|
||||
file in <i>$HOME/.stella/stella.pro</i>.
|
||||
file in <i>$HOME/.stella/stella.pro</i>, or if the STELLA_BASEDIR environment
|
||||
variable is set, in <i>$STELLA_BASEDIR/stella.pro</i>.
|
||||
|
||||
<p>
|
||||
<h2><b>Macintosh</b></h2>
|
||||
<p>The Mac version of Stella looks for your personal properties file in
|
||||
<i>$HOME/.stella/stella.pro</i>.
|
||||
<i>$HOME/.stella/stella.pro</i>, or if the STELLA_BASEDIR environment
|
||||
variable is set, in <i>$STELLA_BASEDIR/stella.pro</i>.
|
||||
|
||||
<p>
|
||||
<h2><b>Windows</b></h2>
|
||||
<p>The Windows version of Stella looks for the properties file in the directory
|
||||
containing the application. Future versions of Stella for Windows may look in
|
||||
containing the application, or if the STELLA_BASEDIR environment
|
||||
variable is set, in <i>$STELLA_BASEDIR/stella.pro</i>.
|
||||
Future versions of Stella for Windows may look in
|
||||
user-specific locations (C:\Documents and Settings\...).</p>
|
||||
|
||||
<p>
|
||||
|
@ -1966,6 +1996,12 @@ Ms Pac-Man (Stella extended codes):
|
|||
right player. The value of this property must be A or B.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td VALIGN="TOP"><i>Console.TelevisionType:</i></td>
|
||||
<td>This property indicates the default television setting for the
|
||||
game. The value of this property must be Color or BlankAndWhite.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td VALIGN="TOP"><i>Console.SwapPorts:</i></td>
|
||||
<td>This property indicates that the left and right ports should be
|
||||
|
@ -1974,12 +2010,6 @@ Ms Pac-Man (Stella extended codes):
|
|||
The value of this property must be Yes or No.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td VALIGN="TOP"><i>Console.TelevisionType:</i></td>
|
||||
<td>This property indicates the default television setting for the
|
||||
game. The value of this property must be Color or BlankAndWhite.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td VALIGN="TOP"><i>Controller.Left:</i></td>
|
||||
<td>This property indicates what type of controller the left player
|
||||
|
@ -1994,10 +2024,20 @@ Ms Pac-Man (Stella extended codes):
|
|||
Keyboard, Paddles, or Joystick.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td VALIGN="TOP"><i>Controller.SwapPaddles:</i></td>
|
||||
<td>This property indicates that the left and right paddles in
|
||||
a particular port should be swapped. This is used for ROMs like
|
||||
'Demons to Diamonds' where the default paddle is paddle 1, not
|
||||
paddle 0. Other ROMs such as 'Tac-Scan' default to paddle 3,
|
||||
which can be set using both 'Controller.SwapPaddles' and
|
||||
'Console.SwapPorts'. The value of this property must be Yes or No.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td VALIGN="TOP"><i>Display.Format:</i></td>
|
||||
<td>This property indicates the television format the game was
|
||||
designed for. The value of this property must be NTSC or PAL.</td>
|
||||
designed for. The value of this property must be NTSC, PAL or PAL60.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
@ -2034,6 +2074,14 @@ Ms Pac-Man (Stella extended codes):
|
|||
emulated or not. The value of this property must be Yes or No.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td VALIGN="TOP"><i>Display.PPBlend:</i></td>
|
||||
<td>This property indicates the amount of blending which will occur
|
||||
while using the phosphor effect. The value of this property must be
|
||||
<i>n</i> such that 0 <= <i>n</i> <= 100. The default value
|
||||
is 77.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td VALIGN="TOP"><i>Emulation.HmoveBlanks:</i></td>
|
||||
<td>This property indicates whether the TIA HMOVE blank bug should be
|
||||
|
@ -2073,7 +2121,52 @@ Ms Pac-Man (Stella extended codes):
|
|||
|
||||
<br><br>
|
||||
<p><h1>
|
||||
<a name="Acknowledgments">14. Acknowledgments</a></h1>
|
||||
<a name="Palette">14. Palette Support</a></h1>
|
||||
<hr>
|
||||
|
||||
<p>An Atari 2600 palette consists of 128 colours, which are different
|
||||
for the two major television standards (NTSC and PAL/PAL60). Stella supports
|
||||
three built-in palettes and one user-defined palette for each format.
|
||||
These are set using the '-palette' option, and are described as follows:</p>
|
||||
<p><table cellpadding="5" border="1">
|
||||
<tr>
|
||||
<td><b>standard</b></td>
|
||||
<td>The default palette from Stella 1.4 onwards.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>original</b></td>
|
||||
<td>The palette used in the original StellaX.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>z26</b></td>
|
||||
<td>The palette from the z26 emulator.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>user</b></td>
|
||||
<td>An external palette file, supplied by the user.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>Support for a user-defined palette is a new feature for Stella 2.3, and
|
||||
is further described as follows:
|
||||
<ul>
|
||||
<li>The palette file must be called 'stella.pal', and will be located
|
||||
in the base folder, in the same place as the stella properties file.</li>
|
||||
<li>The palette file must be at least 768 bytes long. Colours are stored
|
||||
in 24-bit RGB, with the first byte for red, the second for green, the
|
||||
third for blue, for a total of 3 bytes per colour.</li>
|
||||
<li>The first 384 bytes of the file (128 * 3) will be used for the NTSC
|
||||
palette. The second 384 bytes will be for the PAL/PAL60 palette.
|
||||
Any extra data in the file will be ignored.</li>
|
||||
<li>The PAL colour-loss effect is calculated within Stella. You do not
|
||||
need to specify those colours in the palette file.
|
||||
</ul>
|
||||
<p>In the future, support may be added for specifying a palette for each ROM.</p>
|
||||
|
||||
|
||||
<br><br>
|
||||
<p><h1>
|
||||
<a name="Acknowledgments">15. Acknowledgments</a></h1>
|
||||
<hr>
|
||||
|
||||
<p>Bradford W. Mott started developing Stella during the fall of 1995 and since
|
||||
|
@ -2322,7 +2415,7 @@ Ms Pac-Man (Stella extended codes):
|
|||
|
||||
<br><br>
|
||||
<p><h1>
|
||||
<a name="License">15. License and Disclaimer</a></h1>
|
||||
<a name="License">16. License and Disclaimer</a></h1>
|
||||
<hr>
|
||||
|
||||
<p>
|
||||
|
|
|
@ -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.106 2006-12-11 00:15:33 stephena Exp $
|
||||
// $Id: Console.cxx,v 1.107 2006-12-13 00:05:46 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <assert.h>
|
||||
|
@ -705,6 +705,10 @@ void Console::setDeveloperProperties()
|
|||
myProperties.set(Controller_Right, s);
|
||||
}
|
||||
|
||||
s = settings.getString("cp");
|
||||
if(s != "")
|
||||
myProperties.set(Controller_SwapPaddles, s);
|
||||
|
||||
s = settings.getString("format");
|
||||
if(s != "")
|
||||
myProperties.set(Display_Format, s);
|
||||
|
|
|
@ -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.107 2006-12-11 00:15:33 stephena Exp $
|
||||
// $Id: FrameBuffer.cxx,v 1.108 2006-12-13 00:05:46 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <sstream>
|
||||
|
@ -394,7 +394,7 @@ bool FrameBuffer::scale(int direction, const string& type)
|
|||
getScaler(newScaler, direction, currentScaler);
|
||||
|
||||
// Only update the scaler if it's changed from the old one
|
||||
if(currentScaler != newScaler.name)
|
||||
if(currentScaler != string(newScaler.comparitor))
|
||||
{
|
||||
setScaler(newScaler);
|
||||
if(!createScreen())
|
||||
|
@ -409,9 +409,9 @@ bool FrameBuffer::scale(int direction, const string& type)
|
|||
showMessage(newScaler.name);
|
||||
|
||||
if(inTIAMode)
|
||||
myOSystem->settings().setString("scale_tia", newScaler.name);
|
||||
myOSystem->settings().setString("scale_tia", newScaler.comparitor);
|
||||
else
|
||||
myOSystem->settings().setString("scale_ui", newScaler.name);
|
||||
myOSystem->settings().setString("scale_ui", newScaler.comparitor);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -759,7 +759,7 @@ void FrameBuffer::getScaler(Scaler& scaler, int direction, const string& name)
|
|||
int pos = -1;
|
||||
for(unsigned int i = 0; i < myScalerList.size(); ++i)
|
||||
{
|
||||
if(myScalerList[i]->name == name)
|
||||
if(STR_CASE_CMP(myScalerList[i]->name, name.c_str()) == 0)
|
||||
{
|
||||
pos = i;
|
||||
break;
|
||||
|
@ -822,26 +822,26 @@ const uInt8 FrameBuffer::ourGUIColors[kNumColors-256][3] = {
|
|||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Scaler FrameBuffer::ourUIScalers[kUIScalerListSize] = {
|
||||
{ kZOOM1X, "Zoom1x", 1, 1 },
|
||||
{ kZOOM2X, "Zoom2x", 2, 1 },
|
||||
{ kZOOM3X, "Zoom3x", 3, 1 },
|
||||
{ kZOOM4X, "Zoom4x", 4, 1 },
|
||||
{ kZOOM5X, "Zoom5x", 5, 1 },
|
||||
{ kZOOM6X, "Zoom6x", 6, 1 }
|
||||
{ kZOOM1X, "Zoom1x", "zoom1x", 1, 1 },
|
||||
{ kZOOM2X, "Zoom2x", "zoom2x", 2, 1 },
|
||||
{ kZOOM3X, "Zoom3x", "zoom3x", 3, 1 },
|
||||
{ kZOOM4X, "Zoom4x", "zoom4x", 4, 1 },
|
||||
{ kZOOM5X, "Zoom5x", "zoom5x", 5, 1 },
|
||||
{ kZOOM6X, "Zoom6x", "zoom6x", 6, 1 }
|
||||
};
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Scaler FrameBuffer::ourTIAScalers[kTIAScalerListSize] = {
|
||||
{ kZOOM1X, "Zoom1x", 1, 1 },
|
||||
{ kZOOM2X, "Zoom2x", 2, 1 },
|
||||
{ kZOOM3X, "Zoom3x", 3, 1 },
|
||||
{ kZOOM4X, "Zoom4x", 4, 1 },
|
||||
{ kZOOM5X, "Zoom5x", 5, 1 },
|
||||
{ kZOOM6X, "Zoom6x", 6, 1 },
|
||||
{ kZOOM1X, "Zoom1x", "zoom1x", 1, 1 },
|
||||
{ kZOOM2X, "Zoom2x", "zoom2x", 2, 1 },
|
||||
{ kZOOM3X, "Zoom3x", "zoom3x", 3, 1 },
|
||||
{ kZOOM4X, "Zoom4x", "zoom4x", 4, 1 },
|
||||
{ kZOOM5X, "Zoom5x", "zoom5x", 5, 1 },
|
||||
{ kZOOM6X, "Zoom6x", "zoom6x", 6, 1 },
|
||||
|
||||
{ kSCALE2X, "Scale2x", 1, 2 },
|
||||
{ kSCALE3X, "Scale3x", 1, 3 },
|
||||
{ kSCALE2X, "Scale2x", "scale2x", 1, 2 },
|
||||
{ kSCALE3X, "Scale3x", "scale3x", 1, 3 },
|
||||
|
||||
{ kHQ2X, "HQ2x", 1, 2 },
|
||||
{ kHQ3X, "HQ3x", 1, 3 },
|
||||
{ kHQ2X, "HQ2x", "hq2x", 1, 2 },
|
||||
{ kHQ3X, "HQ3x", "hq3x", 1, 3 },
|
||||
};
|
||||
|
|
|
@ -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.hxx,v 1.79 2006-12-11 00:15:33 stephena Exp $
|
||||
// $Id: FrameBuffer.hxx,v 1.80 2006-12-13 00:05:46 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#ifndef FRAMEBUFFER_HXX
|
||||
|
@ -84,7 +84,8 @@ enum ScalerType {
|
|||
};
|
||||
struct Scaler {
|
||||
ScalerType type;
|
||||
string name;
|
||||
const char* name;
|
||||
const char* comparitor;
|
||||
int zoom;
|
||||
int scale;
|
||||
};
|
||||
|
@ -97,7 +98,7 @@ struct Scaler {
|
|||
All GUI elements (ala ScummVM) are drawn here as well.
|
||||
|
||||
@author Stephen Anthony
|
||||
@version $Id: FrameBuffer.hxx,v 1.79 2006-12-11 00:15:33 stephena Exp $
|
||||
@version $Id: FrameBuffer.hxx,v 1.80 2006-12-13 00:05:46 stephena Exp $
|
||||
*/
|
||||
class FrameBuffer
|
||||
{
|
||||
|
|
|
@ -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.97 2006-12-11 00:15:33 stephena Exp $
|
||||
// $Id: Settings.cxx,v 1.98 2006-12-13 00:05:46 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <cassert>
|
||||
|
@ -42,8 +42,8 @@ Settings::Settings(OSystem* osystem)
|
|||
setInternal("gl_lib", "");
|
||||
setInternal("gl_vsync", "true");
|
||||
|
||||
setInternal("scale_ui", "Zoom1x");
|
||||
setInternal("scale_tia", "Zoom1x");
|
||||
setInternal("scale_ui", "zoom1x");
|
||||
setInternal("scale_tia", "zoom1x");
|
||||
setInternal("fullscreen", "false");
|
||||
setInternal("center", "true");
|
||||
setInternal("grabmouse", "false");
|
||||
|
@ -76,7 +76,7 @@ Settings::Settings(OSystem* osystem)
|
|||
setInternal("sssingle", "false");
|
||||
|
||||
setInternal("romdir", "");
|
||||
setInternal("rombrowse", "false");
|
||||
setInternal("rombrowse", "true");
|
||||
setInternal("lastrom", "");
|
||||
setInternal("modtime", ""); // romdir last modification time
|
||||
|
||||
|
@ -241,16 +241,19 @@ void Settings::validate()
|
|||
#endif
|
||||
|
||||
s = getString("scale_ui");
|
||||
if(s != "Zoom1x" && s != "Zoom2x" && s != "Zoom3x" &&
|
||||
s != "Zoom4x" && s != "Zoom5x" && s != "Zoom6x")
|
||||
setInternal("scale_ui", "Zoom1x");
|
||||
if(s != "zoom1x" && s != "zoom2x" && s != "zoom3x" &&
|
||||
s != "zoom4x" && s != "zoom5x" && s != "zoom6x")
|
||||
setInternal("scale_ui", "zoom1x");
|
||||
|
||||
s = getString("scale_tia");
|
||||
if(s != "Zoom1x" && s != "Zoom2x" && s != "Zoom3x" &&
|
||||
s != "Zoom4x" && s != "Zoom5x" && s != "Zoom6x" &&
|
||||
s != "Scale2x" && s != "Scale3x" && s != "Scale4x" &&
|
||||
s != "HQ2x" && s != "HQ3x" && s != "HQ4x")
|
||||
setInternal("scale_tia", "Zoom1x");
|
||||
if(s != "zoom1x" && s != "zoom2x" && s != "zoom3x" &&
|
||||
s != "zoom4x" && s != "zoom5x" && s != "zoom6x"
|
||||
#ifdef SCALER_SUPPORT
|
||||
&& s != "scale2x" && s != "scale3x" && s != "scale4x" &&
|
||||
s != "hq2x" && s != "hq3x" && s != "hq4x"
|
||||
#endif
|
||||
)
|
||||
setInternal("scale_tia", "zoom1x");
|
||||
|
||||
i = getInt("paddle");
|
||||
if(i < 0 || i > 3)
|
||||
|
@ -284,7 +287,7 @@ void Settings::usage()
|
|||
#ifdef DISPLAY_OPENGL
|
||||
<< " gl SDL OpenGL mode\n"
|
||||
<< endl
|
||||
<< " -gl_lib <filename> Specify the OpenGL library\n"
|
||||
<< " -gl_lib <name> Specify the OpenGL library\n"
|
||||
<< " -gl_filter <type> Type is one of the following:\n"
|
||||
<< " nearest Normal scaling (GL_NEAREST)\n"
|
||||
<< " linear Blurred scaling (GL_LINEAR)\n"
|
||||
|
@ -293,7 +296,8 @@ void Settings::usage()
|
|||
<< " -gl_vsync <1|0> Enable synchronize to vertical blank interrupt\n"
|
||||
<< endl
|
||||
#endif
|
||||
<< " -zoom <size> Makes window be 'size' times normal\n"
|
||||
<< " -scale_tia <scaler> Use the specified scaler in emulation mode\n"
|
||||
<< " -scale_ui <scaler> Use the specified scaler in non-emulation mode (ROM browser/debugger)\n"
|
||||
<< " -fullscreen <1|0> Play the game in fullscreen mode\n"
|
||||
<< " -center <1|0> Centers game window (if possible)\n"
|
||||
<< " -grabmouse <1|0> Keeps the mouse in the game window\n"
|
||||
|
@ -324,6 +328,9 @@ void Settings::usage()
|
|||
<< " -p3speed <number> Speed of emulated mouse movement for paddle 3 (0-100)\n"
|
||||
<< " -pthresh <number> Set threshold for eliminating paddle jitter\n"
|
||||
<< " -tiadefaults <1|0> Use TIA positioning defaults instead of enhanced values\n"
|
||||
<< " -rombrowse <1|0> Use ROM browser mode (shows files and folders)\n"
|
||||
<< " -autoslot <1|0> Automatically switch to next save slot when state saving\n"
|
||||
<< " -fastscbios <1|0> Speed up loading of SuperCharger ROM BIOS\n"
|
||||
#ifdef UNIX
|
||||
<< " -accurate <1|0> Accurate game timing (uses more CPU)\n"
|
||||
#endif
|
||||
|
@ -355,6 +362,7 @@ void Settings::usage()
|
|||
<< " -lc <arg> Sets the 'Controller.Left' property\n"
|
||||
<< " -rc <arg> Sets the 'Controller.Right' property\n"
|
||||
<< " -bc <arg> Same as using both -lc and -rc\n"
|
||||
<< " -cp <arg> Sets the 'Controller.SwapPaddles' property\n"
|
||||
<< " -format <arg> Sets the 'Display.Format' property\n"
|
||||
<< " -xstart <arg> Sets the 'Display.XStart' property\n"
|
||||
<< " -ystart <arg> Sets the 'Display.YStart' property\n"
|
||||
|
|
|
@ -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: VideoDialog.cxx,v 1.36 2006-12-08 16:49:37 stephena Exp $
|
||||
// $Id: VideoDialog.cxx,v 1.37 2006-12-13 00:05:46 stephena Exp $
|
||||
//
|
||||
// Based on code from ScummVM - Scumm Interpreter
|
||||
// Copyright (C) 2002-2004 The ScummVM project
|
||||
|
@ -197,21 +197,15 @@ void VideoDialog::loadConfig()
|
|||
|
||||
// Renderer setting
|
||||
s = instance()->settings().getString("video");
|
||||
if(s == "soft")
|
||||
myRendererPopup->setSelectedTag(1);
|
||||
else if(s == "hard")
|
||||
myRendererPopup->setSelectedTag(2);
|
||||
else if(s == "gl")
|
||||
myRendererPopup->setSelectedTag(3);
|
||||
else
|
||||
myRendererPopup->setSelectedTag(1);
|
||||
if(s == "soft") myRendererPopup->setSelectedTag(1);
|
||||
else if(s == "hard") myRendererPopup->setSelectedTag(2);
|
||||
else if(s == "gl") myRendererPopup->setSelectedTag(3);
|
||||
else myRendererPopup->setSelectedTag(1);
|
||||
|
||||
// Filter setting
|
||||
s = instance()->settings().getString("gl_filter");
|
||||
if(s == "linear")
|
||||
myFilterPopup->setSelectedTag(1);
|
||||
else if(s == "nearest")
|
||||
myFilterPopup->setSelectedTag(2);
|
||||
if(s == "linear") myFilterPopup->setSelectedTag(1);
|
||||
else if(s == "nearest") myFilterPopup->setSelectedTag(2);
|
||||
|
||||
// Aspect ratio - another huge hack
|
||||
s = instance()->settings().getString("gl_aspect");
|
||||
|
@ -232,41 +226,26 @@ void VideoDialog::loadConfig()
|
|||
|
||||
// Palette
|
||||
s = instance()->settings().getString("palette");
|
||||
if(s == "standard")
|
||||
myPalettePopup->setSelectedTag(1);
|
||||
else if(s == "original")
|
||||
myPalettePopup->setSelectedTag(2);
|
||||
else if(s == "z26")
|
||||
myPalettePopup->setSelectedTag(3);
|
||||
else if(s == "user")
|
||||
myPalettePopup->setSelectedTag(4);
|
||||
if(s == "standard") myPalettePopup->setSelectedTag(1);
|
||||
else if(s == "original") myPalettePopup->setSelectedTag(2);
|
||||
else if(s == "z26") myPalettePopup->setSelectedTag(3);
|
||||
else if(s == "user") myPalettePopup->setSelectedTag(4);
|
||||
|
||||
// Scaler
|
||||
s = instance()->settings().getString("scale_tia");
|
||||
if(s == "Zoom1x")
|
||||
myScalerPopup->setSelectedTag(1);
|
||||
else if(s == "Zoom2x")
|
||||
myScalerPopup->setSelectedTag(2);
|
||||
else if(s == "Zoom3x")
|
||||
myScalerPopup->setSelectedTag(3);
|
||||
else if(s == "Zoom4x")
|
||||
myScalerPopup->setSelectedTag(4);
|
||||
else if(s == "Zoom5x")
|
||||
myScalerPopup->setSelectedTag(5);
|
||||
else if(s == "Zoom6x")
|
||||
myScalerPopup->setSelectedTag(6);
|
||||
if(s == "zoom1x") myScalerPopup->setSelectedTag(1);
|
||||
else if(s == "zoom2x") myScalerPopup->setSelectedTag(2);
|
||||
else if(s == "zoom3x") myScalerPopup->setSelectedTag(3);
|
||||
else if(s == "zoom4x") myScalerPopup->setSelectedTag(4);
|
||||
else if(s == "zoom5x") myScalerPopup->setSelectedTag(5);
|
||||
else if(s == "zoom6x") myScalerPopup->setSelectedTag(6);
|
||||
#ifdef SCALER_SUPPORT
|
||||
else if(s == "Scale2x")
|
||||
myScalerPopup->setSelectedTag(7);
|
||||
else if(s == "Scale3x")
|
||||
myScalerPopup->setSelectedTag(8);
|
||||
else if(s == "HQ2x")
|
||||
myScalerPopup->setSelectedTag(9);
|
||||
else if(s == "HQ3x")
|
||||
myScalerPopup->setSelectedTag(10);
|
||||
else if(s == "scale2x") myScalerPopup->setSelectedTag(7);
|
||||
else if(s == "scale3x") myScalerPopup->setSelectedTag(8);
|
||||
else if(s == "hq2x") myScalerPopup->setSelectedTag(9);
|
||||
else if(s == "hq3x") myScalerPopup->setSelectedTag(10);
|
||||
#endif
|
||||
else
|
||||
myScalerPopup->setSelectedTag(0);
|
||||
else myScalerPopup->setSelectedTag(0);
|
||||
|
||||
// Fullscreen
|
||||
b = instance()->settings().getBool("fullscreen");
|
||||
|
@ -307,12 +286,9 @@ void VideoDialog::saveConfig()
|
|||
|
||||
// Renderer setting
|
||||
i = myRendererPopup->getSelectedTag();
|
||||
if(i == 1)
|
||||
s = "soft";
|
||||
else if(i == 2)
|
||||
s = "hard";
|
||||
else if(i == 3)
|
||||
s = "gl";
|
||||
if(i == 1) s = "soft";
|
||||
else if(i == 2) s = "hard";
|
||||
else if(i == 3) s = "gl";
|
||||
if(s != instance()->settings().getString("video"))
|
||||
{
|
||||
instance()->settings().setString("video", s);
|
||||
|
@ -321,10 +297,8 @@ void VideoDialog::saveConfig()
|
|||
|
||||
// Filter setting
|
||||
i = myFilterPopup->getSelectedTag();
|
||||
if(i == 1)
|
||||
s = "linear";
|
||||
else if(i == 2)
|
||||
s = "nearest";
|
||||
if(i == 1) s = "linear";
|
||||
else if(i == 2) s = "nearest";
|
||||
if(s != instance()->settings().getString("gl_filter"))
|
||||
{
|
||||
instance()->settings().setString("gl_filter", s);
|
||||
|
@ -341,19 +315,27 @@ void VideoDialog::saveConfig()
|
|||
|
||||
// Palette
|
||||
i = myPalettePopup->getSelectedTag();
|
||||
if(i == 1)
|
||||
s = "standard";
|
||||
else if(i == 2)
|
||||
s = "original";
|
||||
else if(i == 3)
|
||||
s = "z26";
|
||||
else if(i == 4)
|
||||
s = "user";
|
||||
if(i == 1) s = "standard";
|
||||
else if(i == 2) s = "original";
|
||||
else if(i == 3) s = "z26";
|
||||
else if(i == 4) s = "user";
|
||||
instance()->settings().setString("palette", s);
|
||||
instance()->console().setPalette(s);
|
||||
|
||||
// Scaler
|
||||
s = myScalerPopup->getSelectedString();
|
||||
i = myScalerPopup->getSelectedTag();
|
||||
if(i == 1) s = "zoom1x";
|
||||
else if(i == 2) s = "zoom2x";
|
||||
else if(i == 3) s = "zoom3x";
|
||||
else if(i == 4) s = "zoom4x";
|
||||
else if(i == 5) s = "zoom5x";
|
||||
else if(i == 6) s = "zoom6x";
|
||||
#ifdef SCALER_SUPPORT
|
||||
else if(i == 7) s = "scale2x";
|
||||
else if(i == 8) s = "scale3x";
|
||||
else if(i == 9) s = "hq2x";
|
||||
else if(i == 10) s = "hq3x";
|
||||
#endif
|
||||
if(s != instance()->settings().getString("scale_tia"))
|
||||
{
|
||||
instance()->settings().setString("scale_tia", s);
|
||||
|
|