Commit Graph

418 Commits

Author SHA1 Message Date
stephena cb5a943928 Added more 'DATA' hints to the emulation core.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2146 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-10 22:06:54 +00:00
stephena 5624d30d93 The emulation core now tracks access to DATA areas (currently, any address
used as a peek operand).  Still TODO is deal with poke areas, which would
be relevant in carts with extended RAM.

The interaction between the internal tracking and Distella is now much
tighter, in that knowledge gained by Distella is used in the core code,
and vice versa.  This allows the best of both worlds, where the internal
tracking finds stuff at runtime (that couldn't be found in a static
analysis), and Distella tracks potential paths (that haven't occurred at
runtime yet).

Added 'type' debugger prompt command, which basically queries an address
for its disassembly type (CODE/GFX/DATA, etc).

Added debugger commands to query the last address used in an operation
for various registers, but they're only stubs at the moment.

Updated the bankswitch schemes to deal with accesses in and around the
hotspot areas.  Previously, peek accesses in these areas weren't being
recorded as DATA areas.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2145 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-10 20:24:22 +00:00
stephena 5d0b25cd48 Re-added 'REFERENCED' type to Distella, instead of always using 'DATA'. I just
realized that not all things that are referenced are actually data; code can be
referenced too.

Implemented handling of 'DATA' directive.  This is very similar to 'GFX',
except X's are not shown for the bits, and the disassembled bytes are always
in hex.  For now, it can only be activated manually with a cfg command.
Its real value will become apparent once the emulation tracks when
addresses are actually accessed, differentiating from addresses that are
never referenced (ie, 'ROW').  This will fix the current deficiency in 
modifying DATA values (it can't be done, since they're packed into 16 bytes per
line and not changable).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2144 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-09 17:55:22 +00:00
stephena fa3dc7cc38 Beginning the process of more properly integrating Distella (and disassembly
in general) into the emulation core.  For now, this means integrating the
directive names into CartDebug, and having Distella using those same names.
The new directive names were determined by discussion with Omegamatrix on
AtariAge, and are listed in order of decreasing hierarchy:

  SKIP  (the 'bit' trick to skip over sections of code)
  CODE  (addresses accessible to the program counter)
  GFX   (addresses where data is loaded into TIA GRPx registers)
  DATA  (addresses referenced somewhere in the ROM)
  ROW   (addresses never referenced at all)

The next TODO item is to have the 6502 core set these values during emulation.
This is currently (crudely) done with a true/false setting in System::peek,
where true corresponds to CODE.  This will be extended, so that false
corresponds to DATA.  Eventually GFX will also be detected, by watching writes
to the TIA GRPx registers.  Still to work out is how to detect SKIP sections.
Anything not marked with one of the above directives will be marked as ROW,
which essentially means ROM space that is never used.  This will have the
nice side effect of detecting dead ROM space, potentially leading to space
optimizations.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2143 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-07 22:34:22 +00:00
stephena f51c16c54f Shortened some options in the right-mouse click menu in the disassembly
view.  Instead of showing each separate item (in related items), simply
show a 'toggle' option instead.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2142 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-05 00:15:12 +00:00
stephena 9e583f146f The various trap commands in the debugger (trap, trapread, trapwrite) now
accept a second argument, indicating a range is to be used.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2141 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-03 22:09:34 +00:00
stephena 64ca5275d2 Fixed disassembly output error for 'relative' opcodes; only the signed
operand should be shown, not the two-byte address which it resolves into.

Bumped version # for another test release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2140 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-03 18:48:44 +00:00
stephena 4b44dcb948 Added 'showaddr' commandline argument and associated UI item (right-click in
disassembly listing) to show/hide opcode/instruction addresses.

The disassembler now includes hints from current PC location *and* 'code
access points' from the emulation core.  Testing has shown that some ROMs
don't show completely accurate disassembled output unless both options are
used.

Updated most of the remaining bankswitch schemes to use the new 'code access
points' functionality during disassembly, allowing for very accurate
disassembled output.  Note that the more esoteric schemes (AR, 4A50, FE, MC)
are supported for now.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2139 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-03 18:19:09 +00:00
stephena 5fe91e2841 Greatly improved the disassembler output, but having Stella keep track of
addresses used as part of code execution (ie, from the PC) during emulation.
This gives Distella much more information than can be determined from a
static analysis alone, resulting in an extremely accurate disassembly.
This also allows to generate very accurate debugger .cfg files.

Not all carts have been ported to this new scheme yet, particularly ones
having extended RAM that can be mapped out dynamically.

Note that this new scheme doubles the amount of RAM used for storing ROM
images, so up to 128KB extra will be used.  There's also a small runtime
check for each instruction executed.  Preliminary testing doesn't show
any slowdowns, but we'll see how it goes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2138 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-03 00:23:13 +00:00
stephena d6a38c8e44 Changed several string invocations to use references instead. For the
Cart class it's simply an optimization, but the Distella change actually
modifies the list of addresses (vs. modifying a copy of the list).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2137 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-30 15:56:38 +00:00
stephena 80aa24a8f8 Added build script for Visual Studio 2005, which should allow to build release files for Windows 98 and 2000. This is necessary, since VS 2008 and 2010 remove support for Win98 and Win2K, respectively.
Updated Create_builds to properly deal with spaces in Win32 home directory, and to pause until the EXE release file(s) are actually created.

git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2136 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-28 22:59:55 +00:00
stephena f3483ca8b1 When in 'small' window mode and attempting to open PAL ROMs larger than the
screen size (vertically), the window will open in partially truncated mode,
where the top of the PAL image is cut off.  This normally won't be a problem,
as it's mostly blank space anyway.

App window centering is now honoured when changing video zoom levels, not
just when changing eventhandler states.

Bumped version # for another test release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2135 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-21 19:39:30 +00:00
stephena cb6d2cf602 Fixed bug in app window centering, recently addressed in a 3.2.2 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2133 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-17 19:19:25 +00:00
stephena 057f6ff495 Bumped version # for AtariAge test release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2130 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-11 14:30:14 +00:00
stephena cb7b93f8d1 Debugger 'saveconfig' wasn't taking pathname of ROMs into account; it always
used the current directory.

