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

      Метки: Работа в магазине, Крафтинг, Средневековье, Ролевая игра, Глубокий сюжет Платформы: PC Разработчик: SUN AND SERPENT creations Издатель: Mythwright Серия: Mythwright Дата выхода: 22.01.2026 Ранний доступ: Да Отзывы Steam: 436 отзывов, 95% положительных
    • Автор: allodernat
      Eternal Radiance

      Жанры: Action, Adventure, RPG, VN (экшен, приключение, ролевая игра, визуальная новелла)
      Платформы: Windows (PC)
      Разработчик: Visualnoveler
      Издатель: Visualnoveler
      Дата выхода: 15 декабря 2020 г.
      Отзывы Steam: Очень положительные (82% положительных отзывов)
       
      Перевёл на русский язык с использованием нейросети + шрифты.
      P.S. это больше визуальная новелла с примесью ролевой игры, диалогов тут очень много.
      Совместимая версия: steam 1.01R1 (по идее должна быть актуальная в стиме)
      Скачать для PC: яндекс диск | Boosty Установка:
      1. Распакуйте архив.
      2. Cкопируйте папку «Eternal Radiance_Data ».
      3. Откройте Steam → нажмите на шестерёнку (Настройки) → Управление → Показать локальные файлы.
      4. Вставьте её в основную папку игры.
      5. При запросе на замену файлов нажмите «Да».
       
      Также адаптировал русификатор под switch.
      Чтобы установить, скопируйте папку atmosphere в корень microSD.
      Совместимая версия  [0100FAB0152EA000][v0]  . 
      Скачать для switch:  яндекс диск  | Boosty    

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

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

    • Earth Must Die Дата выхода: 28 янв.2026 г. Разработчик: Size Five Games Издатель: No More Robots Жанр: point-and-click Платформы: PC https://store.steampowered.com/app/3639780/Earth_Must_Die/ Earth Must Die — комедийное point-and-click приключение, где центральной фигурой выступает не герой, а тиран-мегаломаньяк по имени Ввалак Языкатый. Степень деспотичности протагониста полностью зависит от решений, принимаемых в процессе прохождения. Проект ломает устои жанра, отказываясь от традиционной системы инвентаря, поскольку главный персонаж считает сбор предметов недостойным своего высокого статуса. Решение головоломок и продвижение по сюжету достигается исключительно через манипуляции, приказы и унижение окружающих персонажей. Визуальное исполнение напоминает классические мультсериалы благодаря яркой и сочной рисованной стилистике. Машинный перевод под steam Build 21665190 https://drive.google.com/file/d/1gWn_3yqysd67Zg2xO6uWtu0o87vjG_w8/view?usp=sharing В настройках выбрать Русский язык.
    • Изначально запускал гоговскую версию Definite Edition, русские субтитры там на порядок чётче чем те, что установил для версии с Game Pass. Дело всё в том , что версия с GP с 64 битной архитектурой , а гог и Стим - 32 бит. Накатил русские Сабы с одного из рукодств в Стиме, но сами субтитры видно по шрифту отличаются и не хватает им чёткости, особенно на фоне разрешения 2880 на 1620 , странно выглядит . Либо сама версия в Game Pass изначально такая какая то "особенная" .  Никто не замечал подобного ? И как то это можно улучшить, шрифт текста или никак ? Вероятно тогда стоит вернуться к 32 битной версии.  Просто странная штука с сабами, интересно узнать почему так.  
    •  Прошел демку, задумка по боевке интересная, сначала не понял и подумал фигня какая то, а потом как понял что нужно врагов подбрасывать двойным прыжком и боевка в основном происходит в воздухе все стало как по маслу играться, жаль вот то что эта фишка с боем в воздухе с боссом не работала, по этому бой с псом был прям ме и не интересный. за время демки в игру наигрался поэтому полную версию играть не охота.)
    • Ну раз пошла такая пьянка, я свой вариант русификатора тоже выложу Перевёл на русский язык с использованием нейросети + шрифты. Совместимая версия:  steam build 21666403 от 27 января 2025 года, пока актуальная. Если выйдет обновление русификатор сломается. Имейте ввиду! Установка: 1. Распакуйте архив. 2. Cкопируйте папку «Dust & Courage_Data». 3. Откройте Steam → нажмите на шестерёнку (Настройки) → Управление → Показать локальные файлы. 4. Вставьте её в основную папку игры. 5. При запросе на замену файлов нажмите «Да». 6. В настройках выберете немецкий язык. Скачать для PC: яндекс диск | Boosty  
    • Да игра легенда, жаль 2 части не будет никогда уже наверное.
    • @VLexaN, лучше бы вы полную игру выложили в архиве. Так намного проще было.
    • Я смотрел прохождение.  За исключением ГГ, никаких достоинств больше не увидел. Попробую.  Выглядит интересно.
    • @piton4 думаю попробовать хоррор с пошаговой боёвкой и без русика https://store.steampowered.com/app/2767530/Wicked_Seed/ @piton4 попробуй демку parasite mutant https://store.steampowered.com/app/3983000/Parasite_Mutant/ на русском.жду выхода 
    • Конечно.  Я на релизе же проходил.
  • Изменения статусов

    • TerryBogard  »  Siberian GRemlin

      C&C: RA: Retaliation (ПК) не работает.
      · 0 ответов
    • Алекс Лев  »  SerGEAnt

      Привет, Сержант. Прошу разрулить ситуэйшн и урезонить некоторых людей, оскорбивших мою личность. Пожалуйста, для этого прочтите нашу переписку с Ленивым. Примите меры, будьте добры, мною составлена бумага, ждущая вашей электронной подписи, для подачи её в суд. Если не желаете судебных разборок (а я пойду дальше, если меры не будут приняты), оскорбившие меня люди должны понести необходимое по вашему же Договору наказание. Спасибо.
      · 1 ответ
    • Antony1203  »  SerGEAnt

      Добрый вечер! С Новым Годом. Нашел на просторах сети русскую озвучку Halo Infinite, которая отсутствует на моем любимом сайте  Протестил. Все работает. Подскажите, как можно передать? Спасибо.
      · 2 ответа
    • Albeoris

      Демка вышла. Работаем.
      · 0 ответов
    • maddante665  »  parabelum

      https://disk.yandex.ru/d/A7W9aHwW7wLTjg
      ссылка на торрент , в нем архив с игрой.
      единстенное в геймпасее папка TotalChaos_Data так, а в стиме Total Chaos_Data, но если пробел убрать в архиве с ркссификатором все равно не работает, ломаются надписи , просто прозрачные. я пробовал только текст .
      · 1 ответ
  • Лучшие авторы


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

×