Editing PARAM.SFO

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

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:
==Description==
[[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:
The values contained in a SFO can be simplyfied as inputs/outputs for/from the content:
**Boot modifyers (most of the int32 datas) that are sent to the content when is executed to activate specific features or settings (e.g. audio and video modes of a game).
* 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 (most of the utf8 datas) about the content and its restrictions (e.g. title and version 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 its structure (the SFO metadata that has no real value).
 
'''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.


These structures are limited by the system and activated by a combination of [[#CATEGORY|CATEGORY]] and special flags on [[#ATTRIBUTE|ATTRIBUTE]].
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===
At offset 0x0, length 0x14 (20 bytes)
{{Boxcode|content=<syntaxhighlight lang="c">
{{Boxcode|code=<syntaxhighlight lang="c">
struct header
struct sfo_header
{
{
uint32_t magic; /************ Always PSF */
uint32_t magic; /* Always PSF */
uint32_t version; /********** Usually 1.1 */
uint32_t version; /* Usually 1.1 */
uint32_t key_table_start; /** Start offset of key_table */
uint32_t key_table_start; /* Start position of key_table */
uint32_t data_table_start; /* Start offset of data_table */
uint32_t data_table_start; /* Start position of data_table */
uint32_t tables_entries; /*** Number of entries in all tables */
uint32_t index_table_entries; /* Number of entries in index_table*/
};
};
</syntaxhighlight>}}
</syntaxhighlight>}}


===index_table===
===index_table===
At offset 0x14, composed by a number of entries defined with '''tables_entries''' in the '''header''', each entry is 0x10 length (16 bytes). Values are in Little Endian.
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">
Every entry belongs to a '''key''' name in the '''key_table''' and defines a '''data''' area in the '''data_table'''
struct index_table
 
{{Boxcode|code=<syntaxhighlight lang="c">
struct sfo_index_table_entry
{
{
uint16_t key_offset; /*** param_key offset (relative to start offset of key_table) */
uint16_t key_table_offset; /* Offset of the param_key from start of key_table */
uint16_t data_fmt; /***** param_data data type */
uint16_t param_fmt; /* Type of data of param_data in the data_table */
uint32_t data_len; /***** param_data used bytes */
uint32_t param_len; /* Used Bytes by param_data in the data_table */
uint32_t data_max_len; /* param_data total bytes */
uint32_t param_max_len; /* Total bytes reserved for param_data in the data_table */
uint32_t data_offset; /** param_data offset (relative to start offset of data_table) */
uint32_t data_table_offset; /* Offset of the param_data from start of data_table */
};
};
</syntaxhighlight>}}
</syntaxhighlight>}}


{| class="wikitable" style="margin:auto"
===key_table===
|+Data Types
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.
! colspan=2 | fmt !! rowspan=2 | Data Type !! rowspan=2 | Description !! rowspan=2 | Notes
 
The table has padding at the end to align their size to a multiply or 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''').
 
{{Boxnotice1|content=
'''param_fmt:''' Partially known based in some examples found in different content
}}
 
{| class="wikitable"
|-
|-
! In SFO !! In SFX
! param_fmt !! Format !! Notes
|-
|-
| 04 00 || {{no}}? || {{cellcolors|brown|yellow}} utf8-S || utf8 Special Mode, '''NOT''' NULL terminated || Used in SFO's generated by the system and/or linked to an user ([[Game Saves]] and [[Trophy files|Trophies]]). See {{talk}} page
| 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 || utf8 || {{cellcolors|brown|white}} utf8 || utf8 character string, NULL terminated (0x00) || Can be used any character from the system [[XMB Fonts|fonts]]. The NULL byte is counted as part of the used bytes in '''len'''
| 04 02 || style="background-color:#DDDD00;" | utf-8 || Character string, NULL finished (0x00)
|-
|-
| 04 04 || int32 || {{cellcolors|black|lime}} int32 || integer 32 bits unsigned || Allways has a length of 4 bytes in '''len''' and '''max_len''' (even in the case some bytes are not used, all them are marked as used)
| 04 04 || style="background-color:#DD00DD;" | integer || 32 bits unsigned
|-
|-
|}
|}
===key_table===
Composed by a number of '''key''' entries defined with '''tables_entries''' in the '''header''', are short utf8 strings in capitals, NULL terminated (0x00), and ordered alphabetically (from A to Z). This alphabetically order defines the order of the associated entries in the other two tables ('''index_table''', and '''data_table''')
The end offset of this table needs to be aligned to a multiply of 32bits (4 bytes), this is made with a padding at the end of  '''key_table''' when needed (in a few SFO's the table is aligned naturally as a coincidence caused by the length of the '''key''' names used, when this happens there is no padding needed)
===data_table===
Composed by a number of '''data''' entries defined with '''tables_entries''' in the '''header''', every entry in this table is defined by the associated entry in the '''index_table''' by using: '''fmt''', '''len''', '''max_len''', and '''offset'''. There is no padding between entries neither at the end of this table
Some '''data''' entries can be filled with zeroes (not used, but availables for being used). This entries can be considered reserved, and are marked with a '''len''' = 0 in the associated entry in the '''index_table'''


==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 bigger difference between SFO and SFX is SFX doesnt contains:
The difference between them is SFO contains the "metadata" info related with his structure, and SFX dont (its XML code).
**SFO header
**Key and Data offsets
**Data used length


===SFO===
===SFO===
  Offset(h) 00 01 02 03 04 05 06 07  08 09 0A 0B  0C 0D 0E 0F
  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> |
      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> |
      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> |
      0x20 <span style="background:#66ff66;">00 00 00 00</span>  <span style="background:#bbbbff;">54 49 54 4C  45 5F 49 44  00</span> <span style="background:lightgrey;">00 00 00</span> | <span style="background:#66ff66;">....</span><span style="background:#bbbbff;">TITLE_ID.</span><span style="background:lightgrey;">...</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> |
      0x30 <span style="background:#ffff66; color:black!important">42 4C 55 53  31 32 33 34  35 00 00 00  00 00 00 00</span> | <span style="background:#ffff66; color:black!important">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) ||
|-
|-
! rowspan="5" {{cellcolors|#ff6666}} header
| 0x04 || 0x04 || '''version''' || 01 01 00 00 || 1.01 (Big endian, decimal) ||
| 0x00 || 0x04 || '''magic''' || PSF ||
|-
|-
| 0x04 || 0x04 || '''version''' || 01 01 00 00 || 1.01
| 0x08 || 0x04 || '''key_table_start''' || 24 00 00 00 || 0x24 (Big endian) || Start of <span style="background:#6666ff;">'''key_table'''</span>
|-
|-
| 0x08 || 0x04 || '''key_table_start''' || 24 00 00 00 || Absolute start offset of <span style="background:#bbbbff;">'''key_table'''</span> = 0x24
| 0x0C || 0x04 || '''data_table_start''' || 30 00 00 00 || 0x30 (Big endian) || Start of <span style="background:#ffff66;">'''data_table'''</span>
|-
|-
| 0x0C || 0x04 || '''data_table_start''' || 30 00 00 00 || Absolute start offset of <span style="background:#ffff66;">'''data_table'''</span> = 0x30
| 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>
|-
|-
| 0x10 || 0x04 || '''tables_entries''' || 01 00 00 00 || Number of entries in <span style="background:#66ff66;">'''index_table'''</span>, <span style="background:#bbbbff;">'''key_table'''</span>, and <span style="background:#ffff66;">'''data_table'''</span> = 1
| 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
|-
|-
! rowspan="5" {{cellcolors|#66ff66}} index_table
| 0x16 || 0x02 || '''param_fmt''' || 04 02 || || Utf-8, refered to <span style="background:#ffff66;">'''param_data'''</span>
| 0x14 || 0x02 || '''key_1_offset''' || 00 00 || '''key_1''' relative offset. (Absolute start offset of '''key_1''') - (Absolute start offset of <span style="background:#bbbbff;">'''key_table'''</span>) = 0x24-0x24 = 0
|-
|-
| 0x16 || 0x02 || '''data_1_fmt''' || 04 02 || '''data_1''' data type = utf8
| 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
|-
|-
| 0x18 || 0x04 || '''data_1_len''' || 0A 00 00 00 || '''data_1''' used length (BLUS12345 = 9 bytes + 1 byte NULL termination) = 10 bytes
| 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
|-
|-
| 0x1C || 0x04 || '''data_1_max_len''' || 0F 00 00 00 || '''data_1''' total length. [[#TITLE_ID|TITLE_ID]] is always = 16 bytes
| 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
|-
|-
| 0x20 || 0x04 || '''data_1_offset''' || 00 00 00 00 || '''data_1''' relative offset. (Absolute start offset of '''data_1''') - (Absolute start offset 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>
|-
|-
! {{cellcolors|#bbbbff}} key_table
| 0x2D || 0x03 || ''padding'' || 00 00 00 || || 9 bytes used by the previous entries + 3 padding = aligned to 12 bytes
|  0x24 || 0x09 || '''key_1''' || TITLE_ID || Relative offset defined in the <span style="background:#66ff66;">'''index_table'''</span>
|-{{cellcolors|lightgrey}}
| || 0x2D || 0x03 || ''padding'' || 00 00 00 || 9 bytes used by the previous entries + 3 padding = 12 (aligned to 4 bytes)
|-
|-
! {{cellcolors|#ffff66}} data_table
| 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>
| 0x30 || 0x0F || '''data_1''' || BLUS12345 || Data type, used length, total length, and relative offset defined in the <span style="background:#66ff66;">'''index_table'''</span>
|}
|}


===SFX===
===SFX===
{{Boxtip3|content= SFX is used in some discs with special content<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]]}}
{{Boxcode|content=<syntaxhighlight lang="xml">
 
{{Boxcode|code=<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 127:
</syntaxhighlight>}}
</syntaxhighlight>}}


*Notes
{{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]]}}
**The function of '''add_hidden="false"''' is unknown


==SFO Requirements for HDD contents==
==SFO Requirements for HDD contents==
This table contains all the parameters known/found for an overview of the requirements needed to build a specific PARAM.SFO for a specific HDD content (SFO's and SFX's used in disc media are not included here).
This table contains all the '''param_key''''s known/found for an overview of the requirements needed by the PARAM.SFO of each content.
 
Columns of the table are named by the [[#CATEGORY|CATEGORY]] used by this content.


{| class="wikitable" style="line-height:100%;;"  
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable sortable" style="border:1px solid #999; border-collapse: collapse;"  
|-
|- bgcolor="#cccccc"
! colspan=4 rowspan=3 | param !! colspan=12 | Used in SFO/SFX with [[#CATEGORY|CATEGORY]]
! param_key !! param_fmt !! param_max_len !! param_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>, '''BV''', '''WT''' !! <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> !! <abbr title="PSvita Game">VT?</abbr>
|-
! colspan="7" | Bootable !! colspan="2" | Data !! colspan="2" | Save !! Trophy
|-
! PS3 !! PS1 !! colspan="2" | PS2 !! colspan="3" | PSP !! PS3 !! PS2 !! PS3 !! PSP !! PS3
|-
! key !! fmt !! len !! max_len || <abbr title="App Photo">AP</abbr>, <abbr title="App Music">AM</abbr>, <abbr title="App Video">AV</abbr>, <abbr title="Broadcast Video">BV</abbr>, <abbr title="App TV">AT</abbr>, <abbr title="Web TV">WT</abbr>, <abbr title="HDD Game">HG</abbr>, <abbr title="Network">CB</abbr>, <abbr title="Playstation Network">HM</abbr>, <abbr title="Store Frontend">SF</abbr> !! <abbr title="PS1 Classics Game">1P</abbr> !! <abbr title="PS2 Installation (from a PS2 Disc)">2G</abbr> !! <abbr title="PS2 Classics Game">2P</abbr> !! <abbr title="PSP Minis Game">MN</abbr> !! <abbr title="PSP Remasters Game">PE</abbr> !! <abbr title="PSP Game">PP</abbr> !! <abbr title="PS3 Game Data">GD</abbr> !! <abbr title="PS2 Emulator Data">2D</abbr> !! <abbr title="PS3 Save Data">SD</abbr> !! <abbr title="PSP Minis Save Data">MS</abbr> !! [[Image:Trophy-platinum.png‎|Trophy (doesnt uses CATEGORY)|x23px]]
|-
| [[#ACCOUNT_ID|ACCOUNT_ID]] || {{cellcolors|brown|yellow}} utf8-S || colspan=2 style="text-align:right;" | 16 (0x010)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}}
|-
|-
| [[#ACCOUNTID|ACCOUNTID]] || {{cellcolors|brown|white}} utf8 || colspan=2 style="text-align:right;" | 16 (0x010)
| || || || || colspan="6" style="text-align:center; background-color:#DDDDDD;" | '''Bootable''' || colspan="2" style="text-align:center; background-color:#DDDDDD;" | '''System Data''' || colspan="2" style="text-align:center; background-color:#DDDDDD;" | '''Saves''' || colspan="1" style="text-align:center; background-color:#DDDDDD;" | '''Trophy''' || colspan="2" style="text-align:center; background-color:#DDDDDD;" | '''Transferable'''
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#ANALOG_MODE|ANALOG_MODE]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| [[#ACCOUNT_ID|ACCOUNT_ID]] || style="background-color:#00DDDD;" | utf-8 Special Mode || 16 (0x10) || 16 (0x10) || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}}
| {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#APP_VER|APP_VER]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 6 (0x006) || style="text-align:right;" | 8 (0x008)
| [[#ACCOUNTID|ACCOUNTID]] || style="background-color:#DDDD00;" | utf-8 || 16 (0x10) || 16 (0x10) || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}}
| {{Opt}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#ATTRIBUTE|ATTRIBUTE]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| [[#ANALOG_MODE|ANALOG_MODE]] || style="background-color:#DD00DD;" | integer || 4 (0x4) || 4 (0x4) || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || ???
| {{Opt}} || {{Yes}} || {{Yes}} || {{Opt}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Opt}} || {{No}} || {{Yes}} || {{No}} || {{No}}
|-
|-
| [[#BOOTABLE|BOOTABLE]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| [[#APP_VER|APP_VER]] || style="background-color:#DDDD00;" | utf-8 || 8 (0x8) || 6 (0x6) || {{Opt}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || ??
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#CATEGORY|CATEGORY]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 3 (0x003) || style="text-align:right;" | 4 (0x004)
| [[#ATTRIBUTE|ATTRIBUTE]] || style="background-color:#DD00DD;" | integer || 4 (0x4) || 4 (0x4) || {{Opt}} || {{Yes}} || {{Yes}} || {{Opt}} || {{Yes}} || {{Yes}} || {{Opt}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || ?
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}}
|-
|-
| [[#CONTENT_ID|CONTENT_ID]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 37 (0x025) || style="text-align:right;" | 48 (0x030)
| [[#BOOTABLE|BOOTABLE]] || style="background-color:#DD00DD;" | integer || 4 (0x4) || 4 (0x4) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} ||
| {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#DETAIL|DETAIL]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 1024 (0x400)
| [[#CATEGORY|CATEGORY]] || style="background-color:#DDDD00;" | utf-8 || 4 (0x4) || 3 (0x3) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}}
|-
|-
| [[#GAMEDATA_ID|GAMEDATA_ID]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | ? || style="text-align:right;" | 32 (0x020)
| [[#CONTENT_ID|CONTENT_ID]] || style="background-color:#DDDD00;" | utf-8 || 48 (0x30) || 37 (0x25) || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} ||
| ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ?
|-
|-
| [[#ITEM_PRIORITY|ITEM_PRIORITY]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| [[#DETAIL|DETAIL]] || style="background-color:#DDDD00;" | utf-8 || 1024 (0x400) || variable || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} ||
| {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#LANG|LANG]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| [[#ITEM_PRIORITY|ITEM_PRIORITY]] || style="background-color:#DD00DD;" | integer || 4 (0x4) || 4 (0x4) || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#LICENSE|LICENSE]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 512 (0x200)
| [[#LANG|LANG]] || style="background-color:#DD00DD;" | integer || 4 (0x4) || 4 (0x4) || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} ||
| {{Yes}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#NP_COMMUNICATION_ID|NP_COMMUNICATION_ID]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 13 (0x00D) || style="text-align:right;" | 16 (0x010)
| [[#LICENSE|LICENSE]] || style="background-color:#DDDD00;" | utf-8 || 512 (0x200) || variable || {{Yes}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} ||
| {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#NPCOMMID|NPCOMMID]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 12 (0x00C) || style="text-align:right;" | 16 (0x010)
| [[#NP_COMMUNICATION_ID|NP_COMMUNICATION_ID]] || style="background-color:#DDDD00;" | utf-8 || 16 (0x10) || 13 (0xD) || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#PADDING|PADDING]] || {{cellcolors|brown|yellow}} utf8-S || style="text-align:right;" | 0 (0x000) || style="text-align:right;" | 8 (0x008)
| [[#NPCOMMID|NPCOMMID]] || style="background-color:#DDDD00;" | utf-8 || 16 (0x10) || 12 (0xC) || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#PARAMS|PARAMS]] || {{cellcolors|brown|yellow}} utf8-S || colspan=2 style="text-align:right;" | 1024 (0x400)
| [[#PADDING|PADDING]] || style="background-color:#00DDDD;" | utf-8 Special Mode || 8 (0x8) || 0 (0x0) || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}}
|-
|-
| [[#PARAMS2|PARAMS2]] || {{cellcolors|brown|yellow}} utf8-S || colspan=2 style="text-align:right;" | 12 (0x00C)
| [[#PARAMS|PARAMS]] || style="background-color:#00DDDD;" | utf-8 Special Mode || 1024 (0x400) || 1024 (0x400) || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}}
|-
|-
| [[#PARENTAL_LEVEL_x|PARENTAL_LEVEL_'''x''']] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| [[#PARAMS2|PARAMS2]] || style="background-color:#00DDDD;" | utf-8 Special Mode || 12 (0xC) || 12 (0xC) || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} ||
| {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#PARENTAL_LEVEL|PARENTAL_LEVEL]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| [[#PARENTAL_LEVEL_x|PARENTAL_LEVEL_'''x''']] || style="background-color:#DD00DD;" | integer || 4 (0x4) || 4 (0x4) || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} ||
| {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}}
|-
|-
| [[#PARENTALLEVEL|PARENTALLEVEL]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| [[#PARENTAL_LEVEL|PARENTAL_LEVEL]] || style="background-color:#DD00DD;" | integer || 4 (0x4) || 4 (0x4) || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} ||
| {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#PATCH_FILE|PATCH_FILE]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | ? || style="text-align:right;" | 32 (0x020)
| [[#PARENTALLEVEL|PARENTALLEVEL]] || style="background-color:#DD00DD;" | integer || 4 (0x4) || 4 (0x4) || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} ||
| ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ?
|-
|-
| [[#PS3_SYSTEM_VER|PS3_SYSTEM_VER]] || {{cellcolors|brown|white}} utf8 || colspan=2 style="text-align:right;" | 8 (0x008)
| [[#PS3_SYSTEM_VER|PS3_SYSTEM_VER]] || style="background-color:#DDDD00;" | utf-8 || 8 (0x8) || 8 (0x8) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Opt}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{Yes}} ||
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Opt}} || {{Yes}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#REGION_DENY|REGION_DENY]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| [[#REGION_DENY|REGION_DENY]] || style="background-color:#DD00DD;" | integer || 4 (0x4) || 4 (0x4) || {{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]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| [[#RESOLUTION|RESOLUTION]] || style="background-color:#DD00DD;" | integer || 4 (0x4) || 4 (0x4) || {{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]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 1024 (0x400)
| [[#SAVEDATA_DETAIL|SAVEDATA_DETAIL]] || style="background-color:#DDDD00;" | utf-8 || 1024 (0x400) || variable || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}}
|-
|-
| [[#SAVEDATA_DIRECTORY|SAVEDATA_DIRECTORY]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 64 (0x040)
| [[#SAVEDATA_DIRECTORY|SAVEDATA_DIRECTORY]] || style="background-color:#DDDD00;" | utf-8 || 64 (0x40) || variable || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}}
|-
|-
| [[#SAVEDATA_FILE_LIST|SAVEDATA_FILE_LIST]] || {{cellcolors|brown|yellow}} utf8-S || colspan=2 style="text-align:right;" | 3168 (0xC60)
| [[#SAVEDATA_FILE_LIST|SAVEDATA_FILE_LIST]] || style="background-color:#00DDDD;" | utf-8 Special Mode || 3168 (0xC60) || 3168 (0xC60) || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}}
|-
|-
| [[#SAVEDATA_LIST_PARAM|SAVEDATA_LIST_PARAM]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 8 (0x008)
| [[#SAVEDATA_LIST_PARAM|SAVEDATA_LIST_PARAM]] || style="background-color:#DDDD00;" | utf-8 || 8 (0x8) || variable || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}}
|-
|-
| [[#SAVEDATA_PARAMS|SAVEDATA_PARAMS]] || {{cellcolors|brown|yellow}} utf8-S || colspan=2 style="text-align:right;" | 128 (0x080)
| [[#SAVEDATA_PARAMS|SAVEDATA_PARAMS]] || style="background-color:#00DDDD;" | utf-8 Special Mode || 128 (0x80) || 128 (0x80) || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}}
|-
|-
| [[#SAVEDATA_TITLE|SAVEDATA_TITLE]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 128 (0x080)
| [[#SAVEDATA_TITLE|SAVEDATA_TITLE]] || style="background-color:#DDDD00;" | utf-8 || 128 (0x80) || variable || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}}
|-
|-
| [[#SOUND_FORMAT|SOUND_FORMAT]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| [[#SOUND_FORMAT|SOUND_FORMAT]] || style="background-color:#DD00DD;" | integer || 4 (0x4) || 4 (0x4) || {{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]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| [[#SOURCE|SOURCE]] || style="background-color:#DD00DD;" | integer || 4 (0x4) || 4 (0x4) || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#SUB_TITLE|SUB_TITLE]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 128 (0x080)
| [[#SUB_TITLE|SUB_TITLE]] || style="background-color:#DDDD00;" | utf-8 || 128 (0x80) || variable || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}}
|-
|-
| [[#TARGET_APP_VER|TARGET_APP_VER]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 6 (0x006) || style="text-align:right;" | 8 (0x008)
| [[#TARGET_APP_VER|TARGET_APP_VER]] || style="background-color:#DDDD00;" | utf-8 || 8 (0x8) || 6 (0x6) || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#TITLE|TITLE]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 128 (0x080)
| [[#TITLE|TITLE]] || style="background-color:#DDDD00;" | utf-8 || 128 (0x80) || variable || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} ||
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}}
|-
|-
| [[#TITLE_ID|TITLE_ID]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 10 (0x00A) || style="text-align:right;" | 16 (0x010)
| [[#TITLE_ID|TITLE_ID]] || style="background-color:#DDDD00;" | utf-8 || 16 (0x10) || 10 (0xA) || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{Yes}} ||
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#TITLE_xx|TITLE_'''xx''']] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 128 (0x080)
| [[#TITLE_xx|TITLE_'''xx''']] || style="background-color:#DDDD00;" | utf-8 || 128 (0x80) || 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''']] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 9 (0x009) || style="text-align:right;" | 16 (0x010)
| [[#TITLEID0xx|TITLEID0'''xx''']] || style="background-color:#DDDD00;" | utf-8 || 16 (0x10) || 9 (0x9) || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} ||
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#VERSION|VERSION]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 6 (0x006) || style="text-align:right;" | 8 (0x008)
| [[#VERSION|VERSION]] || style="background-color:#DDDD00;" | utf-8 || 8 (0x8) || 6 (0x6) || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} ||
| {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#XMB_APPS|XMB_APPS]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ?
|}
|}


*Trophy installers creates a PARAM.SFO '''without CATEGORY''', for this reason in the previous table are represented with the icon {{trophy platinum}}. Its placement in XMB up to firmware 4.25 was in {{icon category game}} column, in firmware 4.30 was moved to {{icon category psn}} column, this placement in XMB is not dependant of its CATEGORY. Trophy folders/files are created by a trophy installer (TROPHY.TRP). See: [[Trophy files]]
===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''': utf8-S<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x10 (16 bytes)}}
{{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 '''utf8-S'''. The string is compared with the user info in [[XRegistry.sys]]. The comparison can only return two values, right, or wrong, if the comparison returns right the SaveData is valid.
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.


When the user/console has not been registered in PSN = 0000000000000000
Filled with zeroes when the user has not been registered in PSN.


When the savedata ownership has been removed (by official DEX feature "fake save data owner") = FFFFFFFFFFFFFFFF
===ACCOUNTID===
 
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x10 (16 bytes)}}
====ACCOUNTID (for trophies)====<!--messed up name when trophies was implemented-->
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x10 (16 bytes)}}
{{Boxtip1|content='''Used by''': Trophy}}
{{Boxtip1|content='''Used by''': Trophy}}


Same string than ACCOUNT_ID but stored as '''utf8''' because the system uses it for normal functions (in this case is sent to PSN to synchronize the trophy data with your online account).
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''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{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}}


{| class="wikitable"
{| class="wikitable"
Line 300: Line 252:
! 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)  
|-
|-
| {{cellcolors|black|lime}} 01 00 00 00 || 00 00 00 01 || style="text-align:right;" | 1 || 00000000 00000000 00000000 00000001 || '''Analog Mode Enabled'''
| {{stylematrix}} 01 00 00 00 || 00 00 00 01 || 1 || 00000000 00000000 00000000 00000001 || '''Analog Mode Enabled'''
|-
|-
|}
|}
Line 306: Line 258:
*'''Analog Mode Enabled'''
*'''Analog Mode Enabled'''
Enables compatibility with the analog sticks of the Dualshock Controller.
Enables compatibility with the analog sticks of the Dualshock Controller.
Digital is single stick mode i.e. remapping the dpad, Analog is twin stick mode or flightstick mode
* http://en.wikipedia.org/wiki/PlayStation_Controller (digital only)
* http://en.wikipedia.org/wiki/Dual_Analog_Controller (Dual analog, can be set digital with analog button)
* http://en.wikipedia.org/wiki/DualShock (Dual analog with rumble, can be set digital with analog button)
* http://en.wikipedia.org/wiki/PlayStation_Analog_Joystick (Dual analog, can be set digital with analog button)
Note: DualShock3+SixAxis are the first to remove the analog button, but can be set in digital mode by software (hence the need of this setting)
*Questions:
**It works (and can be enabled) in PS2 classics ?
**In case of working in PS2 classics... is needed ? (is posible Dualshock 2 enables it by default, so can be pointless)
**On Cobra cfw (not classic) analog mode is auto selected when a PS2 game needs the function, digital mode is grayed out and cannot be highlighted.
**Is posible to disable it ? (in PS1 classics the default mode seems to be disabled so can be pointless, but for PS2 Classic and in case of enabled by default it could be posible to disable)
<!--// please, replace this questions with a short answer that clarifyes it //-->


===APP_VER===
===APP_VER===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x6 (6 bytes)}}
{{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 272:


===ATTRIBUTE===
===ATTRIBUTE===
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{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 279:
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]".


{| style="font-size:11px;"
====ATTRIBUTE In Bootable content====
{| class="wikitable"
|-
! colspan="2" | Hexadecimal !! rowspan="2" | Decimal !! rowspan="2" | Binary <br /> (flags) !! rowspan="2" | Feature <br /> (notes) !! rowspan="2" | Firmware || rowspan="2" | Flag Nº <br /> (flag required)
|-
|-
|
! little endian !! big endian
{| class="wikitable"
|- bgcolor="#DDDDDD"
|+ATTRIBUTE flags<br>for bootable content
| style="background-color:black;" | || colspan="6" style="text-align:center;" | Firmware features
! colspan="2" | Hexadecimal !! rowspan="2" | Decimal !! rowspan="2" | Binary<br>(flags) !! Feature
|-
| {{stylematrix}} '''01''' 00 00 00 || 00 00 00 '''01''' || 1 || 00000000 00000000 00000000 0000000'''1''' || '''PSP Remote Play (v1)''' || 1.10 || bgcolor="#DD6666" | 01
|-
| {{stylematrix}} '''02''' 00 00 00 || 00 00 00 '''02''' || 2 || 00000000 00000000 00000000 000000'''1'''0 || '''PSP Export''' || 1.70 || 02
|-
| {{stylematrix}} '''04''' 00 00 00 || 00 00 00 '''04''' || 4 || 00000000 00000000 00000000 00000'''1'''00 || '''PSP Remote Play (v2)''' || 1.80 || bgcolor="#DD6666" | 03 (01)
|-
|-
! little endian !! big endian !! for bootable content
| {{stylematrix}} '''08''' 00 00 00 || 00 00 00 '''08''' || 8 || 00000000 00000000 00000000 0000'''1'''000 || '''XMB In-Game Forced Enabled''' || 2.40 || 04
|-
|-
| colspan="5" {{cellcolors|black}}  
| {{stylematrix}} '''10''' 00 00 00 || 00 00 00 '''10''' || 16 || 00000000 00000000 00000000 000'''1'''0000 || '''XMB In-Game Disabled''' || 2.40 || 05
|-
|-
| {{cellcolors|black|lime}} '''01''' 00 00 00 || 00 00 00 '''01''' || style="text-align:right;" | 1 || 00000000 00000000 00000000 0000000'''1''' || bgcolor="#DD6666" | '''PSP Remote Play (v1)'''
| {{stylematrix}} '''20''' 00 00 00 || 00 00 00 '''20''' || 32 || 00000000 00000000 00000000 00'''1'''00000 || '''XMB In-Game Background Music''' || 2.40 || 06
|-
|-
| {{cellcolors|black|lime}} '''02''' 00 00 00 || 00 00 00 '''02''' || style="text-align:right;" | 2 || 00000000 00000000 00000000 000000'''1'''0 || '''PSP<!--// and PSVita ? //--> Export'''
| {{stylematrix}} '''40''' 00 00 00 || 00 00 00 '''40''' || 64 || 00000000 00000000 00000000 0'''1'''000000 || '''System Voice Chat''' Disabled? || ? || 07
|-
|-
| {{cellcolors|black|lime}} '''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>
| {{stylematrix}} '''80''' 00 00 00 || 00 00 00 '''80''' || 128 || 00000000 00000000 00000000 '''1'''0000000 || '''PSvita Remote Play''' || 4.00 || 08
|- bgcolor="#DDDDDD"
| style="background-color:black;" | || colspan="6" style="text-align:center;" | Firmware Screens ???
|-
|-
| {{cellcolors|black|lime}} '''08''' 00 00 00 || 00 00 00 '''08''' || style="text-align:right;" | 8 || 00000000 00000000 00000000 0000'''1'''000 || '''XMB In-Game Forced Enabled'''
| {{stylematrix}} 00 '''01''' 00 00 || 00 00 '''01''' 00 || 256 || 00000000 00000000 0000000'''1''' 00000000 || '''Move Controller''' (warning screen) || 3.40 || bgcolor="#66DD66" | 09
|-
|-
| {{cellcolors|black|lime}} '''10''' 00 00 00 || 00 00 00 '''10''' || style="text-align:right;" | 16 || 00000000 00000000 00000000 000'''1'''0000 || '''XMB In-Game Disabled'''
| {{stylematrix}} 00 '''02''' 00 00 || 00 00 '''02''' 00 || 512 || 00000000 00000000 000000'''1'''0 00000000 || '''Navigation Controller''' (warning screen) || 3.40 || bgcolor="#66DD66" | 10 (09)
|-
|-
| {{cellcolors|black|lime}} '''20''' 00 00 00 || 00 00 00 '''20''' || style="text-align:right;" | 32 || 00000000 00000000 00000000 00'''1'''00000 || '''XMB In-Game Background Music'''
| {{stylematrix}} 00 '''04''' 00 00 || 00 00 '''04''' 00 || 1024 || 00000000 00000000 00000'''1'''00 00000000 || '''PlayStation Eye Cam''' (warning screen) || 3.40 || bgcolor="#66DD66" | 11 (09)
|-
|-
| {{cellcolors|black|lime}} '''40''' 00 00 00 || 00 00 00 '''40''' || style="text-align:right;" | 64 || 00000000 00000000 00000000 0'''1'''000000 || '''System Voice Chat''' ? <small>''(See notes below)''</small>
| {{stylematrix}} 00 '''08''' 00 00 || 00 00 '''08''' 00 || 2048 || 00000000 00000000 0000'''1'''000 00000000 || '''Move Calibration''' (notification screen) || 3.40 || 12
|-
|-
| {{cellcolors|black|lime}} '''80''' 00 00 00 || 00 00 00 '''80''' || style="text-align:right;" | 128 || 00000000 00000000 00000000 '''1'''0000000 || '''PSvita Remote Play'''
| {{stylematrix}} 00 '''10''' 00 00 || 00 00 '''10''' 00 || 4096 || 00000000 00000000 000'''1'''0000 00000000 || '''Stereoscopic 3D''' (warning screen) || 3.40 || 13
|-
|-
| colspan="5" {{cellcolors|black}}  
| {{stylematrix}} 00 '''20''' 00 00 || 00 00 '''20''' 00 || 8192 || 00000000 00000000 00'''1'''00000 00000000 || Not used yet ? || ? || 14
|-
|-
| {{cellcolors|black|lime}} 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 '''40''' 00 00 || 00 00 '''40''' 00 || 16384 || 00000000 00000000 0'''1'''000000 00000000 || Not used yet ? || ? || 15
|-
|-
| {{cellcolors|black|lime}} 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 '''80''' 00 00 || 00 00 '''80''' 00 || 32768 || 00000000 00000000 '''1'''0000000 00000000 || Not used yet ? || ? || 16
|- bgcolor="#DDDDDD"
| style="background-color:black;" | || colspan="6" style="text-align:center;" | Game & Software Features ???
|-
|-
| {{cellcolors|black|lime}} 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 00 '''01''' 00 || 00 '''01''' 00 00 || 65536 || 00000000 0000000'''1''' 00000000 00000000 || '''Install Disc''' || ? || 17
|-
|-
| {{cellcolors|black|lime}} 00 '''08''' 00 00 || 00 00 '''08''' 00 || style="text-align:right;" | 2048 || 00000000 00000000 0000'''1'''000 00000000 || '''Move Calibration Notification'''
| {{stylematrix}} 00 00 '''02''' 00 || 00 '''02''' 00 00 || 131072 || 00000000 000000'''1'''0 00000000 00000000 || '''Install Packages''' || ? || 18
|-
|-
| {{cellcolors|black|lime}} 00 '''10''' 00 00 || 00 00 '''10''' 00 || style="text-align:right;" | 4096 || 00000000 00000000 000'''1'''0000 00000000 || '''Stereoscopic 3D Warning'''
| {{stylematrix}} 00 00 '''04''' 00 || 00 '''04''' 00 00 || 262144 || 00000000 00000'''1'''00 00000000 00000000 || Unknown ! || ? || 19
|-
|-
| {{cellcolors|black|lime}} 00 '''20''' 00 00 || 00 00 '''20''' 00 || style="text-align:right;" | 8192 || 00000000 00000000 00'''1'''00000 00000000 || ''Used by PlayStation Now Beta'' <small>''(a notification screen ?)''</small>
| {{stylematrix}} 00 00 '''08''' 00 || 00 '''08''' 00 00 || 524288 || 00000000 0000'''1'''000 00000000 00000000 || '''Game Purchase Enabled''' || ? || 20
|-
|-
| {{cellcolors|black|lime}} 00 '''40''' 00 00 || 00 00 '''40''' 00 || style="text-align:right;" | 16384 || 00000000 00000000 0'''1'''000000 00000000 || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{stylematrix}} 00 00 '''10''' 00 || 00 '''10''' 00 00 || 1048576 || 00000000 000'''1'''0000 00000000 00000000 || Unknown!See note  || ? || 21
|-
|-
| {{cellcolors|black|lime}} 00 '''80''' 00 00 || 00 00 '''80''' 00 || style="text-align:right;" | 32768 || 00000000 00000000 '''1'''0000000 00000000 || {{cellcolors|lightgrey}}''Not Used Yet''
| {{stylematrix}} 00 00 '''20''' 00 || 00 '''20''' 00 00 || 2097152 || 00000000 00'''1'''00000 00000000 00000000 || '''PCEngine''' (X0) || <3.41? || bgcolor="#6666DD" | 22
|-
|-
| colspan="5" {{cellcolors|black}}  
| {{stylematrix}} 00 00 '''40''' 00 || 00 '''40''' 00 00 || 4194304 || 00000000 0'''1'''000000 00000000 00000000 || '''License Logo Disabled''' || <3.41?|| 23
|-
|-
| {{cellcolors|black|lime}} 00 00 '''01''' 00 || 00 '''01''' 00 00 || style="text-align:right;" | 65536 || 00000000 0000000'''1''' 00000000 00000000 || '''Install Disc'''
| {{stylematrix}} 00 00 '''80''' 00 || 00 '''80''' 00 00 || 8388608 || 00000000 '''1'''0000000 00000000 00000000 || '''Move Controller Supported''' || 3.40 || 24
|- bgcolor="#DDDDDD"
| style="background-color:black;" | || colspan="6" style="text-align:center;" | ???
|-
|-
| {{cellcolors|black|lime}} 00 00 '''02''' 00 || 00 '''02''' 00 00 || style="text-align:right;" | 131072 || 00000000 000000'''1'''0 00000000 00000000 || '''Install Packages'''
| {{stylematrix}} 00 00 00 '''01''' || '''01''' 00 00 00 || 16777216 || 0000000'''1''' 00000000 00000000 00000000 || Reserved (X1) || || bgcolor="#6666DD" | 25 (22)
|-
|-
| {{cellcolors|black|lime}} 00 00 '''04''' 00 || 00 '''04''' 00 00 || style="text-align:right;" | 262144 || 00000000 00000'''1'''00 00000000 00000000 || <span style="color:#ff0000">''Unknown !!!''</span>
| {{stylematrix}} 00 00 00 '''02''' || '''02''' 00 00 00 || 33554432 || 000000'''1'''0 00000000 00000000 00000000 || Reserved (X2) || || bgcolor="#6666DD" | 26 (22)
|-
|-
| {{cellcolors|black|lime}} 00 00 '''08''' 00 || 00 '''08''' 00 00 || style="text-align:right;" | 524288 || 00000000 0000'''1'''000 00000000 00000000 || '''Game Purchase Enabled'''
| {{stylematrix}} 00 00 00 '''03''' || '''03''' 00 00 00 || 50331648 || 000000'''11''' 00000000 00000000 00000000 || Reserved (X3) || || bgcolor="#6666DD" | 25+26 (22)
|-
|-
| {{cellcolors|black|lime}} 00 00 '''10''' 00 || 00 '''10''' 00 00 || style="text-align:right;" | 1048576 || 00000000 000'''1'''0000 00000000 00000000 || '''License related ?''' <small>''(See notes below)''</small>
| {{stylematrix}} 00 00 00 '''04''' || '''04''' 00 00 00 || 67108864 || 00000'''1'''00 00000000 00000000 00000000 || '''NeoGeo''' (X4) || <3.41? || bgcolor="#6666DD" | 27 (22)
|-
|-
| {{cellcolors|black|lime}} 00 00 '''20''' 00 || 00 '''20''' 00 00 || style="text-align:right;" | 2097152 || 00000000 00'''1'''00000 00000000 00000000 || bgcolor="#9999DD" | '''PCEngine''' (X0)
| {{stylematrix}} 00 00 00 '''05''' || '''05''' 00 00 00 || 83886080 || 00000'''1'''0'''1''' 00000000 00000000 00000000 || Reserved (X5) || || bgcolor="#6666DD" | 25+27 (22)
|-
|-
| {{cellcolors|black|lime}} 00 00 '''40''' 00 || 00 '''40''' 00 00 || style="text-align:right;" | 4194304 || 00000000 0'''1'''000000 00000000 00000000 || '''License Logo Disabled'''
| {{stylematrix}} 00 00 00 '''06''' || '''06''' 00 00 00 || 100663296 || 00000'''11'''0 00000000 00000000 00000000 || Reserved (X6) || || bgcolor="#6666DD" | 26+27 (22)
|-
|-
| {{cellcolors|black|lime}} 00 00 '''80''' 00 || 00 '''80''' 00 00 || style="text-align:right;" | 8388608 || 00000000 '''1'''0000000 00000000 00000000 || '''Move Controller Enabled'''
| {{stylematrix}} 00 00 00 '''07''' || '''07''' 00 00 00 || 117440512 || 00000'''111''' 00000000 00000000 00000000 || Reserved (X7) || || bgcolor="#6666DD" | 25+26+27 (22)
|-
|-
| colspan="5" {{cellcolors|black}}  
| {{stylematrix}} 00 00 00 '''08''' || '''08''' 00 00 00 || 134217728 || 0000'''1'''000 00000000 00000000 00000000 || Not used yet ? || || 28
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''01''' || '''01''' 00 00 00 || style="text-align:right;" | 16777216 || 0000000'''1''' 00000000 00000000 00000000 || bgcolor="#9999DD" | Reserved (X1) <small>''requires: PCEngine'' ?</small>
| {{stylematrix}} 00 00 00 '''10''' || '''10''' 00 00 00 || 268435456 || 000'''1'''0000 00000000 00000000 00000000 || Not used yet ? || || 29
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''02''' || '''02''' 00 00 00 || style="text-align:right;" | 33554432 || 000000'''1'''0 00000000 00000000 00000000 || bgcolor="#9999DD" | Reserved (X2) <small>''requires: PCEngine'' ?</small>
| {{stylematrix}} 00 00 00 '''20''' || '''20''' 00 00 00 || 536870912 || 00'''1'''00000 00000000 00000000 00000000 || Not used yet ? || || 30
|-
| {{stylematrix}} 00 00 00 '''40''' || '''40''' 00 00 00 || 1073741824 || 0'''1'''000000 00000000 00000000 00000000 || Not used yet ? || || 31
|-
| {{stylematrix}} 00 00 00 '''80''' || '''80''' 00 00 00 || 2147483648 || '''1'''0000000 00000000 00000000 00000000 || Not used yet ? || || 32
|}
 
*'''PSP Remote Play v1 and v2'''
Remote play is a feature that displays the PS3 screen on a PSP to enable remote operation over a wireless LAN. There are two PSP Remote Play modes, "v1" is in low quality using MPEG4 SP/ATRAC codecs, and "v2" uses MPEG4 AVC/AAC. See: [[Remote_Play|Remote Play]] page and [http://www.youtube.com/watch?v=nOTjB2lPUsw| Official video in youtube].
 
*'''PSP Export'''
Allows the copy of the content to a PSP by pressing triangle over his icon in XMB and the option "copy" in the side menu. Used by "PS1 Game", "Minis Game" and "PSP Game".
 
From FW 4.00, this option have been removed and the copy to a psp (or install on XMB) is from "bubbles"  PKG (the flag is still used there). After been copied, you can still keep the pkg.
<!--//Previous link[http://manuals.playstation.net/document/en/ps3/current/game/copypsp.html| PS3 User Guide/Copying games to play on a PSP] might include link to install pkg tool, pdb page. //-->
 
*'''XMB In-Game Forced Enable'''
[http://www.blogcdn.com/www.engadget.com/media/2008/06/ps3-ingame-xmb-2.40-clock.jpg XMB In-Game v2] was implemented in firmware 2.40, before 2.40 there was an old [http://www.blogcdn.com/www.joystiq.com/media/2008/01/ps3-in-game-menu.jpg XMB In-Game v1]. Games released before firmware 2.40 uses "XMB In-Game v1" even when launched in higher firmwares. This flag activates "XMB In-Game v2" for this old games, it has no effect in games released after 2.40 because this ones has XMB In-Game v2 activated by default. See: [http://www.viddler.com/simple/1ffb1ce3/ Official introduction video of the feature in fw 2.40].
 
If pressing home button for few seconds, XMB In-Game V1 will appear even in recent games. Some games such as Fritz chess got even 3 different XMB In Game: V2 when the game is launched, V1 during autosave feature screen, and a kind of V1.5 after (ICONS barely visible and no background visible)
 
*'''XMB In-Game Disabled'''
Replaces "XMB In-Game v2" by "XMB In-Game v1", works with all games, useful to free ram and to improve the loading time of the menu.
 
*'''XMB In-Game Background Music'''
Allows to pause the game (with the PS button), play your own music from the files stored in your HDD, and return to the game while your music is playing. This feature enables a SPU (inside CELL) that runs an specific thread to play the music independently of the other game threads (is a feature of the firmware, not of the game)
 
*'''System Chat voice'''
Disabled ? (or supported): not tested/found/used in apps
 
Speculation: was valid before Jun 2010 flags (maybe for some "Home" tests related with voice chat)
 
*'''PSvita Remote Play''' 480p (852x480)
Used for first time by "patch v3.52" for "[[torne |torne]]" (IP9100-BCJB95006_00-TORNE0PATCH00352-A0352-V0352-PE). Previously torne had 2 flags for the two PSP remote play modes. This patch was released few days after PS3 firmware 4.00, in his chagelog there is a clear reference to PSvita connectivity with PS3 but its not verifyed (and cant be tested in a firmware before 4.00)
 
*'''Move/Navigation/Eye (warning screens)'''
This warning screens are displayed before the game is launched (around 3 seconds each), are an explain of the correct way to use the "move controller", "navigation controller", and "eye cam" respectively. The game waits for them to appear so is a good idea to remove them to improve the loading time, the removing of this 3 screens has no effect over the controller, move controller will work without them.
 
*'''Calibration (notification screen)'''
This is a calibration screen that appears when the controller has not been calibrated previously (or when is miss-configured).
 
*'''Stereoscopic 3D (warning screen)'''
This is a warning screen similar than the ones related with move peripherals, only appears when the TV is "3D compatible".
 
*'''Install Disc'''
Hides the primary icon of the disc (only the secondary icon is displayed), used when the disc contains only "Install Packages" and there is no bootable content on the "main" path (PS3_GAME/USRDIR/EBOOT.BIN).
 
*'''Install Packages'''
Activates the subfolder structure PS3_GAME/PKGDIR in discs by loading another SFO from this subfolder (the system loads the "main" SFO from PS3_GAME, and then "jumps" to the "secondary" SFO), every time one of these SFO's inside substructures/subfolders is loaded... a new subicon/mount point is loaded in XMB. See the examples in [[#Blu-Ray_disc_structure_details:|"fake disc structure"]]
 
*'''Game Purchase Enabled'''
Activates the option to purchase the content by pressing triangle over his 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. PARAM.SFO from the subfolder, as C00,  with the TITLE "Full" is loaded, and the main PARAM.SFO with the TITLE "Demo" is ignored)
 
*'''Move Controller Supported'''
Enables support for the Move Controller (Navigation Controller and Eye Cam doesn't have/needs a flag)
 
*'''License Logo Disabled'''
Removes the "About this Game" option in Side Menu (by pressing triangle over the icon in XMB). This option ignores the [[#LICENSE|LICENSE]] text. Used by games that has his own license and not the sony one (e.g: PCengine & NeoGeo)
 
 
*'''Unknown flag n21'''
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...
 
====ATTRIBUTE in Patches====
When a patch for a game (e.g: a disc game) is installed, the game boots from the "patch installation" folder, XMB loads from this folder his [[Content Information Files]], a new [[PARAM.SFO]], and a new [[EBOOT.BIN]]
 
After one of this installations PS3 loads both PARAM.SFO's (the "original.sfo" one from disc + the new from the "patch.sfo" folder)... some values are taken from the "original.sfo" (e.g: BOOTABLE, RESOLUTION, SOUND_FORMAT... are not present in patches)... and others are taken from the "patch.sfo" (e.g: APP_VER increases in every patch)
 
Patches uses a system of "overwrite flag/param_key" that makes the PS3 ignore the "original.sfo" value and use the value from the "patch.sfo"... this can be used in combination with the "standard flags" (one flag indicates the value must be taken from the patch... and the other flag activates the feature)
 
{| class="wikitable"
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''03''' || '''03''' 00 00 00 || style="text-align:right;" | 50331648 || 000000'''11''' 00000000 00000000 00000000 || bgcolor="#9999DD" | Reserved (X3) <small>''requires: PCEngine'' ?</small>
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes)
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''04''' || '''04''' 00 00 00 || style="text-align:right;" | 67108864 || 00000'''1'''00 00000000 00000000 00000000 || bgcolor="#9999DD" | '''NeoGeo''' (X4) <small>''requires: PCEngine''</small>
| {{stylematrix}} 00 00 '''01''' 00 || 00 '''01''' 00 00 || 65536 || 00000000 00000001 00000000 00000000 || Overwrite: ???unknown???
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''05''' || '''05''' 00 00 00 || style="text-align:right;" | 83886080 || 00000'''1'''0'''1''' 00000000 00000000 00000000 || bgcolor="#9999DD" | Reserved (X5) <small>''requires: PCEngine'' ?</small>
| {{stylematrix}} 00 00 '''02''' 00 || 00 '''02''' 00 00 || 131072 || 00000000 00000010 00000000 00000000 || Overwrite: ???unknown???
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''06''' || '''06''' 00 00 00 || style="text-align:right;" | 100663296 || 00000'''11'''0 00000000 00000000 00000000 || bgcolor="#9999DD" | Reserved (X6) <small>''requires: PCEngine'' ?</small>
| {{stylematrix}} 00 00 '''04''' 00 || 00 '''04''' 00 00 || 262144 || 00000000 00000100 00000000 00000000 || Overwrite: '''RESOLUTION''', '''SOUND_FORMAT''', '''Remote Play'''
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''07''' || '''07''' 00 00 00 || style="text-align:right;" | 117440512 || 00000'''111''' 00000000 00000000 00000000 || bgcolor="#9999DD" | Reserved (X7) <small>''requires: PCEngine'' ?</small>
| {{stylematrix}} 00 00 '''08''' 00 || 00 '''08''' 00 00 || 524288 || 00000000 00001000 00000000 00000000 || Overwrite: ???unknown???
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''08''' || '''08''' 00 00 00 || style="text-align:right;" | 134217728 || 0000'''1'''000 00000000 00000000 00000000 || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{stylematrix}} 00 00 '''10''' 00 || 00 '''10''' 00 00 || 1048576 || 00000000 00010000 00000000 00000000 || Overwrite: ATTRIBUTE flag: '''XMB In-Game'''
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''10''' || '''10''' 00 00 00 || style="text-align:right;" | 268435456 || 000'''1'''0000 00000000 00000000 00000000 || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{stylematrix}} 00 00 '''20''' 00 || 00 '''20''' 00 00 || 2097152 || 00000000 00100000 00000000 00000000 || Overwrite: ATTRIBUTE flag: '''Move Controller warning screen'''
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''20''' || '''20''' 00 00 00 || style="text-align:right;" | 536870912 || 00'''1'''00000 00000000 00000000 00000000 || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{stylematrix}} 00 00 '''40''' 00 || 00 '''40''' 00 00 || 4194304 || 00000000 01000000 00000000 00000000 || Overwrite: ATTRIBUTE flag: '''3D warning screen'''
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''40''' || '''40''' 00 00 00 || style="text-align:right;" | 1073741824 || 0'''1'''000000 00000000 00000000 00000000 || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{stylematrix}} 00 00 '''80''' 00 || 00 '''80''' 00 00 || 8388608 || 00000000 10000000 00000000 00000000 || Overwrite: ATTRIBUTE flag: '''Move Controller Compatible'''
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''80''' || '''80''' 00 00 00 || style="text-align:right;" | 2147483648 || '''1'''0000000 00000000 00000000 00000000 || {{cellcolors|lightgrey}} ''Not Used Yet''
|}
|}
|
 
*'''Overwrite: ???unknown???'''
TITLE ?
 
*'''Overwrite: ???unknown???'''
PARENTAL_LEVEL ?
 
*'''Overwrite RESOLUTION, SOUND_FORMAT, Remote Play'''
For remote play: with this flag you ll need to add one of the flag related to remote play.
 
E.G. 262272 (0x40080) for PS VITA only added (God of War Collection 1.01 with PARAM.HIP explaining it s not compatible with PSP)
 
*'''Overwrite: ???unknown???'''
 
*'''Overwrite XMB In-Game'''
Expect to overwrite only flags nº: 4, 5, and 6
 
Verifyed in killzone 3 (BCES01007) patch v01.14 with a value for ATTRIBUTE: '''20 00 10 00''' (overwrites the original value of ATTRIBUTE, and enables "XMB In-Game Background Music")
 
Other posible values not verifyed yet: '''08 00 10 00''' (for overwriting of "XMB In-Game Forced Enabled"), and '''20 00 10 00''' (for overwriting of "XMB In-Game Disabled")
 
*'''Overwrite Move Controller warning screen'''
Expect to overwrite only flag N09, N10 (+09), N11 (+09)
 
*'''Overwrite 3D warning screen'''
Expect to overwrite only flag N13
 
*'''Overwrite Move Controller Compatible'''
 
====ATTRIBUTE in SaveData====
{| class="wikitable"
{| class="wikitable"
|+ATTRIBUTE flags<br>for non bootable content
! colspan="3" | Feature
|-
|-
! for Save Data !! for Disc Subfolders !! for Patches
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes)
|-
| {{stylematrix}} 01 00 00 00 || 00 00 00 01 || 1 || 00000000 00000000 00000000 00000001 || '''Save Data Copy Protected'''
|-
|-
| colspan="5" {{cellcolors|black}}
|}
 
*'''Save Data Copy Protected '''
Used only in SaveData ('''SD'''), not in MInis SaveData ('''MS'''). Removes the option "copy" from the side menu when pressing triangle over his icon in XMB.
 
====ATTRIBUTE in Discs Subfolders====
{| class="wikitable"
|-
|-
| '''Copy Protected''' || '''Subfolder Enabled''' || {{cellcolors|lightgrey}} ''Not Used Yet''
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes)
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{stylematrix}} 01 00 00 00 || 00 00 00 01 || 1 || 00000000 00000000 00000000 00000001 || '''Subfolder Activated'''
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|}
 
*'''Subfolder Activated'''
Used in Discs subfolders (CATEGORY '''TR''', '''VR''', '''DP''', '''XR''') to activate another subfolder.
 
===BOOTABLE===
{{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}}
 
{| class="wikitable"
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes)
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{stylematrix}} 01 00 00 00 || 00 00 00 01 || 1 || 00000000 00000000 00000000 00000001 || '''Bootable'''
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|}
 
*'''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"
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
! 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
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| rowspan="1" style="text-align:center; background-color:#EEEEEE;" | PSvita || {{icon content psvita}} || || || || || VT? || || || '''PSvita''' ? || 4.00 || 4.31+ || .PKG ? || PSvita contents. Not bootable, import/export to PSvita
|- bgcolor="#EEEEEE"
| colspan="14" |  
|-
|-
| colspan="5" {{cellcolors|black}}  
| 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)
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{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" |  
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| 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]]
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{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]]
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{icon content pspremaster}} || || || || || MS || || || '''Memory Stick?''' || || || PSP Remaster game || See: [[Game_Saves#Game_Saves_PSP_Remaster | Game Saves - PSP Remaster]]
|- bgcolor="#EEEEEE"
| colspan="14" |
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| rowspan="15" style="text-align:center; background-color:#EEEEEE;" | HDD Bootable || {{icon content ps3}} || AP || || || || || || || '''App Photo''' || || || .PKG || PlayMemories
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{icon content ps3}} || || AM || || || || || || '''App Music''' || || || .PKG || Qriocity Music Unlimited
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{icon content ps3}} || || || AV || || || || || '''App Video''' || || || .PKG || Netflix, LoveFilm, Maxdome
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{icon content ps3}} || || || BV || || || || || '''Broadcast? Video''' || || || .PKG ||
|-
|-
| colspan="5" {{cellcolors|black}}  
| {{icon content ps3}} || || || || AT || || || || '''App TV''' || || || .PKG || QOOK TV, Now TV, Torne (TV/Video Services Column hidden when no installed content)
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || <span style="color:#ff0000">''Unknown !!!''</span>
| {{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]].
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || <span style="color:#ff0000">''Unknown !!!''</span>
| {{icon content ps3}} || || || || || || CB || || '''CELL? BE?''' || || || .PKG || [[Life with PlayStation]], [http://www.scei.co.jp/folding/en/ Folding@home]
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || param_key: '''RESOLUTION''', '''SOUND_FORMAT''', and ATTRIBUTE flag: '''Remote Play'''
| {{icon content ps3}} || || || || || || || HM || '''Home''' || || || .PKG || PlayStation Home
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || <span style="color:#ff0000">''Unknown !!!''</span>
| {{icon content ps3}} || || || --- || || --- || || SF || '''Store Frontend?''' || || || .PKG || PlayStation Store
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || ATTRIBUTE flag: '''XMB In-Game'''
| {{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}}
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || ATTRIBUTE flag: '''Move Controller warning'''
| {{icon content ps2}} || || || || || 2G  || || || '''PS2 Game''' || || || PS2 Disc Installation || PS2 Discs installed in internal HDD, only in "backward compatible" PS3's. See: [[Emulation]]
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || ATTRIBUTE flag: '''Stereoscopic 3D warning'''
| {{icon content ps2}} || || || || || 2P || || || '''PS2 PSN''' ? || 3.70 || 4.31+ || .PKG || "'''PS2 Classics'''". Re-edited PS2 games released as a .pkg in "PlayStation Store"
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || ATTRIBUTE flag: '''Move Controller Enabled'''
| {{icon content ps1}} || || || || || 1P || || || '''PS1 PSN''' ? || 1.70 || 4.31+ || .PKG || "'''PS1 Classics'''". Re-edited PS1 games released as a .pkg in "PlayStation Store"
|-
|-
| colspan="5" {{cellcolors|black}}  
| {{icon content pspminis}} || || || || || MN || || || '''Minis''' || 3.15 || 4.31+ || .PKG || "'''PSP Minis'''". Format inherited from PSP
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{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" |  
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| 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" |  
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| 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
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| || || || || || <abbr title="AR path: dev_bdvd/TITLE_ID/PS3_GAME/INSDIR/PARAM.SFO">AR</abbr> || || || '''Autoinstall Root''' || || || PS3 Disc || Game Patches and Installable Packages
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| || || || || || <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
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| || || || || || <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
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| || || || || || <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
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| || || || <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
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| || || || <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
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| || || || || || <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
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| || || || <abbr title="DM path: dev_bdvd/TITLE_ID/PS3_VPRM/PARAM.SFO">DM</abbr> || || || || || '''Disc Movie''' || || || PS3 Disc || Main content of a Movie Disc
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|}
|}
|}


'''ATTRIBUTE flags for bootable content (1<sup>st</sup> byte)'''
*Notes
The flags stored at 1st byte seems to be related with firmware features
**Values inside parentheses indicates the structure has another subfolder with another PARAM.SFO.
{{Boxframe4|content=
**[[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
{{Boxframe1|content='''Portables'''
**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)//-->
{{Boxframe0|content={{dot}}'''PSP Remote Play v1''' ''(firmware v1.10)''<BR />{{dot}}'''PSP Remote Play v2''' ''(firmware v1.80)''<BR />{{dot}}'''PSVita Remote Play''' ''(firmware v4.00)''<BR />
----
Remote play is a feature that displays the PS3 screen on a PSP or a PSVita enabling remote operations over a wireless LAN. See: [[Remote Play]]
====Blu-Ray disc structure details:====
}}


{{Boxframe0|content={{dot}}'''PSP Export''' ''(firmware v1.70)''<BR />
<div style="float:right">[[Image:icon media ps3 bd.png|200px|thumb|left|PS3 Blu Ray]]<br /></div>
Used in PS1 Classics, PSP Minis, and PSP Games. Allows the copy of the game to a PSP by pressing {{padtriangle}} over the game icon and selecting the option <span style="background:#bbbbff;">[Copy]</span> in the side menu. This export process is closelly related with how the PS3 manages the downloads and installation of content from PSN using temporal subfolders in ''dev_hdd0/vsh/task/''. See [[Project Database (PDB)]]
}}
}}


{{Boxframe1|content='''XMB In-Game''' (short {{padps}} press)
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.
{{Boxframe0|content={{dot}}'''XMB In-Game Forced Enable''' ''(firmware v2.40)''<BR />
Games released/compiled before firmware 2.40 doesnt uses "XMB In-Game" even when launched in higher firmwares. This flag enables "XMB In-Game" for these old games, the flag has no effect in games released after 2.40 because newer games has "XMB In-Game" enabled by default. See: [[XMB#XMB Modes|XMB Modes]].
}}


{{Boxframe0|content={{dot}}'''XMB In-Game Disabled''' ''(firmware v2.40)''<BR />
Disables "XMB In-Game", the flag works in all games and doesnt causes any problem, useful to free ram and to improve the loading time of the menu. See: [[XMB#XMB Modes|XMB Modes]].
}}


{{Boxframe0|content={{dot}}'''XMB In-Game Background Music''' ''(firmware v2.40)''<BR />
'''Game discs in folder PS3_GAME'''
When enabled allows to play your own music from the files stored in your HDD by using the icon that appears in XMB {{icon category music}} column, is posible to play single songs or a playlist and then return to the game while your music is playing. See [[XMB In-game background music]]
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


{{Boxframe0|content={{dot}}'''System Voice Chat ?'''<BR />
Speculation: Not clear if the flag enables or disables voice chat, and not clear wich kind of voice chat (in the very probable case there are severals chat modes/types), supposed to be valid before Jun 2010, matching chronologigally the release of "home" (probably used in beta stages of the developing of chat functions inside "Home" enviroment to make internall tests related with voice chat). Enabling the flag manually for testing in different SFO's with different CATEGORY's didnt give any result
}}
}}


'''ATTRIBUTE flags for bootable content (2<sup>nd</sup> byte)'''
The flags stored at 2nd byte seems to be related with warning and notification screens
{{Boxframe4|content=
{{Boxframe1|content='''Move'''
{{Boxframe0|content={{dot}}'''Move Controller Warning''' ''(firmware v3.40)''<BR />{{dot}}'''Navigation Controller Warning''' ''(firmware v3.40)''<BR />{{dot}}'''PlayStation Eye Cam Warning''' ''(firmware v3.40)''<BR />
This warning screens are composed by several animated images loaded from ''dev_flash/vsh/resource/game_ext_plugin.rco''<!--// and ycon_manual_plugin.rco ? //-->, are displayed before the game is launched (around 3 seconds each), are an explain of the correct way to use "move controller", "navigation controller", and "eye cam" respectively. The game waits for them to appear so removing them improves the loading time, the presence of this 3 flags/screens has no effect over move controller support.
}}


{{Boxframe0|content={{dot}}'''Move Calibration Notification''' ''(firmware v3.40)''<BR />
'''Movie discs in folder PS3_VPRM'''
This is a calibration screen composed by several animated images loaded from ''dev_flash/vsh/resource/sysconf/calibration/'', appears when the controller has not been calibrated previously (or when is miss-configured).
Described as hybrid disc, this is the part of a Blue-Ray movie structure related with the PS3 system. The rest are the standard folders/files of a Blue-Ray movie and is not needed to be explained here.
}}
0MOV00001
}}
|--- PS3_DISC.SFB <--- HYBRID_FLAG (v), TITLE_ID (blank)
|--- PS3_VPRM
      |--- PARAM.SFO <--- CATEGORY (DM)


{{Boxframe0|content={{dot}}'''Stereoscopic 3D Warning''' ''(implemented in firmware v3.40)''<BR />
This is a warning screen (composed and loaded from ?) similar than the ones related with move peripherals, when enabled only appears if the PS3 is connected to a "Stereoscopic 3D" compatible TV.
}}
}}


'''ATTRIBUTE flags for bootable content (3<sup>rd</sup> byte)'''
The flags stored at 3rd byte seems to be related with game & software features
{{Boxframe4|content=
{{Boxframe1|content='''Discs'''
{{Boxframe0|content={{dot}}'''Install Disc'''<BR />
Disables the main/primary icon of the disc {{media ps3 bd}} (only the extra/secondary icons are displayed), used when the disc only contains "Install Packages" and there is no bootable content on the disc main path in ''dev_bdvd/PS3_GAME/USRDIR/EBOOT.BIN''.
}}


{{Boxframe0|content={{dot}}'''Install Packages'''<BR />
'''Game discs in folder PS3_CONTENT'''
Loads a secondary SFO from path: ''dev_bdvd/PS3_GAME/PKGDIR/PARAM.SFO'' (the flag in the main SFO in path ''dev_bdvd/PS3_GAME/PARAM.SFO'' {{media ps3 bd}} enables the secondary SFO in path ''dev_bdvd/PS3_GAME/PKGDIR/PARAM.SFO'' displayed as a bubble inside a disc {{media ps3 bd install}}), the secondary SFO and the contents of this subfolder are mounted by XMB under the main disc icon in {{icon category game}} column. See [[#CATEGORY|BluRay Disc Structure]]
<div style="float:right">[[Image:icon media ps3 bd_video.png|200px|thumb|center|PS3 Blu Ray video content]]<br /></div>
}}
}}


{{Boxframe0|content={{dot}}'''Game Purchase Enabled'''<BR />
<div style="float:right">[[Image:icon media_ps3_bd_install.png|200px|thumb|center|PS3 Blu Ray install content]]<br /></div>
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 its 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 1048576 (decimal)''' ''(firmware <4.00?)''<BR />
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.
When activated, "XMB in Game" for software is used (when quitting an app that uses this flag the message displayed in XMB In-Game changes to: ''"Do you want to quit the software now?"''), and disables <span style="background:#bbbbff;">[About this Game]</span> option that appears in side menu when pressing {{padtriangle}} over the icon in XMB. This flag is used in combination with the parameter [[#BOOTABLE|BOOTABLE]] = 2 to make the software boot in a special mode
}}


{{Boxframe0|content={{dot}}'''PCEngine''' ''(firmware <3.41?)''<BR />
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


{{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 have their own license and not the sony one (e.g: PCengine & NeoGeo)
}}


{{Boxframe0|content={{dot}}'''Move Controller Enabled''' ''(firmware v3.40)''<BR />
Enables Move Controller support for the game. See [[Move Motion Controller]]
Note [[Move Navigation Controller]] is supported in all games because is a reduced version of [[DualShock 3]] and [[PlayStation Eye]] camera is enabled automatically when needed. This ones doesn't have/needs a flag
}}
}}


'''ATTRIBUTE flags for bootable content (4<sup>th</sup> byte)'''
'''Game discs in folder PS3_GAME/PKGDIR'''
{{Boxframe4|content=
<div style="float:right">[[Image:icon media ps3 bd.png|200px|thumb|left|PS3 Blu Ray]]<br /></div>
{{Boxframe0|content={{dot}}'''NeoGeo''' ''(firmware <3.41?)''<BR />
}}
}}


'''ATTRIBUTE flags for savedata (1<sup>st</sup> byte)'''
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.
{{Boxframe4|content=
{{Boxframe0|content={{dot}}'''Copy Protected '''<BR />
Disables the <span style="background:#bbbbff;">[Copy]</span> option that appears in side menu when pressing {{padtriangle}} over the gamesave icon in XMB. In other words... disables the gamesave export feature. Used only in PS3 Game Saves (CATEGORY: '''SD'''). See [[Game Saves]].
Note in PS3 Game Saves the PARAM.SFO is always included in the list of protected files that is stored inside PARAM.PFD, so after removing the copy protection flag in the .SFO is needed to generate a valid .PFD. See [[PARAM.PFD]]
}}
}}


'''ATTRIBUTE flags for disc subfolders (1<sup>st</sup> byte)'''
When the packages are installed, the file PARAM.SFO from PKGDIR is renamed to DISC.SFO and copyed inside the installation folder.
{{Boxframe4|content=
0PKG00001
{{Boxframe0|content={{dot}}'''Subfolder Activated'''<BR />
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0PKG00001)
Used in Discs subfolders (CATEGORY: '''TR''', '''VR''', '''DP''', '''XR''') to activate another subfolder. This secondary subfolder can contain another SFO (or a .SFX) and are loaded in cascade, all the SFO's in the subfolders structures contains an ATTRIBUTE = 1. In other words... the flag simply indicates the presence of items under this path.
|--- 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


'''ATTRIBUTE flags for patches (3<sup>rd</sup> byte)'''
{{Boxframe4|content=
{{Boxframe0|content={{dot}}'''Overwrite RESOLUTION, SOUND_FORMAT, Remote Play'''
For remote play: with this flag you ll need to add one of the flag related to remote play. E.G. 262272 (0x40080) for PS VITA only added (God of War Collection 1.01 with PARAM.HIP explaining it s not compatible with PSP)
}}


{{Boxframe0|content={{dot}}'''Overwrite XMB In-Game'''
Expect to overwrite only flags nº: 4, 5, and 6. Verifyed in killzone 3 (BCES01007) patch v01.14 with a value for ATTRIBUTE: '''20 00 10 00''' (overwrites the original value of ATTRIBUTE, and enables "XMB In-Game Background Music"). Other posible values not verifyed yet: '''08 00 10 00''' (for overwriting of "XMB In-Game Forced Enabled"), and '''20 00 10 00''' (for overwriting of "XMB In-Game Disabled")
}}


{{Boxframe0|content={{dot}}'''Overwrite Move Controller warning screen'''
'''Game discs in folder PS3_GAME/INSDIR'''
Expect to overwrite only flag N09, N10 (+09), N11 (+09)
Can be considered an "expansion" of the basic blu-ray structure of a game disc, activated by default ?
}}


{{Boxframe0|content={{dot}}'''Overwrite 3D warning screen'''
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.
Expect to overwrite only flag N13
}}


{{Boxframe0|content={{dot}}'''Overwrite Move Controller Compatible'''
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 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 {{talk}} page.
"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


===BOOTABLE===
{{Boxinfo3|content='''param_fmt''': int32<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}}
Specifyes if the content is bootable or not, and the boot mode.


{| class="wikitable"
|-
! colspan="2" | Hexadecimal !! rowspan="2" width="75" | Decimal !! rowspan="2" | Binary <br /> (flags) !! rowspan="2" | Feature
|-
! little endian !! big endian
|-
| {{cellcolors|black|lime}} 00 00 00 00 || 00 00 00 00 || style="text-align:right;" | 0 || 00000000 00000000 00000000 00000000 || '''Not Bootable'''
|-
| {{cellcolors|black|lime}} '''01''' 00 00 00 || 00 00 00 '''01''' || style="text-align:right;" | 1 || 00000000 00000000 00000000 0000000'''1''' || '''Bootable (mode 1)'''
|-
| {{cellcolors|black|lime}} '''02''' 00 00 00 || 00 00 00 '''02''' || style="text-align:right;" | 2 || 00000000 00000000 00000000 000000'''1'''0 || '''Bootable (mode 2)'''
|-
|}


'''Not Bootable'''
'''Game discs in folder PS3_EXTRA'''
*Looks pointless because the SFO's for contents that are not bootable simply doesnt includes the parameter BOOTABLE (like savegames or trophies where BOOTABLE doesnt exists and if you include it manually the system ignores it), but in some specific cases the PARAM.SFO contains the parameter BOOTABLE with a value of 0 (e.g: in SFO's of CATEGORY '''PP'''... for PSP transferable games, where the game is not intended to boot on PS3, is only stored temporally in PS3 ready to be transfered to a PSP)
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]]


'''Bootable (mode 1)'''
Similar as PKGDIR, the file PARAM.SFO from <span style="text-decoration: line-through;">PKGDIR</span> (seems typo error) is renamed to DISC.SFO.
*Used in all games that "boots" on PS3 (and all apps that boots on PS3, with the exception of the ones using bootable = 2 explained below)
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


'''Bootable (mode 2)'''
*After 4.00 firmware XMB can identify some bootable contents as "software" by using this flag ("bootable games" and "bootable software" should be considered different based on this flag, or they boots in different modes), is used in combination with the ATTRIBUTE flag 1048576 (in decimal), this flag displays an specific message from game_ext_plugin.rco/english.xml when quitting the software ''<Text name="msg_need_quit_to_operate_ask">To perform this operation, you must quit [%1]. Do you want to quit the software now?</Text>'', and ''"About this Game"'' is removed from the option side menu (infobar)
*Note the XMB mesages enabled with the ATTRIBUTE flag are specific for software (not for games), and the data type of BOOTABLE is int32 (flags), when looking at BOOTABLE flags in binary the flags are different (BOOTABLE flag 2 doesnt contains flag 1)
*The use of this flag is not completly known/documented, feel free to experiment and return back to edit wiki with new info <!--// instead of leeching for fame and glory in your kiddy circle :/ //-->


===CATEGORY===
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]]
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x3 (3 bytes)}}
{{Boxtip1|content='''Used by''': All but Trophy}}


The next tables represents the columns where the content is placed in the [[XMB]] and the CATEGORY asociated.
*Remove-insert again disc might be required to make structures appears.


{{PS3 Disc Game Structure}}
*DISC.SFO seems to force the user to start the installed game with the original disc with this message on XMB:


{{PS3 HDD Game Structure}}
"to play this game, you must insert the following disc. Insert the disc, and then start the game
again.  (8001003E) Install disc"


*Notes
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]]
**[[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)//-->


===CONTENT_ID===
===CONTENT_ID===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x30 (48 bytes)<br />'''param_len''': 0x25 (37 bytes)}}
{{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 its icon in XMB.
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 767:


===DETAIL===
===DETAIL===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x400 (1024 bytes)<br />'''param_len''': variable}}
{{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 775:


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.
====SAVEDATA_DETAIL (for minis savedata)====
{{Boxinfo3|content='''param_fmt''': utf8<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]]
===GAMEDATA_ID===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x20 (32 bytes)<br />'''param_len''': variable}}
{{Boxtip1|content='''Used by''': Unknown (not bootable?)}}
Found in explore_plugin (checked at: '''/app_home/PS3_GAME/PARAM.SFO'''), and XMB databases (accessed as '''Game:Game.gameDataID''')


===ITEM_PRIORITY===
===ITEM_PRIORITY===
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{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 785:


===LANG===
===LANG===
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{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.
{{PlayStation Languages}}
{{XMB languages}}


===LICENSE===
===LICENSE===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x200 (512 bytes)<br />'''param_len''': variable}}
{{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 798:


=== NP_COMMUNICATION_ID ===
=== NP_COMMUNICATION_ID ===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0xD (13 bytes)}}
{{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}}


[[NP Communication ID|'''N'''etwork '''P'''latform '''Communication''' '''ID''']]. Also is the name of the folder containing the trophy installer: [[Trophy_files#Trophy_Installer | TROPHY.TRP]]
[[NP Communication ID|'''N'''etwork '''P'''latform '''Communication''' '''ID''']]. Also is the name of the folder containing the trophy installer: [[Trophy_files#Trophy_Installer | TROPHY.TRP]]


The format is 4 letters + 5 numbers with optionally a subid (usually 0) : NPWRyyyyy_zz (e.g. NPWR00001_00)
The format is NPWRxxyyy_zz (e.g. NPWR00001_00)


====NPCOMMID (for trophies)====<!--messed up name when trophies was implemented-->
===NPCOMMID===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0xC (12 bytes)}}
{{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 812:


===PADDING===
===PADDING===
{{Boxinfo3|content='''param_fmt''': utf8-S<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x0 (0 bytes)}}
{{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 818:


===PARAMS===
===PARAMS===
{{Boxinfo3|content='''param_fmt''': utf8-S<br />'''param_max_len''': 0x400 (1024 bytes)<br />'''param_len''': 0x400 (1024 bytes)}}
{{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''': PS3 Save Data}}
{{Boxtip1|content='''Used by''': Save Data}}
*Intended to store:
 
**Counters (number of times the .SFO was updated, etc...)
Intended to store user (and console?) specific data.
**User/console ID's
**Some more unknown and reserved areas. See {{Talk}} page


{| class="wikitable"
{| class="wikitable"
|-
|-
! Usage !! Offset!! length !! Example !! Description !! Notes
! Offset!! length !! Example !! Description !! Notes
|-
! rowspan=6 | features
| 0x00 || 1 (0x1) || 01 || ''Unknown'' || values found: always 1
|-
| 0x01 || 1 (0x1) || 08 || ''PS3 SaveData features ?'' || Some kind of "savedata feature flags" in binary (like the type of savedata system screen, its visibility, etc...). Values found: 1,2,3,5,7,8<BR />or "PARAMS version" with the added value from the byte before (v1.8 in this example)
|-
| 0x02 || 1 (0x1) || 01 || ''Unknown'' || values found: 1,2
|-
|-
| 0x03 || 1 (0x1) || 03 || '''Cummulated counter slot nº''' || Position of a "cummulated counter taken from another SFO when they was merged". values found: 2,3
| 0x0000 || 12 (0xC)|| 030401020300000000000000 || Unknown ||
|-
|-
| 0x04 || 1 (0x1) || 03 || '''SFO Updates counter slot nº''' || Position of the "number of times the SFO was updated". Values found: 2,3
| 0x000C || 4 (0x4) || 08000000 || Unknown ||
|- {{cellcolors|lightgrey}}
| 0x05 || 3 (0x3) || ''zero filled'' || ''Reserved'' || Not used yet
|-
|-
! rowspan=4 | counters
| 0x0010 || 4 (0x4) || 7D000000 || Unknown ||
| 0x08 || 4 (0x4) || 00000000 || ''Counter slot 1 ?'' || values found: always 0
|-
|-
| 0x0C || 4 (0x4) || E1010000 || '''Counter slot 2''' || In most old games used as a '''SFO Updates counter'''<BR />In most new games used as a '''Cummulated counter''' (e.g: after completing the game a counter from the SAVE can be moved to the PROFILE)
| 0x0014 || 4 (0x4) || 03000000 || Unknown ||
|-
|-
| 0x10 || 4 (0x4) || CF130000 || '''Counter slot 3''' || In most old games not used<BR />In most new games used as a '''SFO Updates counter''' (so the previous counter is available to store other data)
| 0x0018 || 4 (0x4) || 01000000 || '''userid''' || User identification number from [[XRegistry.sys]]
|-
|-
| 0x14 || 4 (0x4) || 01000000 || ''Counter slot 4 ?'' || values found: always 1
| 0x001C || 16 (0x10) || FEDCBA9876543210FEDCBA9876543210 || '''psid''' || More info: [[PSID]]
|-
|-
! rowspan=5 | ID's
| 0x002C || 4 (0x4) || 01000000 || '''userid''' || User identification number from [[XRegistry.sys]]
| 0x18 || 4 (0x4) || 01000000 || '''User ID''' || Local User identifier (same name used to store the user files in '''dev_hdd0/home/<User ID>''')
|-
|-
| 0x1C || 16 (0x10) || FEDCBA9876543210FEDCBA9876543210 || [[PSID]] || Local PS3 identifier, aka Open PSID, or offline PSID
| 0x0030 || 16 (0x10) || 0123456789ABCDEF0123456789ABCDEF || '''accountid''' || PSN account identification from  [[XRegistry.sys]]
|-
|-
| 0x2C || 4 (0x4) || 01000000 || '''User ID''' || Local User identifier (same name used to store the user files in '''dev_hdd0/home/<User ID>''')
| 0x0040 || 960 (0x3C0) || 00000000........ || Unknown || Big chunk of zeroes, probably used or reserved for other formats
|-
| 0x30 || 16 (0x10) || 0123456789ABCDEF0123456789ABCDEF || '''ACCOUNT_ID''' || Network User identifier ('''PSN account''')
|- {{cellcolors|lightgrey}}
| 0x40 || 960 (0x3C0) || ''zero filled'' || ''Reserved'' || Not used yet
|-
|-
|}
|}


*Notes:
*Notes:
**The SFO parameter ACCOUNT_ID is the same than the ACCOUNT_ID inside PARAMS. When the parameters PARAMS & ACCOUNT_ID are present in the SFO the string can be found twice in the file (always happens in savegames). When the user has not been registered an account in PSN its ACCOUNT_ID is filled with zeroes
** 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.
**When the SFO is generated the user/console data is taken from [[XRegistry.sys]]
**The system displays the time when the savedata was updated by reading the timestamp of PARAM.SFO
 
 
*Speculation:
**In the case one of the first bytes at the begining is used to store flags (second byte mostly because is the one that changes most in the samples found) there is a limited number of firmware features related with savegames that needs to work in a different mode based on a flag (this flags should be using as settings of the gamesave), some posible features enabled/disabled by this flags could be:
***Times the savedata was exported/imported to a external device (counters)
***Trophy disabled (not posible to unlock trophies from this gamesave, because was imported from external device and/or belongs to other user/console)
***Fake savedata owner (feature available in debugs)
***load trophy data when game boots (some games displays the list of trophies inside a game screen)
***savedata system screen replaced/hidden (some games uses their own savedata screen instead of the system screens, in this case the system needs to disable the default screens or make it invisible, like in tomb raider)
**Another option is the first bytes at the beginning are configuring the internal structure of the PARAMS area, by defining the counters types or their positions
**Another option is the first bytes are simply the version of the savegame (1.1, 1.2, 1.3, and so on...) this "gamesave versions" could be defining some requirements of the whole PARAM.SFO structure, or/and the security used by the related [[PARAM.PFD]] and other secured files in the gamesave


===PARAMS2===
===PARAMS2===
{{Boxinfo3|content='''param_fmt''': utf8-S<br />'''param_max_len''': 0xC (12 bytes)<br />'''param_len''': 0xC (12 bytes)}}
{{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===
===PARENTAL_LEVEL_x===
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{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
|-
| {{cellcolors|black|lime}} 00 00 00 00 || 00 00 00 00 || style="text-align:right;" | 0 || Disabled
|-
| {{cellcolors|black|lime}} 01 00 00 00 || 00 00 00 01 || style="text-align:right;" | 1 || Lower restriction
|-
| {{cellcolors|black|lime}} 02 00 00 00 || 00 00 00 02 || style="text-align:right;" | 2 ||
|-
| {{cellcolors|black|lime}} 03 00 00 00 || 00 00 00 03 || style="text-align:right;" | 3 ||
|-
| {{cellcolors|black|lime}} 04 00 00 00 || 00 00 00 04 || style="text-align:right;" | 4 ||
|-
| {{cellcolors|black|lime}} 05 00 00 00 || 00 00 00 05 || style="text-align:right;" | 5 ||
|-
| {{cellcolors|black|lime}} 06 00 00 00 || 00 00 00 06 || style="text-align:right;" | 6 ||
|-
| {{cellcolors|black|lime}} 07 00 00 00 || 00 00 00 07 || style="text-align:right;" | 7 ||
|-
| {{cellcolors|black|lime}} 08 00 00 00 || 00 00 00 08 || style="text-align:right;" | 8 ||
|-
| {{cellcolors|black|lime}} 09 00 00 00 || 00 00 00 09 || style="text-align:right;" | 9 ||
|-
| {{cellcolors|black|lime}} 0A 00 00 00 || 00 00 00 0A || style="text-align:right;" | 10 ||
|-
| {{cellcolors|black|lime}} 0B 00 00 00 || 00 00 00 0B || style="text-align:right;" | 11 || Higher restriction
|-
|}
 
====PARENTAL_LEVEL_x (by license area)====
{{Boxinfo3|content='''param_fmt''': int32<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}}


Used to restrict the content to a specific '''License Area'''. See [[Regions]]
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 866:
{| class="wikitable"
{| class="wikitable"
|-
|-
! parameter !! License Area Name !! License Area Number !! Regions
! param_key !! License Area !! Regions
|-
|-
| PARENTAL_LEVEL_A ||SCEA || 01 || US, Canada (North America), Mexico, Central America, South America  
| PARENTAL_LEVEL_A ||SCEA || US, Canada (North America), Mexico, Central America, South America  
|-
|-
| PARENTAL_LEVEL_C || SCH || 05 || China
| PARENTAL_LEVEL_C || SCH || China
|-
|-
| PARENTAL_LEVEL_E || SCEE || 02 || Europe/Middle East/Africa, U.K./Ireland, Australia/New Zealand (Oceania), Russia, Ukraine, India, Central Asia  
| PARENTAL_LEVEL_E || SCEE || Europe/Middle East/Africa, U.K./Ireland, Australia/New Zealand (Oceania), Russia, Ukraine, India, Central Asia  
|-
|-
| PARENTAL_LEVEL_H || SCEH || 03 || Singapore/Malaysia (Southeast Asia), Taiwan, Hong Kong
| PARENTAL_LEVEL_H || SCEH || Singapore/Malaysia (Southeast Asia), Taiwan, Hong Kong
|-
|-
| PARENTAL_LEVEL_J || SCEJ || 00 || Japan
| PARENTAL_LEVEL_J || SCEJ || Japan
|-
|-
| PARENTAL_LEVEL_K || SCEK || 04 || Korea (South Korea)  
| PARENTAL_LEVEL_K || SCEK || Korea (South Korea)  
|-
|-
|}
|}


*All this parameters are used in group, ordered alphabetically, and preceded by a "standard" '''PARENTAL_LEVEL''' with the value '''00000000''' (disabled)
*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 896:
  PARENTAL_LEVEL_K = 0B000000 (level 11)
  PARENTAL_LEVEL_K = 0B000000 (level 11)


====PARENTALLEVEL (for trophies and PS1 games)====<!--messed up name when trophies was implemented-->
===PARENTAL_LEVEL===
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{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 || 0 || Disabled
|-
| {{stylematrix}} 01 00 00 00 || 00 00 00 01 || 1 || Lower restriction
|-
| {{stylematrix}} 02 00 00 00 || 00 00 00 02 || 2 ||
|-
| {{stylematrix}} 03 00 00 00 || 00 00 00 03 || 3 ||
|-
| {{stylematrix}} 04 00 00 00 || 00 00 00 04 || 4 ||
|-
| {{stylematrix}} 05 00 00 00 || 00 00 00 05 || 5 ||
|-
| {{stylematrix}} 06 00 00 00 || 00 00 00 06 || 6 ||
|-
| {{stylematrix}} 07 00 00 00 || 00 00 00 07 || 7 ||
|-
| {{stylematrix}} 08 00 00 00 || 00 00 00 08 || 8 ||
|-
| {{stylematrix}} 09 00 00 00 || 00 00 00 09 || 9 ||
|-
| {{stylematrix}} 0A 00 00 00 || 00 00 00 0A || 10 ||
|-
| {{stylematrix}} 0B 00 00 00 || 00 00 00 0B || 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}}


Same than PARENTAL_LEVEL
Same than PARENTAL_LEVEL
===PATCH_FILE===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x20 (32 bytes)<br />'''param_len''': variable}}
{{Boxtip1|content='''Used by''': Unknown (patches?)}}
Found in explore_plugin (checked at: '''/app_home/PS3_GAME/PARAM.SFO'''), and XMB databases (accessed as '''Game:Game.patchFile''')


===PS3_SYSTEM_VER===
===PS3_SYSTEM_VER===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x8 (8 bytes)}}
{{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 952:


===REGION_DENY===
===REGION_DENY===
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{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}}
<div style="float:right">[[File:Badregion-4.jpg|210px|thumb|right|Region checks]]</div>
 
Region restrictions for the content, added in firmware 3.30
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 963:
! 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
|-
|-
| {{cellcolors|black|lime}} FE FF FF FF || FF FF FF FE || 11111111 11111111 11111111 11111110 || style="text-align:right;" | 0 || Japan ||
| {{stylematrix}} FE FF FF FF || FF FF FF FE || 11111111 11111111 11111111 11111110 || 0 || Japan ||
|-
|-
| {{cellcolors|black|lime}} 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}} FD FF FF FF || FF FF FF FD || 11111111 11111111 11111111 11111101 || 1 || US, Canada (North America)  || Used in Netflix
|-
|-
| {{cellcolors|black|lime}} FB FF FF FF || FF FF FF FB || 11111111 11111111 11111111 11111011 || style="text-align:right;" | 2 || Europe / Middle East / Africa  ||
| {{stylematrix}} FB FF FF FF || FF FF FF FB || 11111111 11111111 11111111 11111011 || 2 || Europe / Middle East / Africa  ||
|-
|-
| {{cellcolors|black|lime}} F7 FF FF FF || FF FF FF F7 || 11111111 11111111 11111111 11110111 || style="text-align:right;" | 3 || Korea (South Korea)  ||
| {{stylematrix}} F7 FF FF FF || FF FF FF F7 || 11111111 11111111 11111111 11110111 || 3 || Korea (South Korea)  ||
|-
|-
| {{cellcolors|black|lime}} EF FF FF FF || FF FF FF EF || 11111111 11111111 11111111 11101111 || style="text-align:right;" | 4 || U.K. / Ireland  ||
| {{stylematrix}} EF FF FF FF || FF FF FF EF || 11111111 11111111 11111111 11101111 || 4 || U.K. / Ireland  ||
|-
|-
| {{cellcolors|black|lime}} DF FF FF FF || FF FF FF DF || 11111111 11111111 11111111 11011111 || style="text-align:right;" | 5 || Mexico, Central America, South America ||
| {{stylematrix}} DF FF FF FF || FF FF FF DF || 11111111 11111111 11111111 11011111 || 5 || Mexico, Central America, South America ||
|-
|-
| {{cellcolors|black|lime}} BF FF FF FF || FF FF FF BF || 11111111 11111111 11111111 10111111 || style="text-align:right;" | 6 || Australia / New Zealand (Oceania)  ||
| {{stylematrix}} BF FF FF FF || FF FF FF BF || 11111111 11111111 11111111 10111111 || 6 || Australia / New Zealand (Oceania)  ||
|-
|-
| {{cellcolors|black|lime}} 7F FF FF FF || FF FF FF 7F || 11111111 11111111 11111111 01111111 || style="text-align:right;" | 7 || Singapore / Malaysia (Southeast Asia)  ||
| {{stylematrix}} 7F FF FF FF || FF FF FF 7F || 11111111 11111111 11111111 01111111 || 7 || Singapore / Malaysia (Southeast Asia)  ||
|-
|-
| {{cellcolors|black|lime}} FF FE FF FF || FF FF FE FF || 11111111 11111111 11111110 11111111 || style="text-align:right;" | 8 || Taiwan ||
| {{stylematrix}} FF FE FF FF || FF FF FE FF || 11111111 11111111 11111110 11111111 || 8 || Taiwan ||
|-
|-
| {{cellcolors|black|lime}} FF FD FF FF || FF FF FD FF || 11111111 11111111 11111101 11111111 || style="text-align:right;" | 9 || Russia, Ukraine, India, Central Asia  ||
| {{stylematrix}} FF FD FF FF || FF FF FD FF || 11111111 11111111 11111101 11111111 || 9 || Russia, Ukraine, India, Central Asia  ||
|-
|-
| {{cellcolors|black|lime}} FF FB FF FF || FF FF FB FF || 11111111 11111111 11111011 11111111 || style="text-align:right;" | 10 || China ||
| {{stylematrix}} FF FB FF FF || FF FF FB FF || 11111111 11111111 11111011 11111111 || 10 || China ||
|-
|-
| {{cellcolors|black|lime}} FF F7 FF FF || FF FF F7 FF || 11111111 11111111 11110111 11111111 || style="text-align:right;" | 11 || Hong Kong ||
| {{stylematrix}} FF F7 FF FF || FF FF F7 FF || 11111111 11111111 11110111 11111111 || 11 || Hong Kong ||
|-
|-
| colspan="7" style="text-align:center; background-color:#DDDDDD;" | Examples
| colspan="7" style="text-align:center; background-color:#DDDDDD;" | Examples
|-
|-
| {{cellcolors|black|lime}} 01 F0 FF FF || FF FF F0 01 || 11111111 11111111 11110000 00000001 || || From 1 to 11 || [[http://www.psdevwiki.com/ps3/index.php?title=File:Badregion-4.jpg Photo]] of a PS3 DEX with '''Allowed Region=1-11''' (region 0 not allowed)
| {{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''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{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,005:
! 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)  
|-
|-
| {{cellcolors|black|lime}} 01 00 00 00 || 00 00 00 01 || style="text-align:right;" | 1 || 00000000 00000000 00000000 00000001 || 480  (4:3)
| {{stylematrix}} 01 00 00 00 || 00 00 00 01 || 1 || 00000000 00000000 00000000 00000001 || 480  (4:3)
|-
|-
| {{cellcolors|black|lime}} 02 00 00 00 || 00 00 00 02 || style="text-align:right;" | 2 || 00000000 00000000 00000000 00000010 || 576  (4:3)
| {{stylematrix}} 02 00 00 00 || 00 00 00 02 || 2 || 00000000 00000000 00000000 00000010 || 576  (4:3)
|-
|-
| {{cellcolors|black|lime}} 04 00 00 00 || 00 00 00 04 || style="text-align:right;" | 4 || 00000000 00000000 00000000 00000100 || 720  (16:9)
| {{stylematrix}} 04 00 00 00 || 00 00 00 04 || 4 || 00000000 00000000 00000000 00000100 || 720  (16:9)
|-
|-
| {{cellcolors|black|lime}} 08 00 00 00 || 00 00 00 08 || style="text-align:right;" | 8 || 00000000 00000000 00000000 00001000 || 1080 (16:9)
| {{stylematrix}} 08 00 00 00 || 00 00 00 08 || 8 || 00000000 00000000 00000000 00001000 || 1080 (16:9)
|-
|-
| {{cellcolors|black|lime}} 10 00 00 00 || 00 00 00 10 || style="text-align:right;" | 16 || 00000000 00000000 00000000 00010000 || 480  (16:9)
| {{stylematrix}} 10 00 00 00 || 00 00 00 10 || 16 || 00000000 00000000 00000000 00010000 || 480  (16:9)
|-
|-
| {{cellcolors|black|lime}} 20 00 00 00 || 00 00 00 20 || style="text-align:right;" | 32 || 00000000 00000000 00000000 00100000 || 576  (16:9)
| {{stylematrix}} 20 00 00 00 || 00 00 00 20 || 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
|-
|-
| {{cellcolors|black|lime}} 3F 00 00 00 || 00 00 00 3F || style="text-align:right;" | 63 || 00000000 00000000 00000000 00111111 || All video modes supported
| {{stylematrix}} 3F 00 00 00 || 00 00 00 3F || 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) doesn't 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 read but the PS3 crashes
**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 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 and not fixed sizes (e.g: 01 00 00 00). This will need another table if more are found
**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
 
===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}}


*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 for NTSC games and 02 00 00 00 for PAL games). This will need another table if more are found
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''': utf8<br />'''param_max_len''': 0x40 (64 bytes)<br />'''param_len''': variable}}
{{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 its SaveData. The format is: '''TITLE_IDxxxxx''' (9 bytes + 22 bytes max), e.g;: '''BLUS00001_savedata_01''' where:
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 length) to difference all the SaveDatas generated from the same game by the same user.
*'''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''': utf8-S<br />'''param_max_len''': 0xC60 (3168 bytes)<br />'''param_len''': 0xC60 (3168 bytes)}}
{{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,055:


===SAVEDATA_LIST_PARAM===
===SAVEDATA_LIST_PARAM===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': variable}}
{{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}}


In most of the savegames (when the game doesnt uses it) is filled with zeroes with a '''param_len''' of 1 byte (the null termination)
In most of the savegames (when the game doesnt uses it) is filled with zeroes with a '''param_len''' of 1 byte (the null termination)


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.SFO]] layer


Because the data is generated and recovered by the game, its type or usage can be different for each game, the next table contains some valid examples found:
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,065: Line 1,072:
| BCAS20108, BCES00569, BCUS98114 || Gran turismo 5 || GAMEDAT || Copypasted ? ||
| BCAS20108, BCES00569, BCUS98114 || Gran turismo 5 || GAMEDAT || Copypasted ? ||
|-
|-
| BLES01739, BLJS10228, BLUS31052 || Dead Island Riptide || IIBJFMO, ALFJASP, HMDASLM, PTRONAS || Copypasted + scrambled ? ||
| BLES01739 || 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 {{talk}} page
|-
| BCES01007 || Killzone 3 || CONFIG || Copypasted ? ||
|-
| BLES00776 || Venetica || 3-47755 || ? ||
|-
|-
| BLES00839 || Prince of Persia, forgotten sands || 1ACBKM3, 1ACBKM6 || ? ||
| 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 ]]
|-
| BLES00919 || Majin and the forsaken kindgom || LP || ? ||
|-
| BLES01060 || Crysis 2 || 0000000 || ? ||
|-
| BLES01081 || Yakuza 4 || SYSTEM, CLEAR || ? ||
|-
| BLES01306 || Tintin || LYN || ? ||
|-
| BLES01310 || Hunted: The Demon's Forge || UNKNOWN || ? ||
|-
| NPEB00347 || Dead Space Extraction || INGAME || ? ||
|-
|-
|}
|}
More info: http://www.ps3hax.net/showthread.php?t=60459


===SAVEDATA_PARAMS===
===SAVEDATA_PARAMS===
{{Boxinfo3|content='''param_fmt''': utf8-S<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': 0x80 (128 bytes)}}
{{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,087:
! Offset!! length !! Example !! Description !! Notes
! Offset!! length !! Example !! Description !! Notes
|-
|-
| 0x11B0 || 16 (0x10) || 41000000000000000000000000000000 || Unknown || allways the same value found ("A" in utf8)
| 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,104:
|-
|-
|}
|}
===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''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{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,121:
! 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)
|-
|-
| {{cellcolors|black|lime}} 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}} 01 00 00 00 || 00 00 00 01 || 1 || 00000000 00000000 00000000 00000001 || [[http://en.wikipedia.org/wiki/Lpcm LPCM]] 2.0 || 01
|-
|-
| {{cellcolors|black|lime}} 02 00 00 00 || 00 00 00 02 || style="text-align:right;" | 2 || 00000000 00000000 00000000 00000010 || || bgcolor="#DD6666" | 02
| {{stylematrix}} 02 00 00 00 || 00 00 00 02 || 2 || 00000000 00000000 00000000 00000010 || || bgcolor="#DD6666" | 02
|-
|-
| {{cellcolors|black|lime}} 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}} 04 00 00 00 || 00 00 00 04 || 4 || 00000000 00000000 00000000 00000100 || [[http://en.wikipedia.org/wiki/Lpcm LPCM]] 5.1 || 03
|-
|-
| {{cellcolors|black|lime}} 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}} 10 00 00 00 || 00 00 00 10 || 16 || 00000000 00000000 00000000 00010000 || [[http://en.wikipedia.org/wiki/Lpcm LPCM]] 7.1 || 05
|-
|-
| {{cellcolors|black|lime}} 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 01 00 00 || 00 00 01 00 || 256 || 00000000 00000000 00000001 00000000 || [[http://en.wikipedia.org/wiki/Dolby_Digital#Dolby_Digital Dolby Digital]] 5.1 || bgcolor="#DD6666" | 09 (02)
|-
|-
| {{cellcolors|black|lime}} 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)
| {{stylematrix}} 00 02 00 00 || 00 00 02 00 || 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
|-
|-
| {{cellcolors|black|lime}} 15 00 00 00 || 00 00 00 15 || style="text-align:right;" | 21 || 00000000 00000000 00000000 00010101 || All LPCM modes || 1+3+5
| {{stylematrix}} 15 00 00 00 || 00 00 00 15 || 21 || 00000000 00000000 00000000 00010101 || All LPCM modes || 1+3+5
|-
|-
| {{cellcolors|black|lime}} 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}} 02 01 00 00 || 00 00 01 02 || 258 || 00000000 00000000 00000001 00000010 || Only Dolby Digital 5.1 || 2+9
|-
|-
| {{cellcolors|black|lime}} 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}} 17 01 00 00 || 00 00 01 17 || 279 || 00000000 00000000 00000001 00010111 || All LPCM modes + Dolby Digital 5.1 || 1+2+3+5+9
|-
|-
| {{cellcolors|black|lime}} 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}} 02 02 00 00 || 00 00 02 02 || 514 || 00000000 00000000 00000010 00000010 || Only Digital Theater Systems (DTS) 5.1 || 2+10
|-
|-
| {{cellcolors|black|lime}} 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
| {{stylematrix}} 17 03 00 00 || 00 00 03 17 || 791 || 00000000 00000000 00000011 00010111 || All sound modes || 1+2+3+5+9+10
|}
|}


*Tests
*Tests
**PS2 games remastered in PS3 format (not "ps2 classics") like "resident evil 4 HD" (CATEGORY=HG and TITLE_ID=NPEB00342) only supports '''LPCM 2.0''' by default. In the first tests was impossible to activate other sound modes (the flags are ignored). In combination with RESOLUTION (all RESOLUTION modes enabled) the SOUND_FORMAT flags are readed but the PS3 crashes
**PS2 games remastered in PS3 format (not "ps2 classics") like "resident evil 4 HD" (CATEGORY=HG and TITLE_ID=NPEB00342) only supports '''LPCM 2.0''' by default. In the first tests was impossible to activate other sound modes (the flags are ignored). In combination with RESOLUTION (all RESOLUTION modes enabled) the SOUND_FORMAT flags are readed but the PS3 crashes
*Other SOUND_FORMAT values availables in non retail (Debug, AV/Test, etc...) consoles ?


===SOURCE===
===SOURCE===
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{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,156:


===SUB_TITLE===
===SUB_TITLE===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}}
{{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,162:


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
====SAVEDATA_TITLE (for minis savedata)====
{{Boxinfo3|content='''param_fmt''': utf8<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]]
<!-- ====SUB_TITLE_xx (for localized languages)====
Especulative, i dont remember to test it, but by looking at the sfo attributes used on vita it looks this one probably exists and is missing in ps3 wiki, is for localized subtitles texts in savedata contents, my bet is this feature is supported since firmware 1.00-->


===TARGET_APP_VER===
===TARGET_APP_VER===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x6 (6 bytes)}}
{{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,172:


===TITLE===
===TITLE===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}}
{{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,197: Line 1,179:
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_xx (for localized languages)====
===TITLE_ID===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}}
{{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}}
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data}}


Same than TITLE but for localized languages.
Identifier of the content, in the format '''WXYZ12345'''. Must be the same ID inside the Makefile when compiling the .SELF, or/and when creating the .PKG


An .SFO can contain several TITLE_'''xx''' where '''xx''' is a number for a regional code.
{| class="wikitable"
|+ TITLE_ID (WXYZ12345)
! rowspan="2" | Physical<BR />Media
! Media !! License !! Region !! Type !! ??? !! License Number !! Physical Media Examples
|-
| '''B'''=Blu-ray<BR />'''S'''=CD/DVD<BR />'''U'''=UMD<!--<BR />'''V'''=Vita Card-->
| '''C'''=First Party<BR />'''L'''=Licensed
| '''A'''=Asia<BR />'''E'''=Europe<BR />'''K'''=Hong Kong<BR />'''J'''=Japan<BR />'''U'''=USA<BR />
| '''B'''=Peripheral Software<BR />'''D'''=Demo<BR />'''M'''=Malayan Release<BR />'''S'''=Retail release<BR />'''T'''=(closed) Betas
| ???
| chronological order
! -------bluray, all licenses, all regions, retail-------<BR />BCAS20***, BCAS25***<BR />BLAS5****<BR />BCES0****<BR />BLES0****<BR />BCKS1****<BR />BLKS2****<BR />BCJS3****<BR />BLJS10***, BLJS50***, BLJS93*** <BR />BLUS3****<BR />BCUS94***, BCUS98***<BR />-------bluray, all licenses, all regions, malayan-------<BR />BLJM55***, BLJM60***, BLJM85***
|-
! rowspan="2" | Digital<BR />Media
! colspan="2" | [[Environments|Network Environment]] !! Region !! License !! ??? !! License Number !! Digital Media Examples
|-
| colspan="2" | '''NP'''=Retail<!--<BR />'''PC'''=Vita PC Content Manager Assistant-->
| '''A'''=Asia<BR />'''E'''=Europe<BR />'''H'''=Southeast Asia<BR />'''K'''=Hong Kong<BR />'''I'''=Internal (Sony)<BR />'''J'''=Japan<BR /><!--<BR />'''S'''=Vita related-->'''U'''=USA<BR />'''X'''=Firmware/SDK Sample
| '''A'''=First Party PS3 (Demo/Retail)<BR />'''B'''=Licensed PS3 (Demo/Retail)<BR />'''C'''=First Party PS2 Classic (Demo/Retail)<BR />'''D'''=Licensed PS2 Classic (Demo/Retail)<BR />'''E'''=Licensed PS1 Classic (PAL) (Demo/Retail)<BR />'''F'''=First Party PS1 Classic (PAL) (Demo/Retail)<BR />'''G'''=First Party PSN/SEN PSP (Demo/Retail)<BR />'''H'''=Licensed PSN/SEN PSP (Demo/Retail)<BR />'''I'''=First Party PS1 Classic (NTSC) (Demo/Retail)<BR />'''J'''=Licensed PS1 Classic (NTSC) (Demo/Retail)<BR />'''K'''=First Party Game related Content<BR />'''L'''=Licensed Game related Content<BR />'''M'''=Music<BR />'''N'''=Game Soundtracks<BR />'''O'''=Other<BR />'''P'''=?<!--Themes / TV Apps | differentiation needed! free items?--><BR />'''Q'''=?<!--Games / Themes | differentiation needed! --><BR />'''R'''=?<!-- Games | differentiation needed! --><BR />'''S'''=System<BR />'''T'''=?<!--PSP Games | differentiation needed! --><BR />'''U'''=?<BR />'''V'''=?<BR />'''W'''=First Party Remasters for PSP<BR />'''X'''=First Party PSP Minis<BR />'''Y'''=Third Party Remasters for PSP<BR />'''Z'''=Third Party PSP minis
| ???
| chronological order
! <!--NP[!X/I][A/B/C/D/E/F/I/J/K/L]***** (differentiation needed)<BR />-->NPIA00***<BR />NPIA09***<BR />NPIA91***<BR />NP[!I]A00***<BR />NPXS0[!0]*** (FW Components)<BR />NPXS00*** (SDK Samples)<BR />etc...
|-
|}


The "default" TITLE is always present when other "localized" TITLE_'''xx''' are used.
*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).
**TEST***** All the disc images generated for debug PS3's in the development stages of the game


{{PlayStation Languages}}
See talk page: [[Talk:PARAM.SFO#TITLE_ID]]


===TITLE_ID===
===TITLE_xx===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0xA (10 bytes)}}
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}}
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data}}
{{Boxtip1|content='''Used by''': HDD Game}}


Identifier of the content, in the format '''ABCD12345'''. Must be the same ID inside the Makefile when compiling the .SELF, or/and when creating the .PKG (also known as [[Productcode]])
Same than TITLE but for localized languages.


{{TITLE_ID for Physical Media}}
An .SFO can contain several TITLE_'''xx''' where '''xx''' is a number for a regional code.


{{TITLE_ID for Digital Media}}
The "default" TITLE is always present when other "localized" TITLE_'''xx''' are used.


*Other TITLE_ID's. See {{talk}} page
{{XMB languages}}
**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


====TITLEID0xx (for trophies with localized languages)====<!--messed up name when trophies was implemented-->
===TITLEID0xx===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x9 (9 bytes)}}
{{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,238:
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]]


{{PlayStation Languages}}
{{XMB languages}}


===VERSION===
===VERSION===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x6 (6 bytes)... or 0x3 (3 bytes) when used in trophy}}
{{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,248: Line 1,253:


*When used in a SFO for a trophy it has a '''param_len''' of 3 bytes, with the format: '''X.Y''' e.g: '''1.0'''
*When used in a SFO for a trophy it has a '''param_len''' of 3 bytes, with the format: '''X.Y''' e.g: '''1.0'''
===XMB_APPS===
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{Boxtip1|content='''Used by''': Unknown (bootable?)}}
Found in explore_plugin (checked at: '''/app_home/PS3_GAME/PARAM.SFO'''), and XMB databases (accessed as '''Game:Game.xmbApps''')
{| class="wikitable"
|-
! colspan="2" | Hexadecimal !! rowspan="2" | Decimal !! rowspan="2" | Binary <br /> (flags) !! rowspan="2" | Feature (notes)
|-
! little endian !! big endian
|-
| {{cellcolors|black|lime}} '''01''' 00 00 00 || 00 00 00 '''01''' || style="text-align:right;" | 1 || 00000000 00000000 00000000 0000000'''1''' || '''?'''
|-
| {{cellcolors|black|lime}} '''02''' 00 00 00 || 00 00 00 '''02''' || style="text-align:right;" | 2 || 00000000 00000000 00000000 000000'''1'''0 || '''?'''
|-
| {{cellcolors|black|lime}} '''04''' 00 00 00 || 00 00 00 '''04''' || style="text-align:right;" | 4 || 00000000 00000000 00000000 00000'''1'''00 || '''?'''
|-
| {{cellcolors|black|lime}} '''08''' 00 00 00 || 00 00 00 '''08''' || style="text-align:right;" | 8 || 00000000 00000000 00000000 0000'''1'''000 || '''?'''
|-
| {{cellcolors|black|lime}} '''10''' 00 00 00 || 00 00 00 '''10''' || style="text-align:right;" | 16 || 00000000 00000000 00000000 000'''1'''0000 || '''?'''
|-
| {{cellcolors|black|lime}} '''20''' 00 00 00 || 00 00 00 '''20''' || style="text-align:right;" | 32 || 00000000 00000000 00000000 00'''1'''00000 || '''?'''
|-
| {{cellcolors|black|lime}} '''40''' 00 00 00 || 00 00 00 '''40''' || style="text-align:right;" | 64 || 00000000 00000000 00000000 0'''1'''000000 || '''?'''
|-
| {{cellcolors|black|lime}} '''80''' 00 00 00 || 00 00 00 '''80''' || style="text-align:right;" | 128 || 00000000 00000000 00000000 '''1'''0000000 || '''?'''
|- bgcolor="#DDDDDD"
| colspan="5" style="text-align:center;" | Etc...
|}
==Examples==
====Blu-Ray disc game structure details====
{{PS3 Disc Game Structure}}
<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, BLES01419)
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)
See: [https://www.psx-place.com/threads/4-84-3-starbuged-w-cobra-8-01-new-update-in-from-habib.23057/page-4#post-166700 1] and [https://www.psx-place.com/threads/jonnysps-ird-library-is-down.35178/page-2#post-315008 2]
'''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 its 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 disc game structure, activated by default with the "g" HYBRID_FLAG from PS3_DISC.SFB
The presence of INSDIR forces a mandatory installation (warning screen with "Yes" or "No", if selecting "No" the game doesnt boots) performed in main XMB (before starting the game). When the installation is completed the game boots
Inside game_ext_plugin.rco/english.xml
<Text name="msg_game_cannot_start_wo_install_need_area_install_ask">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 %1.
Do you want to start installing?</Text>
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 its installation doesnt updates the main game. For this reason "'''APP_VER'''" is only related with patches. Other types of PKG can be installed but the main game will reload the message above because it was expecting to have a game patch.
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]]
When displayed on XMB the sorting of contents is based on the creation time (timestamps) of the Dxxx folders, oldest are displayed at top-left corner and newest at bottom-right corner
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
'''dev_bdvd/PS3_GM01/''' is a folder at the same level than PS3_GAME, is used for multiboot game discs (the only disc structure that supports '''direct''' multiboot). Each eboot is mounted using its own {{media ps3 bd}} icon. This discs uses speciall LIC.DAT files, see: [[LIC.DAT]] page
The two numbers at the end of the name '''PS3_GM01''' looks like a counter, but only '''PS3_GM01''' is supported (other numbers are not supported... yet)
----
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 Lxx folders. See {{talk}} page


==Tips & Tricks==
==Tips & Tricks==
Line 1,453: Line 1,262:
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 its 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 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 its 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)
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 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)
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,291:
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 its own icon and title, videos are mounted in video colum when using PS3_CONTENT pretty nice for chapters of series, video manuals, etc...
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, its installation is more automated
For patches use INSDIR, his installation is more automated


===Creating Patches===
===Creating Patches===
The type of patch is defined by its '''APP_VER''', '''TARGET_APP_VER''', and '''VERSION'''. There is no way to update an installed content without '''APP_VER'''
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 its PARAM.SFO replaces the old one, consequently its '''APP_VER''' increases
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,306:


*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 its 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)
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,322:
[[Dev_Tools#SFO_Reader|SFO reader]]
[[Dev_Tools#SFO_Reader|SFO reader]]


[https://github.com/Rancido/PS3-Tools Another SFO reader]
[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
[https://www.ferb.fr/ps3/SFO/] SFO PS3 reader By Matthieu Milan


*Sources and links
*Sources and links
Line 1,543: Line 1,351:


CATEGORY "2P"(PSN Converted PS2 game/saves) SFO examples http://dl.dropbox.com/u/60710927/XMBMPLUS/DEVELOPMENT_SOURCES/PS2_GAME_SFO/PS2_GAME_SFO.rar. There are three files, one SFO file taken from the PS2 Game directory and two SFO files taken from two different saves generated by that game.
CATEGORY "2P"(PSN Converted PS2 game/saves) SFO examples http://dl.dropbox.com/u/60710927/XMBMPLUS/DEVELOPMENT_SOURCES/PS2_GAME_SFO/PS2_GAME_SFO.rar. There are three files, one SFO file taken from the PS2 Game directory and two SFO files taken from two different saves generated by that game.
{{File Formats}}<noinclude>[[Category:Main]]</noinclude>
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)

Templates used on this page: