Commit Graph

314 Commits

Author SHA1 Message Date
stephena 5a48bf0311 Fairly large reorganization of the EventHandler class, separating out
SDL-specific code into its own EventHandlerSDL2 class.  This is part
of a larger reorganization of the codebase, to completely remove
SDL-specific code from src/emucore, and make it easier to port to SDL2.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2850 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-02-15 21:37:29 +00:00
stephena 45d0740819 Some reorganization of the FrameBuffer classes, to move all SDL-related stuff
into FrameBufferSDL2 only.  This will make conversion to actual SDL2 code much
easier, since it won't be touching any of the core emulation code in src/emucore.
Next TODO is something similar for EventHandler (which uses SDL heavily and is
too tied to a core class).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2846 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-02-05 22:09:57 +00:00
stephena 37b30e7b66 Some cleanups of the FrameBuffer class; 'uipalette' is no longer suported.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2845 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-01-31 16:23:10 +00:00
stephena 7c4a0a331d Added new bankswitch code from 3.9.3 (RevEng and CPUWIZ) to trunk.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2837 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-01-17 15:39:11 +00:00
stephena aa5691af8a OK, it looks like I'm back to Stella development, after a several month
break.  First thing to do is update the year.  Happy new year to anyone
reading these commit logs.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2833 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-01-12 17:23:42 +00:00
stephena 9137b93c80 Some more code pruning. Basically, all classname references to OpenGL
have been changed to 'SDL2'.  From this point on, the OpenGL-specific
code will be removed, and replaced by SDL2-specific hardware-accelerated
code.

Cleaned up (mostly) the API of FrameBuffer vs FrameBufferSDL2.  Since the
FrameBuffer class is an emucore object, it should have no knowledge of SDL,
or any particular rendering toolkit for that matter (just in case we want
to move to SDL3 eventually :) ).

At this point, all checks for OpenGL have been removed, so if you don't
have it on your system, Stella will fail to compile and/or run.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2832 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-09-28 00:51:10 +00:00
stephena 40f9da7839 The first casualty of code pruning; specific code for window
centering has been removed (SDL2 provides this natively).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2831 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-09-27 20:59:23 +00:00
stephena 01f7c2c2f3 Renamed 'Win32' in various locations as 'Windows', to be more
in line with the other ports.  Besides, the code now also supports
64-bit Windows, so the name was incorrect anyway.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2830 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-09-27 20:41:24 +00:00
stephena a911a5b368 And so it begins. This is only symbolic ATM, but I've now killed
software rendering support.  I've been wanting to do this for years,
and finally the time has come.  So for now, you need OpenGL for Stella
to build and run.

