Русификатор Yakuza 5 Remastered: 33 000 строк, зачистка бага 0xFF и инженерные сводки из Нагасугай.

Русификатор Yakuza 5 Remastered: 33 000 строк, зачистка бага 0xFF и инженерные сводки из Нагасугай.

Всем привет. Праздники закончились, а «Драконьи хроники» продолжаются. Январь 2026-го я встретил не за отдыхом, а за масштабной ревизией того, что успел наворотить в прошлом году. Пока Кирю развозит пассажиров по Фукуоке, я штурмовал файлы первой главы (Nagasugai).

Результаты на сегодня: мой мастер-словарь разросся до 33 000 строк, количество ручных фильтров (тех самых, что отсеивают бинарный шум) перевалило за 3 000, а техническая подготовка первой папки сюжета (UID01) почти завершена.

Масштабная работа вскрыла важный нюанс: в будущем мне всё-таки придётся полностью переделывать и движок редактора (V3), и саму систему подмены символов вместе с шрифтами — всё ради 4K и идеального расположения букв. Но пока это планы, а сегодня я хочу рассказать про одну маленькую «бомбу», на которой я подорвался во время сборки — про «байт-убийцу» 0xFF.

ГЛАВА 6: Ложный след длины и байт-убийца 0xFF

Последнее время я плотно занимался фильтрами и настройкой массового перевода, но одна проблема не давала покоя. Игра вылетала или обрезала текст в случайных местах. Я был уверен, что дело в переполнении буфера — слишком длинная русская строка не влезает в окно или это ошибка анимации.

Попытка №1: Радикальное сокращение

Я начал резать текст "по живому". Пробовал принудительные переносы (\n), сокращал фразы в 2-3 раза, оставляя минимум смысла.

Русификатор Yakuza 5 Remastered: 33 000 строк, зачистка бага 0xFF и инженерные сводки из Нагасугай.
Русификатор Yakuza 5 Remastered: 33 000 строк, зачистка бага 0xFF и инженерные сводки из Нагасугай.

Но это не помогало.

Попытка №2: Механика разделения (Splitter)

Тогда я пошел сложным путем: написал скрипт, который разбивает одну длинную фразу на два отдельных диалоговых окна. Это была долгая и мучительная работа. Я смог заставить игру показать первую часть и... продолжить работать, игнорируя вторую. Движок просто пропускал второй кусок текста, потому что для него не был создан правильный новый указатель. Я даже пытался сделать "костыль": в первом окне полный текст, а во втором — пустая заглушка, просто чтобы проверить логику. Всё впустую.

Истинная причина.

Как оказалось, я боролся с ветряными мельницами. Проблема была не в длине. Ранее я перевел систему с таблицы символьной подмены на прямую запись байтов. И по алфавитному порядку буква «я» (последняя в списке) получила код 0xFF.

Встречая букву «я» (0xFF) в слове, игра, скорее всего, воспринимала её как служебный маркер ошибки или конца файла. Стоило мне удалить этот символ — и всё заработало: и длинные строки, и те самые места, где игра вылетала. Точную причину без исходного кода движка назвать сложно, но факт есть факт: этот байт был "отравлен".

Русификатор Yakuza 5 Remastered: 33 000 строк, зачистка бага 0xFF и инженерные сводки из Нагасугай.
Русификатор Yakuza 5 Remastered: 33 000 строк, зачистка бага 0xFF и инженерные сводки из Нагасугай.
Русификатор Yakuza 5 Remastered: 33 000 строк, зачистка бага 0xFF и инженерные сводки из Нагасугай.

Что теперь?

Придется делать шаг назад, но правильно.

  1. Возвращаюсь к таблице символьной подмены (Swap Table), но теперь на новой основе.
  2. Чтобы не пересекаться с системными кодами, я буду использовать безопасный диапазон символов.
  3. Для этого придется перерисовать шрифт в 4K (об этом позже), чтобы подменить западноевропейские знаки на нормальную кириллицу

ГЛАВА 7: Глобальный мозг — 33 000 строк и Правила Игры

Победив технические вылеты, я вернулся к масштабированию. В папке сюжета лежит 1784 файла. Чтобы переварить этот объем, я написал «Умный Пылесос» и систему массовой AI-нарезки. Она собирает текст, удаляет дубликаты и фасует строки в пакеты по 250 штук.

В итоге Мастер-Словарь разросся до 33 000 строк. Чтобы этот массив текста не превратился в кашу из разных стилей, я внедрил жесткие правила обработки.

1. Чистка фонетики: «Д» должна уйти

