GIM Image: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Ikskoks
imported>Ikskoks
 
(67 intermediate revisions by 3 users not shown)
Line 20: Line 20:
                           //  null - PS3 or std
                           //  null - PS3 or std
4 bytes - reserved
4 bytes - reserved


// block headers
// block headers
num_of_headers *
num_of_blocks *
{
{
   2 bytes (uint16) - block ID // 0x02 - Root
   2 bytes (uint16) - block ID // 0x01 - Block
                              // 0x02 - Root
                               // 0x03 - Picture
                               // 0x03 - Picture
                               // 0x04 - Image
                               // 0x04 - Image
                               // 0x05 - Palette
                               // 0x05 - Palette
                              // 0x06 - Sequence
                               // 0xFF - File info
                               // 0xFF - File info
   2 bytes (uint16) - unknown    // 0x00 or 0x10
 
   2 bytes (uint16) - unused
   4 bytes (uint32) - block size
   4 bytes (uint32) - block size
   4 bytes (uint32) - next block relative offset
   4 bytes (uint32) - next block relative offset
   4 bytes (uint32) - block data relative offset
   4 bytes (uint32) - block data relative offset
}
}


Line 38: Line 43:
num_of_blocks *
num_of_blocks *
{
{
   x bytes - block data
   x bytes - block data // See "Related Structures" section
                        // for more details
}
}
</pre>
</pre>
</div>
</div><br><br>
 
=== Related Structures ===
 
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
<pre>
// Image block (0x04) data
 
 
// image header
2 bytes (uint16) - header size
2 bytes (uint16) - reference
2 bytes (uint16) - image format  // 0x00 = RGBA5650 (16 bit no alpha)
                                // 0x01 = RGBA5551 (16 bit sharp alpha)
                                // 0x02 = RGBA4444 (16 bit gradient alpha)
                                // 0x03 = RGBA8888 (32 bit gradient alpha)
                                // 0x04 = INDEX4 (16 colors)
                                // 0x05 = INDEX8 (256 colors)
                                // 0x06 = INDEX16 (16 colors with alpha)
                                // 0x07 = INDEX32 (256 colors with alpha)
                                // 0x08 = DXT1 (no alpha)
                                // 0x09 = DXT3 (sharp alpha)
                                // 0x0A = DXT5 (gradient alpha)
                                // 0x108 = DXT1EXT
                                // 0x109 = DXT3EXT
                                // 0x10A = DXT5EXT
 
2 bytes (uint16) - pixel order // 0x00 - NORMAL
                              // 0x01 - PSPIMAGE
 
2 bytes (uint16) - image/palette width
2 bytes (uint16) - image/palette height
2 bytes (uint16) - image/palette bpp alignment
2 bytes (uint16) - image/palette pitch alignment
2 bytes (uint16) - image/palette height alignment
2 bytes (uint16) - dimension count // e.g. 2
2 bytes (uint16) - reserved
2 bytes (uint16) - reserved
4 bytes (uint32) - index relative start offset // e.g. 0
4 bytes (uint32) - first plane relative start offset
4 bytes (uint32) - last plane relative start offset
4 bytes (uint32) - plane mask
2 bytes (uint16) - level type  // 0x00 - GENERIC
                              // 0x01 - MIPMAP
                              // 0x02 - MIPMAP2
                              // 0x03 - SEQUENCE
2 bytes (uint16) - level/mipmap count
2 bytes (uint16) - frame type
2 bytes (uint16) - frame count
 
x bytes - optional user data
x bytes - padding
 
4 bytes (uint32) - frame offset  // e.g. 64
0-12 bytes - padding
 
 
// data
x bytes - image/palette data
</pre>
</div><br><br>
 
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
<pre>
// File Info block (0xFF) data
 
22 bytes (char) - original filename
14 bytes (char) - Windows user account
25 bytes (char) - creation timestamp
14 bytes (char) - GimConv version
0-3 bytes - optional padding
</pre>
</div><br><br>
 
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;">
<pre>
// Sequence block (0x06) data
 
2 bytes (uint16) - header size
2 bytes (uint16) - reference
2 bytes (uint16) - frame start
2 bytes (uint16) - frame end
2 bytes (uint16) - frame rate
2 bytes (uint16) - frame repeat
2 bytes (uint16) - n constants
2 bytes (uint16) - n functions
4 bytes (uint32) - constants
4 bytes (uint32) - functions
4 bytes (uint32) - keyframes
4 bytes (uint32) - total
 
x bytes - sequence data
</pre>
</div><br><br>


=== MultiEx BMS Script ===  
=== MultiEx BMS Script ===  
Line 50: Line 149:


* This file format occurs in PSP and PS2 games.
* This file format occurs in PSP and PS2 games.
* Files with this file format can have extension ".gim" or ".mig".
* Command for proper GIM to PNG conversion is "gimconv.exe in.gim -o out.png" for gimconv tool.


=== Compatible Programs ===  
=== Compatible Programs ===  
Line 62: Line 163:
* [http://www.romhacking.net/utilities/659/ TextER]
* [http://www.romhacking.net/utilities/659/ TextER]
* [http://tizzyt-archive.blogspot.com/2013/10/gis2png.html gis2png]
* [http://tizzyt-archive.blogspot.com/2013/10/gis2png.html gis2png]
* GIM Viewer
* [http://ka244.cocolog-nifty.com/blog/files/mig_bmp_tools_kmax.zip mig2bmp / bmp2mig]
* [http://ka244.cocolog-nifty.com/blog/files/mig_bmp_tools_kmax.zip mig2bmp / bmp2mig]
* OPTIX iMage studio
* OPTIX iMage studio
* [https://archive.org/details/DissidiaModdingSuite Dissidia Modding Suite] (it includes GimConv and gim2png)
* [https://richwhitehouse.com/index.php?content=inc_projects.php&showproject=91 Noesis]
* [https://richwhitehouse.com/index.php?content=inc_projects.php&showproject=91 Noesis]


=== Games ===  
=== Games ===  
List of games using this file format:
List of games using this file format:
* Yu-Gi-Oh! Tag Force
* Ano Hi Mita Hana no Namae o Bokutachi wa Mada Shiranai
* Yu-Gi-Oh! Tag Force 2  
* Boku wa Tomodachi ga Sukunai Portable (PSP) (*.DAT)
* Corpse Party (PSP) (*.GIM)
* Danganronpa: Kibou no Gakuen to Zetsubou no Koukousei
* Dissidia: Final Fantasy
* Otome wa Boku ni Koishiteru Portable
* Super Danganronpa 2: Farewell Despair Academy
* Sword Art Online: Infinity Moment
* Yu-Gi-Oh! GX Tag Force
* Yu-Gi-Oh! GX Tag Force Evolution
* Yu-Gi-Oh! GX Tag Force 2
* Yu-Gi-Oh! GX Tag Force 3
* Yu-Gi-Oh! 5D's Tag Force 4
* Yu-Gi-Oh! 5D's Tag Force 5
* Yu-Gi-Oh! 5D's Tag Force 6
* Yu-Gi-Oh! ARC-V Tag Force Special


=== See Also ===  
=== See Also ===  
Line 76: Line 193:




[[Category:Complete WIP|GIM Image]]
[[Category:Complete Complete|GIM Image]]
[[Category:Platform PSP|GIM Image]]
[[Category:Platform PSP|GIM Image]]
[[Category:Platform PS2|GIM Image]]
[[Category:Platform PS2|GIM Image]]

Latest revision as of 17:31, 29 June 2023

Back to index | Edit this page

GIM

  • Format Type : Image
  • Endian Order : Little Endian / Big Endian


Format Specifications

// GIM image 
// file format


// header
4 bytes (char) - magic  // "MIG." or ".GIM"
4 bytes (char) - version  // "1.00" or "00.1"
4 bytes (char) - platform  //  "PSP" - PSP
                           //  null - PS3 or std
4 bytes - reserved


// block headers
num_of_blocks *
{
   2 bytes (uint16) - block ID // 0x01 - Block
                               // 0x02 - Root
                               // 0x03 - Picture
                               // 0x04 - Image
                               // 0x05 - Palette
                               // 0x06 - Sequence
                               // 0xFF - File info

   2 bytes (uint16) - unused
   4 bytes (uint32) - block size
   4 bytes (uint32) - next block relative offset
   4 bytes (uint32) - block data relative offset

}

// block data
num_of_blocks *
{
   x bytes - block data  // See "Related Structures" section
                         // for more details
}



Related Structures

// Image block (0x04) data


// image header
2 bytes (uint16) - header size
2 bytes (uint16) - reference
2 bytes (uint16) - image format  // 0x00 = RGBA5650 (16 bit no alpha)
                                 // 0x01 = RGBA5551 (16 bit sharp alpha)
                                 // 0x02 = RGBA4444 (16 bit gradient alpha)
                                 // 0x03 = RGBA8888 (32 bit gradient alpha)
                                 // 0x04 = INDEX4 (16 colors)
                                 // 0x05 = INDEX8 (256 colors)
                                 // 0x06 = INDEX16 (16 colors with alpha)
                                 // 0x07 = INDEX32 (256 colors with alpha)
                                 // 0x08 = DXT1 (no alpha)
                                 // 0x09 = DXT3 (sharp alpha)
                                 // 0x0A = DXT5 (gradient alpha)
                                 // 0x108 = DXT1EXT
                                 // 0x109 = DXT3EXT
                                 // 0x10A = DXT5EXT

2 bytes (uint16) - pixel order // 0x00 - NORMAL
                               // 0x01 - PSPIMAGE

2 bytes (uint16) - image/palette width
2 bytes (uint16) - image/palette height
2 bytes (uint16) - image/palette bpp alignment
2 bytes (uint16) - image/palette pitch alignment
2 bytes (uint16) - image/palette height alignment
2 bytes (uint16) - dimension count // e.g. 2
2 bytes (uint16) - reserved
2 bytes (uint16) - reserved
4 bytes (uint32) - index relative start offset // e.g. 0
4 bytes (uint32) - first plane relative start offset
4 bytes (uint32) - last plane relative start offset
4 bytes (uint32) - plane mask
2 bytes (uint16) - level type  // 0x00 - GENERIC
                               // 0x01 - MIPMAP
                               // 0x02 - MIPMAP2
                               // 0x03 - SEQUENCE
2 bytes (uint16) - level/mipmap count
2 bytes (uint16) - frame type
2 bytes (uint16) - frame count

x bytes - optional user data
x bytes - padding

4 bytes (uint32) - frame offset  // e.g. 64
0-12 bytes - padding


// data
x bytes - image/palette data



// File Info block (0xFF) data

22 bytes (char) - original filename
14 bytes (char) - Windows user account
25 bytes (char) - creation timestamp
14 bytes (char) - GimConv version
0-3 bytes - optional padding



// Sequence block (0x06) data

2 bytes (uint16) - header size
2 bytes (uint16) - reference
2 bytes (uint16) - frame start
2 bytes (uint16) - frame end
2 bytes (uint16) - frame rate
2 bytes (uint16) - frame repeat
2 bytes (uint16) - n constants
2 bytes (uint16) - n functions
4 bytes (uint32) - constants
4 bytes (uint32) - functions
4 bytes (uint32) - keyframes
4 bytes (uint32) - total

x bytes - sequence data



MultiEx BMS Script

Not written yet.

Notes and Comments

  • This file format occurs in PSP and PS2 games.
  • Files with this file format can have extension ".gim" or ".mig".
  • Command for proper GIM to PNG conversion is "gimconv.exe in.gim -o out.png" for gimconv tool.

Compatible Programs

Games

List of games using this file format:

  • Ano Hi Mita Hana no Namae o Bokutachi wa Mada Shiranai
  • Boku wa Tomodachi ga Sukunai Portable (PSP) (*.DAT)
  • Corpse Party (PSP) (*.GIM)
  • Danganronpa: Kibou no Gakuen to Zetsubou no Koukousei
  • Dissidia: Final Fantasy
  • Otome wa Boku ni Koishiteru Portable
  • Super Danganronpa 2: Farewell Despair Academy
  • Sword Art Online: Infinity Moment
  • Yu-Gi-Oh! GX Tag Force
  • Yu-Gi-Oh! GX Tag Force Evolution
  • Yu-Gi-Oh! GX Tag Force 2
  • Yu-Gi-Oh! GX Tag Force 3
  • Yu-Gi-Oh! 5D's Tag Force 4
  • Yu-Gi-Oh! 5D's Tag Force 5
  • Yu-Gi-Oh! 5D's Tag Force 6
  • Yu-Gi-Oh! ARC-V Tag Force Special

See Also