Гайд по переводу ROM-файлов для NES (RUS)

В этом руководстве я объясню вам, как редактировать и переводить игры NES, используя четыре инструмента. Вам также понадобится файл ROM (вы можете создать его самостоятельно, если хотите).

Необходимые инструменты:

Шаг 1: Создание таблиц тайлов-букв

Сначала нам нужно знать, какие тайлы представляют буквы и какие коды у этих тайлов, чтобы мы могли найти их в ROM-файле, используя HEX-редактор. Для этого мы также создадим файл, называемый “Thingy Table”. Сам файл довольно прост и состоит из кодов тайлов и соответствующих букв и т.д.

XX=Буква

Прежде всего, давайте посмотрим на набор тайлов игры. Откройте ROM-файл в FCEUX и запустите игру.

Перейдите в Debug -> PPU Viewer, чтобы просмотреть все доступные тайлы.

In this guide I’ll explain you, how to edit and translate NES roms using four tools. You’ll also need a rom dump (you can dump it yourself, if you want).

апишите все необходимые коды тайлов для всех тайлов, которые вы хотите редактировать, переводить и т.д. Найдите нужный тайл и посмотрите код под изображением (например, $11 на скриншоте выше).

Создайте список, подобный этому:

00=0
01=1
02=2
03=3
04=4
05=5
06=6
07=7
08=8
09=9
0A=A
0B=B
0C=C

и так далее (см. здесь)

(FC представляет пустой тайл, например, пробел)

Сохраните список в файл с названием “<имя_файла>.tbl”. Этот файл будет использоваться для просмотра букв в шестнадцатеричном редакторе (код тайла будет представлен значением из таблицы).

Шаг 2: Поиск и редактирование текстов

Теперь нам нужно загрузить ROM-файл и посмотреть его содержимое.

Откройте ROM-файл в Translhextion.

File -> Open (выберите ROM-файл)

Загрузите таблицу символов:

Script -> Open Thingy Table (выберите файл tbl)

Активируйте таблицу, нажав на “Thingy View Active”

Теперь все неизвестные позиции будут представлены символом #, а все известные (из таблицы символов) будут заменены на соответствующие символы, которые мы определили в таблице.

Ищите нужное слово (например, “NINT”)

Search -> Search relative

Введите “NINT”.

Вы будете перенаправлены к первому адресу, где эта последовательность будет найдена.

Теперь вы можете просматривать и редактировать тексты, помещая другие коды (сверяясь с таблицей thingy).

Шаг 3: Перевод

Давайте переведем нашу игру на другой язык, скажем, на русский.

Первый шаг – перерисовать тайлы в игре, используя Tile Layer Pro. Мы хотим заменить латинские символы на кириллицу.

Запустите Tile Layer Pro и загрузите ром игры. Прокрутите до тайла, который вы хотите отредактировать, и щелкните по нему. В окне Tile Editor вы можете перерисовать тайл. Придерживайтесь оригинальной палитры.

Перерисуйте все буквы, а также создайте копию файла tbl с русскими буквами, чтобы знать, какой тайл отвечает за какую букву.

Вам может не хватить букв, поэтому вы можете либо удалить те буквы, которые так или иначе не будут использоваться, либо перерисовать цифры, чтобы они представляли как буквы, так и цифры (например, вы можете перерисовать “4” так, чтобы использовать символ как цифру и как русскую букву “Ч”, или использовать 0 (ноль) для номера и буквы O и т.д.). Не перерисовывайте другие элементы, потому что они используются для другой графики.

Копия таблицы thingy будет выглядеть следующим образом:


0A=А
0B=Б
0C=В
0D=Г
0E=Д
0F=Е
10=Ж
11=З
12=И
13=К

и так далее. (см. пример здесь)

Теперь вам нужно отредактировать английский текст и заменить коды для английских букв на коды для русских.

Вам пригодится инструмент: Thingy Tables Converter (tbl_conv). Вы можете использовать этот инструмент для перевода строк, используя таблицы Thingy.

Конечно, вы можете использовать его для общей конвертации.

Если у нас есть слово NINTENDO и мы хотим его перевести на НИНТЕНДО, запустите приложение, затем File -> Load и загрузите файл таблицы с русскими буквами.

Поле редактирования original необходимо, если вы хотите проверить длину вашего перевода. Обычно вам просто нужно ввести перевод в поле Translation и нажать “Convert”.

Например, введите “НИНТЕНДО” в поле “Translation” и нажмите “Convert”. Русское слово будет переведено в соответствующий код.

Имейте в виду, что регистр букв важен. Ненайденные символы будут помечены !.

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

Есть также флажок (“Check length” т.е. “проверить длину”), который позволяет включить автоматическую проверку длины. Если ваш перевод длиннее оригинала, шрифт станет красным.

Сгенерированный код нужно поместить в ROM с помощью Translhextion вместо английского текста. Установите курсор на позицию слова и введите новые коды, набрав их вручную.

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

Теперь у нас есть MIMRFMEN вместо NINTENDO, потому что коды не совпадают с английскими буквами из таблицы Thingy. (Вам понадобится хороший HEX-редактор, который поддерживает UTF-8 и таблицы Thingy, но, к сожалению, для отображения русских букв потребуется слишком много работы, поэтому мы пропустим это.)

Теперь перейдите к следующему слову и переведите его с помощью инструмента tbl_conv, и так далее.

После того, как всё будет переведено, сохраните новый ROM и протестируйте его с помощью эмулятора (например, FCEUX).

Устранение проблем

Некоторые слова могут появляться в обратном порядке (например, в игре Excitebike это относится к словам HEAT и OVER).

  • Тайлы могут быть взяты из другой части тайлсета (левой части, если проверить ROM в FEUCX PPU Viewer). Вам нужно создать новую таблицу для этих тайлов!

Результаты

До:

После:

Мои файлы tbl можно скачать здесь.

4986 Всего 14 Сегодня