Open main menu

FSH (possibly, FIFA Shape or File Shape) is an internal image type in FIFA Manager. It was used since Premier-League Managers era. It supports DXT-compression and mipmapping. The file may contain multiple images.

Contents

StructureEdit

The file starts with a header:

CHAR[4] - signature - "SHPI"
UINT32  - total file size
UINT32  - images count
CHAR[4] - tag (usually "G359")
#FOR images count
CHAR[4] - tag
UINT32  - offset to image data
#END FOR
// if there's a space (16-bytes alignment), "Buy ERTS" string is added

The header is followed by images.

Image dataEdit

Image data is an array of sections, including pixels data section, name section and other. Sections are aligned with 16 bytes. Each section starts with a header:

UINT8   - section type
UINT24  - offset to next section

After the header, section information is followed, which is individual for each section type.

Section: Pixel dataEdit

Section type (Hex) Format Description
7D 8888 32-bit image with alpha channel (8 bit)
7F 888 24-bit image without alpha channel
6D 4444 16-bit image with alpha channel (4 bit)
7E 5551 16-bit image with alpha channel (1 bit)
78 565 16-bit image without alpha channel
79 PAL4 image with palette (16 colors)
7B PAL8 image with palette (256 colors)
66 6666 24-bit image
68 484 16-bit image without alpha channel
6A 1010102 32-bit image with 10-bit RGB channels and 2-bit alpha channel
60 DXT1 compressed image (DXT1)
61 DXT3 compressed image (DXT3)
62 DXT5 compressed image (DXT5)
24 Palette 24 24-bit palette
2A Palette 32 32-bit palette
2D Palette 15 15-bit palette
29 Palette 16 16-bit palette
22 Palette 18 18-bit palette
UINT16  - width
UINT16  - height
UINT16  - center X
UINT16  - center Y
UINT12  - left X
UINT1   - internal flag (used to check if the data is owned by section)
UINT3   - unknown
UINT12  - top Y
UINT4   - levels count (mipmaps)
CHAR[]  - pixels

Section: Image nameEdit

Section type (Hex) Format Description
70 - Image name
CHAR[]  - name
CHAR    - terminating zero

Section: Metal binEdit

Section type (Hex) Format Description
69 - Metal bin
UINT16  - data size (always 64)
UINT16  - flags (0x10 - has data)
UINT64  - unknown (always 0)
CHAR[]  - data (always "EAGL64 metal bin attachment for runtime texture management")

Section: CommentEdit

Section type (Hex) Format Description
6F - Comment
UINT32  - comment size
CHAR[]  - comment (string)

Section: Hot spotEdit

Section type (Hex) Format Description
7C - Hot spot
UINT32  - number of int pairs (one region = 3 pairs), so "9" means 3 regions
#FOR num regions
UINT32  - hot-spot id
UINT32  - unknown (0)
INT32   - left X
INT32   - top Y
INT32   - width
INT32   - height
#END FOR

ToolsEdit

FSHEd by Brien Smith

GoFSH by rivit

GoFSH! by Hercules

EA Graphics Editor by Brien Smith