Перейти к содержимому
Zone of Games Forum
[Silent Man]

From Dust

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

Сегодня я исследовал формат файлов *.oli, в них хранится весь текст. Он оказался тоже не простым.

Вот скрин с описанием того, что мне удалось выяснить:

olizia.th.png

Тут нужно писать отдельную утилиту, которая будет извлекать и записывать в них данные.

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


Ссылка на сообщение
Сегодня я исследовал формат файлов *.oli, в них хранится весь текст. Он оказался тоже не простым.

Вот скрин с описанием того, что мне удалось выяснить:

olizia.th.png

Тут нужно писать отдельную утилиту, которая будет извлекать и записывать в них данные.

одно слово или фраза из игры один файл *.oli на разных языках.

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


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

да да, очень извращённо. :mad:

Ещё замечания: После каждого текстового фрагмента 12 байт нулей.

AutoIt понимает этот текст только в кодировке UTF16 Little Endian, а Акельпад в UTF16 Big Endian

не знаю кому верить))

Изменено пользователем OLEGator84

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


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

Если я не ошибаюсь в игре есть русский шрифт.не все буквы я, э, Э, P, p, Х, х, ю, Ю отсуствуют

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


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

Я пробывал забивать русский текст через HEX редактор (перевёл один из пункутов меню) строка тупо не отображалась. Хотя может я что-то напутал с кодировками.

Набросал скриптик, которым буду обрабатывать OLI файлы (это только набросок, потом будет массово)

$sScriptName = "From Dust OLI exporter v.0.1" ; имя программы$sOliFilePath = FileOpenDialog ( "Select *.oli archive", @ScriptDir, "From Dust(*.oli)", 1); выбираем файл *.oliIf $sOliFilePath = "" Then Exit ; если ничего не выбрали, выход$hOLIfile = FileOpen ($sOliFilePath, 0+16) ;открываем файл в режиме чтения+бинарный$bOLIfile = FileRead ($hOLIfile)$iNameLen = Dec (Hex (_Rotate(Binarymid ($bOLIfile, 38, 4)), 4))$sOliName = BinaryToString (Binarymid ($bOLIfile, 42, $iNameLen-2), 2); преобразуем бинарные данные в строку. UTF16 Little Endian$iTextLen = Dec (Hex (_Rotate(Binarymid ($bOLIfile, 42+$iNameLen+2, 4)), 4))$sOliText = BinaryToString (Binarymid ($bOLIfile, 42+$iNameLen+6, $iTextLen-2), 2)ClipPut ("["&$sOliName&"]"&@CRLF&$sOliText); копируем результат в буфер обменаMsgBox (0, $sScriptName, "["&$sOliName&"]"&@CRLF&$sOliText); функция переворачивания байтFunc _Rotate($bBytesToRotate)If IsBinary ($bBytesToRotate) = 0 Then Return "" ; если переданные данные не являются бинарными, возвращаем из функции пустоту$iBytes = BinaryLen ($bBytesToRotate) ; определяем количество байт$bRotatedBytes = Binary ("") ; объявляем переменную, в которой будет перевёрнутое значение и указываем, что она для хранения бинарных данныхFor $i = $iBytes To 1 Step -1 ; крутим цикл от максимального значения до 1$bRotatedBytes &= BinaryMid ($bBytesToRotate, $i, 1); выбираем по 1 байту с конца и объединяем с содержимым объявленной переменнойNext   Return $bRotatedBytes ; возвращаем перевёрнутый результат из функцииEndFunc ;==>_Rotate

 

Текст буду собирать в один файл, маркируя к какому файлу он относится. Пример:

[006_Dustpedia_Map_7_0000241]

The Ancients set foot on a strange land, which rose and fell with a gentle tide. The presence of the trees of water and trees of fire frightened the Ancients, who had already suffered from their clash. A man then noticed that a tree of fire and one of water had become intertwined.The fire of the first nourished the water of the second, from which vegetation grew. When the Ancients understood that the two breaths would oppose each other or join forces depending on the circumstances, they pursued their journey.

On this territory, you can form a long serpent of jellified water to grow vegetation on. The vegetation will spread along the water until it begins to flow again, when the effect of the power wears off.

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


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

Ну вроде готово. Массовый экспортер текста из OLI файлов: OLI_text_export.rar

Oli файлов том больше тысячи...

Выходной файл я сделал в кодировке UTF-8, так как вдруг придётся заливать на нотабиноид.

Встречаются какие-то непонятные символы, например в файле 006_Promo_Line2_Text_0001500.oli строка начинается с символа 0x2220, потом два пробела 0x2000 0x2000.

Что за символ?

Ну и собственно сам английский текст: Gen_Common.lin.bf.rar

з.ы.