Fixed error in generating directive lists; there sometimes were 'holes' 
at the boundary of CODE <=> DATA transitions.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2129 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-11 14:26:21 +00:00
stephena aba64fa8e4 'Center' window functionality should be off by default.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2128 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-09 13:40:15 +00:00
stephena db8fd2465f Added 'clearconfig' debugger prompt command, to quickly remove all
directives associated with a given bank (or all banks).  Sometimes the
directives are so borked that's it's easier to remove them all at once.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2127 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-07 22:03:20 +00:00
stephena 7f75957e11 When a ROM doesn't exist and is temporarily inserted into the properties
database, it now has its extension removed (.bin, .a26, etc).

Symbol and config files are now loaded when the debugger is first entered,
not when the ROM is actually loaded.  This speeds up ROM loading, since
the user may never need to access these file (ie, they may never enter the
debugger).

The debugger 'loadconfig' and 'saveconfig' commands are now implemented.

Bumped version # for next test release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2126 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-06 23:29:05 +00:00
stephena 2d08d4e459 Cleaned up handling of various file paths throughtout the codebase.
Basically, directories are now guaranteed to always end in the path
separator.  Ensuring this makes certain sections of code work faster,
and guaranteeing it allows higher layers of code to not worry about it.

Added 'cfgdir' commandline argument, to specify the default directory
for Distella-like Stella-compatible config files.

Implemented 'loadconfig' debugger prompt command.  It's currently
working great with several test config files provided by Omega of
AtariAge.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2125 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-06 00:17:51 +00:00
stephena 871d851e4d Make sure address selected with 'jump' command is valid.
Bumped version # for next AtariAge test release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2124 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-05 18:02:26 +00:00
stephena 8f68c677d4 Added commandline argument 'gfxformat', also accessible from a right
mouse button context menu in the disassembly listing.  This is used to
set the default display format for GFX data sections (currently, binary
and hex are supported).

Fixed bug in several debugger input areas to accept the '\' symbol.
This symbol is needed when entering data in binary format (it must
prefix the data if the default base for that field isn't binary).

Added 'jump' debugger prompt command, used to scroll the disassembly
to the given address (or there-abouts, if the address isn't valid).

Editing data in the disassembly now won't cause the display to jump to
the current PC.  The display will only move to the PC when it actually
changes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2123 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-05 17:57:21 +00:00
stephena 00d64f9f02 Further improvements to adding directives to the disassembler.
There was a bug in the linked list code causing directives to be added
incorrectly.  Also, merging is now done when possible instead of
creating new nodes.  This keeps the directive count as small as possible,
and also helps with memory (less allocations happening).

Fixed bug in printing the 'ORG' directive; it was being printed
before the bank was disassembled, so on the first run it was always 0.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2122 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-01 16:44:31 +00:00
stephena f8b2621ab5 Many big improvements to disassembler directives. Directives are no
longer simply added to a list, but intelligently 'merged' (so that
the entire range represented by all directives contains no overlap).
This makes the disassembly a little faster, since it doesn't have to
iterate redundantly.  Still TODO in this area is intelligent insertion
for the same type (ie, if inserting in between like blocks, the
blocks should coalesce, instead of being clipped and then a new range
inserted in between).

Added 'loadconfig' and 'saveconfig' debugger prompt commands, which
will eventually access Distella-like config files.  No implementation
is present yet.

Added 'listconfig' debugger command, which lists all directives
currently defined by the user, as well as the directives resulting
from a disassembly of a bank (taking into account extra knowledge
that Stella has WRT cached entry points).  This command can show
information for a specified bank, or all banks in the cart.

User-defined directives can now be removed; simply issue the same
command that caused an insertion (ie, attempting to insert the same
type and range will remove it instead).

Fixed bug in Distella processing of directives; similar to the
standalone Distella, directives should be processed *before* any
automatic code determination is done.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2121 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-31 16:37:27 +00:00
stephena e0dd8b1451 First pass at extending the disassembler to support CODE/DATA/GFX commands
from a Distella config file.  For now, the commands are only accessible
within the debugger prompt, and can only be added (no removal/editing).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2120 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-30 12:04:56 +00:00
stephena 12c9edaed0 Updated Visual Studio project files for VS 2010.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2119 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-29 17:55:59 +00:00
stephena aaa6823cb0 Compile error caused by missing include fixed.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2116 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-23 18:29:48 +00:00
stephena d664beb45d Several changes to make entering commands at the debugger prompt
case-insensive.  Currently supported are all commands and
pseudo-registers.  Equates/labels and user-defined functions are
still a WIP, since they're stored in various hashtables accessible
by name, which is still a case-sensitive operation.  In general,
tab completion is mostly case-insensitive.

Changed the delimiter for surrounding lines with spaces from curly
braces ({}) to the apostrophe (').


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2115 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-23 16:19:17 +00:00
stephena bc28a2408d And time marches on; bumped version # for what will be the next release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2114 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-23 12:08:11 +00:00
stephena f742f67788 Optimized Distella in the case of 2K ROMs. Now only half the
address space is shown (either $F000 - $F7FF or $F800 - $FFFF).
This eliminates a lot of .byte directives that are invalid in
2K mode anyway, and speeds up the disassembly a little.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2113 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-23 12:07:09 +00:00
stephena b81bb187b7 Final commits for the 3.2.1 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2111 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-23 11:09:04 +00:00
stephena 2f9ee65822 Updated various files for upcoming 3.2.1 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2110 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-21 23:20:42 +00:00
stephena 26b1654aa2 Some minor UI improvements to the InputSettings dialog; renamed the
'Virtual Devs' tab to 'Devices & Ports'.  Updated documentation and
snapshots for this change.

Added Halo 2600 ROM info to internal properties database.

Increased default setting for 'joydeadzone' from 0 to 13.  This means
the default deadzone is somewhere around half the axis range (~16500).

Fixed behaviour of hat events; events weren't actually being turned off
until the stick was centered.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2108 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-21 23:08:44 +00:00
stephena 0fa706c558 Fixed bug in debugger rewind states are reported in the Stella tracker. It
seems that bankswitching wasn't being enabled before rewinding, and hence
any bankswitching being done on state load was being ignored.  This also
affected the loadstate and savestate debugger commands, which weren't working
for exactly the same reason.

Bumped version # for impending point release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2107 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-21 21:05:12 +00:00
stephena 8b3c0a00a9 RAM should be randomized by default.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2104 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-20 01:02:32 +00:00
stephena 60171fe69c And I always forget something after the final commit ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2101 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-19 21:52:30 +00:00
stephena b2ed949082 Some final changes for the 3.2 release, including documentation updates.
Added 'ramrandom' commmandline argument, used to toggle randomizing or
zeroing or all RAM in the system (both zero-page and SARA).

Disassembler now properly supports all test cases, including rewinding
within the debugger.

Added preliminary support for disassembling from zero-page RAM.

Bumped version # for final release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2100 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-19 21:48:28 +00:00
stephena 0a7726cb9f Fixed bug in handling illegal TIA reads; the value returned should always
'clipped' to the unused TIA bits.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2099 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-16 19:49:32 +00:00
stephena d007c3502f Several big improvements to the debugger:
The disassembler now accepts a range of start addresses and remembers
old entry points, so the disassembly becomes more complete each time
the debugger is used.

Changes to address offsets within the same bank are now supported
(ie, changing from $fxxx to $dxxx within the same bank properly
updates the display).

Re-added ability to manually change banks from the debugger prompt
and the disassembly UI.  This now works correctly with the Distella
code.

Cleanup of the Cartridge::bank(...) API: if a bank cannot be changed,
the calling code will now know about it.  This fixes confusion with
some ROMs, whereby changing a bank in the debugger prompt would print
a success message even if the operation failed.

Note that these changes have broken rewind in the debugger.  Actually,
it only exposes problems that the rewind functionality already had :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2098 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-16 16:41:24 +00:00
stephena 5a89e78fe2 A few UI improvements:
Some messages now use a smaller font, so the UI doesn't look quite
  so monotonous.

  SliderWidgets suppport the mouse scroll wheel to change values.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2097 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-14 01:01:27 +00:00
stephena 764e598536 Fixed debugger 'runto' command; it was case sensitive, so it never
matched anything most of the time.  Also, as this operation can take
a somewhat long time on slower systems, a progress bar is now shown.

Fixed handling of bit 6 in VBLANK TIA register, which is related to
how INPT4 and INPT5 are handled.  This fixes at least one ROM that
should have failed in Stella, but didn't.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2096 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-12 16:55:47 +00:00
stephena 111f40f875 Updated comments on setAppWindowPos, to clearly indicate that the
method is only used in windowed mode.  This eases the requirements
of the method, since fullscreen code need not be added.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2094 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-11 22:51:22 +00:00
stephena 657a296b32 Line feed changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2093 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-11 22:44:03 +00:00
stephena 2818445bf2 Add OSystem::setAppWindowPos functionality to Windows, and bumped version number for another test build.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2092 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-11 22:36:07 +00:00
stephena 6a5998c684 Multiple events can now be assigned to combo events from the UI. Still TODO
is update the documentation for this.

Fixed bug reported by Buzbard from AtariAge concerning very large images
in the RomInfoWidget being clipped too small.

Reworked 'center window' functionality.  Using the SDL_VIDEO_CENTERED
environment variable was always a hack, and a bug was introduced in X11
OpenGL mode in version 1.2.14.  However, since SDL is now in maintenance
mode and won't be receiving any further updates, we have to bypass it
entirely.  Added infrastructure for OSystem to center the application
window.  For now, only Linux X11 mode is supported.  Still TODO is add
support for Windows.  OSX was never supported anyway.  This also means
that the center window variable no longer requires the application to
be restarted.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2091 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-11 21:53:19 +00:00
stephena 8199dddb6f More work on mapping of multiple events to combo events. The UI is now
present, and it properly loads and presents events from settings.
Still TODO is implement saveConfig(), to send the new events to EventHandler.

Modified ContextMenu/PopUpWidget to honour the 'mwheel' setting when
scrolling with the mouse wheel (previously, it always scrolled at 1 line
at a time).

Updated OSX project files for recent ComboDialog addition.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2090 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-09 17:02:36 +00:00
stephena 497cce6079 First pass at adding a dialog to configure combo events in emulation mode.
It doesn't actually do anything yet ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2089 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-08 23:06:43 +00:00
stephena e9c5131ae4 Bumped version # for test binary.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2088 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-08 20:25:19 +00:00
stephena 091ed8935e More updates to Port B I/O of M6532, to match output from another test ROM
on AtariAge.  It seems the documentation regarding port B is incorrect.
Pins previously defined as input/read-only *can* in fact be set as output,
which are then overridden if the console switches are pressed.

Or at least that's my understanding of it; I'm not entirely sure if this
is correct or not.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2087 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-08 19:14:37 +00:00
stephena 6e3be6ea0d Fixed M6532 issues when handling the 3 unused bits in SWCHB. Previously,
these bits were ignored, and treated as high all the time.  A recently
reported Stella tracker posting noted that these bits could be
configured by SWBCNT to be input or output, and hence used as 3 extra
bits of storage.  This is now enabled.  Because of these changes, the
state file format has also changed.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2085 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-08 12:32:02 +00:00
stephena 044e1aa151 Some cleanups to the event mapping UI and associated functionality:
1)  Added a 'Reset' button to the UI, which resets (to defaults)
the currently selected item.  This is more fine-grained than the actual
'Defaults' button, which resets *all* events.

2)  Rearranged some buttons and resized UI.  There is now a main 'Defaults'
button on the bottom of the dialog, which applies to the currently selected
tab.  This also allows to set defaults for Virtual Devs, which didn't have
such functionality previously.

3)  Added a 'Combo' button to the Emulation events tab.  It doesn't do
anything yet, but eventually will allow to assign events to the 'combo'
events.

ContextMenu/PopupWidget now supports the scroll button on a mouse when
in scroll mode.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2084 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-03 21:04:58 +00:00
stephena 3aba07fef5 Updated Win32 projects files for MessageBox class.
Fixed compile error in Zlib for Windows; unistd.h is not (normally) available on the Windows platform.

