Commit Graph

1325 Commits

Author SHA1 Message Date
stephena 267f8a22a3 Fixed toggling between display formats, and saving them in GameInfoDialog.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1239 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-26 02:09:29 +00:00
stephena 5593970b56 Added autodetection of NTSC or PAL display format, based on the number
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
2006-12-26 00:39:44 +00:00
stephena deacea8437 Improved cart auto-detection logic. There's still quite a bit to do,
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
2006-12-24 17:13:10 +00:00
stephena 61ef87830e Updated Win32 VC project for debugger expression changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1236 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-23 15:17:11 +00:00
stephena f9811fa0ae Oops, forgot this in the last commit (related to debugger expression
consolidation).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1235 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-23 15:11:19 +00:00
stephena 1344ad67c9 Cleaned up the debugger files a great deal. There was no need to have
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
2006-12-23 15:08:46 +00:00
stephena 0f8c5a5046 Fixed segfault when using '-type' and the type wasn't supported by
Stella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1233 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-22 23:14:39 +00:00
stephena a87433d557 Oops, pressed the wrong key on the last commit. I meant to say:
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
2006-12-22 22:39:34 +00:00
stephena 1e0edb95e2 Fixed issue with 'tiadefaults' only setting defaults for width and height.
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
2006-12-22 22:32:49 +00:00
stephena 3a9ac632da Fixed issue with softwsre rendering in fullscreen mode in the Win32 port.
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
2006-12-22 21:47:27 +00:00
stephena 94e6bd66a9 Some last minute fixes for building in Win32.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1228 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-20 20:36:26 +00:00
stephena 1dd1e14af4 Oops, forgot this in the last commit.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1227 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-20 12:43:56 +00:00
stephena ed4e219a43 Final version bump to 2.3. I suspect there may still be problems with
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
2006-12-20 12:42:56 +00:00
stephena a0df5ec2bc Completely removed FrameBuffer::cls() functionality, since it was causing
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
2006-12-19 12:40:31 +00:00
stephena 761afadb1c Hopefully fix the OpenGL crash bug in OSX. I still don't know what's
causing it, but it seems to be related to cls().


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1224 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-18 18:35:26 +00:00
stephena 025d8b9cdd Removed SNAPSHOT_SUPPORT define and all functionality from the codebase.
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
2006-12-18 16:44:40 +00:00
stephena f53d93446b Fixed issue with 'runto' debugger command sometimes not exiting. It can
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
2006-12-18 14:01:58 +00:00
stephena 43d942c015 Made onscreen messages appear in any event mode.
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
2006-12-18 12:53:33 +00:00
azaballa e2184561e9 Fixed the issue. Apparently my sdl-config script was pointing to an old set of SDL libs. I thought I had changed the path before, but what caused it to revert now is anyone's guess. Hope it's just gremlins and not bandits.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1220 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-16 23:36:42 +00:00
azaballa d4c4549d32 X and Y got swapped somehow... peculiar.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1219 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-16 23:10:54 +00:00
stephena e6ea870637 Moved settings file version to Version.hxx, since I don't want to have to
recompile the whole codebase when it changes :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1218 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-15 20:22:29 +00:00
stephena 7b84459e83 Added check for valid settings file to OSX code, which doesn't save its
settings in an ini file, but uses its own plist.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1217 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-15 17:52:03 +00:00
stephena e5275949d4 Sorry for another huge commit :)
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
2006-12-15 16:43:12 +00:00
stephena b492f93be7 Added logic to Settings class so that a settings file can be marked as
'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
2006-12-15 16:12:35 +00:00
azaballa 945bd27cbd Updated docs to reflect changes in configure.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1214 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-15 06:59:36 +00:00
azaballa a0b4eab301 Added a recommendation for a Good ROM renamer. ;)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1213 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-14 17:11:46 +00:00
stephena 23482b6d4c Some fixes for compilation using Visual Studio.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1212 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-14 00:07:47 +00:00
stephena 0bac94e94f Cleaned up some debugging code from the last commit, and removed remaining
scaler stuff.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1211 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-13 22:46:28 +00:00
stephena 839bdb0c5f Fixed a number of graphical glitches related to screen pitch in OpenGL
mode.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1210 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-13 19:13:32 +00:00
stephena ab51324f50 Added 'GL_TEXTURE_RECTANGLE_ARB' texturing to FrameBufferGL, since it's
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
2006-12-13 17:09:11 +00:00
stephena 534ef05cc0 Made 'tiadefaults' only reset the width and height to defaults. XStart
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
2006-12-13 00:32:17 +00:00
stephena 7cb5858c6e Added '-cp' developer commandline argument, to set the 'Controller.SwapPaddles'
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
2006-12-13 00:05:46 +00:00
stephena abcf56bd05 Moved from using SDL_FillRect to directly accessing the pixel data
when drawing characters in software mode.  The old code was calling
SDL_FillRect for every pixel in the character!  Preliminary testing
shows at least 2-3 times faster rendering, but I suspect it might
be higher for those systems where SDL_FillRect was slower than in
Linux.  SDL_FillRect isn't meant to be used for 1-pixel calls.
Incidentally, this is the reason why dirty-rect merging with
a lot of onscreen movement could be slow; it degenerated into calling
SDL_FillRect for every pixel.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1206 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-12 19:41:52 +00:00
stephena af61380785 Fixed issue with paddles 'jumping' when exiting from Command or Options
menus.  Also, paddles now default to minimum resistance when starting
a paddle game, and changes in paddle location by the mouse are detected
by the digital paddle emulation (so pressing 'PaddleXXXIncrease/Decrease
after moving with the mouse will continue from the current onscreen
paddle position).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1205 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-12 01:02:12 +00:00
stephena 0abbc77bff Fixed bug where paddle speeds weren't being properly set.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1204 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-11 20:43:55 +00:00
azaballa ee764661f2 Upon further testing, a paddle speed of 15 is ideal.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1203 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-11 09:58:50 +00:00
azaballa 9342da9bee Updated README to reflect paddle game changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1202 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-11 02:46:53 +00:00
stephena a50ca91245 Oops, forgot this last item to get Tac-Scan working.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1201 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-11 00:23:48 +00:00
stephena 992b641a6b Fixed bug with paddle games that didn't default to paddle 0. They actually
didn't work at all with the GP2X or the Stelladaptor, because of a related
bug in swapping virtual console ports.

