Commit graph

632 commits

Author SHA1 Message Date
Elad Ashkenazi
981a1c56fb SPU: Disable transfer locking for RSX addresses 2024-08-15 14:05:25 +03:00
Elad Ashkenazi
d0ebba6c5e CELL: New reservation notifications mechanism 2024-08-14 11:53:00 +03:00
Elad Ashkenazi
6535d461be Fix vm::reservation_update 2024-08-13 10:56:33 +03:00
Megamouse
b0d4858e42 vm_ptr: return nullptr and add some nullptr deref checks 2024-06-12 06:48:48 +03:00
Elad Ashkenazi
a2dcbb9c13 Replace src_loc with std::soource_location 2024-05-21 14:19:12 +03:00
Megamouse
dfee5b9a6c threads: replace magic number id_type with thread_class 2024-05-18 16:16:08 +02:00
oltolm
9e9a3262eb simplify template code like std::is_same<T>::value 2024-04-21 18:15:17 +03:00
Eladash
8588b2b11a vm: Fix writer lock leak 2024-03-27 19:59:22 +02:00
RipleyTom
7d55a85fa6 Replaces page fault triggers with assembly 2024-01-16 12:04:47 +02:00
Eladash
825ae5b8aa Ensure HDD1 is never damaged or corrupted due to unexpected RPCS3/game termination 2024-01-11 20:24:53 +02:00
Eladash
858e493b52 Savestates/vm: Improve saving performance 2024-01-01 11:58:00 +02:00
Eladash
c2076373e8 Utilities\BitField.h: Try to fix some warnings
Cleanup and make bitfield extraction u32 if possible
2024-01-01 11:58:00 +02:00
Megamouse
f45cbdd0f7 fixes 2023-12-30 21:14:26 +01:00
Megamouse
7a02787bee fix some more warnings 2023-12-30 21:14:26 +01:00
Eladash
e14cc69441 Savestates/vm: rewrite memory saving for better compression 2023-12-29 11:11:53 +02:00
Eladash
9f0cb9148f vm.h: Cleanup and fix some warnings 2023-12-19 15:34:07 +02:00
Eladash
60baa49007 sceNp/vm: Fix strings read, implement safe string reader 2023-12-12 21:23:33 +02:00
Eladash
f8ca5cdf56 vm: Minor optimization for memory serialization 2023-11-28 16:46:44 +02:00
Eladash
a0b521ba8e Savestates: Add TAR and VM assert 2023-11-27 12:36:17 +02:00
Eladash
f60bdbaece Savestates: Compressed state files 2023-11-27 12:36:17 +02:00
Eladash
6b05fcf704 vm_ptr.h: Fix warning
/rpcs3/rpcs3/Emu/Cell/../Memory/vm_ptr.h:135:32: warning: invalid application of 'sizeof' to a void type [-Wpointer-arith]
  135 |                         return sizeof(T);
      |                                ^~~~~~~~~
2023-09-10 18:58:34 +03:00
Eladash
1843a27c2a LV2/Loader: Fix kernel regions addresses 2023-08-21 14:36:54 +03:00
Eladash
c8f8ecc4d6 LV2: Fixup reservation notifications 2023-08-17 13:02:57 +03:00
Eladash
e6009794ee vm.cpp: Fixup race in range_lock_internal 2023-08-06 08:26:17 +03:00
Eladash
9f625de51a vm.cpp/Non-TSX: Fixup potential deadlock 2023-08-03 15:04:37 +03:00
Ivan Chikish
d34287b2cc Linux: use futex_waitv syscall for atomic waiting
In order to make this possible, some unnecessary features were removed.
2023-08-02 21:46:06 +03:00
Eladash
75ad56338b SPU/Non-TSX: Implement cuncurrent reservations 2023-07-27 02:50:01 +03:00
oltolm
0c94606fcf
Make compile with msvc, clang and gcc on Windows 2023-07-11 21:40:30 +03:00
Megamouse
58140e1d3a Fix some warnings 2023-05-09 07:55:46 +02:00
Nekotekina
fa74d3e88c vm: implement lock-free try_access with range locking 2022-11-26 09:30:11 +03:00
Eladash
750e7b73e3 Optimize vm::range_lock a bit
Bad conditions led to optimization misses and long-generated code.
2022-10-09 19:27:46 +03:00
Eladash
6a36967e6f SPU: Inline and batch MFC list transfers 2022-10-09 19:27:46 +03:00
kd-11
0dd9c386ee Fix running the emulator with AUDIT enabled 2022-10-03 12:57:16 +03:00
Nekotekina
b49a1f27eb Warning fixes 2022-09-17 16:35:02 +03:00
Elad Ashkenazi
5a0a5d9ff1
vm.cpp: Fix emulation stopping on SPU access violation (#12586) 2022-09-01 18:23:18 +03:00
Eladash
ddba30988b vm: Attempt to not remove cpu_flag::wait flag during access violation 2022-08-21 15:02:01 +03:00
Nekotekina
7bb2d94e53 vm: use sparse files to emulate overcommit memory
Fix shm::map_critical page flags.
2022-08-12 13:59:03 +03:00
Eladash
34bae90820 LV2: Move nearly all notifications out of all mutex scopes including IDM 2022-08-07 20:23:54 +03:00
Eladash
cf77bb7cfc Savestates/MSVC: Replace bugged std::unique (compiler bug) 2022-08-03 15:35:41 +03:00
Eladash
2b3ae8b638 Revert another change 2022-07-20 18:11:52 +03:00
Eladash
314d481dcd Savestates: Fix typo in page size setting 2022-07-08 12:57:43 +03:00
Eladash
f546e5a8ef VM/Savestates: Replace bugged read-only block optimization 2022-07-06 19:43:25 +03:00
Eladash
b692108f1e Savestates: HLE state saving POC in sys_lwmutex 2022-07-06 19:43:25 +03:00
Elad Ashkenazi
fcd297ffb2
Savestates Support For PS3 Emulation (#10478) 2022-07-04 16:02:17 +03:00
Eladash
64399d45c1 vm: Make falloc return value bool
Allow to check properly for the success of 0 address allocation.
2022-06-22 21:01:37 +03:00
Elad Ashkenazi
1738b38536
vm_native.cpp: Use Windows 10 memory mapping API (the correct API) 2022-06-10 14:27:02 +03:00
Eladash
16381929ba vm_var.h: Ensure 16-bytes alignment of gvar
Some PPU instructions require memory to be aligned otherwise they produce different results. I've already seen their usage in cellSaveData disassembly so may as well ensure it for all.
2022-06-05 20:47:49 +02:00
Nekotekina
422246825b vm: workaround bigger native page size for 4k pages
Always allocate full memory block if native page size > 4k
2022-06-02 12:56:49 +03:00
Eladash
fcbeb2fa22 Remove slow vm::writer_lock usage from SPUThread.cpp 2022-05-04 23:36:57 +03:00
Nekotekina
5c1f79ab26 vm: remove g_mutex, use g_range_lock instead
Simplification and performance improvements.
2022-05-02 10:29:28 +03:00