Commit graph

2926 commits

Author SHA1 Message Date
Nemoumbra
01b3b59d06 Bugs fixed + enabled MIPSTracer on Mac, desktop Linux and OpenBDS 2024-09-14 19:46:05 +03:00
Nemoumbra
ab7af0cc19 Minor cleanup, new UI button 2024-09-14 19:46:05 +03:00
Nemoumbra
f23b04fb4a Logic errors fixed + refactoring 2024-09-14 19:46:05 +03:00
Nemoumbra
ff5877e993 Renamed the IR instruction, new UI button added 2024-09-14 19:46:05 +03:00
Nemoumbra
a26afb4c2f Implemented the trace reconstruction + bugs fixed 2024-09-14 19:46:05 +03:00
Nemoumbra
25f6b01d86 Added the initialization code + UI bindings + logs 2024-09-14 19:46:05 +03:00
Nemoumbra
e3b09bea59 Ported the MIPSLogger's UI + basic integration of MIPSTracer 2024-09-14 19:46:05 +03:00
Nemoumbra
854579a97b Initial code for the tracer + fixed the file locations 2024-09-14 19:46:04 +03:00
Nemoumbra
34f113207d Added the MIPSTracer files to the project + name fix 2024-09-14 19:46:04 +03:00
Nemoumbra
00cd142365 Comment fix + new QOL method 2024-09-14 19:46:04 +03:00
Nemoumbra
a6be0517dc New IR instruction added 2024-09-14 19:46:04 +03:00
Henrik Rydgård
b6a3996e65 Remove a warning, change some & params to pointers for clarity, func rename 2024-09-11 11:48:12 +02:00
Henrik Rydgård
7139301692 IR interpreter: Replace the assert for downcount with a very predictable branch
Fixes breakpoints and other similar things, with a negligible penalty.
2024-09-11 11:24:43 +02:00
Henrik Rydgård
c3f291e9fe Fix for possible overflow in the resampler (can prevent some audio clicks)
Comment fixes
2024-09-04 12:56:15 +02:00
oltolm
62194185d4 fix shutdown crash on Windows 2024-08-24 13:41:33 +02:00
Henrik Rydgård
9fb97add3f Bugfixes 2024-07-26 14:22:31 +02:00
Henrik Rydgård
96c4ae4457 TimeUtil: Minor cleanup, add precise_sleep() 2024-07-26 11:25:58 +02:00
Henrik Rydgård
5926886c0c Some include cleanup, delete some obsolete code 2024-07-25 14:52:41 +02:00
Henrik Rydgård
eda60a5df9 IR: Disable unworkable overwriting of instructions on invalidation. Add debug-mode sanity check. 2024-07-22 12:03:53 +02:00
Henrik Rydgård
fd9daf7594 Fix some minor issues found by --sanitize. Add --sanitizeub.
Unfortunately the ub (undefined behavior) sanitizer has some bugs, it doesn't
understand pointers to member functions, so can't use it in-game (due to the
vertex decoder).

Thanks Nemoumbra for the reminder.
2024-07-22 11:37:18 +02:00
Henrik Rydgård
aa7fd6979e Disable preloading of function stubs if bPreloadFunctions is off
Fixes #19349. Strange that the game worked at all.

