Commit Graph

1795 Commits

Author SHA1 Message Date
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
stephena e15989c30a Updated copyright information for 2009. Happy New Year (for anyone
reading these logs!).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1590 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-01 18:13:40 +00:00
stephena d1379b54bb First pass at reworking the way auto-detect information is presented to
the user.  Previously, the only way to see certain info was at the
commandline (a bias on my part, as I always launch Stella from the console
and view the output there).  Now, we can see bankswitch type and cart
display format as part of the 'stats' message in TIA emulation.

Reporting this info to the commandline is currently broken.  Also todo
is start on the cart random startup bank infrastructure, and also show
this in the stats message.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1589 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-01-01 00:08:59 +00:00
stephena bbdac2b646 Some more properties updates from RomHunter v4.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1588 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-31 21:57:54 +00:00
stephena a70a1f1e62 Oops, a few properties I missed last time.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1587 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-31 01:39:04 +00:00
stephena 051969e56a Fixes to RomAuditDialog for recent surface changes. Also, if a ROM
already has the correct name, we no longer rename it anyway (renaming
a correctly-named ROM was updating a counter that should only show
ROMs that *really* had to be renamed).

First pass at integrating RomHunters V4 romset database into internal
properties.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1586 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-31 01:33:03 +00:00
stephena 8ba2482f50 RomInfoWidget now honours 1x and 2x mode, and correctly resizes PNG
snapshots to the selected mode.  This means that you no longer have
to make sure that snapshots are taken in 1x mode (as was the previous
functionality).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1585 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-30 02:34:49 +00:00
stephena c5de58f13c Reactivated rom viewer in ROM lauuncher. For now, it only works with
1x snapshots (which the core code can no longer generate) and doesn't
resize properly into 2x mode.

