Commit Graph

175 Commits (2b5baa1b821058bbca5431c9c39ea093e1a601eb)

Author SHA1 Message Date
Stenzek 2b5baa1b82
CPU: Add more branch hints to interpreter
Eliminate more bounds checks. This plus the last change can net up to a
20% performance improvement in some games when using the interpreter
(tested on AMD 7950X3D).
4 months ago
Stenzek 667e1147a4
CPU: Add branch hints to interpreter dispatch
Eliminates the bounds check in the switch loop.
4 months ago
Stenzek 18f581ef93
CPU: Use ternary in CPU::WriteRegDelayed()
Shouldn't make any net difference, a good compiler will turn this into a
cmov anyway.
4 months ago
Stenzek a94a90f345
CPU: Fix some unlikely-to-be-triggered issues 5 months ago
Stenzek 54285978cf
CPU: Add Host::ReportDebuggerEvent()
And replace the old ReportDebuggerMessage().

Fixes breakpoint hit counts not updating in UI.
9 months ago
Stenzek bff1f473d6
CPU: Add cop0 breakpoint checks for coprocessor loadstores 9 months ago
Stenzek b1d1c76289
CPU: Don't set cop bits on DBE 9 months ago
Stenzek f9c2aeabbb
CPU: Fix incorrect EPC after cop0 breakpoint 9 months ago
Stenzek 2e659d8cf8
CPU: Pack local state in struct 9 months ago
Stenzek 5a32d194b7
CPU: Fix cop0 breakpoints triggering too late 9 months ago
Stenzek 632aa18df0
CPU: Don't raise #RI on write to read-only COP0 registers
Should be silently ignored instead apparently.
9 months ago
Stenzek 604b7ce73f
Misc: Fix building with GCC
Not that anyone should be doing it.
9 months ago
Stenzek 6c1ee0ca87
Settings: Store custom aspect ratios in main key
What a pain. But allows patches to override aspect ratio to any
arbitrary value.
1 year ago
Stenzek ecf13ded23
Qt: Add Memory Editor window 1 year ago
Stenzek 0de2aafdb9
CPU/Interpreter: Memory read failures are unlikely 1 year ago
Stenzek b106392da0
CPU/PGXP: Implement lwl/lwr/swl/swr
Fixes gaps in sky geometry in Kingsley's Adventure.
1 year ago
Stenzek e183ec307a
CPU/Interpreter: Use aligned address for membps in lwl/lwr 1 year ago
Stenzek cdd054702c
CPU: Log on break exception without PCDrv 1 year ago
Stenzek 2ed7aa5536
CPU: Clear pending bus error when interpreting block
It can get set from a failed rec access much earlier.

Also eliminates a redundant store from the main interpreter loop.
1 year ago
Stenzek 0479500357
CPU: Correctly mask upper 1.5GB of KUSEG
Stops fastmem going into a loop when trying to backpatch accesses
above 512MB.
1 year ago
Stenzek 115ba4433c
CPU/Interpreter: Emulate lo/hi read stall after mult/div
Still need to do the recompiler.
2 years ago
Stenzek 541af8d5de
GDBServer: Stub out thread commands 2 years ago
Stenzek 9939f1cd05
CPU/Interpreter: Use __builtin_{add,sub}_overflow for exceptions
Recompiler already does this.
2 years ago
Stenzek 6a86c80445
CPU: Correct wording about cop2 and IRQs 2 years ago
Stenzek 8772c336ec
CPU: Don't stall until GTE completion on write
Apparently this is what the real CPU does, and some very optimized
code can run slower if we stall early.