И ещё небольшой прогресс: Мне удалось вручную запихать текст в архив без ограничение на длинну строки. Теперь нужно писать скрипт-патчер

fromdust201108231537028.th.png

Изменено пользователем OLEGator84

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


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

Интересно!

Будем ждать патчер и шрифты.

ОЛЕГатор - молодец :victory:

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


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

Небольшая инструкция как добавить текст вручную на примере [1891]000_Main_Menu_Play_Text_0000252.oli:

Открываем *.oli файл в HEX редакторе, Сверяясь по описанию находим первую строку с текстом (первый у нас английский, строка Play) и его длинну 0A 00 00 00, переворачиваем её 00 00 00 0A и переводим в десятичную систему 10 (можно использовать калькулятор Windows). Итого строка Play занимает 10 байт (на самом деле 8, последние 2 байта нули) по 2 байта на каждый символ. Теперь например откроем Akelpad напишем новый текст и сохраним его в кодировке UTF16 Little Endian (это значит старший байт будет первый из двух). Теперь открываем этот текстовый файлик в HEX редакторе и считаем сколько байт он занимает (Если вы сохраняли с BOM, то первые 2 байта это маркер кодировки и его не трогаем). Зная сколько было байт (8, последние нули не считаем) и сколько стало, расчитываем сколько лишних байт добивится в OLI файл. В HEX редакторе встаём на конец строки и зажимаем правой кнопкой Insert и добавляем нужное количество байт, заполняем их нужными значениями, помня о том, что последняя пара нули + расстояние до следующей строки 12 байт нулей. Теперь прибавляем количество к значениям размера блака данных (который идёт в самом начале и повторяется 2 раза) и к размеру всего файла, также перевернув, преобразовав в десятичну и потом результат в обратной последовательности.

Геморно, но я работаю над инструментом.

Теперь нужно всё это дело прикрепить к архиву BF. Открываем в его в HEX редакторе, двираемся в конец файла и правой кнопкой Insert и добавляем нужное количество байт равное размеру файлу (ПКМ => свойства на oli файле, который изменили) и заполняем эти байты данными из файла. Запоминаем смещение, с которого начинается этот блок данных. Идём в самое начало архива, поиском находим текст 000_Main_Menu_Play_Text_0000252.oli в шапке и по описанию формата находим размер (2 раза) и смещение, меняем их на наши учитывая, что они перевёрнуты.

Всё!

Тоже геморно, но я работаю над этим.

з.ы.

Этим методом вчера пытался всунуть TGA шрифт (предварительно изуродовав пару букв), чтобы идентифицировать какой куда относится - Так и не обнаружил никаких изменений во внешнем виде шрифта, перебрав все толстые. Вероятно он не в TGA?

--------------------------------

Нашёл пару ошибок в распаковщике *.BF архивов. Исправленная версия анпакера: FromDust_BF_unpacker_fixed.rar

Исправления:

- устранена причина некорректного определения количества файлов в архиве

- исправлена ошибка с преобразованием HEX

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

Изменено пользователем OLEGator84

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


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

 

OLEGator84 Молодец =) Щас пока некогда игрой заниматься. если сильно не спешите, помогу чем смогу =)

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


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

Не помешает помощь в написании упаковщика в BF и необходимо разобраться со шрифтами. Я не смог выявить какие файлы к ним относятся. Имеющиеся TGA текстуры я менял, но результата нет.

В данный момент я работаю над редактором OLI

Изменено пользователем OLEGator84

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


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

OLEGator84

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

Напиши в личку аську. Так удобнее будет скоординироваться по наличию свободного времени.

Насчет текста, в игре его много? По объему в страницах =) Я просто в игру толком еще не играл.

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


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

