[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: Scorpion1997, Anter  
Русифицирование РОМ'ов
СЛЕЙТЕРДата: Воскресенье, 18 Ноя 2012, 02:59 | Сообщение # 1
Уважаемый
Группа: Проверенные
Сообщений: 372
Награды: 38
Репутация: 56
Замечания: 0%
Статус: Offline
Автор этой статьи постарается обьяснить как можно русифицировать РОМ на примере игры Chip And Dale (NES).
Что для этого нужно? Во-первых сам РОМ, программы и... много терпения.

Инструменты:

1. Эмулятор игровой консоли.
2. Title Layer Pro (редактор графики).
3. Hexpose (HEX редактор).

Программы:

Title Layer Pro:
Эта программа предназначена для редактирования графики в игре (персонажи, шрифты, рисунки и т.д.). Запускаем Title Layer Pro и открываем наш РОМ. Появится окошко с рисунками (графика из игры). Нам нужно найти здесь шрифт. Крутите ползунок вниз, пока не увидите вот это:

P.S. Если вы не обнаружили шрифт, то попробуйте сменить формат на 1BPP. Если и после этого вы не обнаружили его, то на переводе этой игры придётся поставить крест. Шрифт, вероятно, запакован и тут уже надо будет прибегать к знанием Ассемблера, но это очень муторно.

Замете что после английских букв идут японские знаки. В игре они явно не используются, так что я решил заменить их на русские буквы (просто перерисуйте их). Вот так:

P.S. Так же бывает, что все знаки используются, и тут нам приходиться ухищряться, рисовать поверх английских букв (не забывайте использовать одинаковые буквы, например: H, M, P, T, A, C, O, E и т. д. а так же незабывайте сохранять оригинальный ром, чтобы просматривать в нём текст).
В таких случаях у каждого своя тактика.

HEXpouse:
Эта программа предназначена для редактирования текста в игре (самое сложное) .

Запустим программу:

Далее найдём наш РОМ:

(Я переименовал Chip And Dale.nes в CD.nes для удобства).
Откроем РОМ и увидим это:


Так, а теперь я в теории расскажу, что это такое. Вы видите 3 окошка, первое я не знаю для чего (оно в принципе и ненужно) а вот второе и третье нам очень пригодятся. Во втором окошке, коды шестнадцатеричной системы счисления (в этой системе счисления присутствуют 16 знаков): 00,01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F

10,11,12,13…1A,1B,1C и так далее…

Каждая клеточка с рисунком (будь то буква или кусок персонажа) имеет свой номер.

В третьем окне будет отображаться текст.

И так наша задача найти эти буквы и узнать их номера.

Для этого открываем игру и ищем там какой-нибудь текст. Я выбрал слово little:

Далее возвращаемся в HEXpose и жмём на F6, и в открывшемся окне вводим наше слово:

Жмём Enter, и он предлагает создать таблицу:

Смело давите на "Y", и вот оно чудо:

Драгоценный текст из игры

Давите на F9 (сохранение таблицы) и вводите имя вашей таблице (желательно, чтобы название рома и таблицы совпадали, то есть CD.nesCD.tbl.

Открывайте таблицу, она лежит в той же папке где и ром:

(Как видно, в данной игре используются только маленькие буквы).

P.S. Некоторые игры использую 2 шрифта: Заглавный и не заглавный. Вычислить коды заглавных букв очень просто. Например: мы видим слово .arry, в игре оно отображается как Harry, то есть та точка и есть буква H. Посмотрите её код в среднем окошке и допишите коды заглавных букв. Например: C1=H ну и по логике C2=I и т.д.

Нам придется доделать эту таблицу.

Откройте HEXpose, и найдите там место пробела в тексте (т.к. по умолчанию пробела в таблице нет, и в программе он может отображаться точкой, например: hello.garry, где точка является пробелом). В этом случае код пробела A4, занесём его в таблицу:

A4=

Не забудте поставить пробел.

Так же нам нужно узнать код переноса текста (посмотрите в игре где текст переносится на другую строчку, и узнайте его код. В этом случае его код FE, запишем его таким образом:

*=FE

Есть ещё код окончания вывода текста. Желательно и его вычислить, чтобы знать наверняка, где заканчивается один диалог/реплика и начинается новый. Обозначается он знаком "/". В нашем случае его код FF и как вы уже наверно догадались надо записать его так:

/=FF

Далее нужно внести в таблицу остальные знаки.

Для этого вернёмся в Title Layer Pro и снова найдём наш шрифт:

После буквы "Z" идёт пробел, точка, тире т.д.

Чтобы внести их в табицу надо просто продолжить её:

A1=x
A2=y
A3=z
A4= (пробел)
A5=.
A6=-
A7==
A8=?
A9=!


И так далее до наших букв, их мы не вносим т.к. HEXpose их просто не увидит, ведь он работает в DOS кодировке, а БЛОКНОТ в Windows. Следовательно, надо доделать таблицу в DOS кодировке (я использовал FAR):

Таблица доделана и готова к использованию.

Перезапустите HEXpose и на этот раз нажмите F3 и введите наше слово "little".

Появились запятые и прочие знаки, теперь гораздо удобнее работать.

Давайте введём в текст пару русских букв. Для этого просто выберите любое слово и начинайте набирать коды русских букв:

Жмите на F5 (сохранение изменений) и открывайте наш ром в эмуляторе, вот что вы должны увидеть:


Если кто-то ещё не понял как же собственно осуществляется перевод игры, то я объясню. Вся суть в том, что вы должны вместо английских слов вводить коды русских букв (ну конечно по смыслу) а не просто, так как я. Надеюсь, что доступно разъяснил принцип работы всего этого.


"Если не можешь играть честно, играй хоть как-нибудь".
Слейтер ©
AnterДата: Вторник, 29 Янв 2013, 22:13 | Сообщение # 2
БОГ форума
Группа: Проверенные
Сообщений: 1849
Награды: 76
Репутация: 144
Замечания: 0%
Статус: Offline
Ни разу не русифицировал игры, но с помощью Title Layer Pro часто менял графику.
  • Страница 1 из 1
  • 1
Поиск: