Param.sfo

From PS4 Developer wiki
Revision as of 02:37, 10 December 2013 by Anonymous (Privacy policy)
Jump to navigation Jump to search

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

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
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 after the last character.
  • Integer entries uses all the reserved bytes.

Parameters Descriptions

APP_TYPE

Info
param_fmt: uint32_t
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: PS4 HDD Game, PS4 Game Patch

...

APP_VER

Info
param_fmt: utf-8
param_max_len: 0x8 (8 bytes)
param_len: 0x6 (6 bytes)
Tip
Used by: PS4 HDD Game, 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.

ATTRIBUTE

Info
param_fmt: uint32_t
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: PS4 HDD Game, PS4 Game Patch, DLC

Can contains 32 flags that can be turned on/off to activate/deactivate features allowed for the game/apps content.

CATEGORY

Info
param_fmt: utf-8
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: PS4 Disc, PS4 HDD Game, PS4 Game Patch, DLC

See PS Vita Category

Value Standard name
ac Additional Content?
bd Bluray Disc?
gd -
gdk -
gp Game Patch?

CONTENT_ID

Info
param_fmt: utf-8
param_max_len: 0x30 (48 bytes)
param_len: 0x25 (37 bytes)
Tip
Used by: PS4 HDD Game, PS4 Game Patch, DLC

The format is:

DISC_NUMBER

Info
param_fmt: uint32_t
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: PS4 Disc Game

Disc number: count from 01.

DISC_TOTAL

Info
param_fmt: uint32_t
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: PS4 Disc Game

Total number of discs for this game.

DISP_LOCATION_x

Info
param_fmt: uint32_t
param_max_len: 0x4 (4 bytes)
param_len: 0x1? (1 bytes?)
Tip
Used by: PS4 HDD Game

DISP_LOCATION_1 & DISP_LOCATION_2

DOWNLOAD_DATA_SIZE

Info
param_fmt: uint32_t
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: PS4 Game Patch

...

FORMAT

Info
param_fmt: utf-8
param_max_len: 0x4 (4 bytes)
param_len: 0x4? (4 bytes)
Tip
Used by: PS4 Disc, PS4 HDD Game, PS4 Game Patch, DLC

"obs"

PARENTAL_LEVEL

Info
param_fmt: uint32_t
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: PS4 HDD Game, 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: PEGI, ESRB, CERO, etc...

PUBTOOLINFO

Info
param_fmt: utf-8
param_max_len: 0x200 (512 bytes)
param_len:variable
Tip
Used by: PS4 HDD Game, DLC

Contains infos:

  • c_date=
  • sdk_ver=
  • st_type=
  • asa=
  • img0_l0_size=
  • img0_l1_size=
  • img0_ch_size=

SERVICE_ID_ADDCONT_ADD_x

Info
param_fmt: utf-8
param_max_len: 0x14 (20 bytes)
param_len:Not used?
Tip
Used by: PS4 HDD Game, PS4 Game Patch

Same parameter outnumbered from _1 to _7.

SYSTEM_ROOT_VER

Info
param_fmt: uint32_t
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: PS4 Disc

Minimum FW to be play this game?

SYSTEM_VER

Info
param_fmt: uint32_t
param_max_len: 0x4 (4 bytes)
param_len: 0x4 (4 bytes)
Tip
Used by: PS4 Disc, PS4 HDD Game, PS4 Game Patch

Minimum FW to be play this game?

TITLE

Info
param_fmt: utf-8
param_max_len: 0x80 (128 bytes)
param_len: variable
Tip
Used by: PS4 Disc, PS4 Game Patch, DLC

Default "title of the game" for all languages.

TITLE_xx

Info
param_fmt: utf-8
param_max_len: 0x80 (128 bytes)
param_len: variable
Tip
Used by: PS4 HDD Game, , PS4 Game Patch, DLC

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

Info
param_fmt: utf-8
param_max_len: 0x0C (12 bytes)
param_len: 0xA (10 bytes)
Tip
Used by: PS4 Disc, PS4 HDD Game, PS4 Application Patch, DLC

Identifier of the content, in the format WXYZ12345.

VERSION

Info
param_fmt: utf-8
param_max_len: 0x8 (8 bytes)
param_len: 0x6 (6 bytes)
Tip
Used by: PS4 HDD Game, PS4 Game Patch, DLC

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

Notes