Commit Graph

19454 Commits

Author SHA1 Message Date
Megamouse
0b535328c8 Qt: Add exit game shortcut 2026-06-11 11:15:15 +02:00
kd-11
f32ff351da rsx: Use mip0 resolution scale when computing mipmap scaling factors 2026-06-09 23:53:48 +03:00
Elad
e379fba97d SPU/PPU: Implement PPU reservation priority over SPUs 2026-06-07 23:30:05 +03:00
Elad
57b4687ac2 cellAudio: Fix _mxr000 event queue hack 2026-06-07 19:52:34 +03:00
kd-11
339877ea7d rsx: Handle mipmap sampling edge case when SNORM emulation is active 2026-06-07 18:56:15 +03:00
Malcolm
e7165cbe99 RSX: Use one-shot cacheline wait in semaphore acquire 2026-06-07 15:55:28 +02:00
Malcolm
d85f1c7155 RSX: Add hardware spin_wait helper, use it in flush requests 2026-06-07 15:55:28 +02:00
Rad0van
9e2c41bd48 cellAudio: fix _mxr000 surmixer event-queue key constant
The "Dirty hack for sound" in AudioSetNotifyEventQueue() is gated on a
named constant c_mxr000 that is supposed to equal the IPC key of the
_mxr000 event queue created by the game's _cellsurMixerMain thread
(0x8000cafe02460300, e.g. Virtua Fighter 5 FS / SEGA AM2 CRI titles).

When the inline literal was refactored into the named constant in
730badd37 ("cellAudio: Move and partially fix _mxr000 hack", 2023) a
trailing hex digit was dropped: 0x8000cafe0246030 instead of
0x8000cafe02460300 (the value used by the original 2018 hack in
cc0d7c598). As a result `key == c_mxr000` never matches and
lv2_event_queue::find(c_mxr000) looks up the wrong key, so the
surmixer-queue serialization path is effectively dead for every
_mxr000 CRI game.

Restore the correct 16-digit key so the gate and lookup match the
queue the game actually creates.

Note: this corrects a real latent bug but does not by itself resolve
the cellSurMixer null-deref in VF5FS (#17066), which is a separate,
flaky CRI channel-strip init divergence.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 15:05:29 +02:00
Whatcookie
2d1be09180 SPU LLVM: Use TBL for AArch64 ROTQBY shuffles 2026-06-06 18:51:35 +02:00
Rad0van
d25972e196 JIT/AArch64: advertise +i8mm to the LLVM target machine
The PPU/SPU recompilers emit i8mm intrinsics (ummla/smmla, used by the
SPU GBB/GBH gather paths) gated on utils::has_i8mm(). The JIT's MAttrs
list mirrored dotprod/sha3/sve from HWCAP but never added i8mm, and the
resolved -mcpu on Apple silicon is the cortex-a78 fallback (no i8mm), so
the backend aborted with "Cannot select: intrinsic %llvm.aarch64.neon.ummla"
on every game. Mirror i8mm into MAttrs like the other features.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit 52d121fee79cc569c9ac273852edd0e493ae51fc)
2026-06-06 18:34:38 +03:00
Megamouse
62d32ab45e Update SDL to 3.4.10 2026-06-06 01:23:02 +02:00
Megamouse
1ca995cc96 Update FAudio to 26.06 2026-06-06 01:23:02 +02:00
Malcolm
3164d44952 SPU LLVM: Use I8MM for GBH and GBB 2026-06-05 23:19:35 +02:00
Sanjay Govind
546f3082a2
usb_device: present wii instruments as PS3 instruments (#18796)
The instruments work exactly the same but the IDs are different, so
doing this allows them to work in games
2026-06-05 21:08:46 +02:00
Nico Franke
8d9abd396b
Make FFB direction encoding for emulated G27 configurable (#18776)
This adds a dropdown in the emulated G27 settings dialog ("Force
feedback direction encoding") with three options: Steering Axis
(default), Cartesian, Polar. Default is Steering Axis so existing users
see no change.

RPCS3 right now hardcodes SDL_HAPTIC_STEERING_AXIS for the spring and
constant-force effects it sends to the host wheel. That's SDL's
recommended encoding for wheels and works on the hardware the code was
written against. Some Windows DirectInput drivers (like my MOZA R3) do
not react to these affects at all. This now allows changing it to an
encoding that works.
2026-06-05 20:09:35 +02:00
Megamouse
8112c7cc19 Initialize rtmidi async
On my system this opening the settings takes 10 seconds on a cold boot.
Letting it initialize async during boot reduces this delay drastically.
2026-06-05 16:28:33 +02:00
kd-11
bf85a3fdd9 rsx/vk: Suppress the pool growth signal a bit
- Still allows for growth when needed but avoids creating larger sets unless there really is demand for it
2026-06-05 15:42:32 +02:00
kd-11
8e370c2cf1 rsx/vk: Implement auto-scaling of descriptor pool sizes 2026-06-05 15:42:32 +02:00
Malcolm
6349ea2ee9 SPU LLVM: SVE multiply optimizations
- Reduces most SPU multiply instructions to a single operation
- Add SVE length detection, only use SVE instructions for 128b sve for
  now
2026-06-05 14:58:24 +02:00
Whatcookie
2f2ac69d60 SPU LLVM: Idiomatic FSM implementation
- Compiles down to just 2 instructions on Neon, instead of falling back to scalar instructions
- Remove this workaround when LLVM fixes this issue upstream: https://github.com/llvm/llvm-project/issues/200325
2026-06-05 09:48:16 +02:00
Malcolm
4a92d96cf4 SPU LLVM: Use 128-bit SVE2 for FMS 2026-06-05 08:41:17 +02:00
Windsurf7
9a2243bfcb
Add "Enable Mouse-based Gyro" setting to I/O config (#18835)
This is a continuation of my work on #18113.

Addresses issue #18197.

Adds a new checkbox in the I/O settings tab that enables mouse-based
gyro emulation at game startup, making the feature more discoverable to
users.
2026-06-04 14:49:48 +02:00
digant73
97704e35e0 Remove duplicated code 2026-06-04 12:06:42 +03:00
Ani
40e9ee5af0 rpcs3_version: Bump to 0.0.41 2026-06-04 02:58:57 +02:00
Megamouse
3fa1241ac0 Initialize render_creator in headless mode 2026-06-02 21:49:09 +02:00
Megamouse
62747bb40d Set OpenGl as default renderer if vulkan is not supported 2026-06-02 21:49:09 +02:00
Megamouse
44b33f1962 Force renderer to default renderer if not supported 2026-06-02 21:49:09 +02:00
Megamouse
cc999d4210 Force disable some settings in headless mode 2026-06-02 21:49:09 +02:00
Megamouse
7c2bd56776 cellMusic: don't set current_track to umax on prev
There's no reason to do that and it might cause OOB access elsewhere.
2026-06-02 21:49:09 +02:00
Megamouse
5fc7450865 Fix uninitialized members in queue_submit_t 2026-06-02 16:10:21 +02:00
Megamouse
4ca0f0b11d cpu: fix prefetch list 2026-06-02 16:10:21 +02:00
Megamouse
66de4022b1 Fix ARCH_X64 define for hypervisor_context_t 2026-06-02 16:10:21 +02:00
Megamouse
2b9368abf5 Fix potential OOB access in try_to_enum_value 2026-06-02 16:10:21 +02:00
Megamouse
f8a5a6ad93 cellMusicDecode: fix track index on next if already on last track
Fixes an OOB exception
2026-06-01 08:58:52 +02:00
Megamouse
fa1aa9dcf3 cellMusicDecode: Fix track selection on prev/next track 2026-06-01 08:58:52 +02:00
Megamouse
883a6889e0 cellMusicDecode: Fix read position on prev/next track 2026-06-01 08:58:52 +02:00
Megamouse
1b5a895346 cellMusic: fix log level of "Comparing track" message 2026-06-01 08:58:52 +02:00
Megamouse
2187f8ae51 cellMusic: Fix OOB playlist access
current_track can be umax
2026-06-01 08:58:52 +02:00
Megamouse
17f1fc31bc cellMusic: fix occasional deadlock during auto-play in playlist mode 2026-06-01 08:58:52 +02:00
Elad
ecf77ecef0 Add type-safe idm::last_id() overload 2026-05-31 19:54:10 +03:00
Elad
db474c292f utils: Make utils::serial::operator T() explicit 2026-05-31 19:54:10 +03:00
Elad
b08e805020 PPU Analyser: Fix possible infinite loop
Because of possible overflow.
2026-05-31 19:54:10 +03:00
Megamouse
7b540cdb20 cellMusic: don't send status callback if we just keep playing automatically 2026-05-31 15:49:32 +02:00
Megamouse
059e70069d cellMusic: improve music list playback 2026-05-31 15:49:32 +02:00
Megamouse
9c719a5857 trophies: fix return value of GetUnlockedPlatinumID with invalid file 2026-05-31 15:49:32 +02:00
Megamouse
375eb21c07 Fix some format and logger typos 2026-05-31 15:49:32 +02:00
Megamouse
1bd246d2d3 Fix some gcc warnings 2026-05-30 23:58:51 +02:00
Megamouse
8c82ce8bed Fix slicing warning in tar_object::save_directory 2026-05-30 19:31:16 +02:00
Megamouse
eafa6a9a25 Gracefully exit after headless installation. 2026-05-30 19:31:16 +02:00
Megamouse
b9d027a76c Implement fake ps move external devices 2026-05-30 15:48:56 +02:00