March 28, 2024, 16:17
bigger smaller reset     1020px Wide width Full width Reset   * *

Gildor's Forums

  Homepage Facebook Read news on Twitter Youtube channel Github page
Welcome, Guest. Please login or register.
Did you miss your activation email?

« previous next »
Print
Author Topic: Injustice 2 PC  (Read 19833 times)
num1
Newbie
*
Posts: 9


View Profile
« Reply #15 on: November 08, 2017, 13:20 »

Печально...
Помимо базовых персонажей, в игре есть куча обмундирования, то есть много моделей. Да и качество с мобильной версией несравнимо.
Посмотрим, если спрос породит решение проблемы...
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #16 on: November 08, 2017, 13:48 »

Что мне не нравится в текущей ситуации:

1. Что exe-файл не подходит для дизассемблера. Дизассемблирование в отладчике конечно возможно (если предположить что я скачаю/куплю/поставлю эту игру - а она мне НЕ НРАВИТСЯ). Но для такого количества reverse engineering-а которое здесь потребуется (а его будет очень много - его было много и для предыдущих частей игры) работа в отладчике не годится.

2. Кастомная компрессия. Полностью кастомная, без каких-либо open source библиотек которые могли бы её раскодировать. Ну и в довесок, она используется только для этой игры - я предпочитаю не добавлять любые third-party библиотеки для поддержки только одной игры. Так уже было например с LZ4 (хотя её код доступен).

3. Дальше уже не знаю. Скорее всего движок внутри уже так сильно отличается от оригинала, что пол-umodel'а придётся переписать. Ответвление от UE3 для игр Mortal Kombat произошло ещё до появления первого Gears of War на Xbox 360, т.е. очень давно. Тогда версия пакета была где-то в районе 300. Сейчас - 732, без синхронизации с основным кодом UE3. Вот как например люди просили Splinter Cell Blacklist и т.п. - там от UE2 уже почти ничего не осталось. Поковырялся 2 недели, сделал распаковку их архива (umd), но потом пришлось затею оставить когда добрался до форматов моделек - там вообще всё другое, к тому же ещё и непонятное, было не сопоставить новый код даже с предыдущими частями Splinter Cell.
Logged
num1
Newbie
*
Posts: 9


View Profile
« Reply #17 on: November 08, 2017, 18:34 »

Жаль, что так всё так сложилось. uModel самая лучшая и удобная программа в своём роде. Лучше вас мастера не найти.
Может с Ninja Ripper что выйдет, но c uModel такой возни как с ней не бывает.
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #18 on: November 08, 2017, 19:02 »

Спасибо за добрый отзыв. Я думаю просто не надо "зацикливаться" на одной игре Smiley UModel уже работает с 300 играми (недавно был "юбилей").
Logged
ID-Daemon
Newbie
*
Posts: 25


View Profile
« Reply #19 on: November 08, 2017, 21:56 »

Да, формат отличается. Но дизассемблер тут не нужен. Распаковал пакеты, извлек файлы, сконвертил скелеты и модели. Каждая часть тела бетмена - это отдельный Skeletalmesh. Видимо для комбинирования. Ну это уже дело моделлеров, а не прог для извлечения.

Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #20 on: November 08, 2017, 22:06 »

Распаковал пакеты, извлек файлы, сконвертил скелеты и модели.
Это чем?
Logged
ID-Daemon
Newbie
*
Posts: 25


View Profile
« Reply #21 on: November 08, 2017, 23:18 »

Это чем?

Ну у меня же были наработки, еще со времен биошока. Я еще морфем анимации тогда делал. Ну и других игр на UE3. Подправил немного, чтобы проверить что тут за формат.
Logged
num1
Newbie
*
Posts: 9


View Profile
« Reply #22 on: November 09, 2017, 03:04 »

Как-то на страничке написано много (что-то вроде "мы распаковываем всё подряд"), ну а судя по коду - сделана загрузка какой-то oo2core5.dll и что-то из неё дёргают. В любом случае, я такими вещами не пользуюсь - весь код у меня "встроенный" в приложение и сторонних dll не используется. Ну и потому работает на Windows и Linux (а у кого-то и на Mac).

Не знаю имеет ли это значение, но в папке Binaries игры есть oo2core_4_win64.dll. Может не придется паковать сторонний dll с программой, а вызывать тот, что есть у каждой копии игры?

ID-Daemon, доступны ли(будут ли) общественности инструменты, которыми вы вытащили голову Бэтмена?
« Last Edit: November 09, 2017, 03:29 by num1 » Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #23 on: November 09, 2017, 08:27 »

Не знаю имеет ли это значение, но в папке Binaries игры есть oo2core_4_win64.dll. Может не придется паковать сторонний dll с программой, а вызывать тот, что есть у каждой копии игры?
Смысл моей фразы был в том, что на github было сказано что-то вроде "мы распаковываем всё подряд", но обёртка есть только вокруг одной dll.
Logged
ID-Daemon
Newbie
*
Posts: 25


View Profile
« Reply #24 on: November 09, 2017, 19:16 »

Смысл моей фразы был в том, что на github было сказано что-то вроде "мы распаковываем всё подряд", но обёртка есть только вокруг одной dll.

Всё там было правильно сказано. Все эти слова - это разные методы сжатия, поддерживаемые этим самым oodle, в одном DLL. Просто у них такая фантазия бурная. И все они конечно кастомные и проприетарные с закрытым кодом и копирайтом.
Logged
ID-Daemon
Newbie
*
Posts: 25


View Profile
« Reply #25 on: November 09, 2017, 19:29 »

ID-Daemon, доступны ли(будут ли) общественности инструменты, которыми вы вытащили голову Бэтмена?
Если будет такая необходимость.
Logged
num1
Newbie
*
Posts: 9


View Profile
« Reply #26 on: November 12, 2017, 16:57 »

Если будет такая необходимость.
То есть? Как должна выражаться эта необходимость?
Logged
ID-Daemon
Newbie
*
Posts: 25


View Profile
« Reply #27 on: November 12, 2017, 17:29 »

Если будет такая необходимость.
То есть? Как должна выражаться эта необходимость?

Сейчас я занимаюсь другими играми. Если к тому времени, как подойдет очередь и никто другой не сделает, тогда я сделаю.
Logged
mkhacker
Newbie
*
Posts: 13


View Profile
« Reply #28 on: November 18, 2017, 16:56 »

MrDude007 from another site, wrote a BMS Script to decompress the Injustice 2 files. The BMS Script dumps 2 files, a header and data file. They can be merged into one file. Someone just needs to make a utility to extract sounds, textures or model files now. :

Quote
comtype oodle
get EXT extension
if EXT == "xxx"
   log MEMORY_FILE 0 0
   log MEMORY_FILE 0 0x64
   append
   getdstring TOP 0x64
   get NAME BASENAME
   string NAME + ".header"
   log MEMORY_FILE 0x64 0x04
   get COUNT long
   
   savepos RET
   set SKIP 24
   math SKIP * COUNT
   print %SKIP%
   goto SKIP 0 SEEK_CUR
   savepos TOPCUR
   log MEMORY_FILE TOPCUR 0x18
   getdstring TEMP 0x18
   savepos TOPCUR
   log MEMORY_FILE TOPCUR 0x04
   get CCOUNT long
   savepos TOPCUR
   log MEMORY_FILE TOPCUR CCOUNT
   getdstring PACKAGENAME CCOUNT
   set Temp 0x84
   math Temp + CCOUNT
   log NAME 0 Temp MEMORY_FILE
   set Temp 0x84
   
   goto RET
   append
   get NAME BASENAME
   string NAME + ".bin"
   for i = 0 < COUNT
      print %COUNT%
      print %i%
      goto RET
      get OGSIZE longlong
      get ADDSIZE long
      get OFFSET longlong
      get SIZE long
      savepos RET
     
      goto OFFSET
      getdstring TMP 0x10
      get BSIZE longlong
      get RSIZE longlong
      set TMP1 BSIZE
      set TMP2 SIZE
      math TMP2 - TMP1
      math TMP2 - 32
      savepos TMP3
      math TMP3 + TMP2
      math TMP2 / 16
      set COUNT2 TMP2
      append
      for t = 0 < COUNT2
         get ZSIZE2 longlong
         get SIZE2 longlong
         savepos ret3
         goto TMP3
         clog NAME TMP3 ZSIZE2 SIZE2
         math TMP3 + ZSIZE2
         goto ret3
         next t
      append
     
      next i
Logged
Gildor
Administrator
Hero Member
*****
Posts: 7978



View Profile WWW
« Reply #29 on: November 18, 2017, 21:50 »

MrDude007 from another site, wrote a BMS Script to decompress the Injustice 2 files. The BMS Script dumps 2 files, a header and data file. They can be merged into one file. Someone just needs to make a utility to extract sounds, textures or model files now. :
Thank you very much. But didn't you notice that this is a Russian thread? Smiley
And - it would be VERY nice to have a link to original message instead of copying it here, to be able to understand what this script does and how to use files after it.
« Last Edit: November 18, 2017, 21:53 by Gildor » Logged
Print 
« previous next »
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Leviathan design by Bloc | XHTML | CSS