Commit Graph

940 Commits

Author SHA1 Message Date
stephena bf108706ac Second pass at editing properties in GameInfoDialog. It still doesn't
work, but at least it compiles.

Fixed bug whereby pressing modifier keys in GUI mode would sometimes
be interpreted (and printed) as regular keys).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@799 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-28 22:49:06 +00:00
stephena b0c1c04598 First pass at converting GameInfoDialog to be able to edit properties.
I know it doesn't compile, but I have to commit it before I go home :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@798 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-28 19:59:24 +00:00
stephena 0158d919e6 Fixed text alignment issues in InputTextDialog.
Some fixes and reformatting for the Cheat code stuff.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@797 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-26 19:10:37 +00:00
urchlay 98387c6c80 Implemented stella-extended 7- and 8-digit cheat codes. These are like
Cheetah codes prefixed with a 1- or 2-digit bank number. Try "1236ea1"
in Battlezone: it should give infinite lives. "01236ea1" is the same
thing with a 2-digit bank number ("01" instead of "1", same bank).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@796 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-26 03:09:37 +00:00
urchlay 2f55b27695 Control-C is hotkey for cheat code dialog, non-remappable. After entering
a valid cheat code, we go back to emulation mode. Ideally, we'd keep
track of whether CheatCodeDialog was called by the menu or the hotkey,
and stay in the menu if it was called by the menu...

Unfortunately, Alt-C isn't available for our cheat hotkey (it's used
for enable/disable missile 0), and Ctrl doubles as the joystick 0 fire
button, so pressing Ctrl-C fires a shot (or starts a game, or whatever)
as well as entering cheat code mode. Not a big deal, I guess.

Currently there's no way to list or disable the cheat codes you've
entered. You can press Control-R to reload the ROM, which kills all the
cheats at once. I tried to figure out how to use the CheckListWidget to
do a cheat list with disable/enable toggles, but got horribly confused.
I think GUI programming in C++ is always going to feel like a foreign
language to me :(


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@795 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-25 23:14:00 +00:00
urchlay 8f035f8e3f CheatCodeDialog is semi-functional
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@794 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-25 20:18:46 +00:00
urchlay c917e2ee93 CheatCodeDialog work in progress.
TIA greyout work in progress.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@793 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-25 18:35:26 +00:00
stephena bf194366e1 Added fix for OSX port where backspace and delete keys weren't
being correctly recognized in the PromptWidget.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@792 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-24 21:43:59 +00:00
stephena 9ae4f66e36 Some bugfixes right across the board. We're on a rampage to get
the next release done, and this sucker is being finished soon.

Readded printing of watches to prompt.

Fixed issues with keypad buttons not being recognized in GUI mode.

Fixed bug in internal _select and _reset debugger functions, which
were reversed.

Toggling stereo/mono mode now updates the 'Cartridge.Sound' property,
so if the properties are later saved/merged, the modified sound
settings will be used for that game on next launch/reload.

Fixed a bug where selecting a new romdir in BrowserDialog would
sometimes cause a segfault.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@791 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-23 23:35:02 +00:00
stephena 5c1c2fe30c Added 'Set Breakpoint' functionality to the TiaOutputWidget in the
contextmenu.  This simply created a conditional breakpoint defined
as 'breakif _scan==XXX', where XXX is the scanline under the mouse
at that point.

Fixed bugs in adding breakpoints to the RomWidget.  Breakpoints
are no longer removed when the list is invalidated, and a
set/clear breakpoint from the prompt automatically updates the
RomWidget breakpoint list.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@790 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-23 17:38:27 +00:00
stephena b9613ec228 Fixed case sensitivity when specifying developer options on the
commandline.  So, for example, the format of a ROM can be
specified with 'NTSC', 'Ntsc', 'ntsc', etc.

Cleaned up some dead code in Properties class.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@789 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-22 22:10:57 +00:00
stephena 7fd1a9089b Added mini message box to debugger, which will be used to inform the
user of debugger-related state information.

Reworked breakpoint/trap support to display a message in debugger
messagebox indicating what condition caused the debugger to start.
This is much better than before, when no feedback was given as to
why the debugger started.

Some usability fixes to ListWidget/RomWidget.  There are still a few
more tweaks to do before the final release.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@788 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-20 19:09:10 +00:00
urchlay b96efe9da8 Got rid of debug output in yacc parser. Can be re-enabled by changing
a #define, if we ever need it again.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@787 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-20 15:17:16 +00:00
optixx 8f3204a496 o added pspoverclock config flag
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@786 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-18 14:43:32 +00:00
optixx f9b8762017 o added psp specific Framebuffer creation based on #ifdefs
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@785 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-18 14:40:55 +00:00
optixx ad2ba4343a o made private rectlist members protected to derive FrameBufferPSP form this class.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@784 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-18 14:38:52 +00:00
optixx ba3ca9a4ba o added specific PSP Framebuffer, derived from FrameBufferSoft. Just changed the createScreen Method to reflect the PSP specific windows size for HW and SW display modes.
o Just meant as a placeholder to get the psp build working again and for further improvements
o No optimized  Routines yet !


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@783 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-18 14:35:59 +00:00
optixx 1417e20102 o changed to new configfile load methods
o added pspoverclock config flag,because overclocking was default setting which is not desired by all users
o moved psp overclock call away from ctor


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@782 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-18 14:31:37 +00:00
optixx d5b741362a o added 'psp-fixup-imports' to psp build chain, to get psp build working with lastest pspsdk ans psptoolchain
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@781 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-18 14:28:17 +00:00
stephena 65711293a3 Fixed bug whereby properties weren't being merged when they didn't
exist in the stella.pro file.  Properties to be saved are now explicitly
marked as such, and don't rely on how often they're insert()'ed.

Made 'Exit ROM' in the CommandDialog do the appropriate thing based
on whether we want to go back to the ROM launcher or completely
exit the emulator.

Moved bounding rectangle for drawing focus around a widget into a
Widget::getRect() method and updated Widget class to use these coordinates.
This means widgets that contain other widgets (ie, attached scrollbars)
can define their own getRect() and have the focus rectange draw correctly.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@780 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-16 18:15:44 +00:00
markgrebe fb04fddae7 Fixed Help menu to show Stella Help instead of the incorrect SDL Help it was displaying
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@779 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-16 01:08:22 +00:00
stephena aedc59c834 Cleaned up some more FIXMEs.
Added infrastructure to DebuggerParser whereby changes made at the
prompt are automatically propagated to other widgets on the
DebuggerDialog.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@778 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-15 19:43:36 +00:00
markgrebe 4996193441 Fixed Properties Directory setting in Mac version
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@777 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-14 01:50:42 +00:00
stephena 8aed4f81a9 Tweaked ContextMenu so that an item is selected/committed only when the
left mouse button is pressed and released on the item (should fix problems
with accidentally selecting an item).  Also added 'Escape' key to mean
"cancel/remove context menu".

Updated '-help' commandline argument to recent additions.

Huge amount of work on the documentation.  It's probably not complete,
but it's turning into a project in itself.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@776 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-13 18:27:42 +00:00
stephena 09a8f8f10d Reworked properties file handling. The 'stella.pro' file is now assumed
to be a master file and is read-only.  When the user merges the
properties for a given ROM, they are now stored in 'user.pro'.  The
advantage of doing it this way is that users can get updated properties
from stella.pro with each release of Stella, and at the same time keep
any customized properties in their own user.pro file.  Merging is still
activated with 'Alt s' key combo, while saving the current properties
to a separate game-specific properties file is activated with 'Ctrl s'.

Fixed UNIX and Win32 ports for the above; the OSX and PSP ports need
to be fixed by the respective maintainers (a one-liner fix).

Fixed bug where changing audio settings from AudioDialog didn't
actually close/open the sound subsystem (and hence changes weren't
taking effect).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@775 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-11 22:55:51 +00:00
stephena 32f00975ad Hack for Win32 performance issues. It seems SDL_UpdateRects() really
kills performance in Windows, so we use SDL_Flip() instead, but only
when something has actually changed onscreen.  At some point after
the next release, I may move to hardware/double-buffered displays,
but the extra work it requires (dirty rect list for each buffer) is
just too much for now.  Besides, I'm hesitant to spend so much time
optimizing for one specific type of software mode when OpenGL is
available, and works much faster anyway.

Fixed bug with pathnames in FSNodeWin32.  The code now assumes that
all paths start with X: (where X is a drive letter).  If not, then
it defaults to C:  So that means relative directories aren't allowed,
only absolute.

Removed hardware support from FrameBufferSoft, since the only port
that uses it is PSP, and that port will soon get its own
FrameBufferPSP class.  So for now, PSP support is broken.  It was
just too difficult to merge the common FrameBufferSoft for PSP
support, since it's starting to use PSP-specific code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@774 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-11 15:44:51 +00:00
bwmott 79313cc4c4 Added a public close() method to the sound classes so that the game
launcher can close the sound device while the user is selecting a
new game. This prevents the intermittent problem of a left-over sound
fragment from the old game being played when the new game starts.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@773 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-10 16:19:20 +00:00
stephena 17352bb0e9 Added ability to patch ROM from the RomListWidget. Currently the
changes aren't immediately seen, but this will be fixed when the
DebuggerParser/loadConfig() infrastructure is complete.

Implemented 'Set PC' in RomListWidget, with the same restrictions
as above.  Removed 'Add bookmark' and 'Patch ROM', since the
former can't be done with more infrastructure work, and the
latter is done by double-clicking a line (no need for two ways
of doing the same thing).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@772 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-07 18:34:52 +00:00
markgrebe f79b0a0f82 Update Xcode project file
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@771 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-07 03:32:58 +00:00
markgrebe 6b0225507d Add header file for Desktop Display Size Functions
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@770 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-07 03:11:33 +00:00
stephena a8c8c62bca Removed from FIXME's, either by fixing them or changing to TODO :)
Disabled 'Cheat' button in OptionsDialog, since we won't have time
to finish it before the 2.0 release.

Fixed some graphical glitches when TabWidget was used.

Still TODO is get Win32 hardware surfaces working.  I'm tempted to
just disable it for the next release, because it's just too much work.

There's still some work left to do in the debugger, but I won't be
implementing any new features (for the next release) beyond what's
there now.  From this point on, we're only fixing bugs and adding
any remaining functionality to current widgets.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@769 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-06 22:25:40 +00:00
stephena 4dfb229566 Removed some redundant code in FrameBufferGL.
Made sure emulation screen height can always accommodate the menus
placed in it.

Added check when switching to PAL mode, so that the emulation height
will be a default for PAL (250), not for NTSC (210).

Added ability to switch between stereo and mono sound dynamically
from the AudioDialog ('Stereo Mode') and the commandline ('-channels').
This setting is not saved to stellarc, so if you want it to be
permanent for some game, save it to the properties file.

Added 'Cartridge.Sound' property to the game properties, and have it
default to 'Mono'.  Setting it to 'Stereo' will give stereo sound
(2 sound channels used).  Related to this, update stella.pro
'Skeleton+' entry to use stereo sound.

Correctly update the sound framerate when switching between NTSC/PAL,
since the new sound core knows what to do in such a case.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@768 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-06 19:42:35 +00:00
stephena b648fb4f50 Updated build script for new TIA sound class. Fixed missing include
in SoundSDL.  Removed some extraneous CR characters from TIASnd code.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@767 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-05 01:12:56 +00:00
bwmott 58dcda81b5 Removed unused TIASound emulation library.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@766 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-05 00:01:43 +00:00
bwmott df183c6e35 Updated the SoundSDL class to use the new TIA sound emulation library. The
class supports stereo sound output; however, to switch to stereo mode you
currently have to change desired.channels to 2 instead of 1 in the code.
Eventually, we need a setting to enable this and it might be nice to have
a "stella.pro" value for defaults.  Games like Skeleton+ and Synthcart
support stereo output so setting their values to "STEREO" would be good
and having the default be "MONO".

I'm also checking in an updated VC++ project file; however, the other
makefiles will need to be updated to remove TIASound.c and add TIASnd.cxx
to the build


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@765 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-04 23:59:30 +00:00
bwmott 28946ba589 Improved TIA sound emulation library which includes support for mono and
stereo output.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@764 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-04 23:48:33 +00:00
optixx 88464f6935 o updated PSP readme to reflect key mapping changes
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@763 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-04 13:31:22 +00:00
optixx 291aa3f1b8 o default psp stellarc comes with an empty keymap and joymap
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@762 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-04 13:28:22 +00:00
optixx 1c8cf4747f o enabled psp direction buttons for jostick one
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@761 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-04 13:26:44 +00:00
stephena 61a32780be Updated VS.net project file. Next I plan to get the Win32 fullscreen
hardware rendering working.  It's been broken long enough ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@760 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-02 16:57:48 +00:00
stephena d747650730 Added PSP patches submitted by Aetna with some modifications.
Patch includes optimized framebuffer rendering, and mapping of
PSP specfic SDL codes to Stella events.

PSP developers, please test this code.  I don't have a PSP, so I
can't test it myself.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@759 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-01 21:53:44 +00:00
stephena e0490c08c7 Some cleanups for the RomListWidget. Separated the disassembly
stuff into their own columns, making things easier to read but also
making it much easier to edit specific parts of a line.

Still TODO is actually patch ROM when editing the 'bytes' field,
and also possibly edit the label field (which would translate to
creating a new define at that address).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@758 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-01 19:14:09 +00:00
stephena 797cf67ee7 Implemented 'Fill to scanline' in TiaOutputWidget. Currently, you
have to be in 'scanline' mode for it to work (which means you must
have previously selected 'Alt l' or pressed the 'Scanline+1' button).
This is similar to the bug where stepping shows partial changes
only when you've first selected scanline mode; this bug will be
fixed shortly.

Fixed coordinate issues in TiaZoomWidget and when setting position
from TiaOutputWidget.  The position selected in TiaOutputWidget
now becomes the center point in the zoomed image.

Zooming in TiaZoomWidget now operates on the center coordinate.  That
means you actually zoom in on the center of the image (vs. before,
where you zoomed on the upper-left area).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@757 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-01 16:49:52 +00:00
stephena 1cefd6893e Removed redundant classes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@756 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-09-01 12:03:02 +00:00
stephena eb4322b082 Fixed problem with TiaZoomWidget not rendering correctly. Added
a ContextMenu for 2x, 4x, 8x zoom.  Some work is still required
to center on previous position.

Added a ContextMenu to TiaOutputWidget.  The only item currently
working (partially) is 'zoom at selected point', and there's still
some work to do there as well, since mouse position and TIA image
position don't seem to be lining up (something to do with xstart
and ystart).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@755 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-08-31 22:34:43 +00:00
stephena 08835c016d Added ContextMenu dialog, which is basically quite similar to
PopupDialog and 'pops up' a listing of commands that can emit
signals which the parent class will act on.

