Pubblicato un rapido aggiornamento per shadPS4, l’emulatore open source della console PlayStation 4 per PC Windows, MacOS e Linux sviluppato da georgemoralis, meglio noto sulla scena come shadow, fondatore e programmatore di molti altri progetti di emulazione.
Avviato nell’ottobre 2022 e scritto in C++, l’emulatore è ancora in una fase preliminare, il che significa che non garantisce un’esperienza perfetta per tutti i titoli.
Share this post https://t.co/DsJ0s81A0y
— shadps4 (@shadps4) April 23, 2025
Tuttavia, è già in grado di avviare diversi giochi commerciali. Bloodborne è tra i titoli più giocabili grazie a mod che correggono bug grafici, mentre altri giochi come Red Dead Redemption, Dark Souls Remastered e Resident Evil 4 sono avviabili ma con problemi di stabilità del framerate e glitch visivi.
Alcuni titoli più leggeri, come BlazBlue: Cross Tag Battle e Capcom Fighting Collection, funzionano quasi perfettamente.
Il nuovo aggiornamento, dedicato allo sviluppatore Stephen, introduce numerose migliorie e correzioni. A livello di core, sono stati corretti alcuni comportamenti relativi alla gestione della memoria e delle chiamate di sistema, come lseek e l’allocazione della memoria diretta.
Nel comparto librerie, si segnala l’implementazione del passthrough per libusb, i primi lavori sull’emulazione HLE di ngs2, l’introduzione della libreria Audio3d e alcuni stub per la gestione delle autorizzazioni di rete. Migliorata inoltre l’emulazione del filesystem.
Sul fronte grafico (GPU), il renderer Vulkan è stato ottimizzato con una gestione più efficiente degli stati dinamici, il supporto al caricamento dei layer Vulkan su macOS, e miglioramenti nella gestione dei buffer di comando e nella profondità della viewport.
Aggiunto inoltre il supporto per nuove funzioni di output video e per il controllo dell’accesso condiviso in rasterizzazione.
Il ricompilatore shader ha ricevuto importanti miglioramenti in termini di ottimizzazione e compatibilità: sono state implementate nuove istruzioni, ottimizzate le euristiche di tracking delle risorse, e integrato il supporto a estensioni Vulkan specifiche.
Per quanto riguarda l’interfaccia GUI, sono state introdotte nuove opzioni per abilitare o disabilitare singolarmente le cartelle dei giochi, migliorato il supporto ai percorsi Unicode, aggiornato il gestore dei trofei, e rimosso il supporto ai pacchetti fpkg. Inoltre, sono state aggiunte numerose nuove traduzioni per l’interfaccia.
Changelog
Core
lseek
: lascia che sia il sistema operativo host a gestire gli errori di lseek.- Pulizia del codice del filesystem.
- Emulazione del mapping di
sceKernelInternalMemory
. - Correzione di
sceKernelAllocateDirectMemory
esceKernelAvailableDirectMemorySize
.
Librerie
sceDiscMap
ora viene emulato in modalità HLE.- Lavori iniziali sull’emulazione HLE di
ngs2
. - Implementazione del passthrough per
libusb
. - Stub corretti per
ulobjmgr
. - Prima implementazione di
Audio3d
. - Stub della libreria
NpAuth
.
GPU
- Reimposta l’etichetta del buffer precedente invece di quella corrente.
- Gestione dei pacchetti di calcolo suddivisi tra la fine di due buffer di comando.
- Implementazione di
DmaDataSrc::MemoryUsingL2
eDmaDataDst::MemoryUsingL2
. renderer_vulkan
: utilizza uno stato dinamico più ampio per profondità e stencil.renderer_vulkan
: aggiorna lo stato dinamico solo quando effettivamente modificato.renderer_vulkan
: rende dinamico lo stato di alcune primitive.- Implementazione di
sceVideoOutGetEventCount
esceVideoOutDeleteVblankEvent.
vk_rasterizer
: controllo dell’accesso amapped_ranges
con lock condiviso.renderer_vulkan
: migliorata la gestione tra estensioni richieste e opzionali.vk_rasterizer
: migliorato il calcolo della profondità nella viewport.texture_cache
: declassata l’asserzione per tipo immagine non corrispondente a un semplice “cache miss”.renderer_vulkan
: supporto al caricamento dei layer Vulkan nella build SDL per macOS.
Ricompilatore shader
- Migliorata la gestione della divergenza e l’eliminazione di
readlane
. - Aggiunto
S_SETPRIO
aEmitFlowControl
. - Utilizzo di
VK_AMD_shader_trinary_minmax
quando disponibile. resource_tracking_pass
: aggiunta un’euristica per rilevare buffer tracciati in modo errato.- Implementazione di
S_FLBIT_I32_B32
eV_MUL_HI_I32
. - Implementazione dell’istruzione
S_SUBB_U32
. - Aggiunte le varianti
IMAGE_GATHER4_*
nella tabella. - Implementazione di
DS_SUB_U32
,DS_INC_U32
,DS_DEC_U32
. - Implementazione dell’istruzione
SET_PC_B64
.
GUI
- Aggiunta un’opzione per abilitare/disabilitare singolarmente le cartelle dei giochi.
- Gestione del suffisso “-patch” per le cartelle di aggiornamento dei giochi.
- Visualizzatore trofei – Selezione del gioco.
- Rimosso il supporto per i pacchetti fpkg.
- Corretto il supporto ai percorsi Unicode per le directory di installazione dei giochi.
- Come di consueto, aggiunte molte nuove traduzioni.
Per discutere dello sviluppo di shadPS4, suggerire idee o chiedere aiuto, gli utenti possono unirsi al server Discord. Il team invita inoltre la community ad aggiornare la lista di compatibilità su GitHub: shadPS4 Game Compatibility List
Download: shadPS4 v0.8.0 (Linux qt) (Linux SDL)
Download: shadPS4 v0.8.0 (Win64 qt) (Win64 SDL)
Download: shadPS4 v0.8.0 (macos qt) (macos SDL)
Download: Source code shadPS4 v0.8.0
Fonte: github.com