Il developer Mauricio Galdos ha rilasciato un rapido aggiornamento per Vitaki fork, il client Remote Play ottimizzato per PlayStation Vita che permette di giocare in streaming ai titoli PS5 sfruttando al massimo l’hardware portatile della console.

Nonostante l’abbandono ufficiale del supporto Remote Play da parte di Sony, Vitaki continua a garantire un’esperienza fluida, reattiva e stabile, con latenza ridotta e supporto completo alle funzionalità di gioco in rete locale.
L’aggiornamento si concentra principalmente sul mapping del pannello posteriore della PlayStation Vita, introducendo una ristrutturazione completa che ora permette di salvare immediatamente tutte le modifiche alle configurazioni dei tasti.
Ogni zona della griglia posteriore può essere configurata in maniera indipendente e rispettare le impostazioni di L2/R2 solo quando l’utente le assegna esplicitamente, evitando conflitti con i comandi combinati del pannello anteriore.
Il nuovo sistema sostituisce la vecchia logica hardcoded a quattro zone, aggiungendo una griglia 3×6 (18 zone) con controlli completi sui bordi e gestione dei casi limite, garantendo compatibilità con le configurazioni precedenti e preservando tutte le funzioni dei preset del pannello anteriore.
Corretti inoltre i problemi di persistenza delle impostazioni, ora salvate su sette percorsi differenti, e migliorato il rilevamento dei comandi analogici, rendendo il mapping più affidabile e personalizzabile.
I test raccomandati confermano che tutte le zone funzionano indipendentemente, le combinazioni L1/R1+rear sono operative e i preset esistenti vengono caricati correttamente senza regressioni.
L’aggiornamento apporta modifiche ai file ui_screens.c e host.c, con aggiunte significative di codice per la persistenza della configurazione e la logica di rilevamento della griglia, eliminando chiamate ridondanti e sostituendo la gestione rigida precedente.
Grazie a questo update, Vitaki ora offre un controllo completo e granulare del pannello posteriore della PlayStation Vita, rendendo il client Remote Play più stabile, versatile e pronto per l’uso quotidiano.
L’impatto è immediato: le mappe non si perdono più all’uscita, tutti i 18 tasti sono configurabili singolarmente e i trigger L2/R2 funzionano solo se assegnati, garantendo un’esperienza di gioco più precisa e personalizzabile, allineata alle funzionalità già presenti nel pannello anteriore.
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
Changelog v2.0.3
- Correzione: Revisione completa della mappatura dei controlli del pannello posteriore (#54) (
2398148)
Download: VitaRPS5 (Vitaki fork) v2.0.3
Download: Source code VitaRPS5 (Vitaki fork) v2.0.3


![[Scena PS Vita] Rilasciato Arx Fatalis v1.003 con nuove opzioni e correzioni per un’esperienza RPG ottimizzata](https://www.biteyourconsole.net/wp-content/uploads/Arx-238x178.webp)

![[Scena PS Vita] Rilasciato Arx Fatalis v1.003 con nuove opzioni e correzioni per un’esperienza RPG ottimizzata](https://www.biteyourconsole.net/wp-content/uploads/Arx-100x75.webp)
![[Scena PS3] Rilasciato Gamesonic Manager v3.95](https://www.biteyourconsole.net/wp-content/uploads/gamesonic.jpg)
![[Scena Switch] Rilasciata la beta 99l di Breeze, uno strumento per modificare i giochi su Nintendo Switch](https://www.biteyourconsole.net/wp-content/uploads/BreezeBetaSwitch-100x75.webp)
