Il developer elad335, uno dei più stretti collaboratori dell’emulatore RPCS3, è riuscito a ridurre considerevolmente i tempi di caricamento dei giochi.
Nella nuova implementazione, la fase di “Applicazione del codice PPU” è stata eliminata, sostituendola con una funzione risolutrice di simboli intelligente.
Game initial loading times have been greatly improved, as the "Applying PPU Code" stage has been replaced by an almost instantaneous function, starting on RPCS3 v0.0.31-16208 pic.twitter.com/80FkM1UwIQ
— RPCS3 (@rpcs3) March 28, 2024
Invece di risolvere singolarmente tutti gli indirizzi delle funzioni esternamente, ora vengono risolti internamente all’interno di una singola funzione che popola la jumptable del PPU, rendendo il processo quasi istantaneo.
Durante la realizzazione di questo PR, è stato scoperto che impiegava un tempo estremamente lungo per compilare questa funzione quando il loop era stato unrolled invece di ciclare sugli array, portando alla scoperta di nuovi concetti come l’uso dei nodi PHI.
Il miglioramento implementato rende il caricamento di giochi come “Skate 3” molto più fluido. Per ottenere questo risultato, elad335 ha avuto il coraggio di invalidare parzialmente la cache LLVM, concentrando l’invalidazione solo sull’ultimo modulo contenente la funzione risolutrice, per ogni file.
Queste modifiche sono ora disponibili a partire dalla versione 0.0.31-16208 dell’emulatore RPCS3.
Fonte: twitter.com