Commit Graph

487 Commits

Author SHA1 Message Date
stephena 691c9b2e1d Added support for the Sega Genesis gamepad controller. This
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
2010-02-23 14:49:12 +00:00
stephena 965787050a First pass at fixing ContextMenu when list of items is larger
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
2010-02-15 19:54:15 +00:00
stephena f7d8334768 Some fixes for 'small screen' functionality. The lower bound of 320x240
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
2010-02-13 18:34:24 +00:00
stephena 7ecd5ceac2 Disable the pattern-matching textbox in the ROM launcher when the window
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
2010-02-09 22:49:23 +00:00
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 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 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 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 6144e4fd57 Improved ROM launcher so that going to a parent folder automatically
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
2009-09-09 15:59:22 +00:00
stephena 35ad585c48 Modified -fullscreen commandline argument to accept an integer instead
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
2009-08-07 11:45:14 +00:00
stephena 82268325a0 Added '-joyallow4' commandline argument and associate UI item in
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
2009-08-05 20:33:40 +00:00
stephena 3c5cc40e08 OK, this looks like a huge update, but it's only because of some Serializer
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
2009-08-05 16:05:34 +00:00
stephena 26749a4c36 Updates bankswitch schemes 'FASC' and 'MB' to their more common names
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
2009-07-27 17:17:07 +00:00
stephena 64bec23f72 Added '2in1' bankswitch type, and updated properties for a ROM that uses
this BS scheme.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1841 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-07-17 11:25:14 +00:00
stephena 7be6be8263 Added 'Go to previous directory' event to the UI. Currently, this is
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
2009-07-12 22:09:21 +00:00
stephena b6c51181d0 Final updates for 2.8.4 release.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1826 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-07-03 16:38:11 +00:00
stephena 8a8d04031a Converted OSystem::getTicks() to use 64-bit integers. This should fix the
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
2009-07-01 14:39:01 +00:00
stephena a5d200e6ef Re-enabled entering '\' in various text fields in the UI, now that
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
2009-06-20 22:49:45 +00:00
stephena 02cbcbd1ea Separated initialization of GL functions for basic functionality
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
2009-06-20 17:46:12 +00:00
stephena 43c0556f37 Updated documentation for recent Win32 APPDATA changes.
Bumped version info for impending release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1779 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-06-18 17:38:42 +00:00
stephena 4d9eeae717 Reworked Windows config file locations to be in the users home directory, under Application Data (or equivalent). Also, the '~' character now more properly refers to the actual home directory of the user, and not their 'My Documents' folder (ie, it refers to their PROFILE name). Config files are now by default stored in APPDATA, which for XP and Vista is ~/Application Data/. The ability to override this with basedir.txt is still available, but not recommended. This is the *LAST* time the Windows config file locations will be changed, so everyone will have to get used to it.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1778 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-06-18 17:08:09 +00:00
stephena bf85802526 Disallow backslash and double-quote in all editable input fields. There's
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
2009-06-18 13:54:34 +00:00
stephena 3aed9378a8 Updated filename handling so that paths saved to the config files and
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
2009-06-18 13:07:51 +00:00
stephena f271830ed4 Changed 'exitlauncher' commandline argument to 'uselauncher' (which makes
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
2009-06-17 17:04:55 +00:00
stephena 9b7963d3f3 Added support for 4IN1, 8IN1 and 32IN1 bankswitch formats. These all act
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
2009-06-16 17:17:33 +00:00
stephena 3ef83843b5 Added autodetection for X07 bankswitching scheme.
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
2009-06-12 21:47:03 +00:00
stephena 111ae9185f Well, it looks like I can squeeze this into 2.8 after all.
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
2009-06-09 14:27:21 +00:00
stephena 08bc2386f4 Updated PropSet to use C++ map instead of homemade BST code. I originally
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
2009-06-08 16:50:14 +00:00
stephena 2bc2ff639c Handle 'read from write port' functionality for CV carts. Still TODO are
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
2009-06-05 14:05:23 +00:00
stephena aa2e76c4ea Updated documentation about CRT simulation effects.
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
2009-06-04 13:52:10 +00:00
stephena 3280901be9 Added support for accessing/modifying extended RAM (aka SuperChip) from
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
2009-06-02 17:25:14 +00:00
stephena 402b13afd7 OpenGL TV filters require OpenGL 2.0+ and cannot currently be used when
'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
2009-05-29 10:20:31 +00:00
stephena eb0a24da98 Updates Changes text, and added message to VideoDialog indicating
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
2009-05-26 20:32:22 +00:00
stephena 79e4e42ae7 OK, this is a BIG commit.
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
2009-05-25 17:51:52 +00:00
stephena 6a74dfb863 Repo reorganization: move main Stella files directly into 'trunk'.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1732 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2009-05-21 12:53:06 +00:00