Commit Graph

12 Commits

Author SHA1 Message Date
b7043e8dce Only call SetupPlugins when necessary 2023-07-23 14:35:17 -07:00
9cf39149b7 Remove Hidden Window and improve stability when resetting
The reset functionality is still very broken. Too many data races
between the GUI thread, CPU thread, and plugin threads.

This is at least a good start; resetting with F1 now works most of the
time. I can still get it to throw the "Emulation thread failed to
terminate plugins" error by hitting F1 ridiculously quickly with the
recompiler core. It doesn't seem to break as badly with the interpreter.

Anyway, yeah, this is just lack of synchronization causing havok.

The hidden window was some kind of ludicrous hack by a previous
contributor that attempted to hack around some other hacks, pile on some
more hacks to "fix" the broken hacks, and we get what we have today.
2023-07-23 12:27:37 -07:00
743b2f131f improved plugin stabability. 2023-07-09 13:51:10 -04:00
14826f939f new rsp plugin api. fixed rom browser sorting. update version to beta 2023-05-22 18:22:10 -04:00
0c3a4df636 #bugfix
synched rom browser and main emulation windows.
fixed window drift when taskbar is on the top or left.
2022-08-28 15:44:56 -04:00
0905b43902 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.
2022-06-13 01:08:10 -07:00
0fd6e38530 Fix sorting in ROM browser (#18)
- The comparison function was wrong. It only returned false if the
  difference between the items was exactly 1! Caused assertion errors in
  std::sort() with some sort field selections.
- CRC comparisons were broken (signed/unsigned comparisons).
- Comparison indices were broken by adding the release version and SDK
  version fields in the wrong place.
2022-06-04 15:34:36 -07:00
4eb49dcd80 Add release version and SDK version to ROM info and Browser (#15) 2022-06-04 12:57:23 -07:00
9dfb34accf Fix manufacturer decoding in ROM info (#14)
- Fixes info for Ocarina of Time.
- Matches the decoding by uCON64.
2022-06-04 11:45:17 -07:00
203e552b89 Move SetupPlugins function above SetupMenu
The menu has features (plugin configuration) that rely on the plugins being loaded
Not sure why this was like this
2022-03-03 08:42:50 -06:00
3b0509a7be Incorrectly had RomList_FindItem use the Rom List size directly instead of doing 0 to size - 1
This was causing problems looping back to the top when the last item was selected and worse yet a crash because the index went out of range
2022-02-03 00:35:13 -06:00
b08f5bfc59 CPU
Added Skip ability for Interpreter debugger
Exposed some variables to C++ (For RomBrowser rewrite)

Interpreter CPU
Defined what Skip should do, may need more work in the future
Right now it increments the program counter by 4

Pif
Fixed problem with enum CIC_CHIP (C++ was including this file more than once so a guard was added)
Exposed some functions to C++ (For RomBrowser rewrite)

Plugin
Exposed plugin setup functions to C++ (For RomBrowser rewrite)

r4300i Commands
Enabled the skip button by default and added code back to the skip button so it actually does something

Rom
Added test case to see how long xxhash would take to calculate

RomBrowser
Slight rewrite to C++ (using vectors now instead of manually allocated memory)
There's a bit of debug code left in from the xxhash test case but most has been removed

RomTools_Common
Better defined the use of enum CIC_CHIP functions from Pif (Since this is in C++ it was complaining)
Also made sure to expose all the functions to C

xxhash64
Added header to make use of xxhash
2022-02-02 11:16:35 -06:00