PlayStation 2 12387
Аватар Evernews Evernews

«Самый бесполезный в команде»: как у PlayStation 2 появилась обратная совместимость

4
1
Поделиться
Телеграфировать

Тэцуя до сих пор не понимает, почему его вообще взяли на работу.

«Самый бесполезный в команде»: как у PlayStation 2 появилась обратная совместимость

Следующее поколение PlayStation получит технологию обратной совместимости: на PlayStation 5 смогут работать как минимум некоторые игры для PlayStation 4. У нынешнего поколения такой технологии нет, но это не первый раз, когда Sony позволяет запускать старые игры на новой консоли.

Компания задумалась об обратной совместимости еще во время самого первого обновления поколений — когда собиралась переходить с PlayStation на PlayStation 2. Современные PlayStation 4 и PlayStation 5 работают на базе одной архитектуры, но во времена, о которых пойдет речь, все было иначе.

А вот еще история
Кен Кутараги и дорога ярости: как создавалась PlayStation

Железо PlayStation 2 имело не слишком много общего с начинкой первого поколение консоли. Чтобы обеспечить обратную совместимость, компании был нужен встроенный эмулятор, умеющий запускать на PlayStation 2 игры для PlayStation.

Создавать его поручили программисту по имени Тэцуя Иида. Спустя два десятка лет Тэцуя рассказал, как это было; разработчик вспоминал, что был удивлен предложением поработать над технологией — он был не самым опытным сотрудником игрового подразделения.

Я присоединился к Sony Computer Entertainment в 1996 году и оказался во второй волне вчерашних выпускников, нанятых компанией. Думаю, тогда подразделение исследований и разработок SCE состояло человек из 50; на самой вершине был Кен Кутараги, а парни вроде меня находились в самом низу.

Если я правильно помню, моей первой задачей в SCE было создание видеоконвертера, который мог бы брать файл и накладывать на него разные фильтры. Так уж вышло, что это была вообще первая программа, которую я написал профессионально.

Дело в том, что на момент присоединения к компании я был, возможно, самым бесполезным в команде. У меня не было никаких инженерно-электротехнических навыков, я даже не знал, как загрузить Windows 3.1, не говоря уже о том, чтобы писать программы. Даже сейчас я не могу представить, что парни из Sony во мне увидели и почему решили нанять.

Тэцуя Иида

В конце концов Тэцуя научился программировать, пройдя специальные курсы, проводившиеся Sony для сотрудников. Курсы, вспоминает разработчик, оказались чрезвычайно полезными: они вселили в Тэцую уверенность в своих силах.

Вскоре он занимался созданием всего подряд, от различных конвертеров данных до поддержки внутренней версии libc, использовавшейся Sony. Так прошло два года, а в 1998 году разработчикам сообщили, что Sony выпустит второе поколение консоли.

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

Мне поручили заставить игры для PlayStation работать на новой системе. Тогда считалось нормальным, что старые игры не работали на новых консолях, но в SCE хотели переломить этот тренд. На тот момент я работал в компании всего несколько лет и был очень доволен, что мне позволили заняться чем-то настолько важным.

Тэцуя Иида

На тот момент, вспоминает Иида, проектировщики консоли уже решили, что процессор первой PlayStation будет использоваться в PlayStation 2 для обработки ввода/вывода данных. Однако использовать другие чипы старой консоли не планировалось.

Чтобы добиться работы старых игр на новой консоли, разработчикам SCE нужно было эмулировать все недостающее железо. Сам Тэцуя должен был заняться созданием эмулятора звукового чипа первого поколения PlayStation.

Материнская плата PlayStation 2

Чип состоял из двух частей, ядра и цифрового сигнального процессора. Задачу было решено разделить между двумя программистами: Иида занялся более простым ядром, а над эмулятором процессора работал более опытный разработчик, специализировавшийся на системах обработки звука.

Мы заперлись в комнате, которую предоставил кто-то из субподрядчиков, и принялись за работу. Помню, там не было окон и мы постоянно спорили со вторым разработчиком. Впрочем, все было не так уж плохо: благодаря времени, проведенному вместе, мы сблизились и стали по-настоящему хорошими друзьями.

Не помню, как долго мы трудились, но однажды нашу работу бесцеремонно прервали. Оказалось, звуковой чип PlayStation тоже решили добавить в PlayStation 2 — а значит, наш труд больше не был никому нужен.

Тэцуя Иида

Впрочем, работа над технологией обратной совместимости на этом не закончилось. У PlayStation 2 все еще отсутствовал очень важный компонент старой консоли, графический чип, и его совершенно точно не собирались добавлять в новое устройство.

