• Pre-release-shadPS4-2026-02-26-19d2027105679d751328357d7c85cd83a84c9758 19d2027105

    kerem released this 2026-02-26 18:02:14 +03:00 | 150 commits to main since this release

    📅 Originally published on GitHub: Thu, 26 Feb 2026 15:20:07 GMT
    🏷️ Git tag created: Thu, 26 Feb 2026 15:02:14 GMT

    Full Changelog: v.0.14.0...19d2027

    Downloads
  • v.0.14.0 f0d23eb2d2

    v.0.14.0 Stable

    kerem released this 2026-02-07 13:36:19 +03:00 | 201 commits to main since this release

    📅 Originally published on GitHub: Sat, 07 Feb 2026 10:39:45 GMT
    🏷️ Git tag created: Sat, 07 Feb 2026 10:36:19 GMT

    Greeting fellow users , testers , devs.

    Here is a brand new release from shadPS4 , It took as some time but some nice features are here so we wanted to share them with all of you out there . This new release brings some more compatiblity with games and several bug fixes. You can check the list below

    Core

    Added thread name to log lines
    Fixed float parsing in memory patcher
    Read compiled sdk version from eboot
    Added global emulator state class
    Corrected physical based handling for memory pools
    Add libSceRtc, libSceJpegDec, libSceJpegEnc, and libScePngEnc LLEs
    Changing the mouse speed does not affect the mouse speed offset
    Added libSceAudiodec to lle modules list
    Introducing key_manager for storing encryption keys
    Miscellaneous memory fixes and slight optimizations
    Added new cli parser using CLI11
    filesystem: fill in timespec values for fstat
    Kernel.Vmm: Fix bug with VMA physical area tracking

    Libraries

    M4AAC support in ajm
    Fixed dialog text input in IME dialog
    Fixed issues with winsock in sockets (sceNet)
    Stubbed libSceRudp
    Reimplemented dirents
    Stubbed libsceNpWebApi2
    Lib.Videodec2: Stub sceVideodec2AllocateComputeQueue to return a valid computeQueue pointer
    Lib.Audio3d: sceAudio3dGetDefaultOpenParameters fix
    Ajm: fix init params initialization
    Improved path detection in Avplayer
    NetFixes : workaround for Epolls on P2P sockets
    implemented sceImeDialogGetPanelSizeExtended in Ime Dialog
    Np: libSceNpPartner001 stubs
    Added NpTus stub
    Delete unused fds in sceNetEpollDestroy and sys_socketclose
    Added pngenc HLE
    Fake Matching2
    Skip stdin fd for want_read in select
    Fix default pthread attributes
    Prevent posix_pthread_mutexattr_settype from setting invalid mutex types
    ajm mp3: check frame size on every frame

    shader_recompiler

    Some fixes for tess shaders
    VS clip distance emulation for NVIDIA GPUs
    Implemented V_LSHR_B64
    Implemented V_CMP_OP_F64
    Implemented V_FFBH_I32
    fix for incorrectly outputted attribute if cdist emulation is not needed

    Video Core

    Small readback optimization
    Small fixes regarding GDS
    Prevent Rasterizer::IsMapped from returning true for memory ranges that wrap the address space

    Downloads
  • v.0.13.0 c414d1f5a1

    v.0.13.0 Stable

    kerem released this 2025-12-24 11:19:54 +03:00 | 271 commits to main since this release

    📅 Originally published on GitHub: Wed, 24 Dec 2025 08:31:09 GMT
    🏷️ Git tag created: Wed, 24 Dec 2025 08:19:54 GMT

    Here we are again with an early Christmas present. Santa might not have reached your home yet, but shadPS4 will.

    This release brings the long-awaited Bloodborne speedup fix, along with a lot of AJM fixes from our great Roamic dev, who was kind enough to resolve some weird sound issues (God of War 3 and other games now almost have perfect sound).

    There are also many additional fixes; I’ll try to summarize as much as I can below.

    This release is dedicated to Matthew, who did a lot of work setting up our new shadps4.net site, so greetings to him as well.

    So, Merry Christmas to all of you out there. Let’s hope the new year comes with world peace and a bit more logic out there.

    Thank you all for your support!

    Core

    -Windows: Limit address space maximum when higher addresses are not needed
    -FS: Prevent writing to directories
    -Kernel.Vmm: Protect Fixes
    -cpu_patches: Patch stack canary accesses
    -libkernel: Implement sceKernelEnableDmemAliasing, proper mapping type checks in posix_mmap
    -ENAMETOOLONG, posix_rename fix

    Libraries

    -Stubbed libSceNpCommerce
    -Add basic mouse-to-touchpad emulation
    -np: Add dialog state tracking for NpCommerce
    -Implement http uri escape unescape,sceHttpUriSweepPath
    -Network: Fixed null string crash on sceNetResolverCreate
    -A lot of AJM fixes

    GPU

    -Avoid initializing Shader::PsColorBuffer in RefreshGraphicsKey
    -vk_rasterizer: Attempt to optimize compute clears
    -buffer_cache: Split DMA fault handling code from buffer cache
    -video_core: Reimplement inline data as buffer fill
    -renderer_vulkan: Remove primitive restart disable support check.
    -video_core: Initial implementation of pipeline cache
    -video_core: Scheduler priority pending operation queue

    Shader recompiler

    -Fix V_CMP_U64
    -Implement V_FLOOR_F64
    -Handle -1 as src1 in v_cmp_u64

    Misc

    -Re-implement custom trophy sounds using sdl3 mixer
    -Make FSR off by default

    Downloads
  • v.0.12.5 3ce1ac5e86

    v.0.12.5 Stable

    kerem released this 2025-11-07 09:59:51 +03:00 | 322 commits to main since this release

    📅 Originally published on GitHub: Fri, 07 Nov 2025 07:02:51 GMT
    🏷️ Git tag created: Fri, 07 Nov 2025 06:59:51 GMT

    Some would say, "why a new release this early"? While releases came every 2-3 months before, the previous 0.12.0 release had an input change, which made multiple games unplayable, so we needed to patch it quite early. With that, some other interesting features and bugfixes came from development continuing as before, so enjoy. ;)

    Core

    -Fix divide by zero in kernel time
    -Reverted controller change from 0.12.0 since it appears it breaks a lot of games
    -Fix patches being applied multiple times redundantly
    -Fix game arguments not being passed under a certain condition
    -Simulate write-only file access with read-write access
    -filesystem: return st_mtim in posix_stat (fixes RB4 / CUSA02901 DLC crash)
    -ImGui: keep drawing when there's a pending change_layer

    Libraries

    -usbd: Implement usb backend system
    -usbd: Emulated Skylander Portal Backend
    -usbd: Add Infinity Base Backend
    -usbd: Added Dimension Toypad
    -Added get_authinfo
    -HttpLib: Implemented a few more functions
    -Initial font lib implementation
    -Better return stub for sceNetPoolCreate
    -Libkernel: Implement/stub some functions

    GPU

    -buffer_cache: smaller regions
    -add null gpu notice
    -Implement sceGnmDrawInitToDefaultContextStateInternal functions

    Qt

    -Remove Qt from emulator - Using lauchers from now on

    Downloads
  • v.0.12.0 f06e126330

    v.0.12.0 Stable

    kerem released this 2025-10-31 10:01:37 +03:00 | 346 commits to main since this release

    📅 Originally published on GitHub: Fri, 31 Oct 2025 07:15:58 GMT
    🏷️ Git tag created: Fri, 31 Oct 2025 07:01:37 GMT

    Happy halloween ppl! It is a special day today and what more special than having a brand new shadps4 release . Although it was announced that it Qt builds were gonna removed from 0.12.0 , we decided to release it for one last time . Starting from 0.12.1 , shadPS4 will be cli only , but we already have launchers for you ready , check the download section of the site.
    Enough talking here is the latest shadPS4 version and it's changes

    Core

    physical backing for flexible and pooled memory allocation
    Refactor direct memory handling
    Memory: Implement sceKernelMemoryPoolGetBlockStats
    Allow overlapping direct memory mappings
    Memory code cleanup and further direct memory fixes
    Handle various edge cases related to executable permissions.
    Kernel.Fs: Device file cleanup and /dev/rng implementation
    Lock linker mutex in RelocateAnyImports
    Increase address space limits and rework Windows address space initialization
    Fix alignment for mmap
    Fix return for running out of flexible memory
    Fix NoOverwrite flag behavior in MapMemory
    Read-only file mmap fix

    Libraries

    Net: Epoll support
    avplayer: implemented AddSourceEx, SetAvSyncMode, Pause and Resume
    avplayer: do not start the video multiple times
    ajm: handle ParseRiffHeader flag
    avplayer: fix play request state handling
    Implemented sceSystemServiceLoadExec
    Fixing missing png extraction from trophy files
    Implemented sceNpTrophyGetGameIcon
    audioout: Do not wait for data within timer.
    avplayer: remove maximum audio delay
    Use correct trophy folder for games with multiple trophy lists
    NpManager: Implement more request-related behavior
    NpAuth: Improved stubs
    Ime fixes
    Fixes scePlayGoDialog status stub

    Video Core

    Handle mixed samples attachments
    Better handling of image copies with DmaData
    Fix some image copy and buffer offset validation errors.
    image: Improve enforcement of image copy layer rules
    Move HDR swapchain configuration to present thread.
    buffer_cache: Bring back CPU path
    image_info: Fix guest size calculation for linear render targets
    amdgpu: Split liverpool registers and cleanup

    Shader recompiler

    Implement fallback path for missing shaderFloat16support
    Fix: V_MUL_I32_I24 | V_MUL_U32_U24

    GUI

    Make UpdatePlayTime not depend on Qt
    Make sys_modules folder configurable
    Add configurable extra memory
    Update Qt to 6.9.3
    Add CLI argument to launch the emulator with global config or with default settings
    IPC: commands for volume adjustment, input parsing, fsr, gamepad select
    Add informative update message for Qt build deprecation

    Downloads
  • v.0.11.0 1c0ec3be2a

    v.0.11.0 Stable

    kerem released this 2025-09-18 09:55:30 +03:00 | 421 commits to main since this release

    📅 Originally published on GitHub: Thu, 18 Sep 2025 07:01:20 GMT
    🏷️ Git tag created: Thu, 18 Sep 2025 06:55:30 GMT

    A brand new release just dropped in . As usual we have a lot of new features and bugfixes to this release with the most important that games that uses Unreal Engine are now start to booting and some of them are even playable.

    Core

    • mmap executable memory
    • Zero top bits in INSERTQ/EXTRQ
    • Fix read-only file unmaps on Windows
    • Standardize RegisterLib names for HLE libraries
    • Filesystem: Fix create flag handling in open
    • If CONTENT_ID is empty in param.sfo, try using TITLE_ID as fallback
    • Add an unreachable on hitting ud2 instead of getting stuck in an infinite loop
    • Microphone support
    • Only update configs when using a different build
    • Core: Return error if DirectMemoryQuery address is too high
    • Simple IPC for external control
    • Filesystem: Fix error behavior for close calls on std handles
    • Sockets fixes
    • Add entries for . and .. in MntPoints::IterateDirectory
    • Log user CPU, total RAM, and OS
    • Filesystem: Directory-related fixes
    • Memory: Align size and address in posix_munmap
    • Filesystem: Abstract handling of directory files
    • Replace direct usage of wrgsbase and rdgsbase with a more portable solution
    • config: Add present mode option.
    • Game specific configs
    • Improve memory address validation logic
    • Remove checks for symbol version_major and version_minor
    • Fix MXCSR and FPUCW registers on created threads
    • Log error on MapMemory out of flexible memory case
    • Open a dummy audio input device if none is present in the system
    • Ds4 Speaker Audio

    Libs

    • libkernel: Add missing mprotect export
    • IME fixes
    • video_out: Internal Resolution Support
    • Implement sceKernelGetSystemSwVersion
    • Implement sceAudio3dTerminate
    • Implement sceAudioOutGetLastOutputTime
    • Register posix_rename
    • Implement sceKernelError
    • Using custom usb lib
    • inet_ntop and inet_pton
    • Extract netmask and default gateway from host system
    • Implement simple DNS name resolution
    • Return the number of samples enqueued in AudioOut
    • Return an error before a pad is opened
    • scePadResetOrientation
    • Fix sceAudioOutOutputs
    • Fixed RetrieveNetmask for windows
    • Net: Fix various socket-related issues
    • sys_getpeername
    • Implement ORBIS_NET_CTL_INFO_HTTP_PROXY_CONFIG
    • Fix get/setsockopt levels
    • libkernel: more network functions for OpenOrbis compatibility
    • libSceAppContent: Use last 16 characters of DLC folder to determine entitlement label
    • Make libSceRtc fully HLE
    • Fixed green artifacts in movies/animations (ffmpeg)
    • Select support
    • libSceAppContent: Determine entitlement labels from additional content param.sfo
    • Fix sceVoiceGetPortInfo
    • Fix handling of RFC 3339 formatted dates
    • libSceNpParty: Stub out functions with not-in-party behavior
    • Add stubbed libSceNpProfileDialog library
    • Better libSceMove stubs
    • Better libSceCamera stubs
    • Implement ORBIS_NET_SO_ERROR_EX in GetSocketOptions
    • Improved libSceHmd stubs
    • libSceHmdSetupDialog stubs
    • libSceVrTracker stubs
    • semaphore: Invert priority order
    • semaphore: Fix determining wait status when canceled/deleted
    • Implement send/recvmsg
    • libkernel: Return EINVAL if mmap is called with length = 0
    • SaveData fixes
    • Handle null event flags in cancel and clear
    • AF_UNIX preliminary support
    • Np libraries cleanup
    • Implement sceKernelIsInSandbox, update OrbisSysModule Enum
    • equeue: Few fixes for sceKernelWaitEqueue
    • Implement getargc and getargv
    • Simple implementation of sceGnmUnmapComputeQueue
    • kernel: Improvements to condvars.
    • kernel: More thread code clean-up.

    Shader recompiler

    • Fix V_ADDC_U32 carry-out edge cases
    • Reorganize data share operations and implement GDS
    • ir_passes: Fold readlane with ff1 pattern
    • Implement ff1 with subgroup ops
    • Replace buffer pulling with attribute divisor for instance step rate
    • Implement guest barycentrics
    • Fix ff1_i32_b64 not accepting vcc as its argument
    • attribute: Correct bary coord function
    • Avoid clearing HTILE when shader contains address calculation
    • Implement MUBUF instructions for shorts/bytes
    • control_flow_graph: Treat empty conditional branch as noop
    • Fix incorrect bary coord loads when unsupported
    • Use VM bit for conditional discard
    • translate: Correct instance id fetch in local shader
    • V_ALIGNBYTE_B32 and V_ALIGNBIT_B32
    • Rework sharp tracking for robustness
    • Improve heuristic for attributes passed via ring buffers
    • ir: Perform degamma in shader when sampler sets force_degamma
    • Implement V_CMP_GT_U6
    • Improve shader exports accuracy (part 1)
    • Do not emit Layer when emulating primitive type with tessellation.
    • vector_interpolation: Address some assertions
    • Support multiple attributes using the same load in vertex fetch shaders
    • Handle S_LSHL_B32 in ParseCopyShader
    • Initialize all ClipDistance and CullDistance values
    • Handle ExecLo source in S_FF1_I32_B64
    • Apply float type for float buffer atomics
    • constant_propagation_pass: Handle a few more bitwise instructions.
    • Implement V_ADD_F64 and loading 64-bit float from SGPR.
    • Handle offsets and format overrides in fetch shaders
    • Relax dual source blending assert to allow up to two targets.
    • Allow vector and scalar offset in buffer address arg to LoadBuffer/StoreBuffer
    • Support PointSize and ViewportIndex attributes.
    • image: Do not set storage usage for block-encoded formats

    GPU

    • texture_cache: Change depth resolve new image back to max of resources
    • texture_cache: Async download of GPU modified linear images
    • buffer_cache: Bring back upload batching and temporary buffer
    • vk_rasterizer: Set render area to window scissor when no framebuffers are bound
    • renderer_vulkan: Handle more miscellaneous GPU setting
    • vk_instance: Remove usage of depth clamp control
    • liverpool_to_vk: Don't use remapped format for clear value
    • vk_pipeline_cache: Add fallbacks for R8Srgb and B5G6R5
    • texture_cache: Clamp buffer image height to microtile height
    • vk_rasterizer: Improve stencil clears
    • texture_cache: Do not modify mip height for copy in volume texture.
    • video_core: garbage collector (part 1)
    • video_core: Rework tile manager
    • texture_cache: Only queue image downloads if the image address is greater than zero.
    • video_core: Fix some struct comparisons.
    • vk_pipeline_cache: Cleanup graphics key refresh
    • renderer_vulkan: Restore color write dynamic state
    • vk_graphics_pipeline: Prioritize depth clip when separate clip/clamp control is not supported.
    • vk_pipeline_cache: Add storage images to descriptor heaps
    • vk_scheduler: Properly initialize vulkan structures in RenderState.
    • renderer_vulkan: Ignore blend parameters when disabled.
    • vk_rasterizer: Set image flag bits in resolve
    • liverpool: Write valid queries on PixelPipeStatDump
    • amdgpu: Report GPU perf counter in GPU cycles.
    • vk_rasterizer: Only assert on primitive restart if performing indexed draw
    • video_core: Upload buffer memory around unmapped pages
    • video_core: Address various UE bugs
    • video_core: Check DB_SHADER_CONTROL register before performing depth exports
    • texture_cache: Make sure that readback images are downloaded in time

    QT interface

    • Extend Qt detection to support multiple drives
    • Fix gui emulatorLanguage
    • Volume slider that adjusts how loud games are on a global level
    • Disable autoupdate on branches that aren't the official main
    • Add default trophy sound
    • Add toggle in the settings window for readbacks
    • Apply cheat/patch only if AppVer matches game version
    • Multiple controllers: Select active controller and set default controller
    • Added customizable controller hotkeys
    • Remapping Guis - more minor fixes
    • Fix Play Time - Wasn't saving every minute
    • Keybard/pad config common preset name is translated to target language
    • Qt: update to 6.9.2 and remove Mac workaround
    • Qt: enforce set order for kbm string mapping to prevent duplicate combo mappings
    • Move QT plugins to the qtplugins folder on Windows QT builds
    • Toggle to enable/disable logging
    • Qt: prevent saving/canceling for remapping/hotkeys dialogs while waiting for inputs
    • Add an option to change DLC path from the settings
    • Use icons, music and background images of updates if available
    • Qt: Add FSR options to settings GUI
    • Increase the size of the description text box
    • Log presets feature
    • QT: TrophyViewer size adjustment and 'Log' tab translated
    • QΤ: Add GUI for game-specific settings
    • QT: Add the Log tab to 'Default tab when opening settings'
    • Qt: Add descriptions for new experimental settings in GUI
    • QT: Fix Patches 'Incompatibility Notice'
    • Qt: Group game-specific and non-game-specific items in the same tabs
    • QT: Note Vulkan SDK requirement for validation tooltips
    • Fix loading fullscreen setting

    Full Changelog: https://github.com/shadps4-emu/shadPS4/compare/v.0.10.0...v.0.11.0

    Downloads
  • v.0.10.0 f56eecea44

    v.0.10.0 Stable

    kerem released this 2025-08-08 16:23:46 +03:00 | 714 commits to main since this release

    📅 Originally published on GitHub: Sun, 06 Jul 2025 18:37:26 GMT
    🏷️ Git tag created: Fri, 08 Aug 2025 13:23:46 GMT

    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.

    Downloads
  • v.0.9.0 9c2f71326a

    v.0.9.0 Stable

    kerem released this 2025-05-22 18:54:00 +03:00 | 863 commits to main since this release

    📅 Originally published on GitHub: Thu, 22 May 2025 16:06:31 GMT
    🏷️ Git tag created: Thu, 22 May 2025 15:54:00 GMT

    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

    Downloads
  • v.0.8.0 354a2e6946

    v.0.8.0 Stable

    kerem released this 2025-04-23 13:06:35 +03:00 | 974 commits to main since this release

    📅 Originally published on GitHub: Wed, 23 Apr 2025 10:11:29 GMT
    🏷️ Git tag created: Wed, 23 Apr 2025 10:06:35 GMT

    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: https://github.com/shadps4-emu/shadPS4/compare/v.0.7.0...v.0.8.0

    Downloads
  • v.0.7.0 3b2c012723

    v.0.7.0 Stable

    kerem released this 2025-03-23 01:15:29 +03:00 | 1090 commits to main since this release

    📅 Originally published on GitHub: Sat, 22 Mar 2025 22:25:36 GMT
    🏷️ Git tag created: Sat, 22 Mar 2025 22:15:29 GMT

    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: https://github.com/shadps4-emu/shadPS4/compare/v.0.6.0...v.0.7.0

    Get it on our download page , and don’t forget to check our compatibility list

    Downloads