Added about() method to FrameBufferXXX classes, which all FrameBuffer
derived objects are required to implement.  This is so framebuffer info
is only printed as necessary.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1200 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-11 00:15:34 +00:00
azaballa a4c4a1348b Set tiadefaults to true to give consistent resolutions.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1199 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-10 22:11:48 +00:00
stephena 32c41b1d58 Added missing code for 24-bit mode software zooming without dirty rects,
which I left out in the previous commit.

Added properties entry for "Conquest of Mars".


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1198 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-10 18:07:39 +00:00
stephena 6608b99d8c Added new rendering modes to FrameBufferSoft, which don't use dirty
rectangle merging.  This makes the 'dirtyrects' option more relevant,
since now if it's turned off, dirty rectangles are not merged, and
the screen is updated with SDL_Flip() instead of SDL_UpdateRects().
This new functionality is very similar to how z26 works, but
experiments on my Linux system show it to be twice as fast on
average :)  Dirty rectangle merging now defaults to off.  I'm
leaving it in, since it benefits people in some cases.  Basically,
non-dirty-rect support is optimal when many things are changing
onscreen at once, at the cost of more constant and generally slightly
higher CPU usage.  Dirty-rect support is optimal at larger resolutions,
where it's usually at least twice as fast as without, but is suboptimal
at larger resolutions when lots of stuff is changing.  At some point in
the future, maybe Stella itself can automatically switch modes depending
on which is faster at any point in time.

Added "[..]" previous directory functionality to BrowserWidget, the same
as already in the LauncherDialog.  Thanks for Alex and Lou for the
reminder.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1197 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-10 17:04:34 +00:00
azaballa de4ee80062 Forgot to mention [..] item for navigation.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1196 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-10 07:43:45 +00:00
azaballa f0f71af07d Made the README a little more concise.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1195 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-10 00:03:04 +00:00
stephena 935e0bd6a8 Added error checking around all calls to FSNode.listDir(), to actually
check and see if we're dealing with a directory.

Fixed off-by-one error in count for files in LauncherDialog.  While in
ROM browse mode, the previous dir " [..]" entry should not be counted.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1194 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-09 04:02:40 +00:00
azaballa 9c8572124f Updated paddle speeds, still fast, but controllable.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1193 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-09 00:34:18 +00:00
stephena e230be7fed Reworked default paddle mode handling. Removed ROM property
'Controller.PaddleNo', replacing it with 'Controller.SwapPaddles' (Yes/No
type argument).  The reasoning being that in combination with
'Console.SwapPorts', paddle 0 can be the default for any ROM as follows:

  ROM uses paddle 0 as default:
    Console.SwapPorts -> No
    Controller.SwapPaddles -> No

  ROM uses paddle 1 as default:
    Console.SwapPorts -> No
    Controller.SwapPaddles -> Yes

  ROM uses paddle 2 as default:
    Console.SwapPorts -> Yes
    Controller.SwapPaddles -> No

  ROM uses paddle 0 as default:
    Console.SwapPorts -> Yes
    Controller.SwapPaddles -> Yes

Updated all ROMs that don't default to paddle 0.  This works for all
paddle input, both analog from mouse and/or joystick and digital from
keyboard, joystick, etc.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1192 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-09 00:25:20 +00:00
azaballa 5527e47678 Fixed a couple of typos.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1191 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-08 20:51:58 +00:00
azaballa bd3113b2aa Updated the README to reflect version changes and clarify a few things.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1190 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-08 20:48:00 +00:00
stephena 2c9b0d1ecb OK, this is absolutely the last commit related to UI key events :)
Allowed modifier keys (Ctrl, Alt, Shift, etc) to be treated as normal
keys, and mapped to some action.  In those modes, the modifier keys are
just like any other key on the keyboard.  However, they also have
a special purpose when combined with other keys (text editing), and
this now works as well.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1189 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2006-12-08 20:19:58 +00:00