La scena homebrew della PlayStation Vita chiude il 2025 con uno degli aggiornamenti più importanti degli ultimi anni grazie a VitaRPS5, noto anche come VitakiFork.

Il progetto, sviluppato da Mauricio Galdos, ha raggiunto la versione 2.0.2 e si conferma come il client Remote Play più avanzato e performante per giocare in streaming ai titoli PlayStation 5 direttamente sulla console portatile Sony.
Si tratta di un’evoluzione profonda, pensata per spremere al massimo l’hardware della PlayStation Vita e offrire un’esperienza fluida, reattiva e moderna, nonostante l’abbandono ufficiale del supporto Remote Play da parte di Sony.
VitaRPS5 è un’applicazione open-source basata su Chiaki, il celebre client Remote Play non ufficiale, ma ottimizzata in modo specifico per le caratteristiche e i limiti della console portatile.
L’obiettivo è trasformare la console in un vero terminale di streaming per PS5, ideale per il gioco in rete locale, con una latenza estremamente ridotta e una stabilità superiore rispetto alle vecchie soluzioni ufficiali.
Il salto di qualità è arrivato con la versione 2.0, seguita rapidamente dagli aggiornamenti correttivi 2.0.1 e 2.0.2.
Il cuore dell’update è una serie di ottimizzazioni radicali alla gestione della latenza: il polling degli input è stato ridotto a 2 millisecondi, i thread audio, video e input sfruttano affinità CPU dedicate, la coda di rete è stata alleggerita e il sistema adatta dinamicamente il bitrate in caso di perdita di pacchetti per mantenere la connessione stabile.
Tutto questo si traduce in controlli più reattivi e in uno streaming più fluido anche in situazioni di rete non perfette.
Anche l’interfaccia ha ricevuto un restyling completo, ispirato all’estetica PlayStation, con animazioni più fluide, gestione di più console tramite schede e preset personalizzabili per controller e modalità di latenza.

