Talk:PARAM.SFO

From PS3 Developer wiki
Revision as of 09:39, 13 January 2012 by Sandungas (talk | contribs) (→‎Variables List ordered alphabetically: void positions filled with "noes", now it can be reordered by clicking in columns)
Jump to navigation Jump to search

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

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

read_sfo.tar.bz2 (6.33 KB)

PS3SFOEdit.zip (47.59 KB)



More accurate data about the param.sfo: http://pastie.org/2236579 (this is a single example, not generic)


PARAM.SFO

Header

0x00000000  00 50 53 46                                  | .PSF | u32 magic 
0x00000004  01 01 00 00                                  | .... | u32 file version 
0x00000008  d4 00 00 00                                  | .... | u32 key offset 
0x0000000c  50 01 00 00                                  | .... | u32 value offset 
0x00000010  0c 00 00 00                                  | .... | u32 entry count 


Entries

APP_VER
0x00000014  00 00                                        | ..   | u16 key_offset 
0x00000016  04                                           | .    | u8 unk1 
0x00000017  02                                           | .    | u8 value_type 
0x00000018  06 00 00 00                                  | .... | u32 value_len 
0x0000001c  08 00 00 00                                  | .... | u32 padded_len 
0x00000020  00 00 00 00                                  | .... | u32 value_offset 
ATTRIBUTE
0x00000024  08 00                                        | ..   | u16 key_offset
0x00000026  04                                           | .    | u8 unk1
0x00000027  04                                           | .    | u8 value_type
0x00000028  04 00 00 00                                  | .... | u32 value_len
0x0000002c  04 00 00 00                                  | .... | u32 padded_len
0x00000030  08 00 00 00                                  | .... | u32 value_offset
BOOTABLE
0x00000034  12 00                                        | ..   | u16 key_offset
0x00000036  04                                           | .    | u8 unk1
0x00000037  04                                           | .    | u8 value_type
0x00000038  04 00 00 00                                  | .... | u32 value_len
0x0000003c  04 00 00 00                                  | .... | u32 padded_len
0x00000040  0c 00 00 00                                  | .... | u32 value_offset
CATEGORY
0x00000044  1b 00                                        | ..   | u16 key_offset
0x00000046  04                                           | .    | u8 unk1
0x00000047  02                                           | .    | u8 value_type
0x00000048  03 00 00 00                                  | .... | u32 value_len
0x0000004c  04 00 00 00                                  | .... | u32 padded_len
0x00000050  10 00 00 00                                  | .... | u32 value_offset
LICENSE
0x00000054  24 00                                        | ..   | u16 key_offset
0x00000056  04                                           | .    | u8 unk1
0x00000057  02                                           | .    | u8 value_type
0x00000058  13 01 00 00                                  | .... | u32 value_len
0x0000005c  00 02 00 00                                  | .... | u32 padded_len
0x00000060  14 00 00 00                                  | .... | u32 value_offset
PARENTAL_LEVEL
0x00000064  2c 00                                        | ..   | u16 key_offset
0x00000066  04                                           | .    | u8 unk1
0x00000067  04                                           | .    | u8 value_type
0x00000068  04 00 00 00                                  | .... | u32 value_len
0x0000006c  04 00 00 00                                  | .... | u32 padded_len
0x00000070  14 02 00 00                                  | .... | u32 value_offset
PS3_SYSTEM_VER
0x00000074  3b 00                                        | ..   | u16 key_offset
0x00000076  04                                           | .    | u8 unk1
0x00000076  02                                           | .    | u8 value_type
0x00000078  08 00 00 00                                  | .... | u32 value_len
0x0000007c  08 00 00 00                                  | .... | u32 padded_len
0x00000080  18 02 00 00                                  | .... | u32 value_offset
RESOLUTION
0x00000084  4a 00                                        | ..   | u16 key_offset
0x00000086  04                                           | .    | u8 unk1
0x00000087  04                                           | .    | u8 value_type
0x00000088  04 00 00 00                                  | .... | u32 value_len
0x0000008c  04 00 00 00                                  | .... | u32 padded_len
0x00000090  20 02 00 00                                  | .... | u32 value_offset
SOUND_FORMAT
0x00000094  55 00                                        | ..   | u16 key_offset
0x00000096  04                                           | .    | u8 unk1
0x00000097  04                                           | .    | u8 value_type
0x00000098  04 00 00 00                                  | .... | u32 value_len
0x0000009c  04 00 00 00                                  | .... | u32 padded_len
0x000000a0  24 02 00 00                                  | .... | u32 value_offset
TITLE
0x000000a4  62 00                                        | ..   | u16 key_offset
0x000000a6  04                                           | .    | u8 unk1
0x000000a6  02                                           | .    | u8 value_type
0x000000a8  0b 00 00 00                                  | .... | u32 value_len
0x000000ac  80 00 00 00                                  | .... | u32 padded_len
0x000000b0  28 02 00 00                                  | .... | u32 value_offset
TITLE_ID
0x000000b4  68 00                                        | ..   | u16 key_offset
0x000000b6  04                                           | .    | u8 unk1
0x000000b6  02                                           | .    | u8 value_type
0x000000b8  0e 00 00 00                                  | .... | u32 value_len
0x000000bc  10 00 00 00                                  | .... | u32 padded_len
0x000000c0  a8 02 00 00                                  | .... | u32 value_offset
VERSION
0x000000c4  71 00                                        | ..   | u16 key_offset
0x000000c6  04                                           | .    | u8 unk1
0x000000c7  02                                           | .    | u8 value_type
0x000000c8  06 00 00 00                                  | .... | u32 value_len
0x000000cc  08 00 00 00                                  | .... | u32 padded_len
0x000000d0  b8 02 00 00                                  | .... | u32 value_offset


Name table (keys)

0x000000d4  50 50 5f 56 45 52 00                         | APP_VER.        |
0x000000dc  41 54 54 52 49 42 55 54 45 00                | ATTRIBUTE.      |
0x000000e6  42 4f 4f 54 41 42 4c 45 00                   | BOOTABLE.       |
0x000000ef  43 41 54 45 47 4f 52 59 00                   | CATEGORY.       |
0x000000f8  4c 49 43 45 4e 53 45 00                      | LICENSE.        |
0x00000100  50 41 52 45 4e 54 41 4c 5f 4c 45 56 45 4c 00 | PARENTAL_LEVEL. |
0x00000110  50 53 33 5f 53 59 53 54 45 4d 5f 56 45 52 00 | PS3_SYSTEM_VER. |
0x0000011e  52 45 53 4f 4c 55 54 49 4f 4e 00             | RESOLUTION.     |
0x00000129  53 4f 55 4e 44 5f 46 4f 52 4d 41 54 00       | SOUND_FORMAT.   |
0x00000136  54 49 54 4c 45 00                            | TITLE.          |
0x0000013c  54 49 54 4c 45 5f 49 44 00                   | TITLE_ID.       |
0x00000145  56 45 52 53 49 4f 4e 00 00 00 00             | VERSION.        |


Data table (values)

APP_VER
0x00000150  30 30 2e 30 35 00 00 00                      | 00.05    | u8 app_ver[7]
ATTRIBUTE
0x00000158  05 00 00 00                                  | ....     | u32 attribute
BOOTABLE
0x0000015c  01 00 00 00                                  | ....     | u32 bootable
CATEGORY
0x00000160  48 47 00 00                                  | HG..     | u8 category[3]
LICENSE
0x00000164  ...                                          | ....     | u8 license[0x200]
PARENTAL_LEVEL
0x00000364  00 00 00 00                                  | ....     | u32 parental_level
PS3_SYSTEM_VER
0x00000368  30 33 2e 31 30 30 30 00                      | 03.1000. | u8 system_version[7]
RESOLUTION
0x00000370  3f 00 00 00                                  | ....     | u32 resolution
SOUND_FORMAT
0x00000374  17 01 00 00                                  | ....     | u32 sound_format
TITLE
0x00000378  ...                                          | ........ | u8 title[0x30]
TITLE_ID
0x000003f8  ...                                          | ........ | u8 title_id[0x10]
VERSION
0x000004f8  30 30 2e 30 35 00 00 00                      | 00.05... | u8 version[7]




PARAM.SFO

ATTRIBUTE

  Data type: Int32
  Block fixed size: 4 bytes
  Bytes used: 4
  --------------------------------------------------------------------------------------------
  Little Endian ->reversed---> Big Endian  <---hex2bin--->            BINARY FLAGS
  --------------------------------------------------------------------------------------------
  00 00 00 00 --->reversed---> 00 00 00 00 <---hex2bin---> 00000000 00000000 00000000 00000000 <--- No attributes
  
  01 00 00 00 --->reversed---> 00 00 00 01 <---hex2bin---> 00000000 00000000 00000000 00000001 <--- Enable "PSP Remote Play" (MPEG4 SP/ATRAC)
  02 00 00 00 --->reversed---> 00 00 00 02 <---hex2bin---> 00000000 00000000 00000000 00000010 <--- Enable "PSP export"
  04 00 00 00 --->reversed---> 00 00 00 04 <---hex2bin---> 00000000 00000000 00000000 00000100 <--- Enable "PSP Remote Play" (MPEG4 AVC/AAC)*
  08 00 00 00 --->reversed---> 00 00 00 08 <---hex2bin---> 00000000 00000000 00000000 00001000 <--- !!!!! UNKNOWN !!!!!
  10 00 00 00 --->reversed---> 00 00 00 10 <---hex2bin---> 00000000 00000000 00000000 00010000 <--- !!!!! UNKNOWN !!!!!
  20 00 00 00 --->reversed---> 00 00 00 20 <---hex2bin---> 00000000 00000000 00000000 00100000 <--- Enable "XMB in-game" Background Music
  40 00 00 00 --->reversed---> 00 00 00 40 <---hex2bin---> 00000000 00000000 00000000 01000000 <--- ????? RESERVED ?????
  80 00 00 00 --->reversed---> 00 00 00 80 <---hex2bin---> 00000000 00000000 00000000 10000000 <--- ????? RESERVED ?????
  
  00 01 00 00 --->reversed---> 00 00 01 00 <---hex2bin---> 00000000 00000000 00000001 00000000 <--- Enable Warning Screen (Move Controller)
  00 02 00 00 --->reversed---> 00 00 02 00 <---hex2bin---> 00000000 00000000 00000010 00000000 <--- Enable Warning Screen (Navigation Controller)**
  00 04 00 00 --->reversed---> 00 00 04 00 <---hex2bin---> 00000000 00000000 00000100 00000000 <--- Enable Warning Screen (Eye Cam)**
  00 08 00 00 --->reversed---> 00 00 08 00 <---hex2bin---> 00000000 00000000 00001000 00000000 <--- Enable Calibration Notification
  00 10 00 00 --->reversed---> 00 00 10 00 <---hex2bin---> 00000000 00000000 00010000 00000000 <--- Enable Warning Screen (Stereoscopic 3D)
  00 20 00 00 --->reversed---> 00 00 20 00 <---hex2bin---> 00000000 00000000 00100000 00000000 <--- ????? RESERVED ?????
  00 40 00 00 --->reversed---> 00 00 40 00 <---hex2bin---> 00000000 00000000 01000000 00000000 <--- ????? RESERVED ?????
  00 80 00 00 --->reversed---> 00 00 80 00 <---hex2bin---> 00000000 00000000 10000000 00000000 <--- ????? RESERVED ?????
  
  00 00 01 00 --->reversed---> 00 01 00 00 <---hex2bin---> 00000000 00000001 00000000 00000000 <--- !!!!! UNKNOWN !!!!!
  00 00 02 00 --->reversed---> 00 02 00 00 <---hex2bin---> 00000000 00000010 00000000 00000000 <--- Enable additional disc content (PS3_GAME\PKGDIR\PKG00,PKG01, etc...)
  00 00 04 00 --->reversed---> 00 04 00 00 <---hex2bin---> 00000000 00000100 00000000 00000000 <--- Game patch overwrite atribute (resolution, sound format, remote play)
  00 00 08 00 --->reversed---> 00 08 00 00 <---hex2bin---> 00000000 00001000 00000000 00000000 <--- Enable game purchase (depends of variable "CONTENT_ID")  ¿¿¿¿¿ locked content ?????
  00 00 10 00 --->reversed---> 00 10 00 00 <---hex2bin---> 00000000 00010000 00000000 00000000 <--- Game patch overwrite atribute (XMB in-game)
  00 00 20 00 --->reversed---> 00 20 00 00 <---hex2bin---> 00000000 00100000 00000000 00000000 <--- Game patch overwrite atribute (move screen)
  00 00 40 00 --->reversed---> 00 40 00 00 <---hex2bin---> 00000000 01000000 00000000 00000000 <--- Game patch overwrite atribute (3D screen)
  00 00 80 00 --->reversed---> 00 80 00 00 <---hex2bin---> 00000000 10000000 00000000 00000000 <--- Enable Move controller / Game patch overwrite atribute (Move controller)
  
  00 00 00 01 --->reversed---> 01 00 00 00 <---hex2bin---> 00000001 00000000 00000000 00000000 <--- ????? RESERVED ?????
  00 00 00 02 --->reversed---> 02 00 00 00 <---hex2bin---> 00000010 00000000 00000000 00000000 <--- ????? RESERVED ?????
  00 00 00 04 --->reversed---> 04 00 00 00 <---hex2bin---> 00000100 00000000 00000000 00000000 <--- ????? RESERVED ?????
  00 00 00 08 --->reversed---> 08 00 00 00 <---hex2bin---> 00001000 00000000 00000000 00000000 <--- ????? RESERVED ?????
  00 00 00 10 --->reversed---> 10 00 00 00 <---hex2bin---> 00010000 00000000 00000000 00000000 <--- ????? RESERVED ?????
  00 00 00 20 --->reversed---> 20 00 00 00 <---hex2bin---> 00100000 00000000 00000000 00000000 <--- ????? RESERVED ?????
  00 00 00 40 --->reversed---> 40 00 00 00 <---hex2bin---> 01000000 00000000 00000000 00000000 <--- ????? RESERVED ?????
  00 00 00 80 --->reversed---> 80 00 00 00 <---hex2bin---> 10000000 00000000 00000000 00000000 <--- ????? RESERVED ?????
  
  *PSP remote play in "MPEG4 AVC/AAC" format only works when the other format "MPEG4 SP/ATRAC" is activated
  **The "navigation controller" and "eye cam" warning screens only works when "move controller" warning screen is activated
  

BOOTABLE

  Data type: Int32
  Block fixed size: 4 bytes
  Bytes used: 4
  --------------------------------------------------------------------------------------------
  Little Endian ->reversed---> Big Endian  <---hex2bin--->            BINARY FLAGS
  --------------------------------------------------------------------------------------------
  00 00 00 00 --->reversed---> 00 00 00 00 <---hex2bin---> 00000000 00000000 00000000 00000000 <--- Not bootable
  01 00 00 00 --->reversed---> 00 00 00 01 <---hex2bin---> 00000000 00000000 00000000 00000001 <--- Bootable
  

PARENTAL_LEVEL

  Data type: Int32
  Block fixed size: 4 bytes
  Bytes used: 4
  --------------------------------------------------------------------------------------------
  Little Endian ->reversed---> Big Endian  <---hex2bin--->            BINARY FLAGS
  --------------------------------------------------------------------------------------------
  00 00 00 00 --->reversed---> 00 00 00 00 <---hex2bin---> 00000000 00000000 00000000 00000000 <--- Parental Level  0 (disabled)
  01 00 00 00 --->reversed---> 00 00 00 01 <---hex2bin---> 00000000 00000000 00000000 00000001 <--- Parental Level  1 (smaller)
  02 00 00 00 --->reversed---> 00 00 00 02 <---hex2bin---> 00000000 00000000 00000000 00000010 <--- Parental Level  2
  03 00 00 00 --->reversed---> 00 00 00 03 <---hex2bin---> 00000000 00000000 00000000 00000011 <--- Parental Level  3
  04 00 00 00 --->reversed---> 00 00 00 04 <---hex2bin---> 00000000 00000000 00000000 00000100 <--- Parental Level  4
  05 00 00 00 --->reversed---> 00 00 00 05 <---hex2bin---> 00000000 00000000 00000000 00000101 <--- Parental Level  5
  06 00 00 00 --->reversed---> 00 00 00 06 <---hex2bin---> 00000000 00000000 00000000 00000110 <--- Parental Level  6
  07 00 00 00 --->reversed---> 00 00 00 07 <---hex2bin---> 00000000 00000000 00000000 00000111 <--- Parental Level  7
  08 00 00 00 --->reversed---> 00 00 00 08 <---hex2bin---> 00000000 00000000 00000000 00001000 <--- Parental Level  8
  09 00 00 00 --->reversed---> 00 00 00 09 <---hex2bin---> 00000000 00000000 00000000 00001001 <--- Parental Level  9
  0A 00 00 00 --->reversed---> 00 00 00 0A <---hex2bin---> 00000000 00000000 00000000 00001010 <--- Parental Level 10
  0B 00 00 00 --->reversed---> 00 00 00 0B <---hex2bin---> 00000000 00000000 00000000 00001011 <--- Parental Level 11 (higher)

RESOLUTION

  Data type: Int32
  Block fixed size: 4 bytes
  Bytes used: 4
  --------------------------------------------------------------------------------------------
  Little Endian ->reversed---> Big Endian  <---hex2bin--->            BINARY FLAGS
  --------------------------------------------------------------------------------------------
  01 00 00 00 --->reversed---> 00 00 00 01 <---hex2bin---> 00000000 00000000 00000000 00000001 <--- 480  (4:3)
  02 00 00 00 --->reversed---> 00 00 00 02 <---hex2bin---> 00000000 00000000 00000000 00000010 <--- 576  (4:3)
  04 00 00 00 --->reversed---> 00 00 00 04 <---hex2bin---> 00000000 00000000 00000000 00000100 <--- 720  (16:9)
  08 00 00 00 --->reversed---> 00 00 00 08 <---hex2bin---> 00000000 00000000 00000000 00001000 <--- 1080 (16:9)
  10 00 00 00 --->reversed---> 00 00 00 10 <---hex2bin---> 00000000 00000000 00000000 00010000 <--- 480  (16:9)
  20 00 00 00 --->reversed---> 00 00 00 20 <---hex2bin---> 00000000 00000000 00000000 00100000 <--- 576  (16:9)
  40 00 00 00 --->reversed---> 00 00 00 40 <---hex2bin---> 00000000 00000000 00000000 01000000 <--- ????? RESERVED ?????
  80 00 00 00 --->reversed---> 00 00 00 80 <---hex2bin---> 00000000 00000000 00000000 10000000 <--- ????? RESERVED ?????
  

SOUND_FORMAT

  Data type: Int32
  Block fixed size: 4 bytes
  Bytes used: 4
  --------------------------------------------------------------------------------------------
  Little Endian ->reversed---> Big Endian  <---hex2bin--->            BINARY FLAGS
  --------------------------------------------------------------------------------------------
  01 00 00 00 --->reversed---> 00 00 00 01 <---hex2bin---> 00000000 00000000 00000000 00000001 <--- LPCM 2.0
  04 00 00 00 --->reversed---> 00 00 00 04 <---hex2bin---> 00000000 00000000 00000000 00000100 <--- LPCM 5.1
  10 00 00 00 --->reversed---> 00 00 00 10 <---hex2bin---> 00000000 00000000 00000000 00010000 <--- LPCM 7.1
  02 01 00 00 --->reversed---> 00 00 01 02 <---hex2bin---> 00000000 00000000 00000001 00000010 <--- Dolby Digital  ¿¿¿¿¿ 5.1 ??????
  02 02 00 00 --->reversed---> 00 00 02 02 <---hex2bin---> 00000000 00000000 00000010 00000010 <--- DTS Digital Surround ¿¿¿¿¿ 5.1 ?????


                    ^^^
<sandungas> eussNL i saw you separated .sfo variables to left space for the flags in the wiki :)
<sandungas> http://pastebin.com/raw.php?i=ht4B05We
<sandungas> these are the interesting ones used in apps
<sandungas> welll... only the int32 ones
<sandungas> the rest are utf-8 (but with a fixed block size too)
<sandungas> ...lot of unknown and a bit of speculation :P




Variables List ordered alphabetically

Variable Name Block Size Bytes used Data Type TR SD HG DL 1P 2P MN Note
ACCOUNTID 16 16 UTF-8 Yes No No No No ??? No PSN User Account (blank if the user has not been registered in PSN)
ACCOUNT_ID 16 16 04 00 ????? No Yes No No No ??? No PSN User Account (blank if the user has not been registered in PSN)
ANALOG_MODE 4 4 int4 No No No No Yes ??? No
APP_VER 8 5+1=6 UTF-8 No No Yes No No ??? Yes
ATTRIBUTE 4 4 int4 No Yes Yes No Yes ??? Yes Manages speciall flags
BOOTABLE 4 4 int4 No No Yes No Yes ??? Yes Mandatory for executables
CATEGORY 4 2+1=3 UTF-8 No Yes Yes Yes Yes ??? Yes It defines the column and aspect in the XMB of the folder contents
LANG 4 4 int4 Yes No No No No ??? No The language used when the trophy file was installed
DETAIL 1024 used+1 UTF-8 No Yes No No No ??? No Third and next lines of text under the icon in XMB
LICENSE 512 used+1 UTF-8 No No Yes No No ??? No Spam
NPCOMMID 16 12 UTF-8 Yes No No No No ??? No
NP_COMMUNICATION_ID 16 used+1 UTF-8 No No Yes No No ??? No
PADDING 8 0 04 00 ????? Yes No No No No ??? No
PARAMS 1024 1024 04 00 ????? No Yes No No No ??? No This variable has the speciall characteristic that can store different strings of info (partilly unknown)
PARAMS2 12 12 04 00 ????? No Yes No No No ??? No
PARENTALLEVEL 4 4 int4 Yes No No No Yes ??? No Parentall controll flags
PARENTAL_LEVEL 4 4 int4 No Yes Yes Yes No ??? Yes Parentall controll flags
PS3_SYSTEM_VER 8 7+1=8 UTF-8 No No Yes No Yes ??? Yes Minimun firmware required to run the Game/App
RESOLUTION 4 4 int4 No No Yes No Yes ??? Yes Video modes flags
SAVEDATA_DIRECTORY 64 used+1 UTF-8 No Yes No No No ??? No Folder name of the savedata
SAVEDATA_LIST_PARAM 8 used+1 UTF-8 No Yes No No No ??? No
SOUND_FORMAT 4 4 int4 No No Yes No Yes ??? Yes Sound modes flags
SOURCE 4 4 int4 Yes No No No No ??? No
SUB_TITLE 128 used+1 UTF-8 No Yes No No No ??? No Secondary text line under the icon in XMB
TITLE 128 used+1 UTF-8 No Yes Yes Yes Yes ??? Yes First line of text of the icon in XMB
TITLEID000, 001, 002... 16 0 UTF-8 Yes No No No No ??? No Localized languages
TITLE_00, 01, 02... 128 used+1 UTF-8 No No Yes No No ??? No Localized languages
TITLE_ID 16 9+1=10 UTF-8 No Yes Yes Yes Yes ??? Yes
VERSION 8 5+1=6 UTF-8 No No Yes No Yes ??? Yes
VERSION 8 3 UTF-8 Yes No No No No ??? No

Notes:

  • Columns at the right are named by his CATTEGORY
  • TR.- is used in the table for trophies to keep the colums width, but is not a valid CATTEGORY, actually trophies dont have CATTEGORY
  • SD.- Save Date
  • HG.- HDD Game (same for DG or "Disc Game" refered to an originall Blue Ray disc game)
  • DL.- Download content ? needed example !!!
  • 1P.- PS1 classics (PlayStation One games)
  • 2P.- PS2 Classics (PlayStation 2 games) needed example !!!
  • MN.- Mini
  • This list of content types needs a couple of corrections and additions


  <sandungas> another list
  <sandungas> http://pastebin.com/raw.php?i=WesCgJ1u
  <sandungas> but is blurry... i did today, not finished