Disponibili i nuovi report del mese di maggio sui progressi raggiunti dall’emulatore RPCS3

Disponibile il nuovo report sui progressi raggiunti dall’emulatore RPCS3 nel mese di maggio. RPCS3 ad oggi è l’unico programma che ci permette di emulare gran parte dei titoli commerciali della console PlayStation 3 su PC Windows e Linux.

Gli sviluppatori e i vari collaboratori hanno lavorato duramente per amplificare quanto più possibile le prestazioni, apportando correzioni grafiche e migliorando ulteriormente la compatibilità.

La categoria Nothing ha raggiunto ormai i minimi storici, ridotto a poco più della metà, si sta già lavorando per rendere questa categoria ancora più esigua!

Per un aspetto più dettagliato delle diverse categorie, visitare la pagina della compatibilità.

SPU LLVM Recompiler

Nel mese di maggio, Nekotekina  ha implementato per la prima volta in RPCS3 l’infrastruttura SPU LLVM Recompiler progettata per l’ottimizzazione in fase di compilazione, di linking, di esecuzione e di non utilizzo.

Al momento potreste riscontrare problemi con molti giochi, ma quelli che funzionano hanno visto un buon miglioramento nelle prestazioni e nell’audio.

Ad esempio, Wangan Midnight, che lavora con l’infrastruttura SPU LLVM ha visto scomparire l’audio, altri titoli invece hanno ricevuto alcuni miglioramenti degni di nota, come Drakengard 3, Killzone 3 e Tales of Vesperia eseguiti per la prima volta.

Shader Analyzer

I primi di maggio, kd-11 ha iniziato a implementare un analizzatore shader Work In Progress che dovrebbe contribuire a ridurre la quantità di shader compilati da RPCS3.

Ciò avviene raccogliendo i metadati durante la compilazione di uno shader e utilizzando tali informazioni per controllare gli shader rispetto alle texture vincolate.

In questo modo, le texture non legate verranno semplicemente saltate invece di dover essere decompilate solo per verificare se vengono effettivamente utilizzate.

kd-11 ha fatto in modo che RPCS3 presuma che se non ci sia sfratto della cache L2 il codice micro del programma frammentato non è stato aggiornato e fa lo stesso per alcuni registri che controllano i programmi vertici.

Dato che l’hardware non vedrebbe comunque le modifiche, non è necessario che RPCS3 faccia un lavoro extra. Questo porta a migliorare ulteriormente le prestazioni in titoli come Far Cry 2, Prince of Persia e Metal Gear Solid 1 con un margine significativo.

Ciò pone le basi per ulteriori miglioramenti futuri che dovrebbero infine eliminare completamente la compilazione degli shader. Questa richiesta pull ha corretto e migliorato anche le ombre in Assassin’s Creed, Saw 2 e Prince of Persia.

Miglioramenti alla cache delle texture

Reimplementata la cache delle texture per sfruttare il supporto del mirror di memoria aggiunto da Nekotekina, e kd-11 che ha risolto i seguenti problemi; Sfarfallio dei filmati in Uncharted, in Sly Cooper Thieves in Time, in Tekken Tag Tournament 2 ed effetti particellari e alfa in Beyond Good & Evil HD.

Queste modifiche hanno migliorato anche la stabilità di RPCS3.

Correzioni di protezione della memoria e miglioramenti RSX

kd-11 ha apportato alcune correzioni alla protezione della memoria che risolve lo sfarfallio e gli oggetti mancanti in alcuni giochi, specialmente se è stato abilitato Write Color Buffers.

Ciò riduce anche la necessità nell’uso della modalità di rendering rigoroso in vari giochi della Naughty Dog come in The Last of Us e Uncharted.

Questo significa che ora possiamo andare ad utilizzare il ridimensionamento della risoluzione in The Last of Us!

Avrai già notato che le immagini non sono molto impressionanti, anche se funzionano in 4k. Questo è causato da problemi con la post-elaborazione. kd-11 prevede di lavorare per migliorare questo in futuro.

kd-11 ha corretto anche il ridimensionamento della risoluzione in God of War 3 eseguendo continuamente il ping del thread RSX mentre era nello stato spinwait per verificare le dipendenze cicliche.

Ciò ha permesso al gioco di non correre più in modalità software, il che ha portato a correggere il ridimensionamento!

kd-11 ha anche corretto una regressione in cui God Of War 3 richiedeva di abilitare l’opzione di debug “Force CPU Blit”, riducendo le prestazioni e causando confusione tra gli utenti.

Questi miglioramenti, tra gli altri, possono essere visti nel video qui sotto.

