RipleyTom
cd87a64621
Headers cleanup
2025-02-11 20:38:35 +01:00
Elad
86b7078464
PPU LLVM: Fix compilation of PRX with no relocations
2025-02-07 20:27:17 +02:00
Emma
10e0fb2b54
sys_prx: implement get_module_id_by_name, module_info_v2 ( #16573 )
2025-01-18 15:16:38 +02:00
Elad
0b784ff2c1
PPU LLVM: Function table dependent resolver hashing
2025-01-07 15:43:41 +02: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
Elad
d84fe592c8
PRX: Do not check exported function code address
2024-12-03 19:01:17 +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
capriots
e7fd4224ad
cellDmuxPamf: add module + stubs
2024-11-23 17:01:25 +02:00
capriots
e7f1a34fe1
cellAdec implementation part 1: abstraction layer
2024-11-23 17:01:25 +02:00
oltolm
2b0f786b2d
Fix std::basic_string warnings ( #16261 )
2024-11-11 21:54:44 +02:00
capriots
c813c5e953
cellAtracXdec implementation
2024-09-14 19:37:21 +02:00
Elad Ashkenazi
7c898c3e4e
SPU: Improve some logging
2024-08-21 13:32:45 +03:00
Megamouse
e0fce6cc5b
Fix some warnings
2024-07-20 07:37:17 +03:00
Elad Ashkenazi
6fff22391c
PPU Analyzer: Utilize exported functions
2024-06-08 14:09:37 +03:00
Elad Ashkenazi
e74cceb3f4
Add logging of exported SPRX functions on dummy load
2024-05-04 14:15:51 +03:00
trigger
6aa96e5f81
Fix OVL patching
2024-04-16 06:15:10 +03:00
Eladash
efbf044ea0
Savestates/PPU: Fix PRX relocations
2024-03-26 21:35:53 +02:00
RipleyTom
bb9444e19a
Add sceNpPlus to registered modules
2024-02-05 15:28:38 +01:00
Eladash
01ee119c59
Savestates: Dont patch memory on load
2024-01-20 22:15:07 +02:00
Megamouse
c5836e3525
fix more warnings
2023-12-30 19:07:35 +01:00
Megamouse
59c58aa3cf
fix some warnings
2023-12-30 19:07:35 +01:00
Eladash
526aaf7302
Fix idm::allocate_id at fixed position
2023-12-29 11:11:53 +02:00
Eladash
90b6f5613e
Fix some warnings
2023-12-19 15:34:07 +02:00
Eladash
f60bdbaece
Savestates: Compressed state files
2023-11-27 12:36:17 +02:00
Elad Ashkenazi
9dca70ec9e
PPU Loader: Fix relocation offset verification
...
Kernel aligns segment memory to 256 bytes internally.
2023-10-12 13:53:30 +03:00
Eladash
b4fc43d787
PPU LLVM: Re-add multi-threaded overlay module compilation
2023-09-10 18:58:34 +03:00
Megamouse
a597368c46
SPU: fix some wierd typos (may be wrong, no idea)
2023-09-02 12:10:36 +03:00
Eladash
ba41e466cf
Hotfix SPU Cache Spam For Game Collections
2023-08-30 16:47:45 +03:00
Eladash
ee9477dc21
SPU: support pure SPU code precompilation discovery
2023-08-30 08:45:29 +03:00
Eladash
b5faf5800b
SPU LLVM Precompilation
...
Implement function SPU function discovery in images or random SPU code
2023-08-28 09:03:56 +03:00
Eladash
82c5c4d285
PPU Analyzer: Analyze whole segment 0 when patches are applied
...
Improve greedy instruction search.
2023-08-25 12:52:02 +03:00
Megamouse
d8af3ea855
overlays: fix some warnings, simplify code, use move and references
2023-08-23 21:42:59 +02:00
Eladash
1843a27c2a
LV2/Loader: Fix kernel regions addresses
2023-08-21 14:36:54 +03:00
Elad Ashkenazi
968762c135
Fix PPU SELF Precompilation
2023-08-14 18:47:20 +03:00
Elad Ashkenazi
5668b1bd7a
PPU Loader: Fixup stack alignment after envp fix
2023-08-12 02:03:24 +03:00
Eladash
eae1c5afdd
PPU Loader: Fix main()'s envp
2023-08-11 05:07:27 +03:00
Eladash
d694600146
PPU Loader: Fixup virtual load for non PRX
2023-08-07 19:01:38 +03:00
Eladash
506ec0f947
PPU Loader: Fix imports/exports in virtual mode
2023-08-06 21:37:10 +03:00
Eladash
ee869a49f4
PPU Precompilation Fixup
2023-08-06 10:38:40 +03:00
Eladash
4eaa03e9ba
PPU: A few more minor bugfixes
2023-08-06 08:26:17 +03:00
Eladash
744a1528cc
Optimize memory usage of ELF loader
...
Do not duplicate shdr memory when it is present in phdr.
2023-08-03 16:19:55 +03:00
Eladash
1371bf89e0
PPU LLVM: Allow to abort OVL analysis in the middle
2023-07-15 08:26:28 +03:00
Eladash
083b4f0d3b
Patches: Fix potential RPCS3 crashes due to invalid patches
2023-07-13 07:38:46 +03:00
Eladash
a03dd44924
Empty kill and init callback before calling them
2023-06-29 12:12:56 +03:00
Eladash
554b27a82a
PPU LLVM: Implement SELF precompilation
...
Do not use PS3 memory for precompilation.
2023-06-28 18:34:33 +03:00
Eladash
a560121775
Fix Create PPU Cache
2023-06-28 18:34:33 +03:00
Eladash
073b723c09
Fix Create PPU Cache
2023-06-19 13:59:56 +03:00
Megamouse
16f869fe5a
logging: minor trace optimizations
2023-06-15 19:48:15 +02:00
Eladash
c87a7cb2c0
PPU: Fix thread entry detection false positives
2023-06-09 14:07:37 +03:00