Русификатор Yakuza 5 Remastered. Часть 6: Невидимый фронт. Ремонт инструментария, лимиты памяти и пропавшее меню.

Русификатор Yakuza 5 Remastered. Часть 6: Невидимый фронт. Ремонт инструментария, лимиты памяти и пропавшее меню.

Привет всем, кто продолжает следить за проектом! С момента прошлого поста прошла всего неделя, но по ощущениям — целый месяц. Если вам кажется, что визуально в игре изменилось немногое, то вы совершенно правы. Эта неделя стала периодом сурового «техобслуживания», когда большая часть времени уходила на то, чтобы чинить, полировать и улучшать собственные инструменты. Работа не самая заметная, но фундаментальная.

Хотя не обошлось и без «производственных травм». На этой неделе я случайно затер результаты своей прошлой работы над Главным меню. Решил проверить черновые текстуры паузы для Кирю, но забыл о специфике движка: файлы главного меню прятались в под-архиве внутри папки ui_en_unpacked. Мой скрипт честно упаковал папку, перезаписав переведенные файлы старыми исходниками. В итоге «лицо» игры пришлось восстанавливать и перерисовывать заново.

Помимо этого «тушения пожара», работа шла над глубоким тюнингом всего хаба инструментов:

  • Перековка Ядра: Я полностью переписал ядро сборки и сканеры в «Редакторе Дракона». Теперь софт гораздо эффективнее изолирует «опасные» системные строки, перевод которых раньше вызывал моментальный краш игры. Заодно внедрил систему автоматизированного сбора строк, длина которых выходит за рамки лимитов движка — это позволяет находить потенциальные ошибки отображения ещё до запуска игры.
  • Апгрейд «Студии Сайджо»: Графический плагин прошел через капитальный ремонт. Исправлены алгоритмы отрисовки контуров текста, настроена жесткая привязка к рамкам и добавлена поддержка визуальных тем оформления. Также я подготовил подробную встроенную справку, чтобы в будущем не гадать над логикой собственных функций.
  • Бинарные лабиринты: Массу времени уделил попыткам «взломать» логику сложных .bin файлов. Я написал для них отдельный анализатор, пытаясь разобраться с обновлением указателей и фильтрацией технических префиксов в строках. Но должен признать: этот орешек пока не расколот. Ни универсальный алгоритм, ни попытки настроить сборку под конкретные файлы пока не дают стабильного результата — бинарники Yakuza 5 крайне капризны к любому вмешательству.

Сегодня я покажу вам восстановленное из небытия меню, результаты смыслового сокращения самых проблемных фраз и расскажу, чем живет Yakuza Hub.

ГЛАВА 15: Поиск изъянов на ярком фоне

Всё началось с попытки отладить меню Кирю. Пытаясь внедрить черновой вариант интерфейса прокачки персонажа, я допустил ту самую досадную ошибку с архивами, которая стерла все наработки Главного меню. В итоге разработка «лица» игры пошла на второй круг.

На текущий момент у меня готов рабочий черновик меню Кирю, который я активно тестирую. Разница в поведении шрифта на светлом и тёмном фоне колоссальная — на скриншотах ниже видно, как на ярких участках вылезают огрехи сглаживания и артефакты отрисовки, которые совершенно незаметны в тени. Именно поэтому я доработал «Студию Сайджо»: к базовой «Океанской» теме я добавил ряд кислотных, гипер-контрастных фонов. Они не для красоты: это диагностический инструмент, позволяющий сразу увидеть «грязные» пиксели вокруг букв еще до того, как они попадут в игру.

Русификатор Yakuza 5 Remastered. Часть 6: Невидимый фронт. Ремонт инструментария, лимиты памяти и пропавшее меню.
Русификатор Yakuza 5 Remastered. Часть 6: Невидимый фронт. Ремонт инструментария, лимиты памяти и пропавшее меню.

Черновой билд статов Кирю пока далёк от идеала: размеры строк гуляют, а выравнивание требует точечной настройки. Но теперь инструментарий работает на меня:

  • Я исправил контуры текста, чтобы они не размывались при отрисовке.
  • Настроил систему так, чтобы надписи вписывались в рамку строго по заданным координатам.
  • Написал подробную инструкцию к плагину. В первую очередь — для себя, чтобы не вспоминать настройки макросов через месяц, и на будущее для тех, кто захочет изучить или переделать мой код.

А результатом «неплановой» переделки стала новая версия Главного меню. Пусть и собранная на скорую руку, теперь она опирается на исправленную логику и чище встает на своё место

Русификатор Yakuza 5 Remastered. Часть 6: Невидимый фронт. Ремонт инструментария, лимиты памяти и пропавшее меню.
Русификатор Yakuza 5 Remastered. Часть 6: Невидимый фронт. Ремонт инструментария, лимиты памяти и пропавшее меню.

ГЛАВА 16: «Цифровой рентген» и 127 000 указателей

Пока я рисовал заголовки глав, «Редактор Дракона» прошел через полную переборку двигателя. Если раньше я воевал с вылетами, то теперь задача сменилась на хирургическую точность. Проблема с «пропадающими именами» и «обрезанными фразами» потребовала внедрения инструментов, которые обычно встречаются в профессиональных средах разработки.

