* Variables and functions accessed during interrupt service routines
are properly locked to ensure they are in physical memory.
* The emulation can be synchronized with the VSYNC of the video
card instead of using the system timer. The is the default
behavior when running under Windows NT/2000/XP since the DJGPP
system timer functions do not operate correctly under these
operating systems.
* New routines have been added to setup the graphics modes. The
new modes should run at 60Hz instead of the standard 70Hz for
the 320x200 mode.
* The stella profile is search for in the current working directory
as well as the $STELLA_HOME directory.
* When loading a ROM it is looked for in the current working directory,
$STELLA_HOME/ROMS, and finally $STELLA_HOME.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@166 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
so that sound works better under Windows NT/2000/XP systems.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@165 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
bankswitching as suggested by Adam Wozniak. This allows most of
the demos/homebrew games being created using this method to work
without a stella.pro file entry.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@164 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
game state is stored in a 'state' sub-directory of the current working
directory or in a 'state' sub-directory of the directory specified by
the 'STELLA_HOME' environment variable if it is set.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@163 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2002 regarding the difficulty switches being reversed. It looks like
this bug was introduced in the 1.0 release of Stella (only took 4 years
to find and fix it :-)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@162 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
which are 10,495 or 10,240 bytes in length are considered to be DPC
based games. This should allow hacks of Pitfall II to work.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@161 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Looks like this works better for games when the stella.pro file is missing.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@160 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the issue with the robots in Berzerk always appearing in the same pattern
when the game starts.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@159 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
console is created. If properties are not found for the ROM then the
MD5 value will be set to the MD5 value of the ROM. This allows the
"-showinfo" command line option to display the MD5 checksum of unknown
games...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@158 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
call to resize the window needed to be after the call which tells the
window manager the maximum size of the window.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@157 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
shown, and cannot be turned off.
Barring any errors encountered in memory allocation (etc.), using
-showinfo 0 will not output ANYTHING to the console.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@153 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
all of the Pitfall II music is played now that the TIA sound routines can
handle it.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@146 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
compiling (or running) Stella with no sound support whatsoever.
Added ability to compile multiple sound backends into the X11 and SDL
versions, and to dynamically select from among them at run-time. For
now, the X11 version can't use the SDL sound core. This is in
preparation for the ALSA sound backend, which may or may not make it
into Stella 1.3.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@144 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
a little more room for error. Also added a call to SDL_Delay in the
blocking section of the updateSound method so that it doesn't hog the CPU.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@143 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
switched to a new set of low-level Sound Blaster routines which appear
to provide better Sound Blaster support and the ability to auto-detect
sound card settings.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@142 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
of stderr).
Fixed the X11 version wrt to merging changes into the main properties file.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@141 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the X11 sound code is more mature.
Changed all occurrences of ::close() to ::closeDevice().
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@138 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
class. Couldn't use close(), since that is a C-style function called in
the SoundX11 code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@137 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
SoundSDL classes are drop-in replacements for each other.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@136 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
As of now, the OSS sound code is a bit more mature than the SDL code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@135 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
we want to merge any properties changes into the PropertiesSet.
In the X11 and SDL versions, this option also tells the Properties::load()
method to load the properties into memory, since we can't do a merge
unless the properties are stored in memory.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@132 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
into the current PropertiesSet. This method also accepts a filename specifying
where to save this PropertiesSet to, and a boolean representing whether we want
to actually save the properties on exit.
Cleaned up some variable names, and set some bas initializers in the constructor.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@131 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
that when a Properties object is saved to a properties file, that file
looks more like the default stella.pro.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@130 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
be compiled into the core. It's up to the GUI's to call (or not call) the
DEVELOPER methods.
Changed the behaviour of Console::saveProperties() in that it now accepts a
boolean variable 'merge', which if true, will make a call to
PropertiesSet::merge() and indicate that these properties are to be saved
into a stella.pro file.
If merge is false, it simply saves the properties to the specified file
(as before).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@129 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
stay synchronized with each other. Also added code to disable the audio
if the driver doesn't support "real time" audio (under linux this usually
means a sound server is running). This code appears to be working almost
as well as the X11 sound code under the 1.2.5 release of SDL.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@128 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
stuff. These are availble only if DEVELOPER_SUPPORT as been defined.
The keys are as follows:
Alt+s: Save the current properties to your home directory named as
"Cartridge.Name".pro, with all spaces in the filename
converted to underscore.
Alt+f: Toggle between NTSC and PAL modes, and update the palette
accordingly.
PageUp / PageDown: Increase / decrease the "Display.YStart" variable.
Alt+PageUp / Alt+PageDown: Increase / decrease the "Display.Height" variable.
Home / End: Increase / decrease the "Display.XStart" variable.
Alt+Home / Alt+End: Increase / decrease the "Display.Width" variable.
Also, cleaned up the code a bit wrt C functions. Got rid of all sprintf
C-style functions, and used C++ style sstream instead.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@125 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
both from the commandline (by passing in a user-defined properties
object to the Console constructor) and at runtime (by calling various
methods in the Console class).
Methods are defined as follows:
Console::changeXStart() & Console::changeYStart()
- Changes the "Display.XStart" and "Display.YStart" variables.
Console::changeWidth() & Console::changeHeight()
- Changes the "Display.Width" and "Display.Height" variables.
Console::toggleFormat()
- Changes the "Display.Format" variable, switching between NTSC and PAL
modes.
Console::saveProperties()
- Saves the current properties (including changes made in the current
session) to the given filename.
Some notes on the new methods:
- The GUI's will need to be adapted to see the updated information
and act accordingly.
- This new code is only activated by '#define DEVELOPER_SUPPORT'.
You are encouraged to wrap calls to these new methods (in the GUI)
in an appropriate #ifdef. Publicly released binaries probably
SHOULD NOT have this stuff activated.
- All change methods (except for NTSC/PAL switching) currently do a full
system reset after making a change, so that the whole system will see the
changes. This means that if you are playing a game and call one of these
methods, the game will be reset. In the future, the core may be enhanced
so that changes are detected without a full reset.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@121 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba