В Microsoft раскрыли секрет, как работает обратная совместимость на Xbox One

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

Новейшую на тот момент Mass Effect на платформе Xbox One Глава отдела Xbox компании Microsoft Фил Спенсер официально продемонстрировал еще около 2-х лет назад в Лос-Анджелесе. Теперь технология обратной совместимости уже может демонстрировать массовому игроку все свои чудеса, и число игр на Xbox 360, доступных теперь на Xbox One, уже исчисляется сотнями. Даже появились несколько усовершенствованных игр с поддержкой 4К.

Догадки

Загадку получившейся у Microsoft обратной совместимости многие пытались разгадать и раньше. Энтузиастам даже удавалось всеми правдами и неправдами заполучить информацию, что оригинальные скомпилированные рабочие файлы Xbox 360 для системы PowerPC, вероятнее всего, разбираются в некий неизвестный промежуточный формат, после чего компилируются снова, но уже в формат, похожий на x86. Еще была информация о «загадочных» блоках, определяющих аппаратную совместимость, которые встроены в 1-кристальную систему Xbox One для решения задач эмуляции. Но все это, конечно же, были, скорее, домыслы.

Что на самом деле

«Дело вот в чем, — говорит Билл Стиллвер, глава Xbox Platform, — мы берем графпроцессор Xbox 360, рекомпилированный для x86, и весь комплект ОС выполняем в виртуальной машине. Фактически, мы поддаем рекомпиляции каждый игровой пакет, и запускается игра, как и прежде, в среде Xbox 360, а наши специалисты продолжают работать над игрою в несколько этапов».

Первый этап предполагает то, что команда собирает GPU-шейдеры и особые «точки отсчета» для усовершенствования процесса перекомпиляции (Стиллвер называет их «Enlightenments»). Сам процесс очень требователен не к графическому модулю, а именно к центральному процессору. Здесь обрабатываются точки вызова функций, прямые инструкции оборудованию и т. д.

Эмуляция существенно упрощается, учитывая то, что некоторые элементы аппаратной части Xbox 360 на самом деле изначально интегрированы в микросхемы Xbox One. Речь идет, в частности, о поддержке форматов аудио и текстур изображений.

Сложность эмуляции обусловлена еще и тем, что процессор Xbox 360 построен на архитектуре PowerPC, а она довольно далека от x86 в Xbox One. К примеру, расчеты с плавающей запятой необходимо переводить в 3-бит инструкции из 40 бит, что может отразиться на игре не самым лучшим образом. Но Microsoft, тем не менее, поставила амбициозную задачу – дать возможность Xbox 360 исполнять код игры максимально близко к оборудованию, для которого игра была создана. Фактически, «игрушка» сама не должна понять, что работает на «не настоящем оборудовании». Если быть точным, как бы эмулятор не превращал данные, игре должны возвращаться те значения, которых она ожидает от «родной» консоли.

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

Сложности

Задачу привести в соответствие код, который был создан специально для 3-ядерного шестипоточного процессора PowerPC частотой 3,2-ГГц под ядра x86 (не отличающиеся высокой частотой и большой мощностью), нельзя назвать тривиальной.

В принципе, шесть аппаратных потоков возможно назначить на определенные ядра Xbox One, но здесь не все так просто. Xbox One имеет сходный планировщик потоков для распределения нагрузки, как у Windows, но у 360 он был фиксированный и очень непротиворечивый. По этой причине специалистам было необходимо переписать заново собственный планировщик.

Таким образом, обратная совместимость частично основывается на специальных аппаратных блоках и не еще одной составляющей, которая держится в секрете (в частности, в Microsoft не рассказывают о том, как им удалось реализовать поддержку векторных блоков VMX128 из Xbox 360).

В данный момент разработчики достигли таких результатов, что практически все возможности Xbox 360 консоль Xbox One способна полностью повторить программно. Это очень впечатляющий результат, ведь в завершение эры Xbox 360 многие девелоперы стали отказываться от привычных DirectX и других подобных стандартов в угоду доступу к «железу» на гораздо более низком уровне. Это делалось для того чтобы «выжать максимум» из платформы и впоследствии сделало задачу перекомпиляции гораздо сложнее.

Игры для Xbox 360
Игры для Xbox 360

Лучше, чем оригинал

Разрабатывая технологию обратной совместимости, команда Microsoft получала ценную обратную связь, что дало возможность улучшить результаты. Так, например, после выхода технологии геймеры отметили, что сложнейшая игра Halo Reach исполняется все-таки заметно хуже, чем на Xbox 360.

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

Результат превзошел даже самые смелые ожидания. Теперь даже игры самого высокого класса местами идут даже плавнее и в целом лучше (!) чем на оригинальной консоли.

Полезные побочные эффекты

Вся эта эпопея с созданием обратной совместимости возымела ряд положительных побочных эффектов. Например, благодаря свежеизобретенной технике тестирования улучшилась работа игр Xbox One на Xbox One X, которой тоже потребовалась эмуляция в силу некоторых архитектурных нюансов. В результате не только выросла скорость, но также уменьшилась нагрузка на ресурсы, Xbox One X принесла 16х анизотропное аппаратное фильтрование и даже, казалось невозможным, поддержку FreeSync, что дало возможность синхронизировать в играх частоту кадров игры с частотой экрана монитора.

Ко всему прочему, несколько игр Xbox 360 получили фундаментальные улучшения, например, поддержку выполнения в родном разрешении 4К. Или же начали исполняться в 4К. К примеру, знаменитая Gears of War 3 на Xbox 360 исполнялась в 720p, а на Xbox One X масштабирование до 4К оказалось очень впечатляющим, плюс еще игра сильно добавила в производительности.

Рассказывает Билл Стиллвелл: «При визуализировании игрового приложения в результирующий рендер, программное обеспечение, выполняющее функцию виртуального графпроцессора Xbox 360 замеряет размеры и масштабирует рендер. В результате получается, фактически, высококачественная с точки зрения разрешения копия ресурса, заключенная в памяти Xbox One. Игре все это не известно, но так как речь об эмуляторе, когда вся эта «цифра» выражается в качестве текстуры на экране, она заменяется версией с высоким разрешением. Это, конечно, частный случай, и в фабричных масштабах так подходить нельзя. Наши специалисты буквально проходят каждую игру шаг за шагом, и оценивают наступающие изменения. Особенно это касается тех случаев, когда разрешение повышается в 9 раз».

Результаты совершенствований на Xbox One X иногда впечатляют даже самых искушенных. И речь здесь не идет только о повышении разрешения. Специалистам удалось получить выдающиеся результаты по части повышения детализации объектов и фильтрации текстур. Яркие примеры — Halo 3 и Fallout 3, а в Assassin’s Creed в 9 (!) раз улучшено качество теней. Таким же образом возросло разрешение теней в Mirror’s Edges.

И, наконец, HDR, поддержка которого была внедрена в пару игр, в частности, в Mirror’s Edge. Это стало результатом плодотворной кооперации талантливых профессиональных команд. Спрашивается, почему только две игры? Теоретически, все игровые приложения поколения Xbox 360 с 10-битным, а не 8-битным, как раньше, конвейером рендеринга, способны были бы оснаститься поддержкой HDR. Но это очень непростая задача. Хотя бы потому, что далеко не все игры на всем конвейере рендеринга применяли 10bit цветообработку. Ко всему, HDR вполне может даже визуально повлиять на игру, и многие разработчики выступают резко против этого.

Прогнозы и перспективы

На текущих достижениях в Microsoft останавливаться не собираются. Кроме 7-ми усовершенствований для Xbox One X планируется внедрить похожие нововведения и для ряда других проектов.

В Xbox One X, кстати, предусмотрена возможность отключать внедренные улучшения. В этом случае игрок получает приложение в изначальном виде, но с существенно повышенной производительностью.

Ввиду того, что Xbox One и PlayStation 4 в плане архитектур довольно схожи, Microsoft планирует продолжать повышать совместимость игр на этой системе. Кроме того, разработчики начали эмулировать игрушки даже с самой первой «древней» Xbox, и они получают все те же совершенствования в плане повышения качества на всех аспектах – разрешение, фильтрование текстур и т. д.

Резюме

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

One thought on “В Microsoft раскрыли секрет, как работает обратная совместимость на Xbox One

  • 23.12.2017 в 09:26
    Permalink

    Сколько бы мы не пытались узнать скрытые моменты той или иной системы, все равно останемся в неведении все тонкостей.

    Ответ

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *