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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: mordamax

      Скоро игре 5 лет, а перевода всё нет, и нет. 
      Придётся заняться самим.
      Движок: Unity
      Жанр: Решение с последствиями, Детективное, Симулятор.
       
    • Автор: Gerald
      Предлагаю на перевод вот steam https://store.steampowered.com/app/2451460/_2222/?curator_clanid=39058271
      Погрузитесь в антиутопический мир, где человечество своими действиями развратило планету. Вы живете в возвышенном городе, над облаками радиоактивной пыли, без чувства смысла жизни, участвуя в очередном «дне сурка» главного героя. Ваша задача скользить под поверхностью города, дабы отремонтировать автономную систему, обеспечивающую функционирование жителей города. Это очередная рутинная неудача, или сегодняшний день изменит вас навсегда? Пришло время ответить на вопрос, каков ваш путь и правда.

      Рисованная графика
      Одной из уникальных особенностей нашей игры является рисованная графика. Во времена искусственного интеллекта, игр, созданных из ассетов и фотографий, сгенерированных с помощью искусственного интеллекта, мы подготовили для вас часы графики, сцен, анимаций, которые создают уникальную атмосферу Lazarus. Уникальная игра, ей нужен уникальный сеттинг, и это дает Lazarus. Ваш игровой процесс состоит из большого, большого, большого количества нашего времени и энергии. В конце концов, что только не делается для верного игрока?

      Окунитесь в атмосферу игры
      Мы подготовили для вас около 2 часов истории, которая написана языком, позволяющим проникнуть в тело и разум главного героя. Вас ждут как инфантильные, юмористические разговоры и внутренние диалоги, так и серьезный поиск смысла жизни, цели путешествия в этом мире.

      У вас есть выбор
      Делайте выбор, который повлияет на остальную часть игры. Вы верите в эффект бабочки? Если это так, у вас есть возможность испытать это на собственном примере во время игры.

      Различные уровни геймплея
      Вы можете испытать игру на разных уровнях, что позволяет вам испытать ее несколько раз, не скучая. На первый взгляд это не очевидно, поэтому, если вы ищете что-то большее в играх, вы найдете здесь скрытое послание и вторую параллельную историю. Это не значит, что вы не можете сосредоточиться только на основной истории игры и понимать ее буквально. Это один из магических элементов Лазаря. 

      Достигать
      Охотник за достижениями, мы подготовили для вас достижения, которые обогатят вашу коллекцию. Конечно, не все из них удастся получить простым способом. Наконец, вы сможете сравнить себя в этом отношении с другими игроками в «Lazarus 2222 a.d. ». Принимаете ли вы вызов заработать все достижения?

      Мини-игры
      В некоторых моментах стоит оторваться от основного сюжета и поиграть в мини игры, которые разнообразят игровой процесс. Проявите свой блеск, ловкость, логическое мышление, играя в мини-игры.

      Работа с геймпадом
      Вы можете играть в Lazarus на геймпаде. Если вы играли на геймпаде, напишите нам, если вам понравилась поддержка игры на нем.  

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

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

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

    • @Reklin доработал русификатор от eSave для симулятора Orwell: Ignorance is Strength до релизной версии. @Reklin доработал русификатор от eSave для симулятора Orwell: Ignorance is Strength до релизной версии.
    • Санкции же  Так не бывает счетов  с имущественными правами,счета это для денег,вот в чем ключевое в законодательстве. Так они и сейчас не анонимы,это или спб или банковский перевод и то и то персонифицированные  ,обезличенные не проходят с 21 года.
    • закат и винтажный фильтр добавляют эффекты
    • ты видать давно не в теме и не в курсе какие тут у некоторых пользователей ПК. Так что возможности у них вполне позволяют прикупить себе ещё парочку приблуд, в том числе и такую. Остальным соболезнования и порадоваться, что хотя бы они смогли. А есть ещё варианты?
    • @edifiei я так понимаю это ответ “умного” чата, или ты у нас тоже практикующий юрист шарящий за практику в таких вопросах и можешь тут пояснять и делать подобные заявления? куруто если так. А если это ответ чата, то вот тебе другой ответ чата на твоё: Вот это и проблема. Ничем не защищены, не являются собственностью пользователя, т.е. что получает по факту пополнивший свой (или не свой) баланс? Имущественное право требования к компании Valve предоставить вам оплаченный цифровой товар или услугу  Да ничего, красивую цифру в верхнем уголке. Типа гарантия. У DELL  и других тоже была “гарантия”, у “киви” была “гарантия”… на бумаге. Всё это хрень. Хочешь купить игру, кидаешь в корзину, оплачиваешь, получаешь игру, и никак иначе. Никаких кошельков с х00х рублями. Деньги должны храниться на счету, вкладе в банке, а не быть “авансовым платежём” без сроков и ограничений. Единственный вариант это прямая привязка своего банковского счета или счета СБП, или как на маркетплейсах “Баланс средств”. 1) про Японию есть в цитате, и что это для них.
      2) вот именно, никакого кошелька с “авансом”, а как на маркетплейсах или привязка банковского счёта, т.е. никаких анонимных платежей. Всё к этому и придёт. Стим в РФ блокировать глупо, а вот взять под контроль и навязать условия вполне. А раз Валв в РФ работать хочет, то решать вопрос с приёмом платежей придётся, и варианты через ныне забугорные помойки типа Золла больше не проканают.
    • так она вроде такой и была,) бладборн и дс3 ушли в такой стиль по сравнению с приземленным готическим стилем дс1 и дс2 а тут просто еще и это усиленно высоким разрешением и качественным сглаживанием.
    • Картинка стала под 2D — мультяшной/анимешной. Или так по освещению совпало?
    • Есть ещё красивый файтинг Battle Fantasia от Arc System с элементами rpg. Тоже жду и надеюсь на появления перевода для неё. 
    • Моник за 90к, видяшка за 100к, проц за 50к, ПАМЯТЬ DDR5 32 за 50к… А там ещё “мать”, БП, корпус и модные Клавамышь. Взрослым дядям играть становиться очень трудно. Дети, переходите уже на деревянные игрушки :-) Не заморачивайтесь даже.
  • Изменения статусов

    • 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 ответов
    • Jimmi Hopkins  »  SerGEAnt

      я его уже открыл в свободный доступ, чтобы не потерялось среди новинок
      · 0 ответов
  • Лучшие авторы


×