PS3 Savedata

From PS3 Developer wiki
Jump to navigation Jump to search

Common terms used in this page[edit | edit source]

  • <userid> The number assigned by the system to this user when their account was created (is a counter). Stored in XRegistry.sys, e.g: 00000001
  • <SAVEDATA_DIRECTORY> Name of the folder where the savedata files are stored, composed by TITLE_ID + some variable characters added by the game, e.g: BLES00001-nick01save01
  • <TITLE_ID> Name of the folder where the game was installed (different than the TITLE_ID in their PARAM.SFO that refers to the original ID when the game was released years ago as a disc)
  • <virtual_memcard> The name assigned to the card when it was created from the "Memory Card Utility (PS/PS2)" in XMB
  • Any_Other_Files Represents all the other files in the folder generated by the game with any filename and filextensions that are dependant of each game and can vary, e.g: "PROFILE.BIN"(in PS3 Game Saves) or "SECURE.BIN" (in Minis Game Saves) etc...
  • <MC_Save_ID> Identifyer of each Game Save of a PS1 or PS2 Memory Card. Used as the file name when a single Game Save is exported to USB, e.g: BESLES-53702535953.PSV
  • MC_Slot Inside a PS1 or PS2 Memory card, real or virtual, every one of the savedata items represented with an icon, A single savedata can use one or several slots in PS1, and always only one slot in PS2
  • PARAM.SFO Information about the Game Save. This one is never encrypted.
  • PARAM.PFD Signatures of some of the other files in the folder.

Game Saves PS3[edit | edit source]

Saved Data Utility (PS3).jpg
Storage Media Path Import/Export file conversions
Internal HDD dev_hdd0/home/<userid>/savedata/<SAVEDATA_DIRECTORY>/ICON0.PNG No conversion
dev_hdd0/home/<userid>/savedata/<SAVEDATA_DIRECTORY>/PARAM.PFD values updated when imported ? (not verified)
dev_hdd0/home/<userid>/savedata/<SAVEDATA_DIRECTORY>/PARAM.SFO values updated when imported ? (not verified)
dev_hdd0/home/<userid>/savedata/<SAVEDATA_DIRECTORY>/Any_Other_Files No conversion
External USB dev_usb0/PS3/SAVEDATA/<SAVEDATA_DIRECTORY>/ICON0.PNG No conversion
dev_usb0/PS3/SAVEDATA/<SAVEDATA_DIRECTORY>/PARAM.PFD values updated when exported ? (not verified)
dev_usb0/PS3/SAVEDATA/<SAVEDATA_DIRECTORY>/PARAM.SFO values updated when exported ? (not verified)
dev_usb0/PS3/SAVEDATA/<SAVEDATA_DIRECTORY>/Any_Other_Files No conversion

PS3 Protections[edit | edit source]

There are 3 possible protections in "PS3 Game Saves" that can be used together at the same time, it depends of the game which ones are used and what files are affected

PS3 Game Save files encrypted[edit | edit source]

Game developers have the option to encrypt the files generated by the game (when the game writes/reads the Game Save). This encryption/decryption is managed by the game and is different for each game, in some games this encryption doesn't exist, this allows modifications/cheats for Game Saves which files are not encrypted or the encryption method is known, and are not signed by PS3 (read next section below)

For more info about unencrypted game saves see: Game_Modding

PS3 Game Save files signed[edit | edit source]

PS3 can generate a signature for each file inside the folder, this signatures are stored in the Protected files table inside the file PARAM.PFD

This table inside PARAM.PFD is limited to a maximun of 114 signatures, seems to be a number high enough for all games developers to protect all, but the fact is usually only a few files (the important ones) are protected with this signatures, one of them uses to be PARAM.SFO

This signature generation/verification is managed by the PS3 and not the game, and can be used together in combination with the previous method (1ºencrypted + 2ºsigned)

PS3 Game Saves Copy Protected[edit | edit source]

There is a "feature" in "PS3 Game Save" format that allows developers to disable the "copy" function to an external USB storage device (by pressing triangle over their icon in XMB with the option "copy" of the side menu)

This "copy protection" is managed by a "flag" that can be turned on/off inside PARAM.SFO, see: Copy protection

But... this means you need to modify PARAM.SFO (the signature changes)... so this only works when PARAM.PFD doesn't contains the signature of PARAM.SFO (only a few old games)

Also, This can be used together in combination with the previous methods (1ºencrypted + 2ºsigned + 3ºcopy protected)