RSX Capture/Replay

Sul fronte RSX, Jarveson ha implementato l’inizio di una funzione di debug abbastanza utile, catturandolo e riproducendolo!

Per coloro che non hanno mai provato ad eseguire il debug dei problemi di grafica, si sa che RenderDoc ha un valore inestimabile quando si cerca di rintracciarli e correggerli.

Le carenze con esso, tuttavia, sono che non racconta l’intera storia dal lato dell’emulatore, ma lascia fuori quello che il gioco sta effettivamente dicendo alla RSX di rendere.

Questa funzione ha lo scopo di risolverlo. Catturando i comandi RSX e la memoria necessaria per un frame visualizzato, siamo ora in grado di riprodurre e visualizzare quel frame esatto nell’emulatore.

Uno sviluppatore ora può vedere il percorso completo dal gioco dalla RSX allo schermo, senza perdere tempo nel tentativo di riprodurre l’errore.

Questo può anche aiutare con i test di regressione, poiché i replay possono essere confrontati tra build.

Dovrebbe essere noto che ci sono alcune restrizioni e problemi con esso nella sua creazione iniziale, controlla la descrizione della richiesta di pull per maggiori informazioni.

Allocatore di memoria Vulkan e correzioni temporali

Pauls-gh ha scoperto che Tales of Vesperia è stato stretto al collo di bottiglia dalla GPU in alcune aree e ha continuato a profilare il codice.

Pauls-gh ha poi scoperto che le allocazioni della memoria video Vulkan erano molto lente. Ciò ha portato ad aggiungere la libreria open source Vulkan Memory Allocator. Con questa libreria Tales of Vesperia ha visto un miglioramento delle prestazioni fino al 100%.

Poco dopo, Pauls-gh ha esaminato un problema di vecchia data sempre con Tales of Vesperia, in cui le animazioni dei personaggi venivano riprodotte al rallentatore.

Dopo aver scoperto che Linux non aveva questo problema, ha usato Microsoft Concurrency Visualizer per scoprire che il gioco impiegava molto tempo ad aspettare variabili condizionali (cond_variable::imp_wait).

Ciò ha portato a scoprire che l’attesa del sistema operativo (NtWaitForKeyedEvent) non era poi tanto accurata al microsecondo.

Windows può solo dormire usando una risoluzione di 0,5 msec. Dopo aver modificato la funzione PS3 sys_timer_usleep per saltare il sonno se il tempo era inferiore a 300 usec, le animazioni dei personaggi erano finalmente in esecuzione alla velocità corretta su Windows.

Tuttavia, questo non era poi tanto accurato in termini di hardware come appurato da kd-11 dopo aver eseguito test dell’hardware su di una vera PS3.

Per risolvere questo problema, kd-11 ha modificato l’implementazione RPCS3 di sys_timer_usleep per renderlo più preciso con l’hardware reale della PS3, quindi ha ottimizzato i valori per garantire che le prestazioni non andassero perse nelle CPU di fascia bassa.

Ciò ha comportato enormi miglioramenti delle prestazioni di Windows in Nier, Tales of Vesperia, Atelier Escha e Logy Alchemists of the Dusk Sky e altri ancora!

In particolare, Nier è passata da un frame rate a cifra singola a 30 FPS bloccati su molte macchine, il che ha permesso a questo titolo esclusivo di essere riprodotto!

Ecco alcuni screenshot comparativi di Tales of Vesperia in cui l’immagine a sinistra ha disabilitato l’allocatore di memoria Vulkan e l’immagine a destra ha abilitato l’allocatore di memoria Vulkan:

Sovrapposizione delle prestazioni

Questo mese VelocityRa ha aggiunto una funzionalità molto richiesta, una sovrapposizione delle prestazioni. I lavori sull’overlay sono iniziati dopo che nitrohigito ha aperto una richiesta di funzionalità in aprile.

Dopo 2 mesi di messa a nudo dell’ambito e del design dell’overlay, il PR è stato finalizzato e fuso questo mese. L’Overlay presenta varie informazioni come:

  1. Utilizzo totale della CPU insieme alla rottura tra l’emulazione PPU, SPU e RSX.
  2. Numero di thread per l’emulazione PPU, SPU e RSX.
  3. FPS e frame time.
  4. Carico RSX.

L’overlay ha alcune opzioni configurabili, la più importante delle quali è il livello di dettaglio. Dispone di quattro preset, ovvero “Minimal”, “Low”, “Medium” e “High”, ciascuno con livelli crescenti di dettaglio:

