Перейти к содержимому
Zone of Games Forum
Jeff

Gothic 3 Pak-файлы распаковщик

Рекомендованные сообщения

Кто знает чем распаковать pak файлы в Готике 3, напишите пожалуйста. Заголовок у файлов

. . . . G3V0 . . . . . . . .

Поделиться сообщением


Ссылка на сообщение

Вот >>этим<<.

Структура данных файла, для желающих кодить свой анпакер: ;)

//////////////////////////////////////////////////////////////////////////////// // //  Gothic3 PAK file format specs. //  (all values are little-endian) //  Copyright © 2006 Nico Bendlin <nicode@gmx.net> // //  +----------------+ //  |  file header   | //  +----------------+ //  |   file data    | //  +----------------+ //  |    unknown     | //  | (not present)  | //  +----------------+ //  |   file table   | //  +----------------+ //  |    unknown     | //  | (empty string) | //  +----------------+ // //////////////////////////////////////////////////////////////////////////////// // // Fix-sized file header // struct G3PakFileHeader {     UInt32  Unknown0;   // Always 0x00000000. Might be part of the signature.     UInt32  Signature;  // Always 0x30563347 ('G3V0').     UInt64  Unknown1;   // Always 0x0000000000000000. Interpretation unknown.     UInt64  Unknown2;   // Always 0x100067F800000001. Might be a UInt16[4] version (1.0.26616.16).     UInt64  Unknown3;   // Always the same value as FileTable. Might be a file offset to an (currently) unused data block.     UInt64  FileTable;  // File offset to the root entry of the file table.     UInt64  Unknown4;   // File offset to an (currently) unused data block after the file table. Might be a comment string. }; // // String data (e.g. file names) // struct G3PakFileString {     UInt32  Length;     UInt8   Data[Length + 1];  // ANSI text. Only present if Length > 0. [Length] must be '\0'. }; // // File table entries (directories and files) // struct G3PakFileTableEntry {     //     // Fix-sized header for all entries     //     struct {         UInt64  FileTime1;   // Windows FILETIME. Might be the CreationTime.         UInt64  FileTime2;   // Windows FILETIME. Might be the LastAccessTime.         UInt64  FileTime3;   // Windows FILETIME. Might be the LastWriteTime.         UInt64  Unknown0;    // Always 0x0000000000000000. Interpretation unknown.         UInt32  Attributes;  // Windows FILE_ATTRIBUTE_Xxx (other bits should be ignored).     };     //     // Dynamically sized structures for directories and files     //     union {         //         // Directory entry (FILE_ATTRIBUTE_DIRECTORY in Attributes)         //         struct {             G3PakFileString     FileName;     // String includes the relativ path to the root (path separator is '/') and ends with '/'.             UInt32              DirCount;     // Count of directory entries that follow (directly after this count).             G3PakFileTableEntry [DirCount];             UInt32              FileCount;    // Count of file entries that follow (directly after this count).             G3PakFileTableEntry [FileCount];         };         //         // File entry (Attributes can include FILE_ATTRIBUTE_COMPRESSED)         //         struct {             UInt64          Offset;    // File offset to raw data.             UInt64          Bytes;     // Size of raw data in Bytes.             UInt64          Size;      // Size of file data (uncompressed).             UInt32          Unknown1;  // Always 0x00000000. Interpretation unknown.             UInt32          Unknown2;  // 0x00000000 if uncompressed, 0x00000002 if compressed with ZLib (default compression level).             G3PakFileString FileName;  // String includes the relativ path to the root (path separator is '/').             G3PakFileString Comment;   // Includes the full native file name and path of the source file.         };     }; };

 

Поделиться сообщением


Ссылка на сообщение

ai_enabled

А страничка есть откуда ты взял?! Как я понимаю у них в папочке http://gamefileformats.the-underdogs.info/files/ есть ещё что-нибудь интересное...

Поделиться сообщением


Ссылка на сообщение

Siberian GRemlin

ну конечно же есть ;) , только там ничего интересного - в итоге получишь stringtable.bin, а вот что с ним делать :( ...

Как появятся раздракониватели этого файлика - накодю пакер :D , а сейчас пока смысла нет.

Поделиться сообщением


Ссылка на сообщение

ai_enabled

Я спрашивай, что у них там на сайте есть! =)

Источник описухи формата уже сам нашёл.

Поделиться сообщением


Ссылка на сообщение

