Wiki

Clone wiki

p12simtran / fmt_mult

Формат файла MULT

MULT - это графический формат анимаций и картинок, используемый играх студии «Сатурн-плюс». Стоит отметить, что формат довольно хорошо сжимает изображения, если они содержат строки одинаковых пикселей.

Палитра файла рассчитана на 4094 цвета. Структура самих изображений представляет из себя серию пикселей изображения закодированных алгоритмом, похожим на RLE. На один цвет выделяет 2 байта (16 бит): 12 бит - на индекс, 4 бита - на количество пикселей. Нетрудно догадаться, что максимальная длина строки из пикселей одного цвета может достигать 16 пикселей (0b1111 + 1). Изображение записано по строкам: если ширина изображения не кратна 16, в конце строки количество пикселей равно остатку от деления ширины на 16.

У формата есть один минус: хоть в начале и указано количество используемых цветов в палитре, в файл всё равно записана полная палитра на 4094 цвета. Значение неиспользуемых цветов равно 0x00.

Структура файла:

  • Количество кадров (uint32)
  • Количество цветов в палитре (uint32)
  • Палитра на 4094 цвета (на каждый цвет отводится 4 байта - BGRA, всего нужно прочитать 16376 байт)
  • for each frame
  • Размер кадра в байтах (uint32)
  • Количество подкадров (uint32)
  • for each subframe
  • Неизвестные данные (52 байта)
  • Размер изображения в zlib (uint32) [-64 байта] [-8 байт (координаты)]
  • Ширина изображения (uint32)
  • Высота изображения (uint32)

Структура закодированного изображения в zlib:

  • Начало серии по 2 байта на цвет
  • Количество пикселей (4 бита) [+1]
  • Индекс цвета в палитре (12 бит)

Updated