Expect major breakage over the next few months, as I port to SDL2.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2829 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-09-27 19:47:15 +00:00
stephena 963c5d621b Changed 'dbg.boldfont' to dbg.fontstyle', which allows to use a combination
of bold and normal fonts within the debugger UI.  Because of the # of changes
this requires, this is as far as I'll willing to go with UI configurability.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2820 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-26 13:01:29 +00:00
stephena ecacdcf5f2 The 'usemouse' option now allows to use the mouse as a controller
only for analog-type devices (paddle, trackball, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2819 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-24 18:40:02 +00:00
stephena 8aa736b35a Added ability to use bold fonts in the debugger.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2816 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-24 15:51:37 +00:00
stephena ae4e87a51c Added ability to start directly in the debugger to 'Power-on options'.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2809 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-20 20:48:58 +00:00
stephena b0d243fef9 Pressing 'Default' in "Power-on options" now saves the settings.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2807 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-20 20:04:33 +00:00
stephena 216490744c Added preset buttons to debugger UI config to set window size
to use each font.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2805 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-20 17:58:56 +00:00
stephena f02995b485 CPU register 'source' addresses in the debugger now show labels,
when applicable.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2802 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-20 14:00:25 +00:00
stephena bcb4c592d3 Some minor font-related UI fixes in the debugger.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2793 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-12 16:52:49 +00:00
stephena aaba21cc77 Oops, forgot to include disassembly glyph in the 'large' debugger font.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2792 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-12 15:17:19 +00:00
stephena 465cc76769 Some reorganization of the console font initialization, in preparation
for different-sized debugger fonts.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2791 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-12 15:02:38 +00:00
stephena 45115d5754 Minor cleanup of the BSPF API, and fix bool warning from VS 2012.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2789 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-11 15:41:36 +00:00
stephena c840bb9809 Removed some (long) dead debugging code.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2788 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-10 21:21:17 +00:00
stephena 6e5a66a0fb Fixed minor compile error for OSX.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2786 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-10 02:37:41 +00:00
stephena 893bfd4a41 Override properties dialog is now called 'Power-on options', and includes
extended abilities (see changelog and docs for more info).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2783 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-08-09 13:09:47 +00:00
stephena 1e35527f01 Added medium and large console fonts. These aren't exposed to the UI yet.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2779 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-07-31 16:53:39 +00:00
stephena 1619c1a349 Regenerated the UI fonts, included the tool to actually do so (it was
previously on my local system, not in the repo), and fixed some minor
UI layout issues.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2778 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-07-31 15:46:02 +00:00
stephena 189f10f201 InputTextDialog used in debugger RamWidget wasn't closing properly
on exit; it attempted to close the debugger dialog instead!


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2775 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-07-30 21:43:20 +00:00
stephena 4958e87c3e Cleaned up ContextMenu API wrt multiple setSelected methods; in some cases,
it was confusing which one was being called.

Fixed output in debugger bankstate info; in some cases, hex numbers were shown
when decimal was required.

Fixed regression wrt the last TIA change (incorrect framerate counter); the
PAL autodetection was failing in certain cases.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2774 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-07-30 20:31:14 +00:00
stephena 270abc889d Removed BSPF_toString, since its functionality is now provided by Variant.
This is the beginning of a major cleanup of the bspf.hxx file, which
has gotten unwieldy over the years.


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

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

Updated libpng to latest version.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2767 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-07-19 13:43:42 +00:00
stephena 3f4085f8b9 Added ability to change 'tiadriven' and 'ramrandom' to the debugger UI.
Cleaned up the class comments wrt ScummVM; the attributions only needed to
be in the base classes, since all the derived stuff was written later.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2763 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-29 00:02:49 +00:00
stephena 8f8c85250c Preparation for 3.9 release, updated documentation.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2756 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-26 16:03:08 +00:00
stephena 98886f8850 Updated UI help dialog, fixing some out of date info and adding
a TV filtering section.


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

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


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


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2751 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-19 20:28:41 +00:00
stephena c179a00725 Added specific dialog for changing Distella settings to disassembler.
This will eventually grow to include all relevant options in Distella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2747 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-17 15:57:41 +00:00
stephena 5cdd536a5a Improved error messages when loading ROMs from ZIP files.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2746 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-06-10 14:19:56 +00:00
stephena 3eddecdd01 Oops, now that I've changed EditableWidget::setText, I have to change
the getter to match.


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

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

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

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


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

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


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


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


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


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


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


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

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


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2719 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-06 15:32:03 +00:00
stephena 42b0c26e3c Oops, forgot to check this in with the last commit.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2715 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-02 18:03:35 +00:00
stephena b9fece9cde More work on BrowserWidget, and further cleanup of the enum's in
various GUI code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2714 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-02 17:06:36 +00:00
stephena 86b6191570 Fixed crash when entering the debugger in software mode.
Some cleanup of the various enum's in the UI classes.

Fixed issues with ordering when adding dialog boxes; this fixes a
bug when adding a dialog from another dialogs ::loadConfig(), in
which case the first one is placed below the second and can't be
seen (mostly applies to MessageBoxes).

Fixed bug in handling OSystem::setBaseDir(); if the directory didn't
exist, then the newly created one wouldn't have a slash appended at the
end.  This causes all further (sub)directories to be created/named
incorrectly.

Started work on extending BrowerDialog to load files as well as
directories, and to allow editing of the items from within the dialog
itself.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2713 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-05-01 16:56:43 +00:00
stephena 3839b54d22 Cleaned up the API for adding/removing dialogs in the GUI. It's strange
how one thing leads to another.  This started when I noticed that exiting
the debugger with a context menu still onscreen locked that widget, and
it couldn't be selected again ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2708 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-04-24 20:30:16 +00:00
stephena bbba4926d4 Finished CompuMate debugger ROM tab (for now at least; we need a
virtual keyboard added to the UI at some point).

Cleaned up the CheckBoxWidget API, and introduced new checkbox
'contents' that will hopefully more clearly indicate what is going
on (fully drawn square means selected, square with empty circle means
selected by not editable, etc).


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

Some more cleanups of the graphics/UI API.


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


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2702 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-04-20 22:23:42 +00:00
stephena 8487a60faa Fixed configure script wrt Thumb ARM support; the help message
never actually included info on how to enable/disable it.

StringParser is now width-sensitive, in that it can also split
on a maximum string length.  This is useful for making the various
UI items font-size independent, and to flow the text accordingly.

Increased minimum size of debugger window to 1080x720, which allows
things to be laid out a little nicer, and gives some much needed
extra room.  Sorry guys, the most common resolution now in use
is 1366x768, so it's time to move with the times.

Cleaned up some of the descriptions in the ROM debugger tab(s).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2694 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-04-17 15:00:32 +00:00
stephena b97b643d17 Added SB scheme to the debugger ROM tab.
Improved keyboard and mouse navigation for PopupWidget and associated
ContextMenu dialogs.

Tweaked bankswitch autodetection for 29K ROMs; the only possibilities
are ARM (FA2) or DPC+.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2692 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-04-15 16:17:51 +00:00
stephena 263e8e6240 First pass at adding cart-specific info to the ROM tab in the debugger.
For now, only 4K is shown.  Eventually this will be included for all
bankswitch types, whereby the UI will be tailored to the specifics
of each scheme, so that ROM/RAM banks will be able to viewed and
changed more easily.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2680 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-04-04 21:38:22 +00:00
stephena 831edca24e Finalized tab handling for dialogs containing multiple tabs
(for now, only the debugger, but might as well deal with the problem
in a general way once and for all).  The Shift-Left/Right keys now
work as they did before, and switch between tabs in a tabset.
For dialogs with multiple tabs, it now selects among those tabs
where the focused object is.  Clicking on another tabset then changes
the focus, and allows the same keys to switch among *that* tabset.

Now I can finally start the cart-specific bankswitch UI items.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2679 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-03-31 20:54:14 +00:00
stephena ac1bccf454 First pass at adding a cart-specific bankswitch/info tab to the
debugger.  In the process, I had to spend several days extending
the UI/dialog class to actually contain multiple tabs.  This was
harder than expected, and it still isn't quite finished.  In many
ways, we're beginning to reach the limits of the current code; it
was never designed for a full-fledged, graphically rich UI.

For now the tab is empty, but eventually it will contain general
info about the ROM bankswitch type (size, virtual layout, etc),
but also cart-specific info, including the ability to change
banks, which can be vary greatly among the different schemes.
Eventually, it may even allow to see/modify very cart-specific
info (like display RAM in DPC, etc).

Better handle errors in opening the serial port (AtariVox support)
for Windows and OSX.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2678 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-03-31 00:10:05 +00:00
stephena 6279c24b57 Renamed 'eepromdir' option to 'nvramdir', and have it default to
'BASEDIR'/nvram.  Previously it defaulted to BASEDIR, which was getting
filled with many such files.

Unfortunely, all files will have to moved manually, but it's an easy
one-time operation.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2613 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-02-17 00:19:14 +00:00
stephena c11c7724ad Added ability to specify separate directories for saving
and loading snapshot files.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2612 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-02-16 19:56:09 +00:00
stephena c31f53654c Loading from ZIP files now works in all cases, and then some.
That is, it has all the functionality of past versions, as well
as improvements to launching from the commandline (an archive
containing multiple ROMs will now open the virtual directory
in the ROM launcher.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2610 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-02-15 19:04:52 +00:00
stephena 29cc0df572 Loading from ZIP files now works from the ROM launcher. Still TODO
is add support for from the commandline, as well as optimizations
(automatically loading the first ROM when only one exists, or when
the name of the ZIP file itself is used).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2608 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-02-13 23:09:31 +00:00
stephena 17df4efe9e More code upheaval on the quest for better ZIP handling (although
it's still partially broken).

Converted many methods to take FSNode objects instead of raw string
filenames.  This is necessary since file reading will eventually
be abstracted into the FSNode class directly.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2605 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-02-12 21:57:14 +00:00
stephena b6b6835435 OK, second pass at the revised ZIP file handling. It's still broken for
opening ROMs, but at least the ROM launcher now properly descends into
ZIP 'folders'.

Removed obsolete unzip.h|c code, which hasn't been updated since 1998
and fails to compile on some systems.  Replaced it with ZipHandler class,
which is a much nicer interface (and about half the code too).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2603 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-02-12 02:24:17 +00:00
stephena ec77f9d1b5 Add MessageBox class to GUI namespace, since it conflicts with Windows messagebox.
Eventually, this will have to be done for all GUI elements.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2601 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-02-10 22:26:06 +00:00
stephena fb56105a85 Fairly major reorganization of the FilesystemNode and ZIP file handling
code.  This is just a preliminary check-in; ZIP handling is actually
broken ATM.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2600 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-02-10 21:47:47 +00:00
stephena ecdcf6177d More work on the FilesystemNode API.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2597 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-02-03 00:13:08 +00:00
stephena 025100d812 Fairly major restructuring of the FSNode classes, removing some static methods
and making them part of the object itself.  This is in preparation for a
'ZipFilesystemNode' class, whereby ZIP archives and their contents are supported
natively by Stella.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2596 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-02-02 18:34:25 +00:00
stephena b0db10e969 Reorganization of the PNG handling; it didn't make sense to have loading
one class and saving in another.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2588 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-01-28 20:39:50 +00:00
stephena a5cb67551f Final updates to the sound code (resampling seems to be working fine).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2585 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-01-27 15:08:04 +00:00
stephena c4e5360a18 Updated copyright dates to 2013.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2579 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-01-04 19:49:01 +00:00
stephena e6044426ec Updated sound system with ideas from z26 and MESS. To me at least,
the sound is now much more accurate in "Space Rocks", and there aren't
any regressions that I'm aware of.

Removed 'clipvol' setting, since the sound is now 16-bit and clipping
is no longer required.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2578 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2013-01-04 19:13:30 +00:00
stephena 99d79bdd67 Scanline intensity now defaults to 25 instead of 40.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2556 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-10-17 13:49:33 +00:00
stephena 756a47bcf8 Fixes for 'illegal' VSYNC behaviour wrt 'short' frames.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2547 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-07-14 18:56:57 +00:00
stephena 15ea3e6439 Provide better error message on console for Xin1 bankswitch schemes,
and make 'Default' button do the right thing when configuring global
ROM properties.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2530 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-06-07 15:34:43 +00:00
stephena 21f25d1553 Added 64in1 and 128in1 multicart bankswitch schemes, although for
the latter you'll probably require the patience of Job.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2529 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-06-07 14:09:11 +00:00
stephena 4281ac2436 Removed a few redundant FIXME and TODO's.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2488 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-20 18:26:59 +00:00
stephena aa544ecfe9 Fixed bug when loading from ZIP files created in OSX. In some
cases, these archives contain directories named '__MACOSX' which
contain link files that were being erroneously detected as actual
ROMs.

Added FilesystemNode::isFile() method, and updated several places
in the code to use it.  Previously, determining whether something
was a file was simply testing if it wasn't a directory, but this
logic isn't always valid (it's possible to be neither a regular
file *nor* a directory).

Bumped version # for RC release.  It's getting very close ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2477 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-16 20:52:33 +00:00
stephena 732ccaca76 The 'Defaults' button in Video Settings now applies defaults to
the currently selected tab only.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2472 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-13 20:01:47 +00:00
stephena 440da3b4a0 OSystem now controls loading and saving of settings, by calling
Settings::loadConfig() and Settings::saveConfig() when required.
This fixes an issue with OSX in particular, or any port where
those methods are overrided.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2471 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-13 18:06:56 +00:00
stephena 3850cb7879 Blargg now has knobs! The TV effects settings are now accessible from
the Video Settings UI.  Still TODO is add key shortcuts for the various
adjustable TV effects (contrast, brightness, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2468 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-12 22:21:59 +00:00
stephena 12d0a4732e More UI changes for TV effects.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2467 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-10 19:30:53 +00:00
stephena e171eddfd2 OK, now it's time to start adding adjustable knobs for the TV effects.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2466 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-10 15:36:20 +00:00
stephena f59f5ab5e8 Added scanline interpolation option (blended scanlines) with the
'tv_scaninter' option.  Added Alt-8 keypress to toggle this; still
TODO is add a UI item for it.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2462 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-08 19:37:04 +00:00
stephena e3fa8da1f9 OK, Blargg is now officially in the codebase! There's still quite a bit
left to do, but the basic functionality is now there.  Alt 1 - Alt 6
selects among TV modes as follows: off, composite, svideo, rgb, bad and
custom.  The latter is just composite at this point; there's no code to
actually change specific adjustables yet.  Alt 7/Shift-Alt 7 increases/
decreases scanline blend intensity (20% - 100%).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2456 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-05-06 17:45:48 +00:00
stephena 973a8edf30 Added ability to descend into multi-ROM ZIP archives.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2450 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-27 13:34:30 +00:00
stephena 6737091149 Replaced 'uselauncher' with 'exitlauncher', which specifies how the
ROM launcher should be used when exiting from a ROM.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2448 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-20 20:47:53 +00:00
stephena 822a378182 A fairly large overhaul of the mouse-emulates-controller functionality,
fixing bugs too numerous to mention.  The end result is that using
Control-0 to switch between mouse modes is much more understandable.

Updated properties database for Telepathy ROM, which now uses the
MindLink controller.  Also updated Astroblast ROMs to use paddles
by default.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2444 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-19 13:00:02 +00:00
stephena ccf9128cdf A few more places where it makes sense to pre-allocate space for
Arrays.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2443 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-15 21:39:15 +00:00
stephena 809da97ad3 Potential performance improvement for Arrays. A reserve() method is now
available, which helps with constant resizes of arrays with a large number
of push_backs.  For now, only the ROM launcher and debugger disassembly
really needs it.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2442 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-15 21:13:01 +00:00
stephena 186fa5c1be Before I get back to mousemode and Blargg stuff, I decided to
make another pass at getting rid of raw pointers.  As I've come
to realize over the years (and in particular with reading the C++11
standard), raw pointers are evil and error-prone.  So this fixes
some of them at least.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2438 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-04-11 16:10:24 +00:00
stephena db6e1c7c81 Added Mindlink controller emulation. Based on research, it seems that
only Bionic Breakthrough ever used this scheme, not Mind Maze and
Telepathy (as the properties database previously indicated).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2429 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-03-25 14:42:09 +00:00
stephena 5ce726f180 Fixed some compiler warnings picked up by Xcode 4.3
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2417 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-03-16 13:19:29 +00:00
stephena 92cda788c4 Fixed missing 'Enter' key in CompuMate emulation. It seems that the
z26 code never actually implemented this, so I'm not sure how people
actually entered Basic code.  I guess not many people have played 
with and tested this before.

Added more sensible keys for the CompuMate 'space' and 'enter' keys.
They're still mapped to '/' and ';' respectively (to keep locations
on the keyboard the same), but are also mapped to the actual 'Space'
and 'Enter' keys (to make usage much easier).  I'll probably also
map 'Shift-;' to Backspace as well.

Updated documentation for CompuMate emulation.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2415 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-03-15 23:40:36 +00:00
stephena 539edc656b Removed GL VBO option from the UI, since playing with it can
cause issues.  Stella will always use VBO when available, and
disable it otherwise.  For those (few/none?) people that want to
disable it, they can do it from the commandline.  This option will
disappear completely in Stella 4.0 anyway ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2403 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-03-03 18:26:28 +00:00
stephena 3b4b10df76 Combined 'sa1' and 'sa2' commandline arguments into one command named
'saport'.  This takes the values 'lr' or 'rl', corresponding to left/right
and right/left.

Added ability to dynamically swap the Stelladaptor/2600-daptor ports
with the 'Control-1' key.






git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2401 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-03-03 00:56:31 +00:00
stephena 0d548bf379 Mouse 'specific-axis' mode can now be set per-ROM within the Game Info
dialog.

Updated all paddle and driving controller games with relevant axis info.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2374 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-01-29 22:13:15 +00:00
stephena c136a30cbc The left and right mouse buttons are now recognized separately in emulation mode.
Checking in first pass at revamping the 'mcontrol' functionality.  The idea is
that the mouse will be able to emulate different controllers on each of its
axes.  For now, the left mouse button is tied to the X-axis, and the right to 
the Y-axis.  These modes will be saved per-ROM, meaning that the mapping can
be different for each ROM (it is saved as part of the ROM properties).  Only
the paddles and driving controllers will allow this, since they're the only
controllers where a single axis makes sense.

Switching between mouse modes will be done with Control-0 (the Control-1..3
keys have been removed).  This will allow switching all possible combinations
(left controller, right controller, per-ROM setting, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2366 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-01-22 21:01:13 +00:00
stephena 97490e75d3 Updated documentation and UI for FA2 bankswitch scheme.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2362 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-01-21 13:14:48 +00:00
stephena 08ae1c3fe8 Updated how the debugger is created, and protected against using the
debugger before it has been initialized.

Tweaked the format auto-detection by also looking at the TIA scanline
at which drawing first occurs.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2359 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-01-17 22:20:20 +00:00
stephena 73dbe861a6 Refactored the keycode handling through the GUI classes, making it more
generic than SDL, but less generic than simply using int's for everything.
This will help once we start porting to SDL2, which has an updated keycode
handling system.  The plan is that the internal core keyboard stuff is now
insulated from any further changes in SDL.

This also allows eventually adding support for CompuMate controller,
which needs access to keycode names in a generic way.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2356 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-01-14 22:00:54 +00:00
stephena 293a8a69b4 Added TIA INPTx and VBLANK D6/D7 items to the debugger I/O tab.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2343 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-01-08 16:55:10 +00:00
stephena b10720321a First pass at adding controller-specific UI items to the
I/O tab in the debugger.  For now, only joystick is 
partly implemented.  Eventually, all Stella controllers
will have UI items (where it makes sense), allowing to
completely control input devices from within the
debugger.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2334 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-01-05 18:28:24 +00:00
stephena 0138086583 Added shortcut for temporarily starting Stella in a rom directory
other than that specified by 'romdir'.  I'm not going to document
this functionality, since it's a convenience function that will
probably only be used by me anyway.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2333 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-01-04 14:54:21 +00:00
stephena 06de98d05d Some tweaks to onscreen message colours, to match the current scheme.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2332 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-01-03 20:52:45 +00:00
stephena c1e171ee44 Added skeleton class for CompuMate bankswitching.
Updated all bankswitch schemes for potential buffer overflow
issues.  Copying was being done without regard for the size of the
ROM buffer.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2325 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-01-02 20:31:42 +00:00
stephena b7125a26ee Added classes for MindLink and CompuMate controllers. Note that
these aren't fully activated yet, but they're the next thing I plan
to work on.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2322 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2012-01-02 16:37:17 +00:00
stephena c95d5f804d Updated all files to copyright 2012. Happy New Year to anyone reading
these logs!

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

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

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

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

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


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2318 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-31 21:56:36 +00:00
stephena a7710ab1af Clean up some references to OpenGL buffer type, which actually
mean 'hardware-accelerated, double-buffered'.  This distinction
is important, since eventually such a mode won't necessarily be
OpenGL-backed (it might be Direct3D, OpenGLES, etc).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2312 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-29 19:10:57 +00:00
stephena aeb8d27746 Added 'mcontrol' commandline argument, which allows to map mouse axes
separately to different paddles.

Updated documentation for impending 3.5 release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2296 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-26 21:40:28 +00:00
stephena 52cf172661 Reverted FSNode getPath() modifications introduced in Stella 3.4.1, since it causes massive performance regressions in Windows XP.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2292 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-22 21:29:24 +00:00
stephena 56694b5934 The sound system is now opened once per program invocation, and paused
when it isn't needed.  According to SDL this shouldn't be necessary, but
some combinations of video modes and audio hardware cause sound to stop
working if it's repeatedly opened and closed.  So we have to keep it open.

Always attempt to use 2 channels (aka stereo) when opening the SDL audio
device.  This is now required, since ROMs can request mono or stereo mode,
and the sound system can no longer be closed and re-opened with the
desired settings.  So we need to always use 2 channels to accommodate
when it might be needed.  This actually more closely emulates the 2600,
which does have two audio channels.  The 'mono' vs 'stereo' ROM property
basically controls whether these channels are exposed (ie, does the
virtual console have two-channel audio hardware installed).  In that sense,
these settings control how the channels are mixed.

Updated some settings to have more reasonable defaults.

Added acknowledgement for people that have donated hardware to help with
development.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2291 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-12-21 17:18:53 +00:00
stephena d35c220953 Huge restructuring of the joystick handling code. Event mapping is now
saved per device, so that unplugging and replugging a joystick won't cause
the previous mappings to be lost.

All attributes of a joystick (ie, number of sticks, number of axes, buttons,
hats on each stick) are dynamic, meaning that hardcoded values are no
longer used, making the handling more robust.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2285 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-29 22:12:13 +00:00
stephena 90fbe26b7d Updated documentation, added new snapshots where appropriate.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2284 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-26 21:19:54 +00:00
stephena e8776a79d6 The default snapshot dir is much saner, defaulting to the users'
desktop on OSX and Windows, and the home directory in Linux.
The associated commandline has been changed to 'snapdir'.

Added 'GL VBO' toggle button to the Video Settings UI, and in
general cleaned up its interface.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2282 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-25 14:17:05 +00:00
stephena faa0789727 Updated some code comments and the documentation.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2280 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-11-19 18:28:17 +00:00
stephena 55f4de0725 First pass at converting the OpenGL renderer to be OpenGLES 1.0
compliant.  It actually went smoother than I thought it would.
This show allow Stella to run well on *any* hardware-accelerated
OpenGL machine, not just those with beefy video cards.

Cleaned up the code a little, removing more references to the old
OpenGL TV filtering (which will be replaced by Blargg NTSC
filtering soon enough).  Also removed 'gl_texrect' option, which
specified to use the GL_TEXTURE_RECTANGLE_ARB extension (for
non power-of-two textures).  It was never enabled by default,
didn't work with ATI cards, and wasn't accessible in the UI,
so I doubt anyone will miss it.  Besides, it's not supported in
OpenGL ES 1.x.

Next is to look into VBO/PBO, to see if more optimizations can
be done.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2265 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-08-16 19:33:28 +00:00
stephena a16f862193 Added logging capability and viewer. This is useful for those platforms that
don't normally use the commandline (mostly Windows, but in some cases OSX as
well).  The 'showinfo' commandline argument has been renamed 'loglevel', but
it has the same purpose.  A new option 'logtoconsole' has been added, which
determines whether log output should also be directed to the commandline/
console (previously, it was always printed to the console).  All these items
are now accessible from Options -> System Logs.

For anyone reading this (and that cares), now I can finally move on to the
OpenGL rewrite.  The plan is that the new code will use OpenGL ES, which
is a subset of OpenGL 1.5.  The main advantages are that you won't need
an advanced OpenGL card, and OpenGL ES is supported on most new 'smaller'
systems (iPhone, Android, etc), making ports much easier.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2264 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-08-16 13:38:34 +00:00
stephena 40a66edee4 Cleaned up usage of sprintf in the codebase, changing to
BSPF_snprintf instead, which should eliminate any potential
buffer overflows.  Also moved from static arrays to stringstreams
where appropriate to make things safer and more C++ like.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2263 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-07-13 14:13:49 +00:00
stephena f549cf9661 Removed some 'throw(...)' declarations, which are deprecated in the latest version
of the C++ standard.

Fixed bug when using snprintf; we must use BSPF_snprintf, since the function
has different names in different OS's.

Optimized loading of PNG images in the RomInfoWidget so that memory allocations
aren't continuously being done.  Basically, memory is allocated once and then
only re-allocated if a new image is larger than all previous ones.  This can
increase memory use slightly, as the image data stays around between image loads,
and it remembers the largest image loaded.  But if you images are all mostly the
same size, it should hurt memory usage too much.  And it really helps on certain
systems where repeated (re)-allocations can cause problems.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2261 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-07-03 21:52:33 +00:00
stephena 377765f565 Removed all traces of the OpenGL TV filters. This is due to be replaced by
Blargg NTSC filtering, but we need to revert to base functionality first.

Cleaned up the debugger API wrt converting values from integers to strings
(and vice-versa).  There is now only one method for each of these functions,
rather than several ways to do so.  In the process, convert from unsafe
sprintf functions into snprintf (eliminate potential buffer overflows).

The debugger 'print' command now indicates if any assigned label represents
a read-only location (R), a write-only location (W), or a read/write location
(R/W).

Fixed bug in DataGridWidgets (used in debugger ROM and CPU registers), where
scrolling the mouse-wheel would cause a segfault.  Scrolling the mousewheel
now changes these items as expected.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2260 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-07-03 17:08:42 +00:00
stephena cb3f0e96ba Zero-byte ROMs are now rejected, instead of being loaded as Supercharger ROMs.
Fixed bug in handling analog axes with jitter; they were overriding events from
digital, hat and keyboard input.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2251 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-06-09 20:50:19 +00:00
stephena df71aa03d1 Cleaned up the FilesystemNode API a little, removing some redundant code.
The debugger 'saverom' command now uses absolute filenames, and by default
will save data in the users home directory if a proper path isn't included
in the filename.  This fixes a major bug where ROMs were being saved to
the current or application directory, which in some cases were invalid
locations.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2250 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-06-09 14:00:30 +00:00
stephena 2b9f625f76 Re-enabled 'grabmouse' functionality with a few changes:
- it doesn't have a hotkey any more
  - it is changed in the "Input Settings' UI, not in 'Video Settings'
  - it only has meaning while in emulation mode
  - it is enabled by default


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

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

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

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


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

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

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


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2231 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-10 15:04:19 +00:00
stephena 2da201c4a2 Added controller types 'Paddles_IAxis', 'Paddles_IDir' and 'Paddles_IAxDr',
which are specialized paddles classes that invert the axis, direction,
and axis+direction, respectively.  Updated all applicable ROMs in the
properties database.

Cleaned up the menus in the OSX port; some of them weren't even tied
to anything.  I'm seriously considering removing them all, except for
the Help and Quit items. 


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2230 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-06 19:58:56 +00:00
stephena 264145a939 Huge improvements to paddle and mouse handling:
- mouse can now emulate joystick, booster-grip and driving controllers
 - digital and mouse sensitivity for paddles can now be tweaked
   separately, and have a greater range
 - the mouse now correctly honours its controller setting, and only
   controls a device on one one port (not both at the same time)

Added support for 2600-daptor device.  Credit for creator of device
is forthcoming.  This device is basically an updated Stelladaptor,
with improved handling for paddle data.

Grabmouse functionality is no longer user-definable; the mouse is
always grabbed while playing a game, and released otherwise.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2228 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-05-06 14:29:39 +00:00
stephena 3339dc276d Updated copyright info for 2011. Happy New Year to anybody reading
these logs :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2199 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2011-01-01 16:04:32 +00:00
stephena 6478176abb Upon opening the ROM audit dialog, the current directory from the ROM
launcher is selected, not the actual ROM directory.  This speeds up
access, because generally you'll want to audit the directory you're
actually looking at.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2196 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-12-21 18:42:53 +00:00
stephena c9ab109524 Converted several 'toString' methods to use stringstreams instead of
multiple concatentation of strings.  This should be faster, or at least
lead to less string constructor calls.

Output of 'ROW' directives in the disassembly now shows only 8 items per
line, instead of 16.  This allows to see all the bytes without having a
'...' in between.  A future release may customize this to the size of the
output area.

Fixed output from debugger 'disasm' command to properly align different
directive types and show GFX and PGFX output.

Bumped state file version to 3.3 final, since there are no further
changes to the code that will break the file format.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2183 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-11-11 16:46:41 +00:00
stephena c896e1f0ce Tweaked the symbol for showing GFX in the debugger disassembly.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2164 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-24 21:14:15 +00:00
stephena 8cb6a83512 Reworked M6502 detection of debugger GFX sections, by moving the actual
detection and marking of those areas into the TIA class itself, specifically
at the location of the write.  In other words, there's no longer an IF
statement executed for every STx opcode; the marking is done directly
within the write to GRPx or PFx, so extra code is only executed when
actually storing to those locations.

Fixed several cases of opcodes marking an area as CODE when it should have
been DATA.

Added output to the CPU area of the debugger for displaying the source
address for loading data into the A/X/Y registers.  Note that these are
only modified when actual addresses are used, so immediate and zero-page
mode will show addresses as zero (meaning that no address was involved
in retrieving the data).

Tweaked console font to better diffentiate the disassembly output between
graphics for players and graphics for the playfield.

Bumped state file format because of changes to M6502.  This means old
state files will be broken.

Bumped version # for next test release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2157 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-21 21:01:00 +00:00
stephena 0388ab89e5 Added a new directive called PGFX, used for playfield graphics (the
previously defined GFX directive is now used for player graphics
only).  The 6502 core tracks each of these separately, which provides
for more accurate disassembly.

Modified debugger font and disassembler to show GFX and PGFX with
special characters, instead of using 'X' as Distella does.  This also
allows gives much more informative disassembled outout.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2156 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-21 17:46:23 +00:00
stephena 7411867290 Decided to take a little break from the debugger stuff, and clean up
the various header files.  Basically, I'm following advice from
Effective C++, and including only what's absolutely necessary.  For
definitions that don't need to be included, the designation 'class xxx'
is used instead.  This could potentially lead to faster compile times.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2155 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-10-18 18:39:57 +00:00
stephena f3483ca8b1 When in 'small' window mode and attempting to open PAL ROMs larger than the
screen size (vertically), the window will open in partially truncated mode,
where the top of the PAL image is cut off.  This normally won't be a problem,
as it's mostly blank space anyway.

App window centering is now honoured when changing video zoom levels, not
just when changing eventhandler states.

Bumped version # for another test release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2135 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-21 19:39:30 +00:00
stephena aba64fa8e4 'Center' window functionality should be off by default.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2128 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-09 13:40:15 +00:00
stephena 2d08d4e459 Cleaned up handling of various file paths throughtout the codebase.
Basically, directories are now guaranteed to always end in the path
separator.  Ensuring this makes certain sections of code work faster,
and guaranteeing it allows higher layers of code to not worry about it.

Added 'cfgdir' commandline argument, to specify the default directory
for Distella-like Stella-compatible config files.

Implemented 'loadconfig' debugger prompt command.  It's currently
working great with several test config files provided by Omega of
AtariAge.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2125 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-09-06 00:17:51 +00:00
stephena 26b1654aa2 Some minor UI improvements to the InputSettings dialog; renamed the
'Virtual Devs' tab to 'Devices & Ports'.  Updated documentation and
snapshots for this change.

Added Halo 2600 ROM info to internal properties database.

Increased default setting for 'joydeadzone' from 0 to 13.  This means
the default deadzone is somewhere around half the axis range (~16500).

Fixed behaviour of hat events; events weren't actually being turned off
until the stick was centered.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2108 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-21 23:08:44 +00:00
stephena b2ed949082 Some final changes for the 3.2 release, including documentation updates.
Added 'ramrandom' commmandline argument, used to toggle randomizing or
zeroing or all RAM in the system (both zero-page and SARA).

Disassembler now properly supports all test cases, including rewinding
within the debugger.

Added preliminary support for disassembling from zero-page RAM.

Bumped version # for final release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2100 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-19 21:48:28 +00:00
stephena 5a89e78fe2 A few UI improvements:
Some messages now use a smaller font, so the UI doesn't look quite
  so monotonous.

  SliderWidgets suppport the mouse scroll wheel to change values.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2097 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-14 01:01:27 +00:00
stephena 6a5998c684 Multiple events can now be assigned to combo events from the UI. Still TODO
is update the documentation for this.

Fixed bug reported by Buzbard from AtariAge concerning very large images
in the RomInfoWidget being clipped too small.

Reworked 'center window' functionality.  Using the SDL_VIDEO_CENTERED
environment variable was always a hack, and a bug was introduced in X11
OpenGL mode in version 1.2.14.  However, since SDL is now in maintenance
mode and won't be receiving any further updates, we have to bypass it
entirely.  Added infrastructure for OSystem to center the application
window.  For now, only Linux X11 mode is supported.  Still TODO is add
support for Windows.  OSX was never supported anyway.  This also means
that the center window variable no longer requires the application to
be restarted.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2091 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-11 21:53:19 +00:00
stephena 8199dddb6f More work on mapping of multiple events to combo events. The UI is now
present, and it properly loads and presents events from settings.
Still TODO is implement saveConfig(), to send the new events to EventHandler.

Modified ContextMenu/PopUpWidget to honour the 'mwheel' setting when
scrolling with the mouse wheel (previously, it always scrolled at 1 line
at a time).

Updated OSX project files for recent ComboDialog addition.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2090 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-09 17:02:36 +00:00
stephena 497cce6079 First pass at adding a dialog to configure combo events in emulation mode.
It doesn't actually do anything yet ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2089 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-08 23:06:43 +00:00
stephena 044e1aa151 Some cleanups to the event mapping UI and associated functionality:
1)  Added a 'Reset' button to the UI, which resets (to defaults)
the currently selected item.  This is more fine-grained than the actual
'Defaults' button, which resets *all* events.

2)  Rearranged some buttons and resized UI.  There is now a main 'Defaults'
button on the bottom of the dialog, which applies to the currently selected
tab.  This also allows to set defaults for Virtual Devs, which didn't have
such functionality previously.

3)  Added a 'Combo' button to the Emulation events tab.  It doesn't do
anything yet, but eventually will allow to assign events to the 'combo'
events.

ContextMenu/PopupWidget now supports the scroll button on a mouse when
in scroll mode.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2084 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2010-08-03 21:04:58 +00:00