CHK — различия между версиями

Материал из GTAModding.ru
Перейти к: навигация, поиск
м (Заголовок коллекции ресурсов)
 
(не показаны 16 промежуточных версий 5 участников)
Строка 1: Строка 1:
 
== Основные данные ==
 
== Основные данные ==
  
.CHK/.XTX/.TEX - форматы, использующиеся для хранения игровой графики в [[GTA LCS]], [[GTA VCS]] и [[Manhunt 2]].
+
.CHK/.XTX/.TEX - форматы, использующиеся для хранения игровой графики в [[GTA LCS]], [[GTA VCS]] и [[Manhunt 2]]. Представляют собой коллекцию контейнеров (платформо-независимые), содержащие внутри растровую графику (формат текстур соответствует игровой платформе, т.е. свой для PSP, PS2, Wii и PC (Windows)). Для чтения текстур из LCS/VCS широко распространена программа [[GTA Stories Texture Viewer]] от Aru, для текстур из Manhunt 2 - [[Manhunt 2 TEX Workshop]] от Majestic.
  
 
== Структура ==
 
== Структура ==
  
 
=== Заголовок коллекции ресурсов ===
 
=== Заголовок коллекции ресурсов ===
   0x00 4b: сигнатура "xet" (для сториесов) или "TCDT" (для Manhunt 2)
+
   0x00 4b: сигнатура "xet" (для LCS/VCS) или "TCDT" (для Manhunt 2)
   0x04 4b: 0 (для сториесов) или 1 (для Manhunt 2)
+
   0x04 4b: 0 (для LCS/VCS) или 1 (для Manhunt 2)
 
   0x08 4b: размер коллекции
 
   0x08 4b: размер коллекции
 
   0x0C 4b: адрес на начало глобалсекции (таблицы адресов для всех подсекций в CHK)
 
   0x0C 4b: адрес на начало глобалсекции (таблицы адресов для всех подсекций в CHK)
Строка 13: Строка 13:
 
   0x14 4b: количество оффсетов в глобалсекции
 
   0x14 4b: количество оффсетов в глобалсекции
  
   0x20 1b: всегда 6 (стоиесы) или количество контейнеров в коллекции (Manhunt 2)
+
   0x20 1b: всегда 6 (для LCS/VCS) или количество контейнеров в коллекции (Manhunt 2)
   0x21 3b: флаги коллекции текстур
+
   0x21 1b: флаг связанный с приоритетом загрузки и отрисовки на GPU
   0x24 4b: 0 (для стоиесов) или оффсет на оффсет первого контейнера (Manhunt 2)
+
          -0xCC для катсцен/миссий/внешних скриптов
   0x28 4b: оффсет на оффсет первого контейнера (сториесы) или оффсет на оффсет последнего контейнера (Manhunt 2)
+
          -0x01/0x86(PSP/PS2) для всех остальных объектов
   0x2C 4b: оффсет на оффсет последнего контейнера (сториесы)
+
  0x22 2b: 0 (для LCS/VCS)
 +
   0x24 4b: 0 (для LCS/VCS) или оффсет на оффсет первого контейнера (Manhunt 2)
 +
   0x28 4b: оффсет на оффсет первого контейнера (LCS/VCS) или оффсет на оффсет последнего контейнера (Manhunt 2)
 +
   0x2C 4b: оффсет на оффсет последнего контейнера (LCS/VCS)
 +
  0x30 8b: связан с синхронизацией загрузки текстур и адресом 0x21
 +
          -все 0xCC:TexSync включен(остановка конвеера до полного копирования в память,0x21=0xCC)
 +
          -все 0x00(PSP,PS2 первый байт-0x01):TexSync выключен(0x21=0x86/0x01)
  
 
=== Заголовок контейнера ресурса ===
 
=== Заголовок контейнера ресурса ===
  (только для сториесов)
+
 
 +
  (только для LCS/VCS)
 
   4b: оффсет на заголовок текстуры
 
   4b: оффсет на заголовок текстуры
   4b: 20
+
   4b: оффсет на заголовок коллекции ресурсов
 
  (общая часть заголовка)
 
  (общая часть заголовка)
 
   4b: оффсет на оффсет предыдущего контейнера
 
   4b: оффсет на оффсет предыдущего контейнера
 
   4b: оффсет на оффсет следующего контейнер
 
   4b: оффсет на оффсет следующего контейнер
   64b: имя текстуры (до нулевого бита, после которого записывается мусор)
+
   64b: имя текстуры (до нулевого бита)
 +
  4b: флаг 0x01,необходим для движка(после загрузки в RAM - 0x02)
 
  (только для Manhunt 2)
 
  (только для Manhunt 2)
 
   4b: длинна текстуры
 
   4b: длинна текстуры
