Skip to main content

Abbiamo testato la patch non ufficiale di Bloodborne che abilita i 60fps: come si comporta? - articolo

Discutiamo del Souls engine con il creatore dell'hack.

Bloodborne, uno dei giochi più acclamati di questa generazione di console, è frutto della collaborazione tra From Software e Sony. È un'avventura epica a tema gotico, ricca di lore, con un gameplay profondo ma anche brutalmente difficile. Per noi del Digital Foundry, il gioco delude solo dal punto di vista tecnico.

Il frame-rate di 30fps è implementato con scarso successo e non è mai arrivata una patch per PS4 Pro per avere i 60fps. Con queste premesse abbiamo seguito con estremo interesse il lavoro di Lance McDonald, che ha elencato i suoi tentativi di hacking del codice di Bloodborne su hardware debug per abilitare il pieno frame-rate. Il video rilasciato mostra McDonald estremamente vicino all'obiettivo. Ma qual è la storia dietro questa impresa?

Prima di continuare, vale la pena sottolineare che la patch 60fps per Bloodborne non funziona su console PlayStation 4 commerciali, e chi fosse interessato dovrà dotarsi di console hackerate o di debug, che non sono disponibili al pubblico. Il nostro interesse era verificare come si comportasse questo hack, per capire come si tradurrebbe in una patch ufficiale.

Abbiamo parlato a lungo con McDonald per capire come sia arrivato a un tale risultato, dopodiché abbiamo lavorato insieme a lui per testare una serie di risoluzioni e performance in modo da ottenere una visione più chiara di come funzioni l'engine di From Sofware. Questi test ovviamente non ci servono solo per Bloodborne ma anche per capire come girerebbero a 60fps i Souls dello stesso sviluppatore. Ovviamente ci siamo chiesti se lo stesso hack potesse estendersi senza problemi ai Dark Souls programmati per girare a 30fps.

È fondamentale capire perché questo rappresenti un problema cruciale. In un mondo ideale, i giochi pensati per schermi da salotto girerebbero tutti a 60fps, quindi con un fotogramma per ogni Hz di refresh del TV, con la latenza più bassa possibile. Ma il tempo necessario per il rendering degli engine di gioco moderni rende questa eventualità spesso impossibile, quindi i giochi possono attingere al doppio del tempo. Usando i 30fps invece dei 60fps, abbiamo un frame-time di 33,3ms invece di 16,7ms, ma per via della persistenza constante di ogni fotogramma l'immagine appare comunque fluida.

L'engine di From Sofware è rotto da questo punto di vista, poiché il suo timing a 30fps non è per niente sincronizzato con tutti i refresh dei display. I 30fps dell'engine si presenteranno su schermo quando saranno pronti, a 16,7ms, 33,3ms o 50ms. Questo è quello che solitamente chiamiamo 'cattivo frame-pacing', e la sua inconsistenza dà l'illusione che il gioco giri a una velocità minore.

Il Digital Foundry mette sotto al microscopio l'hack 60fps di Bloodborne, e ne discute in maniera approfondita con il suo creatore Lance McDonald.Guarda su YouTube

Prima di parlare dell'hacking di Bloodborne per girare a 60fps, dobbiamo porci la seguente domanda: il From Engine può essere modificato per sincronizzare i 30fps con il display? In pratica, può ogni fotogramma durare su schermo 33,3ms? Secondo Lance McDonald una simile modifica richiederebbe una pesante revisione di tutto l'engine. Certamente una singola patch non potrebbe riuscire in questa impresa: si parla di modificare anche logica di gameplay, fisica dei vestiti: tutte le variabili di timing all'interno dell'engine sono sincronizzate con il conteggio dei fotogrammi e non con ogni altro refresh di visualizzazione. Questo significa ottenere un frame-rate di 30fps regolarizzato e fluido non è possibile, e che l'unico modo per bypassare il problema è pompare il gameplay a 60fps.

Questo problema si presenta quando l'engine è pesantemente codificato per il frame-counting, ma McDonald si è aiutato esaminando Dark Souls 3. From Software ha rilasciato una versione PC del gioco che gira a più di 30fps, e questa è stata presa anche come base per realizzare la patch PS4 Pro, che girava a 1080p con frame-rate sbloccato. Lance McDonald ha scoperto che le meccaniche core dell'engine erano identiche in Bloodborne e Dark Souls 3, e quindi la soluzione trovata per Bloodborne poteva essere riutilizzata anche per il gioco precedente.

La sola rimozione del limite di 30fps non avrebbe aiutato granché, poiché ogni altro aspetto del timing del gioco è pensato per un livello prestazionale di 30fps, e quindi portare il gioco a 60fps ne avrebbe di fatto raddoppiato la velocità. La soluzione è stata quindi più rozza: essenzialmente, ove il timing in-game di Bloodborne era limitato a 1/30 frame, Dark Souls 3 adattava il cap di 30fps al contatore di frame attuale. McDonald ha seguito la stessa strategia con Bloodborne, modificando ben 108 variabili di timing diverse. Bloodborne adesso stava girando sbloccato, con il timing di gioco corretto. Ma questa piccola vittoria ha comportato nuove sfide.

Uno sguardo al menu di debug interno. La maggior parte delle funzioni sono mostrate nel video qui sopra.

Prima di tutto, c'è la componente grafica. Gli asset, l'engine ed il gameplay di Bloodborne sono tarati per il 1080p30. Sbloccare il frame-rate permette al gioco di girare a in una finestra tra i 30 e 40fps. Quindi, in teoria, girando su PS4 il gioco dovrebbe comportarsi grosso modo come Dark Souls 3. Ma il problema è che Bloodborne è stato programmato su una SDK PS4 precedente che non aveva supporto alla Pro, e questo implica che il gioco non può beneficiare della potenza extra. L'unica strada da percorrere per ottenere prestazioni maggiori era di hackerare il codice della modalità boost su hardware Pro. C'è un aumento di prestazioni, ma non si arriva nemmeno vicino ai 60fps.

La cosa interessante è che l'engine su cui gira Bloodborne supporta varie risoluzioni native tra cui 720p, 900p e 1080p. Su PS4 base più si abbassa la risoluzione e più aumenta il frame-rate. Ma le speranze di ottenere un gameplay bloccato a 720p60 sono state infrante, visto che i risultati migliori prestazionali stavano tra i 40 e i 50fps. Ricordate che quell'engine è stato progettato per girare su PS4 standard d 30fps. Bloodborne spende un sacco di cicli per streammare texture e decomprimere dati relativi alle ambientazioni mentre vi muovete tra i paesaggi. Più veloce viaggiate e più il carico sulla CPU cresce, facendo di conseguenza decrescere il frame-rate.

Tutto ciò ci riporta alla modalità boost della PS4 Pro. La cosa assurda è che a distanza di anni non sappiamo ancora come funzioni esattamente, possiamo solo azzardare ipotesi basandoci su risultati misurabili, e le nostre conclusioni combaciano con Bloodborne patchato. Prima di tutto, sembra che il clock maggiore di cui è capace la CPU di PS4 Pro sia pienamente utilizzato in modalità boost, e la prova è la quasi scomparsa dei cali di frame in Bloodborne a 720p. La situazione non è completamente risolta però, visto che i viaggi veloci possono impattare duramente sulle prestazioni, ma si tratta della migliore esperienza di Bloodborne ottenibile, con gran parte delle scene di gioco che girano a 60fps bloccati.

Sekiro: Shadows Die Twice ci offre uno sguardo sull'ultima versione del Souls Engine, mostrandoci di cosa sia capace sulle console enhanced.Guarda su YouTube

A 1080p con frame-rate sbloccato c'è solo un piccolo vantaggio prestazionale rispetto alla PS4 base, andando a ricalcare le nostre osservazioni sulla modalità boost. Anche se si ottiene piena potenza di clock CPU, riteniamo che venga utilizzato solo la metà delcore grafico della PS4 Pro, anche se operante a 911MHz invece che a 800MHz. In breve, c'è un+14% di performance disponibile, e se in Bloodborne il gioco girerebbe a 35fps, ciò significa che si arriverebbe a 39fps. Tuttavia, 900p è una terra di mezzo che non ci permette di ottenere risultati eccellenti, visto che a un certo punto ci troveremo limitati sulla CPU o sulla GPU.

Le conclusioni che si traggono dall'esperienza di Bloodborne a 60fps sono entusiasmanti ma al contempo disarmanti. Nonostante il fatto che abbiamo bisogno di una PS4 in modalità boost, e della risoluzione 720p, il gioco ne beneficia alla grande. Il gameplay è decisamente più fluido non solo in confronto ai 30fps, ma anche perché quei 30fps non erano ben sincronizzati.

Il gioco originale era superbo, ma 'l'upgade' è un qualcosa di magico. Ma le conclusioni tratte dall'esperimento dell'hack di McDonald dimostrano che anche se il gioco ricevesse una patch per PS4 Pro, avremmo dei pesanti limiti legati alla CPU, anche se almeno potremmo andare oltre la risoluzione 720p a cui ci limita questo hack. Basandoci su quanto visto in Dark Souls 3 e Sekiro: Shadows Die Twice, l'esperienza generale non sarebbe comunque soddisfacente.

Detto ciò, i test eseguiti qui mettono in luce una grande opportunità per Sony. Il nuovo hardware di PlayStation 5 offre piena retrocompatibilità con PS4, ed i nuovi e potenti core Zen 2 risolverebbero alla grande i problemi prestazionali degli scarsi core Jaguar. Ma se è possibile per uno sviluppatore third-party patchare un gioco, dovrebbe essere relativamente semplice per Sony/From Software fare lo stesso. Si potrebbero persino avere dei grossi bonus, come il 4K nativo.

Le opportunità per questo gioco con l'arrivo della next-gen sono decisamente allettanti per gli utenti, ma bisognerà vedere se Sony avrà interesse nel rimettere mano al codice del gioco, specialmente se i rumor riguardanti l'arrivo di un pieno remake di Demon's Soul per PS5 si riveleranno fondati.

Avatar di John Linneman
John Linneman: An American living in Germany, John has been gaming and collecting games since the late 80s. His keen eye for and obsession with high frame-rates have earned him the nickname "The Human FRAPS" in some circles. He’s also responsible for the creation of DF Retro.
In this article
Related topics

Sign in and unlock a world of features

Get access to commenting, newsletters, and more!