Перейти к содержимому


Фотография

Ресурсы GTAIV


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 39

#1 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 31 December 2008 - 18:36

Мне кажется, удобно обсуждать все новости по вскрытию ресурсов, задавать вопросы знающим людям и публиковать найденную информацию в одной теме.

На форуме Zmodeler2 уже началась разработка фильтров для работы с моделями GTAIV
http://forum.zmodele...opic.php?t=3553
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#2 RussianCJ

RussianCJ

    Активный участник

  • Пользователи
  • PipPipPip
  • 54 сообщений

Отправлено 02 January 2009 - 17:43

Вот тут находится полезная для знающих людей инфа по моделям и текстурным архивам GTA IV:
http://public.sannyb...GTA4/rsc_en.txt

#3 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 03 January 2009 - 07:35

Тут полное описание форматов от aru, алгоритмы работы с ними исходники SparkIV со всеми модулями вроде просмотрщика моделей и Resourator-a:
http://gtaivtools.go....com/svn/trunk/

Архивом никак не скачаешь.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#4 fesor

fesor

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений
  • Пол:Мужчина
  • Город:Беларусь, Минск
  • Интересы:Девушки, Пиво, WEB програмирование, 3D и 2D графика, Музыка

Отправлено 03 January 2009 - 08:09

Вобще-то через subversion все прекрасно качается)) code.google Forever!
I am lexx! The the most powerful weapon of destruction in the universe and I have the power to destroy entire planets. © Lexx fesor's<dog>gmail.com

#5 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 16 January 2009 - 14:37

Сегодня просмотрел gtaiv.exe, удалось выявить тот самый кусок который отвечает за шифрование ресурсов.
Заменил пустыми байтами абсолютно все за исключением его самого - и OpenIV, и SparkIV работают идеально.

Изображение
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#6 listener

listener

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 356 сообщений
  • Пол:Мужчина
  • Город:Ft.Lauderdale


Отправлено 16 January 2009 - 17:05

Можно было бы посмотреть хотя бы в том же SparkIV (там еще коммент забавный (не такой забавный, как у меня, но тоже неплохой))

http://gtaivtools.go...mon/DataUtil.cs
You think your day was surreal? Try mine.

#7 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 16 January 2009 - 18:16

Хорошо конечно что aru выложил исходники SparkIV, но С# большинство не знает. Так что придется разбираться. Вот если бы в Delphi описание было как с *.rpf и *.img работать - это здорово.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#8 listener

listener

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 356 сообщений
  • Пол:Мужчина
  • Город:Ft.Lauderdale


Отправлено 16 January 2009 - 19:16

Возможно, я сноб и зануда, но я совершенно не понимаю позиции "этого языка я не знаю". Да, я свободно пишу на десятке языков, и еще с полсотни читаю, не залезая в справочник, так что у меня совершенно не укладывается в голове ситуация, когда исходника на произвольном языке недостаточно, чтобы взять из него базовый алгоритм и реализовать привычными средствами. Там же все просто: берется Zlib, берется какая-нибудь криптографическая библиотечка, в которой есть AES-256 или хотя бы абстрактный Rijndael - и вперед: все, что надо, укладывается в сто строчек. Проблемы будут, когда начнется работа с тем, что в этих RPF и IMG находится. В оригинале это написано на C++, притом, очень серьезном C++, с многоуровневыми шаблонами, кучей переопределенных операторов и прочих подобных радостей жизни. Для чтения из каких-то других языков никто это не оптимизировал: это просто сдампленный кусок памяти с огромной кучей внутренних указателей. Если для C++ переопределяется оператор new и делается специальный конструктор, который автоматически поправит все указатели, то для остальных языков придется изрядно повозиться - кода получится раз в двадцать больше.
You think your day was surreal? Try mine.

#9 GooD-NTS

GooD-NTS

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 494 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород


Отправлено 16 January 2009 - 20:48

Dageron, у меня в OpenIV используются собственно написанные классы. Хранится все (ну или почти все) в удобном виде, (это pas файлы):
Rage.Common
Rage.Stream
...
Rage.Archive
Rage.Archive.RPF2
Rage.Archive.RPF3
Rage.Archive.IMG3
...
Rage.Resources.TextureDictionary
Rage.Resources.PC.TextureDictionary
Rage.Resources.PC.Drawable
...
Есть такой шанс (я иногда думаю об этом), что исходники из серсии: Rage.Archive.* и Rage.Resources.* будут доступны общественности. Только все у меня написано так что нигде кроме Делфи 2009 не компилируется :)

Можно было бы посмотреть хотя бы в том же SparkIV (там еще коммент забавный (не такой забавный, как у меня, но тоже неплохой))

http://gtaivtools.go...mon/DataUtil.cs

Это не интересно :) Интересно, это когда я неделю на майских праздниках играл в игру "Узнай что за алгоритм, где его ключ и что такое PPC" :D Вот это было действительно интересно...

Сообщение отредактировал GooD-NTS: 16 January 2009 - 20:53

Изображение

RAGE research project, public side: OpenIV (Журнал изменений План развития) | openFormats


#10 X3M_NRG

X3M_NRG

    Участник

  • Пользователи
  • PipPip
  • 15 сообщений

Отправлено 16 January 2009 - 21:23

Good биг сенкс ту ю))) у мя теперь стильная Хард РОк афе футболка))))
ЗЫ [offtopic]

а стоит выкладывать тектсурные моды, и если стоит, то куда?

[/offtopic]

Сообщение отредактировал X3M_NRG: 16 January 2009 - 22:00


#11 Chipsman

Chipsman

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 786 сообщений
  • Пол:Не определился


Отправлено 17 January 2009 - 09:16

ЗЫ [offtopic]

а стоит выкладывать тектсурные моды, и если стоит, то куда?

например сюда:
http://forums.gtamod...hp?showforum=37
[/offtopic]

#12 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 17 January 2009 - 10:54

listener
Хорошо, конечно, что ты разбираешься в чем-либо, но разобраться в алгоритмах, используя одни лишь aru-вские исходники - не слишком перспективно.

GooD
Надеюсь, ты действительно выложишь это "добро" так как для многих оно будет просто незаменимо.
В принципе, в чем смысл опять "засекречивать информацию"?

Да, и как я понял, SparkIV сохраняет архивы в незашифрованном виде - игра их читает нормально. OpenIV при сохранении шифрует.
Определитель - четыре байта, в шифрованном архиве они равны FF FF FF FF.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#13 GooD-NTS

GooD-NTS

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 494 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород


Отправлено 17 January 2009 - 14:57

Надеюсь, ты действительно выложишь это "добро" так как для многих оно будет просто незаменимо.

А что б не выложить, выложу, что мне смотреть на всю эту хрень что ли :) Только перед этим надо все подчистить и привести в полностью божеский вид. И наврядли это произойдет раньше релиза OpenIV 1.0. Только один фиг в этом еще разобраться надо, а комментировать или документировать исходники я вообще не люблю...

В принципе, в чем смысл опять "засекречивать информацию"?

Так никто же ничего не засекречивает :) Только не надо забывать что "засекречивать информацию" и "выкладывать исходники" это совершенно разные вещи.

Да, и как я понял, SparkIV сохраняет архивы в незашифрованном виде - игра их читает нормально. OpenIV при сохранении шифрует.

Неа, если архив не зашифрован OpenIV не будет его шифровать. Но по умолчанию создаются зашифрованные архивы.

Определитель - четыре байта, в шифрованном архиве они равны FF FF FF FF.

Ага, об этом несложно догадаться :) Вообще RPF это простой формат, например в OpenIV возможность редактировать/создавать RPF2 архивы появилась (намного) раньше, чем аналогичная возможность для IMG.

Изображение

RAGE research project, public side: OpenIV (Журнал изменений План развития) | openFormats


#14 listener

listener

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 356 сообщений
  • Пол:Мужчина
  • Город:Ft.Lauderdale


Отправлено 17 January 2009 - 15:57

Хорошо, конечно, что ты разбираешься в чем-либо, но разобраться в алгоритмах, используя одни лишь aru-вские исходники - не слишком перспективно.

То, что я в этом разбираюсь - результат упорного труда. Если постоянно пользоваться готовыми решениями, такого не достичь и за двадцать лет.

Я, вот, сейчас зарылся в учебнике по алгоритмике. Есть очень сильное подозрение, что на то, чтобы посчитать третье поле в RSC (из которого длина берется), мне банально не хватает фундаменталки. Оказалось, что в этом поле хранится совсем не размер данных, а карта блоков памяти (а то, что из нее можно просто посчитать длину - это побочный эффект).

Для проверки этого дела, написал ночью ридер WTD - собственно, работы с WTD там ровно восемь строк (плюс, определение структуры grcTexturePC). Кусочек стриминга и умный memory-manager - еще 250 строк. За счет них, ридер любого ресурсного формата пишется в несколько строчек. (определение структур, плюс по строчке на указатель, и то не каждый)

Последний раз я писал на дельфи больше десяти лет назад и не в курсе нововведений Delphi 2009, но я слабо представляю себе, как там можно реализовать конструкцию:
pgDictionary<grcTexturePC> * wtd = new (blockMap.getData()) pgDictionary<grcTexturePC> (&relInfo);

(если кому интересно, выложу весь исходник, но, к нему нужен еще большой рассказ, как рабоает стриминг в IV)

В принципе, в чем смысл опять "засекречивать информацию"?

В общем, никто ничего не засекречивает. Вся информация, чтобы читать ресурсы, есть в самом GTAIV.exe.
Вопрос только в том, чтобы достать ее оттуда и перевести в человеко-понятный вид.
You think your day was surreal? Try mine.

