file:default skin zip
[[file:default_skin_zip]] last edit on Feb 12, 2009 9:40 PM by Anonymous
Download: default_skin.zip
Size: 71.352 kilobytes
Uploaded : 2009-02-12 21:40:47.0


Skin format


Skin files start with a 4 byte header of 'MXS\1', followed by a chunk.

Chunk format (one or more times):
  • Char: Entry type
  • VarInt: Entry size
  • Data follows

A VarInt is defined as:
  • i < 0x80 is stored as single byte 'i'
  • 0x80 < i < 0xFF is stored as '0x81 i'
  • 0x100 < 0xFFFF is stored as '0x82 hi(i) lo(i)' (network/big-endian byte order)

'Known' Entry types:
  • 0x02: File attribute for midi files
  • 0x04: File data
  • 0x0A: File attribute for multi-image images
  • 0x0C: File attribute for splash images (notice that png image data starts at byte 12 of data)

  • 0x60: Skin root
  • 0x61: Unknown (seems contain 0x80 and 0xa3)
  • 0x62: Unknown
  • 0x63: Multi-image PNG image
  • 0x68: PNG image
  • 0x6d: Splash image
  • 0x6e: Midi file

  • 0x80 - 0x8f: Unknowns, seen on various nodes - possibly extended attributes, or positional information?

  • 0xa1: List of splash images (0x6d)
  • 0xa2: List of midi files (0x6e) (also seen on 0x68 png files)
  • 0xa3: List of multi-image png images (0x63)
  • 0xa5: List of unknowns (0x62)
  • 0xa6: List of PNG images (0x68)
  • 0xa8: List of unknowns (0x61) (also list of file attributes 0x2 and 0xa)

  • 0x60 - 0x6F and 0xa0 - 0xaf: These act as containers for another chunk, so they must be recursively parsed.

Parsed Default Skin

file:default_skin.zip
Python Skin Parser