EA SSH FSH Image: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Ikskoks
imported>Ikskoks
 
(47 intermediate revisions by the same user not shown)
Line 3: Line 3:
Choose archive extension:  
Choose archive extension:  


== SSH, FSH, MSH, XSH, PSH ==  
== SSH, FSH, MSH, XSH, PSH, GSH ==  


* ''' 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 <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
                             // SHPX" or "ShpX" for XBOX games
                             // "SHPM" for PSP games
                             // "SHPM" for PSP games
                            // "SHPG" for WII games
4 bytes (uint32) - total file size
4 bytes (uint32) - total file size
4 bytes (uint32) - number of entries
4 bytes (uint32) - number of entries
Line 168: Line 169:
2 bytes (uint16) - unknown // always 0
2 bytes (uint16) - unknown // always 0
2 bytes (uint16) - unknown // always 0
2 bytes (uint16) - unknown // always 0
1 byte (uint8) - unknown
2 bytes (uint16) - unknown


// palette data
// palette data
x bytes - data  // 1024 bytes for 256-color palette
x bytes - data  // e.g. 1024 bytes for 256-color palette
</pre>
</pre>
</div>
</div>
Line 190: 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                || unknown           || 8-bit image wihout palette                                || Medal of Honor Frontline (PS2)  <br>Medal of Honor Vanguard (PS2)
|    4  / 0x04                || r8g8b8           || 24-bit image wihout palette                                || Medal of Honor Frontline (PS2)  <br>Medal of Honor Vanguard (PS2)
|-
|-


Line 199: 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 224: Line 225:




|    59  / 0x3B                || unknown           || unknown                                                 || Madden (PSP)
|    59  / 0x3B                || Palette           || Palette                                                 || Madden 08 (PSP)
|-
|-




|    64 / 0x40                || unknown            || 4-bit image with 16-colors palette (palette type 35)                    || NBA Live 97 (PS1)
|    64 / 0x40                || R5G5B5P1          || 4-bit image with 16-colors palette (palette type 35)                    || NBA Live 97 (PS1) <br> ReBoot (PS1)
|-
|-


|    65 / 0x41                || unknown            || 8-bit image with 256-colors palette (15 bits per color in palette)      || NBA Live 97 (PS1)
|    65 / 0x41                || R5G5B5P1          || 8-bit image with 256-colors palette (15 bits per color in palette) (palette type 35)      || NBA Live 97 (PS1) <br> ReBoot (PS1)
|-
|-


|    66 / 0x42                || unknown           || 16-bit image, no palette                                || NBA Live 97 (PS1)
|    66 / 0x42                || R5G5B5P1           || 16-bit image, no palette                                || NBA Live 97 (PS1) <br> ReBoot (PS1)
|-
|-


Line 243: Line 244:
|-
|-


 
|    92  / 0x5C                || unknown          || unknown                                            || Madden 08 (PSP)
|    92  / 0x5C                || unknown          || unknown                                            || Madden (PSP)
|-
|-


|    93  / 0x5D                || unknown          || unknown                                            || Madden (PSP)
|    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 311: Line 308:


| ...
| ...
|-
|    130 / 0x82              || unknown              || refpack compressed                                    || SSX Tricky?
|-
|-


Line 323: 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 334: 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
* 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 355: 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)
* SimCity 4 Deluxe (PC) (*.FSH)
* SimCity 4 Deluxe (PC) (*.FSH)
* SSX Tricky
* SSX Tricky
Line 378: 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)
Line 429: Line 443:
[[Category:LZSS compression]]
[[Category:LZSS compression]]
[[Category:Huffman compression]]
[[Category:Huffman compression]]
[[Category:Refpack compression]]
[[Category:Format_Image | Type: Image]]
[[Category:Format_Image | Type: Image]]
[[Category:Extension_fsh | Extension: fsh]]
[[Category:Extension_fsh | Extension: fsh]]

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

quickBMS Scripts

Noesis Scripts

See Also



Gallery