Вот что появилось в версии V46.3:

  1. Детектор Префиксов: В игре одна и та же строка может быть чистым текстом, а может начинаться с технических байтов (префиксов типа 13, 43 или 4D). Раньше я их не видел и гадал, почему «Кирю» в одном диалоге переведен, а в другом — остался на английском. Теперь я вывел в редактор отдельные колонки prefix_hex и prefix_str. Я вижу каждый «грязный» байт перед строкой и могу точно настраивать словарь.
  2. Глобальный поиск: Искать слово в 3000 файлах вручную невозможно. Теперь в редактор встроен поисковик, который «прочесывает» все папки проекта и мгновенно собирает нужные фразы в одну таблицу. Это позволило мне за минуту найти все вхождения проблемных имен и поправить их разом.
  3. Охотник за «Опасными строками»: Та самая кнопка для борьбы с обрезанием текста. Редактор автоматически анализирует переводы, находит слишком длинные строки или те, что сильно отличаются по размеру от оригинала, и экспортирует их в отдельный список для «смысловой стрижки».

Что касается статистики сборки, то цифры сначала ввели меня в ступор. На пике отладки при лимите в 64 КБ скрипт обновил 127 495 указателей. Для понимания масштаба: это сотни тысяч адресов, которые программа нашла и переписала вручную за 13 секунд.

В текущей версии я стабилизировал это число в районе 42 тысяч, выставив «безопасное окно» сканирования в 32 КБ. Главный итог этой инженерной возни — сборка больше не вылетает. Бинарная структура файлов выстояла под натиском кириллицы, и теперь я могу сосредоточиться на том, чтобы текст не просто «был», но и идеально влезал в экран

Русификатор Yakuza 5 Remastered. Часть 6: Невидимый фронт. Ремонт инструментария, лимиты памяти и пропавшее меню.
Сократил и переделал около 1000 строк
Сократил и переделал около 1000 строк

ГЛАВА 17: Бинарные Лабиринты и Навигатор Pro

Несмотря на успехи с меню, главный «босс» бинарных файлов — ability.bin (файл способностей) — всё ещё не повержен. Оказалось, что структура указателей там гораздо коварнее, чем в обычных таблицах. Сколько бы я ни переписывал алгоритмы поиска, адреса в этом файле отказываются обновляться корректно.

Чтобы не превратить основной код в кашу из правок и костылей, я принял радикальное решение — создать отдельную модульную версию инструмента: Навигатор Сузуки Pro.

Это уже не один большой скрипт, а полноценная архитектура из десятка специализированных модулей:

  • analyzer.py — отдельное «зрение» для структуры данных.
  • builder.py — чистый движок сборки, не зависящий от интерфейса.
  • formats.py — библиотека описания структур, где каждому хитрому файлу выделен свой «паспорт».
  • prefixes.py — отдельная логика по борьбе с «мусорными» префиксами.

Я перешел на профессиональную модульную структуру, чтобы иметь возможность настраивать «обвесы» под каждый сложный файл игры отдельно, не боясь сломать старое. Да, ability.bin всё ещё сопротивляется, но теперь у меня есть не просто «ключ», а целый ремонтный цех, способный разобрать любой файл на запчасти.

Битва за бинарники перешла в стадию долгой осады, но я уверен: в Нагасугай нет такого двигателя, который Сузуки не смог бы заставить работать.

📋 СПИСОК ЗАВЕРШЕНИЯ (Часть 6)

ОСНОВНОЕ:

✅ Стабильная сборка (1784/2959 файлов успешно проходят через хаб без вылетов игры).

✅ «Навигатор Сузуки Pro» (Переход на модульную архитектуру — 11 отдельных модулей).

✅ Интеграция 56к+ строк (Диалоги города и меню в деле).

ИНСТРУМЕНТАРИЙ:

✅ Детектор префиксов (Теперь в редакторе видно «грязные» байты перед текстом).

✅ Охотник за обрезкой (Авто-сбор слишком длинных фраз для последующей правки).

✅ Глобальный поиск (Поиск и правка слов разом по всем файлам проекта).

✅ Сценарист (Сборщик катсцен снова в строю, поддержка длинных тире).

ПЛАНЫ И ВЫЗОВЫ:

🛠 Штурм ability.bin (Изучение уникальной структуры указателей через Навигатор Pro).

🛠 Смысловая компрессия (Ручная правка строк, найденных «Охотником за обрезкой»).

🔨 Символьный уровень (Переписывание логики редакторов: переход от сырых байтов к абстрактным символам).

Работа продолжается. Проект стал технически сложнее, но гораздо стабильнее. Бинарный код медленно, но верно отдает свои секреты.

📚 Хронологическая цепочка Хроник:

  1. Часть 1: Автоматизация — Читать
  2. [Side Story] Инструменты — Читать
  3. [Side Story] Инженерия Бешеного Пса — Читать
  4. Часть 2: Проблемы и решения — Читать
  5. Часть 3: Баг 0xFF — Читать
  6. [Side Story] Шрифт в 4К — Читать
  7. Часть 4: Навигатор Сузуки — Читать
  8. [Side Story] Студия Сайджо — Читать
  9. Часть 5: Лицо игры и изнанка кода — Читать
41
19
4
1
22 комментария