Commit Graph

2053 Commits

Author SHA1 Message Date
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 259e3091f0 Updated changelog for recent additions.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2095 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-11 23:00:53 +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 9089351412 Updated changelog for most recent changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2086 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-08 12:45:19 +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 6fbd57d63b Added note to documentation recommending something other than SDL 1.2.14
when using windowed OpenGL modes in Linux.  I've traced a bug in SDL
1.2.14 that causes mouse clamping problems, and have submitted a fix to
the SDL maintainers.  But since 1.2.14 is supposed to be the last release
being done, I'm not sure how to proceed (maybe SDL will be statically
compiled in for a future release of Stella).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2083 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-02 11:16:42 +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 79235fdc7d Updated documentation for recent UI changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2077 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-29 15:49:39 +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 f4a4a24936 Updated the documentation concerning selecting a ROM directory after
running Stella for the first time.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2073 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-20 16:41:35 +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 d217b49f88 Some more documentation updates and snapshots.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2061 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-07-06 19:47:50 +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 58452a6f37 Add ability to force use of built-in png and zlib library code, even on
systems where these libraries are available.  This is useful for testing,
and also for release builds (where we don't necessarily know if
zlib and libpng are installed).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2051 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-06-15 17:57:54 +00:00