git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2082 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-01 20:42:45 +00:00
stephena 8ed6201651 Fixed compile error when compiling without sound support.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2081 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-31 00:02:47 +00:00
stephena 1b19d4a29f More cleanups to the UI.
Context menus, both as right-mouse button popups and those part of
PopupWidgets now have arrows that support scrolling, without having to
continuously click the mouse button.  The scroll arrow color also
changes to disabled when they reach the upper or lower range.
Also, the maximum number of items shown in a ContextMenu is now 16,
which looks quite a bit nicer than showing 30 or so all at once.

ScrollBarWidget now looks a little nicer, as the scroll bar is a little
wider, and the arrows are larger (same ones from ContextMenu).  As well,
click and hold works on the scroll buttons, even during mouse movement.
This means you no longer have to hold the mouse completely still to
get continuous mouse click events.

Dialogs can now register whether they want to receive continuous mouse
click events (aka, click and hold of a mouse button).  Most dialogs
don't need it, and some even work incorrectly when it's activated.
This fixes a bug in ContextMenu, where click and hold on a PopupWidget
would continuously open and close the list of items.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2080 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-30 17:25:28 +00:00
stephena c9cae47787 When in normal resolution mode (aka, >= 640x480), ignore all screen modes
smaller than 640x480.  Basically, the only way to use smaller modes is
on systems that report their desktop to be smaller than 640x480, or by
using the maxres commandline argument to simulate the same thing.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2079 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-29 17:33:07 +00:00
stephena f136363226 Updated changelog, and set preliminary release date for version 3.2
to Monday, August 16.  We'll see how well that goes ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2078 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-29 17:06:51 +00:00
stephena ee43255ea1 Many changes to the UI to fully support the smallest resolution that
Stella can use (320x240).  The app should no longer crash in such
low-res situations.

Various improvements to the UI, adding many finishing touches.  The
text is more descriptive, and the options are somewhat better labeled.
As well, the available options are better presented based on the
restrictions currently in use (ie, if the maximum resolution is very
small, then the high-res resolutions are not shown in selectors, etc).

Added MessageBox to ROM Audit functionality, to warn that it is a
dangerous operation and that a file backup is advised.

Updated OSX build script to not crash when an older image has already
been created.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2076 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-29 15:22:27 +00:00
stephena 6faa9b4b69 Several fixes across the board for better functionality in 'small'
window mode.  Using modes smaller that 640x480 should now work in
all cases when using the 'maxres' commandline argument.  Also, the
lower limit of 320x240 is now strictly enforced in all cases.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2075 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-22 15:41:46 +00:00
stephena 2977801ffa Added ability to use 'combo' events. Basically, these events
are multiple normal events that are called in sequence.  The
infrastructure is in place to use these events, and they're
loaded/saved in the 'combomap' commandline argument.  Still
TODO is add a UI to edit the events (manually editing the
config file is really tiresome).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2074 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-21 17:05:34 +00:00
stephena 594ef968b9 Updated OSX project files for new MessageBox class.
Set default rom directory to '~' ($HOME), instead of the current
directory.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2072 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-20 12:55:41 +00:00
stephena edb9a28eb1 Added MessageBox class, used to present a small message to the user from
the UI.

