We just moved to a different server. Please be patient until all files and pages are restored and the MediaWiki software has been updated. Thank you

.XGM

From REWiki
Jump to: navigation, search

The .XGM file format is used in Gitaroo Man to store .IMX textures and .XG models. It also defines the models' animations, grouping their keyframes into seperate animations.

Data types used in this document (all little-endian):

  • uint32: unsigned 4-byte integer
  • float32: 4-byte floating-point decimal


Header

offset size data
+0x00 4 uint32: number of texture entries
+0x04 4 uint32: number of model entries


Texture entry

offset size data
+0x00 256 null-terminated string: path and filename
+0x100 16 null-terminated string: filename
+0x110 4 uint32: index (0 for first texture, 1 for second, etc.)
+0x114 4 uint32: texture's file size
+0x118 4 uint32: the sum of all textures' file sizes so far, not including the current one
+0x11C 4 uint32: unknown, 0 or 1
+0x120 4 uint32: unknown, 0 or 1
+0x124 12 garbage
+0x130  ? texture (.IMX file)


Model entry

offset size data
+0x00 256 null-terminated string: path and filename
+0x100 16 null-terminated string: filename
+0x110 4 uint32: index (0 for first model, 1 for second, etc.)
+0x114 4 uint32: model's file size
+0x118 4 uint32: number of animation entries. (Even models without keyframes have 1 animation entry)
+0x11C  ? animation entries, 32 bytes each:
offset size data
+0x00 4 float32: number of interpolated frames in animation. That's with 30 frames in a second (even though the game runs at 60 FPS).
+0x04 4 float32: subtract 1 from this to get the number of interpolated frames between keyframes
+0x08 4 float32: always 60.0
+0x0C 4 float32: keyframe offset, first keyframe from XG file to use for this animation. (zero-based, i.e. 0 begins at first keyframe)
+0x10 4 uint32: unknown, 0 or 1
+0x14 4 always 0?
+0x18 4 always 0?
+0x1C 4 always 0?
 ?+0x00 4 always 0?
 ?+0x04  ? model (.XG file)
Personal tools