Commit graph

1407 commits

Author SHA1 Message Date
Elad a8f80ebfe9 sys_time.cpp: Anti TSC measures 2025-01-03 16:26:21 +02:00
Megamouse fb237dd568 Audio: Add mute/unmute and volume shortcuts
Also add auto repeat to volume shortcuts
2025-01-02 09:34:47 +01:00
Elad a8bfa6a16c SPU: Operating system LR memory signals 2024-12-29 21:01:17 +02:00
Megamouse 15f29eedee
Fix atomic_ptr value constructing overloads (#16473)
* Fix idm remove

idm::remove calls shared_ptr::exchange with a null_ptr.
This calls the stored object's constructor with null args.

---------

Co-authored-by: Elad <18193363+elad335@users.noreply.github.com>
2024-12-29 14:53:04 +02:00
Elad 439d665096
CELL: Fix reservation notifications 2024-12-29 11:06:44 +02:00
Elad a5ba96e991 Fixup lv2_socket 2024-12-27 22:08:28 +02:00
Elad d376ba5994 Remove lv2_socket_native destructor 2024-12-24 21:31:57 +02:00
Elad 3bf735161f sys_config: Move cleanup to IDM abort 2024-12-24 21:31:57 +02:00
Elad 6eb4138595 Fixup sys_process 2024-12-24 21:31:57 +02:00
Megamouse 53817dcc90 Fix fs::file log formatting 2024-12-23 11:29:13 +01:00
Elad 575a245f8d
IDM: Implement lock-free smart pointers (#16403)
Replaces `std::shared_pointer` with `stx::atomic_ptr` and `stx::shared_ptr`.

Notes to programmers:

* This pr kills the use of `dynamic_cast`, `std::dynamic_pointer_cast` and `std::weak_ptr` on IDM objects, possible replacement is to save the object ID on the base object, then use idm::check/get_unlocked to the destination type via the saved ID which may be null. Null pointer check is how you can tell type mismatch (as dynamic cast) or object destruction (as weak_ptr locking).
* Double-inheritance on IDM objects should be used with care, `stx::shared_ptr` does not support constant-evaluated pointer offsetting to parent/child type.
* `idm::check/get_unlocked` can now be used anywhere.

Misc fixes:
* Fixes some segfaults with RPCN with interaction with IDM.
* Fix deadlocks in access violation handler due locking recursion.
* Fixes race condition in process exit-spawn on memory containers read.
* Fix bug that theoretically can prevent RPCS3 from booting - fix `id_manager::typeinfo` comparison to compare members instead of `memcmp` which can fail spuriously on padding bytes.
* Ensure all IDM inherited types of base, either has `id_base` or `id_type` defined locally, this allows to make getters such as `idm::get_unlocked<lv2_socket, lv2_socket_raw>()` which were broken before. (requires save-states invalidation)
* Removes broken operator[] overload of `stx::shared_ptr` and `stx::single_ptr` for non-array types.
2024-12-22 20:59:48 +02:00
capriots 9d4ff13c2b
cellAdec implementation part 2: LPCM decoder (#16381)
* cellAdec: savestate fixup

* simd.hpp: add some intrinsics

* cellAdec implementation part 2: LPCM decoder

* cellAdec: set to HLE by default

* cellAdec: review fixes

---------

Co-authored-by: Elad <18193363+elad335@users.noreply.github.com>
2024-12-18 20:21:56 +02:00
RipleyTom 18f82f0006 Fix unused p2p socket closing 2024-12-17 15:09:59 +02:00
Megamouse 13cd461a1f sys_rsx_context_attribute: Improve errors 2024-12-11 18:56:53 +01:00
Darkhost1999 05d12f68ad Test
Works on my machine
2024-12-05 12:55:23 +02:00
Elad a4ea71d18f CELL: Rewrite reservation notification postponing 2024-11-30 18:06:34 +02:00
RipleyTom 0e8f1a9bf9 sys_net: Remove lingering ppu_to_awake from queue on timeout 2024-11-22 18:44:01 +02:00
Elad 72437b50b4 LV2: Fix thread notifications regression 2024-11-12 15:00:35 +02:00
oltolm 2b0f786b2d
Fix std::basic_string warnings (#16261) 2024-11-11 21:54:44 +02:00
Elad 85d1649696 utils/atomic.hpp: Make atomic_op reject non-non-const lvalue 2024-11-02 21:43:35 +02:00
Elad e67d090c35 Fixup sys_event_port_send 2024-11-01 10:43:46 +02:00
Elad ddd0494cf4 Silence sys_ss_access_control_engine 2024-11-01 10:43:46 +02:00
Elad b87c891ec4 Fixup sys_event to check EBUSY only for PPU->PPU signals 2024-11-01 07:37:57 +02:00
Elad 5c5edb4785 sys_event: Implement EBUSY for disconnection 2024-10-30 21:15:16 +02:00
elad335 97f2b6b701 Fix get_system_time() 2024-10-29 19:26:33 +02:00
elad335 29c1c3df1f sys_event_flag_set: Minor improvement 2024-10-29 19:26:33 +02:00
elad335 3ecb14dcda sys_event_flag_set: Break atomic operation dependencies 2024-10-25 15:53:53 +03:00
elad335 a325eb52bd Compilation hotfix 2024-10-25 13:21:49 +03:00
elad335 2e8029a45b get_system_time(): Add fast TSC-based path 2024-10-24 21:03:06 +03:00
Elad 3378b03c1f Optimize get_system_time using 128 bit math 2024-10-24 21:03:06 +03:00
Elad Ashkenazi e58a3ab7e0 sys_spu: Fix order of some checks 2024-10-15 10:42:22 +03:00
Elad Ashkenazi e0e1c729cd Fix sys_spu_thread_group_disconnect_event 2024-10-15 10:42:22 +03:00
Elad Ashkenazi 7c6b558647 Improve sys_spu_thread_initialize 2024-10-15 09:36:36 +03:00
Elad Ashkenazi 217c924d42 Fix sys_vm_memory_map 2024-10-15 09:36:36 +03:00
Megamouse 16c1b9ed73 Fix some narrowing warnings 2024-10-14 21:29:51 +02:00
Elad Ashkenazi 2fc9ae5d28 sys_vm: Argument checking fixes 2024-10-14 20:15:14 +03:00
Elad Ashkenazi 28dc7356a8 sys_memory: Fix argument size type 2024-10-14 20:15:14 +03:00
Elad Ashkenazi f6c585902a sys_spu: Fix SPU queue index type 2024-10-14 20:15:14 +03:00
Elad Ashkenazi 693cf9950f sys_spu: Minor fixes 2024-10-14 20:15:14 +03:00
Elad Ashkenazi d51d5ce86d SPURS limiter tweaks 2024-10-07 15:02:23 +03:00
Elad Ashkenazi 8b79fd3da1 SPU: Make SPURS limit a dynamic setting 2024-09-26 06:59:20 +03:00
Elad Ashkenazi ad42a2b89a SPU: Task-based SPURS limiter 2024-09-24 10:31:37 +03:00
Ani 02362a4807 spu: Do not apply a Max SPURS Threads limit to libSail
On all the tested games (e.g. Naruto Ultimate Ninja Storm, Catherine),
limiting SPURS threads for "_libsailCellSpursKernelGroup" causes video
playback to hang and the game to permanently freeze. These games still
function properly while limiting the other CellSpursKernelGroup groups,
as I've confirmed through manual thread pausing.

I have not found a single example that shows that 
_libsailCellSpursKernelGroup threads can be limited without the game 
freezing.

This allows the Max SPURS Threads setting to work with more games, or to 
work with a lower thread limit count for games where it already works.
2024-09-21 15:02:41 +02:00
capriots d60eced317 cellAtracXdec: set to HLE by default 2024-09-14 19:37:21 +02:00
RipleyTom 3dc75dc3d1 Handle WSAENETRESET error 2024-08-25 13:04:44 +03:00
Elad Ashkenazi 1bd4565186 Implement thread_ctrl::wait_until() 2024-08-17 06:38:49 +03:00
Elad Ashkenazi d0ebba6c5e CELL: New reservation notifications mechanism 2024-08-14 11:53:00 +03:00
Megamouse 548cc074f4 input: log all config file content if used 2024-08-08 22:34:20 +02:00
Megamouse 7884bcc21d Fix unused function warning 2024-08-01 02:44:01 +02:00
Elad Ashkenazi 02aac2c52e sys_fs: Non-existant overflow bugfix
It would technically never overflow.. but this add minimal protection against adding beyond [PPU thread-count + entries count]
This does not induce an atomic loop which limits until entries.size() but is slower.
2024-07-28 12:36:42 +03:00