Home Emulatori PS5 RetroArch: Arriva un porting nativo con Vulkan e cinque core già...

PS5 RetroArch: Arriva un porting nativo con Vulkan e cinque core già verificati

315
0

La scena homebrew della console PlayStation 5 continua a muoversi anche sul fronte dell’emulazione, e questa volta il progetto merita attenzione per l’approccio scelto.

Si chiama PS5 RetroArch ed è un porting nativo di RetroArch pensato per le console PS5 jailbroken, sviluppato da Mihawk e basato sul lavoro del progetto RetroArch/libretro e sulle fondamenta di ProsperoLight.

L’obiettivo non è semplicemente eseguire una versione desktop di RetroArch sulla console, ma costruire un’integrazione realmente nativa per PS5.

Il progetto viene avviato come titolo homebrew e utilizza il driver video Vulkan di RetroArch, collegato staticamente a PS5_Vulkan, per presentare sullo schermo i fotogrammi prodotti dai core di emulazione.

Il risultato attuale è già piuttosto concreto. L’interfaccia XMB di RetroArch funziona, così come l’alternativa RGUI, l’input del controller, l’audio stereo, il salvataggio della configurazione, la navigazione dei contenuti e il caricamento dei core.

Il progetto è stato inoltre verificato direttamente su console, anche se gli stessi sviluppatori sottolineano che i test effettuati non equivalgono ancora a una compatibilità completa con ogni core, gioco o funzionalità Vulkan.

Uno degli aspetti più interessanti riguarda proprio i core disponibili. La build attuale ne include cinque: FCEUmm per NES e Famicom, mGBA per Game Boy, Game Boy Color e Game Boy Advance, Snes9x per SNES, FinalBurn Neo per diversi sistemi arcade e Genesis Plus GX per Mega Drive, Master System, Game Gear, SG-1000 e Sega CD.

I giochi vengono elaborati dai core in modalità software, mentre RetroArch si occupa di trasferire i fotogrammi attraverso il proprio percorso video Vulkan fino alla GPU della PS5.

I test effettuati sul campo hanno già confermato gameplay, audio e input con diversi sistemi. Per FCEUmm sono stati verificati giochi NES, mentre mGBA è stato provato con contenuti GB, GBC e GBA.

Anche Snes9x ha superato i test di gioco, colori, audio, input e transizioni dei menu. FinalBurn Neo è stato utilizzato con diversi giochi arcade e Genesis Plus GX ha già dimostrato il corretto funzionamento del gameplay Mega Drive. Questo non significa però che ogni gioco, BIOS, chip speciale o modalità video sia già stato validato.

Dal punto di vista grafico, PS5_Vulkan rappresenta una componente importante del progetto. Il driver viene integrato direttamente nel titolo RetroArch e permette alla console di ricevere i fotogrammi generati dai core attraverso il backend Vulkan. Il progetto mantiene inoltre disponibile un percorso video basato sulla CPU come soluzione alternativa.

Lo sviluppatore sta lavorando anche su una base tecnica che potrebbe aprire la strada a emulatori più complessi. È stato infatti verificato il supporto alla transizione della memoria da RW a RX con una prova nativa di esecuzione del codice, una componente utile per il futuro supporto JIT.

Questo, però, non significa che il dynarec di PPSSPP sia già operativo nella build attuale: l’integrazione di PPSSPP resta ancora un obiettivo separato del progetto.

Tra gli obiettivi futuri figurano Beetle PCE per PC Engine e TurboGrafx-16, Stella per Atari 2600, PicoDrive con il supporto al Sega 32X, una maggiore copertura arcade tramite MAME, Beetle PSX HW per l’emulazione PlayStation con rendering Vulkan, Nintendo 64 attraverso Mupen64Plus-Next o ParaLLEl-N64, PPSSPP e, più avanti, Dolphin per GameCube e Wii.

Restano ancora diverse funzioni da completare. La persistenza verificata di save RAM e save state tra riavvii e cambi di core non è ancora stata accettata come definitiva, così come alcune opzioni specifiche dei core, il supporto completo a BIOS e file di sistema, il cambio disco, RetroAchievements e netplay.

Anche le funzionalità legate a shader Slang, output 4K, upscaling, VRR, 120 Hz e HDR richiedono ulteriori verifiche.

Un altro dettaglio importante è che la rete è attualmente disabilitata nel frontend, quindi funzioni come il netplay non fanno ancora parte dell’esperienza disponibile. Allo stesso modo, il progetto non include giochi o BIOS: l’utente deve fornire autonomamente i propri contenuti compatibili.

Stato attuale

Funzionalità Stato
Avvio del titolo nativo e uscita ✅ Funzionante, inclusa la chiusura dello splash screen e l’uscita nativa pulita
Output video Vulkan ✅ Menu e fotogrammi dei core software presentati tramite libps5vk collegato staticamente
XMB ✅ Menu predefinito, con rendering di icone, font e sfondo
RGUI ✅ Menu alternativo
Input del controller nativo ✅ Pulsanti, navigazione dei menu con levetta sinistra e acquisizione dei collegamenti tasto/asse
Audio nativo ✅ Output PCM stereo audio_ps5, test del canale audio udibile e diagnostica del buffering
File system e configurazione ✅ Navigazione delle directory, caricamento/salvataggio della configurazione e cartelle dell’applicazione scrivibili tramite FTP
Caricamento dei core ✅ Loader nativo dei core condivisi, rilevamento ufficiale dei file .info e recupero dai caricamenti rifiutati
Caricamento dei contenuti ✅ Giochi e archivi testati con i core riportati di seguito
Colori e transizioni dei menu ✅ Upload dei pixel corretti; transizioni Quick Menu/Close Content/gioco successivo verificate dal proprietario
Fallback video CPU ✅ video_ps5 rimane registrato e selezionabile
Diagnostica di sviluppo ✅ retroarch.log, trace di avvio/GPU, acquisizioni del kernel e temporizzazione opzionale dei frame tramite buffer

L’ultima build di gioco verificata ha registrato zero rifiuti del driver Vulkan, zero errori dell’API GPU, zero segnali fatali del kernel e zero errori del backend audio.

Questi risultati si applicano ai test acquisiti e non a ogni possibile carico di lavoro. Consultare stato attivo e prove archiviate per build esatte, copertura dei test ed eccezioni note.

Core disponibili

La build del titolo include questi core e i relativi metadati ufficiali. Tutti e cinque i core eseguono i giochi emulati in modalità software; RetroArch carica i loro fotogrammi e li presenta tramite Vulkan. Nessuno di questi porting stabilisce il supporto a core Vulkan con rendering hardware.

Core Sistemi coperti dal core Verifica su console in questo porting
FCEUmm NES / Famicom ✅ Gameplay, audio e input; successive correzioni condivise delle transizioni dei menu verificate. Prove
mGBA Game Boy, Game Boy Color, Game Boy Advance ✅ Caricamento GB/GBC/GBA, colori corretti e transizioni pulite dei menu/del gioco successivo. Prove
Snes9x SNES / Super Famicom ✅ Gameplay, colori, audio/input e transizioni dei menu testati; non tutti i chip speciali o le modalità video. Prove
FinalBurn Neo Schede arcade supportate, incluse Neo Geo e Sega System 16/32 ✅ Giochi arcade testati utilizzando sia l’output nativo a 32 bit sia l’output convertito a 16 bit; non tutte le schede o raccolte ROM. Prove
Genesis Plus GX Mega Drive / Genesis, Master System, Game Gear, SG-1000, Sega CD ✅ Gameplay Genesis e transizioni pulite confermati dal proprietario. Gli altri sistemi Sega e i percorsi disco/BIOS richiedono ancora un’accettazione separata. Prove

Utilizzare FBNeo per le raccolte arcade Sega System 16/32, anziché Genesis Plus GX. FBNeo necessita di raccolte arcade compatibili e riceve intatti i propri archivi ZIP/7z. Il supporto agli archivi e i requisiti BIOS variano in base al core.

