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

Материал из GTAModding.ru
Перейти к: навигация, поиск
м
 
(не показаны 9 промежуточных версий 7 участников)
Строка 1: Строка 1:
'''RPF''' - новый вид архивов, предстатвленных в GTAIV большинстве своем "тотально" использовались в консольных версиях).  
+
'''RPF''' - новый вид архивов, представленных в GTA 4 (версии 2 и 3). Rockstar Games активно используют этот формат и в других своих играх.
  
В настоящее время могут быть отредактированы в [[OpenIV]] и [[SparkIV]].
+
В большинстве своем <code>[[RPF|*.rpf]]</code> версии 2 "тотально" использовались в консольных версиях [[GTA IV]] (<code>common.rpf</code>, <code>xbox360.rpf</code>, <code>playerped.rpf</code>).
  
==Заголовок==
+
в ПК-версии <code>[[RPF|*.rpf ]]</code> версии 2 практически упразднены (за исключением <code>playerped.rpf</code> и добавленного <code>game.rpf</code>). Поскольку консольный и ПК-формат не отличаются, не раз возникал вопрос о целесообразности возможностей полного редактирования формата публичными версиями программ. В настоящее время <code>[[RPF|*.rpf]]</code>-архивы версии 2/3 могут быть отредактированы в [[OpenIV]] и [[SparkIV]] (из-за чего появлялись читерские модификациии в Xbox Live).
  
Все RPF файлы имеют однотипный заголовок, из которого можно узнать версию архива, количество содержимого и зашифрован ли архив.
+
Список игр, использующих <code>[[RPF|*.rpf]]</code>:
 +
* Rockstar Games Presents Table Tennis: '''RPF 0''', '''RPF 1'''
 +
* GTA IV/EFLC: '''RPF 2''', '''RPF 3'''
 +
* Midnight Club: Los Angelos: '''RPF 3'''
 +
* Max Payne 3: '''RPF 4'''
 +
* Red Dead Redemption: '''RPF 6'''
 +
* GTA V, Rockstar Games Launcher: '''RPF 7'''
 +
* Red Dead Redemption 2: '''RPF 8'''
 +
Отличия '''RPF 0''' - '''RPF 1''' и '''RPF 2''' - '''RPF 3''' в том, что четные (0, 2) содержат имена файлов, а нечетные - только хэши имен. '''RPF 6''' содержит хэши и может содержать имена.
  
4b - INT32 - Версия RPF (2: 0x32465052; 3: 0x33465052).
+
Ниже приведена структура архивов версий 2 и 3 (имеющих место в GTA IV).
4b - INT32 - Размер таблицы содержимого.
+
4b - INT32 - Количество содержимых объектов.
+
4b - INT32 - Unknown.
+
4b - INT32 - Зашифрован ли архив (если не зашифрован, то флаг равен нулю).
+
  
==Таблица содержимого==
+
==Структура==
  
Размер таблицы содержимого определяется значением в заголовке архива. Сама таблица начинается после 2048 байт от начала файла, ее шифрование так же зависит от соответствующего значения в заголовке См. [[Шифрование (GTA 4)]].
+
===Заголовок===
  
Содержит разделы директорий и файлов. Оба раздела отличаются своими структурами.
+
Все <code>[[RPF|*.rpf]]</code>-архивы имеют однотипный заголовок, из которого можно узнать версию архива, количество содержимого и зашифрован ли архив.
 +
 
 +
4 байта - INT32 - Версия RPF (2: 0x32465052; 3: 0x33465052).
 +
4 байта - INT32 - Размер таблицы содержимого.
 +
4 байта - INT32 - Количество содержимых объектов.
 +
4 байта - INT32 - Неизвестно.
 +
4 байта - INT32 - Параметр зашифровки (если архив не зашифрован, то флаг равен нулю).
 +
 
 +
===Таблица содержимого===
 +
 
 +
Размер таблицы содержимого определяется значением в заголовке архива. Сама таблица начинается после 2048 байт от начала файла, ее шифрование так же зависит от соответствующего значения в заголовке (См. [[Шифрование (GTA 4)]]).
 +
 
 +
Таблица содержит разделы директорий и файлов. Оба раздела отличаются своими структурами.
  
 
===Раздел директорий===
 
===Раздел директорий===
  
  4b - INT32  - Оффсет имени (определяет оффсет в таблице названий где находится имя директории).
+
  4 байта - INT32  - Оффсет имени (определяет оффсет в таблице названий где находится имя директории).
  4b - INT32  - Флаги (дает информацию о директории).
+
  4 байта - INT32  - Флаги (дает информацию о директории).
  4b - UINT32 - Индекс (дает информацию о номере в таблице первого файла директории).
+
  4 байта - UINT32 - Индекс (дает информацию о номере в таблице первого файла директории).
  4b - UINT32 - Количество файлов в директории.
+
  4 байта - UINT32 - Количество файлов в директории.
  
 
===Раздел файлов===
 
===Раздел файлов===
  
  4b - INT32  - Оффсет имени (определяет оффсет в таблице названий).
+
  4 байта - INT32  - Оффсет имени (определяет оффсет в таблице названий).
  4b - INT32  - Размер (определяет размер файла).
+
  4 байта - INT32  - Размер (определяет размер файла).
  3b - UINT24 - Оффсет (определяет оффсет файла в архиве).
+
  3 байта - UINT24 - Оффсет (определяет оффсет файла в архиве).
  1b - UCHAR8 - Тип ресурса (определяет версию ресурса - только для [[RSC]]).
+
  1 байт  - UCHAR8 - Тип ресурса (определяет версию ресурса - только для [[RSC]]).
  4b - UINT32 - Определяет сжат файл или нет.
+
  4 байта - UINT32 - Определяет, сжат ли файл или нет.
 +
 
 +
В качестве алгоритма сжатия используется Zlib (без deflate-заголовка).
  
В качестве алгоритма сжатия используется Zlib.
+
==Ссылки==
 +
[http://sannybuilder.com/forums/viewtopic.php?id=1176 Класс для работы с RPF2 для Delphi]
  
[[Категория:GTA 4]][[Категория:Форматы файлов]]
+
[[Категория:GTA 5]][[Категория:GTA 4]][[Категория:Max Payne 3]][[Категория:Форматы файлов]][[Категория:Моддинг консольных версий]]

Текущая версия на 16:42, 6 ноября 2019

RPF - новый вид архивов, представленных в GTA 4 (версии 2 и 3). Rockstar Games активно используют этот формат и в других своих играх.

В большинстве своем *.rpf версии 2 "тотально" использовались в консольных версиях GTA IV (common.rpf, xbox360.rpf, playerped.rpf).

в ПК-версии *.rpf версии 2 практически упразднены (за исключением playerped.rpf и добавленного game.rpf). Поскольку консольный и ПК-формат не отличаются, не раз возникал вопрос о целесообразности возможностей полного редактирования формата публичными версиями программ. В настоящее время *.rpf-архивы версии 2/3 могут быть отредактированы в OpenIV и SparkIV (из-за чего появлялись читерские модификациии в Xbox Live).

Список игр, использующих *.rpf:

  • Rockstar Games Presents Table Tennis: RPF 0, RPF 1
  • GTA IV/EFLC: RPF 2, RPF 3
  • Midnight Club: Los Angelos: RPF 3
  • Max Payne 3: RPF 4
  • Red Dead Redemption: RPF 6
  • GTA V, Rockstar Games Launcher: RPF 7
  • Red Dead Redemption 2: RPF 8

Отличия RPF 0 - RPF 1 и RPF 2 - RPF 3 в том, что четные (0, 2) содержат имена файлов, а нечетные - только хэши имен. RPF 6 содержит хэши и может содержать имена.

Ниже приведена структура архивов версий 2 и 3 (имеющих место в GTA IV).

Содержание

Структура

Заголовок

Все *.rpf-архивы имеют однотипный заголовок, из которого можно узнать версию архива, количество содержимого и зашифрован ли архив.

4 байта - INT32 - Версия RPF (2: 0x32465052; 3: 0x33465052).
4 байта - INT32 - Размер таблицы содержимого.
4 байта - INT32 - Количество содержимых объектов.
4 байта - INT32 - Неизвестно.
4 байта - INT32 - Параметр зашифровки (если архив не зашифрован, то флаг равен нулю).

Таблица содержимого

Размер таблицы содержимого определяется значением в заголовке архива. Сама таблица начинается после 2048 байт от начала файла, ее шифрование так же зависит от соответствующего значения в заголовке (См. Шифрование (GTA 4)).

Таблица содержит разделы директорий и файлов. Оба раздела отличаются своими структурами.

Раздел директорий

4 байта - INT32  - Оффсет имени (определяет оффсет в таблице названий где находится имя директории).
4 байта - INT32  - Флаги (дает информацию о директории).
4 байта - UINT32 - Индекс (дает информацию о номере в таблице первого файла директории).
4 байта - UINT32 - Количество файлов в директории.

Раздел файлов

4 байта - INT32  - Оффсет имени (определяет оффсет в таблице названий).
4 байта - INT32  - Размер (определяет размер файла).
3 байта - UINT24 - Оффсет (определяет оффсет файла в архиве).
1 байт  - UCHAR8 - Тип ресурса (определяет версию ресурса - только для RSC).
4 байта - UINT32 - Определяет, сжат ли файл или нет.

В качестве алгоритма сжатия используется Zlib (без deflate-заголовка).

Ссылки

Класс для работы с RPF2 для Delphi