Commit Graph

2170 Commits

Author SHA1 Message Date
stephena 115d560f87 Optimization of FSNode::getXXX string methods. They now return
'const string&', which saves a string c'tor call each time they're
accessed.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2293 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-22 22:11:09 +00:00
stephena 52cf172661 Reverted FSNode getPath() modifications introduced in Stella 3.4.1, since it causes massive performance regressions in Windows XP.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2292 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-22 21:29:24 +00:00
stephena 56694b5934 The sound system is now opened once per program invocation, and paused
when it isn't needed.  According to SDL this shouldn't be necessary, but
some combinations of video modes and audio hardware cause sound to stop
working if it's repeatedly opened and closed.  So we have to keep it open.

Always attempt to use 2 channels (aka stereo) when opening the SDL audio
device.  This is now required, since ROMs can request mono or stereo mode,
and the sound system can no longer be closed and re-opened with the
desired settings.  So we need to always use 2 channels to accommodate
when it might be needed.  This actually more closely emulates the 2600,
which does have two audio channels.  The 'mono' vs 'stereo' ROM property
basically controls whether these channels are exposed (ie, does the
virtual console have two-channel audio hardware installed).  In that sense,
these settings control how the channels are mixed.

Updated some settings to have more reasonable defaults.

Added acknowledgement for people that have donated hardware to help with
development.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2291 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-21 17:18:53 +00:00
stephena 9d93318450 Cleaned up formatting for joystick logging.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2290 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-18 19:47:45 +00:00
stephena 4c8cfb3da0 Mappings for joysticks beyond the first one are now actually loaded.
They were being saved correctly for all sticks, but only loaded for
the first one.