I binari dei core devono essere compilati per questa pipeline nativa e questo SDK. Un .so desktop o un core proveniente da una diversa distribuzione di RetroArch per PS5 non è automaticamente compatibile. Nessun gioco o file BIOS è incluso.

Grafica e runtime nativo


Core software → callback video → driver video Vulkan di RetroArch
                                  → libps5vk collegato staticamente → display PS5
XMB / RGUI ───────────────────────┘

PS5_Vulkan, anch’esso mantenuto da Mihawk, è il progetto separato del driver GPU utilizzato in questo caso. RetroArch esegue già il rendering attraverso di esso; completare la copertura Vulkan 1.0 del driver non è un prerequisito per i percorsi funzionanti dimostrati da questa applicazione.

La conformità del driver e la copertura delle funzionalità rimangono obiettivi propri di quel progetto.

Il driver è collegato direttamente al titolo. Aggiornare un checkout del driver o sostituire un libvulkan.so.1 esterno non aggiorna il codice collegato: è necessario ricompilare e ridistribuire il titolo RetroArch utilizzando gli artefatti del driver desiderato.

Questo repository fornisce l’integrazione frontend/piattaforma, i backend nativi per audio e input, il loader dei core, gli script di compilazione e la validazione su console.

Gli adattatori dei pixel lato core preservano i buffer del renderer adattandoli al formato di upload del frontend. Il backend video CPU rimane disponibile come fallback; le impostazioni predefinite attuali sono video_driver = "vulkan", menu_driver = "xmb".

Il supporto alla memoria eseguibile ha superato un test nativo di esecuzione del codice con transizione RW → RX. Si tratta di una base per il JIT, non dell’accettazione del dynarec di PPSSPP in questa build.

La build PPSSPP sviluppata in precedenza è un lavoro separato; la sua integrazione qui è ancora in sospeso. Il loader nativo presenta inoltre limiti espliciti, tra cui l’assenza di TLS e della registrazione generale per il riavvolgimento delle eccezioni. Consultare il contratto runtime.

Roadmap

✅ = verificato per l’ambito indicato. ❌ = implementazione o accettazione in sospeso in questo porting, anche se RetroArch upstream offre già la funzionalità.

Frontend e piattaforma

  • ✅ Avvio nativo e uscita pulita.
  • ✅ Presentazione GPU tramite PS5_Vulkan; fallback CPU selezionabile.
  • ✅ XMB, con RGUI mantenuto.
  • ✅ Input nativo, navigazione analogica dei menu e rimappatura.
  • ✅ Audio stereo nativo e diagnostica del buffering.
  • ✅ Navigazione del file system, persistenza della configurazione e caricamento dei contenuti.
  • ✅ Caricamento nativo dei core, metadati e recupero dai caricamenti falliti.
  • ❌ Persistenza di Save RAM e save state verificata tra riavvii e cambi di core.
  • ❌ Persistenza delle opzioni dei core e override per gioco/per core completamente validati.
  • ❌ Copertura BIOS/file di sistema, cambio disco e test di accettazione multi-disco.
  • ❌ RetroAchievements e netplay; la rete è disabilitata nella build frontend attuale.
  • ❌ Preset shader Slang dell’utente ed effetti multipass validati su PS5_Vulkan.
  • ❌ Output/upscaling 4K, VRR, 120 Hz e HDR validati in questa applicazione.
  • ❌ Funzionalità a bassa latenza, runahead e misurazioni sostenute delle prestazioni per core.
  • ❌ Test di compatibilità più ampi e qualificazione della release.

Core

Stato Core / milestone
✅ FCEUmm — NES
✅ mGBA — GB / GBC / GBA
✅ Snes9x — SNES
✅ FBNeo — giochi arcade testati
✅ Genesis Plus GX — gameplay Genesis testato
❌ Beetle PCE — PC Engine / TurboGrafx-16, SuperGrafx e CD; prossima aggiunta proposta
❌ Stella — Atari 2600; candidato
❌ PicoDrive — aggiunta della copertura Sega 32X; candidato
❌ MAME — espansione della copertura arcade oltre FBNeo
❌ Beetle PSX HW — PlayStation, con rendering Vulkan come obiettivo
❌ Nintendo 64 — valutazione di Mupen64Plus-Next / ParaLLEl-N64 con ParaLLEl-RDP
❌ PPSSPP — integrazione del precedente lavoro JIT per PS5, quindi validazione del rendering Vulkan
❌ Dolphin — futura milestone GameCube / Wii

Le voci future sono obiettivi di sviluppo e non un ordine di rilascio promesso. Il rendering hardware introduce nuovi requisiti Vulkan oltre alla semplice presentazione dei fotogrammi software.

Installazione e posizione dei file

La distribuzione verificata utilizza una cartella del titolo homebrew, non un pacchetto retail. Copiare l’intero albero dist/PPSA99169/ nella posizione del titolo utilizzata dal launcher homebrew configurato.

La configurazione di validazione attuale utilizza /data/homebrew/PPSA99169/. Questo progetto non installa né un jailbreak né un launcher.

/app0 è il punto di mount dell’applicazione in esecuzione. Tramite FTP, utilizzare invece la relativa cartella del titolo:

Scopo Sotto /data/homebrew/PPSA99169/ In RetroArch
Core nativi cores/ /app0/cores/
Metadati dei core info/, con copie di compatibilità in cores/ /app0/info/
Giochi content/ /app0/content/
Dati BIOS/sistema system/ /app0/system/
Configurazione attiva config/retroarch.cfg /app0/config/retroarch.cfg
Save RAM savefiles/ /app0/savefiles/
Save state savestates/ /app0/savestates/

Per FBNeo, utilizzare system/fbneo/ per i relativi file di sistema. I nomi dei BIOS Sega CD di Genesis Plus GX devono essere inseriti nella root system/ configurata, come indicato dai relativi metadati.

L’applicazione crea le proprie cartelle gestite scrivibili e inizializza le impostazioni attive solo quando non esiste alcuna configurazione attiva. Gli aggiornamenti tramite script ordinari preservano i contenuti dell’utente e le impostazioni salvate.

Le impostazioni esistenti possono quindi mantenere RGUI selezionato anche se XMB è il valore predefinito del pacchetto. Eseguire un backup dei file dell’utente prima di qualsiasi rimozione completa; --clean elimina l’intera cartella del titolo.

Consultare deployment per la configurazione FTP, la lettura verificata e le sessioni di test. I dettagli della console devono essere inseriti nel file .env ignorato, basato su .env.example.

Test e risoluzione dei problemi

Una build completata non dimostra né il corretto funzionamento del gameplay né un rendering corretto. L’accettazione di un core comprende caricamento nativo, gameplay, controlli dei colori, audio/input, Quick Menu → Close Content e caricamento di un altro gioco.

La conferma visiva del proprietario della console viene registrata insieme ai log; una fotocamera può non rilevare sfarfallii sincronizzati con il refresh.

L’attuale milestone di gameplay ha superato tutti e cinque i controlli host con 66 test Python; 23 acquisizioni registrate vengono riprodotte correttamente. I risultati esatti e le limitazioni sono disponibili in ACTIVE, anziché essere dedotti dall’elenco delle funzionalità upstream di un core.

Per le segnalazioni, includere il core, il formato del file di gioco, le impostazioni rilevanti, i passaggi per riprodurre il problema e indicare se l’applicazione è stata chiusa manualmente.

Conservare retroarch.log e trace.txt prima di una nuova apertura: il log del frontend viene sostituito al nuovo avvio. Gli strumenti di test conservano le acquisizioni del kernel nella directory ignorata klog/. Oscurare i percorsi privati, gli indirizzi della console e le credenziali prima di condividere i log.

