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

Материал из GTAModding.ru
Перейти к: навигация, поиск
Строка 15: Строка 15:
  
 
<source lang="delphi" line>
 
<source lang="delphi" line>
{Flags - переменная, содержащее соответственное значение}   
+
{Flags - переменная, содержащее соответственное значение}   
CPUSize:= (Flags AND $7FF) shl (((Flags shr 11) AND $F) + 8); //расчет размера System Memory Segment
+
CPUSize:= (Flags AND $7FF) shl (((Flags shr 11) AND $F) + 8); //расчет размера System Memory Segment
GPUSize:= ((Flags shr 15) AND $7FF) shl (((Flags shr 26) AND $F)+8); //расчет размера Graphics Memory Segment
+
GPUSize:= ((Flags shr 15) AND $7FF) shl (((Flags shr 26) AND $F)+8); //расчет размера Graphics Memory Segment
  
 
</source>
 
</source>

Версия 15:27, 18 марта 2009

Ресурсные файлы GTA IV имеют следующий формат:

Заголовок

4 байта - Сигнатура RSC (52 53 43 05)
4 байта - Версия ресурса
4 байта - Флаги

Далее следует сами данные ресурса в запакованном формате.

ПК-версия игры использует в качестве алгоритма упаковки - Zlib.

Распакованный ресурс можно разделить на две части - System Memory Segment и Graphics Memory Segment, размером, кратным 256 каждая.

Их конкретные размеры "зашиты" в параметре "флаги" и могут быть вычислены с помощью данного алгоритма:

  1.  {Flags - переменная, содержащее соответственное значение}   
  2.  CPUSize:= (Flags AND $7FF) shl (((Flags shr 11) AND $F) + 8); //расчет размера System Memory Segment
  3.  GPUSize:= ((Flags shr 15) AND $7FF) shl (((Flags shr 26) AND $F)+8); //расчет размера Graphics Memory Segment

Версии и типы ресурсов:

Идентификатор Название Характеристика Расширения
1 Windows/XENON Animation Dictionary Анимации (PC и Xbox360) .WAD .XAD
7 XENON Texture Dictionary Текстуры (Xbox360) .XTD
8 Windows Texture Dictionary Текстуры (PC) .WTD
32 Bounds  ? (PC и Xbox360) .WBD .XBD
109 XENON Model Модели (Xbox360) .XDR
110 Windows Model Модели (PC) .WDR
112 Windows/XENON Model Frag Модели (PC и Xbox360) .WFT .XFT