Home Emulatori Pubblicato un nuovo aggiornamento per shadPS4: Ultima release Qt con memoria potenziata,...

Pubblicato un nuovo aggiornamento per shadPS4: Ultima release Qt con memoria potenziata, nuove funzionalità e miglioramenti core

120
0

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 NoOverwrite in MapMemory
  • 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_I24 e V_MUL_U32_U24

GUI

  • Rendere UpdatePlayTime indipendente 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