EA SSH FSH Image: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Ikskoks
imported>Ikskoks
Line 115: Line 115:
It seems that this format can handle several different entry types (record IDs).<br>
It seems that this format can handle several different entry types (record IDs).<br>
List of known types is listed below.<br>
List of known types is listed below.<br>
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
<pre>
2  / 0x02 --> 8-bit skewed image with 256-colors swapped palette


33 / 0x21 --> 256-colors palette
{| class="wikitable sortable"
35 / 0x23 --> 16-colors palette OR 256-colors 15-bit palette
|-  
!    Entry Type (dec/hex)    !! Format            !! Description
|-


64 / 0x40 --> 4-bit image with 16-colors palette
|    2  / 0x02                || ?                  || 8-bit skewed image with 256-colors swapped palette
65 / 0x41 --> 8-bit image with 256-colors palette (15 bits per color in palette)
|-
66 / 0x42 --> 16-bit image, no palette


|    33 / 0x21                || ?                  || 256-colors palette
|-


// Sim City 4
|    35 / 0x23                || ?                  || 16-colors palette OR 256-colors 15-bit palette
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


|    64 / 0x40                || ?                  || 4-bit image with 16-colors palette
|-


131 / 0x83 --> refpack compressed 16-bpp image (no palette)
|    65 / 0x41                || ?                  || 8-bit image with 256-colors palette (15 bits per color in palette)
</pre>
|-
</div>
 
|    66 / 0x42                || ?                  || 16-bit image, no palette
|-
 
| ...
|-
 
|    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 / 0x83               || ?                  || refpack compressed 16-bpp image (no palette)
|-
 
|}


=== MultiEx BMS ===  
=== MultiEx BMS ===  

Revision as of 12:21, 13 August 2021

Choose archive extension:

SSH, FSH, MSH, XSH, PSH


Format Specifications

// EA Graphics (FSH, SSH etc.)
// file format

// Note: Whole file may be compressed with LZSS or Huffman
// Note: Image data may be swizzled (XBOX only?)


// header
4 bytes (char) - signature  // "SHPI" for PC games
                            // "SHPP" for PS1 games
                            // "SHPS" for PS2 games
                            // "ShpX" or "SHPX" for XBOX games
                            // "SHPM" for PSP games
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"


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


// data
num_of_entries *
{
    8 bytes (char) - optional chunk name  // "Buy ERTS"
    x bytes - optional padding


   // entry header - 16 bytes
   1 byte (uint8) - 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
}


// binary attachments
{
   // Note: At the end there is CRC field with structure like below
   //       (Only for PS1?)
   4 bytes (char) - field name // "CRCF"
   4 bytes (uint32) - field size // "12"
   4 bytes - CRC
}

Format Specifications (FSH/ShpF type)

// 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

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.

Entry Type (dec/hex) Format Description
2 / 0x02 ? 8-bit skewed image with 256-colors swapped palette
33 / 0x21 ? 256-colors palette
35 / 0x23 ? 16-colors palette OR 256-colors 15-bit palette
64 / 0x40 ? 4-bit image with 16-colors palette
65 / 0x41 ? 8-bit image with 256-colors palette (15 bits per color in palette)
66 / 0x42 ? 16-bit image, no palette
...
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 / 0x83 ? refpack compressed 16-bpp image (no palette)

MultiEx BMS

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 or with Refpack 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 2006 (XBOX)
  • FIFA 2009
  • FIFA 14 (PS2)
  • 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: Hot Pursuit II
  • Need For Speed: Porsche 2000
  • Need For Speed: Porsche Challenge
  • Need For Speed: Road Challenge
  • Need for Speed: Undercover (PSP) (*.MSH / SHPM)
  • NHL 2002 (PS2)
  • SSX Tricky
  • UEFA Euro 2004

Supported Programs

See Also



Gallery