in-game dialogs are now rendered into separate surfaces, and then layered
onto the SDL screen when necessary. The biggest advantage of this is
now each 'window' is separate, and won't be affected by the scaling or
filtering of other windows. For example, zooming the TIA image no longer
changes the size of UI text overlaid on the TIA. Similarly, eventually
graphical filters will be added, and filters applied to the TIA won't
affect the UI.
There's too many changes to list, so for now I'll list what doesn't work:
* OpenGL mode (don't even try it)
* Several popup dialogs in the debugger
* RomInfo stuff is completely broken
* Scanline count and FrameBuffer 'messages' aren't shown
* Larger fonts - fonts are no longer scaled; we have to use larger ones,
and update the UI accordingly
* Probably a lot of other stuff I forgot to mention
This is a huge undertaking, similar in scale to when the UI was first
added in 2.0 release. So it might take some time for this to stabilize ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1537 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
movement, named 'pspeed'. This replaces the 4 'pXspeed' commandline
arguments. Also removed 'pthresh', since it no longer serves any purpose.
Updated UI to change this setting dynamically from within Stella.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1413 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Fixed DebuggerParser::red() method so it always uses the same color,
regardless of NTSC/PAL/SECAM format.
Added Home/End/PgUp/PgDn navigation to TiaZoomWidget.
Added a 'Defaults' button to FileSnapDialog.
Made configurable the number of lines a mouse scrollwheel will move the
scrollbar. This can be set by the '-mwheel' commandline argument, as well
as in UIDialog.
Removed some dead code in several debugger classes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1347 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
button on a mouse. I could never figure out why it was moving 4 lines
when I only specified 2. Still TODO is make this configurable from
UIDialog.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1344 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Removed older browsing mode where the listing is scanned by md5sum,
since it wasn't really useful any more. Basically, the default is
to now use 'rombrowse' mode, where the listing acts like an actual
filesystem. Related to this, removed 'rombrowse', 'modtime' and
'lastrom' settings.
Reworked the FileSnapDialog wrt the previous point. The rombrowse
toggle button and 'Reload' button were no longer relevant.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1341 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Updated copyright info for 2007 (might as well get it taken care of
early in the year).
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1261 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Updated copyright dates on all headers (the reason for this huge update).
First pass at updating the user manual for all the new changes in the codebase.
Bumped version number to 2.3_alpha. It's getting close folks.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1188 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
of the earlier palette changes, since it turned into a can of worms
I don't want to open. I think we'll be ready for a new release soon.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1066 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
everything should look exactly the same. This infrastructure will
eventually allow a set of fonts to be included in Stella, and for the user
to select a bigger or smaller font and have the GUI automatically resize
to it.
At some point, the ability to zoom the ROM launcher and debugger
will be removed, and will be replaced by selection of different font
sizes. As well, zooming of the MediaSource will be converted to a
graphics filter (scale2x/3x/4x), and others such as hq2x or mame2x
will also be available.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1009 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
before a certain state was entered. For example, launching a game
and bypassing the ROM launcher would attempt to draw elements from
the debugger, with coordinates that were usually larger than the
current screen.
Made system-wide location of stella.pro/stellarc files configurable
at build-time. They're now stored in DATADIR/stella, where DATADIR
can be changed with "--datadir=..." during configure. This is only
enabled for UNIX for now.
Added missing 'cheat' and 'break' to commandline description.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@964 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
widgets in a TabWidget, which is also in the dialog. All focus
related issues are now handled by the base Dialog directly; TabWidget
exits only to show a different set of widgets based on which tab
is selected. Still TODO is fix drawing of focus rectangle around
some widgets (specifically, those that have a scrollbar attached).
Moved CpuWidget into the main dialog area, so it's always visible.
Next I'll be moving the RamWidget to the main dialog, and combining
CheatWidget into it to save even more space.
Then, we can get back to work on the TiaWidget and RomWidget :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@713 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
out of sync. Implemented dirty widget support for the GUI. That
means the widgets will only be drawn when necessary. There are still
a few gotcha's:
1) OpenGL mode hasn't been ported to this new scheme.
2) It's not totally finished, so some artifacts may appear onscreen.
3) Selecting active widgets with the mouse is borked.
4) Prompt commands that change the core aren't shown in the other
tabs/interface. Fixing this will require some infrastructure work
in Debugger and DebuggerParser.
5) A lot of print debug code has been left in; please ignore it for now.
Moved a lot of the debugger widgets to use non-proportional font (still
TODO is get a larger font) and not use 'magic numbers' for the layout.
That means when a new font is added, the layout should re-arrange itself.
Moved various Debugger tab widgets from 'src/gui' to 'src/debugger',
because they shouldn't be compiled when debugger support isn't
included. So now (for example), RamWidget and RamDebug are both in
the debugger directory.
Probably more stuff I'm forgetting about. It looks like the ScummVM
code can be made adequately fast, so the jump to Qt won't be necessary.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@705 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
has sent a signal (required when there are more than one of the same type of
widget in a widget/container).
Still TODO is modify each handleCommand() method that cares about 'id' to
actually detect and act on it.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@608 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
updates are actually two separate things (and often done independently).
Previously, the only overlay was the menu, and since this was always drawn
over the TIA, updating one or the other was the same thing.
Now, the debugger area can be updated without affecting the TIA, since
technically it isn't really an overlay (it doesn't sit on top of the TIA).
There are still some TODO's wrt using dirty rectangles instead of full
updates, but at least the full updates are now restricted to just the
overlay area.
Fixed multiple frame step in the PromptWidget by changing
FrameBuffer::advance() to advance a given number of frames.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@550 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Dialog. This was necessary since it seems Dialogs can't contain other
dialogs in the GUI core.
Added keyboard navigation to the TabWidget class. For now, it's only
enabled for the Debugger. Ctrl-Tab/Shift-Ctrl-Tab switches to the
next/previous tab (respectively), and Tab/Shift-Tab switches to the
next/previous widget in the current tab.
There's still a bit of work to do, but the infrastructure is there.
That's it, I'm taking the night off, because this deceptively simple
concept has taken about a day to implement ...
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@479 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
System is Fedore Core 4 test 3. There were surprisingly few issues,
considering I've never used 64bit mode before. Thanks to Brian Watson
for initially pointing out potential problems.
Fixed some 32/64 bit pointer to int problems. Fixed some C++ warnings,
since gcc 4.0 is much stricter about that type of thing.
Made the GUI scrollbar move two lines at a time when using the mouse
scrollwheel.
Now I have to see if this broke anything in 32bit mode. Note that sound
is a bit scratchy under this distro, and seeing how it's on the same
hardware (as the 32bit development box) I don't know what could be happening.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@434 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
Changed many conflicting instances (in overloaded methods) of uInt32, uInt16,
Int32 and Int16 to just plain 'int'. After spending two hours trying to find
out why a method wasn't being called, only to see it was because of conflicting
definitions of 'int', I said to hell with it and removed all instances of
those portability functions from the GUI stuff (thank Brian for the advice).
Eventually, they'll be removed from the whole codebase. Already we're running
into problems with them on 64-bit machines.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@423 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
for the correct ROM folder, and the folders contents will be shown in the
listview.
Still TODO is modify GameList so that it contains all relevant info for
a ROM. Then, the listview will contain the actual names of the ROMS
(as specified in stella.pro) instead of their on-disk filenames. And at
that point, we can actually start a game directly from that listview.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@417 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
(and works) as intended.
Converted many of the OpenGL functions back to similar code in the
corresponding software methods. So OpenGL mode can now draw text
and bitmaps in GUI mode. It just wasn't worth the effort to separate
the rendering so much, and all we lose by going back is accelerated
alpha-blending. Since it's just eye candy anyway, I don't really care.
This is in anticipation of merging the software and OpenGL modes. Once
that's complete, both FrameBuffer classes will be much smaller, and
we'll be able to switch between software and OpenGL modes while the
program is running. This is one of the last 'features' that is
currently only accessible from the commandline. My goal is that one
*shouldn't* have to use the commandline to change options, but the
ability will still be there if they want to.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@398 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
but the hooks are there for it.
Added ScrollBar and ListWidget GUI objects. These will form the basis
of the new ROM launcher, as well as the memory lister in the debugger.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@390 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba