EA SSH FSH Image

From XentaxWiki
Jump to: navigation, search

Choose archive extension:

SSH, FSH, MSH, XSH, PSH


Format Specifications (FSH/SHPI type, e.g. Sim City 4 Deluxe PC)

// Sim City 4 Deluxe
// FSH file format

4 bytes (char) - magic  // "SHPI"
4 bytes (uint32) - total file size
4 bytes (uint32) - number of entries
4 bytes (char) - directory ID // e.g. "G354", "G264", "G266",
                              // "G290", "G315", "GIMX", G344"

num_of_entries *
{
   4 bytes (char) - file name  // e.g. "br02"
   4 bytes (uint32) - file offset 
}

8 bytes (char) - optional chunk name  // "Buy ERTS"


num of entries *
{
   // FSH entry header - 16 bytes
   1 byte - record ID  // logically ANDed with 0x7F value
   3 bytes (int24) - size of the block
   2 bytes (uint16) - width
   2 bytes (uint16) - height
   2 bytes (uint16) - X axis coordinate
   2 bytes (uint16) - Y axis coordinate
   2 bytes (uint16) - X axis position
   2 bytes (uint16) - Y axis position
   x bytes - image data and optional palette data
}

Full FSH file format for Sim City 4 can be found here.

Format Specifications (SSH/SHPS type, e.g. NHL 2002 PS2)

// NHL 2002
// SSH file format

// little endian

// Note: Whole SSH file may be compressed with LZSS or Huffman

// header
4 bytes (char) - magic // "SHPS"

// Note: Rest of the file format should be similar to FSH/SHPI type.

// Note: At the end of each image there may be 15-bytes palette header
// and 1024-bytes palette block.

Format Specifications (XSH/ShpX type, e.g. NBA Live 07 XBOX)

// NBA Live 07 XBOX
// XSH file format

// Note: Textures may be swizzled

4 bytes (char) - magic  //  "ShpX"

// Note: Rest of the file format should be similar to FSH/SHPI type.

Format Specifications (MSH/SHPM type, e.g. Madden PSP)

// Madden PSP
// MSH file format


// header
4 bytes (char) - magic  // "SHPM"

// Note: Rest of the file format should be similar to FSH/SHPI type.

Format Specifications (FSH/ShpF type, e.g. NBA Live 06 PC)

// NBA Live 06
// FSH file format

// litte endian/big endian

// header
4 bytes (char) - magic  // "ShpF"
4 bytes (uint32) - total file size
4 bytes (uint32) - number of images

// TODO - format is different, e.g. contains longer filenames


Format Specifications (PSH/SHPP type, e.g. NBA Live 97 PS1)

4 bytes (char) - magic // "SHPP"

// Note: Rest of the file format should be similar to FSH/SHPI type.


// Note: At the end there is CRC field with structure like below
4 bytes (char) - field name // "CRCF"
4 bytes (uint32) - field size // "12"
4 bytes - CRC

Palette structure

Palette structure may occur in some EA image types like PSH/SHPP or SSH/SHPS.
It contain 15 or 16 bytes header and palette data right after header.

// palette header
1 byte (uint8) - palette type // e.g. "33" - for 32-bit palette (1024 bytes)
3 bytes (int24) - block size  // always nulls
2 bytes (uint16) - palette width // e.g. 16 or 256
2 bytes (uint16) - palette height // always 1
2 bytes (uint16) - number of palette entries // e.g. 16 or 256
2 bytes (uint16) - unknown // always 0
2 bytes (uint16) - unknown // always 0
1 byte (uint8) - unknown
1 byte (uint8) - optional field?

// palette data
x bytes - data  // 1024 bytes for 256-color palette

Entry Types

It seems that this format can handle several different entry types (record IDs).
List of known types is listed below.

2  --> 8-bit skewed image with 256-colors swapped palette

33 --> 256-colors palette
35 --> 16-colors palette OR 256-colors 15-bit palette

64 --> 4-bit image with 16-colors palette
65 --> 8-bit image with 256-colors palette (15 bits per color in palette)
66 --> 16-bit image, no palette


// Sim City 4
96  / 0x60 --> DXT1 4x4 packed, 1-bit alpha 
97  / 0x61 --> DXT3 4x4 packed, 4-bit alpha 
109 / 0x6D --> 16-bit A4R4G4B4 
120 / 0x78 --> 16-bit A0R5G6B5 
123 / 0x7B --> 8-bit indexed 
125 / 0x7D --> 32-bit A8R8G8B8 
126 / 0x7E --> 16-bit A1R5G5B5 
127 / 0x7F --> 24-bit A0R8G8B8 


131 --> refpack compressed 16-bpp image (no palette)

MultiEx BMS

Not written yet.

Notes

  • Files using this file format are often stored inside BIG/VIV archives.
  • Whole files may be compressed with LZSS compression or with Huffman compression.
  • PS2 games uses SSH extension, PC games uses FSH extension, PSP games uses MSH extension,
    XBOX games uses XSH extension, PS1 games uses PSH extension.

Games

List of games using this file format:

  • Def Jam: Fight for NY
  • EA Cricket 2005 (PS2)
  • EA Cricket 07 (PS2)
  • FIFA Street 1 (PS2)
  • FIFA 2000 (PS1)
  • FIFA 2009
  • Harry Potter And The Chamber Of Secrets (PS2)
  • James Bond 007: Nightfire
  • Madden NFL 06 (PSP)
  • NBA Live 97 (PS1)
  • NBA Live 06 (PC)
  • NBA Live 07 (XBOX)
  • Need For Speed [Special Edition]
  • Need For Speed II [Special Edition]
  • Need For Speed III: Hot Pursuit
  • Need For Speed: High Stakes
  • Need For Speed: Road Challenge
  • Need For Speed: Porsche 2000
  • Need For Speed: Porsche Challenge
  • Need For Speed: Hot Pursuit II
  • NHL 2002 (PS2)
  • SSX Tricky
  • UEFA Euro 2004

Supported Programs

Gallery