The issue is that the arena could get resized due to precompile during
sceKernelModuleLoad . Now respect the flag that turns precompile off
properly (we should probably make it work differently instead, if we're
gonna have it).
2024-07-22 09:51:58 +02:00
Henrik Rydgård
44f3d113d0 Buildfix 2024-07-22 09:08:47 +02:00
Henrik Rydgård
85e7ff7ac3 Target->Native renaming. More intuitive (at least to me) 2024-07-22 01:24:34 +02:00
Henrik Rydgård
898774a93d Attempt more thorough block invalidation 2024-07-22 01:22:54 +02:00
Henrik Rydgård
d3e6f19b6d Comments, log, cleanup 2024-07-22 01:15:35 +02:00
Henrik Rydgård
78c75e1a0b Delete duplicate function (now that we can easily check for compileToNative) 2024-07-21 19:17:21 +02:00
Henrik Rydgård
9d36a08ec4 Some renaming, remove a gross hack 2024-07-21 19:12:51 +02:00
Henrik Rydgård
8a535ed5d4 Bugfix in DoIRInst, thanks Nemoumbra 2024-07-21 18:56:22 +02:00
Henrik Rydgård
fb499bf5bf ARM32: Remove runtime checks for VFPv3 and NEON since we require these when building anyway. 2024-07-17 22:14:24 +02:00
Henrik Rydgård
e01ca5b057
Logging API change (refactor) (#19324)
* Rename LogType to Log

* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.

* Mac/ARM64 buildfix

* Do the same with the hle result log macros

* Rename the log names to mixed case while at it.

* iOS buildfix

* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Henrik Rydgård
982a83d867 IRInterpreter: Optimize variable shifts (no need to mask by 0x1f) 2024-06-24 09:30:21 +02:00
Henrik Rydgård
06315ae6ee IRInterpreter: Slight optimization for fmul
Just put stuff in temporaries, allows for better codegen
2024-06-24 09:12:57 +02:00
Henrik Rydgård
6ebec02f05 Fix crash in JITIR after disassembly improvement.
Fixes #19292
2024-06-22 15:16:27 +02:00
Henrik Rydgård
cbdb2a37eb
Merge pull request #19264 from LunaMoo/30FPS_workarounds
Change GOWFramerateHack30 to FramerateHack30 and workaround timing issues
2024-06-20 11:42:09 +02:00
Henrik Rydgård
06e636bfdc Build and comment fixes 2024-06-19 20:24:59 +02:00
Henrik Rydgård
e64d768113 Implement the same for ARM64 2024-06-19 20:00:36 +02:00
Henrik Rydgård
0080f71ca4 Implement FPU rounding mode support in the IR interpreter for x86/x64 2024-06-19 18:09:38 +02:00
Henrik Rydgård
9ef5250387 IRJit: If we're in "JIT using IR" mode, don't accidentally optimize for the interpreter. 2024-06-11 10:24:08 +02:00
Henrik Rydgård
5bfc0259be Optimize away the redundant vector loads in the Wipeout games. 2024-06-08 23:22:58 +02:00
Henrik Rydgård
2ff91fab2b Optimize a common case of the ins instruction 2024-06-08 23:10:29 +02:00
Henrik Rydgård
c9ca3904d3 Combine move-from-gpr and float cast. 2024-06-08 22:59:48 +02:00
Henrik Rydgård
0abcd00372 IR Interpreter: Don't split up lone lwr/swr/lwl/swl instructions, the interpreter handles them faster. 2024-06-08 22:28:11 +02:00
LunaMoo
1f21ebdff3 Change GOWFramerateHack30 to FramerateHack30 and workaround problems in:
- Blitz: Overtime,
- Brian Lara 2007: Pressure Play.
2024-06-08 18:02:44 +02:00
Henrik Rydgård
0c246297d2 Create an IR op for a FPRtoGPR + shift-right-8, very common 2024-06-07 21:26:20 +02:00
Henrik Rydgård
d1e0384b2f Improve disasm 2024-06-07 19:32:37 +02:00
Henrik Rydgård
bd0beb68a4 Add new IR optimization pass, OptimizeLoadsAfterStores 2024-06-07 19:32:37 +02:00
Henrik Rydgård
da88011805 Specialize a few arithmetic instructions for the interpreter. 2024-06-07 19:32:37 +02:00
Henrik Rydgård
a4c4fb44fb Cleanup 2024-06-07 18:33:48 +02:00
Henrik Rydgård
94ef6d4ce7 Fix savestates (oops) 2024-06-07 18:33:40 +02:00
Henrik Rydgård
7ef6cdb515 Improve accuracy of block timing 2024-06-07 10:17:16 +02:00