CHK
Материал из GTAModding.ru
Версия от 20:13, 2 октября 2013; DenielX (обсуждение | вклад)
Основные данные
.CHK/.XTX - формат, использующийся для хранения игровой графики в GTA Vice City Stories и GTA Liberty City Stories.Отмечу что структура .CHK/.XTX совпадают как между собой,так и между самими Stories'ами.Данный формат используется только в этих играх и только на платформе PSP.
Немного о строении.
Так как формат используется в консоли с малым объёмом ОЗУ,Рокстар пришлось разработать хитрую систему меток и указателей,которые в свою очередь записаны в специальной таблице по возрастанию от большего к меньшему(relocation table),которая всегда находится в самом конце файла(в отличие от остальных секций,которые могут быть где угодно(кроме заголовка)). В краце графический формат устроен так: 1.Блок графики(4 или 8 бит на цвет). (между могут быть описатели) 2.Палитра-4 байта на цвет(RGBA,альфа-слой можно обозначить,записав FFFFFFFF в 1-ый цвет палитры).
Редактирование/просмотр:
1.[GTA Stories Texture Explorer]
3.[GTA Stories Texture Viewer]
4.Gimp+RAWTex plug-in
Структура
Заголовок: 0x00-4 bytes-сигнатура "xet" 0x04-4 bytes-отступ(нули) 0x08-4 bytes-hex-dword-размер буфера ОЗУ,выделяемый на загрузку текстуры(не изображения) 0x0c-4 bytes-hex-dword-указатель на relocation table 0x10-4 bytes-hex-dword-указатель на relocation table(дубляж) 0x14-4 bytes-dec.-количество переходов в relocation table(1 переход-4 байта) 0x18-8 bytes-отступ(нули) 0x20-4 bytes-hex Спец.метки: 1)06010000-для обычных объектов 2)06CC0000-для объектов требующих быстрой загрузки(как объектов на карте,так и некоторых загрузочных экранов) 0x24-4 bytes-отступ(нули) 0x28-4 bytes-hex-dword-указатель на имя 1-ого загружаемого изображения и ещё некоторых его параметров 0x2c-4 bytes-hex-dword-указатель на имя 2-ого загружаемого изображения и ещё некоторых его параметров(дубляж 0x28,если в текстуре одно изображение)
Отмечу что указатели направляют на секцию с именем,в которой такие же указатели перенаправляют и дальше вплоть до 1-ого адреса с которого началось перенаправление или на начало другого цикла перенаправлений.Все циклы перенаправлений в одной текстуре записаны по возрастанию в relocation table.
0x30-8 bytes-hex-"CC",если в адресе 0x20 записано 06CC0000 или 0x30-8 bytes-hex-"00",если в адресе 0x20 записано 06010000