Modified the ROM launcher to display a messagebox when running Stella for
the first time (which currently means when the 'romdir' hasn't been set).
This messagebox suggests setting the default ROM directory, and if the
user clicks on 'OK', only then is the ROM directory file browser
displayed.

Reworked some of the event handling methods in EventHandler to save
function calls on every event.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2071 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-19 16:36:37 +00:00
stephena c3bcf47170 Updated internal database with info about several multicart ROMs.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2070 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-11 21:47:50 +00:00
stephena 8da0f4dbfe After spending several hours converting the zlib C-style files to
proper C++, I find out there's a PERL script to do it in about 5 seconds.
Yes, I feel like an idiot.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2069 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-10 23:39:52 +00:00
stephena fabc897b42 Updated Visual Studio project files for recent Zlib update.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2068 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-10 21:10:52 +00:00
stephena 113d7af8c2 Updated internal Zlib to latest version (1.2.5).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2067 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-10 20:53:22 +00:00
stephena 3e7662c478 Fixed bug in loading RGBA PNG images; Stella can only handle RGB data.
Also, fixed a potential future bug where Stella can't handle paletted
images.  Basically, the error handling is now more robust.

Minor rework of the CartF8 class; it now looks the ROM MD5 directly and
decides if it's a 'special' ROM.

Several updates to the built-in properties database, including better
support for each game in the 8-in-1 ROM image.

Fixed crash in TIA handling of the playfield mask; it could cause a 
segfault under certain circumstances.

Fixed bug in prune_snapshots script; it now properly handles directory
names containing spaces in both Linux and OSX (and probably Windows as
well, but this hasn't been tested).

Updated built-in PNG library to the latest version (1.4.3).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2066 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-10 17:12:45 +00:00
stephena 8bf546ce1d Always clear any current events when changing emulation states.
This fixes a bug in exiting pause mode, and 'remembering' the
events that were set previously.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2065 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-09 14:52:03 +00:00
stephena c0cc5b489e Bumped version number for beta tester release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2064 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-08 16:33:42 +00:00
stephena b59672542d Further improvements to accessing the UI with joystick axes and hats.
The event mapping for such events is now done on the release of the
axis/hat, and not on the first press.  This should fix the remaining
problems with sensitivity, as the user must explicit press and then
release the axis/hat, with all other events occurring the meantime
being ignored.

Fixed bug in continuous events for axes/hats; event that represent
'off' should not be continuously sent.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2063 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-08 16:32:32 +00:00
stephena e0376c85d2 Tweaked navigating the UI with a joystick, particularly with analog
axes.  It shouldn't be nearly as sensitive now.

Cleaned up handling of joystick hats, and fixed continuous events
(so that holding down a hat now sends continuous events until the
hat is centered again).

Fixed bug in prune_snapshots script; it didn't work with a snapshot
directory name containing a space.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2062 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-07 14:19:45 +00:00
stephena fa6f02579c Of course, I forgot a manual update in the last commit.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2060 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-06 15:12:00 +00:00
stephena c3f5aa2810 When starting Stella for the first time (ie, when the ROM directory hasn't
been chosen), a dialog box now appears, asking the user to enter the
default directory.  This directory will appear each time the ROM launcher
is entered, until the user selects a directory.  This will hopefully
eliminate bug reports from users that don't know what to do when first
starting Stella.

Big changes to the manual, separating the necessary, up-front information
from the advanced stuff that can be considered later (or not at all).
Also added more links to ease navigation.  This should make the manual more
readable for those that have complained it's too long.

The setting for TV color type is now 'Color' and 'BW', instead of
'BlackAndWhite', as before.  The old one will continue to work, though.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2059 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-06 15:08:35 +00:00
stephena 78fd3c0c7d Modified joystick axis event handling, so that digital output is always used
when sending axis events to the DialogContainer (ie, all UI-related stuff).
The UI code was originally written with this in mind, and wasn't designed for
analog input.  For normal digital sticks, nothing changes.  For analog sticks,
values are clamped to 3 points (max, min, off), and repeated consecutive
events are ignored.  This (partially) fixes bugs in the UI, where pressing
an analog stick would cause the current selector to move very fast.

Added repeat mode for joystick hats, similar to joystick axes (so holding
down a hat will cause continuous events to occur.  More testing is
required for this, as I don't actually have access to hats right now.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2058 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-02 19:17:57 +00:00
stephena 88e6b69195 Attempt to prune as much of libpng as possible, and only keep what
Stella actually needs.  I suspect more stuff will be excluded as
I look through the options.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2057 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-17 16:27:45 +00:00
stephena 99e7f6c5d0 The getTicks() method is updated to work similar to gettimeofday, for
systems where gettimeofday doesn't exist.  Basically, the functionality
for OSystem::getTicks() has changed to always output an increasing
value each time it's called, even between program runs (needed for
timestamps for continuous snapshots, but also for similar things in
the future).  It does this by refering to some set time in the past,
which is currently the UNIX epoch.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2056 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-16 15:40:57 +00:00
stephena 9b6ed83d7e Snapshots in continuous snapshot mode are now tagged with a timestamp,
so they don't overwrite previously created files.  This timestamp is
related to the millisecond that the snapshot was taken, so there's no
chance of overlap (snapshots can only be taken every 1 second / 1000
milliseconds at most).  The appended value is an 8-character hex
representation of this 32-bit value.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2055 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-16 13:45:32 +00:00
stephena 5099e2d9fc Some minor cleanups in the PNGLibrary class.
The UNIX builds for Debian and Redhat/RPM now default to using the
builtin PNG and zlib libraries.  This will ease issues at release
time, since we don't need to worry about those libraries being
present on the destination systems.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2054 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-15 19:08:05 +00:00
stephena ad83d21a69 Fixed issue in Windows; PNG messages thrown from the exception handler weren't being handled correctly.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2053 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-15 18:49:25 +00:00
stephena 4409e55894 Fixes for libpng compilation in Linux.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2052 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-15 18:14:37 +00:00
stephena ad3a22b9e5 RomInfoWidget now uses PNGLibrary to load PNG images. This allows
interlaced or row-filtered images to be correctly processed.

Updated the non-Intel XCode project to include libpng support.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2050 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-15 15:40:11 +00:00
stephena 86b2eddc2e Bugfix to usage of BSPF_equalsIgnoreCase; it was actually using reversed
logic.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2049 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-14 13:11:39 +00:00
stephena 91f22e4ddc Added makefile stuff to compile libpng for Linux/UNIX when a system-wide
version isn't available.  Of course, because of compiler errors it doesn't
actually compile yet :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2048 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-13 22:52:18 +00:00
stephena a9f91c0e44 Updated the case-insensitive string comparison functions to be more
efficient, and use macros that have already been defined.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2047 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-12 14:13:03 +00:00
stephena 1cdd4c9508 Updated Win32 project files for recent addition of libpng files.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2046 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-11 19:34:13 +00:00
stephena ec096dca6f Updated configure script to test for an external PNG library, and if
not found fall back to using the internal version (for Linux, and all
systems that use the configure script).

The debugger can now be resized in between ROM launches (ie, before
a ROM is actually started).  Previously, the entire program had to
be restarted for resizing to take effect.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2045 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-11 19:09:20 +00:00
stephena ec1d3c6e10 First pass at adding libpng functionality directly into Stella,
similar to the recent Zlib addition.  This is required for the
RomListWidget, which currently doesn't parse valid PNG files
that are generated outside Stella (in particular, those that
have been optimized and use row filtering).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2044 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-11 15:38:17 +00:00
stephena cd34147f5e Oops, the disassembly output should align based on the length of the
entire disassembled text, not just the label length.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2043 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-05 01:23:39 +00:00
stephena ffae9a0d56 Size hints are now passed to the disassembly output, so that the cycle
counts are aligned after the disassembly text with as little space as
necessary.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2042 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-05 01:17:03 +00:00
stephena 4735feda13 Mostly completed support for showing .sym label information in the
disassembly output.  Still TODO is add some visual improvements
(ie, align the cycle counts to not take too much space, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2041 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-04 16:33:56 +00:00
stephena befafd5d62 Second pass at integrating .sym labels into disassembly output.
There's currently a problem in the internal code I have, so I need
to submit in pieces until it's tracked down.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2040 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-03 12:54:45 +00:00
stephena 88f7f656e6 First pass at integrating dasm '.sym' labels into the disassembly output.
For now, only the infrastructure is being modified.

Make disassembly output a little nicer by drawing a vertical line
separating disassembly text from the actual raw bytes.

Some changes to the SDL sound code initialization, which will (hopefully)
eventually lead to a fix for those users with ATI video drivers, and
not having sound after the first game has been played.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2039 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-03 12:41:49 +00:00
stephena 0c1029076c First pass at making Distella aware of labels defined in a .sym file
or from the user.  Before this is done, the parser needs to recognize
variable-length labels (right now, it used fixed spacing and assumes
the largest label is 8 characters).

Fixed bug in Distella; a label was being printed with an incorrect
quote symbol, which would break parsing of that line.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2038 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-05-12 00:04:14 +00:00
stephena dfd4d0cb22 Updated DPC+ bankswitching to match behaviour of Harmony cart.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2037 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-05-12 00:01:06 +00:00
stephena 03c6e2c4f0 Improved 'E7' autodetection; several ROMs that were detected as F6 are
now properly detected as E7.

Some minor cleanups to the Cart classes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2036 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-05-10 00:50:26 +00:00
stephena 2468585c3e Added 'Stay Frosty' PAL60 ROM to internal database.
Bumped version number so development can start on the next
release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2035 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-05-05 16:38:38 +00:00
stephena 5ca6d8c49d Removed 'uselauncher' from the UI, as it really shouldn't be there
(ie, disabling from the UI kills the UI on future runs, so you can't
enable it again).  This should fix problems where users go
'click-happy' in the UI, turning options on and off just to see what
happens.

Added 'showinfo' to the UI, so you don't have to drop to the
commandline to use it.

Updated all release files and bumped version number for 3.1.2
release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2031 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-05-03 12:01:43 +00:00
stephena f5dd4e6ce7 Updated DPC+ scheme to autodetect and use DPC+ carts in 32KB format.
These have ARM code appended to the beginning of the ROM, which is
(for now) ignored by Stella.

Improved memory usage for DPC and DPC+ schemes, so that an extra
copy of the ROM image is no longer required.  This also fixes a bug
in the getImage methods, which wouldn't have actually returned any
changes made by patching the ROM (it always returned the original,
non-modified copy).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2030 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-05-02 22:52:59 +00:00
stephena 5de12952ec Added OSystem::logMessage(), which abstracts the logging of messages to
an outputstream.  For now, the output simply goes to stdout or stderr,
just like before, but the possibility is now there to redirect to a
file if desired.

Changed 'showinfo' commandline option to accept 'levels' of output
instead of simply being a boolean.  The new default is level 1,
in which normal messages are output during a run.  Level 2 will
show more detailed info, and may be useful in debugging end-user
problems.  There's still more work to do wrt level 2.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2029 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-29 12:46:07 +00:00
stephena f8adf5c314 Final changes for the 3.1.1 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2027 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-25 23:33:49 +00:00
stephena 3c01d9f72e Getting ready for the 3.1.1 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2025 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-24 18:03:57 +00:00
stephena a8ef629270 Changed version number to a test release of 3.1.1, which is going
to be released early next week.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2024 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-23 22:36:24 +00:00
stephena dd832f2ef4 Only return a label for IO registers if one has been defined.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2023 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-23 22:05:57 +00:00
stephena 66690033c4 Fixed segfault when accessing RIOT IO registers, any of its mirrors,
and associated labels in the debugger prompt.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2022 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-23 19:25:11 +00:00
stephena f67c3b7690 Updated properties for several Dragster ROMs.
Bumped version number for next release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2021 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-23 12:09:14 +00:00
stephena 2011042d8f And yet more things I forgot in the last commit.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2018 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-21 16:10:39 +00:00
stephena f80cc2a00b And it never fails; there's always something left to commit
after I say it's the last commit :)  Maybe for the next
release I'll create some scripts to handle this ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2017 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-21 15:57:45 +00:00
stephena 31d3233dc0 Fixed timing bug reported on AtariAge, also noticed on several versions
of OSX.  It was partially caused by 'negative time', or successive
calls to SDL_GetTicks() returning smaller values than previous calls.
This obviously totally confused the timing logic, which was never
designed for time to go backwards.  Related to this, setting the
framerate to 0 from the VideoDialog UI (indicating that auto-frame
should be used) ended up setting the time-per-frame to approx. 71
minutes, resulting in a delay of 71 minutes to the next frame
(which is what caused the 'lockup').

Changed all references to the Intel OSX build to also mention OSX
Snow Leopard (10.6), since the build won't run on 10.4 or 10.5.

Bumped version number to 3.1 (again).  Hopefully this is good to go.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2016 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-21 15:45:44 +00:00
stephena 10022676e9 Updated DPC+ code to latest version from Spiceware. Hopefully we can get
final support for this completed before the 3.1 release next week.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2015 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-18 15:01:38 +00:00
stephena 6dc6d959b5 Of course, we're still not ready for the 3.1 release, so I have
to bump it again.

Rant mode : each release of Stella seems to get harder and harder.
I have to fight to force myself to get ready for release time,
and when it comes, there always seems to be something popping
up at the last minute.  This time, it's crashes on various
iMacs that I just got access to (while everything is working
perfectly on my Macbook Pro).  I sometimes think it's time
to throw in the towel, and move on to other things ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2014 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-15 15:18:03 +00:00
stephena 506f5357b1 OK, hopefully this is the final commit for 3.1 (yeah right!).
Updated all remaining issues with the documentation and
changelog, and bumped the version # to 3.1.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2013 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-14 23:49:02 +00:00
stephena 32aa9d3186 Fixed a *REALLY* annoying bug in Windows with the latest code. It seems that System::PAGE_xxx enumerations were already defined elsewhere in a Windows header file. This was very irritating to track down. As a result, they're now named System::PA_xxx (for 'PageAccess').
The file selector in Windows now ignores all items starting with '.', not just the directories '.' and '..'.  This is most apparent when using the Windows port and browing Linux shares, which shows many dot files.

git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2012 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-14 22:35:46 +00:00
stephena f94ebed340 Some improvements to continuous snapshot mode:
1) the interval between snapshots can be configured within the
'File Settings' dialog

2) the commandline option is now named 'ssinterval' instead of 'ssdelay'

3) the action is tied to the 'Alt/Cmd-s' key instead of a function key

There's just one more small issue to take care of in the Windows port,
and the next release should be ready.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2011 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-14 20:27:59 +00:00
stephena 7806f1205a The OSX Xcode project files now properly build all versions
that they're supposed to, and 'Development' mode now turns
off optimizations and enables 'Dwarf' debugging symbols.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2010 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-14 17:28:02 +00:00
stephena d0391c28f2 Added 'continuous snapshot mode', currently tied to the Shift-F12
key.  This enables automatically taking snapshots every X seconds
while in emulation mode.  The interval (in seconds) can be set
with the 'ssdelay' commandline argument.

Some minor cleanups to the EventHandler methods, making them
const when possible.

Added latest DPC+ changes from Spiceware.

Fixed issue with ROMs that run entirely from ZP RAM; no disassembly
was being generated when entering the debugger.  For now, this
special case is detected, and the disassembly is generated for
the code that ran before the PC entered ZP RAM space.  Eventually,
this will go away when the Distella fully supports disassembling
below 0x1000.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2009 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-14 15:41:42 +00:00
stephena e37fa7f520 Yet more fixes to the OSX menus; it seems the actions tied to the
Control key weren't being passed to the core code.

Yet more tweaks to the documentation.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2008 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-13 16:24:44 +00:00
stephena b022ffe74e Some updates to the documentation, particularly for the OSX stuff;
the name 'MacOSX' is now used more consistently.

