Il developer shadow, noto sulla scena per numerosi progetti di emulazione, ha pubblicato un nuovo aggiornamento per shadPS4, l’emulatore open source della console PlayStation 4 compatibile con PC Windows, macOS e Linux.

Sviluppato in C++ a partire dall’ottobre 2022, shadPS4 è ancora in fase preliminare e, sebbene non garantisca un’esperienza perfetta su tutti i titoli, continua a migliorare significativamente la compatibilità e la stabilità dei giochi.
Titoli come Bloodborne risultano tra i più giocabili, specialmente se affiancati da mod che correggono bug grafici, mentre giochi più pesanti come Red Dead Redemption, Dark Souls Remastered e Resident Evil 4 presentano ancora problemi di frame rate e glitch visivi. Giochi leggeri come BlazBlue: Cross Tag Battle e Capcom Fighting Collection offrono invece prestazioni quasi perfette.
Questa release segna l’ultima versione con interfaccia Qt prima che l’emulatore passi esclusivamente alla modalità CLI a partire dalla versione 0.12.1. Sono già disponibili launcher dedicati per semplificare l’avvio dei giochi.
Tra le modifiche principali del core, sono state implementate nuove strategie di allocazione flessibile e pooled della memoria, rifattorizzazione della gestione diretta della memoria, correzioni per i permessi eseguibili, pulizia dei dispositivi di file system e implementazione di /dev/rng.
Inoltre, sono stati aumentati i limiti di spazio indirizzi su Windows e migliorata l’inizializzazione della memoria virtuale, corretti allineamenti e gestioni degli errori nella mappatura della memoria.
Le librerie interne hanno ricevuto numerosi aggiornamenti: supporto Epoll per la rete, miglioramenti in avplayer per il controllo dei video e dell’audio, correzioni nella gestione dei trofei e dell’autenticazione di rete, aggiornamenti per i gestori dei comandi IME e implementazioni di funzioni mancanti come sceSystemServiceLoadExec e sceNpTrophyGetGameIcon.
Il motore video è stato ottimizzato per una gestione più precisa delle immagini, dei buffer e degli allegati DMA, mentre il ricompilatore shader ora gestisce fallback per il supporto mancante a shaderFloat16 e corregge istruzioni specifiche come V_MUL_I32_I24 e V_MUL_U32_U24.
L’interfaccia Qt è stata aggiornata alla versione 6.9.3 e ora consente una maggiore configurabilità della memoria extra, dei moduli di sistema e dell’avvio tramite argomenti CLI, con messaggi informativi sulla deprecazione della GUI.
Changelog
Core
- Supporto fisico per l’allocazione di memoria flessibile e pooled.
- Rifattorizzazione della gestione diretta della memoria.
- Memoria: implementazione di
sceKernelMemoryPoolGetBlockStats - Permesso di mappature dirette della memoria sovrapposte.
- Pulizia del codice della memoria e ulteriori correzioni della memoria diretta.
- Gestione di vari casi limite relativi ai permessi eseguibili.
- Kernel.Fs: pulizia dei file di dispositivo e implementazione di
/dev/rng - Blocco del mutex del linker in
RelocateAnyImports - Aumento dei limiti dello spazio degli indirizzi e revisione dell’inizializzazione dello spazio indirizzi su Windows.
- Correzione dell’allineamento per
mmap - Correzione del ritorno in caso di esaurimento della memoria flessibile.
- Correzione del comportamento del flag
NoOverwriteinMapMemory - Correzione della mappatura di file in sola lettura (
mmap).
Librerie
- Rete: Supporto Epoll.
- avplayer: Implementate le funzioni AddSourceEx, SetAvSyncMode, Pause e Resume.
- avplayer: Evita di avviare il video più volte.
- ajm: Gestione del flag ParseRiffHeader.
- avplayer: Correzione della gestione dello stato delle richieste di riproduzione.
- Implementato
sceSystemServiceLoadExec - Correzione dell’estrazione mancante dei file PNG dai trofei.
- Implementato
sceNpTrophyGetGameIcon - audioout: Non attendere i dati all’interno del timer.
- avplayer: Rimozione del ritardo massimo dell’audio.
- Utilizzo della cartella corretta dei trofei per i giochi con più liste di trofei.
- NpManager: Implementazione di ulteriori comportamenti legati alle richieste.
- NpAuth: Miglioramento degli stub.
- Correzioni IME.
- Correzione dello stub di stato
scePlayGoDialog
Video Core
- Gestione degli allegati con campioni misti.
- Migliore gestione delle copie di immagini con DmaData.
- Correzione di alcuni errori di copia immagine e validazione degli offset dei buffer.
- image: miglioramento dell’applicazione delle regole per i layer delle copie di immagini.
- Spostamento della configurazione HDR swapchain nel thread di presentazione.
- buffer_cache: ripristino del percorso CPU.
- image_info: correzione del calcolo della dimensione guest per i render target lineari.
- amdgpu: suddivisione dei registri Liverpool e pulizia del codice.
Ricompilatore Shader
- Implementazione di un percorso di fallback per il supporto mancante a
shaderFloat16 - Correzione delle istruzioni:
V_MUL_I32_I24eV_MUL_U32_U24
GUI
- Rendere
UpdatePlayTimeindipendente da Qt. - Rendere configurabile la cartella
sys_modules - Aggiunta della memoria extra configurabile.
- Aggiornamento di Qt alla versione 6.9.3.
- Aggiunto argomento CLI per avviare l’emulatore con configurazione globale o impostazioni predefinite.
- IPC: comandi per regolazione volume, parsing input, FSR e selezione gamepad.
- Aggiunto messaggio informativo per la deprecazione della build Qt.
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.12.0 (Linux qt) (Linux SDL)
Download: shadPS4 v0.12.0 (Win64 qt) (Win64 SDL)
Download: shadPS4 v0.12.0 (macos qt) (macos SDL)
Download: Source code shadPS4 v0.12.0
Fonte: shadps4.net







![[Scena DS] Rilasciato l’emulatore A7800DS v4.5](https://www.biteyourconsole.net/wp-content/uploads/AtariA78-100x75.webp)
