Pubblicato un nuovo aggiornamento per Save Sync, il progetto open-source dedicato alla sincronizzazione dei salvataggi della PlayStation Vita, PSP/Adrenaline, PPSSPP e RetroArch attraverso un server self-hosted.

La nuova versione 0.1.10 arriva con un aggiornamento mirato soprattutto agli utenti Linux e risolve alcuni problemi che impedivano di utilizzare correttamente l’AppImage.
Il problema principale riguardava i permessi dei file all’interno dell’AppImage. Nella versione precedente, alcune directory venivano inserite nel pacchetto con permessi 0700, mentre AppRun.wrapped utilizzava permessi 0770.
Questa configurazione poteva impedire l’avvio dell’applicazione ad altri utenti del sistema e causare anche errori di tipo “Permission denied” in ambienti sandbox come Firejail.
Con Save Sync v0.1.10 i permessi vengono quindi normalizzati a 755 per le directory e 644 per i file, permettendo all’AppImage di rispettare i requisiti dei cataloghi AppImage e migliorando la compatibilità con i diversi ambienti Linux.
L’aggiornamento completa inoltre la correzione introdotta con la versione 0.1.9 per il file .DirIcon. Il collegamento simbolico ora viene configurato correttamente come collegamento relativo all’icona inclusa nell’AppImage, evitando che possa puntare a un percorso assoluto appartenente all’ambiente utilizzato durante la compilazione.
Per rendere definitiva la correzione, è stato modificato anche il processo di compilazione: la fase di repack dell’AppImage ora normalizza automaticamente i permessi dei file prima della creazione del pacchetto finale. In questo modo il problema non dovrebbe ripresentarsi nelle future build distribuite attraverso il progetto.
App PS Vita
- Esegue il backup dei salvataggi nativi PS Vita, dei salvataggi PSP/Adrenaline e dei salvataggi RetroArch.
- Carica i salvataggi sul server come file zip, permettendo di scaricarli e ripristinarli su un’altra Vita.
- Mostra lo stato della sincronizzazione per ogni gioco nella scheda Cloud, con la possibilità di utilizzare Sync All con un solo tocco.
Nota sui salvataggi nativi Vita: I salvataggi PSP e RetroArch vengono trasferiti in modo affidabile tra i dispositivi. I salvataggi nativi PS Vita sono crittografati utilizzando una combinazione dell’account PSN e delle chiavi hardware, quindi i risultati possono variare. L’utilizzo dello stesso account PSN su entrambe le Vita funziona per molti titoli, ma non è garantito per tutti. Se un salvataggio non viene caricato dopo il ripristino, utilizzare uno strumento come Apollo Save Tool per applicare nuovamente la firma.
Save Sync Hub (Desktop / Android)
- Sincronizza i salvataggi PPSSPP e RetroArch da macOS, Windows, Linux e Android.
- Rileva automaticamente le posizioni predefinite dei salvataggi per ogni piattaforma.
- Permette di caricare sul server, scaricare in locale o ripristinare direttamente dal cloud.
- Si connette allo stesso server e alla stessa API utilizzati dall’app Vita.
Client a colpo d’occhio
| Client | Funziona su | Emulatori / salvataggi |
|---|---|---|
| Save Sync (app Vita) | PS Vita, PSTV | Vita nativa · PSP (Adrenaline) · RetroArch |
| Save Sync Hub | macOS · Windows · Linux · Android | PPSSPP · RetroArch · Percorso personalizzato |
L’app Vita richiede HENkaku + iTLS-Enso. Save Sync Hub è un’applicazione desktop/Android standard (non è necessario alcun jailbreak sull’altro dispositivo).
Configurazione del server
Il server è una piccola applicazione Node.js. Memorizza i file dei salvataggi sul disco ed espone un’API REST. È necessario mantenerlo in esecuzione durante la sincronizzazione, ma non deve essere attivo 24 ore su 24, 7 giorni su 7.
Syncthing / salvataggi non compressi: Impostare RAW_SAVES_DIR per avere ogni salvataggio come file normale sul disco — è possibile indicare questa cartella a Syncthing e le modifiche sincronizzate verranno utilizzate nel download successivo. Per maggiori dettagli consultare server/README.md.
Scegliere l’opzione più adatta alle proprie esigenze.
Opzione A | Docker
Se Docker è installato (Docker Desktop per macOS/Windows oppure apt install docker.io su Linux), creare due file ed eseguire un comando:
# docker-compose.yml
services:
vita-save-sync:
image: ghcr.io/unveroleone/vita-save-sync-server:latest
container_name: vita-save-sync
restart: unless-stopped
ports:
- "3099:3000"
environment:
- USER_TOKEN=${USER_TOKEN:?set a strong token}
- DATA_DIR=/data
volumes:
- vita-save-data:/data
volumes:
vita-save-data:
driver: local
# .env
USER_TOKEN=change-me-to-a-long-random-string
docker compose up -d
Per aggiornare in seguito: docker compose pull && docker compose up -d
Nota: docker compose restart riutilizza l’ambiente memorizzato nella cache. Se si modifica .env, eseguire invece docker compose up -d.
Posizionare il server dietro Nginx Proxy Manager o Cloudflare Tunnel per utilizzare HTTPS. La Vita richiede HTTPS con un certificato valido; iTLS-Enso fornisce i certificati radice TLS moderni.
Opzione B | Node.js direttamente (il modo più rapido per iniziare)
È necessario Node.js 20 o versione successiva. Funziona su macOS, Windows e Linux.
git clone https://github.com/unveroleone/vita-save-sync.git
cd vita-save-sync/server
npm install
npm run build
USER_TOKEN=your-secret-token DATA_DIR=./data node dist/index.js
Il server è in ascolto sulla porta 3000. Aggiungere PORT=3099 al comando se è necessaria una porta differente.
Opzione C | Raspberry Pi (server domestico sempre attivo)
Partire da una nuova installazione di Raspberry Pi OS (Bookworm o versione successiva). Per una maggiore affidabilità è consigliata la connessione Ethernet, ma è possibile utilizzare anche il Wi-Fi.
Installare Node.js (LTS):
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs git
Clonare e avviare:
git clone https://github.com/unveroleone/vita-save-sync.git
cd vita-save-sync/server
npm install
npm run build
USER_TOKEN=your-secret-token DATA_DIR=./data node dist/index.js
Avvio automatico all’accensione con systemd:
Sostituire pi con il proprio nome utente se differente (eseguire whoami per verificarlo).
sudo tee /etc/systemd/system/vita-save-sync.service << 'EOF'
[Unit]
Description=Save Sync server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/vita-save-sync/server
Environment=USER_TOKEN=your-secret-token
Environment=DATA_DIR=/home/pi/vita-save-sync/server/data
Environment=PORT=3000
ExecStart=/usr/bin/node dist/index.js
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now vita-save-sync
Controllare lo stato: sudo systemctl status vita-save-sync
Opzione D | Servizio in background sul laptop (macOS / Linux / Windows)
macOS: Creare un plist launchd in modo che il server venga avviato automaticamente al login.
Per prima cosa individuare il percorso di Node.js: which node (comunemente /usr/local/bin/node su Intel, /opt/homebrew/bin/node su Apple Silicon).
Salvare il file come ~/Library/LaunchAgents/com.vita-save-sync.plist, sostituendo i percorsi e il token:
Label
com.vita-save-sync
ProgramArguments
/usr/local/bin/node
/Users/you/vita-save-sync/server/dist/index.js
EnvironmentVariables
USER_TOKEN
your-secret-token
DATA_DIR
/Users/you/vita-save-sync/server/data
PORT
3000
WorkingDirectory
/Users/you/vita-save-sync/server
RunAtLoad
KeepAlive
Caricarlo: launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.vita-save-sync.plist
- Linux: Utilizzare l’unità systemd dell’Opzione C. Stesso file, stessi comandi.
- Windows: Eseguire un terminale al login e lasciarlo aperto, oppure utilizzare l’Utilità di pianificazione per avviare
node dist/index.jsall’avvio conUSER_TOKENeDATA_DIRimpostati come variabili d’ambiente.
HTTPS
La Vita richiede HTTPS con un certificato valido. L’opzione più semplice è Cloudflare Quick Tunnel (non sono necessari account o dominio). Installare ed eseguire:
| Piattaforma | Comando di installazione |
|---|---|
| macOS | brew install cloudflared |
| Linux | curl -L https://pkg.cloudflare.com/install.sh | sudo bash && sudo apt install cloudflared |
| Windows | winget install -e --id Cloudflare.cloudflared |
Con il server in esecuzione: cloudflared tunnel --url http://localhost:3000
Verrà mostrato un indirizzo *.trycloudflare.com. Utilizzarlo come URL del server sulla PlayStation Vita. Il tunnel si chiude quando viene chiuso il terminale, soluzione comunque adatta alle sessioni di sincronizzazione occasionali.
Per una configurazione permanente con il proprio dominio, è disponibile gratuitamente anche Cloudflare Tunnel con un tunnel denominato.
Prima configurazione su Vita
Installare il file VPK tramite VitaDB Downloader (cercare “Save Sync”) oppure scaricarlo dalle GitHub Releases e installarlo manualmente tramite VitaShell.
- Installare il VPK.
- Aprire Save Sync.
- Premere
per passare alla scheda Cloud. - Premere
per aprire le Impostazioni. - Inserire Server URL, API Token e Device Name.
- Selezionare Test Connection (controlla sia la raggiungibilità sia il token).
- Premere
per tornare indietro oppure selezionare Save && Back.
Save Sync Hub (Desktop / Android)
Save Sync Hub è l’app complementare per PC e Android. Sincronizza i salvataggi PPSSPP e RetroArch utilizzando lo stesso server e lo stesso token API dell’app Vita.
Scaricare l’ultima versione dalle GitHub Releases per la propria piattaforma (.dmg per macOS, .exe per Windows, .AppImage per Linux, .apk per Android).
Prima configurazione
- Aprire Save Sync Hub.
- Nella barra laterale, inserire Server URL, API Token e Device Name (gli stessi valori utilizzati sulla Vita).
- Fare clic su Save Config.
- Selezionare la propria piattaforma (PSP / RetroArch / Custom path).
- L’app inserisce automaticamente la cartella predefinita dei salvataggi per il sistema operativo oppure permette di scegliere un percorso personalizzato.
- Fare clic su Scan Saves per visualizzare le directory dei salvataggi.
Percorsi predefiniti dei salvataggi
| Piattaforma | PPSSPP | RetroArch |
|---|---|---|
| macOS | ~/Documents/PPSSPP/PSP/SAVEDATA |
~/Library/Application Support/RetroArch |
| Windows | %USERPROFILE%\Documents\PPSSPP\PSP\SAVEDATA |
%APPDATA%\RetroArch |
| Linux | ~/.config/ppsspp/PSP/SAVEDATA |
~/.config/retroarch |
| Android | /storage/emulated/0/PSP/SAVEDATA |
/storage/emulated/0/RetroArch |
Questi sono i percorsi predefiniti più comuni. PPSSPP varia in base al metodo di installazione: se i salvataggi non vengono trovati, utilizzare Browse per indicare la cartella corretta. Per RetroArch, l’app cerca le sottodirectory saves/ e states/ all’interno del percorso indicato sopra.
Flusso di lavoro
- Upload: Comprime la cartella dei salvataggi e la invia al server
- Download: Recupera l’ultimo backup dal server e lo salva in un file zip locale
- Restore: Scarica il salvataggio dal server ed estrae direttamente i file nella cartella dei salvataggi
Gli ID dei salvataggi sul server utilizzano il nome della cartella come ID del titolo, preceduto da PSP_ o RA_ per evitare conflitti con i salvataggi nativi Vita.
Flusso di lavoro (PS Vita)
Scheda Cloud (il metodo principale per la sincronizzazione)
Premere
per passare alla scheda Cloud. Ogni gioco mostra un indicatore dello stato della sincronizzazione:
| Indicatore | Significato |
|---|---|
| Synced | Sincronizzato con il server |
| Not Uploaded | Mai caricato sul server |
| Upload | La versione locale è più recente |
| Download | Sul server è presente una versione più recente |
| Cloud Only | Presente sul server, ma non su questa Vita |
| Conflict | Entrambe le versioni sono state modificate |
su un gioco esegue l’upload (se contrassegnato come Upload) oppure scarica e ripristina direttamente il salvataggio (se contrassegnato come Download o Cloud Only). Un solo passaggio.
esegue Sync All. Carica tutto ciò che è contrassegnato come Upload e scarica tutto ciò che è contrassegnato come Download. I conflitti vengono segnalati ma non modificati.
apre le Impostazioni.
Scheda Games (solo salvataggi locali)
Premere
per visualizzare i salvataggi locali. Selezionare un gioco e premere
per aprire il pannello dei salvataggi:
- La scheda Local Backup (premere
nel pannello) gestisce gli slot dei salvataggi direttamente sulla Vita, indipendentemente dal server. Può essere utilizzata per conservare snapshot manuali o ripristinare uno slot locale precedente. - La scheda Server Backup (premere
nel pannello) offre le opzioni manuali Upload, Download e Download & Restore.
Per l’utilizzo quotidiano, la scheda Cloud è più rapida. Il pannello è pensato per le operazioni manuali.
API del server
| Metodo | Percorso | Autenticazione | Descrizione |
|---|---|---|---|
GET |
/api/status |
No | Controllo dello stato, versione del server |
GET |
/api/manifest |
Bearer | Manifest Cloud per tutti i giochi |
PUT |
/api/save/:titleId |
Bearer | Upload del salvataggio zip |
GET |
/api/save/:titleId |
Bearer | Download del salvataggio zip |
L’upload invia gli header X-Save-Hash (SHA-256), X-Save-Timestamp e X-Device-Id. Il server verifica l’hash prima di scrivere il file.
Changelog
Corretto l’AppImage Linux in modo che superi i controlli del catalogo AppImage.
Correzioni di bug
- AppImage Linux: Le directory venivano inserite nel pacchetto con permessi 0700 e AppRun.wrapped con 0770, quindi altri utenti (e sandbox come firejail) ricevevano “Permission denied” su AppRun. I permessi sono ora normalizzati a 755/644.
- AppImage Linux:
.DirIconè ora un collegamento simbolico relativo all’icona inclusa nel pacchetto (corretto nella v0.1.9)
CI
- Il passaggio di repack dell’AppImage ora normalizza i permessi dei file prima del packaging.
Download Save Sync
Windows
Linux
- Save Sync Hub v0.1.10 — AppImage x64
- Save Sync Hub v0.1.10 — Debian/Ubuntu (.deb)
- Save Sync Hub v0.1.10 — Fedora/RHEL (.rpm)
macOS
Android
PlayStation Vita
Codice sorgente
Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale. Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.🔥 Prodotti in promozione e articoli più venduti: Xbox Series
Vedi altri prodotti Xbox Series
Ultimo aggiornamento 2026-10-14 / Link di affiliazione / Immagini da Amazon Product Advertising API





