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
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
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
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
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
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
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
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
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
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
_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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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