🛠 Как мы переносили перевод «The Path» на новый билд (и чуть не сошли с ума)
Представьте задачу: есть классная старая игра The Path, есть её официальный перевод на русский... который в актуальной версии Steam просто не работает корректно. Нас попросили взять русификатор из древних файлов .cgr и аккуратно пересадить в свежий билд.
Звучит как работа на полчаса, правда? Ха-ха. Добро пожаловать в ад реверс-инжиниринга! 🐍✨
🕵️♂️ Этап 1: «Оно живое, но ему больно»
Сначала мы попытались накатить старые файлы нахрапом. Игра даже запустилась! Правда, в меню выбора персонажей у героинь поехали модельки, а текстуры начали жить своей жизнью.
Пошли гуглить, что это за файлы такие. Выяснилось: игра сделана на Quest3D - древнем и крайне специфичном нодовом движке. Инструментов для работы с ним в сети примерно ноль. Нашлась только одна инструкция для другой игры, но нам она не подошла. Пришлось лезть в дебри самостоятельно.
🚪 Этап 2: Босс «Лицензия» и его брат «64 бита»
Чтобы отредактировать файлы движка, нужен сам редактор Quest3D. И тут началась комедия в трех актах:
- Проблема с версией: В файлах игры нашли плашку Quest3D 420. Качнули версию 4.21, запускаем, а она просит лицензию. Серверы проверки давно мертвы, компании-разработчика не существует, демо-версия ничего открывать не дает.Решение: Объединились с нейросетью и шаг за шагом написали патч, обходящий проверку. Программа запустилась! 🎉
- Проблема с разрядностью: Запустилась, но файлы игры не открывает. Выдает ошибку. Мы уже думали бросать, но заметили файл HighPoly.dll и осознали: игра-то 64-битная! А мы пытаемся открыть её в 32-битной 4.21. 64-битный Quest3D появился только в 5-й версии.
- Опять лицензия: В 5-й версии разработчики движка обновили защиту. Пришлось снова лезть во внутренности программы и делать уже четыре патча в разных местах кода, чтобы редактор просто соизволил завестись.
🔒 Этап 3: Защита от взлома внутри защиты
Ура, редактор запустился! Открываем файл локализации и получаем по шапке:
«This file is not editable because it was protected by its author.»
(Этот файл нельзя редактировать, так как он защищен автором).
Парадокс: раз мы увидели это сообщение внутри программы, значит, расшифровка файла сработала, но автор игры повесил поверх запрет на редактирование.
Мы засунули библиотеки программы в IDA Pro (инструмент для анализа кода), нашли функцию блокировки и успешно её вырезали. Файлы наконец-то открылись! Казалось бы - победа?
Не тут-то было.