Editing PARAM.SFO

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

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 6: Line 6:
*The values contained in a SFO can be simplyfied as inputs/outputs for/from the content:
*The values contained in a SFO can be simplyfied as inputs/outputs for/from the content:
**Boot modifyers (most of the int32 datas) that are sent to the content when is executed to activate specific features or settings (e.g. audio and video modes of a game).
**Boot modifyers (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).
**Information texts (most of the utf8 datas) about the content and his restrictions (e.g. title and version of a game).


'''SFX''' ('''S'''ystem '''F'''ile in '''X'''ML format) is similar than SFO but without the data related to its structure (the SFO metadata that has no real value).
'''SFX''' ('''S'''ystem '''F'''ile in '''X'''ML format) is similar than SFO but without the data related to his structure (the SFO metadata that has no real value).


The conversion between the 2 formats is direct because the important values contained in both formats are the same ('''version''', '''param_key''', '''param_fmt''', '''param_max_len''' & '''param_data''').
The conversion between the 2 formats is direct because the important values contained in both formats are the same ('''version''', '''param_key''', '''param_fmt''', '''param_max_len''' & '''param_data''').
Line 14: Line 14:
SFO's and SFX's can be chained in a structure of subfolders where the "main" SFO activates a special subfolder, and the subfolder contains another SFO that activates another subfolder and so on.
SFO's and SFX's can be chained in a structure of subfolders where the "main" SFO activates a special subfolder, and the subfolder contains another SFO that activates another subfolder and so on.


These structures are limited by the system and activated by a combination of [[#CATEGORY|CATEGORY]] and special flags on [[#ATTRIBUTE|ATTRIBUTE]].
This structures are limited by the system and activated by a combination of [[#CATEGORY|CATEGORY]] and special flags on [[#ATTRIBUTE|ATTRIBUTE]].


In Blu-Ray discs, the "main" PARAM.SFO itself is activated by another flag inside [[PS3_DISC.SFB]].
In Blu-Ray discs, the "main" PARAM.SFO itself is activated by another flag inside [[PS3_DISC.SFB]].
Line 21: Line 21:
===header===
===header===
At offset 0x0, length 0x14 (20 bytes)
At offset 0x0, length 0x14 (20 bytes)
{{Boxcode|code=<syntaxhighlight lang="c">
{{Boxcode|content=<syntaxhighlight lang="c">
struct sfo_header
struct sfo_header
{
{
Line 37: Line 37:
Every entry belongs to a '''key''' name in the '''key_table''' and defines a '''data''' area in the '''data_table'''
Every entry belongs to a '''key''' name in the '''key_table''' and defines a '''data''' area in the '''data_table'''


{{Boxcode|code=<syntaxhighlight lang="c">
{{Boxcode|content=<syntaxhighlight lang="c">
struct sfo_index_table_entry
struct sfo_index_table_entry
{
{
Line 123: Line 123:


===SFX===
===SFX===
{{Boxtip3|content= SFX is used in some discs with special content<br />SFX can be used as "templates" to generate SFO files<br />SFX can be created using a SFO as the "source". See: [[Dev_Tools#SFO2SFX|SFO2SFX]]}}
{{Boxtip3|content= SFX are used in some disc with special content<br />SFX Can be used as "templates" to generate SFO files<br />SFX Can be created using a SFO as the "source". See: [[Dev_Tools#SFO2SFX|SFO2SFX]]}}


{{Boxcode|code=<syntaxhighlight lang="xml">
{{Boxcode|content=<syntaxhighlight lang="xml">
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<paramsfo add_hidden="false">
<paramsfo add_hidden="false">
Line 138: Line 138:
This table contains all the parameters known/found for an overview of the requirements needed to build a specific PARAM.SFO for a specific HDD content (SFO's and SFX's used in disc media are not included here).
This table contains all the 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" style="line-height:100%;;"  
{| border="1" cellspacing="0" cellpadding="5" border="#999" class="wikitable" style="border:1px solid #999; border-collapse: collapse;"  
|-
|-
! colspan=4 rowspan=3 | param !! colspan=12 | Used in SFO/SFX with [[#CATEGORY|CATEGORY]]
! colspan=4 rowspan=3 | param !! colspan=12 | Used in SFO/SFX with [[#CATEGORY|CATEGORY]]
Line 272: Line 272:
|}
|}


*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]]
*Trophy installers creates a PARAM.SFO '''without CATEGORY''', for this reason in the previous table are represented with the icon {{trophy platinum}}. His 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 his CATEGORY. Trophy folders/files are created by a trophy installer (TROPHY.TRP). See: [[Trophy files]]


==Parameters Descriptions==
==Parameters Descriptions==
Line 282: Line 282:
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 '''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
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-->
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x10 (16 bytes)}}
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x10 (16 bytes)}}
{{Boxtip1|content='''Used by''': Trophy}}
{{Boxtip1|content='''Used by''': Trophy}}
Line 341: Line 339:
Values are stored in "Little Endian" format inside the SFO, to represent the whole tables in a "human readable" format has been needed to convert them to "Big Endian" and then to "[http://tizzyt-archive.blogspot.jp/2013/08/learning-binary.html Binary]".
Values are stored in "Little Endian" format inside the SFO, to represent the whole tables in a "human readable" format has been needed to convert them to "Big Endian" and then to "[http://tizzyt-archive.blogspot.jp/2013/08/learning-binary.html Binary]".


{| style="font-size:11px;"
|-
|
{| class="wikitable"
{| class="wikitable"
|+ATTRIBUTE flags<br>for bootable content
|+ATTRIBUTE flags for firmware features (1<sup>st</sup> byte)
! colspan="2" | Hexadecimal !! rowspan="2" | Decimal !! rowspan="2" | Binary<br>(flags) !! Feature
! colspan="2" | Hexadecimal !! rowspan="2" width="75" | Decimal !! rowspan="2" | Binary <br /> (flags) !! colspan="4" | Feature
|-
|-
! little endian !! big endian !! for bootable content
! little endian !! big endian !! width="365" | Bootable !! Save Data !! Disc Subfolders
|-
|-
| colspan="5" {{cellcolors|black}}  
| {{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)''' || '''Copy Protected''' || '''Subfolder Enabled'''
|-
|-
| {{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)'''
| {{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''' || ''Not Used Yet'' || ''Not Used Yet''
|-
|-
| {{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'''
| {{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> || ''Not Used Yet'' || ''Not Used Yet''
|-
|-
| {{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>
| {{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''' || ''Not Used Yet'' || ''Not Used Yet''
|-
|-
| {{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'''
| {{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''' || ''Not Used Yet'' || ''Not Used Yet''
|-
|-
| {{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'''
| {{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''' || ''Not Used Yet'' || ''Not Used Yet''
|-
|-
| {{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'''
| {{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''' ? ''(See note)'' || ''Not Used Yet'' || ''Not Used Yet''
|-
|-
| {{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''' || ''Not Used Yet'' || ''Not Used Yet''
|}
 
{| class="wikitable"
|+ATTRIBUTE flags for firmware screens ? (2<sup>nd</sup> byte)
! colspan="2" | Hexadecimal !! rowspan="2" width="75" | Decimal !! rowspan="2" | Binary <br /> (flags) !! colspan="4" | Feature
|-
|-
| {{cellcolors|black|lime}} '''80''' 00 00 00 || 00 00 00 '''80''' || style="text-align:right;" | 128 || 00000000 00000000 00000000 '''1'''0000000 || '''PSvita Remote Play'''
! little endian !! big endian !! width="365" | Bootable
|-
| colspan="5" {{cellcolors|black}}
|-
|-
| {{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'''
| {{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'''
Line 380: Line 378:
| {{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'''
| {{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'''
|-
|-
| {{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>
| {{cellcolors|black|lime}} 00 '''20''' 00 00 || 00 00 '''20''' 00 || style="text-align:right;" | 8192 || 00000000 00000000 00'''1'''00000 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 '''40''' 00 00 || 00 00 '''40''' 00 || style="text-align:right;" | 16384 || 00000000 00000000 0'''1'''000000 00000000 || ''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''
| {{cellcolors|black|lime}} 00 '''80''' 00 00 || 00 00 '''80''' 00 || style="text-align:right;" | 32768 || 00000000 00000000 '''1'''0000000 00000000 || ''Not Used Yet''
|-
|}
| colspan="5" {{cellcolors|black}}  
 
|-
{| class="wikitable"
| {{cellcolors|black|lime}} 00 00 '''01''' 00 || 00 '''01''' 00 00 || style="text-align:right;" | 65536 || 00000000 0000000'''1''' 00000000 00000000 || '''Install Disc'''
|+ATTRIBUTE flags for game & software features ? (3<sup>rd</sup> byte)
|-
! colspan="2" | Hexadecimal !! rowspan="2" width="75" | Decimal !! rowspan="2" | Binary <br /> (flags) !! colspan="4" | Feature
| {{cellcolors|black|lime}} 00 00 '''02''' 00 || 00 '''02''' 00 00 || style="text-align:right;" | 131072 || 00000000 000000'''1'''0 00000000 00000000 || '''Install Packages'''
|-
| {{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>
|-
| {{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'''
|-
| {{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>
|-
| {{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)
|-
| {{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'''
|-
| colspan="5" {{cellcolors|black}}
|-
|-
| {{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>
! little endian !! big endian !! width="365" | Bootable !! Patches (Overwrite flags)
|-
|-
| {{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>
| {{cellcolors|black|lime}} 00 00 '''01''' 00 || 00 '''01''' 00 00 || style="text-align:right;" | 65536 || 00000000 0000000'''1''' 00000000 00000000 || '''Install Disc''' || ''Unknown''
|-
|-
| {{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>
| {{cellcolors|black|lime}} 00 00 '''02''' 00 || 00 '''02''' 00 00 || style="text-align:right;" | 131072 || 00000000 000000'''1'''0 00000000 00000000 || '''Install Packages''' || ''Unknown''
|-
|-
| {{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>
| {{cellcolors|black|lime}} 00 00 '''04''' 00 || 00 '''04''' 00 00 || style="text-align:right;" | 262144 || 00000000 00000'''1'''00 00000000 00000000 || ''Unknown'' || param_key: '''RESOLUTION''', '''SOUND_FORMAT''', and ATTRIBUTE flag: '''Remote Play'''
|-
|-
| {{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>
| {{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''' || ''Unknown''
|-
|-
| {{cellcolors|black|lime}} 00 00 00 '''06''' || '''06''' 00 00 00 || style="text-align:right;" | 100663296 || 00000'''11'''0 00000000 00000000 00000000 || bgcolor="#9999DD" | Reserved (X6) <small>''requires: PCEngine'' ?</small>
| {{cellcolors|black|lime}} 00 00 '''10''' 00 || 00 '''10''' 00 00 || style="text-align:right;" | 1048576 || 00000000 000'''1'''0000 00000000 00000000 || ''Unknown (See note)'' || ATTRIBUTE flag: '''XMB In-Game'''
|-
|-
| {{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 '''20''' 00 || 00 '''20''' 00 00 || style="text-align:right;" | 2097152 || 00000000 00'''1'''00000 00000000 00000000 || bgcolor="#6666DD" | '''PCEngine''' (X0) || ATTRIBUTE flag: '''Move Controller warning'''
|-
|-
| {{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 '''40''' 00 || 00 '''40''' 00 00 || style="text-align:right;" | 4194304 || 00000000 0'''1'''000000 00000000 00000000 || '''License Logo Disabled''' || ATTRIBUTE flag: '''Stereoscopic 3D warning'''
|-
|-
| {{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 '''80''' 00 || 00 '''80''' 00 00 || style="text-align:right;" | 8388608 || 00000000 '''1'''0000000 00000000 00000000 || '''Move Controller Enabled''' || ATTRIBUTE flag: '''Move Controller Enabled'''
|-
| {{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''
|}
|}
|
 
{| class="wikitable"
{| class="wikitable"
|+ATTRIBUTE flags<br>for non bootable content
|+ATTRIBUTE flags for ? (4<sup>th</sup> byte)
! colspan="3" | Feature
! colspan="2" | Hexadecimal !! rowspan="2" width="75" | Decimal !! rowspan="2" | Binary <br /> (flags) !! colspan="4" | Feature
|-
! for Save Data !! for Disc Subfolders !! for Patches
|-
| colspan="5" {{cellcolors|black}}
|-
| '''Copy Protected''' || '''Subfolder Enabled''' || {{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'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
! little endian !! big endian !! width="365" | Bootable
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''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="#6666DD" | Reserved (X1) <small>''requires: PCEngine'' ?</small>
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{cellcolors|black|lime}} 00 00 00 '''02''' || '''02''' 00 00 00 || style="text-align:right;" | 33554432 || 000000'''1'''0 00000000 00000000 00000000 || bgcolor="#6666DD" | Reserved (X2) <small>''requires: PCEngine'' ?</small>
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''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="#6666DD" | Reserved (X3) <small>''requires: PCEngine'' ?</small>
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''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="#6666DD" | '''NeoGeo''' (X4) <small>''requires: PCEngine''</small>
|-
|-
| colspan="5" {{cellcolors|black}}  
| {{cellcolors|black|lime}} 00 00 00 '''05''' || '''05''' 00 00 00 || style="text-align:right;" | 83886080 || 00000'''1'''0'''1''' 00000000 00000000 00000000 || bgcolor="#6666DD" | Reserved (X5) <small>''requires: PCEngine'' ?</small>
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''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="#6666DD" | Reserved (X6) <small>''requires: PCEngine'' ?</small>
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''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="#6666DD" | Reserved (X7) <small>''requires: PCEngine'' ?</small>
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
| {{cellcolors|black|lime}} 00 00 00 '''08''' || '''08''' 00 00 00 || style="text-align:right;" | 134217728 || 0000'''1'''000 00000000 00000000 00000000 || ''Not Used Yet''
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{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 || ''Not Used Yet''
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{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 || ''Not Used Yet''
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{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 || ''Not Used Yet''
|-
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{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 || ''Not Used Yet''
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet''
|-
| colspan="5" {{cellcolors|black}}
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || <span style="color:#ff0000">''Unknown !!!''</span>
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || <span style="color:#ff0000">''Unknown !!!''</span>
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || param_key: '''RESOLUTION''', '''SOUND_FORMAT''', and ATTRIBUTE flag: '''Remote Play'''
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || <span style="color:#ff0000">''Unknown !!!''</span>
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || ATTRIBUTE flag: '''XMB In-Game'''
|-
| {{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'''
|-
| {{cellcolors|lightgrey}} ''Not Used Yet'' || {{cellcolors|lightgrey}} ''Not Used Yet'' || ATTRIBUTE flag: '''Move Controller Enabled'''
|-
| colspan="5" {{cellcolors|black}}
|-
| {{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''
|-
| {{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''
|-
| {{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''
|-
| {{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''
|-
| {{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''
|-
| {{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)'''
'''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=
{{Boxframe4|content=
{{Boxframe1|content='''Portables'''
{{Boxframe1|content='''Portables'''
Line 552: Line 471:


'''ATTRIBUTE flags for bootable content (2<sup>nd</sup> byte)'''
'''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=
{{Boxframe4|content=
{{Boxframe1|content='''Move'''
{{Boxframe1|content='''Move'''
Line 570: Line 488:


'''ATTRIBUTE flags for bootable content (3<sup>rd</sup> byte)'''
'''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=
{{Boxframe4|content=
{{Boxframe1|content='''Discs'''
{{Boxframe1|content='''Discs'''
Line 583: Line 500:


{{Boxframe0|content={{dot}}'''Game Purchase Enabled'''<BR />
{{Boxframe0|content={{dot}}'''Game Purchase Enabled'''<BR />
Enables the <span style="background:#bbbbff;">[purchase]</span> option that appears in side menu when pressing {{padtriangle}} over the icon in XMB. Is directly related with [[#CONTENT_ID|CONTENT_ID]]. When the content is purchased 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".
Enables the <span style="background:#bbbbff;">[purchase]</span> option that appears in side menu when pressing {{padtriangle}} over the icon in XMB. Is directly related with [[#CONTENT_ID|CONTENT_ID]]. When the content is purchased his CONTENT_ID is checked online to obtain the license. After the license is retrieved the game loads another PARAM.SFO from a subfolder with different values. E.g. main PARAM.SFO enables the purchase flag and could use the TITLE "Demo", when purchased other PARAM.SFO from a "C00" subfolder is loaded that could use the TITLE "Full".
}}
}}


Line 594: Line 511:


{{Boxframe0|content={{dot}}'''License Logo Disabled''' ''(firmware <3.41?)''<BR />
{{Boxframe0|content={{dot}}'''License Logo Disabled''' ''(firmware <3.41?)''<BR />
Disables the <span style="background:#bbbbff;">[About this Game]</span> option that appears in side menu when pressing {{padtriangle}} over the icon in XMB. This flag also removes the needed of storing a [[#LICENSE|LICENSE]] param_key in the PARAM.SFO, the consequence of removing LICENSE param_key is the size of the PARAM.SFO file is reduced drastically (LICENSE text is huge in comparison with the rest of the file... SFO's without LICENSE are much smaller). Used by games that have their own license and not the sony one (e.g: PCengine & NeoGeo)
Disables the <span style="background:#bbbbff;">[About this Game]</span> option that appears in side menu when pressing {{padtriangle}} over the icon in XMB. This flag also removes the needed of storing a [[#LICENSE|LICENSE]] param_key in the PARAM.SFO, the consequence of removing LICENSE param_key is the size of the PARAM.SFO file is reduced drastically (LICENSE text is huge in comparison with the rest of the file... SFO's without LICENSE are much smaller). Used by games that has his own license and not the sony one (e.g: PCengine & NeoGeo)
}}
}}


Line 674: Line 591:


'''Bootable (mode 2)'''
'''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)
*Afer 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)
*Note the XMB mesages enabled with the ATTRIBUTE flag are specific for software (not for games), and the data type of BOOTABLE is int32 (flags), when looking at BOOTABLE flags in binary the flags are different (BOOTABLE flag 2 doesnt contains flag 1)
*The use of this flag is not completly known/documented, feel free to experiment and return back to edit wiki with new info <!--// instead of leeching for fame and glory in your kiddy circle :/ //-->
*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 :/ //-->
Line 682: Line 599:
{{Boxtip1|content='''Used by''': All but Trophy}}
{{Boxtip1|content='''Used by''': All but Trophy}}


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


{{PS3 Disc Game Structure}}
{| class="wikitable"
 
|+PS3 HDD Game Structure
{{PS3 HDD Game Structure}}
! colspan="3" rowspan="2" | FileSystem Path in device<BR />dev_hdd0/game/<[[PARAM.SFO#TITLE_ID|TITLE_ID]]>/ !! rowspan="2" | XMB Icon !! colspan="8" | [[PARAM.SFO#CATEGORY|CATEGORY]] !! rowspan="2" | Since !! rowspan="2" | Generated by !! rowspan="2" | Description and Examples
|-
! {{icon category photo}} !! {{icon category music}} !! {{icon category video}} !! {{icon category tv}} !! {{icon category game}} !! {{icon category network}} !! {{icon category psn}} !! Name
|-
| colspan="3" rowspan="18" | [[PARAM.SFO]] || {{icon content ps3}} || '''AP''' || || || || || || || App Photo || || {{media pkg}} || PlayMemories
|-
| {{icon content ps3}} || || '''AM''' || || || || || || App Music || || {{media pkg}} || Qriocity Music Unlimited
|-
| {{icon content ps3}} || || || '''AV''' || || || || || App Video || || {{media pkg}} || Netflix, LoveFilm, Maxdome
|-
| {{icon content ps3}} || || || '''BV''' || || || || || Broadcast? Video || || {{media pkg}} ||
|-
| {{icon content ps3}} || || || || '''AT''' || || || || App TV || || {{media pkg}} || QOOK TV, Now TV, Torne (TV/Video Services Column hidden when no installed content)
|-
| {{icon content ps3}} || || || || '''WT''' || || || || Web? TV || 3.70 || {{media pkg}} || [http://www.animaxtv.de/ps3player Animaxtv], 4oD etc...starts Web Browser from [[Web Browser|LINK.XML]] with corresponding [[Online_Connections#TV.2FVideo_Services| online page]].
|-
| {{icon content ps3}} || || || || || || '''CB''' || || CELL? BE? || || {{media pkg}} || [[Life with PlayStation]], [http://www.scei.co.jp/folding/en/ Folding@home]
|-
| {{icon content ps3}} || || || || || || || '''HM''' || Home || || {{media pkg}} || PlayStation Home
|-
| {{icon content ps3}} || || || --- || || --- || || '''SF''' || Store Frontend? || || {{media pkg}} || PlayStation Store
|-
| {{icon content ps3}} || || || || || '''HG''' || || || HDD Game || 1.00 || {{media pkg}} || Combined with [[PARAM.SFO#ATTRIBUTE | ATTRIBUTE]] generates "subcategories" e.g:{{icon content pcengine}} and {{icon content neogeo}}
|-
| {{icon content ps2}} || || || || || '''2G'''  || || || PS2 Game || 1.31 || {{media ps2 dvd}} || PS2 Discs installed in internal HDD, only in "backward compatible" PS3's. See: [[Emulation]]
|-
| {{icon content ps2}} || || || || || '''2P''' || || || PS2 PSN ? || 3.70 || {{media pkg}} || "'''PS2 Classics'''". Re-edited PS2 games released as a .pkg in "PlayStation Store"
|-
| {{icon content ps1}} || || || || || '''1P''' || || || PS1 PSN ? || 1.70 || {{media pkg}} || "'''PS1 Classics'''". Re-edited PS1 games released as a .pkg in "PlayStation Store"
|-
| {{icon content pspminis}} || || || || || '''MN''' || || || PSP Minis || 3.15 || {{media pkg}} || "'''PSP Minis'''". Format inherited from PSP
|-
| {{icon content pspremaster}} || || || || || '''PE''' || || || PSP Emulator || 3.70 || {{media pkg}} || "'''PSP Remasters'''". Re-edited PSP games released as a .pkg in a "Install Disc"
|-
| {{icon content psp}} || || || || || '''PP''' || || || PSP || || {{media pkg}} || Not bootable, but can be copyed to a PSP or PS VITA (? as option suggest it on XMB)
|-{{cellcolors|lightblue}}
| {{icon content ps3}} || || || || || '''GD''' || || || Game Data || || {{media ps3 bd}} and {{media pkg}} || PS3 disc installs, Game updates, Game DLC, Game common user data (e.g: GT5)
|-{{cellcolors|lightblue}}
| {{icon content ps2}} || || || || || '''2D''' || || || PS2 Data || 1.31 || {{media ps2 dvd}} and {{media pkg}} || PS2 Emulator Data, DLC for PS2 Disc games (related with CATEGORY 2G). See: [[Emulation]]
|-
| C00/ || colspan="2" | [[PARAM.SFO]] || colspan="9" {{cellcolors|lightgrey}} Used with CATEGORY: '''HG''', and others ? ||  ||  || Demo
|-
| L00/ <small>''(up to 05)''</small> || colspan="2" | [[PARAM.SFO]] || colspan="9" {{cellcolors|lightgrey}} Used with CATEGORY: '''HG''', and others ? ||  ||  || Restricted content based in License Area Number
|-
| USRDIR/ || colspan="2" | [[SELF_File_Format_and_Decryption|EBOOT.BIN]] || colspan="9" {{cellcolors|lightgrey}} Used with CATEGORY: All above except '''2G''' and '''2D''' || 1.00 ||  || Main executable
|-
| USRDIR/ || colspan="2" | [[Emulation#Virtual_PS2_HDD|IMAGE.DAT]] || colspan="9" {{cellcolors|lightgrey}} Used with CATEGORY: '''2G''' and '''2D''' || 1.31 ||  || PS2 Virtual HDD
|-
| DRMDIR/ || colspan="2" | [[PKG_DIGEST.DAT]] || colspan="9" {{cellcolors|lightgrey}} || 2.80 ||  || Installation folder security hashes
|-
| HTMLDIR/ || colspan="2" | Empty ? || colspan="9" {{cellcolors|lightgrey}} ||  ||  || Example: Torne
|-
| SHOPDIR/ || colspan="2" | ? || colspan="9" {{cellcolors|lightgrey}} ||  ||  || Unknown, used in NPJA90001
|-
| [[XMB_Manuals#MANUAL_in_Game|MANUAL]]/ || colspan="2" | 001.DDS <small>''(up to 999)''</small> || colspan="9" {{cellcolors|lightgrey}} || 4.21 ||  || Game/app manuals made with pictures
|-
! colspan="3" rowspan="2" | FileSystem Path in device<BR />dev_hdd0/home/<userid>/ !! rowspan="2" | XMB Icon !! colspan="8" | [[PARAM.SFO#CATEGORY|CATEGORY]] !! rowspan="2" | Since !! rowspan="2" | Generated by !! rowspan="2" | Description and Examples
|-
! {{icon category photo}} !! {{icon category music}} !! {{icon category video}} !! {{icon category tv}} !! {{icon category game}} !! {{icon category network}} !! {{icon category psn}} !! Name
|-
| rowspan="2" | savedata/ || rowspan="2" | [[PARAM.SFO#SAVEDATA_DIRECTORY|SAVEDIR]] || [[PARAM.SFO]] || {{icon content ps3}} || || || || || '''SD''' || || || Save Data || 1.00 || {{icon content ps3}} || See: [[Game_Saves#Game_Saves_PS3 | Game Saves - PS3]]
|-
| [[PARAM.PFD]] || colspan="9" {{cellcolors|lightgrey}} ||
|-
| rowspan="2" | minis_savedata/ || rowspan="2" | [[PARAM.SFO#SAVEDATA_DIRECTORY|SAVEDIR]] || rowspan="2" | [[PARAM.SFO]] || {{icon content pspminis}} || || || || || '''MS''' || || || Memory Stick? || 3.15 || {{icon content pspminis}} || See: [[Game_Saves#Game_Saves_Minis.2FPSP_Remaster.2F_PSP | Game Saves - Minis]]
|-
| {{icon content pspremaster}} || || || || || '''MS''' || || || Memory Stick? || || {{icon content pspremaster}} || See: [[Game_Saves#Game_Saves_PSP_Remaster | Game Saves - PSP Remaster]]
|-
| psp2_backup/ || colspan="2" | etc... || {{icon content psvita}} || || || || || {{No}} || || || || 4.00 || Transfer || PSvita contents. Not bootable, import/export to PSvita
|-
|}


*Notes
*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
**[[Game_Saves#Game_Saves_PS1 | PS1 Game Saves]] and [[Game_Saves#Game_Saves_PS2 | PS2 Game Saves]] are stored in a Virtual Memory Card (<Virtual MemCard>.VM1 for PS1 and <Virtual MemCard>.VM2 for PS2) without a PARAM.SFO
**PS Store icon on XMB Video and Game columns might only appear according to your settings<!--//ps icon video XMB column Works on jp, it can works also temporally on us and gb)//-->
**PS Store icon on XMB Video and Game columns might only appear according to your settings<!--//ps icon video XMB column Works on jp, it can works also temporally on us and gb)//-->
----
====Blu-Ray disc structure details:====
{| class="wikitable" style="font-size:x-small;"
|+PS3 Disc Game Structure
! colspan="4" rowspan="3" | FileSystem Path in device<BR />dev_bdvd/ !! rowspan="3" | XMB<BR />icon !! colspan="8" | SFB/SFO/SFX Mandatory Parameters !! rowspan="3" | Since !! rowspan="3" | Enabled by
|-
! rowspan="2" | [[PARAM.SFO#APP_VER|APP_VER]] !! rowspan="2" | [[PARAM.SFO#ATTRIBUTE|ATTRIBUTE]] !! rowspan="2" | [[PARAM.SFO#BOOTABLE|BOOTABLE]] !! colspan="3" | [[PARAM.SFO#CATEGORY|CATEGORY]] !! rowspan="2" | [[PARAM.SFO#TITLE|TITLE]] !! rowspan="2" | [[PARAM.SFO#TITLE_ID|TITLE_ID]]
|-
! {{icon category video}} !! {{icon category game}} !! Name
|-
| colspan="4" | [[PS3_DISC.SFB]] || colspan="8" {{cellcolors|lightgrey}} || {{yes}} || 1.00 || {{cellcolors|black|white}} Enables others with '''HYBRID_FLAG'''
|-
| rowspan="9" | PS3_GAME/ || colspan="3" | [[PARAM.SFO]] || {{media ps3 bd}} || {{Opt}} || {{Opt}} || {{Opt}} ||  || '''DG''' || Disc Game || {{Yes}} || {{Yes}} || 1.00 || '''HYBRID_FLAG''' (g) in PS3_DISC.FSB
|-
| USRDIR/ || colspan="2" | [[SELF_File_Format_and_Decryption|EBOOT.BIN]] || colspan="9" {{cellcolors|lightgrey}} || 1.00 || '''BOOTABLE''' (1) in parent PARAM.SFO
|-
| rowspan="2" | INSDIR/ || colspan="2" | [[PARAM.SFO]] || {{no}}? || {{Yes}} || {{No}} || {{No}} ||  || '''AR''' || Autoinstall Root || {{No}} || {{No}} || ? || '''HYBRID_FLAG''' (g) in PS3_DISC.FSB ?
|-
| colspan="2" | [[PKG_files|DATA000.PKG]] <small>''(up to 999)''</small> || colspan="9" {{cellcolors|lightgrey}} || ? ||
|-
| rowspan="3" | PKGDIR/ || colspan="2" | [[PARAM.SFO]] || {{media ps3 bd install}} || {{No}} || {{Yes}} || {{No}} ||  || '''DP''' || Disc Packages || {{Yes}} || {{Yes}} || 1.00 ? || '''ATTRIBUTE''' (131072) in parent PARAM.SFO
|-
| rowspan="2" | PKG01/<BR /><small>''(up to 99)''</small> || [[PARAM.SFO]] || {{media pkg preinstall}} || {{No}} || {{No}} || {{No}} ||  || '''IP''' || Install Package || {{Yes}} || {{Yes}} || 1.00 ? || '''ATTRIBUTE''' (1) in parent PARAM.SFO
|-
| [[PKG_files|INSTALL.PKG]] || colspan="9" {{cellcolors|lightgrey}} || 1.00 ? ||
|-
| LICDIR/ || colspan="2" | [[LIC.DAT]] || colspan="9" {{cellcolors|lightgrey}} || 1.00 ||
|-
| TROPDIR/ || <[[PARAM.SFO#NPCOMMID|NPCOMMID]]>/ || [[TROPHY.TRP]] || colspan="9" {{cellcolors|lightgrey}} || 2.40 ||
|-
| rowspan="3" | PS3_GM01/<BR /><small>''(up to 99?)''</small> || colspan="3" | [[PARAM.SFO]] || {{media ps3 bd}} || {{Opt}} || {{Opt}} || {{Opt}} ||  || '''DG''' || Disc Game || {{Yes}} || {{Yes}} || 4.00+ ? || '''HYBRID_FLAG''' (g) in PS3_DISC.FSB
|-
| USRDIR/ || colspan="2" | [[SELF_File_Format_and_Decryption|EBOOT.BIN]] || colspan="9" {{cellcolors|lightgrey}} || 4.00+ ? || '''BOOTABLE''' (1) in parent PARAM.SFO
|-
| LICDIR/ || colspan="2" | [[LIC.DAT]] || colspan="9" {{cellcolors|lightgrey}} || 4.00+ ? || dev_bdvd/PS3_GAME/LICDIR/LIC.DAT
|-
| rowspan="5" | PS3_CONTENT/ || rowspan="2" | THEMEDIR/ || colspan="2" | [[PARAM.SFO]] || {{media ps3 bd install}} || {{No}} || {{Yes}} || {{No}} ||  || '''TR''' || Theme Root || {{Yes}} || {{No}} ? || 2.00+ || '''HYBRID_FLAG''' (T) in PS3_DISC.FSB
|-
| D001/ || [[Themes_(.p3t)|DATA001.P3T]]<BR /><small>''(up to 999)''</small> || {{media pkg preinstall}} || colspan="8" {{cellcolors|lightgrey}} || 2.00+ || '''ATTRIBUTE''' (1) in parent PARAM.SFO
|-
| rowspan="3" | VIDEODIR/ || colspan="2" | [[PARAM.SFO]] || {{media ps3 bd video}} || {{No}} || {{Yes}} || {{No}} || '''VR''' ||  || Video Root || {{Yes}} || {{No}} ? || ? || '''HYBRID_FLAG''' (V) in PS3_DISC.FSB
|-
| rowspan="2" | D001/<BR /><small>''(up to 999)''</small> || [[PARAM.SFO]] || ? <!--// video_tex_default from category_plugin_full.rco ? //--> || {{No}} || {{No}} || {{No}} || '''VI''' ||  || Video Item || {{Yes}} || {{No}} || ? || '''ATTRIBUTE''' (1) in parent PARAM.SFO
|-
| [[Multimedia_Formats_and_Tools|DATA000.MP4]] || colspan="9" {{cellcolors|lightgrey}} || ? ||
|-
| rowspan="7" | PS3_EXTRA/ || colspan="3" | [[PARAM.SFO]] || {{media ps3 bd}} || {{No}} || {{Yes}} || {{No}} ||  || '''XR''' || Extra Root || {{Yes}} || {{Yes}} || 3.41- || '''HYBRID_FLAG''' (g) in PS3_DISC.FSB ?
|-
| rowspan="2" | D001/<BR /><small>''(up to 999)''</small> || colspan="2" | [[PARAM.SFO|PARAM.SFX]] || {{icon content pkg}} || {{No}} || {{No}} || {{No}} ||  || '''IP''' || Install Package || {{Yes}} || {{No}} || 3.41- || '''ATTRIBUTE''' (1) in parent PARAM.SFO
|-
| colspan="2" | [[PKG_files|DATA000.PKG]] || colspan="9" {{cellcolors|lightgrey}} || 3.41- ||
|-
| rowspan="2" | D002/<BR /><small>''(up to 999)''</small> || colspan="2" | [[PARAM.SFO|PARAM.SFX]] || {{icon content theme}} || {{No}} || {{No}} || {{No}} ||  || '''TI''' || Theme Item || {{Yes}} || {{No}} || 3.41- || '''ATTRIBUTE''' (1) in parent PARAM.SFO
|-
| colspan="2" | [[Themes_(.p3t)|DATA000.P3T]] || colspan="9" {{cellcolors|lightgrey}} || 3.41- ||
|-
| rowspan="2" | D003/<BR /><small>''(up to 999)''</small> || colspan="2" | [[PARAM.SFO|PARAM.SFX]] || {{icon content video}} || {{No}} || {{No}} || {{No}} ||  || '''VI''' || Video Item || {{Yes}} || {{No}} || 3.41- || '''ATTRIBUTE''' (1) in parent PARAM.SFO
|-
| colspan="2" | [[Multimedia_Formats_and_Tools|DATA000.MP4]] || colspan="9" {{cellcolors|lightgrey}} || 3.41- ||
|-
| PS3_VPRM/ || colspan="3" | [[PARAM.SFO]] || {{media ps3 bd video}} || {{No}} || {{No}} || {{No}} || '''DM''' ||  || Disc Movie || {{No}} || {{No}} || ? || '''HYBRID_FLAG''' (v) in PS3_DISC.FSB
|-
| PS3_UPDATE/ || colspan="3" | [[Playstation_Update_Package_(PUP)|UPDATE.PUP]] || colspan="9" {{cellcolors|lightgrey}} || 1.00 ? || '''HYBRID_FLAG''' (u) in PS3_DISC.FSB
|-
|}
<div style="float:right">[[Image:icon media ps3 bd.png|200px|thumb|left|PS3 Blu Ray]]<br /></div>
These are "fake Blu-Ray discs" with the minimal values inside SFO's/SFX's needed for the structure to work, and the needed '''HYBRID_FLAG''''s inside the main [[PS3_DISC.SFB]]. All the files are 100% hand made from scratch and tested.
'''Game discs in folder PS3_GAME'''
The basic structure of a game disc.
0GAM00001
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0GAM00001)
|--- PS3_GAME
      |--- PARAM.SFO <--- CATEGORY (DG), TITLE_ID (0GAM00001)
      |--- USRDIR
          |--- EBOOT.BIN
'''Movie discs in folder PS3_VPRM'''
This is the part of a Blue-Ray movie structure related with the PS3 system. Described as "hybrid disc" when contains a game+movie e.g: Metal Gear Solid HD Collection (BLUS30847)
0MOV00001
|--- PS3_DISC.SFB <--- HYBRID_FLAG (v), TITLE_ID (blank)
|--- AACS
|    |--- DUPLICATE (2.cer 2.tbl 1.lst 1.cc1 3.inf)
|    |--- (2.cer 2.tbl 1.lst 1.cc1 3.inf)
|--- BDMV
|    |--- AUXDATA
|    |    |--- sound.bdmv
|    |--- BACKUP
|    |    |--- CLIPINF
|    |    |    |--- (11.clpi)
|    |    |--- PLAYLIST
|    |    |    |--- (6.mpls)
|    |    |--- index.bdmv
|    |    |--- MovieObject.bdmv
|    |--- CLIPINF
|    |    |--- (11.clpi)
|    |--- META
|    |    |--- DL
|    |        |--- bdmt_eng.xml
|    |        |--- thumb_L.jpg
|    |        |--- thumb_S.jpg
|    |--- PLAYLIST
|    |    |--- (6.mpls)
|    |--- STREAM
|    |    |--- (11.m2ts)
|    |--- index.bdmv
|    |--- MovieObject.bdmv
|--- CERTIFICATE
|--- PS3_VPRM
      |--- PARAM.SFO <--- CATEGORY (DM)
'''Game discs in folder PS3_CONTENT'''
<div style="float:right">[[Image:icon media ps3 bd_video.png|200px|thumb|center|PS3 Blu Ray video content]]<br /></div>
<div style="float:right">[[Image:icon media_ps3_bd_install.png|200px|thumb|center|PS3 Blu Ray install content]]<br /></div>
Themes folder is mounted as a "secondary icon" under the "main game icon". Doesn't need/admit an SFO/SFX, the icon contained in the theme is resized and displayed inside a bubble, also the '''TITLE''' of the Theme is used for the content.
Video folder is mounted on video column. Videos can not be copied to the internal or external storage.
0CONT00001
|--- PS3_DISC.SFB <--- HYBRID_FLAG (TV), TITLE_ID (0CONT00001)
|--- PS3_CONTENT
      |--- THEMEDIR
      |    |--- PARAM.SFO <--- ATTRIBUTE (01000000), CATEGORY (TR), TITLE (Themes)
      |    |--- D000
      |        |--- DATA001.P3T
      |        |--- DATA002.P3T
      |--- VIDEODIR
          |--- PARAM.SFO <--- ATTRIBUTE (01000000), CATEGORY (VR), TITLE (Videos)
          |--- D001
          |    |--- PARAM.SFO <--- CATEGORY (VI), TITLE (Video 1)
          |    |--- DATA000.MP4
          |--- D002
                |--- PARAM.SFO <--- CATEGORY (VI), TITLE (Video 2)
                |--- DATA000.MP4
'''Game discs in folder PS3_GAME/PKGDIR'''
<div style="float:right">[[Image:icon media_ps3_bd_install.png|200px|thumb|left|PS3 Blu Ray install content]]<br /></div>
Can be considered an "expansion" of the basic blu-ray structure of a game disc, activated by the flag '''00000200''' in the [[#ATTRIBUTE|ATTRIBUTE]] of the PARAM.SFO inside PS3_GAME. Packages are displayed in subfolders inside bubbles with his icons resized.
When the packages are installed, the file PARAM.SFO from PKGDIR is renamed to DISC.SFO and copyed inside the installation folder.
0PKG00001
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0PKG00001)
|--- PS3_GAME
      |--- PARAM.SFO <--- ATTRIBUTE (00000200), CATEGORY (DG)
      |--- PKGDIR
          |--- PARAM.SFO <--- ATTRIBUTE (0100000), CATEGORY (DP), TITLE (Packages)
          |--- PKG01
          |    |--- PARAM.SFO <--- CATEGORY (IP), TITLE (Package 1)
          |    |--- INSTALL.PKG
          |--- PKG02
                |--- PARAM.SFO <--- CATEGORY (IP), TITLE (Package 2)
                |--- INSTALL.PKG
'''Game discs in folder PS3_GAME/INSDIR'''
Can be considered an expansion of the basic blu-ray game disc 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 his 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]]
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 his 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


===CONTENT_ID===
===CONTENT_ID===
Line 697: Line 920:
[[Content ID]]
[[Content ID]]


Content Identificator for Gamepurchase feature. Used in games that runs in "demo mode" and can be purchased (unlocked) by pressing triangle over its icon in XMB.
Content Identificator for Gamepurchase feature. Used in games that runs in "demo mode" and can be purchased (unlocked) by pressing triangle over his icon in XMB.


The format is: '''XXYYYY-NP_COMMUNICATION_ID-LICENSE_ID''' where:
The format is: '''XXYYYY-NP_COMMUNICATION_ID-LICENSE_ID''' where:
Line 724: Line 947:


The special byte "'''0A'''" displaces the text to the next line (a linefeed), this can be used to create long texts composed by several horizontall lines.
The special byte "'''0A'''" displaces the text to the next line (a linefeed), this can be used to create long texts composed by several horizontall lines.
====SAVEDATA_DETAIL (for minis savedata)====
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x400 (1024 bytes)<br />'''param_len''': variable}}
{{Boxtip1|content='''Used by''': Minis Save Data}}
Used to store texts generated by the game, the format s the same than [[PARAM.SFO#DETAIL|DETAIL]]


===GAMEDATA_ID===
===GAMEDATA_ID===
Line 750: Line 967:


Language used when the "trophy config file" [[Trophy_files#TROPCONF.SFM|TROPCONF.SFM]] was installed.
Language used when the "trophy config file" [[Trophy_files#TROPCONF.SFM|TROPCONF.SFM]] was installed.
{{PlayStation Languages}}
{{XMB languages}}


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


====NPCOMMID (for trophies)====<!--messed up name when trophies was implemented-->
===NPCOMMID===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0xC (12 bytes)}}
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0xC (12 bytes)}}
{{Boxtip1|content='''Used by''': Trophy}}
{{Boxtip1|content='''Used by''': Trophy}}
Line 780: Line 997:
===PARAMS===
===PARAMS===
{{Boxinfo3|content='''param_fmt''': utf8-S<br />'''param_max_len''': 0x400 (1024 bytes)<br />'''param_len''': 0x400 (1024 bytes)}}
{{Boxinfo3|content='''param_fmt''': utf8-S<br />'''param_max_len''': 0x400 (1024 bytes)<br />'''param_len''': 0x400 (1024 bytes)}}
{{Boxtip1|content='''Used by''': PS3 Save Data}}
{{Boxtip1|content='''Used by''': Save Data}}
*Intended to store:
 
**Counters (number of times the .SFO was updated, etc...)
Intended to store user (and console?) specific data.
**User/console ID's
**Some more unknown and reserved areas. See {{Talk}} page


{| class="wikitable"
{| class="wikitable"
|-
|-
! Usage !! Offset!! length !! Example !! Description !! Notes
! Offset!! length !! Example !! Description !! Notes
|-
|-
! rowspan=6 | features
| 0x000 || 1 (0x1)|| 01 || Unknown ||
| 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)
| 0x001 || 1 (0x1)|| 03 || Unknown ||
|-
|-
| 0x02 || 1 (0x1) || 01 || ''Unknown'' || values found: 1,2
| 0x002 || 1 (0x1)|| 01 || Unknown ||
|-
|-
| 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
| 0x003 || 1 (0x1)|| 02 || Unknown ||
|-
|-
| 0x04 || 1 (0x1) || 03 || '''SFO Updates counter slot nº''' || Position of the "number of times the SFO was updated". Values found: 2,3
| 0x004 || 8 (0x8)|| 0200000000000000 || Unknown ||
|- {{cellcolors|lightgrey}}
| 0x05 || 3 (0x3) || ''zero filled'' || ''Reserved'' || Not used yet
|-
|-
! rowspan=4 | counters
| 0x00C || 4 (0x4) || E1010000 || '''Update counter''' ? || Number of times the folder/files was updated ?
| 0x08 || 4 (0x4) || 00000000 || ''Counter slot 1 ?'' || values found: always 0
|-
|-
| 0x0C || 4 (0x4) || E1010000 || '''Counter slot 2''' || In most old games used as a '''SFO Updates counter'''<BR />In most new games used as a '''Cummulated counter''' (e.g: after completing the game a counter from the SAVE can be moved to the PROFILE)
| 0x010 || 4 (0x4) || 03000000 || Unknown || In some games the '''update counter''' is moved to this area (e.g: The Last of Us)
|-
|-
| 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)
| 0x014 || 4 (0x4) || 03000000 || Unknown ||
|-
|-
| 0x14 || 4 (0x4) || 01000000 || ''Counter slot 4 ?'' || values found: always 1
| 0x018 || 4 (0x4) || 01000000 || '''user ID''' || User identification number (local user). Same value stored in [[XRegistry.sys]]
|-
|-
! rowspan=5 | ID's
| 0x01C || 16 (0x10) || FEDCBA9876543210FEDCBA9876543210 || '''PS3 console ID''' || More info: [[PSID]]
| 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
| 0x02C || 4 (0x4) || 01000000 || '''user ID''' || User identification number (local user). Same value stored in [[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>''')
| 0x030 || 16 (0x10) || 0123456789ABCDEF0123456789ABCDEF || '''account ID''' || PSN account identification (online user). Same value stored in [[XRegistry.sys]]
|-
|-
| 0x30 || 16 (0x10) || 0123456789ABCDEF0123456789ABCDEF || '''ACCOUNT_ID''' || Network User identifier ('''PSN account''')
| 0x040 || 960 (0x3C0) || 00000000........ || ''not used yet'' || Big chunk of zeroes
|- {{cellcolors|lightgrey}}
| 0x40 || 960 (0x3C0) || ''zero filled'' || ''Reserved'' || Not used yet
|-
|-
|}
|}


*Notes:
*Notes:
**The SFO parameter ACCOUNT_ID is the same than the ACCOUNT_ID inside PARAMS. When the parameters PARAMS & ACCOUNT_ID are present in the SFO the string can be found twice in the file (always happens in savegames). When the user has not been registered an account in PSN its ACCOUNT_ID is filled with zeroes
**The string used in the paramater ACCOUNT_ID is the same than '''accountid''' inside PARAMS. When PARAMS & ACCOUNT_ID are present in the SFO the string can be found twice in the file.
**When the SFO is generated the user/console data is taken from [[XRegistry.sys]]
**All this data seems to be processed by the PS3 system (not the game), there is a limited number of firmware features related with savegames that needs to store data, some posible data stored in this "unknown" areas could be:
**The system displays the time when the savedata was updated by reading the timestamp of PARAM.SFO
***Times exported/imported (counters)
 
***Trophy disabled (not posible to unlock trophies from this gamesave)
 
*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===
Line 846: Line 1,044:


Unknown, usually filled with zeroes
Unknown, usually filled with zeroes
===PARENTAL_LEVEL_x===
{{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.
{| class="wikitable"
|-
! 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)


===PARENTAL_LEVEL===
===PARENTAL_LEVEL===
Line 888: Line 1,126:
|}
|}


====PARENTAL_LEVEL_x (by license area)====
===PARENTALLEVEL===
{{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.
 
{| class="wikitable"
|-
! 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)====<!--messed up name when trophies was implemented-->
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{Boxtip1|content='''Used by''': PS1 Game, Trophy}}
{{Boxtip1|content='''Used by''': PS1 Game, Trophy}}
Line 951: Line 1,149:
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{Boxinfo3|content='''param_fmt''': int32<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}}
{{Boxtip1|content='''Used by''': HDD Game}}
{{Boxtip1|content='''Used by''': HDD Game}}
<div style="float:right">[[File:Badregion-4.jpg|210px|thumb|right|Region checks]]</div>
 
Region restrictions for the content, added in firmware 3.30
Regions restrictions for the content, added in firmware 3.30


There are 12 valid [[Regions]], each region has a position assigned in the binary string, marked with an "'''1'''" when the region is prohibited, or a "'''0'''". when is allowed.
There are 12 valid [[Regions]], each region has a position assigned in the binary string, marked with an "'''1'''" when the region is prohibited, or a "'''0'''". when is allowed.
Line 986: Line 1,184:
| colspan="7" style="text-align:center; background-color:#DDDDDD;" | Examples
| colspan="7" style="text-align:center; background-color:#DDDDDD;" | Examples
|-
|-
| {{cellcolors|black|lime}} 01 F0 FF FF || FF FF F0 01 || 11111111 11111111 11110000 00000001 || || From 1 to 11 || [[http://www.psdevwiki.com/ps3/index.php?title=File:Badregion-4.jpg Photo]] of a PS3 DEX with '''Allowed Region=1-11''' (region 0 not allowed)
| {{cellcolors|black|lime}} 01 F0 FF FF || FF FF F0 01 || 11111111 11111111 11110000 00000001 || || From 1 to 11 || [[http://ps3.mediagen.fr/badregion-4_0900051787.jpg Photo]] of a PS3 DEX with '''Allowed Region=1-11''' (region 0 not allowed)
|-
|-
|}
|}
Line 1,021: Line 1,219:


*Tests
*Tests
**PS2 games remastered in PS3 format (not "ps2 classics") like "resident evil 4 HD" (CATEGORY=HG and TITLE_ID=NPEB00342) doesn't supports 1080 mode by default (or at least this one). 1080 mode in combination with SOUND_FORMAT (all SOUND_FORMAT modes enabled) the RESOLUTION flags are read but the PS3 crashes
**PS2 games remastered in PS3 format (not "ps2 classics") like "resident evil 4 HD" (CATEGORY=HG and TITLE_ID=NPEB00342) doesnt supports 1080 mode by default (or at least this one). 1080 mode in combination with SOUND_FORMAT (all SOUND_FORMAT modes enabled) the RESOLUTION flags are readed but the PS3 crashes
**Note the resolution for original PS1 disc games can vary (See: [[Emulation#Resolution|Emulation Resolution]]). The RESOLUTION flags used in PARAM.SFO's of "PS1 Classics Game" from PSN seems to be specific and not fixed sizes (e.g: 01 00 00 00). This will need another table if more are found
**Note the resolution for originall PS1 disc games can vary (See: [[Emulation#Resolution|Emulation Resolution]]). The RESOLUTION flags used in PARAM.SFO's of "PS1 Classics Game" from PSN seems to be specific and not fixed sizes (e.g: 01 00 00 00). This will need another table if more are found


*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
*There are special RESOLUTION values for PS1 and PS2 Classics, and PSP Remasters ?. The resolution for original PS1 disc games can vary (See: [[Emulation#Resolution|Emulation Resolution]]). The RESOLUTION flags used in PARAM.SFO's of "PS1 Classics Game" from PSN seems to be specific (e.g: 01 00 00 00). This will need another table if more are found
 
===SAVEDATA_DETAIL===
{{Boxinfo3|content='''param_fmt''': 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]]


===SAVEDATA_DIRECTORY===
===SAVEDATA_DIRECTORY===
Line 1,030: Line 1,234:
{{Boxtip1|content='''Used by''': Save Data, Minis Save Data}}
{{Boxtip1|content='''Used by''': Save Data, Minis Save Data}}


Name of the folder where the game stores its SaveData. The format is: '''TITLE_IDxxxxx''' (9 bytes + 22 bytes max), e.g;: '''BLUS00001_savedata_01''' where:
Name of the folder where the game stores his SaveData. The format is: '''TITLE_IDxxxxx''' (9 bytes + 22 bytes max), e.g;: '''BLUS00001_savedata_01''' where:
*'''TITLE_ID''' Identifier of the content. Explained in [[#TITLE_ID|TITLE_ID]].
*'''TITLE_ID''' Identifier of the content. Explained in [[#TITLE_ID|TITLE_ID]].
*'''xxxxx''' Are texts (with variable length) to difference all the SaveDatas generated from the same game by the same user.
*'''xxxxx''' Are texts (with variable lenght) to difference all the SaveDatas generated from the same game by the same user.


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


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


{| class="wikitable sortable"
{| class="wikitable sortable"
Line 1,117: Line 1,321:
|-
|-
|}
|}
===SAVEDATA_TITLE===
{{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]]


===SOUND_FORMAT===
===SOUND_FORMAT===
Line 1,171: Line 1,381:


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===
Line 1,196: Line 1,397:


The special byte "'''0A'''" displaces the text to the next line (a linefeed), this can be used to create long texts composed by several horizontall lines, the maximun number of horizontal text lines allowed for the TITLE is 3 (in other words... you can use the "linefeed" byte 2 times)
The special byte "'''0A'''" displaces the text to the next line (a linefeed), this can be used to create long texts composed by several horizontall lines, the maximun number of horizontal text lines allowed for the TITLE is 3 (in other words... you can use the "linefeed" byte 2 times)
====TITLE_xx (for localized languages)====
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}}
{{Boxtip1|content='''Used by''': HDD Game}}
Same than TITLE but for localized languages.
An .SFO can contain several TITLE_'''xx''' where '''xx''' is a number for a regional code.
The "default" TITLE is always present when other "localized" TITLE_'''xx''' are used.
{{PlayStation Languages}}


===TITLE_ID===
===TITLE_ID===
Line 1,223: Line 1,412:
**TEST***** All the disc images generated for debug PS3's in the development stages of the game
**TEST***** All the disc images generated for debug PS3's in the development stages of the game


====TITLEID0xx (for trophies with localized languages)====<!--messed up name when trophies was implemented-->
===TITLE_xx===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}}
{{Boxtip1|content='''Used by''': HDD Game}}
 
Same than TITLE but for localized languages.
 
An .SFO can contain several TITLE_'''xx''' where '''xx''' is a number for a regional code.
 
The "default" TITLE is always present when other "localized" TITLE_'''xx''' are used.
 
{{XMB languages}}
 
===TITLEID0xx===
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x9 (9 bytes)}}
{{Boxinfo3|content='''param_fmt''': utf8<br />'''param_max_len''': 0x10 (16 bytes)<br />'''param_len''': 0x9 (9 bytes)}}
{{Boxtip1|content='''Used by''': Trophy}}
{{Boxtip1|content='''Used by''': Trophy}}
Line 1,233: Line 1,434:
The text contained inside default TITLEID000 is the same than [[#TITLE_ID|TITLE_ID]]
The text contained inside default TITLEID000 is the same than [[#TITLE_ID|TITLE_ID]]


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


===VERSION===
===VERSION===
Line 1,279: Line 1,480:
| colspan="5" style="text-align:center;" | Etc...
| colspan="5" style="text-align:center;" | Etc...
|}
|}
==Examples==
====Blu-Ray disc game structure details====
{{PS3 Disc Game Structure}}
<div style="float:right">[[Image:icon media ps3 bd.png|200px|thumb|left|PS3 Blu Ray]]<br /></div>
These are "fake Blu-Ray discs" with the minimal values inside SFO's/SFX's needed for the structure to work, and the needed '''HYBRID_FLAG''''s inside the main [[PS3_DISC.SFB]]. All the files are 100% hand made from scratch and tested.
'''Game discs in folder PS3_GAME'''
The basic structure of a game disc.
0GAM00001
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0GAM00001)
|--- PS3_GAME
      |--- PARAM.SFO <--- CATEGORY (DG), TITLE_ID (0GAM00001)
      |--- USRDIR
          |--- EBOOT.BIN
'''Movie discs in folder PS3_VPRM'''
This is the part of a Blue-Ray movie structure related with the PS3 system. Described as "hybrid disc" when contains a game+movie e.g: Metal Gear Solid HD Collection (BLUS30847, BLES01419)
0MOV00001
|--- PS3_DISC.SFB <--- HYBRID_FLAG (v), TITLE_ID (blank)
|--- AACS
|    |--- DUPLICATE (2.cer 2.tbl 1.lst 1.cc1 3.inf)
|    |--- (2.cer 2.tbl 1.lst 1.cc1 3.inf)
|--- BDMV
|    |--- AUXDATA
|    |    |--- sound.bdmv
|    |--- BACKUP
|    |    |--- CLIPINF
|    |    |    |--- (11.clpi)
|    |    |--- PLAYLIST
|    |    |    |--- (6.mpls)
|    |    |--- index.bdmv
|    |    |--- MovieObject.bdmv
|    |--- CLIPINF
|    |    |--- (11.clpi)
|    |--- META
|    |    |--- DL
|    |        |--- bdmt_eng.xml
|    |        |--- thumb_L.jpg
|    |        |--- thumb_S.jpg
|    |--- PLAYLIST
|    |    |--- (6.mpls)
|    |--- STREAM
|    |    |--- (11.m2ts)
|    |--- index.bdmv
|    |--- MovieObject.bdmv
|--- CERTIFICATE
|--- PS3_VPRM
      |--- PARAM.SFO <--- CATEGORY (DM)
See: [https://www.psx-place.com/threads/4-84-3-starbuged-w-cobra-8-01-new-update-in-from-habib.23057/page-4#post-166700 1] and [https://www.psx-place.com/threads/jonnysps-ird-library-is-down.35178/page-2#post-315008 2]
'''Game discs in folder PS3_CONTENT'''
<div style="float:right">[[Image:icon media ps3 bd_video.png|200px|thumb|center|PS3 Blu Ray video content]]<br /></div>
<div style="float:right">[[Image:icon media_ps3_bd_install.png|200px|thumb|center|PS3 Blu Ray install content]]<br /></div>
Themes folder is mounted as a "secondary icon" under the "main game icon". Doesn't need/admit an SFO/SFX, the icon contained in the theme is resized and displayed inside a bubble, also the '''TITLE''' of the Theme is used for the content.
Video folder is mounted on video column. Videos can not be copied to the internal or external storage.
0CONT00001
|--- PS3_DISC.SFB <--- HYBRID_FLAG (TV), TITLE_ID (0CONT00001)
|--- PS3_CONTENT
      |--- THEMEDIR
      |    |--- PARAM.SFO <--- ATTRIBUTE (01000000), CATEGORY (TR), TITLE (Themes)
      |    |--- D000
      |        |--- DATA001.P3T
      |        |--- DATA002.P3T
      |--- VIDEODIR
          |--- PARAM.SFO <--- ATTRIBUTE (01000000), CATEGORY (VR), TITLE (Videos)
          |--- D001
          |    |--- PARAM.SFO <--- CATEGORY (VI), TITLE (Video 1)
          |    |--- DATA000.MP4
          |--- D002
                |--- PARAM.SFO <--- CATEGORY (VI), TITLE (Video 2)
                |--- DATA000.MP4
'''Game discs in folder PS3_GAME/PKGDIR'''
<div style="float:right">[[Image:icon media_ps3_bd_install.png|200px|thumb|left|PS3 Blu Ray install content]]<br /></div>
Can be considered an "expansion" of the basic blu-ray structure of a game disc, activated by the flag '''00000200''' in the [[#ATTRIBUTE|ATTRIBUTE]] of the PARAM.SFO inside PS3_GAME. Packages are displayed in subfolders inside bubbles with its icons resized.
When the packages are installed, the file PARAM.SFO from PKGDIR is renamed to DISC.SFO and copyed inside the installation folder.
0PKG00001
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0PKG00001)
|--- PS3_GAME
      |--- PARAM.SFO <--- ATTRIBUTE (00000200), CATEGORY (DG)
      |--- PKGDIR
          |--- PARAM.SFO <--- ATTRIBUTE (0100000), CATEGORY (DP), TITLE (Packages)
          |--- PKG01
          |    |--- PARAM.SFO <--- CATEGORY (IP), TITLE (Package 1)
          |    |--- INSTALL.PKG
          |--- PKG02
                |--- PARAM.SFO <--- CATEGORY (IP), TITLE (Package 2)
                |--- INSTALL.PKG
'''Game discs in folder PS3_GAME/INSDIR'''
Can be considered an expansion of the basic blu-ray disc game structure, activated by default with the "g" HYBRID_FLAG from PS3_DISC.SFB
The presence of INSDIR forces a mandatory installation (warning screen with "Yes" or "No", if selecting "No" the game doesnt boots) performed in main XMB (before starting the game). When the installation is completed the game boots
Inside game_ext_plugin.rco/english.xml
<Text name="msg_game_cannot_start_wo_install_need_area_install_ask">This game cannot be started unless it is installed on the system storage.
To install on the system storage you must create a game partition of %1.
Do you want to start installing?</Text>
Used for "game patches" and "game expansion packs". The PARAM.SFO inside "'''INSDIR'''" contains the "'''APP_VER'''" of the bigger patch of the folder. Note that "download content" packages doesnt contains "'''APP_VER'''" so its installation doesnt updates the main game. For this reason "'''APP_VER'''" is only related with patches. Other types of PKG can be installed but the main game will reload the message above because it was expecting to have a game patch.
0INS00001
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0INS00001)
|--- PS3_GAME
      |--- PARAM.SFO <--- CATEGORY (DG)
      |--- INSDIR
          |--- PARAM.SFO <--- APP_VER (01.02), CATEGORY (AR)
          |--- DATA000.PKG
          |--- DATA001.PKG
'''Game discs in folder PS3_EXTRA'''
Icon sizes is the same used in "PStore news" menu ([[http://www.blogcdn.com/www.joystiq.com/media/2009/08/firmrwae300ps3.jpg big squares of 486x405 pixels]]). see: [[Content_Information_Files|Content Information Files]]
When displayed on XMB the sorting of contents is based on the creation time (timestamps) of the Dxxx folders, oldest are displayed at top-left corner and newest at bottom-right corner
Similar as PKGDIR, the file PARAM.SFO from <span style="text-decoration: line-through;">PKGDIR</span> (seems typo error) is renamed to DISC.SFO.
0EXT00001
|--- PS3_DISC.SFB <--- HYBRID_FLAG (g), TITLE_ID (0EXT00001)
|--- PS3_GAME
|    |--- PARAM.SFO <--- CATEGORY (DG)
|--- PS3_EXTRA
      |--- PARAM.SFO <--- ATTRIBUTE (0100000), CATEGORY (XR), TITLE (Extras)
      |--- D001
      |    |--- PARAM.SFX <--- CATEGORY (IP), TITLE (Package 1)
      |    |--- DATA000.PKG
      |--- D002
      |    |--- PARAM.SFX <--- CATEGORY (IP), TITLE (Package 2)
      |    |--- DATA000.PKG
      |--- D003
      |    |--- PARAM.SFX <--- CATEGORY (VI), TITLE (Video 1)
      |    |--- DATA000.MP4
      |--- D004
      |    |--- PARAM.SFX <--- CATEGORY (VI), TITLE (Video 2)
      |    |--- DATA000.MP4
      |--- D005
      |    |--- PARAM.SFX <--- CATEGORY (TI), TITLE (Theme 1)
      |    |--- DATA000.P3T
      |--- D006
          |--- PARAM.SFX <--- CATEGORY (TI), TITLE (Theme 2)
          |--- DATA000.P3T
'''dev_bdvd/PS3_GM01/''' is a folder at the same level than PS3_GAME, is used for multiboot game discs (the only disc structure that supports '''direct''' multiboot). Each eboot is mounted using its own {{media ps3 bd}} icon. This discs uses speciall LIC.DAT files, see: [[LIC.DAT]] page
The two numbers at the end of the name '''PS3_GM01''' looks like a counter, but only '''PS3_GM01''' is supported (other numbers are not supported... yet)
----
You can download this structures to experiment with them or to look how SFO's SFX's are built ---> [[http://www.sendspace.com/file/o95vde| Blu-Ray fake discs by sandungas]]
*Remove-insert again disc might be required to make structures appears.
*DISC.SFO seems to force the user to start the installed game with the original disc with this message on XMB:
"to play this game, you must insert the following disc. Insert the disc, and then start the game
again.  (8001003E) Install disc"
This can/should be resolved by launching BD emulator,  removing the disc.sfo file, or using Lxx folders. See {{talk}} page


==Tips & Tricks==
==Tips & Tricks==
Line 1,453: Line 1,489:
To be sure that the new PARAM.SFO has been loaded you can change the '''TITLE''' (Paid attention also to '''TITLE_xx''') , this way you can see the new name displayed in XMB, is a good idea to use something that identifyes the change as "My test 01".
To be sure that the new PARAM.SFO has been loaded you can change the '''TITLE''' (Paid attention also to '''TITLE_xx''') , this way you can see the new name displayed in XMB, is a good idea to use something that identifyes the change as "My test 01".


*The most convenient and quick way to "refresh" the XMB is as simple as booting the game one time (by pressing X button over its icon)... inside the game press "PS" button and exit with "quit"... then return to the XMB and the new PARAM.SFO has been loaded. So in resume... the XMB is refreshed when you boot it for first time so you need to boot it one time and quit to load the new PARAM.SFO.
*The most convenient and quick way to "refresh" the XMB is as simple as booting the game one time (by pressing X button over his icon)... inside the game press "PS" button and exit with "quit"... then return to the XMB and the new PARAM.SFO has been loaded. So in resume... the XMB is refreshed when you boot it for first time so you need to boot it one time and quit to load the new PARAM.SFO.


*The other solution is by using the option "rebuild database" from the recovery menu (this re-indexes all the files in the internall HDD), is long but can fix rare problems. This can be used when the PARAM.SFO you are playing with is not '''BOOTABLE''' (you cant boot it to "refresh" the XMB)
*The other solution is by using the option "rebuild database" from the recovery menu (this re-indexes all the files in the internall HDD), is long but can fix rare problems. This can be used when the PARAM.SFO you are playing with is not '''BOOTABLE''' (you cant boot it to "refresh" the XMB)


When replacing a PARAM.SFO manually in a Game Disc (to be loaded later by a backup manager) sometimes the system ignores it. This happens because the system is storing a "duplicated" copy of the old disc structure included its PARAM.SFO (iirc). The trick to "refresh the XMB" is again by booting the game (pressing X in the main icon)... for this to work is needed to have a EBOOT.BIN in the main path inside USRDIR folder (e.g: the EBOOT.BIN from the "move demo disc" just plays a video in .MP4 and is tiny)
When replacing a PARAM.SFO manually in a Game Disc (to be loaded later by a backup manager) sometimes the system ignores it. This happens because the system is storing a "duplicated" copy of the old disc structure included his PARAM.SFO (iirc). The trick to "refresh the XMB" is again by booting the game (pressing X in the main icon)... for this to work is needed to have a EBOOT.BIN in the main path inside USRDIR folder (e.g: the EBOOT.BIN from the "move demo disc" just plays a video in .MP4 and is tiny)


===Creating a frankenstein PARAM.SFO===
===Creating a frankenstein PARAM.SFO===
Line 1,482: Line 1,518:
For install packages (max: 100, FW min: 1.80)  you can use PS3_EXTRA or PKGDIR both will work but are displayed different
For install packages (max: 100, FW min: 1.80)  you can use PS3_EXTRA or PKGDIR both will work but are displayed different


For themes ( max: 200, FW min: 2.50) and videos (max: 200, FW min: 2.40) use PS3_EXTRA or PS3_CONTENT remember themes includes its own icon and title, videos are mounted in video colum when using PS3_CONTENT pretty nice for chapters of series, video manuals, etc...
For themes ( max: 200, FW min: 2.50) and videos (max: 200, FW min: 2.40) use PS3_EXTRA or PS3_CONTENT remember themes includes his own icon and title, videos are mounted in video colum when using PS3_CONTENT pretty nice for chapters of series, video manuals, etc...


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


For patches use INSDIR, its installation is more automated
For patches use INSDIR, his installation is more automated


===Creating Patches===
===Creating Patches===
The type of patch is defined by its '''APP_VER''', '''TARGET_APP_VER''', and '''VERSION'''. There is no way to update an installed content without '''APP_VER'''
The type of patch is defined by his '''APP_VER''', '''TARGET_APP_VER''', and '''VERSION'''. There is no way to update an installed content without '''APP_VER'''
The standard way to install a patch is by using the same '''TITLE_ID''' of the previous release and a bigger '''APP_VER''', when the patch is installed its PARAM.SFO replaces the old one, consequently its '''APP_VER''' increases
The standard way to install a patch is by using the same '''TITLE_ID''' of the previous release and a bigger '''APP_VER''', when the patch is installed his PARAM.SFO replaces the old one, consequently his '''APP_VER''' increases


But there are some tricks related with this patching system that can be used to add files to the install folder without keeping this standard:
But there are some tricks related with this patching system that can be used to add files to the install folder without keeping this standard:
Line 1,497: Line 1,533:


*Using the same '''APP_VER''' and '''TARGET_APP_VER''' in the patch and in the app
*Using the same '''APP_VER''' and '''TARGET_APP_VER''' in the patch and in the app
This will replace the PARAM.SFO by other with the same values, so is similar than the previous one, but keeping its version. Additionally this assures you that the files are compatibles with this version of the app (e.g: a theme that only works with a specific version)
This will replace the PARAM.SFO by other with the same values, so is similar than the previous one, but keeping his version. Additionally this assures you that the files are compatibles with this version of the app (e.g: a theme that only works with a specific version)


==Tools, manuals and external links==
==Tools, manuals and external links==
Line 1,513: Line 1,549:
[[Dev_Tools#SFO_Reader|SFO reader]]
[[Dev_Tools#SFO_Reader|SFO reader]]


[https://github.com/Rancido/PS3-Tools Another SFO reader]
[https://github.com/Rancido/PS3-Tools Another SF0 reader]


[http://www.mediafire.com/?325cq3iea259c3j SFO Test(217.99KB)] Deroad SFO test homebrew ( really useful for fast test, can boot under X category so it refresh the SFO and avoid stuck SFO and games,  XMB in game is not "visible")
[http://www.mediafire.com/?325cq3iea259c3j SFO Test(217.99KB)] Deroad SFO test homebrew ( really useful for fast test, can boot under X category so it refresh the SFO and avoid stuck SFO and games,  XMB in game is not "visible")


[http://www.sendspace.com/file/ens9ph SFO Test (113.69KB)] resigned for cfw 4.21 & repacked with different id (SFOT00001) for convenience (and not overwrite 3.55 version)  
[http://www.sendspace.com/file/ens9ph SFO Test (113.69KB)] resigned for cfw 4.21 & repacked with different id (SFOT00001) for convenience (and not overwrite 3.55 version)  


[[http://ps3zone.ifcaro.net/archivos/PkgView_1.3.rar PkgView]] (by ifcaro): The fastest, lighter, and intuitive PKG extractor ever. Very usefull to extract individual files or to take a look inside the PKG without extracting
[[http://ps3zone.ifcaro.net/archivos/PkgView_1.3.rar PkgView]] (by ifcaro): The fastest, lighter, and intuitive PKG extractor ever. Very usefull to extract individual files or to take a look inside the PKG without extracting
[https://www.ferb.fr/ps3/SFO/] SFO PS3 reader By Matthieu Milan


*Sources and links
*Sources and links
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

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

Cancel Editing help (opens in new window)

Templates used on this page: