Commit Graph

1618 Commits

Author SHA1 Message Date
stephena 893c88fc4e Oops, looks like I lost something in the last merge.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1641 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-19 16:57:54 +00:00
stephena a9cb1308b2 K, now that release 2.7 is out of the way, I can move on again.
First pass at cleaning up the TIA class, in anticipation of the new
TIA infrastructure with improved HMOVE emulation.  This code has been
in need of a cleanup for some time now; there are commented TODO's
and FIXME's that are up to 10 years old!

Moved all static constants and tables into a separate TIATables class,
making the main TIA class much shorter and easier to understand.

TIA no longer uses or honours the 'Allow HMOVE blanks' ROM property;
further work will remove this from the codebase entirely.

Removed MediaSource abstraction and have the codebase use the TIA
directly.  It was probably a good idea to have this abstraction when
Stella was first written (in anticipation of multiple TIA
implementations), but seeing how that hasn't happened for approx.
13 years, I don't see it ever happening :)  Besides, we're paying a
price for that abstraction (certain functions can't be inline'd) for
no real reason.  Perhaps in the future, the M6502/M6502Low/M6502Hi
will experience a similar contraction.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1640 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-19 16:52:32 +00:00
stephena 64594bb252 OK, this is the final commit before the 2.7 release. I can say that for
a fact, since the other builds (other than OSX) have already been
uploaded.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1639 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-19 13:57:00 +00:00
stephena d8e262ddaf One final (minor) change for the Win32 Mingw compile. Luckily, it doesn't affect the other builds.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1637 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-17 15:14:46 +00:00
stephena c771f6caa2 Made the 'default' button in "Config Files" dialog generate path names
with the '~' character.

Bumped release date to Jan. 19 (Monday).  I'm sure I'll find something
else wrong in the next day or so, and I really don't want to have to do
a quick 2.7.1 release because of rushing.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1636 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-16 21:46:31 +00:00
stephena ab4d878e33 OK, the final commit before the next release (famous last words).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1635 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-16 20:00:35 +00:00
stephena 35f5657db5 Made sure './' works as well (previously, only '.' worked).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1634 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-16 19:37:29 +00:00
stephena 08b59c240a Well, it looks like I'll get 2.7 released tomorrow after all.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1633 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-16 19:10:06 +00:00
stephena 80b43a607e More fixes to the Win32 filesystem code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1632 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-16 18:25:51 +00:00
stephena fabae5f02f Various path and filenames can now be stored with the '~' character; it
will be expanded to your home directory (whatever that may mean for your
OS) when necessary.

A few more fixes for the Win32 filesystem code.

Bumped version number back a little; we're still not ready.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1631 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-16 16:38:06 +00:00
stephena 473b640c75 More fixes for the filesystem handling in Windows. The characters '~\'
are now expanded the Windows 'My Documents' folder, similar to how '~/'
is expanded to $HOME in Linux/UNIX.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1630 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-16 15:13:46 +00:00
stephena 8d3c4fa642 I may as well forget trying to release for tomorrow; it's just not going
to happen.

Fixes to Filesystem handling, particularly for Win32.  The '~' symbol
is now recognized as 'My Documents' in Windows.

The '~' directory is now the default used if the one specified is
incorrect.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1629 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-16 14:57:53 +00:00
stephena 4981ce2158 I hope this is the last commit.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1628 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-16 12:09:19 +00:00
stephena 8817652bf5 Version updates for OSX release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1627 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-16 11:28:48 +00:00
stephena 5a9ee8f7fe Damn, will these last minute changes never end?
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1626 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-15 23:21:44 +00:00
stephena 3be5878f15 Just picked up a compile error in Mandriva 2007.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1625 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-15 23:07:29 +00:00
stephena 8941475b2f Final properties update for the next release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1624 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-15 22:45:13 +00:00
stephena f834f0dd06 And yet more updates; I've submitted two fixes for this section of code,
and I still missed this one :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1623 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-15 21:04:47 +00:00
stephena e170e097d1 Yet more documentation updates.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1622 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-15 19:05:27 +00:00
stephena 7d2c169204 Fixed all remaining dialogs that wouldn't quite fit in 320x240 'small'
mode.

