Commit graph

5211 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
Megamouse 1c22cc2f52 overlays: add trophy list dialog 2025-01-01 13:42:21 +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
Megamouse a49cfc5a91 Simplify some ternaries 2024-12-28 19:58:59 +01:00
Elad 7a4e88c146 Savestates: Fix main_ppu_module definition 2024-12-27 22:08:28 +02:00
Elad 0cc655074d serialzation.hpp: Fix add_padding 2024-12-27 22:08:28 +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
Whatcookie 385710672f
SPU LLVM: Recognize ROTYQBYI and ROTQBI rotation pattern (#16409)
Co-authored-by: Elad <18193363+elad335@users.noreply.github.com>
2024-12-22 10:29:15 +02:00
Megamouse ec7f50d925 ps move tracker: set max of radii to 50%
It makes no sense to have a larger radius than half of the image size
2024-12-21 14:36:24 +01:00
Megamouse d450a5ee95 cellGem: add magnetometer support 2024-12-21 03:24:32 +01:00
Megamouse 1cf927aef9 cellGem: request orientation reset during calibration 2024-12-21 00:48:52 +01:00
Megamouse 8678402c25 cellGem: fix some data types 2024-12-20 17:30:25 +01:00
Megamouse ee2ea0cb02 cellGem: invalidate hue and tracking in cellGemInvalidateCalibration
This fixes the cursor color in OVERKILL
2024-12-20 17:30:25 +01:00
Megamouse cf0b4d4ed4 cellGem: split status_flags into calibration flags and runtime flags 2024-12-20 17:30:25 +01:00
Megamouse cc50049bca cellGem: implement cellGemSetRumble 2024-12-20 17:30:25 +01:00
Megamouse c6a76eb9af cellGem: add setting to let the game actually set the device hues
This is not very useful at the moment since the tracker can't really
handle random hues yet.
2024-12-20 17:30:25 +01:00
Megamouse 67e8e373a7 cellGem: set sphere RGB when a hue is set and vice versa 2024-12-20 17:30:25 +01:00
Megamouse 304964ba71 cellGem: add debug setting for painting spheres into the live image 2024-12-20 17:30:25 +01:00
Megamouse d2c58765cd cellGem: fix some data types 2024-12-20 17:30:25 +01:00
Megamouse 0fd6956bb0 cellPhotoDecode: allow dev_bdvd paths 2024-12-19 18:01:10 +01:00
Megamouse 5073477415 cellGem: Split horizontal and vertical mouse rotation cone setting 2024-12-19 16:55:39 +01: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
Megamouse e18ae5abd6 cellGem: expose rotation cone to settings 2024-12-18 09:14:04 +01:00
Megamouse f3ef4f3658 cellCamera: try to fix internal state on stop
When stopping, the camera is supposed to be open still.
Add an expected state to check the camera signal does what it should.
2024-12-18 03:54:25 +01:00
RipleyTom 18f82f0006 Fix unused p2p socket closing 2024-12-17 15:09:59 +02:00
Megamouse 8dbe88782c cellGem: Improve mouse handler orientation
This also makes it easily configurable with the CONE setting in the future
2024-12-13 08:55:52 +01:00
Megamouse f96cfe08f4 cellGem: lock tracker mutex in get_info
This may reduce the possibility of unexpected tracking results
2024-12-12 16:52:47 +01:00
Megamouse a31ebc248e cellGem: implement quaternion transformation 2024-12-11 18:56:53 +01:00
Megamouse 3d11b6efa3 cellGem: try to map accelerometer and gyro 2024-12-11 18:56:53 +01: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 d84fe592c8 PRX: Do not check exported function code address 2024-12-03 19:01:17 +02:00
Elad b4505600c7 PPU: Notify SPUs while waiting for its own state 2024-11-30 18:06:34 +02:00
Elad a4ea71d18f CELL: Rewrite reservation notification postponing 2024-11-30 18:06:34 +02:00
Megamouse 729826ec40 cellGem: fix HUE_NOT_SET 2024-11-29 05:39:11 +01:00
Megamouse a8b0c0be07 cellGem: calculate distance from sphere to camera 2024-11-29 05:39:11 +01:00
Elad 926de68a79 Debugger: Dump related thread information on crash 2024-11-28 13:32:52 +02:00
Elad d63e643081 Emu: Fixup 2024-11-28 05:47:40 +02:00
Elad f3b9d64df7 Add some asserts for g_fxo->init<> 2024-11-27 16:00:40 +02:00
Elad b073d08a52 LLVM: Implement Recursive Intrinsics 2024-11-23 20:22:58 +02:00
capriots e7fd4224ad cellDmuxPamf: add module + stubs 2024-11-23 17:01:25 +02:00
capriots 8778e69f9d cellAdec: make AdecContext and AdecFrame trivial classes 2024-11-23 17:01:25 +02:00