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
Megamouse
ba96c6f3bb
cellAudioOut: properly implement downMixer
...
If the PS3 downMixer is enabled, the game uses 8 channel input and 2 or 6 channel output
2022-06-09 18:59:13 +02:00
Megamouse
fd8931c87e
cellAudio: simplify sound mixer
...
There was no need to treat the first mix differently if all it did was init the buffer anyway.
Let's just always memset to zero.
2022-06-09 18:59:13 +02:00
Malcolm Jestadt
64616f1408
SPU LLVM: Microfixes
...
- Avoid vpermb path in shufb when op.ra == op.rb
- Reverse indices with (c ^ 0xf) rather than (~c) in vpermb path, vpternlogd is a 3 input operation and requires needless mov instructions to avoid destroying inputs
2022-06-08 22:50:30 +03:00
Nekotekina
8d46840e09
Enable ppu_feed_data in PPU Interpreter
2022-06-07 15:24:50 +03:00
Nekotekina
753a12f436
Enable call history in PPU Interpreter
2022-06-07 15:24:50 +03:00
Megamouse
8e667e69f6
initial cellGameThemeInstall and cellGameThemeInstallFromBuffer
2022-06-07 07:37:30 +02:00
Megamouse
4d09be25aa
cellMsgDialog: send DRAWING_END on abort
2022-06-06 20:07:01 +02:00
Eladash
0f499e36fb
Optimize emulation stopping for when cellSysutilCheckCallback is not called
2022-06-06 19:21:41 +02:00
Eladash
f5beaabded
cellSysutil: Implement DRAWING callbacks
...
Also fixed a minor race in cellUserInfo regarding status of dialog
2022-06-06 19:21:41 +02:00
Elad Ashkenazi
248809ca1f
cellGame: Revert cellGameDataCheckCreate2 change for now
2022-06-06 13:41:20 +02:00
Eladash
f9bc7458d4
rsx: Resurgence of HLE GCM
2022-06-06 12:56:25 +02:00
Eladash
f1b03b36f7
cellGame: Make stats storage non-temporary, fix cbSet->setParam initial value
2022-06-05 20:47:49 +02:00
Megamouse
e9ba6fd034
Qt: use unique_ptr for Ui objects. Should fix some mem-leaks
2022-06-05 19:07:03 +02:00
Megamouse
ac34714837
CellAudioOut: Add some placeholders to CellAudioOutCodingType
2022-06-05 13:34:34 +02:00
Megamouse
b4ce31cae3
cellAudioOut: update TODO comments for CELL_AUDIO_OUT_SECONDARY
2022-06-05 13:34:34 +02:00
Megamouse
5dffbca636
cellAudioOut: Only add LPCM 2ch. to secondary output
2022-06-05 13:34:34 +02:00
Megamouse
306776626a
cellAudioOut: set latency to 13
2022-06-05 13:34:34 +02:00
Megamouse
15be6827ea
cellAudioOutGetConfigure: Store and return set config seperately
2022-06-05 13:34:34 +02:00
Megamouse
8c0a786918
cellAudioOutConfigure: don't return error on unsupported config
...
Apparently the config simply isn't changed
2022-06-05 13:34:34 +02:00
Megamouse
8aa67114a9
cellAudioOut: Prefer 7.1 if available and supported
...
Select 7.1 as initial mode if the PARAM.SFO supports it and we enabled it
2022-06-05 13:34:34 +02:00
Megamouse
1bbb26334a
cellAudioOut: Use bev_bdvd for disc game PARAM.SFO
...
Game Data PARAM.SFO does not contain SOUND_FORMAT
2022-06-05 13:34:34 +02:00
Malcolm Jestadt
1227b0a633
SPU LLVM: Reneable icelake shufb paths
...
- The previous code works just fine
2022-06-05 13:08:00 +03:00
Elad Ashkenazi
9bb7e8d614
rsx: Implement atomic FIFO fetching (stability improvement) (non-default setting) ( #12107 )
2022-06-04 15:35:06 +03:00
Malcolm Jestadt
0e5514003a
SPU LLVM: Optimize LQR/STQR
...
- Avoid type mismatch between adds that prevented llvm from combining the operations
2022-06-03 16:16:28 +03:00
Megamouse
06e5b8a06a
cellAudioOut: add stereo, 5.1 and 7.1 for covenience
2022-06-02 13:12:04 +02:00
Megamouse
94aef197dd
cellAudioOut: switch to manual multi-selection of format as seen on PS3
2022-06-02 13:12:04 +02:00
Megamouse
a86e7eeba0
cellAudioOut: Always add Linear PCM 2 Ch., also add 5.1 when 7.1 is selected
2022-06-02 13:12:04 +02:00
Megamouse
95a3ce68ce
cellAudioOut: log all added sound modes
2022-06-02 13:12:04 +02:00
Megamouse
9ab1e69697
cellAudioOut: simplify sfo access and make it foolproof
2022-06-02 13:12:04 +02:00
Megamouse
60d80fd5fc
PSF: move sound format flags to enum
2022-06-02 13:12:04 +02:00
Megamouse
350d3ad386
cellAudioOut: fix AC3/DTS mixup
2022-06-02 13:12:04 +02:00
Megamouse
d6065e8814
cellAudioOut: add sound modes even if they aren't supported
2022-06-02 13:12:04 +02:00
Megamouse
363808a57b
cellAudioOut: simplify sound mode initialization
2022-06-02 13:12:04 +02:00
Megamouse
3402835c8e
cellAudioOut: apply review fixes, add some comments
2022-06-02 13:12:04 +02:00
Megamouse
911d37e4d7
cellAudioOut: use 2 channel LPCM by default and also use it as fallback
2022-06-02 13:12:04 +02:00
Megamouse
72e1e242a3
cellAudio: use format instead of downmix
2022-06-02 13:12:04 +02:00
Megamouse
c42ff338e7
cellAudioOutGetSoundAvailability: return channel count based on available sound modes
2022-06-02 13:12:04 +02:00
Megamouse
4f81fcd5cc
cellAudioOutConfigure: move sound_modes to fxo, implement waitForEvent
2022-06-02 13:12:04 +02:00
Megamouse
d47f1ef406
cellAudio: Implement application based downmix settings
2022-06-02 13:12:04 +02:00
Megamouse
03df3c5293
cellAudioQuit: do not clear event queues
...
They seem to be handled independently.
2022-05-31 23:38:29 +02:00
Elad Ashkenazi
bda52a51a7
Debugger: Show HEX view of floating-point PPU registers
2022-05-31 07:36:10 +02:00
Malcolm Jestadt
e9dfb3cb63
SPU LLVM: Fixup for inline MFC transfers
...
- Could previsouly segfault when src and dst were swapped. Just use unaligned instructions instead.
2022-05-29 19:08:36 +03:00
Vestral
5b0badc215
sys_rsxaudio: timer fix
2022-05-29 14:59:12 +02:00
Malcolm Jestadt
6f4398889e
SPU LLVM: Optimize inline MFC transfers
...
- Use wider instructions when possible
2022-05-29 15:32:25 +03:00
Eladash
dd4722fc1f
rsx: Fix second VBLANK time
...
Turns out that both VBLANK time and flip time clock at 80Mhz which is MFTB rate, just that cellGcmGetLastFlipTime is missing conversion to microseconds, so odd.
2022-05-29 14:23:28 +02:00
Eladash
eec27f0e89
Revert "rsx: Fix FLIP time"
...
This reverts commit 256eb17ae5 .
2022-05-29 14:23:28 +02:00
Eladash
256eb17ae5
rsx: Fix FLIP time
2022-05-28 13:00:42 +02:00
RipleyTom
aaef4a2d5b
More verbose errors in nt_p2p_port
2022-05-27 08:56:39 +02:00
Eladash
27b28cf6ec
sys_spu: Fix spu_thread_group_terminate deadlock
2022-05-26 18:04:52 +03:00
Eladash
a9a1204ab9
sys_rsx: Full reset of flip semaphore
2022-05-25 17:36:28 +03:00
Eladash
e7ced1aeab
Debugger: Implement SPU mailbox content display
2022-05-25 17:36:28 +03:00
Eladash
56f95934f5
Fix cellVdec regression to be harmonized with the new interrupts model
2022-05-25 17:36:28 +03:00
Megamouse
88ee62be26
cellAdec: fix uninitialized default size of AVPacketHolder ( #12077 )
2022-05-25 11:40:51 +02:00
Eladash
961d41d0bd
RawSPU: Reinvoke pending interrupts if missed
2022-05-25 11:46:51 +03:00
Vestral
608f823516
sys_rsxaudio: Add id to kernel explorer and some fixes
2022-05-23 13:10:46 +02:00
RipleyTom
3dc9a8b980
fix lv2_socket_native::accept
2022-05-23 07:36:51 +02:00
kd-11
d52bb78d2c
rsx: Trivial non-blocking display synchronization
2022-05-21 16:35:35 +03:00
kd-11
e9bf3e13d0
rsx/zcull: Pause the main thread before flushing reports
2022-05-20 16:29:27 +03:00
kd-11
8cd7a44a25
gcm: Force HLE of cellGcmGetTimestamp
...
- This is the only way to know if a report is being used for ZCULL or timestamps only.
If the game is not reading the ZCULL data, the access guards will detect it and optimize usage around that.
2022-05-20 16:29:27 +03:00
kd-11
34220ec447
lv2: Make some struct declarations uniform
2022-05-20 16:29:27 +03:00
Elad Ashkenazi
5a581f46df
Add a constraint about vm area approx matching
2022-05-19 21:29:18 +03:00
Eladash
b334621d76
PPU DisAssembler: Prevent false function descriptor detection
2022-05-19 21:29:18 +03:00
Elad Ashkenazi
a768855a7a
Update PPUThread.cpp
2022-05-19 18:16:53 +03:00
Eladash
7ddeb0d00f
Implement sys_process_exit3
2022-05-19 13:59:52 +03:00
Eladash
2ba437b6dc
SPU: Implement timer freezing ability
2022-05-14 22:03:47 +03:00
Megamouse
1e1b111678
sceNp: register custom menu
2022-05-13 21:52:14 +02:00
Eladash
1f5ce4f619
Loader: Fix out-of-bounds access of string
...
There was no need to manually align size, it only creates a bug with memcpy usage.
2022-05-13 19:53:48 +03:00
Eladash
524da5dc54
LV2: Memory state post-exitspawn fixes
...
* Fix memory capacity if SDK version of the following executable differs from the original process'.
* Keep user memory containers, they are not freed at exitspawn!
Hw test 4bf60023ee
2022-05-13 13:15:07 +03:00
Eladash
a2a6303a22
PPU LLVM: Precompile system-internal executables if booting a dev_flash's program
2022-05-12 19:55:07 +03:00
Eladash
6805d8c7e0
SPU: Fix race on SPU Mailbox last value reading
2022-05-12 13:44:12 +03:00
Nekotekina
e243ef5907
PPU: implement accurate FRES
...
Implemented with an accurate lookup table.
2022-05-11 10:46:08 +03:00
doesthisusername
7b162c7513
PPU: implement quasi-accurate FRSQRTE
...
Denormals are handled like zeros.
NaN handling is inaccurate in some cases.
Co-authored-by: Nekotekina <nekotekina@gmail.com>
2022-05-11 10:46:08 +03:00
NicknineTheEagle
1df47352cc
Implemented sceNpDrmGetTimelimit
2022-05-10 23:24:00 +02:00
NicknineTheEagle
83ca7654b1
Return NPD header in verify_npdrm_self_headers and VerifyEDATHeaderWithKLicense
2022-05-10 23:24:00 +02:00
Eladash
d03fcad9bd
cellAudio: Some bugfixes
...
* Reading position storage is 16 bytes aligned according to hw test.
* Fix cellAudioGetPortConfig portSize reporting, now matches PS3.
* Remove ghost code about unearthly 6 channels cellAudio port mode.
2022-05-10 22:39:34 +02:00
Megamouse
e494fc04e5
sceNp: add some constants
2022-05-10 21:55:35 +02:00
Eladash
d77c9139ad
Debugger: Show constant-formed attribute of register value
2022-05-10 22:34:29 +03:00
RipleyTom
4479d99a9a
Implement sceNpManagerGetTicketParam
2022-05-10 21:04:15 +02:00
Megamouse
a538f655be
sys_fs_fcntl: hook up usb device info
2022-05-10 19:39:35 +02:00
Megamouse
d83fac4247
cellAudio: fix timestamp exception
2022-05-08 02:08:20 +02:00
Megamouse
5476b9098e
cellHttp: add more errors
2022-05-07 14:46:57 +02:00
Megamouse
e5a75cfd1c
sceNpTrophyGetTrophyUnlockState: handle read_only
2022-05-07 13:58:05 +02:00
Megamouse
1f745c4588
sceNpTrophyRegisterContext: add read_only check
2022-05-07 13:58:05 +02:00
Megamouse
6c7f49d563
sceNpTrophy: don't use TROPHY.TRP in CreateContext
2022-05-07 13:58:05 +02:00
Megamouse
dae51a4a2b
sceNpTrophy: remove confirmed comment
2022-05-07 13:58:05 +02:00
Megamouse
d113324a90
sceNpTrophyRegisterContext: handle SHOW_ERROR_EXIT
2022-05-07 13:58:05 +02:00
RipleyTom
02d22dca95
Add Top Shot Elite controllers to whitelist
2022-05-05 22:33:50 +02:00
Eladash
be5f8413ca
Avoid using PUTLLC in PUTLLUC if we know SPU LR has already been raised ( #11940 )
2022-05-05 22:15:08 +03:00
RipleyTom
ce48d880d9
Fix for device2host control transfers
2022-05-05 19:24:01 +02:00
Nekotekina
10b33d0f79
SPU: optimize conflicting PUTLLUC (No-TSX)
...
Enable previously TSX-only optimization.
2022-05-05 19:16:16 +03:00
Vestrel
d1e468fefb
sys_rsxaudio: Initial implementation ( #11907 )
2022-05-05 15:47:44 +02:00
RipleyTom
0ac90ac395
sys_net: ensures return from raw socket calls
2022-05-05 14:37:54 +02:00
Megamouse
fef779feca
cellRec: fix pOpt pointer type
2022-05-05 12:23:12 +02:00
Megamouse
ced890301c
cellRec: fix some warning
2022-05-05 12:23:12 +02:00
Megamouse
7d73d90c1a
cellGameExec: fix warnings
2022-05-05 12:23:12 +02:00
Eladash
fcbeb2fa22
Remove slow vm::writer_lock usage from SPUThread.cpp
2022-05-04 23:36:57 +03:00
Eladash
3dda72e47f
SPU: Cache reservation memory direct access handle (optimization)
2022-05-04 20:28:55 +03:00
Eladash
63669000ab
PPU Loader Fix removing writablity permission for RSX/SPU writable segments
2022-05-04 12:03:10 +03:00
Eladash
f9a62667cf
SPU/PPU Loader: Implement linker/PS3 compiler executable files loading
2022-05-03 20:47:36 +03:00
Megamouse
6cc1466baa
halfplement cellRec
2022-05-03 18:19:31 +02:00
Megamouse
bcd77ac65e
halfplement cellVideoExport
2022-05-03 18:19:31 +02:00
Nekotekina
0786a0a088
PPU LLVM: match interpreter for VEXPTEFP/VLOGEFP
2022-05-03 08:27:44 +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
Eladash
5eeb79ffa1
Fix forced HLE injection
2022-05-01 09:21:49 +02:00
RipleyTom
5746df4046
sceNpMatching2CreateContext checks psn state ( #11887 )
2022-04-27 22:16:16 +01:00
Megamouse
e0d3a3b0ed
cellOskDialog: do not intercept input unless we actually show a dialog
2022-04-26 00:51:38 +02:00
Megamouse
3183d73e4d
OSK/overlays: fix initial input interception
...
Don't use default interception if we already intercept with custom params.
2022-04-26 00:51:38 +02:00
Megamouse
c8700dd246
Input: log interception and its source function
2022-04-26 00:51:38 +02:00
Eladash
7329fa9cf5
TRPLoader: Use std::string_view
2022-04-25 20:15:10 +02:00
Megamouse
a1abc79f28
cellOskDialog: add event_hook_callback logging
...
And refactor the callback a bit
2022-04-25 19:44:56 +02:00
Megamouse
3d0f751211
cellMusic: lower some log levels to reduce spam
2022-04-25 19:44:56 +02:00
Megamouse
8864f944e2
cellOskDialog: implement dimmer_enabled
2022-04-25 19:44:56 +02:00
Megamouse
b29f106c51
cellOskDialog: implement base_color
2022-04-25 19:44:56 +02:00
Megamouse
71f8280c5e
cellOskDialog: implement KeyboardEventHookCallback
2022-04-25 19:44:56 +02:00
Megamouse
0ff293707a
OSK: allow device input during interception
2022-04-25 19:44:56 +02:00
Megamouse
9adab801ac
cellOskDialog: implement device mask and lock
2022-04-25 19:44:56 +02:00
Megamouse
43e7776f4d
cellOskDialog: add some error checks and TODOs
2022-04-25 19:44:56 +02:00
Megamouse
ffd36ea662
OSK: handle keyboard input
2022-04-25 19:44:56 +02:00
Megamouse
abf80cc112
keyboard: use std::array, default init, + KbButton
2022-04-25 19:44:56 +02:00
Megamouse
c175cdf3d8
cellVdec: send AUDONE even when the queue is being flushed/restarted
...
Fixes GT6 regression
2022-04-24 17:39:49 +02:00
Megamouse
7924784215
cellVdec: log sequence id of commands
2022-04-24 17:39:49 +02:00
Megamouse
06cbc96722
cellVdecStartSeq: log level warning
2022-04-24 17:39:49 +02:00
Megamouse
dcda332a93
cellVdec: send AUDONE before PICOUT
2022-04-24 17:39:49 +02:00
Megamouse
eac4e991bd
cellVdec: add callback and command id logging
2022-04-24 17:39:49 +02:00
Megamouse
9284344480
cellVdec: fix cellVdecStartSeq (restart mode)
2022-04-24 17:39:49 +02:00
Megamouse
2c03467eec
cellVdec: improve logging a bit
2022-04-24 17:39:49 +02:00
Megamouse
b67cda7cbb
cellVdec: add handle to more log messages
2022-04-24 17:39:49 +02:00
Megamouse
fb27ed4deb
libav: remove deprecated option refcounted_frames
...
According to fe85afbf8c/doc/APIchanges (L743)
this option is deprecated and obsolete for the newer send/receive logic.
Should fix runtime exceptions with newer ffmpeg versions.
2022-04-24 11:05:22 +02:00
Megamouse
8acb62f6ee
HLE: simplify some error formats
2022-04-22 20:56:21 +02:00
Megamouse
1d6fbf1c35
cellGameGetParamString: fix patch mode
2022-04-22 20:56:21 +02:00
Megamouse
f42e647430
cellVdec: use av_error_to_string
2022-04-21 22:22:33 +02:00
Megamouse
7c65c1e3aa
cellVdec: Remove irritating while loop
2022-04-21 22:22:33 +02:00
Megamouse
9f51003366
cellVdecGetPicture and cellVdecGetPictureExt swap
...
This fixes a possible issue with the error handling order.
2022-04-21 22:22:33 +02:00
Megamouse
512eb93a62
cellVdecDecodeAu: fix param check
2022-04-21 22:22:33 +02:00
Megamouse
9c919db9ae
cellVdec: fix out format line offsets
...
Fixes video output in Uncharted 2
2022-04-21 22:22:33 +02:00
Megamouse
61ada2c1dc
cellVdec: call av_dict_free
2022-04-21 22:22:33 +02:00
Megamouse
bd5bff321e
cellVdecDecodeAuEx2: some REd guesswork
2022-04-21 22:22:33 +02:00
Megamouse
ee3a302cf2
cellVdecDecodeAu: add codec type check
2022-04-21 22:22:33 +02:00
Megamouse
fb3752a8ef
CellVdecDivxSpecificInfo2 (who knows if this is correct...)
2022-04-21 22:22:33 +02:00
Megamouse
548b748f50
CellVdecPicAttr
2022-04-21 22:22:33 +02:00
Megamouse
771009f333
cellVdec: add more error logging
2022-04-21 22:22:33 +02:00
Megamouse
db731d307e
CELL_CODEC_PTS_INVALID, CELL_CODEC_DTS_INVALID
2022-04-21 22:22:33 +02:00
Megamouse
c6f3f386df
cellVdec: implement CELL_VDEC_ERROR_SEQ
2022-04-21 22:22:33 +02:00
Megamouse
e9af0bb72b
cellGameGetParamString: check_mode for category
2022-04-21 20:56:11 +02:00
Megamouse
d8bbec9594
libav: log more error codes as string
2022-04-21 08:10:01 +02:00
RipleyTom
563af4211a
sys_net: Fix race between dnshook and nc
2022-04-17 00:06:21 +02:00
RipleyTom
895af3c3ab
sys_net: SYS_NET_ENETDOWN for offline dns rqsts ( #11822 )
2022-04-16 13:00:04 +01:00
Eladash
1d51f3af0c
RSX-Debugger: Implement backwards scrolling
...
* Use 2 points of known true RSX code roots and follow them in order to peek at the current section of valid RSX code:
These roots are: current RSX instruction address and the last targeted address by a branch instruction.
2022-04-15 22:34:51 +03:00
RipleyTom
26d8120168
sys_net fixes and extra logging
2022-04-15 19:43:23 +02:00
RipleyTom
d6b0263144
sys_net fixes
...
Fix lv2_socket_p2ps::connect
Fix sys_net_bnet_poll
2022-04-14 09:18:58 +02:00
RipleyTom
91768c025c
Add some error handling to sys_usbd
2022-04-14 08:26:23 +02:00
kd-11
57aee92bfe
rsx: Separate guest flip timer from host timing operations
2022-04-13 23:39:01 +03:00
RipleyTom
4d26535758
sys_net: bind & getsockname accuracy
2022-04-12 08:58:17 +02:00
clienthax
127ad508b4
Add stubs.
2022-04-10 18:28:57 +02:00
RipleyTom
4087b4e6b9
sys_net: fix dns redirection
2022-04-10 15:12:33 +02:00
Eladash
c35da0085f
PARAM.SFO loader improvement
2022-04-10 14:31:13 +02:00
RipleyTom
f8ea50caae
sys_net: Fix return values being tagged as errors
2022-04-10 11:15:41 +02:00
Megamouse
20801615f3
cellOskDialogAbort: always send finished event
...
No idea if this is really correct, but it fixes the PS-Home OSK dialog freeze.
2022-04-10 08:38:36 +02:00
Megamouse
9279736fe6
cellOskDialog: fix cellOskDialogAbort error format
2022-04-10 08:38:36 +02:00
Megamouse
d84a0c6503
cellGameGetBootGameInfo
2022-04-10 08:38:36 +02:00
RipleyTom
c06cb4664a
Various sys_net improvements
...
Implement P2PS select
Adjust P2P sendto return value
2022-04-09 21:56:53 +02:00
RipleyTom
855b23b3fe
re-add scope to sys_net_bnet_poll
2022-04-09 20:24:08 +03:00
RipleyTom
72b2876b6a
sys_net refactor ( #11740 )
2022-04-09 14:51:22 +02:00
Megamouse
544cec0434
revert cellSysutilAvc2Load
...
I think I mistook the subfunc for the main func
2022-04-08 20:07:58 +02:00
Megamouse
bcc097718f
cellSysutilAvc2 fixes
2022-04-08 20:07:58 +02:00
Megamouse
0dc176b4f1
cellSysutilAvc2EstimateMemoryContainerSize
2022-04-08 20:07:58 +02:00
Megamouse
47401cba1f
cellSysutilAvc2: more improvements
2022-04-08 20:07:58 +02:00
Megamouse
8a2826f3a9
cellSysutilAvc2SetWindowString: add strlen check
2022-04-08 20:07:58 +02:00
Megamouse
81f8ece236
cellSysutilAvc2InitParam: remove overzealous code.
...
The function is intended as a constructor, so it doesn't make sense to check struct members
2022-04-08 20:07:58 +02:00
Megamouse
3c2cf79675
cellSysutilAvc2: more stubs and errors
2022-04-08 20:07:58 +02:00
Megamouse
a841ba4084
cellSysutilAvc2: more constants
2022-04-08 20:07:58 +02:00
Megamouse
3024026d9e
cellSysutilAvc2: format some enums
...
Makes them more readable
2022-04-08 20:07:58 +02:00
Megamouse
ee98f577e2
sceNpTrophyGetTrophyIcon: SCE_NP_TROPHY_ERROR_HIDDEN
...
And prevent some possible segfaults
2022-03-31 23:02:35 +02:00
Nekotekina
98cee991ef
PPU: fix step execution after BP
2022-03-27 11:37:11 +03:00
Nekotekina
0a617a05d0
PPU: correct behaviour under external debugger
...
May require setting "Assume External Debugger" to true.
2022-03-26 23:09:20 +03:00
RipleyTom
a4d715e25d
Warning Fixes
2022-03-23 19:35:10 +01:00
Megamouse
ff34a73fbd
cellSaveData: CELL_SAVEDATA_FOCUSPOS_NEWDATA
...
Untested, but focus position is clamped anyway.
2022-03-18 08:09:50 +01:00
Megamouse
686d2759f4
cellMic: remove cellMicRead error spam
2022-03-12 20:48:36 +01:00
Megamouse
cd97d74f0f
cellMusic/Decode: add SelectContents functions
2022-03-08 09:02:59 +01:00
Megamouse
aafd74f9ea
cellMusicDecode: initial implementation
...
Implements the basic functionality of cellMusicDecode.
Works with Space Invaders (if you add the list selection from the other PR).
Probably fixes SSX custom music.
2022-03-05 18:34:27 +01:00
Megamouse
15e74357cf
cellMusic: implement qt music handler
2022-03-03 08:25:46 +01:00
Megamouse
b1a9e87ecf
cellSearch: fix cellSearchStartListSearch
...
Fixes listing BGM in Gundam.
The returned content was always empty.
Playback of the tracks will still require a MusicSelectionContext and cellMusic playback, which isn't implemented yet.
2022-02-20 21:06:46 +01:00
Megamouse
2147fe479c
cellSearch: more logging
2022-02-20 12:29:37 +01:00
Megamouse
91d7f28c67
cellSearch: log audio and video metadata
2022-02-19 14:27:47 +01:00
Megamouse
8171c7766c
cellSearch: silence irrelevant log error
2022-02-19 14:27:47 +01:00
Megamouse
3f69ceac40
cellMusic: fix cellMusicSetVolume log messages
2022-02-19 14:27:47 +01:00
RipleyTom
6bd8a93ff4
Fixes some unchecked derefs in sceNp logging
2022-02-16 17:08:58 +01:00
Eladash
e39797d860
Fix sys_fs_close FD state logging
2022-02-16 18:09:13 +03:00
Eladash
fd6c33980b
cellSaveData: Check filename format of savedata files ( #11502 )
2022-02-14 22:03:40 +03:00
Megamouse
d172b9add6
Rename CallAfter to CallFromMainThread
2022-02-07 19:42:08 +01:00
RipleyTom
987166f4da
Fix IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP
2022-02-06 20:37:12 +01:00
Eladash
e951c619c5
Implement Emulator::GracefulShutdown()
2022-02-05 11:49:29 +01:00
Vestral
107107107c
SoundTouch resampler integration
2022-01-31 21:20:57 +01:00
Hyogi Sim
3a804674c9
Fix linkage error on debug build with clang-13
...
Debug build with clang-13 fails with "undefined references" to the
static const members in spu_channel class. This patch replaces the const
definitions with constexpr constants.
2022-01-31 17:05:18 +03:00
Malcolm Jestadt
91673f8fdc
SPU LLVM: Add relaxed xfloat option
...
- This new setting is on by default
- It's active when approximate default is disabled
- Approximate xfloat is now exposed to the gui
2022-01-31 08:02:48 +03:00
Nekotekina
dba2baba9c
Implement utils::memory_map_fd (partial)
...
Improve JIT profiling dump format (data + name, mmap)
Improve objdump interception util (better speed, fix bugs)
Rename spu_ubertrampoline to __ub+number
2022-01-26 15:46:16 +03:00
Nekotekina
11ee1f3eb2
Improve JIT profiling on Linux
...
Add JIT object dumping functionality.
Add source for objdump interception utility.
2022-01-25 03:16:37 +03:00
Nekotekina
14951d8713
Fix abuse of fs::pending_file
...
Debug dumps don't fall into category which needs atomic rewrite.
2022-01-24 22:39:01 +03:00
Nekotekina
065ee621b8
Call avcodec_register_all in case of old ffmpeg
...
Apparently it's still possible to break without it.
2022-01-24 22:39:01 +03:00
Nekotekina
12c83b340d
Remove built_function
...
With today's branch prediction techniques, it's hardly useful.
2022-01-24 22:21:41 +03:00
Jan Beich
f2ed50e6b0
cellVdec: constify AVInputFormat for ffmpeg >= 5.0
...
rpcs3/Emu/Cell/Modules/cellAdec.cpp:326:19: error: assigning to 'AVInputFormat *' from 'const AVInputFormat *' discards qualifiers
input_format = av_find_input_format("oma");
^~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellAdec.cpp:332:19: error: assigning to 'AVInputFormat *' from 'const AVInputFormat *' discards qualifiers
input_format = av_find_input_format("mp3");
^~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-01-21 21:36:17 +03:00
Jan Beich
511ca82e30
cellAVdec: constify AVCodec for ffmpeg >= 5.0
...
rpcs3/Emu/Cell/Modules/cellAdec.cpp:325:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
codec = avcodec_find_decoder(AV_CODEC_ID_ATRAC3P);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellAdec.cpp:331:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
codec = avcodec_find_decoder(AV_CODEC_ID_MP3);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellVdec.cpp:143:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
codec = avcodec_find_decoder(AV_CODEC_ID_MPEG2VIDEO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellVdec.cpp:148:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
codec = avcodec_find_decoder(AV_CODEC_ID_H264);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rpcs3/Emu/Cell/Modules/cellVdec.cpp:153:12: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
codec = avcodec_find_decoder(AV_CODEC_ID_MPEG4);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-01-21 21:36:17 +03:00
Nekotekina
00274bb4da
PPU: port FP convert instructions to Aarch64
2022-01-21 16:07:48 +03:00
Nekotekina
a4d94a83b9
PPU/simd.hpp: minor changes in DP instructions
2022-01-21 13:57:46 +03:00
Nekotekina
0de9960772
PPU: rewrite MFOCRF+MFCR instructions
2022-01-21 12:49:52 +03:00
Nekotekina
aa7c9dd15d
PPU: rewrite LVSL/LVSR instructions
...
Make the tables endian-agnostic.
2022-01-21 00:05:40 +03:00
Nekotekina
17b1a34ebf
PPU: rewrite LVLX/LVRX/STVLX/STVRX instructions
2022-01-20 21:16:00 +03:00
Nekotekina
349f251d14
PPU LLVM: use masked stores for STVLX/STVRX
...
Drop maskmove intrinsic, not portable.
Its implicit NT hint may also hurt performance.
2022-01-20 21:16:00 +03:00
Nekotekina
327c577024
PPU: print internal interpreter build error
2022-01-20 14:42:58 +03:00