Я продолжаю придерживаться кинематографичного стиля, но здесь пришлось копнуть глубже. Главная война шла не столько за «Ши/Си», сколько за букву «Z».

  • В системе Поливанова Z часто превращается в ДЗ (Аидзава). Это режет слух и утяжеляет текст.
  • Мой стандарт: Z = З. Поэтому Аизава (Aizawa), а не Аидзава. Казума (Kazuma), а не Кадзума.
  • Окончания: Имена, оканчивающиеся на -be или -me (Watanabe, Madarame), пишутся через «Е», а не «Э». Ватанабе, а не Ватанабэ.

2. Бренды и Группы: Транслитерация

Вместо того чтобы оставлять английские названия или переводить их дословно («Летающие Финансы»), я привел всё к единому виду:

  • Компании и группы пишутся кириллицей и в кавычках.
  • Примеры из игры: «Дайна Чейр», «Скай Финанс», «Осака Талент».
  • Группы идолов: «Ти-Сет» (T-Set).
  • Спортивные команды: Их я решил переводить по смыслу, чтобы звучало как названия клубов, а не набор звуков.

    Wyverns -> «Виверны».

    Giants -> «Гиганты».

3. Идолопоклонство и «трудности перевода»

Ветка Харуки подкинула специфических проблем.

  • Айдол, а не Идол: Харука — это поп-звезда (Айдол), а не языческое божество (Идол). Разница в одну букву, но она критична для атмосферы.
  • Специфические мемы: В игре есть моменты, которые заставили задуматься. Например, странная речевая разминка «Фунняпа» (Foonya) или персонаж с фамилией Манда-сан. Тут пришлось проверять контекст дважды, чтобы это не выглядело как ошибка автозамены, а оставалось верным оригиналу.
Русификатор Yakuza 5 Remastered: 33 000 строк, зачистка бага 0xFF и инженерные сводки из Нагасугай.
Русификатор Yakuza 5 Remastered: 33 000 строк, зачистка бага 0xFF и инженерные сводки из Нагасугай.

Вся эта система теперь работает в полуавтоматическом режиме: Фильтр -> Перевод -> Проверка словарем -> Вставка в игру

ГЛАВА 8: Камуро-Дизайн — Битва за чёткость в 4K

Заставив игру читать русский текст, я столкнулся с последней проблемой на сегодня — эстетикой. Стандартный шрифт 2012 года на современных мониторах выглядит мыльным, а кириллица, впихнутая в узкие ячейки, часто «плывет».

Решение нашлось на Нексусе — моддеры уже сделали текстуру шрифта в высоком разрешении. Я решил не рисовать велосипед, а угнать этот «Кадиллак» и перекрасить его в наши цвета.

Я разработал схему «Камуро-Дизайн»:

  1. Берём 4K-атлас (текстуру со всеми буквами).
  2. Находим свободные слоты западноевропейских символов (À, Æ, Ö...), которые я использую для технической подмены.
  3. Через редактор (написанный мной плагин «Камуро-Дизайн») отрисовываем там чёткую кириллицу.
  4. В итоге игра думает, что показывает французский акцент, а игрок видит идеальный русский шрифт в высоком разрешении.
Русификатор Yakuza 5 Remastered: 33 000 строк, зачистка бага 0xFF и инженерные сводки из Нагасугай.

Это финальное решение. Искать скрытые таблицы отступов в коде я больше не планирую — на 4K-текстуре буквы и так читаются отлично. В планах только автоматизация отрисовки: хочу дописать скрипт, который будет массово генерировать алфавит и наносить его на текстуру, а заодно обновить таблицу подмены символов на новую.

СПИСОК ЗАВЕРШЕНИЯ:

✅ 33 000+ строк — сформирован единый Мастер-Словарь перевода.

✅ Safe Append — движок сборки больше не ломает игру, дописывая байты в «хвост» файла.

✅ Fixer-Bot — написаны скрипты глобальной автозамены (Тэнджин, Айдол, Пак).

✅ Тех. часть Нагасугай — сюжет первой главы готов к заливке текста.⏳ 4K Fonts — база для HD-шрифта подготовлена, идет отрисовка.

⏳ Массовый тест — начинаем обкатку перевода в реальном геймплее.

БЛАГОДАРНОСТИ

Отдельное спасибо пользователю (Аноним) за первый донат!

Имени не называю, так как не спрашивал разрешения, но знай — это было неожиданно и чертовски приятно. Такая поддержка — лучшее топливо для работы, покруче любого Stamina Royale.

Также жму руку всем, кто поддерживает актив в комментариях и следит за постами. Видеть живой интерес аудитории — это лучший стимул возвращаться к коду после работы.

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

Продолжаю пилить. Дальше — больше.

Sungoro

Хроники разработки:

38
9
1
1
10 комментариев