Commit Graph

10 Commits

Author SHA1 Message Date
4ce206f40d Debugger improvements (#11)
- Added selection and CTRL+C to copy lines.
    - Supports selection ranges larger than the ListView; scroll and Shift+Click to select all text from the anchor to the click location (even across multiple pages).
    - Scroll-on-select would be nice to have, but it is not implemented here.
    - Keyboard selection would also be nice. Shift + arrows/page up/page down seems like it would be a decent UX... TBD.
    - Right click to copy + deselect. Or hold left click and press Esc or right click to deselect without copying.
- Added support for scrolling with the mouse wheel.
- Added support for scrolling with the keyboard when the ListView has focus.
- Added support for scrolling with the scrollbar thumb.
- Switched to a fixed-width font for better readability.
- Show OpCodes (instruction bytes).
- Increased the window size to accommodate the better font and OpCode column.
- Normalized all instructions to lowercase.
- New colors to represent instruction state:
    - Red: Breakpoint
    - Green + outline: Current PC
    - Orange + outline: Current PC + breakpoint
    - Blue background: Selection highlight
- Fix watchpoint access size checks so they don't have to be an exact match on the address.
- Minor bug fixes.
2023-08-19 16:29:31 +02:00
15e8aa4500 Toggle breakpoints by double clicking the list (#21) 2023-08-19 16:29:31 +02:00
021efea8e9 Improve watchpoints performance part 2 (#9)
- Missed some invocations in the cheats implementation
2023-08-19 16:29:31 +02:00
f113c8482d Improve watchpoints performance (#7)
- Split virtual memory reads into functions that should trigger watchpoints (for CPU Interpreter) and functions that do not (various debug tools, cheat search, and instruction fetch).
2023-08-19 16:29:30 +02:00
0a23a36b29 Improve CPU trapping for watchpoints
Block the CPU thread when a watchpoint is hit. This moves the blocking
to just before the memory access happens. Allows removing the gross
hacks that changed CPU interpreter flow control.

Removes unnecessary double-watchpoint checks in LD and SD instructions.
2023-08-19 16:29:30 +02:00
d58bed9d06 Watchpoint support
- Watchpoints are added in the breakpoints dialog.
- "Exec" is a breakpoint.
- "Read", "Write", and "Read/Write" are watchpoints.
2023-08-19 16:29:30 +02:00
6583f6b4b4 Small hack to boost boot times of N64DD hacked cartridges 2023-08-19 16:29:29 +02:00
3dfc995d02 Expose r4300i debugger stuff, controlled through two new apps settings "Have Debugger=True" and "Show More Messages=True"
This makes it so the Release External build can now be used to debug the roms without having to also provide a Release build.
Next commit will add these options via the graphical interface and clean up some options that have become deprecated
2021-04-22 06:52:47 -05:00
d1edf9d8c6 Add automatic rsp/rdp delay to Memory.c
Code mainly lifted from Registers.c
2021-03-11 19:15:52 -06:00
75e01b431f Using local commit to keep track of further changes 2021-02-27 15:08:28 -06:00