Задача эмулировать этот чип досталась Тэцуе. Разработчик рассказывает, что ему повезло: пока Иида занимался звуком, другие программисты пытались эмулировать графику и у них уже были кое-какие наработки; проект передали Тэцуе, когда его предшественники решили уволиться из команды.

А вот еще история
Пять поколений, девять геймпадов: как менялись контроллеры PlayStation

Так или иначе, начинать разработку эмулятора графики с нуля не пришлось. На самом деле, вспоминает Иида, его никто особенно и не спрашивал: Тэцую просто поставили перед фактом, что теперь он занимается не звуком, а графикой.

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

Размышляя об эмуляторах, я представлял их чем-то вроде конвертеров: по сути, они просто принимают команды, предназначенные для старых процессоров, и транслируют их в то, что может понять и выполнить новое железо.

Если смотреть на вопрос под таким углом, то графические или звуковые чипы, даже если они сильно отличаются от тех, что использовались раньше, просто шлют какие-то команды. Словом, если эмулятор полностью протестирован, все должно работать нормально.

Тэцуя Иида

Изучив спецификации GPU двух консолей, Тэцуя принялся за работу: он шел по списку отсутствующих функций и реализовывал их одну за другой. Первой старой игрой, заработавшей на новой консоли, стала Ridge Racer — ее решили протестировать, потому что это был один из стартовых проектов первой PlayStation, имевшийся почти у всех игроков.

Первое время, вспоминает разработчик, проекты, работавшие с помощью эмулятора, были играбельными только условно: в Ridge Racer, к примеру, королева, появлявшаяся в начале каждой гонки, выглядела не как нормальный спрайт, а рендерилась мозаикой.

Вот так выглядела королева, о которой идет речь

Кроме того, после прохождения первого круга экран почему-то окрашивался в розовый цвет. Впрочем, Тэцую это не смущало: во всяком случае, было ясно, что довести эмулятор до ума в принципе возможно и на PlayStation 2 точно будут работать старые игры.

Момент истины для разработчика настал в начале марта 1999 года, когда Sony проводила официальную презентацию консоли. Здесь, в частности, планировалось показать работу технологии обратной совместимости; ее качество улучшилось, но работу системы нельзя было назвать идеальной.

Эмулятор мог запускать довольно много игр, лучше всех работал Crash Bandicoot: Warped — именно поэтому его выбрали для демонстрации обратной совместимости. Была только одна проблема: время от времени игра подвисала.

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

Все, что мне удалось выяснить — игра стабильно работает, пока Крэш движется. Так что я не спал всю ночь, постоянно гоняя игру на девките PlayStation 2. Мы не могли просто запустить игру в то же утро, когда должна была состояться презентация: был шанс, что эмулятор не загрузится, а исправить проблему на месте мы бы не сумели.

Тэцуя Иида

Чтобы Иида не заскучал, к нему командировали еще одного разработчика. Коллеги чередовались, по очереди играя в демонстрационную версию Crash Bandicoot, и постоянно поддерживали Крэша в движении.

Тот самый Crash Bandicoot: Warped

За ночь эмулятор с Crash Bandicoot: Warped так ни разу и не завис, демонстрация прошла более-менее успешно. Правда, вспоминает Тэцуя, когда дело дошло до реального геймплея, он показал себя не с самой лучшей стороны.

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

Если честно, начиная с этого момента я уже ничего не помню. Даже не могу сказать, удалось ли мне довести дело до конца.

Тэцуя Иида

К моменту выпуска консоли в продажу — это произошло еще через 12 месяцев, в марте 2000 года — эмулятор окончательно привели в форму. Он был готов где-то к концу 1999 года: работало все, за исключением нескольких игр. Добиться стопроцентной обратной совместимости так и не удалось.

В конце концов мы просто выпустили черный список игр для первой PlayStation, которые не могли работать на новой системе. PlayStation 2 была не на 100% совместима с каталогом игр для PlayStation 1, но все-таки поддерживала почти все.

Оглядываясь назад, я думаю, что это задание было, возможно, самым важным за всю мою карьеру.

Тэцуя Иида

Мы пока точно не знаем, как будет устроена обратная совместимость PlayStation 5. Скорее всего, у нее тоже появится некий черный список: сейчас игровое подразделение Sony тестирует игры, но не гарантирует, что все они заработают на новой консоли.

Теги: PlayStation 2, Игры, Технологии
Аватар Evernews
Evernews
8066 подписчиков