More documentation updates for the impending release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1621 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-15 18:45:23 +00:00
stephena a416a9c1dd Updated Changelog, preparing for the next major release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1620 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-15 01:31:26 +00:00
stephena 6635b89a86 Oops, forgot this one.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1619 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-14 20:31:41 +00:00
stephena e745cd4343 Partially updated codebase to consider 320x240 as the absolute smallest
screen size that can be used; Stella will fail with an assert if this
isn't the case.  While in this 'small screen' mode, the maximum TIA
image is 1x, and the debugger isn't allowed at all.  Fonts will also
be made much smaller.  Still TODO is convert some dialogs that aren't quite
small enough (although they're all within 5-10 pixels of the correct size).

Fixed FrameBuffer so that requesting a video mode that isn't possible
will now fail gracefully (essentially, return a 'false' instead of
going ahead and creating it anyway).

Fixed error in debugger functions for difficulty switches; they were
reversed.

Added debugger pseudo-registers to documentation and debugger 'help'
command.

Fixed drawing of fonts in 24-bit software rendering (although I have
no hardware to test it on).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1618 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-14 20:31:07 +00:00
stephena afe8477d36 More documentation updates, and removal of some dead code (FIXME/TODO
messages).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1617 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-13 20:26:02 +00:00
stephena 8019e877ca Huge updates to the documentation, particularly to the debugger portion.
Many changes have been made to Stella since that document was first
written, and quite a few things are now documented for the first time.
This means the next release will (feature-wise) look a lot bigger than
it really is :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1616 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-13 14:45:34 +00:00
stephena bd278bc5bb Some cleanups to the TIA class. Made the various peek/poke addresses
use descriptive enum'ed names instead of raw numbers.  This has no effect
on the emulator, but certainly makes it easier on me to read it.

Fixed issue with paddle emulation in Activision Casino ROM.  In fact,
the paddle emulation feels better in other paddle games too.

We'll soon be ready for a new release.  I'm itching to start the TIA
rewrite, years after I said it would be done ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1615 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-13 01:18:25 +00:00
stephena b8320c2785 Added the following pseudo-registers to the debugger:
_fcount  : current frame count
  _cclocks : frame color clocks
  _vsync   : whether vsync is currently on (0 or 1)
  _vblank  : whether vblank is currently on (0 or 1)

Fixed issue with breakpoints starting the debugger causing a crash.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1614 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-12 15:11:55 +00:00
stephena 7800ae585d Added code to actually perform bounds checking on the TIA display
properties, and changed the lower bound on Display.Height (210).

Cleaned up some redundant TIA code.

Fixed crashes in RomInfoWidget caused by viewing images larger than the
allocated surface (now the remainder is simply not displayed).

Updated properties database for several ROMs (related to maximum height).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1613 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-12 01:07:29 +00:00
stephena 8dc2f03ac3 And yet another Filesystem fix.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1612 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-11 22:05:37 +00:00
stephena 9283f1ed4f Some final fixes for the new Filesystem API in Linux/UNIX.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1611 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-11 21:55:03 +00:00
stephena 007a0ceb57 Updated Win32 files for recent Filesystem API changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1610 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-11 21:31:21 +00:00
stephena 4f8a9efa3b Moved Filesystem API to the latest code from ScummVM. In the process,
large directory loads become *much* faster, and leaked memory drops from
259KB to 5KB!  Now that's what I call a performance increase :)

Still TODO is port OSX and Win32 to the new API, and fix some final
memory leaks in the debugger YACC parser (I suspect this accounts for
much of the remaining leaks).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1609 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-11 19:10:40 +00:00
stephena 85cc67bdc2 Some fixes for memory leaks and uninitialized variables detected by
Valgrind.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1608 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-11 15:01:36 +00:00
stephena c895942252 Updated Win32 Visual Studio project files for latest class additions. It seems VC8 doesn't like static allocations with a dynamic size. It works fine in gcc.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1607 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-11 02:23:45 +00:00
stephena 21062f5ca3 Oops, an onscreen message fix I forgot in the last commit.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1606 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-10 18:52:55 +00:00
stephena a36c6f08d1 Fixed image flickering when showing overlaid TIA messages in OpenGL mode.
Fixed misplacement of TIA messages when gl_fsmax is activated.

Cleaned up OpenGL function prototype declarations and instantiations.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1605 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-10 18:42:49 +00:00
stephena b7f913415c Small graphical cleanup; we don't need to see a message about the mode
when toggling fullscreen/windowed mode; it will be the same anyway.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1604 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-06 23:14:34 +00:00
stephena 26988867fa Adding '-timing' commandline argument as a setting in VideoDialog, so you
don't need to use the commandline to change it.

Fixed RomAuditDialog to show more meaningful descriptions in its buttons.

More documentation updates.  It looks like I won't be splitting the doc
into multiple HTML files for this release, but I can at least make it
more descriptive (I just realized that some options in Stella have never
been in the documentation at all).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1603 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-06 23:02:18 +00:00
stephena f431c850c1 More updates to the documentation. I think I'll have to move to a
multi-page HTML document, as the current one is getting too unwieldy.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1602 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-06 17:01:55 +00:00
stephena b8e821b709 First pass at documentation updates.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1601 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-06 01:40:11 +00:00
stephena 7f727528b8 Made the delay between registering consecutive keypresses as one string
be configurable for ListWidgets.  Added UI item for this to UIDialog
(Misc tab), and added the '-listdelay' commandline argument for it.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1600 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-05 22:05:35 +00:00
stephena 555d9c8273 Updated OSX project files for LauncherrFilterDialog addition.
Properly swallow 'Ctrl/Cmd r' key combo for reloading the ROM listing.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1599 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-05 20:33:03 +00:00
stephena 062bd55804 Add ability to filter files from ROM launcher listing based on extension.
For now, there are 3 choices:

1) Show all files (the current default, and equivalent to previous
   behaviour)