Reworked '-romviewer' commandline argument (and associated UI) to
indicate the zoom level for snapshots in the viewer ('0' means to not
turn it on at all, otherwise '1' or '2').


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1584 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-29 20:42:15 +00:00
stephena c839ddaab1 Baring any last minute issues, it looks like I've finally finished with
the new FrameBuffer surface-based instrastructure.  Thank God, since it
was really starting to get on my nerves :(

Made the Alt- and Alt= keys (for changing videomodes) only be active
in TIA emulation mode.  This solves the final remaining positioning
issues with ContextMenus, since now a ContextMenu is never onscreen when
the VideoMode changes size (and hence we don't have to worry about
re-positioning it).

Now to fix the RomInfoWidget, and then UI-wise we'll have parity with
the 2.6.1 release ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1583 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-28 23:47:09 +00:00
stephena eb381e24f6 Make software rendering mode in OSX ignore 'isBase' surface functionality,
and always update entire surfaces when changes are made.  This is
basically a workaround for the next release, as I don't want to spend
time on fixing this right now (since it only happens in fullscreen
software mode, which isn't the optimal code-path in OSX anyway).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1582 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-28 22:54:04 +00:00
stephena 61ba37d7ad Oops, forgot to remove debugging code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1581 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-28 22:31:13 +00:00
stephena 64ec3ac8d0 Properly swallow 'Cmd' key-combo shortcut keys in OSX.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1580 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-28 22:30:40 +00:00
stephena 3f81dd2c93 Changed behaviour of 'gl_fsmax' argument again. It's now a boolean,
which only applies to TIA mode (in fullscreen, of course).

Some code/debugging cleanups across the various FrameBuffer classes.

Finally fixed software rendering mode crashes.  It now works just as
well as OpenGL mode, with all dialog positioning working the same in
both.

Reactivated OpenGL filtering (GL_LINEAR and GL_NEAREST).  Only the TIA
image can be changed; the UI dialogs are always using GL_NEAREST).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1579 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-28 21:01:55 +00:00
stephena 829375de34 Fixed yet more positioning issues. Everything seems to be working fine
in OpenGL mode now, and I think I've finally finished the major UI stuff
there.  Now for software mode.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1578 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-28 00:23:21 +00:00
stephena 5b4f9f3781 OK, another large FrameBuffer-related change so that fullscreen,
double-buffered modes don't have flicker.  Basically, the core FrameBuffer
class has been modified to draw dialogs multiple times when necessary,
above and beyond when changes are made (ie, if a new surface is to be
overlaid, all surfaces underneath must be drawn to BOTH buffers in
double-buffered mode first).

Software rendering is currently broken in fullscreen mode, but I know
why.  It's basically the optimizations I try to make for large software
surfaces (the 'isBase' functionality).  This is going to disappear before
the next release.  And in case I haven't mentioned it for a while; I
REALLY HATE software mode.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1577 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-27 23:27:32 +00:00
stephena 4051b523d8 Fixed minor error in mode switching.
Commented out some debugging messages.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1576 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-27 15:56:36 +00:00
stephena 311c0f717f Changed VideoDialog so that it shows the current framebuffer type,
and allows you to change it for the next Stella run, but doesn't
actually change it for this run (since Stella now has to be
restarted for toggling between software and OpenGL mode).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1575 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-26 21:39:17 +00:00
stephena 5147356c96 Re-add support for displaying text in FrameBufferSoft. I've only
tested 32-bit mode for now; more testing to come.

Made changes in OSystem so creating a framebuffer is only ever done
once.  This means that switching between software and OpenGL mode is
no longer dynamic (ie, it can no longer be done while Stella is running).
With the forthcoming changes to VideoDialog, you'll be able to set the
mode to change the next time Stella runs.  It just adds too much
complexity to support dynamic switching, especially when I don't think
many people do it too often.

Updated CommandDialog to be font-resizable (ie, take advantage of the
new UI fonts).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1574 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-26 20:05:17 +00:00
stephena 92b22e3ad7 OK, I decided to take a break from the positioning stuff and work on
something which was the basis for this whole surface restructuring in
the first place; updated fonts in the UI.

Switched out the old normal and larger sized fonts for higher
resolution ones.  The surfaces are now mostly larger than 320x210,
which means 1x TIA zoom mode is no longer allowed (which was actually
disabled some time ago).

I'm getting close to the end of a single surface design to what we have
now; a multi-level surface infrastructure.  This allows higher-res UI's
(which have just been committed), and optimizations for OpenGL TIA
rendering (which were committed over the last week).  In the future,
this will also make it easy to add TIA filters to OpenGL mode (ScalexX,
HQxX, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1573 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-25 23:05:16 +00:00
stephena 843c85c56b Yet more OpenGL positioning fixes.
Fixed compile warning in converting integer values to hex strings in the
debugger.  The resulting code was actually causing crashes in the RIOT
tab of the debugger.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1572 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-24 01:20:06 +00:00
stephena b62755ce70 Some more UI positioning fixes. InputTextDialog's in the debugger are
now correctly positioned, but there's still an issue with ContextMenus
which are used by PromptWidgets.

Finally, we see the first performance improvements in OpenGL TIA
rendering coming from the new 'surface' infrastructure.  Now that TIA and
UI surfaces are rendered separately, we no longer have to double the TIA
width in software; it can be hardware-accelerated (ie, a 160x200 texture
is stretched in hardware).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1571 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-23 18:54:05 +00:00
stephena 039a0b9e36 Some fullscreen positioning fixes for OpenGL mode. It's getting close
to being finished now (thankfully, since I want to move to other parts
of the codebase).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1570 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-21 19:51:35 +00:00
stephena 748325301d Fixed annoying OSX warning that I've been looking at for about 2 years.
It seems the fix for OpenGL issues in OSX do work, so now the OpenGL
code is working the same on all systems again.  So now I can get to
the fullscreen positioning issues ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1569 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-21 00:12:15 +00:00
stephena bf993f9284 Fixed minor warning with newer version of gcc.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1568 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2008-12-20 23:42:30 +00:00