Editing PARAM.SFO
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
[[Category:Software]] | |||
'''SFO''' ('''S'''ystem '''F'''ile '''O'''bject) are used in folders which content needs to be displayed in the [[XMB]]. | '''SFO''' ('''S'''ystem '''F'''ile '''O'''bject) are used in folders which content needs to be displayed in the [[XMB]]. | ||
The basic file/folder structure of a '''PS3 content''' is composed by a SFO, the multimedia [[Content Information Files]], and for special content like [[Game Saves]] or [[Trophy files]] there is a [[PARAM.PFD]] for security reasons, other type of content like games or apps needs an structure of subfolders with names as INSDIR, LICDIR, PKGDIR, TRPDIR, USRDIR, etc... | The basic file/folder structure of a '''PS3 content''' is composed by a SFO, the multimedia [[Content Information Files]], and for special content like [[Game Saves]] or [[Trophy files]] there is a [[PARAM.PFD]] for security reasons, other type of content like games or apps needs an structure of subfolders with names as INSDIR, LICDIR, PKGDIR, TRPDIR, USRDIR, etc... | ||
The values contained in a SFO can be simplyfied as inputs/outputs for/from the content: | |||
* Boot modifyers (flags) that are sent to the content when is executed to activate special modes (e.g. audio and video modes of a game). | |||
* Information texts about the content and his restrictions (e.g. title and version of a game). | |||
'''SFX''' ('''S'''ystem '''F'''ile in '''X'''ML format) is similar than SFO but without the data related to | |||
'''SFX''' ('''S'''ystem '''F'''ile in '''X'''ML format) is similar than SFO but without the data related to his structure (the SFO metadata that has no real value). | |||
The conversion between the 2 formats is direct because the important values contained in both formats are the same ('''version''', '''param_key''', '''param_fmt''', '''param_max_len''' & '''param_data'''). | The conversion between the 2 formats is direct because the important values contained in both formats are the same ('''version''', '''param_key''', '''param_fmt''', '''param_max_len''' & '''param_data'''). | ||
SFO's and SFX's can be chained in a structure of subfolders where the "main" SFO activates a special subfolder, and the subfolder contains another SFO that activates another subfolder and so on. | SFO's and SFX's can be chained in a structure of subfolders where the "main" SFO activates a special subfolder, and the subfolder contains another SFO that activates another subfolder and so on. | ||
This structures are limited by the system and activated by a combination of [[#CATEGORY|CATEGORY]] and special flags on [[#ATTRIBUTE|ATTRIBUTE]]. | |||
In Blu-Ray discs, the "main" PARAM.SFO itself is activated by another flag inside [[PS3_DISC.SFB]]. | In Blu-Ray discs, the "main" PARAM.SFO itself is activated by another flag inside [[PS3_DISC.SFB]]. | ||
---- | |||
==Internal Structure== | ==Internal Structure== | ||
===header=== | ===header=== | ||
{{Boxcode|content=<syntaxhighlight lang="c"> | |||
{{Boxcode| | struct header | ||
struct | |||
{ | { | ||
uint32_t magic; / | uint32_t magic; /* Always PSF */ | ||
uint32_t version; / | uint32_t version; /* Usually 1.1 */ | ||
uint32_t key_table_start; / | uint32_t key_table_start; /* Start position of key_table */ | ||
uint32_t data_table_start; /* Start | uint32_t data_table_start; /* Start position of data_table */ | ||
uint32_t | uint32_t index_table_entries; /* Number of entries in index_table*/ | ||
}; | }; | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
===index_table=== | ===index_table=== | ||
This structure is repeated the number of times defined in '''index_table_entries''' in the header. All values are in Little Endian. | |||
{{Boxcode|content=<syntaxhighlight lang="c"> | |||
struct index_table | |||
{{Boxcode| | |||
struct | |||
{ | { | ||
uint16_t | uint16_t param_key_offset; /* param_key offset (relative to start offset of key_table) */ | ||
uint16_t | uint16_t param_data_fmt; /* param_data data type */ | ||
uint32_t | uint32_t param_data_len; /* param_data used bytes */ | ||
uint32_t | uint32_t param_data_max_len; /* param_data total reserved bytes */ | ||
uint32_t | uint32_t param_data_offset; /* param_data offset (relative to start offset of data_table) */ | ||
}; | }; | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
===key_table=== | |||
The entries of this table (and the next table) can vary depending of the kind of content. Are always ordered alphabetically (from A to Z), each entry of this table is NULL terminated with 1 blank byte (0x00) to separate them. The valid values used in the most common content types are grouped in [[#Parameters_Table|Parameters Table]] for a fast reference. | |||
The table has padding at the end to align their size to a multiply of 4, this padding is added after the last blank byte of the last entry. If the last entry (included his blank byte) matches with a multiply of 4 this padding doesn't exist. | |||
===data_table=== | |||
This table has no padding between entries neither at the end, '''param_max_len''' for each entry is stored in the '''index_table''' and this sizes are fixed by each entry (e.g. RESOLUTION always has a '''param_max_len''' of 4 bytes), so the space in '''data_table''' can be considered reserved (filled with zeroes when not used). | |||
*Integer entries uses all the reserved bytes, so the '''param_len''' is the same as '''param_max_len'''. | |||
*UTF-8 entries never uses all the reserved bytes, needs 1 blank byte after the last character of the text string, this blank byte can be considered part of the string to count the '''param_len''' bytes for this entry (e.g. the title "my homebrew " has a '''param_len''' of 12 bytes from the total of 128 reserved in '''param_max_len'''). | |||
*Some of the UTF-8 parameters (DETAIL, SAVEDATA_DETAIL, SAVEDATA_TITLE, SUB_TITLE, TITLE, and TITLE_xx for other languages) are texts intended to be displayed in screen and can contain any character from the font used by [[XMB]], this includes some special symbols like the star used in '''★ Install Packages''', to know what characters are available is needed to display all the characterset of the font in PC as explained in [[XMB Fonts]] page | |||
{{Boxnotice1|content= | |||
'''param_fmt:''' Partially known based in some examples found in different content | |||
}} | |||
{| class="wikitable" | |||
|- | |- | ||
! | ! param_fmt !! Format !! Notes | ||
|- | |- | ||
| 04 00 || | | 04 00 || style="background-color:#00DDDD;" | utf-8 Special Mode || Used in contents generated by the system, e.g: '''Game Saves''' (ACCOUNT_ID, PARAMS, PARAMS2, SAVEDATA_FILE_LIST, SAVEDATA_PARAMS)... and '''Trophies''' (PADDING) | ||
|- | |- | ||
| 04 02 || | | 04 02 || style="background-color:#DDDD00;" | utf-8 || Character string, NULL finished (0x00) | ||
|- | |- | ||
| 04 04 || | | 04 04 || style="background-color:#DD00DD;" | integer || 32 bits unsigned | ||
|- | |- | ||
|} | |} | ||
==Internal Structure Examples== | ==Internal Structure Examples== | ||
Both example files (SFO & SFX) are hand made (the structure is correct but are only a minimal example). Both contains the same info but in different format: only 1 entry (TITLE_ID) and the value for this entry (BLUS12345) | Both example files (SFO & SFX) are hand made (the structure is correct but are only a minimal example). Both contains the same info but in different format: only 1 entry (TITLE_ID) and the value for this entry (BLUS12345) | ||
The difference between them is SFO contains the "metadata" info related with his structure, and SFX dont (its XML code). | |||
===SFO=== | ===SFO=== | ||
0x00 <span style="background:#ff6666;">00 50 53 46</span> <span style="background:#ff6666;">01 01 00 00</span> <span style="background:#ff6666;">24 00 00 00</span> <span style="background:#ff6666;">30 00 00 00</span> | <span style="background:#ff6666;">.PSF....$...0...</span> | | |||
0x10 <span style="background:#ff6666;">01 00 00 00</span> <span style="background:#66ff66;">00 00</span> <span style="background:#66ff66;">04 02</span> <span style="background:#66ff66;">0A 00 00 00</span> <span style="background:#66ff66;">0F 00 00 00</span> | <span style="background:#ff6666;">....</span><span style="background:#66ff66;">............</span> | | |||
0x20 <span style="background:#66ff66;">00 00 00 00</span> <span style="background:#6666ff;">54 49 54 4C 45 5F 49 44 00</span> <span style="background:#6666ff;">00 00 00</span> | <span style="background:#66ff66;">....</span><span style="background:#6666ff;">TITLE_ID....</span> | | |||
0x30 <span style="background:#ffff66;">42 4C 55 53 31 32 33 34 35 00 00 00 00 00 00 00</span> | <span style="background:#ffff66;">BLUS12345.......</span> | | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Areas !! Offset !! Size !! Name !! Example !! Notes | ! style="background-color:#DDDDDD;" | Areas !! Offset !! Size !! Name !! Example !! Value (conversion) !! Notes | ||
|- | |- | ||
| rowspan="5" style="background-color:#ff6666;" | header || 0x00 || 0x04 || '''magic''' || 00 50 53 46 || PSF (utf-8) || | |||
| 0x00 || 0x04 || '''magic''' || PSF || | |||
|- | |- | ||
| 0x04 || 0x04 || '''version''' || 01 01 00 00 || 1.01 | | 0x04 || 0x04 || '''version''' || 01 01 00 00 || 1.01 (Big endian, decimal) || | ||
|- | |- | ||
| 0x08 || 0x04 || '''key_table_start''' || 24 00 00 00 || | | 0x08 || 0x04 || '''key_table_start''' || 24 00 00 00 || 0x24 (Big endian) || Start of <span style="background:#6666ff;">'''key_table'''</span> | ||
|- | |- | ||
| 0x0C || 0x04 || '''data_table_start''' || 30 00 00 00 || | | 0x0C || 0x04 || '''data_table_start''' || 30 00 00 00 || 0x30 (Big endian) || Start of <span style="background:#ffff66;">'''data_table'''</span> | ||
|- | |- | ||
| 0x10 || 0x04 || ''' | | 0x10 || 0x04 || '''index_table_entries''' || 01 00 00 00 || 1 (Big endian, decimal) || Number of entries in the <span style="background:#66ff66;">'''index_table'''</span> | ||
|- | |- | ||
| rowspan="5" style="background-color:#66ff66;" | index_table || 0x14 || 0x02 || '''key_table_offset''' || 00 00 || 0x00 (Big endian) || (Start of <span style="background:#6666ff;">'''param_key'''</span>) - (Start of <span style="background:#6666ff;">'''key_table'''</span>) = 0x24-0x24 = 0 | |||
| 0x14 || 0x02 || ''' | |||
|- | |- | ||
| 0x16 || 0x02 || ''' | | 0x16 || 0x02 || '''param_fmt''' || 04 02 || || Utf-8, refered to <span style="background:#ffff66;">'''param_data'''</span> | ||
|- | |- | ||
| 0x18 || 0x04 || ''' | | 0x18 || 0x04 || '''param_len''' || 0A 00 00 00 || 10 (Big endian, decimal) || <span style="background:#ffff66;">'''param_data'''</span> used length is BLUS12345 (9 bytes) + 1 blank byte NULL terminated = 10 bytes | ||
|- | |- | ||
| 0x1C || 0x04 || ''' | | 0x1C || 0x04 || '''param_max_len''' || 0F 00 00 00 || 16 (Big endian, decimal) || [[#TITLE_ID|TITLE_ID]] <span style="background:#ffff66;">'''param_data'''</span> has always 16 bytes length reserved | ||
|- | |- | ||
| 0x20 || 0x04 || ''' | | 0x20 || 0x04 || '''data_table_offset''' || 00 00 00 00 || 0x00 (Big endian) || (Start of <span style="background:#ffff66;">'''param_data'''</span>) - (Start of <span style="background:#ffff66;">'''data_table'''</span>) = 0x30-0x30 = 0 | ||
|- | |- | ||
| rowspan="2" style="background-color:#6666ff;" | key_table || 0x24 || 0x09 || '''param_key''' || 5449544C455F494400 || TITLE_ID (utf-8) || <span style="background:#66ff66;">'''key_table_offset'''</span> is refered to this <span style="background:#6666ff;">'''param_key'''</span> | |||
| 0x24 || 0x09 || ''' | |||
|- | |- | ||
| 0x2D || 0x03 || ''padding'' || 00 00 00 || || 9 bytes used by the previous entries + 3 padding = aligned to 12 bytes | |||
| 0x30 || 0x0F || ''' | |- | ||
| rowspan="1" style="background-color:#ffff66;" | data_table || 0x30 || 0x0F || '''param_data''' || 41424344313233343500 || BLUS12345 (utf-8) || <span style="background:#66ff66;">'''param_fmt''', '''param_len''', '''param_max_len''', and '''data_table_offset'''</span> are refered to this <span style="background:#ffff66;">'''param_data'''</span> | |||
|} | |} | ||
===SFX=== | ===SFX=== | ||
{{ | {{Boxcode|content=<syntaxhighlight lang="xml"> | ||
<?xml version="1.0" encoding="utf-8" standalone="yes"?> | <?xml version="1.0" encoding="utf-8" standalone="yes"?> | ||
<paramsfo add_hidden="false"> | <paramsfo add_hidden="false"> | ||
Line 132: | Line 128: | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
{{Boxtip3|content= SFX are used in some disc with special content. See [[#CATEGORY_For_Disc_contents|CATEGORY For Disc Contents]]<br />SFX Can be used as "templates" to generate SFO files<br />SFX Can be created using a SFO as the "source". See: [[Dev_Tools#SFO2SFX|SFO2SFX]]}} | |||
==SFO Requirements for HDD contents== | ==SFO Requirements for HDD contents== | ||
This table contains all the | This table contains all the '''param_key''''s known/found for an overview of the requirements needed by the PARAM.SFO of each content. | ||
{| class="wikitable" style=" | Columns of the table are named by the [[#CATEGORY|CATEGORY]] used by this content. | ||
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable sortable" style="border:1px solid #999; border-collapse: collapse;" | |||
|- | |- | ||
! colspan=4 | ! colspan=4 | param !! colspan=12 | Used in SFO/SFX with [[#CATEGORY|CATEGORY]] | ||
|- | |- | ||
! colspan=" | ! colspan=3 | In SFO and SFX !! In SFO !! colspan="6" | Bootable || colspan="2" | System Data || colspan="2" | Saves || colspan="1" | Transfer || Trophy | ||
|- | |- | ||
! | ! key !! fmt !! max_len !! len || <abbr title="HDD Game">HG</abbr>, <abbr title="Photo">'''AP'''</abbr>, <abbr title="Music">'''AM'''</abbr>, <abbr title="Video">'''AV'''</abbr>, <abbr title="TV">'''AT'''</abbr>, <abbr title="Network">'''CB'''</abbr>, <abbr title="Playstation Network">'''HM'''</abbr>, <abbr title="Broadcast Video">'''BV'''</abbr>, <abbr title="Web TV">'''WT'''</abbr> !! <abbr title="PS1 Game">1P</abbr> !! <abbr title="PS2 Disc Game">2G</abbr> !! <abbr title="PS2 Classics Game">2P</abbr> !! <abbr title="Minis Game">MN</abbr> !! <abbr title="PSP Remasters">PE</abbr> !! <abbr title="Game Data">GD</abbr> !! <abbr title="PS2 Emulator Data">2D</abbr> !! <abbr title="Save Data">SD</abbr> !! <abbr title="Minis Save Data">MS</abbr> !! <abbr title="PSP Game">PP</abbr> !! [[Image:Trophy-platinum.png|Trophy (doesnt uses CATEGORY)|x23px]] | ||
|- | |- | ||
| [[#ACCOUNT_ID|ACCOUNT_ID]] || utf8-S || colspan=2 style="text-align:right;" | 16 (0x010) | |||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} | |||
|- | |- | ||
| [[#ACCOUNTID|ACCOUNTID]] || utf8 || colspan=2 style="text-align:right;" | 16 (0x010) | |||
| [[#ACCOUNTID|ACCOUNTID]] || | |||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | ||
|- | |- | ||
| [[#ANALOG_MODE|ANALOG_MODE]] || {{ | | [[#ANALOG_MODE|ANALOG_MODE]] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | | {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#APP_VER|APP_VER]] || | | [[#APP_VER|APP_VER]] || utf8 || style="text-align:right;" | 8 (0x008) || style="text-align:right;" | 6 (0x006) | ||
| {{Opt}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{ | | {{Opt}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#ATTRIBUTE|ATTRIBUTE]] || {{ | | [[#ATTRIBUTE|ATTRIBUTE]] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| {{Opt}} || {{Yes}} || {{Yes}} || {{Opt}} || {{Yes}} || {{Yes}} || {{ | | {{Opt}} || {{Yes}} || {{Yes}} || {{Opt}} || {{Yes}} || {{Yes}} || {{Opt}} || {{No}} || {{Yes}} || {{No}} || {{Yes}} || {{No}} | ||
|- | |- | ||
| [[#BOOTABLE|BOOTABLE]] || {{ | | [[#BOOTABLE|BOOTABLE]] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{ | | {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} | ||
|- | |- | ||
| [[#CATEGORY|CATEGORY]] || | | [[#CATEGORY|CATEGORY]] || utf8 || style="text-align:right;" | 4 (0x004) || style="text-align:right;" | 3 (0x003) | ||
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} | | {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} | ||
|- | |- | ||
| [[#CONTENT_ID|CONTENT_ID]] || | | [[#CONTENT_ID|CONTENT_ID]] || utf8 || style="text-align:right;" | 48 (0x030) || style="text-align:right;" | 37 (0x025) | ||
| {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | | {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#DETAIL|DETAIL]] || | | [[#DETAIL|DETAIL]] || utf8 || style="text-align:right;" | 1024 (0x400) || style="text-align:right;" | variable | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{ | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#GAMEDATA_ID|GAMEDATA_ID]] || | | [[#GAMEDATA_ID|GAMEDATA_ID]] || utf8 || style="text-align:right;" | 32 (0x020) || style="text-align:right;" | ? | ||
| ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? | | ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? | ||
|- | |- | ||
| [[#ITEM_PRIORITY|ITEM_PRIORITY]] || {{ | | [[#ITEM_PRIORITY|ITEM_PRIORITY]] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | | {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#LANG|LANG]] || {{ | | [[#LANG|LANG]] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | ||
|- | |- | ||
| [[#LICENSE|LICENSE]] || | | [[#LICENSE|LICENSE]] || utf8 || style="text-align:right;" | 512 (0x200) || style="text-align:right;" | variable | ||
| {{Yes}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | | {{Yes}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#NP_COMMUNICATION_ID|NP_COMMUNICATION_ID]] || | | [[#NP_COMMUNICATION_ID|NP_COMMUNICATION_ID]] || utf8 || style="text-align:right;" | 16 (0x010) || style="text-align:right;" | 13 (0x00D) | ||
| {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | | {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#NPCOMMID|NPCOMMID]] || | | [[#NPCOMMID|NPCOMMID]] || utf8 || style="text-align:right;" | 16 (0x010) || style="text-align:right;" | 12 (0x00C) | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | ||
|- | |- | ||
| [[#PADDING|PADDING]] || | | [[#PADDING|PADDING]] || utf8-S || style="text-align:right;" | 8 (0x008) || style="text-align:right;" | 0 (0x000) | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | ||
|- | |- | ||
| [[#PARAMS|PARAMS]] || | | [[#PARAMS|PARAMS]] || utf8-S || colspan=2 style="text-align:right;" | 1024 (0x400) | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{ | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#PARAMS2|PARAMS2]] || | | [[#PARAMS2|PARAMS2]] || utf8-S || colspan=2 style="text-align:right;" | 12 (0x00C) | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{ | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#PARENTAL_LEVEL_x|PARENTAL_LEVEL_'''x''']] || {{ | | [[#PARENTAL_LEVEL_x|PARENTAL_LEVEL_'''x''']] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | | {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#PARENTAL_LEVEL|PARENTAL_LEVEL]] || {{ | | [[#PARENTAL_LEVEL|PARENTAL_LEVEL]] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} | | {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} | ||
|- | |- | ||
| [[#PARENTALLEVEL|PARENTALLEVEL]] || {{ | | [[#PARENTALLEVEL|PARENTALLEVEL]] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | | {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | ||
|- | |- | ||
| [[#PATCH_FILE|PATCH_FILE]] || | | [[#PATCH_FILE|PATCH_FILE]] || utf8 || style="text-align:right;" | 32 (0x020) || style="text-align:right;" | ? | ||
| ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? | | ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? | ||
|- | |- | ||
| [[#PS3_SYSTEM_VER|PS3_SYSTEM_VER]] || | | [[#PS3_SYSTEM_VER|PS3_SYSTEM_VER]] || utf8 || colspan=2 style="text-align:right;" | 8 (0x008) | ||
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{ | | {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Opt}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{No}} | ||
|- | |- | ||
| [[#REGION_DENY|REGION_DENY]] || {{ | | [[#REGION_DENY|REGION_DENY]] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| {{Opt}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | | {{Opt}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#RESOLUTION|RESOLUTION]] || {{ | | [[#RESOLUTION|RESOLUTION]] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | | {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#SAVEDATA_DETAIL|SAVEDATA_DETAIL]] || {{ | | [[#SAVEDATA_DETAIL|SAVEDATA_DETAIL]] || utf8 || style="text-align:right;" | 1024 (0x400) || style="text-align:right;" | variable | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{ | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} | ||
|- | |||
| [[#SAVEDATA_DIRECTORY|SAVEDATA_DIRECTORY]] || utf8 || style="text-align:right;" | 64 (0x040) || style="text-align:right;" | variable | |||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} | |||
|- | |- | ||
| [[# | | [[#SAVEDATA_FILE_LIST|SAVEDATA_FILE_LIST]] || utf8-S || colspan=2 style="text-align:right;" | 3168 (0xC60) | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{ | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[# | | [[#SAVEDATA_LIST_PARAM|SAVEDATA_LIST_PARAM]] || utf8 || style="text-align:right;" | 8 (0x008) || style="text-align:right;" | variable | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{ | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[# | | [[#SAVEDATA_PARAMS|SAVEDATA_PARAMS]] || utf8-S || colspan=2 style="text-align:right;" | 128 (0x080) | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[# | | [[#SAVEDATA_TITLE|SAVEDATA_TITLE]] || utf8 || style="text-align:right;" | 128 (0x080) || style="text-align:right;" | variable | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} | |||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{ | |||
|- | |- | ||
| [[#SOUND_FORMAT|SOUND_FORMAT]] || {{ | | [[#SOUND_FORMAT|SOUND_FORMAT]] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | | {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#SOURCE|SOURCE]] || {{ | | [[#SOURCE|SOURCE]] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | ||
|- | |- | ||
| [[#SUB_TITLE|SUB_TITLE]] || | | [[#SUB_TITLE|SUB_TITLE]] || utf8 || style="text-align:right;" | 128 (0x080) || style="text-align:right;" | variable | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{ | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#TARGET_APP_VER|TARGET_APP_VER]] || | | [[#TARGET_APP_VER|TARGET_APP_VER]] || utf8 || style="text-align:right;" | 8 (0x008) || style="text-align:right;" | 6 (0x006) | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{ | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#TITLE|TITLE]] || | | [[#TITLE|TITLE]] || utf8 || style="text-align:right;" | 128 (0x080) || style="text-align:right;" | variable | ||
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{ | | {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{No}} | ||
|- | |- | ||
| [[#TITLE_ID|TITLE_ID]] || | | [[#TITLE_ID|TITLE_ID]] || utf8 || style="text-align:right;" | 16 (0x010) || style="text-align:right;" | 10 (0x00A) | ||
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{ | | {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{No}} | ||
|- | |- | ||
| [[#TITLE_xx|TITLE_'''xx''']] || | | [[#TITLE_xx|TITLE_'''xx''']] || utf8 || style="text-align:right;" | 128 (0x080) || style="text-align:right;" | variable | ||
| {{Opt}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | | {{Opt}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} | ||
|- | |- | ||
| [[#TITLEID0xx|TITLEID0'''xx''']] || | | [[#TITLEID0xx|TITLEID0'''xx''']] || utf8 || style="text-align:right;" | 16 (0x010) || style="text-align:right;" | 9 (0x009) | ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | | {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} | ||
|- | |- | ||
| [[#VERSION|VERSION]] || | | [[#VERSION|VERSION]] || utf8 || style="text-align:right;" | 8 (0x008) || style="text-align:right;" | 6 (0x006) | ||
| {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{ | | {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} | ||
|- | |- | ||
| [[#XMB_APPS|XMB_APPS]] || {{ | | [[#XMB_APPS|XMB_APPS]] || {{stylematrix}} int32 || colspan=2 style="text-align:right;" | 4 (0x004) | ||
| ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? | | ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? | ||
|} | |} | ||
===SFO Requirements for Trophies=== | |||
Trophy installations uses a PARAM.SFO '''without CATEGORY''', can be considered different than the others because XMB doesnt identify them based in his CATEGORY but the format is the same | |||
His placement in XMB up to firmware 4.25 was in "Game" column... after 4.30 are placed in "PlayStation Network" column, this placement in XMB is not dependant of his CATEGORY | |||
Trophy folders are generated by a trophy installer (TROPHY.TRP), for more info see: [[Trophy files]] | |||
*The requirements of this type of PARAM.SFO are displayed in the previous table with a "fake" CATEGORY marked as: "╦" | |||
==Parameters Descriptions== | ==Parameters Descriptions== | ||
===ACCOUNT_ID=== | ===ACCOUNT_ID=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8 Special Mode<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x10 (16 bytes)}} | ||
{{Boxtip1|content='''Used by''': Save Data}} | {{Boxtip1|content='''Used by''': Save Data}} | ||
PSN User Account stored as ''' | PSN User Account stored as '''utf-8 Special Mode'''. The string is compared with the info contained in [[XRegistry.sys]]. The comparison can only return two values, right, or wrong, if the comparison returns right the SaveData is valid. | ||
Filled with zeroes when the user has not been registered in PSN. | |||
===ACCOUNTID=== | |||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x10 (16 bytes)}} | |||
{{Boxinfo3|content='''param_fmt''': | |||
{{Boxtip1|content='''Used by''': Trophy}} | {{Boxtip1|content='''Used by''': Trophy}} | ||
Same string than ACCOUNT_ID but stored as ''' | Same string than ACCOUNT_ID but stored as '''utf-8''' because the system uses it for normal functions (in this case is sent to PSN to synchronize the trophy data with your online account). | ||
===ANALOG_MODE=== | ===ANALOG_MODE=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS1 Game}} | {{Boxtip1|content='''Used by''': PS1 Game}} | ||
Line 300: | Line 300: | ||
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes) | ! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes) | ||
|- | |- | ||
| {{ | | {{stylematrix}} 01 00 00 00 || 00 00 00 01 || style="text-align:right;" | 1 || 00000000 00000000 00000000 00000001 || '''Analog Mode Enabled''' | ||
|- | |- | ||
|} | |} | ||
Line 322: | Line 322: | ||
===APP_VER=== | ===APP_VER=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x6 (6 bytes)}} | ||
{{Boxtip1|content='''Used by''': HDD Game, Minis Game, PSP Remasters Game, Game Data}} | {{Boxtip1|content='''Used by''': HDD Game, Minis Game, PSP Remasters Game, Game Data}} | ||
Line 334: | Line 334: | ||
===ATTRIBUTE=== | ===ATTRIBUTE=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, PCEngine game, NEOGEO game, Game Data, Save Data}} | {{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, PCEngine game, NEOGEO game, Game Data, Save Data}} | ||
Line 341: | Line 341: | ||
Values are stored in "Little Endian" format inside the SFO, to represent the whole tables in a "human readable" format has been needed to convert them to "Big Endian" and then to "[http://tizzyt-archive.blogspot.jp/2013/08/learning-binary.html Binary]". | Values are stored in "Little Endian" format inside the SFO, to represent the whole tables in a "human readable" format has been needed to convert them to "Big Endian" and then to "[http://tizzyt-archive.blogspot.jp/2013/08/learning-binary.html Binary]". | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ATTRIBUTE flags< | |+ATTRIBUTE flags for firmware features (1<sup>st</sup> byte) | ||
! colspan="2" | Hexadecimal !! rowspan="2" | Decimal !! rowspan="2" | Binary<br>(flags) !! Feature | ! colspan="2" | Hexadecimal !! rowspan="2" width="75" | Decimal !! rowspan="2" | Binary <br /> (flags) !! colspan="4" | Feature | ||
|- | |- | ||
! little endian !! big endian !! | ! little endian !! big endian !! width="365" | Bootable !! Save Data !! Disc Subfolders | ||
|- | |- | ||
| | | {{stylematrix}} '''01''' 00 00 00 || 00 00 00 '''01''' || style="text-align:right;" | 1 || 00000000 00000000 00000000 0000000'''1''' || bgcolor="#DD6666" | '''PSP Remote Play (v1)''' || '''Copy Protected''' || '''Subfolder Enabled''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''02''' 00 00 00 || 00 00 00 '''02''' || style="text-align:right;" | 2 || 00000000 00000000 00000000 000000'''1'''0 || '''PSP Export''' || ''Not Used Yet'' || ''Not Used Yet'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''04''' 00 00 00 || 00 00 00 '''04''' || style="text-align:right;" | 4 || 00000000 00000000 00000000 00000'''1'''00 || bgcolor="#DD6666" | '''PSP Remote Play (v2)''' <small>''requires: PSP Remote Play (v1)''</small> || ''Not Used Yet'' || ''Not Used Yet'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''08''' 00 00 00 || 00 00 00 '''08''' || style="text-align:right;" | 8 || 00000000 00000000 00000000 0000'''1'''000 || '''XMB In-Game Forced Enabled''' || ''Not Used Yet'' || ''Not Used Yet'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''10''' 00 00 00 || 00 00 00 '''10''' || style="text-align:right;" | 16 || 00000000 00000000 00000000 000'''1'''0000 || '''XMB In-Game Disabled''' || ''Not Used Yet'' || ''Not Used Yet'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''20''' 00 00 00 || 00 00 00 '''20''' || style="text-align:right;" | 32 || 00000000 00000000 00000000 00'''1'''00000 || '''XMB In-Game Background Music''' || ''Not Used Yet'' || ''Not Used Yet'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''40''' 00 00 00 || 00 00 00 '''40''' || style="text-align:right;" | 64 || 00000000 00000000 00000000 0'''1'''000000 || '''System Voice Chat''' ? ''(See note)'' || ''Not Used Yet'' || ''Not Used Yet'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''80''' 00 00 00 || 00 00 00 '''80''' || style="text-align:right;" | 128 || 00000000 00000000 00000000 '''1'''0000000 || '''PSvita Remote Play''' || ''Not Used Yet'' || ''Not Used Yet'' | ||
|} | |||
{| class="wikitable" | |||
|+ATTRIBUTE flags for firmware screens ? (2<sup>nd</sup> byte) | |||
! colspan="2" | Hexadecimal !! rowspan="2" width="75" | Decimal !! rowspan="2" | Binary <br /> (flags) !! colspan="4" | Feature | |||
|- | |- | ||
! little endian !! big endian !! width="365" | Bootable | |||
|- | |- | ||
| | | {{stylematrix}} 00 '''01''' 00 00 || 00 00 '''01''' 00 || style="text-align:right;" | 256 || 00000000 00000000 0000000'''1''' 00000000 || bgcolor="#66DD66" | '''Move Controller Warning''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 '''02''' 00 00 || 00 00 '''02''' 00 || style="text-align:right;" | 512 || 00000000 00000000 000000'''1'''0 00000000 || bgcolor="#66DD66" | '''Navigation Controller Warning''' <small>''requires: Move Controller Warning''</small> | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 '''04''' 00 00 || 00 00 '''04''' 00 || style="text-align:right;" | 1024 || 00000000 00000000 00000'''1'''00 00000000 || bgcolor="#66DD66" | '''PlayStation Eye Cam Warning''' <small>''requires: Move Controller Warning''</small> | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 '''08''' 00 00 || 00 00 '''08''' 00 || style="text-align:right;" | 2048 || 00000000 00000000 0000'''1'''000 00000000 || '''Move Calibration Notification''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 '''10''' 00 00 || 00 00 '''10''' 00 || style="text-align:right;" | 4096 || 00000000 00000000 000'''1'''0000 00000000 || '''Stereoscopic 3D Warning''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 '''20''' 00 00 || 00 00 '''20''' 00 || style="text-align:right;" | 8192 || 00000000 00000000 00'''1'''00000 00000000 || ''Not Used Yet'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 '''40''' 00 00 || 00 00 '''40''' 00 || style="text-align:right;" | 16384 || 00000000 00000000 0'''1'''000000 00000000 || ''Not Used Yet'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 '''80''' 00 00 || 00 00 '''80''' 00 || style="text-align:right;" | 32768 || 00000000 00000000 '''1'''0000000 00000000 || ''Not Used Yet'' | ||
|} | |||
{| class="wikitable" | |||
|+ATTRIBUTE flags for game & software features ? (3<sup>rd</sup> byte) | |||
! colspan="2" | Hexadecimal !! rowspan="2" width="75" | Decimal !! rowspan="2" | Binary <br /> (flags) !! colspan="4" | Feature | |||
|- | |- | ||
! little endian !! big endian !! width="365" | Bootable !! Patches (Overwrite flags) | |||
|- | |- | ||
| | | {{stylematrix}} 00 00 '''01''' 00 || 00 '''01''' 00 00 || style="text-align:right;" | 65536 || 00000000 0000000'''1''' 00000000 00000000 || '''Install Disc''' || ''Unknown'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 '''02''' 00 || 00 '''02''' 00 00 || style="text-align:right;" | 131072 || 00000000 000000'''1'''0 00000000 00000000 || '''Install Packages''' || ''Unknown'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 '''04''' 00 || 00 '''04''' 00 00 || style="text-align:right;" | 262144 || 00000000 00000'''1'''00 00000000 00000000 || ''Unknown'' || param_key: '''RESOLUTION''', '''SOUND_FORMAT''', and ATTRIBUTE flag: '''Remote Play''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 '''08''' 00 || 00 '''08''' 00 00 || style="text-align:right;" | 524288 || 00000000 0000'''1'''000 00000000 00000000 || '''Game Purchase Enabled''' || ''Unknown'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 '''10''' 00 || 00 '''10''' 00 00 || style="text-align:right;" | 1048576 || 00000000 000'''1'''0000 00000000 00000000 || ''Unknown (See note)'' || ATTRIBUTE flag: '''XMB In-Game''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 '''20''' 00 || 00 '''20''' 00 00 || style="text-align:right;" | 2097152 || 00000000 00'''1'''00000 00000000 00000000 || bgcolor="#6666DD" | '''PCEngine''' (X0) || ATTRIBUTE flag: '''Move Controller warning''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 '''40''' 00 || 00 '''40''' 00 00 || style="text-align:right;" | 4194304 || 00000000 0'''1'''000000 00000000 00000000 || '''License Logo Disabled''' || ATTRIBUTE flag: '''Stereoscopic 3D warning''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 '''80''' 00 || 00 '''80''' 00 00 || style="text-align:right;" | 8388608 || 00000000 '''1'''0000000 00000000 00000000 || '''Move Controller Enabled''' || ATTRIBUTE flag: '''Move Controller Enabled''' | ||
|} | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ATTRIBUTE flags< | |+ATTRIBUTE flags for ? (4<sup>th</sup> byte) | ||
! colspan=" | ! colspan="2" | Hexadecimal !! rowspan="2" width="75" | Decimal !! rowspan="2" | Binary <br /> (flags) !! colspan="4" | Feature | ||
! | |||
| colspan=" | |||
|- | |- | ||
| | ! little endian !! big endian !! width="365" | Bootable | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 00 '''01''' || '''01''' 00 00 00 || style="text-align:right;" | 16777216 || 0000000'''1''' 00000000 00000000 00000000 || bgcolor="#6666DD" | Reserved (X1) <small>''requires: PCEngine'' ?</small> | ||
|- | |- | ||
| | | {{stylematrix}} 00 00 00 '''02''' || '''02''' 00 00 00 || style="text-align:right;" | 33554432 || 000000'''1'''0 00000000 00000000 00000000 || bgcolor="#6666DD" | Reserved (X2) <small>''requires: PCEngine'' ?</small> | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 00 '''03''' || '''03''' 00 00 00 || style="text-align:right;" | 50331648 || 000000'''11''' 00000000 00000000 00000000 || bgcolor="#6666DD" | Reserved (X3) <small>''requires: PCEngine'' ?</small> | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 00 '''04''' || '''04''' 00 00 00 || style="text-align:right;" | 67108864 || 00000'''1'''00 00000000 00000000 00000000 || bgcolor="#6666DD" | '''NeoGeo''' (X4) <small>''requires: PCEngine''</small> | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 00 '''05''' || '''05''' 00 00 00 || style="text-align:right;" | 83886080 || 00000'''1'''0'''1''' 00000000 00000000 00000000 || bgcolor="#6666DD" | Reserved (X5) <small>''requires: PCEngine'' ?</small> | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 00 '''06''' || '''06''' 00 00 00 || style="text-align:right;" | 100663296 || 00000'''11'''0 00000000 00000000 00000000 || bgcolor="#6666DD" | Reserved (X6) <small>''requires: PCEngine'' ?</small> | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 00 '''07''' || '''07''' 00 00 00 || style="text-align:right;" | 117440512 || 00000'''111''' 00000000 00000000 00000000 || bgcolor="#6666DD" | Reserved (X7) <small>''requires: PCEngine'' ?</small> | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 00 '''08''' || '''08''' 00 00 00 || style="text-align:right;" | 134217728 || 0000'''1'''000 00000000 00000000 00000000 || ''Not Used Yet'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 00 '''10''' || '''10''' 00 00 00 || style="text-align:right;" | 268435456 || 000'''1'''0000 00000000 00000000 00000000 || ''Not Used Yet'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 00 '''20''' || '''20''' 00 00 00 || style="text-align:right;" | 536870912 || 00'''1'''00000 00000000 00000000 00000000 || ''Not Used Yet'' | ||
|- | |- | ||
| | | {{stylematrix}} 00 00 00 '''40''' || '''40''' 00 00 00 || style="text-align:right;" | 1073741824 || 0'''1'''000000 00000000 00000000 00000000 || ''Not Used Yet'' | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 00 00 '''80''' || '''80''' 00 00 00 || style="text-align:right;" | 2147483648 || '''1'''0000000 00000000 00000000 00000000 || ''Not Used Yet'' | ||
| | |||
| | |||
|} | |} | ||
'''ATTRIBUTE flags for bootable content (1<sup>st</sup> byte)''' | '''ATTRIBUTE flags for bootable content (1<sup>st</sup> byte)''' | ||
{{Boxframe4|content= | {{Boxframe4|content= | ||
{{Boxframe1|content='''Portables''' | {{Boxframe1|content='''Portables''' | ||
Line 552: | Line 473: | ||
'''ATTRIBUTE flags for bootable content (2<sup>nd</sup> byte)''' | '''ATTRIBUTE flags for bootable content (2<sup>nd</sup> byte)''' | ||
{{Boxframe4|content= | {{Boxframe4|content= | ||
{{Boxframe1|content='''Move''' | {{Boxframe1|content='''Move''' | ||
Line 570: | Line 490: | ||
'''ATTRIBUTE flags for bootable content (3<sup>rd</sup> byte)''' | '''ATTRIBUTE flags for bootable content (3<sup>rd</sup> byte)''' | ||
{{Boxframe4|content= | {{Boxframe4|content= | ||
{{Boxframe1|content='''Discs''' | {{Boxframe1|content='''Discs''' | ||
Line 583: | Line 502: | ||
{{Boxframe0|content={{dot}}'''Game Purchase Enabled'''<BR /> | {{Boxframe0|content={{dot}}'''Game Purchase Enabled'''<BR /> | ||
Enables the <span style="background:#bbbbff;">[purchase]</span> option that appears in side menu when pressing {{padtriangle}} over the icon in XMB. Is directly related with [[#CONTENT_ID|CONTENT_ID]]. When the content is purchased | Enables the <span style="background:#bbbbff;">[purchase]</span> option that appears in side menu when pressing {{padtriangle}} over the icon in XMB. Is directly related with [[#CONTENT_ID|CONTENT_ID]]. When the content is purchased his CONTENT_ID is checked online to obtain the license. After the license is retrieved the game loads another PARAM.SFO from a subfolder with different values. E.g. main PARAM.SFO enables the purchase flag and could use the TITLE "Demo", when purchased other PARAM.SFO from a "C00" subfolder is loaded that could use the TITLE "Full". | ||
}} | }} | ||
{{Boxframe0|content={{dot}}'''flag | {{Boxframe0|content={{dot}}'''Unknown flag n21'''<BR /> | ||
When activated, "XMB in Game" for software is used ( | When activated, "XMB in Game" for software is used (e.g.:"Do you want to quit the software now?" similar for apps category) and "About this Game" option is removed (on HDD category). It don t really means it s used for software such AP, AM etc...but can be also during other process such patches etc... | ||
}} | }} | ||
Line 594: | Line 513: | ||
{{Boxframe0|content={{dot}}'''License Logo Disabled''' ''(firmware <3.41?)''<BR /> | {{Boxframe0|content={{dot}}'''License Logo Disabled''' ''(firmware <3.41?)''<BR /> | ||
Disables the <span style="background:#bbbbff;">[About this Game]</span> option that appears in side menu when pressing {{padtriangle}} over the icon in XMB. This flag also removes the needed of storing a [[#LICENSE|LICENSE]] param_key in the PARAM.SFO, the consequence of removing LICENSE param_key is the size of the PARAM.SFO file is reduced drastically (LICENSE text is huge in comparison with the rest of the file... SFO's without LICENSE are much smaller). Used by games that | Disables the <span style="background:#bbbbff;">[About this Game]</span> option that appears in side menu when pressing {{padtriangle}} over the icon in XMB. This flag also removes the needed of storing a [[#LICENSE|LICENSE]] param_key in the PARAM.SFO, the consequence of removing LICENSE param_key is the size of the PARAM.SFO file is reduced drastically (LICENSE text is huge in comparison with the rest of the file... SFO's without LICENSE are much smaller). Used by games that has his own license and not the sony one (e.g: PCengine & NeoGeo) | ||
}} | }} | ||
Line 646: | Line 565: | ||
}} | }} | ||
*This list contains a '''short''' description of all the ATTRIBUTE flags known, there is no room in this page for explaining in detail all this functions but there are several links to other pages that expands the info, please help completing the identification of all flags (with short descriptions and links to other wiki pages when posible/needed), also try to not add too much speculation and in case of speculation use question marks, for an open discussion, any usefull notes or brainstorming use | *This list contains a '''short''' description of all the ATTRIBUTE flags known, there is no room in this page for explaining in detail all this functions but there are several links to other pages that expands the info, please help completing the identification of all flags (with short descriptions and links to other wiki pages when posible/needed), also try to not add too much speculation and in case of speculation use question marks, for an open discussion, any usefull notes or brainstorming use the [[Talk:PARAM.SFO]] page. | ||
===BOOTABLE=== | ===BOOTABLE=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game}} | {{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game}} | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! | ! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes) | ||
|- | |||
| {{stylematrix}} 01 00 00 00 || 00 00 00 01 || style="text-align:right;" | 1 || 00000000 00000000 00000000 00000001 || '''Bootable''' | |||
|- | |||
|} | |||
*'''Bootable''' | |||
If the content is bootable or not, useful when you are going to make a data pkg. | |||
===CATEGORY=== | |||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x3 (3 bytes)}} | |||
{{Boxtip1|content='''Used by''': All but Trophy}} | |||
The next table represents the columns where the content is placed in the [[XMB]] and the CATEGORY asociated. | |||
{| class="wikitable" | |||
|- | |||
! style="background-color:#FFFFFF;" | !! Content Icon !! {{icon category photo}} !! {{icon category music}} !! {{icon category video}} !! {{icon category tv}} !! {{icon category game}} !! {{icon category network}} !! {{icon category psn}} !! Standard name !! Since !! Up to !! Source/generated by: !! Notes & Examples | |||
|- | |||
| rowspan="1" style="text-align:center; background-color:#EEEEEE;" | PSvita || {{icon content psvita}} || || || || || {{No}} || || || '''PSvita''' ? || 4.00 || 4.31+ || .PKG ? || PSvita contents. Not bootable, import/export to PSvita | |||
|- bgcolor="#EEEEEE" | |||
| colspan="14" | | |||
|- | |||
| rowspan="2" style="text-align:center; background-color:#EEEEEE;" | System Data || {{icon content ps3}} || || || || || GD || || || '''Game Data''' || || || PS3 Disc and .PKG || PS3 disc installs, Game updates, Game DLC, Game common user data (e.g: GT5) | |||
|- | |||
| {{icon content ps2}} || || || || || 2D || || || '''PS2 Data''' || 1.31 || 4.31+ || PS2 Disc and .PKG || PS2 Emulator Data, DLC for PS2 Disc games (related with CATEGORY 2G). See: [[Emulation]] | |||
|- bgcolor="#EEEEEE" | |||
| colspan="14" | | |||
|- | |||
| rowspan="3" style="text-align:center; background-color:#EEEEEE;" | Game Saves || {{icon content ps3}} || || || || || SD || || || '''Save Data''' || 1.00 || 4.31+ || PS3 game || See: [[Game_Saves#Game_Saves_PS3 | Game Saves - PS3]] | |||
|- | |||
| {{icon content pspminis}} || || || || || MS || || || '''Memory Stick?''' || 3.15 || 4.31+ || PSP Minis game || See: [[Game_Saves#Game_Saves_Minis.2FPSP_Remaster.2F_PSP | Game Saves - Minis]] | |||
|- | |||
| {{icon content pspremaster}} || || || || || MS || || || '''Memory Stick?''' || || || PSP Remaster game || See: [[Game_Saves#Game_Saves_PSP_Remaster | Game Saves - PSP Remaster]] | |||
|- bgcolor="#EEEEEE" | |||
| colspan="14" | | |||
|- | |||
| rowspan="15" style="text-align:center; background-color:#EEEEEE;" | HDD Bootable || {{icon content ps3}} || AP || || || || || || || '''App Photo''' || || || .PKG || PlayMemories | |||
|- | |||
| {{icon content ps3}} || || AM || || || || || || '''App Music''' || || || .PKG || Qriocity Music Unlimited | |||
|- | |||
| {{icon content ps3}} || || || AV || || || || || '''App Video''' || || || .PKG || Netflix, LoveFilm, Maxdome | |||
|- | |||
| {{icon content ps3}} || || || BV || || || || || '''Broadcast? Video''' || || || .PKG || | |||
|- | |||
| {{icon content ps3}} || || || || AT || || || || '''App TV''' || || || .PKG || QOOK TV, Now TV, Torne (TV/Video Services Column hidden when no installed content) | |||
|- | |- | ||
! | | {{icon content ps3}} || || || || WT || || || || '''Web? TV''' || 3.70 || 4.31+ || .PKG || [http://www.animaxtv.de/ps3player Animaxtv], 4oD etc...starts Web Browser from [[Talk:PARAM.SFO#LINK.XML| LINK.XML]] with corresponding [[Online_Connections#TV.2FVideo_Services| online page]]. | ||
|- | |||
| {{icon content ps3}} || || || || || || CB || || '''CELL? BE?''' || || || .PKG || [[Life with PlayStation]], [http://www.scei.co.jp/folding/en/ Folding@home] | |||
|- | |||
| {{icon content ps3}} || || || || || || || HM || '''Home''' || || || .PKG || PlayStation Home | |||
|- | |||
| {{icon content ps3}} || || || --- || || --- || || SF || '''Store Frontend?''' || || || .PKG || PlayStation Store | |||
|- | |||
| {{icon content ps3}} || || || || || HG || || || '''HDD Game''' || 1.00 || 4.31+ || .PKG || Combined with [[PARAM.SFO#ATTRIBUTE | ATTRIBUTE]] generates "subcategories" e.g:{{icon content pcengine}} and {{icon content neogeo}} | |||
|- | |||
| {{icon content ps2}} || || || || || 2G || || || '''PS2 Game''' || || || PS2 Disc Installation || PS2 Discs installed in internal HDD, only in "backward compatible" PS3's. See: [[Emulation]] | |||
|- | |||
| {{icon content ps2}} || || || || || 2P || || || '''PS2 PSN''' ? || 3.70 || 4.31+ || .PKG || "'''PS2 Classics'''". Re-edited PS2 games released as a .pkg in "PlayStation Store" | |||
|- | |||
| {{icon content ps1}} || || || || || 1P || || || '''PS1 PSN''' ? || 1.70 || 4.31+ || .PKG || "'''PS1 Classics'''". Re-edited PS1 games released as a .pkg in "PlayStation Store" | |||
|- | |||
| {{icon content pspminis}} || || || || || MN || || || '''Minis''' || 3.15 || 4.31+ || .PKG || "'''PSP Minis'''". Format inherited from PSP | |||
|- | |||
| {{icon content pspremaster}} || || || || || PE || || || '''PSP Emulator''' || 3.70 || 4.31+ || .PKG || "'''PSP Remasters'''". Re-edited PSP games released as a .pkg in a "Install Disc" | |||
|- bgcolor="#EEEEEE" | |||
| colspan="14" | | |||
|- | |||
| rowspan="1" style="text-align:center; background-color:#EEEEEE;" | Transferable || {{icon content psp}} || || || || || PP || || || '''PSP''' || || || .PKG || Not bootable, but can be copyed to a PSP or PS VITA (? as option suggest it on XMB) | |||
|- bgcolor="#EEEEEE" | |||
| colspan="14" | | |||
|- | |||
| rowspan="9" style="text-align:center; background-color:#EEEEEE;" | Ps3 Disc || {{icon content ps3}} || || || || || <abbr title="DG path: dev_bdvd/TITLE_ID/PS3_GAME/PARAM.SFO">DG</abbr> || || || '''Disc Game''' || 1.00 || 4.31+ || PS3 Disc || Main content of a Game Disc | |||
|- | |||
| || || || || || <abbr title="AR path: dev_bdvd/TITLE_ID/PS3_GAME/INSDIR/PARAM.SFO">AR</abbr> || || || '''Autoinstall Root''' || || || PS3 Disc || Game Patches and Installable Packages | |||
|- | |||
| || || || || || <abbr title="DP path: dev_bdvd/TITLE_ID/PS3_GAME/PKGDIR/PARAM.SFO">DP</abbr> (<abbr title="IP path: dev_bdvd/TITLE_ID/PS3_GAME/PKGDIR/PKG00/PARAM.SFO">IP</abbr>) || || || '''Disc Package''' ('''Install package''') || || || PS3 Disc || Installable Packages | |||
|- | |||
| || || || || || <abbr title="XR path: dev_bdvd/TITLE_ID/PS3_EXTRA/PARAM.SFO">XR</abbr> (<abbr title="IP path: dev_bdvd/TITLE_ID/PS3_EXTRA/D000/PARAM.SFX">IP</abbr>) || || || '''Extra Root''' ('''Install package''') || || || PS3 Disc || Installable Packages | |||
|- | |||
| || || || || || <abbr title="XR path: dev_bdvd/TITLE_ID/PS3_EXTRA/PARAM.SFO">XR</abbr> (<abbr title="TI path: dev_bdvd/TITLE_ID/PS3_EXTRA/D000/PARAM.SFX">TI</abbr>) || || || '''Extra Root''' ('''Theme Item''') || || || PS3 Disc || Themes | |||
|- | |||
| || || || <abbr title="XR path: dev_bdvd/TITLE_ID/PS3_EXTRA/PARAM.SFO">XR</abbr> (<abbr title="VI path: dev_bdvd/TITLE_ID/PS3_EXTRA/D000/PARAM.SFX">VI</abbr>) || || || || || '''Extra Root''' ('''Video Item''') || || || PS3 Disc || Videos | |||
|- | |||
| || || || <abbr title="VR path: dev_bdvd/TITLE_ID/PS3_CONTENT/VIDEODIR/PARAM.SFO">VR</abbr> (<abbr title="VI path: dev_bdvd/TITLE_ID/PS3_CONTENT/VIDEODIR/D000/PARAM.SFO">VI</abbr>) || || || || || '''Video Root''' ('''Video Item''') || || || PS3 Disc || Videos | |||
|- | |||
| || || || || || <abbr title="TR path: dev_bdvd/TITLE_ID/PS3_CONTENT/THEMEDIR/PARAM.SFO">TR</abbr> (<abbr title="All the themes in the same folder without SFO/SFX, in path: dev_bdvd/TITLE_ID/PS3_CONTENT/THEMEDIR/D000/DATA001.P3T">**</abbr>) || || || '''Theme Root''' || || || PS3 Disc || Themes | |||
|- | |||
| || || || <abbr title="DM path: dev_bdvd/TITLE_ID/PS3_VPRM/PARAM.SFO">DM</abbr> || || || || || '''Disc Movie''' || || || PS3 Disc || Main content of a Movie Disc | |||
|- | |||
|} | |||
*Notes | |||
**Values inside parentheses indicates the structure has another subfolder with another PARAM.SFO. | |||
**[[Game_Saves#Game_Saves_PS1 | PS1 Game Saves]] and [[Game_Saves#Game_Saves_PS2 | PS2 Game Saves]] are stored in a Virtual Memory Card (<Virtual MemCard>.VM1 for PS1 and <Virtual MemCard>.VM2 for PS2) without a PARAM.SFO | |||
**PS Store icon on XMB Video and Game columns might only appear according to your settings<!--//ps icon video XMB column Works on jp, it can works also temporally on us and gb)//--> | |||
---- | |||
====Blu-Ray disc structure details:==== | |||
{| class="wikitable" style="font-size:x-small;" | |||
|+PS3 Bluray Disc Structure | |||
! rowspan="2" colspan="5" | FileSystem Path !! colspan="6" | SFO/SFX Mandatory Parameters !! rowspan="2" | XMB icon !! rowspan="2" | Enabled By !! rowspan="2" | Description and Notes | |||
|- | |||
! [[PARAM.SFO#APP_VER | APP_VER]] !! [[PARAM.SFO#ATTRIBUTE | ATTRIBUTE]] !! [[PARAM.SFO#BOOTABLE | BOOTABLE]] !! [[PARAM.SFO#CATEGORY | CATEGORY]] <sub>(Name)</sub> !! [[PARAM.SFO#TITLE | TITLE]] !! [[PARAM.SFO#TITLE_ID | TITLE_ID]] | |||
|- bgcolor="#aaaaff" | |||
| colspan="2" | dev_bdvd || colspan="9" | || || || Bluray Drive | |||
|- bgcolor="#ccccff" | |||
| rowspan="99" style="background:#aaaaff;" | || colspan="2" | [[PS3_DISC.SFB]] || colspan="8" | || || || Contains: '''HYBRID_FLAG''''s and '''TITLE_ID''' | |||
|- bgcolor="#ffaa00" | |||
| colspan="2" | PS3_GAME || colspan="8" | || || || | |||
|- | |||
| rowspan="11" style="background:#ffaa00;" | || colspan="2" | PARAM.SFO || || {{Opt}} || {{Opt}} || {{Opt}} || '''DG''' <sub>(Disc Game)</sub> || {{Yes}} || {{Yes}} || {{icon content ps3}} || '''HYBRID_FLAG''' (g) in dev_bdvd/PS3_DISC.FSB || | |||
|- bgcolor="#ffbb00" | |||
| colspan="2" | USRDIR || colspan="7" | || {{media ps3 bd}} mounted in {{icon category game}} column || || | |||
|- | |||
| style="background:#ffbb00;" | || colspan="2" | EBOOT.BIN || colspan="6" {{No}} || dev_bdvd/PS3_GAME/ICON0.PNG || '''BOOTABLE''' (1) in dev_bdvd/PS3_GAME/PARAM.SFO || | |||
|- bgcolor="#ffcc00" | |||
| colspan="2" | INSDIR || colspan="7" | || {{No}} ? || || | |||
|- | |||
| rowspan="2" style="background:#ffcc00;" | || colspan="2" | PARAM.SFO || {{Yes}} || {{No}} || {{No}} || '''AR''' <sub>(Autoinstall Root)</sub> || {{No}} || {{No}} || {{No}} ? || '''HYBRID_FLAG''' (g) in dev_bdvd/PS3_DISC.FSB ? || | |||
|- | |||
| colspan="2" | DATA000.PKG || colspan="6" {{No}} || {{No}} ? || || | |||
|- bgcolor="#ffdd00" | |||
| colspan="2" | PKGDIR || colspan="7" | || {{media ps3 bd install}} mounted in {{icon category game}} column || || | |||
|- | |||
| rowspan="4" style="background:#ffdd00;" | || colspan="2" | PARAM.SFO || {{No}} || {{Yes}} || {{No}} || '''DP''' <sub>(Disc Packages)</sub> || {{Yes}} || {{Yes}} || || '''ATTRIBUTE''' (131072) in dev_bdvd/PS3_GAME/PARAM.SFO || | |||
|- bgcolor="#ffdd80" | |||
| colspan="2" | PKG01 || colspan="6" | || bgdl_tex_preinstall.png inside {{media ps3 bd install}} folder || || | |||
|- | |||
| rowspan="2" style="background:#ffdd80;" | || PARAM.SFO || {{No}} || {{No}} || {{No}} || '''IP''' <sub>(Install Package)</sub> || {{Yes}} || {{Yes}} || || '''ATTRIBUTE''' (1) in dev_bdvd/PS3_GAME/PKGDIR/PARAM.SFO || | |||
|- | |||
| INSTALL.PKG || colspan="6" {{No}} || || || | |||
|- bgcolor="#ddaa00" | |||
| colspan="2" | PS3_CONTENT || colspan="8" | || || || | |||
|- bgcolor="#ddbb00" | |||
| rowspan="9" style="background:#ddaa00;" | || colspan="2" | THEMEDIR || colspan="7" | || {{media ps3 bd install}} mounted in {{icon category game}} column || || | |||
|- | |||
| rowspan="3" style="background:#ddbb00;" | || colspan="2" | PARAM.SFO || {{No}} || {{Yes}} || {{No}} || '''TR''' <sub>(Theme Root)</sub> || {{Yes}} || {{No}} ? || || '''HYBRID_FLAG''' (T) in dev_bdvd/PS3_DISC.FSB || | |||
|- bgcolor="#ddbb80" | |||
| colspan="2" | D001 || colspan="6" | || bgdl_tex_preinstall.png ? inside {{media ps3 bd install}} folder || || | |||
|- | |||
| style="background:#ddbb80;" | || DATA001.P3T || colspan="6" {{No}} || || '''ATTRIBUTE''' (1) in dev_bdvd/PS3_CONTENT/THEMEDIR/PARAM.SFO || | |||
|- bgcolor="#ddcc00" | |||
| colspan="2" | VIDEODIR || colspan="7" | || {{media ps3 bd video}} mounted in {{icon category video}} column || || | |||
|- | |||
| rowspan="4" style="background:#ddcc00;" | || colspan="2" | PARAM.SFO || {{No}} || {{Yes}} || {{No}} || '''VR''' <sub>(Video Root)</sub> || {{Yes}} || {{No}} ? || || '''HYBRID_FLAG''' (V) in dev_bdvd/PS3_DISC.FSB || | |||
|- bgcolor="#ddcc80" | |||
| colspan="2" | D001 || colspan="6" | || video_tex_default.png ? inside {{media ps3 bd video}} folder || || | |||
|- | |||
| rowspan="2" style="background:#ddcc80;" | || PARAM.SFO || {{No}} || {{No}} || {{No}} || '''VI''' <sub>(Video Item)</sub> || {{Yes}} || {{No}} || || '''ATTRIBUTE''' (1) in dev_bdvd/PS3_GAME/VIDEODIR/PARAM.SFO || | |||
|- | |||
| DATA000.MP4 || colspan="6" {{No}} || || || | |||
|- bgcolor="#bbaa00" | |||
| colspan="2" | PS3_EXTRA || colspan="8" | || {{media ps3 bd}} mounted in {{icon category game}} column || || | |||
|- | |||
| rowspan="10" style="background:#bbaa00;" | || colspan="2" | PARAM.SFO || || {{No}} || {{Yes}} || {{No}} || '''XR''' <sub>(Extra Root)</sub> || {{Yes}} || {{Yes}} || || '''HYBRID_FLAG''' (g) in dev_bdvd/PS3_DISC.FSB ? || | |||
|- bgcolor="#bbbb00" | |||
| colspan="2" | D001 || colspan="7" | || tex_go_game.png inside {{media ps3 bd}} folder || || "what's news" display mode | |||
|- | |||
| rowspan="2" style="background:#bbbb00;" | || colspan="2" | PARAM.SFX || {{No}} || {{No}} || {{No}} || '''IP''' <sub>(Install Package)</sub> || {{Yes}} || {{No}} || || '''ATTRIBUTE''' (1) in dev_bdvd/PS3_EXTRA/PARAM.SFO || | |||
|- | |||
| colspan="2" | DATA000.PKG || colspan="6" {{No}} || || || | |||
|- bgcolor="#bbcc00" | |||
| colspan="2" | D002 || colspan="7" | || tex_go_custom.png inside {{media ps3 bd}} folder || || "what's news" display mode | |||
|- | |||
| rowspan="2" style="background:#bbcc00;" | || colspan="2" | PARAM.SFX || {{No}} || {{No}} || {{No}} || '''TI''' <sub>(Theme Item)</sub> || {{Yes}} || {{No}} || || '''ATTRIBUTE''' (1) in dev_bdvd/PS3_EXTRA/PARAM.SFO || | |||
|- | |||
| colspan="2" | DATA000.P3T || colspan="6" {{No}} || || || | |||
|- bgcolor="#bbdd00" | |||
| colspan="2" | D003 || colspan="7" | || tex_go_video.png inside {{media ps3 bd}} folder || || "what's news" display mode | |||
|- | |- | ||
| {{ | | rowspan="2" style="background:#bbdd00;" | || colspan="2" | PARAM.SFX || {{No}} || {{No}} || {{No}} || '''VI''' <sub>(Video Item)</sub> || {{Yes}} || {{No}} || || '''ATTRIBUTE''' (1) in dev_bdvd/PS3_EXTRA/PARAM.SFO || | ||
|- | |||
| colspan="2" | DATA000.MP4 || colspan="6" {{No}} || || || | |||
|- bgcolor="#99aa00" | |||
| colspan="2" | PS3_VPRM || colspan="8" | || {{media ps3 bd video}} mounted in {{icon category video}} column ? || || | |||
|- | |- | ||
| {{ | | " style="background:#99aa00;" | || colspan="2" | PARAM.SFO || || {{No}} || {{No}} || {{No}} || '''DM''' <sub>(Disc Movie)</sub> || {{No}} || {{No}} || || '''HYBRID_FLAG''' (v) in dev_bdvd/PS3_DISC.FSB || | ||
|- bgcolor="#77aa00" | |||
| colspan="2" | PS3_UPDATE || colspan="8" | || {{No}} || || | |||
|- | |- | ||
| | | " style="background:#77aa00;" | || colspan="2" | UPDATE.PUP || || colspan="6" {{No}} || {{No}} || '''HYBRID_FLAG''' (u) in dev_bdvd/PS3_DISC.FSB || | ||
|- | |- | ||
|} | |} | ||
''' | <div style="float:right">[[Image:icon media ps3 bd.png|200px|thumb|left|PS3 Blu Ray]]<br /></div> | ||
These are "fake Blu-Ray discs" with the minimal values inside SFO's/SFX's needed for the structure to work, and the needed '''HYBRID_FLAG''''s inside the main [[PS3_DISC.SFB]]. All the files are 100% hand made from scratch and tested. | |||
'''Game discs in folder PS3_GAME''' | |||
The basic structure of a game disc. | |||
0GAM00001 | |||
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0GAM00001) | |||
|--- PS3_GAME | |||
|--- PARAM.SFO <--- CATEGORY (DG), TITLE_ID (0GAM00001) | |||
|--- USRDIR | |||
|--- EBOOT.BIN | |||
'''Movie discs in folder PS3_VPRM''' | |||
This is the part of a Blue-Ray movie structure related with the PS3 system. Described as "hybrid disc" when contains a game+movie e.g: Metal Gear Solid HD Collection (BLUS30847) | |||
0MOV00001 | |||
|--- PS3_DISC.SFB <--- HYBRID_FLAG (v), TITLE_ID (blank) | |||
|--- AACS | |||
| |--- DUPLICATE (2.cer 2.tbl 1.lst 1.cc1 3.inf) | |||
| |--- (2.cer 2.tbl 1.lst 1.cc1 3.inf) | |||
|--- BDMV | |||
| |--- AUXDATA | |||
| | |--- sound.bdmv | |||
| |--- BACKUP | |||
| | |--- CLIPINF | |||
| | | |--- (11.clpi) | |||
| | |--- PLAYLIST | |||
| | | |--- (6.mpls) | |||
| | |--- index.bdmv | |||
| | |--- MovieObject.bdmv | |||
| |--- CLIPINF | |||
| | |--- (11.clpi) | |||
| |--- META | |||
| | |--- DL | |||
| | |--- bdmt_eng.xml | |||
| | |--- thumb_L.jpg | |||
| | |--- thumb_S.jpg | |||
| |--- PLAYLIST | |||
| | |--- (6.mpls) | |||
| |--- STREAM | |||
| | |--- (11.m2ts) | |||
| |--- index.bdmv | |||
| |--- MovieObject.bdmv | |||
|--- CERTIFICATE | |||
|--- PS3_VPRM | |||
|--- PARAM.SFO <--- CATEGORY (DM) | |||
== | '''Game discs in folder PS3_CONTENT''' | ||
<div style="float:right">[[Image:icon media ps3 bd_video.png|200px|thumb|center|PS3 Blu Ray video content]]<br /></div> | |||
<div style="float:right">[[Image:icon media_ps3_bd_install.png|200px|thumb|center|PS3 Blu Ray install content]]<br /></div> | |||
Themes folder is mounted as a "secondary icon" under the "main game icon". Doesn't need/admit an SFO/SFX, the icon contained in the theme is resized and displayed inside a bubble, also the '''TITLE''' of the Theme is used for the content. | |||
Video folder is mounted on video column. Videos can not be copied to the internal or external storage. | |||
0CONT00001 | |||
|--- PS3_DISC.SFB <--- HYBRID_FLAG (TV), TITLE_ID (0CONT00001) | |||
|--- PS3_CONTENT | |||
|--- THEMEDIR | |||
| |--- PARAM.SFO <--- ATTRIBUTE (01000000), CATEGORY (TR), TITLE (Themes) | |||
| |--- D000 | |||
| |--- DATA001.P3T | |||
| |--- DATA002.P3T | |||
|--- VIDEODIR | |||
|--- PARAM.SFO <--- ATTRIBUTE (01000000), CATEGORY (VR), TITLE (Videos) | |||
|--- D001 | |||
| |--- PARAM.SFO <--- CATEGORY (VI), TITLE (Video 1) | |||
| |--- DATA000.MP4 | |||
|--- D002 | |||
|--- PARAM.SFO <--- CATEGORY (VI), TITLE (Video 2) | |||
|--- DATA000.MP4 | |||
'''Game discs in folder PS3_GAME/PKGDIR''' | |||
<div style="float:right">[[Image:icon media_ps3_bd_install.png|200px|thumb|left|PS3 Blu Ray install content]]<br /></div> | |||
Can be considered an "expansion" of the basic blu-ray structure of a game disc, activated by the flag '''00000200''' in the [[#ATTRIBUTE|ATTRIBUTE]] of the PARAM.SFO inside PS3_GAME. Packages are displayed in subfolders inside bubbles with his icons resized. | |||
When the packages are installed, the file PARAM.SFO from PKGDIR is renamed to DISC.SFO and copyed inside the installation folder. | |||
0PKG00001 | |||
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0PKG00001) | |||
|--- PS3_GAME | |||
|--- PARAM.SFO <--- ATTRIBUTE (00000200), CATEGORY (DG) | |||
|--- PKGDIR | |||
|--- PARAM.SFO <--- ATTRIBUTE (0100000), CATEGORY (DP), TITLE (Packages) | |||
|--- PKG01 | |||
| |--- PARAM.SFO <--- CATEGORY (IP), TITLE (Package 1) | |||
| |--- INSTALL.PKG | |||
|--- PKG02 | |||
|--- PARAM.SFO <--- CATEGORY (IP), TITLE (Package 2) | |||
|--- INSTALL.PKG | |||
'''Game discs in folder PS3_GAME/INSDIR''' | |||
Can be considered an "expansion" of the basic blu-ray structure of a game disc, activated by default ? | |||
Used for "game patches" and "game expansion packs". The PARAM.SFO inside "'''INSDIR'''" contains the "'''APP_VER'''" of the bigger patch of the folder. Note that "download content" packages doesnt contains "'''APP_VER'''" so his installation doesnt updates the main game. For this reason "'''APP_VER'''" is only related with patches and is only needed when there are patches in the folder. | |||
Others type of PKG can be installed but the main game will reload the message below because it was expecting to have a game patche (?) for boot. | |||
"This game cannot be started unless it is installed on the system storage. To install on the system storage you must create a game partition of %. Do you want to start installing? Yes No" | |||
0INS00001 | |||
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0INS00001) | |||
|--- PS3_GAME | |||
|--- PARAM.SFO <--- CATEGORY (DG) | |||
|--- INSDIR | |||
|--- PARAM.SFO <--- APP_VER (01.02), CATEGORY (AR) | |||
|--- DATA000.PKG | |||
|--- DATA001.PKG | |||
'''Game discs in folder PS3_EXTRA''' | |||
Icon sizes is the same used in "PStore news" menu ([[http://www.blogcdn.com/www.joystiq.com/media/2009/08/firmrwae300ps3.jpg big squares of 486x405 pixels]]). see: [[Content_Information_Files|Content Information Files]] | |||
Similar as PKGDIR, the file PARAM.SFO from <span style="text-decoration: line-through;">PKGDIR</span> (seems typo error) is renamed to DISC.SFO. | |||
0EXT00001 | |||
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0EXT00001) | |||
|--- PS3_GAME | |||
| |--- PARAM.SFO <--- CATEGORY (DG) | |||
|--- PS3_EXTRA | |||
|--- PARAM.SFO <--- ATTRIBUTE (0100000), CATEGORY (XR), TITLE (Extras) | |||
|--- D001 | |||
| |--- PARAM.SFX <--- CATEGORY (IP), TITLE (Package 1) | |||
| |--- DATA000.PKG | |||
|--- D002 | |||
| |--- PARAM.SFX <--- CATEGORY (IP), TITLE (Package 2) | |||
| |--- DATA000.PKG | |||
|--- D003 | |||
| |--- PARAM.SFX <--- CATEGORY (VI), TITLE (Video 1) | |||
| |--- DATA000.MP4 | |||
|--- D004 | |||
| |--- PARAM.SFX <--- CATEGORY (VI), TITLE (Video 2) | |||
| |--- DATA000.MP4 | |||
|--- D005 | |||
| |--- PARAM.SFX <--- CATEGORY (TI), TITLE (Theme 1) | |||
| |--- DATA000.P3T | |||
|--- D006 | |||
|--- PARAM.SFX <--- CATEGORY (TI), TITLE (Theme 2) | |||
|--- DATA000.P3T | |||
You can download this structures to experiment with them or to look how SFO's SFX's are built ---> [[http://www.sendspace.com/file/o95vde| Blu-Ray fake discs by sandungas]] | |||
*Remove-insert again disc might be required to make structures appears. | |||
* | *DISC.SFO seems to force the user to start the installed game with the original disc with this message on XMB: | ||
"to play this game, you must insert the following disc. Insert the disc, and then start the game | |||
again. (8001003E) Install disc" | |||
This can/should be resolved by launching BD emulator, removing the disc.sfo file, or using the [[Talk:PARAM.SFO#Lxx:_License_Area| Lxx folders]] | |||
===CONTENT_ID=== | ===CONTENT_ID=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x30 (48 bytes)<br />'''param_len''': 0x25 (37 bytes)}} | ||
{{Boxtip1|content='''Used by''': HDD Game}} | {{Boxtip1|content='''Used by''': HDD Game}} | ||
[[Content ID]] | [[Content ID]] | ||
Content Identificator for Gamepurchase feature. Used in games that runs in "demo mode" and can be purchased (unlocked) by pressing triangle over | Content Identificator for Gamepurchase feature. Used in games that runs in "demo mode" and can be purchased (unlocked) by pressing triangle over his icon in XMB. | ||
The format is: '''XXYYYY-NP_COMMUNICATION_ID-LICENSE_ID''' where: | The format is: '''XXYYYY-NP_COMMUNICATION_ID-LICENSE_ID''' where: | ||
Line 716: | Line 944: | ||
===DETAIL=== | ===DETAIL=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x400 (1024 bytes)<br />'''param_len''': variable}} | ||
{{Boxtip1|content='''Used by''': Save Data}} | {{Boxtip1|content='''Used by''': Save Data}} | ||
Line 724: | Line 952: | ||
The special byte "'''0A'''" displaces the text to the next line (a linefeed), this can be used to create long texts composed by several horizontall lines. | The special byte "'''0A'''" displaces the text to the next line (a linefeed), this can be used to create long texts composed by several horizontall lines. | ||
===GAMEDATA_ID=== | ===GAMEDATA_ID=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x20 (32 bytes)<br />'''param_len''': variable}} | ||
{{Boxtip1|content='''Used by''': Unknown (not bootable?)}} | {{Boxtip1|content='''Used by''': Unknown (not bootable?)}} | ||
Line 738: | Line 960: | ||
===ITEM_PRIORITY=== | ===ITEM_PRIORITY=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': integer<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': HDD Game, PS2 Game (probably others)}} | {{Boxtip1|content='''Used by''': HDD Game, PS2 Game (probably others)}} | ||
Line 746: | Line 968: | ||
===LANG=== | ===LANG=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': Trophy}} | {{Boxtip1|content='''Used by''': Trophy}} | ||
Language used when the "trophy config file" [[Trophy_files#TROPCONF.SFM|TROPCONF.SFM]] was installed. | Language used when the "trophy config file" [[Trophy_files#TROPCONF.SFM|TROPCONF.SFM]] was installed. | ||
{{ | {{XMB languages}} | ||
===LICENSE=== | ===LICENSE=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x200 (512 bytes)<br />'''param_len''': variable}} | ||
{{Boxtip1|content='''Used by''': HDD Game}} | {{Boxtip1|content='''Used by''': HDD Game}} | ||
Line 759: | Line 981: | ||
=== NP_COMMUNICATION_ID === | === NP_COMMUNICATION_ID === | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0xD (13 bytes)}} | ||
{{Boxtip1|content='''Used by''': HDD Game}} | {{Boxtip1|content='''Used by''': HDD Game}} | ||
Line 766: | Line 988: | ||
The format is 4 letters + 5 numbers with optionally a subid (usually 0) : NPWRyyyyy_zz (e.g. NPWR00001_00) | The format is 4 letters + 5 numbers with optionally a subid (usually 0) : NPWRyyyyy_zz (e.g. NPWR00001_00) | ||
===NPCOMMID=== | |||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0xC (12 bytes)}} | ||
{{Boxtip1|content='''Used by''': Trophy}} | {{Boxtip1|content='''Used by''': Trophy}} | ||
Line 773: | Line 995: | ||
===PADDING=== | ===PADDING=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8 Special Mode<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x0 (0 bytes)}} | ||
{{Boxtip1|content='''Used by''': Trophy}} | {{Boxtip1|content='''Used by''': Trophy}} | ||
Line 779: | Line 1,001: | ||
===PARAMS=== | ===PARAMS=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8 Special Mode<br />'''param_max_len''': 0x400 (1024 bytes)<br />'''param_len''': 0x400 (1024 bytes)}} | ||
{{Boxtip1|content='''Used by''': | {{Boxtip1|content='''Used by''': Save Data}} | ||
Intended to store user (and console?) specific data. | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Offset!! length !! Example !! Description !! Notes | |||
|- | |- | ||
| 0x000 || 1 (0x1)|| 01 || Unknown || | |||
|- | |- | ||
| | | 0x001 || 1 (0x1)|| 03 || Unknown || | ||
|- | |- | ||
| | | 0x002 || 1 (0x1)|| 01 || Unknown || | ||
|- | |- | ||
| | | 0x003 || 1 (0x1)|| 02 || Unknown || | ||
|- | |- | ||
| | | 0x004 || 8 (0x8)|| 0200000000000000 || Unknown || | ||
|- | |- | ||
| 0x00C || 4 (0x4) || E1010000 || '''Update counter''' ? || Number of times the folder/files was updated ? | |||
| | |||
|- | |- | ||
| | | 0x010 || 4 (0x4) || 03000000 || Unknown || In some games the '''update counter''' is moved to this area (e.g: The Last of Us) | ||
|- | |- | ||
| | | 0x014 || 4 (0x4) || 03000000 || Unknown || | ||
|- | |- | ||
| | | 0x018 || 4 (0x4) || 01000000 || '''user ID''' || User identification number (local user). Same value stored in [[XRegistry.sys]] | ||
|- | |- | ||
| 0x01C || 16 (0x10) || FEDCBA9876543210FEDCBA9876543210 || '''PS3 console ID''' || More info: [[PSID]] | |||
|- | |- | ||
| | | 0x02C || 4 (0x4) || 01000000 || '''user ID''' || User identification number (local user). Same value stored in [[XRegistry.sys]] | ||
|- | |- | ||
| | | 0x030 || 16 (0x10) || 0123456789ABCDEF0123456789ABCDEF || '''account ID''' || PSN account identification (online user). Same value stored in [[XRegistry.sys]] | ||
|- | |- | ||
| | | 0x040 || 960 (0x3C0) || 00000000........ || ''not used yet'' || Big chunk of zeroes | ||
|- | |- | ||
|} | |} | ||
*Notes: | *Notes: | ||
**The | **The string used in the paramater ACCOUNT_ID is the same than '''accountid''' inside PARAMS. When PARAMS & ACCOUNT_ID are present in the SFO the string can be found twice in the file. | ||
** | **All this data seems to be processed by the PS3 system (not the game), there is a limited number of firmware features related with savegames that needs to store data, some posible data stored in this "unknown" areas could be: | ||
***Times exported/imported (counters) | |||
***Trophy disabled (not posible to unlock trophies from this gamesave) | |||
***Times | |||
***Trophy disabled (not posible to unlock trophies from this gamesave | |||
===PARAMS2=== | ===PARAMS2=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8 Special Mode<br />'''param_max_len''': 0xC (12 bytes)<br />'''param_len''': 0xC (12 bytes)}} | ||
{{Boxtip1|content='''Used by''': Save Data}} | {{Boxtip1|content='''Used by''': Save Data}} | ||
Unknown, usually filled with zeroes | Unknown, usually filled with zeroes | ||
===PARENTAL_LEVEL_x=== | |||
{{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | |||
{{Boxinfo3|content='''param_fmt''': | |||
{{Boxtip1|content='''Used by''': HDD Game}} | {{Boxtip1|content='''Used by''': HDD Game}} | ||
Used to restrict the content to a specific | Used to restrict the content to a specific [[Regions|License Area]] | ||
The "'''x'''" at the end of the name PARENTAL_LEVEL_'''x''' defines the '''License Area''' wich is one of this list. | The "'''x'''" at the end of the name PARENTAL_LEVEL_'''x''' defines the '''License Area''' wich is one of this list. | ||
Line 898: | Line 1,060: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! | ! param_key !! License Area !! Regions | ||
|- | |- | ||
| PARENTAL_LEVEL_A ||SCEA | | PARENTAL_LEVEL_A ||SCEA || US, Canada (North America), Mexico, Central America, South America | ||
|- | |- | ||
| PARENTAL_LEVEL_C || SCH | | PARENTAL_LEVEL_C || SCH || China | ||
|- | |- | ||
| PARENTAL_LEVEL_E || SCEE | | PARENTAL_LEVEL_E || SCEE || Europe/Middle East/Africa, U.K./Ireland, Australia/New Zealand (Oceania), Russia, Ukraine, India, Central Asia | ||
|- | |- | ||
| PARENTAL_LEVEL_H || SCEH | | PARENTAL_LEVEL_H || SCEH || Singapore/Malaysia (Southeast Asia), Taiwan, Hong Kong | ||
|- | |- | ||
| PARENTAL_LEVEL_J || SCEJ | | PARENTAL_LEVEL_J || SCEJ || Japan | ||
|- | |- | ||
| PARENTAL_LEVEL_K || SCEK | | PARENTAL_LEVEL_K || SCEK || Korea (South Korea) | ||
|- | |- | ||
|} | |} | ||
*All this | *All this param_key's are used in group, and preceded by a "standard" '''PARENTAL_LEVEL''' with the value '''00000000''' (disabled) | ||
*Valid values are the same than '''PARENTAL_LEVEL''' (an scale from 1 to 11) with the only difference that the value for disable is '''FFFFFFFF''' | *Valid values are the same than '''PARENTAL_LEVEL''' (an scale from 1 to 11) with the only difference that the value for disable is '''FFFFFFFF''' | ||
Line 928: | Line 1,090: | ||
PARENTAL_LEVEL_K = 0B000000 (level 11) | PARENTAL_LEVEL_K = 0B000000 (level 11) | ||
==== | ===PARENTAL_LEVEL=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': HDD Game, Minis Game, PSP Remasters Game, Game Data, Save Data, Minis Save Data}} | |||
It is a scale to rate the content for the different users based in user profile settings and international rating systems as: [[http://en.wikipedia.org/wiki/Pan_European_Game_Information | PEGI]], [[http://en.wikipedia.org/wiki/Entertainment_Software_Rating_Board | ESRB]], [[http://en.wikipedia.org/wiki/Computer_Entertainment_Rating_Organization | CERO]], etc... | |||
The higher the level the higher the restriction e.g: | |||
*A game rated '''11''' will be displayed with an "locked" icon in XMB and requires the "unlock PIN" for a user with level '''1'''. | |||
*A game rated '''1''' can be played by all levels, from '''1''' to '''11'''. | |||
*Level '''0''' is disabled. | |||
{| class="wikitable" | |||
|- | |||
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Rating | |||
|- | |||
| {{stylematrix}} 00 00 00 00 || 00 00 00 00 || style="text-align:right;" | 0 || Disabled | |||
|- | |||
| {{stylematrix}} 01 00 00 00 || 00 00 00 01 || style="text-align:right;" | 1 || Lower restriction | |||
|- | |||
| {{stylematrix}} 02 00 00 00 || 00 00 00 02 || style="text-align:right;" | 2 || | |||
|- | |||
| {{stylematrix}} 03 00 00 00 || 00 00 00 03 || style="text-align:right;" | 3 || | |||
|- | |||
| {{stylematrix}} 04 00 00 00 || 00 00 00 04 || style="text-align:right;" | 4 || | |||
|- | |||
| {{stylematrix}} 05 00 00 00 || 00 00 00 05 || style="text-align:right;" | 5 || | |||
|- | |||
| {{stylematrix}} 06 00 00 00 || 00 00 00 06 || style="text-align:right;" | 6 || | |||
|- | |||
| {{stylematrix}} 07 00 00 00 || 00 00 00 07 || style="text-align:right;" | 7 || | |||
|- | |||
| {{stylematrix}} 08 00 00 00 || 00 00 00 08 || style="text-align:right;" | 8 || | |||
|- | |||
| {{stylematrix}} 09 00 00 00 || 00 00 00 09 || style="text-align:right;" | 9 || | |||
|- | |||
| {{stylematrix}} 0A 00 00 00 || 00 00 00 0A || style="text-align:right;" | 10 || | |||
|- | |||
| {{stylematrix}} 0B 00 00 00 || 00 00 00 0B || style="text-align:right;" | 11 || Higher restriction | |||
|- | |||
|} | |||
===PARENTALLEVEL=== | |||
{{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | |||
{{Boxtip1|content='''Used by''': PS1 Game, Trophy}} | {{Boxtip1|content='''Used by''': PS1 Game, Trophy}} | ||
Line 935: | Line 1,138: | ||
===PATCH_FILE=== | ===PATCH_FILE=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x20 (32 bytes)<br />'''param_len''': variable}} | ||
{{Boxtip1|content='''Used by''': Unknown (patches?)}} | {{Boxtip1|content='''Used by''': Unknown (patches?)}} | ||
Line 941: | Line 1,144: | ||
===PS3_SYSTEM_VER=== | ===PS3_SYSTEM_VER=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x8 (8 bytes)}} | ||
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data}} | {{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data}} | ||
Line 949: | Line 1,152: | ||
===REGION_DENY=== | ===REGION_DENY=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': HDD Game}} | {{Boxtip1|content='''Used by''': HDD Game}} | ||
Regions restrictions for the content, added in firmware 3.30 | |||
There are 12 valid [[Regions]], each region has a position assigned in the binary string, marked with an "'''1'''" when the region is prohibited, or a "'''0'''". when is allowed. | There are 12 valid [[Regions]], each region has a position assigned in the binary string, marked with an "'''1'''" when the region is prohibited, or a "'''0'''". when is allowed. | ||
Line 960: | Line 1,163: | ||
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Binary <br /> (flags) !! Region Nº !! Target Territory !! Notes | ! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Binary <br /> (flags) !! Region Nº !! Target Territory !! Notes | ||
|- | |- | ||
| {{ | | {{stylematrix}} FE FF FF FF || FF FF FF FE || 11111111 11111111 11111111 11111110 || style="text-align:right;" | 0 || Japan || | ||
|- | |- | ||
| {{ | | {{stylematrix}} FD FF FF FF || FF FF FF FD || 11111111 11111111 11111111 11111101 || style="text-align:right;" | 1 || US, Canada (North America) || Used in Netflix | ||
|- | |- | ||
| {{ | | {{stylematrix}} FB FF FF FF || FF FF FF FB || 11111111 11111111 11111111 11111011 || style="text-align:right;" | 2 || Europe / Middle East / Africa || | ||
|- | |- | ||
| {{ | | {{stylematrix}} F7 FF FF FF || FF FF FF F7 || 11111111 11111111 11111111 11110111 || style="text-align:right;" | 3 || Korea (South Korea) || | ||
|- | |- | ||
| {{ | | {{stylematrix}} EF FF FF FF || FF FF FF EF || 11111111 11111111 11111111 11101111 || style="text-align:right;" | 4 || U.K. / Ireland || | ||
|- | |- | ||
| {{ | | {{stylematrix}} DF FF FF FF || FF FF FF DF || 11111111 11111111 11111111 11011111 || style="text-align:right;" | 5 || Mexico, Central America, South America || | ||
|- | |- | ||
| {{ | | {{stylematrix}} BF FF FF FF || FF FF FF BF || 11111111 11111111 11111111 10111111 || style="text-align:right;" | 6 || Australia / New Zealand (Oceania) || | ||
|- | |- | ||
| {{ | | {{stylematrix}} 7F FF FF FF || FF FF FF 7F || 11111111 11111111 11111111 01111111 || style="text-align:right;" | 7 || Singapore / Malaysia (Southeast Asia) || | ||
|- | |- | ||
| {{ | | {{stylematrix}} FF FE FF FF || FF FF FE FF || 11111111 11111111 11111110 11111111 || style="text-align:right;" | 8 || Taiwan || | ||
|- | |- | ||
| {{ | | {{stylematrix}} FF FD FF FF || FF FF FD FF || 11111111 11111111 11111101 11111111 || style="text-align:right;" | 9 || Russia, Ukraine, India, Central Asia || | ||
|- | |- | ||
| {{ | | {{stylematrix}} FF FB FF FF || FF FF FB FF || 11111111 11111111 11111011 11111111 || style="text-align:right;" | 10 || China || | ||
|- | |- | ||
| {{ | | {{stylematrix}} FF F7 FF FF || FF FF F7 FF || 11111111 11111111 11110111 11111111 || style="text-align:right;" | 11 || Hong Kong || | ||
|- | |- | ||
| colspan="7" style="text-align:center; background-color:#DDDDDD;" | Examples | | colspan="7" style="text-align:center; background-color:#DDDDDD;" | Examples | ||
|- | |- | ||
| {{ | | {{stylematrix}} 01 F0 FF FF || FF FF F0 01 || 11111111 11111111 11110000 00000001 || || From 1 to 11 || [[http://ps3.mediagen.fr/badregion-4_0900051787.jpg Photo]] of a PS3 DEX with '''Allowed Region=1-11''' (region 0 not allowed) | ||
|- | |- | ||
|} | |} | ||
===RESOLUTION=== | ===RESOLUTION=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': HDD Game, PS1 Classics Game, Minis Game, PSP Remasters Game}} | {{Boxtip1|content='''Used by''': HDD Game, PS1 Classics Game, Minis Game, PSP Remasters Game}} | ||
Line 1,002: | Line 1,205: | ||
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes) | ! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes) | ||
|- | |- | ||
| {{ | | {{stylematrix}} 01 00 00 00 || 00 00 00 01 || style="text-align:right;" | 1 || 00000000 00000000 00000000 00000001 || 480 (4:3) | ||
|- | |- | ||
| {{ | | {{stylematrix}} 02 00 00 00 || 00 00 00 02 || style="text-align:right;" | 2 || 00000000 00000000 00000000 00000010 || 576 (4:3) | ||
|- | |- | ||
| {{ | | {{stylematrix}} 04 00 00 00 || 00 00 00 04 || style="text-align:right;" | 4 || 00000000 00000000 00000000 00000100 || 720 (16:9) | ||
|- | |- | ||
| {{ | | {{stylematrix}} 08 00 00 00 || 00 00 00 08 || style="text-align:right;" | 8 || 00000000 00000000 00000000 00001000 || 1080 (16:9) | ||
|- | |- | ||
| {{ | | {{stylematrix}} 10 00 00 00 || 00 00 00 10 || style="text-align:right;" | 16 || 00000000 00000000 00000000 00010000 || 480 (16:9) | ||
|- | |- | ||
| {{ | | {{stylematrix}} 20 00 00 00 || 00 00 00 20 || style="text-align:right;" | 32 || 00000000 00000000 00000000 00100000 || 576 (16:9) | ||
|- | |- | ||
| colspan="5" style="text-align:center; background-color:#DDDDDD;" | Examples | | colspan="5" style="text-align:center; background-color:#DDDDDD;" | Examples | ||
|- | |- | ||
| {{ | | {{stylematrix}} 3F 00 00 00 || 00 00 00 3F || style="text-align:right;" | 63 || 00000000 00000000 00000000 00111111 || All video modes supported | ||
|- | |- | ||
|} | |} | ||
*Tests | *Tests | ||
**PS2 games remastered in PS3 format (not "ps2 classics") like "resident evil 4 HD" (CATEGORY=HG and TITLE_ID=NPEB00342) | **PS2 games remastered in PS3 format (not "ps2 classics") like "resident evil 4 HD" (CATEGORY=HG and TITLE_ID=NPEB00342) doesnt supports 1080 mode by default (or at least this one). 1080 mode in combination with SOUND_FORMAT (all SOUND_FORMAT modes enabled) the RESOLUTION flags are readed but the PS3 crashes | ||
**Note the resolution for | **Note the resolution for originall PS1 disc games can vary (See: [[Emulation#Resolution|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 | ||
*There are special RESOLUTION values for PS1 and PS2 Classics, and PSP Remasters ?. The resolution for original PS1 disc games can vary (See: [[Emulation#Resolution|Emulation Resolution]]). The RESOLUTION flags used in PARAM.SFO's of "PS1 Classics Game" from PSN seems to be specific (e.g: 01 00 00 00 | *There are special RESOLUTION values for PS1 and PS2 Classics, and PSP Remasters ?. The resolution for original PS1 disc games can vary (See: [[Emulation#Resolution|Emulation Resolution]]). The RESOLUTION flags used in PARAM.SFO's of "PS1 Classics Game" from PSN seems to be specific (e.g: 01 00 00 00). This will need another table if more are found | ||
===SAVEDATA_DETAIL=== | |||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x400 (1024 bytes)<br />'''param_len''': variable}} | |||
{{Boxtip1|content='''Used by''': Minis Save Data}} | |||
Used to store texts generated by the game, the format s the same than [[PARAM.SFO#DETAIL|DETAIL]] | |||
===SAVEDATA_DIRECTORY=== | ===SAVEDATA_DIRECTORY=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x40 (64 bytes)<br />'''param_len''': variable}} | ||
{{Boxtip1|content='''Used by''': Save Data, Minis Save Data}} | {{Boxtip1|content='''Used by''': Save Data, Minis Save Data}} | ||
Name of the folder where the game stores | Name of the folder where the game stores his SaveData. The format is: '''TITLE_IDxxxxx''' (9 bytes + 22 bytes max), e.g;: '''BLUS00001_savedata_01''' where: | ||
*'''TITLE_ID''' Identifier of the content. Explained in [[#TITLE_ID|TITLE_ID]]. | *'''TITLE_ID''' Identifier of the content. Explained in [[#TITLE_ID|TITLE_ID]]. | ||
*'''xxxxx''' Are texts (with variable | *'''xxxxx''' Are texts (with variable lenght) to difference all the SaveDatas generated from the same game by the same user. | ||
===SAVEDATA_FILE_LIST=== | ===SAVEDATA_FILE_LIST=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8 Special Mode<br />'''param_max_len''': 0xC60 (3168 bytes)<br />'''param_len''': 0xC60 (3168 bytes)}} | ||
{{Boxtip1|content='''Used by''': Minis Save Data}} | {{Boxtip1|content='''Used by''': Minis Save Data}} | ||
Line 1,048: | Line 1,257: | ||
===SAVEDATA_LIST_PARAM=== | ===SAVEDATA_LIST_PARAM=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': variable}} | ||
{{Boxtip1|content='''Used by''': PS3 Save Data}} | {{Boxtip1|content='''Used by''': PS3 Save Data}} | ||
Line 1,055: | Line 1,264: | ||
This area is available for the game to store "any" data, the purposes of this data is to avoid tampering with the files generated by the game, the usage of this area is optional for the game developers and can be considered a more deep security layer under the [[PARAM.PFD]] layer | This area is available for the game to store "any" data, the purposes of this data is to avoid tampering with the files generated by the game, the usage of this area is optional for the game developers and can be considered a more deep security layer under the [[PARAM.PFD]] layer | ||
Because the data is generated and recovered by the game, | Because the data is generated and recovered by the game, his type or usage can be different for each game, the next table contains some valid examples found: | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
Line 1,067: | Line 1,276: | ||
| BLES01739, BLJS10228, BLUS31052 || Dead Island Riptide || IIBJFMO, ALFJASP, HMDASLM, PTRONAS || Copypasted + scrambled ? || | | BLES01739, BLJS10228, BLUS31052 || Dead Island Riptide || IIBJFMO, ALFJASP, HMDASLM, PTRONAS || Copypasted + scrambled ? || | ||
|- | |- | ||
| BLES00153, BLES00171, BLES00172, BLUS30055 || The Orange Box || 141312 || Folder Size in sectors || See the example in | | BLES00153, BLES00171, BLES00172, BLUS30055 || The Orange Box || 141312 || Folder Size in sectors || See the example in: [[Talk:PARAM.SFO#Cryptography_in_.22user_files.22_.28game_saves_.26_trophies.29 | talk page ]] | ||
|- | |- | ||
| BCES01007 || Killzone 3 || CONFIG || Copypasted ? || | | BCES01007 || Killzone 3 || CONFIG || Copypasted ? || | ||
Line 1,092: | Line 1,301: | ||
===SAVEDATA_PARAMS=== | ===SAVEDATA_PARAMS=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8 Special Mode<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': 0x80 (128 bytes)}} | ||
{{Boxtip1|content='''Used by''': Minis Save Data}} | {{Boxtip1|content='''Used by''': Minis Save Data}} | ||
Line 1,100: | Line 1,309: | ||
! Offset!! length !! Example !! Description !! Notes | ! Offset!! length !! Example !! Description !! Notes | ||
|- | |- | ||
| 0x11B0 || 16 (0x10) || 41000000000000000000000000000000 || Unknown || allways the same value found ("A" in | | 0x11B0 || 16 (0x10) || 41000000000000000000000000000000 || Unknown || allways the same value found ("A" in utf-8) | ||
|- | |- | ||
| 0x11C0 || 16 (0x10) || FEDCBA9876543210FEDCBA9876543210 || Unknown || changes when the savedata is updated | | 0x11C0 || 16 (0x10) || FEDCBA9876543210FEDCBA9876543210 || Unknown || changes when the savedata is updated | ||
Line 1,117: | Line 1,326: | ||
|- | |- | ||
|} | |} | ||
===SAVEDATA_TITLE=== | |||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}} | |||
{{Boxtip1|content='''Used by''': Minis Save Data}} | |||
Subtitle of the Save, the format is the same than [[PARAM.SFO#SUBTITLE|SUBTITLE]] | |||
===SOUND_FORMAT=== | ===SOUND_FORMAT=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game}} | {{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game}} | ||
Line 1,128: | Line 1,343: | ||
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes) !! Flag Nº <br /> (flag required) | ! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes) !! Flag Nº <br /> (flag required) | ||
|- | |- | ||
| {{ | | {{stylematrix}} 01 00 00 00 || 00 00 00 01 || style="text-align:right;" | 1 || 00000000 00000000 00000000 00000001 || [[http://en.wikipedia.org/wiki/Lpcm LPCM]] 2.0 || 01 | ||
|- | |- | ||
| {{ | | {{stylematrix}} 02 00 00 00 || 00 00 00 02 || style="text-align:right;" | 2 || 00000000 00000000 00000000 00000010 || || bgcolor="#DD6666" | 02 | ||
|- | |- | ||
| {{ | | {{stylematrix}} 04 00 00 00 || 00 00 00 04 || style="text-align:right;" | 4 || 00000000 00000000 00000000 00000100 || [[http://en.wikipedia.org/wiki/Lpcm LPCM]] 5.1 || 03 | ||
|- | |- | ||
| {{ | | {{stylematrix}} 10 00 00 00 || 00 00 00 10 || style="text-align:right;" | 16 || 00000000 00000000 00000000 00010000 || [[http://en.wikipedia.org/wiki/Lpcm LPCM]] 7.1 || 05 | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 01 00 00 || 00 00 01 00 || style="text-align:right;" | 256 || 00000000 00000000 00000001 00000000 || [[http://en.wikipedia.org/wiki/Dolby_Digital#Dolby_Digital Dolby Digital]] 5.1 || bgcolor="#DD6666" | 09 (02) | ||
|- | |- | ||
| {{ | | {{stylematrix}} 00 02 00 00 || 00 00 02 00 || style="text-align:right;" | 512 || 00000000 00000000 00000010 00000000 || [[http://en.wikipedia.org/wiki/DTS_%28sound_system%29 Digital Theater Systems (DTS)]] 5.1 || bgcolor="#DD6666" | 10 (02) | ||
|- | |- | ||
| colspan="6" style="text-align:center; background-color:#DDDDDD;" | Examples | | colspan="6" style="text-align:center; background-color:#DDDDDD;" | Examples | ||
|- | |- | ||
| {{ | | {{stylematrix}} 15 00 00 00 || 00 00 00 15 || style="text-align:right;" | 21 || 00000000 00000000 00000000 00010101 || All LPCM modes || 1+3+5 | ||
|- | |- | ||
| {{ | | {{stylematrix}} 02 01 00 00 || 00 00 01 02 || style="text-align:right;" | 258 || 00000000 00000000 00000001 00000010 || Only Dolby Digital 5.1 || 2+9 | ||
|- | |- | ||
| {{ | | {{stylematrix}} 17 01 00 00 || 00 00 01 17 || style="text-align:right;" | 279 || 00000000 00000000 00000001 00010111 || All LPCM modes + Dolby Digital 5.1 || 1+2+3+5+9 | ||
|- | |- | ||
| {{ | | {{stylematrix}} 02 02 00 00 || 00 00 02 02 || style="text-align:right;" | 514 || 00000000 00000000 00000010 00000010 || Only Digital Theater Systems (DTS) 5.1 || 2+10 | ||
|- | |- | ||
| {{ | | {{stylematrix}} 17 03 00 00 || 00 00 03 17 || style="text-align:right;" | 791 || 00000000 00000000 00000011 00010111 || All sound modes || 1+2+3+5+9+10 | ||
|} | |} | ||
Line 1,159: | Line 1,374: | ||
===SOURCE=== | ===SOURCE=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': Trophy}} | {{Boxtip1|content='''Used by''': Trophy}} | ||
Line 1,165: | Line 1,380: | ||
===SUB_TITLE=== | ===SUB_TITLE=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}} | ||
{{Boxtip1|content='''Used by''': Save Data}} | {{Boxtip1|content='''Used by''': Save Data}} | ||
Line 1,171: | Line 1,386: | ||
When the text is too long to fit in the screen it scrolls horizontally from right to left, if the '''Data_Used_Size''' is not correct this scroll doesn't flow properly. The same behaviour happens with TITLE, TITLE_xx, TITLEID0xx and TITLE_ID | When the text is too long to fit in the screen it scrolls horizontally from right to left, if the '''Data_Used_Size''' is not correct this scroll doesn't flow properly. The same behaviour happens with TITLE, TITLE_xx, TITLEID0xx and TITLE_ID | ||
===TARGET_APP_VER=== | ===TARGET_APP_VER=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x6 (6 bytes)}} | ||
{{Boxtip1|content='''Used by''': Game Data}} | {{Boxtip1|content='''Used by''': Game Data}} | ||
Line 1,190: | Line 1,396: | ||
===TITLE=== | ===TITLE=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}} | ||
{{Boxtip1|content='''Used by''': All but Trophy}} | {{Boxtip1|content='''Used by''': All but Trophy}} | ||
Line 1,196: | Line 1,402: | ||
The special byte "'''0A'''" displaces the text to the next line (a linefeed), this can be used to create long texts composed by several horizontall lines, the maximun number of horizontal text lines allowed for the TITLE is 3 (in other words... you can use the "linefeed" byte 2 times) | The special byte "'''0A'''" displaces the text to the next line (a linefeed), this can be used to create long texts composed by several horizontall lines, the maximun number of horizontal text lines allowed for the TITLE is 3 (in other words... you can use the "linefeed" byte 2 times) | ||
===TITLE_ID=== | ===TITLE_ID=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0xA (10 bytes)}} | ||
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data}} | {{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data}} | ||
Line 1,219: | Line 1,413: | ||
{{TITLE_ID for Digital Media}} | {{TITLE_ID for Digital Media}} | ||
*Other TITLE_ID's | *Other TITLE_ID's | ||
**TEST12345 (in savedata). When mounting a disc in a backup manager using the option "direct boot", the mounted disc use the TITLE_ID from backup manager (TITLE_ID from backup manager has not been unloaded properly and the disc adopts it). The savedata of this game will use TEST12345. When several different games are mounted and "direct launched", the savedata will be corrupted/invalid (because the overwriting of PARAM.SFO). TEST12345 seems to a common TITLE_ID used in all backup managers, the name probably is derived from official tools or internal firmware functions (Described as tips with ps3.gen.exe:"setting the TITLE_ID to TEST-XXXXX or disc version to "00.00" enable the program to build the disc image even when errors are found). | **TEST12345 (in savedata). When mounting a disc in a backup manager using the option "direct boot", the mounted disc use the TITLE_ID from backup manager (TITLE_ID from backup manager has not been unloaded properly and the disc adopts it). The savedata of this game will use TEST12345. When several different games are mounted and "direct launched", the savedata will be corrupted/invalid (because the overwriting of PARAM.SFO). TEST12345 seems to a common TITLE_ID used in all backup managers, the name probably is derived from official tools or internal firmware functions (Described as tips with ps3.gen.exe:"setting the TITLE_ID to TEST-XXXXX or disc version to "00.00" enable the program to build the disc image even when errors are found). | ||
**TEST***** All the disc images generated for debug PS3's in the development stages of the game | **TEST***** All the disc images generated for debug PS3's in the development stages of the game | ||
==== | See talk page: [[Talk:PARAM.SFO#TITLE_ID]] | ||
{{Boxinfo3|content='''param_fmt''': | |||
===TITLE_xx=== | |||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}} | |||
{{Boxtip1|content='''Used by''': HDD Game}} | |||
Same than TITLE but for localized languages. | |||
An .SFO can contain several TITLE_'''xx''' where '''xx''' is a number for a regional code. | |||
The "default" TITLE is always present when other "localized" TITLE_'''xx''' are used. | |||
{{XMB languages}} | |||
===TITLEID0xx=== | |||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x9 (9 bytes)}} | |||
{{Boxtip1|content='''Used by''': Trophy}} | {{Boxtip1|content='''Used by''': Trophy}} | ||
Line 1,233: | Line 1,441: | ||
The text contained inside default TITLEID000 is the same than [[#TITLE_ID|TITLE_ID]] | The text contained inside default TITLEID000 is the same than [[#TITLE_ID|TITLE_ID]] | ||
{{ | {{XMB languages}} | ||
===VERSION=== | ===VERSION=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x6 (6 bytes)... or 0x3 (3 bytes) when used in trophy}} | ||
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data, Trophy}} | {{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data, Trophy}} | ||
Line 1,250: | Line 1,458: | ||
===XMB_APPS=== | ===XMB_APPS=== | ||
{{Boxinfo3|content='''param_fmt''': | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': Unknown (bootable?)}} | {{Boxtip1|content='''Used by''': Unknown (bootable?)}} | ||
Line 1,261: | Line 1,469: | ||
! little endian !! big endian | ! little endian !! big endian | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''01''' 00 00 00 || 00 00 00 '''01''' || style="text-align:right;" | 1 || 00000000 00000000 00000000 0000000'''1''' || '''?''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''02''' 00 00 00 || 00 00 00 '''02''' || style="text-align:right;" | 2 || 00000000 00000000 00000000 000000'''1'''0 || '''?''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''04''' 00 00 00 || 00 00 00 '''04''' || style="text-align:right;" | 4 || 00000000 00000000 00000000 00000'''1'''00 || '''?''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''08''' 00 00 00 || 00 00 00 '''08''' || style="text-align:right;" | 8 || 00000000 00000000 00000000 0000'''1'''000 || '''?''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''10''' 00 00 00 || 00 00 00 '''10''' || style="text-align:right;" | 16 || 00000000 00000000 00000000 000'''1'''0000 || '''?''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''20''' 00 00 00 || 00 00 00 '''20''' || style="text-align:right;" | 32 || 00000000 00000000 00000000 00'''1'''00000 || '''?''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''40''' 00 00 00 || 00 00 00 '''40''' || style="text-align:right;" | 64 || 00000000 00000000 00000000 0'''1'''000000 || '''?''' | ||
|- | |- | ||
| {{ | | {{stylematrix}} '''80''' 00 00 00 || 00 00 00 '''80''' || style="text-align:right;" | 128 || 00000000 00000000 00000000 '''1'''0000000 || '''?''' | ||
|- bgcolor="#DDDDDD" | |- bgcolor="#DDDDDD" | ||
| colspan="5" style="text-align:center;" | Etc... | | colspan="5" style="text-align:center;" | Etc... | ||
|} | |} | ||
==Tips & Tricks== | ==Tips & Tricks== | ||
Line 1,453: | Line 1,496: | ||
To be sure that the new PARAM.SFO has been loaded you can change the '''TITLE''' (Paid attention also to '''TITLE_xx''') , this way you can see the new name displayed in XMB, is a good idea to use something that identifyes the change as "My test 01". | To be sure that the new PARAM.SFO has been loaded you can change the '''TITLE''' (Paid attention also to '''TITLE_xx''') , this way you can see the new name displayed in XMB, is a good idea to use something that identifyes the change as "My test 01". | ||
*The most convenient and quick way to "refresh" the XMB is as simple as booting the game one time (by pressing X button over | *The most convenient and quick way to "refresh" the XMB is as simple as booting the game one time (by pressing X button over his icon)... inside the game press "PS" button and exit with "quit"... then return to the XMB and the new PARAM.SFO has been loaded. So in resume... the XMB is refreshed when you boot it for first time so you need to boot it one time and quit to load the new PARAM.SFO. | ||
*The other solution is by using the option "rebuild database" from the recovery menu (this re-indexes all the files in the internall HDD), is long but can fix rare problems. This can be used when the PARAM.SFO you are playing with is not '''BOOTABLE''' (you cant boot it to "refresh" the XMB) | *The other solution is by using the option "rebuild database" from the recovery menu (this re-indexes all the files in the internall HDD), is long but can fix rare problems. This can be used when the PARAM.SFO you are playing with is not '''BOOTABLE''' (you cant boot it to "refresh" the XMB) | ||
When replacing a PARAM.SFO manually in a Game Disc (to be loaded later by a backup manager) sometimes the system ignores it. This happens because the system is storing a "duplicated" copy of the old disc structure included | When replacing a PARAM.SFO manually in a Game Disc (to be loaded later by a backup manager) sometimes the system ignores it. This happens because the system is storing a "duplicated" copy of the old disc structure included his PARAM.SFO (iirc). The trick to "refresh the XMB" is again by booting the game (pressing X in the main icon)... for this to work is needed to have a EBOOT.BIN in the main path inside USRDIR folder (e.g: the EBOOT.BIN from the "move demo disc" just plays a video in .MP4 and is tiny) | ||
===Creating a frankenstein PARAM.SFO=== | ===Creating a frankenstein PARAM.SFO=== | ||
<div style="float:right">[[Image:Icon_media_disc_broken.png|200px|thumb|left|PS3 Blu Ray "corrupted data"]]<br /></div> | <div style="float:right">[[Image:Icon_media_disc_broken.png|200px|thumb|left|PS3 Blu Ray "corrupted data"]]<br /></div> | ||
The first step is to go to the | The first step is to go to the [[#Parameters_Table|Parameters Table]] to look wich param_key's are mandatory and wich ones can be removed or zeroed (note this table has a lot of YES that probably are OPT, is just that this ones has not been verifyed or found) | ||
*When you generate a non proper file you can have a nice icon of "corrupted data", but in some cases the game boots normally. In other cases when adding or removing param_key's the file is "partially" corrupted because there is a "break point" in the structure and the file is "partially" loaded (the PS3 loads the values before the structure "break point" normally, but after this point the values shown as corrupted or missing). Try to boot from app_home if needed. | *When you generate a non proper file you can have a nice icon of "corrupted data", but in some cases the game boots normally. In other cases when adding or removing param_key's the file is "partially" corrupted because there is a "break point" in the structure and the file is "partially" loaded (the PS3 loads the values before the structure "break point" normally, but after this point the values shown as corrupted or missing). Try to boot from app_home if needed. | ||
Line 1,482: | Line 1,525: | ||
For install packages (max: 100, FW min: 1.80) you can use PS3_EXTRA or PKGDIR both will work but are displayed different | For install packages (max: 100, FW min: 1.80) you can use PS3_EXTRA or PKGDIR both will work but are displayed different | ||
For themes ( max: 200, FW min: 2.50) and videos (max: 200, FW min: 2.40) use PS3_EXTRA or PS3_CONTENT remember themes includes | For themes ( max: 200, FW min: 2.50) and videos (max: 200, FW min: 2.40) use PS3_EXTRA or PS3_CONTENT remember themes includes his own icon and title, videos are mounted in video colum when using PS3_CONTENT pretty nice for chapters of series, video manuals, etc... | ||
(Max items & FW min are theory, not tested) | (Max items & FW min are theory, not tested) | ||
For patches use INSDIR, | For patches use INSDIR, his installation is more automated | ||
===Creating Patches=== | ===Creating Patches=== | ||
The type of patch is defined by | The type of patch is defined by his '''APP_VER''', '''TARGET_APP_VER''', and '''VERSION'''. There is no way to update an installed content without '''APP_VER''' | ||
The standard way to install a patch is by using the same '''TITLE_ID''' of the previous release and a bigger '''APP_VER''', when the patch is installed | The standard way to install a patch is by using the same '''TITLE_ID''' of the previous release and a bigger '''APP_VER''', when the patch is installed his PARAM.SFO replaces the old one, consequently his '''APP_VER''' increases | ||
But there are some tricks related with this patching system that can be used to add files to the install folder without keeping this standard: | But there are some tricks related with this patching system that can be used to add files to the install folder without keeping this standard: | ||
Line 1,497: | Line 1,540: | ||
*Using the same '''APP_VER''' and '''TARGET_APP_VER''' in the patch and in the app | *Using the same '''APP_VER''' and '''TARGET_APP_VER''' in the patch and in the app | ||
This will replace the PARAM.SFO by other with the same values, so is similar than the previous one, but keeping | This will replace the PARAM.SFO by other with the same values, so is similar than the previous one, but keeping his version. Additionally this assures you that the files are compatibles with this version of the app (e.g: a theme that only works with a specific version) | ||
==Tools, manuals and external links== | ==Tools, manuals and external links== | ||
Line 1,513: | Line 1,556: | ||
[[Dev_Tools#SFO_Reader|SFO reader]] | [[Dev_Tools#SFO_Reader|SFO reader]] | ||
[https://github.com/Rancido/PS3-Tools Another | [https://github.com/Rancido/PS3-Tools Another SF0 reader] | ||
[http://www.mediafire.com/?325cq3iea259c3j SFO Test(217.99KB)] Deroad SFO test homebrew ( really useful for fast test, can boot under X category so it refresh the SFO and avoid stuck SFO and games, XMB in game is not "visible") | [http://www.mediafire.com/?325cq3iea259c3j SFO Test(217.99KB)] Deroad SFO test homebrew ( really useful for fast test, can boot under X category so it refresh the SFO and avoid stuck SFO and games, XMB in game is not "visible") | ||
[http://www.sendspace.com/file/ens9ph SFO Test (113.69KB)] resigned for cfw 4.21 & repacked with different id (SFOT00001) for convenience (and not overwrite 3.55 version) | [http://www.sendspace.com/file/ens9ph SFO Test (113.69KB)] resigned for cfw 4.21 & repacked with different id (SFOT00001) for convenience (and not overwrite 3.55 version) | ||
[[http://ps3zone.ifcaro.net/archivos/PkgView_1.3.rar PkgView]] (by ifcaro): The fastest, lighter, and intuitive PKG extractor ever. Very usefull to extract individual files or to take a look inside the PKG without extracting | [[http://ps3zone.ifcaro.net/archivos/PkgView_1.3.rar PkgView]] (by ifcaro): The fastest, lighter, and intuitive PKG extractor ever. Very usefull to extract individual files or to take a look inside the PKG without extracting | ||
*Sources and links | *Sources and links | ||
Line 1,546: | Line 1,588: | ||
{{File Formats}}<noinclude>[[Category:Main]]</noinclude> | {{File Formats}} | ||
<noinclude>[[Category:Main]]</noinclude> |