EA SSH FSH Image: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks |
imported>Ikskoks |
(No difference)
| |
Revision as of 12:22, 27 August 2021
Choose archive extension:
SSH, FSH, MSH, XSH, PSH
- Format Type : Image
- Endian Order : Little Endian
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 and optional palette data
x bytes - binary attachments (header + data)
}
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 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 |
| 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.
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)
- 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
- 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. Sim City 4 Deluxe)
- FshEd (works with FSH/SHPI type e.g. Sim City 4 Deluxe)
- Fsh Tool / nFsh Tool (works with FSH/SHPI type e.g. Sim City 4 Deluxe)
- FshLine (works with FSH/ShpF type, eg. NBA Live 06 PC AND with FSH/SHPI type e.g. Sim City 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. Sim City 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
See Also
Gallery
-
EA Graphics Tools
-
FshX
-
EA Graphics Editor
-
Fsh Ed
-
nFsh Tool
-
NBA Jersey Raptor
-
GoFSH
-
ExplodePSH