Commit Graph

2292 Commits

Author SHA1 Message Date
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
stephena bc7daa397e Added ability for the debugger to start up in 'fatal error' mode.
This basically shows a messagebox as soon as the debugger starts,
describing the error and offering the choice to continue debugging
or exiting the ROM entirely.

The DPC+ code now catches fatal errors from the Thumb ARM
emulation code and shows it as a fatal error in the debugger.
This means you no longer need to look at the commandline for
this output, and you immediately know that something has
gone wrong.

Added 'exitrom' debugger parser command, which completely exits
from the debugger *and* the ROM, going back to the ROM launcher.

Cleaned up the API a little, rearranging some classes and
adding references instead of pointers.  More work to be done
in this area.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2234 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-26 16:14:46 +00:00
stephena db46773ea1 Fixed compile error WRT printf statements in Thumbulator, and fixed
a potential segfault in CartDPC+.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2233 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-25 19:14:47 +00:00
stephena 5025a21d92 Updated Thumb ARM emulation to log its output instead of printing to the
console (which doesn't exist on every platform).  Also use proper C++
stringstreams instead of C-style arrays (which are evil).  If an exception
is thrown, start the debugger with a fatal error message.  Currently, this
message is simply printed in the debugger info window.  Still TODO is add
a dialog to show the entire input from within the UI, as well as a way
to exit the ROM when a fatal error occurs.

Cleaned up the API a little, adding explicit declarations for when a method
can throw an exception.  Also merged some empty classes directly into their
header files.

Added functionality to the System class for querying whether it has 
been reset while in 'autodetect' mode.  Autodect mode is defined as
when Stella starts and temporarily runs to autoconfigure itself.
Some classes (such as Thumb ARM emulation) need to know this, and
suppress debugging output/throwing exceptions when not running in
normal emulation mode.

I hope to have a new release done by the end of this week, or the end
of the month at the latest.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2232 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-24 16:04:48 +00:00
stephena 4e6d4cb1c6 Cleaned up some inlines that weren't needed.
Updated documentation with info about 2600-daptor, including
usage and its creator.  Also included more in-depth explanation
for the various controller types.

Errors from the Thumb ARM emulation code are now caught as exceptions,
and thrown to the parent class instead of calling exit() and simply
crashing Stella.  For now, the messages are simply printed and
emulation continues.  This will be expanded to show a detailed crash
log in the debugger, and offer the option to exit the ROM.

Removed most of the menus from the OSX port.  They weren't being
maintained anyway, and most of them didn't work.  I've modelled this
on the way other cross-platform OSX programs work (notably, ScummVM).
Basically, there are menus for exit and help, but otherwise you
should use the menuing system in the application itself.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2231 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-10 15:04:19 +00:00
stephena 2da201c4a2 Added controller types 'Paddles_IAxis', 'Paddles_IDir' and 'Paddles_IAxDr',
which are specialized paddles classes that invert the axis, direction,
and axis+direction, respectively.  Updated all applicable ROMs in the
properties database.

Cleaned up the menus in the OSX port; some of them weren't even tied
to anything.  I'm seriously considering removing them all, except for
the Help and Quit items. 


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2230 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-06 19:58:56 +00:00
stephena 9cbd6fe94b It seems that the NIB format for the OSX project files has changed.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2229 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-06 14:46:07 +00:00
stephena 264145a939 Huge improvements to paddle and mouse handling:
- mouse can now emulate joystick, booster-grip and driving controllers
 - digital and mouse sensitivity for paddles can now be tweaked
   separately, and have a greater range
 - the mouse now correctly honours its controller setting, and only
   controls a device on one one port (not both at the same time)

Added support for 2600-daptor device.  Credit for creator of device
is forthcoming.  This device is basically an updated Stelladaptor,
with improved handling for paddle data.

Grabmouse functionality is no longer user-definable; the mouse is
always grabbed while playing a game, and released otherwise.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2228 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-06 14:29:39 +00:00
stephena 329f553f09 Retired the GP2X and WinCE ports. This code has been updated in years,
and doesn't currently compile.  I don't have the hardware to develop
it any further, and no longer have the time in any event.  If someone
steps up to continue support, it can be added back into the codebase.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2227 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-22 18:57:20 +00:00
stephena 9cbc1384f4 Updated VS 2010 project files for recent Event class changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2226 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-22 18:50:53 +00:00
stephena 9796fa5384 Updated VS 2005 project file for recent Event class changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2225 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-22 18:47:56 +00:00
stephena a028e5327d Minor cleanup of Event class, removing redundant variable.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2224 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-22 18:45:13 +00:00
stephena a0dcc9b459 Test for SVN not working correctly in Linux.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2223 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-22 18:36:06 +00:00
stephena f8a2e1c47a Updated Linux build script for recent Event class changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2222 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-22 18:26:08 +00:00
stephena e85d810032 Updated OSX project files for recent PNG changes.
Speed up the Event class by making all members inline.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2221 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-22 18:21:46 +00:00
stephena 15fa2a846c Updated VS 2005 project file for recent PNG changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2220 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-22 12:42:58 +00:00
stephena e41ecc9ef5 Updated VS 2010 project file for recent PNG changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2219 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-22 12:36:25 +00:00
stephena 94c34ddb72 Updated internal PNG library code to latest released version (1.5.2).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2218 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-22 00:04:04 +00:00
stephena 138c03090f Updated Win32 project files for Thumb ARM support (it is always enabled,
but can be disabled by removing the 'THUMB_SUPPORT' directive from the
Visual Studio project file).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2217 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-16 23:54:06 +00:00
stephena 13c8ee8e95 Thumb ARM support can now be enabled/disabled from the configure script for Linux.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2216 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-16 23:39:31 +00:00
stephena 72185d0848 Cleaned up formatting in Thumb ARM emulation code.
Wrapped THUMB ARM emulation in a define, so that it can be excluded
from builds.  To enable it, the 'THUMB_SUPPORT' directive must be
included in the build process.  This has been added to the OSX
project files, but is still TODO for Linux and Windows.

Removed some obsolete include paths from the OSX project files,
dating back about 5 years or so.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2215 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-16 16:53:41 +00:00
stephena bcb8dfbc2b First pass at fixing formatting issues in the ARM emulation code.
Also fixed warnings when compiling on 64-bit compilers.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2214 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-03-09 14:21:32 +00:00
stephena 4d16be1049 Some last minute ARM-emulation changes for the 3.3.01 test release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2212 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-31 03:07:52 +00:00
stephena 26e5f0157f Oops, forgot to mention the main point of this test release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2211 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-30 13:43:17 +00:00
stephena 7a59e89765 Final changes for 3.3.01 test release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2210 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-30 13:32:21 +00:00
stephena fc44b175b2 Updated some dates to 2011. Hopefully I'll find some time over the
next week or so to get back to Stella development.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2209 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-28 16:18:35 +00:00
stephena a71158e1ce Some more changes to the DPC+ ARM emulation code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2208 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-23 14:16:02 +00:00
stephena ec9c865ec9 Updated VS 2010 project files for Thumbulator class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2207 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-16 21:57:46 +00:00
stephena 9dad6caf6e Added Thumbulator class to OSX project files.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2206 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-16 21:52:49 +00:00