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

Автор оригинала: Jason Schreier
  • Перевод
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 лет назад“. До сих пор удивляюсь тому количеству людей, которые в него играли».
Поддержать автора
Поделиться публикацией

Комментарии 26

    +5
    Я от САЕ
      +1
      Великолепная история.
      Подрастающему поколению непременно стоит знать героев прошлого, и то как они достигали успеха.
      Иногда читая современные ленты кажется что гейм дейв это только Юнити.

      И тут и игры и хак и история успеха. И даже, как аналог синей изоленты, синий экран дизассемблира.

      Божественно!
        +1
        Знать бы еще в чем разница таких знаний для подрастающего и устаревшего (не вспомнил другого слова) поколений. Мне одному кажется что стоит разделять геймдев бизнес, увлекательный кодинг под железо и ламповый реверс? Если игра сделана на юнити (начинка на c#, а сам двиг, надеюсь, на c++? + зависимый от платформы код), реверсить её все-равно на асме (ну или .net cil),
        Я к тому что никто не мешает делать хорошие вещи в юнити, как и решать интересные задачи на асме.
        аналог синей изоленты
        патчинг бинарников через hex редактор ближе
        0

        Geocities)) дрогнуло сердце воспоминанием 90ых… помню свой модем жужащщий 14400 эхх

          +1
          . (Для полноты картины мы, с разрешения Майрии, добавим, что в то время в Интернете она общалась от мужского имени.)
          Все таки из оригинала статьи больше следует что Майрия — трансгендер.
          Мне кажется это важный факт для характеристики необычности комьюнити фанатов в целом.
            0
            Я засомневался в этом фрагменте, но presented as male — это «выдавала себя за мужчину», скорее. Или вы увидели в статье другие указания на трансгендерность?
              +1

              Да, мне тоже не было в оригинале сразу понятно, но судя по комментарию который собрал кучу лайков-звездочек и никто его аргументированно не поправил — речь все таки о трансгендере. В комментарии это четко сказано

                +1
                Ага, спасибо, действительно: «I asked and got a response from Myria herself. She is trans, but presented as male (IRL) at the time specified in the article». Исправлю.
            +16
            Господа, вопрос.
            Работал три года «инженером по ресурсам». Разбирал бираники игр, чтобы можно было их локализовать. Реверс архивов, шрифтов, текстурных формтов и т.п.
            Легально(у издателя есть игра, но нет исходников, а локализовать надо).
            Вопрос: интересна ли тема сообществу? Имеет смысл попробовать написать несколько развлекательных статей на эту тему?
              +5
              Я бы почитал.
                +2
                Имеет смысл попробовать написать несколько развлекательных статей на эту тему?

                Да и не развлекательные тоже с удовольствием почитали бы.
                  +4
                  Напишите, конечно. Раньше мало кто сидел из большинства кодеров в asm`e и низкоуровневом коде, а сейчас 95% выберет JS (no offence), но это фундамент всего.
                  13 лет назад за вечер разобрал защиту программы препода в университете и переделал локализацию, а большинство моих коллег, к сожалению, и сейчас не оценит этого.
                    0
                    В реверсе игр в 99% случаев не нужно лезть в код игры. Я вообще IDA только для одного проекта из двух десятков запускал. Остальное всякими косвенными методиками.
                      0
                      Про ida надеюсь вы говорите только про реверсинг с целью подмены текста и текстур. Консольные игры приходилось разбирать? Бывало что игроделы спецом шифруют/укрывают данные? Завидую вам, где найти такую работу? Люблю реверсить, а еще больше реверсить игры, но если и найдется приближенная вакансия, то просят опыт в 100 лет, да и по зп почти всегда выгоднее на питоне рандомкод писать(
                        +2
                        Консольные не приходилось. 90% игр — казуалки на ПК.
                        Игроделы часто шифруют данные. Но ключ как правило не сложный.
                        Где найти такую работу не знаю. Я, кажется, просто на вакансию откликнулся. Что характерно в качестве тестовго задания выдали шифрованную игру, у которой мы еще и баг правили.
                        Ситуация была такая, что после сдачи проекта заказчику на тестирование он нам выставил баг. Баг заключался в том, что в некоторых раскладаз объекты начинали глючить.
                        Баг был мелкий, и было понятно, что это не из-за нас. В самом баг репорте было написано, что баг не критичный и «просто к сведению». Это прям стало делом чести. :) В итоге вынул скрипты, которые были зашиты прямо в exeiшник, нашел где баг, исправил и залил обратно в exeшник.

                        Работа оплачивалась копеечно. Грубо говоря 200$ за реверс одной игры, примерно 10 лет назад.

                        UPD: ИМХО рынок реверса игр умер. Большие игры имеют мощные инструменты для локализации. Мелкие на ПК умирают. Либо веб, либо мобилки. И там и там проблем с локализацией нет(на вебе сами разрабы следят, на мобилках просто не получится опубликовать игру не имея минимальных исходников).
                          0
                          По скромному опыту и личным наблюдениям: реверс консольных игр с целью локализации жил, жив и будет жить, пока есть годные непереведенные игры, а соответствующие данным играм консоли имеют jailbreak. На ПК аналогичная ситуация разве что с целью читов и «отучалок от диска стима»
                            0
                        +1
                        Да, причём очень!
                        • НЛО прилетело и опубликовало эту надпись здесь
                            0
                            Господа, я понял мнение. Не пишите, пожалуйста, сюда комментарии. Все таки комменты для статьи. Если хотите — напишите мне в ЛС.
                            Спасибо.
                            +1

                            Да, было бы весьма интересно! В идеале — с привязкой к конкретным проектам и описанием каких-то нетипичных проблем их локализации.

                              0
                              Я не могу указывать конкретные проекты. Я просто не знаю можно это делать или нет, а контора давно померла. Понятно, что некому мне выставить претензию за разглашение. Но чисто по личному мнению это не корректно делать без согласия.
                              0
                              Спасибо за перевод!

                              О Клайде Манделине: он до сих пор ведет сайт Legends of Localization — собирает там всякие интересные вещи, ляпы, примеры хорошей и плохой локализации, разбирает отдельные игры.

                              Еще он написал пару книг: первая про локализацию The Legend of Zelda (первой игры серии), вторая — про Earthbound/Mother. Занятное чтиво, но заказывать пришлось из Америки (сайт fangamer, раздел Gaming Books).
                                0
                                С PS1 вообще много занятностей. Например перевод Vagrant Story(гуглится по «Vagrant Story — Перерождение») в 2016 вышел(притом, что игра 2000 года). Все уже только на эмулях и играют, а парни нашли силы допилить качественный перевод.
                                  0
                                  Извиняюсь за некропостинг, наткнулся на статью по ссылке с другого ресурса.
                                  В 2016 году вышла локализация «правильного» Ace Combat 3 для PS1. Игра 1999 года. :-)
                                  Причем ситуация практически как с FF5 — полная двухдисковая версия — только для японского рынка.
                                  0
                                  Эх, классная игра, сам фанат данной серии, спасибо за перевод. Это действительно очень здорово, что для одной из части в легендарной серии был выпущен столь качественный перевод.

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