Updated OSX build script and associated DMG template to create
release files in the form of 'Stella-VERSION-macosx.dmg'.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2007 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-13 12:32:08 +00:00
stephena b65adcd49b Removed some debugging code, and tweaked the docs a little.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2006 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-12 22:44:30 +00:00
stephena 132b947ee2 Debugger pseudo-registers are now available in prompt tab completion.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2005 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-12 22:26:41 +00:00
stephena af8c5a5133 Added 'PageType' infrastructure to PageAccess, which basically
informs the rest of the system about how a page of address
space is to be treated (READ, WRITE, READWRITE).  This makes it
much easier to track if a read from the write port has occurred.
As such, the _rwport command should now be somewhat faster.
Eventually, the debugger/disassembler will use this info to
colorize the output.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2004 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-12 19:56:14 +00:00
stephena a2ca2730c1 Cleaned up some more FIXME and TODO:
1) Removed all references to FBO in OpenGL.  I won't be taking this
path, and will wait until SDL 2.0 integrates it directly.  In fact,
most of the OpenGL TV filters will disappear in the next release, to
be replaced with Blargg NTSC filtering.

2) Defined the remaining color constants in OSystem.

Re-added showing the results of parsing debugger script commands
in the prompt.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2003 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-11 13:44:22 +00:00
stephena b3a16fc0a5 Fixed another Distella bug wrt RELATIVE addressing. This fixes an
issue I noticed River Raid, where labels were being generated above
0x10000 (the maximum should be 0xFFFF).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2002 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-10 21:57:49 +00:00
stephena 2193c94b12 Updated boilerplate on top of each source file to include
'Stephen Anthony' (aka, me) in addition to Brad Mott as copyright
holders for Stella.  I think I've been with the project long
enough now (almost 10 years) to justify being specifically mentioned
above and beyond 'the Stella Team'.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2001 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-10 21:37:23 +00:00
stephena 452b22d9f8 Updated various files, changing version from 3.0 to 3.1.
Bumped state file header for 3.1 release, indicating that all older
state files will no longer work.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2000 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-10 20:29:51 +00:00
stephena ea6ea9a7bd Renamed 'autocode' commandline argument and associated UI item
to 'resolvedata', since that more accurately describes what it does.
Also, it now accepts arguments as strings (never, always, auto)
instead of 0, 1, 2.

Updated main documentation for changes in OSX port 'basedir'.

Updated debugger documentation for recent command additions, and
provided new snapshots where the UI has changed.

It seems to be getting close to a new release - perhaps this
coming Friday.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1999 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-10 20:00:16 +00:00
stephena b781611925 Some updates to the PromptWidget and DebuggerParser.
The descriptions for the debugger commands are more streamlined
and better explained, and are neater when output.

Added 'cls' debugger command, which actually isn't for the debugger
at all, but for the prompt.  This erases all showing text and history.

Removed 'bank' debugger command, since it was already removed from
the RomWidget UI.

Removed 'listwatches' debugger command, since it wasn't implemented
anyway.  Besides, any watches are printed on every command access,
so it was pointless to have another function to do it.

Removed 'poke' debugger command; 'ram' and 'rom' do the same thing.

Fixed bugs in 'function' debugger command; it now correctly adds
functions without crashing.  Related to this, added 'listfunctions'
and 'delfunction' debugger commands for user-defined commands.

Fixed bug in completions for functions; it was including user-defined
functions twice.

Some general code cleanups in DebuggerParser (use ostringstream
instead of constantly creating new strings) and Expression
classes (make some methods const, for safety).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1998 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-10 00:52:47 +00:00
stephena 10c82a9457 Removed 'md5instate' commandline argument (it was previously added
post-3.0), and reworked how state files are accessed.  The cart type
now determines if a state file is valid, meaning developers can use
one state file across multiple builds of their program.

Added 'runtopc' debugger command, and associated UI item in the
RomWidget area.  This steps the code until the PC matches the given
value.

Added '16in1' bankswitch scheme, which is useful for ROMs named
'128-in-1' in RomHunter database.  Also, all multicart schemes now
show the current ROM onscreen while switching between them.

Fixed bug in Serializer class when accessing files in read-only mode.
Such files would be created and set to zero size, even if only
reading was requested.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1997 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-09 20:13:12 +00:00
stephena af14afd274 Praise be to $DEITY, I figured out a way to sort the files in Xcode.
This means I no longer have to scan every single file when looking
for a certain one.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1996 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-09 13:10:30 +00:00
stephena f22fbb3ca9 Some more removal/reassignment of FIXME and TODO.
Changed 'basedir' location of OSX port to
'~/Library/Application Support/Stella', which is more in line
with Apple guidelines (not to mention it's not a hidden
directory, so it can be seen in Finder).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1995 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-09 11:54:25 +00:00
stephena aab9ff0d54 Oops, I forgot that Visual C++ doesn't support static allocation of a dynamic array. This must be a gcc-only thing.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1994 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-08 21:30:35 +00:00
stephena 5294859e6d Removed some redundant 'FIXME' and 'TODO' items.
Removed final traces of SpeakJet emulation (the SpeakJet class).
It doesn't look this is ever going to be resurrected.

