Commit graph

58 commits

Author SHA1 Message Date
Jean-Philip Desjardins
2d16426412 Enable accurate ADDi only on the VU block that needs it.
Some checks are pending
Build Android / build_android (apk) (push) Waiting to run
Build Android / build_android (libretro) (push) Waiting to run
Build iOS / build_ios (push) Waiting to run
Build JavaScript / build_js (push) Waiting to run
Build Linux / build_linux (push) Waiting to run
Build Linux ARM32 / build_linux_arm32 (push) Waiting to run
Build Linux ARM64 / build_linux_arm64 (push) Waiting to run
Build macOS / build_macos (push) Waiting to run
Build Windows / build_windows (x86_32, Visual Studio 16 2019, installer32.nsi, win32_msvc2019, Win32) (push) Waiting to run
Build Windows / build_windows (x86_64, Visual Studio 16 2019, installer64.nsi, win64_msvc2019_64, x64) (push) Waiting to run
Build Windows Psf / build_windows_psf (off, x86_64, Visual Studio 16 2019, installer64.nsi, x64) (push) Waiting to run
Build Windows Psf / build_windows_psf (on, x86_64, Visual Studio 16 2019, installer64.nsi, x64) (push) Waiting to run
Check Format / run_clangformat (push) Waiting to run
2024-12-18 13:53:07 -05:00
Jean-Philip Desjardins
67e0c572bc Rename compile hint. 2024-12-18 11:51:32 -05:00
Jean-Philip Desjardins
1f2a662ca6 Add some specialised code path to handle Edge of Reality games.
Uses E bit in a branch delay slot.
2024-08-16 16:44:53 -04:00
Jean-Philip Desjardins
938ee6bc06 Handle D/T bits. 2024-08-16 16:44:53 -04:00
Jean-Philip Desjardins
d4bb3f1e9b Save int register right before altering instruction is executed. 2024-05-24 12:36:41 -04:00
Ian Brown
603dd1f601 Gauntelt 7s 2024-05-21 10:45:47 +01:00
Jean-Philip Desjardins
c2399cdf34 Fix some parameter values that were implicitly converted to RETURN_VALUE. 2024-01-26 13:45:03 -05:00
Jean-Philip Desjardins
71d509c953 Update relativePipeTime later in stall analysis.
Fixes actual times where results are available.
2023-10-19 17:12:45 -04:00
Jean-Philip Desjardins
6f7cd3a41c Remove some dead code. 2023-10-16 18:03:42 -04:00
Jean-Philip Desjardins
b801afb8c4 Add dynamic FMAC stall resolution. 2023-10-16 18:01:34 -04:00
Jean-Philip Desjardins
9bcbe1f699 Update pipeTime when syncing EFU operations.
Fixes issues with Shinobi where WAITP is used and FDIV pipeline needs to be updated as a side-effect.
2023-05-11 10:01:48 -04:00
Jean-Philip Desjardins
38d3775a07 Add proper "empty" return value to GetEffectiveAddress.
Zero is valid and cannot be used as "empty".
2022-12-07 14:48:20 -05:00
Jean-Philip Desjardins
aa8cc9ea36 Detect self loops in VU code. 2022-12-01 14:14:12 -05:00
Jean-Philip Desjardins
930e90a9a2 Stay inside block when it's branch target is itself. 2022-12-01 09:03:40 -05:00
Mahmood - Zer0xFF
2f4f10e91c make VU jumps relative: pass instruction relative location CMIPSInstructionFactory 2022-10-25 17:27:51 -04:00
Jean-Philip Desjardins
4a7b10cad1 Add block category concept. 2022-10-17 14:27:13 -04:00
Jean-Philip Desjardins
33eaad94ad Generate stalls when using result of integer load instruction too quickly. 2022-09-30 09:01:43 -04:00
Jean-Philip Desjardins
b4288b93ce Take FMAC stalls into account when computing branch delay info. 2022-08-24 10:12:20 -04:00
Jean-Philip Desjardins
8483da53a6 Fix max operation. 2022-08-24 10:12:20 -04:00
Jean-Philip Desjardins
927aebc4a3 Rename some constants. 2022-07-11 14:09:46 -04:00
Jean-Philip Desjardins
a214f0296e Update relative pipe time before checking pipelines. 2021-07-27 09:16:04 -04:00
Jean-Philip Desjardins
a4ed0f0694 Upper and lower affected registers code works the same now. 2021-02-14 20:06:23 -05:00
Jean-Philip Desjardins
595ac814a6 First shot at non hack fix for GoW FMAC stall situation.
Makes some wild assumptions, probably need to be constrained to prevent regressions.
2021-02-14 20:06:22 -05:00
Jean-Philip Desjardins
bd9be0078b Add per element stall check for lower ops. 2021-02-14 20:06:22 -05:00
Jean-Philip Desjardins
39d664357a Handle VU branching peculiarities found in Star Ocean 3.
Can probably be extended if we find other problematic cases.
2020-06-02 15:12:27 -04:00
Jean-Philip Desjardins
9a8e08c4c1 Code style fixes. 2020-03-03 09:44:25 -05:00
Jean-Philip Desjardins
c3a1e62b43 Check broadcast elements in FMAC stall detection.
Probably needs more checks, but this is a start.
2020-03-02 21:18:16 -05:00
Jean-Philip Desjardins
8d38672c42 Update flag skip compile hint algorithm. 2020-02-27 19:46:02 -05:00
Jean-Philip Desjardins
cbc901c25b Go back to the static adjustment approach.
But this time, do the check per element to prevent false positives that broke games like FF12.
2020-02-27 19:46:02 -05:00
Jean-Philip Desjardins
4aeadfab7b Another slightly different approach.
Fixes Rogue Galaxy.
2020-02-27 19:46:01 -05:00
Jean-Philip Desjardins
20103cec22 Slightly different approach.
Only update Q and P pipelines when a stall is detected.
Fixes FF12.
2020-02-27 19:46:01 -05:00
Jean-Philip Desjardins
8d1f0e0eb8 Add very basic FMAC hazard detection. 2020-02-27 19:46:01 -05:00
Jean-Philip Desjardins
cc274e96b1 Fix code style. 2020-02-10 21:40:09 -05:00
Jean-Philip Desjardins
41b012bfd8 Better skip flags hint computation.
Fixes KH2.
2020-02-10 21:40:09 -05:00
Jean-Philip Desjardins
39db2e8ab0 Move hints computation to a function. 2020-02-10 21:40:09 -05:00
Jean-Philip Desjardins
66684a16b0 Skip flags update when we're sure result won't be used.
This is proof of concept, needs to be cleaned.
2020-02-10 21:40:08 -05:00
Jean-Philip Desjardins
b475b8ff16 Experimental P pipeline support. 2018-08-31 07:40:14 -04:00
Jean-Philip Desjardins
3210ffecfa Breakpoints now work again. 2018-07-26 21:38:17 -04:00
Jean-Philip Desjardins
f2f0b9e6ca Prolog is actually the epilog. 2018-07-26 21:38:16 -04:00
Jean-Philip Desjardins
193e72635a Block lookup table now only stores "entry-point" functions to guest code.
Used to be a 1 to 1 map to covering function for a specific address.
2018-07-26 21:38:15 -04:00
Jean-Philip Desjardins
5e6058b530 Move PC changing piece of code in compiled block.
Makes basic blocks more generic.
2018-07-26 21:38:14 -04:00
Clang-Format
acf75535ec Clang format 2018-04-30 21:01:23 +01:00
Jean-Philip Desjardins
4ed0b7f711 Clear pending XGKICK if current instruction is an XGKIGK. 2017-08-09 23:06:27 -04:00
Jean-Philip Desjardins
2d229688ae Cleanup. 2017-08-09 23:06:27 -04:00
Jean-Philip Desjardins
f5133ab86a Store XGKICK address for delayed execution. 2017-08-09 23:06:26 -04:00
Jean-Philip Desjardins
8c9aa190f3 Delay execution of XGKICK. 2017-08-09 23:06:26 -04:00
Jean-Philip Desjardins
0ff20307b2 Cleanup. 2017-08-09 23:06:26 -04:00
Jean-Philip Desjardins
cdf153ebb0 Cleanup. 2017-01-29 21:13:27 -05:00
Jean-Philip Desjardins
39d8d55630 Reorganised integer branch delay handling code.
Also made it work with all games that had known issues.
2016-08-16 22:05:50 -04:00
Jean-Philip Desjardins
cb12d803ab Use branchValue. 2016-08-16 22:05:43 -04:00