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]

2.[Console 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