Commit Graph

1229 Commits

Author SHA1 Message Date
urchlay 89bf4d1da6 D6502::disassemble() now includes cycle count in its output. This isn't
perfect: it doesn't take into account the extra cycles added by things
like taking a branch or crossing a page boundary. However, it's still
somewhat useful and *dead* simple to implement this way.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@488 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-13 13:35:09 +00:00
urchlay 536b65f4bc Implemented quite a few debugger commands, plus machinery within
Debugger class to support them.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@487 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-13 02:47:44 +00:00
stephena 58ef675a78 Added beginning of CheatWidget, which will be used for searching a memory
location for a certain value (ie, finding out which location holds # of lives).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@486 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-12 20:12:10 +00:00
stephena fd82d749ec Oops, forgot to include the makefile.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@485 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-12 18:18:42 +00:00
stephena 330ca1bd7c Slightly reworked the debugger commandline handling. Commands are now
contained in the Debugger class methods, since they need to be accessible
from both the console and the GUI code.

Implemented console commands for dumping RAM (ram) and TIA (tia), and
implemented the console 'quit' command (it returns to emulation mode).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@484 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-12 18:18:01 +00:00
urchlay 47b471bc1a Finally, the console does something!
The "trace" command is now implemented (though it doesn't skip over
JSR's like it's supposed to yet, so it does what "step" will do).

After each command, we now emit the values of all the CPU regs and a
disassembly of the next instruction, like gdb and good old DEBUG.COM do.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@483 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-11 20:02:25 +00:00
stephena 3bc9a165bc Updates so that Stella can compile in Visual Studio .Net
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@482 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-11 17:02:26 +00:00
markgrebe 8bf842f319 Added missing semicolon in Mac specific code
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@481 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-11 01:52:49 +00:00
stephena 80ef283eb1 Continuous mouse click events now work, as long as the mouse isn't being
moved.  That means you can click on the arrows in a scrollbar, and keeping
the button pressed will keep clicking the arrows.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@480 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-10 18:46:11 +00:00
stephena 4ee8ee8cd7 Made the Debugger dialog use a TabWidget again, instead of it being another
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
2005-06-10 17:46:07 +00:00
stephena c988604949 Reverted the previous changes, since it looks like I'll have to revert back
to a TabWidget and PromptWidget, and it's going to take some time.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@478 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-09 20:09:23 +00:00
stephena 7e7d0b57f5 First attempt at adding buttons to each DebuggerDialog class. The PromptDialog
is currently broken.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@477 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-09 19:04:59 +00:00
stephena 90ed128060 Moved DebuggerParser instance variable to Debugger class, since it *belongs*
to the Debugger and only *talks* to the PromptDialog.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@476 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-09 15:08:23 +00:00
urchlay f37ab61597 Bare beginnings of DebuggerParser & its supporting cast. The only
command that works as yet is "quit", and it doesn't actually quit
anything :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@475 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-09 04:31:45 +00:00
stephena f277b89710 Fixed some crashes when scrolling in the PromptDialog.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@474 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-08 21:16:06 +00:00
stephena 35f9b5b0e4 Totally reworked the font subsystem. Fonts now belong to OSystem instead
of the FrameBuffer (since fonts should only be created once, and the
FrameBuffer is deleted and re-created many times).

Added a default font to the Widget class, as well as a setFont() method.
So each widget can individually choose its own font.

Added a monospaced font.  It's currently used only in the PromptDialog,
but due to the above changes, it can be used anywhere.

Tweaked some keys in the PromptDialog.  Shift-(Home, End, PageUp, PageDown)
now control the scrollbar, and without shift, those keys control the current
line editing/navigation.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@473 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-08 18:45:09 +00:00
stephena 0a84fa22bb Fixed remaining problems with the debugger console. Erase to beginning
of line (Ctrl-U) now works, as do shifted characters.

Still TODO is use a monospaced font for the debugger widgets, and
possibly add some new colors, etc.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@472 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-07 21:22:39 +00:00
stephena 08548e51df Further work on the debugger console:
Added typical Unix shell shortcut keys (still TODO is Ctrl-U)
Fixed delete action causing crashes
Made cursor redraw at the correct place

Still TODO: use Unicode to accurately represent keypresses onscreen.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@471 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-07 19:01:53 +00:00
stephena 93f9e9e526 Auto-select the debugger prompt when entering debugging mode.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@470 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-07 01:27:06 +00:00
stephena cf9f42b652 Added debugging console/prompt commandline interface. It's still not
quite working correctly, but at least text appears when you type.

Changed the debugging TAB interface to use buttons instead.  It seems
this is a deficiency in the ScummVM GUI code, and I don't really want
to figure out how to fix it.  Of course, now the buttons have to be
embedded in each dialog box, somehow ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@469 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-07 01:14:39 +00:00
stephena 6e074d8680 Fixed annoying bug(s) whereby keys that had modifiers were still being
passed to the emulation core.  For example, when pressing 'Alt-Enter' to
toggle fullscreen mode while in the launcher, the 'Enter' was also starting
the selected ROM.  Now all keys that are pressed with modifiers are
swallowed before they reach the core.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@468 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-05 23:46:19 +00:00
stephena 02b1db5c0e Added missing Win32 filesystem stuff.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@467 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-05 22:20:49 +00:00
markgrebe a934f8fc98 These OSX hidden files don't need to be in CVS
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@466 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-04 02:15:28 +00:00
markgrebe f27a3796f5 Added About Box back in, which was taken out in initial 2.0 port
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@465 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-04 02:13:19 +00:00
markgrebe 6b47658483 Main loop code moved to core modules
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@464 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-04 02:11:38 +00:00
stephena 0e0b225122 First pass at the debugger dialog box. Right now, it contains 6 tabs:
Prompt:  will have a command prompt with history
CPU:  contents of CPU registers
RAM:  contents of RAM
ROM:  contents of ROM
TIA:  contents of TIA registers
Code:  code listing/disassembly (still have to figure this one out)

Still TODO is work out the overall functionality of the debugger.  Inspecting
or changing registers is easy.  The hard part is adding features that
developers will actually use.

Also TODO is figure out what will go in the upper-right corner; maybe
buttons to pause, step, etc.

Finally, do we really need separate tabs at all?  I can add full functionality
of a debugger through the prompt commandline with a parser ... ??


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@463 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-03 17:52:06 +00:00
markgrebe 39fe5c8c04 Added Save Properties and Merge Properties to Menu Items in Mac version
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@462 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-03 06:00:22 +00:00
markgrebe 3408b439fd Fixed type in added menus for developer xstart keys
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@461 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-03 05:30:21 +00:00
markgrebe cd4efb7a36 Added Mac Menus for key insertion events back in
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@460 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-03 05:21:01 +00:00
markgrebe 9ac5d2a4d2 Added Mac Menus for key insertion events back in
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@459 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-03 05:05:05 +00:00
stephena b4de09b4f8 Made Stella compile again in MingW. It was apparently a problem with namespaces.
It seems parts of Stella aren't namespace-clean.

Fixed OSX code to use Cmd-Enter for fullscreen (instead of Shift-Cmd Enter).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@458 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-02 21:37:33 +00:00
stephena 57246c69a9 Fixed regression whereby the overlay images were appearing when a snapshot
was taken.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@457 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-31 17:57:50 +00:00
stephena e6e91f3522 Made sure aspect ratio is taken into account when checking for maximum size
of SDL screen.

Still TODO is change OpenGL mode so that aspect ratio and non-integral scaling
are not used when in debugger or launcher mode (ie, when we know the absolute
coordinates of the screen).  We do this since those modes are mostly GUI-based,
and the GUI doesn't look quite right when using OpenGL scaling.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@456 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-30 16:25:47 +00:00
stephena 298c6f2456 Updated Windows port with latest core changes. Except now, the thing
compiles in Visual Studio and not MingW.

Words can't express how much I hate Windows development, and I'm
_THIS CLOSE_ to just making Visual C++ .Net an absolute requirement
and be done with it.  End of rant :_


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@455 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-29 18:54:28 +00:00
stephena 1dc74f75e9 Made sure that dirty-updates are being done correctly wrt overlays.
Fixed bug where sometimes the options menu wasn't being redrawn when
resizing the screen.

Fixed bug where saving the settings in VideoDialog sometimes made the
framerate go to 0, and hence caused the application to take all CPU time.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@454 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-29 16:09:21 +00:00
stephena 5c1775d45c Removed 'mergeprops' commandline argument.
Added Alt-s key to merge current properties into stella.pro.  Together with
the Ctrl-s key which saves current properties to a new properties file,
there was no longer any need for the mergeprops argument.

Major update of the Stella manual, including the further consolidation
of the main codebase with the OSX version, as well as snapshots of the
integrated GUI.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@453 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 23:57:10 +00:00
markgrebe 9e5a330700 Fixed an issue with Mac specific code in EventHandler. Keypresses were being processed for both Key down and Key up events, when they should have been Key down only. I added the && state to the if statements
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@452 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 22:10:43 +00:00
markgrebe 57979ea033 Added handling of Cmd-h, Cmd-m, and Cmd-? back into Macintosh version, as these are standard Mac OS Key shortcuts
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@451 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 21:50:07 +00:00
markgrebe ce294522a7 Changes to allow for command line execution of Stella on the Macintosh
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@450 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 21:06:41 +00:00
stephena 6706fb41f7 Reworked FrameBuffer::update() and FrameBuffer::refresh(). Sometimes the
mediasource and overlay need to redrawn independently of each other.

Added mouse and joystick events passing to the debugger.

Fixed bug whereby if a settings file didn't exist, the default mapping
for a joystick wasn't being done.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@449 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 17:25:41 +00:00
markgrebe 9887210759 Changed compiler to gcc4, and changed version string to 2.0 Alpha
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@448 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 01:37:05 +00:00
markgrebe 1fc5fa9ac2 Added ability for user to open ROM by dropping it on running application's Icon in dock.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@447 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 01:29:29 +00:00
markgrebe e5ea2f99be Added Mac Specific Classes
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@446 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 01:28:36 +00:00
markgrebe cf8b71bb25 Made theOSystem global so that the Mac OS specific object can call the createConsole method to open a cartridge from the user droping a file on the running icon.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@445 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-28 01:23:54 +00:00
stephena 8a0432af80 And so it begins ... Very rudimentary support for the integrated debugger
has started.  The debugger can only be launched when in emulation mode, and
is toggled by the ` (backquote) key.  Right now, I'm still fine-tuning the
infrastructure.  When you press `, the SDL window resizes itself to 510x382
pixels (large enough at single zoom for 800x600 and under, and at double
zoom for 1024x768 and above).  The emulation is moved to the upper left
corner, and the remaining space will be filled with debugger widgets (making
extensive use of the TabWidget to squeeze as much as possible into the
limited screen real-estate).  It's my intention for at least _minimal_
debugger functionality to be included in the next release.

Removed 10% gap around framebuffer in fullscreen OpenGL mode.  I'm moving
Stella towards a totally unified codebase, so if a feature can't be added
to both types of framebuffers, it won't be added at all.  The one exception
is gl_aspect; I still want to keep that one around.  And I eventually may
add aspect correction to the software mode as well, ala ScummVM.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@444 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-27 18:00:49 +00:00
markgrebe ec27cb2b1c Initial checkin of Mac project for working with new version of Stella
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@443 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-27 17:13:23 +00:00
markgrebe 6dc0465d35 Added required MAC OSX specific code for interface between objective-c and c++
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@442 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-27 17:09:26 +00:00
markgrebe dbfda0f59b Fixed type in MacOSX specific code
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@441 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-27 17:05:44 +00:00
stephena 1017bd3222 Changed some FIXME's to TODO's, since they probably won't be done for the
next release.

Added support for inspecting the modification time of the rom directory,
and forcing a reload if that directory has been changed.  So, if you add
or delete a ROM from the romdir, the next time you start Stella, it will
automatically reload the rom listing for you.  Pretty cool I think :)

Added support for each derived OSystem to set its video drivers, and support
to the VideoDialog to show them in a dropdown menu.  That means that Win32
users will be able to select between 'windib' and 'directx' in the VideoDialog
(when I update the Win32 code to do so).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@440 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-26 18:56:58 +00:00
stephena 9722d7f554 Added continuous key event support to the DialogContainer. That means
one can hold down a key, and after a small delay, the key event will be
repeated.  This is much better than having to push the 'down arrow' 100
times in a large scroll box.  Still TODO is handle mouse clicks in the same
way.  The code is there, but it's commented out.  This will be much harder,
since the GUI code from ScummVM wasn't designed to work that way.

Removed x,y items when sending joystick events, since that information
isn't available in SDL joystick motion.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@439 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-05-26 15:43:44 +00:00