Commit graph

1893 commits

Author SHA1 Message Date
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
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
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
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
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
capriots
108247dccc Invalidate savestates 2024-11-23 17:01:25 +02:00
capriots
9b3b9562c0 cellAdec: review + warning fixes 2024-11-23 17:01:25 +02:00
capriots
e7f1a34fe1 cellAdec implementation part 1: abstraction layer 2024-11-23 17:01:25 +02:00
Megamouse
29901d65ed More constexpr 2024-11-16 15:10:20 +01:00
Megamouse
4df58494a0 Fix compilation 2024-11-16 09:45:31 +01:00
Megamouse
b89cc9b973 cellGem: implement real ps move handler 2024-11-16 09:45:31 +01:00
oltolm
2b0f786b2d
Fix std::basic_string warnings (#16261) 2024-11-11 21:54:44 +02:00
Megamouse
2262ac1684 Qt: Replace QMap with std::map
This should reduce the amount of string conversions during list refreshes
2024-11-06 09:34:32 +01:00
NicknineTheEagle
6d766ccbb5
cellSaveData: Add autosave indicator (#15720) 2024-11-04 21:53:34 +01:00
Elad
85d1649696 utils/atomic.hpp: Make atomic_op reject non-non-const lvalue 2024-11-02 21:43:35 +02:00
RipleyTom
4832267307 Fixes audio buffering on non-windows platforms 2024-10-05 11:44:15 +03:00
RipleyTom
c49ff490bc Fix scenp_score_record_score param check 2024-09-29 12:09:11 +03:00
RipleyTom
88adaa9d2d Add some extra param handling for cellNetCtlGetInfo 2024-09-27 19:14:09 +02:00
RipleyTom
9dd0b055d0 Fake sceNpMatching2GetLobbyInfoList 2024-09-26 21:12:10 +02:00
Megamouse
c89e30b3d9 cellMsgDialog: only abort dialogs that were actually spawned by cellMsgDialog 2024-09-20 20:43:57 +02:00
RipleyTom
3d9c8a670e Implement old matching API 2024-09-19 20:34:56 +02:00
capriots
66eae05e75 cellAtracXdec: fix FFmpeg warning 2024-09-18 07:57:10 +02:00
capriots
7f2534819e cellAtracXdec: review fixes 2024-09-14 19:37:21 +02:00
capriots
e678931cee cellAtracXdec: review fixes 2024-09-14 19:37:21 +02:00
capriots
965dbf2c12 cellAtracXdec: review fixes 2024-09-14 19:37:21 +02:00
capriots
624f34ae13 cellAtracXdec: review fixes 2024-09-14 19:37:21 +02:00
capriots
c813c5e953 cellAtracXdec implementation 2024-09-14 19:37:21 +02:00
capriots
5ce9c5b09f cellAdec: add internal datatypes 2024-09-14 19:37:21 +02:00
Megamouse
53c84577c0 Set cellSysutilAvcExtInitOptionParam to notice 2024-09-08 20:04:30 +02:00