Talk:PARAM.SFO: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
m (→‎REGION_DENY: sorry in advance if i m incorrect)
Line 555: Line 555:
   </value>
   </value>
</pre>
</pre>
Automatically set for the 31 regions and need to manually set which regions are allowed.
There are fews others examples as Netfix using this int, trying to remember and check them
Also not sur if Netflix (or others) comes from fw or from psn (make a possible difference)


==== RESOLUTION ====
==== RESOLUTION ====

Revision as of 18:01, 18 January 2012

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]

SaveData Example

This is an structure in C of the table for a SaveData

 unsigned char Variable_Name_table[Number_of_variables+1]={
 "ACCOUNT_ID\0x00",
 "ATTRIBUTE\0x00",
 "CATEGORY\0x00",
 "DETAIL0\x00",
  "PARAMS\0x00",
 "PARAMS2\0x00",
 "PARENTAL_LEVEL\0x00",
 "SAVEDATA_DIRECTORY\0x00",
 "SAVEDATA_LIST_PARAM\0x00",
 "SUB_TITLE\0x00",
 "TITLE\0x00",
 "\0x00\0x00"
 };
 unsigned char Account_ID[16]; account_id
 unsigned long Attribute; attribute
 unsigned char Category[4]="SD",0x00,0x00 category
 unsigned char Detail[1024]; detail
 000558 01 05 01 03 03 00 00 00 00 00 00 00 00 00 00 00 / params
 000568 08 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00
 000578 992 x 0x00
 unsigned char Params2[12]; params2
 unsigned long Parental_level; parental_level
 unsigned char SaveData_directory[64]; savedata_directory
 0009a8 37 33 37 00 00 00 00 00 savedata_list_param
 unsigned char Sub_Title[128]; sub title
 unsigned char Title[128]; title
 } param_sfo;

PSL1GHT PARAM.SFO

See :

$ ./read_sfo PARAM1.SFO 
read_sfo v0.01

-[HEADER]---------------
SFO Version: 101
Entries: 12

-[PARAMETERS]-----------
APP_VER: 01.00
ATTRIBUTE: 0
BOOTABLE: 1
CATEGORY: HG
LICENSE: This application was created with the official non-official SDK called psl1ght, for more information visit http://www.psl1ght.com/ . This is in no way associated with Sony Computer Entertainment Inc., please do not contact them for help, they will not be able to provide it.
PARENTAL_LEVEL: 0
PS3_SYSTEM_VER: 01.8000
RESOLUTION: 3f
SOUND_FORMAT: 117
TITLE: PSL1GHT SFO
TITLE_ID: TEST00001
VERSION: 01.00

HEADER

SFO Version

  SFO Version: 101

Entries

Number of entries for PARAMETERS

  Entries: 12

PARAMETERS

APP_VER

This is the version of the Homebrew, that will be displayed on the PS3

   <value name="APP_VER" type="string">
   00.50
   </value>

ATTRIBUTE

This value enable special functions of the Homebrew (Enable Move Controller, etc..)

   <value name="ATTRIBUTE" type="integer">
   0
   </value>

BOOTABLE

If this pkg is bootable or not. (1 to enable, 0 to disable) useful when you are going to make a data pkg.

   <value name="BOOTABLE" type="integer">
   1
   </value>

CATEGORY

This is the category where you will see your homebrew.

   <value name="CATEGORY" type="string">
   HG
   </value>

these are the categories available on a Official Firmware:

  • HM : Playstation Network
  • GD : Game patch of disc game
  • CB : Network
  • HG : Harddrive Game include sub category as Game patch of HDD Game or Special Application as syteme files for HDD game X0, X4
  • DG : Disc Game (blueray)
  • AV : Video
  • AM : Music
  • AP : Photo
  • AT : TV
  • MN : Minis Network
  • IP : Install Package
  • DP : Disc Package
  • TR : Theme DIR
  • VR : Video DIR
  • VI : Video

LICENSE

PSL1GHT Licence ( DO NOT REMOVE IT and DON'T CHANGE IT) LICENSE has a fixed block size of 128 bytes

   <value name="LICENSE" type="string">
   This application was created with the official non-official SDK called PSL1GHT, for more information visit http://www.psl1ght.com/ . This is in no way associated with Sony Computer Entertainment Inc., please do not contact them for help, they will not be able to provide it.
   </value>

PARENTAL_LEVEL

Parental level, ( 0 for everyone )

   <value name="PARENTAL_LEVEL" type="integer">
   0
   </value>

PS3_SYSTEM_VER

Minimum PS3 System version to be bootable this homebrew

   <value name="PS3_SYSTEM_VER" type="string">
   01.5000
   </value>

RESOLUTION

TV Resolution (Unknown )

   <value name="RESOLUTION" type="integer">
   63
   </value>

SOUND_FORMAT

Type of sound

   <value name="SOUND_FORMAT" type="integer">
   279
   </value>

TITLE

Title of the homebrew

   <value name="TITLE" type="string">
   Title of this Homebrew
   </value>

TITLE_ID

ID of the homebrew (this id must be the same id inside the Makefile)

   <value name="TITLE_ID" type="string">
   XXYYYYYY
   </value>

VERSION

Homebrew Version

   <value name="VERSION" type="string">
   00.50
   </value>


(source deroad: http://ps3tutorials.wikispaces.com/Edit+the+sfo.xml+Tutorial)


PS3SYS PARAM.SFO

$ ./read_sfo PARAM2.SFO 
read_sfo v0.01

-[HEADER]---------------
SFO Version: 101
Entries: 20

-[PARAMETERS]-----------
APP_VER: 01.00
ATTRIBUTE: 880727
BOOTABLE: 1
CATEGORY: HG
LICENSE: Library programs ©Sony Computer Entertainment Inc. Licensed for play on the PLAYSTATION®3 Computer Entertainment System or authorized PLAYSTATION®3 format systems. For full terms and conditions see the user's manual. This product is authorized and produced under license from Sony Computer Entertainment Inc. Use is subject to the copyright laws and the terms and conditions of the user's license.
PARENTAL_LEVEL: 0
PARENTAL_LEVEL_A: ffffffff
PARENTAL_LEVEL_C: ffffffff
PARENTAL_LEVEL_E: ffffffff
PARENTAL_LEVEL_H: ffffffff
PARENTAL_LEVEL_J: ffffffff
PARENTAL_LEVEL_K: ffffffff
PS3_SYSTEM_VER: 00.93
REGION_DENY: fffff001
RESOLUTION: 1
SOUND_FORMAT: 1
TITLE: PS3SYS SFO
TITLE_ID: TEST00002
VERSION: 01.00


HEADER

SFO Version

  SFO Version: 101

Entries

Number of entries for PARAMETERS

   Entries: 20

PARAMETERS

APP_VER

This is the version of the Homebrew, that will be displayed on the PS3

String (UTF-8)
max length 8
   <value name="APP_VER" type="string">
   01.00
   </value>

ATTRIBUTE

This value enable special functions of the Homebrew (Enable Move Controller, Enable PSP remoteplay etc..)

Integer
max length 4 
   <value name="ATTRIBUTE" type="integer">
   880727
   </value>
Enable PSP remoteplay
  • MPEG-4 SP/ATRAC=0x1
  • MPEG-4 AVC/AAC=0x4
Enable BGM
  • Enable ingame XMB BGM=0x20
Enable Move Controller
  • Support Playstation Move=0x800000
  • Enable Move controller warning=0x100
  • Enable Navigation controller warning=0x200
  • Enable Playstation Eye warning=0x400
  • Enable Calibration warning=0x800
Enable 3D Warning
  • Enable 3D warning screen=0x1000

BOOTABLE

If this pkg is bootable or not. (1 to enable, 0 to disable) useful when you are going to make a data pkg.

Integer
max length 4
   <value name="BOOTABLE" type="integer">
   1
   </value>

CATEGORY

This is the category where you will see your homebrew.

String(UTF-8)
max length 4
   <value name="CATEGORY" type="string">
   HG
   </value>

these are the categories available on a Official Firmware:

  • HM : Playstation Network
  • CB : Network
  • HG : Harddrive Game
  • DG : Disc Game (blueray)
  • AV : Video
  • AM : Music
  • AP : Photo
  • AT : TV
  • MN : Minis Network

As Additional Items:

  • AR : Patches
  • IP : Install Packages
  • VI : Video
  • TR : Theme
  • XR : Extra Contents

CONTENT_ID

ContentID for Gamepurchase

String(UTF-8)
max length 48

LICENSE

PSL1GHT Licence ( DO NOT REMOVE IT and DON'T CHANGE IT) LICENSE has a fixed block size of 128 bytes

String(UTF-8)
max length 512
   <value name="LICENSE" type="string">
   Library programs ©Sony Computer Entertainment Inc. Licensed for play on the PLAYSTATION®3 Computer Entertainment System or authorized PLAYSTATION®3 format systems. For full terms and conditions see the user's manual. This product is authorized and produced under license from Sony Computer Entertainment Inc. Use is subject to the copyright laws and the terms and conditions of the user's license.
   </value>

NP_COMMUNICATION_ID

Comm ID for Bootable message

String(UTF-8)
max length 16

PARENTAL_LEVEL

Integer
max length 4

Parental level, (0-11 ; 0 for everyone )

   <value name="PARENTAL_LEVEL" type="integer">
   0
   </value>
PARENTAL_LEVEL_A

Parental level, SCEA

Integer
max length 4
   <value name="PARENTAL_LEVEL_A" type="integer">
   ffffffff
   </value>
PARENTAL_LEVEL_C

Parental level, SCH

Integer
max length 4
   <value name="PARENTAL_LEVEL_C" type="integer">
   ffffffff
   </value>
PARENTAL_LEVEL_E

Parental level, SCEE

Integer
max length 4
   <value name="PARENTAL_LEVEL_E" type="integer">
   ffffffff
   </value>
PARENTAL_LEVEL_H

Parental level, SCEH

Integer
max length 4
   <value name="PARENTAL_LEVEL_H" type="integer">
   ffffffff
   </value>
PARENTAL_LEVEL_J

Parental level, SCEJ

Integer
max length 4
   <value name="PARENTAL_LEVEL_J" type="integer">
   ffffffff
   </value>
PARENTAL_LEVEL_K

Parental level, SCEK

Integer
max length 4
   <value name="PARENTAL_LEVEL_K" type="integer">
   ffffffff
   </value>

PS3_SYSTEM_VER

Minimum PS3 System version to be bootable this homebrew

String(UTF-8)
max length 8
   <value name="PS3_SYSTEM_VER" type="string">
   00.93
   </value>

REGION_DENY

Region restrictions (only possible with 3.30 and higher)

Integer
max length 4
   <value name="REGION_DENY" type="integer">
   fffff001
   </value>

Automatically set for the 31 regions and need to manually set which regions are allowed. There are fews others examples as Netfix using this int, trying to remember and check them Also not sur if Netflix (or others) comes from fw or from psn (make a possible difference)

RESOLUTION

TV Resolution (576(16x9)=0x20, 480(16:9)=0x10, 1080=0x8, 720=0x4, , 576=0x2, 480=0x1)

Integer
max length 4
   <value name="RESOLUTION" type="integer">
   1
   </value>

SOUND_FORMAT

Type of sound (DTS Digital Surround=0x202, Dolby Digital=0x102, 7.1LPCM=0x10, 5.1LPCM=0x4, 2LPCM=0x1)

Integer
max length 4
   <value name="SOUND_FORMAT" type="integer">
   1
   </value>

TITLE

Title of the homebrew

String(UTF-8)
max length 128
   <value name="TITLE" type="string">
   Title of this Homebrew
   </value>
TITLE_00

Localised title - Japanese

String(UTF-8)
max length 128
TITLE_01

Localised title - English

String(UTF-8)
max length 128
TITLE_02

Localised title - French

String(UTF-8)
max length 128
TITLE_03

Localised title - Spanish

String(UTF-8)
max length 128
TITLE_04

Localised title - German

String(UTF-8)
max length 128
TITLE_05

Localised title - Italian

String(UTF-8)
max length 128
TITLE_06

Localised title - Dutch

String(UTF-8)
max length 128
TITLE_07

Localised title - Portuguese

String(UTF-8)
max length 128
TITLE_08

Localised title - Russian

String(UTF-8)
max length 128
TITLE_09

Localised title - Korean

String(UTF-8)
max length 128
TITLE_10

Localised title - Trad.Chinese

String(UTF-8)
max length 128
TITLE_11

Localised title - Simp.Chinese

String(UTF-8)
max length 128
TITLE_12

Localised title - Finnish

String(UTF-8)
max length 128
TITLE_13

Localised title - Swedish

String(UTF-8)
max length 128
TITLE_14

Localised title - Danish

String(UTF-8)
max length 128
TITLE_15

Localised title - Norwegian

String(UTF-8)
max length 128
TITLE_16

Localised title - Polish

String(UTF-8)
max length 128

TITLE_ID

TITLE ID of the homebrew (this id must be the same id inside the Makefile)

String(UTF-8)
max length 16
   <value name="TITLE_ID" type="string">
   XXYYYYYY
   </value>

VERSION

Homebrew Version

String(UTF-8)
max length 8
   <value name="VERSION" type="string">
   01.00
   </value>