Talk:PARAM.SFO: Difference between revisions
(→Others paths: hehehe) |
(→Cryptography in "user files" (game saves & trophies): moved from front page (this area can store different data, is not posible to add a detailed example of each type in the front page)) |
||
Line 410: | Line 410: | ||
===Cryptography in "user files" (game saves & trophies)=== | ===Cryptography in "user files" (game saves & trophies)=== | ||
ACCOUNT_ID, PADDING, PARAMS, PARAMS2, SAVEDATA_FILE_LIST, SAVEDATA_PARAMS | ACCOUNT_ID, PADDING, PARAMS, PARAMS2, SAVEDATA_FILE_LIST, SAVEDATA_PARAMS | ||
'''Example of SAVEDATA_LIST_PARAM containing the "folder size in sectors" in the gamesaves generated by the game "The Orange Box: BLES00153, BLES00171, BLES00172, BLUS30055"''' | |||
{{Boxframe1|content='''Game Selector Boot Process''' | |||
When the disc boots, the EBOOT.BIN loads APP_CHOOSER.SELF, is a "game selector" and contains 5 games: half life 2, half life 2ep1, half life 2ep2, Portal, and Team fortress 2 | |||
Each of this games has his own .SELF and his own SAVECONTENTPS3 folder (each game uses different [[Content_Information_Files#Saved_Data_Utility_.28PS3.29 | Content Information Files]] when generating his savedata). There is another savedata folder generated/loaded by the selector that is common. In some games (e.g: portal 1) there are several savedata folders to store: the "game settings", "autosave", and "manual save" | |||
All the PARAM.SFO's generated in this savedata folders contains SAVEDATA_LIST_PARAM with a '''param_len''' of 7 bytes, and his values are strings of 6 numbers + a zero (NULL terminated) | |||
}} | |||
The value stored by this game in SAVEDATA_LIST_PARAM is the "size of the folder on disk". This size is dependant of the filesystem (512 bytes cluster size in UFS2), and how many clusters are taken as the "minimun chunk" (that seems to be 2 clusters) | |||
Because the writing process standards (and from the point of view of available clusters for the next writing operation) when a single byte is used in a cluster, this whole cluster is considered "not available for next writing process of a new file". This means e.g: that a file with a size 513 bytes uses 2 complete clusters (512 bytes in the first cluster and 1 byte in the second cluster, both clusters are reserved for this file) | |||
To calculate the number of clusters used by a folder... is needed to calculate the number of clusters used by each file inside the folder, this includes the files that uses a number of clusters that is not even and needs to be "rounded-up". e.g: a file with size 1 byte (that is supposed to fit in 1 cluster) uses 2 clusters because the number "1" is not even. In few words, the number of clusters used by a file needs to be "rounded-up to next even number" | |||
*This save game is a good example because always contains the same values in SAVEDATA_LIST_PARAM (the second one from euro region): BLES00153-PORCONF-0 [[http://www.gamefaqs.com/ps3/934385-the-orange-box/saves Link 1]] [[http://db.gamefaqs.com/console/ps3/save/the_orange_box_eu.zip Link 2]] | |||
{| class="wikitable" | |||
|- | |||
! File name !! real file size (in bytes) !! theorical disk size (in clusters) !! cluster round-up to even number !! real disk size (in bytes) | |||
|- | |||
| ICON0.PNG || 12.461 || 12461/512=24,3... = 25 || 25+1= 26 || 26*512= 13.312 | |||
|- | |||
| PARAM.PFD || 32.768 || 32768/512= 64 || || 64*512= 32.768 | |||
|- | |||
| PARAM.SFO || 2.736 || 2736/512=5,3... = 6 || || 6*512= 3.072 | |||
|- | |||
| PIC1.PNG || 89.268 || 89268/512=174,3... = 175 || 175+1= 176 || 176*512= 90.112 | |||
|- | |||
| POR-0.CFG || 893 || 893/512=1,7... = 2 || || 2*512= 1.024 | |||
|- | |||
| POR-0.CHK || 16 || 16/512=0,03... = 1 || 1+1= 2 || 2*512= 1.024 | |||
|- | |||
!! colspan="5" | Folder contents total | |||
|- | |||
| || 138.142 || 273 clusters || 276 clusters || '''141312''' (SAVEDATA_LIST_PARAM) | |||
|- | |||
|} | |||
*The process is: | |||
**1.- Divide by the cluster size | |||
**2.- Round-up cluster number (if needed) | |||
**3.- Multiply by the same cluster size (to know the amount of bytes reserved for this clusters) | |||
This can be simplifyed by using 1024 (2 clusters)... because this way there is no need of step 2 (the "round-up")... but i have no idea if naming this "chunk" of 2 clusters a "page"... or why UFS2 filesystem takes them 2 by 2... i prefer to left this example as is, feel free to correct me | |||
Also, there is a simple "trick" that can be used to display the files divided in clusters of the size you want (maybe are others but this is the faster way i found). By formatting a usb pendrive in advanced mode, using the cluster size your need, then moving the folder there (by using FAT32 with 1024 bytes cluster the value reported by your operative system is the same one stored inside SAVE_DATA_LIST) | |||
===PARAM.PFD relationship=== | ===PARAM.PFD relationship=== |
Revision as of 20:16, 13 August 2013
Unknown
This is the first attempt to create an "index" for this page with sections refered to the "front" page that doesnt needs to have the same names but needs to be grouped in some way. All the sections in this page are things related with PARAM.SFO that are not completly documented, and the final purpose is to move the info when completed to the "front" page. This also will help to keep the "front" page free of speculation
Parameters
TITLE_ID
See PARAM.SFO#TITLE_ID, everything that "breaks" the standards explained in this link can be added here in this table as an example to understand better how the ID's are assigned to each type of content
Content ID (.PKG) | TITLE_ID (.SFO) | TITLE (.SFO) | CATEGORY (.SFO) | Notes |
---|---|---|---|---|
NPIA0**** | ||||
IP9100-NPIA00001_00-PS2HDDSYSDAT0001 | NPIA00001 | PS2 System Data | 2D | |
IP9100-NPIA00002_00-0000111122223333 | NPIA00002 | Folding@home & Life with Playstation | CB | |
EP9000-NPIA00005_00-HOME000000000001 | NPIA00005 | Playstation home | HM | |
IP9100-NPIA00006_00-VSHMODULE0000029 | No | No | No | Photo Gallery (doesnt have an .SFO) |
IP9100-NPIA00007_00-0000111122223333 | NPIA00007 | Folding@home & Life with Playstation | CB | |
NPIA00009 | ? | ? | ||
NPIA00010 | Playstation home | HG | Debug Version (shipped with HDK) | |
NPIA00011 | ? | ? | ||
NPIA00012 | DigitalComics | ? | PSP App | |
NPIA00013 | SenseMe | ? | PSP App | |
IP9100-NPIA00016_00-VSHMODULE0000001 | No | No | No | Video Editor and Uploader (doesnt have an .SFO) |
IP9100-NPIA00025_00-SFPROD0000000000 | NPIA00025 | Playstation Store | SF | new Playstation Store, not via webbrowser anymore |
IP9100-NPIA09002_00-0000111122223333 | NPIA09002 | Music Unlimited | AM | Qriocity |
NPIA9**** | ||||
IP9101-NPIA9100[5-9]_00-PLUS???????????? | No | No | No | Playstation Plus |
NP*A0**** | ||||
EP9000-NPEA00008_00-AQUAVITAPS300000 | NPEA00008 | Aqua Vita | HG | interactive aquarium info link |
EP9000-NPEA00013_00-HOME000000000001 | NPEA00013 | Playstation Home Beta | HG | |
EP9000-NPEA00022_00-EYECREATE0000000 | NPEA00022 | Eye Create | HG | Playstation Eye cam utility (create photos, videos, etc...) |
EP9000-NPEA00030_00-MESMERIZEPACK001 | NPEA00030 | Mesmerize | HG | (is a move controller tech demo) |
JP9002-NPJA00040_00-ADHOCPARTY000000 | NPJA00040 | Ad-Hoc Party | HG | (used by "PSP remasters" games to play online in PSP network) |
NP*B0**** | ||||
EP4183-NPEB00344_00-LOVEFILMFULL0100 | NPEB00034 | LOVEFiLM | AV | |
EP2058-NPEB00894_00-HDDBOOTPINBALL01 | NPEB00894 | Pinball Arcade | HG | "game purchase" enabled in ATTRIBUTE (C00 folder), TROPDIR included |
EP4381-NPEB01229_00-YOUTUBE000000001 | NPEB01229 | Youtube | AT | NPUP10028 for usa region |
NP*D0**** | ||||
EP4061-NPED00026_00-GSKYSCRAPE000ENG | SLES55152 | Skyscraper | 2P | Is a "PS2 Classic" note the TITLE_ID inside SFO is the original of the PS2 game and is different than the CONTENT_ID of the .pkg |
NPHA***** | ||||
NPHA0**** | First Party PSP PSN/SEN Games | ? | ||
HP9009-NPHA80082_00-0000000000000100 | NPHA80082 | now TV | AT | |
HP9000-NPHA70006_00-0000000000000100 | NPHA70006 | QOOK TV | AT | |
NPHB***** | ||||
NPHB0**** | Licensed PSP PSN/SEN Games | ? | ||
NPXS0[!0]*** (FW Components) | ||||
IV0001-NPXS01001_00 | NPXS01001 | No | No | |
NPXS01002 | No | No | ||
NPXS01003 | No | No | ||
NPXS01005 | No | No | ||
NPXS03003 | No | No | ||
NPXS03029 | No | No | ||
NPXS03043 | No | No | ||
NPXS04004 | No | No | ||
NPXS09386 | No | No | ||
NPXS00*** (SDK Samples) | ||||
IV0002-NPXS00006_00-SAMPLE0000000001 | NPXS00006 | NP GAME | HG | |
IV0002-NPXS00008_00-GAMEUPDATEPATCH[1/2] | NPXS00008 | GameUpdate Utility Sample | DG | |
IV0002-NPXS00009_00-GAMEUPDATEPATCH[1/2] | NPXS00009 | GameUpdate Sample (By System) | DG | |
IV0002-NPXS00018_00-SAMPLE0000000001 | NPXS00018 | Matching2 Invitation Sample | HG | |
IV0002-NPXS00020_00-HDDBOOTSAMPLE001 | NPXS00020 | HDD Game Sample | HG | |
IV0002-NPXS00021_00-SAMPLE0000000001 | NPXS00021 | Game Data Sample | HG | |
IV0002-NPXS00022_00-GAMEPURCHASE000[1/2] | NPXS00022 | Game Purchase Sample | HG | |
IV0002-NPXS00024_00-SAMPLE0000000001 | NPXS00024 | NP Basic Sample | HG | |
IV0002-NPXS00031_00-SAMPLE0000000001 | NPXS00031 | NP SNS | HG | |
ULES***** | ||||
EP1004-ULES00151_00-GPCGRANDTH000001 | ULES00151 | Grand Theft Auto: Liberty City Stories | PP | |
Others | ||||
UP0001-FSYN00001_00-0000111122223333 | FSYN00001 | FaceSync | HG | |
XXYYYY-MCPD12345_00-XXXXXXXXXXXXXXXX | MCPD12345 | Motion Controller Playground Demo | HG | |
UP9000-NPUO00007_00-AVAPS15ANVSYCOLR | No | No | No | Avatar 15 anyversary (doesnt have an .SFO) |
UP9002-NPUO00008_00-NHLGAMECENTERPS3 | NPUO00008 | NHL GameCenter | AV | |
UT0016-NPUO00013_00-SAMPLE0000000229 | NPUO00013 | Video Unlimited - preview | AV | |
UP9002-NPUO00014_00-MOVEMESERVER0000 | NPUO00014 | Move.Me | HG | |
UT0007-NPUP00030_00-NETFLIXRIGEL01NA | NPUP00030 | Netflix | AV | |
No | PBPX95208 | DVD Player Version 2.10 | No | PS2 DVD Player Update 2.10 ps2emu refuses to load this CD |
No | PBXC0020[1-4] | PSX-Update 1.10/1.20/1.31/2.11 | No | PSX Updates ps2emu refuses to load this CD |
No | SLED01340 | NET YAROZE COLLECTION | No | PS1 NET YAROZE demo disc ps1emu + ps3 crashes |
UP0001-TEST00000_00-0000111122223333 | TEST00000 | Debugging Station Launcher | HG | |
? | SCEAPPS01 | ? | ? | Related with "shop/kiosk" PS3 models (only visible in "unlocked mode" ?) |
? | SCEAPPS02 | ? | ? | Related with "shop/kiosk" PS3 models (only visible in "unlocked mode" ?) |
? | SCEAPPS03 | ? | ? | Related with "shop/kiosk" PS3 models (only visible in "unlocked mode" ?) |
Other TITLE_ID's (speculation or as exotic)
- PlayView see: Talk:Eboot.PBP#PlayView
For PS3: NPJB60*** & NPJA60***
For PSP: NPJH60***
- Cross buy(?) : US: XCUS-0000* UE: XCES-0000* JP: XCJS-0000*
- NPEO12345 & NPUO12345 : for Others items also as theme, digital manual.
- PS3 DISC with PS3_VPRM (Blue-Ray movie structure only?) described as hybrid disc : BLJM-930** for Japan.
- PSP remaster: BLJM-8500*
- Converted edition: BLJM-6100*? PARAM.SFO use NP_COMMUNICATION_ID with DG / PS3_DISC.SFB is regular.
- FVGK-00** used only on PS3/PSP/PS2? game box but not on disc?
- 1.5 HD remix (generic name used more than one time?) have specific title id? KINGDOM HEARTS -HD 1.5 ReMIX-BLJM-60589.
- ps2emu refuses to load CD's, that would crash, but ps1emu does this not
- Candidates to NPEA000** (more sony experiments) "Operation Creature Feature", "Trials of Topoq", "tori-emaki", "flower", music apps "Visualizer" by Q-Games (or NPUO*****)?
- SCEAPPS01, SCEAPPS02, SCEAPPS03
- blocked in category_game.xml specifically in shop firmwares using tag <View id="shop_guest_root"> (not allowed for "guest" users in shop PS3's)
- On main page someone can "explain" than sometime the id is different. e.g. Last of US sound track is NPEA when it "should be " an other NPEN because similar app.
- MRTC (final fantasy xiii, disc based game)
ATTRIBUTE
XMB In-Game System Chat Voice Disable (Flag Nº7) : Value and name description are related to this flag but need to be confirmed from PS3 side / not used on bootable but as patches?.
Function to disable system chat voice utility (xmb/friend/start new chat appear when PSN connected) (implemented directly on FW or game or as flag into param.sfo for short period?) e.g. of this function: PlayStation Home 1.4 after people reported chat voice disturbance(?) , LittleBigPlanet 2.
Kept as flag for convenience (to disable per game through update game and not FW) but can be "system reminiscent" and not working anymore from param.sfo?
Boot logo Disable ? <-- this is the "license text hidden" flag ? FW max: 2.80 for ps3 fat? on patches?
Some flags may only be effective with some hardwares (PSP/PSVITA/ Torne /Nasne...), FW, Games, or Category and/or in a cumulative way and others conditions.
Please report test/investigation here or on the link forum at the end of this page.
- Examples
Little Endian | Big Endian | Decimal | Flags (Binary) | Description | Flag Nº | Notes |
---|---|---|---|---|---|---|
Discs | ||||||
05 17 80 00 | 00 80 17 05 | 8394501 | 00000000 10000000 00010111 00000101 | killzone 3 | 01+03+09+10+11+13+24 | all flags identifyed |
20 00 02 00 | 00 02 00 20 | 131104 | 00000000 00000010 00000000 00100000 | Dead Space 2 | 06+18 | all flags identifyed |
Patches | ||||||
85 00 00 00 | 00 00 00 85 | 133 | 00000000 00000000 00000000 10000101 | Torne v3.52 | 01+03+08 | all flags identifyed (doesnt use any "overwrite" flag) |
XMB In-game background music compatibility
Attempt to create compatiblity list with XMB In-Game (v2) Background Music feature.
XMB In-Game Background Music was implemented in firmware 2.40
Infos on limitations are mostly speculations (and from SFO point of view)
To activate it from SFO, see PARAM.SFO#ATTRIBUTE_In_Bootable_content
Title | compatibility | Note |
---|---|---|
Atelier Meruru | No | (Signed as 3.60) |
Child of Eden | Yes | PSN game, SFO edited and updated from PKG. |
Uncharted 1 | No | System FW version required 1.94 |
For better list see:Custom Soundtrack Compatible list (without SFO edited?)
Thread related: Here
For replacing PARAM.SFO manullay
- Limitations:
After editing the SFO, you should not have anymore the XMB message saying "Music content cannot be played during use of this game" but instead "music will start in a while ( please insert exact xmb message). However, the feature might not work correctly (for easy display, the table report it as NO)
- Reasons (speculation):
Conflict with others system utility (E.G.:system chat voice, recording utility used on fews titles such PAIN, ), music files or eboot compiled with old SDK or others restrictions (?)
Other: On PS Vita PKG:
Facebook (gdc): 00 80 00 00 LiveTweet (gdc): 00 80 00 00 Skype (gdc): 00 80 04 00 Musicunlimited (gdc): 88 90 0E 00 Torne (gdc) 00 00 80 81 For Torne: http://www.vitadevwiki.com/index.php?title=System_File_Object_(SFO)_(PSF)
subcategories from X0 to X7
X category appear as HG (sub cat)but with different parameters and need cumulative flag (n22 at least+ 4th byte: half byte) The 4th byte is not used as binary (only?) but as Hex value for half byte (right nibble, left nibble is ignored?) to set X category. If the value is 0 or end up with 0, and the X maker flag is set under right SFO X parameters, X0 (PCEngine) is read by the system.
SFO TEST Tool from Deroad can boot and return to XMB even under X category (when MINIS don t and are stuck after being X categorized, error occurred during the start operation (80010006))
Folder position in XMB (in fw 3.55 with hand-made PARAM.SFO's):
By pressing square, group content format position (the 8 X category folders can be displayed at the same time in XMB):
- Mini icon: PSP Remaster, on 3.55, Mini icon: not present (-) ,not accessible (with titles inside).
- Mini icon: minis
- X1 Mini icon: not present (-)
Attribute used (01 00 60 01)on EBOOT.PBP SFO for Minis (group content format on PSP: minis)
- X2 Mini icon: not present (-)
When Attribute used on EBOOT.PBP SFO on PSP: NEOGEO
Enables X category. Introduced initially as PCEngine.
Jul 15, 2009 Works alone and can be used with any "HG" category content, its not clear what does this flag other than the content has his own "tiny grey icon" with a "PCE" logo and are placed inside his own sub-folder when ordering contents (with square button) in the XMB (3.55, 3.41?). Same attributes on PSP
- X3 Mini icon: not present (-)
Dec 21, 2010 (Few days after 3.55) Can be used with any "HG" category content. It has his own "tiny grey icon" with a "NEOGEO" logo and are placed inside his own subfolder when ordering contents (with square button) in the XMB (3.55, 3.41?).
- X5 (same for X6 and X7) Mini icon: not present (-)
(X3 might have been used already, X5,X6 and X7 not used yet?)
Group content order is similar on PSP for the available icons (PS3 folder being PSP and no "PS2"). See Talk:Eboot.PBP#Others:_PARAM.SFO_attribut_.28PSP.29
Other app with category not implemented yet on 3.55 FW such WT or unknown as VF on 4.21 can also just not "appear" on XMB and not being on the "Unknown" folder as Corrupted/Unsupported data. To access/delete from XMB your PSP remaster folder s titles, group content it not by format.
- Indi games
New category on PSvita and PSN http://blog.us.playstation.com/2013/06/25/ps-vita-indie-games-category-now-live-on-psn/ Indi games has a specific license, if XMB differences it it will be using ATTRIBUTE flags (similar identification than neogeo and pcengine because has a special license)
CATEGORY
- - Speculation, refered as "VT" in one his related PS3 packages: NP0001-NPXS10002_00-VTSTORELIVEAREA0.pkg
- VF - Confirmed (HDD content, NOT in game column) ---> unknown name, used as a valid category filter in the XML configuration file for XMB game column in path: dev_flash/vsh/resource/explore/xmb/category_game.xml in key="gameDir"
- key="gameDir" is an XMB item that allows to order the contents by "rating" or "timeCreated" the command used contains a list of categories that are excluded using the operator "An" = An not equal (VF is at the end of the list excluded with An+Game:Game.category VF)
- Similar than X1, MN, 1P?
- X1 internal name code for MN? //as X0 and X4 are HG. See also Attributes on PSP
- XI - Confirmed ---> System File for Extra Content Item , related to another disc structure/subfolders: PS3_DISC.SFB?
- Folders EX_GAME & EX_VIDEO belongs to PS3_CONTENT disc substructure (same than THEMEDIR & VIDEODIR) :)
- StorageMedia:Common.fileName EX_GAME <--- Mounted by XMB in game column using key="seg_add_content_device" see: http://www.ps3devwiki.com/wiki/XMB-Game
- StorageMedia:Common.fileName EX_VIDEO <--- Mounted by XMB in video column using key="seg_add_content_device" see: http://www.ps3devwiki.com/wiki/XMB-Video
PS3_SYSTEM_VER
This is the flag for what's the minimum firmware a game will run on. It is 0x8 bytes and is only found it Gamedata SFO files, not gamesaves (most of them at least).
This can be changed to run on other firmwares.
RESOLUTION & ANALOG_MODE
Emulators specific parameters/flags/values
RESOLUTION
Data_Type: uint32_t Data_Size_Total: 4 bytes Data_Size_Used: 4 bytes Used by: HDD Game, PS1 Classics Game, Minis Game, PSP Remasters Game
TV video modes supported by the content.
When there are several flags activated the PS3 will use the one with higher quality supported by the TV.
Little Endian | Big Endian | Decimal | Binary (Flags) | Description |
---|---|---|---|---|
01 00 00 00 | 00 00 00 01 | 1 | 00000000 00000000 00000000 00000001 | 480 (4:3) |
02 00 00 00 | 00 00 00 02 | 2 | 00000000 00000000 00000000 00000010 | 576 (4:3) |
04 00 00 00 | 00 00 00 04 | 4 | 00000000 00000000 00000000 00000100 | 720 (16:9) |
08 00 00 00 | 00 00 00 08 | 8 | 00000000 00000000 00000000 00001000 | 1080 (16:9) |
10 00 00 00 | 00 00 00 10 | 16 | 00000000 00000000 00000000 00010000 | 480 (16:9) |
20 00 00 00 | 00 00 00 20 | 32 | 00000000 00000000 00000000 00100000 | 576 (16:9) |
Examples | ||||
3F 00 00 00 | 00 00 00 3F | 63 | 00000000 00000000 00000000 00111111 | All video modes supported |
- Note the resolution for original PS1 disc games can vary (See: Emulation Resolution). The RESOLUTION flags used in PARAM.SFO's of "PS1 Classics Game" from PSN seems to be specific and not fixed sizes (e.g: 01 00 00 00). This will need another table if more are found
SOUND_FORMAT
- 7.1 virtual surround (in SOUND_FORMAT) sound mode has been announced officially, it will be implemented in the next firmware (aparently version 4.20). This sound mode will need one (or two) new flags for being activated in games
Others
DATA types
Data_Type | Description | Used in |
---|---|---|
04 00 | utf-8 Special Mode | Data generated by the system: Game Saves (ACCOUNT_ID, PARAMS, PARAMS2, SAVEDATA_FILE_LIST, SAVEDATA_PARAMS)... and Trophies (PADDING) |
The Data_Type = 0400 marked as "utf-8 Special Mode" has the particularity of return a "right" or "wrong" when comparing the string with a reference value, so it can be said that the difference between the simple "utf-8" and "utf-8 Special Mode" is only from the point of view of how the system manipulate this data. For more info read the section ACCOUNT_ID.
If the "scale" used for the second byte follows the proportion of 2^X (e.g. 1, 2, 4, 8, 16, 32, etc...) then we are missing a "04 01" valid data type in the list
Cryptography in "user files" (game saves & trophies)
ACCOUNT_ID, PADDING, PARAMS, PARAMS2, SAVEDATA_FILE_LIST, SAVEDATA_PARAMS
Example of SAVEDATA_LIST_PARAM containing the "folder size in sectors" in the gamesaves generated by the game "The Orange Box: BLES00153, BLES00171, BLES00172, BLUS30055"
When the disc boots, the EBOOT.BIN loads APP_CHOOSER.SELF, is a "game selector" and contains 5 games: half life 2, half life 2ep1, half life 2ep2, Portal, and Team fortress 2
Each of this games has his own .SELF and his own SAVECONTENTPS3 folder (each game uses different Content Information Files when generating his savedata). There is another savedata folder generated/loaded by the selector that is common. In some games (e.g: portal 1) there are several savedata folders to store: the "game settings", "autosave", and "manual save"
All the PARAM.SFO's generated in this savedata folders contains SAVEDATA_LIST_PARAM with a param_len of 7 bytes, and his values are strings of 6 numbers + a zero (NULL terminated)The value stored by this game in SAVEDATA_LIST_PARAM is the "size of the folder on disk". This size is dependant of the filesystem (512 bytes cluster size in UFS2), and how many clusters are taken as the "minimun chunk" (that seems to be 2 clusters)
Because the writing process standards (and from the point of view of available clusters for the next writing operation) when a single byte is used in a cluster, this whole cluster is considered "not available for next writing process of a new file". This means e.g: that a file with a size 513 bytes uses 2 complete clusters (512 bytes in the first cluster and 1 byte in the second cluster, both clusters are reserved for this file)
To calculate the number of clusters used by a folder... is needed to calculate the number of clusters used by each file inside the folder, this includes the files that uses a number of clusters that is not even and needs to be "rounded-up". e.g: a file with size 1 byte (that is supposed to fit in 1 cluster) uses 2 clusters because the number "1" is not even. In few words, the number of clusters used by a file needs to be "rounded-up to next even number"
- This save game is a good example because always contains the same values in SAVEDATA_LIST_PARAM (the second one from euro region): BLES00153-PORCONF-0 [Link 1] [Link 2]
File name | real file size (in bytes) | theorical disk size (in clusters) | cluster round-up to even number | real disk size (in bytes) |
---|---|---|---|---|
ICON0.PNG | 12.461 | 12461/512=24,3... = 25 | 25+1= 26 | 26*512= 13.312 |
PARAM.PFD | 32.768 | 32768/512= 64 | 64*512= 32.768 | |
PARAM.SFO | 2.736 | 2736/512=5,3... = 6 | 6*512= 3.072 | |
PIC1.PNG | 89.268 | 89268/512=174,3... = 175 | 175+1= 176 | 176*512= 90.112 |
POR-0.CFG | 893 | 893/512=1,7... = 2 | 2*512= 1.024 | |
POR-0.CHK | 16 | 16/512=0,03... = 1 | 1+1= 2 | 2*512= 1.024 |
Folder contents total | ||||
138.142 | 273 clusters | 276 clusters | 141312 (SAVEDATA_LIST_PARAM) |
- The process is:
- 1.- Divide by the cluster size
- 2.- Round-up cluster number (if needed)
- 3.- Multiply by the same cluster size (to know the amount of bytes reserved for this clusters)
This can be simplifyed by using 1024 (2 clusters)... because this way there is no need of step 2 (the "round-up")... but i have no idea if naming this "chunk" of 2 clusters a "page"... or why UFS2 filesystem takes them 2 by 2... i prefer to left this example as is, feel free to correct me
Also, there is a simple "trick" that can be used to display the files divided in clusters of the size you want (maybe are others but this is the faster way i found). By formatting a usb pendrive in advanced mode, using the cluster size your need, then moving the folder there (by using FAT32 with 1024 bytes cluster the value reported by your operative system is the same one stored inside SAVE_DATA_LIST)
PARAM.PFD relationship
Patches
APP_VER, TARGET_APP_VER, PS3_SYSTEM_VER, VERSION lot of things to add here, maybe needs another page, but im not the best one to document them
Purchase content
CONTENT_ID, NP_COMMUNICATION_ID, NPCOMMID
Special characters available in text strings
These symbols can be used in TITLE, SUBTITLE, DETAIL, etc...
Check here for other valid characters: http://www.havirho.eu/Programming/U-02400-tm-U-027FF.htm
GAMEDATA_ID
length max should be 32 (0x20)?
FOLDER_NAME and FOLDERNAME_00
?
Others paths
/dev_hdd0/tmp/disc_install/
PS3_GAME/
- C00, HTMLDIR, DRMDIR, INSDIR, LICDIR, MANUAL, PKGDIR, SHOPDIR, TRPDIR, Lxx
Note:e.g. for MANUAL on NPUA80543/MANUAL/ with .dds files. Sub folder 02 is for French, 03 is for Spanish but no .SFO
LINK.XML
Description
Used in category WT (and probably all others) to create a link in XMB to a webpage (and probably to a direct download link, if the mimetype of the file is recognized/supported/allowed by the PS3 as valid... note the download paths are hardcoded in the firmware and are dependant of the file minetype)
The file LINK.XML must be (re)placed in the same folder of the PARAM.SFO. this kind of .pkg's doesn't contains an USRDIR sub-folder neither an EBOOT.BIN... but the PARAM.SFO is marked as "BOOTABLE"
In a standard .pkg the item that "boots" is the EBOOT.BIN... but in this kind of .pkg's the item that "boots" is the LINK.XML (or more specifically his contents, in this case a link that needs to be managed by the browser)
This presents a problem when a game folder contains 2 items that can "boot" (EBOOT.BIN, and LINK.XML in this priority order). "this service has ended" message will be display on xmb (probably also with other none valid structure).
When the LINK.XML is not valid (as other than url), the XMB still try to launch an Internet website but with adress as "about: blank"
Link ver="1.0" with other value don t seems to have any outcome (on core engine used).
LINK.XML Example:
Code Sample
Notes
*Found in "animax" app (EP4452-NPEB00691_00-DE000000FULL0100), other ID: NPEB00701, NPEB00702...
*Internet Browser Engine core Silk is used (in one test only, Java script elements are not loaded, similar than if the setting for them was OFF, when from WebKit it was loaded).
*Not related to WT or only to .SFO: Web browser from Internet Search, or XMB options on Game column when a game (using parameter TITLE) is unlighted, use Engine core WebKit.
*Not related to WT or .SFO: Web browser in PS3 Games (in one example) use Engine core Silk. After closing it, boot back the game (similar process than MultiMan)
*Not related to WT or .SFO: "what's news" use Engine core WebKit and display "You are launching an internet website" message.
*Not related to WT or .SFO: Online Instruction Manuals and Internet Browser,linked to the same setting, use either WebKit or Silk.
*More on Online Connection
Lxx: License Area
- Path:
/dev_bdvd/PS3_GAME/PARAM.SFO /setting/system/licenseArea /dev_bdvd/PS3_GAME/L00/PARAM.SFO /dev_bdvd/PS3_GAME/L01/PARAM.SFO /dev_bdvd/PS3_GAME/L02/PARAM.SFO /dev_bdvd/PS3_GAME/L03/PARAM.SFO /dev_bdvd/PS3_GAME/L04/PARAM.SFO /dev_bdvd/PS3_GAME/L05/PARAM.SFO
/dev_bdvd/PS3_GAME/C00/L00/PARAM.SFO /dev_bdvd/PS3_GAME/C00/L01/PARAM.SFO /dev_bdvd/PS3_GAME/C00/L02/PARAM.SFO /dev_bdvd/PS3_GAME/C00/L03/PARAM.SFO /dev_bdvd/PS3_GAME/C00/L04/PARAM.SFO /dev_bdvd/PS3_GAME/C00/L05/PARAM.SFO
- From HDD0:
/dev_hdd0/game/ABCD12345/Lxx/PARAM.SFO
/dev_hdd0/game/ABCD12345/C01/Lxx/PARAM.SFO ---only working if region setting is L03 country (only other tested: L00 not working)
Few speculation: Path used to restrict the content to a specific License Area:
- Ancestor of Parental_Level_x (Parental_Level_x was created around FW 2.00? and them Region_Deny later (around FW 3.30 or less) making theses Lxx path archaic ( and so if have been used, only in early titles). Title_xx was early implemented but it is not up to the region.
or
*Offspring of few parameters and implemented recently ( FW? and all region?) for use different License Area in the same region (L03?).
You can quickly check your region area with this sub folder (other than checking debug menu, parental level, original Time Zone setting, ...) by using this sub folder and inserting content file informations such ICON0 etc... (will load directly on XMB instead of regular path but can have case it s not) and param.sfo (will load if not embedded shadow copy). L** path can be used for quick trick/test and avoid error code related to disc.sfo mostly.
Folder name | License Area | Regions |
---|---|---|
L00 | SCEJ | Japan |
L01 | SCEA | US (L01), Canada (North America), Mexico (L01), Central America, South America |
L02 | SCEE | Europe/Middle East/Africa, U.K./Ireland, Australia/New Zealand (Oceania: L02), Russia, Ukraine, India, Central Asia , |
L03 | SCEH | Singapore/Malaysia (Southeast Asia)?, Taiwan (L03), Hong Kong (L03) |
L04 | SCEK | Korea (South Korea) |
L05 | SCH | China |
Unlinked Note: Button Behavior: for L05 is also O , Oceania is X. Path Pioneer with significant idea about it: Deroad
You can compare the result with this table (and when L** are more defined, we will disturb this table):
Regions and report which Lxx is loaded on your Region and which speculation is wrong.
You can load different Lxx folder by using Debug Menu Setting Region but be alert about your TV setting display video (NTSC/PAL).
Here is a collection of folders (from L00 to L10) with icons displaying the different numbers, this way is easy to know which one is used by XMB, to make the test just copy the folders next to USRDIR folder inside the installation folder of any app: region subfolders tests.zip (430.22KB) http://www.sendspace.com/file/ikvult
See also: "license area" restrictions used in combination with "parental level" http://www.ps3devwiki.com/wiki/Talk:PARAM.SFO#Lxx:_License_Area
PSvita & Other Mobile device
- PSVita Remote play: ATTRIBUTE for remote play. See main page.
- PSVita Cross play : PS VITA used as controller but not directly SFO related.
PS3 FW min 4.20 with PS VITA FW min 1.80:
PS3_GAME/CROSSDIR/DATA000.SIG (Encrypted Certificate, magic "CER") PS3_GAME/CROSSDIR/DATA000.PKG (PS Vita PKG, DRM type: "free") PS3_GAME/CROSSDIR/DATA000.PNG
- PSVita Cross buy: PS3 FW min 4.25? See above for title id and PS3_DISC.SFB but no SFO related.
- PS VITA System Application Utility: dev_hdd0/home/0000000x/psp2_backup/
Name | description | notes |
---|---|---|
ps1 | Playstation 1 | |
psm | Playstation Mobile | |
psp | Playstation Portable | |
psp2 | Playstation Vita | icon0 & param.sfo on PCSE000**/sce_sys/ |
System | Full Playstation Vita Backup |
E.g.: PlayStation Mobile (implemented around 4.21 firmware)
explore_plugin_full\Text\English.xml (inside explore_plugin_full.rco) <Text name="msg_applications_psm">Applications (PlayStation®Mobile)</Text>
Note 1: psp2 is the codename of PSvita, this contents are "shared/exported/imported" between PS3 and PSvita) Note 2: Can be also found without ps vita, generated folder and displayed :e.g. with PS vita pkg Note 3: "psp" folder display "psp/other", "system" folder don t seems to expect .pkg. Note 4: Trophy PS3-PS vita for possible similar user path.
- keyboard/mouse support (in one of the patches of game "DUST 514") ...?
http://gamescatalyst.com/2012/08/ps3-users-to-make-contact-with-their-pc-neighbours-as-dust-514-migrates-to-eve-onlines-servers/ previous old game UNreal III has keyboard support, but not from SFO.
- new youtube app
youtube remote control from a paired smartphone -- http://www.ps3news.com/playstation-3-psn-news/sony-announces-the-new-youtube-app-hits-playstation-3-today/
To Do
There are lot of "yes" in the parameters table that in fact are optional "opt". The "yes" means the value is mandatory, so the table is not fully correct, it needs to add a lot more "opt" in the paces of the "yes"
Also... this table represents the values needed for each content ordered by CATEGORY, but there are different contents that shares the same CATEGORY (like the different types of patches, DLC's, and game installations... alll them uses "GD"
The "parameter table" cant contain all this different variations, by now i dont see a way to do it
Suggestions
- Link each ID to a subpage, so they can be centrally managed (some are also listed here : http://www.ps3devwiki.com/wiki/Productcode )
- Sure NP Communication refers to Network Platform and not Playstation Network(sdk) ?
- The name comes from: NPMT (Network Platform Management Tools) --Sandungas 06:06, 18 January 2013 (MSK)