Graphic Image Map (GIM): Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 31: Line 31:


==GIM header==
==GIM header==
{| class="wikitable" style="font-size:small;"
|-
! Offset !! Length !! Example !! Name !! Notes
|-
| 0x00 || 0x04 || 2E 47 49 4D || {{cellcolors|#666666|#ffffff}} '''gim_signature''' || .GIM
|-
| 0x04 || 0x04 || 31 2E 30 30 || {{cellcolors|#666666|#ffffff}} '''gim_version''' || 1.00
|-
| 0x08 || 0x04 || 00 50 53 50 || {{cellcolors|#666666|#ffffff}} '''gim_type''' || PSP
|-
| 0x0C || 0x04 || 00 00 00 00 || {{cellcolors|#666666|#ffffff}} <abbr title="unknown">''gim_unk''</abbr> || Always 0x00 ?
|}


==Block headers (generic)==
==Block headers (generic)==

Revision as of 19:24, 13 April 2018

Description

Graphic Image Map ? (GIM) is an image format, allows for tenths of different storage settings and by combining settings results in hundreds (or thousands) of different GIM files that are structurally different, to simplify concepts people is naming this different GIM files as "GIM formats" but strictly speaking the GIM format is always the same, the amount of GIM formats used in PlayStation consoles is limited though (restricted by the graphic enviroment, libraries, etc...). GIM files was found used in PSP and PS3 firmwares inside Resource Container (RCO) files, PlayStation 3 Theme (P3T) files, etc... See GimConv and Multimedia Formats and Tools#GIM

The acronym of GIM used in this wiki (Graphic Image Map) is an speculative unnofficial name based in how the data is stored in the internal GIM structure, if someone finds the official codename somewhere please report back and we will change it

Structure

  • Overview
00000000  2E 47 49 4D 31 2E 30 30 00 50 53 50 00 00 00 00  .GIM1.00.PSP....
00000010  00 02 00 00 00 00 01 0C 00 00 00 10 00 00 00 10  ................
00000020  00 03 00 00 00 00 00 A0 00 00 00 10 00 00 00 10  ....... ........
00000030  00 04 00 00 00 00 00 90 00 00 00 90 00 00 00 10  ................
00000040  00 30 00 00 00 03 00 00 00 04 00 04 00 20 00 10  .0........... ..
00000050  00 01 00 02 00 00 00 00 00 00 00 30 00 00 00 40  ...........0...@
00000060  00 00 00 80 00 00 00 00 00 01 00 01 00 03 00 01  ...€............
00000070  00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00  ...@............
00000080  C0 FF EE 00 C0 FF EE 00 C0 FF EE 00 C0 FF EE 00  Àÿî.Àÿî.Àÿî.Àÿî.
00000090  C0 FF EE 00 C0 FF EE 00 C0 FF EE 00 C0 FF EE 00  Àÿî.Àÿî.Àÿî.Àÿî.
000000A0  C0 FF EE 00 C0 FF EE 00 C0 FF EE 00 C0 FF EE 00  Àÿî.Àÿî.Àÿî.Àÿî.
000000B0  C0 FF EE 00 C0 FF EE 00 C0 FF EE 00 C0 FF EE 00  Àÿî.Àÿî.Àÿî.Àÿî.
000000C0  00 FF 00 00 00 00 00 5C 00 00 00 5C 00 00 00 10  .ÿ.....\...\....
000000D0  34 78 34 5F 43 30 46 46 45 45 5F 33 32 62 69 74  4x4_C0FFEE_32bit
000000E0  73 2E 62 6D 70 00 41 64 6D 69 6E 69 73 74 72 61  s.bmp.Administra
000000F0  74 6F 72 00 46 72 69 20 41 70 72 20 31 33 20 30  tor.Fri Apr 13 0
00000100  31 3A 35 37 3A 34 37 20 32 30 31 38 00 47 69 6D  1:57:47 2018.Gim
00000110  43 6F 6E 76 20 31 2E 32 30 68 00 00              Conv 1.20h..
  • Blocks are aligned to 4 bytes boundary, the byte at the end in the example is padding

GIM header

Offset Length Example Name Notes
0x00 0x04 2E 47 49 4D gim_signature .GIM
0x04 0x04 31 2E 30 30 gim_version 1.00
0x08 0x04 00 50 53 50 gim_type PSP
0x0C 0x04 00 00 00 00 gim_unk Always 0x00 ?

Block headers (generic)

Offset Length Example Name Notes
0x00 0x02 00 02 block_id Block identifyer (see below)
0x02 0x02 00 00 block_unk1 Always 0x00 ?
0x04 0x04 00 00 01 0C block_size Size of this block + size of all the children blocks
0x08 0x04 00 00 00 10 block_next Next block, relative offset
0x0C 0x04 00 00 00 10 block_unk2 Always 0x10 ?

Block data (by block ID)

This is a representation of the block hierarchy in the example:

GIM
 -0x02
   -0x03
     -0x04
   -0xFF

0x02 (root)

Empty/unknown. The direct childrens are 0x03 and 0x0FF

0x03

Empty/unknown. The direct child is 0x04

0x04 (bitmap)

0x05

0xFF (footer)

Footer size is variable, composed by strings of variable lenght null terminated:

  • 4x4_C0FFEE_32bits.bmp (original file name)
  • Administrator (windows user account)
  • Fri Apr 13 01:57:47 2018 (timestamp)
  • GimConv 1.20h (GimConv.exe version used to create the GIM file)

Links