Siberian GRemlin

на том сайте ничего больше нету (это хостинг вроде ;) ).

Вот ещё >>отсюда<< брал тулзы для Gothic 3.

(но там на немецком :( , хотя понять можно)

Поделиться сообщением


Ссылка на сообщение
только там ничего интересного - в итоге получишь stringtable.bin, а вот что с ним делать :( ...

Как появятся раздракониватели этого файлика - накодю пакер :D , а сейчас пока смысла нет.

Я тут взглянул, вроде всё тривиально. Вот только у меня с понедельника экзамены, и я вместо прог пишу шпоры :russian_roulette: Я так понимаю, у нас ни одна команда переводом третьей Готики не занимается, так что это дело может подождать недельку...

Поделиться сообщением


Ссылка на сообщение

У меня народу в заначке заждущих переводить много.

Т.ч. если вы, друзья, поможете его вскрыть, то все сделаем.

Поделиться сообщением


Ссылка на сообщение

Так вроде BIN-файлы распаковывать ненадобно, редактор stringtable.ini вполне достаточно написать. Или я не прав?

Поделиться сообщением


Ссылка на сообщение

Не знаю, у меня игры нет, она меня не интересует, просто помочь хотел =)

Поделиться сообщением


Ссылка на сообщение

Всё, зарелизил :drinks: раздракониватель текста Готики 3 (два приложения - клиентское и серверное, первое - для переводчиков, второе - для редактора перевода), так что к переводу игры можно приступать хоть прямо сейчас ;) . Другое дело, что размер чистого текста (без переменных) на английском языке достигает почти 2Мбайт :( ...

Поделиться сообщением


Ссылка на сообщение

Напишите, пжалста, какие паки отвечают за перевод текстов..

А то рыскал, рыскал и не нашел...g3explorer10- вот этим. Или нада не этим смотреть?

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас популярно

  • Продвигаемые темы

  • Последние сообщения

    • Чертежи и где важна тосчнгость координаты и размеры на клаве вбиваешь… точные. А просто в моделенге сверхчуствительность может даже мешать. >  
    • Добрый день! пожалуйста, обновите ссылку, не получается скачать
    • О, ну можно попробовать будет, я сам немного знаю японский, так что будет интересно
    • @NikAnErr  Или вот)) Но это тебе надо будет доставать японский текст и запастись терпением, так как процесс может затянуться на долгие годы
    • @allodernat Спасибо за быстрый ответ, сейчас напишу ему в стим.
      Если не достучусь, могу сделать полный машинный перевод, т.к. у меня уже есть неплохая заготовка от прошлых работ, которая не потребляет много токенов
    • @NikAnErr если у кого что-то и есть, то у @DeadlineLine  Но у него видимо режим радиомолчания включен Поэтому разве что в стим попробовать ему постучать — https://steamcommunity.com/id/ShimMoon/ Если же и там не откликнется. то увы.
    • Я впервые зашел на этот форум, удивился, что кто-то все же делает русификатор для SAO Re: Hollow Fragment.
      Насколько я вижу, основная проблема — это краши из-за шрифтов, поэтому мне интересно, вы отдельно генерировали атлас, создавали глифы, добавляли записи PBitmapFontCharInfo, что весьма запарно, или все же использовали шрифт по умолчанию?
      Т.к. я проверил, и в японском шрифте (который font00_jpn.fgen.phyre) содержатся символы всего русского алфавита, поэтому я подменил содержимое font00_usa.fgen.phyre и font01.fgen.phyre на содержимое японского шрифта. При этом главное не забыть оставить в файлах оригинальные идентификаторы соответственно font00_usa.fgen#BitmapFont и font01.fgen#BitmapFont, т.к. в font00_jpn.fgen.phyre идентификатор другой: font00.fgen#BitmapFont.

      И тут вы наверное поинтересуетесь: каким образом я смог заменить идентификатор на более длинный? Все просто: Поле имело небольшой резерв, поэтому с учётом завершающего нулевого байта идентификатор помещался в фиксированный 29-байтовый слот.

      Получается примерная длина по частям:
      font00.fgen#BitmapFont — 22 байта
      \0 — 1 байт
      padding — 6 байт
      Всего — 29 байт

      То есть после замены содержимого font01.fgen.phyre на font00_jpn.fgen.phyre нужно очищать ровно 29 байт и записывать в то же место 29 байт, то есть как раз помещается font01.fgen#BitmapFont.

      В целом, для меня лично этот метод проще и надёжнее.
      Я уже написал скрипты для извлечения текста из localize_msg.dat, а также всех файлов в \usa\common\script\script и сохранение данных в csv в формате:
      chunk,record_index,message_id_hex,message_id_dec,abs_offset,rel_offset_from_chunk_after_header,length_bytes,max_bytes_same_size_patch,text_escaped,translation
      Также написал скрипт для автоматической сборки localize_msg.dat из csv и сборки всех файлов \usa\common\script\script также из csv

      Уже сделал тестовый перевод 2000 строк. В игре весь переведенный текст отображается нормально, вылетов/багов пока не обнаружил

      Сейчас работаю над извлечением текста из видео \data\D3D11\movie\.

      Как закончу с видео, сделаю тестовый машинный перевод примерно 20000 строк и покидаю скрины/видео (если все будет стабильно)

      Если у вас есть готовый(ну или хотя бы процентов 50) не машинный перевод, который вы можете мне предоставить, то буду очень признателен

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

    • serfly  »  SerGEAnt

      Доброго времени! Недавно столкнулся с проблемой автоперевода XUnity AutoTranslator BeplnEx iL2cc. Пару последних лет часто пользовался, теперь консольные команды виснут на стадии загрузки библиотек, хотя они есть там изначально. На GitHub есть подобные вопросы, но ни одного рабочего ответа я не нашел. А Вы что можете посоветовать?
      · 0 ответов
    • serfly  »  SamhainGhost

      Доброго времени. По локализации игры Wicked Seed. Шрифт размазан и в полях, другие можно попробовать? Например arialuni_sdf_2022? Я профан в этом, но интересно.
       
      · 0 ответов
    • Jimmi Hopkins  »  SerGEAnt

      Это не просто перевод, а полноценная авторская сценарная адаптация. Диалоги переписаны так, чтобы персонажи звучали живо, остро и в характере. Добавлен чёрный юмор там, где авторы постеснялись. Убраны лорные противоречия, докручены мотивации. В результате игра стала умнее, злее и смешнее оригинала.
      · 0 ответов
    • ElikaStudio

      Долгожданный релиз полного сезона состоялся!
      https://youtu.be/mwBk2stm2OQ?si=qpJojB_XDABaC0We
      https://vk.com/video-48153754_456239394?sh=4&list=c62797c2b7d0725d6e
      Life is Strange: Before the Storm:
      Эпизод 1: "Прoбуждeниe"
      Эпизод 2: "О дивный новый мир"
      Эпизод 3: "Ад пуст"
      Бонусный эпизод: "Прощание"
      Русская озвучка уже доступна для скачивания!
      ElikaStudio выражает огромную благодарность всем, кто принял участие в создании проекта! 
      Группе Mechanics VoiceOver R.G. MVO , в частности их руководителю Дмитрию за неоценимую помощь в выпуске эпизода.
      Скачать для PC Classic (2018):
      GDrive: - https://drive.google.com/file/d/19CL_L80Mz0sIxcb54Ss64byAkeZmV22r/view?usp=sharing
      Скачать для PC Remastered (2022):
      GDrive: - https://drive.google.com/file/d/13q58Lpvw5_aYPYeZ7OGYZlAKOoS1gEbL/view?usp=sharing
      Скачать для Свитч(2022):
      GDrive: - https://drive.google.com/file/d/15e—T1LQiGQCYIHeNnj_C2qJA16Gvh1i/view?usp=sharing
      Ручная установка PC(оба издания):
      https://drive.google.com/drive/folders/1MJPd8965m4XxxAuOBt8enSHtv8_yy5xh?usp=sharing
      Баг репорт в обсуждении:
      https://vk.com/topic-48153754_55571577
      ___________________________________________
      Финансовый аппарат:
      www.donationalerts.com/r/elikastudio
      Пожертвовать средства на наши проекты:
      Кошелек ЮMoney 4100 1188 6818 3009
      карта Сбер банк 2202 2018 6334 1042
      карта Альфа банк 5559 4937 0209 8584
      Спасибо за вашу поддержку!
      #elikastudio #русскаяозвучка
      · 0 ответов
    • fox222  »  Siberian GRemlin

      Здравствуйте, хочу купить персональный доступ к переводам, сколько стоит?
      · 1 ответ
  • Лучшие авторы


×