ого, ну вы работу проводите, жаль я помочь не смогу, не разбираюсь в этом =(

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


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

текста 123.6 КБ в текстовом файле формата UTF-8 (это с именами файлов внутри, а зачастую имя файла больше самого текста)

Текст я выкладывал выше.

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


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

шрифты находятся в файла расширением ffd русская буква {А} код 0С0Н буква {Я}-0DFH

Изменено пользователем BumB_32

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


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

ммм... интересно!

Это значит нам не нужно их править и русские буквы все внутри?

Только мне не понятно что это: 0С0Н, 0DFH ? Что означает символ H?

В кодировке UTF-16 LE: А - 1004, Я - 2F04 не отображаются в игре.

Изменено пользователем OLEGator84

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


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Похожие публикации

    • Автор: SerGEAnt
      Sophie: Starlight Whispers

      Метки: Приключение, Исследования, Проработанная вселенная, Вид сбоку, Фэнтези Платформы: PC Разработчик: Youth Gaming Издатель: Youth Gaming Дата выхода: 10 марта 2026 года Отзывы Steam: 20 отзывов, 95% положительных
    • Автор: katz_eis
      The Excavation of Hob’s Barrow

      Метки: Point & Click, Приключение, Хоррор, Пиксельная графика, Протагонистка Платформы: PC SW MAC LIN Разработчик: Cloak and Dagger Games Издатель: Wadjet Eye Games Серия: Cloak and Dagger Games Дата выхода: 28 сентября 2022 года РУСИФИКАТОР.

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

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

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

    • Всем привет, подскажите, в каком ассете искать текст игры? Посмотрел в resources.assets, там 20 txt ассетов но текст от туда для настроек и онлайна, текста самой игры нету. Могу вытащить текст, перевести, создать шрифт и импортировать переведенный текст и шрифт (в юнити можно собрать тестовый билд с русским языком, просто пустой проект на шаблоне 3д где  будет просто сцена с русским текстом и из него уже вытащить материал и текстуру нужного текста, потом останется это импортировать в нужный ассет в игре через UABEA чтобы не было непонятных  символов и готово ) 
    • Нет, не правильно. Смотреть надо на градацию по производительности и если несколько карт находятся примерно в одной зоне в отрыве от топа, то они все считаются предтопом. Просто раньше было более чёткое разделение, а сейчас напридумывали всяки Ti, Super и  прочие маркетинговые уловки.
    • Делаю русик для Ride 5 (перевод с французского). В файлах игры есть частичная русская текстовая локализация — частично переношу её, остальное доперевожу. В игре есть озвученные ролики на движке, на всех языках кроме русского. Субтитров под ролики не предусмотрено. Я конечно заменил французский лепет на английский, но это конечно такое себе, и хотелось бы чтоб было всё по красоте, да с русской речью. В связи с этим вопрос\просьба: Может кто из подкованных в озвучке нейронкой подсобит? 37 файлов по 5-40 сек. Один голос. Естественно “за спасибо”. Если это как то упростит работу, я сгенерил файлы с озвучкой, но опять же — не в курсе, должны ли файлы быть одной длинны с оригиналом — у меня вышла разница +/- 1 секунда. В архив закинул французскую озвучку (заменять нужно её), английскую (на всякий случай), соответственно все метаданные, расшифровку английской озвучки (где-то редактировано, где-то нет), сгенерированные мной файлы в формате .acc и оригинальные в .wav (английская озвучка). https://drive.google.com/file/d/1N3TE4TMGeFgdrte4LGm0N20xqn4TcFts/view?usp=sharing
    • Хм… Тогда, возможно, что Интел сами занесли разрабам, чтобы игра не запускалась на их картах.  Забота о покупателях своей продукции.  Красавчики!
    • Тут нечто большее, чем просто дерьмо: это красивый свадебный торт размером с пятиэтажку, но внутри он наполову пустой, а наполову заполнен говном. Получается, владельцев Интел Арк скорее пытались защитить, чем обделить 
    • Смешно. Смешно.  P.S. Игра дерьмо — придраться не к чему (скукотища).
    • Я помню, ты на стриме рассказывал.  5070ti самое то, по соотношению цена\производительность.  5080 от неё недалеко ушла. Cкукотища  Это да.
    • Когда я все это изучал в прошлом мае, 5070ti внезапно оказалась почти ровней 5080, а выше них есть только 5090, так что...
    • @CyberPioneer  В случае например 4080\super\ti  Все эти 3 модели можно назвать “предтопом” 
    • Нормальная карта, тем более я ее даже не взял — мне ее подарили. Проблем с производительностью у CD нет, ну если не считать потерянных 5 минут на загрузке игры + компиляции шейдеров. Пресс-версия чуть подтормаживала (40-50 fps в нативе, 160fps с генерацией) во вступлении, после этого никаких проблем не было. Это 3440x1440 с DLSS Q.  Даже не вылетела ни разу, скукотища.
  • Изменения статусов

    • 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 ответ
    • vitkach  »  eaZy

      Извините за беспокойство. Хотел спросить, а русификатор ещё когда-нибудь будет обновляться? Дело в том, что после его выхода выходили ещё обновления, в частности обновление 1.1, вышедшее летом 2023 года, где была добавлена целая сюжетная глава в конце если проходишь на лучшую концовку золотого пути, это где-то ещё полчаса диалогов. Также в игре присутсвуют иногда кракозябры вместо русского языка, это в основном связано с тем, что кое-где текст был изменён, в основном в обучающих сообщениях.
      · 0 ответов
    • TerryBogard  »  Siberian GRemlin

      C&C: RA: Retaliation (ПК) не работает.
      · 0 ответов
  • Лучшие авторы


Zone of Games © 2003–2026 | Реклама на сайте.

×