Как три школьника взломали исходный код Final Fantasy V, чтобы локализовать её

в 9:13, , рубрики: final fantasy v, reverse engineering, локализация игр, обратная разработка, разработка игр, реверс-инжиниринг, эмуляция игр, метки:

image

Однажды в конце 90-х Майрия (Myria) зашла в компьютерный класс старшей школы Ирвайна и наткнулась на парня, игравшего в Final Fantasy V. Это было необычно: во-первых, Final Fantasy V никогда не выпускали в США. Чтобы поиграть в эту японскую игру 1992 года на английском, нужно было сначала скачать ROM, а потом установить неофициальный фанатский патч с переводом, который недавно появился в Интернете. Майрия знала об этом патче, и это тоже было необычно: она помогала в его создании.

Парень был потрясён тем, что этот патч создала его одноклассница. «Он не знал, что я работала над патчем», — сказала Майрия, попросившая не раскрывать своего настоящего имени. «Меня удивило, что нашёлся тот, кто действительно играет в него».

За двадцать лет Майрия привыкла встречать людей, игравших в неофициальную английскую версию Final Fantasy V. Хоть это и не был первый фанатский перевод видеоигры (первым стал голландский перевод 1993 года игры для MSX SD Snatcher), но он стал наиболее существенным. Он дал понять бесчисленным западным фанатам, что "Final Fantasy III" Squaresoft на самом деле не была третьей частью Final Fantasy, и, что более важно, продемонстрировал миру силу, которую имеют фанаты в индустрии видеоигр. Устав от того, что такие компании как Square отказываются от распространения игр на западных рынках, фанаты просто локализовали Final Fantasy V самостоятельно. Позже они сделали то же самое с RPG, например, с Seiken Densetsu 3 и Mother 3. Они переводили скрипты с японского на английский, редактировали перевод и реализовывали эти скрипты в играх с помощью постоянно совершенствующихся программ.

«Трудно передать, насколько важно это было в ту эпоху», — говорит Клайд «Мато» Манделин (Clyde «Mato» Mandelin), прежде всего известный как профессиональный локализатор третьей части Mother. «Нам не только удалось поиграть в „пропавшую“ Final Fantasy на английском: качество игры было почти как у официальной версии. В то время большинство фанатских переводов было примитивным и небрежным, но любительский перевод Final Fantasy V обогнал их на множество световых лет».

Нет никакой возможности узнать, сколько людей играло в патч Final Fantasy V — сегодня он хранится на множестве пиратских сайтов ROM, поэтому подсчитать точное количество не получится. Но он оказал огромное влияние. Сегодня Майрия работает инженером в крупной видеоигровой компании с миллионами фанатов, но Final Fantasy V, возможно, стала её самым прославленным достижением. «Я общалась с людьми на работе, со случайными людьми, разговаривала с ними», — говорит она. «Рано или поздно они узнавали о том, что я работала над этим переводом, и всегда были сильно поражены».

Майрия точно не помнит, когда она узнала о проблеме с нумерацией Final Fantasy — это было в 1996 или в 1997 году — но она помнит, как смотрела рекламу Final Fantasy VII. «Мы удивились: „что, седьмая часть?“», — рассказывает она, повторяя за всеми любителями RPG в США. Всего несколько лет назад, в 1994 году, Squaresoft выпустила Final Fantasy III для Super Nintendo. Как они перешли с тройки на семёрку?

Как выяснилось, Square скрыла от Северной Америки часть игр. Этот почтенный издатель пропустил локализацию и Final Fantasy II, и Final Fantasy III для Nintendo Entertainment System, поэтому когда подошло время вывести Final Fantasy IV на западный рынок, компания назвала игру Final Fantasy II. Затем Square решила пропустить Final Fantasy V, хотя, по словам её ведущего локализатора Теда Вусли (Ted Woolsey), компания некоторое время раздумывала над выпуском игры на Западе под другим названием.

Затем издатель выпустил Final Fantasy VI и назвал её Final Fantasy III.

В этих названиях и числах легко запутаться, так что вот краткая схема

Final Fantasy (NES) [1987] — выпущена во всём мире

Final Fantasy II (NES) [1988] — только в Японии

Final Fantasy III (NES) [1990] — только в Японии

Final Fantasy IV (SNES) [1991] — выпущена в США как Final Fantasy II

Final Fantasy V (SNES) [1992] — только в Японии

Final Fantasy VI (SNES) [1994] — выпущена в США как Final Fantasy III

Когда Майрия начала исследовать странные решения о локализации Square, она стала размышлять о том, чтобы принять участие в неофициальных фанатских проектах. Она была всегда одержима RPG и заметила, что скрипт Final Fantasy IV (II) был довольно хаотичным, полным корявых предложений и неподходящих слов. «Я хотела переделать эту игру», — говорит Майрия. «В переводе царил ужасный хаос».

image
Сделанный Клайдом Манделином скриншот из посредственной локализации Final Fantasy IV для SNES.

Как-то, бродя по Интернету в конце 90-х, Майрия наткнулась на группу похожих на неё гиков, которые называли себя RPGe. В канале IRC они обсуждали любимые японские ролевые игры и строили амбициозные планы по переводу на английский тех игр, которые не попали на Запад. Когда Майрия нашла их, они говорили о локализации Final Fantasy V, которую хотели сделать, взломав японскую версию файла ROM игры и переведя скрипт на английский. Майрия была заинтригована и отложила свои планы о переделке FFIV. Final Fantasy V казалась намного круче. (Группа под названием J2E позже снова перевела FFIV с посредственными результатами. Это задокументировано Клайдом Манделином на его веб-сайте Legends of Localization.)

В отличие от двух потерявшихся игр для NES, Final Fantasy V была превосходной во всех отношениях. Люди, которым удалось понять FFV на японском, говорили, что в неё интересно играть, у неё отличный сюжет и продуманная система смены классов, позволявшая игрокам творчески настраивать свою команду. Она была сложной, и это одна из причин, по которой Square не продавала её на Западе, но фанаты RPG всё равно хотели оценить эту игру.

Проблема заключалась в том, что у RPGe не было достаточного опыта. Никто из группы никогда не делал ничего подобного, поэтому они не знали, как заниматься любительскими переводами. Команда RPGe раскопала японский ROM Final Fantasy V, взломала его и начала редактировать текстовые файлы, напрямую переводя фрагменты игры с японского на английский. Но эти файлы были капризными и с ними сложно работалось. Когда они меняли в ROM японскую строку на английскую, она не отображалась в игре правильно, потому что рендеринг японских и английских символов различался. Японские символы крупнее английских букв, а одно предложение, занимавшее 12 символов на английском («how are you?») могло состоять всего из трёх японских символов ("元気?"). Final Fantasy V ограничивала каждую строку диалогов 16 символами. Это выглядело хорошо на японском, но английский перевод был искажённым и трудночитаемым.

Майрия поняла, что им нужно редактировать не только текстовые файлы, но и сам код, который обрабатывал в Final Fantasy V эти текстовые файлы. «Я чувствовала, что они выбрали неправильный подход», — рассказывает она. «Это был мой вклад в работу сообщества ROM-хакинга: для создания качественного перевода недостаточно просто изменять данные игры, нужно модифицировать и её код».

Чтобы локализовать японский текст на английский язык и сделать его читаемым, Майрия решила перепрограммировать игру. Их версия Final Fantasy V должна была понимать, что английские буквы, в отличие от японских символов, имеют разный размер. Нужно было научить игру, что каждое диалоговое окно должно содержать больше английских символов (в том числе эти раздражающие пробелы), чем японские кандзи или кана.

Майрия (к тому времени известная в Интернете под прозвищем Barubary; оба имени — отсылки к Breath of Fire) начала обсуждать с японско-английским переводчиком SoM2freak уход от остальной части RPGe. В середине 1997 года они запланировали начать собственный перевод Final Fantasy V, который будет правильным, а не просто хакнутым. «Я решила отказаться от тех людей, которые, как мне казалось, не понимали, что делают», — рассказывает Майрия. «Мы основали внутри [RPGe] собственную подгруппу, потому что я чувствовала, что они не способны справиться с этой задачей».

image
Собранные Клайдом Манделином примеры того, как выглядели в 90-х другие любительские переводы.

В калифорнийском Ирвайне летом 1997 года было очень жарко, и Майрия не стремилась выходить на улицу. Она только что закончила второй год обучения в старшей школе и планировала провести лето так, как хотел бы любой уважающий себя подросток: заняться дизассемблированием кода ROM. Слушая ремиксы музыки из видеоигр и старые компакт-диски, она изучала внутреннюю работу Final Fantasy V. В её комнате стоял медленный компьютер Intel 486, который она могла использовать для разработки, но для тестирования игры приходилось спускаться вниз и включать быстрый Pentium отца. 486 просто не мог запускать эмуляторы. (Для полноты картины мы, с разрешения Майрии, добавим, что в то время в Интернете она общалась от мужского имени.)

SoM2freak переводил строки японских диалогов Final Fantasy V на английский, а Майрия пыталась найти наилучший способ вставить их в игру. Она скачала дизассемблер для разбора кода Final Fantasy V, который превратился в настолько огромный файл, что даже его парсинг требовал специальной программы для работы с текстом XTree Gold. Затем она начала изменять переменные, путём проб и ошибок стараясь выяснить, за что отвечала каждая строка кода. «Документации почти не было», — рассказывает Майрия. «Мне приходилось выяснять самой, что делать».

Каждый файл дизассемблированного кода выглядел примерно так:

image
Скриншот дизассемблированной программы, сделанный Майрией.

На этом скриншоте показан код, который в Final Fantasy V использовался для рендеринга диалогов. Поскольку игра предполагала, что каждый японский символ будет иметь одинаковую ширину — 12 пикселей — этот код рендерит в каждом диалоговом окне символ, затем перемещается невидимый курсор на 13 пикселей вправо, рендерит новый символ, и так далее. Для английских букв, имеющих различную ширину, Майрии нужно было найти другой подход. «Естественное решение для изменения кода под английский перевод — варьировать количество переходов курсора вправо в зависимости от отрисовываемого символа», — рассказывает Майрия. «Я заменила этот код переходом на добавленный мной код, определяющий величину перемещения курсора в зависимости от отрисовываемого английского символа».

Майрия потратила всё лето на поиск решений этой проблемы, и поэтому отличалась от остальных членов сообщества переводчиков-любителей. Раньше переводчики никогда не думали над дизассемблированием кода или изменением рендереров диалогов, возможно, потому, что были не так увлечены (или одержимы), как Майрия. «Часто работа была монотонной», — рассказывает она. «Я провела много времени в [эмуляторе] SNES 9x, пытаясь выяснить, что происходит [с ROM]. Я смотрела на шестнадцатеричные дампы и ассемблерные дампы в течение многих часов и просто старалась отладить эту раздражающую процедуру обработки текста».

В процессе работы над проектом они привлекли к нему нового редактора, Кацуюки «harmony7» Омуро (Katsuyuki «harmony7» Ohmuro), который учился в одной школе с Майрия. Омуро считал, что переводы SoM2freak плохи и в них полно проблем. SoM2freak был молод, японский не был его родным языком, поэтому Омуро начал редактировать крупные куски перевода SoM2freak. Расстроенный таким решением, SoM2freak покинул группу, однако позже он помогал переводить другие крупные RPG, такие как Final Fantasy III и Seiken Densetsu 3.

Наверно, самым противоречивым переводческим решением команды стал выбор имени главного персонажа. По мнению Square Enix главной звездой Final Fantasy V был мужчина по имени Бартз (Bartz). Но в любительском переводе имя было другим:

image

Это имя часто вызывало хихиканье [прим. пер.: созвучно с английским словом butts (ягодицы)], но во всех отношениях это был наиболее точный перевод, и Майрия придерживается его. Аллитерационный перевод японского имени バッツ — Battsu, или кратко Butz. «В Японии были документы, например, руководство по стратегии, а в игре — небольшие серебряные статуэтки, на которых было написано Butz так, как это писали мы. Мы использовали такие примеры как справочные материалы для перевода».

Лето сменилось осенью, Майрия закончила свою работу над любительским переводом, написав программу, вставлявшую переведённый английский текст в игру, чтобы не пришлось тратить десятки часов на копирование и вставку вручную. Остальное она оставила Омуро, который сначала планировал пересмотреть весь скрипт, однако драматический поворот заставил их сменить курс.

