Перейти к содержимому
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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: DInvin
      Вышла сегодня. Мб кто нибудь прогонит?)
      https://store.steampowered.com/app/4017880/アノマリスANOMALITH/
    • Автор: Jimmi Hopkins
      Красивый квест о спасении Санты. Перевод делался с душой и акцентом на атмосферу: здесь приятная музыка, живые персонажи, добрый юмор и ламповый рождественский вайб. Текст и подсказки адаптированы так, чтобы вы получали удовольствие от истории и четко понимали, куда идти, а не ломали голову над неочевидными загадками.
      Оригинальная озвучка: профессиональные актеры.
      Эта игра создана для всех тех, кто, проходя через естественный процесс под названием «взросление», не забыл, как оставаться детьми. 
      Платформа: windows Steam / GOG совместимые (любая версия с озвучкой)   Дата выхода: 1 дек. 2021 г. Разработчик / Издатель: Dionous Games   Локализация (глубокая адаптация, графика, анимация, шрифт) : Джимми Хопкинс   Скачать русификатор для ПК   Видео демонстрация русификатора   Важный нюанс: В конце игры перед тем, как отправить Крампуса в сферу - обязательно сохранитесь! Из русской версии пришлось вырезать финальную битву с Крампусом из-за непоправимого бага в коде. Но вы ничего не потеряли: на деле этот мини-эпизод — затянутая вариация «камень, ножницы, бумага», где всё зависит от чистого везения. Долгий унылый рандом только портит впечатление от финала. Если очень хочется пощупать эту механику — ее можно запустить в оригинальной английской версии с места сохранения. Перевод инструкции к этой мини-игре: Instruction_Krampus_battle.jpg (в корне игры).   PS Автосохранение не всегда корректно работает если принудительно закрыть окно. Настоятельно рекомендую перед выходом из игры сохраняться через соответствующее меню.    Установка (простой sfx архив, но антивирус может ругаться): Запустить rusifikator_Watch_Over_Christmas и выбрать папку с игрой, в которой лежит woc.exe (корень игры). Дождаться завершения установки. Запустить игру и наслаждаться приключением!    Удаление: Запустить rus_uninstall.bat   Не буду рассказывать, какие кошмарные дни пришлось пережить с багами этой игры, ломая голову над их решением. Но чудеса обратного инжиниринга дали свои плоды.

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

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

    • Игра понравилась, поэтому решил сделать полный ручной перевод. На данный момент готов перевод 9 глав из 14. Ближе к середине ноября 2026 года закончу.
    • Сомневаюсь, что остались исходники, так как перевод был выпущен давным давно и исходники некоторых текстур были у разных художников. Насчёт шрифтов, если они от оригинальных растровых шрифтов ничем не отличаются, то можно попробовать тупо извлечь шрифты из оригинала и импортировать их в версию ремастера через версию с гитхаба TTG Tools. Видел, там что-то иностранные энтузиасты доработали в программе. Текст, возможно, использовался из landb файлов, где, возможно, тогда толмачи не все перевели, так как было много текста, которое в игре на тот момент не использовалось. Насчет исходников можно спросить у @0wn3df1x. Может, у них сохранились хотя бы векторные шрифты для генерации новых растровых шрифтов. Либо придётся искать в интернете похожие шрифты и использовать их. Помню, для версии ps vita мне приходилось генерировать шрифты из каких-то найденных шрифтов в интернете, но потом вроде получилось портировать с пк версии шрифты полностью на ps vita.
    • Спасибо, что ответили. А моды не помогли, на которые я ссылки кидал? Если нет, я бы на вашем месте выпустил бы перевод, а там может на волне релиза кто-нибудь поможет. Или можно в переводческих группах в вк спросить.
    • Патч на отображение оригинального шрифта для текущей версии 1.1.11
    • Добавил в версию русификатора от @Le_Maxime перевод дополнительных удаленных сцен (как по мне самая важная часть всего ремастера) https://drive.google.com/file/d/1Abc9RugHR35-826hurCxXqRD8jiLNt_1/view?usp=sharing
    • Тренер для игры UnReal World 3.89.1
      Чтобы не портить игровой опыт рекомендую не использовать.
      Но вот я лично читер до последней клеточки тела и поэтому не могу не поделиться
      Те кто будут исследовать игру и искать что ещё не переведено, рекомендую. Нужно будет добавить функционал пишите.
      Тренер с автообновлением тоже (нажал и радуешься чудесам автоматики).
      Ссылка на тренер  

    • Версия 0.31 для UnReal World 3.89.1. Языки: русский и финский; оригинальный английский доступен в лаунчере.
      Ссылка на релизы github Ссылка на яндекс диск

      Применение:
      Закройте игру, распакуйте содержимое ZIP рядом с urw.exe и запустите URW_Launcher.exe. Выберите ENG/RUS/FIN. Кнопка «Проверить обновления» загружает следующие версии из этого репозитория. Для первого перехода с 0.30 и ниже распакуйте 0.31 вручную; далее обновления встроены в EXE, без PowerShell. Если ранее включали запуск через Steam, после замены файлов при необходимости обновите загрузчик в лаунчере. Перевод и шрифты находятся внутри DLL. Каталоги JSON/CSV, редактор, запись игровых сообщений и Launcher Plus в этот комплект не входят. Игра приобретается отдельно; оригинальный игровой EXE в архив не включён.
    • Тоже была в списке желаемого, думал заняться на досуге.
      Но раз уж пошёл движ - это даже к лучшему.
    • я уже ему предварительный гайд с батником скинул, чтобы без заморочек ;)
      я кстати глянул в списке “хотелок” — игра там болтается. Но в ближайшие пару месяцев точно не до нее будет.
    • @Rabid666 там не так сложно на самом деле как кажется. Есть испытанный распаковщик, а запаковывать необязательно. https://oezmen.eu/gameresources/files/anb.zip прога для распаковки.
  • Изменения статусов

    • edifiei

      «Как говорил мой дед — делай добро и пихай его в гнома»
      · 0 ответов
    • goosemose  »  Orionus

      Здраствуйте
      Хотел спросить за руссификатор для Dragon Quest 3, есть ли бесплатный для пк? Или только платный недавно купил ее в стиме, думал что на пк есть руссификатор, уже некоторое время ищу и нахожу либу пустые файлы либо платные, хотя по коментариям вроде видно что был на пк бесплатный перевод.
      Подскажите пожалуйста.
       
      · 0 ответов
    • axe66  »  SerGEAnt

      здравствуйте. можете добавить на сайт раздел для игры She’s Leaving и русификатор к нему? и как и куда вам скинуть фото и сам русификатор?
      [h2] Версия: 1.0.1 (от 22.05.2026)
      Совместимость: для сборки 20909321 [/h2]
       Информация:
      Машинный перевод моделью gemma2:9b-instruct с несколькими этапами автоматической перепроверки (модель "самопроверялась") и финальными ручными правками.
      Это не финальная версия — по мере нахождения ошибок перевода будут выходить обновления.
      Известные нюансы:
      * Возможны неточности и ошибки в переводе.
      * Некоторые элементы интерфейса остались без перевода.
       Установка:
      1. Запустить Russifier.exe
      2. Нажать "Выбрать папку"
      3. Выбрать папку с игрой и нажать ОК
      4. Нажать "Установить"
      5. Дождаться завершения установки и закрыть программу.
      После установки запустите игру и наслаждайтесь!
      Если заметили ошибки или некорректные формулировки — оставляйте комментарии, будем исправлять!
       
      Автор: Serjik Sokolov История изменений:   Версия 1.0.1 от 22.05.2026 - Установщик теперь автоматически определяет корневую папку игры, даже если случайно выбрана вложенная папка.   Версия 1.0.0 от 03.12.2025 - Релиз
      · 1 ответ
    • Perfect End Strange  »  SerGEAnt

      Привет, озвучку для Silent Hill 4: The Room выпустил энтузиаст под ником Perfect End Strange, а вы написали совсем другую студию, пожалуйста, исправьте эту оплошность
      · 0 ответов
  • Лучшие авторы


×