EA SSH FSH Image: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks No edit summary |
imported>Ikskoks (→Notes) |
||
| (27 intermediate revisions by the same user not shown) | |||
| Line 6: | Line 6: | ||
* ''' Format Type ''': Image <br> | * ''' Format Type ''': Image <br> | ||
* ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian <br> | * ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian / Big Endian <br> | ||
* ''' Signature ''': SHPI / SHPP / SHPS / SHPX / SHPM / SHPG <br> | * ''' Signature ''': SHPI / SHPP / SHPS / SHPX / SHPM / SHPG <br> | ||
| Line 24: | Line 24: | ||
4 bytes (char) - signature // "SHPI" for PC games | 4 bytes (char) - signature // "SHPI" for PC games | ||
// "SHPP" for PS1 games | // "SHPP" for PS1 games | ||
// "SHPS" for PS2 games | // "SHPS" or "ShpS" for PS2 games | ||
// | // SHPX" or "ShpX" for XBOX games | ||
// "SHPM" for PSP games | // "SHPM" for PSP games | ||
// "SHPG" for WII games | // "SHPG" for WII games | ||
| Line 191: | Line 191: | ||
|- | |- | ||
| 2 / 0x02 || unknown || 8-bit image with 256-colors swapped palette || FIFA 09 (PS2) <br>MVP Baseball 2005 (PS2) <br>NHL 2002 (PS2) | | 2 / 0x02 || unknown || 8-bit image with 256-colors swapped palette || FIFA 09 (PS2) <br>MVP Baseball 2005 (PS2) <br>NHL 2002 (PS2) <br> Medal of Honor Frontline (PS2) | ||
|- | |- | ||
| 4 / 0x04 || | | 4 / 0x04 || r8g8b8 || 24-bit image wihout palette || Medal of Honor Frontline (PS2) <br>Medal of Honor Vanguard (PS2) | ||
|- | |- | ||
| Line 200: | Line 200: | ||
|- | |- | ||
| 14 / 0x0E || unknown || 8-bit with custom EA swizzle?? || MVP Baseball 2005 (PS2) | | 14 / 0x0E || unknown || 8-bit with custom EA swizzle?? || MVP Baseball 2005 (PS2) <br>FIFA Street (PS2) | ||
|- | |- | ||
| Line 225: | Line 225: | ||
| 59 / 0x3B || | | 59 / 0x3B || Palette || Palette || Madden 08 (PSP) | ||
|- | |- | ||
| Line 244: | Line 244: | ||
|- | |- | ||
| 92 / 0x5C || unknown || unknown || Madden 08 (PSP) | |||
| 92 / 0x5C || unknown || unknown || Madden (PSP) | |||
|- | |- | ||
| 93 / 0x5D || unknown || | | 93 / 0x5D || unknown || 8-bit image with palette and PSP swizzling (R8G8B8A8) || Madden 08 (PSP) <br>Fight Night Round 3 (PSP) | ||
|- | |- | ||
| 96 / 0x60 || DXT1 || compressed image, DXT1 4x4 packed, 1-bit alpha || SimCity 4 Deluxe (PC) | | 96 / 0x60 || DXT1 || compressed image, DXT1 4x4 packed, 1-bit alpha || SimCity 4 Deluxe (PC) | ||
| Line 312: | Line 308: | ||
| ... | | ... | ||
|- | |||
| 130 / 0x82 || unknown || refpack compressed || SSX Tricky? | |||
|- | |- | ||
| Line 324: | Line 323: | ||
* PS2 games uses '''SSH''' extension, PC games uses '''FSH''' extension, PSP games uses '''MSH''' extension, <br>XBOX games uses '''XSH''' extension, PS1 games uses '''PSH''', '''ART''' and '''PSP''' extensions. | * PS2 games uses '''SSH''' extension, PC games uses '''FSH''' extension, PSP games uses '''MSH''' extension, <br>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. | * Files from XBOX games can contain images which are swizzled with Morton Order algorithm. | ||
* Similarities: | |||
** Image types 3 and 66 seems to be the same. | |||
=== Games === | === Games === | ||
| Line 335: | Line 336: | ||
* FIFA 2009 | * FIFA 2009 | ||
* FIFA 14 (PS2/PSP) | * FIFA 14 (PS2/PSP) | ||
* Fight Night Round 3 | |||
* Golden Eye Rogue Agent (PS2) | * Golden Eye Rogue Agent (PS2) | ||
* Harry Potter And The Chamber Of Secrets (PS2) | * Harry Potter And The Chamber Of Secrets (PS2) | ||
* James Bond 007: Nightfire (other than PC release) | * James Bond 007: Nightfire (other than PC release) | ||
* Madden NFL 06 (PSP) | * Madden NFL 06 (PSP) | ||
* Madden NFL 08 (PSP) | |||
* Medal of Honor: Rising Sun | * Medal of Honor: Rising Sun | ||
* Medal of Honor: Frontline | * Medal of Honor: Frontline | ||
| Line 356: | Line 359: | ||
* Need For Speed: Road Challenge | * Need For Speed: Road Challenge | ||
* Need for Speed: Undercover (PSP) (*.MSH / SHPM) | * Need for Speed: Undercover (PSP) (*.MSH / SHPM) | ||
* NHL 2001 | |||
* NHL 2002 (PS2) | * NHL 2002 (PS2) | ||
* NHL 2003 | |||
* NHL 2004 | |||
* NHL 2005 | |||
* NHL 2006 | |||
* NHL 2007 | |||
* NHL 2008 | |||
* NHL 2009 | |||
* ReBoot (PS1) (*.PSH) | * ReBoot (PS1) (*.PSH) | ||
* SimCity 4 Deluxe (PC) (*.FSH) | * SimCity 4 Deluxe (PC) (*.FSH) | ||
| Line 380: | Line 391: | ||
* [https://sc4devotion.com/csxlex/lex_filedesc.php?lotGET=2250 FSHLib] | * [https://sc4devotion.com/csxlex/lex_filedesc.php?lotGET=2250 FSHLib] | ||
* [https://community.simtropolis.com/files/file/21368-sc4tool-english/ SC4Tool] | * [https://community.simtropolis.com/files/file/21368-sc4tool-english/ SC4Tool] | ||
* [https://github.com/GlitcherOG/SSX-Collection-Multitool SSX-Collection-Multitool] | |||
* [https://community.simtropolis.com/files/file/21343-ilive-reader-093/ iLive - Reader] | * [https://community.simtropolis.com/files/file/21343-ilive-reader-093/ iLive - Reader] | ||
* [https://drive.google.com/file/d/0B2HAAT4ognPFQndKRVZ4am1NUk0/view NHLINFO] (Tool for older NHL games) | * [https://drive.google.com/file/d/0B2HAAT4ognPFQndKRVZ4am1NUk0/view NHLINFO] (Tool for older NHL games) | ||
Latest revision as of 21:48, 1 August 2023
Choose archive extension:
SSH, FSH, MSH, XSH, PSH, GSH
- Format Type : Image
- Endian Order : Little Endian / Big Endian
- Signature : SHPI / SHPP / SHPS / SHPX / SHPM / SHPG
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" or "ShpS" for PS2 games
// SHPX" or "ShpX" for XBOX games
// "SHPM" for PSP games
// "SHPG" for WII 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) Medal of Honor Frontline (PS2) |
| 4 / 0x04 | r8g8b8 | 24-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) FIFA Street (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 | Palette | Palette | Madden 08 (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 08 (PSP) |
| 93 / 0x5D | unknown | 8-bit image with palette and PSP swizzling (R8G8B8A8) | Madden 08 (PSP) Fight Night Round 3 (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) |
| ... | |||
| 130 / 0x82 | unknown | refpack compressed | SSX Tricky? |
| 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.
- Similarities:
- Image types 3 and 66 seems to be the same.
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)
- Fight Night Round 3
- Golden Eye Rogue Agent (PS2)
- Harry Potter And The Chamber Of Secrets (PS2)
- James Bond 007: Nightfire (other than PC release)
- Madden NFL 06 (PSP)
- Madden NFL 08 (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 2001
- NHL 2002 (PS2)
- NHL 2003
- NHL 2004
- NHL 2005
- NHL 2006
- NHL 2007
- NHL 2008
- NHL 2009
- 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
- SSX-Collection-Multitool
- iLive - Reader
- NHLINFO (Tool for older NHL games)
- FSH Editor
- otools
- Konvertor
- PSicture (works with PSH files)
quickBMS Scripts
Noesis Scripts
See Also
Gallery
-
EA Graphics Manager
-
EA Graphics Tools
-
FshX
-
EA Graphics Editor
-
Fsh Ed
-
nFsh Tool
-
NBA Jersey Raptor
-
GoFSH
-
ExplodePSH