I vecchi file gpu-buffers-*.bin, gpu-stages-*.bin e gpu-tables-*.bin sono diagnostiche temporanee del rendering provenienti da precedenti analisi. Non sono risorse runtime necessarie e possono essere rimossi. Conservare i normali log di sviluppo quando si segnalano bug.

Documentazione

Documento Scopo
Stato attivo Build verificata attuale, errori noti e limiti di accettazione
Reference Loader nativo, contratti dei core, sorgenti fissati e dettagli della piattaforma
Testing Controlli host e procedure di accettazione su console
Deployment Preparazione della build, posizioni FTP, aggiornamenti e workflow delle acquisizioni
Troubleshooting Sintomi registrati, cause e correzioni
Findings Osservazioni tecniche e prove alla base delle decisioni
Phase log Cronologia datata dello sviluppo e dei test su console
Evidence Acquisizioni leggibili dalle macchine e risultati attesi
Istruzioni per contributori/agenti Ambito, verifica, attribuzione e regole per i commit

Autori e ringraziamenti

Questo porting si basa su un importante lavoro upstream e sulla scena homebrew PS5. I crediti riportati di seguito identificano gli autori e i team dei progetti; i relativi repository conservano gli elenchi completi dei contributori e le note originali.

Frontend, piattaforma e grafica

Progetto / autore Contributo
Mihawk — PS5_RetroArch, PS5_Vulkan Questo porting nativo di RetroArch, l’integrazione dei core e l’implementazione separata di PS5 Vulkan
RetroArch / contributori libretro Frontend, API libretro, menu, pipeline video e librerie condivise
BlackBearReloaded — ProsperoLight Punto di partenza del progetto e riferimento per l’integrazione nativa di input e audio PS5
BlackBearReloaded — PS5 Native App Boilerplate Strumenti sottostanti per i titoli nativi, conversione ELF/FSELF e base runtime-shim
John Törnblom e contributori ps5-payload-dev SDK pubblico PS5 Payload, toolchain e stub API; infrastruttura per i port di PacBrew
John Törnblom / ps5-payload-dev — websrv Riferimento per gli script di recupero/compilazione/preparazione per core; questo porting utilizza una pipeline separata per il titolo nativo
BlackBearReloaded — ps5-opengl Fondamenti per il compilatore shader e la grafica utilizzati da PS5_Vulkan; non è il backend video RetroArch attivo
Contributori Mesa Runtime Vulkan, NIR/ACO e fondamenti delle utility utilizzati attraverso lo stack grafico
Khronos Group Header API Vulkan e specifiche
Contributori degli asset RetroArch e progetto M+ Fonts Asset XMB e font inclusi nel pacchetto; le note originali vengono mantenute
Contributori LLVM / Clang, autori di zlib Jean-loup Gailly e Mark Adler Strumenti di compilazione e compressione

Core degli emulatori

Core Autori / manutentori accreditati upstream
FCEUmm FCEU Team, CaH4e3 e contributori
mGBA endrift e contributori
Snes9x Snes9x Team e contributori
FinalBurn Neo Team FBNeo e contributori
Genesis Plus GX Charles MacDonald, Eke-Eke e contributori
libretro core-info Manutentori dei metadati e contributori

Changelog

Questa prima alpha pubblica include un menu funzionante, input nativo del controller, audio stereo e cinque core di emulatori testati.

Cosa funziona

  • Menu XMB, con RGUI anch’esso disponibile.
  • Output video Vulkan, con fallback CPU selezionabile.
  • Input del controller, navigazione analogica dei menu e rimappatura dei pulsanti.
  • Audio stereo nativo.
  • Navigazione dei contenuti e salvataggio della configurazione.
  • Caricamento nativo dei core e recupero dai caricamenti rifiutati.
  • Colori corretti e transizioni pulite tra menu e giochi nei titoli testati.

Core inclusi

Core Sistemi
FCEUmm NES / Famicom
mGBA Game Boy / Game Boy Color / Game Boy Advance
Snes9x SNES / Super Famicom
FinalBurn Neo Sistemi arcade supportati
Genesis Plus GX Genesis / Mega Drive, Master System, Game Gear, SG-1000 e Sega CD

Tutti i core inclusi eseguono i giochi in modalità software, mentre RetroArch presenta i relativi fotogrammi attraverso Vulkan.

La copertura varia: il gameplay Genesis è stato verificato; gli altri sistemi di Genesis Plus GX e il supporto ai dischi richiedono ancora ulteriori test.

Installazione

È necessaria una PS5 già configurata per eseguire homebrew, con accesso FTP e un launcher che supporti titoli basati su cartelle.

  1. Scaricare ed estrarre il file ZIP della release.
  2. Copiare l’intera cartella PPSA99169 in /data/homebrew/PPSA99169/.
  3. Verificare che l’eseguibile si trovi in /data/homebrew/PPSA99169/eboot.bin.
  4. Avviare RetroArch tramite il proprio launcher homebrew.

Evitare di inserire un’altra cartella PPSA99169 all’interno della prima. Mantenere insieme tutti i file e le sottocartelle inclusi nel pacchetto.

Dove inserire i propri file

Questi percorsi sono accessibili tramite FTP:

File Cartella
Giochi / ROM /data/homebrew/PPSA99169/content/
Core /data/homebrew/PPSA99169/cores/
BIOS / file di sistema /data/homebrew/PPSA99169/system/
File di sistema FBNeo /data/homebrew/PPSA99169/system/fbneo/
Configurazione attiva /data/homebrew/PPSA99169/config/retroarch.cfg
Save RAM /data/homebrew/PPSA99169/savefiles/
Save state /data/homebrew/PPSA99169/savestates/

All’interno di RetroArch, la cartella del titolo appare come /app0/****. I propri giochi saranno quindi disponibili in /app0/content/.

L’applicazione crea le proprie cartelle scrivibili all’avvio. Nessun gioco o file BIOS è incluso.

Avviare un gioco

  1. Selezionare Load Core e scegliere l’emulatore appropriato.
  2. Selezionare Load Content.
  3. Navigare fino a /app0/content/ e selezionare il proprio gioco.

Configurare una scorciatoia per il cambio del menu in Settings → Input → Hotkeys, in modo da poter tornare al menu durante il gioco.

Per i giochi arcade Sega System 16/32, utilizzare FBNeo, non Genesis Plus GX. I giochi arcade richiedono raccolte ROM compatibili.

Limitazioni della Alpha

  • La compatibilità è verificata con giochi selezionati, non con ogni sistema o titolo supportato.
  • La persistenza di Save RAM e save state richiede ancora una validazione più ampia.
  • I flussi di lavoro relativi a BIOS, CD e multi-disco non sono completamente verificati.
  • RetroAchievements e netplay non sono disponibili in questa build.
  • PPSSPP, N64, Beetle PSX HW e Dolphin non sono inclusi.
  • 4K, HDR, VRR, 120 Hz e le funzionalità avanzate degli shader non sono state validate.
  • I core provenienti da RetroArch desktop o da altre distribuzioni di RetroArch per PS5 non sono automaticamente compatibili.

Nota: Eseguire un backup della configurazione e dei salvataggi prima dell’aggiornamento.

Segnalazione dei problemi

Includere:

  • Il core e il formato del file di gioco.
  • I passaggi per riprodurre il problema.
  • Le impostazioni rilevanti.
  • Indicare se l’applicazione è stata chiusa manualmente.

Conservare retroarch.log e trace.txt dalla cartella dell’applicazione prima di riaprire RetroArch. Screenshot o video sono particolarmente utili per i problemi di rendering.

Download: PS5 RetroArch v0.1.0 Alpha 1

Download: Source code PS5 RetroArch v0.1.0 Alpha 1

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

🔥 Prodotti in promozione e articoli più venduti: PS5

Vedi altri prodotti PS5

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

Ultimo aggiornamento 2026-09-25 / Link di affiliazione / Immagini da Amazon Product Advertising API

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui
Captcha verification failed!
Punteggio utente captcha non riuscito. Ci contatti per favore!

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.