{
  "version": "10.6.0",
  "notes": "- **Remote Play Unlock (earthonion) in the payload catalogue.** Lets Remote Play stream games\n  and apps that forbid it (refused at start, a \"can't be streamed\" notice, or a black picture) by\n  patching the PS5's Remote Play service in memory. Firmware 3.20, 10.01, 12.00, 12.70 and 13.60;\n  load it again after every reboot, or add it to your autoloader. Payloads whose only release is a\n  pre-release (like its rolling `latest`) now download too.\n- **Save Data is laid out around what you do with a save.** Each game shows one row per user\n  with when it was last backed up (\"Backed up 2 hours ago\", or \"Not backed up yet\" in amber) and\n  four actions: **Back up now**, **Restore\u2026** (the game's backups, newest first), **Copy to\u2026**\n  and **Open**. A short \"How saves work here\" card explains them once; dismiss it when you know.\n  Backing up to a `.zip` on this computer and the USB actions are under **More** (desktop app).\n- **Copy a save to another user on the same PS5 (For #612).** **Copy to\u2026 \u203a Another user on this\n  PS5** lists the console's other users: those with a save of the game can be picked, the others\n  say what to do first (start the game once as them and save). The engine shares the save and\n  puts it into theirs in one go, so no file lands in your Downloads; their save is backed up\n  first and put back if anything fails, and it is refused while the game runs. A console with\n  two or more users shows a tip pointing to it.\n- **Restore a backup to another user (For #612).** **Restore\u2026 \u203a Restore to another user\u2026** puts a\n  backup of one account's save into another account's save of the game on the same PS5, with the\n  same rules.\n- **A game's save is one thing.** Many games keep several parts (`sdimg_STARBOARD`,\n  `sdimg_sce_sdmemory`, \u2026). Share (now **Copy to\u2026 \u203a Save as a file for a friend or another\n  PS5**) puts every part in one `.zip`, and **Load a save file** puts each part into the part of\n  the same name, all backed up first and all put back on failure. If the target lacks a part,\n  nothing changes and the message names it (\"\u2026's STARBOARD isn't on Ben yet: start the game once\n  as Ben and save\"). No more picking a raw image name. Files shared by earlier versions still\n  load; a file saved by 10.6.0 needs 10.6.0 or later.\n- **Fixed: picking a save in \"Which save of PPSA\u2026?\" did nothing**, and it listed the console's own\n  backup copies (`sdimg_sce_bu_\u2026`). The picker is gone from sharing and loading; Open, the only\n  place a single part is still chosen, names the parts (\"STARBOARD\", \"main save\") and never\n  offers the console's backup copies.\n- **A restore that fails part way puts the save back** as it was, from the backup taken just\n  before it.\n- **A failed save copy never leaves the old save under one still open.** Closing the save is\n  tried again a few times (a dropped connection included); if the PS5 still holds it open, the\n  save there before is not put back over it, and the message names the backup to restore with\n  **Restore\u2026** once the PS5 can be reached.\n- **A save too big for the other user's save is refused before anything changes.** A PS5 save\n  has a fixed size; the message gives both sizes and what to do.\n- **Backups made on another PS5 are refused.** An encrypted save only opens on the PS5 that made\n  it, so new backups note their console and **Restore\u2026** refuses one from another PS5 up front\n  (use **Save as a file** on that PS5). Older backups are not checked.\n- **Automatic backups wait for the game to close.** A running game's save is skipped and backed\n  up on the next pass after it closes, never copied while the game may be writing it.\n- **PS1 emulator saves.** PSSwanStation's (PPSA99248) memory cards and saved states are listed,\n  backed up and restored in Save Data like the PS2 emulators'. Thanks to EnriqueWood (#618).\n- **Save Data rows wrap instead of squeezing.** A save's buttons move to a new line when they\n  don't fit, instead of crushing its details to one letter per line. Thanks to EnriqueWood\n  (#619).\n- **Scripts and AI agents can see and play Remote Play without taking it over (#615).** On the\n  engine's computer, `GET /api/ps5/rp/frame` returns the picture the app shows now (PNG or JPEG,\n  with its size and age), `POST /api/ps5/rp/input` holds buttons, sticks and triggers for up to\n  5 seconds as one more controller next to yours, and `/api/ps5/rp/input/release` lets go.\n  `GET /api/ps5/rp/session` now gives the session's id, and a request naming an old session is\n  refused. Nothing on screen changes, no second stream starts, and none of it is reachable from\n  other machines. See [AUTOMATION.md](https://github.com/phantomptr/ps5upload/blob/main/AUTOMATION.md); not a\n  stable API yet (#430).\n- **Local-only endpoints refuse requests that don't address localhost.** The automation routes\n  and the keyboard & mouse socket answer only requests to `localhost`, `127.0.0.1` or `[::1]`, so\n  a web page can't reach them by pointing its own name at this computer.\n- **The Remote Play microphone no longer switches off when a button is pressed.** Any controller\n  change (yours, a phone's) turned the experimental mic off; now only leaving the stream does.\n- **Save Data shows the games' names and covers.** A game is named the way Games names it (the\n  console's own name, then the online one), in the list and in every dialog and message. A cover\n  that can't load shows the game's initials (or a controller) instead of a broken image, and the\n  name no longer shrinks to a few letters on a phone.\n- **No more \"changed Dec 31, 1969\".** A save the console gives no date for shows none, in Save\n  Data and in the PS1, PS2 and Switch emulator saves.\n- Contributors' tests now also run on Windows (#620). Thanks to EnriqueWood.",
  "pub_date": "2026-11-01T21:39:55Z",
  "assets": {
    "android-armv7": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-android-armv7.apk",
    "android": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-android.apk",
    "ios": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-ios-unsigned.ipa",
    "linux-aarch64-deb": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-linux-arm64.deb",
    "linux-aarch64-rpm": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-linux-arm64.rpm",
    "linux-aarch64": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-linux-arm64.zip",
    "linux-x86_64-deb": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-linux-x64.deb",
    "linux-x86_64-rpm": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-linux-x64.rpm",
    "linux-x86_64": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-linux-x64.zip",
    "darwin-aarch64": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-mac-arm64.dmg",
    "darwin-x86_64": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-mac-x64.dmg",
    "windows-aarch64-setup": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-win-arm64-setup.exe",
    "windows-aarch64": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-win-arm64.zip",
    "windows-x86_64-setup": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-win-x64-setup.exe",
    "windows-x86_64": "https://github.com/phantomptr/ps5upload/releases/download/v10.6.0/PS5Upload-10.6.0-win-x64.zip"
  },
  "sha256": {
    "android-armv7": "7822ca491e6de444fb07cd4efa6416c1937a68a3b5778cb0bc15450ef8e4c1cf",
    "android": "640e4b2696c9593fbb0624cb44fa1afcb4b767dbf69c70236643a6a07fffa597",
    "ios": "5f0cb83c6f58c26c492c47ad29c88c7d86109417ebb3f66d5e35c8e842a23b6b",
    "linux-aarch64-deb": "9c85a085e5995a9a9a589b74fa31ed2d98f2be59851ad3e8fd8d7c09dbb7374d",
    "linux-aarch64-rpm": "71f0efbee9b2d00b3f3388438eb2e91681e42cb0f976ffbd033cd1437853c1f9",
    "linux-aarch64": "0c00beb2413d162088553424ecabaf7ac85c351d02db2357771fd80a270b7cfd",
    "linux-x86_64-deb": "04a6b590c248477d47c18d03bccec3889a9990a1c3e6d7fd9ddc471d3b19a57d",
    "linux-x86_64-rpm": "2ddec08712a1b56398e620ec86da38ffdf0a9da991d821d3ff8ab7f28f8eaefd",
    "linux-x86_64": "d5bd07b4dac37daabd943008d24bef53b285f249cdcc5a1e79ae5db125216e19",
    "darwin-aarch64": "40aa751cb41100f227dc7be6ed2cbbda58b8a6803dff3e89f8b03ad6eea75fcc",
    "darwin-x86_64": "229b16e9d077e326def882e123fbad54f5b147635f9a806e66a05ee37b617201",
    "windows-aarch64-setup": "9a1917c07df58e0846d045fffc689be3f7882c2e87842a6606fec16b3090eb7a",
    "windows-aarch64": "c39b11db33b3516502873b9f8b1b873f5f9ec41e11411ae74a4f9094931a87fb",
    "windows-x86_64-setup": "075b513c9a8787e9dd92c6a325ea3343b1200276f92ea567f71c1a94602ac8cc",
    "windows-x86_64": "6dd6fbcfde85313c6dcda4fe2dd4b8dbb83d5668a96b05fa4c3885ca5c5ab541"
  }
}
