Commit Graph

2710 Commits

Author SHA1 Message Date
stephena 95fe213f3a Consolidated the code for converting integers to strings in various
bases into a Common::Base class.  Previously, this functionality was
spread across several classes, and used different approaches to formatting.
While the code still mixes C++ streams and C-style sprintf's, at least
it will now be easier to modify it all in one place.

Related to the above, added ability to use upper or lower case
characters for HEX output in the debugger.  This is toggled by the
new debugger prompt command 'uhex', which is also tied to a new
commandline argument, 'dbg.uhex'.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2770 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-07-27 22:28:41 +00:00
stephena 33bcec92be Startup notification protocol patch for the UNIX desktop file,
from Dan Fandrich.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2769 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-07-21 13:47:33 +00:00
stephena a1ac026cbc Added 'cpurandom' commandline argument and associated UI item, to randomize
the CPU registers (A/X/Y/PS) on ROM load.

Added 'INTIM Clks' to the debugger I/O tab, showing the number of clocks
before the current INTIM value decreases by 1.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2768 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-07-21 00:27:52 +00:00
stephena 13c3ca9964 TIA position counters (POSP0, POSM0, etc) in the debugger now show values
in decimal, not hex.

All DataGridWidgets (ie, most of the inputs in the debugger) have more
strict input filtering, allowing to use $,#,\ specifiers for different
bases, as well as restricting input based on the specifier used (ie, if
you've entered a '\', only '0' and '1' are allowed, etc).

Updated libpng to latest version.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2767 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-07-19 13:43:42 +00:00
stephena 04f6a16f97 Fixed error tracking PC changes in disassembly when the PC and bank mirror
didn't match.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2766 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-07-17 23:00:55 +00:00
stephena b6d3098e2c Some work on the TIA class (I don't know how long the current code
will be used, but at least we can improve it a little).

Eliminated the 'alignment' dimension in the various TIATables masks,
reducing the size of the arrays by a factor of 4.  I could never
figure out what alignment meant, until I looked at old TIA code in
the repo.  It seems that originally, there was an optimization
in the code to fill the array on 32-bit boundaries, instead of the
current 8-bit boundary.  As a result, the masks had to be defined
as 32-bits, or 4 groups of 8-bits.  Ah, that's where the 'alignment'
comes from.

Related to this, the colors and pointers in the TIA class are now
8-bit as well.  Essentially, the TIA class has been doing extra
work to align everything to 32-bit and never actually using the
results.  And it's been this way for 4+ years.

Older state files will no longer work, so the version # has been
bumped.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2765 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-07-10 15:40:11 +00:00
stephena 0842c96f7f Updated debugger docs for recent changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2764 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-29 00:38:20 +00:00
stephena 3f4085f8b9 Added ability to change 'tiadriven' and 'ramrandom' to the debugger UI.
Cleaned up the class comments wrt ScummVM; the attributions only needed to
be in the base classes, since all the derived stuff was written later.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2763 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-29 00:02:49 +00:00
stephena 54a9a2d61d Fixed error with maximize button appearing in the app title bar
in Linux/UNIX.  This bug has been present since 3.2; too bad I didn't
find it 24 hours ago, as it could have been included in 3.9.

Bumped version #, and starting all over again ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2762 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-27 16:25:27 +00:00
stephena daf2691ac7 Updated VS project file with Snapshot Dialog class. There's always one final commit after I tag a release :(
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2760 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-26 22:00:48 +00:00
stephena 1f4cf1c0b1 We're close to the 3.9 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2757 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-26 21:34:48 +00:00
stephena 8f8c85250c Preparation for 3.9 release, updated documentation.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2756 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-26 16:03:08 +00:00
stephena f5ed7ccf5c When patching code in the disassembly list, the current base is now used.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2755 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-23 00:22:16 +00:00
stephena 98886f8850 Updated UI help dialog, fixing some out of date info and adding
a TV filtering section.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2754 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-21 13:09:46 +00:00
stephena f3d412fce7 Improved the new Snapshot Settings dialog with more informative text.
Added option to save snapshots using either internal database name
(the default) or actual ROM filename.

Extended FSNode API for parsing filenames and adding/removing extensions,
which was previously being done in different ways throughout the codebase.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2753 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-21 12:15:32 +00:00
stephena 41cb93c437 Updated OSX project files for snapshot-related dialog rearrangement.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2752 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-19 21:29:18 +00:00
stephena 125d7542d5 Refactored snapshot-related UI code into a new 'Snapshot Settings' dialog,
since it was getting too unwieldy for 'Config Paths', and didn't properly
belong there anyway.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2751 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-19 20:28:41 +00:00
stephena f01bd88cfb Updated VS project file for recent class addition.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2750 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-19 18:38:30 +00:00
stephena b796028617 Updated OSX project file for recent class addition.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2749 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-18 01:55:13 +00:00
stephena b4ee60730a Updated OSX Intel project file with recent class addition.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2748 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-18 01:50:14 +00:00
stephena c179a00725 Added specific dialog for changing Distella settings to disassembler.
This will eventually grow to include all relevant options in Distella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2747 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-17 15:57:41 +00:00
stephena 5cdd536a5a Improved error messages when loading ROMs from ZIP files.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2746 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-10 14:19:56 +00:00
stephena 4c6667f64d Some performance improvements. Probably not noticable on current
systems, but seems to improve issues on slower computers.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2745 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-30 16:07:19 +00:00
stephena 3eddecdd01 Oops, now that I've changed EditableWidget::setText, I have to change
the getter to match.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2744 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-29 16:45:18 +00:00
stephena 969d4b5fe2 Some more work on the debugger ROM UI area. Changed previous bank
selection widget to a display of current bank state, taking into
account the more esoteric bank schemes.  Currently, some functionality
is disabled/removed for now; I'll work on this for the next commit.

The format for displaying disassembler GFX/PGFX (binary or hex) is now
obeyed in the disassembly file output as well.

Changed various comments/enums/etc referring to 'preliminary' code to
'tentative' code, matching the actual intended meaning and the current
documentation.

Small API change for EditTextWidget; changed method name to setText, since
that's what I keep typing for some reason.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2743 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-29 16:27:12 +00:00
stephena e76066c051 Updated ROM properties database to include RomHunter v9 info.
Fixed bug after pressing Enter/Return in EditTextWidgets; it was exiting
from edit mode, which locked out certain key handling (these widgets
are always editable, and should not be exited in such a way).

Also, I just noticed the changelog file is exactly 2600 lines long :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2742 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-28 21:46:45 +00:00
stephena 7931699eb7 Some cleanup of ASM output; only print headers for various constants
if they are actually used in the disassembly.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2741 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-21 16:57:12 +00:00
stephena e053ed4e0e Rearranged disassembly file output header to be output after an
initial pass of the disassembler.  This was required in certain cases,
notably when issuing 'savedis' when the code was currently running from
zero-page.

Fixed missed labels for zero-page RAM when running ZP code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2740 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-20 21:53:25 +00:00
stephena e6dd326435 Fixed incorrect handling of ROM names within ZIP files when they're
not present in the ROM database; it seems I pruned a little too much code
in a previous commit.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2739 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-20 17:01:01 +00:00
stephena 1bdc9423bd Fixed for debugger prompt tab completion, and using RAM labels as destination
jump points when running code in ZP mode.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2738 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-20 16:48:31 +00:00
stephena 09d7ec7eb9 *Many* improvements to the debugger disassembly, both in-GUI and in saving
to an external file.

  - RIOT/TIA mirrors are now used whenever possible.  This includes *all*
    possible mirrors in the entire 64K address space.  This was needed to
    make the disassembly byte-exact when recompiling the ROM.

  - Disassembly to a file now includes all required defined constants
    (RIOT/TIA, non-locatable labels, user-defined, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2737 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-19 20:55:25 +00:00
stephena 640927b1c6 The debugger disassembly (both in the ROM view and the prompt) and the
listconfig command are now synchronized, and produce the same output.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2736 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-17 01:05:50 +00:00
stephena a5bdbaf997 Some work on listconfig and friends. First of all, it's now only enabled
for single-bank ROMs, same as disassembly (since the underlying framework
has been modified).  Second, it now actually works :)  I can't see how it
worked before, and since I didn't get any complaints/reports, I really have
to question how much use this code actually gets.

Still TODO is fix errors in CODE vs. PCODE (preliminary code) (in
the Distella code, we should clearly mark the difference).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2735 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-16 22:05:14 +00:00
stephena f533fcad34 Some cleanup of dead code, and changes to the file I/O in the debugger.
For now (and the next release), filenames are hardcoded to sane defaults.
Eventually, the code may be extended to use BrowserDialog to query the names,
but it's taking much too long to get working, and I want to get a new release
done before the end of May.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2734 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-16 19:11:44 +00:00
stephena 89e36662fe Oops, forgot to remove some dead code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2733 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-09 14:24:00 +00:00
stephena f4d0641219 A rather large commit, but basically all that's happened is
converting StringMap to VariantList.  In the process, some of the
code is much cleaner, and the Variant infrastructure allows
work to continue on a more full-featured ContextMenu.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2732 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-09 14:22:34 +00:00
stephena 1326b219f6 Fixed BrowerDialog to not default to the HOME directory when a requested
file isn't found; it should go to the parent of the requested file instead.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2731 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-09 12:34:46 +00:00
stephena 726c9b92bc Some minor code cleanups, using references instead of (evil) pointers.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2730 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-09 10:08:30 +00:00
stephena 431101db10 Updated OSX project file for Variant class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2729 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-09 00:04:35 +00:00
stephena af4d290217 Updated OSX (Intel) project file for Variant class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2728 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-08 23:59:19 +00:00
stephena 1634336dae Updated VS project file for Variant class, and fixed a small warning.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2727 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-08 23:48:24 +00:00
stephena 7de6bbd99b Added 'Variant' class, which is basically a variable type. Reimplemented
the Settings class to use Variant.  Still TODO is modify various UI elements
that currently accept StringMap to use Variant instead.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2726 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-08 23:34:42 +00:00
stephena 0929adc20d Some dead code cleanup, detected by clang++.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2725 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-07 18:53:21 +00:00
stephena 8663dc96a3 Fixed one file ROM file error message.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2724 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-07 14:55:00 +00:00
stephena 9d421d93f7 Added better error messages for reading missing/zero-byte/invalid ROM
files, and update ZLIB to latest version (1.2.8).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2723 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-07 14:44:50 +00:00
stephena b52de1442c Updated VS project file for FileListWidget class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2722 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-06 21:40:19 +00:00
stephena 31b1d849fe And now a warning generated by g++ that clang++ missed.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2721 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-06 15:47:40 +00:00
stephena 2bc7b72b7f Fixed some minor warning picked up by clang++.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2720 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-06 15:45:43 +00:00
stephena 76294492b4 Some cleanup of the BrowserDialog class, abstracting the file-specific
stuff into a new FileListWidget class (which will eventually be extended
to LauncherDialog as well).

The BrowserDialog now accepts different modes (file load and save, and
directories), and will be used in all places in the code where the
user currently has to type in filenames, etc.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2719 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-06 15:32:03 +00:00
stephena f0ab412b33 Updated included PNG library to version 1.6.2.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2718 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-04 16:20:18 +00:00