Param.sfo: Difference between revisions
m (→CATEGORY) |
|||
Line 98: | Line 98: | ||
====APP_TYPE==== | ====APP_TYPE==== | ||
{{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Digital), PS4 Game Patch }} | ||
... | ... | ||
Line 104: | Line 104: | ||
====APP_VER==== | ====APP_VER==== | ||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x6 (6 bytes)}} | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x6 (6 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Digital), PS4 Game Patch}} | ||
The format is '''XX.YY''' where "'''XX'''" and "'''YY'''" are numbers, and the point "'''.'''" is included in the string, e.g: '''01.00''' for the first stable version released. | The format is '''XX.YY''' where "'''XX'''" and "'''YY'''" are numbers, and the point "'''.'''" is included in the string, e.g: '''01.00''' for the first stable version released. | ||
Line 110: | Line 110: | ||
====ATTRIBUTE==== | ====ATTRIBUTE==== | ||
{{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Digital), PS4 Game Patch, Additional Content}} | ||
Can contains 32 flags that can be turned on/off to activate/deactivate features allowed for the game/apps content. | Can contains 32 flags that can be turned on/off to activate/deactivate features allowed for the game/apps content. | ||
Line 116: | Line 116: | ||
====CATEGORY==== | ====CATEGORY==== | ||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 Disc, PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Blu-ray Disc), PS4 Game (Digital), PS4 Game Patch, Additional Content}} | ||
See [http://www.vitadevwiki.com/index.php?title=System_File_Object_%28SFO%29_%28PSF%29#Category PS Vita Category] | See [http://www.vitadevwiki.com/index.php?title=System_File_Object_%28SFO%29_%28PSF%29#Category PS Vita Category] | ||
Line 126: | Line 126: | ||
| ac || Additional Content? | | ac || Additional Content? | ||
|- | |- | ||
| bd || | | bd || Blu-ray Disc? | ||
|- | |- | ||
| gd || (Game Digital??) | | gd || (Game Digital??) | ||
Line 138: | Line 138: | ||
====CONTENT_ID==== | ====CONTENT_ID==== | ||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x30 (48 bytes)<br />'''param_len''': 0x25 (37 bytes)}} | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x30 (48 bytes)<br />'''param_len''': 0x25 (37 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Digital), PS4 Game Patch, Additional Content}} | ||
The format is: | The format is: | ||
Line 144: | Line 144: | ||
====DISC_NUMBER==== | ====DISC_NUMBER==== | ||
{{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 Disc | {{Boxtip1|content='''Used by''': PS4 Game (Blu-ray Disc)}} | ||
Disc number: count from 01. | Disc number: count from 01. | ||
Line 150: | Line 150: | ||
====DISC_TOTAL==== | ====DISC_TOTAL==== | ||
{{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 Disc | {{Boxtip1|content='''Used by''': PS4 Game (Blu-ray Disc)}} | ||
Total number of discs for this game. | Total number of discs for this game. | ||
Line 156: | Line 156: | ||
====DISP_LOCATION_x==== | ====DISP_LOCATION_x==== | ||
{{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x1? (1 bytes?)}} | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x1? (1 bytes?)}} | ||
{{Boxtip1|content='''Used by''': PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Digital)}} | ||
DISP_LOCATION_1 & DISP_LOCATION_2 | DISP_LOCATION_1 & DISP_LOCATION_2 | ||
Line 168: | Line 168: | ||
====FORMAT==== | ====FORMAT==== | ||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4? (4 bytes)}} | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4? (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 Disc, PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Blu-ray Disc), PS4 Game (Digital), PS4 Game Patch, Additional Content}} | ||
"obs" | "obs" | ||
Line 174: | Line 174: | ||
====PARENTAL_LEVEL==== | ====PARENTAL_LEVEL==== | ||
{{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Digital), PS4 Game Patch}} | ||
It is a scale to rate the content for the different users based in user profile settings and international rating systems as: [http://en.wikipedia.org/wiki/Pan_European_Game_Information PEGI], [http://en.wikipedia.org/wiki/Entertainment_Software_Rating_Board ESRB], [http://en.wikipedia.org/wiki/Computer_Entertainment_Rating_Organization CERO], etc... | It is a scale to rate the content for the different users based in user profile settings and international rating systems as: [http://en.wikipedia.org/wiki/Pan_European_Game_Information PEGI], [http://en.wikipedia.org/wiki/Entertainment_Software_Rating_Board ESRB], [http://en.wikipedia.org/wiki/Computer_Entertainment_Rating_Organization CERO], etc... | ||
Line 180: | Line 180: | ||
====PUBTOOLINFO==== | ====PUBTOOLINFO==== | ||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x200 (512 bytes)<br />'''param_len''':variable}} | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x200 (512 bytes)<br />'''param_len''':variable}} | ||
{{Boxtip1|content='''Used by''': PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Digital), Additional Content}} | ||
Contains infos: | Contains infos: | ||
Line 193: | Line 193: | ||
====SERVICE_ID_ADDCONT_ADD_x==== | ====SERVICE_ID_ADDCONT_ADD_x==== | ||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x14 (20 bytes)<br />'''param_len''':Not used?}} | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x14 (20 bytes)<br />'''param_len''':Not used?}} | ||
{{Boxtip1|content='''Used by''': PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Digital), PS4 Game Patch}} | ||
Same parameter outnumbered from _1 to _7. | Same parameter outnumbered from _1 to _7. | ||
====SYSTEM_ROOT_VER==== | ====SYSTEM_ROOT_VER==== | ||
{{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 Disc}} | {{Boxtip1|content='''Used by''': PS4 Game (Blu-ray Disc)}} | ||
Minimum FW to be play this game? | Minimum FW to be play this game? | ||
Line 204: | Line 204: | ||
====SYSTEM_VER==== | ====SYSTEM_VER==== | ||
{{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | {{Boxinfo3|content='''param_fmt''': uint32_t<br />'''param_max_len''': 0x4 (4 bytes)<br />'''param_len''': 0x4 (4 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 Disc, PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Blu-ray Disc Disc), PS4 Game (Digital), PS4 Game Patch}} | ||
Minimum FW to be play this game? | Minimum FW to be play this game? | ||
Line 210: | Line 210: | ||
====TITLE==== | ====TITLE==== | ||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}} | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}} | ||
{{Boxtip1|content='''Used by''': PS4 Disc, PS4 Game Patch, DLC}} | {{Boxtip1|content='''Used by''': PS4 Game (Blu-ray Disc), PS4 Game Patch, DLC}} | ||
Default "title of the game" for [[Content_Information_Files|all languages]]. | Default "title of the game" for [[Content_Information_Files|all languages]]. | ||
Line 216: | Line 216: | ||
====TITLE_xx==== | ====TITLE_xx==== | ||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}} | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x80 (128 bytes)<br />'''param_len''': variable}} | ||
{{Boxtip1|content='''Used by''': PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Digital), PS4 Game Patch, Additional Content}} | ||
Same than TITLE but for [[Content_Information_Files|localized languages]]. | Same than TITLE but for [[Content_Information_Files|localized languages]]. | ||
Line 226: | Line 226: | ||
====TITLE_ID==== | ====TITLE_ID==== | ||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x0C (12 bytes)<br />'''param_len''': 0xA (10 bytes)}} | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x0C (12 bytes)<br />'''param_len''': 0xA (10 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 Disc, PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Blu-ray Disc), PS4 Game (Digital), PS4 Game Patch, Additional Content}} | ||
Identifier of the content, in the format '''WXYZ12345'''. | Identifier of the content, in the format '''WXYZ12345'''. | ||
Line 232: | Line 232: | ||
====VERSION==== | ====VERSION==== | ||
{{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x6 (6 bytes)}} | {{Boxinfo3|content='''param_fmt''': utf-8<br />'''param_max_len''': 0x8 (8 bytes)<br />'''param_len''': 0x6 (6 bytes)}} | ||
{{Boxtip1|content='''Used by''': PS4 | {{Boxtip1|content='''Used by''': PS4 Game (Digital), PS4 Game Patch, Additional Content}} | ||
Version content of the game: Disc revision, or Package revision. The number increases when the content is re-released or re-packaged for whatever reason that doesn't affect the main executable (e.g. when a disc game reaches platinum sales, or "game of the year edition" including extra contents). | Version content of the game: Disc revision, or Package revision. The number increases when the content is re-released or re-packaged for whatever reason that doesn't affect the main executable (e.g. when a disc game reaches platinum sales, or "game of the year edition" including extra contents). |
Revision as of 11:25, 10 December 2013
PARAM.SFO
SFO (System File Object) file format can be also found on PSP, PSVITA, PS3.
This page, as well as talk page is mostly about speculation.
External Structure
Only on disc?
Internal Structure
Header SFO
This is the Header of a SFO file.
Offset | Data | Length | Notes |
0x00 | 00 50 53 46 | 0x04 | " PSF" Magic |
0x04 | 01 01 00 00 | 0x04 | Version |
0x08 | xx xx 00 00 | 0x04 | Key table start offset |
0x0C | xx xx 00 00 | 0x04 | Data table start offset |
0x10 | xx 00 00 00 | 0x04 | № of parameters |
typedef struct{ int magic; //PSF int version; //1.1 int keyTableOffset; int dataTableOffset; int paramCount; } sfo_header_t;
Index table
Starting at offset 0x14, this structure (0x10) is repeated the number of times defined in the header ( № of parameters)
Offset | Data | Length | Notes |
0x14 | 00 00 | 0x02 | Key table offset |
0x16 | 04 0x | 0x02 | param_fmt (type of data) |
0x18 | xx xx 00 00 | 0x04 | parameter length |
0x1C | xx xx 00 00 | 0x04 | parameter max length |
0x20 | 00 00 00 00 | 0x04 | Data table offset |
typedef struct{ u16 keyOffset; //offset of keytable + keyOffset u16 param_fmt; //enum (see below) u32 paramLen; u32 paramMaxLen; u32 dataOffset; //offset of datatable + dataOffset } indexTableEntry_t;
Used on index table, type of data are:
param_fmt | Format | Notes |
04 00 | utf-8 Special Mode | Used in contents generated by the system (e.g.: save data) |
04 02 | utf-8 | Character string, NULL finished (0x00) |
04 04 | integer | 32 bits unsigned |
Key table
Ordered alphabetically, each name of parameters of this table is NULL terminated with 1 blank byte (0x00) to separate them.
The table has padding at the end to align their size to a multiply of 4 ( if matches with a multiply of 4 this padding doesn't exist)
Data table
- UTF-8 entries never uses all the reserved bytes, needs 1 blank byte (0x00) after the last character.
- Integer entries uses all the reserved bytes.
Parameters Descriptions
APP_TYPE
...
APP_VER
The format is XX.YY where "XX" and "YY" are numbers, and the point "." is included in the string, e.g: 01.00 for the first stable version released.
ATTRIBUTE
Can contains 32 flags that can be turned on/off to activate/deactivate features allowed for the game/apps content.
CATEGORY
See PS Vita Category
Value | Standard name |
ac | Additional Content? |
bd | Blu-ray Disc? |
gd | (Game Digital??) |
gdk | (Game Digital_k??) |
gp | Game Patch? |
CONTENT_ID
The format is:
DISC_NUMBER
Disc number: count from 01.
DISC_TOTAL
Total number of discs for this game.
DISP_LOCATION_x
DISP_LOCATION_1 & DISP_LOCATION_2
DOWNLOAD_DATA_SIZE
...
FORMAT
"obs"
PARENTAL_LEVEL
It is a scale to rate the content for the different users based in user profile settings and international rating systems as: PEGI, ESRB, CERO, etc...
PUBTOOLINFO
Contains infos:
- c_date=
- sdk_ver=
- st_type=
- asa=
- img0_l0_size=
- img0_l1_size=
- img0_ch_size=
SERVICE_ID_ADDCONT_ADD_x
Same parameter outnumbered from _1 to _7.
SYSTEM_ROOT_VER
Minimum FW to be play this game?
SYSTEM_VER
Minimum FW to be play this game?
TITLE
Default "title of the game" for all languages.
TITLE_xx
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.
TITLE_ID
Identifier of the content, in the format WXYZ12345.
VERSION
Version content of the game: Disc revision, or Package revision. The number increases when the content is re-released or re-packaged for whatever reason that doesn't affect the main executable (e.g. when a disc game reaches platinum sales, or "game of the year edition" including extra contents).