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
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
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
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
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
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
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
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
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
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
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
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
(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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
'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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
or rewind command.
Updated 'FE' bankswitch scheme to the new disassembly infrastructure;
it now properly indicates that it has two banks, and keeps track of
when the bank changes.
Some cleanups to CartXXX classes; most methods didn't need to be
virtual.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1971 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
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
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
disassembler. Hopefully this will lead to a new release very soon.
Added 'autocode' commandline argument and associated UI item (in the
RomWidget debugger area), which controls how Distella will use the
'automatic code determination' option. If set to 0/never, this is
completely disabled. If set to 1/always, it is always enabled.
The default is 2/automatic, whereby it is first turned on, and then
turned off if the disassembly doesn't contain the current PC address.
RomListWidget has now been completely reworked, so that it informs
RomWidget of its intent to change breakpoints and patch ROM. If
either of these fail, the action won't be performed, and more
importantly, it won't appear onscreen as if the action has succeeded.
This fixes an old bug whereby patching could fail, yet the onscreen
ROM data was actually changed. Related to this, the list has been
made as efficient as possible, and its contents are never un-necessarily
copied. Also, lines in the disassembly that cannot be modified no
longer show an edit area.
Due to the way the new disassembly works, you can no longer switch between
banks in the RomWidget (Distella would probably fail to disassemble in
such as case).
EditTextWidget can now indicate its contents have changed when adding
text to it.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1966 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This is very useful for conditional re-disassembly, since many bankswitch
schemes consist of ROM only, and once disassembled, cannot possibly have
a different disassembly at some later point. This is mostly done for such
static schemes (2K, 4K, etc), but more work is required for carts with
extended RAM. Basically, the cart knows best how its been accessed, so
it makes sense to have the hints there.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1965 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
handling to C++ stringstreams instead of C-style character arrays,
which fixed some segfaults (sprintf is evil).
First pass at tying the number of banks to the disassembly. The idea
is that the startup bank (which is now identified by the cart) always
starts at address at 0xfffc, while the other banks are defined by the
PC at the first time we enter the debugger. This is still a WIP,
since there's no actual checking done yet to see if the current PC
is in the current disassembly.
Added 'ctrlcombo' commandline argument, which completely disables
checking for Control-x key combos. This is useful when playing
2-player games where the 'f', 'r' and 'Control' keys are supposed
to be treated separately. Previously, pressing Control and 'r' or
'f' processed some other action (change framerate, reload rom, etc).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1964 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the debugger commandline are now reflected in most parts of the debugger UI.
Still TODO is have DiStella use those labels in the disassembly, and deal
with the formatting issues this will entail.
Still completely broken are built-in functions, getting an equate address
based on label, and tab-completions.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1963 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
correctly. Disabled built-in functions until I get to that area of
code, since I'm tired of seeing an error message every time I test
new changes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1962 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
addresses.
Fixed a bug in processing accumulator-access opcodes in the debugger;
an uninitialized char array was causing a segfault.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1961 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
instruction (read vs. write) for those addresses that have different
meanings based on how they're accessed. For now (and probably forever),
this only affects TIA addresses.
These ideas were ported from the old Stella disassembler. Perhaps they
should be ported to distella as well, since it makes for more accurate
results.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1960 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the BoosterGrip 'booster' button, since they both use the same analog
pin (pin 5).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1958 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
should occur.
Removed some dead code (Surface class that hasn't been used
for quite some time).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1955 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the mouse and the keyboard arrow keys). Still TODO is change the scroll
placeholder text into something that looks a little nicer (perhaps a
graphic arrow or something).
Added output of field header names when using 'listrominfo'. This makes
it very easy to see what each column actually represents.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1954 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the one in the database isn't actually the most authentic, original one.
The output from '-listrominfo' command now includes all ROM property info,
making it useful for generating a list that can be imported into a
spreadsheet or database (or otherwise manipulated by some emulator
frontend).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1953 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
controller uses the directional pad and button 'B' as a normal
joystick, but can also use button 'C' as a second 2600 button
(with the logic reversed).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1950 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
than the enclosing screen. Selecting images with the mouse
is working, but the up and down 'buttons' are currently just
drawn text/placeholders.
Still TODO is get the keyboard actions (cursor up/down, etc)
working.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1949 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
is now enforced in more areas of the code, specifically, in BrowserDialog,
VideoDialog and InputDialog.
Rearranged some options in InputDialog (for spacing), and removed the
'mouse is paddle ...' option. It was never being saved to the config
file anyway, and is still selectable with Ctrl-0,1,2,3 keys.
Added 'maxres' commandline argument, which overrides the built-in
determination of desktop size normally done by SDL. This is not
documented, and is not meant to be used by anyone other than those
testing Stella on 'small' systems. It's basically a way to set the
desktop size without recompiling Stella each time.
Still TODO is look at all other dialogs, making sure they fit in the
minimum size. PopupDialog in particular needs to be fixed.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1942 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
mode in software mode. This error is pretty serious; I'm surprised nobody
reported it before. I'm probably going to do a 3.0.1 release just to
address this.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1938 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
320x240 (the minimum that Stella supports). On 'small' systems using
1x video mode, this means most NTSC games will open in a window of size
of 320x240, even though the native size is normally 320x210 (or so).
In these cases, the image will be centered vertically.
Added FrameBuffer::invalidate(), used to signal that the complete
framebuffer can be trashed and entirely written over. This is only
active in software mode for now, where it fixes 'overdraw' problems
with 320x240 dialogs drawn underneath 320x210 TIA images.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1937 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
size isn't at least 640 pixels wide. This is the start of the UI
cleanup I was supposed to do after release 2.7. I need to check all
UI dialogs to make sure they fit in 320x210 (the minimum resolution
that Stella supports).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1936 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
objects. These actions are tied to the same keys as for toggling the
objects themselves, with the addition of the 'Shift' key. For example,
toggling the P0 object is 'Alt z', and toggling P0 collisions is
'Shift-Alt z'. Note that disabling an object will obviously disable
its collisions as well. Still TODO is work out how these keys map on
OSX; the Shift key is already being used for something else.
Reverted Cosmic Ark 'starfield effect' to match the descriptions
given in the 'Stella 3.0 released' thread on AtariAge. It seems the
system I tested this on has an Svideo mod board that changes the
output from a normal console.
Bumped state file format header, since the TIA internals have changed
again. As well, bumped version # to 3.1_svn.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1884 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
better viewing in OSX default text editor.
Added build script and template DMG to automatically build a
StellaOSXver.dmg file.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1880 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Updated the documentation for build info for Windows. Still TODO is add more detailed info for Linux and OSX.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1876 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
debugger disassembly improvements, so it will have to wait until 3.1.
Updated various files for impending 3.0 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1874 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
selects the item that was previously selected.
Fixed bug in Cheat dialog where editing a cheat didn't remove the old one.
Updated TODO, rearranging improved disassembly as the #1 priority for the
next release; I don't have time to finish it now.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1873 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
all graphical objects in different colors in fixed debug colors mode,
even those that normally share a color register (ie, P0/M0, P1/M1, etc).
Removed TIA::updateFrameScanline, an unwieldy 600+ line function. It
was useful as an optimization measure when Stella was first written,
but at this point I think it's more trouble than it's worth. Removing
the code not only makes the TIA class much smaller and easier to
understand, it also fixes some graphical bugs in fixed debug colors
mode (bugs that probably wouldn't have been found otherwise). Next on
the chopping block are the various 'masks', or at least the alignments
(which cause the arrays to be 4 times larger than they need to be).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1871 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
normal scan. Previously, the blanking was done each frame, but the new
way more accurately emulates what happens on a real system.
Added a few tweaks for the properties database.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1870 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
where it more properly belongs. The greyed values are now from PAL
color-loss, which is also calculated for NTSC (though it's never actually
used in NTSC mode for regular rendering). This also fixes problems with
debugger state files being saved with greyed values, and sometimes having
the frame greyed twice (hence making it impossible to see). It should
also result in a slight speed increase, since some code has been taken
out of the TIA rendering fast path.
Added electron beam indicator the the TIA output in the debugger.
Basically, it's just a small square indicating where drawing will
start for the next instruction.
Fixed TIA output in the debugger so that right-clicking and selecting
'fill to scanline' actually works without first having to manually
enter partial frame mode.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1868 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
in NTSC.
First pass at disassembly of ZP RAM in the debugger UI. For now, the
entire range is disassembled, with no regard for alignment (so the PC
won't necessarily always line up with the disassembly). Also, changes
to RAM don't yet trigger a re-disassembly.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1867 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
The movement was already correct, but one of the missiles has weird
behaviour caused by 'confusing' the TIA. This results in a four
colour-clock wide missile with the third pixel turned off. I don't
know if this is entirely accurate, but I do know that the snow in
Stay Frosty now looks exactly the same in emulation as is does on a
real system, so I'm content to leave it for now.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1866 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
screwed up by my placement of the 'mmr' logic.
Added StayFrosty ROM info to properties database.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1863 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
starfield effect. More research is required in this area.
Large update to exception handling throughout the codebase. It seems
that in many cases, the correct 'catch' block was never being called.
I never see exceptions thrown very much, so that area doesn't get much
testing. But I guess it's good that Stella doesn't generate many
exceptions :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1862 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
many more scanlines than a real TV would allow. This fixes both graphical
corruption and slowdowns in Q-Bert ROM (which contains code to do a tight
loop extending VBLANK time, in effect generating a 'frame' with 1000's of
scanlines).
First pass at a method to determine the first 'relevant' scanline of
a TIA frame. This isn't easy, because there are many conditions
for this to occur. The eventual goal is to eliminate Display.YStart
tweaks in the properties file, and have the TIA code itself figure out
the best value.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1858 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
no$26K emulator. Basically, when this is enabled, the COLUP0, COLUP1,
COLUPF and COLUBK registers are locked to hardcoded values. This can
be used to clearly show which registers are drawing which part of the
TIA display. For now, the colours are locked as they're shared on
a real system (so P0 and M0 are locked to the same colour). Future
versions may separate these shared registers for even more clarity.
This functionality is toggled with the 'Alt-Comma' key combo.
Updated the state handler to reject loading state files older than
this version, since the TIA internals have changed. This will be
done each time the TIA code changes from this point on.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1856 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
are too invasive to fix right now, and I haven't researched what the
correct route should be. Basically, Stella doesn't properly emulate the
behaviour of writes to RESxx and NUSIZx while graphics are currently
being drawn. The tweaks currently present restore functionality to the
2.8.4 release, but are still incorrect in some ROMs (Bumper Bash and Pole
Position).
Reworked 'object disable' mode in the TIA class. It should now be
slightly faster, and correctly disable objects in all cases
(previously, it was possible for some objects to be enabled depending
on the state of other objects, even when they were specifically
disabled).
Changed NUSIZx descriptors in the debugger to more clearly indicate
what's going on.
Cleaned up TIATable enum's, and eliminated duplication enumerations in
different parts of the codebase.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1855 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
of a boolean. It now accepts value '-1' to mean 'completely disable
fullscreen mode switching'. This was added because some systems with
buggy video drivers can't handle fullscreen mode, and accidentally
trying to do so can lock up such a system.
Fixed fullscreen/windowed switching wrt grabbing the mouse. Sometimes
switching from fullscreen to windowed mode had the cursor trapped in
the window, even if grabmouse was disabled.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1852 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
InputDialog/Virtual Devs to allow all 4 directions to be pressed
simultaneously on a virtual joystick. This support was always present
for 'Bumper Bash', but it can now be enabled/disabled for any ROM.
Note that the setting is ignored for 'Bumper Bash', as that ROM
requires it to be always turned on.
Fixed debugger rewind issue from last commit; the rewind list wasn't
being properly reset when entering the debugger or selecting a new ROM.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1850 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
class reworking. Serializer class now handles read/write of state from
files as well as in-memory streams. As a result, Deserializer class has
been removed.
Added state rewinding to the debugger. For now, this is limited to 100
levels of undo, with a new state generated each time a step/trace/frame/
scanline advance is performed. The undo level is 'rolling', in that it
remembers the last 100 levels (so you lose the oldest states when you
start adding more than 100). For now, this is tied to the 'Alt-r' key
in the debugger. Still TODO is add a button for it, and clean up some
TIA output issues when rewinding.
Added support for 6K version of Supercharger ROMs (this fixes issues
with the 6K version of Cubis).
Cleaned up the Serializable infrastructure, making sure that all
classes that need to implement it actually do so now.
Fixed issue with editable widgets in the UI, where pressing Enter
on the keypad wasn't actually being registered.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1849 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
of is the 6K version of 'Cubis'. Thanks to Eckhard Stolberg for advice
on this.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1847 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
near the top of the list. The TIA HMOVE stuff is well underway, the
Blargg NTSC emulation is being done by the Georgia Tech team, and the
debugger improvements (disassemble zero-page RAM, Distella integration,
and rewind in the debugger) will be started soon.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1846 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
emulation when performing 'illegal' HMOVEs (aka, when modifying the HMxx
registers within 24 CPU cycles of HMOVE).
All tweaks for illegal HMOVEs have been removed; and all ROMs that
previously needed those tweaks are now working correctly. Several other
ROMs are fixed as well, including Bumper Bash and Pole Position.
As this is WIP, there is also some breakage:
1) Cosmic Ark 'TIA confusion mode' effects aren't complete; the
movement is correct, but the missile widths aren't corrected yet.
2) Performing a write to NUSIZx while a player is still drawing
isn't complete. This breaks several ROMs that worked before, such
as Galaxian and Space Instigators.
3) Writes to RESPx aren't complete yet, especially if they're
combined with an immediate write to NUSIZx.
Most of the ideas (and some code) for these changes comes from
contributions to MESS and EMU7800. Where applicable, permission
was obtained from the original author to use the code/ideas.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1845 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
documentation by using more appropiate variable names.
Added enum's for collision bits to TIATables and TIA classes,
making it easier to visualize what the code is doing.
Fixed poke delay for NUSIZx registers. This fixes display issues
in 'Bumper Bash' and 'Pole Position'. The remaining graphical bugs
in those ROMs is fixed by the new TIA code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1843 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
of 'FA' and 'F0', respectively, as defined in Kevin Horton sizes.txt
and used in z26. For compatibility, the old names can still be used.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1842 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
very difficult, as I'm working on 3 different branches at the same time :(
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1840 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
detection being done outside the displayable area. Originally, areas
above 'YStart' scanline were not processed as all, as an optimization.
However, several ROMs can do collision detection above ystart, so
we now process the entire frame (but only display the stuff below ystart).
Bumped version number.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1839 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
mapped to Backspace, and is used in the ROM launcher and various
BrowserWidgets. The event can be remapped if desired. When I'm
testing Stella, I tend to use the keyboard almost exclusively, and
it was getting a little tiring to reach for the mouse each time I
wanted to change directories.
Bumped version number.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1836 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
so we need to make sure that Sub2K ROMs less than 64 bytes are
properly 'paged' to that size.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1825 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
and doesn't know what intxx_t datatypes are. So we need yet another
check for Win32-specific stuff in BSPF.
Folded getTicks() from UNIX and OSX back into OSystem directly.
The default is now to use OSystem::getTicks() unless it's
overrided by a platform-specific OSystemXXX class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1824 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
problems with integer overflow, which could sometimes cause Stella to
sleep for long periods of time. For those who are interested, the
problem was that SDL_GetTicks() wraps every 49 days (32-bit int
overflow), but since OSystem::getTicks() provides info in microseconds,
it multiplied the value by 1000. This caused wraparound in 49/1000
days, or 70.56 minutes. This almost exactly matches the reports on
AtariAge of 'lockups' occuring every 71 minutes or so. It also
explains why attaching to Stella with GDB and bypassing the delay
allows the program to continue (as reported by another bugtester).
Added signature to detect UA bankswitching for Gingerbread Man ROM.
Bumped version number.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1823 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Basically, the OpenGL class can use functions from several different
versions of OpenGL (1.3 and 2.0+), and all sections of code need to
be wrapped in IF statements to make sure we don't use a function
pointer that is NULL. Basically, this means that all GLSL/2.0+
stuff needs to be wrapped in 'if(myTvFiltersEnabled) ...'.
This actually lays the groundwork for the next feature I'll be
adding (frame buffer objects), since those require yet another
level of OpenGL functions that may not be available everywhere.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1816 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
they're properly loaded and saved in the config files. The code to
correctly load strings containing backslashes was already there over
7 years ago, and I deactivated it and never even noticed. That must
be a new record for a long-standing bug :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1812 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
vs. GLSL stuff. This should allow users who don't have GLSL to still
use the OpenGL renderer. Related to this, added a stub for GL FBO,
which I hope to add for a future release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1810 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
no need for these characters to ever be present, and having them there
really causes problems in parsing that would be best avoided.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1777 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
shown within the UI use the '~' symbol whenever possible. This means
that paths from the settings file are now truly relative; change your
home directory, and the settings file will still work (it no longer
contains absolute path names).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1776 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
more sense, as it isn't a double-negative any more).
Made PropSet::getMD5() more explicitly return a boolean indicating if the
properties were found, vs. having a CartName of 'Untitled' indicating that
it wasn't found.
The file being used by Stella in multi-file ZIP archive is now shown in
the window title, vs. showing the name of the ZIP file itself. Related
to this, a file with an extension of 'rom' is now valid inside ZIP
archives.
Updated documentation for bankswitch types, more clearly indicating which
ones support autodetection and the debugger.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1775 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
as if they were 32in1 carts, in that you have to do a on-off power cycle to
switch between each ROM.
Updated ROM properties for the aforementioned BS types, and fixed some
others (SWOOPS, etc).
Added PERL tool to scan a snapshot directory and report any extra and/or
missing snapshots.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1774 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Added OpenGL info to the TV effect tab of the VideoDialog, so users
can see why the effects aren't available if OpenGL is not sufficient.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1772 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
start with game 0 (as if it's been unplugged for some time), but reloading
the ROM with Ctrl-r will cycle through each game (emulating a power-cycle).
Fixed crash when specifying a directory on the commandline; only files
are supported as ROMs.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1770 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
not by actually copying pieces of ROM, but by addressing different
parts of the ROM with an appropriate mask. This fixes a patching
bug I just found, whereby patching one part of the ROM wasn't
propagating it to the rest of the image.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1769 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Because the version was always being returned as 0, the TV effects were
always disabled, even on hardware that could support them.
Creation of OpenGL video mode is now more robust. If it fails for any
reason, fallback to software mode is now done (and a message stating
that it happened). This still won't protect against the operating
system lying to Stella and saying OpenGL support is really available
when it isn't, though.
Added support for ROMs smaller than 2K. These are still treated as
2K ROMs, but have their contents mirrored appropriately.
Bumped version number.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1768 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Randomized value placed in accumulator after exiting the SC BIOS for
SuperCharger ROMs. This should fix issues in Dragonstomper, where it
seems the randomization of its items depending on a random accumulator
value.
Re-added '-fastscbios', and when enabled, it completely skips
the emulation of SC BIOS progress bars (previously, the bars were
simply sped up). This defaults to off, for more authentic emulation.
Related to this, added a UI item in VideoDialog to enable/disable it.
Thanks to Eckhard Stolberg for advice on the SCROM, and how to
modify it.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1763 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
wrote this back in 2000 or so, after I had just finished an algorithms
design course, and insisted on coding my own ADT. I've come to realize
that in most cases, rolling your own is just a waste of time :) Related
to this, the 'listrominfo' commandline argument now correctly shows all
the ROM info built in to Stella internal database.
Bumped version # to 2.8. I just need to check out OSX, and then we
should be ready for the next release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1757 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Add Shift-PageUp/PageDn for scrolling with the keyboard in DataGridWidgets
(most useful with the new RAM UI having multiple banks of RAM).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1755 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the ones that bankswitch in RAM, since I don't know what should happen there.
Added 'exitlauncher' commandline argument, which specifies the functionality
of the 'Exit to launcher' action; should exiting a game actually go back to
the launcher, or exit the program entirely. Also added a UI item in UIDialog
for this.
Reworked the fullscreen/windowed handling in FrameBuffer, simplifying the
logic for determining whether the SDL surface is actually in fullscreen
or not.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1752 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the Stella header/disclaimer, just like all the other source files.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1751 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
General updates to the documentation for people I forgot to include in
previous releases. Also added websites where applicable.
Update AboutDialog to be more current, showing only those members
currently active in the Stella project and the other teams that have
contributed code. For more specifics, you should now see the manual.
Basically consolidated all contribution info into one document, so it
has to be kept up-to-date in only one place.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1750 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
wasn't necessary, as ZP RAM can always be changed. In the new scheme,
however, sometimes the RAM view will actually show ROM, and in those
cases it definitely shouldn't be modified.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1749 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
schemes that have multiples areas of RAM. Converted F4SC, F6SC, F8SC,
FASC to this new functionality.
Added ability to modify extended RAM in 3E, CV, E7 and EFSC ROMs.
Note that these ROMs can swap RAM in and out dynamically, so what
you see in the RAM area won't always be RAM.
Updated debugger CpuWidget; decimal and binary values for SP/A/X/Y
are now all shown at the same time (previously the registers had to
share a decimal/binary view).
Updated debugger documentation for recent additions.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1748 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
the debugger RAM UI. A scrollbar is now present, which can scroll
through each 128 byte 'bank'. Labels indicate the current readport,
so you can distinguish between different areas of RAM. For now,
F4SC, F6SC, F8SC, and FASC have been converted, but I'm looking into the
other schemes now.
The RAM UI takes care of all read/write port issues. From the POV of
the UI, the RAM can be treated as zero-page; translation is done
behind the scene. Searching/comparing and change-tracking are also
supported.
The 'ram' command in the debugger prompt now reflects all RAM, and
readport/writeport addresses are shown, making it easier to use the
command withot having to look up the offsets.
Debugger width has been bumped to 1050 pixels wide to accomodate the
new functionality. We'll see how much trouble this causes ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1747 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
correctly for the PAL version of the ROM. I'm still not really
satisfied with the paddle emulation, but I guess it will do for now.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1746 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
'gl_texrect' is enabled. The VideoDialog now reflects this, by stating
a message, and disabling the UI items when not satisfied.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1745 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
requirements for new TV effects (OpenGL 2.0+ and GLSL).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1740 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Added CRT simulation as described by Ian Bogost in the AtariAge thread
'CRT simulation for Stella. This is just the first pass, but things
are working nicely so far (for those systems that can support it). It
requires at least OpenGL 2.0 with GLSL (GL Shading language). Added
the commandline arugments 'tv_tex', 'tv_bleed', 'tv_noise' and 'tv_phos'
used to set these various effects, as well as the ability to set them
within the Video Settings dialog. More documentation is forthcoming
on this.
All bankswitch modes that use SC RAM now act correctly when reading
from the write port (the RAM is erased).
Patching ROMs with bankswitch type 0840, SB, UA and X07 is now working.
Went through all the bankswitch classes and converted multiplication/
division to shift operations whenever possible. It's a
micro-optimization, but what the heck; every little bit of speed counts.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1739 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba