Commit Graph

1185 Commits

Author SHA1 Message Date
stephena e8604d426a A few documentation fixes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1913 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-12-14 00:04:15 +00:00
stephena 9cde1f3e53 Some cleanups to the BSPF class.
OSX plist file should use 10.4 as the minimum for the i386 version, not 10.5.
Otherwise, all Tiger users would be excluded from the next release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1911 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-22 20:36:07 +00:00
stephena 3972f0eca5 Reorganization of the M6502 classes; I didn't see the purpose of having
them in under src/emucore/m6502/src, and bspf under that again at
bspf/src.  It just made searching for classes that much harder.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1907 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-22 02:07:37 +00:00
stephena 4ac82ca56a Added separate build project for OSX Intel machines running Leopard (10.5)
or newer.  Obviously, this one only runs on x86 machines.  It's compiled
with the very latest compiler (Clang), which is much faster at compiling
as well as runtime.  And it also includes a 64-bit version, which is
only available on Snow Leopard.  The old build environment support 32-bit
in 10.4, 10.5 and 10.6 for PPC and Intel.

Fixed string overflow in reading settings from plist file in OSX.  I need
to figure out how to use C++ code from within Objective-C, since the
cause of the bug was C string code (which is notorious for buffer
overruns).

Bumped version # to test2, for some testers on AtariAge.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1904 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-12 17:23:02 +00:00
stephena f3282d299c CPU architecture info is now shown in AboutDialog, next to the build
version and SDL library.

Bumped version # for test builds for AtariAge members.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1897 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-08 18:42:12 +00:00
stephena 25f483dc27 Second pass at adding build info.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1894 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-07 17:58:07 +00:00
stephena 3939eb803a Add SVN build info to Version class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1893 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-07 17:36:25 +00:00
stephena 2fa8b1ee70 Added ability to dynamically toggle TIA collisions for the 6 graphical
objects.  These actions are tied to the same keys as for toggling the
objects themselves, with the addition of the 'Shift' key.  For example,
toggling the P0 object is 'Alt z', and toggling P0 collisions is
'Shift-Alt z'.  Note that disabling an object will obviously disable
its collisions as well.  Still TODO is work out how these keys map on
OSX; the Shift key is already being used for something else.

Reverted Cosmic Ark 'starfield effect' to match the descriptions
given in the 'Stella 3.0 released' thread on AtariAge.  It seems the
system I tested this on has an Svideo mod board that changes the
output from a normal console.

Bumped state file format header, since the TIA internals have changed
again.  As well, bumped version # to 3.1_svn.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1884 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-09-14 19:22:34 +00:00
stephena bb6d7856aa Some final changes for the 3.0 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1875 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-09-09 22:08:40 +00:00
stephena 03a854f206 Bumped version number to 3.0_rc. I won't have time to complete the
debugger disassembly improvements, so it will have to wait until 3.1.

Updated various files for impending 3.0 release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1874 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-09-09 18:00:31 +00:00
stephena 6144e4fd57 Improved ROM launcher so that going to a parent folder automatically
selects the item that was previously selected.

Fixed bug in Cheat dialog where editing a cheat didn't remove the old one.

Updated TODO, rearranging improved disassembly as the #1 priority for the
next release; I don't have time to finish it now.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1873 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-09-09 15:59:22 +00:00
stephena 67fec652b0 Updated TIA code to emulate the 'widening' part of the Cosmic Ark
starfield effect.  More research is required in this area.

Large update to exception handling throughout the codebase.  It seems
that in many cases, the correct 'catch' block was never being called.
I never see exceptions thrown very much, so that area doesn't get much
testing.  But I guess it's good that Stella doesn't generate many
exceptions :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1862 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-08-27 22:59:14 +00:00
stephena ddc77bd7e7 Added button for rewind to the debugger, next to the buttons which it
applies to.

Bumped version # to alpha3.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1860 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-08-25 12:46:56 +00:00
stephena 3c5cc40e08 OK, this looks like a huge update, but it's only because of some Serializer
class reworking.  Serializer class now handles read/write of state from
files as well as in-memory streams.  As a result, Deserializer class has
been removed.

Added state rewinding to the debugger.  For now, this is limited to 100
levels of undo, with a new state generated each time a step/trace/frame/
scanline advance is performed.  The undo level is 'rolling', in that it
remembers the last 100 levels (so you lose the oldest states when you
start adding more than 100).  For now, this is tied to the 'Alt-r' key
in the debugger.  Still TODO is add a button for it, and clean up some
TIA output issues when rewinding.

Added support for 6K version of Supercharger ROMs (this fixes issues
with the 6K version of Cubis).

Cleaned up the Serializable infrastructure, making sure that all
classes that need to implement it actually do so now.

Fixed issue with editable widgets in the UI, where pressing Enter
on the keypad wasn't actually being registered.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1849 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-08-05 16:05:34 +00:00
stephena 6b4cc11b03 First partial commit of the new TIA code. This ones fixes collision
detection being done outside the displayable area.  Originally, areas
above 'YStart' scanline were not processed as all, as an optimization.
However, several ROMs can do collision detection above ystart, so
we now process the entire frame (but only display the stuff below ystart).

Bumped version number.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1839 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-07-16 12:17:42 +00:00
stephena 7be6be8263 Added 'Go to previous directory' event to the UI. Currently, this is
mapped to Backspace, and is used in the ROM launcher and various
BrowserWidgets.  The event can be remapped if desired.  When I'm
testing Stella, I tend to use the keyboard almost exclusively, and
it was getting a little tiring to reach for the mouse each time I
wanted to change directories.

Bumped version number.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1836 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-07-12 22:09:21 +00:00
stephena b6c51181d0 Final updates for 2.8.4 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1826 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-07-03 16:38:11 +00:00
stephena 8a8d04031a Converted OSystem::getTicks() to use 64-bit integers. This should fix the
problems with integer overflow, which could sometimes cause Stella to
sleep for long periods of time.  For those who are interested, the
problem was that SDL_GetTicks() wraps every 49 days (32-bit int
overflow), but since OSystem::getTicks() provides info in microseconds,
it multiplied the value by 1000.  This caused wraparound in 49/1000
days, or 70.56 minutes.  This almost exactly matches the reports on
AtariAge of 'lockups' occuring every 71 minutes or so.  It also
explains why attaching to Stella with GDB and bypassing the delay
allows the program to continue (as reported by another bugtester).

Added signature to detect UA bankswitching for Gingerbread Man ROM.

Bumped version number.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1823 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-07-01 14:39:01 +00:00
stephena 1c829fc425 Final changes for 2.8.3 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1820 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-06-25 11:00:34 +00:00
stephena 996ad3431c Bumped version number.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1817 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-06-24 11:29:07 +00:00
stephena 79fdcb3480 Fixed incorrect initialization of certain OpenGL function pointers.
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
2009-06-24 11:28:07 +00:00
stephena f3c2a2c6c1 Bumped info for 2.8.2 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1813 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-06-22 11:18:25 +00:00
stephena f3aaf17021 GLSL also depends on OpenGL 2.0, so we check for that too.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1811 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-06-20 18:02:57 +00:00
stephena 02cbcbd1ea Separated initialization of GL functions for basic functionality
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
2009-06-20 17:46:12 +00:00
stephena 43c0556f37 Updated documentation for recent Win32 APPDATA changes.
Bumped version info for impending release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1779 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-06-18 17:38:42 +00:00
stephena f271830ed4 Changed 'exitlauncher' commandline argument to 'uselauncher' (which makes
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
2009-06-17 17:04:55 +00:00
stephena 465dc36476 Added native support for the 32-in-1 cart. Loading this ROM will always
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
2009-06-12 18:44:32 +00:00
stephena 664d4e5d1a Fixed issue with incorrect reporting of OpenGL version number for Windows.
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
2009-06-12 13:29:26 +00:00
stephena 08bc2386f4 Updated PropSet to use C++ map instead of homemade BST code. I originally
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
2009-06-08 16:50:14 +00:00
stephena 2bc2ff639c Handle 'read from write port' functionality for CV carts. Still TODO are
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
2009-06-05 14:05:23 +00:00
stephena f76af14b25 The tools used to create DefProp.hxx and GLShaderProgs.hxx now include
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
2009-06-04 14:11:33 +00:00
stephena 402b13afd7 OpenGL TV filters require OpenGL 2.0+ and cannot currently be used when
'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
2009-05-29 10:20:31 +00:00
stephena a774527b41 Updated Visual Studio project files for recent 'CRT Simulation' code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1742 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-05-27 13:54:35 +00:00
stephena 79e4e42ae7 OK, this is a BIG commit.
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
2009-05-25 17:51:52 +00:00
stephena 6a74dfb863 Repo reorganization: move main Stella files directly into 'trunk'.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1732 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-05-21 12:53:06 +00:00