PARAM.SFO: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
m (→‎CATEGORY For HDD contents: Name description for XI)
m (→‎SFO: Dark Mode)
 
(362 intermediate revisions by 20 users not shown)
Line 1: Line 1:
[[Category:Software]]
==Description==
'''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 wich 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 speciall content like [[Game_Saves|SaveData]] or [[Trophy_files| Trophies]] there is a [[PARAM.PFD]] for security reasons, other type of content like games or apps needs an structure of subfolders with names as HTMLDIR, INSDIR, LICDIR, PKGDIR, TRPDIR, USRDIR, etc...
*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).
**Information texts (most of the utf8 datas) about the content and its restrictions (e.g. title and version of a game).


The parameters contained in a SFO can be simplyfied as inputs/outputs for/from the content:
'''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).
* Boot modifyers (flags) that are sent to the content when is executed to activate speciall modes (e.g. audio and video modes of a game).
* Information texts about the content and his restrictions (e.g. title and version of a game).


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''').


'''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).
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.


The conversion between the 2 formats is direct because the important values contained in both formats are the same ('''File_Version''', '''Parameter (name)''', '''Data_Type''', '''Data_Total_Size''' & '''Parameter (value)''').
These structures are limited by the system and activated by a combination of [[#CATEGORY|CATEGORY]] and special flags on [[#ATTRIBUTE|ATTRIBUTE]].
 
 
 
SFO's and SFX's can be chained in a structure of subfolders where the "main" SFO activates a speciall subfolder, and the subfolder contains another SFO that activates another subfolder and so on.
 
This structures are limited by the system and activated by a combination of [[#CATEGORY|CATEGORY]] and speciall 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==
===header===
At offset 0x0, length 0x14 (20 bytes)
{{Boxcode|code=<syntaxhighlight lang="c">
struct sfo_header
{
uint32_t magic; /************ Always PSF */
uint32_t version; /********** Usually 1.1 */
uint32_t key_table_start; /** Start offset of key_table */
uint32_t data_table_start; /* Start offset of data_table */
uint32_t tables_entries; /*** Number of entries in all tables */
};
</syntaxhighlight>}}


==Internal Structure==
===index_table===
===Header===
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.
<pre>
struct Header
{
uint32_t File_Signature; /* Always PSF */
uint32_t File_Version; /* Usually 1.1 */
uint32_t Name_Table_Start; /* Start position of the Name_Table */
uint32_t Data_Table_Start; /* Start position of the Data_Table */
uint32_t Entries_Number; /* Number of entries */
};
</pre>


===Definition_Table===
Every entry belongs to a '''key''' name in the '''key_table''' and defines a '''data''' area in the '''data_table'''
This structure repeats one time for every '''Entries_Number''' defined in the header. All values are in Little Endian.


<pre>
{{Boxcode|code=<syntaxhighlight lang="c">
struct Definition_Table
struct sfo_index_table_entry
{
{
uint16_t Name_Table_Offset; /* Offset of the Name of the entry, from start of Name_Table */
uint16_t key_offset; /*** param_key offset (relative to start offset of key_table) */
uint16_t Data_Type; /* Type of data of the entry in the Data_Table */
uint16_t data_fmt; /***** param_data data type */
uint32_t Data_Size_Used; /* Used Bytes by the entry in the Data_Table */
uint32_t data_len; /***** param_data used bytes */
uint32_t Data_Size_Total; /* Total bytes reserved for the entry in the Data_Table */
uint32_t data_max_len; /* param_data total bytes */
uint32_t Data_Table_Offset; /* Offset of the Data of the entry, from start of Data_Table */
uint32_t data_offset; /** param_data offset (relative to start offset of data_table) */
};
};
</pre>
</syntaxhighlight>}}


The '''Data_Types''' are partially known based in some examples found in different content
{| class="wikitable" style="margin:auto"
{| class="wikitable"
|+Data Types
! colspan=2 | fmt !! rowspan=2 | Data Type !! rowspan=2 | Description !! rowspan=2 | Notes
|-
|-
! Data_Types !! Description !! Used in
! In SFO !! In SFX
|-
|-
| 04 00 || utf-8 Speciall Mode || ACCOUNT_ID, PARAMS, PARAMS2 (in SaveData)... and PADDING (in trophy)
| 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 02 || utf-8 ||
| 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 04 || integer ||
| 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)
|-
|-
|}
|}


The '''Data_Type''' 04 00 marked as "utf-8 Speciall Mode" has the particularity of return a "right" or "wrong" when comparing the string with a reference value, so it can be said that the difference between the simple "utf-8" and "utf-8 Speciall Mode" is only from the point of view of how the system manipulate this data. For more info read the section [[#ACCOUNT_ID|ACCOUNT_ID]].
===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''')


*Speculation
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)


If the "scale" used for the second byte follows the proportion of 2^X (e.g. 1, 2, 4, 8, 16, 32, etc...) then we are missing a "04 01" valid data type in the list
===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


===Name_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'''
The entries of this table (and the next table) can vary depending of the kind of content, but always are ordered by his names (alphabetically from A to Z), each entry of this table needs 1 blank byte after the name to separate them. The valid values used in known formats are grouped in [[#Parameters_Table|Parameters Table]] for a fast reference.


The table has padding at the end to fit the total size in bytes 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.
==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)


===Data_Table===
*The bigger difference between SFO and SFX is SFX doesnt contains:
This table has no padding between entries neither at the end, '''Data_Size_Total''' for each entry is stored in the '''Definition_Table''' and this sizes are fixed by each entry (e.g. RESOLUTION always has a '''Data_Size_Total''' of 4 bytes), so the space in '''Data_Table''' can be considered reserved (filled with zeroes when not used).
**SFO header
 
**Key and Data offsets
*Integer entries uses all the reserved bytes, so his '''Data_Size_Used''' is the same than his '''Data_Size_Total'''.
**Data used length
*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 '''Data_Size_Used''' bytes for this entry (e.g. the title "my homebrew " has a '''Data_Size_Used''' of 12 bytes from the total of 128 reserved in his '''Data_Size_Total''').
 
==Internall Structure Examples==


===SFO===
===SFO===
This is an example of a hand made SFO structure, it contains only 1 entry (TITLE_ID), i choosed this one because his '''Data_Size_Total''' is short enought (16 bytes) to build the full structure in a minimall size, needs padding at the end of the '''Name_Table''', and the '''Data_Size_Used''' is smaller than '''Data_Size_Total'''.
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> |
  0x0000 00 50 53 46  01 01 00 00  24 00 00 00  30 00 00 00 | .PSF....$...0... |
      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> |
0x0010  01 00 00 00  00 00 04 02  0A 00 00 00  0F 00 00 00 | ................ |
      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> |
0x0020  00 00 00 00  54 49 54 4C  45 5F 49 44  00 00 00 00 | ....TITLE_ID.... |
      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> |
0x0030  41 42 43 44 31 32 33 34  35 00 00 00  00 00 00 00 | ABCD12345....... |
 
All the blocks of the file are explained in the next list, it has separated sections for header and the three tables.


{| class="wikitable"
{| class="wikitable"
|-
|-
! Offset !! Size !! Content !! Conversion !! Value !! Notes
! Areas !! Offset !! Size !! Name !! Example !! Notes
|-
! Header
|-
| 0x0000 || 0x04 || 00 50 53 46 || To utf-8 || PSF || Signature
|-
| 0x0004 || 0x04 || 01 01 00 00 || Big endian, decimal || 1.1 || Version (the point is added by the system)
|-
| 0x0008 || 0x04 || 24 00 00 00 || Big endian || 0x0024 || Start of '''Name_Table'''
|-
| 0x000C || 0x04 || 30 00 00 00 || Big endian || 0x0030 || Start of '''Data_Table'''
|-
|-
| 0x0010 || 0x04 || 01 00 00 00 || Big endian, decimal || 1 || Number of entries in the tables
! rowspan="5" {{cellcolors|#ff6666}} header
| 0x00 || 0x04 || '''magic''' || PSF ||
|-
|-
! Definition_Table
| 0x04 || 0x04 || '''version''' || 01 01 00 00 || 1.01
|-
|-
| 0x0014 || 0x02 || 0000 || Big endian || 0 || (Start of '''Name''') - (Start of '''Name_Table''') = 0x0024-0x0024 = 0
| 0x08 || 0x04 || '''key_table_start''' || 24 00 00 00 || Absolute start offset of <span style="background:#bbbbff;">'''key_table'''</span> = 0x24
|-
|-
| 0x0016 || 0x02 || 0402 || Unknown || || '''Data_Type'''
| 0x0C || 0x04 || '''data_table_start''' || 30 00 00 00 || Absolute start offset of <span style="background:#ffff66;">'''data_table'''</span> = 0x30
|-
|-
| 0x0018 || 0x04 || 0A000000 || Big endian, decimal || 10 || '''Data_Size_Used''' (ABCD12345 are 9 bytes + 1 blank = 10)
| 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
|-
|-
| 0x001C || 0x04 || 0F000000 || Big endian, decimal || 16 || '''Data_Size_Total''' (TITLE_ID Data_Size_Total is always 16 bytes)
! rowspan="5" {{cellcolors|#66ff66}} index_table
| 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
|-
|-
| 0x0020 || 0x04 || 00000000 || Big endian || 0 || (Start of '''Data''') - (Start of '''Data_Table''') = 0x0030-0x0030 = 0
| 0x16 || 0x02 || '''data_1_fmt''' || 04 02 || '''data_1''' data type = utf8
|-
|-
! Name_Table
| 0x18 || 0x04 || '''data_1_len''' || 0A 00 00 00 || '''data_1''' used length (BLUS12345 = 9 bytes + 1 byte NULL termination) = 10 bytes
|-
|-
| 0x0024 || 0x09 || 5449544C455F494400 || To utf-8 || TITLE_ID || '''Name''', included 1 blank byte at the end
| 0x1C || 0x04 || '''data_1_max_len''' || 0F 00 00 00 || '''data_1''' total length. [[#TITLE_ID|TITLE_ID]] is always = 16 bytes
|-
|-
| 0x002D || 0x03 || 000000 || || || Padding (9 from the previous entry + 3 padding = 12 bytes)
| 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
|-
|-
! Data_Table
! {{cellcolors|#bbbbff}} key_table
|  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)
|-
|-
| 0x0030 || 0x0F || 41424344313233343500000000000000 || To utf-8 || ABCD12345 || '''Data'''. ('''Data_Size_Total'''=16 bytes. '''Data_Size_Used'''=10 bytes)
! {{cellcolors|#ffff66}} data_table
| 0x30 || 0x0F || '''data_1''' || BLUS12345 || Data type, used length, total length, and relative offset defined in the <span style="background:#66ff66;">'''index_table'''</span>
|}
|}
*When you generate a non proper file playing with the flags, you can have a nice icon of "corrupted data", but in some cases the game boots normally. In other cases when adding or removing parameters the file is "partially" corrupted because 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).
*When adding "non-stadard" parameters to a "standard" SFO the system blocks this "not-expected" parameter. The SFO is loaded without problems, but the added parameters are ignored (e.g. when adding SUB_TITLE to a SFO for catergory "HG").
*The minimall structure tested (and working) for a hombrew can be copied/downloaded at the bottom of the page, its not "standard" but the PS3 doesnt complains, and probably can be reduced even more.


===SFX===
===SFX===
This is the same file converted to SFX format, its more simple because it has no metadata related with the structure. Are used by some blu-rays, and can be used as "templates" to generate SFO files (manually by now, because there is no tool yet).
{{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]]}}
 
The entries and values are self explanatory, can be created using a SFO as the source with the program [[Dev_Tools#SFO2SFX|SFO2SFX]].


<pre>
{{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">
   <param key="TITLE_ID" fmt="utf8" max_len="16">ABCD12345</param>
   <param key="TITLE_ID" fmt="utf8" max_len="16">BLUS12345</param>
</paramsfo>
</paramsfo>
</pre>
</syntaxhighlight>}}


==Parameters Table==
*Notes
This table contains all the parameters known/found in standard contents for a fast view and fast relinking to other sections of the page.
**The function of '''add_hidden="false"''' is unknown


Columns of the table are named by the [[#CATEGORY|CATEGORY]] used by this content.
==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).


{| class="wikitable"
{| class="wikitable" style="line-height:100%;;"
|-
! colspan=4 rowspan=3 | param !! colspan=12 | Used in SFO/SFX with [[#CATEGORY|CATEGORY]]
|-
! 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}}
|-
|-
| '''HG''' = HDD Game || '''1P''' = PS1 Game || '''2G''' = PS2 Game || '''2P''' = PSN PS2 Game/Save Data || '''MN''' = Minis Game
| [[#ACCOUNTID|ACCOUNTID]] || {{cellcolors|brown|white}} utf8 || colspan=2 style="text-align:right;" | 16 (0x010)
|}
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
 
{| class="wikitable"
|-
|-
| '''GD''' = Game Data || '''2D''' = PS2 Data || '''SD''' = Save Data || '''MS''' = Minis Save Data || '''♦''' = Trophy Data
| [[#ANALOG_MODE|ANALOG_MODE]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
|}
| {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
 
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable sortable" style="border:1px solid #999; border-collapse: collapse;"  
|- bgcolor="#cccccc"
! Parameter !! Data_Type !! Data_Size_Total !! Data_Size_Used !! HG !! 1P !! 2G !! 2P !! MN !! !! GD !! 2D !! !! SD !! MS !! !! ♦
|-
|-
| [[#ACCOUNT_ID|ACCOUNT_ID]] || 0400 || 16 (0x10) || 16 (0x10) || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{Yes}} || {{No}} || || {{No}}
| [[#APP_VER|APP_VER]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 6 (0x006) || style="text-align:right;" | 8 (0x008)
| {{Opt}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#ACCOUNTID|ACCOUNTID]] || utf-8 || 16 (0x10) || 16 (0x10) || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}} || {{No}} || || {{Yes}}
| [[#ATTRIBUTE|ATTRIBUTE]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| {{Opt}} || {{Yes}} || {{Yes}} || {{Opt}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Opt}} || {{No}} || {{Yes}} || {{No}} || {{No}}
|-
|-
| [[#ANALOG_MODE|ANALOG_MODE]] || integer || 4 (0x4) || 4 (0x4) || {{No}} || {{Yes}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}}
| [[#BOOTABLE|BOOTABLE]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#APP_VER|APP_VER]] || utf-8 || 8 (0x8) || 6 (0x6) || {{Opt}} || {{No}} || ??? || {{No}} || {{Yes}} || || {{Opt}} || {{No}} || || {{No}} || {{No}} || || {{No}}
| [[#CATEGORY|CATEGORY]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 3 (0x003) || style="text-align:right;" | 4 (0x004)
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}}
|-
|-
| [[#ATTRIBUTE|ATTRIBUTE]] || integer || 4 (0x4) || 4 (0x4) || {{Opt}} || {{Yes}} || ??? || {{Opt}} || {{Yes}} || || {{Opt}} || {{No}} || || {{Yes}} || {{No}} || || {{No}}
| [[#CONTENT_ID|CONTENT_ID]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 37 (0x025) || style="text-align:right;" | 48 (0x030)
| {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#BOOTABLE|BOOTABLE]] || integer || 4 (0x4) || 4 (0x4) || {{Yes}} || {{Yes}} || ??? || {{Yes}} || {{Yes}} || || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}}
| [[#DETAIL|DETAIL]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 1024 (0x400)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}}
|-
|-
| [[#CATEGORY|CATEGORY]] || utf-8 || 4 (0x4) || 3 (0x3) || {{Yes}} || {{Yes}} || ??? || {{Yes}} || {{Yes}} || || {{Yes}} || {{Yes}} || || {{Yes}} || {{Yes}} || || {{No}}
| [[#GAMEDATA_ID|GAMEDATA_ID]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | ? || style="text-align:right;" | 32 (0x020)
| ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ?
|-
|-
| [[#CONTENT_ID|CONTENT_ID]] || utf-8 || 48 (0x30) || 37 (0x25) || {{Opt}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}}
| [[#ITEM_PRIORITY|ITEM_PRIORITY]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#DETAIL|DETAIL]] || utf-8 || 1024 (0x400) || variable || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{Opt}} || {{No}} || || {{No}}
| [[#LANG|LANG]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#LANG|LANG]] || integer || 4 (0x4) || 4 (0x4) || {{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)
| {{Yes}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#LICENSE|LICENSE]] || utf-8 || 512 (0x200) || variable || {{Yes}} || {{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)
| {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#NP_COMMUNICATION_ID|NP_COMMUNICATION_ID]] || utf-8 || 16 (0x10) || 13 (0xD) || {{Opt}} || {{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)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#NPCOMMID|NPCOMMID]] || utf-8 || 16 (0x10) || 12 (0xC) || {{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)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#PADDING|PADDING]] || 0400 || 8 (0x8) || 0 (0x0) || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}} || {{No}} || || {{Yes}}
| [[#PARAMS|PARAMS]] || {{cellcolors|brown|yellow}} utf8-S || colspan=2 style="text-align:right;" | 1024 (0x400)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}}
|-
|-
| [[#PARAMS|PARAMS]] || 0400 || 1024 (0x400) || 1024 (0x400) || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{Yes}} || {{No}} || || {{No}}
| [[#PARAMS2|PARAMS2]] || {{cellcolors|brown|yellow}} utf8-S || colspan=2 style="text-align:right;" | 12 (0x00C)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}}
|-
|-
| [[#PARAMS2|PARAMS2]] || 0400 || 12 (0xC) || 12 (0xC) || {{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)
| {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#PARENTAL_LEVEL_x|PARENTAL_LEVEL_'''x''']] || integer || 4 (0x4) || 4 (0x4) || {{Opt}} || {{No}} || ??? || {{No}} || {{No}} ||
| [[#PARENTAL_LEVEL|PARENTAL_LEVEL]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}}
| {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}}
|-
|-
| [[#PARENTAL_LEVEL|PARENTAL_LEVEL]] || integer || 4 (0x4) || 4 (0x4) || {{Yes}} || {{No}} || ??? || {{Yes}} || {{Yes}} || || {{Yes}} || {{Yes}} || || {{Yes}} || {{Yes}} || || {{No}}
| [[#PARENTALLEVEL|PARENTALLEVEL]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#PARENTALLEVEL|PARENTALLEVEL]] || integer || 4 (0x4) || 4 (0x4) || {{No}} || {{Yes}} || ??? || {{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)
| ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ?
|-
|-
| [[#PS3_SYSTEM_VER|PS3_SYSTEM_VER]] || utf-8 || 8 (0x8) || 8 (0x8) || {{Yes}} || {{Yes}} || ??? || {{Yes}} || {{Yes}} || || {{Opt}} || {{Yes}} || || {{No}} || {{No}} || || {{No}}
| [[#PS3_SYSTEM_VER|PS3_SYSTEM_VER]] || {{cellcolors|brown|white}} utf8 || colspan=2 style="text-align:right;" | 8 (0x008)
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Opt}} || {{Yes}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#REGION_DENY|REGION_DENY]] || integer || 4 (0x4) || 4 (0x4) || {{Opt}} || {{No}} || ??? || {{Opt}} || {{No}} || || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}}
| [[#REGION_DENY|REGION_DENY]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| {{Opt}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#RESOLUTION|RESOLUTION]] || integer || 4 (0x4) || 4 (0x4) || {{Yes}} || {{Yes}} || ??? || {{No}} || {{Yes}} || || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}}
| [[#RESOLUTION|RESOLUTION]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#SAVEDATA_DETAIL|SAVEDATA_DETAIL]] || utf-8 || 1024 (0x400) || variable || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}} || {{Yes}} || || {{No}}
| [[#SAVEDATA_DETAIL|SAVEDATA_DETAIL]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 1024 (0x400)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}}
|-
|-
| [[#SAVEDATA_DIRECTORY|SAVEDATA_DIRECTORY]] || utf-8 || 64 (0x40) || variable || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{Yes}} || {{Yes}} || || {{No}}
| [[#SAVEDATA_DIRECTORY|SAVEDATA_DIRECTORY]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 64 (0x040)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} || {{No}}
|-
|-
| [[#SAVEDATA_FILE_LIST|SAVEDATA_FILE_LIST]] || 0400 || 3168 (0xC60) || 3168 (0xC60) || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}} || {{Yes}} || || {{No}}
| [[#SAVEDATA_FILE_LIST|SAVEDATA_FILE_LIST]] || {{cellcolors|brown|yellow}} utf8-S || colspan=2 style="text-align:right;" | 3168 (0xC60)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}}
|-
|-
| [[#SAVEDATA_LIST_PARAM|SAVEDATA_LIST_PARAM]] || utf-8 || 8 (0x8) || variable || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{Yes}} || {{No}} || || {{No}}
| [[#SAVEDATA_LIST_PARAM|SAVEDATA_LIST_PARAM]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 8 (0x008)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}} || {{No}}
|-
|-
| [[#SAVEDATA_PARAMS|SAVEDATA_PARAMS]] || 0400 || 128 (0x80) || 128 (0x80) || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}} || {{Yes}} || || {{No}}
| [[#SAVEDATA_PARAMS|SAVEDATA_PARAMS]] || {{cellcolors|brown|yellow}} utf8-S || colspan=2 style="text-align:right;" | 128 (0x080)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}}
|-
|-
| [[#SAVEDATA_TITLE|SAVEDATA_TITLE]] || utf-8 || 128 (0x80) || variable || {{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)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{No}}
|-
|-
| [[#SOUND_FORMAT|SOUND_FORMAT]] || integer || 4 (0x4) || 4 (0x4) || {{Yes}} || {{Yes}} || ??? || {{No}} || {{Yes}} || || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}}
| [[#SOUND_FORMAT|SOUND_FORMAT]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#SOURCE|SOURCE]] || integer || 4 (0x4) || 4 (0x4) || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}} || {{No}} || || {{Yes}}
| [[#SOURCE|SOURCE]] || {{cellcolors|black|lime}} int32 || colspan=2 style="text-align:right;" | 4 (0x004)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#SUB_TITLE|SUB_TITLE]] || utf-8 || 128 (0x80) || variable || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{Opt}} || {{No}} || || {{No}}
| [[#SUB_TITLE|SUB_TITLE]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 128 (0x080)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}}
|-
|-
| [[#TARGET_APP_VER|TARGET_APP_VER]] || utf-8 || 8 (0x8) || 6 (0x6) || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{Opt}} || {{No}} || || {{No}} || {{No}} || || {{No}}
| [[#TARGET_APP_VER|TARGET_APP_VER]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 6 (0x006) || style="text-align:right;" | 8 (0x008)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Opt}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#TITLE|TITLE]] || utf-8 || 128 (0x80) || variable || {{Yes}} || {{Yes}} || ??? || {{Yes}} || {{Yes}} || || {{Yes}} || {{Yes}} || || {{Yes}} || {{Yes}} || || {{No}}
| [[#TITLE|TITLE]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 128 (0x080)
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}}
|-
|-
| [[#TITLE_ID|TITLE_ID]] || utf-8 || 16 (0x10) || 10 (0xA) || {{Yes}} || {{Yes}} || ??? || {{Yes}} || {{Yes}} || || {{Yes}} || {{Yes}} || || {{No}} || {{No}} || || {{No}}
| [[#TITLE_ID|TITLE_ID]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 10 (0x00A) || style="text-align:right;" | 16 (0x010)
| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#TITLE_xx|TITLE_'''xx''']] || utf-8 || 128 (0x80) || variable || {{Opt}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}}
| [[#TITLE_xx|TITLE_'''xx''']] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | variable || style="text-align:right;" | 128 (0x080)
| {{Opt}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|-
| [[#TITLEID0xx|TITLEID0'''xx''']] || utf-8 || 16 (0x10) || 9 (0x9) || {{No}} || {{No}} || ??? || {{No}} || {{No}} || || {{No}} || {{No}} || || {{No}} || {{No}} || || {{Yes}}
| [[#TITLEID0xx|TITLEID0'''xx''']] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 9 (0x009) || style="text-align:right;" | 16 (0x010)
| {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{No}} || {{Yes}}
|-
|-
| [[#VERSION|VERSION]] || utf-8 || 8 (0x8) || 6 (0x6) || {{Yes}} || {{Yes}} || ??? || {{No}} || {{Yes}} || || {{Yes}} || {{Yes}} || || {{No}} || {{No}} || || {{Yes}}
| [[#VERSION|VERSION]] || {{cellcolors|brown|white}} utf8 || style="text-align:right;" | 6 (0x006) || style="text-align:right;" | 8 (0x008)
| {{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]]


==Parameters Descriptions==
==Parameters Descriptions==


===ACCOUNT_ID===
===ACCOUNT_ID===
Data_Type: utf-8 Speciall Mode
{{Boxinfo3|content='''param_fmt''': utf8-S<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x10 (16 bytes)}}
Data_Size_Total: 16 bytes
{{Boxtip1|content='''Used by''': Save Data}}
Data_Size_Used: 16 bytes
 
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 Speciall 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===
====ACCOUNTID (for trophies)====<!--messed up name when trophies was implemented-->
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x10 (16 bytes)}}
Data_Size_Total: 16 bytes
{{Boxtip1|content='''Used by''': Trophy}}
Data_Size_Used: 16 bytes
Used by: Trophy


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).
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).


===ANALOG_MODE===
===ANALOG_MODE===
Data_Type: uint32_t
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
Data_Size_Total: 4 bytes
{{Boxtip1|content='''Used by''': PS1 Game}}
Data_Size_Used: 4 bytes
Used by: PS1 Game
 
Enables compatibility with the analog sticks of the Dualshock Controller.


{| class="wikitable"
{| class="wikitable"
|-
|-
! Little Endian !! Big Endian !! Flags (Binary) !! Description
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes)
|-
| 00 00 00 00 || 00 00 00 00 || 00000000 00000000 00000000 00000000 || Disabled
|-
|-
| 01 00 00 00 || 00 00 00 01 || 00000000 00000000 00000000 00000001 || Enabled
| {{cellcolors|black|lime}} 01 00 00 00 || 00 00 00 01 || style="text-align:right;" | 1 || 00000000 00000000 00000000 00000001 || '''Analog Mode Enabled'''
|-
|-
|}
|}
*'''Analog Mode Enabled'''
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===
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x6 (6 bytes)}}
Data_Size_Total: 8 bytes
{{Boxtip1|content='''Used by''': HDD Game, Minis Game, PSP Remasters Game, Game Data}}
Data_Size_Used: 6 bytes
 
Used by: HDD Game, Minis Game, Game Data


Application version (or patch version). Not used in old games.
Application version (or patch version). Not used in old games.
Line 295: Line 331:


*Cummulative Patches
*Cummulative Patches
Game patches uses a bigger '''APP_VER''' as '''01.01''' for the first patch, but keeping the same [[#TITLE_ID|TITLE_ID]] from the originall release.
Game patches uses a bigger '''APP_VER''' as '''01.01''' for the first patch, but keeping the same [[#TITLE_ID|TITLE_ID]] from the original release.


===ATTRIBUTE===
===ATTRIBUTE===
Data_Type: uint32_t
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
Data_Size_Total: 4 bytes
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, PCEngine game, NEOGEO game, Game Data, Save Data}}
Data_Size_Used: 4 bytes
Used by: HDD Game, PS1 Game, Minis Game, Game Data, Save Data


Contains a maximun of 32 flags that can be turned on/off to activate/deactivate speciall boot modes and features of the content.
Contains a maximun of 32 flags that can be turned on/off to activate/deactivate special boot modes and features of the content.


Values are stored in "Little Endian" format inside the SFO, to represent the whole list in a "human readable" format is needed to convert them to "Big Endian" and then to "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;"
|-
|
{| class="wikitable"
{| class="wikitable"
|+ATTRIBUTE flags<br>for bootable content
! colspan="2" | Hexadecimal !! rowspan="2" | Decimal !! rowspan="2" | Binary<br>(flags) !! Feature
|-
|-
! Little Endian !! Big Endian !! Flags (Binary) !! Description
! little endian !! big endian !! for bootable content
|-
|-
| '''01''' 00 00 00 || 00 00 00 '''01''' || 00000000 00000000 00000000 00000001 || '''PSP''' [[Remote_Play|'''Remote Play''']] in MPEG4 SP/ATRAC
| colspan="5" {{cellcolors|black}}
|-
|-
| '''02''' 00 00 00 || 00 00 00 '''02''' || 00000000 00000000 00000000 00000010 || [[http://manuals.playstation.net/document/en/ps3/current/game/copypsp.html '''PSP Export''']]
| {{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)'''
|-
|-
| '''04''' 00 00 00 || 00 00 00 '''04''' || 00000000 00000000 00000000 00000100 || '''PSP''' [[Remote_Play|'''Remote Play''']] in MPEG4 AVC/AAC
| {{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'''
|-
|-
| '''08''' 00 00 00 || 00 00 00 '''08''' || 00000000 00000000 00000000 00001000 || [[http://www.viddler.com/simple/1ffb1ce3/ '''XMB In-Game''']] Forced Enabled
| {{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>
|-
|-
| '''10''' 00 00 00 || 00 00 00 '''10''' || 00000000 00000000 00000000 00010000 || [[http://www.viddler.com/simple/1ffb1ce3/ '''XMB In-Game''']] Disabled
| {{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'''
|-
|-
| '''20''' 00 00 00 || 00 00 00 '''20''' || 00000000 00000000 00000000 00100000 || [[http://www.viddler.com/simple/1ffb1ce3/ '''XMB In-Game''']] Background Music
| {{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'''
|-
|-
| '''40''' 00 00 00 || 00 00 00 '''40''' || 00000000 00000000 00000000 01000000 || Unknown !
| {{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'''
|-
|-
| '''80''' 00 00 00 || 00 00 00 '''80''' || 00000000 00000000 00000000 10000000 || '''PSvita''' [[Remote_Play|'''Remote Play''']] in high quality ? (used by torne v3.52 patch)
| {{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>
|-
|-
! !! !! !!
| {{cellcolors|black|lime}} '''80''' 00 00 00 || 00 00 00 '''80''' || style="text-align:right;" | 128 || 00000000 00000000 00000000 '''1'''0000000 || '''PSvita Remote Play'''
|-
|-
| 00 '''01''' 00 00 || 00 00 '''01''' 00 || 00000000 00000000 00000001 00000000 || '''Move Controller''' (warning screen)
| colspan="5" {{cellcolors|black}}
|-
|-
| 00 '''02''' 00 00 || 00 00 '''02''' 00 || 00000000 00000000 00000010 00000000 || '''Navigation Controller''' (warning screen)
| {{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'''
|-
|-
| 00 '''04''' 00 00 || 00 00 '''04''' 00 || 00000000 00000000 00000100 00000000 || '''Eye Cam''' (warning screen)
| {{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>
|-
|-
| 00 '''08''' 00 00 || 00 00 '''08''' 00 || 00000000 00000000 00001000 00000000 || '''Calibration''' (notification screen)
| {{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>
|-
|-
| 00 '''10''' 00 00 || 00 00 '''10''' 00 || 00000000 00000000 00010000 00000000 || '''3D''' (warning screen)
| {{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'''
|-
|-
| 00 '''20''' 00 00 || 00 00 '''20''' 00 || 00000000 00000000 00100000 00000000 || Not used yet ?
| {{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'''
|-
|-
| 00 '''40''' 00 00 || 00 00 '''40''' 00 || 00000000 00000000 01000000 00000000 || Not used yet ?
| {{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>
|-
|-
| 00 '''80''' 00 00 || 00 00 '''80''' 00 || 00000000 00000000 10000000 00000000 || Not used yet ?
| {{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''
|-
|-
! !! !! !!
| {{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''
|-
|-
| 00 00 '''01''' 00 || 00 '''01''' 00 00 || 00000000 00000001 00000000 00000000 || '''Install Disc''' (containing only Install Packages)
| colspan="5" {{cellcolors|black}}
|-
|-
| 00 00 '''02''' 00 || 00 '''02''' 00 00 || 00000000 00000010 00000000 00000000 || '''Install Packages''' (from folders PKGDIR or INSDIR in Discs)
| {{cellcolors|black|lime}} 00 00 '''01''' 00 || 00 '''01''' 00 00 || style="text-align:right;" | 65536 || 00000000 0000000'''1''' 00000000 00000000 || '''Install Disc'''
|-
|-
| 00 00 '''04''' 00 || 00 '''04''' 00 00 || 00000000 00000100 00000000 00000000 || Overwrite [[#RESOLUTION|RESOLUTION]], [[#SOUND_FORMAT|SOUND_FORMAT]], '''PSP''' [[Remote_Play|'''Remote Play''']] (Patches)
| {{cellcolors|black|lime}} 00 00 '''02''' 00 || 00 '''02''' 00 00 || style="text-align:right;" | 131072 || 00000000 000000'''1'''0 00000000 00000000 || '''Install Packages'''
|-
|-
| 00 00 '''08''' 00 || 00 '''08''' 00 00 || 00000000 00001000 00000000 00000000 || '''Game Purchase''' Enabled
| {{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>
|-
|-
| 00 00 '''10''' 00 || 00 '''10''' 00 00 || 00000000 00010000 00000000 00000000 || Overwrite [[http://www.viddler.com/simple/1ffb1ce3/ '''XMB In-Game''']] (Patches)
| {{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'''
|-
|-
| 00 00 '''20''' 00 || 00 '''20''' 00 00 || 00000000 00100000 00000000 00000000 || Overwrite '''Move Controller warning screen''' (Patches)
| {{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>
|-
|-
| 00 00 '''40''' 00 || 00 '''40''' 00 00 || 00000000 01000000 00000000 00000000 || Overwrite '''3D warning screen''' (Patches)
| {{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)
|-
|-
| 00 00 '''80''' 00 || 00 '''80''' 00 00 || 00000000 10000000 00000000 00000000 || '''Move Controller''' Compatible
| {{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'''
|-
|-
! !! !! !!
| {{cellcolors|black|lime}} 00 00 '''80''' 00 || 00 '''80''' 00 00 || style="text-align:right;" | 8388608 || 00000000 '''1'''0000000 00000000 00000000 || '''Move Controller Enabled'''
|-
|-
| 00 00 00 '''01''' || '''01''' 00 00 00 || 00000001 00000000 00000000 00000000 || Not used yet ?
| colspan="5" {{cellcolors|black}}
|-
|-
| 00 00 00 '''02''' || '''02''' 00 00 00 || 00000010 00000000 00000000 00000000 || Not used yet ?
| {{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>
|-
|-
| 00 00 00 '''04''' || '''04''' 00 00 00 || 00000100 00000000 00000000 00000000 || Not used yet ? activated in category X4 ?
| {{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>
|-
|-
| 00 00 00 '''08''' || '''08''' 00 00 00 || 00001000 00000000 00000000 00000000 || Not used yet ?
| {{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>
|-
|-
| 00 00 00 '''10''' || '''10''' 00 00 00 || 00010000 00000000 00000000 00000000 || Not used yet ?
| {{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>
|-
|-
| 00 00 00 '''20''' || '''20''' 00 00 00 || 00100000 00000000 00000000 00000000 || Not used yet ?
| {{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>
|-
|-
| 00 00 00 '''40''' || '''40''' 00 00 00 || 01000000 00000000 00000000 00000000 || Not used yet ?
| {{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>
|-
|-
| 00 00 00 '''80''' || '''80''' 00 00 00 || 10000000 00000000 00000000 00000000 || Not used yet ?
| {{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>
|-
| {{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''
|-
| {{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''
|-
| {{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''
|-
| {{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''
|-
| {{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''
|}
|}
 
|
Flags can be used in groups, to remove or add a flag from the group is needed to make an addition or a substraction of the values.
 
Some examples. If you find a game with a flag in his ATTRIBUTE that is not yet in the table, please add it
{| class="wikitable"
{| class="wikitable"
|+ATTRIBUTE flags<br>for non bootable content
! colspan="3" | Feature
|-
! for Save Data !! for Disc Subfolders !! for Patches
|-
| colspan="5" {{cellcolors|black}}
|-
| '''Copy Protected''' || '''Subfolder Enabled''' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
! Little Endian !! Big Endian !! Flags (Binary ) !!  Title !! Flags !! Description
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| 05 17 80 00 || 00 80 17 05 || 00000000 10000000 00010111 00000101 || killzone 3 || 7 || Move compatible + 3D screen + 3 move screens + 2 Remote Play modes
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| 20 00 02 00 || 00 02 00 20 || 00000000 00000010 00000000 00100000 || Dead Space 2 || 2 || Installable Packages + "XMB in-game"
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| 85 00 00 00 || 00 00 00 85 || 00000000 00000000 00000000 10000101 || Torne v3.52 || 3 || 2 PSP Remote Play modes + 1 PSvita remote play mode ?
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|}
 
====ATTRIBUTE Flags Descriptions====
*'''PSP Remote Play'''
The format "MPEG4 AVC/AAC" only works when the other format "MPEG4 SP/ATRAC" is activated
 
*'''PSP Export'''
Allows the copy of the content to a PSP by pressing triangle over his icon in XMB. Used by "PS1 Game" and "Minis Game"
 
*'''"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 (photo)]] was introduced in firmware 2.40, from now on i will call this menu "XMB In-Game v2" and the [[http://www.blogcdn.com/www.joystiq.com/media/2008/01/ps3-in-game-menu.jpg old menu (photo)]] "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.
 
*'''"XMB In-Game" Disabled'''
Replaces "XMB In-Game v2" by "XMB In-Game v1", usefull 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 with your own music playing.
 
*'''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 missconfigured).
 
*'''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 there is no bootable content on the "main" path PS3_GAME/USRDIR.
 
*'''Install Packages'''
Activates the subfolder structures PS3_GAME/PKGDIR & PS3_GAME/INSDIR by loading another SFO from this subfolders (the system loads the "main" SFO from PS3_GAME, and then "jumps" to the "secondary" SFO), everytime one of this SFO's inside substructures/subfolders is loaded... a new subicon/mount point is loaded in XMB
 
For more info about this blu-ray flags/substructures see the "fake disc structure" examples in [[#CATEGORY|CATEGORY]]
 
*'''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. TITLE changes from "demo" to "full") and different [[Content_Information_Files|Content Informations Files]]
 
*'''Move Controller Compatible'''
Enables support for the Move Controller (Navigation Controller and Eye Cam doesn't have/needs a flag)
 
 
 
 
*'''Unknown flags'''
Few of them can be for PS vita for similar functions such as psp remote play or psp export (but even more restricted) are possible.
 
Boot logo disable? (not used anymore)
 
Chat voice? (not used anymore)
 
====ATTRIBUTE in SaveData====
The only two valid values of ATTRIBUTE for SaveData ('''SD''') are a 0 (speciall function deactivated) or a 1 (speciall function activated).
 
{| class="wikitable"
|-
|-
!  Little Endian !! Big Endian !! Flags (Binary) !! Description
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| 00 00 00 00 || 00 00 00 00 || 00000000 00000000 00000000 00000000 || Copy Allowed
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| 01 00 00 00 || 00 00 00 01 || 00000000 00000000 00000000 00000001 || Copy Protected
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
|}
| colspan="5" {{cellcolors|black}}
 
====ATTRIBUTE in Subfolders====
The only two valid values of ATTRIBUTE for subfolder structures used in Discs ('''TR''', '''VR''', '''DP''', '''XR''') are a 0 (speciall function deactivated) or a 1 (speciall function activated).
 
{| class="wikitable"
|-
|-
!  Little Endian !! Big Endian !! Flags (Binary) !! Description
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| 00 00 00 00 || 00 00 00 00 || 00000000 00000000 00000000 00000000 || Subfolder Deactivated
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| 01 00 00 00 || 00 00 00 01 || 00000000 00000000 00000000 00000001 || Subfolder Activated
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
|}
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
 
===BOOTABLE===
Data_Type: uint32_t
Data_Size_Total: 4 bytes
Data_Size_Used: 4 bytes
Used by: HDD Game, PS1 Game, Minis Game
 
If the content is bootable or not, useful when you are going to make a data pkg.
 
{| class="wikitable"
|-
|-
!  Little Endian !! Big Endian !! Flags (Binary) !! Description
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| 00 00 00 00 || 00 00 00 00 || 00000000 00000000 00000000 00000000 || Not bootable
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| 01 00 00 00 || 00 00 00 01 || 00000000 00000000 00000000 00000001 || Bootable
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
|}
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
 
===CATEGORY===
Data_Type: utf-8
Data_Size_Total: 4 bytes
Data_Size_Used: 3 bytes
Used by: All but Trophy
 
====CATEGORY For HDD contents====
This table represent the columns where the content is placed in the [[XMB]] and the CATEGORY asociated.
 
{| class="wikitable"
|-
|-
!  Photo !! Music !! Video !! TV !! Game !! Network !! PlayStation Network !! Content Examples !! Notes
| colspan="5" {{cellcolors|black}}
|-
|-
| || || || || GD || || || Game Data || Game patches, and Game DLC
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || <span style="color:#ff0000">''Unknown !!!''</span>
|-
|-
| || || || || 2D || || || [[http://manuals.playstation.net/document/en/ps3/current/game/hddinstall.html PS2 Data]] || Special patches/data for PS2 Emulator
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || <span style="color:#ff0000">''Unknown !!!''</span>
|-
|-
| || || || || SD || || || PS3 Save Data || PS3 Game Saves
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || param_key: '''RESOLUTION''', '''SOUND_FORMAT''', and ATTRIBUTE flag: '''Remote Play'''
|-
|-
| || || || || 2P || || || PS2 Game/Save Data || PS2 Game Data/Saves (for PS2 games converted for use on all ps3 models)
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || <span style="color:#ff0000">''Unknown !!!''</span>
|-
|-
| || || || || MS || || || [[Game_Saves#Minis_Saved_Games|Minis Save Data]] || Minis Game Saves
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || ATTRIBUTE flag: '''XMB In-Game'''
|-
|-
| || || || || ♦ || || || Trophy Data || Trophies (doesn't have a CATEGORY)
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || ATTRIBUTE flag: '''Move Controller warning'''
|-
|-
|
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || ATTRIBUTE flag: '''Stereoscopic 3D warning'''
|-
|-
| AP || || || || || || || PlayMemories ||
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || ATTRIBUTE flag: '''Move Controller Enabled'''
|-
|-
| || AM || || || || || || Qriocity Music Unlimited ||
| colspan="5" {{cellcolors|black}}
|-
|-
| || || AV || || || || || Netflix, LoveFilm ||
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| || || || AT || || || || QOOK TV, Now TV, Torne || Column hidden when no installed content
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| || || || || || CB || || Life with PlayStation, Folding@home
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| || || || || || || HM || PlayStation Home ||
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| || || || || HG || || || PS3 Game ||
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| || || || || 1P || || || PS1 Game ||
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| || || || || 2G  || || || PS2 Game ||
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| || || || || MN || || || Minis Game ||
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
|
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| || || || || PP || || || PSP Game || Not bootable, but can be copyed to a PSP
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| || || || || VT ? || || || PSvita Game || Not bootable, but can be copyed to a PSvita
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| {{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)'''
The flags stored at 1st byte seems to be related with firmware features
{{Boxframe4|content=
{{Boxframe1|content='''Portables'''
{{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]]
}}
{{Boxframe0|content={{dot}}'''PSP Export''' ''(firmware v1.70)''<BR />
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)
{{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]].
}}


*'''Unknown, untested, not listed yet, or speculation'''
{{Boxframe0|content={{dot}}'''XMB In-Game Disabled''' ''(firmware v2.40)''<BR />
X0 - '''Unknown''', related to Game patch overwrite atribute: move screen and 3D screen ?
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]].
}}


X1 - '''Unknown'''
{{Boxframe0|content={{dot}}'''XMB In-Game Background Music''' ''(firmware v2.40)''<BR />
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]]
}}
}}


X2 - '''Unknown'''
{{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
}}
}}


X3 -  '''Unknown'''
'''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.
}}


X4 - '''Unknown''', same as X0 + 1 unknown flag ?
{{Boxframe0|content={{dot}}'''Move Calibration Notification''' ''(firmware v3.40)''<BR />
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).
}}
}}


X5 - '''Unknown'''
{{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.
}}
}}


X6 -  '''Unknown'''
'''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''.
}}


X7 - '''Unknown'''
{{Boxframe0|content={{dot}}'''Install Packages'''<BR />
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]]
}}
}}


XI - '''System File for Extra Content Item''' , related to another disc structure, related with folders EX_GAME & EX_VIDEO ?
{{Boxframe0|content={{dot}}'''Game Purchase Enabled'''<BR />
Enables the <span style="background:#bbbbff;">[purchase]</span> option that appears in side menu when pressing {{padtriangle}} over the icon in XMB. Is directly related with [[#CONTENT_ID|CONTENT_ID]]. When the content is purchased 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 />
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
}}


VT - '''Speculation''', refered as "VT" in one his related PS3 packages: NP0001-NPXS10002_00-VTSTORELIVEAREA0.pkg
{{Boxframe0|content={{dot}}'''PCEngine''' ''(firmware <3.41?)''<BR />
}}


2P - '''Speculation''', Probably not correct, but moved here as speculation because there are 2 different "PS2 game" installable content. The ones released from PSN as "PS2 Classic"(Saves for PS2 Classics use '2P' as well). And a few real "PS2 DVD discs" that can be installed in the HDD. Chronologically the implementation of the "DVD install process" is severall years older and the files are installed to a '''speciall partition''' of the HDD. Its not clear yet how sony managed both types and even if the XMB displays them as different.
{{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)
}}


2G - '''Confirmed''', but the tests was done with frankenstein SFO's and no more files, when trying to boot the game there is an interesting message: ''The game partition for this game cannot be created because the installed game is corrupted. To perform this operation, delete the game, and then reinstall the game using the disc.''
{{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
}}
}}


====CATEGORY For Disc contents====
'''ATTRIBUTE flags for bootable content (4<sup>th</sup> byte)'''
This table represent the columns where the content is placed in the [[XMB]] and the CATEGORY asociated.
{{Boxframe4|content=
{{Boxframe0|content={{dot}}'''NeoGeo''' ''(firmware <3.41?)''<BR />
}}
}}
 
'''ATTRIBUTE flags for savedata (1<sup>st</sup> byte)'''
{{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)'''
{{Boxframe4|content=
{{Boxframe0|content={{dot}}'''Subfolder Activated'''<BR />
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.
}}
}}
 
'''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'''
Expect to overwrite only flag N09, N10 (+09), N11 (+09)
}}
 
{{Boxframe0|content={{dot}}'''Overwrite 3D warning screen'''
Expect to overwrite only flag N13
}}
 
{{Boxframe0|content={{dot}}'''Overwrite Move Controller Compatible'''
}}
}}
 
*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.
 
===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"
{| class="wikitable"
|-
|-
! Photo !! Music !! Video !! TV !! Game !! Network !! PlayStation Network !! Content Examples !! Notes
! colspan="2" | Hexadecimal !! rowspan="2" width="75" | Decimal !! rowspan="2" | Binary <br /> (flags) !! rowspan="2" | Feature
|-
| || || || || DG || || || Disc Game || dev_bdvd/TITLE_ID/PS3_GAME
|-
| || || || || DP (IP) || || || Disc Packages || dev_bdvd/TITLE_ID/PS3_GAME/PKGDIR
|-
|-
| || || || || AR || || || Disc Patches, and DLC || dev_bdvd/TITLE_ID/PS3_GAME/INSDIR
! little endian !! big endian
|-
|-
| || || || || XR (IP, TI, VI) || || || Disc Packages, Themes, and Videos || dev_bdvd/TITLE_ID/PS3_EXTRA
| {{cellcolors|black|lime}} 00 00 00 00 || 00 00 00 00 || style="text-align:right;" | 0 || 00000000 00000000 00000000 00000000 || '''Not Bootable'''
|-
|-
| || || || || TR || || || Disc Themes || dev_bdvd/TITLE_ID/PS3_CONTENT/THEMEDIR
| {{cellcolors|black|lime}} '''01''' 00 00 00 || 00 00 00 '''01''' || style="text-align:right;" | 1 || 00000000 00000000 00000000 0000000'''1''' || '''Bootable (mode 1)'''
|-
|-
| || || VR (VI) || || || || || Disc Videos || dev_bdvd/TITLE_ID/PS3_CONTENT/VIDEODIR
| {{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)'''
|-
|-
| || || DM || || || || || Disc Movie || dev_bdvd/TITLE_ID/PS3_VPRM
|}
|}


These are "fake Blu-Ray discs" with the minimall parameters 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.
'''Not Bootable'''
 
*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)
'''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... 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)


'''Game discs in folder PS3_CONTENT'''
'''Bootable (mode 1)'''
Themes folder is mounted as a "secndary 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.
*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)


0CONT00001
'''Bootable (mode 2)'''
|--- PS3_DISC.SFB <--- HYBRID_FLAG (TV), TITLE_ID (0CONT00001)
*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)
|--- PS3_CONTENT
*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)
      |--- THEMEDIR
*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 :/ //-->
      |    |--- 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'''
===CATEGORY===
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.
{{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}}


When the packages are installed, the file PARAM.SFO from PKGDIR is renamed to DISC.SFO and copyed inside the installation folder with the purpose of ??? (unknown, his info is not displayed in XMB)
The next tables represents the columns where the content is placed in the [[XMB]] and the CATEGORY asociated.


0PKG00001
{{PS3 Disc Game Structure}}
|--- 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'''
{{PS3 HDD Game Structure}}
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


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 foler.
*Notes
 
**[[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
0INS00001
**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)//-->
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0INS00001)
|--- PS3_GAME
      |--- PARAM.SFO <--- ATTRIBUTE (00000200), CATEGORY (DG)
      |--- INSDIR
          |--- PARAM.SFO <--- APP_VER (01.02), CATEGORY (AR)
          |--- DATA000.PKG
          |--- DATA001.PKG
 
'''Game discs in folder PS3_EXTRA'''
Icon sizes is the same used in "PStore news" menu ([[http://www.blogcdn.com/www.joystiq.com/media/2009/08/firmrwae300ps3.jpg big squares of 486x405 pixels]]). see: [Content_Information_Files|Content Information Files]]
Similar as PKGDIR, the file PARAM.SFO from PKGDIR is renamed to DISC.SFO Used in BLJM60372 Biohazard revival
 
0EXT00001
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0EXT00001)
|--- PS3_GAME
|    |--- PARAM.SFO <--- CATEGORY (DG)
|--- PS3_EXTRA
      |--- PARAM.SFO <--- ATTRIBUTE (0100000), CATEGORY (XR), TITLE (Extras)
      |--- D001
      |    |--- PARAM.SFX <--- CATEGORY (IP), TITLE (Package 1)
      |    |--- DATA000.PKG
      |--- D002
      |    |--- PARAM.SFX <--- CATEGORY (IP), TITLE (Package 2)
      |    |--- DATA000.PKG
      |--- D003
      |    |--- PARAM.SFX <--- CATEGORY (VI), TITLE (Video 1)
      |    |--- DATA000.MP4
      |--- D004
      |    |--- PARAM.SFX <--- CATEGORY (VI), TITLE (Video 2)
      |    |--- DATA000.MP4
      |--- D005
      |    |--- PARAM.SFX <--- CATEGORY (TI), TITLE (Theme 1)
      |    |--- DATA000.P3T
      |--- D006
          |--- PARAM.SFX <--- CATEGORY (TI), TITLE (Theme 2)
          |--- DATA000.P3T
 
You can download this structures to experiment with them or to look how SFO's SFX's are built ---> [[http://www.sendspace.com/file/o95vde| Blu-Ray fake discs by sandungas]]


===CONTENT_ID===
===CONTENT_ID===
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x30 (48 bytes)<br />'''param_len''': 0x25 (37 bytes)}}
Data_Size_Total: 48 bytes
{{Boxtip1|content='''Used by''': HDD Game}}
Data_Size_Used: 37 bytes
[[Content ID]]
Used by: HDD Game


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.
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.


The format is: '''XXYYYY-NP_COMMUNICATION_ID-LICENSE_ID''' where:
The format is: '''XXYYYY-NP_COMMUNICATION_ID-LICENSE_ID''' where:
Line 719: Line 716:


===DETAIL===
===DETAIL===
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x400 (1024 bytes)<br />'''param_len''': variable}}
Data_Size_Total: 1024 bytes
{{Boxtip1|content='''Used by''': Save Data}}
Data_Size_Used: variable
Used by: Save Data


Text lines displayed under [[#SUBTITLE|SUBTITLE]] text. Used only for SaveData to store long texts from the game like the name of the level you was playing, the equipment of your character (in a RPG), or the car you was driving (in a race simulator), etc...
Text lines displayed under [[#SUBTITLE|SUBTITLE]] text. Used only for SaveData to store long texts from the game like the name of the level you was playing, the equipment of your character (in a RPG), or the car you was driving (in a race simulator), etc...
Line 728: Line 723:
When the text is too long to fit in the screen it scrolls vertically from bottom to top, if the '''Data_Used_Size''' is not correct this scroll doesn't flow properly.
When the text is too long to fit in the screen it scrolls vertically from bottom to top, if the '''Data_Used_Size''' is not correct this scroll doesn't flow properly.


To displace the text to the next row is used the speciall byte "'''0A'''", this way it can be done long messages with severall 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===
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{Boxtip1|content='''Used by''': HDD Game, PS2 Game (probably others)}}
 
Used to order the contents vertically in XMB columns, contents with any value of ITEM_PRIORITY are displayed at top of XMB column, and after them all the other contents without ITEM_PRIORITY
 
Contents with bigger values in ITEM_PRIORITY are placed at top of the list, the scale is from 0x00000000 (at bottom) up to 0xFFFFFFFF (at top)


===LANG===
===LANG===
Data_Type: uint32_t
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
Data_Size_Total: 4 bytes
{{Boxtip1|content='''Used by''': Trophy}}
Data_Size_Used: 4 bytes
Used by: Trophy


Language used when the "trophy config file" [[Trophy_files#TROPCONF.SFM|TROPCONF.SFM]] was installed. Valid values for languages are the same ones used for [[Content_Information_Files#Regional_codes_in_file_names_.28languages.29|Regional codes]]
Language used when the "trophy config file" [[Trophy_files#TROPCONF.SFM|TROPCONF.SFM]] was installed.
{{PlayStation Languages}}


===LICENSE===
===LICENSE===
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x200 (512 bytes)<br />'''param_len''': variable}}
Data_Size_Total: 512 bytes
{{Boxtip1|content='''Used by''': HDD Game}}
Data_Size_Used: variable
Used by: HDD Game


License text of the content, hidden by the system in actual firmwares
License text of the content, hidden by the system in actual firmwares


===NP_COMMUNICATION_ID===
=== NP_COMMUNICATION_ID ===
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0xD (13 bytes)}}
Data_Size_Total: 16 bytes
{{Boxtip1|content='''Used by''': HDD Game}}
Data_Size_Used: 13 bytes
Used by: HDD Game


Name of the folder containing the 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 NPWRxxyyy_zz (e.g. NPWR00001_00)
The format is 4 letters + 5 numbers with optionally a subid (usually 0) : NPWRyyyyy_zz (e.g. NPWR00001_00)


===NPCOMMID===
====NPCOMMID (for trophies)====<!--messed up name when trophies was implemented-->
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0xC (12 bytes)}}
Data_Size_Total: 16 bytes
{{Boxtip1|content='''Used by''': Trophy}}
Data_Size_Used: 12 bytes
Used by: Trophy


Same than NP_COMMUNICATION_ID but with a '''Data_Size_Used''' of  12 bytes
Same than NP_COMMUNICATION_ID but with a '''param_len''' of  12 bytes


===PADDING===
===PADDING===
Data_Type: utf-8 Speciall Mode
{{Boxinfo3|content='''param_fmt''': utf8-S<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x0 (0 bytes)}}
Data_Size_Total: 8 bytes
{{Boxtip1|content='''Used by''': Trophy}}
Data_Size_Used: 0 bytes
Used by: Trophy


Unknown
Unknown


===PARAMS===
===PARAMS===
Data_Type: utf-8 Speciall Mode
{{Boxinfo3|content='''param_fmt''': utf8-S<br />'''param_max_len''': 0x400 (1024 bytes)<br />'''param_len''': 0x400 (1024 bytes)}}
Data_Size_Total: 1024 bytes
{{Boxtip1|content='''Used by''': PS3 Save Data}}
Data_Size_Used: 1024 bytes
*Intended to store:
Used by: Save Data
**Counters (number of times the .SFO was updated, etc...)
 
**User/console ID's
This parameter is intented to store user (and console?) specific data. Is the only one known parameter that contains an internall structure with severall strings, and his size is huge for being an integer.
**Some more unknown and reserved areas. See {{Talk}} page


{| class="wikitable"
{| class="wikitable"
|-
|-
! Offset!! length !! Example !! Description !! Notes
! Usage !! 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
|- {{cellcolors|lightgrey}}
| 0x05 || 3 (0x3) || ''zero filled'' || ''Reserved'' || Not used yet
|-
|-
| 0x000C || 4 (0x4) || 08000000 || Unknown ||
! rowspan=4 | counters
| 0x08 || 4 (0x4) || 00000000 || ''Counter slot 1 ?'' || values found: always 0
|-
|-
| 0x0010 || 4 (0x4) || 7D000000 || Unknown ||
| 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 identificator 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
| 0x18 || 4 (0x4) || 01000000 || '''User ID''' || Local User identifier (same name used to store the user files in '''dev_hdd0/home/<User ID>''')
|-
|-
| 0x002C || 4 (0x4) || 01000000 || '''userid''' || User identificator number from [[XRegistry.sys]]
| 0x1C || 16 (0x10) || FEDCBA9876543210FEDCBA9876543210 || [[PSID]] || Local PS3 identifier, aka Open PSID, or offline PSID
|-
|-
| 0x0030 || 16 (0x10) || 0123456789ABCDEF0123456789ABCDEF || '''accountid''' || PSN account identificator 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 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 two times in the file.
**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
**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===
Data_Type: utf-8 Speciall Mode
{{Boxinfo3|content='''param_fmt''': utf8-S<br />'''param_max_len''': 0xC (12 bytes)<br />'''param_len''': 0xC (12 bytes)}}
Data_Size_Total: 12 bytes
{{Boxtip1|content='''Used by''': Save Data}}
Data_Size_Used: 12 bytes
Used by: Save Data


Unknown, usually filled with zeroes
Unknown, usually filled with zeroes


===PARENTAL_LEVEL_x===
===PARENTAL_LEVEL===
Data_Type: uint32_t
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
Data_Size_Total: 4 bytes
{{Boxtip1|content='''Used by''': HDD Game, Minis Game, PSP Remasters Game, Game Data, Save Data, Minis Save Data}}
Data_Size_Used: 4 bytes
Used by: HDD Game


Used to restrict the content to a specific [[Regions|License Area]]
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}}
 
Used to restrict the content to a specific '''License Area'''. See [[Regions]]


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


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


===PARENTAL_LEVEL===
====PARENTALLEVEL (for trophies and PS1 games)====<!--messed up name when trophies was implemented-->
Data_Type: uint32_t
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
Data_Size_Total: 4 bytes
{{Boxtip1|content='''Used by''': PS1 Game, Trophy}}
Data_Size_Used: 4 bytes
Used by: HDD Game, Minis Game, Game Data, Save Data, Minis Save Data
 
Is an scale to rate the content for the different users based in his user profile settings and internationall 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:
Same than PARENTAL_LEVEL
*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"
|-
!  Little Endian !! Big Endian !! Decimal !! Rating
|-
| 00 00 00 00 || 00 00 00 00 || 0 || Disabled
|-
| 01 00 00 00 || 00 00 00 01 || 1 || Lower restriction
|-
| 02 00 00 00 || 00 00 00 02 || 2 ||
|-
| 03 00 00 00 || 00 00 00 03 || 3 ||
|-
| 04 00 00 00 || 00 00 00 04 || 4 ||
|-
| 05 00 00 00 || 00 00 00 05 || 5 ||
|-
| 06 00 00 00 || 00 00 00 06 || 6 ||
|-
| 07 00 00 00 || 00 00 00 07 || 7 ||
|-
| 08 00 00 00 || 00 00 00 08 || 8 ||
|-
| 09 00 00 00 || 00 00 00 09 || 9 ||
|-
| 0A 00 00 00 || 00 00 00 0A || 10 ||
|-
| 0B 00 00 00 || 00 00 00 0B || 11 || Higher restriction
|-
|}


===PARENTALLEVEL===
===PATCH_FILE===
Data_Type: uint32_t
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x20 (32 bytes)<br />'''param_len''': variable}}
Data_Size_Total: 4 bytes
{{Boxtip1|content='''Used by''': Unknown (patches?)}}
Data_Size_Used: 4 bytes
Used by: PS1 Game, Trophy


Same than PARENTAL_LEVEL
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===
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x8 (8 bytes)}}
Data_Size_Total: 8 bytes
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data}}
Data_Size_Used: 8 bytes
Used by: HDD Game, PS1 Game, Minis Game, Game Data


Minimum PS3 [[System_Software|System Software]] required for the content to be bootable.
Minimum PS3 [[System_Software|System Software]] required for the content to be bootable.
Line 919: Line 949:


===REGION_DENY===
===REGION_DENY===
Data_Type: uint32_t
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
Data_Size_Total: 4 bytes
{{Boxtip1|content='''Used by''': HDD Game}}
Data_Size_Used: 4 bytes
<div style="float:right">[[File:Badregion-4.jpg|210px|thumb|right|Region checks]]</div>
Used by: HDD Game
Region restrictions for the content, added in firmware 3.30


Regional restrictions for the content.
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, this positions are marked with an "'''1'''" when the region is prohibited, and a "'''0'''". when is allowed.


{| class="wikitable"
{| class="wikitable"
|-
|-
! Little Endian !! Big Endian !! Flags (Binary) !! Region Nº !! Allowed Region !! Notes
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Binary <br /> (flags) !! Region Nº !! Target Territory !! Notes
|-
|-
| FE FF FF FF || FF FF FF FE || 11111111 11111111 11111111 11111110 || 0 || Japan ||
| {{cellcolors|black|lime}} FE FF FF FF || FF FF FF FE || 11111111 11111111 11111111 11111110 || style="text-align:right;" | 0 || Japan ||
|-
|-
| FD FF FF FF || FF FF FF FD || 11111111 11111111 11111111 11111101 || 1 || US, Canada (North America)  || Used in Netflix
| {{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
|-
|-
| FB FF FF FF || FF FF FF FB || 11111111 11111111 11111111 11111011 || 2 || Europe / Middle East / Africa  ||
| {{cellcolors|black|lime}} FB FF FF FF || FF FF FF FB || 11111111 11111111 11111111 11111011 || style="text-align:right;" | 2 || Europe / Middle East / Africa  ||
|-
|-
| F7 FF FF FF || FF FF FF F7 || 11111111 11111111 11111111 11110111 || 3 || Korea (South Korea)  ||
| {{cellcolors|black|lime}} F7 FF FF FF || FF FF FF F7 || 11111111 11111111 11111111 11110111 || style="text-align:right;" | 3 || Korea (South Korea)  ||
|-
|-
| EF FF FF FF || FF FF FF EF || 11111111 11111111 11111111 11101111 || 4 || U.K. / Ireland  ||
| {{cellcolors|black|lime}} EF FF FF FF || FF FF FF EF || 11111111 11111111 11111111 11101111 || style="text-align:right;" | 4 || U.K. / Ireland  ||
|-
|-
| DF FF FF FF || FF FF FF DF || 11111111 11111111 11111111 11011111 || 5 || Mexico, Central America, South America ||
| {{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 ||
|-
|-
| BF FF FF FF || FF FF FF BF || 11111111 11111111 11111111 10111111 || 6 || Australia / New Zealand (Oceania)  ||
| {{cellcolors|black|lime}} BF FF FF FF || FF FF FF BF || 11111111 11111111 11111111 10111111 || style="text-align:right;" | 6 || Australia / New Zealand (Oceania)  ||
|-
|-
| 7F FF FF FF || FF FF FF 7F || 11111111 11111111 11111111 01111111 || 7 || Singapore / Malaysia (Southeast Asia)  ||
| {{cellcolors|black|lime}} 7F FF FF FF || FF FF FF 7F || 11111111 11111111 11111111 01111111 || style="text-align:right;" | 7 || Singapore / Malaysia (Southeast Asia)  ||
|-
|-
| FF FE FF FF || FF FF FE FF || 11111111 11111111 11111110 11111111 || 8 || Taiwan ||
| {{cellcolors|black|lime}} FF FE FF FF || FF FF FE FF || 11111111 11111111 11111110 11111111 || style="text-align:right;" | 8 || Taiwan ||
|-
|-
| FF FD FF FF || FF FF FD FF || 11111111 11111111 11111101 11111111 || 9 || Russia, Ukraine, India, Central Asia  ||
| {{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  ||
|-
|-
| FF FB FF FF || FF FF FB FF || 11111111 11111111 11111011 11111111 || 10 || China ||
| {{cellcolors|black|lime}} FF FB FF FF || FF FF FB FF || 11111111 11111111 11111011 11111111 || style="text-align:right;" | 10 || China ||
|-
|-
| FF F7 FF FF || FF FF F7 FF || 11111111 11111111 11110111 11111111 || 11 || Hong Kong ||
| {{cellcolors|black|lime}} FF F7 FF FF || FF FF F7 FF || 11111111 11111111 11110111 11111111 || style="text-align:right;" | 11 || Hong Kong ||
|-
| colspan="7" style="text-align:center; background-color:#DDDDDD;" | Examples
|-
| {{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)
|-
|-
|}
|}
[[http://ps3.mediagen.fr/badregion-4_0900051787.jpg | Photo]] of a DEX with the the text: '''Allowed Region=1-11''' (note region 0=Japan is not allowed).


===RESOLUTION===
===RESOLUTION===
Data_Type: uint32_t
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
Data_Size_Total: 4 bytes
{{Boxtip1|content='''Used by''': HDD Game, PS1 Classics Game, Minis Game, PSP Remasters Game}}
Data_Size_Used: 4 bytes
Used by: HDD Game, PS1 Game, Minis Game


TV video modes supported by the content.
TV video modes supported by the content.


When there are severall flags activated the PS3 will use the one with higher quality supported by the TV.
When there are several flags activated the PS3 will use the one with higher quality supported by the TV.


{| class="wikitable"
{| class="wikitable"
|-
|-
! Little Endian !! Big Endian !! Flags (Binary) !! Description
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes)
|-
|-
| 01 00 00 00 || 00 00 00 01 || 00000000 00000000 00000000 00000001 || 480  (4:3)
| {{cellcolors|black|lime}} 01 00 00 00 || 00 00 00 01 || style="text-align:right;" | 1 || 00000000 00000000 00000000 00000001 || 480  (4:3)
|-
|-
| 02 00 00 00 || 00 00 00 02 || 00000000 00000000 00000000 00000010 || 576  (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)
|-
|-
| 04 00 00 00 || 00 00 00 04 || 00000000 00000000 00000000 00000100 || 720  (16:9)
| {{cellcolors|black|lime}} 04 00 00 00 || 00 00 00 04 || style="text-align:right;" | 4 || 00000000 00000000 00000000 00000100 || 720  (16:9)
|-
|-
| 08 00 00 00 || 00 00 00 08 || 00000000 00000000 00000000 00001000 || 1080 (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)
|-
|-
| 10 00 00 00 || 00 00 00 10 || 00000000 00000000 00000000 00010000 || 480  (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)
|-
|-
| 20 00 00 00 || 00 00 00 20 || 00000000 00000000 00000000 00100000 || 576  (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)
|-
|-
|
| colspan="5" style="text-align:center; background-color:#DDDDDD;" | Examples
|-
|-
| 3F 00 00 00 || 00 00 00 3F || 00000000 00000000 00000000 00111111 || All
| {{cellcolors|black|lime}} 3F 00 00 00 || 00 00 00 3F || style="text-align:right;" | 63 || 00000000 00000000 00000000 00111111 || All video modes supported
|-
|-
|}
|}


===SAVEDATA_DETAIL===
*Tests
Data_Type: utf-8
**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
Data_Size_Total: 1024 bytes
**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
Data_Size_Used: variable
Used by: Minis Save Data


Used to store texts generated by the game, the format s the same than [[PARAM.SFO#DETAIL|DETAIL]]
*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


===SAVEDATA_DIRECTORY===
===SAVEDATA_DIRECTORY===
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x40 (64 bytes)<br />'''param_len''': variable}}
Data_Size_Total: 64 bytes
{{Boxtip1|content='''Used by''': Save Data, Minis Save Data}}
Data_Size_Used: variable
Used by: Save Data, Minis Save Data


Name of the folder where the game stores his SaveData. The format is: '''TITLE_ID-xxx''', e.g;: '''BLUS00001-savedata''' where:
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:
*'''TITLE_ID''' is explained in [[#TITLE_ID|TITLE_ID]].
*'''TITLE_ID''' Identifier of the content. Explained in [[#TITLE_ID|TITLE_ID]].
*'''-''' is a separation character (mandatory).
*'''xxxxx''' Are texts (with variable length) to difference all the SaveDatas generated from the same game by the same user.
*'''xxx''' is a variable string with variable lenght, are texts to separate different SaveDatas from the same game.


===SAVEDATA_FILE_LIST===
===SAVEDATA_FILE_LIST===
Data_Type: 04 00
{{Boxinfo3|content='''param_fmt''': utf8-S<br />'''param_max_len''': 0xC60 (3168 bytes)<br />'''param_len''': 0xC60 (3168 bytes)}}
Data_Size_Total: 3168 bytes
{{Boxtip1|content='''Used by''': Minis Save Data}}
Data_Size_Used: 3168 bytes
Used by: Minis Save Data


Contains a list with an space reserved for 99 entries, each entry 32 bytes long, for a totall size of 3168 bytes (99 * 32 = 3168)
Contains a list with an space reserved for 99 entries, each entry 32 bytes long, for a total size of 3168 bytes (99 * 32 = 3168)


Entries refer to other files from the folder, example of one entry:
Entries refer to other files from the folder, example of one entry:
Line 1,027: Line 1,048:


===SAVEDATA_LIST_PARAM===
===SAVEDATA_LIST_PARAM===
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': variable}}
Data_Size_Total: 8 bytes
{{Boxtip1|content='''Used by''': PS3 Save Data}}
Data_Size_Used: variable
 
Used by: 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)


Unknown, usually filled with zeroes, but with a '''Data_Used_Size''' of 1 byte
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


*Gran turismo 5 contains the string "GAMEDAT"
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:
 
{| class="wikitable sortable"
|-
! rowspan=2 | TITLE_ID !! rowspan=2 | Title !! colspan=2 | SAVEDATA_LIST_PARAM !! rowspan=2 | Notes
|-
! Example !! Method
|-
| BCAS20108, BCES00569, BCUS98114 || Gran turismo 5 || GAMEDAT || Copypasted ? ||
|-
| BLES01739, BLJS10228, BLUS31052 || Dead Island Riptide || IIBJFMO, ALFJASP, HMDASLM, PTRONAS || Copypasted + scrambled ? ||
|-
| BLES00153, BLES00171, BLES00172, BLUS30055 || The Orange Box || 141312 || Folder Size in sectors || See the example in {{talk}} page
|-
| BCES01007 || Killzone 3 || CONFIG || Copypasted ? ||
|-
| BLES00776 || Venetica || 3-47755 || ? ||
|-
| BLES00839 || Prince of Persia, forgotten sands || 1ACBKM3, 1ACBKM6 || ? ||
|-
| 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===
Data_Type: 04 00
{{Boxinfo3|content='''param_fmt''': utf8-S<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': 0x80 (128 bytes)}}
Data_Size_Total: 128 bytes
{{Boxtip1|content='''Used by''': Minis Save Data}}
Data_Size_Used: 128 bytes
Used by: Minis Save Data


Example
Example
Line 1,047: Line 1,100:
! Offset!! length !! Example !! Description !! Notes
! Offset!! length !! Example !! Description !! Notes
|-
|-
| 0x11B0 || 16 (0x10) || 41000000000000000000000000000000 || Unknown || allways the same value found ("A" in utf-8)
| 0x11B0 || 16 (0x10) || 41000000000000000000000000000000 || Unknown || allways the same value found ("A" in utf8)
|-
|-
| 0x11C0 || 16 (0x10) || FEDCBA9876543210FEDCBA9876543210 || Unknown || changes when the savedata is updated
| 0x11C0 || 16 (0x10) || FEDCBA9876543210FEDCBA9876543210 || Unknown || changes when the savedata is updated
Line 1,064: Line 1,117:
|-
|-
|}
|}
===SAVEDATA_TITLE===
Data_Type: utf-8
Data_Size_Total: 128 bytes
Data_Size_Used: variable
Used by: Minis Save Data
Subtitle of the Save, the format is the same than [[PARAM.SFO#SUBTITLE|SUBTITLE]]


===SOUND_FORMAT===
===SOUND_FORMAT===
Data_Type: uint32_t
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
Data_Size_Total: 4 bytes
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game}}
Data_Size_Used: 4 bytes
Used by: HDD Game, PS1 Game, Minis Game


Sound modes supported by the content.
Sound modes supported by the content.
Line 1,083: Line 1,126:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Little Endian !! Big Endian !! Flags (Binary) !! Description
! Hexadecimal <br /> (little endian) !! Hexadecimal <br /> (big endian) !! Decimal !! Binary <br /> (flags) !! Feature <br /> (notes) !! Flag Nº <br /> (flag required)
|-
|-
| 01 00 00 00 || 00 00 00 01 || 00000000 00000000 00000000 00000001 || [[http://en.wikipedia.org/wiki/Lpcm LPCM]] 2.0
| {{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
|-
|-
| 04 00 00 00 || 00 00 00 04 || 00000000 00000000 00000000 00000100 || [[http://en.wikipedia.org/wiki/Lpcm LPCM]] 5.1
| {{cellcolors|black|lime}} 02 00 00 00 || 00 00 00 02 || style="text-align:right;" | 2 || 00000000 00000000 00000000 00000010 || || bgcolor="#DD6666" | 02
|-
|-
| 10 00 00 00 || 00 00 00 10 || 00000000 00000000 00000000 00010000 || [[http://en.wikipedia.org/wiki/Lpcm LPCM]] 7.1
| {{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
|-
|-
| 02 01 00 00 || 00 00 01 02 || 00000000 00000000 00000001 00000010 || [[http://en.wikipedia.org/wiki/Dolby_Digital#Dolby_Digital Dolby Digital]] 5.1
| {{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
|-
|-
| 02 02 00 00 || 00 00 02 02 || 00000000 00000000 00000010 00000010 || [[http://en.wikipedia.org/wiki/DTS_%28sound_system%29 Digital Theater Systems (DTS)]] 5.1
| {{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)
|-
|-
|
| {{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)
|-
| 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
|-
| {{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
|-
| {{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
|-
| {{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
|-
|-
| 17 03 00 00 || 00 00 03 17 || 00000000 00000000 00000011 00010111 || All
| {{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
|}
|}
*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
*Other SOUND_FORMAT values availables in non retail (Debug, AV/Test, etc...) consoles ?


===SOURCE===
===SOURCE===
Data_Type: uint32_t
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
Data_Size_Total: 4 bytes
{{Boxtip1|content='''Used by''': Trophy}}
Data_Size_Used: 4 bytes
Used by: Trophy


Unknown, usually filled with zeroes
Unknown, usually filled with zeroes


===SUB_TITLE===
===SUB_TITLE===
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}}
Data_Size_Total: 128 bytes
{{Boxtip1|content='''Used by''': Save Data}}
Data_Size_Used: variable
Used by: Save Data


The line of text displayed under [[#TITLE|TITLE]] text, used only in SaveData to store short texts from the game like your player name, your play time, photo used or your rank in the game  
The line of text displayed under [[#TITLE|TITLE]] text, used only in SaveData to store short texts from the game like your player name, your play time, photo used or your rank in the game  


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===
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x6 (6 bytes)}}
Data_Size_Total: 8 bytes
{{Boxtip1|content='''Used by''': Game Data}}
Data_Size_Used: 6 bytes
Used by: Game Data


Target application version for incremental patches. Patches containing '''TARGET_APP_VER''' can be installed over the game with the same '''APP_VER'''.
Target application version for incremental patches. Patches containing '''TARGET_APP_VER''' can be installed over the game with the same '''APP_VER'''.
Line 1,129: Line 1,190:


===TITLE===
===TITLE===
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}}
Data_Size_Total: 128 bytes
{{Boxtip1|content='''Used by''': All but Trophy}}
Data_Size_Used: variable
Used by: All but Trophy


Default "title of the game" for all languages. The text is displayed right to the ICON0.PNG.
Default "title of the game" for all languages. The text is displayed right to the ICON0.PNG.


===TITLE_ID===
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)
Data_Type: utf-8
 
Data_Size_Total: 16 bytes
====TITLE_xx (for localized languages)====
Data_Size_Used: 10
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}}
Used by: HDD Game, PS1 Game, Minis Game, Game Data
{{Boxtip1|content='''Used by''': HDD Game}}
 
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.


*Discs:
The "default" TITLE is always present when other "localized" TITLE_'''xx''' are used.
**'''W''' is the media: ('''B'''=Blu-ray, '''S'''=CD/DVD)
**'''X''' is the license: ('''C'''=Official, '''L'''=Licensed)
**'''Y''' is the region: ('''A'''=Asia, '''E'''=Europe, '''J'''=Japan, '''U'''=USA)
**'''Z''' is the kind of content: ('''D'''=Demo, '''M'''=Malayan Release, '''S'''=Retail release)
**'''12345''' is the game ID in chronological order


*HDD games or apps:
{{PlayStation Languages}}
**'''WX''' is the [[Environments|Network Enviroment]]: ('''NP'''=Retail)
**'''Y''' is the region: ('''E'''=Europe, '''I'''=Internationall?, '''H'''=Hong Kong, '''J'''=Japan, '''U'''=USA)
**'''Z''' is the ?: ('''A'''=?, '''B'''=?, '''F'''=?, '''G'''=?, '''I'''=?, '''J'''=?, '''K'''=?, '''L'''=?, '''O'''=?, '''W'''=?, '''Z'''=?)
**'''12345'''


*Other TITLE_ID's
===TITLE_ID===
**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 addopts it). The SaveData of this game will use TEST12345. When several different games are mounted and "direct launched", his savedatas 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 internall 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).
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0xA (10 bytes)}}
**MRTC00001 STAR OCEAN THE LAST HOPE (the first internationall blu-ray release)
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data}}


===TITLE_xx===
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]])
Data_Type: utf-8
Data_Size_Total: 128 bytes
Data_Size_Used: variable
Used by: HDD Game


Same than TITLE but for localized languages.
{{TITLE_ID for Physical Media}}


An .SFO can contain severall TITLE_'''xx''' where '''xx''' is a number for a regional code. See: [[Content_Information_Files|Content Information Files]].
{{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
**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===
====TITLEID0xx (for trophies with localized languages)====<!--messed up name when trophies was implemented-->
Data_Type: utf-8
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x9 (9 bytes)}}
Data_Size_Total: 16 bytes
{{Boxtip1|content='''Used by''': Trophy}}
Data_Size_Used: 9
Used by: Trophy


SFO's for trophies contains a full list of 16 TITLEID0'''xx''' parameters for all languages where '''xx''' is a number for a regional code. See: [[Content_Information_Files|Content Information Files]].
SFO's for trophies contains a full list of 16 TITLEID0'''xx''' for all languages where '''xx''' is a number for a language code.


All them can contain data, or only the default TITLEID000. The ones without data are marked with a ''' Data_Used_Size''' = 0 bytes
All them can contain data, or only the default TITLEID000. The ones without data are marked with a ''' Data_Used_Size''' = 0 bytes


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}}


===VERSION===
===VERSION===
Data_Type: utf-8
{{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}}
Data_Size_Total: 8 bytes
{{Boxtip1|content='''Used by''': HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data, Trophy}}
Data_Size_Used: 6 bytes (or 3 bytes when used in trophy)
Used by: HDD Game, PS1 Game, Minis Game, Game Data, Trophy


Disc revision, or Package revision. The number increases when the content is re-released or re-packaged for whatever reason that doesn't affect the main executable (e.g. when a disc game reaches platinum sales, or "game of the year edition" incuding extra contents).
Disc revision, or Package revision. The number increases when the content is re-released or re-packaged for whatever reason that doesn't affect the main executable (e.g. when a disc game reaches platinum sales, or "game of the year edition" including extra contents).


When the main executable is uptaded, his '''APP_VER''' increases (this can be done with patches)... but the '''VERSION''' of the patch (or the re-released disc) returns to '''01.00'''.
When the main executable is updated, the '''APP_VER''' increases (this can be done with patches)... but the '''VERSION''' of the patch (or the re-released disc) returns to '''01.00'''.


Additionally this gives the possibility to release different versions of the same patch (used when the original patch contains a bug, needs to be replaced, and is not cummulative)
Additionally this gives the possibility to release different versions of the same patch (used when the original patch contains a bug, needs to be replaced, and is not cumulative)


The format is '''XX.YY''' where "'''XX'''" and "'''YY'''" are numbers, and the point "'''.'''" is included in the string, e.g: '''01.00'''.
The format is '''XX.YY''' where "'''XX'''" and "'''YY'''" are numbers, and the point "'''.'''" is included in the string, e.g: '''01.00'''.


*When used in a SFO for a trophy it has a '''Data_Size_Used''' 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.


==Tools, manuals and externall links==
 
Sorry if im missing some link, severall things of this page was copy-pasted months ago by googling in random forums.
'''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==
This section is to add more extended explains about features that cant been easily clasifyed inside other sections
 
===Replacing a PARAM.SFO manually===
When replacing a PARAM.SFO manually in the internall HDD (using a file manager, FTP, etc...) the system ignores it. This happens because the system is storing a "duplicated" copy of the old one.
 
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 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)
 
===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>
 
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)
 
*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 adding "non-standard" param_key's to a SFO for an specific type of content (that only admits a few ones) the SFO is loaded without problems but firmware ignores them because are "not-expected" (e.g. when adding SUB_TITLE to a SFO for category "HG").
 
*The minimal structure tested (and working) for a homebrew can be copied/downloaded at the bottom of the page, its not "standard" but the PS3 doesn't complain, and probably can be reduced even more.
 
*If Error 80028F08:
can be resolved by pressing triangle one time and launch the game from start or back from the ICON.
 
===Creating Discs===
The "fake blu-ray" structures that can be downloaded from this page uses two "dirty tricks" that was usefull to identify the critic values needed to work, but can be a bit confusing to replicate them.
 
The first one is the removing of '''TITLE''' and '''TITLE_ID''' from most of the SFO's, this can generate a strange behaviour mostly for the primary icon. The second one is the '''ATTRIBUTE''' flag to hide the main icon. The other factor involved in this weird behaviours are the "backup managers" that are hardcoded to look for files and format in some specific structures.
 
When playing with this fake blu-rays use a USB pendrive (is faster to connect/disconnect to ps3/pc) with a "GAMEZ" folder in the root, and remember to "dismount" the game before disconecting the USB to avoid the XMB to go crazy, also remember the XMB sometimes keeps a backup copy of the old PARAM.SFO
 
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...
 
(Max items & FW min are theory, not tested)
 
For patches use INSDIR, its installation is more automated
 
===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 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
 
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:
*Using a "blank" '''APP_VER'''
This is as easy as filling the value for '''APP_VER''' in the patch with zeroes, the undesired effect is the app will have no version. The benefit is this will work for installing cummulating files as "themes", "roms" etc...
 
*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)
 
==Tools, manuals and external links==
Sorry if im missing some link, several things of this page was copy-pasted months ago by googling in random forums.


*Tools
*Tools
Line 1,215: Line 1,513:
[[Dev_Tools#SFO_Reader|SFO reader]]
[[Dev_Tools#SFO_Reader|SFO reader]]


*Sources
[https://github.com/Rancido/PS3-Tools Another SFO 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.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
 
[https://www.ferb.fr/ps3/SFO/] SFO PS3 reader By Matthieu Milan
 
*Sources and links
http://www.ps3hax.net/showthread.php?t=28704
http://www.ps3hax.net/showthread.php?t=28704


http://ps3dev.wikispaces.com/PARAM.SFO
http://ps3dev.wikispaces.com/PARAM.SFO
https://github.com/ps3dev/PSL1GHT/blob/master/tools/ps3py/sfo.py (old way)
https://github.com/an0nym0u5/PSL1GHT/tree/master/tools/make_sfo (new/better way)
[http://www.multiupload.com/T9V8WMXR60 read_sfo.tar.bz2 (6.32 KB)]
http://ps3tutorials.wikispaces.com/Edit+the+sfo.xml+Tutorial
http://mc.pp.se/psp/psf.xhtml (SFO parameters used in PSP)


*Examples
*Examples
A little collection of SFO's ordered by categories http://www.sendspace.com/file/oy270g
A little collection of SFO's ordered by categories http://www.sendspace.com/file/oy270g
Just a collection of PARAM (.bin .pfd .sfo .tpf) files: http://www.mirrorcreator.com/files/0OAXGOHN/PARAM.rar_links


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>

Latest revision as of 05:29, 1 July 2023

Description[edit | edit source]

SFO (System File Object) 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 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).
    • Information texts (most of the utf8 datas) about the content and its restrictions (e.g. title and version of a game).

SFX (System File in XML format) is similar than SFO but without the data related to its 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).

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 and special flags on ATTRIBUTE.

In Blu-Ray discs, the "main" PARAM.SFO itself is activated by another flag inside PS3_DISC.SFB.

Internal Structure[edit | edit source]

header[edit | edit source]

At offset 0x0, length 0x14 (20 bytes)

struct sfo_header
{
uint32_t magic; /************ Always PSF */
uint32_t version; /********** Usually 1.1 */
uint32_t key_table_start; /** Start offset of key_table */
uint32_t data_table_start; /* Start offset of data_table */
uint32_t tables_entries; /*** Number of entries in all tables */
};

index_table[edit | edit source]

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.

Every entry belongs to a key name in the key_table and defines a data area in the data_table

struct sfo_index_table_entry
{
uint16_t key_offset; /*** param_key offset (relative to start offset of key_table) */
uint16_t data_fmt; /***** param_data data type */
uint32_t data_len; /***** param_data used bytes */
uint32_t data_max_len; /* param_data total bytes */
uint32_t data_offset; /** param_data offset (relative to start offset of data_table) */
};
Data Types
fmt Data Type Description Notes
In SFO In SFX
04 00 No? 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 Trophies). See Discussion page
04 02 utf8 utf8 utf8 character string, NULL terminated (0x00) Can be used any character from the system fonts. The NULL byte is counted as part of the used bytes in len
04 04 int32 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)

key_table[edit | edit source]

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[edit | edit source]

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[edit | edit source]

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:
    • SFO header
    • Key and Data offsets
    • Data used length

SFO[edit | edit source]

Offset(h) 00 01 02 03  04 05 06 07  08 09 0A 0B  0C 0D 0E 0F
     0x00 00 50 53 46  01 01 00 00  24 00 00 00  30 00 00 00 | .PSF....$...0... |
     0x10 01 00 00 00  00 00 04 02  0A 00 00 00  0F 00 00 00 | ................ |
     0x20 00 00 00 00  54 49 54 4C  45 5F 49 44  00 00 00 00 | ....TITLE_ID.... |
     0x30 42 4C 55 53  31 32 33 34  35 00 00 00  00 00 00 00 | BLUS12345....... |
Areas Offset Size Name Example Notes
header 0x00 0x04 magic PSF
0x04 0x04 version 01 01 00 00 1.01
0x08 0x04 key_table_start 24 00 00 00 Absolute start offset of key_table = 0x24
0x0C 0x04 data_table_start 30 00 00 00 Absolute start offset of data_table = 0x30
0x10 0x04 tables_entries 01 00 00 00 Number of entries in index_table, key_table, and data_table = 1
index_table 0x14 0x02 key_1_offset 00 00 key_1 relative offset. (Absolute start offset of key_1) - (Absolute start offset of key_table) = 0x24-0x24 = 0
0x16 0x02 data_1_fmt 04 02 data_1 data type = utf8
0x18 0x04 data_1_len 0A 00 00 00 data_1 used length (BLUS12345 = 9 bytes + 1 byte NULL termination) = 10 bytes
0x1C 0x04 data_1_max_len 0F 00 00 00 data_1 total length. TITLE_ID is always = 16 bytes
0x20 0x04 data_1_offset 00 00 00 00 data_1 relative offset. (Absolute start offset of data_1) - (Absolute start offset of data_table) = 0x30-0x30 = 0
key_table 0x24 0x09 key_1 TITLE_ID Relative offset defined in the index_table
0x2D 0x03 padding 00 00 00 9 bytes used by the previous entries + 3 padding = 12 (aligned to 4 bytes)
data_table 0x30 0x0F data_1 BLUS12345 Data type, used length, total length, and relative offset defined in the index_table

SFX[edit | edit source]

Tip
SFX is used in some discs with special content
SFX can be used as "templates" to generate SFO files
SFX can be created using a SFO as the "source". See: SFO2SFX
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<paramsfo add_hidden="false">
  <param key="TITLE_ID" fmt="utf8" max_len="16">BLUS12345</param>
</paramsfo>
  • Notes
    • The function of add_hidden="false" is unknown

SFO Requirements for HDD contents[edit | edit source]

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).

param Used in SFO/SFX with CATEGORY
Bootable Data Save Trophy
PS3 PS1 PS2 PSP PS3 PS2 PS3 PSP PS3
key fmt len max_len AP, AM, AV, BV, AT, WT, HG, CB, HM, SF 1P 2G 2P MN PE PP GD 2D SD MS Trophy (doesnt uses CATEGORY)
ACCOUNT_ID utf8-S 16 (0x010) No No No No No No No No No Yes No No
ACCOUNTID utf8 16 (0x010) No No No No No No No No No No No Yes
ANALOG_MODE int32 4 (0x004) No Yes No No No No No No No No No No
APP_VER utf8 6 (0x006) 8 (0x008) Opt No No No Yes Yes No Opt No No No No
ATTRIBUTE int32 4 (0x004) Opt Yes Yes Opt Yes Yes Yes Opt No Yes No No
BOOTABLE int32 4 (0x004) Yes Yes Yes Yes Yes Yes Yes No No No No No
CATEGORY utf8 3 (0x003) 4 (0x004) Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No
CONTENT_ID utf8 37 (0x025) 48 (0x030) Opt No No No No No No No No No No No
DETAIL utf8 variable 1024 (0x400) No No No No No No No No No Opt No No
GAMEDATA_ID utf8 ? 32 (0x020) ? ? ? ? ? ? ? ? ? ? ? ?
ITEM_PRIORITY int32 4 (0x004) No No Yes No No No No No No No No No
LANG int32 4 (0x004) No No No No No No No No No No No Yes
LICENSE utf8 variable 512 (0x200) Yes No Yes No No No No No No No No No
NP_COMMUNICATION_ID utf8 13 (0x00D) 16 (0x010) Opt No No No No No No No No No No No
NPCOMMID utf8 12 (0x00C) 16 (0x010) No No No No No No No No No No No Yes
PADDING utf8-S 0 (0x000) 8 (0x008) No No No No No No No No No No No Yes
PARAMS utf8-S 1024 (0x400) No No No No No No No No No Yes No No
PARAMS2 utf8-S 12 (0x00C) No No No No No No No No No Yes No No
PARENTAL_LEVEL_x int32 4 (0x004) Opt No No No No No No No No No No No
PARENTAL_LEVEL int32 4 (0x004) Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes No
PARENTALLEVEL int32 4 (0x004) No Yes No No No No No No No No No Yes
PATCH_FILE utf8 ? 32 (0x020) ? ? ? ? ? ? ? ? ? ? ? ?
PS3_SYSTEM_VER utf8 8 (0x008) Yes Yes Yes Yes Yes Yes Yes Opt Yes No No No
REGION_DENY int32 4 (0x004) Opt No No Opt No No No No No No No No
RESOLUTION int32 4 (0x004) Yes Yes Yes No Yes Yes No No No No No No
SAVEDATA_DETAIL utf8 variable 1024 (0x400) No No No No No No No No No No Yes No
SAVEDATA_DIRECTORY utf8 variable 64 (0x040) No No No No No No No No No Yes Yes No
SAVEDATA_FILE_LIST utf8-S 3168 (0xC60) No No No No No No No No No No Yes No
SAVEDATA_LIST_PARAM utf8 variable 8 (0x008) No No No No No No No No No Yes No No
SAVEDATA_PARAMS utf8-S 128 (0x080) No No No No No No No No No No Yes No
SAVEDATA_TITLE utf8 variable 128 (0x080) No No No No No No No No No No Yes No
SOUND_FORMAT int32 4 (0x004) Yes Yes Yes No Yes Yes No No No No No No
SOURCE int32 4 (0x004) No No No No No No No No No No No Yes
SUB_TITLE utf8 variable 128 (0x080) No No No No No No No No No Opt No No
TARGET_APP_VER utf8 6 (0x006) 8 (0x008) No No No No No No No Opt No No No No
TITLE utf8 variable 128 (0x080) Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No
TITLE_ID utf8 10 (0x00A) 16 (0x010) Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No
TITLE_xx utf8 variable 128 (0x080) Opt No Yes No No No No No No No No No
TITLEID0xx utf8 9 (0x009) 16 (0x010) No No No No No No No No No No No Yes
VERSION utf8 6 (0x006) 8 (0x008) Yes Yes Yes No Yes Yes Yes Yes Yes No No Yes
XMB_APPS int32 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 Game column, in firmware 4.30 was moved to PlayStation Network 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

Parameters Descriptions[edit | edit source]

ACCOUNT_ID[edit | edit source]

Info
param_fmt: utf8-S
param_max_len: 0x10 (16 bytes)
param_len: 0x10 (16 bytes)
Tip
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.

When the user/console has not been registered in PSN = 0000000000000000

When the savedata ownership has been removed (by official DEX feature "fake save data owner") = FFFFFFFFFFFFFFFF

ACCOUNTID (for trophies)[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x10 (16 bytes)
param_len: 0x10 (16 bytes)
Tip
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).

ANALOG_MODE[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: PS1 Game
Hexadecimal
(little endian)
Hexadecimal
(big endian)
Decimal Binary
(flags)
Feature
(notes)
01 00 00 00 00 00 00 01 1 00000000 00000000 00000000 00000001 Analog Mode Enabled
  • Analog Mode Enabled

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

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)

APP_VER[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x8 (8 bytes)
param_len: 0x6 (6 bytes)
Tip
Used by: HDD Game, Minis Game, PSP Remasters Game, Game Data


Application version (or patch version). Not used in old games.

The format is XX.YY where "XX" and "YY" are numbers, and the point "." is included in the string, e.g: 01.00 for the first stable version released.

  • Cummulative Patches

Game patches uses a bigger APP_VER as 01.01 for the first patch, but keeping the same TITLE_ID from the original release.

ATTRIBUTE[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: HDD Game, PS1 Game, Minis Game, PSP Remasters Game, PCEngine game, NEOGEO game, Game Data, Save Data

Contains a maximun of 32 flags that can be turned on/off to activate/deactivate special boot modes and features of the content.

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 "Binary".

ATTRIBUTE flags
for bootable content
Hexadecimal Decimal Binary
(flags)
Feature
little endian big endian for bootable content
01 00 00 00 00 00 00 01 1 00000000 00000000 00000000 00000001 PSP Remote Play (v1)
02 00 00 00 00 00 00 02 2 00000000 00000000 00000000 00000010 PSP Export
04 00 00 00 00 00 00 04 4 00000000 00000000 00000000 00000100 PSP Remote Play (v2) requires: PSP Remote Play (v1)
08 00 00 00 00 00 00 08 8 00000000 00000000 00000000 00001000 XMB In-Game Forced Enabled
10 00 00 00 00 00 00 10 16 00000000 00000000 00000000 00010000 XMB In-Game Disabled
20 00 00 00 00 00 00 20 32 00000000 00000000 00000000 00100000 XMB In-Game Background Music
40 00 00 00 00 00 00 40 64 00000000 00000000 00000000 01000000 System Voice Chat ? (See notes below)
80 00 00 00 00 00 00 80 128 00000000 00000000 00000000 10000000 PSvita Remote Play
00 01 00 00 00 00 01 00 256 00000000 00000000 00000001 00000000 Move Controller Warning
00 02 00 00 00 00 02 00 512 00000000 00000000 00000010 00000000 Navigation Controller Warning requires: Move Controller Warning
00 04 00 00 00 00 04 00 1024 00000000 00000000 00000100 00000000 PlayStation Eye Cam Warning requires: Move Controller Warning
00 08 00 00 00 00 08 00 2048 00000000 00000000 00001000 00000000 Move Calibration Notification
00 10 00 00 00 00 10 00 4096 00000000 00000000 00010000 00000000 Stereoscopic 3D Warning
00 20 00 00 00 00 20 00 8192 00000000 00000000 00100000 00000000 Used by PlayStation Now Beta (a notification screen ?)
00 40 00 00 00 00 40 00 16384 00000000 00000000 01000000 00000000 Not Used Yet
00 80 00 00 00 00 80 00 32768 00000000 00000000 10000000 00000000 Not Used Yet
00 00 01 00 00 01 00 00 65536 00000000 00000001 00000000 00000000 Install Disc
00 00 02 00 00 02 00 00 131072 00000000 00000010 00000000 00000000 Install Packages
00 00 04 00 00 04 00 00 262144 00000000 00000100 00000000 00000000 Unknown !!!
00 00 08 00 00 08 00 00 524288 00000000 00001000 00000000 00000000 Game Purchase Enabled
00 00 10 00 00 10 00 00 1048576 00000000 00010000 00000000 00000000 License related ? (See notes below)
00 00 20 00 00 20 00 00 2097152 00000000 00100000 00000000 00000000 PCEngine (X0)
00 00 40 00 00 40 00 00 4194304 00000000 01000000 00000000 00000000 License Logo Disabled
00 00 80 00 00 80 00 00 8388608 00000000 10000000 00000000 00000000 Move Controller Enabled
00 00 00 01 01 00 00 00 16777216 00000001 00000000 00000000 00000000 Reserved (X1) requires: PCEngine ?
00 00 00 02 02 00 00 00 33554432 00000010 00000000 00000000 00000000 Reserved (X2) requires: PCEngine ?
00 00 00 03 03 00 00 00 50331648 00000011 00000000 00000000 00000000 Reserved (X3) requires: PCEngine ?
00 00 00 04 04 00 00 00 67108864 00000100 00000000 00000000 00000000 NeoGeo (X4) requires: PCEngine
00 00 00 05 05 00 00 00 83886080 00000101 00000000 00000000 00000000 Reserved (X5) requires: PCEngine ?
00 00 00 06 06 00 00 00 100663296 00000110 00000000 00000000 00000000 Reserved (X6) requires: PCEngine ?
00 00 00 07 07 00 00 00 117440512 00000111 00000000 00000000 00000000 Reserved (X7) requires: PCEngine ?
00 00 00 08 08 00 00 00 134217728 00001000 00000000 00000000 00000000 Not Used Yet
00 00 00 10 10 00 00 00 268435456 00010000 00000000 00000000 00000000 Not Used Yet
00 00 00 20 20 00 00 00 536870912 00100000 00000000 00000000 00000000 Not Used Yet
00 00 00 40 40 00 00 00 1073741824 01000000 00000000 00000000 00000000 Not Used Yet
00 00 00 80 80 00 00 00 2147483648 10000000 00000000 00000000 00000000 Not Used Yet
ATTRIBUTE flags
for non bootable content
Feature
for Save Data for Disc Subfolders for Patches
Copy Protected Subfolder Enabled Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Unknown !!!
Not Used Yet Not Used Yet Unknown !!!
Not Used Yet Not Used Yet param_key: RESOLUTION, SOUND_FORMAT, and ATTRIBUTE flag: Remote Play
Not Used Yet Not Used Yet Unknown !!!
Not Used Yet Not Used Yet ATTRIBUTE flag: XMB In-Game
Not Used Yet Not Used Yet ATTRIBUTE flag: Move Controller warning
Not Used Yet Not Used Yet ATTRIBUTE flag: Stereoscopic 3D warning
Not Used Yet Not Used Yet ATTRIBUTE flag: Move Controller Enabled
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet
Not Used Yet Not Used Yet Not Used Yet

ATTRIBUTE flags for bootable content (1st byte) The flags stored at 1st byte seems to be related with firmware features

Portables
 · PSP Remote Play v1 (firmware v1.10)
 · PSP Remote Play v2 (firmware v1.80)
 · PSVita Remote Play (firmware v4.00)
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
 · PSP Export (firmware v1.70)
Used in PS1 Classics, PSP Minis, and PSP Games. Allows the copy of the game to a PSP by pressing Dualshock triangle button over the game icon and selecting the option [Copy] 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)
XMB In-Game (short Dualshock PS button press)
 · XMB In-Game Forced Enable (firmware v2.40)
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 Modes.
 · XMB In-Game Disabled (firmware v2.40)
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 Modes.
 · XMB In-Game Background Music (firmware v2.40)
When enabled allows to play your own music from the files stored in your HDD by using the icon that appears in XMB 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
 · System Voice Chat ?
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 (2nd byte) The flags stored at 2nd byte seems to be related with warning and notification screens

Move
 · Move Controller Warning (firmware v3.40)
 · Navigation Controller Warning (firmware v3.40)
 · PlayStation Eye Cam Warning (firmware v3.40)
This warning screens are composed by several animated images loaded from dev_flash/vsh/resource/game_ext_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.
 · Move Calibration Notification (firmware v3.40)
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).
 · Stereoscopic 3D Warning (implemented in firmware v3.40)
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 (3rd byte) The flags stored at 3rd byte seems to be related with game & software features

Discs
 · Install Disc
Disables the main/primary icon of the disc PS3 Blu-ray Disc (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.
 · Install Packages
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 PS3 Blu-ray Disc enables the secondary SFO in path dev_bdvd/PS3_GAME/PKGDIR/PARAM.SFO displayed as a bubble inside a disc PS3 Blu-ray Disc (installable contents)), the secondary SFO and the contents of this subfolder are mounted by XMB under the main disc icon in Game column. See BluRay Disc Structure
 · Game Purchase Enabled
Enables the [purchase] option that appears in side menu when pressing Dualshock triangle button over the icon in XMB. Is directly related with 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".
 · flag 1048576 (decimal) (firmware <4.00?)
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 [About this Game] option that appears in side menu when pressing Dualshock triangle button over the icon in XMB. This flag is used in combination with the parameter BOOTABLE = 2 to make the software boot in a special mode
 · PCEngine (firmware <3.41?)
 · License Logo Disabled (firmware <3.41?)
Disables the [About this Game] option that appears in side menu when pressing Dualshock triangle button over the icon in XMB. This flag also removes the needed of storing a 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)
 · Move Controller Enabled (firmware v3.40)

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 (4th byte)

 · NeoGeo (firmware <3.41?)

ATTRIBUTE flags for savedata (1st byte)

 · Copy Protected

Disables the [Copy] option that appears in side menu when pressing Dualshock triangle button 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 (1st byte)

 · Subfolder Activated
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.

ATTRIBUTE flags for patches (3rd byte)

 · 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 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
  • 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 Discussion page.

BOOTABLE[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: HDD Game, PS1 Game, Minis Game, PSP Remasters Game

Specifyes if the content is bootable or not, and the boot mode.

Hexadecimal Decimal Binary
(flags)
Feature
little endian big endian
00 00 00 00 00 00 00 00 0 00000000 00000000 00000000 00000000 Not Bootable
01 00 00 00 00 00 00 01 1 00000000 00000000 00000000 00000001 Bootable (mode 1)
02 00 00 00 00 00 00 02 2 00000000 00000000 00000000 00000010 Bootable (mode 2)

Not Bootable

  • 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)

Bootable (mode 1)

  • 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)

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

CATEGORY[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x4 (4 bytes)
param_len: 0x3 (3 bytes)
Tip
Used by: All but Trophy

The next tables represents the columns where the content is placed in the XMB and the CATEGORY asociated.

PS3 Disc Game Structure
Disc Path XMB
icon
SFB/SFO/SFX Mandatory Parameters Since Enabled by
APP_VER ATTRIBUTE BOOTABLE CATEGORY TITLE TITLE_ID
dev_bdvd/ PS3_DISC.SFB Yes 1.00 Enables others with HYBRID_FLAG
PS3_GAME/ PARAM.SFO PS3 Blu-ray Disc Opt Opt Opt Game DG Yes Yes 1.00 HYBRID_FLAG (g) in PS3_DISC.FSB
USRDIR/ EBOOT.BIN 1.00 BOOTABLE (1) in parent PARAM.SFO
INSDIR/ PARAM.SFO No? Yes No No Game AR No No ? HYBRID_FLAG (g) in PS3_DISC.FSB ?
DATA000.PKG (up to 999) ?
PKGDIR/ PARAM.SFO PS3 Blu-ray Disc (installable contents) No Yes No Game DP Yes Yes 1.00 ? ATTRIBUTE (131072) in parent PARAM.SFO
PKG01/
(up to 99)
PARAM.SFO Preinstall Package No No No Game IP Yes Yes 1.00 ? ATTRIBUTE (1) in parent PARAM.SFO
INSTALL.PKG 1.00 ?
LICDIR/ LIC.DAT 1.00
TROPDIR/ <NPCOMMID>/ TROPHY.TRP 2.40
PS3_GM01/
(up to 99?)
PARAM.SFO PS3 Blu-ray Disc Opt Opt Opt Game DG Yes Yes 4.00+ ? HYBRID_FLAG (g) in PS3_DISC.FSB
USRDIR/ EBOOT.BIN 4.00+ ? BOOTABLE (1) in parent PARAM.SFO
LICDIR/ LIC.DAT 4.00+ ? dev_bdvd/PS3_GAME/LICDIR/LIC.DAT
PS3_CONTENT/ THEMEDIR/ PARAM.SFO PS3 Blu-ray Disc (installable contents) No Yes No Game TR Yes No ? 2.00+ HYBRID_FLAG (T) in PS3_DISC.FSB
D001/ DATA001.P3T
(up to 999)
Preinstall Package 2.00+ ATTRIBUTE (1) in parent PARAM.SFO
VIDEODIR/ PARAM.SFO PS3 Blu-ray Disc (video contents) No Yes No Video VR Yes No ? ? HYBRID_FLAG (V) in PS3_DISC.FSB
D001/
(up to 999)
PARAM.SFO ? No No No Video VI Yes No ? ATTRIBUTE (1) in parent PARAM.SFO
DATA000.MP4 ?
PS3_EXTRA/ PARAM.SFO PS3 Blu-ray Disc No Yes No Game XR Yes Yes 3.41- HYBRID_FLAG (g) in PS3_DISC.FSB ?
D001/
(up to 999)
PARAM.SFX Package Content No No No Game IP Yes No 3.41- ATTRIBUTE (1) in parent PARAM.SFO
DATA000.PKG 3.41-
D002/
(up to 999)
PARAM.SFX Theme Content No No No Game TI Yes No 3.41- ATTRIBUTE (1) in parent PARAM.SFO
DATA000.P3T 3.41-
D003/
(up to 999)
PARAM.SFX Video Content No No No Game VI Yes No 3.41- ATTRIBUTE (1) in parent PARAM.SFO
DATA000.MP4 3.41-
PS3_VPRM/ PARAM.SFO PS3 Blu-ray Disc (video contents) No No No Video DM No No ? HYBRID_FLAG (v) in PS3_DISC.FSB
PS3_UPDATE/ PS3UPDAT.PUP 1.00 ? HYBRID_FLAG (u) in PS3_DISC.FSB
PS3 HDD Game Structure
HDD Path CATEGORY Since Generated by Description and Examples
Photo Music Video TV/Video Services Game Network PlayStation Network Name
dev_hdd0/ game/ <TITLE_ID>/ PARAM.SFO AP App Photo 1.00 Install Package PS3 icon PlayMemories
AM App Music 1.00 Install Package PS3 icon Qriocity Music Unlimited
AV App Video 1.00 Install Package PS3 icon Netflix, LoveFilm, Maxdome
BV Broadcast Video ? Install Package PS3 icon
AT App TV 1.00 ? Install Package PS3 icon QOOK TV, Now TV, Torne (TV/Video Services Column hidden when no installed content)
WT Web TV ? 3.70 Install Package PS3 icon Animaxtv, 4oD etc...starts Web Browser from LINK.XML with corresponding online page
HG HDD Game 1.00 Install Package PS3 icon Combined with ATTRIBUTE generates "subcategories" e.g:PCEngine icon and NeoGeo icon
CB CELL BE ? Install Package PS3 icon Life with PlayStation, Folding@home
AS App Store ? 4.46+ ? Install Package PS3 icon PlayStation Now
HM Home Install Package PS3 icon PlayStation Home
-- -- SF Store Frontend ? Install Package PS3 icon PlayStation Store
2G PS2 Game 1.31 PS2 DVD (Digital Versatile Disc) PS2 icon PS2 Discs installed in internal HDD, only in "backward compatible" PS3's. See: Emulation
2P PS2 PSN 3.70 Install Package PS2 icon "PS2 Classics". Re-edited PS2 games released as a .pkg in "PlayStation Store"
1P PS1 PSN 1.70 Install Package PS1 icon "PS1 Classics". Re-edited PS1 games released as a .pkg in "PlayStation Store"
MN PSP Minis 3.15 Install Package PSP Minis icon "PSP Minis". Format inherited from PSP
PE PSP Emulator 3.70 Install Package PSP Remaster icon "PSP Remasters". Re-edited PSP games released as a .pkg in a "Install Disc"
PP PSP Install Package PSP icon Not bootable, but can be copyed to a PSP or PS VITA (? as option suggest it on XMB)
GD Game Data 1.00 Install Package PS3 Blu-ray Disc PS3 icon PS3 disc installs, Game updates, Game DLC, Game common user data (e.g: GT5)
2D PS2 Data 1.31 Install Package PS2 DVD (Digital Versatile Disc) PS2 icon PS2 Emulator Data, DLC for PS2 Disc games (related with CATEGORY 2G). See: Emulation
PARAM.HIS Used with CATEGORY: HG, and others ? Install Package PS3 icon Updates/Changelog history
LINK.XML Used with CATEGORY: WT, and others ? Install Package PS3 icon URL link
USRDIR/ EBOOT.BIN Used with CATEGORY: All except 2G and 2D 1.00 Install Package PS3 icon Main executable
IMAGE.DAT Used with CATEGORY: 2G and 2D 1.31 PS2 DVD (Digital Versatile Disc) PS2 icon PS2 Virtual HDD
C00/ PARAM.SFO HG HDD Game Install Package PS3 icon Demo
L00/ (up to 05) PARAM.SFO HG HDD Game Install Package PS3 icon Restricted content based in License Area Number
DRMDIR/ PKG_DIGEST.DAT Used with CATEGORY: AV, and others ? 2.80 Install Package PS3 icon Installation folder security hashes
HTMLDIR/ ? Used with CATEGORY: AT, and others ? Install Package PS3 icon Example: Torne
SHOPDIR/ ? ? Unknown, used in NPJA90001
MANUAL/ 001.DDS (up to 999) Used with CATEGORY: HG, and others ? 4.21 Install Package PS3 icon Game/app manuals made with pictures
home/ <USER_ID>/ savedata/ <SAVEDATA_DIRECTORY>/ PARAM.SFO SD Save Data 1.00 Game PS3 icon See: Game Saves - PS3
PARAM.PFD 1.00 System (security)
minis_savedata/ <SAVEDATA_DIRECTORY>/ PARAM.SFO MS Memory Stick ? 3.15 Game PSP Minis icon See: Game Saves - Minis
MS Memory Stick ? Game PSP Remaster icon See: Game Saves - PSP Remaster
trophy/ _TROPSYS_/ TROPSYS.DAT 2.40 System (trophy index)
PARAM.PFD 2.40 System (security)
<NPCOMMID>/ PARAM.SFO Doesnt uses CATEGORY 2.40 Game PS3 icon By syncing psn account online can also display trophies from PSvita icon and PS4 icon
PARAM.PFD 2.40 System (security)
psp2_backup/ etc... 4.00 Transfer ? PSvita contents. Not bootable, import/export to PSvita. See folder/file tree
  • Notes
    • PS1 Game Saves and 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

CONTENT_ID[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x30 (48 bytes)
param_len: 0x25 (37 bytes)
Tip
Used by: HDD Game

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.

The format is: XXYYYY-NP_COMMUNICATION_ID-LICENSE_ID where:

  • XX is ?
  • YYYY is ?
  • - is a separator character (mandatory)
  • NP_COMMUNICATION_ID is explained in NP_COMMUNICATION_ID
  • - is a separator character (mandatory)
  • LICENSE_ID is ?

This games has a minimal folder structure with two PARAM.SFO like this:

NPxx12345
|--- PARAM.SFO <--- ATTRIBUTE (00000800), CATEGORY (HG), TITLE (GAME Trial) ... & others
|--- USRDIR
|    |--- EBOOT.BIN
|--- C00
     |--- PARAM.SFO <--- ATTRIBUTE (00000800), CATEGORY (HG), TITLE (GAME Full) ... & others

DETAIL[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x400 (1024 bytes)
param_len: variable
Tip
Used by: Save Data

Text lines displayed under SUBTITLE text. Used only for SaveData to store long texts from the game like the name of the level you was playing, the equipment of your character (in a RPG), or the car you was driving (in a race simulator), etc...

When the text is too long to fit in the screen it scrolls vertically from bottom to top, if the Data_Used_Size is not correct this scroll doesn't flow properly.

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)[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x400 (1024 bytes)
param_len: variable
Tip
Used by: Minis Save Data

Used to store texts generated by the game, the format s the same than DETAIL

GAMEDATA_ID[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x20 (32 bytes)
param_len: variable
Tip
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[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: HDD Game, PS2 Game (probably others)

Used to order the contents vertically in XMB columns, contents with any value of ITEM_PRIORITY are displayed at top of XMB column, and after them all the other contents without ITEM_PRIORITY

Contents with bigger values in ITEM_PRIORITY are placed at top of the list, the scale is from 0x00000000 (at bottom) up to 0xFFFFFFFF (at top)

LANG[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: Trophy

Language used when the "trophy config file" TROPCONF.SFM was installed.

PlayStation Languages
Code Name Support
2-digits 2-letters Localised English PS1 PS2 PSP PS3 PSV PS4 PS5
00 ja 日本語 Japanese ALL ALL 1.00 1.00 1.00 1.00 1.00
01 en English (United States) English (United States)
02 fr Français French No 1.50
03 es Español (España) Spanish (Spain)
04 de Deutsch German
05 it Italiano Italian
06 nl Nederlands Dutch
07 pt Português (Portugal) Portuguese (Portugal)
08 ru Русский Russian EXT
09 ko 한국어 Korean 2.00 1.50
10 ch 繁體中文 Chinese (Traditional) 2.70 1.60
11 zh 简体中文 Chinese (Simplified)
12 fi Suomi Finnish No No
13 sv Svenska Swedish
14 da Dansk Danish
15 no Norsk Norwegian
16 pl Polski Polish 3.10
17 br Português (Brasil) Portuguese (Brazil) 4.00
18 gb English (United Kingdom) English (United Kingdom)
19 tr Türkçe Turkish 4.30 2.00
20 la Español (América Latina) Spanish (Latin America) No No
21 ar العربية Arabic 2.00
22 ca Français (Canada) French (Canada) 2.50
23 cs Čeština Czech 5.00
24 hu Magyar Hungarian
25 el Ελληνικά Greek
26 ro Română Romanian
27 th ไทย Thai
28 vi Tiếng Việt Vietnamese
29 in Indonesia Indonesian
30 uk Українська Ukrainian 9.50 3.00


LICENSE[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x200 (512 bytes)
param_len: variable
Tip
Used by: HDD Game

License text of the content, hidden by the system in actual firmwares

NP_COMMUNICATION_ID[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x10 (16 bytes)
param_len: 0xD (13 bytes)
Tip
Used by: HDD Game

Network Platform Communication ID. Also is the name of the folder containing the trophy installer: TROPHY.TRP

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

NPCOMMID (for trophies)[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x10 (16 bytes)
param_len: 0xC (12 bytes)
Tip
Used by: Trophy

Same than NP_COMMUNICATION_ID but with a param_len of 12 bytes

PADDING[edit | edit source]

Info
param_fmt: utf8-S
param_max_len: 0x8 (8 bytes)
param_len: 0x0 (0 bytes)
Tip
Used by: Trophy

Unknown

PARAMS[edit | edit source]

Info
param_fmt: utf8-S
param_max_len: 0x400 (1024 bytes)
param_len: 0x400 (1024 bytes)
Tip
Used by: PS3 Save Data
  • Intended to store:
    • Counters (number of times the .SFO was updated, etc...)
    • User/console ID's
    • Some more unknown and reserved areas. See Discussion page
Usage Offset length Example Description Notes
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
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
0x04 1 (0x1) 03 SFO Updates counter slot nº Position of the "number of times the SFO was updated". Values found: 2,3
0x05 3 (0x3) zero filled Reserved Not used yet
counters 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
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)
0x10 4 (0x4) CF130000 Counter slot 3 In most old games not used
In most new games used as a SFO Updates counter (so the previous counter is available to store other data)
0x14 4 (0x4) 01000000 Counter slot 4 ? values found: always 1
ID's 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
0x2C 4 (0x4) 01000000 User ID Local User identifier (same name used to store the user files in dev_hdd0/home/<User ID>)
0x30 16 (0x10) 0123456789ABCDEF0123456789ABCDEF ACCOUNT_ID Network User identifier (PSN account)
0x40 960 (0x3C0) zero filled Reserved Not used yet
  • 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
    • 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[edit | edit source]

Info
param_fmt: utf8-S
param_max_len: 0xC (12 bytes)
param_len: 0xC (12 bytes)
Tip
Used by: Save Data

Unknown, usually filled with zeroes

PARENTAL_LEVEL[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
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: PEGI, ESRB, 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.
Hexadecimal
(little endian)
Hexadecimal
(big endian)
Decimal Rating
00 00 00 00 00 00 00 00 0 Disabled
01 00 00 00 00 00 00 01 1 Lower restriction
02 00 00 00 00 00 00 02 2
03 00 00 00 00 00 00 03 3
04 00 00 00 00 00 00 04 4
05 00 00 00 00 00 00 05 5
06 00 00 00 00 00 00 06 6
07 00 00 00 00 00 00 07 7
08 00 00 00 00 00 00 08 8
09 00 00 00 00 00 00 09 9
0A 00 00 00 00 00 00 0A 10
0B 00 00 00 00 00 00 0B 11 Higher restriction

PARENTAL_LEVEL_x (by license area)[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: HDD Game

Used to restrict the content to a specific License Area. See Regions

The "x" at the end of the name PARENTAL_LEVEL_x defines the License Area wich is one of this list.

parameter License Area Name License Area Number Regions
PARENTAL_LEVEL_A SCEA 01 US, Canada (North America), Mexico, Central America, South America
PARENTAL_LEVEL_C SCH 05 China
PARENTAL_LEVEL_E SCEE 02 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_J SCEJ 00 Japan
PARENTAL_LEVEL_K SCEK 04 Korea (South Korea)
  • All this parameters are used in group, ordered alphabetically, 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
---example string---
00000000 05000000 0A000000 01000000 FFFFFFFF 06000000 0B000000
---example explain---
PARENTAL_LEVEL = 00000000 (disabled)
PARENTAL_LEVEL_A = 05000000 (level 5)
PARENTAL_LEVEL_C = 0A000000 (level 10)
PARENTAL_LEVEL_E = 01000000 (level 1)
PARENTAL_LEVEL_H = FFFFFFFF (disabled)
PARENTAL_LEVEL_J = 06000000 (level 6)
PARENTAL_LEVEL_K = 0B000000 (level 11)

PARENTALLEVEL (for trophies and PS1 games)[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: PS1 Game, Trophy

Same than PARENTAL_LEVEL

PATCH_FILE[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x20 (32 bytes)
param_len: variable
Tip
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[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x8 (8 bytes)
param_len: 0x8 (8 bytes)
Tip
Used by: HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data

Minimum PS3 System Software required for the content to be bootable.

The format is XX.YYYY where "XX" and "YYYY" are numbers, and the point "." is included in the string, e.g: 03.4100.

REGION_DENY[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: HDD Game
Region checks

Region 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.

Hexadecimal
(little endian)
Hexadecimal
(big endian)
Binary
(flags)
Region Nº Target Territory Notes
FE FF FF FF FF FF FF FE 11111111 11111111 11111111 11111110 0 Japan
FD FF FF FF FF FF FF FD 11111111 11111111 11111111 11111101 1 US, Canada (North America) Used in Netflix
FB FF FF FF FF FF FF FB 11111111 11111111 11111111 11111011 2 Europe / Middle East / Africa
F7 FF FF FF FF FF FF F7 11111111 11111111 11111111 11110111 3 Korea (South Korea)
EF FF FF FF FF FF FF EF 11111111 11111111 11111111 11101111 4 U.K. / Ireland
DF FF FF FF FF FF FF DF 11111111 11111111 11111111 11011111 5 Mexico, Central America, South America
BF FF FF FF FF FF FF BF 11111111 11111111 11111111 10111111 6 Australia / New Zealand (Oceania)
7F FF FF FF FF FF FF 7F 11111111 11111111 11111111 01111111 7 Singapore / Malaysia (Southeast Asia)
FF FE FF FF FF FF FE FF 11111111 11111111 11111110 11111111 8 Taiwan
FF FD FF FF FF FF FD FF 11111111 11111111 11111101 11111111 9 Russia, Ukraine, India, Central Asia
FF FB FF FF FF FF FB FF 11111111 11111111 11111011 11111111 10 China
FF F7 FF FF FF FF F7 FF 11111111 11111111 11110111 11111111 11 Hong Kong
Examples
01 F0 FF FF FF FF F0 01 11111111 11111111 11110000 00000001 From 1 to 11 [Photo] of a PS3 DEX with Allowed Region=1-11 (region 0 not allowed)

RESOLUTION[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: HDD Game, PS1 Classics Game, Minis Game, PSP Remasters Game

TV video modes supported by the content.

When there are several flags activated the PS3 will use the one with higher quality supported by the TV.

Hexadecimal
(little endian)
Hexadecimal
(big endian)
Decimal Binary
(flags)
Feature
(notes)
01 00 00 00 00 00 00 01 1 00000000 00000000 00000000 00000001 480 (4:3)
02 00 00 00 00 00 00 02 2 00000000 00000000 00000000 00000010 576 (4:3)
04 00 00 00 00 00 00 04 4 00000000 00000000 00000000 00000100 720 (16:9)
08 00 00 00 00 00 00 08 8 00000000 00000000 00000000 00001000 1080 (16:9)
10 00 00 00 00 00 00 10 16 00000000 00000000 00000000 00010000 480 (16:9)
20 00 00 00 00 00 00 20 32 00000000 00000000 00000000 00100000 576 (16:9)
Examples
3F 00 00 00 00 00 00 3F 63 00000000 00000000 00000000 00111111 All video modes supported
  • 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
    • Note the resolution for original PS1 disc games can vary (See: Emulation Resolution). The RESOLUTION flags used in PARAM.SFO's of "PS1 Classics Game" from PSN seems to be specific and not fixed sizes (e.g: 01 00 00 00). This will need another table if more are found
  • 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). 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

SAVEDATA_DIRECTORY[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x40 (64 bytes)
param_len: variable
Tip
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:

  • TITLE_ID Identifier of the content. Explained in TITLE_ID.
  • xxxxx Are texts (with variable length) to difference all the SaveDatas generated from the same game by the same user.

SAVEDATA_FILE_LIST[edit | edit source]

Info
param_fmt: utf8-S
param_max_len: 0xC60 (3168 bytes)
param_len: 0xC60 (3168 bytes)
Tip
Used by: Minis Save Data

Contains a list with an space reserved for 99 entries, each entry 32 bytes long, for a total size of 3168 bytes (99 * 32 = 3168)

Entries refer to other files from the folder, example of one entry:

0x0550  53 45 43 55  52 45 2E 42  49 4E 00 00  00 72 93 A5 | SECURE.BIN...... |
0x0560  8B 8A D4 FA  8E B8 2B 3F  A6 61 BC ED  A6 00 00 00 | .z....+?.a...... |
53 45 43 55  52 45 2E 42  49 4E <------------------------ file name
72 93 A5 8B  8A D4 FA 8E  B8 2B 3F A6  61 BC ED A6 <----- file hash ??? (changes when the file is updated)

SAVEDATA_LIST_PARAM[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x8 (8 bytes)
param_len: variable
Tip
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)

This area is available for the game to store "any" data, the purposes of this data is to avoid tampering with the files generated by the game, the usage of this area is optional for the game developers and can be considered a more deep security layer under the PARAM.PFD layer

Because the data is generated and recovered by the game, its type or usage can be different for each game, the next table contains some valid examples found:

TITLE_ID Title SAVEDATA_LIST_PARAM Notes
Example Method
BCAS20108, BCES00569, BCUS98114 Gran turismo 5 GAMEDAT Copypasted ?
BLES01739, BLJS10228, BLUS31052 Dead Island Riptide IIBJFMO, ALFJASP, HMDASLM, PTRONAS Copypasted + scrambled ?
BLES00153, BLES00171, BLES00172, BLUS30055 The Orange Box 141312 Folder Size in sectors See the example in Discussion page
BCES01007 Killzone 3 CONFIG Copypasted ?
BLES00776 Venetica 3-47755 ?
BLES00839 Prince of Persia, forgotten sands 1ACBKM3, 1ACBKM6 ?
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[edit | edit source]

Info
param_fmt: utf8-S
param_max_len: 0x80 (128 bytes)
param_len: 0x80 (128 bytes)
Tip
Used by: Minis Save Data

Example

Offset length Example Description Notes
0x11B0 16 (0x10) 41000000000000000000000000000000 Unknown allways the same value found ("A" in utf8)
0x11C0 16 (0x10) FEDCBA9876543210FEDCBA9876543210 Unknown changes when the savedata is updated
0x11D0 16 (0x10) 0123456789ABCDEF0123456789ABCDEF Unknown changes when the savedata is updated
0x11E0 16 (0x10) 00000000000000000000000000000000 Unknown allways the same value found (blank)
0x11F0 16 (0x10) 00000000000000000000000000000000 Unknown allways the same value found (blank)
0x1200 16 (0x10) 00000000000000000000000000000000 Unknown allways the same value found (blank)
0x1210 16 (0x10) 00000000000000000000000000000000 Unknown allways the same value found (blank)
0x1220 16 (0x10) ABCDEF0123456789ABCDEF0123456789 Unknown changes when the savedata is updated

SOUND_FORMAT[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: HDD Game, PS1 Game, Minis Game, PSP Remasters Game

Sound modes supported by the content.

Hexadecimal
(little endian)
Hexadecimal
(big endian)
Decimal Binary
(flags)
Feature
(notes)
Flag Nº
(flag required)
01 00 00 00 00 00 00 01 1 00000000 00000000 00000000 00000001 [LPCM] 2.0 01
02 00 00 00 00 00 00 02 2 00000000 00000000 00000000 00000010 02
04 00 00 00 00 00 00 04 4 00000000 00000000 00000000 00000100 [LPCM] 5.1 03
10 00 00 00 00 00 00 10 16 00000000 00000000 00000000 00010000 [LPCM] 7.1 05
00 01 00 00 00 00 01 00 256 00000000 00000000 00000001 00000000 [Dolby Digital] 5.1 09 (02)
00 02 00 00 00 00 02 00 512 00000000 00000000 00000010 00000000 [Digital Theater Systems (DTS)] 5.1 10 (02)
Examples
15 00 00 00 00 00 00 15 21 00000000 00000000 00000000 00010101 All LPCM modes 1+3+5
02 01 00 00 00 00 01 02 258 00000000 00000000 00000001 00000010 Only Dolby Digital 5.1 2+9
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
02 02 00 00 00 00 02 02 514 00000000 00000000 00000010 00000010 Only Digital Theater Systems (DTS) 5.1 2+10
17 03 00 00 00 00 03 17 791 00000000 00000000 00000011 00010111 All sound modes 1+2+3+5+9+10
  • 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
  • Other SOUND_FORMAT values availables in non retail (Debug, AV/Test, etc...) consoles ?

SOURCE[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: Trophy

Unknown, usually filled with zeroes

SUB_TITLE[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x80 (128 bytes)
param_len: variable
Tip
Used by: Save Data

The line of text displayed under TITLE text, used only in SaveData to store short texts from the game like your player name, your play time, photo used or your rank in the game

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)[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x80 (128 bytes)
param_len: variable
Tip
Used by: Minis Save Data

Subtitle of the Save, the format is the same than SUBTITLE


TARGET_APP_VER[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x8 (8 bytes)
param_len: 0x6 (6 bytes)
Tip
Used by: Game Data

Target application version for incremental patches. Patches containing TARGET_APP_VER can be installed over the game with the same APP_VER.

The format is XX.YY where "XX" and "YY" are numbers, and the point "." is included in the string, e.g: 01.00

TITLE[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x80 (128 bytes)
param_len: variable
Tip
Used by: All but Trophy

Default "title of the game" for all languages. The text is displayed right to the ICON0.PNG.

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)[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x80 (128 bytes)
param_len: variable
Tip
Used by: HDD Game

Same than TITLE but for localized languages.

An .SFO can contain several TITLE_xx where xx is a number for a regional code.

The "default" TITLE is always present when other "localized" TITLE_xx are used.

PlayStation Languages
Code Name Support
2-digits 2-letters Localised English PS1 PS2 PSP PS3 PSV PS4 PS5
00 ja 日本語 Japanese ALL ALL 1.00 1.00 1.00 1.00 1.00
01 en English (United States) English (United States)
02 fr Français French No 1.50
03 es Español (España) Spanish (Spain)
04 de Deutsch German
05 it Italiano Italian
06 nl Nederlands Dutch
07 pt Português (Portugal) Portuguese (Portugal)
08 ru Русский Russian EXT
09 ko 한국어 Korean 2.00 1.50
10 ch 繁體中文 Chinese (Traditional) 2.70 1.60
11 zh 简体中文 Chinese (Simplified)
12 fi Suomi Finnish No No
13 sv Svenska Swedish
14 da Dansk Danish
15 no Norsk Norwegian
16 pl Polski Polish 3.10
17 br Português (Brasil) Portuguese (Brazil) 4.00
18 gb English (United Kingdom) English (United Kingdom)
19 tr Türkçe Turkish 4.30 2.00
20 la Español (América Latina) Spanish (Latin America) No No
21 ar العربية Arabic 2.00
22 ca Français (Canada) French (Canada) 2.50
23 cs Čeština Czech 5.00
24 hu Magyar Hungarian
25 el Ελληνικά Greek
26 ro Română Romanian
27 th ไทย Thai
28 vi Tiếng Việt Vietnamese
29 in Indonesia Indonesian
30 uk Українська Ukrainian 9.50 3.00


TITLE_ID[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x10 (16 bytes)
param_len: 0xA (10 bytes)
Tip
Used by: HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data

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)

TITLE_ID for Physical Media (in format: ABCD12345)
Media
(A)
Rights
(B)
Region
(C)
Type
(D)
??
(12)
License Number
(345)
B=PS3 Bluray
P=PS4 Bluray
S=PS1, PS2, PS3 CD/DVD
U=PSP UMD
V=PSvita Card
X=PS3 Bluray + Extras (PSvita crossbuy)
C=Copyrighted by sony
L=Licensed to sony
A=Asia
C=China
E=Europe
H=Hong Kong
J=Japan
K
=Korea
P=Japan (PS1/PS2)
U=USA
B=Peripheral Software
C=System Firmware
D=Demo
M=Malayan Release
S=Retail release
T=(closed) Betas [Pre-Production Discs] [1]
V=Multi Region PS3 CS disc
X=Install disc? (Demos, Store Videos)
Z=Region locked PS3 CS disc
?? From 001 to 999
(in chronological order)
PE=PS1 and PS2 CS disc for Europe, Australia & Gulf area
PT=PS1 and PS2 CS disc for Japan & Asia
PU=PS1 and PS2 CS disc for USA & Canada

For more detailed info see Template talk:TITLE ID for Physical Media


TITLE_ID for Digital Media (in format: ABCD12345)
Network
Environment

(AB)
Region
(C)
Type
(D)
??
(12)
License Number
(345)
NP=Retail A=Asia
E=Europe
H=Hong Kong
J=Japan
K
=Korea
U=USA

I=Internal ? (Sony)
X=Firmware/SDK Sample
A=First Party PS3 (Demo/Retail)
B=Licensed PS3 (Demo/Retail)
C=First Party PS2 Classic (Demo/Retail)
D=Licensed PS2 Classic (Demo/Retail)
E=Licensed PS1 Classic (PAL) (Demo/Retail)
F=First Party PS1 Classic (PAL) (Demo/Retail)
G=First Party PSP (Demo/Retail)
H=Licensed PSP (Demo/Retail)
I=First Party PS1 Classic (NTSC) (Demo/Retail)
J=Licensed PS1 Classic (NTSC) (Demo/Retail)
K=First Party Game related Content
L=Licensed Game related Content / Video
M=Music
N=Game Soundtracks
O=Other
P=PS3 App
Q=PS3 Theme / Avatar
R=PS3 Theme
S=System
T=?
U=?
V=?
W=First Party PSP Remasters
X=First Party PSP Minis
Y=Third Party PSP Remasters
Z=Third Party PSP minis
?? From 001 to 999
(in chronological order)


  • Other TITLE_ID's. See Discussion page
    • 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)[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x10 (16 bytes)
param_len: 0x9 (9 bytes)
Tip
Used by: Trophy

SFO's for trophies contains a full list of 16 TITLEID0xx for all languages where xx is a number for a language code.

All them can contain data, or only the default TITLEID000. The ones without data are marked with a Data_Used_Size = 0 bytes

The text contained inside default TITLEID000 is the same than TITLE_ID

PlayStation Languages
Code Name Support
2-digits 2-letters Localised English PS1 PS2 PSP PS3 PSV PS4 PS5
00 ja 日本語 Japanese ALL ALL 1.00 1.00 1.00 1.00 1.00
01 en English (United States) English (United States)
02 fr Français French No 1.50
03 es Español (España) Spanish (Spain)
04 de Deutsch German
05 it Italiano Italian
06 nl Nederlands Dutch
07 pt Português (Portugal) Portuguese (Portugal)
08 ru Русский Russian EXT
09 ko 한국어 Korean 2.00 1.50
10 ch 繁體中文 Chinese (Traditional) 2.70 1.60
11 zh 简体中文 Chinese (Simplified)
12 fi Suomi Finnish No No
13 sv Svenska Swedish
14 da Dansk Danish
15 no Norsk Norwegian
16 pl Polski Polish 3.10
17 br Português (Brasil) Portuguese (Brazil) 4.00
18 gb English (United Kingdom) English (United Kingdom)
19 tr Türkçe Turkish 4.30 2.00
20 la Español (América Latina) Spanish (Latin America) No No
21 ar العربية Arabic 2.00
22 ca Français (Canada) French (Canada) 2.50
23 cs Čeština Czech 5.00
24 hu Magyar Hungarian
25 el Ελληνικά Greek
26 ro Română Romanian
27 th ไทย Thai
28 vi Tiếng Việt Vietnamese
29 in Indonesia Indonesian
30 uk Українська Ukrainian 9.50 3.00


VERSION[edit | edit source]

Info
param_fmt: utf8
param_max_len: 0x8 (8 bytes)
param_len: 0x6 (6 bytes)... or 0x3 (3 bytes) when used in trophy
Tip
Used by: HDD Game, PS1 Game, Minis Game, PSP Remasters Game, Game Data, Trophy

Disc revision, or Package revision. The number increases when the content is re-released or re-packaged for whatever reason that doesn't affect the main executable (e.g. when a disc game reaches platinum sales, or "game of the year edition" including extra contents).

When the main executable is updated, the APP_VER increases (this can be done with patches)... but the VERSION of the patch (or the re-released disc) returns to 01.00.

Additionally this gives the possibility to release different versions of the same patch (used when the original patch contains a bug, needs to be replaced, and is not cumulative)

The format is XX.YY where "XX" and "YY" are numbers, and the point "." is included in the string, e.g: 01.00.

  • 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[edit | edit source]

Info
param_fmt: int32
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: Unknown (bootable?)

Found in explore_plugin (checked at: /app_home/PS3_GAME/PARAM.SFO), and XMB databases (accessed as Game:Game.xmbApps)

Hexadecimal Decimal Binary
(flags)
Feature (notes)
little endian big endian
01 00 00 00 00 00 00 01 1 00000000 00000000 00000000 00000001 ?
02 00 00 00 00 00 00 02 2 00000000 00000000 00000000 00000010 ?
04 00 00 00 00 00 00 04 4 00000000 00000000 00000000 00000100 ?
08 00 00 00 00 00 00 08 8 00000000 00000000 00000000 00001000 ?
10 00 00 00 00 00 00 10 16 00000000 00000000 00000000 00010000 ?
20 00 00 00 00 00 00 20 32 00000000 00000000 00000000 00100000 ?
40 00 00 00 00 00 00 40 64 00000000 00000000 00000000 01000000 ?
80 00 00 00 00 00 00 80 128 00000000 00000000 00000000 10000000 ?
Etc...

Examples[edit | edit source]

Blu-Ray disc game structure details[edit | edit source]

PS3 Disc Game Structure
Disc Path XMB
icon
SFB/SFO/SFX Mandatory Parameters Since Enabled by
APP_VER ATTRIBUTE BOOTABLE CATEGORY TITLE TITLE_ID
dev_bdvd/ PS3_DISC.SFB Yes 1.00 Enables others with HYBRID_FLAG
PS3_GAME/ PARAM.SFO PS3 Blu-ray Disc Opt Opt Opt Game DG Yes Yes 1.00 HYBRID_FLAG (g) in PS3_DISC.FSB
USRDIR/ EBOOT.BIN 1.00 BOOTABLE (1) in parent PARAM.SFO
INSDIR/ PARAM.SFO No? Yes No No Game AR No No ? HYBRID_FLAG (g) in PS3_DISC.FSB ?
DATA000.PKG (up to 999) ?
PKGDIR/ PARAM.SFO PS3 Blu-ray Disc (installable contents) No Yes No Game DP Yes Yes 1.00 ? ATTRIBUTE (131072) in parent PARAM.SFO
PKG01/
(up to 99)
PARAM.SFO Preinstall Package No No No Game IP Yes Yes 1.00 ? ATTRIBUTE (1) in parent PARAM.SFO
INSTALL.PKG 1.00 ?
LICDIR/ LIC.DAT 1.00
TROPDIR/ <NPCOMMID>/ TROPHY.TRP 2.40
PS3_GM01/
(up to 99?)
PARAM.SFO PS3 Blu-ray Disc Opt Opt Opt Game DG Yes Yes 4.00+ ? HYBRID_FLAG (g) in PS3_DISC.FSB
USRDIR/ EBOOT.BIN 4.00+ ? BOOTABLE (1) in parent PARAM.SFO
LICDIR/ LIC.DAT 4.00+ ? dev_bdvd/PS3_GAME/LICDIR/LIC.DAT
PS3_CONTENT/ THEMEDIR/ PARAM.SFO PS3 Blu-ray Disc (installable contents) No Yes No Game TR Yes No ? 2.00+ HYBRID_FLAG (T) in PS3_DISC.FSB
D001/ DATA001.P3T
(up to 999)
Preinstall Package 2.00+ ATTRIBUTE (1) in parent PARAM.SFO
VIDEODIR/ PARAM.SFO PS3 Blu-ray Disc (video contents) No Yes No Video VR Yes No ? ? HYBRID_FLAG (V) in PS3_DISC.FSB
D001/
(up to 999)
PARAM.SFO ? No No No Video VI Yes No ? ATTRIBUTE (1) in parent PARAM.SFO
DATA000.MP4 ?
PS3_EXTRA/ PARAM.SFO PS3 Blu-ray Disc No Yes No Game XR Yes Yes 3.41- HYBRID_FLAG (g) in PS3_DISC.FSB ?
D001/
(up to 999)
PARAM.SFX Package Content No No No Game IP Yes No 3.41- ATTRIBUTE (1) in parent PARAM.SFO
DATA000.PKG 3.41-
D002/
(up to 999)
PARAM.SFX Theme Content No No No Game TI Yes No 3.41- ATTRIBUTE (1) in parent PARAM.SFO
DATA000.P3T 3.41-
D003/
(up to 999)
PARAM.SFX Video Content No No No Game VI Yes No 3.41- ATTRIBUTE (1) in parent PARAM.SFO
DATA000.MP4 3.41-
PS3_VPRM/ PARAM.SFO PS3 Blu-ray Disc (video contents) No No No Video DM No No ? HYBRID_FLAG (v) in PS3_DISC.FSB
PS3_UPDATE/ PS3UPDAT.PUP 1.00 ? HYBRID_FLAG (u) in PS3_DISC.FSB
PS3 Blu Ray

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: 1 and 2

Game discs in folder PS3_CONTENT

PS3 Blu Ray video content

PS3 Blu Ray install content

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

PS3 Blu Ray install content

Can be considered an "expansion" of the basic blu-ray structure of a game disc, activated by the flag 00000200 in the 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 ([big squares of 486x405 pixels]). see: 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 PKGDIR (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 PS3 Blu-ray Disc 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 ---> [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 Discussion page

Tips & Tricks[edit | edit source]

This section is to add more extended explains about features that cant been easily clasifyed inside other sections

Replacing a PARAM.SFO manually[edit | edit source]

When replacing a PARAM.SFO manually in the internall HDD (using a file manager, FTP, etc...) the system ignores it. This happens because the system is storing a "duplicated" copy of the old one.

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 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)

Creating a frankenstein PARAM.SFO[edit | edit source]

PS3 Blu Ray "corrupted data"

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)

  • 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 adding "non-standard" param_key's to a SFO for an specific type of content (that only admits a few ones) the SFO is loaded without problems but firmware ignores them because are "not-expected" (e.g. when adding SUB_TITLE to a SFO for category "HG").
  • The minimal structure tested (and working) for a homebrew can be copied/downloaded at the bottom of the page, its not "standard" but the PS3 doesn't complain, and probably can be reduced even more.
  • If Error 80028F08:

can be resolved by pressing triangle one time and launch the game from start or back from the ICON.

Creating Discs[edit | edit source]

The "fake blu-ray" structures that can be downloaded from this page uses two "dirty tricks" that was usefull to identify the critic values needed to work, but can be a bit confusing to replicate them.

The first one is the removing of TITLE and TITLE_ID from most of the SFO's, this can generate a strange behaviour mostly for the primary icon. The second one is the ATTRIBUTE flag to hide the main icon. The other factor involved in this weird behaviours are the "backup managers" that are hardcoded to look for files and format in some specific structures.

When playing with this fake blu-rays use a USB pendrive (is faster to connect/disconnect to ps3/pc) with a "GAMEZ" folder in the root, and remember to "dismount" the game before disconecting the USB to avoid the XMB to go crazy, also remember the XMB sometimes keeps a backup copy of the old PARAM.SFO

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...

(Max items & FW min are theory, not tested)

For patches use INSDIR, its installation is more automated

Creating Patches[edit | edit source]

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 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

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:

  • Using a "blank" APP_VER

This is as easy as filling the value for APP_VER in the patch with zeroes, the undesired effect is the app will have no version. The benefit is this will work for installing cummulating files as "themes", "roms" etc...

  • 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)

Tools, manuals and external links[edit | edit source]

Sorry if im missing some link, several things of this page was copy-pasted months ago by googling in random forums.

  • Tools

SFO_tools_-_linux-64bit-compiles.rar (23.61 KB)

https://github.com/an0nym0u5/PSL1GHT/commit/75013299710d2bde224e2052284461a665a071bf

read_sfo.tar.bz2 (6.33 KB)

PS3SFOEdit.zip (47.59 KB)

SFO reader

Another SFO reader

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")

SFO Test (113.69KB) resigned for cfw 4.21 & repacked with different id (SFOT00001) for convenience (and not overwrite 3.55 version)

[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

[2] SFO PS3 reader By Matthieu Milan

  • Sources and links

http://www.ps3hax.net/showthread.php?t=28704

http://ps3dev.wikispaces.com/PARAM.SFO

https://github.com/ps3dev/PSL1GHT/blob/master/tools/ps3py/sfo.py (old way) https://github.com/an0nym0u5/PSL1GHT/tree/master/tools/make_sfo (new/better way)

read_sfo.tar.bz2 (6.32 KB)

http://ps3tutorials.wikispaces.com/Edit+the+sfo.xml+Tutorial

http://mc.pp.se/psp/psf.xhtml (SFO parameters used in PSP)

  • Examples

A little collection of SFO's ordered by categories http://www.sendspace.com/file/oy270g

Just a collection of PARAM (.bin .pfd .sfo .tpf) files: http://www.mirrorcreator.com/files/0OAXGOHN/PARAM.rar_links

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.