Removed some redundant settings related to TV effects stuff.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2289 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-18 19:43:24 +00:00
stephena 65eee809f9 Updated Visual Studio 2010 project files.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2288 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-04 20:08:38 +00:00
stephena 17fc52bfc9 Made 'colorloss' option be true by default (so that PAL
ROMs with an odd # of scanlines will display the image in
black & white, just as on a real system.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2287 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-03 23:14:06 +00:00
stephena 93a3952317 Make sure to only change the 'joymap' setting if any joysticks
have actually been loaded during the program run.  Otherwise,
it will erase previous mappings.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2286 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-30 14:57:28 +00:00
stephena d35c220953 Huge restructuring of the joystick handling code. Event mapping is now
saved per device, so that unplugging and replugging a joystick won't cause
the previous mappings to be lost.

All attributes of a joystick (ie, number of sticks, number of axes, buttons,
hats on each stick) are dynamic, meaning that hardcoded values are no
longer used, making the handling more robust.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2285 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-29 22:12:13 +00:00
stephena 90fbe26b7d Updated documentation, added new snapshots where appropriate.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2284 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-26 21:19:54 +00:00
stephena 4680a49285 Updated included PNG library to latest release (1.5.6).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2283 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-26 17:08:40 +00:00
stephena e8776a79d6 The default snapshot dir is much saner, defaulting to the users'
desktop on OSX and Windows, and the home directory in Linux.
The associated commandline has been changed to 'snapdir'.

Added 'GL VBO' toggle button to the Video Settings UI, and in
general cleaned up its interface.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2282 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-25 14:17:05 +00:00
stephena 8e868823d9 Updated properties file for Breakout ROM; it actually has a 4-player mode,
so both ports should be set to use paddles.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2281 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-20 01:55:13 +00:00
stephena faa0789727 Updated some code comments and the documentation.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2280 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-19 18:28:17 +00:00
stephena bb63ea3dd1 Reverted TIA changes that affect late NUSIZx changes. More work is needed
in this area.

Added commandline argument 'thumb.trapfatal', which causes fatal errors in
the Thumb ARM emulation to really be treated as fatal (ie, the emulation stops
and throws an exception).  This is enabled by default (as it always should be).
When disabled, fatal errors simply log the error and continue with emulation.
This was added because the current HarmonyCart ARM code isn't always exactly
compatible with the emulation in Stella, and there is a lagtime from when
Harmony implements something to when the same functionality is added to Stella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2279 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-07 22:50:23 +00:00
stephena 1d5ea6a9eb Updated DPC+ code to latest changes from Spiceware for the Frantic ROM.
Specifically, the 3-voice audio routines read from ROM instead of RAM, and
the setting the ARM MAM register no longer causes the ARM emulation to crash.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2278 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-05 22:31:40 +00:00
stephena 8fe6967fbd Added patches provided by Stephen Kitt <steve@sk2.org>.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2277 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-10-27 23:07:07 +00:00
stephena 011aef2f01 Updated OSX project files for recent OpenGL changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2276 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-09-07 10:57:32 +00:00
stephena 1928a9a0e4 Updated VS 2005 project files for recent OpenGL changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2275 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-09-03 15:33:26 +00:00
stephena 641f0519ca Updated VS 2010 project files for recent OpenGL class changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2274 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-09-03 15:29:24 +00:00
stephena c2992f5097 Large reorganization of the OpenGL code, separating out FBSurfaces into
distinct GUI vs non-GUI (aka TIA) classes.  This makes it easy to proceed
from this point on, since I don't have to worry about breaking one mode
when making changes to the other.

Preliminary support for TIA scanlines in OpenGL mode.  It's disabled for
now, but is progressing nicely.  This will be part of the new TV effects
in the next major release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2273 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-08-28 21:49:16 +00:00
stephena b45d65fc31 It seems that GL_BGRA is still the fastest texture format *if* it is available.
In the process of converting the code to be OpenGL ES compliant, we shouldn't
hurt the performance on systems with more advanced versions.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2272 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-08-20 15:24:35 +00:00
stephena 1ab356afe8 Updated VS 2010 project file, and fixed minor compiler warnings.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2271 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-08-19 23:35:14 +00:00
stephena b25eccdf48 Added Vertex Buffer Object (VBO) functionality to the OpenGL renderer.
Updated OSX project files for recent OpenGL changes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2270 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-08-19 14:30:15 +00:00
stephena 9dfcd9a468 A little too much pruning in the last commit broke OpenGL rendering
for Linux and Windows.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2269 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-08-17 14:45:54 +00:00
stephena 738e0aa73d Oops, the last commit contained experimental sound changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2268 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-08-17 00:25:22 +00:00
stephena 737e6743de Updated VS 2010 project files for recent changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2267 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-08-17 00:15:00 +00:00
stephena 672461b942 Updated VS 2005 project with latest changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2266 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-08-17 00:09:07 +00:00
stephena 55f4de0725 First pass at converting the OpenGL renderer to be OpenGLES 1.0
compliant.  It actually went smoother than I thought it would.
This show allow Stella to run well on *any* hardware-accelerated
OpenGL machine, not just those with beefy video cards.

Cleaned up the code a little, removing more references to the old
OpenGL TV filtering (which will be replaced by Blargg NTSC
filtering soon enough).  Also removed 'gl_texrect' option, which
specified to use the GL_TEXTURE_RECTANGLE_ARB extension (for
non power-of-two textures).  It was never enabled by default,
didn't work with ATI cards, and wasn't accessible in the UI,
so I doubt anyone will miss it.  Besides, it's not supported in
OpenGL ES 1.x.

Next is to look into VBO/PBO, to see if more optimizations can
be done.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2265 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-08-16 19:33:28 +00:00
stephena a16f862193 Added logging capability and viewer. This is useful for those platforms that
don't normally use the commandline (mostly Windows, but in some cases OSX as
well).  The 'showinfo' commandline argument has been renamed 'loglevel', but
it has the same purpose.  A new option 'logtoconsole' has been added, which
determines whether log output should also be directed to the commandline/
console (previously, it was always printed to the console).  All these items
are now accessible from Options -> System Logs.

For anyone reading this (and that cares), now I can finally move on to the
OpenGL rewrite.  The plan is that the new code will use OpenGL ES, which
is a subset of OpenGL 1.5.  The main advantages are that you won't need
an advanced OpenGL card, and OpenGL ES is supported on most new 'smaller'
systems (iPhone, Android, etc), making ports much easier.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2264 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-08-16 13:38:34 +00:00
stephena 40a66edee4 Cleaned up usage of sprintf in the codebase, changing to
BSPF_snprintf instead, which should eliminate any potential
buffer overflows.  Also moved from static arrays to stringstreams
where appropriate to make things safer and more C++ like.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2263 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-07-13 14:13:49 +00:00
stephena d6e1360dae Updated built-in libpng to latest release version (1.5.4).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2262 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-07-08 21:09:08 +00:00
stephena f549cf9661 Removed some 'throw(...)' declarations, which are deprecated in the latest version
of the C++ standard.

Fixed bug when using snprintf; we must use BSPF_snprintf, since the function
has different names in different OS's.

Optimized loading of PNG images in the RomInfoWidget so that memory allocations
aren't continuously being done.  Basically, memory is allocated once and then
only re-allocated if a new image is larger than all previous ones.  This can
increase memory use slightly, as the image data stays around between image loads,
and it remembers the largest image loaded.  But if you images are all mostly the
same size, it should hurt memory usage too much.  And it really helps on certain
systems where repeated (re)-allocations can cause problems.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2261 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-07-03 21:52:33 +00:00
stephena 377765f565 Removed all traces of the OpenGL TV filters. This is due to be replaced by
Blargg NTSC filtering, but we need to revert to base functionality first.

Cleaned up the debugger API wrt converting values from integers to strings
(and vice-versa).  There is now only one method for each of these functions,
rather than several ways to do so.  In the process, convert from unsafe
sprintf functions into snprintf (eliminate potential buffer overflows).

The debugger 'print' command now indicates if any assigned label represents
a read-only location (R), a write-only location (W), or a read/write location
(R/W).

Fixed bug in DataGridWidgets (used in debugger ROM and CPU registers), where
scrolling the mouse-wheel would cause a segfault.  Scrolling the mousewheel
now changes these items as expected.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2260 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-07-03 17:08:42 +00:00
stephena 221aa50a5b Make sure all hexidecimal number output in the debugger is in uppercase.
Bumped version number.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2259 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-06-12 20:20:19 +00:00
stephena dbdfb2f320 Final changes for 3.4.1 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2256 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-06-11 23:55:53 +00:00
stephena 2d9d487300 Fixed bug with autoexec.stella debugger file not actually executing its
contents.  The file was being accessed and read, but the commands it contained
weren't being executed!  This bug appeared in April 2010, so it looks like
not many people are using this feature (or at least they're not reporting it).

Cleaned up a few compiler warnings in DebuggerParser class.

Bumped version # for beta release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2254 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-06-11 22:45:50 +00:00
stephena e2c736263f Updated Windows code for recent FilesystemNode class changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2253 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-06-11 15:59:19 +00:00
stephena d1ea17711b Remove notion of 'current directory' from the file handling
for UNIX systems.  Pathnames are always accessed internally as
full/absolute pathnames, and while they can be loaded and saved
with the '~' symbol (to indicate the users home directory), they
are still always mapped to absolute paths.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2252 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-06-11 15:58:42 +00:00
stephena cb3f0e96ba Zero-byte ROMs are now rejected, instead of being loaded as Supercharger ROMs.
Fixed bug in handling analog axes with jitter; they were overriding events from
digital, hat and keyboard input.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2251 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-06-09 20:50:19 +00:00
stephena df71aa03d1 Cleaned up the FilesystemNode API a little, removing some redundant code.
The debugger 'saverom' command now uses absolute filenames, and by default
will save data in the users home directory if a proper path isn't included
in the filename.  This fixes a major bug where ROMs were being saved to
the current or application directory, which in some cases were invalid
locations.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2250 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-06-09 14:00:30 +00:00
stephena 4c59d810f1 Grabmouse now has a hotkey (again). Fixed mouse motion handling in
several cases (fixes problems when moving the mouse too fast or
when changing between video modes).  Added extra signature to the
bankswitch autodetection for the 4A50 scheme.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2249 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-06-07 13:40:59 +00:00
stephena 2b9f625f76 Re-enabled 'grabmouse' functionality with a few changes:
- it doesn't have a hotkey any more
  - it is changed in the "Input Settings' UI, not in 'Video Settings'
  - it only has meaning while in emulation mode
  - it is enabled by default


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2245 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-06-02 20:53:01 +00:00
stephena d5ce0042e4 Tweaked the mouse motion detection for invalid values, and bumped version #
for the next point release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2244 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-06-02 19:25:52 +00:00
stephena 670b61a15a Fixed a few compiler warnings, and bumped version # for final release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2240 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-28 14:00:12 +00:00
stephena 87e3a71580 Fix bug with unwanted mouse movement after changing video modes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2239 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-28 01:14:14 +00:00
stephena 975d221606 And right away, I forgot something for the 3.4 release.
That's why I'm not bumping the final version number until
just before the release ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2238 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-27 15:51:16 +00:00
stephena 0eff1696a0 Final updates for the impending 3.4 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2237 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-27 15:48:35 +00:00
stephena 80daacef8f Updated VS 2005 project files for recent class changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2236 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-26 18:55:11 +00:00
stephena edc73b0487 Updated VS 2010 project files for recent class changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2235 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-26 18:51:33 +00:00