Сегодня ради интереса был изучен алгоритма распаковки в игре Comix Zone.
Оказалось это всего лишь обычный LZSS.
По-быстрому набросал кодер. Возможны баги. Если будут исправлю. Может ещё что-нибудь добавлю. Кодер сжимает данные оптимальнее, чем у разработчиков.
В поле Address указываем адрес на сжатый блок. У каждого сжатого блока есть заголовок. Для тайлов два байта, для карты тайлов 4 байта. Распакованная карта также имеет заголовок в 4 байта. Два байта ширина карты в тайлах. И 2 байта высота карты в тайлах. Для примера по адресу $125CF8 находится сжатый блок тайлов. По адресу $126986 находится сжатая карта тайлов.
Отредактировано Марат (2013-01-23 07:14:42)