Home Microsoft Disponibili i nuovi report del mese di agosto sui progressi raggiunti dall’emulatore...

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

264
0

Disponibile il nuovo report sui progressi raggiunti dall’emulatore RPCS3 nel mese di agosto. 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.

Nel mese di agosto il team composto da diversi sviluppatori di rilievo ha introdotto diverse modifiche sostanziali che ha portato dei miglioramenti massicci nell’emulazione di molti titoli a tripla A.

Migliorata l’accuratezza e le prestazioni a SPU LLVM e introdotto il supporto per C++ 2017, questo porterà ben presto allo sviluppo di una possibile versione per Mac OS.

Il grafico sotto mostra per la prima volta in assoluto la soglia di 1000 (mille) titoli giocabili, se messo a confronto, 12 mesi fa in questo stesso periodo avevamo appena 400 titoli giocabili. La categoria Nothing scende solo di 1, in compenso ora mancano solo cinque titoli.

Principali miglioramenti

SPU Realms

Nekotekina questo mese ha unito un aggiornamento cruciale al recompiler SPU LLVM, che ha risolto anomalie fisiche, sonore e grafiche in innumerevoli titoli.

Se da un lato, hanno influenzato il modo in cui la MFC (Memory Flow Controller) della SPU raggiunge la memoria virtuale che non è mappata dalla SPU, dall’altra, l’aggiornamento pare abbia migliorato l’accuratezza della gestione dei float estesi durante l’uso di SPU LLVM.

Il primo funziona sfruttando il modo in cui tali comandi MFC vengono solitamente emessi. Per impostazione predefinita, l’accesso alla memoria virtuale non assegnata alla SPU è in realtà piuttosto costoso, ma poiché entrambi i comandi e i relativi parametri sono noti al programma di ricompilazione e rimangono costanti, questi codici di trasferimento possono ora essere semplificati e eseguiti molto più rapidamente.

Questo miglioramento è attualmente abilitato solo per le CPU compatibili con TSX, sebbene Nekotekina abbia menzionato che potrebbe essere trasferito a CPU non TSX in futuro, se ritenuto possibile.

Quest’ultimo, tuttavia, non è una velocità, ma piuttosto un miglioramento della precisione, il che significa che, se abilitato, riduce le prestazioni.

In parole povere, modifica il modo in cui i float estesi (un formato a virgola mobile a precisione singola semplificato utilizzato nella SPU) vengono gestiti, ottenendo una precisione che surclassa il recompiler di ASMJIT, mantenendo prestazioni comparabili.

Quando SPU LLVM è stato introdotto per la prima volta a maggio, ha avuto vari problemi di stabilità che, a prima vista, sembravano essere unici, ma erano presenti anche con SPU ASMJIT all’inizio del 2017.

Questi problemi derivavano dalla differenza in quanto a virgola mobile i calcoli sono gestiti da CPU con architettura x86-64 rispetto alle SPU di Cell.

Per gestire in modo appropriato tali calcoli, è necessario simulare questi calcoli manualmente come fatto dall’interprete SPU preciso. Sebbene ciò abbia comportato una precisione praticamente perfetta, si è anche dimostrato che le prestazioni sono piuttosto costose e degradate in modo significativo.

Per mitigarli su SPU ASMJIT, kd-11 aveva implementato una soluzione rapida, che, scartando efficacemente determinati risultati (trattando infiniti e NaN come zero), risolto la maggior parte di questi problemi di stabilità che erano presenti senza il grave peggioramento delle prestazioni.

Tuttavia, poiché questa soluzione alternativa non era una soluzione accurata, alcuni problemi rimanevano ancora.

Con l’introduzione di SPU LLVM e l’enorme vantaggio prestazionale offerto, è stata trovata l’opportunità di implementare una nuova soluzione. Attraverso l’uso di LLVM, è possibile “aggiustare” il metodo dell’architettura x86-64 per la gestione dei calcoli float in modo che corrisponda alle SPU della cella.

Sebbene questo metodo comporti ancora una penalizzazione delle prestazioni, la nuova implementazione ci offre vantaggi di accuratezza simili all’interprete SPU preciso, consentendo anche livelli di prestazioni paragonabili all’attuale compilatore SPM ASMJIT.

I risultati di questo miglioramento sono stati chiaramente evidenti, in quanto ha affrontato una vasta gamma di problemi fisici e di crash che gli utenti avevano riscontrato in precedenza.

Pochi esempi noti includono: mutismo in Mirror’s Edge, Folklore e Guilty Gear Xrd REV 2; cadere sotto la mappa in GTA IV; schiantarsi rompendo scatole in Drakengard 3; si schianta sul tiro di barili, scatole e altri oggetti distruttibili in Shadows of the Damned; ragdoll e fisica gettabile in Uncharted 1; parti del corpo invisibili / modelli di personaggi spezzati in Infamous 1 e Captain America; alcuni errori grafici in GoW III; e molti altri.