Added a ContextMenu to RomWidget, containing some common commands.
These commands don't actually do anything yet.

The GUI code now differentiates between left and right mouse buttons.
Most classes still treat both the same, but in the case of the
ContextMenu added to RomWidget, it's activated only by the RMB.

Added first pass of TiaZoomWidget, which displays a zoomed area of
the TIA image.  It's not quite working correctly yet, but I think
I know what the problem is.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@754 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-08-31 19:15:10 +00:00
optixx c71d30a4aa o added missing compiler flag for psp build
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@753 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-08-31 07:02:29 +00:00
stephena 01adac3679 Made joystick button 0 act as left mouse button when in
various GUI modes.  This means mouse emulation is fully functional.
One can simulate mouse movement with the joystick directions, and
use button 0 to 'click' on an item.

Added NTSC/PAL toggle, palette toggle, 'rom reload' and 'exit to
launcher' to the CommandDialog.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@752 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-08-30 23:32:42 +00:00
stephena 9c90b0d093 Massive rearrangement of most GUI-related classes (sorry Mark for the
changes you'll have to make to the XCode project).

The '--disable-developer' option to configure now works properly,
and developer/debugger support can be completely disabled.  When
disabled, the code will not be compiled at all, which gives an approx
35% reduction in code size (useful for the PSP port).

Cheat support is currently broken as it depends on a debugger that
may not be present, but this will be fixed soon (it isn't near
finished yet anyway).

Made changing of game properties and toggling TIA bits not exclusively
a developer thing, since there's no reason why anyone can't use it.

Bumped version to beta1.  Stella has been stewing for the past 6 months,
and it's almost about time for a release.  I promised last time that
releases would be more frequent, and I've already broken that promise :)
That means some features of the debugger won't be included for next
release, but something has to be left out ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@751 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-08-30 17:51:26 +00:00
stephena 1cf03b53ed Added joystick to mouse movement emulation. Currently it moves the
cursor much slower than a real mouse, since directional pads/joysticks
tend to be not as precise as a real mouse.

Still TODO is have joystick buttons create mouse button events.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@750 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-08-30 01:10:54 +00:00