EA SSH FSH Image: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Ikskoks
imported>Ikskoks
Line 86: Line 86:


* Metal Bin
* Metal Bin
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:900px; overflow:auto;">
<pre>
<pre>
// header
// header

Revision as of 10:35, 29 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) - entry tag  // e.g. "br02"
   4 bytes (uint32) - entry offset 
}

// optional binary attachment
// Note: this attachment is added only for 16 bytes alignment
8 bytes (char) - ID string  // "Buy ERTS"
x bytes - padding


// data
num_of_entries *
{
   // entry header - 16 bytes
   1 byte (uint8) - record ID  // logically ANDed with 0x7F value
   3 bytes (uint24) - size of the block
   2 bytes (uint16) - width
   2 bytes (uint16) - height
   2 bytes (uint16) - X axis coordinate (Center X)
   2 bytes (uint16) - Y axis coordinate (Center Y)
   2 bytes - X axis position (Left X pos.)[uint12] + internal flag [uint1] + unknown [uint3]
   2 bytes - Y axis position (Top Y pos.)[uint12] + levels count (mipmaps) [uint4]

   x bytes - image data 
   x bytes - optional palette (header + data)
   x bytes - optional binary attachments (header + data)
}

Format Specifications (FSH/ShpF type)

// NBA Live 06
// FSH file format

// litte endian/big endian

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

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


Binary Attachments Specifications

  • Metal Bin
// header
1 byte (uint8) - entry ID  // 0x69
3 bytes (uint24) - size of the block
2 bytes (uint16) - data size  // always 64
2 bytes (uint16) - flags  // 0x10 0x00 - has data
8 bytes (uint64) - unknown
x bytes (char) - data + padding  // "EAGL64 metal bin attachment for runtime texture management"

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
34 / 0x22 Palette 18 18-bit palette
35 / 0x23 ? 16-colors palette OR 256-colors 15-bit palette
36 / 0x24 Palette 24 24-bit palette
41 / 0x29 Palette 16 16-bit palette
42 / 0x2A Palette 32 32-bit palette
45 / 0x2D Palette 15 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 compressed image, DXT1 4x4 packed, 1-bit alpha
97 / 0x61 DXT3 compressed image, DXT3 4x4 packed, 4-bit alpha
98 / 0x62 DXT5 compressed image, DXT5
99 / 0x63 ETC1 PVR image
100 / 0x64 PVRTC 4bpp RGB PVR image
102 / 0x66 6666 24-bit image
104 / 0x68 484 16-bit image without alpha channel
106 / 0x6A 1010102 32-bit image with 10-bit RGB channels and 2-bit alpha channel
109 / 0x6D 4444 16-bit A4R4G4B4
120 / 0x78 565 16-bit A0R5G6B5
121 / 0x79 PAL4 image with palette (16 colors)
123 / 0x7B PAL8 image with palette (256 colors)
125 / 0x7D 8888 32-bit A8R8G8B8
126 / 0x7E 5551 16-bit A1R5G5B5
127 / 0x7F 888 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.
  • Files from XBOX games can contain images which are swizzled with Morton Order algorithm.

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/PC/PS2/PSP)
  • FIFA 2009
  • FIFA 14 (PS2)
  • Golden Eye Rogue Agent (PS2)
  • Harry Potter And The Chamber Of Secrets (PS2)
  • James Bond 007: Nightfire
  • Madden NFL 06 (PSP)
  • Medal of Honor: Rising Sun
  • Medal of Honor: Frontline
  • Medal of Honor: Vanguarg
  • 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