Home Emulatori Rilasciato shadPS4 v0.10.0 – codename The Last LNDF

Rilasciato shadPS4 v0.10.0 – codename The Last LNDF

247
0

Pubblicato un nuovo 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.

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.

L’aggiornamento, è dedicato a LNDF, uno degli sviluppatori che ha contribuito significativamente al codice GPU, in particolare implementando il Direct Memory Access per la memoria video.

Tuttavia, il lavoro è il risultato di un effort collettivo, con miglioramenti che aumentano la compatibilità con titoli noti come P.T, Driveclub, inFAMOUS, Bloodborne, The Last Guardian e Shadow of the Colossus, anche se quest’ultimo richiede ancora hack per avviarsi.

Tra le novità principali c’è l’introduzione dei readbacks, una funzione sperimentale che emula la memoria condivisa della PS4, permettendo di trasferire dati modificati dalla GPU alla CPU.

Questo risolve problemi come le “esplosioni di vertici” in Bloodborne e migliora azioni specifiche, come l’arrampicata su Trico in The Last Guardian.

Tuttavia, i readbacks non sono attivi di default, richiedono un’attivazione manuale nel file di configurazione e possono causare cali di prestazioni o problemi in alcuni giochi.

L’aggiornamento include inoltre numerose migliorie tecniche: nel core, sono stati corretti bug nella gestione della memoria, ottimizzati i timer, migliorata la compatibilità con il driver grafico libSceGnmDriver e aggiunte funzionalità come il supporto ai controlli di movimento tramite mouse e una gestione avanzata del touchpad.

Sul lato GPU, oltre al Direct Memory Access, sono stati implementati nuovi opcode per lo shader recompiler, corretti errori di validazione Vulkan e migliorata la gestione delle texture e dei buffer.

L’interfaccia grafica ha ricevuto aggiornamenti significativi, tra cui il supporto a Qt 6.9.1, una gestione ottimizzata dei preferiti nella lista dei giochi e un’interfaccia di rimappatura dei controlli più intuitiva, con rilevamento dei tasti duplicati.

Infine sono stati risolti problemi di compilazione per Fedora, semplificato il lancio dei giochi tramite cartelle e aggiunta un’opzione per ignorare le patch dei giochi.

Changelog

Core

  • devtools: aggiunto il visualizzatore dei moduli.
  • equeue: corretta l’asserzione di WaitEqueue su nullptr e spostato il controllo del timer su WaitForEvents
  • Pulizia e correzioni della memoria (molte).
  • Correzioni per l’affinità dei thread Pthread.
  • Emulato il comportamento di inizializzazione di libSceGnmDriver
  • equeue: corretta la trasmissione dei dati utente negli eventi equeue attivati dall’utente.
  • memoria: ridotta la soglia di clamp a 2MB.
  • Logging migliorato per sceKernelMapNamedFlexibleMemory e aggiunte esportazioni di funzioni varie.
  • cpu_patches: patch per le istruzioni movntss e movntsd
  • equeue: correzioni a HrTimer
  • filesystem: correzioni per posix_rename e write
  • input: silenziate le mappature non assegnate e aggiunto supporto per i paddle Xbox.
  • input: sostituito il comportamento del tasto Back con una soluzione riassegnabile per il touchpad sinistro, destro e centrale.
  • input: emulati i controlli di movimento con il mouse.
  • input: pulizia del codice e della documentazione.
  • kernel: verifica del modulo restituito in sceKernelGetModuleInfoFromAddr
  • bit_array: rimosso l’operatore ~ non costante.
  • settings: aggiornamento automatico dei file di configurazione obsoleti all’avvio.

Librerie (Libs)

  • Aggiunti stub per libSceCompanionUtil e libSceVoice
  • net: implementato sceNetInetNtop
  • pad: corretta la gestione del touchpad e modificato il calcolo del giroscopio.
  • np_manager: aggiunta l’opzione per simulare l’accesso a PSN.
  • zlib: corretti i queue delle richieste.
  • video_out: corretta la gestione degli errori in sceVideoOutGetResolutionStatus
  • videodec2: aggiornate le strutture per la compatibilità con firmware più recenti.
  • np_trophy: modificati i valori iniziali di contesto e handle.
  • np_trophy: corretta una potenziale eccezione fuori dai limiti.
  • kernel: aggiunti stub per SetGPO e GetGPI
  • ngs2: inizializzazione dell’handle di sistema nella libreria HLE Ngs2.
  • video_out: aggiunti percorsi alternativi per la gestione delle strutture legacy in sceVideodec2GetPictureInfo

Ricompilatore Shader

  • Corretta la tipologia float errata in FPRecip64
  • Implementati opcode: 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 e V_CMP_EQ_U64
  • Correzioni varie agli opcode.
  • Gestito il bit R128 nelle istruzioni MIMG.
  • Aggiunto colore personalizzato ai bordi dei sampler.
  • Implementato il blending a doppia sorgente.
  • Aggiunto supporto all’interpolazione lineare.
  • Migliore gestione degli shader di geometria (scenario G).
  • Patch per SRT walker su segfault.
  • Pulizia della gestione degli attributi dei frammenti.
  • Correzioni varie alla memoria condivisa e agli atomici.
  • Ridotti i casi in cui è necessaria la copia da memoria condivisa a buffer.
  • Corretta la definizione della memoria condivisa quando si usa un solo tipo.
  • Gestiti i sampler inline immediati.
  • Corrette alcune letture della memoria condivisa in assenza di struct di workgroup.
  • Implementate istruzioni atomiche fmin/fmax su buffer.
  • Corretta la gestione delle immagini di profondità non vincolate.
  • Ottimizzata la gestione generale degli indirizzamenti su buffer.
  • Segnata un’immagine come scritta quando usata con operazioni atomiche.

GPU

  • video_core: implementato l’accesso diretto alla memoria (DMA).
  • Corretta l’estensione dell’immagine nella copia da buffer a immagine.
  • texture_cache: gestita la sovrapposizione con indirizzo uguale e modalità di tiling diversa.
  • liverpool: stub per gli opcode PM4 0x8E (GetLodStats) e 0x20 (SetPredication).
  • liverpool: implementato PM4 opcode 0x22 (CondExec).
  • texture_cache: corretta la funzione ExpandImage
  • buffer_cache: migliorata la ricerca immagine per la validazione.
  • texture_cache: gestite le visualizzazioni compresse di immagini non compresse.
  • buffer_cache: dati in linea alla CPU salvo modifica GPU.
  • tile_manager: degradato un assert a errore.
  • texture_cache: gestione di base delle immagini parzialmente residenti.
  • liverpool: gestione di PM4 type 2 in ACB.
  • vulkan: corrette due validazioni introdotte da modifiche alla memoria condivisa.
  • texture_cache: implementate le copie colore↔profondità.
  • buffer_cache: aumentata la dimensione del buffer staging in memoria locale.
  • texture_cache: implementata la copia da colore a profondità multisample.
  • vulkan: abilitato sampleRateShading
  • vulkan: log degli utilizzi errati dei formati immagine.
  • video_core: ottimizzazione del gestore di pagine e delle regioni.
  • video_core: miglioramenti al gestore di pagine e al tracciamento della memoria.
  • vk_rasterizer: utilizzo di shared_first_mutex
  • vector_alu: migliorata la gestione dei pattern mbcnt append/consume
  • buffer_cache: corretti vari race thread su upload e invalidazione dati.

Interfaccia grafica (GUI)

  • traduzioni: molti aggiornamenti da Crowdin.
  • aggiornamento automatico: corretta visualizzazione changelog.
  • lista giochi: impostata dimensione minima icona a 48.
  • qt: aggiornato a versione 6.9.1.
  • qt: salvataggio delle impostazioni GUI su file separato.
  • remapping_gui: visualizzazione dei tasti duplicati se trovati.
  • remapping_gui: aggiornamento con i nuovi input touchpad.
  • lista giochi: aggiunta la possibilità di segnare i preferiti.
  • remapping_gui: riscrittura del menu Controller e piccoli fix per Mouse e Tastiera.

Varie (Misc)

  • fork_detection: corretti i link SSH remoti.
  • build: aggiunta dipendenza mancante per Fedora.
  • avvio: ora è possibile lanciare i giochi fornendo la cartella invece del percorso dell’eboot.
  • avvio: aggiunta opzione per ignorare le patch di gioco.
  • build: cambiato il nome del pacchetto in openal-soft-devel per allinearsi con il naming di Fedora.
  • ci: workaround per problema Qt su nuovo Xcode.
  • build: aggiunto CMakePresets.json e aumentato il numero di configurazioni.
  • build: aggiornate le note sul cloning ricorsivo.
  • build: rilevamento automatico del percorso Qt su Windows.

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.10.0 (Linux qt) (Linux SDL) (Ubuntu)

Download: shadPS4 v0.10.0 (Win64 qt) (Win64 SDL)

Download: shadPS4 v0.10.0 (macos qt) (macos SDL)

Download: Source code shadPS4 v0.10.0

Fonte: shadps4.net

Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale.

🔥 Prodotti in promozione e articoli più venduti: PS4

Vedi altri prodotti PS4

Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.