Commit Graph

19526 Commits

Author SHA1 Message Date
Megamouse
bec42ea93e Linux: get unshifted Qt keys 2026-06-30 18:27:37 +02:00
Ani
f5e8a2bfa9 misc: Update README and metainfo 2026-06-29 22:34:47 +02:00
Ani
2f0daa62fc settings: Default Shader Mode to "Async with Shader Interpreter" 2026-06-29 22:34:47 +02:00
Ani
e297c8cc64 settings: Default "Show shader compilation hint" to disabled 2026-06-29 22:34:47 +02:00
Megamouse
026077a7f8 Fix TTY UTF-8 logging 2026-06-29 19:12:27 +02:00
Elad
5b41d5880d SPU Precompilation: Add support for unaligned segments 2026-06-29 19:06:48 +03:00
Megamouse
8eaa3ec9a2 Propagate src_loc in write_to_ptr and read_from_ptr 2026-06-29 16:14:42 +02:00
Megamouse
635aac8ff3 Fix consteval read_from_ptr and add sanity checks if possible 2026-06-29 09:57:43 +03:00
Megamouse
d63273c473 Use pos param of read_from_ptr and write_to_ptr where possible 2026-06-29 09:57:43 +03:00
Megamouse
cffd02bb35 Add more motion control mappings to turntable and ghltar 2026-06-28 13:40:02 +02:00
Megamouse
5c55819b57 emulated turntable: allow to map motion sensors 2026-06-28 10:32:22 +02:00
Walter
a7fc31f321
[SPU LLVM] Additional SHUFB splat/special-index fast paths (#18945) 2026-06-26 14:46:28 +00:00
Megamouse
51b35a7b2f Update 7zip to 26.02 2026-06-26 12:24:04 +02:00
Megamouse
aca652e6fd Update wolfssl to 5.9.2 2026-06-26 08:42:43 +02:00
Walter
09d602fd5a [SPU LLVM] Refactor SHUFB
Refactored `SHUFB` by moving the byteswap optimization prior to the target specific path. Also separated the shuffle and special index constants calculation into separate steps in order to reduce code duplication.

Added a number of TODOs as this refactor revealed some of optimizations opportunities. None of which has been added as this refactor intends to minimize new behavior.
2026-06-24 21:06:13 +03:00
Malcolm
87608865b6 SPU LLVM: Use SVE2 XAR for constant rotates 2026-06-24 09:04:24 +03:00
Christopher Hotchkiss
42242b3c43 SPU Analyzer: fix wrong divisor in Giga const-prop re-decode
The "Fill more block info" re-decode indexed result.data[(ia - lsa) / 41] instead of / 4 (its companion decode uses / 4), so it read the wrong word and corrupted the per-block reg_const / reg_val32 constant propagation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 02:00:35 +03:00
Christopher Hotchkiss
064365d6fb SPU Analyzer: prune dead in-range targets from m_targets (Giga)
Giga cleanup clears m_block_info for removed blocks but left their in-range edges in m_targets, so the register-state walk dereferenced a stale target and aborted ("Range check failed") - e.g. a brsl whose return is a stop-trap, hit in Skylanders Giants. Prune those edges at the m_targets cleanup; export out_target_list after the prune so callers see the cleaned map; keep the initiate_patterns and cond_next-walk guards as defense in depth.

Adds made-up-data regression tests (the exported-map test fails without the prune) and the rpcs3_test.vcxproj entry.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 02:00:35 +03:00
Walter
927e2492ef
SPU LLVM: Calculate FREST fraction LUT using vperm2dlculate FREST fraction using vperm2d for AVX512 (#18931)
The `FREST` instruction uses a scalar lookup-table loop to calculate the
mantissa. Given that it's only 32 elements, we can load it into two
512-bit vectors and treat them as the sources to the `vperm2d` shuffle
instruction. This allows it to be calculated in parallel, improving its
performance.
2026-06-22 15:27:37 +03:00
Megamouse
c7478d6dcc Use more std::string_view 2026-06-21 21:01:39 +02:00
Megamouse
ed6a2f862e Use std::string_view in rpcn code 2026-06-21 21:01:39 +02:00
Megamouse
7b5f3e6921 Fix unused midi_deleter variable warning 2026-06-21 21:01:39 +02:00
Megamouse
f95a225d63 Use std::string_view in rsx code 2026-06-21 21:01:39 +02:00
Megamouse
f8c88c3a7a Use std::string_view in cell modules 2026-06-21 21:01:39 +02:00
Antonino Di Guardo
2af7b58ce4
fix double path delimiter (#18923)
A cosmetic fix. It removes a double delimiter at the end of a path in
`games.yml` when using `VFS games` path.
2026-06-21 19:38:03 +02:00
Megamouse
efc9a1a668 NP: Use std::string_view in clans 2026-06-21 16:37:09 +02:00
Megamouse
8da8c267c6 Update pugixml to 1.16 2026-06-21 16:37:09 +02:00
Megamouse
e32d19ffac Add missing sanity check in savedata_op 2026-06-19 18:26:44 +02:00
Walter
33123bff04
[SPU] Calculate FRSQEST exponent using arithmetic (#18905)
The `FRSQEST` instruction uses a lookup-table to calculate both the
exponent and mantissa. The exponent follows a simple linear pattern and
thus can be calculated using integer arithmetic: `(exponent==0)? 0xFF :
190 - (exponent + 1) / 2`. This patch replaces the LUT with this method,
vectorizing its calculating and saving on 1kB.

The mantissa still relies on a LUT, which bottlenecks this instruction's
emulation despite the improvement.
2026-06-19 18:02:20 +03:00
Megamouse
c0598f61e7 Handle curl_easy_setopt errors in clans_client 2026-06-18 21:16:12 +02:00
Megamouse
0735c55bfd Add user agent to curl requests 2026-06-18 21:16:12 +02:00
Megamouse
5ee92d2e6c Allow to add architecture to game window title 2026-06-18 21:16:12 +02:00
Megamouse
8be3a398dc Log architecture 2026-06-18 21:16:12 +02:00
schm1dtmac
860e2a82b1 [Mac OS] Update runners to OS 15 2026-06-18 17:51:58 +02:00
Megamouse
6a15f9dc8e Qt: use readable strings for windowState and visibility in gui settings 2026-06-17 18:09:27 +02:00
Megamouse
a8559a526a tar: fix save_header regression 2026-06-17 13:13:38 +02:00
Megamouse
5758ab11f7 arm64: fix exclusion_callback type 2026-06-17 13:13:38 +02:00
Elad
c1263eeb79 sys_rsx: Fix IOMAP syscalls argument types 2026-06-17 13:25:59 +03:00
Walter
e429f8cf05 SPU LLVM + zero with saturation subtract
- Added a LLVM SPU recompiler implementation as LLVM can't take advantage of the rounding mode.
- Further optimized the method by replacing MSB check with saturation subtraction. Negative values are saturated to zero due to the float's sign bit.
2026-06-16 14:55:04 +03:00
Walter
4d38e69fd9 Make SSE2 compatible
Removed the SSE4.1 instruction to make it compatible with the baseline instruction set. Increased dependency chain by one instruction and caused constant generation to be slightly more expensive.
2026-06-16 14:55:04 +03:00
Walter
465b845bdf Avoid unused XmmGet on SSE2 path
Avoids creating a redundant `XmmGet` allocation on targets without SSE4.1, by duplicating the declaration across both target specific blocks.
2026-06-16 14:55:04 +03:00
Walter
6593caff67 [SPU ASMJIT] Add SSE4.1 CLZ method
Added a SSE4.1 vectorized CLZ method to the SPU ASMJT.
2026-06-16 14:55:04 +03:00
Megamouse
e5cdae8c5a Use std::string_view in cpu code 2026-06-16 12:07:57 +02:00
Megamouse
54b8b5399b Use std::string_view in pine_server 2026-06-16 12:07:57 +02:00
Megamouse
7a4ec42362 Use std::string_view in loader code 2026-06-16 12:07:57 +02:00
Megamouse
b8ca6d953f Use std::string_view in crypto code 2026-06-16 12:07:57 +02:00
Megamouse
5c4be5dd3b Qt: stop movies when the main window gets inactive 2026-06-16 08:50:48 +02:00
Megamouse
5e745ac661 Qt: prevent playing movies directly after a refresh 2026-06-16 08:50:48 +02:00
Megamouse
79616a376f Qt: don't play movie unless the parent window is active 2026-06-16 08:50:48 +02:00
Megamouse
fbe9ad0f45 Use more fmt::split_sv 2026-06-16 01:28:35 +02:00