Eladash
7e853abc4b
Fix tcp_timeout_monitor abort
2023-12-19 15:34:07 +02:00
Eladash
edf74313ef
Remove some fxo->need calls
2023-12-19 15:34:07 +02:00
Eladash
0c410f8a14
Postpone thread launching on g_fxo->init
2023-12-19 15:34:07 +02:00
brian218
19d1e4dcc9
sys_usbd: Fix up sys_usbd_get_descriptor() error handling according to hardware test
...
usb_device_emulated: Allow partial copy of desscriptors
2023-12-17 19:38:40 +02:00
brian218
d18f929faf
sys_usbd: Prevent sys_usbd_get_descriptor() from buffer overflow
...
sys_usbd: Add some more arguments to sys_usbd_attach()'s logging for better debugging
2023-12-16 16:24:55 +02:00
Megamouse
907e0fa8c8
Fix fxo dependencies
2023-12-15 18:08:07 +01:00
Megamouse
47fcb9562f
Trophy Manager: allow to lock/unlock trophies
2023-12-15 00:31:49 +01:00
RipleyTom
cee6d03033
Fix initialization order for network_thread
2023-12-14 19:34:14 +01:00
Megamouse
7c9a38e0f3
rsxaudio: fix ensure order
2023-12-14 15:51:11 +01:00
Eladash
60baa49007
sceNp/vm: Fix strings read, implement safe string reader
2023-12-12 21:23:33 +02:00
Megamouse
57ee3c6a6d
cellRec: Remove outdated frame size check
...
We are rescaling the images to the desired output format in the encoder.
The frames themselves are not a fixed container anymore.
2023-12-05 08:37:34 +01:00
Eladash
69ef9c8a6a
PPU/sys_dbg: Implement self-modifying code
2023-12-03 12:57:21 +02:00
Megamouse
4a4f537ee8
recording: Implement audio recording for rsx audio
2023-11-30 09:55:36 +01:00
Megamouse
4520f7646f
recording: use scoped_lock
2023-11-30 00:34:32 +01:00
Megamouse
bebac4773a
cellRec: only access global video provider if necessary
...
We do not necessarily use the video provider object in cellRec...
2023-11-30 00:34:32 +01:00
Megamouse
9e76e14a79
recording: optimize access to video recorder
...
Use separate locks for audio and video
Fix audio mutex usage in cellRec.
Removes can_consume_sample, since we don't do any processing
between can_consume_sample and present_samples.
Use get_system_time for consistency.
Move pts reset to set_video_sink.
Make start time atomic.
Remove frame and sample counts.
Use m_active to early out to reduce mutex locks.
Do not try to present samples if the recording mode is stopped anyway.
2023-11-30 00:34:32 +01:00
Eladash
b674e332fc
SPU: Fixup SPU Cache progress in first game boot
2023-11-29 10:51:32 +02:00
Eladash
54a6f2f51b
SPU LLVM: Do not wait for Progress Dialog to clear before starting
2023-11-28 21:18:18 +02:00
Eladash
d449420a45
PPU Progress Dialog: Add "Applying PPU Code" stage
2023-11-28 21:18:18 +02:00
Eladash
0416f6361c
Fix file_view::read_at and file_view::get_stat
2023-11-28 16:46:44 +02:00
Eladash
5dbeb68ed2
Savestates: Fix optional_savestate_state use
2023-11-27 12:36:17 +02:00
Eladash
f60bdbaece
Savestates: Compressed state files
2023-11-27 12:36:17 +02:00
Megamouse
23316d4e1e
cellRec: fix pausing and resuming
2023-11-23 21:19:31 +01:00
Megamouse
966def13c5
cellRec: fix downmix
2023-11-23 21:19:31 +01:00
Megamouse
a84c261ff3
cellRec: fix member reset between recordings
2023-11-23 21:19:31 +01:00
Megamouse
ff434f9d38
recording: cleanup audio config members
...
and fix some annyoing msvc warnings
2023-11-23 21:19:31 +01:00
Megamouse
49f910a56b
recording: improve pts accuracy and consistency
...
Also clean up some logging
2023-11-23 21:19:31 +01:00
Megamouse
90846013c2
cellRec: fix internal video frame ringbuffer pts
2023-11-23 21:19:31 +01:00
Megamouse
3cec3b866d
cellRec: implement audio mixing
2023-11-23 21:19:31 +01:00
Megamouse
51d0df97d3
cellRec: implement audio encoding (no mixing yet)
2023-11-23 21:19:31 +01:00
Megamouse
4c14290694
cellRec: Don't present frames/samples if external audio/video is used
2023-11-23 21:19:31 +01:00
Megamouse
64529cefa5
cellRec: use constant for block samples
2023-11-23 21:19:31 +01:00
Megamouse
70c35642a4
recording: initial audio recording
2023-11-23 21:19:31 +01:00
oltolm
8c0debfe65
Fix file_view::read_at
2023-11-10 18:40:17 +02:00
Eladash
66d01b688c
Savestates: Implement initial RAM ventilation system
2023-11-10 08:45:49 +02:00
Megamouse
e26d4e1762
sys_net: fix some warnings
...
move some data to heap
2023-10-31 15:11:43 +02:00
Megamouse
aa9f364dc6
cellPhotoImport: better log channel name for string search in logs
2023-10-25 07:13:12 +02:00
Megamouse
07da8d5e36
cellPhotoDecodeFromFile: allow decoding files inside dev_hdd1
2023-10-25 07:13:12 +02:00
Eladash
eb407e3b5c
SPU/MFC: Add block has to command history
2023-10-24 22:14:12 +03:00
Megamouse
b3864f2d10
cellSaveData: Fix SAVEDATA_OP_LIST_DELETE
...
- The savedata parameter checks were missing conditions for SAVEDATA_OP_LIST_DELETE (and the unimplemented import/export functions)
- This caused the 'delete savedata' menu entry in Bonk's Adventure to be inaccessible since we always returned an error no matter the arguments.
- Additionally, the game uses an asterisk as prefix to load the savedata list, which is actually a valid thing to do based on the disassembly for this exact function (and maybe others?). I only report the savedata for the current title ID for now though, since I fear I'll accidentally delete some other savedata.
2023-10-16 21:19:44 +02:00
oltolm
50df01d00e
llvm: add support for LLVM 17
2023-10-13 14:27:48 +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
b2e969eb8f
Savestates: Fix rsxaudio
2023-10-05 05:07:46 +03:00
Eladash
0240a7d43d
sys_fs: Savestate fixup
2023-10-05 05:07:46 +03:00
Eladash
c3f1d39563
Improve vfs::host::rename
2023-10-03 15:50:46 +03:00
Eladash
ce3d7f90fd
VFS: Fix recursive locking
2023-10-03 05:32:39 +03:00
Eladash
4b827a8d9c
sys_fs: Optimize concurrent file reads
2023-10-02 21:18:08 +03:00
Eladash
f07e17f6aa
sceNp: Cut inactive time of DrmIsAvailable in half
2023-10-02 21:18:08 +03:00
Eladash
257b0f0d69
Improve lv2_file::file_view::read
2023-10-02 15:38:58 +03:00
Eladash
dd518fcafb
Savestates/sys_fs: Fix file saving
2023-10-02 15:38:58 +03:00
Eladash
020bff1485
Savestates: add sys_rsxaudio
2023-10-02 15:38:58 +03:00
Eladash
96d31cf64e
IdManager.h: Savestate fix
2023-10-02 15:38:58 +03:00
Malcolm Jestadt
d1bea790f3
SPU LLVM: Optimize GB/GBH/GBB with a GFNI path
...
- Abuses GFNI to extract bits from bytes, from 5->2 instructions in most cases
2023-10-01 23:05:28 +03:00
Eladash
5baec6cb58
Add Savestate-Compatible mode
2023-10-01 12:00:41 +03:00
Eladash
948ee96f1a
SPU LLVM: Fix savestates
2023-10-01 12:00:41 +03:00
Malcolm Jestadt
05b6108c66
SPU LLVM: Optimize remaining rotate instructions which take a twos compliment value as input
...
ROTQMBYBI looks for -7 for it's twos compliment construction
2023-09-23 08:00:09 +03:00
Eladash
1e1d6f6437
PPU Analyzer: Fixup
2023-09-22 10:03:51 +03:00
Megamouse
cf20526f9f
cellMic: Improve cellMicGetDeviceAttr
2023-09-21 07:52:00 +02:00
Eladash
c7c81ed95d
PPU: Limit concurrent OVL files processing to 2
2023-09-11 15:44:33 +03:00
Eladash
7a4ee286be
Rewrite Utilitis/sema.cpp
2023-09-11 15:44:33 +03:00
Eladash
37ba19776a
PPU LLVM: Fixup pdone count
2023-09-10 18:58:34 +03:00
Eladash
62b880cb78
SPU LLVM: Avoid excess cache threads
2023-09-10 18:58:34 +03:00
Eladash
bdceb24fd9
PPU: Try to reduce wait for other threads
2023-09-10 18:58:34 +03:00
Eladash
b4fc43d787
PPU LLVM: Re-add multi-threaded overlay module compilation
2023-09-10 18:58:34 +03:00
Eladash
d399bd5b6a
PPU Analyzer: Another fixup
2023-09-10 18:58:34 +03: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
Elad Ashkenazi
52495c17d6
PPU Analyzer: Fixup
2023-09-06 06:53:10 +03:00
Eladash
44c08c3a73
PPU/Progress Dialog: Improve remaining time calculation
2023-09-05 22:02:47 +03:00
Megamouse
0bb5974ab6
input: try to add tony hawk RIDE Skateboard
2023-09-05 20:41:39 +02:00
Eladash
6dcdf6ec76
Add approximation to remaining compilation time
2023-09-05 14:58:46 +03:00
Eladash
ff4485d8ae
PPU LLVM: Patch unregistered BLRs
...
Fixes "Unregistered PPU Function" in "Jak and Daxter Collection"
2023-09-05 06:20:57 +03:00
Eladash
eacfa36fe6
SPU/DisAsm: Fix constant propagation with non-GPR-writing instructions
2023-09-05 06:20:57 +03:00
Eladash
fdbb0b0e2f
PPU LLVM: Optimize branch list
2023-09-05 06:20:57 +03:00
Eladash
cf6eb64f0b
SPU LLVM: Improve space-filling for function discovery
2023-09-05 06:20:57 +03:00
Eladash
85773ad869
PPU LLVM: Optimize traps a bit
2023-09-05 06:20:57 +03:00
Eladash
a02c168a0d
PPU Analyzer: Fixup greedy instruction search
2023-09-05 06:20:57 +03:00
Eladash
1c8f1b2c27
SPU LLVM: Sad workaround for precompilation
...
Disable progress dialog for when only precompilation is required.
2023-09-02 22:14:53 +03:00
Eladash
8d9e9eaff9
PPU Precompilation: Fixup file counter
2023-09-02 22:14:53 +03:00
Eladash
b900c43ceb
PPU: Precompile only encrypted executeables
...
Improve sys_prx_load_module and sys_overlay_load_module error checking.
2023-09-02 22:14:53 +03:00
Eladash
150afecc29
Fixup spu_thread::discover_functions
2023-09-02 22:14:53 +03:00
Elad Ashkenazi
ea57984912
SPU LLVM: Fill space between functions using targets (Precompilation)
...
* Revert "PPU Analyzer: Revert TRAP detection change"
2023-09-02 15:56:34 +03:00
Eladash
11006dac35
sys_rsx: Fix local memory size reported in driver info
2023-09-02 12:55:34 +03:00
Eladash
dd4840caf6
SPU LLVM: Add CRC check for cache
2023-09-02 12:31:11 +03:00
Eladash
3f7afb8375
SPU LLVM: Fix crashes on corrupted cache file
...
* Fix OOM if size is too high.
* Fix out-of-bounds access beyond SPU_LS_SIZE.
2023-09-02 12:31:11 +03:00
Eladash
deacf76ca4
PPU Analyzer: Revert TRAP detection change
2023-09-02 12:31:11 +03:00
Eladash
5e110f2844
SPU LLVM: Try to precompile filler-sapce between functions
2023-09-02 12:31:11 +03:00
Eladash
7c0d8fc29c
Improve spu_thread::is_exec_code
2023-09-02 12:31:11 +03:00
Eladash
a626ccfcad
SPU LLVM: Initial precompilation of tail-calls
2023-09-02 12:31:11 +03:00
Eladash
a9810ccb72
SPU LLVM: Another fix for Game Collection's precompilation
2023-09-02 12:31:11 +03:00
Eladash
e851c044b5
SPU: Function discovery fix
...
Do not detect branch to next.
2023-09-02 12:31:11 +03:00
Megamouse
a597368c46
SPU: fix some wierd typos (may be wrong, no idea)
2023-09-02 12:10:36 +03:00
Eladash
f9f2657c98
SPU LLVM: Optimize spu_idisable
2023-09-01 18:08:15 +03:00
Eladash
02b5cae2ad
Precompile PRX/ELF extension
2023-08-30 16:47:45 +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
37212a632c
SPU: Refactor function discovery
2023-08-30 08:45:29 +03:00
Elad Ashkenazi
105c5759f3
Add SPU Precompilation to Create PPU Cache
2023-08-30 08:45:29 +03:00
Elad Ashkenazi
3d2229ca05
SPU LLVM Precompilation Fixup
2023-08-28 13:33:43 +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
Malcolm Jestadt
290ff5b839
Zero register optimization for AVX-512-VBMI
...
- Take advantage of the fact that AVX instructions zero the upper 128 bits for a nice optimization when one input vector is zeroed
2023-08-28 05:09:30 +03:00
Eladash
be0a789e7d
PPU Analyzer: Fix OPD section validation
2023-08-27 02:11:01 +03:00
Megamouse
75af7dc269
cellPad: fix lost status during cellPad_NotifyStateChange
...
CELL_PAD_STATUS_CUSTOM_CONTROLLER was lost when setting reported_status.
2023-08-27 00:18:23 +02:00
Megamouse
9d88102520
cellPad: fix potential out of bounds read and u32 warnings
2023-08-27 00:18:23 +02:00
Megamouse
656f971823
cellPad: some readability updates
2023-08-27 00:18:23 +02:00
Megamouse
08d9cbfe48
cellPad: implement cellPadPeriphGetData default logic and add some comments
2023-08-26 22:10:15 +02: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
Eladash
68c70dd1b9
Savestates: Fix config_event_entry compatibility
2023-08-25 12:52:02 +03:00
Megamouse
8772219492
Remove unused variable in PPUThread.cpp
2023-08-23 21:42:59 +02:00
Megamouse
6b7f4cbe17
cellPad: remove unused variables
2023-08-23 21:42:59 +02:00
Megamouse
d8af3ea855
overlays: fix some warnings, simplify code, use move and references
2023-08-23 21:42:59 +02:00
Eladash
4794869bd8
sceNpDrm: Slow down sceNpDrmIsAvailable
2023-08-23 10:14:29 +03:00
Eladash
4462b7be5c
cellGame: Make cellGameDataCheck slower
...
* Turns out cellGameBootCheck is actually quite fast.
* cellGameDataCheck is incredibly slow, slower for DISC type.
* Set 0 sizeKB for when RET_NONE is about to be returned.
2023-08-23 10:14:29 +03:00
Eladash
756ab1191e
PPU Analyzer: Fix for unaligned sections
2023-08-23 10:14:29 +03:00
Eladash
a001e6ef09
Progress Dialog: Fix race on PPU compilation status
2023-08-22 05:40:53 +03:00
Megamouse
e28b705f0d
Input: Add PS Move navigation controller
...
Add the ps move navigation controller to pad types.
Use proper pad class profiles.
2023-08-21 23:48:56 +02:00
Eladash
1843a27c2a
LV2/Loader: Fix kernel regions addresses
2023-08-21 14:36:54 +03:00
Eladash
7a0185dbcc
PPU/debugger: Fixup
2023-08-21 14:36:54 +03:00
Eladash
17302a9422
Debugger/PPU: Superior Callstack Detection
2023-08-20 22:43:41 +03:00
Eladash
8236a0fa2d
Fixup cellPadPeriphGetInfo
2023-08-19 17:18:40 +03:00
Eladash
730badd378
cellAudio: Move and partially fix _mxr000 hack
2023-08-18 11:37:29 +03:00
Eladash
8b212f2169
PPU: Fix LVRX bad memory access
2023-08-17 17:59:45 +03:00
Eladash
c8f8ecc4d6
LV2: Fixup reservation notifications
2023-08-17 13:02:57 +03:00
Eladash
6adc7f9ee6
SPU: Use usermode waiting for busy GETLLAR loop
2023-08-17 09:02:28 +03:00
Eladash
dddd12f66b
CELL: Postponed address notifications
2023-08-17 09:02:28 +03:00
oltolm
d062fc1d31
sys_net.cpp: fix compiler warning
2023-08-15 20:56:39 +02:00
Elad Ashkenazi
968762c135
Fix PPU SELF Precompilation
2023-08-14 18:47:20 +03:00
Megamouse
0e23b89352
cellRec: add more encoder options
2023-08-13 21:35:07 +02:00
Elad Ashkenazi
219ee76bf2
cellPad: Fixup sys_config management
2023-08-13 14:20:39 +03:00
Megamouse
39bbf17caf
cellRec: fix width of encoder frames
...
Turns out the pitch was accidentally used as width, leading to an out of bounds read/write.
I kept the pitch in the struct for completeness' sake. It may be needed later, if only for error checks.
2023-08-13 00:37:19 +02:00
Malcolm Jestadt
f2e782f5dd
SPU LLVM: Inline timer reads for WrDec and RdDec
...
- Uses RDTSC to emulate the spu decrementer
2023-08-13 00:16:35 +03:00
Malcolm Jestadt
512f0a814c
SPU LLVM: Fix for AVX-512 CFLTU path
...
- vcvvtps2udq doesn't turn negative numbers into 0, fix by using signed integer max with 0 instead of vrangeps
2023-08-12 02:55:08 +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
4bbe885f35
LV2/cellPad: Implement priority-based connection updates
2023-08-10 09:31:49 +03:00
Eladash
a2416bf7f5
cellPad: Fix max_connect in GetInfo
...
This value is saved and loaded from cellPadInit as is.
2023-08-10 09:31:49 +03:00
Eladash
df24305698
PPU/Debugger: Fix op_branch_targets
2023-08-08 10:22:05 +03:00
Eladash
cdc0441405
PPU: Fixup interpreter and analyzer
2023-08-08 10:22:05 +03:00
Eladash
edf4f7eacc
PPU/Patches: Fix CALLOC patch with interpreter
2023-08-07 19:01:38 +03:00
Eladash
8e75e940dd
cellSaveData: Fix check 58, implement checks 77 and 76
2023-08-07 19:01:38 +03:00
Eladash
d694600146
PPU Loader: Fixup virtual load for non PRX
2023-08-07 19:01:38 +03:00
Eladash
0989f62256
cellGame: Add some LV2 sleep
...
Those functions are supposed to take a really long time, and in this time the caller PPU waits for VSH.
2023-08-07 10:56:15 +03:00
Eladash
63f045ef2e
Add some error checking to sys_fs_chmod
2023-08-07 10:56:15 +03:00
Eladash
91b68f3b45
PPU Analyzer: Fixup verify_func
2023-08-07 06:48:44 +03:00
Eladash
39910885d9
PPU: fix leak when precompiling SELF files
2023-08-06 21:37:10 +03:00
Eladash
506ec0f947
PPU Loader: Fix imports/exports in virtual mode
2023-08-06 21:37:10 +03:00
Eladash
c96f3a877f
PPU Analyzer: Add more function constraints
2023-08-06 21:37:10 +03:00
Eladash
2a0278fbb1
Fixup SPU/PPU Cache Abortion
2023-08-06 21:37:10 +03:00
Eladash
ee869a49f4
PPU Precompilation Fixup
2023-08-06 10:38:40 +03:00
Megamouse
343ba8733b
Merge xfloat options
2023-08-06 09:30:53 +03:00
Eladash
971c12b937
Fixup log message in sys_memory_allocate
2023-08-06 08:26:17 +03:00
Eladash
6547fa9cc3
PPU LLVM: Fixup VSH Precompilation
2023-08-06 08:26:17 +03:00
Eladash
4eaa03e9ba
PPU: A few more minor bugfixes
2023-08-06 08:26:17 +03:00
Eladash
d0b3891002
PPU LLVM Cache Fixup
2023-08-06 08:26:17 +03:00
Eladash
e25936c1f1
PPU LLVM/RawSPU: Fixup MMIO crossing-out
2023-08-06 08:26:17 +03:00
Whatcookie
d4cf12bc17
LV2: Improve sys_timer_usleep by using CPU usermode waiting
...
* Linux: set timerslack to minimum value
- Linux delays the wakeup of threads to save power, this feature isn't needed for this application
* Utils: Add detection for waitpkg and monitorx extensions
- These instructions are used for user mode wait instructions
* lv2: Use user mode wait instructions instead of yielding when appropriate
2023-08-05 11:49:30 +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
06c9b95e09
PPU LLVM/SPU/Non-TSX: Obnoxiously responsive and obedient PPU for SPU requests
2023-08-03 15:04:37 +03:00
trigger
0f3dfec7f2
direct return in ppu_check
2023-08-03 12:35:06 +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
Megamouse
bb2d7063c4
Update ffmpeg
2023-08-02 08:21:47 +02:00
Megamouse
d119cf6e96
Qt6 port
2023-07-31 20:03:24 +03:00
Megamouse
9b3a878c18
cellAudioIn: reduce log spam
...
Some logs I've seen are 20% filled with this stuff.
2023-07-31 13:19:55 +03:00
Megamouse
365b264656
cellMsgDialogAbort: do not return CELL_MSGDIALOG_ERROR_DIALOG_NOT_OPENED
2023-07-31 13:19:55 +03:00
Whatcookie
fd6829f757
SPU LLVM: AVX-512 optimization for CFLTU ( #14384 )
...
- Takes advantage of vrangeps and the new float to uint instructions from AVX-512
- Down from 6 to 3 instructions
TODO: Somehow ensure that this is what llvm outputs using CreateFPToUI?
2023-07-29 09:01:01 +03:00
Talkashie
dabb2cc9a0
Fix typos, improve consistency
...
Fixes typos where spelling or grammar is objectively wrong.
Changes wording and capitalization in some areas to be more consistent with other areas.
2023-07-28 13:09:06 +03:00
Whatcookie
4ecb06c901
SPU LLVM: Optimize common SFI+ROTQMBY pattern
2023-07-28 10:26:40 +03:00
Elad Ashkenazi
9265ff53d0
Include spu.log inside RPCS3.log when SPU Debug is true
2023-07-27 19:15:32 +03:00
Eladash
75ad56338b
SPU/Non-TSX: Implement cuncurrent reservations
2023-07-27 02:50:01 +03:00
Eladash
db24ce7708
SPU/MFC: Format command more consistently
2023-07-27 02:50:01 +03:00
Eladash
2d45ecff22
cellSaveData: Adjust to non-TSX
2023-07-27 02:50:01 +03:00
Elad Ashkenazi
106f31db6a
sceNpTrophy: Minor UB fixup
...
id.data[9] is char while isprint should accept u8.
2023-07-26 17:56:44 +03:00
brian218
9a5bdc9b4f
sys_fs: Updated sys_fs_fcntl(0xc0000015&0xc000001c)'s error handling according to real hardware testing
2023-07-26 13:10:51 +03:00
brian218
0b829be798
sys_fs: Fixed up sys_fs_fcntl(0xc0000007) aka cellFsArcadeHddSerialNumber according to real hardware testing
2023-07-26 13:10:51 +03:00
Megamouse
94bb75fb7c
sceNpTrophy: Check if a trophy configuration file exists before starting the install process
2023-07-25 22:00:19 +02:00
Eladash
7d84d0f83e
sceNpTrophy: Initial commSign checking of CreateContext
2023-07-25 21:40:35 +03:00
oltolm
bc40b61ef1
rename fs::stat to fs::get_stat
2023-07-25 12:15:08 +03:00
Megamouse
13575029c0
cellSaveData: add some more error logging
2023-07-25 11:12:16 +03:00
Eladash
782344eed8
Debugger: Make break-all non-default
2023-07-24 17:07:15 +03:00
Eladash
9d3e626b55
Minor ppu_initialize fix
2023-07-24 17:07:15 +03:00
Eladash
a6e8b9037a
ppu: Make install function log message trace
2023-07-24 17:07:15 +03:00
Eladash
3bbc2c1f4c
PPU Analyzer: Fixup get_ptr()
2023-07-23 17:58:54 +03:00
Eladash
99671b754f
Add ppu_module::get_ref() to ease debugging
2023-07-23 17:58:54 +03:00
Eladash
9fc5f6271b
Update SPU reservation notifier mask
2023-07-23 17:58:54 +03:00
Eladash
9ff91c29f2
Invalidate Savestates
2023-07-23 17:58:54 +03:00
Megamouse
568e7481d8
sys_fs: use path instead of u8path
...
Japanese PS3 games often use unicode paths which hard crash the std::filesystem::string() method.
wstring() would work in these cases, but I guess we can just use path() instead of u8path().
2023-07-20 07:22:07 +03:00
Eladash
50dad6801b
SPU LLVM: Use get_known_bits() in SHUFB
2023-07-18 22:27:45 +03:00
Malcolm Jestadt
ee7475a9d4
SPU LLVM: Handle SHUFB special cases with a lookup table
...
- Needs 3 instructions to handle the special cases, since x86 lacks an 8 bit simd shift instruction
2023-07-18 22:27:45 +03:00
Elad Ashkenazi
41d38975f7
Savestates/sys_fs: Utilize fs::file::get_id to fix an old bug
2023-07-17 08:09:09 +03:00
Eladash
eecadab387
Implement fs::file::get_id()
...
File descripor ID with 2 provided ways to compare between them:
1. is_mirror_of():
Test if identical:
For example: when LHS writes one byte to a file at X offset, RHS file be able to read that exact byte at X offset)
2. is_coherent_with():
Test if both files point to the same file:
For example: if a file descriptor pointing to the complete file exists and is being truncated to 0 bytes from non-
-zero size state: this has to affect both RHS and LHS files.
2023-07-17 08:09:09 +03:00
Eladash
e27e6c0b2d
Implement PPU usleep control setting hack
2023-07-17 07:17:11 +03:00
Eladash
1371bf89e0
PPU LLVM: Allow to abort OVL analysis in the middle
2023-07-15 08:26:28 +03:00
Eladash
3b8f8d7fc8
PPU LLVM: Improve precompilation time
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
c0280b43f2
PPU/Debugger: View the currently used CR field content in register panel
2023-07-12 13:22:06 +03:00
oltolm
0c94606fcf
Make compile with msvc, clang and gcc on Windows
2023-07-11 21:40:30 +03:00
Elad Ashkenazi
4b12c9a9fc
Force inherit BDVD/PS3_GAME across game updates ( #14159 )
2023-07-11 00:30:02 +03:00
Elad Ashkenazi
e882d64d8a
SPU/PPU Debugger: Add decimal mode to registers panel
2023-07-10 19:06:57 +03:00
Eladash
16f910e350
sys_fs: Fix log levels
2023-07-10 12:39:26 +03:00
Eladash
482dd0e8f8
SPU: Remove wrong clamp in MFC_Size
...
Just crashes real MFC.
2023-07-09 13:33:03 +03:00
Eladash
cae2e7de80
LV2: Log allocated guest VM addresses
2023-07-09 13:33:03 +03:00
Eladash
b68cfbf794
Fix spu_thread::dump_callstack_list regression
...
TODO: Fix in PPU [properly!]
2023-07-09 13:33:03 +03:00
Eladash
17d8f2884e
Debug fixes
2023-07-09 13:33:03 +03:00
Elad Ashkenazi
1219e5c244
SPU: Fix static interpreter requirement with interrupts
...
Removed a wrong condition in PPU LLVM as a fixup.
2023-07-07 22:39:49 +03:00
Eladash
c21cdb8055
Implement PPU LV2 debug
2023-07-07 16:03:08 +03:00
Eladash
598fe85243
PPU LLVM/RawSPU: Implement MMIO violation elimination pass
2023-07-06 19:46:36 +03:00
Sanjay Govind
8f178b2c29
sys_usbd: Implement support for Santroller devices
2023-07-05 23:54:37 +02:00
Eladash
21f5976d35
cellSpurs: Implement ShutdownTaskset and WorkloadFlagReceiver2
2023-07-02 19:01:13 +03:00
Eladash
363e498462
Remove overlay hack for PPU LLVM OVL precompilation
2023-06-29 12:12:56 +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
5f2f084091
Savestate/IDM: Do not save unsavable containers
2023-06-28 18:34:33 +03:00
Eladash
a560121775
Fix Create PPU Cache
2023-06-28 18:34:33 +03:00
Eladash
d34b3190f7
Make stopping emulation not pause or crash UI
...
* Make the UI and main thread available when stopping emulation.
* Make BlockingCallFromMainThread always execute, preventing bugs when it unexpectedly did not.
* Add error code for when starting emulation when Emu.Kill() is in progress.
2023-06-26 20:48:38 +02:00
Eladash
4f5348c7d4
Fix properly RSX replay thread stop bug
2023-06-26 20:48:38 +02:00
brian218
70ce7ee106
sys_fs: Fixed up one of sys_fs_unmount()'s error codes to match real system behavior
2023-06-25 09:08:20 +02:00
brian218
cf4ae38699
sys_fs: Implemented get_normalized_path()
2023-06-25 09:08:20 +02:00
Eladash
441fbd63bb
Fix PPU debug setting with PPU interpreter
2023-06-20 18:18:24 +03:00
Eladash
073b723c09
Fix Create PPU Cache
2023-06-19 13:59:56 +03:00
RipleyTom
e2bced978e
Move connect workaround to connect interface
2023-06-18 01:04:01 +02:00
Megamouse
d08fea551e
progress dialog fix
2023-06-16 10:30:27 +02:00
Megamouse
16f869fe5a
logging: minor trace optimizations
2023-06-15 19:48:15 +02:00
Megamouse
d662a39a12
PPUAnalyser: fix std::move nonsense
2023-06-14 11:05:00 +03:00
Megamouse
d28e3c4f08
np_handler: fix warning: check socket in discover_ip_address
2023-06-13 18:08:51 +02:00
RipleyTom
5d7e75c5d8
Fix EINVAL returned on connect call to connecting socket
2023-06-11 15:42:22 +02:00
Eladash
c0e97b4e96
Qt: Improve PS3 Binaries Decryption tool
2023-06-11 00:40:14 +02:00
Megamouse
c78c504043
overlays: update progress dialog workaround
2023-06-10 09:09:55 +02:00
Eladash
d752ab0151
SPU/Debugger: Add RawSPU debug data
2023-06-09 14:07:37 +03:00
Eladash
c87a7cb2c0
PPU: Fix thread entry detection false positives
2023-06-09 14:07:37 +03:00
Megamouse
6aff2803e5
cellMsgDialog: Fix segfault when closing non-blocking Qt dialogs
2023-06-09 02:03:44 +02:00
Megamouse
769b69999f
fix whitespace
2023-06-08 21:15:39 +02:00
Eladash
6d918b565f
PPU: Sleep after returning from thread entry function
2023-06-06 17:53:09 +02:00
Eladash
52575a44b2
sys_ppu_thread: Optimize joined thread notification
2023-06-06 17:53:09 +02:00
Eladash
d5eebd6ab4
debugger: Fix trailing spaces in PPU register dump
2023-06-06 09:48:27 +02:00
Eladash
9bd4426225
Fix _sys_interrupt_thread_disestablish with lingering thread copies
2023-06-06 09:48:27 +02:00
Eladash
4af0a33f1f
Fix sys_ppu_thread_detach/exit with lingering thread copies
2023-06-06 09:48:27 +02:00
Eladash
636bde6343
Logs: Fix trailing space, nbsp and unintended character
2023-06-06 09:48:27 +02:00
Eladash
16579e0b1f
Fix spu_thread::cleanup()
2023-06-06 09:48:27 +02:00
Megamouse
6d2f7f6e54
sys_fs: fix map entry removal in destructor
2023-06-05 23:14:12 +02:00
brian218
48ffc19193
Update sys_usbd.cpp
2023-06-05 20:15:43 +02:00
brian218
c85775922e
sys_usbd: Implemented sys_usbd_unregister_extra_ldd()
2023-06-05 13:51:54 +03:00
brian218
da0c9c2ce9
sys_usbd: USB VID/PID logging format fixup
2023-06-05 13:51:54 +03:00
brian218
42b388317e
sys_ss: Further implemented Update Manager service for VSH
2023-06-05 13:51:54 +03:00
brian218
6a570ae57e
sys_fs: Implemented sys_fs_mount(prot=1) read-only mounting & fixed up some operation and permission checks
2023-06-05 13:51:54 +03:00
Elad Ashkenazi
2e4bf9ef1b
Update sys_timer.cpp
2023-06-04 01:26:24 +02:00
Elad Ashkenazi
ba9f55679d
Update sys_timer.cpp
2023-06-04 01:26:24 +02:00
Elad Ashkenazi
2c999a550b
Update sys_mutex.h
2023-06-04 01:26:24 +02:00
Elad Ashkenazi
805de248d3
Update sys_lwmutex.h
2023-06-04 01:26:24 +02:00
Elad Ashkenazi
1240874e41
Update sys_lwmutex.h
2023-06-04 01:26:24 +02:00
Elad Ashkenazi
feff50e7e0
Update sys_mutex.h
2023-06-04 01:26:24 +02:00
Eladash
c37fc73a02
PPU LLVM: Invalidate cache for testers
2023-06-02 08:54:46 +03:00
Eladash
d152537e50
sys_lwcond/cond/ppu_thread: Respect scheduler in various syscalls
2023-06-02 08:54:46 +03:00
Eladash
5d4e87373f
LV2: Make _sys_lwcond_destroy wait for lwmutex lock
2023-06-02 08:54:46 +03:00
Eladash
1c36156594
PPU LLVM: Fix LWSYNC according to cellSpursWakeup
2023-06-02 08:54:46 +03:00
Eladash
300701a06b
Make page faults entry enqueue and event atomic
2023-06-02 08:54:46 +03:00
Eladash
a776f15557
SPU: fix event count with ACK and mask write
2023-06-02 08:54:46 +03:00
Eladash
1c89f8a855
LV2/Timer: Fix ENOTCONN check of start timer
2023-06-02 08:54:46 +03:00
Eladash
81e4d9c2ee
LV2/TImer: Fix notification discard
2023-06-02 08:54:46 +03:00
Eladash
49be6be8f4
LV2/Timer: Make timers consistent
2023-06-02 08:54:46 +03:00
Eladash
b861a9c5d0
LV2: Implement set-priority thread requeue
2023-06-02 08:54:46 +03:00
Eladash
9828e6cafc
LV2: Push other-than-this thread to the back on priority set
2023-06-02 08:54:46 +03:00
Eladash
5d13978bbf
sys_lwcond: Implement TIMEOUT on lwmutex lock
2023-06-02 08:54:46 +03:00
Eladash
b844aecb9e
sys_lwmutex/mutex: Fix race on lock timeout
2023-06-02 08:54:46 +03:00
Eladash
f57c8c1c35
LV2: Unconditional Timer Synchronization Fix
2023-06-02 08:54:46 +03:00
Megamouse
f96a0ce9d2
Trophies: Add more sanity checks to pugixml backend
2023-05-30 19:11:57 +02:00
Megamouse
f89d3d5077
cellCamera: don't switch to main thread unless really necessary
2023-05-25 21:30:27 +02:00
Megamouse
e584653b72
input: move emulated pad handling to config class
2023-05-25 20:37:15 +02:00
Megamouse
95060efb7d
input: add support for multi-assignment in emulated pads
2023-05-25 20:37:15 +02:00
Megamouse
b82dd61a0c
input: add emulated axis configs
2023-05-25 20:37:15 +02:00
Megamouse
d652a81078
Qt/input: add emulated pads settings dialogs
2023-05-25 20:37:15 +02:00
Megamouse
fc76d2df38
input: list actual nodes instead of button ids
2023-05-25 20:37:15 +02:00
Megamouse
1a98682ea0
input: add enum count for enumeration
2023-05-25 20:37:15 +02:00
Megamouse
64437a531b
input: use global configs
2023-05-25 20:37:15 +02:00
Megamouse
36831a3d6a
input: add gem ds3 config file
...
No sticks yet
2023-05-25 20:37:15 +02:00
Megamouse
7b9a36be7d
input: add buzz config file
...
Adds a buzz.yml and implements a generic way to save actual DS3 mapping independent of pad handlers
2023-05-25 20:37:15 +02:00
Megamouse
1ae3b37fbe
sceNpTrophy: set timestamps
2023-05-23 08:22:13 +02:00
Eladash
e29b81c444
Debug Fixes
2023-05-22 20:04:49 +03:00
RipleyTom
cbb1b1f28e
Fix spu_fm
2023-05-19 18:26:42 +03:00
Elad Ashkenazi
59f9938849
cellSpurs: Fix ready count
2023-05-19 14:18:51 +03:00
Megamouse
54e6cf95d7
Fix some warnings
2023-05-18 12:41:22 +02:00
Dark
24dde5d42b
Implement support for emulating Rock Band 3's MIDI Pro Adapter
...
Co-authored-by: Megamouse <studienricky89@googlemail.com>
2023-05-17 22:59:44 +02:00
Joshua de Reeper
8e15afb2c4
sys_usbd: Emulate Disney Infinity Base
2023-05-17 21:26:58 +02:00
RipleyTom
f11770b88b
Better accuracy for FREST/FRSQEST ( #13863 )
2023-05-15 17:20:47 +01:00
Eladash
514ef9a9c5
SPU Executable Code Dumping Tool
2023-05-15 14:11:13 +03:00
Elad Ashkenazi
db7f84f9f8
SPU/PPU/Debugger: Ensure ascending stack frames ( #13833 )
...
* PPU/Debugger: Ensure ascending stack frames
* SPU/Debugger: Ensure descending stack frame pointers
2023-05-10 11:23:09 +03:00
Megamouse
58140e1d3a
Fix some warnings
2023-05-09 07:55:46 +02:00
Eladash
d13c0ee393
SPU/Debugger: Detect stack-less functions
2023-05-08 19:27:21 +03:00
Elad Ashkenazi
ead8e5e0c3
PPU LLVM: Unbreak function linkage
2023-05-07 14:11:37 +03:00
RipleyTom
5c0113ce59
Deterministic FREST and FRSQEST
2023-05-06 12:59:34 +03:00
brian218
6a41b22a1b
sys_fs: Further implemented cellFsArcadeHddSerialNumber (0xc0000007)
2023-05-06 10:26:37 +03:00
brian218
5696065727
sys_fs: Improved sys_fs_fcntl(0xc0000015 and 0xc000001c) by integrating duplicate code
2023-05-06 10:26:37 +03:00
brian218
e9281843bf
sys_fs: Implemented mount_info_map to keep proper track of mounted devices
2023-05-06 10:26:37 +03:00
brian218
43184a271f
sys_fs: Improved lv2_fs_object constructor
2023-05-06 10:26:37 +03:00
brian218
a7e1bc34de
sys_fs: Improved the functionality of lv2_fs_object::get_mp() and the efficiency of mount&newfs syscalls
2023-05-06 10:26:37 +03:00
brian218
98c46f7eb0
sys_game: Fixed potential bugs in sys_game_get_system_sw_version()
...
sys_game: Implemented sys_game_set_system_sw_version()
2023-05-06 10:26:37 +03:00
Megamouse
0b628cb50e
cellPamf: Add missing error code
2023-05-06 06:31:58 +02:00
Megamouse
ad5a62b62d
Loader: split add_only into own function
...
The new code does not require any modifications apart from loading vfs
2023-04-28 17:16:04 +02:00
Elad Ashkenazi
5cf80c05a5
savestates:/sys_spu: Fix join saving
2023-04-28 16:13:15 +03:00
Megamouse
cd9ff08235
Decrease some include madness
2023-04-26 21:37:44 +02:00
Ivan Chikish
bb8e43f16c
SPU LLVM: fixup custom LICM pass
2023-04-22 03:07:06 +03:00
Megamouse
500f7901ac
unself: rename SCEVersionInfo to version_header
2023-04-21 17:56:25 +02:00
Megamouse
a770eaf500
unself: rename AppInfo to program_identification_header
2023-04-21 17:56:25 +02:00
Ivan Chikish
1041284384
SPU LLVM: sink stores deeper in custom LICM pass
2023-04-21 18:11:59 +03:00
Megamouse
6555de6ef5
fix warnings
2023-04-21 16:41:06 +02:00
Ivan Chikish
183bea3b98
SPU LLVM: upgrade custom DSE pass
2023-04-20 11:12:31 +03:00
Ivan Chikish
39d17a94c6
SPU LLVM: make savestates unsavable inside the code
2023-04-18 12:19:15 +03:00
Ivan Chikish
8153e5338f
SPU LLVM: optimize register stores
...
Custom implementation of DSE+LICM
2023-04-18 12:19:15 +03:00
RipleyTom
999caea021
Implement sceNpManagerGetCachedInfo
2023-04-17 21:13:44 +02:00
Ivan Chikish
44b3709d1d
SPU LLVM: use volatile stores for PC update
2023-04-15 12:40:59 +03:00
Ivan Chikish
ba29f0ccd1
SPU LLVM: use atomic loads in read channel count
2023-04-14 13:36:04 +03:00
Ivan Chikish
3473e19508
SPU LLVM: fix savestate safety guards
...
Volatile was removed since it prevented optimizations.
2023-04-14 07:26:30 +03:00
Ivan Chikish
22bd7dcc42
PPU LLVM: disable DSE pass and use volatile store/loads
2023-04-14 07:26:30 +03:00
Eladash
79d09d02ed
Add savestate buttons to home menu
2023-04-13 20:46:37 +02:00
Megamouse
a6313fa46c
cellMic: fix mic type regression
2023-04-13 20:00:05 +02:00
Megamouse
2a7431bd61
cellMic: fallback to proper sampling rate if necessary
2023-04-13 20:00:05 +02:00
Megamouse
90851459c8
cellMic: change some log levels
2023-04-13 20:00:05 +02:00
Megamouse
27c9bf137c
cellMic: fallback to 4,2,1 channels by default
2023-04-13 20:00:05 +02:00
Megamouse
2205790dd4
cellMic: add some error checks
2023-04-13 20:00:05 +02:00
Megamouse
0115c2f70a
cellMic: minor format changes for readability
2023-04-13 20:00:05 +02:00
RipleyTom
d35fecbeea
Forces deterministic FP operations when online
2023-04-12 15:31:36 +03:00
Eladash
0e388639cc
Loader: Make executable analyzation not halt UI when launching games
2023-04-12 15:18:50 +03:00
RipleyTom
17e6ad1fe8
Fix deref in cellSaveData log
2023-04-12 11:58:24 +02:00
Ivan Chikish
06b0e35fb9
Update to LLVM 16.0.1
...
Fix Zen4+ AVX-512 detection
2023-04-11 12:13:09 +03:00
oltolm
6fbca1acfd
remove unnecessary pointer bitcasts
2023-04-09 12:45:18 +03:00
RipleyTom
0e8b0e414a
Improve cellMic and sys_usbd thread scheduling
2023-04-07 23:36:32 +02:00
headassbtw
ec3114d6d8
Add alternate 3D display modes ( #13582 )
2023-04-07 20:08:07 +02:00
Megamouse
60fc51ed22
cellGcm: add more enums
2023-04-07 19:40:21 +02:00
Ivan Chikish
fb88e1c1c9
Update to LLVM 16.0.0, switch to upstream LLVM
2023-04-06 10:19:31 +03:00
brian218
8a509afc20
sys_fs: Implemented CELL_FS_PATH path-as-device support
2023-04-05 18:08:55 +02:00
brian218
6a95e0877b
sys_fs: Fix warning C6262
2023-04-05 18:08:55 +02:00
brian218
28c37ab465
sys_fs & VFS: Misc bug fixes
2023-04-05 18:08:55 +02:00
Megamouse
3e556c710b
cellMusicExport: first implementation
2023-03-31 15:25:21 +02:00
Megamouse
4289ffef1c
cellPhotoExport: add funcFinish check
2023-03-31 15:25:21 +02:00
RipleyTom
0c051a83a7
Fix mic thread usage
2023-03-30 08:14:28 +02:00
Megamouse
a8ada492b2
cellMic: fix registration index
2023-03-28 20:26:04 +02:00
Megamouse
55d6ee65ae
cellAudio: silence cellAudioSendAck and add pseudo code for it
2023-03-28 20:26:04 +02:00
Megamouse
69ecf8aea7
cellAudio: re-use event_sources array
2023-03-28 20:26:04 +02:00
Megamouse
f2b51668b4
cellMic: use fixed index for devices
2023-03-28 20:26:04 +02:00
Megamouse
c2527c9e1b
cellMic: wait for registration of multiple input devices
2023-03-28 20:26:04 +02:00
Megamouse
0bcd45c1d4
cellMic: add some additional error check and silence log spam
2023-03-28 20:26:04 +02:00
Megamouse
ecf0022fd1
cellMicGetSignalState: fake some more values
...
Maybe this improves the mic signal even more
2023-03-28 20:26:04 +02:00
RipleyTom
0f45a8c180
Fix inaccuracies pointed out by PVS-Studio
2023-03-25 08:45:30 +01:00
Eladash
0beda6fa89
Savestates: Fix deadlock on savestate load
2023-03-18 12:07:17 +03:00
Eladash
a41d2e43fd
cellFsReaddir: Fix termination sequence
2023-03-18 12:07:17 +03:00
RipleyTom
c98158b460
Add buf_to_hexstring
2023-03-18 01:51:35 +01:00
RipleyTom
02a53c582c
Invite changes
2023-03-18 01:51:35 +01:00
RipleyTom
bcce3acd5f
Signaling: report status inactive on unknown connection
2023-03-17 17:58:56 +01:00
oltolm
cf5346c263
use new LLVM API in SPURecompiler
2023-03-12 10:11:06 +03:00
Ivan Chikish
776b3b5efa
SPU LLVM: fix regression from #13500
...
Fixes #13526
2023-03-11 19:48:55 +03:00
oltolm
520524285a
llvm: update code to new API ( #13500 )
...
* llvm: update code to new API
* llvm: remove OLDLLVM define
2023-03-11 01:57:21 +03:00
Elad Ashkenazi
e45e9c20dd
PPU: Do not break on unexpected TOC ( #13490 )
2023-03-09 16:53:44 +03:00
Eladash
65eb625843
cellSaveData: Slow save completion
2023-03-07 13:01:21 +01:00
Megamouse
05064dfaf4
cellVdec: revert RGBA alignment change
2023-03-05 22:49:49 +01:00
Megamouse
425610b98a
Use win_error for WSAGetLastError
2023-03-05 22:49:49 +01:00
Megamouse
69ebdfd689
cellMic: random improvements
2023-03-03 08:27:42 +01:00
Megamouse
73b5b9d7b7
cellRtc: fix out of bounds write
...
Turns out you should listen to warnings once in a while...
sprint actually wrote more than 3 characters into the microDigits buffer !!!
2023-03-01 10:15:21 +01:00
illusion0001
f2155b49e2
Debugger: show CIA in register view ( #13462 )
2023-02-28 00:30:23 +01:00
Eladash
62c9b99e72
Update SPUThread.cpp
2023-02-27 14:17:05 +01:00
Elad Ashkenazi
2a344e1d87
cellMsgDialog: fix use-after-free
2023-02-27 14:17:05 +01:00
Megamouse
ae14aa991d
overlays: hotfix for return_code lifetime
2023-02-27 12:04:10 +01:00
Megamouse
2885c8a4ab
cellSaveData: get rid of g_last_user_response
2023-02-27 10:24:06 +01:00
oltolm
1800faf0dd
cellVdec.cpp: use lock_unlock instead of lock_guard
2023-02-26 22:20:07 +03:00
oltolm
40cd255051
fix: back() called an empty string in PPUThread.cpp
2023-02-26 22:20:07 +03:00
oltolm
ad4677a67c
fix use after move in cellVdec.cpp
2023-02-26 22:20:07 +03:00
RipleyTom
d9e0d016c6
Fix for Windows ENOTCONN on connecting socket
...
Fixes Windows returns ENOTCONN when using recvfrom/sendto on connecting socket instead of the expected EAGAIN.
2023-02-26 10:35:20 +01:00
Megamouse
e46dba43ad
config: try to fix float locale issues
2023-02-25 11:23:07 +01:00
kd-11
ddc9e74aa8
rsx/overlays: Putting it all together
...
- Migrate dialogs with input-only threads to use the unified input
system
2023-02-24 00:46:53 +03:00
Megamouse
6b30cdac09
Use u64 for system_time_t, as s64 doesn't make much sense in a microsecond context.
2023-02-22 23:57:20 +01:00
Megamouse
ccb7528a59
fix some warnings
2023-02-22 23:57:20 +01:00
Megamouse
1040757556
patch_manager: add ability to add dynamic patches
2023-02-22 01:17:36 +01:00
Megamouse
a7c3753c5a
cellMsgDialog: Improve some logging and localization
2023-02-21 23:35:13 +01:00
brian218
23da770364
sys_game: LV2 board storage minor fixups
2023-02-21 22:57:37 +01:00
RipleyTom
6186ac0245
rpcn: signaling handler improvements & upnp
...
Simplify signaling by making Matching2 a layer over normal signaling.
Implements UPNP port forwarding
Implement sceNpMatching2AbortRequest
Fix reported bw in sceNpUtil
Hack for Fat Princess binding udp on 3658
Reenable CB for sceNpBasicAddPlayersHistoryAsync
Misc fixes
2023-02-21 15:41:41 +01:00
Megamouse
bb2c9196f5
cellVdec: align RGBA/ARGB strides
2023-02-18 22:43:22 +01:00
Megamouse
1c8d3e0dca
cellVdec: fix au_count race condition
2023-02-18 15:31:21 +01:00
oltolm
bbd308a908
fix order of static initialization: add comment
2023-02-17 11:58:40 +03:00
oltolm
b5b8f7c35a
fix order of static initialization
2023-02-17 11:58:40 +03:00
Margen67
5bb89328d0
Remove whitespace
2023-02-15 08:58:02 +01:00
Eladash
3976018980
Debugger: Print error codes stored in GPR
2023-02-12 23:10:20 +01:00
Megamouse
1dac708323
cellPad: move CellPadData to pad_types for convenience
2023-02-12 17:04:31 +01:00
Megamouse
61c0d81667
cellPad/vsh: fix sixaxis interaction
...
This allows you to influence the particles in the XMB
2023-02-12 17:04:31 +01:00
Megamouse
38c7cf474d
cellPad: add sanity check for indices in cellPadLdd functions
2023-02-12 17:04:31 +01:00
Megamouse
ec4cbe5380
cellPad: simplify some code
2023-02-12 17:04:31 +01:00
Megamouse
9375e255e1
overlays: add pages to home menu
2023-02-09 20:36:35 +01:00
Eladash
27cad422b9
cellGame: Truncate excess of characters in TITLE_ID
...
In cellGameDataCheckCreate
2023-02-07 18:21:18 +03:00
Elad Ashkenazi
8652b7d358
cellVdec: Fix AU decode count on callback ( #13342 )
2023-02-05 13:02:51 +01:00
brian218
53e906d0f3
sys_game: Implemented sys_game_board_storage_write() & Made it modifiable
2023-02-04 22:19:59 +01:00
Elad Ashkenazi
780a6a7b40
sys_prx: Fix PRX module filename reading ( #13339 )
2023-02-04 21:24:24 +01:00
RipleyTom
737fbf661a
Add more disconnected limitations in sys_net
2023-02-04 20:33:21 +01:00
Nicolas Adenis-Lamarre
0023716053
- fix analog_t required for some games
...
- changing mapping to better fit to games (for example, select is rarely used)
Signed-off-by: Nicolas Adenis-Lamarre <nicolas.adenis.lamarre@gmail.com>
2023-02-04 16:10:40 +01:00
Megamouse
fc34b3f144
cellOskDialog: improve kb event hook callback
2023-01-28 21:51:36 +01:00
Megamouse
fb974a4551
overlays/osk: clear on enter
2023-01-28 21:51:36 +01:00
Megamouse
d3dbf9e83f
overlays/osk: Clear text properly in continuous mode
2023-01-28 21:51:36 +01:00
Megamouse
9b6d7a5275
cellOskDialog: don't wait for osk event_hook_callback
2023-01-28 21:51:36 +01:00
Megamouse
81ff956a48
cellOskDialog: use getter instead of weak_ptr
2023-01-28 21:51:36 +01:00
Megamouse
6106ff8b31
overlays/osk: fix cellOskDialogExtInputDeviceLock
2023-01-28 21:51:36 +01:00
Megamouse
d1a950d59f
overlays/osk: keep dialog open in continuous mode
2023-01-28 21:51:36 +01:00
Megamouse
641fadc1fb
overlays/osk: handle input device change
2023-01-28 21:51:36 +01:00
Megamouse
5299061282
overlays/osk: visualize separate windows
2023-01-28 21:51:36 +01:00
Eladash
5aced2e44b
Print LV2 Syscall Usage only if increased since last print
2023-01-28 17:21:45 +01:00
Malcolm Jestadt
813f7b50c1
SPU LLVM: Minor SUMB AVX-512 path optimization
...
- Tweak shuffle to allow LLVM to emit a cheap blend instruction instead of the expensive VPERMI2W instruction
2023-01-27 13:06:48 +03:00
brian218
7648171fe2
sys_usbd: Improved usb_handler_thread timing
2023-01-26 15:52:45 +01:00
brian218
49455965c0
sys_game: Implemented sys_game_get_rtc_status() & Updated sys_game_board_storage_read()
2023-01-26 15:52:45 +01:00
MSuih
a700e3b39e
Whitelist EA Active 2 accessories
2023-01-23 17:02:51 +01:00
Egor Romanovskiy
4fbbdf8732
sys_usbd: fix usb handler deinitialization
2023-01-23 12:32:09 +01:00
Megamouse
d3183708e8
overlays: do not open home menu in VSH
2023-01-21 09:11:53 +01:00
Megamouse
44771150b7
overlays: add simple home menu
2023-01-21 09:11:53 +01:00
Megamouse
ac2b2d82d2
overlays/osk: move pointer variables to fxo
2023-01-20 23:41:56 +01:00
Megamouse
dc0230c476
overlays/osk: Fix layout and positioning
2023-01-20 23:41:56 +01:00
Megamouse
0a8c343e6e
cellOskDialog: cellOskDialogSetSeparateWindowOption
2023-01-20 23:41:56 +01:00
Megamouse
afdbef1a81
cellOskDialog: improve dictionary functions
2023-01-20 23:41:56 +01:00
Megamouse
f659338e5e
overlays/osk: implement first osk pointer
2023-01-20 23:41:56 +01:00
Megamouse
4a82d81efe
overlays/osk: implement scaling
2023-01-20 23:41:56 +01:00
Megamouse
6b4208be9b
overlays/osk: align osk position
2023-01-20 23:41:56 +01:00
Megamouse
3d78c7f43a
cellOskDialog: fix error check and improve initialKeyLayout logic
2023-01-20 23:41:56 +01:00
Megamouse
34df4509af
overlays/osk: implement "support languages"
...
Some languages/panels in the osk need to be activated by the developer.
They are not available otherwise.
So let's check if they were pre-configured and only add the panels if they are supported.
2023-01-20 23:41:56 +01:00
brian218
0e64c74a78
sys_usbd: Added buffer null check for sys_usbd_transfer_data()
2023-01-18 08:09:35 +01:00
brian218
d2dc57585c
sys_fs: Improved sys_fs_fcntl(0xc0000015&0xc000001c)
2023-01-18 08:09:35 +01:00
brian218
e0fe7989e9
USB: Added VFS USB mass storage devices to the USB device list
2023-01-18 08:09:35 +01:00
Megamouse
450a64b58b
cellUserInfo: fix potentially locked user dialogs
2023-01-18 00:24:00 +01:00
Megamouse
1d214ed26a
Qt: add system cmd dialog
2023-01-16 17:26:05 +01:00
Elad Ashkenazi
e6a7597444
PRX/savestates/VSH: Associate PRX with library, fix VSH browser ( #13221 )
...
* PRX/savestate:s Associate PRX with library
* VFS/Savestates: Fix host_root resolving
* Savestates: Fix segfault in ppu_initialize
* SPU: Avoid some log spam
* VSH/sys_vm: Fix limit on root processes
2023-01-15 23:12:54 +03:00
kd-11
73cda2324a
rsx/lv2: Refactor DMA control stuff after VSH work
2023-01-11 16:48:53 +03:00
kd-11
3dba894369
rsx: Minor refactoring RSXThread
...
- Part 1 of many
2023-01-11 16:48:53 +03:00
Megamouse
29078bc428
cellMouse: decrease some log levels
2023-01-10 20:57:32 +01:00
Megamouse
43288a6760
Qt: add shortcut manager
2023-01-10 19:28:26 +01:00
Megamouse
9b7eaf5117
Improve error logging
2023-01-09 21:06:51 +01:00
Elad Ashkenazi
0946e5945f
VSH Improvements ( #13172 )
...
* sys_prx: Implement PRX LIB register syscall
* VSH: partial log spam fix
* sys_process reboot fix
* Implement sys_memory_container_destroy_parent_with_childs
* sys_net: Implement SO_RCVTIMEO/SO_SENDTIMEO
* VSH: Implement sys_rsx_context_free
* PPU LLVM: distinguish PPU cache exec also by address
Fixes referencing multiple PRX.
* UI: Do not report size of apps inside /dev_flash
2023-01-09 20:03:01 +03:00
Nekotekina
2f9cac8d18
fs: implement file::read_at
...
Reads from the given offset; does not seek; thread-safe.
2022-12-29 16:19:54 +03:00
Eladash
ee8cd82e9d
Demote PRX export already loaded error
2022-12-25 16:10:32 +03:00
Eladash
820e692e57
PRX: Implement multi-referenced library management
2022-12-25 16:10:32 +03:00
Megamouse
f545532556
cellSaveData: add some more info to log error
2022-12-22 09:09:51 +01:00
brian218
812224f7f7
Stop LV2 Watchdog when CELL_SYSUTIL_REQUEST_EXITGAME is issued
2022-12-15 13:12:40 +03:00
brian218
d78e2dad29
sys_game: Made the LV2 Watchdog restarts the game forcefully
2022-12-15 13:12:40 +03:00
brian218
65ae85061f
Misc and minor improvements of syscalls used by VSH ( #13067 )
2022-12-13 07:33:17 +01:00
brian218
ab3c8268f0
sys_sm: Implemented sys_sm_shutdown() ( #13048 )
2022-12-11 09:10:06 +01:00
brian218
cdc1d0c02b
sys_fs: sys_fs_get_mount_info(): Made g_mp_sys_dev_root always reported as mounted
2022-12-10 15:28:04 +01:00
Megamouse
1cc3e6e510
cellRec: hotfix for pre-recording
2022-12-10 04:10:40 +01:00
Megamouse
064ab58f3c
cellRec: move data instead of memcpy
2022-12-10 03:24:40 +01:00
Megamouse
85c0a2e602
cellRec: add more logging
2022-12-10 03:24:40 +01:00
Eladash
7df093c94b
Make it work with LLVM
...
Allow multiple entries for a single code.
2022-12-09 21:16:05 +03:00
Eladash
f572e29a13
PPU: Add new patch function for SONIC 06
2022-12-09 21:16:05 +03:00
Megamouse
a3bcb6c15a
cellRec: implement proper recording
...
Everything should work mostly. I didn't find a game to test the external input though.
2022-12-08 21:08:37 +01:00
Megamouse
0e73c4598e
cellVideoExport: fix file paths
2022-12-08 21:08:37 +01:00
Megamouse
6b8aef9fdd
cellAdec: fix some uninitialized member warnings
2022-12-08 21:08:37 +01:00
brian218
6d4379059c
sys_fs: Integrated get_mount_count() into sys_fs_get_mount_info_size()
2022-12-08 18:31:46 +01:00
brian218
a0f3704b41
sys_fs: Integrated the function of get_vfs() into get_mp()
2022-12-08 18:31:46 +01:00
brian218
0a3e540a10
sys_fs: get_vfs() minor fixup
2022-12-07 20:20:52 +01:00
Eladash
82a8d96fba
sys_fs hotfix
...
Co-Authored-By: brian218 <17809637+brian218@users.noreply.github.com>
2022-12-03 17:53:39 +01:00
brian218
8d9dd1d19c
Implemented sys_fs_newfs()
2022-12-02 08:18:46 +01:00
Megamouse
5188293242
evdev gun support cleanup
2022-11-30 19:38:42 +01:00
Nicolas Adenis-Lamarre
2805fe0a06
evdev gun support
...
supports guns via evdev. multiple guns.
extra buttons are configurable (guns can be configured for that).
Signed-off-by: Nicolas Adenis-Lamarre <nicolas.adenis.lamarre@gmail.com>
2022-11-30 19:38:42 +01:00
Team XLink Developers
b4757b514d
Add ability to have sockets bind to a local IP address ( #12998 )
2022-11-30 18:35:42 +03:00
Megamouse
5dbadccd7f
Log PSF path on error
2022-11-27 22:07:15 +01:00
Megamouse
49a968219f
Silence some usually irrelevant errors
2022-11-27 22:07:15 +01:00
Eladash
8b934abcf2
Improve error_code, make HDD1 errors be warnings
2022-11-26 16:33:47 +03:00
Nekotekina
7c15001042
Implement read_from_ptr<>() util
...
Doing std::bit_cast on a "span".
Should be usable in constexpr.
2022-11-26 09:30:11 +03:00
brian218
b639f3c8ec
Fixed up lv2_fs_mount_point stuff & Fixed loop.tmp potential leak
2022-11-19 10:42:49 +01:00
brian218
13ca1a7f09
Further implemented sys_fs_get_mount_info() and sys_fs_get_mount_info_size()
2022-11-19 10:42:49 +01:00
brian218
16098c38c8
sys_ss_appliance_info_manager(): Fixed VSH error 80029567 and 80029564
2022-11-19 10:42:49 +01:00
Elad Ashkenazi
99ae561caa
cellPad: Noise-cancelling log changes ( #12958 )
2022-11-16 20:00:22 +01:00
Megamouse
324b1039cf
set cellVideoOutSetGamma to trace
...
It is spammed a lot in some games and we already know it works.
2022-11-12 11:23:58 +03:00
Megamouse
3c79f3943f
Minor simplifcation in ppu_finalize
2022-11-12 11:23:58 +03:00
kd-11
5943b802d7
grammar
2022-11-11 12:09:23 +03:00
Eladash
b875a86e1d
PRX: export functions on start()
2022-11-09 02:28:12 +03:00
Eladash
0a35a62235
sys_prx: Make PPU imports/exports thread-safe
2022-11-09 02:28:12 +03:00
brian218
3cb9cd7724
sys_fs: Minor fixup ( #12913 )
...
Stubbed sys_fs_newfs
2022-11-01 19:49:50 +03:00
brian218
68b68e676b
sys_fs.cpp: Satisfy Clang
2022-10-31 18:53:09 +03:00
brian218
c7ced46707
Add support for mounting and unmounting CELL_FS_SIMPLEFS
2022-10-31 18:53:09 +03:00
brian218
ecc194cb62
Use DECR's Product Code when Debug Console Mode is enabled
2022-10-31 18:53:09 +03:00
Nekotekina
ae809ad320
Unexpected bugfixes
...
Mostly unaligned memory access.
Also includes workarounds for ubsan execution.
2022-10-31 14:20:02 +03:00
RipleyTom
06dc6909c4
implement sceNpManagerGetMyLanguages
2022-10-30 18:00:54 +01:00
capriots
c639b7d5f4
cellAudioAdd6chData(): fix channel order
2022-10-30 04:50:02 +01:00
brian218
61a371b106
Implemented sys_fs_mount() and sys_fs_unmount()
2022-10-28 08:51:41 +02:00
RipleyTom
880a4e3ca6
SceNpScore: improvements
2022-10-24 00:49:44 +02:00
Eladash
9f3f619774
Minor cleanup
2022-10-23 13:06:57 +02:00
Megamouse
4c8630d29f
sceNpTrophyRegisterContext: log tls error
2022-10-22 22:30:23 +02:00
Megamouse
5b66fe47db
sceNpTrophyCreateContext: do not log nul characters
2022-10-22 22:30:23 +02:00
RipleyTom
7ae9b15b5c
sys_net: return appropriate packet size for P2P
2022-10-22 20:14:32 +03:00
RipleyTom
67323994fc
Implement sceNpScoreSanitizeComment
2022-10-22 18:43:13 +02:00
RipleyTom
9b121a6414
sys_net: improvements
...
sys_net: implement reusable addr for p2p sockets
sys_net: implement getpeername for P2PS
sys_net: sockets inherit NBIO from their parent
2022-10-22 11:32:04 +02:00
Vestral
a1f9ff0aaa
Cubeb: rewrite locking
2022-10-21 22:15:49 +02:00
brian218
9a5dbda063
Changed the log level of LV2 Watchdog's being triggered
2022-10-21 17:38:59 +02:00
Eladash
903d847058
cellAudio: Implement setting to disable sampling skip
2022-10-21 09:32:49 +02:00
brian218
789e42e26f
sys_sm_shutdown() log minor fixup
2022-10-21 02:09:08 +02:00
Eladash
7ea0a6d642
sys_game_watchdog minor fixups
2022-10-18 13:08:48 +02:00
brian218
5c24009eb5
Implemented sys_game_watchdog syscalls
2022-10-17 20:32:01 +03:00
RipleyTom
01c285fc4a
RPCN v0.7
...
Bump protocol version
Improve signaling RTT calculation for client
Implement score game data functions
Various sceNpScore fixes
Verify flatbuffer buffers
Use std::variant for transaction specific data
2022-10-17 09:57:10 +02:00
Eladash
87797e117e
sys_spu: Some more fixes of wait flag misuse
2022-10-16 20:55:36 +03:00
Eladash
a5cc9a5517
Update cellFsGetDirectoryEntries to use wait flag correctly
2022-10-16 20:55:36 +03:00
Eladash
806acf8cd0
sys_fs: Fixed placement of check_state() and add some bugfixes
2022-10-16 20:55:36 +03:00
Megamouse
fafae1cbb5
cellRtc: Fix some param checks
2022-10-15 19:56:53 +02:00
brian218
48f47de95c
Added USB passthrough for H050 USJ PCB
2022-10-15 14:38:43 +02:00
brian218
e839595053
Implemented sys_game_get_system_sw_version()
2022-10-11 08:32:49 +02:00
brian218
a711eb31f4
Corrected the implementation of sys_game_board_storage_read()
2022-10-11 08:32:49 +02:00
Megamouse
4446d9ce4b
cellSubDisplay: add error checks
2022-10-10 21:26:27 +02:00
brian218
d311b4bd53
Update sys_game_board_storage_read()
2022-10-09 21:05:10 +03:00
Eladash
a6dfc3be2f
SPU: Enable the MFC list optimization for Atomic RSX FIFO
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
Elad Ashkenazi
cb743da215
sys_spu: fixup raw spu destroy regression
...
Caused a missed cpu_thread::state notification which is required now.
2022-10-06 12:23:51 +03:00
Elad Ashkenazi
4d24ba1f35
PPU Precompilation: Abort compilation as soon as possible on Emu.Stop()
2022-10-06 12:23:51 +03:00
Eladash
d25d1ecb3a
LV2: Avoid using multi-variable atomic waiting on cpu_thread::state wait
2022-10-04 16:28:34 +03:00
Eladash
2a00a88e2a
SPU LLVM: don't force-enter process_mfc_cmd() because it's slower
2022-10-04 16:28:34 +03:00
Elad Ashkenazi
77db8f04b9
Savestates: fix saving in HLE functions
2022-10-04 14:14:38 +03:00
Eladash
9319bc579c
cellAudio: Always send periodic sampling events
2022-10-04 13:41:57 +03:00
kd-11
0dd9c386ee
Fix running the emulator with AUDIT enabled
2022-10-03 12:57:16 +03:00
Eladash
af8c871411
Add origin PRX names for log messages
2022-10-02 20:03:27 +03:00
Malcolm Jestadt
d8897c585d
PPU/SPU LLVM: Allow Zen4 cpus to use VPERMI2B/VPERMT2B instead of the vperm2b256to128 path
...
- Zen4 based cpus can process VPERM2B in a single uop, unlike intel where it is 3 uops.
2022-10-01 15:38:29 +03:00
RipleyTom
eff1e4bd7e
CELL_NET_CTL_INFO_IP_ADDRESS returns external address
2022-10-01 11:56:41 +02:00
Elad Ashkenazi
0cc981ec18
SPU: fix atomicity of inaccurate GETLLAR
2022-09-30 15:26:08 +03:00
RipleyTom
d1a7bb0136
Fix faulty GetScoreFriendsRequest
2022-09-28 21:58:11 +02:00
RipleyTom
56caa10e56
Fix blocking raw socket recvfrom
2022-09-28 21:58:11 +02:00
RipleyTom
eea73deab3
RPCN v0.6
2022-09-27 23:39:54 +03:00
brian218
c996be321c
sys_game_board_storage_read(): Add more known code & Improve byte casting
2022-09-26 17:17:49 +01:00
Nekotekina
6ff6a4989a
Implement at32() util
...
Works like .at() but uses source location for "exception".
2022-09-26 18:04:15 +03:00
cohaereo
2655255d4d
sys_net: Implement sys_net_bnet_sendmsg for native sockets
2022-09-25 18:24:47 +03:00
Eladash
8485afa3a5
PPU debugger: report ppu_thread::ack_suspend state
2022-09-25 14:31:39 +03:00
Eladash
2759091ede
Debugger: Rewind SPU captures
...
Very basic implementation, can be improved.
2022-09-25 14:31:39 +03:00
Eladash
ae02b71a85
Savestates/Debugger: fix mfc debug option with savestates
2022-09-25 14:31:39 +03:00
Elad Ashkenazi
238298f695
sys_ppu_thread: Fix surmixer hack ( #12689 )
...
* sys_ppu_thread: Fix surmixer hack
* Hotfix after #12678
2022-09-21 21:10:59 +03:00
Eladash
194f7375da
SPU/LV2: Fix tiny race conditions
2022-09-21 20:35:34 +03:00
Marc Riera
c5572acd38
Allow USB passthrough for Densha de GO! controller
2022-09-21 12:04:16 +03:00
Nekotekina
c86ddb3b7d
cellImeJp: fix regression
2022-09-18 18:35:17 +03:00
Nekotekina
b49a1f27eb
Warning fixes
2022-09-17 16:35:02 +03:00
Eladash
cf4da5c4d1
CPU preemption control: bugfixes
2022-09-16 18:57:55 +03:00
Eladash
9c5108c1ca
CPU preemption control: Add one more debug variable
2022-09-16 18:57:55 +03:00
Eladash
2807be7080
SPU: Regression fix after #12648
2022-09-13 20:11:30 +03:00
Eladash
ec7b18dab5
Implement independent CPU preemptions
2022-09-13 19:28:20 +03:00
brian218
b9e20dc5c9
sys_game_board_storage_read(): Fix regression after #12637
2022-09-13 12:57:43 +03:00
Eladash
cfdc852f03
SPU: Power consumption reduction when using SPU inaccurate reservations
2022-09-13 11:21:01 +03:00
Eladash
92514e33bb
Avoid reservation notifications in liblv2.sprx
2022-09-13 11:21:01 +03:00
Eladash
f076fcd539
cellMusic: Implement some error checking
2022-09-12 15:04:23 +03:00
Eladash
4ac59875af
ppu: add some debug information
2022-09-12 15:04:23 +03:00
Eladash
780ca38f2f
SPU: Extend Inaccurate SPU reservations
2022-09-12 14:16:39 +03:00
Yui
9e83bc6544
Add the ability to set the PSID from the configuration ( #12637 )
2022-09-12 13:23:13 +03:00
Eladash
37aefe5811
sys_ppu_thread: Fix max thread name size
2022-09-12 12:57:39 +03:00
Eladash
eb4131e1c7
cellGame: Minor revert
...
I think there are many more bugs here..
2022-09-07 20:42:23 +03:00
Eladash
07f0ba213e
SPU: Allow special channel storage in channel busy waiting period
...
Move code to SPUThread.cpp.
2022-09-07 20:42:23 +03:00
Eladash
48382564d1
SPU: Implement "quintuple" Inbound MBOX storage
2022-09-07 20:42:23 +03:00
Nekotekina
5985f0eefa
BufferUtils: cleanup regarding ARM64
2022-09-07 17:59:07 +03:00
sguo35
a0d48c588a
spu/arm64: clean up assembly code generation
...
Clean up asmjit usage so we don't unnecessarily allocate memory
anymore for SPURecompiler functions.
2022-09-07 17:33:01 +03:00
Eladash
5e2424da58
IdManager.cpp: Fix cellFs IDs
2022-09-07 17:05:51 +03:00
Eladash
72a6696f5c
cellGame Fix PS3 disc insert
2022-09-07 17:05:51 +03:00
Eladash
89e0dcba5e
cellVdec: Adjust for reservations
2022-09-07 16:05:56 +03:00
Eladash
7698064f5a
SPU: Untangle VM lock to avoid deadlocks
2022-09-07 16:05:56 +03:00
Elad Ashkenazi
290226539f
Fix ARM build ( #12606 )
2022-09-04 21:11:04 +03:00
brian218
75efc79930
Implemented sys_game_board_storage_read()
2022-09-04 13:28:05 +03:00
Nick Renieris
905496e926
PPU: Fix STVLX
...
Fixes Sly 2 and Sly 3 crash on boot (RSX desync).
2022-09-04 12:27:29 +03:00
Elad Ashkenazi
e0a648240f
Unlog sceNpUtilCmpNpId
2022-09-02 08:29:09 +02:00
Eladash
7bad8f3348
Savestates/SPU: Minor fixup after fb01ed55
2022-09-01 20:09:28 +03:00
Eladash
ee1384341e
rsx: Implement atomic vertex upload (with Strict Rendering Mode)
2022-09-01 20:09:28 +03:00
Eladash
fb01ed55e5
SPU: Fix potential deadlock in event queue syscalls
2022-09-01 19:03:38 +03:00
Eladash
3f02935844
Add some debugging information
2022-08-30 08:57:33 +02:00
RipleyTom
f98251a05a
Fixes -w leaking
2022-08-30 07:46:42 +02:00
Nekotekina
e28707055b
Implement simd_builder for x86
...
ASMJIT-based tool for building vectorized loops (such as ones in BufferUtils.cpp)
2022-08-28 18:38:52 +03:00
brian218
698c3415ea
Fixed SIG: Thread terminated due to fatal error: Failed to read hex string: invalid argument
...
Fixed the error which occurred when a game attempted to read the VID/PID of an undefined VFS USB device:
SIG: Thread terminated due to fatal error: Failed to read hex string: invalid argument
(in file C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build\rpcs3\Emu\Cell\lv2\sys_fs.cpp:1942[:25], in function sys_fs_fcntl)
2022-08-26 08:45:14 +02:00
Eladash
c7586de280
Savestates/sys_fs: Fix saving encrypted and split-files file descriptors
2022-08-25 23:54:56 +03:00
Eladash
506b9deec5
Savestates/SPU LLVM: Improve saving performance
2022-08-25 23:54:56 +03:00
Eladash
a71bdc761e
SPU/Debugger: Improve debugging reservations
...
Simplify and make the debugging results more consistent.
2022-08-22 18:24:26 +03:00
Eladash
9d8f4d5cfa
Bugfix after #12523
2022-08-22 18:24:26 +03:00
Eladash
ee87fdc869
Fix GETLLAR spin detection
2022-08-22 08:33:22 +03:00
Eladash
bf63a18c5f
SPU Add ability to specify percentage of busy waiting
2022-08-21 15:02:01 +03:00
Eladash
ddba30988b
vm: Attempt to not remove cpu_flag::wait flag during access violation
2022-08-21 15:02:01 +03:00
Eladash
b0e2c959eb
SPU: Disable notification if no changes were made in PUTLLC
2022-08-21 15:02:01 +03:00
Eladash
28bec8e1bf
SPU: Implement custom reservation condition in atomic wait
2022-08-21 15:02:01 +03:00
Eladash
86702186f2
PPU: Detect lwmutex reservation pattern and optimize it
2022-08-21 15:02:01 +03:00
Eladash
82b1a2bd7a
SPU: add the concept of inaccurate reservations
...
Implement cellSpursRequestIdleSpu
2022-08-21 15:02:01 +03:00
Eladash
d36cf71a2d
Savestates: Fix PPU analysis when patches are applied
2022-08-21 15:02:01 +03:00
Eladash
1dd1062be1
PPU LLVM: Fix HLE function injection
2022-08-21 15:02:01 +03:00
Eladash
c0e3b86064
SPU: Optimize spu_thread::get_events()
2022-08-21 15:02:01 +03:00
Eladash
6210a8491f
SPU: Optimize and enable SPU GETLLAR Polling detection by default
...
* Make this setting guard all reservation waitings. (renamed)
* Revert atomic list usage: it's more expensive and not needed because it has a timeout and is not optimized for the rest of the waitables.
2022-08-21 15:02:01 +03:00
Eladash
33a4f05ffa
SPU: Interleave loads/stores in reservation access utilities
2022-08-21 15:02:01 +03:00
Eladash
a3007e11ca
SPU: Fix minor race in sys_spu_thread_receive_event
...
Check final cpu_state::state value for suspend state because that's the variable the thread waits on.
2022-08-12 15:20:48 +03:00
Eladash
7ff4509858
sys_lwcond: Fix a loose notification in cond wait
2022-08-11 12:44:40 +03:00
Eladash
f2997e4c00
LV2: Fix the most annoying race ever
...
Timeline of the race:
1. The PPU is in SLEEP state. state = suspend.
2. lv2_obj::awake is called on the traced thread and is now in ONPROC state, state = signal.
3. lv2_obj::awake is called by another thread externally with a priority higher than our traced thread and appends it to g_pending. state = suspend + signal.
4. lv2_obj::sleep/set_priority (higering priority) is called on any thread which is in ONPROC. Causing it to enter SLEEP or RUNNING state, while the traced thread is back in queue in ONPROC. state = suspend + signal.
5. The traced thread finally calls lv2_obj::awake on itself, g_pending decrements to 0 and we a have a rescheduling event, after XOR state = 0!!! (no signal)
6. In check_state: cpu_sleep_called is now true and remains this way.
7. Another thread with a higher prioty kicks in and appends the traced thread into g_pending. state = suspend.
8. The traced thread is at cpu_thread::cpu_wait(), and that's where it's gonna spend the rest of its life.
2022-08-11 12:44:40 +03:00
Eladash
683c1a6512
LV2: Optimize sys_ppu_thread a bit
2022-08-11 11:42:16 +03:00
Eladash
9b0d33048c
Savestates/LV2: Fix race on _sys_lwcond_queue_wait saving
...
cpu_flag::again modification requires exclusive access.
2022-08-11 11:42:16 +03:00
Eladash
bc8bf2c329
sys_cond/lwcond: Fix waiting time in the debugger for mutex lock
2022-08-11 11:42:16 +03:00
Elad Ashkenazi
f0002501f7
sys_mutex/lwmutex: Regression fixes after #12378
2022-08-11 11:42:16 +03:00
Elad Ashkenazi
c4cc0154be
LV2: Optimizations and fixes
...
Fix and optimize sys_ppu_thread_yield
Fix LV2 syscalls with timeout bug. (use ppu_thread::cancel_sleep instead)
Move timeout notification out of mutex scope
Allow g_waiting timeouts to be awaked in scope
2022-08-11 11:42:16 +03:00
Eladash
26e731b487
LV2: Re-add dropped optimization by previous commit
...
Currently only for lock-free syscalls.
2022-08-07 20:23:54 +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
011aabe9ed
LV2: Make sys_mutex and sys_lwmutex lock-free, add some busy waiting in sys_mutex_lock
2022-08-07 20:23:54 +03:00
Eladash
a17a6527f6
LV2: Move memory unlocking outside of mutex ownership and make it conditional
2022-08-07 20:23:54 +03:00
Eladash
122c6256ca
A fix of _spurs::add_workload
2022-08-07 20:23:54 +03:00
Eladash
73aaff1b29
LV2: allocation-free synchronization syscalls
...
* Show waiters' ID in kernel explorer.
* Remove deque dependency from sys_sync.h
2022-08-07 20:23:54 +03:00
Eladash
c7fbc16357
SPU: Postpone notifications to afterward group mutex ownership
2022-08-07 20:23:54 +03:00
Eladash
bc728db15b
LV2: Add busy waiting before entering atomic wait
2022-08-07 20:23:54 +03:00
Eladash
2eebbd307d
LV2: Minor optimization regarding signal flag
2022-08-07 20:23:54 +03:00
Eladash
dc851a729e
LV2: Postpone thread notifications to afterward mutex ownership(s)
2022-08-07 20:23:54 +03:00
Eladash
6007fd630f
Do not use lv2_obj::g_waiting when not needed in sys_timer_usleep
2022-08-07 20:23:54 +03:00
Megamouse
cb0ecb2afb
cellPngEnc
2022-08-06 10:35:10 +02:00
sguo35
cc1e4d2194
ppu/arm64: don't restore rsp on ppu_gateway return
...
Don't restore rsp on ppu_gateway return, since it can be reentrant. Also
change some registers to align with the x86 version's 32bit/64bit
usages.
2022-08-05 22:53:11 +02:00
Elad Ashkenazi
88b80ebdf5
sys_net: Fix missing locks in some syscalls ( #12459 )
2022-08-04 21:31:34 +03:00
Elad Ashkenazi
0e1931f178
sys_lwcond: Fix rare race on mode 3 signal ( #12413 )
2022-08-04 14:13:51 +03:00
Megamouse
c75b76ddf5
cellPhotoImport: fallback to extension if sub_type is unknown
2022-08-02 01:43:23 +02:00
Megamouse
4dec8d7925
cellPhotoImport: allow dev_hdd1
2022-08-02 01:43:23 +02:00
Megamouse
934e7b614c
cellPhotoExport/cellVideoExport: fix filenames
2022-08-02 01:43:23 +02:00
Megamouse
416b14de72
cellPhotoExport: first implementation
2022-08-01 19:11:14 +02:00
Megamouse
b87099c790
cellVideoExport: fix some copy pasta errors and prevent file overwrite
2022-08-01 19:11:14 +02:00
Megamouse
f90b79791f
HLE: fix file not found errors in media functions
2022-07-31 16:45:05 +02:00
Malcolm Jestadt
51e6d0a336
SPU LLVM: Add integer compare optimization for FCMGT
2022-07-29 11:59:59 +03:00
Megamouse
87e628a9e9
cellPhotoDecode: optimize get_scaled_image
2022-07-29 08:05:35 +02:00
Megamouse
f31ffc4596
Implement cellPhotoDecode
2022-07-28 09:06:48 +02:00
Megamouse
4114f00c05
cellPhotoImport: fix vfs path and add some logging
2022-07-28 09:06:48 +02:00
Megamouse
8f7209f886
cellMusicSelectionContext: fix log message facepalm
2022-07-27 07:39:55 +02:00
Megamouse
d80146c704
cellMusic: Fix resume, fast forward and rewind
...
- Sadly rewind does not work with the QMediaPlayer on windows
2022-07-27 07:39:55 +02:00
Megamouse
577f379a12
implement cellPhotoImport
2022-07-26 17:27:35 +02:00
Megamouse
3d73915358
cellSearch: improve populate_photo_info, read image headers
2022-07-26 17:27:35 +02:00
Megamouse
a5317d50a5
cellMusicSelectionContext: log playlist
2022-07-26 17:27:35 +02:00
Megamouse
c40439ae6b
cellMusic/Decode: implement playlist shuffle and repeat
2022-07-22 08:42:43 +02:00
Megamouse
cd4d73114c
overlays: fix media_list_dialog title
2022-07-21 01:36:33 +02:00
Eladash
bb9ae18c71
Savestates: Fix sys_rwlock_wunlock saving
2022-07-20 18:11:52 +03:00
Eladash
ce01457510
Fix futile wait regression in sys_lwcond_signal
2022-07-20 18:11:52 +03:00
Megamouse
d1a46b491e
cellMusic: add some error checks and copy context to callback
2022-07-20 07:09:38 +02:00
Eladash
d106934336
Savestates: Fix saving sys_mutex_unlock
2022-07-19 10:43:51 +03:00
Eladash
c887865d54
Perform cleanup after Emulator::Load failures
2022-07-19 10:43:51 +03:00
Eladash
dc48944979
Prefer BDVD over HDD0 in vfs::retrieve
2022-07-19 10:43:51 +03:00
Eladash
12ebf77e22
Savestates: save sys_spu_initialize settings
2022-07-19 10:43:51 +03:00
Megamouse
845af8bd96
cellGifDec: random stuff because I was bored
2022-07-18 22:23:25 +02:00
Megamouse
34615d3a74
cellMic: slow down if no mics are configured
2022-07-17 19:31:05 +02:00
Eladash
c0369b2e10
sys_net: Implement sys_net_abort
2022-07-17 14:53:03 +03:00
Megamouse
07ebbb6c84
cellSysutilAvc2SetStreamingTarget: remove ensure
2022-07-16 20:09:13 +02:00
sguo35
73ed657e00
spu/arm64: fix 16 byte branch patch alignment
2022-07-15 12:37:33 +03:00
sguo35
c52abed4d3
spu: implement ubertrampoline generator for arm64
...
Implement the ubertrampoline generator for arm64. It generally follows
the x86 version, but uses asmjit to generate code instead of writing raw
opcodes to memory, trading memory usage for readability. Currently the
trampoline implementation is fairly inefficient in terms of instruction
size and is substantially larger than the x86 version.
2022-07-15 12:37:33 +03:00
sguo35
9e57efe82c
spu: implement assembly functions for arm64
2022-07-15 12:37:33 +03:00
sguo35
77ab872bec
spu: remove rotqby C++ impl
...
rotqby C++ implementation is broken, since replacing it with the
intrinsic version reliably fixes spurs test. A conditional branch
immediately after a rotqby instruction will fail using the C++ version
but succeed using the intrinsic.
2022-07-15 12:37:33 +03:00
sguo35
27acebc5f5
spu: use portable llvm recompiler on arm64
...
Since there is not yet an arm64 version of the assembly (fast) version.
2022-07-15 12:37:33 +03:00
sguo35
2755d9941c
ppu: fix a bug where arm64 sp wasn't being saved
...
ASMJIT can silently fail and drop instructions when invalid operations
are performed (e.g. loading/storing sp). Explicitly move sp to a gp
register before doing loads/stores to fix this.
2022-07-15 12:37:33 +03:00
Eladash
3e51426379
Savestates/SPU: Kill emulation when its safe to save SPU state
2022-07-15 09:30:53 +03:00
Eladash
e548743cbf
Fixup rsx cpatures
2022-07-14 18:50:31 +03:00
Megamouse
7499f875a6
cellCrossControllerInitialize: add dialog
2022-07-13 19:12:46 +02:00
Megamouse
f4e85af53c
sceNpUtil: implement skeleton bandwidth test
2022-07-12 22:45:40 +02:00
Eladash
cdd6840826
Savestates/SPU: Complete fix for saving sys_spu_thread_receive_event
2022-07-12 15:15:42 +03:00
Eladash
ab27ee4cf4
Savestates/RSX: Save NV406E semaphore waiting
2022-07-12 15:15:42 +03:00
Eladash
befd7ceb89
Savestates/sys_spu: Minor fix in saving sys_spu_thread_receive_event
2022-07-10 14:19:59 +03:00
Eladash
2cead6f328
Savestates/SPU: Fix saving sys_spu_thread_send_event
2022-07-10 14:19:59 +03:00
Eladash
87cd65ff03
Savestates: support game collections
2022-07-10 14:19:59 +03:00
Megamouse
0c6df39a45
cellSearch: more error checks and shuffle
2022-07-09 16:39:10 +02:00
Vestrel
648ad0cd90
cellAudio: fix downmix if device doesn't support multichannel ( #12328 )
...
* cellAudio: fix downmix if device doesn't support multichannel
* Downmix in 2 stages
2022-07-09 15:25:28 +02:00
Vestrel
98b730c806
Audio: device switching and channel count detection ( #12246 )
2022-07-08 17:13:38 +02:00
Nekotekina
4b787b22c8
Implement FN (lambda shortener)
...
Useful for some higher order functions.
Allows to make short lambdas even shorter.
2022-07-08 14:47:41 +03:00
Eladash
983bfa2088
Savestates: Decryption of executable fix
2022-07-08 12:57:43 +03:00
Eladash
3a9928de65
Savestates: Log file descriptor information
2022-07-08 12:57:43 +03:00
Eladash
1fd5fb2f7e
Savestates: Fix minor race with LV2 timers
2022-07-08 12:57:43 +03:00
Eladash
4ac88fa8d3
Savestates/RSX: Save drawing context
2022-07-08 12:57:43 +03:00
Eladash
5f8f9e33f1
RSX/Savestates: Replace GCM hack with a proper fix
2022-07-08 12:57:43 +03:00
Eladash
f0c71ae2ae
Savestates: Fix saving sys_event_queue_destroy
2022-07-08 12:57:43 +03:00
Megamouse
0c7ecdc954
cellMusicDecode: add more error checks and silence some log messages
2022-07-08 07:55:46 +02:00
Megamouse
b683110e72
cellGem/overlays: show cursor if necessary
2022-07-07 12:40:23 +02:00
Megamouse
3840015e7d
cellGem: implement basic ds3 cursor movement
2022-07-06 21:49:31 +02:00
Megamouse
639b8112b6
Input: make move handler dynamic
2022-07-06 21:49:31 +02:00
Megamouse
2bf17f5d3c
input: fix horrible pad hacks
2022-07-06 21:49:31 +02:00
Megamouse
4823d4c32a
input: add background input option
...
Adds an option to disable background input to the IO tab in the settings dialog.
This will disable pad input as well as ps move and overlays input when the window is unfocused.
2022-07-06 21:49:31 +02:00
Eladash
c8c035eeef
Regression fix
2022-07-06 20:07:09 +02:00
Eladash
155bd09fd0
Savestates: Cleanup v128 usage
...
It's compatible with bitwise serialization so it is faster to load/save it this way.
2022-07-06 19:43:25 +03:00
Eladash
f546e5a8ef
VM/Savestates: Replace bugged read-only block optimization
2022-07-06 19:43:25 +03:00
Eladash
2ccb0c8f42
SPU LLVM/Savestates: Remove unneeded store insurance and add related fix
2022-07-06 19:43:25 +03:00
Eladash
d8f3029952
Log LV2 periodic timers
2022-07-06 19:43:25 +03:00
Eladash
09c28f75b3
Savestates: Fix LV2 timers (fixes audio in some games)
2022-07-06 19:43:25 +03:00
Eladash
57671e267d
Savestates: save cellAudioOut
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
Eladash
2815aecd0c
Savestates: Save SPU decrementer state
2022-07-06 19:43:25 +03:00
Eladash
bd9ba7ef1f
Remove incorrect Emu.IsStopped() checks
2022-07-05 08:25:36 +02:00
Eladash
a015bd1ebd
Savestates: Add missing position placement
2022-07-05 08:25:36 +02:00
Eladash
d6cf167d52
Savestates: Minor optimization of size
2022-07-05 08:25:36 +02:00
Eladash
3fc2194fd5
Savestates: Fix zombie PPU threads saving
2022-07-05 08:25:36 +02:00
Eladash
72c14994f0
Savestates: Fix memory containers initialization (invalidates old savestates)
2022-07-05 08:25:36 +02:00
Elad Ashkenazi
fcd297ffb2
Savestates Support For PS3 Emulation ( #10478 )
2022-07-04 16:02:17 +03:00
Eladash
cf0fcf5a2a
SPU: Implement execution wake-up delay
2022-06-28 19:54:25 +03:00
Eladash
f66256cc13
rsx: PS3 Native frame limiter improvements, add Infinite frame limiter
...
* Do not wait on DEVICE 0x30 semaphore, it seems like it is something to do with queue command synchronization.
- This also fixes cellGcmSetFlipWithWaitLabel which is built specifically to enable accurate RSX flipping time, its waiting command is confirmed to be placed **AFTER** DEVICE 0x30 waiting.
* Fix default vsync state to be enabled. (and set it to enabled in cellGcmSetVBlankFrequency as well)
* Add experimental "Infinite" frame limiter mode.
* Fix spurious enabling of second vblank.
2022-06-25 15:30:41 +02:00
Megamouse
9cf7a63c77
Emu: Implement BlockingCallFromMainThread
...
Reduces some copy-paste clutter throughout the project
2022-06-25 14:01:40 +03:00
Nekotekina
ea23525f66
sys_fs: Add mountpoint for /dev_ps2disc
2022-06-24 19:55:44 +03:00
Megamouse
87762a9b17
cellGame: implement disc change callbacks
2022-06-24 17:34:21 +02:00
Eladash
5e01ffdfd8
Debugger: Optimize cpu_thread::dump_regs()
...
Reuse string buffer. Copies and reallocations are expensive with such large strings.
2022-06-23 22:41:32 +02:00
Megamouse
661b485b58
HLE: more error checks
2022-06-22 21:47:06 +02: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
Nekotekina
653a9e6e7f
Debugger: always print cpu_thread::dump_misc()
...
Was removed for some reason.
2022-06-22 18:53:29 +03:00
Eladash
71e07dc6c7
IdManager.h: Improvements
...
* Ensure ::PtrSame<T, Derived> is true.
* Allow id_base, id_step and id_count to be of enumeration type.
* Fix potential deadlock in kernel explorer.
idm::select:
* Allow to select multiple inherited object types for idm::select.
* Allow function reference types. (they don't allow access to operator() directly, use deducing std::function constructor instead)
* Ensure ::is_same_ptr<T, object_type> is true.
2022-06-22 17:24:47 +03:00
Eladash
ccb2724fc4
Debugger: Implement SPU breakpoints
2022-06-21 16:59:45 +03:00
Eladash
d0e9108800
SPU: Implement "double" SNR storage
2022-06-20 20:50:11 +03:00
Eladash
dc80d000aa
SPU Disasm: Detect sys_event_flag_set_bit syscall
2022-06-20 20:50:11 +03:00
sguo35
775caabeeb
[ppu] Fix function trampoline for arm64
...
- Refactor function manager trampoline to be cleaner
- Add trampoline impl for arm64
- Force all JIT entrypoints on Apple to toggle W^X
2022-06-20 15:08:27 +03:00
isJuhn
4262794668
Implement PINE IPC Server
2022-06-19 17:56:50 +02:00
capriots
a6237e5473
cellAudio(Out): properly implement all downmixing modes ( #12252 )
2022-06-19 17:08:03 +02:00
Megamouse
0b14d785ca
stub cellHttp
2022-06-19 07:07:31 +02:00
capriots
6bdf415adb
Fix audio renderer not resetting after cellAudioOutConfigure() was called
2022-06-19 06:09:29 +02:00
Megamouse
ebabdd37b4
cellAudioOut: fix sound_mode exception
...
Turns out some games don't configure proper channel counts after all,
which triggers an ensure in cellAudioOutGetState.
Let's select the current sound_mode in cellAudioOutConfigure.
Keep the old one if no match was found.
Also moves some code from AudioBackend to cellAudioOut for thread safety (see mutex).
2022-06-18 18:17:43 +02:00
Megamouse
11c5230628
stub cellSysutilRegisterCallbackDispatcher
2022-06-15 20:46:24 +02:00
Megamouse
bfe029bb0c
cellSysutil: implement some bgm fxo stuff
2022-06-15 20:46:24 +02:00
Megamouse
cbf12bb54b
cellSysutil: stub cellSysutilGameDataExit functions
2022-06-15 20:46:24 +02:00
Megamouse
b01d8e01e3
cellSysutilRegisterCallback: fix potential read out of bounds
2022-06-15 20:46:24 +02:00
Ivan
c2190f71ca
SPU/PPU LLVM: fix triple setup (regression fix) ( #12228 )
2022-06-14 18:13:43 +03:00
Elad Ashkenazi
5378fee1c3
SPUAnalyzer.h: Add missing category check functions ( #12222 )
...
Some instructions were moved into integer category.
2022-06-14 16:04:24 +03:00
Jeff Guo
cefc37a553
PPU LLVM arm64+macOS port ( #12115 )
...
* BufferUtils: use naive function pointer on Apple arm64
Use naive function pointer on Apple arm64 because ASLR breaks asmjit.
See BufferUtils.cpp comment for explanation on why this happens and how
to fix if you want to use asmjit.
* build-macos: fix source maps for Mac
Tell Qt not to strip debug symbols when we're in debug or relwithdebinfo
modes.
* LLVM PPU: fix aarch64 on macOS
Force MachO on macOS to fix LLVM being unable to patch relocations
during codegen. Adds Aarch64 NEON intrinsics for x86 intrinsics used by
PPUTranslator/Recompiler.
* virtual memory: use 16k pages on aarch64 macOS
Temporary hack to get things working by using 16k pages instead of 4k
pages in VM emulation.
* PPU/SPU: fix NEON intrinsics and compilation for arm64 macOS
Fixes some intrinsics usage and patches usages of asmjit to properly
emit absolute jmps so ASLR doesn't cause out of bounds rel jumps. Also
patches the SPU recompiler to properly work on arm64 by telling LLVM to
target arm64.
* virtual memory: fix W^X toggles on macOS aarch64
Fixes W^X on macOS aarch64 by setting all JIT mmap'd regions to default
to RW mode. For both SPU and PPU execution threads, when initialization
finishes we toggle to RX mode. This exploits Apple's per-thread setting
for RW/RX to let us be technically compliant with the OS's W^X
enforcement while not needing to actually separate the memory
allocated for code/data.
* PPU: implement aarch64 specific functions
Implements ppu_gateway for arm64 and patches LLVM initialization to use
the correct triple. Adds some fixes for macOS W^X JIT restrictions when
entering/exiting JITed code.
* PPU: Mark rpcs3 calls as non-tail
Strictly speaking, rpcs3 JIT -> C++ calls are not tail calls. If you
call a function inside e.g. an L2 syscall, it will clobber LR on arm64
and subtly break returns in emulated code. Only JIT -> JIT "calls"
should be tail.
* macOS/arm64: compatibility fixes
* vm: patch virtual memory for arm64 macOS
Tag mmap calls with MAP_JIT to allow W^X on macOS. Fix mmap calls to
existing mmap'd addresses that were tagged with MAP_JIT on macOS. Fix
memory unmapping on 16K page machines with a hack to mark "unmapped"
pages as RW.
* PPU: remove wrong comment
* PPU: fix a merge regression
* vm: remove 16k page hacks
* PPU: formatting fixes
* PPU: fix arm64 null function assembly
* ppu: clean up arch-specific instructions
2022-06-14 15:28:38 +03:00
Nekotekina
cb2c0733e2
SPU LLVM: fix vrangeps usage in clamp_smax
2022-06-12 16:40:04 +02:00
Malcolm Jestadt
ebeeafc94f
SPU LLVM: Use vrangeps in clamp_smax
...
- This instruction can clamp a value between a range of values, something which previously needed 2 instructions.
- With the immediate byte set to 0x2 it will compute the minimum between the absolute value of the first input and the second input, and then copy the sign from the first input to the result.
2022-06-11 18:25:31 +03:00
Elad Ashkenazi
17e28ae85d
SPU LLVM: Improve expression matching detection for moved registers
2022-06-11 16:13:58 +03:00
RipleyTom
da6434a65a
Implements sys_fs_fcntl 0xC0000008 & 0xC000001A ( #11957 )
2022-06-11 13:12:42 +01:00
Megamouse
2a1e3b2b77
sys_rsxaudio: use max channel count from configured sound_modes
2022-06-09 18:59:13 +02:00
Megamouse
61823a5d62
sys_rsxaudio: only update config if the fxo is initialized
2022-06-09 18:59:13 +02:00