feat(saves): back up a save directly to a USB drive on the PS5#145
Open
Twice6804 wants to merge 1 commit into
Open
feat(saves): back up a save directly to a USB drive on the PS5#145Twice6804 wants to merge 1 commit into
Twice6804 wants to merge 1 commit into
Conversation
Adds a configurable PS5-side save path (Settings, default /mnt/usb0/savedata) and a "Save to USB" action (per-row + bulk) on the Saves screen that pulls a save off the console, zips it, then pushes it back to <savePath>/<title_id>/<timestamp>/<title_id>.zip on a USB/extended-storage drive plugged into the PS5 itself — no host PC round-trip needed. Reuses the existing download/finalize/zip pipeline and single-file transfer (transfer_file); no payload/engine changes required. Pre-flights the USB mount via the existing checkDestinationFreeSpace helper and re-checks for a stale host before uploading, mirroring the Restore flow's safety guards. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Contributor
Author
|
@phantomptr quick PR to backup save games to usb drive, adresses the first part of #144 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Description
Adds a "Save to USB storage" action to the Saves screen that backs a save up
directly to a USB/extended-storage drive plugged into the PS5 itself,
without round-tripping through a host PC. The destination base path is
configurable in Settings (default
/mnt/usb0/savedata); each backup landsat
<savePath>/<title_id>/<timestamp>/<title_id>.zip.Addresses the first half of #144 ("Save a complete backup of all save games
in one click... in a folder on the USB drive with timestamps folders").
Type of Change
Changes Made
savePathsetting (Settings screen + localStorage +~/.ps5upload/settings.jsonmirror), default/mnt/usb0/savedata.transfer_filesingle-file upload — no new wire protocol, no payload/engine changes.checkDestinationFreeSpacehelper and re-checks for a stale host before uploading, mirroring the Restore flow's existing safety guards.backupTimestamphelper (YYYY-MM-DD_HHMMSS, local time) andsaveSettingsstore, both unit-tested.Documentation Updates
Did you update the documentation? [ ] Yes [x] No
The existing Backup/Restore save feature isn't documented in README/FAQ either; this follows the same precedent — the feature is self-explanatory from the Saves/Settings UI.
Testing
npm run validate(lint, typecheck, full Vitest suite — 754 passing, i18n coverage gate, Vite production build all green)npm run coverageNote: the Rust
cargo checkfor the desktop Tauri shell could not be run in my sandbox (missing system GTK/WebKit dev packages, e.g.libwebkit2gtk-4.1-dev/libgtk-3-dev) — a pre-existing environment limitation, not something this PR's code touches (zero Rust files changed). CI will run the full gate.I also don't have PS5 hardware to test against in this environment — would appreciate a hardware smoke test (plug a USB stick into the console, run a per-row and a bulk backup, confirm the zip lands at the expected path and round-trips through Restore) before merge.
Checklist
Additional Notes
Part 2 of #144 (convert game folders to/from exfat/ufs via UFS2Tool, and zip/7z on-console for non-save game backups) is out of scope for this PR.