Commit Graph

2053 Commits

Author SHA1 Message Date
stephena eb5f8efc78 Added ability to completely disable the mouse from being used as a
controller.  Added '-usemouse' commandline argument and associated
UI item in InputDialog to accommodate this.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1935 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-08 20:02:47 +00:00
stephena 8ca34a4d90 Checking in WIP for DiStella integration. The disassembly is now shown in
the RomListWidget instead of being printed to the terminal.  There are still
graphical glitches with this, but for a first pass, it's nice to see actual
Distella output in Stella.

Partially working 'disasm' command from the PromptWidget.  Currently, it
only disassembles cart address space (aka, 0x1000 or above).

Removed the old disassembly code from CartDebug.  Still TODO is fix the
label stuff, both in getting DiStella to use it, and adding/removing
labels.  This is greatly reduced now that we only have to worry about
user labels.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1934 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-07 21:23:26 +00:00
stephena 03191759ab More DiStella cleanups; the disassembly now properly uses peek() and dpeek()
methods from Debugger directly.  As well, the start address is now passed
into DiStella::disassemble() directly; decision to start from the reset
vector is done outside DiStella.  This is in preparation for starting
the disassembly from any valid address.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1933 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-02 22:21:03 +00:00
stephena deedb04709 DiStella::disassemble is now called from RomWidget! Of course, the output
isn't actually sent to the UI yet (it's still printed to the console), but
at least the two parts of the code are now talking to each other.  Note
that the disassembly window in the debugger will be empty until I get this
changeover complete.  And with that, I'm not feeling well, so I'm taking
the rest of the night off.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1932 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-01 22:24:38 +00:00
stephena 91f1406ed4 Checking in WIP of converting DiStella to use the System class
from within Stella (vs. reading ROM data from a file).
Compilation is currently broken.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1931 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-02-01 20:00:50 +00:00
stephena 0793c85b44 Some updates to the documentation for recent code changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1930 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-31 21:21:36 +00:00
stephena 898d16b863 Further improvements to the DiStella class. The output is now properly
parsed into a DisassemblyList structure.  For now, this is just being
printed out again.  The next change will be to pass this to RomWidget
and have it displayed in the UI.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1929 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-31 19:41:57 +00:00
stephena 231958dbdf Checking in current progress of DiStella class. The code now directs all
output to a specified function instead of the console.  The formatting is
also in a very fixed format.  That makes the next part easier; parsing
the output into a DisassemblyList structure that Stella can deal with
and show in the RomWidget.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1928 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-31 02:07:19 +00:00
stephena 6da9d70ce0 Updated Windows build environment to use built-in zlib support. That means you no longer have to track down and install the zlibwapi files! The only external requirement for Stella is now SDL.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1927 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-30 00:15:58 +00:00
stephena 84f51128e4 First pass at adding built-in zlib support for those systems that
don't normally have it (notably, Windows).  I've only tested in Linux
so far.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1926 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-29 23:37:33 +00:00
stephena af14e9313b Updated OSX project files for recent debugger restructuring.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1925 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-17 17:59:05 +00:00
stephena 471810751d Updated Win32 project file for recent debugger class reorganization.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1924 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-17 17:09:22 +00:00
stephena f5dcf6f8e8 Bumped version # for AtariAge testers.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1923 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-17 16:55:13 +00:00
stephena 28114a8c51 OK, this is the first pass at a huge reorganization of the debugger
classes.  First off, the distella code has been integrated into a
DiStella class.  This code isn't yet tied to the debugger, but it does
at least compile and generate valid output.

The RamDebug class has been replaced by a CartDebug class, which
takes responsibility for the previous RamDebug stuff as well as 
things related to Cart address space (read from write ports,
disassembly, etc).

Fixed E7 bankswitching when reading from the write port in the upper
256byte area.

Fixed 'read from write port functionality' in general for all carts
that supported it previously.  Basically, if _rwport is enabled, the
address is checked to be an actual read (vs. one that's part of a
normal write cycle), *and* it's actually an illegal access (each
cart/bankswitch type now provides a hint to indicate this condition).

Still TODO is clean up the rework, properly integrate DiStella, and
fix labels and defines (which seem to be completely broken).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1922 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-17 16:48:45 +00:00
stephena e234139a3c Updated Stella headers in all files:
The license file is actually named 'License.txt', not 'license'
  The 'Stella Team' has a capital T, not lowercase.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1921 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-10 03:23:32 +00:00
stephena d372671277 Updated copyright dates to 2010.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1920 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-10 02:58:28 +00:00
stephena be2d42202e Fixed 'read from write port' bug in E7 bankswitching; while the read
from write port was correctly detected for the 1K area, it was actually
zeroing ROM instead of RAM!

Added support for 'read from write port' logic for the upper 256 byte
page in E7 bankswitching.

Bumped version # for release to testers on AtariAge.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1919 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-01-09 20:50:38 +00:00
stephena 6885416d02 Changed OSX preferences plist filename to net.sourceforce.Stella.plist,
in accordance with the naming scheme defined by Apple.  This means
upgrading to the next version of Stella will lose all settings for
OSX users (unless they manually rename their current plist file).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1918 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-12-26 17:23:33 +00:00
stephena d771fc7af6 Updates to the Windows build process, to check for required utilities and generate TXT files in a format that Notepad can understand (can you believe it's almost 2010 and Notepad *still* can't deal with newlines?).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1917 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-12-25 17:39:52 +00:00
stephena ecb4689584 Some cleanups for the OSX port. Stella for the Mac is now known
simply as 'Stella', just as it is on other platforms (instead
of StellaOSX).  This indicates that the OSX port is now a
first-class citizen, with the same importance as Linux and Windows.
Also cleaned up various text files for spelling mistakes and
formatting issues in OSX.

Added credits for Richard Kennehan, who donated a 2600 console
and various controllers to help with Stella development.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1916 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-12-20 23:03:35 +00:00
stephena 48a48d8619 Added '-md5instate' commandline argument, which determines how a state load
is related to the currently running ROM.  If enabled (the default and current
behaviour), state files that do not match the currently loaded ROM will not
be loaded.  Otherwise, the state file will attempt to load.  Note that in the
latter case, this will probably cause 'bad things' to happen.  It's mostly
for developers who are constantly recompiling a ROM, and wish to use a
previously created state file even when the ROM MD5 changes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1915 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-12-18 22:56:48 +00:00
stephena 88df583c23 First pass at reorganizing the disassembler code. The entire functionality
will be integrated intp CpuDebug, which will also be merged with distella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1914 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-12-17 21:07:56 +00:00
stephena e8604d426a A few documentation fixes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1913 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-12-14 00:04:15 +00:00
stephena 1c82e5cffa Updated OSX project files for recent M6502 class reorganization.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1912 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-22 20:56:25 +00:00
stephena 9cde1f3e53 Some cleanups to the BSPF class.
OSX plist file should use 10.4 as the minimum for the i386 version, not 10.5.
Otherwise, all Tiger users would be excluded from the next release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1911 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-22 20:36:07 +00:00
stephena af8ef4ff1e Updated Win32 Visual C++ project file for recent codebase cleanup.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1910 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-22 02:38:32 +00:00
stephena fba78252d5 More codebase cleanup.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1909 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-22 02:33:06 +00:00
stephena 8b14e0eef8 On second thought, why do we even need M6502 files in a separate directory?
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1908 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-22 02:32:20 +00:00
stephena 3972f0eca5 Reorganization of the M6502 classes; I didn't see the purpose of having
them in under src/emucore/m6502/src, and bspf under that again at
bspf/src.  It just made searching for classes that much harder.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1907 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-22 02:07:37 +00:00
stephena d8bca7a519 OK, this is the first pass at some love for the OSX port, which doesn't
get nearly enough attention.  This is about to change, since I'm moving
to using it full time at work (still Linux at home though!).

The 'Control' key modifier for OSX is now the actual Control key, just like
on every other platform (instead of Command).  The 'Alt' key modifier for
OSX is now the Command key (instead of Shift-Cmd).  Maybe in the past it
made sense for this, when keyboards weren't the same between platforms, but
that's no longer the case.  And since Stella requires at least OSX 10.4,
everyone using it from this point on probably has newer hardware.
Still TODO is consider a few special keys for OSX (minimize, hide, etc).

Updated documentation for new key combos, as well as the recent build
and debugger improvements.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1906 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-13 17:35:42 +00:00
stephena 3501fdcc3b Fixed compilation for older systems in the OSX port. The minimum supported
version of OSX is 10.4 (Tiger).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1905 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-13 11:44:12 +00:00
stephena 4ac82ca56a Added separate build project for OSX Intel machines running Leopard (10.5)
or newer.  Obviously, this one only runs on x86 machines.  It's compiled
with the very latest compiler (Clang), which is much faster at compiling
as well as runtime.  And it also includes a 64-bit version, which is
only available on Snow Leopard.  The old build environment support 32-bit
in 10.4, 10.5 and 10.6 for PPC and Intel.

Fixed string overflow in reading settings from plist file in OSX.  I need
to figure out how to use C++ code from within Objective-C, since the
cause of the bug was C string code (which is notorious for buffer
overruns).

Bumped version # to test2, for some testers on AtariAge.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1904 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-12 17:23:02 +00:00
stephena 77a83388c2 Moved all TODO items to the Stella tracker on AtariAge. Yay, that's
one more text file I don't have to update.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1903 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-11 23:09:17 +00:00
stephena e2f58f8a5f Oops, forgot to account for compiling without debugger support.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1902 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-11 20:55:37 +00:00
stephena 19f146038d Added more accurate functionality for the _rwport debugger command. It now
properly distinguishes between intermediate reads which are part of writes,
and ordinary reads.  In the former case, only a read which has a different
address than a write is flagged as an error; intermediate reads acting on
the same address as the corresponding write are considered normal, and won't
trigger a break.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1901 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-11 20:53:57 +00:00
stephena 00f8ffb686 Revamped the result on floating pins for TIA reads. Previously, this was
controlled by 'tiafloat', which has now been removed.  Now, all
undriven pins take on the last value on the databus.  This fixes a bug
in those reads where bit 6 or bits 6 & 7 are also undriven (previously,
these bits would always be zero, and only bits 0-5 were from lastdatabus.

Added new commandline argument 'tiadriven', which defaults to false.
In this default case, relevant bits take on values from the databus.
If true, relevant bits still take on databus values, but some are
randomly driven high as well.  This helps to expose bugs when
developers assume the values for undriven/floating bits.

Added 'uimessages' commandline argument and associated UI item.  When
disabled, messages which are normally shown in-game are disabled.
Certain messages which indicate a serious error are still shown, however.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1900 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-10 20:12:50 +00:00
stephena f1e88a2d48 Updated OSX port for recent Cart classname changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1899 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-08 20:38:38 +00:00
stephena 82a87e6edb Updated Win32 port for recent Cart classname changes.
Fixed BSPF_ARCH macro to correctly detect i386 and x86_64 in Windows.

git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1898 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-08 20:29:10 +00:00
stephena f3282d299c CPU architecture info is now shown in AboutDialog, next to the build
version and SDL library.

Bumped version # for test builds for AtariAge members.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1897 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-08 18:42:12 +00:00
stephena 54a5d77542 Added '_rwport' debugger directive, which can be used in conditional
breaks to test whether an illegal read to the write port of cartridge
RAM has occurred.  It can be used as follows:

  breakif {_rwport == 100}   // break if read was done at wport address 100
  breakif {_rwport}  // break if read was done at *any* wport address

This currently works for all extended RAM carts that worked before.
Specifically, 4A50, DPC, AR and possibly several others aren't supported
yet.  More testing is required.

Renamed CartFASC and CartMB to CartFA and CartF0, respectively.  This
naming now matches that used in other emulators.

CartMC now properly handles read from write port, by using random
values instead of just zero.  However, no test ROMs are available for
this scheme, so there may still be issues.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1896 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-08 16:46:10 +00:00
stephena 3df721e0be Reworked 'read from write port' emulation for carts with extended RAM.
The values written and returned in such a case are now more accurate,
and are a combination of the previous databus value and randomization
(the latter emulating the randomness of Z-state bits).  This provides
more accurate emulation than before, where zeros were used instead.
In particular, types 3E and E7 are now working correctly for the first
time.  Thanks to Batari for suggestions in this area.

Moved random number generation from Cartridge to System class.

The Subversion build number is now shown in the AboutDialog box.
Still TODO is add architecture information (i386, x86_64, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1895 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-08 01:39:05 +00:00
stephena 25f483dc27 Second pass at adding build info.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1894 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-07 17:58:07 +00:00
stephena 3939eb803a Add SVN build info to Version class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1893 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-07 17:36:25 +00:00
stephena 5ce401e6a4 Reorganized random number generation code in each Cart class. There
was duplicate code in many Cart classes and in M6532 class, and since all
these classes are subclasses of Device, it made sense to move the
functionality there instead.

Carts 3E and E7 now return a random value when attempting to read from
the write port.  Still TODO is determine what happens to the value at
that address (is it randomized or zeroed?).  Thanks to Batari for
suggestions and sample code.

Fixed bug in E7 carts when entering the debugger; bankswitch was being
inadvertantly triggered which caused emulation to fail.

Overall, I need to figure out exactly what happens when reading from
the write port for all carts with extended RAM.  There are two things
to consider: what value is written to the address, and what value
is returned.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1892 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-11-05 00:41:44 +00:00
stephena 917f766a6d Made sure OSX template DMG is large enough to store all 3 architectures
that will be in the next release (ppc32, i386, x86_64).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1891 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-10-27 19:16:58 +00:00
stephena 174efe684d Cleanups to some OSX-specific code; the version # no longer appears next to
the name in the OSX menu.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1890 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-10-27 18:05:19 +00:00
stephena aaf30c2f28 First pass at showing runtime info in the About window. This is useful for
determining whether we're running in 32 or 64-bit mode on a particular
system (especially in OSX, where the same app could contain up to 4 actual
builds).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1889 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-10-25 22:34:40 +00:00
stephena 665d78455f More fixes for OSX building in Snow Leopard.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1888 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-10-20 17:42:45 +00:00
stephena 795d2f31f4 First pass at updating the OSX SDL 'glue' code for compilation with
SDL 1.2.14 and Snow Leopard.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1887 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-10-20 15:45:49 +00:00
stephena 7a5b2c3661 Updated some deprecated code for the OSX version to compile under Snow
Leopard (10.6).  From this point on, the lowest supported version is
OSX 10.4.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1886 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-10-13 00:30:45 +00:00