Releases: shadps4-emu/shadPS4
Pre-release-shadPS4-2025-09-09-ac318b5
Full Changelog: v.0.10.0...ac318b5
shadps4 v0.10.0 - codename The Last LNDF
Surprise! Bet you didn't expect a release from me, did you? :) Well you all asked for a miracle, and here I am, providing one. Anyways, this release is dedicated to one of our not-so-new dev, LNDF, who is responsible for a significant amount of the new GPU code, such as implementing Direct Memory Access for video memory. This isn't a solo endeavour though, there were far more updates to the emulator from the rest of the team as well, improving compatibility across well-known titles such as P.T, Driveclub, inFAMOUS, Bloodborne, The Last Guardian, Shadow of the Colossus (although this one still can't boot without hacks) and more:
Core
- devtools: Add Module Viewer
- equeue: fix WaitEqueue assert on nullptr and move small timer check to WaitForEvents
- Memory Cleanup & Fixes (like, a lot of them)
- Pthread affinity fixups
- Emulate libSceGnmDriver's init behavior
- equeue: Fix passing user data in user-triggered equeue events
- memory: Reduce clamp threshold to 2MB
- Improved sceKernelMapNamedFlexibleMemory logging and add misc function exports
- cpu_patches: Patch movntss and movntsd
- equeue: HrTimer fixes
- filesystem: Fixes for posix_rename and write
- input: Silence unmapped keybind mappings and add XBox paddles
- input: Replace Back Button Behaviour with a rebindable solution for touchpad left, right and center
- input: Emulate motion controls with a mouse
- input: Code and documentation cleanup
- kernel: Check returned module in sceKernelGetModuleInfoFromAddr
- bit_array: Remove non const operator~
- settings: Update outdated config files on startup
Libs
- Added libSceCompanionUtil, libSceVoice stubs
- net: Implemented sceNetInetNtop
- pad: Fix touchpad handling and change gyro calculation
- np_manager: Add option to fake user being signed in to PSN
- zlib: Fix request queues
- video_out: fix sceVideoOutGetResolutionStatus error behavior
- videodec2: Update structs to match newer firmwares
- np_trophy: Change initial context and handle values
- np_trophy: Fix potential out of bound crash
- kernel: Stub out SetGPO and GetGPI
- ngs2: Initialize system handle in HLE Ngs2 library
- video_out: Add alternate code paths for handling legacy struct behavior in sceVideodec2GetPictureInfo
Shader recompiler
- Fix incorrect float type on FPRecip64
- Implemented opcodes: V_CVT_F64_U32, V_RCP_LEGACY_F32, S_FLBIT_I32_B64, BUFFER_ATOMIC_CMPSWAP, DS_READ_U16, DS_WRITE_B16, DS_ADD_U64, BUFFER_ATOMIC_SMAX_X2, BUFFER_ATOMIC_<U|S><MAX|MIN>_X2 and V_CMP_EQ_U64
- Misc opcode fixes
- Handle R128 bit in MIMG instructions
- Provide custom border color to samplers
- Implement dual source blending
- Implement linear interpolation support
- Better handling of geometry shader scenario G
- Patch SRT walker on segfault
- Cleanup fragment attribute handling
- Various fixes to shared memory and atomics
- Reduce cases where shared memory to buffer pass is needed
- Fix shared memory definition when only one type is used
- Handle immediate inline samplers
- Fix some shared memory accesses when workgroup struct is omitted
- Implement buffer atomic fmin/fmax instructions
- Fix handling unbound depth image
- Optimize general case of buffer addressing
- Mark image as written when its used with atomics
GPU
- video_core: Implement Direct Memory Access
- Fix image extent in buffer copy to image
- texture_cache: Handle overlap with equal address and different tiling mode
- liverpool: Stub PM4 opcodes 0x8E (GetLodStats) and 0x20 (SetPredication)
- liverpool: Implement PM4 opcode 0x22 (CondExec)
- texture_cache: Fix ExpandImage behaviour
- buffer_cache: Better image search for buffer validation
- texture_cache: Handle compressed views of uncompressed images
- buffer_cache: Inline data to cpu unless gpu modified
- tile_manager: Downgrade assert to error
- texture_cache: Basic handling of partially resident images
- liverpool: Handle PM4 type 2 in acb
- vulkan: Fix two validation errors introduced by shared memory changes
- texture_cache: Implement color<->depth copies
- buffer_cache: Bump device local staging buffer size
- texture_cache: Implement color to multisampled depth blit pass
- vulkan: Enable sampleRateShading
- vulkan: Log improper image format uses
- video_core: Page manager/region manager optimization
- video_core: Page manager and memory tracker improvements
- vk_rasterizer: Use shared_first_mutex
- vector_alu: Improve handling of mbcnt append/consume patterns
- buffer_cache: Fix various thread races on data upload and invalidation
GUI
- translations: A yes amount of Crowdin updates
- auto_update: Fix Changelog Error
- game_list: Set Minimum Icon Size List to 48
- qt: Update to 6.9.1
- qt: save gui settings to separate file
- remapping_gui: If duplicate unique inputs found, show which buttons have duplicates
- remapping_gui: Update gui with new touchpad inputs
- game_list: Favorites in the game list
- remapping_gui: Rewrite the Controller menu and add minor fixes to the Keyboard & Mouse one
Misc:
- fork_detection: Fix SSH remote links
- building: Add missing dependency for Fedora
- launch: Launch games by providing their folder instead of the eboot path
- launch: Add option to ignore game patch
- building: Changed package name to openal-soft-devel reflecting the fedora name package change
- ci: Work around Qt issue on new Xcode
- building: add CMakePresets.json and expand the number of configurations
- building: Update note on recursive cloning
- building: Autodetect Qt install path on Windows
As always, you can check out the full changelog here.
The big new feature this release brings with it is readbacks, which emulates shared memory on the PS4 by reading back memory that was modified on the GPU back to the CPU side, enabling a lot more games to function properly, fixing vertex explosions in Bloodborne and similar games, almost fully fixing climbing on Trico in The Last Guardian, and much, much more. It isn't enabled by default though, you'll have to turn it on manually in the config file yourself, as this is still a very experimental feature, and will break some games, plus it comes with a not insignificant hit to performance as well.
shadps4 v0.9.0 - codename KalosPsofos
A brand new release just dropped in . As usual we have a lot of new features and bugfixes to this release making even more games reaching ingame and some of the are even playable :)
I will let you figure out the rest , here is a short list of updates
Core
sceKernelAllocateDirectMemory hotfixes
Export eboot address
libkernel: Various filesystem fixes
Only perform early read-write open when truncating is needed
emulator: Fix log initialization order.
Core: Fix module load addresses
add scePthreadSetaffinity and emulate affinity
Core: Memory Fixes
libkernel: Implement sceKernelMemoryPoolBatch
core: Introduce host call wrapper.
kernel: Implement scePthreadGetaffinit
Mprotect only over whole pages
kernel: macos/linux Implement sceKernelUuidCreate
Implement sceKernelIsStack
Implement sceKernelMapDirectMemory2
Proper error handling for MapMemory errors
Libs
Implement sceImeDialogGetPanelSize
VideoOut event cleanup
Implement sceKernelGetModuleInfo, sceKernelGetModuleInfoInternal, and sceKernelGetModuleList
Update ime_dialog.h
Implement sceKernelPwritev
sceNet initial implementation
SaveData fixes
Clear stack before executing guest code
[Libs] Stubs sceSigninDialog
log error for videodec ,videodec2
[Libs] sceNet
sceKernelAddTimerEvent implementation
equeue: Clean up timers implementation
[Libs] Companion httpd
SaveDataDialog: fix possible null access
SaveData: respect install dir in param.sfo to select the game save folder
Savedata: Fix missing uses of config based save data dir.
Trophy deletehandle fix
Shader recompiler
Use GetSrc in VALU insts instead of assuming vector reg (was vcc_lo)
lower_buffer_format_to_raw: Fix handling of format remapping
shader_recompiler: Add lowering pass for when 64-bit float is unsupported.
Implement IMAGE_ATOMIC_FMIN and IMAGE_ATOMIC_FMAX for 32bit floats
shader_recompiler: Few fixes for buffer number conversions
Implement SnormNz conversion
shader_recompiler: Widen num_conversion bitfield
Adding opcode IMAGE_SAMPLE_B_O
shader_recompiler: Always mark buffers as storage buffers.
Handle -1 as V_CMP_NE_U64 argument
Avoid post-increment of SGPR in S_*_LOAD_DWORD
Handle VgtStreamoutFlush EVENT
shader_recompiler: Fix buffer type reading from step rate attribute.
GPU
renderer_vulkan: Restore Vulkan version to 1.3
pp_pass: Use correct surface format.
vk_rasterizer: Fix updating wrong color attachment when skipped by mask
vk_presenter: Use correct format for output frame image and view
vulkan: do not use VK_EXT_extended_dynamic_state
vulkan: Handle incompatible depth format using null binding.
gnm: Implement sceGnmDrawIndexIndirectMulti
liverpool: Log more information on SetQueueReg.
renderer_vulkan: Properly enable dualSrcBlend feature
buffer_cache: Split updateBuffer calls into 65536 byte chunks.
vk_instance: Enable robustImageAccess2
fix: PM4CmdWaitRegMem memory address
amdgpu: Handle 32-bit Unorm formats
GUI
multikey for kbm_gui
qt: Delay physical device enumeration to settings open
qt: Update save data dir open to use name from PSF
shadps4 v0.8.0 - codename The Stephen Of Us
Another exciting release from shadPS4 team coming today . This time our release is dedicated to one of our latest Uber Dev "stephen". A lot of new fixes , features have come up with this release let's sum some below.
Core
-lseek: let the host OS set lseek errors
-Filesystem code cleanup
-Emulate sceKernelInternalMemory mapping
-Fixed sceKernelAllocateDirectMemory and sceKernelAvailableDirectMemorySize
Libraries
-sceDiscMap is now HLE.
-Initial ngs2 HLE work.
-Implement libusb passthrough
-Proper ulobjmgr stubs
-Initial Audio3d implementation
-NpAuth library stub
GPU
-Reset previous buffer label instead of current one
-Handle compute packets that are split between the ends of two command buffers
-Implement DmaDataSrc::MemoryUsingL2 and DmaDataDst::MemoryUsingL2
-renderer_vulkan: Use more depth-stencil dynamic state.
-renderer_vulkan: Only update dynamic state when changed.
-renderer_vulkan: Make some primitive state dynamic.
-Implement sceVideoOutGetEventCount and sceVideoOutDeleteVblankEvent
-vk_rasterizer: Control mapped_ranges access with shared lock.
-renderer_vulkan: Improve handling of required vs optional extensions.
-vk_rasterizer: Improve viewport depth calculations.
-texture_cache: Relax mismatched image type from assert to cache miss.
-renderer_vulkan: Support loading Vulkan layers on macOS SDL build.
Shader recompiler
-Improve divergence handling and readlane elimintation
-Add S_SETPRIO to EmitFlowControl
-Use VK_AMD_shader_trinary_minmax when available
-resource_tracking_pass: Add heuristic to detect incorrectly tracked buffer sharp
-Implement S_FLBIT_I32_B32 and V_MUL_HI_I32
-Implement S_SUBB_U32 instruction
-Fill in IMAGE_GATHER4_* variants in table
-Implementing DS_SUB_U32, DS_INC_U32, DS_DEC_U32.
-Implement SET_PC_B64 instruction
GUI
-Add option to enable/disable game folders individually
-Handle "-patch" as the suffix for game update folders
-Trophy Viewer - Select Game
-Removed fpkg support.
-Fix support for unicode paths for game install directories
-As usual a lot of new translations
Full Changelog: v.0.7.0...v.0.8.0
shadps4 v0.7.0 - codename frobbo
Another exciting release coming from shadPS4 team . A lot of new features (FSR,HDR) and a lot fixups in this new release . It is really a special day for me since it is my birthday as well (shadow) and 24 years after first pcsx2 release.
It is amazing to see what this team has accomplish since my previous anniversary release. From some openOrbis demos last year we went to having a lot of commercial games running (yes not only bloodborne). Hoping next release will bring even more games working ;)
A small list of changes :
Keyboard and mouse input remapping
A lot of fixes to shader recompiler
Fixed videoOut events
Lot of fixes to memory HLE calls
Qt gui fixes and improvements
Fixed some causes of "Attempted to track non-GPU memory"
Fixed gyro and acceleration sensor handling
Improved compatibility with older cpus
Improved compatibility with Unity games
Added HDR support
Added FSR support
Translations are now be handled from crowdin as well : https://crowdin.com/project/shadps4-emulator
Full Changelog: v.0.6.0...v.0.7.0
Get it on our download page , and don’t forget to check our compatibility list
shadps4 v0.6.0 - codename parapoly
A new release first of this year. A lot of things has been improved since last release , making a lot of new games playable and some others has interesting progress . Below is a short list of what's changed
Improved Devtools
Improvements in shader recompiler
Added sceGnmGetEqEventType/sceKernelGetEventData
Improvements to audio backend (SDL)
Improved HLE fibers library
Motion Controls implementation
Improvements to savedata
Unmap Fixes
Implemented sceNpCmp functions
GUI: Speed up GUI loading by caching game sizes
sceKernelAio* implementation
Fixes to several Surface Formats
Fix for address_space initialization on Windows
sceKernelVirtualQuery Fixes
Added ability to change save data path
libraries: Implement libSceZlib
Several translations update
Don't forget it is time to update our compatibility list on : https://github.com/shadps4-emu/shadps4-game-compatibility
Full Changelog: v.0.5.0...v.0.6.0
shadps4 v0.5.0 - codename squidwars
Hohoho Merry Christmas to everyone and a brand need release . There are so many new things here , i will just try to catch up the most important ;)
- Ajm support
- Videodec implementation
- Fix border color
- Rewrite pthread emulation
- Port libpngdec to libpng
- Texture cache improvements
- Some GUI fixes & improvements
- Libraries cleanup
- Fixes for cmake
- Many fixes for Unity games
- Vulkan 1.4 support
- Shader editing
- Tesselation
- GPU processor refactoring
- More Fixes for Separate Update
- Splash fixes
- Gamma correction
Full Changelog: v.0.4.0...v.0.5.0
shadps4 v0.4.0 - codename divicius
What's Changed
- shader recompiler fixes
- Emulated support for cpus that doesn't have SSE4.2a (intel cpus)
- Frame graph + Precise 60 fps timing
- Save data: fix nullptr & concurrent file write
- Auto Update
- Error dialog implementation
- Swapchain recreation and window resizing
- Add playback of background/title music in game list
- kernel: Quiet sceKernelWaitEventFlag error log on timeout
- Improve keyboard navigation in game list
- core/memory: Pooled memory implementation
- Fix PKG loading
- replace trophy xml assert with error
- Refactor audio handling with range checks, buffer threshold, and lock
- audio_core: Fix return value types and shift some error handling to library
- Devtools: PM4 Explorer
- Initial support of Geometry shaders
- Working touchpad support
- net: Stub sceNetErrnoLoc
- Add support to click touchpad using back button on non PS4/5 controllers
- Multiple Install Folders
- Using a more standard data directory for linux
- video_core: Implement sceGnmInsertPushColorMarker
- ime_dialog: Initial implementation
- Network libs fixes
- Use GetSystemTimePreciseAsFileTime to fix fps timing issues
- Added adaptive mutex initializer
- Small Np + trophy fixes
- Separate Updates from Game Folder
- Minor Fixes for Separate Update Folder
- AvPlayer: Do not align w/h to 16 with vdec2
- Improve sceSystemServiceReceiveEvent stub
- renderer_vulkan: Commize and adjust buffer bindings
- Add poll interval to libScePad
- Add more surface format mappings.
- vulkan: Report only missing format feature flags.
- IME implementation
- Videodec2 implementation
- path_util: Make sure macOS has current directory set and clean up path code.
- Load LLE modules from sys_modules/GAMEID folder
Full Changelog: v.0.3.0...v.0.4.0
shadps4 v0.3.0 codename broamic
Hey there ,shadPS4 v0.3.0 is finally here!
We have some exciting new features to share with you:
- Cheat/Patching support
- DLC support
- New translations support (26 languages)
- Support for unlocking trophies
- Support for more controllers (Dualshock and Xbox)
- Many GUI imporovements
- AVplayer
- And much more!
The emulator can boot notable games with support for visual upgrades.
Beware! As a result of the new changes, old save files may no longer be compatible. So if you value your current progress, please follow this guide before updating: https://discord.com/channels/1080089157554155590/1258851012924538931/1286753740233117737
Lastly, for those of you who'd like to donate to the project, we now have a Kofi page! https://ko-fi.com/shadps4
Any donations received will go towards acquiring necessary hardware and games for testing as well as needed infrastructure setup.
As always feel free to update compatibility list with new 0.3.0 findings at https://github.com/shadps4-emu/shadps4-game-compatibility