Dal punto di vista tecnico, sono stati introdotti un jitter buffer adattivo, la disattivazione dell’attesa VBlank per migliorare la fluidità dei frame, un blocco a 30 FPS attivo di default ma sbloccabile manualmente, oltre al supporto al wake-up remoto della PS5 e a una gestione più elegante dello spegnimento della console.
L’ultima versione 2.0.2 rifinisce ulteriormente il progetto riducendo i log superflui nelle build di produzione e migliorando la pulizia dei thread durante sleep e shutdown.
Novità di questo fork
Questo fork introduce i seguenti miglioramenti rispetto al vitaki-fork di ywnico:
- Ottimizzazioni di latenza e prestazioni
- Ottimizzazione delle priorità dei thread: input a priorità 96 (massima), audio/video a 64, con affinità CPU per evitare contese.
- Polling degli input più rapido: ridotto da 5 ms a 2 ms (campionamento a 500 Hz) per una risposta del controller 2,5 volte più veloce.
- Ottimizzazione della coda di rete: buffer di riordino Takion ridotto da 128 a 64 pacchetti per diminuire la latenza di buffering.
- Miglioramento stimato: riduzione totale della latenza di 20–40 ms, input lag ridotto da circa 20–30 ms a ~10 ms.
- Documentazione completa disponibile in
docs/LATENCY_QUICK_WINS.md.
- Personalizzazione del controller
- 3 slot di preset personalizzati: possibilità di creare e salvare mappature dei tasti (Custom 1, Custom 2, Custom 3).
- Schermata controller immersiva: diagramma PS Vita a schermo intero con grafica renderizzata proceduralmente.
- Navigazione vista frontale/posteriore: uso del D-pad o del touch per passare tra controlli frontali e touchpad posteriore.
- Mappatura visiva: visualizzazione interattiva di tutte le assegnazioni dei tasti.
- Integrazione nelle impostazioni: nuova scheda Controller nella pagina Settings con navigazione L/R.
- Ridisegno UI stile VitaRPS5
- Interfaccia moderna a schede per la selezione delle console.
- Schema colori professionale ispirato al tema PlayStation.
- Barra laterale di navigazione animata a onde con menu collassabile (Triangolo per aprire/chiudere).
- Schermata di inserimento PIN ridisegnata con visualizzazione delle singole cifre.
- Gestore centrale del focus per una navigazione fluida con il D-pad.
- Pagina impostazioni a schede (Streaming, Controller) con maggiore cura grafica.
- Flusso di riattivazione della console migliorato
- Schermata “Riattivazione console…” con animazione di avanzamento.
- Timeout di 30 secondi con conto alla rovescia visivo.
- Avvio automatico dello streaming al risveglio della console.
- Non è più necessario premere X due volte.
- Risolti problemi di input del controller
- Corretta una race condition che impediva l’input del controller durante lo streaming.
- Separazione corretta dell’accesso ai buffer tra UI e thread di input.
- I controller ora funzionano in modo affidabile durante il Remote Play.
- L’input rimane reattivo anche durante il recupero in caso di perdita di pacchetti.
- Gestione console migliorata
- Il nuovo accoppiamento elimina correttamente i dati di registrazione precedenti dalla memoria.
- Formattazione migliorata del nome della console e dell’indirizzo IP.
- Tasto Cerchio per annullare, in linea con le convenzioni PlayStation.
- Fallback e overlay in caso di perdita di pacchetti
- Quando anche la modalità Ultra Low perde frame, il client mette in pausa brevemente lo streaming, mostra un overlay di riconnessione e riparte a un bitrate ancora più basso invece di tornare al menu.
- I tentativi automatici mantengono la ricerca in pausa e riprendono senza interruzioni quando la connessione si stabilizza.
- L’input del controller continua a funzionare durante il recupero, evitando vuoti di controllo.
Caratteristiche
Funzionalità dal vitaki-fork di ywnico
Tutte le funzionalità del fork di ywnico sono incluse:
- Implementato il supporto audio.
- Implementati i controlli.
- Aggiunta la mappatura per L2, R2, L3, R3 e il touchpad (associato al pulsante trapezoidale), seguendo la configurazione ufficiale di PS4 Remote Play in
vs0:app/NPXS10013/keymap/. Nota: la combinazione Select + Start simula la pressione del tasto PS (home). - Aggiunto il supporto ai controlli di movimento (grazie a @Epicpkmn11, che ha contribuito anche con altre migliorie ai controller).
- Aggiunta la mappatura per L2, R2, L3, R3 e il touchpad (associato al pulsante trapezoidale), seguendo la configurazione ufficiale di PS4 Remote Play in
- Implementata la riproduzione remota tramite rete esterna, con possibilità di specificare manualmente gli indirizzi IP remoti.
- Corretto il problema che impediva il riattivamento della console.
- Resi visibili i log di debug e aggiunte tooltip ad alcuni pulsanti.
- Risolto il bug che causava disconnessioni istantanee.
- Disattivato
vblank_waite impostato il frame rate a 30 FPS per ridurre la latenza.- Nota: La configurazione FPS nel file
chiaki.tomlverrà ignorata.
- Nota: La configurazione FPS nel file
- Integrati gli aggiornamenti di chiaki4deck, migliorando alcuni problemi di connessione.
- Inclusa la correzione delle icone LiveArea di ghost.
- Risolti numerosi bug e crash.
Istruzioni
Connessione locale
- Collegare la PlayStation Vita e la PS5 (o PS4) alla stessa rete Wi-Fi locale.
- Accedere allo stesso account PSN sia su PS5 che su PlayStation Vita.
- Eseguire Vitaki su PlayStation Vita.
- Controllare le impostazioni (icona dell’ingranaggio) per verificare che l’ID PSN codificato sia presente. Se non viene compilato automaticamente o è stato eliminato, premere START per rilevarlo nuovamente.
- La console dovrebbe essere rilevata automaticamente e comparire come icona.
- Selezionare la console: Vitaki richiederà un codice di registrazione. Su PS5 andare in Impostazioni > Sistema > Riproduzione remota e selezionare Associa dispositivo. Verrà mostrato un codice numerico di 8 cifre: inseriscirlo in Vitaki e premere
per salvare. - Selezionare di nuovo la console in Vitaki. Ora la connessione dovrebbe avviarsi e in futuro non verrà più richiesto il codice di associazione.
Controlli durante lo streaming
- Tenere premuti
+
+
(Options) per circa un secondo per interrompere la sessione Remote Play e tornare al menu VitaRPS5, così da modificare impostazioni come la modalità di latenza senza riavviare l’app.
Personalizzazione del controller
VitaRPS5 offre 3 slot di preset personalizzabili per creare mappature dei tasti dedicate.
- Accesso alle impostazioni del controller
- Aprire il menu di navigazione (tasto
o tocco sul menu). - Selezionare l’icona Controller (gamepad).
- In alternativa, andare su Impostazioni → scheda Controller (utilizzare
/
per cambiare scheda).
- Aprire il menu di navigazione (tasto
- Selezione di un preset personalizzato
- Sono disponibili tre slot: Custom 1, Custom 2 e Custom 3.
- Utilizzare il D-pad
/
o il touch per passare da un preset all’altro. - Ogni preset ha mappature dei tasti indipendenti.
- Visualizzazione delle mappature
- Il diagramma del controller mostra tutte le assegnazioni correnti.
- Vista frontale: D-pad, pulsanti frontali (
,
,
,
), analogici,
,
,
/
/
. - Vista posteriore: Zone del touchpad posteriore (4 quadranti: alto-sinistra, alto-destra, basso-sinistra, basso-destra).
- Premere D-pad
/
o utilizzare il touch per passare tra vista frontale e posteriore.
- Personalizzazione avanzata (funzionalità futura)
- Attualmente è possibile solo visualizzare e selezionare i preset.
- La personalizzazione per singolo pulsante è prevista in un aggiornamento futuro.
- Consultare
docs/INCOMPLETE_FEATURES.mdper la roadmap.
Suggerimento: Ogni slot personalizzato viene salvato automaticamente. Passare da uno all’altro per adattarli a diversi generi di gioco (FPS, corse, picchiaduro, ecc..).
Connessione remota
L’UDP hole punching non è supportato: è necessario un IP statico e il port forwarding.
- Registrare la console in rete locale seguendo le istruzioni precedenti.
- Configurare IP statico e port forwarding seguendo la sezione “connessione remota manuale”.
- Selezionare il pulsante “aggiungi host remoto” (il più a sinistra nella barra strumenti) in Vitaki e inserire l’indirizzo IP remoto e la console registrata.
Se ci si trova sulla rete locale, la console verrà rilevata automaticamente e non verrà mostrato un riquadro separato per la connessione remota. Per testare in locale, disattivare il rilevamento (icona Wi-Fi nella toolbar).
Vitaki non può rilevare lo stato degli host remoti: quando ne viene selezionato uno, inviare il segnale di riattivazione e tentare subito l’avvio del Remote Play. Se la console era in standby, il primo tentativo fallirà: riprovare dopo 10–15 secondi.
Nota: Se l’host remoto non è raggiungibile, resterà su “Tentativo di richiesta sessione” per 90 secondi prima del timeout. Se era raggiungibile ma in standby, il tentativo fallirà dopo pochi secondi.
Impostazioni di configurazione
Alcune opzioni non hanno interfaccia grafica e vanno modificate nel file ux0:data/vita-chiaki/chiaki.toml.
circle_btn_confirm = truescambia
e
nell’interfaccia principale (
= conferma,
= annulla). Non influisce sui controlli durante il Remote Play.auto_discovery = falseimpedisce l’avvio automatico della ricerca all’apertura dell’app; può essere avviata manualmente tramite l’icona Wi-Fi.latency_modedefinisce il bitrate target per lo streaming PS5: ultra_low (~1,2 Mbps), low (~1,8 Mbps), balanced (~2,6 Mbps), high (~3,2 Mbps), max (~3,8 Mbps). È possibile cambiare modalità dal menu Impostazioni.stretch_video = falsemantiene l’immagine centrata con bande nere; impostalo a true o attiva “Riempi schermo” per estendere l’immagine.force_30fps = falsedisattiva il blocco a 30 FPS. Attivandolo, la Vita scarta frame per simulare un’esperienza a 30 FPS più stabile.send_actual_start_bitrate = trueinvia il bitrate richiesto all’avvio dello streaming; utile per test e telemetria.- Nota PS5: Il firmware attuale ignora il bitrate richiesto e forza circa 1,5 Mbps. Mantieni l’opzione attiva per compatibilità futura.
clamp_soft_restart_bitrate = trueforza i riavvii soft a ≤1,5 Mbps per evitare picchi di rete durante la riconnessione.
Problemi noti e risoluzione
- Latenza: Nelle connessioni remote (non su WLAN locale) il problema è particolarmente evidente. (Issue GitHub correlata)
- Vitaki può andare in crash con l’errore
C2-12828-1se sono installati plugin incompatibili come reRescaler. Grazie a@GuillermoAVecesper aver individuato il problema. (Issue correlata) - Di norma funziona un solo stream per avvio: se lo schermo diventa grigio e non risponde, riavviare Vitaki. (Issue correlata)
- In passato si verificavano crash quando erano presenti più console sulla rete, ma il problema sembra essere stato risolto. (Issue correlata)
Se si verificano problemi:
- Provare prima a riavviare Vitaki.
- Se il problema persiste, provare a eliminare o rinominare il file di configurazione (
ux0:data/vita-chiaki/chiaki.toml). - Se ancora non funziona, creare una nuova segnalazione su GitHub o commentare su un issue esistente.
Analisi dei crash dump
Se la PlayStation Vita genera un crash C2-12828-1, è possibile recuperare il file .psp2dmp da ux0:data/ e decodificarlo localmente:
- Inizializzare il submodulo parser una sola volta:
git submodule update --init scripts/vita/parse_core - Accedere al container di sviluppo (pyelftools è già preinstallato):
./tools/build.sh shell - All’interno della shell, eseguire il parser sul dump e sull’ELF di debug:
python3 scripts/vita/parse_core/main.py \
/build/git/path/to/psp2core-xxxxxxxxx.psp2dmp \
/build/git/build/vita/VitaRPS5.elf
Lo script stampa lo stato dei thread, i registri e un backtrace file/linea, permettendoti di individuare il problema senza ulteriori configurazioni.
Changelog v2.0.0
Miglioramenti di Prestazioni e Latenza
Ottimizzazioni principali del Chiaki Core
Regolazione priorità thread & affinità CPU
- Priorità del thread input aumentata a 96 e assegnata a CPU 1 per evitare conflitti con l’elaborazione multimediale (
vita/src/host.c:1194-1195). - Priorità thread audio a 64, assegnato a CPU 0 per mixaggio stabile senza interruzioni (
vita/src/audio.c:144-145). - Thread decoder video a 64, assegnato a CPU 0 per accelerazione hardware ottimale (
vita/src/video.c:691-692). - Risultato: il processamento degli input ha priorità su tutte le altre operazioni, riducendo la latenza controller-rete.
Ottimizzazione polling input
- Intervallo di polling ridotto da 5ms a 2ms (campionamento 500Hz,
vita/src/host.c:1203). - Allineamento sleep adattivo per ridurre sprechi CPU mantenendo campionamento preciso.
- Rilevamento e trasmissione degli stati del controller 2,5× più veloce.
Ottimizzazione coda di ricezione rete
- Coda di riordino Takion ridotta da 128 a 64 pacchetti su build Vita (
lib/src/takion.c:47). - Log overflow con rate limiting per monitorare perdita pacchetti senza spam.
- Rilevamento automatico dei drop e recupero in condizioni di rete degradate.
- Risultato: minore latenza end-to-end, soprattutto su connessioni stabili.
Sistema fallback perdita pacchetti
- Riduzione automatica bitrate se rilevati frame drop (Ultra Low → modalità emergenza 800 Kbps).
- Overlay “Reconnecting…” con ripresa seamless invece di crash al menu.
- Mantiene input controller durante il recupero (
vita/src/host.c:1248-1252). - Fino a 2 tentativi automatici prima di tornare al menu.
Ottimizzazioni pipeline video
- VBlank wait disabilitato durante lo streaming (
vita/src/video.c:872). - Frame presentation uncapped per latenza minima.
- Blocco a 30 FPS di default per ridurre banda e carico di decodifica (configurabile a 60 FPS).
Impatto misurato
- Riduzione latenza stimata: 20-40ms
- Input lag: ~10ms (da 20-30ms)
- Gestione rete ottimizzata per connessioni locali e remote
Riprogettazione moderna dell’interfaccia utente
Interfaccia in stile VitaRPS5
- Selezione console pulita a schede con indicatori visivi PS5/PS4.
- Schema colori professionale a tema PlayStation (blu, bianco, grigi sofisticati).
- Barra di navigazione laterale animata a onda con menu collassabile.
- Schermata di inserimento PIN con cifre individuali per l’abbinamento della console.
Gestione della console migliorata
- Rilevamento automatico delle console sulla rete locale.
- Configurazione manuale di host remoto con supporto IP statico.
- Flusso di riattivazione della console con animazione di progresso e timeout di 30 secondi.
- Avvio dello streaming con un solo tocco alla riattivazione della console (nessun doppio clic necessario).
Impostazioni e configurazione
- Pagina delle impostazioni a schede (Streaming, Controller) con navigazione
/
. - 3 slot preset controller completamente personalizzabili (Custom 1, Custom 2, Custom 3).
- Schermata immersiva di mappatura controller full-screen con diagrammi procedurali Vita.
- Selezione modalità latenza: Ultra Low, Low, Balanced, High, Max (target 1,2-3,8 Mbps).
- Opzioni Toggle Fill Screen e Force 30 FPS.
Correzioni di bug e stabilità
Correzioni di input del controller
- Risolta race condition che impediva l’input del controller durante lo streaming.
- Separazione corretta dell’accesso ai buffer tra UI e thread input.
- La navigazione con D-pad non viene più elaborata due volte quando la barra di navigazione è attiva.
- Il focus manager previene perdite di input tra le diverse zone della UI.
Affidabilità della connessione
- Risolto il bug di disconnessione istantanea proveniente dall’upstream.
- Il re-pairing della console ora elimina correttamente i vecchi dati di registrazione.
- Rilevamento crash/in-uso di Remote Play con suggerimenti chiari per l’utente.
- Migliorata la gestione degli errori per i timeout di rete.
Interfaccia utente polacca
- Corretto l’overlap dei contenuti con la navigation pill
- Layout della pagina profilo corretto (Y=60 → Y=80)
- L’icona del triangolo nella menu pill conforme alle convenzioni PlayStation
- Icone di navigazione da 48px con etichette testuali opzionali
Dettagli tecnici
Breakdown latenza stimata
- Latenza totale: ~100-140ms in remoto (da 150-200ms), ~50-70ms locale (da 80-100ms).
- Input lag: <10ms (da 20-30ms).
- Decodifica video a visualizzazione: ~30ms.
- RTT di rete: variabile (dipende dalla connessione).
Vincoli piattaforma
- PS Vita: display 960×544, quad-core ARM Cortex-A9, 512MB RAM
- Decoder hardware H.264 (SceVideodec) per il video
- Rendering completo tramite vita2d
- Doppia CPU: CPU 0 per media, CPU 1 per il campionamento degli input
Miglioramenti Protocollo Chiaki
- Meccanismo di riavvio rapido per il recupero da perdita pacchetti
- Preservazione dello stato del controller memorizzato nella cache tra i reconnect
- API per il riavvio della sessione per negoziazione del bitrate senza disconnessione completa
- Correzione errori FEC dalla libreria base di Chiaki
Changelog v2.0.1
- Cambiamenti principali
- feat: Gestione elegante del sonno/standby PS5 con pulizia dei thread (#50) (
75c5763). - docs: Aggiunti risultati sperimentali IP_DONTFRAG alle ottimizzazioni abbandonate (#49) (
b4f9f78). - docs: Documentata l’indagine sull’ottimizzazione dual callback abbandonata (#48) (
0eb1baf). - feat: Aggiunto jitter buffer adattivo per eliminare il blocco head-of-line (#46) (
dfba574). - Sostituiti i percorsi locali degli screenshot con nuovi screenshot (#45) (
fb5a362). - docs: Aggiornamento README e TODO con le ultime migliorie (#44) (
49fa235).
- feat: Gestione elegante del sonno/standby PS5 con pulizia dei thread (#50) (
Changelog v2.0.2
- Cambiamenti principali
Download: VitaRPS5 (Vitaki fork) v2.0.2
Download: Source code VitaRPS5 (Vitaki fork) v2.0.2


![[Scena PS2] Rilasciato OSDMenu v1.1.0 con configuratore grafico e supporto 1080i](https://www.biteyourconsole.net/wp-content/uploads/OSDMenu-238x178.webp)


![[Scena PS2] Rilasciato OSDMenu v1.1.0 con configuratore grafico e supporto 1080i](https://www.biteyourconsole.net/wp-content/uploads/OSDMenu-100x75.webp)

![[Scena PS4] SpecterDev cerca più stabilità per l’exploit della PlayStation 4](https://www.biteyourconsole.net/wp-content/uploads/SpecterDev.jpg)