2) Show only ROMs (those files ending in a26, bin, rom, zip, gz)

3) Show specific ROMs (a subset of the valid ROMs from (2))

Associated this functionality with a RMB context menu in the ROM
launcher, and also accessible with the '-launcherexts' commandline
argument.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1598 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-05 19:44:30 +00:00
stephena 94ad760481 Reworked fonts a little. Added small/medium/large fonts as choices for
launcherfont.  Also added a small font for use in 'small' systems
(currently defined as systems where max resolution is 320x240).  If
such as system is detected, Stella will automatically switch to the small
font for in-game UI and launcher.  Of course, the debugger will still
be larger size, but in that case, it's impossible to resize it anyway.
Still TODO is make sure the TIA actually uses only 1x zoom mode (in fact,
I may add a commandline option to force this, which is very useful for
testing emulation of 'small' systems on a normal-sized display.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1597 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-04 22:27:44 +00:00
stephena e6e5dd1caf Made scrollbars a little wider, and provided new arrows.
Cleaned up the Widget API a little, eliminating some redundant code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1596 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-04 02:28:12 +00:00
stephena 6a4945528f Reversed a number of the UI/TIA palette changes I made yesterday, as it's
a can of worms I don't want to open (and besides, the current
implementation works well enough).

Added '-ss1x' commandline argument (and associated UI element) to
generate TIA snapshots in 1x mode (ie, without any scaling included).
Useful for those who would like to generate many small snapshots, but
don't want to run the emulation in 1x mode (which is no longer possible
anyway).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1595 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-03 22:57:12 +00:00
stephena e3b07007d4 Separated the UI palette from emulation palette, and reworked color
definitions so that it's clearer which palette should be used.

Added 1x TIA emulation surface creation to FrameBuffer.  Certain parts
of the codebase need access to this (debugger, snapshot in 1x mode, etc).
Related to this, viewing the TIA emulation in the debugger now works again.

Still todo is fix color handling in PromptWidget (which I just broke).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1594 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-03 15:44:13 +00:00
stephena b19344c77f Updated OSX project files for recent class additions. Also, I have
to officially move to XCode 3.0, which means a minimum of OSX 10.3
for Stella.  Sorry 10.2 users, but I no longer have the operating
system version to keep compatibility.  On a lighter note, it looks
like XCode 3.0 uses a more recent version of gcc for Intel, so there
may be some speedups ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1593 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-02 02:22:31 +00:00
stephena 187bec7873 Added right mouse button context menu to the ROM launcher. For now, it has
three entries:

1)  Override properties - temporarily override ROM properties, so that
    (for example) the left diff switch can be set to 'A' even if its
    property says to use 'B'.

2)  Filter ROM listing - still TODO.

3)  Reload ROM listing - functionality was already present with Ctrl-r;
    this just adds a UI element for it.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1592 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-02 01:50:03 +00:00
stephena 8f59c4a08e Some refactoring of the OSystem class wrt console creation. Info about
a created console is now shown on the commandline again.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1591 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-01 22:44:14 +00:00