ShadPS4 est un émulateur préliminaire de PS4 pour Windows et Linux écrit en C++ créé par Shadow (d’ou il tire son nom), auteur et contributeur de projets prestigieux comme PCSX, PCSX2, PCSP, JPCSP, Arcadeflex, RPCS3…
A noter qu’un module permettant l’utilisation du Netplay est disponible ici.

Les changements principaux en résumé:
Another week another release . There are ton of changes , so why not ?.
Core
– Properly check where an input came from for digital->analog input smoothing
– cpu_patches: Work around Rosetta 2 mistranslating negated scalar compares
– file_sys: Report stable file identities in stat and fstat
– Allow file type identification for ‘/addcont’ path
– emulator: stop clearing temporary data on boot
– Add PT_SCE_MODULE_PARAM case
– cpu_patches: Fix JIT patching at addresses outside any module
– core: Fix MemoryManager::Free unmapping past the released rang
– file_sys: don’t abort when a guest path goes through a regular file
– use VMA pointers instead of copies in TryWriteBacking
– cpu_patches: Workaround Rosetta 2 crash on VMASKMOVPS/PD
– Handle ELF metadata and toolchain comments program headers
– common: reuse one high-resolution waitable timer per thread in AccurateSleep
– Don’t abort when optional ELF metadata segments can’t be read
– cpu_patches: Fix register clobbering in Rosetta 2 VMASKMOV workaround
– renderdoc: Add library name for macOS
– renderdoc: Add alternate path for macOS
– lru_cache: Fix early stop in ForEachItemBelow
– Avoid deadlock when Shutdown is re-entered on the same thread
– Check if elf info is initialized when shutting down
Libraries
– kernel: Implement I/O event queue APIs with Core::Net integration
– kernel: fail rmdir on non-empty directories with ENOTEMPTY
– app_content: Implement sceAppContentTemporaryDataMount
– kernel: Try lock without wait in timed mutex if deadline has passed
– usbd: Implement libSceUsbStorage HLE for virtual USB media access
– http: allowing headers with surrounding whitespace
– kernel, rtc: Fix timezone and DST calculation
– music: Implement libSceMusicPlayerService HLE
– videodec2: Drain pending frames and wrap in RAII
– usbstorage: Correct OrbisUsbStorageDeviceInfo layout and population
– app_content: Implement sceAppContentAddcontUnmount
– app_content: Implement TemporaryData mount and unmount
– np_auth rewrite
– Ajm: Auto-detect and safely parse RIFF headers for ATRAC9
– libSceVoice: stub a disconnected microphone to fix BO2 and BO3 hangs
– net: report recv_queue_length in sceNetGetSockInfo
– kernel: Register missing filesystem symbols and fix /dev/null device
– kernel: return ENOENT from mkdir when the parent does not exist
– kernel: return EBADF when writing to a file opened read-only
– kernel: return EINVAL from ftruncate for bad lengths and read-only fds
– kernel: return ENOENT from unlink when the file does not exist
– pad: Implement scePadReadExt and scePadReadStateExt
– gnmdriver: Fix remapped compute queues starting at a stale ring offset
– app_content: Load additional content from linked services (SERVICE_ID_ADDCONT_ADD_n)
– app_content: Populate add-on entitlement keys
– app_content: Fix entitlement keys and service labels
– playgo: Fix language mask UB and default install speed
– kernel: Fix self-rename deletion and host path tracking in posix_rename
– music: Implement sceMusicPlayerServiceSetUsbStorageDeviceInfo
– kernel: Implement posix_flock and sceKernelFlock
– audio3d: Fix swapped attribute ids
– audio3d: Fix swapped attribute ids (OpenAL)
– kernel: Improve Neo mode handling and implement missing APIs
– kernel: return ENOENT from open(O_CREAT) when the parent does not exist
– videodec: libSceVdecCore HLE and VideoCore server interface callbacks
– np_trophy: Fix platinum trophy never unlocking
– threads: fix stack base value in windows
– share_play: Implement sceSharePlayGetCurrentConnectionInfoA
– net: answer PS4 device discovery on UDP 987
– np_score : fixed a few inaccurancy returns and data transfers
– kernel: Fix filesystem validation and posix_select
– pad: report the DualShock 4 touchpad height (942) instead of 950
– kernel: return ENOTDIR from mkdir when the parent is a file
– save_data: deliver backup completion callbacks
– fiber: Relocate fiber stacks away from GPU tracked heap on Windows
– np_score : improved score data transfer, comparable dates and improved friends ranking
Video Core
– Garbage Collector part 2
– vk_runtime: Copy every mip level in CopyImageWithBuffer
– Support stencil-only depth targets and decouple stencil sizing
– Fix CE/DE counter synchronization in PM4 packets
– texture_cache: keep subresource data when its parent image is first created
– texture_cache: don’t copy stale CPU-dirty image contents in ExpandImage
– Fix global CE task scheduling
– texture_cache: Drop GPU-modified images whose untracked edges the guest overwrote
– video_core: Handle PM4 IT_GET_LOD_STATS packet
– video_core: reset hash on image refresh
– video_core: Fix Ubscaled number format name
– vk_instance: Support RenderDoc on drivers without capture replay
– liverpool: Follow chained indirect buffers without returning
– liverpool: Advance past a packet by the size read before running it
– video_core: Compare subresource extents per dimension
– vk_rasterizer: Bound the render area of passes without attachments by the scissors
– video_core: Handle PM4 Type 2 and Rewind packets in Constant Engine
– video_core: Implement PM4 streamout buffer updates
Shader Recompiler
– Emit undefined 64-bit integers
– Preserve CFG fallthrough edges
– Stabilize phi deduplication order
– Account for singleton dimensions in LDS barrier analysis
– Exclude GetUserData from Phi folding
– Accept S_SLEEP as a scheduling hint
– Handle buffer cache invalidation instructions
– Add fast_shader_math setting to relax float rules
– info.has_derivatives.Assign now also checks for MimgModifier::CoarseDerivative
– Handle HW_ID.SE_ID reads
– Support GsOp::EmitCut in S_SENDMSG
Liste de compatibilité ici.
Télécharger ShadPS4 v0.21 (30.3 Mo)
Télécharger ShadPS4 (GUI) v397 (26.4 Mo)

