Poiché Performance Overlay utilizzava l’interfaccia utente nativa, kd-11 ha rifattorizzato e risolto vari problemi presenti per rendere più semplice agli altri sviluppatori la gestione pulita dell’aggiunta di nuove finestre di dialogo e interfacce senza preoccuparsi della gestione degli oggetti.

Inoltre, Megamouse ha gestito gli aspetti Qt aggiungendo una scheda GUI alla finestra di dialogo delle impostazioni ed esposto alcune opzioni di Sovrapposizione di prestazioni.

Rinnovato Trophy Manager

Grazie al lavoro di flash-fire, da diversi mesi a questa parte, RPCS3 ha implementato un manager di trofei.

Mentre l’implementazione iniziale si concentrava principalmente sul design e sulla funzionalità, il manager dei trofei presentava una struttura a colonne pieghevole che manteneva sia il gioco che i trofei in un unica tavolozza.

Anche se questa è stata un’aggiunta gradita, la lista dei trofei si è rivelata ardua da utilizzare con più giochi nella lista.

Per risolvere questo problema, Megamouse ha completamente riscritto la struttura delle liste del gestore questo mese! Trophy Manager ora utilizza due tavoli, uno per i giochi e uno per i trofei selezionati.

È possibile passare a un gioco semplicemente selezionandolo con il mouse o la tastiera e quindi visualizzare i suoi trofei a destra.

Inoltre, le icone dei giochi sono state aggiunte alla tabella dei giochi! Proprio come le icone dei trofei, anche queste icone sono ridimensionabili.

Puoi anche utilizzare la maniglia tra le tabelle per ridimensionare le tabelle e persino nascondere entrambe.

Aggiunto anche un nuovo menu a discesa alla barra degli strumenti più a sinistra in modo da rendere ancora possibile scegliere i giochi mentre l’elenco dei giochi è nascosto.

Giochi

NIER

Come accennato in precedenza nel rapporto, NieR ha visto un notevole incremento delle prestazioni su Windows, in particolare a causa di alcune correzioni temporali.

Invece di framerate a cifra singola su Windows, ora puoi aspettarti un FPS bloccato a 30 anche su di una CPU di fascia media.

Questo ha reso NieR giocabile per la prima volta! Se vuoi provare a eseguire il gioco per conto tuo, ricorda di abilitare Write Color Buffers (scheda Impostazioni GPU).

Lollipop Chainsaw Massacre

Anche se questo titolo è giocabile da circa un mese, la grafica è migliorata di recente e non richiede più una modalità di rendering rigorosa, il che significa che è possibile giocare ad alta risoluzione senza interrompere la visualizzazione!

Shadows of the Damned

Un altro gioco esclusivo per console ora è Giocabile, questo funziona abbastanza bene, ricorda di mantenere le proporzioni impostate su 16:9 e Filtro anisotropico su Automatico se vuoi provarlo.

Killzone 2 & 3

Con i recenti miglioramenti nell’infrastruttura SPU ASMJIT Recompiler di Nekotekina, queste 2 esclusive tripla AAA della PlayStation 3 finalmente vanno in gioco!

Silent Hill Downpour

Il problema con i filmati che ha colpito anche Ni No Kuni, risolto in aprile, ha permesso a Silent Hill Downpour di superare il prologo senza problemi.

Questo cambiamento, tra gli altri miglioramenti grafici e prestazionali, ha permesso a Silent Hill Downpour di essere considerato giocabile!

NCAA Football

NCAA Football 10 e NCAA Football  11 e molto probabilmente molti altri titoli andranno in gioco dopo che l’utente “sftt” ha corretto un problema di underflow in sys_memory.

Pro Evolution Soccer

Grazie ai recenti miglioramenti apportati da elad335 all’allineamento della mappatura della memoria, i vari giochi PES ora raggiungono la Intro.

Disorder 6

Questa esclusiva per console era in precedenza ingame a causa di problemi grafici e audio. Test recenti hanno dimostrato che questo titolo ora è giocabile!

Ketsui Kizuna Jigokutachi Extra

Un altro titolo arcade esclusivo per console che è diventato giocabile.

Muv-Luv Photonflowers and Photonmelodies

Questi VN esclusivi sono ora giocabili. Altri giochi weeb!

Potrete scaricare la versione più recente dell’emulatore collegandovi a questo indirizzo per PC Windows e Linux. Se vi piace potrete anche contribuire allo sviluppo con una piccola donazione sul Patreon.

(Visited 1 times, 1 visits today)

2 commenti

    1. Non ancora, attualmente stanno cercando di massimizzare l’emulazione dei giochi, poi proveranno ad implementare questa caratteristica, almeno così hanno detto

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *