RuneTranslate теперь переводит визуальные новеллы на движке YU-RIS
RuneTranslate теперь переводит визуальные новеллы на движке YU-RIS (raiL-soft) на английский и более 30 языков. Он читает пакеты .ypf на чистом TypeScript и скомпилированные скрипты YSTB внутри ysbin.ypf, автоматически восстанавливает XOR-ключ каждого скрипта, извлекает японские диалоги и экспортирует переведённые скрипты отдельными файлами, чтобы игра загружала их без переупаковки. Только что добавлено и ещё не проверено на многих реальных играх — сообщайте о любой игре, которая не открывается.
RuneTranslate теперь читает ещё один движок, который долго оставался стеной для фанатов-переводчиков: YU-RIS, движок сценариев для Windows от raiL-soft, на котором сделаны сотни японских визуальных новелл — как додзинси, так и коммерческих. Если вы когда-нибудь открывали папку игры на YU-RIS, находили каталог pac/, полный архивов .ypf, и ysbin.ypf, внутри которого нет ничего читаемого, и сдавались — это тот самый движок. RuneTranslate теперь распознаёт его, открывает эти пакеты на чистом TypeScript, читает диалоги из скомпилированных скриптов и экспортирует переведённую копию, которую игра загружает сама. Это самый новый движок, поддерживаемый RuneTranslate.
Это совершенно новый движок, и начнём с честного: поддержка YU-RIS только что создана и ещё не проверена на многих реальных играх. Поэтому прежде всего — если вы укажете RuneTranslate на игру YU-RIS, а она не распознаётся, не открывается или экспортирует то, что игра не загружает, сообщите нам. Подробнее о том, как это сделать, — в конце.
Что такое движок YU-RIS на самом деле
YU-RIS (иногда пишется ゆーりす) — это японский движок сценариев для визуальных новелл от raiL-soft. Готовая игра на YU-RIS — это .exe для Windows плюс набор архивов-пакетов .ypf — обычно в папке pac/ — которые хранят графику, звук и скрипты. Сам сценарий скомпилирован: читаемый скрипт, который пишет разработчик, превращается в двоичный формат под названием YSTB и хранится в виде файлов .ybn внутри ysbin.ypf (по внутренним путям вроде ysbin/yst00000.ybn). Именно это сочетание «скомпилированного сценария внутри упакованного архива» и держало огромный каталог движка вне досягаемости обычных инструментов машинного перевода.
Почему игры на YU-RIS так трудно переводить
По сравнению с движком, работающим напрямую с исходниками, таким как Ren'Py, YU-RIS прячет свой текст за несколькими слоями:
- Всё лежит внутри пакетов `.ypf`. Скрипты не лежат на диске по отдельности — они упакованы в собственный контейнер
.ypfдвижка YU-RIS, с обфусцированными именами файлов и записями, сжатыми через zlib. Без средства чтения этого формата попросту нечего редактировать. - Сценарий скомпилирован, это не текст.
.ybn— это не скрипт, который можно открыть в Блокноте, а двоичный контейнерYSTB, разделённый на четыре секции (поток инструкций, таблицу дескрипторов аргументов, таблицу строк и номера строк). Настоящий японский текст лежит в таблице строк, на которую ссылаются дескрипторы. - Скрипты зашифрованы XOR. Четыре секции данных каждого скрипта
YSTBперемешаны 4-байтным ключом. Нужно восстановить этот ключ, прежде чем хоть какой-то текст станет читаемым, — и ключ у каждой игры свой. - Не каждая строка — это диалог. Таблица строк также хранит имена переменных, пути к ресурсам и операнды выражений, с которыми сравнивает логика скрипта. Переведёте один из них по ошибке — и ход игры тихо сломается.
Итог: даже свободно читающему по-японски сначала нужно распаковать проприетарный архив, затем разобрать скомпилированный двоичный файл, затем взломать XOR, затем отличить диалоги от внутренних строк движка — и всё это до перевода хотя бы одной строки. Именно эту работу RuneTranslate теперь делает за вас.
Что RuneTranslate делает теперь
RuneTranslate относится к YU-RIS как к полноценному движку и выполняет весь конвейер на чистом TypeScript — без внешних инструментов, без Python-сайдкара, ничего не нужно устанавливать:
- Читает пакеты `.ypf` напрямую. Он открывает архивы собственными силами, распаковывает записи и восстанавливает обфусцированные имена файлов — без GARbro и отдельного распаковщика. Уже извлекли игру сами? Отдельная папка
ysbin/со скриптами.ybnтоже распознаётся. - Разбирает скомпилированные скрипты `YSTB` и снимает шифрование. Он автоматически восстанавливает 4-байтный XOR-ключ каждого скрипта из таблицы дескрипторов аргументов, декодирует таблицу строк в Shift-JIS и выводит все японские строки в редакторе, сгруппированные по файлу скрипта.
- Отличает диалог от механики. Имена переменных, пути к ресурсам и операнды выражений показываются, но по умолчанию исключены — отображаются красными строками с опциональным включением — так что вы никогда случайно не переведёте строку, с которой сравнивает логика сюжета.
- Сохраняет встроенные управляющие коды. Коды с обратной косой чертой (перенос строки, цвет, ruby) и теги в квадратных скобках, вплетённые в текст сообщения, маскируются числовыми заполнителями до того, как что-либо попадёт к провайдеру, а затем восстанавливаются в точности на выходе.
- Экспортирует без переупаковки. При экспорте он перестраивает каждый переведённый скрипт — правит смещения таблицы строк, чтобы более длинный или короткий перевод поместился, и заново применяет тот же XOR-ключ — а затем записывает
.ybnотдельным файлом по его исходному пути в архиве. Среда выполнения YU-RIS предпочитает отдельный файл тому же пути, упакованному в.ypf, так что игра просто читает ваш перевод. Переупаковки нет. (Это тот же подход с переопределением через отдельные файлы, что и в нашем процессе патчей Kirikiri и в нашей поддержке Artemis.)
Японский → английский — оптимальная связка, но вы можете переводить на любой из более чем 30 языков — испанский, французский, немецкий, португальский, русский, китайский, итальянский, турецкий, вьетнамский и другие.
Что вам понадобится
- RuneTranslate для Windows — бесплатно; все движки и провайдеры разблокированы (бесплатный уровень ограничен по скорости, а не по функциям).
- Папка игры YU-RIS. Это каталог с
yu-ris.exeигры и её пакетами.ypf(обычно во вложенной папкеpac/, со скриптами вysbin.ypf). - Целевой язык — английский, испанский, французский, немецкий, португальский, русский, китайский, итальянский, турецкий, вьетнамский и ещё более 20.
- Один провайдер перевода. Бесплатный Google Translate работает сразу; у DeepL есть бесплатный уровень; OpenAI, Anthropic, локальная модель (Ollama / LM Studio) и любой API, совместимый с OpenAI, требуют собственного ключа. Игры на YU-RIS насыщены диалогами, поэтому LLM (OpenAI / Anthropic) или DeepL обычно читаются лучше всего.
Шаг 1: Откройте папку игры
Запустите RuneTranslate, нажмите Новый проект и укажите каталог игры YU-RIS. Определение движка выполняется автоматически — увидев пакет .ypf (или отдельную папку ysbin/ со скриптами .ybn), оно распознаёт проект как YU-RIS. Ваша исходная папка игры никогда не изменяется.
Шаг 2: Как читаются скрипты
RuneTranslate открывает пакеты .ypf, извлекает скомпилированные скрипты YSTB из ysbin.ypf, восстанавливает XOR-ключ каждого скрипта и декодирует таблицу строк в Shift-JIS — выводя все японские строки в редакторе, сгруппированные по файлам. Внутренние строки движка (имена переменных, пути к ресурсам, операнды выражений) показываются, но по умолчанию исключены, а встроенные управляющие коды маскируются числовыми заполнителями, чтобы провайдер их не испортил.
Шаг 3: Переведите
Выберите провайдера и запустите. Для визуальной новеллы LLM (OpenAI / Anthropic) лучше всего передаёт голос и тон персонажей, DeepL быстр и аккуратен для повествования, а бесплатный Google Translate годится для коротких строк меню и вариантов выбора. Заранее составьте глоссарий персонажей и повторяющихся терминов, чтобы имена отображались одинаково по всей игре — см. Глоссарий 101. Когда закончите, необязательный проход ИИ-редактора перечитывает каждую строку в контексте и подтягивает натянутые буквальные формулировки, которые обычно оставляет машинный перевод.
Шаг 4: Экспортируйте готовую к запуску копию
Нажмите Экспорт. RuneTranslate записывает переведённую копию игры, размещая каждый перестроенный .ybn отдельным файлом по его исходному пути в архиве, рядом с нетронутыми пакетами .ypf. Переупаковки нет — YU-RIS загружает отдельные скрипты в приоритете перед упакованными оригиналами, так что игра просто читает ваши переводы. Запустите — и она идёт на вашем целевом языке.
Известные ограничения
- Строки YU-RIS — это Shift-JIS (cp932). Английский и другие целевые языки, представимые в cp932, экспортируются чисто. Языки с символами вне cp932 — расширенная кириллица, корейский, традиционный китайский — требуют хака шрифта/кодировки игры, который пока не автоматизирован.
- Переопределение через отдельные файлы — ожидаемый путь загрузки, и на большинстве игр YU-RIS оно работает, потому что движок предпочитает отдельный скрипт упакованной копии. На редком тайтле, который этого не соблюдает, экспорт может потребовать корректировки — как раз то поведение на реальных играх, которое мы ещё подтверждаем.
- Текст, впечатанный в графику — титульный экран или кнопка меню, нарисованные как растр, — это пиксели, а не текст скрипта. Для этого см. перевод текста на изображениях.
- Точный вариант архива и скрипта может отличаться между релизами. Всегда проверяйте на вашей конкретной копии.
Это совсем новое — расскажите, что ломается
Стоит повторить прямо: поддержка YU-RIS — это свежее дополнение, и она ещё не протестирована на многих реальных играх. Средство чтения .ypf, парсер YSTB и восстановление ключа готовы и покрыты модульными тестами, но у движка за годы накопились вариации от студии к студии, которые мы видели не все. Поэтому если вы укажете RuneTranslate на игру YU-RIS, а она не распознаётся, не открывает архивы, ничего не извлекает или экспортирует то, что игра не загружает, сообщите об этом в нашем Discord — название игры и то, как она упакована, — именно то, что помогает нам укрепить поддержку быстрее всего.
Скачайте RuneTranslate, укажите его на ту самую визуальную новеллу YU-RIS, которую вы давно хотели прочитать, и попробуйте. Чтобы посмотреть, как мы работаем с ещё одним архивным движком визуальных новелл, прочитайте далее руководство по Artemis.
Готовы попробовать RuneTranslate?
Бесплатный тариф открывает все движки и всех провайдеров перевода. Supporter ($3/mo) открывает полную скорость.
Скачать для Windows