EA SSH FSH Image
From XentaxWiki
Choose archive extension:
Contents
SSH, FSH, MSH, XSH, PSH
- Format Type : Image
- Endian Order : Little Endian
- Signature : SHPI / SHPP / SHPS / SHPX / SHPM
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 (padding) // 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 / entry type / image type 3 bytes (uint24) - size of the block 2 bytes (uint16) - image width 2 bytes (uint16) - image 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 padding // up to 16 bytes, filled with nulls 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 // data x bytes (char) - data + padding // "EAGL64 metal bin attachment for runtime texture management"
- Hot spot / Pix region
// header 1 byte (uint8) - entry ID // 0x7C 3 bytes (uint24) - size of the block 4 bytes (uint32) - number of value pairs (one region = 3 pairs) // 3 - 1 region // 6 - 2 regions // 9 - 3 regions // pix regions num_of_regions * { 4 bytes (char) - hot spot ID // e.g. "afih" 4 bytes (uint32) - unknown // always 0? 4 bytes (int32) - left X 4 bytes (int32) - top Y 4 bytes (int32) - width 4 bytes (int32) - height } x bytes - padding
- Image name
// header 1 byte (uint8) - entry ID // 0x70 3 bytes (uint24) - size of the block // data x bytes (char) - image name + padding // e.g. "tp01"
- Comment
// header 1 byte (uint8) - entry ID // 0x6F 3 bytes (uint24) - size of the block 4 bytes (uint32) - comment string length // data x bytes (char) - comment string + padding // e.g. "TXLY,tp01,1,0,256,128,0x00000000"
- Palette
// header 1 byte (uint8) - entry ID 3 bytes (uint24) - size of the block 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 2 bytes (uint16) - unknown // palette data x bytes - data // e.g. 1024 bytes for 256-color palette
Entry Types
This format can handle several different entry types (record IDs).
All known types are listed below.
Entry Type (dec/hex) | Format | Description | Example Games Using This Format |
---|---|---|---|
1 / 0x01 | unknown | 4-bit image + palette | Medal of Honor Frontline (PS2) |
2 / 0x02 | unknown | 8-bit image with 256-colors swapped palette | FIFA 09 (PS2) MVP Baseball 2005 (PS2) NHL 2002 (PS2) |
4 / 0x04 | unknown | 8-bit image wihout palette | Medal of Honor Frontline (PS2) Medal of Honor Vanguard (PS2) |
5 / 0x05 | unknown | 32-bit image without palette | Medal of Honor Frontline (PS2) |
14 / 0x0E | unknown | 8-bit with custom EA swizzle?? | MVP Baseball 2005 (PS2) |
33 / 0x21 | unknown | 256-colors palette | unknown |
34 / 0x22 | Palette 18 | 18-bit palette | unknown |
35 / 0x23 | unknown | 16-colors palette OR 256-colors 15-bit palette | NBA Live 97 (PS1) |
36 / 0x24 | Palette 24 | 24-bit palette | unknown |
41 / 0x29 | Palette 16 | 16-bit palette | unknown |
42 / 0x2A | Palette 32 | 32-bit palette | unknown |
45 / 0x2D | Palette 15 | 15-bit palette | unknown |
59 / 0x3B | unknown | unknown | Madden (PSP) |
64 / 0x40 | R5G5B5P1 | 4-bit image with 16-colors palette (palette type 35) | NBA Live 97 (PS1) ReBoot (PS1) |
65 / 0x41 | R5G5B5P1 | 8-bit image with 256-colors palette (15 bits per color in palette) (palette type 35) | NBA Live 97 (PS1) ReBoot (PS1) |
66 / 0x42 | R5G5B5P1 | 16-bit image, no palette | NBA Live 97 (PS1) ReBoot (PS1) |
... | |||
91 / 0x5B | unknown | 32-bit image with swapped RGB, no palette | unknown |
92 / 0x5C | unknown | unknown | Madden (PSP) |
93 / 0x5D | unknown | unknown | Madden (PSP) |
96 / 0x60 | DXT1 | compressed image, DXT1 4x4 packed, 1-bit alpha | SimCity 4 Deluxe (PC) |
97 / 0x61 | DXT3 | compressed image, DXT3 4x4 packed, 4-bit alpha | SimCity 4 Deluxe (PC) |
98 / 0x62 | DXT5 | compressed image, DXT5 | unknown |
99 / 0x63 | ETC1 | PVR image | unknown |
100 / 0x64 | PVRTC 4bpp RGB | PVR image | unknown |
102 / 0x66 | 6666 | 24-bit image | unknown |
104 / 0x68 | 484 | 16-bit image without alpha channel | unknown |
105 / 0x69 | - | metal bin attachment | Almost all EA games |
106 / 0x6A | 1010102 | 32-bit image with 10-bit RGB channels and 2-bit alpha channel | unknown |
109 / 0x6D | 4444 | 16-bit A4R4G4B4 | unknown |
111 / 0x6F | - | comment binary attachment | unknown |
112 / 0x70 | - | image name binary attachment | Almost all EA games |
120 / 0x78 | 565 | 16-bit A0R5G6B5 | unknown |
121 / 0x79 | PAL4 | image with palette (16 colors) | unknown |
123 / 0x7B | PAL8 | image with palette (256 colors) | SimCity 4 Deluxe (PC) |
124 / 0x7C | - | hot spot / pix region | unknown |
125 / 0x7D | 8888 | 32-bit A8R8G8B8 | SimCity 4 Deluxe (PC) |
126 / 0x7E | 5551 | 16-bit A1R5G5B5 | unknown |
127 / 0x7F | 888 | 24-bit A0R8G8B8 | SimCity 4 Deluxe (PC) |
... | |||
131 / 0x83 | unknown | refpack compressed 16-bpp image (no palette) | FIFA 09 (PS2) |
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, ART and PSP extensions. - 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/PSP)
- 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
- MVP 07: NCAA Baseball (PS2)
- MVP Baseball 2005 (PS2)
- NBA Live 97 (PS1) (*.PSH / *.PSP / *.ART)
- 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)
- ReBoot (PS1) (*.PSH)
- SimCity 4 Deluxe (PC) (*.FSH)
- SSX Tricky
- UEFA Euro 2004
Supported Programs
- EA Graphics Manager
- EA Graphics Tools (works with SSH/SHPS type, but only with some games like FIFA 2009 & FIFA Street 1)
- EA Graphics Editor (works with FSH/SHPI type e.g. SimCity 4 Deluxe)
- FshEd (works with FSH/SHPI type e.g. SimCity 4 Deluxe)
- Fsh Tool / nFsh Tool (works with FSH/SHPI type e.g. SimCity 4 Deluxe)
- FshLine (works with FSH/ShpF type, eg. NBA Live 06 PC AND with FSH/SHPI type e.g. SimCity 4 Deluxe)
- FshX / FshX (for Vista) (works with FSH/ShpF type, e.g. NBA Live 06 PC)
- NBA 2006 Jersey Raptor (works with FSH/ShpF type, eg. NBA Live 06 PC)
- GoFSH - FSH Texture Editor (works with FSH/SHPI type e.g. SimCity 4 Deluxe)
- ExplodePSH (works with PSH/SHPP type e.g. NBA Live 97 PS1)
- NHL_2002_PS2_Tool.py (works with SSH/SHPS type and partially with other types - research in progress)
- GFXPack
- GAUP Plugin
- FiSHMan
- FSHLib
- SC4Tool
- iLive - Reader
- NHLINFO (Tool for older NHL games)
- FSH Editor
- otools
- Konvertor
- PSicture (works with PSH files)
quickBMS Scripts
Noesis Scripts
See Also
Gallery