Остальные группы внутри RPGe оставили свои попытки перевести Final Fantasy V, и команде Майрии пришлось заканчивать самостоятельно. Но в октябре 1997 года кто-то получил доступ к ранней версии фанатского перевода и выложил его на веб-сайте Geocities, пытаясь присвоить славу себе. Чтобы восстановить справедливость, Майрии и Омуро пришлось выпустить собственный патч, который был почти готов, но не настолько хорош, как хотел Омуро.

17 октября 1997 года Майрия и её команда выпустили «v0.96», первую публичную версию фанатского перевода FFV. Она распространилась как вирус, через каналы IRC и форумы. Фанаты RPG обнаружили, что есть ещё одна отличная новая Final Fantasy, в которую никто из них не играл. Хотя эмуляторы SNES только зарождались и были сырыми, их можно было найти. Поиск копии Final Fantasy V и английского патча для обычного геймера тоже не представлял трудностей. Патч применялся в соответствии с простыми инструкциями из файла Readme. "[Патч] на самом деле распространялся сам по себе", — рассказывает Майрия. «Он быстро стал известен в сообществе эмуляции и люди начали в него играть. Нам вообще не пришлось заботиться о его популярности».

Омуро ещё несколько месяцев работал над завершением и редактированием скрипта, и в июне 1998 года команда выпустила «официальную» версию патча для Final Fantasy V. В то время он считался революционным, да и сегодня его признают одним из лучших переводов в истории игр. «Объём работы, проделанной над переводом FFV, установил высокую планку для последующих любительских переводов», — рассказывает специалист по локализации Манделин. Изучив Final Fantasy V, будущие переводчики-любители поняли: чтобы игра выглядела хорошо на английском, нужно редактировать не только текст, но и код.

«Я даже не знаю точно, как они этого добились — эмуляция в то время делала первые шаги, а инструментов и знаний для взлома ROM ещё не существовало», — говорит Манделин. «Как будто разработчики прилетели к нам из будущего, чтобы поделиться патчем перевода Final Fantasy V. Сначала я думал, что эмуляция — это просто забавная выдумка, но после выхода патча понял, что она даёт гораздо больше возможностей. Было задето моё любопытство, мне нужно было выяснить, как работают эти патчи переводов. Вскоре я тоже занялся программированием и переводом для фан-групп, что всего через несколько лет привело меня к карьере профессионального переводчика. В этом смысле я считаю, что любительский перевод FFV дал всем нам больше, чем смог бы официальный выпуск».

По словам Майрии, издатель Final Fantasy, компания Squaresoft никогда не обсуждала с RPGe их перевод, несмотря на то, что в США у них был офис в Коста-Меса, всего в нескольких милях от дома её родителей. Но в сентябре 1999 года до Северной Америки наконец добралась официальная английская версия Final Fantasy V. Эта версия, объединённая с Final Fantasy VI в сборке для PS1 под названием Final Fantasy Anthology, была отвратительной.

image
В переводе Final Fantasy V для PS1 главный герой Фарис (Faris) на протяжении всей игры упорно стремился говорить по-пиратски. Скриншот взят из LPArchive.org

«Мы просто хохотали, потому что перевод был абсолютно ужасным», — рассказывает Майрия. «Мы думали: „М-да, пара школьников за четыре месяца справилась лучше, чем Square. Наверно, у них на это ушёл целый год“».

И только в 2006 году в порте для Game Boy Advance Final Fantasy V: Advance Square наконец выпустила приличную локализованную версию этой несчастной ролевой игры. Главного героя по-прежнему звали Bartz. «Когда вышла версия для Game Boy Advance, я подумала: „О боже, они наконец нас победили“», — говорит Майрия. «Они всё-таки сделали перевод лучше, чем у нас, хоть это и заняло восемь лет». После Final Fantasy V Майрия занялась хакингом PS1, обратной разработкой старых RPG, чтобы иметь возможность писать собственные чит-коды, например, хак для Final Fantasy VII, позволявший игрокам ходить сквозь стены. Весь этот процесс помог ей начать карьеру в индустрии видеоигр. Она и по сей день указывает Final Fantasy V в своём резюме, и говорит, что без этого проекта она бы не научилась реверс-инжинирингу.

«Сейчас я часто общаюсь с разными людьми, они расспрашивают меня и я отвечаю: „Да, моё величайшее достижение — работа над тем переводом 20 лет назад“. До сих пор удивляюсь тому количеству людей, которые в него играли».

Автор: PatientZero

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js