Commit graph

5228 commits

Author SHA1 Message Date
capriots
ae670c35f7 cellAtracXdec: use lv2 mutexes + conds 2025-01-14 11:32:32 +02:00
Megamouse
d1ccadbac2 cellGem: ignore intercepted input 2025-01-14 08:53:36 +01:00
Megamouse
1b87e186c4 cellGem: fix initial tracker done state 2025-01-10 21:53:37 +01:00
Megamouse
3eb1e6303c cellGem: Use wait_on, fix fake/mouse move tracker wait 2025-01-10 21:53:37 +01:00
Megamouse
3b8efecc52 cellGem: Use atomic wait instead of wait_for 2025-01-10 21:53:37 +01:00
Megamouse
6716d555ff cellGem: Update controllers at 10 Hz in separate thread
Some games don't use cellGemGetInfo.
Which means we had to reboot the game if the controller wasn't
connected on boot.
Updating controllers outside of the cell functions fixes this problem.
2025-01-10 21:53:37 +01:00
Megamouse
a0df1e09a6 ps move: allow to configure mouse move handler buttons 2025-01-10 00:50:02 +01:00
Megamouse
9407974c10 cellGem: Add more camera image conversions 2025-01-09 09:38:36 +01:00
Megamouse
3381a884d0 Fix some warnings 2025-01-08 20:02:33 +01:00
Megamouse
415c2d0795 fake move: add gyro support 2025-01-08 20:02:33 +01:00
Elad
c6f3737c2a PPU LLVM: Fixup patches enlisting in analyzer 2025-01-07 20:42:45 +02:00
Elad
0b784ff2c1 PPU LLVM: Function table dependent resolver hashing 2025-01-07 15:43:41 +02:00
Megamouse
2ac171a30f move error_report to ErrorCodes.cpp 2025-01-06 15:49:09 +01:00
Megamouse
1ab3a0bd73 RSX/Qt: Reuse gs_frame if possible 2025-01-06 15:49:09 +01:00
Elad
6165c2d8b3 Thread.h: Fix a bug by adding thread_state::destroying_context 2025-01-05 10:01:35 +02:00
Elad
036693a14d Fix sys_config_unregister_service 2025-01-05 10:01:35 +02:00
Elad
2614450e4b Fix IDM image serialization 2025-01-04 09:29:09 +02:00
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