Talk:PARAM.SFO

From PS3 Developer wiki
Revision as of 08:46, 23 November 2011 by Euss (talk | contribs)
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 Order: Alphabetically

Variable Fixed Data
Block Size
Bytes used Data Type Trophy Save Game Expansion Note
ACCOUNTID 16 16 UTF-8 Yes - - -
ACCOUNT_ID 16 16 04 00 ????? - Yes - -
APP_VER 8 5+1=6 UTF-8 - - Yes -
ATTRIBUTE 4 4 int32 - Yes Yes -
BOOTABLE 4 4 int32 - - Yes -
CATEGORY 4 2+1=3 UTF-8 - Yes Yes Yes
LANG 4 4 int32 Yes - - -
DETAIL 1024 used+1 UTF-8 - Yes - -
LICENSE 512 used+1 UTF-8 - - Yes -
NPCOMMID 16 12 UTF-8 Yes - - -
NP_COMMUNICATION_ID 16 used+1 UTF-8 - - Yes
PADDING 8 0 04 00 ????? Yes - - -
PARAMS 1024 1024 04 00 ????? - Yes - -
PARAMS2 12 12 04 00 ????? - Yes - -
PARENTALLEVEL 4 4 int32 Yes - - -
PARENTAL_LEVEL 4 4 int32 - Yes Yes Yes
PS3_SYSTEM_VER 8 7+1=8 UTF-8 - - Yes -
RESOLUTION 4 4 int32 - - Yes -
SAVEDATA_DIRECTORY 64 used+1 UTF-8 - Yes - -
SAVEDATA_LIST_PARAM 8 used+1 UTF-8 - Yes - -
SOUND_FORMAT 4 4 int32 - - Yes -
SOURCE 4 4 int32 Yes - - -
SUB_TITLE 128 used+1 UTF-8 - Yes - -
TITLE 128 used+1 UTF-8 - Yes Yes Yes
TITLEID000, 001, 002... 16 0 UTF-8 Yes - - -
TITLE_00, 01, 02... 128 used+1 UTF-8 - - Yes -
TITLE_ID 16 9+1=10 UTF-8 - Yes Yes Yes
VERSION 8 5+1=6 UTF-8 - - Yes -
VERSION 8 3 UTF-8 Yes - - -
  <sandungas> another list
  <sandungas> http://pastebin.com/raw.php?i=WesCgJ1u
  <sandungas> but is blurry... i did today, not finished