Obviously if you write to a register being read by the command,
things are going to break.
2 years ago
Stenzek e08dda0a0a
CPU: Declare state with constinit 2 years ago
Stenzek 4e5b4ba071
CPU: Fix AdEL/IBE on instruction fetch
CAUSE and EPC were swapped for the latter.
2 years ago
Stenzek 4b34825afd
CPU/CodeCache: Remove InstructionInfo pc field
No longer needed since oldrecs are gone.
2 years ago
Stenzek 89f11095bc
CPU: GTE completion cycle should be reset/serialized
Yay more determinism breakage...
2 years ago
Stenzek 9f73e690ad
CPU: Debug mode flag should be updated on state load 2 years ago
Stenzek ac05c35292
CPU: Fix DCIC not being cleared on reset
Stops interpreter mode being unintentionally forced after
restarting some games.
2 years ago
Stenzek 5687dd22bd
PIO: Add basic flash cartridge support 2 years ago
Stenzek 2f6eaa1d43
CPU/Interpreter: Address ICache lines in words
Might help on ARM32, because no unaligned access.

Otherwise, ~23% perf boost in debug builds. But this is pretty
meaningless.
2 years ago
Stenzek 2f70d1bd9c
CPU: Write trace log to data directory 2 years ago
Stenzek 0faa9cf650
Build: Add Devel configuration
Gets you debug assertions and logging, while still producing an
optimized executable.
2 years ago
Stenzek c6746e76f1
CPU/Intepreter: Raise #RI on invalid COP0 move 2 years ago
Stenzek 62414b0c4c
CPU/Interpreter: IBE should not set BD/BT
Apparently. Nothing relies on this. :P
2 years ago
Stenzek 5261cfe8e4
CPU/Recompiler: Tidy up type names
And reduce global namespace pollution.
2 years ago
Stenzek 365e129792
CPU: Fix puts() hook incorrect arg 2 years ago
Stenzek 6ffa5bffab
CPU: Handle mirrors of BIOS syscalls 2 years ago
Stenzek ead9e56c4d
System: Support loading ELF files 2 years ago
Stenzek 6551358212
Log: Replace channel string search with bitset
Knocks off around ~20KB of code.
2 years ago
Stenzek 2d04f2eff9
System: Support loading .CPE files 2 years ago
Stenzek 4ab22921c4
GPUDump: Add GPU dump recording and playback
Implements the specification from:

https://github.com/ps1dev/standards/blob/main/GPUDUMP.md
2 years ago
Stenzek 26b6c704f0
MemMap: Support dynamic page size selection
i.e. 4K to 16K on ARM64.
2 years ago
Stenzek 3dca598063
Log: Switch to enum class
Need to change the channel to a bitset too.. the string lookups are
horribly slow, and conflict when one is a prefix of another.
2 years ago
Stenzek 8fa406061a
CPU: Add SetBreakpointEnabled() 2 years ago
PugsyMAME b5768266bb
Quality of Life changes to breakpoints (#3297)
1. Made it so that breakpoints are checked for a match on 28 bits rather than the full 32 bits. It's much simpler to use 12345 rather than 80012345 and risk getting the number of zeros wrong and also handles the mirror code/memory accesses using 00??????, 80?????? & A0??????.
2. Added bp.hit_count update to execution breakpoints.
3. Changed the Hit breakpoint message at the bottom of the debugger screen to include the hit count [see notes later].
4. Added bp.enabled check to the execution breakpoint (it uses it in the r/w breakpoints code already) [see notes later].

Notes:
3. I've added the hit count to the message as it's quicker to spot but it's also a partial workaround as the Hit Count in the Breakpoints tab doesn't seem to get refreshed.
       4. I thought the checkbox in the Breakpoints tab would set the bp.enabled but it seems it has no affect on any type of breakpoint. The only way to stop a breakpoint is to delete it.
2 years ago
Stenzek ab1c85790c
CPU: Refactor execution mode switching
Fixes single step breaking in branch delay slots with recompiler.
Simplifies initialization.
Removes multiple sources of truth for fastmem.
2 years ago
Stenzek 6d0f92d4fb
dep/fmt: Bump to v11.0.2 2 years ago