Commit Graph

44 Commits

Author SHA1 Message Date
stephena aa5691af8a OK, it looks like I'm back to Stella development, after a several month
break.  First thing to do is update the year.  Happy new year to anyone
reading these commit logs.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2833 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-01-12 17:23:42 +00:00
stephena 777a6ceb8c Added DPC+ scheme to the debugger ROM tab. This may need to be
extended into yet another tab, since there's still the need to
show the display bank, frequency bank and DPC Harmony RAM.  Or
maybe there isn't a need to see this extra stuff??

Some more cleanups of the graphics/UI API.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2703 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-04-21 20:02:55 +00:00
stephena f1530ca86d Added extra registers to the DPC scheme in the debugger ROM tab.
The remainder of this commit is basically some cleanup of the
Widget API, and infrastructure fixes to allow CartDebugWidgets to
have change tracking.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2702 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-04-20 22:23:42 +00:00
stephena c4e5360a18 Updated copyright dates to 2013.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2579 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-01-04 19:49:01 +00:00
stephena 192ad0bf81 Fixed music bug in DPC+ scheme.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2555 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-10-02 14:56:31 +00:00
stephena b231dda2a9 Some more DPC+ updates.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2526 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-06-04 19:20:27 +00:00
stephena 2145c38087 Fixed bugs in DPC+ scheme; reset wasn't actually resetting the
Harmony RAM, and state saving wasn't working at all.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2523 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-06-03 18:05:14 +00:00
stephena feac57253e Now that the Serializer class throws exceptions differently,
we need to modify what is caught.  Ironically enough, this fixes
a bug whereby when certain errors occur, the recovery system
itself would crash, not the issue that actually caused the bug!


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2499 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-25 12:41:19 +00:00
stephena 3375cb9f98 Fix crash in CTY scheme when accessing a zero-byte/non-existent
flash file.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2498 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-25 11:11:01 +00:00
stephena 01c9bc30c3 More work on Chetiry bankswitch scheme. Preliminary version can
now load and play test ROMs, complete with emulation of timing delays
due to slow accesses on real Harmony hardware.  Still TODO is the tunes,
DPC+ stuff, which is stubbed out at this point.

Fixed bug in EFSC bankswitching; state files didn't contain extended RAM
information.

Cleaned up the Serializer API, resulting in slightly faster operation
and smaller state files.  Because of this, the state file format
has changed for this release (old state files will no longer work).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2487 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-20 14:23:48 +00:00
stephena c95d5f804d Updated all files to copyright 2012. Happy New Year to anyone reading
these logs!

Moved TODO and Credits info directly to the webpage, where it will hopefully
be easier to maintain.