#15 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 17 January 2009 - 16:32

А что б не выложить, выложу, что мне смотреть на всю эту хрень что ли :) Только перед этим надо все подчистить и привести в полностью божеский вид. И наврядли это произойдет раньше релиза OpenIV 1.0. Только один фиг в этом еще разобраться надо, а комментировать или документировать исходники я вообще не люблю...

Что же, интересно.

Неа, если архив не зашифрован OpenIV не будет его шифровать. Но по умолчанию создаются зашифрованные архивы.

Какие преимущества дает наличие/отсутствие шифрования?

Я, вот, сейчас зарылся в учебнике по алгоритмике. Есть очень сильное подозрение, что на то, чтобы посчитать третье поле в RSC (из которого длина берется), мне банально не хватает фундаменталки. Оказалось, что в этом поле хранится совсем не размер данных, а карта блоков памяти (а то, что из нее можно просто посчитать длину - это побочный эффект).
Для проверки этого дела, написал ночью ридер WTD - собственно, работы с WTD там ровно восемь строк (плюс, определение структуры grcTexturePC). Кусочек стриминга и умный memory-manager - еще 250 строк. За счет них, ридер любого ресурсного формата пишется в несколько строчек. (определение структур, плюс по строчке на указатель, и то не каждый)
Последний раз я писал на дельфи больше десяти лет назад и не в курсе нововведений Delphi 2009, но я слабо представляю себе, как там можно реализовать конструкцию.

Если я не ошибаюсь, OpenIV написана в Delphi 2009, разве нет?

И, надеюсь, алгоритмы работы с архивами в Delphi вы выложите на публику (в особенности, *.rpf v2 конечно хотелось бы).
Статью по старым версиям *.img смотрите на wiki. В статье имеется подробное описание строения архивов, так же сегодня я выложил код где описывается работа с ним в Delphi.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#16 GooD-NTS

GooD-NTS

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 494 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород


Отправлено 18 January 2009 - 07:31

Какие преимущества дает наличие/отсутствие шифрования?

Никаких.

В статье имеется подробное описание строения архивов, так же сегодня я выложил код где описывается работа с ним в Delphi.

Статья хорошая, но я бы написал другой код :) И еще вопрос по коду, зачем ты после:
DestFile := TFileStream.Create(SaveDialog1.FileName, fmCreate);
Переходишь в начало файла?:
DestFile.Seek(0, 0);
Если мне не изменяет память, то когда создается TFileStream (да и любой другой Stream в принципе тоже), да еще и с параметром fmCreate. После создания позиция всегда будет указывать на 0.

Недостаток этого формата - это его расширяемость. Если вы добавите слишком много файлов, директория начнёт записываться поверх первых файлов в архиве, поэтому вам нужно будет записывать первые файлы в конец архива.

А у меня в OpenIV чтобы такого не было, просто тупо все файлы смещаются еще на 2Кб.

Если я не ошибаюсь, OpenIV написана в Delphi 2009, разве нет?

Нет не ошибаешься. Вот только listener не пишет OpenIV если ты об этом.

И, надеюсь, алгоритмы работы с архивами в Delphi вы выложите на публику (в особенности, *.rpf v2 конечно хотелось бы).

А что тебе самому мешает написать (в особенности, RPF2)? Единственная проблема, которая была у меня (у всех) в начале, это чем все зашифровано. Как только известен алгоритм шифрования написать простой просмотр/редактор дело пары часов.

Изображение

RAGE research project, public side: OpenIV (Журнал изменений План развития) | openFormats


#17 Axel218

Axel218

    Активный участник

  • Пользователи
  • PipPipPip
  • 36 сообщений
  • Пол:Мужчина
  • Город:Астана

Отправлено 19 January 2009 - 04:09


Цитата(IMG архив)
Недостаток этого формата - это его расширяемость. Если вы добавите слишком много файлов, директория начнёт записываться поверх первых файлов в архиве, поэтому вам нужно будет записывать первые файлы в конец архива.

А у меня в OpenIV чтобы такого не было, просто тупо все файлы смещаются еще на 2Кб.

Да... Я сейчас дописываю класс для работы с IMG в VC++, там тоже такую фишку добавил, лучше не придумаешь :)

#18 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 26 January 2009 - 09:20

Появилась информация о структуре *.img-архивов GTA IV:

Наша статья о IMG архивах.
Тема обсуждения.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#19 X3M_NRG

X3M_NRG

    Участник

  • Пользователи
  • PipPip
  • 15 сообщений

Отправлено 26 January 2009 - 12:46

Лучше бы компилятор ля скриптов сделали ИМХО

#20 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 26 January 2009 - 15:07

Ну как знать, описания форматов тоже нужны. Сейчас вот описание *.img взял с западной wiki.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных