Back up your PS Vita and PSP save games and conveniently sync them to your own Google Drive. Keep your saves safe in the cloud, go back to an older backup any time, and if you play on more than one Vita (or a PS TV), your saves follow you.
- creates timestamped ZIP backups of Vita, PSP/Adrenaline, and homebrew saves
- signs in to Google by scanning a QR code with your phone - no typing on the Vita. Set it up once and it just works
- uploads backups to a
PSV Savesfolder in your own Google Drive - downloads and restores backups on any of your devices, so a save made on one Vita can be picked up on another Vita or a PS TV (you can also download a copy without restoring)
- backs up and uploads a whole tab in one gesture - all games or a remembered selection
- shows one row per backup, with a small cloud glyph marking where it lives - locally, on Google Drive, or both
- lets you label a backup ("before boss", "100% save") with the on-screen keyboard, so you can tell backups apart. The label follows the backup to Drive
- shows your games in a grid with real titles and icons, grouped into Vita / Homebrew / PSP tabs
- backs up homebrew saves in
ux0:data- pick an app's savedata paths (folders or single files) yourself, and Save Keeper ships a built-in config handling popular homebrews (currently only RetroArch, more can be added) - sorts by name, by latest backup (whatever was backed up most recently, from any device, bubbles to the top), or by last saved
- keeps multiple backups per game, so you can go back to an older save at any time
- names new backups from the latest real Vita save-slot time when the game provides it, instead of the time Save Keeper happened to run
- shows detailed info about a save and its backups on a dedicated details screen
- before a restore overwrites anything, the current save is backed up automatically (shown as
[AUTO]), unless an identical backup already exists - so you never lose your current save to an accidental overwrite
| Google sign-in | Upload with progress |
|---|---|
![]() |
![]() |
| Pick what a whole-tab backup takes | Save details |
![]() |
![]() |
| A whole tab, backing up | Savedata paths for homebrew |
![]() |
![]() |
![]() ai-slopified livearea banner do not install if you are sensitive to it! |
- a PS Vita or PS TV with HENkaku / h-encore homebrew enabled
- "Enable unsafe homebrew" turned on in HENkaku settings (the app reads save folders and the system app database)
- VitaShell (or another way to install a VPK)
- a Google account and about ten minutes for the one-time Google setup
- copy
save-keeper.vpkto your Vita (for example over FTP toux0:/data/) - in VitaShell, press X on the file and confirm the install, including the extended permissions prompt
- do the one-time Google setup, then launch Save Keeper from the LiveArea
Follow the Google Drive setup guide.
| Button | Action |
|---|---|
| D-Pad / Left stick | move through the game grid |
| L / R | switch between the Vita / Homebrew / PSP tabs |
| Right stick | move through the backup list |
| Cross | create a backup (on "New Backup") or restore the selected one (press twice) |
| Select | - upload a local-only backup, or download a Drive-only one - hold to back up & upload the tab |
| Start | delete the selected backup - for one that is on both sides, choose local, Drive, or both |
| Square | - change sorting (by name, latest backup, or last saved) - hold to label the selected backup |
| Triangle | - view the focused save's slot details and sizes - hold to connect Google Drive or re-sync its backup list |
| Circle | cancel a pending confirmation or the Google sign-in |
On Japanese-region consoles Cross and Circle swap automatically, following the system setting.
Every device uses the same google-client.json: do the Google setup once, then just copy the
file to each of your devices and sign in to the same Google account.
All backups land in the same PSV Saves/<game id> <game title>/ folders in your Drive, so a backup
uploaded from one Vita shows up on the others (marked with a Drive cloud) after a re-sync.
Restoring one downloads it first, then unpacks it over the save folder. You can also just
download a local copy without restoring. Labeling or renaming a backup updates its copy
on Drive too, so the two stay matched.
Deleting the last Drive backup of a game also removes its (empty) folder from Drive.
Backup settings (savedata path choices and skip lists) sync through Drive too.
Restoring never destroys the save you had: if the current save is not already covered by one of
the local backups (compared by content, not by dates), an [AUTO] backup is created first.
Slot details are stored in a small optional JSON companion next to each ZIP, locally and on Drive. The ZIP is always authoritative: a missing or damaged JSON file never hides a backup and never prevents upload, download, restore, labeling, or deletion.
Saves of retail games are encrypted by the system, so Save Keeper uses a small kernel helper to read the exact save dates out of them. When that helper is unavailable it falls back to the file times of the save - nothing breaks, the dates are just approximate rather than exact.
| Path | Contents |
|---|---|
ux0:data/save-keeper/backups/ |
local ZIP backups and optional JSON details, one folder per game |
ux0:data/save-keeper/google-client.json |
your OAuth client credentials |
ux0:data/save-keeper/google-token.json |
your sign-in - treat it like a password |
ux0:data/save-keeper/settings.txt |
app settings |
ux0:data/save-keeper/backup-settings.json |
your savedata path choices (overriding the built-in list) and which games a whole-tab backup leaves out - synced through Drive |
PSV Saves/ in your Google Drive |
uploaded backups, one folder per game |
To disconnect a device, delete google-token.json and revoke the grant at
https://myaccount.google.com/permissions.
Host tests:
cmake -S . -B build/host
cmake --build build/host
ctest --test-dir build/host --output-on-failureVita VPK (needs VitaSDK):
export VITASDK=/path/to/vitasdk
cmake -S . -B build/vita -DCMAKE_TOOLCHAIN_FILE="$VITASDK/share/vita.toolchain.cmake"
cmake --build build/vitaThe VPK is written to build/vita/save-keeper.vpk. You can bake your Google credentials into
the build with -DSAVE_KEEPER_GOOGLE_CLIENT_ID=... and -DSAVE_KEEPER_GOOGLE_CLIENT_SECRET=...
instead of using google-client.json.
Project layout: src/core is portable logic covered by the host tests, src/vita is the app
loop and vita2d UI, sce_sys holds the package assets. LiveArea PNGs must stay 8-bit indexed
or VitaShell fails promotion with error 0x8010113D.
- JKSV for the backup model inspiration
third_party/qrcodegen: QR Code generator by Project Nayuki, MIT Licensethird_party/picojson: picojson by Kazuho Oku, BSD 2-Clause License, used for bounded metadata companionsthird_party/vitasqlite: SQLite R/W override by VitaSmith, GPLv3 - the same approach VitaShell and Apollo Save Tool use to read the system app database- HTTPS uses the Mozilla CA bundle packaged in the VPK, with TLS verification enabled
GPLv3, see LICENSE. The vendored SQLite override is GPLv3, which makes copyleft the natural license for the whole project.
Built with heavy AI assistance: the code, docs, and art were developed with Claude (Fable 5, Opus 5 and 4.8) and GPT-5.6 Sol, through many feedback loops under human control, review, and testing on real hardware.
Do not install if you don't accept software built this way.