Tab completion results in the debugger prompt widget are now sorted.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1993 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-08 21:22:15 +00:00
stephena 964415508d Tab completion in the PromptWidget is now working again. As well,
the completion now includes functions (built-in and user-defined).

Cleaned up some more of the debugger documentation, mostly
related to tab completion.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1992 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-08 18:21:00 +00:00
stephena 72b2ddd89b First pass at updating the documentation for the impending 3.1
release.  This won't have everything I'd have liked to include,
but the release time has dragged on enough (the last release
was in Sept 2009!).

Some general code cleanups for the OSX port, as well as fixes
to the menus.  The menus contained items that in some cases
weren't actually tied to any event, or showed the wrong
shortcut key.  Also removed some of the more esoteric menu
items, sticking with only the most basic ones (fullscreen vs.
window mode, volume control, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1991 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-08 13:11:36 +00:00
stephena 56b6e74f04 Finally updated the Changelog, which should have been done way before
this.  That's the main problem with long delays between releases; I
forget exactly what's changed.

Fixed bug in Distella in handling relative addressing.  Wraparound
was potentially occuring on a 32-bit integer, which caused a crash
when accessing a 4K array.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1990 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-06 21:47:46 +00:00
stephena e536a9ee00 Some minor cleanups to the Distella class.
The debugger 'disasm' command now works again for addresses below
0x1000, and it also now correctly accepts the number of lines to
output in the disassembly.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1989 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-06 15:15:44 +00:00
stephena a94c579fec Fixed bug in debugger 'runto' command; it now looks at the generated
disassembly instead of re-disassembling again.  Still TODO is make the
search case in-sensitive.

Added latest DPC+ code from Spiceware.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1988 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-04 13:15:35 +00:00
stephena 1103f1dfbb Some cleanups to various classes, removing some debug print statements.
Partial cleanup of the debugger 'help' command, making the output line
up a little nicer.  More work is required in this area.

Fixed bug in EditableWidget; setEditString now implies that editing will
be started (if it's been enabled).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1987 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-03 17:11:23 +00:00
stephena 7bd307ebc8 First pass at getting function parsing working again in the debugger.
Added latest DPC+ code from Spiceware.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1986 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-03 12:45:20 +00:00
stephena 0d367461a4 Cleaned up the Cartridge API. Certain methods are now explicitly marked
as 'const', and return types are closer to the actual type of data
returned.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1985 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-02 22:09:31 +00:00
stephena 22994b4acf Fixed bug in load/save of DPC+ state; a 32-bit integer was being written as a
byte, but read as an integer.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1984 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-02 19:32:06 +00:00
stephena 8c3ea00bb2 '3E' bankswitch scheme now always reports 256+32 banks, even if there
really aren't that many ROM banks.  This is done so that the RAM banks
always start at number 256.

Added latest DPC+ updates from Spiceware.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1983 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-02 18:56:50 +00:00
stephena fe0e1c757e AR bankswitch scheme now works correctly after entering and then exiting
the debugger.  Still TODO is add debugger patch support.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1982 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-04-01 11:09:18 +00:00
stephena 779f3bfddb Some minor optimizations for AR bankswitch scheme. I'm not entirely sure
how this scheme works, so I have to research further before adding
patch support.  But before that even happens, I need to fix out why
entering the debugger in locking the ROM and eventually crashing Stella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1981 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-30 21:01:33 +00:00
stephena 108a807017 Added debugger patch support for bankswitch schemes CV, DPC, DPC+
and E7.  DPC and DPC+ currently do not modify the DPC address space
on a patch; more research is required to figure out how to handle this.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1980 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-30 20:36:13 +00:00
stephena 4c75e52a96 Fixed segfault that could occur on startup when a ROM triggered a read
from the write port.  Basically, the cartdebug class depended on the
console existing, but it wasn't being created until after it was required.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1979 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-29 02:21:32 +00:00
stephena 088e3e954f Added Cart::patch support for all Superchip schemes as well as
4A50 and FA.

Fixed bankcount for 3E carts to also consider the RAM slices.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1978 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-28 16:01:31 +00:00
stephena 6bea26cd95 Moved the setDirtyPage call for read from write port from the Cart
class to the CartDebug class, since it's really a debugger feature.

Fixed comments on some of the methods in CartDebug.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1977 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-28 04:26:41 +00:00
stephena 6fee79ddff Modified most of the cart classes to properly set the 'page dirty' flag
when their address space has been modified by poke.  Any writes done
inadvertently by reading from the write port are also flagged.  This flag
is used by CartDebug to determine if cart address space has changed.
For now, it uses this information to do a complete re-disassembly.
Entire bank changes are signaled by setting myBankChanged to true,
which overrides the page dirty flag and short-circuits testing for it.

Still TODO is add support for 'AR' bankswitching, and fix the patch
method for several schemes.

Added latest DPC+ updates from Spiceware and Batari.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1976 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-28 03:13:10 +00:00
stephena 80dbfd6dfa Some small changes to the 0840 and 2K classes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1975 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-26 01:39:27 +00:00
stephena 8fe2d5f6c1 The System 'dirty page' code is now connected to CartDebug. It now tests
whether the range 0x1000 - 0x1FFF (aka cart space) has been modified, and
if so, it forces a re-disassembly.  Still TODO is modify all the cart
classes that manually handle poke operations to set the page as dirty
when a write actually succeeds.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1974 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-26 01:33:40 +00:00
stephena 2b384e2353 First pass at adding a 'dirty page' infrastructure to the System class.
The idea is that all direct-access pokes will set a flag indicating that
the page containing the poked address is set to be dirty.  Devices that
handle their own pokes will have to be updated to set this dirty flag too.
Overall, the point is to enable the debugger to know whether cart space
has been modified, and use that knowledge to selectively do a
re-disassembly.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1973 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-26 00:59:56 +00:00
stephena 4ca87ba76b Re-disassemble and reset the start vector in the debugger if the disassembly
doesn't result in the PC being present.  This fixes some bugs in the more
esoteric bankswitch schemes, and also enables rewind to show the correct
disassembled results.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1972 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-26 00:03:35 +00:00