Fixed 'crackling' sound when loading a new ROM, introduced with the 3.5
sound restructuring.  It looks like stale data was being loaded by the
sound processing callback.  As well, moved the computation of certain
division variables from the sound callback to the framerate re-calculator
(where it's recomputed 1/5 of the time or less).

Updated AboutDialog with info about Stella DonationWare status, and active
members of Stella development.

Updated OSX in-app HTML documentation about Stella DonationWare status.

Bumped version # to 3.5.1_svn, and the process starts again.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2318 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-31 21:56:36 +00:00
stephena bb63ea3dd1 Reverted TIA changes that affect late NUSIZx changes. More work is needed
in this area.

Added commandline argument 'thumb.trapfatal', which causes fatal errors in
the Thumb ARM emulation to really be treated as fatal (ie, the emulation stops
and throws an exception).  This is enabled by default (as it always should be).
When disabled, fatal errors simply log the error and continue with emulation.
This was added because the current HarmonyCart ARM code isn't always exactly
compatible with the emulation in Stella, and there is a lagtime from when
Harmony implements something to when the same functionality is added to Stella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2279 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-07 22:50:23 +00:00
stephena 1d5ea6a9eb Updated DPC+ code to latest changes from Spiceware for the Frantic ROM.
Specifically, the 3-voice audio routines read from ROM instead of RAM, and
the setting the ARM MAM register no longer causes the ARM emulation to crash.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2278 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-05 22:31:40 +00:00
stephena bc7daa397e Added ability for the debugger to start up in 'fatal error' mode.
This basically shows a messagebox as soon as the debugger starts,
describing the error and offering the choice to continue debugging
or exiting the ROM entirely.

The DPC+ code now catches fatal errors from the Thumb ARM
emulation code and shows it as a fatal error in the debugger.
This means you no longer need to look at the commandline for
this output, and you immediately know that something has
gone wrong.

Added 'exitrom' debugger parser command, which completely exits
from the debugger *and* the ROM, going back to the ROM launcher.

Cleaned up the API a little, rearranging some classes and
adding references instead of pointers.  More work to be done
in this area.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2234 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-26 16:14:46 +00:00
stephena db46773ea1 Fixed compile error WRT printf statements in Thumbulator, and fixed
a potential segfault in CartDPC+.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2233 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-25 19:14:47 +00:00
stephena 5025a21d92 Updated Thumb ARM emulation to log its output instead of printing to the
console (which doesn't exist on every platform).  Also use proper C++
stringstreams instead of C-style arrays (which are evil).  If an exception
is thrown, start the debugger with a fatal error message.  Currently, this
message is simply printed in the debugger info window.  Still TODO is add
a dialog to show the entire input from within the UI, as well as a way
to exit the ROM when a fatal error occurs.

Cleaned up the API a little, adding explicit declarations for when a method
can throw an exception.  Also merged some empty classes directly into their
header files.

Added functionality to the System class for querying whether it has 
been reset while in 'autodetect' mode.  Autodect mode is defined as
when Stella starts and temporarily runs to autoconfigure itself.
Some classes (such as Thumb ARM emulation) need to know this, and
suppress debugging output/throwing exceptions when not running in
normal emulation mode.

I hope to have a new release done by the end of this week, or the end
of the month at the latest.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2232 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-24 16:04:48 +00:00
stephena 4e6d4cb1c6 Cleaned up some inlines that weren't needed.
Updated documentation with info about 2600-daptor, including
usage and its creator.  Also included more in-depth explanation
for the various controller types.

Errors from the Thumb ARM emulation code are now caught as exceptions,
and thrown to the parent class instead of calling exit() and simply
crashing Stella.  For now, the messages are simply printed and
emulation continues.  This will be expanded to show a detailed crash
log in the debugger, and offer the option to exit the ROM.

Removed most of the menus from the OSX port.  They weren't being
maintained anyway, and most of them didn't work.  I've modelled this
on the way other cross-platform OSX programs work (notably, ScummVM).
Basically, there are menus for exit and help, but otherwise you
should use the menuing system in the application itself.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2231 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-10 15:04:19 +00:00
stephena 72185d0848 Cleaned up formatting in Thumb ARM emulation code.
Wrapped THUMB ARM emulation in a define, so that it can be excluded
from builds.  To enable it, the 'THUMB_SUPPORT' directive must be
included in the build process.  This has been added to the OSX
project files, but is still TODO for Linux and Windows.

Removed some obsolete include paths from the OSX project files,
dating back about 5 years or so.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2215 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-04-16 16:53:41 +00:00
stephena 935fd4df3f Added initial implementation of ARM emulation to the DPC+ bankswitching
scheme.  However, it doesn't seem to be working yet ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2204 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-16 21:23:03 +00:00
stephena f2427a6cbc Applied more DPC+ fixes from Batari, and added properties info
for Grandmas Revenge ROM.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2203 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-09 15:21:23 +00:00
stephena fcb12065ce Applied some updates to the DPC+ scheme, provided by Batari.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2202 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-08 16:02:00 +00:00
stephena 3339dc276d Updated copyright info for 2011. Happy New Year to anybody reading
these logs :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2199 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-01 16:04:32 +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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 dc22bc6b04 Some cleanups to the RomListWidget. Long '.byte' lines no longer spill
over onto the opposite side of the screen.  Breakpoints set by clicking
in RomListWidget only apply if they've actually been enabled.  This
fixes a bug whereby a breakpoint could look like it is enabled when
it really isn't.  Related to this, breakpoints cannot be set for
disassembly lines that don't contain a valid address or an empty
bytes area (basically, empty lines and lines containing '.byte' items).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1970 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-22 17:24:08 +00:00
stephena 6ece47c4ca Added 'DPC+' bankswitch scheme, as defined by SpiceWare and Batari from
AtariAge.  Basically, this is an enhanced version of the DPC class used
by Pitfall2.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1967 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-03-18 17:34:53 +00:00