A causa di questo miglioramento che porta precisione al costo delle prestazioni, è stata mantenuta come opzione modificabile nella scheda CPU del menu delle impostazioni.

Gli utenti che desiderano avvalersi di questo miglioramento dell’accuratezza possono abilitare l’opzione “Accurate xfloat”. Si prega di notare che questa opzione è disponibile solo quando si utilizza il ricompilatore SPU LLVM.

Correzioni grafiche AAA

A metà agosto, kd-11 ha apportato importanti miglioramenti a RPCS3, in particolare ha quasi raddoppiato le prestazioni in Uncharted: Drake’s Fortune, e ha risolto la maggior parte dei restanti problemi grafici di God of War III. Se non lo hai già fatto, guarda il video della vetrina in basso che copre la maggior parte delle modifiche degne di nota.

Ma come è stato fatto? Bene, iniziamo con i miglioramenti delle prestazioni. Il più grande ostacolo per le scarse prestazioni RSX era la sincronizzazione tra il processore Cell e RSX.

Meno in particolare, la sincronizzazione tra le unità RSX, kd-11 ha iniziato testando un amato classico; Uncharted 1, disabilitando tutte le sincronizzazioni e forzando una risoluzione di 2560×1440.

Durante questi test ha notato quasi il doppio delle prestazioni, che indicava chiaramente un collo di bottiglia per la sincronizzazione.

Dopo aver identificato attentamente i principali tipi di barriere di sincronizzazione su PS3, kd-11 ha stabilito di eliminare lo stallo non necessario nell’emulatore e di terminare con un notevole miglioramento delle prestazioni RSX del 70% circa.

Questo ha notevolmente migliorato le prestazioni nei giochi che hanno avuto un collo di bottiglia RSX ed è per questo che Uncharted: Drake’s Fortune ha visto un enorme miglioramento delle prestazioni.

Per verificare l’utilizzo di RSX in un gioco, abilitare semplicemente l’overlay delle prestazioni. Se il tuo uso di RSX è molto alto, è probabilmente sicuro dire che questo cambiamento ti avrebbe dato un bump in termini di prestazioni.

Ma i miglioramenti delle prestazioni non si sono fermati qui, kd-11 ha continuato ottimizzando significativamente la sintonizzazione della sincronizzazione ZCULL di RPCS3.

Sostituendo i “cicli” arbitrari con le misure del microsecondo del mondo reale per ottenere risultati più coerenti e ottimizzare l’algoritmo per evitare il lavoro non necessario fino a quando RPCS3 non sarà certo che il renderer abbia terminato le attività di blocco.

Ciò si traduce in un notevole miglioramento delle prestazioni nei giochi con un pesante utilizzo di ZCULL. In particolare, Skate 3 ha ricevuto un aumento delle prestazioni di circa il 70%, rendendolo ancora più vicino all’essere giocabile!

Passando ai miglioramenti del rendering, kd-11 ha implementato correzioni per il tracciamento della memoria del framebuffer.

Ciò include il conflitto di scrittura in cascata e di aliasing della memoria in cui un indirizzo viene utilizzato sia come target di colore sia come target di profondità allo stesso tempo con il contenuto determinato in base allo stato dei registri di configurazione.

Dato che questo algoritmo diventa sempre più accurato con ogni gioco che sembra violare alcune regole, ci avviciniamo alla grafica perfetta in molti titoli tripla AAA. Inoltre, l’effetto “filtro giallo” che influenza alcuni giochi come la serie Prince of Persia quando si utilizza il renderer Vulkan è stato corretto.

Siamo sicuri che ci sono molti altri giochi che non sono stati menzionati qui, e che beneficiano di questi miglioramenti. Se trovi tali giochi che sono migliorati o regrediti, ti preghiamo di comunicarcelo tramite i canali appropriati.

Legame del movimento del mouse

Dopo attenti modifiche nel corso del mese, Megamouse ha finalmente implementato il mouse sul binding del pulsante del controller!

Questa è una grande notizia per tutti coloro che, ad esempio, volevano guardarsi attorno o mirare ai giochi come fanno di solito nei titoli per PC!

Pur rendendo possibile la mappatura da mouse al controller, ha migliorato notevolmente anche il gestore del mouse “Base”, che passa direttamente al mouse dell’utente e consente al gioco di gestirlo in modo nativo, se supportato.

Alcuni titoli come Unreal Tournament 3 consentono di utilizzare in modo nativo il mouse in questo modo.

Mentre questi miglioramenti rendono virtualmente qualsiasi gioco compatibile con un mouse, non è, tuttavia, senza alcun difetto.

Dato che i giochi per console sono solitamente (e non così sorprendentemente) progettati con una fotocamera controllata in mente con il mouse, possono apparire stranezze.

Poiché gli sviluppatori di giochi solitamente utilizzano deadzone personalizzati e utilizzano moltiplicatori di accelerazione personalizzati, Megamouse ha reso possibile modificare queste variabili con una manciata di scorciatoie da tastiera.

Con la messa a punto di questi parametri, alcuni giochi potrebbero raggiungere un controllo della fotocamera quasi perfetto basato sul mouse!

Ciò significa che gli utenti finali dovranno trovare da soli e manualmente le migliori impostazioni, facendo corrispondere le impostazioni interne dei loro giochi e la sensibilità del loro mouse.

Da notare che con gli stick al massimo, il valore della velocità sarà limitato a 255, e i giochi solitamente utilizzano altre tecniche (come cambiare direttamente l’angolo della telecamera per raggiungere determinati luoghi o seguire automaticamente il personaggio).

Questo significa che molti titoli non risponderanno mai allo stesso modo di un normale gioco su PC con supporto nativo per il mouse. Questi giochi necessiteranno dunque di una soluzione più robusta o di una mod per supportare questa funzionalità.

Per quanto riguarda la compatibilità attuale, ci sono attualmente due modalità con cui l’utente può collegare il mouse a un gioco. Uno è il gestore di mouse “Basic” nativo di cui sopra (che puoi trovare nella scheda I/O del menu Impostazioni) e l’altro sta impostando il tipo di gestore mouse su “Null”, quindi legando i movimenti del mouse alla levetta destra.

Per fare ciò, dovrai fare clic su uno dei pulsanti direzionali dell’analogico destro (nelle impostazioni del Pad), quindi fare clic e tenere premuto, muovendo il mouse nella direzione appropriata. Fallo per tutti e quattro i pulsanti e sarai pronto.

Nota: Assicuratevi di non mescolare il mouse alla mappatura del controller con il gestore “Base”, poiché interferiranno. Oppure, in alternativa, puoi anche mappare il mouse su altri pulsanti, rendendo possibile, diciamo, un’esperienza completamente nuova di Anime!

Supporto macOS di base tramite gfx-rs

Questo mese, un utente di nome @kvark del team gfx-rs ha suggerito sul nostro GitHub che stava lavorando al porting di RPCS3 su macOS.

I precedenti tentativi di trasferire l’emulatore su macOS non hanno avuto successo, poiché l’API grafica proprietaria di Apple, Metal, ha sofferto di varie limitazioni tecniche.

Inoltre, una tale porta richiederebbe molto tempo e sforzi per sviluppare e mantenere un terzo back-end grafico, che sarebbe esclusivo per una singola piattaforma.

Tuttavia, con l’introduzione delle librerie Vulkan Portability come MoltenVK e gfx-rs, ora sarà possibile mappare in modo efficiente l’API Vulkan alle API native (Metal).

L’uso delle librerie di portabilità nega completamente la necessità per RPCS3 di mantenere un backend Metal separato e ci consente invece di concentrarci sul miglioramento del backend Vulkan che andrà a vantaggio di tutte le piattaforme.

Tuttavia, se da un lato sono state affrontate le limitazioni, è stato necessario lavorare di più per affrontare i limiti tecnici.

kvark ha quindi iniziato a consentire a RPCS3 di utilizzare gfx-rs utilizzando le estensioni MoltenVKUna volta aperto il percorso del codice Vulkan Portability, era giunto il momento di affrontare i limiti.

I primi principali limiti tecnici erano la completa mancanza di supporto hardware per il formato di texture che sfrecciava con l’API Metal e l’assenza di supporto per la visualizzazione dei buffer di texture dalla memoria condivisa.

kd-11 ha risolto questi limiti implementando un decodificatore software per il formato swizzles e heap a doppio buffer come percorso di fallback quando si utilizza Apple.

L’ostacolo successivo era una presunta limitazione al limite della dimensione del buffer delle texture che era impostato su 16K, un limite che era semplicemente troppo basso per RPCS3.

Tuttavia, dopo ulteriori indagini, è stato riscontrato che la limitazione era effettivamente causata dall’implementazione errata dei buffer delle texture in gfx-rs (si supponeva che i buffer supportassero solo piccole texture 1D e non grandi heap).

Poiché questo problema è stato affrontato da parte loro, kd-11 ha migliorato il controllo di RPCS3 per la dimensione heap visibile dei buffer delle texture, precedentemente impostata su un 64M costante.