Строка 33: Строка 41:
 
   4b: неизвестно
 
   4b: неизвестно
 
   4b: 8
 
   4b: 8
   4b: неизвестно
+
   2b: количество мип-мап уровней
 +
  2b: неизвестно
 
   4b: оффсет на заголовок текстуры (PC версия Manhunt 2) или растр текстуры (PS2 версия Manhunt 2)
 
   4b: оффсет на заголовок текстуры (PC версия Manhunt 2) или растр текстуры (PS2 версия Manhunt 2)
 
   4b: неизвестно (PC версия Manhunt 2) или оффсет на палитру текстуры (PS2 версия Manhunt 2)
 
   4b: неизвестно (PC версия Manhunt 2) или оффсет на палитру текстуры (PS2 версия Manhunt 2)
Строка 39: Строка 48:
 
=== Заголовок текстуры (PSP LCS) ===
 
=== Заголовок текстуры (PSP LCS) ===
  
''Информация будет добавлена позже...''
+
====CHK====
 +
 
 +
  Размер заголока: 16 байт
 +
  4b: unknown 0
 +
  4b: оффсет на растр
 +
  2b: ширина растра для свиззлинга (у 4х-битной текстуры равно половине ширины растра)
 +
  1b: ширина растра (степень двойки)
 +
  1b: высота растра (степень двойки)
 +
  1b: BPP
 +
  1b: кол-во мип-мапов (включая основную текстуру)
 +
  2b: unknown 0x4504
 +
 
 +
====WRLD====
  
=== Заголовок текстуры (PS2 LCS) ===
+
  Размер заголовка: 8 байт
 +
  16bit: padding 0xAAAA
 +
  4bit: ширина растра (степень двойки)
 +
  4bit: высота растра (степень двойки)
 +
  4bit: кол-во мип-мапов (исключая основную текстуру)
 +
  4bit: BPP
 +
  4b: оффсет на растр
  
''Информация будет добавлена позже...''
+
=== Заголовок текстуры (PS2 LCS/VCS) ===
 +
 
 +
  (только для VCS)
 +
  4b: unknown 0
 +
  4b: unknown
 +
  (общая часть заголовка)
 +
  4b: оффсет на растр
 +
  4b: Параметры растра, где:
 +
  <source lang="html4strict">  8bit: Маска использования свизлинга по мип-уровням
 +
  4bit: Кол-во мип-уровней
 +
  8bit: Глубина
 +
  6bit: Ширина (степень двойки)
 +
  6bit: Высота (степень двойки)</source>
  
 
=== Заголовок текстуры (PSP VCS) ===
 
=== Заголовок текстуры (PSP VCS) ===
 +
====CHK====
  
''Информация будет добавлена позже...''
+
Размер заголока: 16 байт
 +
4b: unknown 0
 +
4b: оффсет на растр
 +
2b: ширина растра для свиззлинга (у 4х-битной текстуры равно половине ширины растра)
 +
1b: ширина растра (степень двойки)
 +
1b: высота растра (степень двойки)
 +
1b: BPP
 +
1b: кол-во мип-мапов (включая основную текстуру)
 +
1b: unknown 0
 +
1b: флаг метода unswizzling'а:
 +
    0x45-для 4bit
 +
    0x25-для 8bit
  
 
=== Заголовок текстуры (PS2 VCS) ===
 
=== Заголовок текстуры (PS2 VCS) ===

Текущая версия на 05:41, 9 декабря 2020

Содержание

Основные данные

.CHK/.XTX/.TEX - форматы, использующиеся для хранения игровой графики в GTA LCS, GTA VCS и Manhunt 2. Представляют собой коллекцию контейнеров (платформо-независимые), содержащие внутри растровую графику (формат текстур соответствует игровой платформе, т.е. свой для PSP, PS2, Wii и PC (Windows)). Для чтения текстур из LCS/VCS широко распространена программа GTA Stories Texture Viewer от Aru, для текстур из Manhunt 2 - Manhunt 2 TEX Workshop от Majestic.

Структура

Заголовок коллекции ресурсов

 0x00 4b: сигнатура "xet" (для LCS/VCS) или "TCDT" (для Manhunt 2)
 0x04 4b: 0 (для LCS/VCS) или 1 (для Manhunt 2)
 0x08 4b: размер коллекции
 0x0C 4b: адрес на начало глобалсекции (таблицы адресов для всех подсекций в CHK)
 0x10 4b: адрес на начало глобалсекции (повторяется)
 0x14 4b: количество оффсетов в глобалсекции
 0x20 1b: всегда 6 (для LCS/VCS) или количество контейнеров в коллекции (Manhunt 2)
 0x21 1b: флаг связанный с приоритетом загрузки и отрисовки на GPU
          -0xCC для катсцен/миссий/внешних скриптов
          -0x01/0x86(PSP/PS2) для всех остальных объектов
 0x22 2b: 0 (для LCS/VCS)
 0x24 4b: 0 (для LCS/VCS) или оффсет на оффсет первого контейнера (Manhunt 2)
 0x28 4b: оффсет на оффсет первого контейнера (LCS/VCS) или оффсет на оффсет последнего контейнера (Manhunt 2)
 0x2C 4b: оффсет на оффсет последнего контейнера (LCS/VCS)
 0x30 8b: связан с синхронизацией загрузки текстур и адресом 0x21
          -все 0xCC:TexSync включен(остановка конвеера до полного копирования в память,0x21=0xCC)
          -все 0x00(PSP,PS2 первый байт-0x01):TexSync выключен(0x21=0x86/0x01)

Заголовок контейнера ресурса

(только для LCS/VCS)
 4b: оффсет на заголовок текстуры
 4b: оффсет на заголовок коллекции ресурсов
(общая часть заголовка)
 4b: оффсет на оффсет предыдущего контейнера
 4b: оффсет на оффсет следующего контейнер
 64b: имя текстуры (до нулевого бита)
 4b: флаг 0x01,необходим для движка(после загрузки в RAM - 0x02)
(только для Manhunt 2)
 4b: длинна текстуры
 4b: ширина текстуры
 4b: битность тестуры
 4b: неизвестно
 4b: 8
 2b: количество мип-мап уровней
 2b: неизвестно
 4b: оффсет на заголовок текстуры (PC версия Manhunt 2) или растр текстуры (PS2 версия Manhunt 2)
 4b: неизвестно (PC версия Manhunt 2) или оффсет на палитру текстуры (PS2 версия Manhunt 2)

Заголовок текстуры (PSP LCS)

CHK

 Размер заголока: 16 байт
 4b: unknown 0
 4b: оффсет на растр
 2b: ширина растра для свиззлинга (у 4х-битной текстуры равно половине ширины растра)
 1b: ширина растра (степень двойки)
 1b: высота растра (степень двойки)
 1b: BPP
 1b: кол-во мип-мапов (включая основную текстуру)
 2b: unknown 0x4504

WRLD

 Размер заголовка: 8 байт
 16bit: padding 0xAAAA
 4bit: ширина растра (степень двойки)
 4bit: высота растра (степень двойки)
 4bit: кол-во мип-мапов (исключая основную текстуру)
 4bit: BPP
 4b: оффсет на растр

Заголовок текстуры (PS2 LCS/VCS)

 (только для VCS)
 4b: unknown 0
 4b: unknown
 (общая часть заголовка)
 4b: оффсет на растр
 4b: Параметры растра, где:
  8bit: Маска использования свизлинга по мип-уровням
  4bit: Кол-во мип-уровней
  8bit: Глубина
  6bit: Ширина (степень двойки)
  6bit: Высота (степень двойки)

Заголовок текстуры (PSP VCS)

CHK

Размер заголока: 16 байт
4b: unknown 0
4b: оффсет на растр
2b: ширина растра для свиззлинга (у 4х-битной текстуры равно половине ширины растра)
1b: ширина растра (степень двойки)
1b: высота растра (степень двойки)
1b: BPP
1b: кол-во мип-мапов (включая основную текстуру)
1b: unknown 0
1b: флаг метода unswizzling'а:
    0x45-для 4bit 
    0x25-для 8bit

Заголовок текстуры (PS2 VCS)

Информация будет добавлена позже...

Заголовок текстуры (PC Manhunt 2)

см. формат DirectDraw Surface

п · о · р
Lcs.png GTA Liberty City Stories Vcs.png GTA Vice City Stories
Форматы файлов.anim.at3.cam.chk/.xtx.col2.cut.dtz.ifp.img/.dir.irx.gxt.lvz.mdl.pss.raw/.sdt.scm.vb.wrld
ИнструментыApacheConsole Texture Explorer (PSP/PS2)GTA Stories IMG ToolGTA Stories Texture ViewerGTA Stories Texture Explorer
GTA Stories RAW EditorGXT EditorJPCSPMDL importerMF AudioPCSX2PPSSPPStories WRLD ToolGTA Stories Map Converter v1.0UMD GenYAIE
ТуториалыМоддинг VCS и LCS (PSP/PS2)Аудио на PSPАудио на PS2Спецификация версий PS2Конфигурирование PCSX2
ПК-версииVice City StoriesLiberty City Stories
Шаблон:Manhunt2-navi