Commit Graph

696 Commits

Author SHA1 Message Date
urchlay bbd77f6a51 Cleaned up equateList stuff. Now there's only one instance, in the
Debugger, which gets used by both DebuggerParser and D6502, but
neither one keeps a pointer to it permanently.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@505 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-15 23:45:04 +00:00
stephena 1b332ef8f0 The CheatWidget seems complete; RAM contents can now be changed.
Still TODO is somehow draw around the currently active widget,
to show which widget is actually active.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@504 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-15 21:18:47 +00:00
urchlay c00de2813c De-uglified the symbol loading somewhat. It still isn't working 100%.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@503 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-15 20:41:09 +00:00
stephena d6d73fff6f Added widget to Cheats area for changing memory. It's not quite working
correctly yet, but we're close.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@502 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-15 18:45:28 +00:00
stephena 34c7e84d45 Allowed strings starting with numbers to be selected.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@501 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-15 15:48:09 +00:00
stephena a402ecad41 Removed stale StellaX frontend code. Stella now has an internal GUI/launcher,
so this code has been officially abandoned.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@500 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-15 15:38:19 +00:00
stephena eb792b159a Updated ListWidget to extend EditableWidget class (new code from ScummVM
CVS).  This means you can now edit the contents of a ListWidget, and
do something with those new contents based on the signal that's emitted.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@499 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-15 15:34:35 +00:00
urchlay ab9e047d49 Implemented symbol file loading. There are still some rough edges, but
it does work.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@498 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-15 04:30:35 +00:00
stephena 3af4b74147 Added much more functionality to the CheatWidget. Currently, everything
is working except for changing values (but you can still use the RAM tab
to do that).

Basically, the rules are as follows:

1)  Only works on decimal input for now.
2)  Search with empty input returns all addresses (128 bytes).
3)  Comparing a value after a search inspects the current result set
    for the given value.
4)  Compare can make use of 'comparitive' operators '+' and '-'.  If
    specified at the start of input, they search by offset.

Typical uses are as follows:

1)  Search for a '3', then compare to a '2'.  This finds the memory location
that at first contained 3, then later changed to 2 (maybe you lost a life or
something).

2)  Search for all values (leave input blank), then compare to '-1'.  This
finds all memory locations that have decreased by 1 (useful when you don't
know where to start).

I guess after this, Stella will officially be banned from hi-score contests :)


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@497 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-14 18:55:36 +00:00
stephena bf16e9a6f9 Added 'Exit Menu' button to the Options Menu. You can still exit by using
the 'Tab' key, though.

Fixed Unicode issues whereby modifier keys couldn't be used as gaming keys.

Made the 'Left Control' key be one of the defaults for 'Player 1 Fire'.  The
other two are 'Joystick 0, button 0' and 'Space' key.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@496 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-14 12:18:37 +00:00
urchlay cdb61cddb0 DebuggerParser now supports labels in input. Labels are treated
case-insensitively!

We look for labels *first*, so if there were a label "aa", it'd
be impossible to input the hex value "aa" (the label would take
precedence). This doesn't matter for now, since the labels are hard-coded
and none of them conflict with anything, but in the future we'll be
loading symbol files... even then, I don't think anyone's dumb enough
to create a label that looks like a hex value, but it could happen...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@495 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-14 03:11:03 +00:00
urchlay 5e911f1453 Disassembly now shows symbolic names from VCS.H
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@494 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-14 01:55:52 +00:00
stephena 780422bd42 More GUI infrastructure changes. I'm hoping to have the CheatWidget
complete by tomorrow evening.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@493 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-14 01:11:48 +00:00
urchlay 15ae1043e9 Disassembly display in Debugger.state() now shows machine code bytes.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@492 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-14 00:58:39 +00:00
urchlay c866f7962e Add Cycles display to the debugger state. For now this is just the
number of cycles since the ROM was loaded.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@491 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-13 19:04:54 +00:00
urchlay 59f61c7926 Forgot to remove DebuggerCommand.* in last commit, whoops
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@490 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-13 17:24:42 +00:00
urchlay 382d2fd045 Removed stale DCmd* files from src/debugger
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@489 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2005-06-13 17:10:43 +00:00
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