Il porting di RPCS3 in macOS si è rivelato particolarmente vantaggioso per gfx-rs, poiché erano in grado di identificare e correggere molti bug in tutto il processo.

Una volta sommariamente affrontati tutti questi problemi, erano visibili i primi segni di RPCS3 in esecuzione su macOS!

Mentre questo è un passo importante verso portare RPCS3 su più piattaforme, la porta macOS ha ancora abbastanza strada da fare.

Allo stato attuale, i ricompilatori PPU e SPU non funzionano e gli utenti dovranno utilizzare i rispettivi interpreti.

Sono necessari più lavoro e ricerche per consentire ai recompilatori di lavorare su macOS. Inoltre, le build continue per macOS non sono disponibili in quanto Apple offre solo alcune funzionalità C ++ necessarie dietro il loro ultimo sistema operativo beta.

Giochi

Serie Army of TWO

Army of TWO e Army of TWO: The 40th Day entrambi sono diventati giocabili questo mese. Questi titoli sono migliorati in modo significativo con l’introduzione della recente implementazione degli shader asincroni effettuata da kd-11.

Un utente su Discord, tale Cheat_Codes_On_Life, ha terminato Army of TWO: The 40th Day su RPCS3 e ha persino giocato la maggior parte di esso in split-screen!

Yakuza Kenzan!

MsLow, un utente su Discord, è riuscito a portare a termine il gioco Yakuza Kenzan dall’inizio alla fine su RPCS3 senza crash o bug.

Tuttavia, Yakuza Kenzan! non è ancora classificato come giocabile a causa della presenza di micro-balbuzie anche con CPU high-end (i7-8700K a 4.5GHz) e problemi grafici come i vertici in esplosione.

Ciò nonostante, ci consente di apprezzare fino a che punto lo sviluppo di RPCS3 è progredito per poter emulare tali titoli tripla AAA con prestazioni notevoli.

Come celebrazione della sua impresa, MsLow ha realizzato un fan trailer del gioco che puoi consultare qui sotto!

Teenage Mutant Ninja Turtles: Turtles in Time Re-Shelled

Grazie alle “correzioni AAA” di kd-11 questo mese, i rimanenti problemi grafici nella fase della nave pirata sono stati risolti spostando questo titolo da ingame a giocabile!

Supersonic Acrobatic Rocket-Powered Battle-Cars

Quest’esclusiva per PlayStation 3, che serviva da prequel alla famosa Rocket League, ora è completamente giocabile!

Kamen Rider Battride War

Quest’esclusiva di console ha avuto una storia sfrontata in quanto è riuscita a ottenere presto ingame, ma si è bloccata durante una particolare missione. Tuttavia, questo gioco è ora completamente riproducibile e funziona molto bene!

Nota: Si rende necessario abilitare la modalità di rendering rigorosa affinché i nemici possano eseguire correttamente il rendering.

50 Cent: Blood on the Sand

Grazie ai nostri tester, 50 Cent: Blood on the Sand è stato trovato giocabile questo mese su RPCS3. Devi sparare con la tua pistola quando inizi un livello, altrimenti il tuo personaggio non sarà in grado di muoversi, ma a parte questo il gioco funziona bene.

Sengoku Basara 4: Sumeragi

Sebbene questa esclusiva per console sia riuscita a ottenere ingame in passato, ha sofferto di vari problemi dall’inizio del 2018. Tuttavia, con questi problemi risolti, è ora completamente riproducibile con pochi piccoli problemi grafici!

GTI Club+: Rally Côte d’Azur

Quest’esclusiva per PlayStation 3 non è andata avanti per molto tempo, ma alla fine riesce ad andare ingame! Tuttavia, la frequenza di fotogrammi instabile e l’audio a intermittenza impediscono a questo titolo di essere considerato riproducibile.

Monster Jam: Path of Destruction

Grazie ai miglioramenti di elad335 per i registri del metodo RSX, questa esclusiva per console ora finalmente va ingame!

Come si vede nell’immagine qui sotto, il gioco soffre di basse prestazioni e alcuni problemi grafici abbastanza ovvi che gli impedisce di essere correttamente riproducibile.

Tears to Tiara Gaiden: Avalon no Nazo

Questa esclusiva per console ora riesce ad andare ingame e con un FPS stabile. Tuttavia, come visto di seguito, soffre di problemi grafici che impedisce di essere correttamente riproducibile.

Tomb Raider: Underworld

Sebbene non sia un’esclusiva per console, il classico Tomb Raider: Underworld ora riesce ad andare ingame con FPS apparentemente stabile e grafica corretta. Ulteriori test saranno necessari per rivelare se il titolo è giocabile o meno.

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.

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.