Basically, the OpenGL class can use functions from several different
versions of OpenGL (1.3 and 2.0+), and all sections of code need to
be wrapped in IF statements to make sure we don't use a function
pointer that is NULL. Basically, this means that all GLSL/2.0+
stuff needs to be wrapped in 'if(myTvFiltersEnabled) ...'.
This actually lays the groundwork for the next feature I'll be
adding (frame buffer objects), since those require yet another
level of OpenGL functions that may not be available everywhere.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1816 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
they're properly loaded and saved in the config files. The code to
correctly load strings containing backslashes was already there over
7 years ago, and I deactivated it and never even noticed. That must
be a new record for a long-standing bug :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1812 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
vs. GLSL stuff. This should allow users who don't have GLSL to still
use the OpenGL renderer. Related to this, added a stub for GL FBO,
which I hope to add for a future release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1810 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
no need for these characters to ever be present, and having them there
really causes problems in parsing that would be best avoided.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1777 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
shown within the UI use the '~' symbol whenever possible. This means
that paths from the settings file are now truly relative; change your
home directory, and the settings file will still work (it no longer
contains absolute path names).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1776 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
more sense, as it isn't a double-negative any more).
Made PropSet::getMD5() more explicitly return a boolean indicating if the
properties were found, vs. having a CartName of 'Untitled' indicating that
it wasn't found.
The file being used by Stella in multi-file ZIP archive is now shown in
the window title, vs. showing the name of the ZIP file itself. Related
to this, a file with an extension of 'rom' is now valid inside ZIP
archives.
Updated documentation for bankswitch types, more clearly indicating which
ones support autodetection and the debugger.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1775 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
as if they were 32in1 carts, in that you have to do a on-off power cycle to
switch between each ROM.
Updated ROM properties for the aforementioned BS types, and fixed some
others (SWOOPS, etc).
Added PERL tool to scan a snapshot directory and report any extra and/or
missing snapshots.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1774 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Added OpenGL info to the TV effect tab of the VideoDialog, so users
can see why the effects aren't available if OpenGL is not sufficient.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1772 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
start with game 0 (as if it's been unplugged for some time), but reloading
the ROM with Ctrl-r will cycle through each game (emulating a power-cycle).
Fixed crash when specifying a directory on the commandline; only files
are supported as ROMs.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1770 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
not by actually copying pieces of ROM, but by addressing different
parts of the ROM with an appropriate mask. This fixes a patching
bug I just found, whereby patching one part of the ROM wasn't
propagating it to the rest of the image.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1769 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Because the version was always being returned as 0, the TV effects were
always disabled, even on hardware that could support them.
Creation of OpenGL video mode is now more robust. If it fails for any
reason, fallback to software mode is now done (and a message stating
that it happened). This still won't protect against the operating
system lying to Stella and saying OpenGL support is really available
when it isn't, though.
Added support for ROMs smaller than 2K. These are still treated as
2K ROMs, but have their contents mirrored appropriately.
Bumped version number.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1768 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Randomized value placed in accumulator after exiting the SC BIOS for
SuperCharger ROMs. This should fix issues in Dragonstomper, where it
seems the randomization of its items depending on a random accumulator
value.
Re-added '-fastscbios', and when enabled, it completely skips
the emulation of SC BIOS progress bars (previously, the bars were
simply sped up). This defaults to off, for more authentic emulation.
Related to this, added a UI item in VideoDialog to enable/disable it.
Thanks to Eckhard Stolberg for advice on the SCROM, and how to
modify it.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1763 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
wrote this back in 2000 or so, after I had just finished an algorithms
design course, and insisted on coding my own ADT. I've come to realize
that in most cases, rolling your own is just a waste of time :) Related
to this, the 'listrominfo' commandline argument now correctly shows all
the ROM info built in to Stella internal database.
Bumped version # to 2.8. I just need to check out OSX, and then we
should be ready for the next release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1757 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Add Shift-PageUp/PageDn for scrolling with the keyboard in DataGridWidgets
(most useful with the new RAM UI having multiple banks of RAM).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1755 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the ones that bankswitch in RAM, since I don't know what should happen there.
Added 'exitlauncher' commandline argument, which specifies the functionality
of the 'Exit to launcher' action; should exiting a game actually go back to
the launcher, or exit the program entirely. Also added a UI item in UIDialog
for this.
Reworked the fullscreen/windowed handling in FrameBuffer, simplifying the
logic for determining whether the SDL surface is actually in fullscreen
or not.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1752 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the Stella header/disclaimer, just like all the other source files.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1751 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
General updates to the documentation for people I forgot to include in
previous releases. Also added websites where applicable.
Update AboutDialog to be more current, showing only those members
currently active in the Stella project and the other teams that have
contributed code. For more specifics, you should now see the manual.
Basically consolidated all contribution info into one document, so it
has to be kept up-to-date in only one place.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1750 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
wasn't necessary, as ZP RAM can always be changed. In the new scheme,
however, sometimes the RAM view will actually show ROM, and in those
cases it definitely shouldn't be modified.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1749 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
schemes that have multiples areas of RAM. Converted F4SC, F6SC, F8SC,
FASC to this new functionality.
Added ability to modify extended RAM in 3E, CV, E7 and EFSC ROMs.
Note that these ROMs can swap RAM in and out dynamically, so what
you see in the RAM area won't always be RAM.
Updated debugger CpuWidget; decimal and binary values for SP/A/X/Y
are now all shown at the same time (previously the registers had to
share a decimal/binary view).
Updated debugger documentation for recent additions.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1748 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the debugger RAM UI. A scrollbar is now present, which can scroll
through each 128 byte 'bank'. Labels indicate the current readport,
so you can distinguish between different areas of RAM. For now,
F4SC, F6SC, F8SC, and FASC have been converted, but I'm looking into the
other schemes now.
The RAM UI takes care of all read/write port issues. From the POV of
the UI, the RAM can be treated as zero-page; translation is done
behind the scene. Searching/comparing and change-tracking are also
supported.
The 'ram' command in the debugger prompt now reflects all RAM, and
readport/writeport addresses are shown, making it easier to use the
command withot having to look up the offsets.
Debugger width has been bumped to 1050 pixels wide to accomodate the
new functionality. We'll see how much trouble this causes ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1747 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
correctly for the PAL version of the ROM. I'm still not really
satisfied with the paddle emulation, but I guess it will do for now.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1746 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
'gl_texrect' is enabled. The VideoDialog now reflects this, by stating
a message, and disabling the UI items when not satisfied.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1745 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
requirements for new TV effects (OpenGL 2.0+ and GLSL).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1740 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Added CRT simulation as described by Ian Bogost in the AtariAge thread
'CRT simulation for Stella. This is just the first pass, but things
are working nicely so far (for those systems that can support it). It
requires at least OpenGL 2.0 with GLSL (GL Shading language). Added
the commandline arugments 'tv_tex', 'tv_bleed', 'tv_noise' and 'tv_phos'
used to set these various effects, as well as the ability to set them
within the Video Settings dialog. More documentation is forthcoming
on this.
All bankswitch modes that use SC RAM now act correctly when reading
from the write port (the RAM is erased).
Patching ROMs with bankswitch type 0840, SB, UA and X07 is now working.
Went through all the bankswitch classes and converted multiplication/
division to shift operations whenever possible. It's a
micro-optimization, but what the heck; every little bit of speed counts.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1739 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba