cheats were being evaluated even after the console was deleted. Also
moved saving of cheats out of the Console d'tor. I never liked that
required functionality was in a d'tor; it felt sort of hacky.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1257 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
It wasn't worth adding another bankswitch type for these, since they're
basically an anomoly, and I don't think any others exist like it.
Updated "Air Raid" ROM properties. This is a PAL ROM, no matter what
the other emulators say. The only way I'll change it at this point is to
see the real cartridge in action.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1256 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
After much request, added ability to access the settings menu from the
ROM browser dialog. This menu now contains almost all items that can
be selected in Stella, and can be accessed in-game as before.
Completely removed pause functionality from the core code. It made
sense back when Stella was a single-mode program: there were two modes;
emulation and pause. Now that there are other event modes, the
EventHandler state machine is getting too complicated. If you want to
pause, you can simply enter one of the in-game menus. Related to this,
when the app is minimized, Stella enters the menu dialog state.
Previously, minimizing the app caused a pause, but since there was no
onscreen feedback, many people assumed the app locked up.
Added centering to all Dialog boxes, which is done dynamically, as they're
placed on the dialog stack to be drawn to the screen.
Cleaned up the API of Console/FrameBuffer/OSystem classes wrt to palettes
and timing. Parts of each were being done in different classes; now it
should be more consistent.
Started infrastructure for user-selectable UI palettes. For now, there's
no way to change it in the GUI, and it defaults to the normal palette.
Eventually, there will be several choices selectable from an in-game
menu.
Removed '-channels' commandline argument, since that feature can be
set from the ROM properties.
Added '128' to the choices for fragment size in AudioDialog.
Tweaked the OpenGL dynamic loading code to test both the given GL
lib, and if that fails to use auto-detection. It seems in the OSX port,
the first approach works for some people, and not the other (and vice-versa),
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1255 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
having any effect.
Finished removing all TIA tweaks from ROM properties; the defaults should
now me much more authentic. Related to this, completely removed the
'tiadefaults' argument and all functionality.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1247 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Fixed annoying timing bug that's bothered me since the 2.0 release.
Exiting a ROM and starting another one was causing the new ROM to not
start playing sound from the beginning. This was made worse by the new
display format auto-detection logic. Basically, the main event loop
wasn't being reset from one ROM to another.
Moved OSystem::mainLoop() back into the actual OSystem class, and
removed it from the UNIX/OSX/Win32/GP2X ports. It's still virtual,
though, just in case a port wants to handle all timing itself.
Started a massive purge of all enhanced XStart/YStart values from
the internal properties. I'll also be removing the 'tiadefaults'
argument, and leaning towards a more authentic emulation look
and feel.
Second pass at image centering in the GP2X port. Now we only
do vertical centering, and only on images that won't be scaled
in hardware.
Reworked creating a new Console. It now takes in the properties and
Cartridge required for operation.
Re-added changeWidth() and changeHeight() console functionality, since
it's proved to be very beneficial.
Cleaned up getting info about a cartridge. It was sort of hacky before.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1246 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
is almost always a '3F' cart as well, it makes sense to only test for it
when we already know the cart is probably '3F'. As well, the pattern for
a '3F' cart results in a lot less false-positives than '3E'.
Added '-colorloss' commandline argument and 'Ctrl-l' key shortcut. This
enables or disables the PAL color-loss effect, and will default to off
(similar to z26 functionality). Still TODO is add a UI entry for it.
Fixed a bug in the calculation of PAL color-loss values; it wasn't actually
giving grayscale data, but something with a greenish tint.
Updated PAL autodetection code to run for 60 test frames instead of 20,
and ignore the first 30. This helps when loading SuperCharger games,
since the BIOS code always runs at NTSC rates, even if the ROM really
should be PAL. For now, this means it only works when 'fastscbios' is
enabled, and the BIOS runs in 30 frames or less (vs. needing 250+ frames
for normal speed!). I'm strongly leaning to just making 'fastscbios'
a non-editable default.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1242 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
of scanlines in a 20-frame run of the Console. This should finally quiet
those idiots that say 'Stella sucks' because it's too slow (when in fact
it just didn't know a ROM was PAL). This will only detect NTSC and PAL;
PAL60 will be autodetected as NTSC. AFAIK, there's no way to detect
this, so it will still need to be defined in the properties.
Added autodetection logic for E0 and E7 bankswitching types.
Added '-rominfo' commandline argument, which gives a semi-detailed
description of the given ROM, including cart type and display format.
Yes, I'm a geek; this is what I spend Christmas day doing :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1238 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
and I'm not sure if some of the remaining types can even be autodetected.
I only wish I'd had time to include this in the 2.3 release.
Bumped version number to 2.3.01, and starting all over again. Hopefully
more help will find its way to me this time :(
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1237 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
each different Expression class in a separate file, especially since they're
mostly only one-line methods. So now all the classes are placed in
DebuggerExpressions.hxx.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1234 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Tweaked the settings so they're more familiar to the user. Specifically,
'tiadefaults' is not on by default.
Fixed issue with using "[..]" in Win32 when at the root of a drive. In
that case, the parent is the listing of all drives.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1232 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
It now uses the defaults for xstart and ystart as well.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1231 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Hopefully this won't slow things down too much for other platforms.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1230 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the OSX port, but I'm not getting feedback, so I'll do a release and then
deal with the complaints :(
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1226 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
problems in the OpenGL code, and wasn't needed in the software code.
The only port that needs it is the GP2X, so it makes sense to take care
of that functionality directly in FrameBufferGP2X (which it now does).
Added ROM properties for a few homebrew ROMs from AtariAge.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1225 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Snapshot support is now always included, since it doesn't require libpng
and is only about 100 lines of code. If your particular port doesn't want
it, then don't bind an event to it :)
Removed changeWidth() and changeHeight() TIA functionality, in preparation
for the release after this one when it will disappear completely from the
core. Current ROM's which have these properties set will still function,
as long as 'tiadefaults' isn't turned on. Of course, one can still edit
the properties manually, but I'd like to discourage it.
Updated event strings in EventHandler. We now consistently refer to the
first joystick/paddle/driving controller/etc as zero.
Some more updates to the manual. I think it's pretty much complete at
this point.
Bumped version number to '2.3_rc1'. I'm basically finished at this point.
All that's left to do is make sure the weird OSX crashes some people are
having are fixed, and I'm awaiting feedback on that one.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1223 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
now only run for 10000 disassembled instructions, and then it will exit.
Related to this, removed the hack that let the 'runto' command
continuously run while updating the debugger, since it was buggy and didn't
really work anyway. So if 'runto' doesn't find what it needs in 10000
instructions, you'll need to run it again. Perhaps for a future release,
the number of instructions can be user-defined.
Made 'gl_vsync' not be the default for Unix/Linux systems, since very few
systems support it though SDL yet.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1222 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Tweaked the settings for Unix/Linux. Most GL implementations for those
systems use Mesa, which is currently broken wrt vsync support.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1221 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Changed all functions #define'ed in bspf.hxx to be named more consistently
(BSPF_functionname...), to make it more obvious what they are.
Changed 'DEVELOPER_SUPPORT' to 'DEBUGGER_SUPPORT' everywhere. Originally,
developer support was to encompass more than just the debugger, but since
there's no longer a reason to exclude the other stuff (due to most of it
being very useful even for non-developers), it makes sense to rename the
option. Those ports using 'configure' will need to update the arguments
used.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1216 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
'too old'. In this case, the file won't be parsed, and the internal
defaults will be used. This should only be changed when absolutely
necessary, as is the case with this release, since there are a few
settings that can cause Stella to not work when used with a 2.2 settings file.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1215 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
apparently faster on hardware that supports it. Added GL optimizations
for Apple/OSX OpenGL, which is supposed to be much faster on lower-end
hardware.
In the process of completely removing advanced scaler support from the
OpenGL rendering modes. I could never get the code to work anyway, and
there's much more important stuff to do in the core.
Fixed bug in properties saving where all ROM properties were being saved,
not just the ones edited from GameInfoDialog.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1209 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
and YStart properties aren't touched, since in some cases they're needed
for correct emulation. This is similar to how z26 works internally,
since it also has a YStart-like functionality.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1208 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
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