Wii U GamePad, контроллер-планшет, поставляющийся с каждой новой Wii U, был взломан командой, ответственной за эмулятор Dolphin, позволяющий запускать GameCube и Wii. Хакерам удалось полностью симулировать функции геймпада на компьютере, что позволило узнать больше о спецификациях и принципе работы инновационного устройства от Nintendo.


“Мы начали изучение Wii U GamePad сразу же после того, как нам (мне и двум другим хакерам) удалось заполучить его в руки”, — рассказал редакции Eurogamer Пьер Бурдон, один из авторов хака, а также энтузиаст в области компьютерной безопасности. “На самом деле GamePad не особо защищён (по сравнению с Wii U). Прошивка устройства хранится на незашифрованном диске, что позволило нам довольно быстро разобраться в исходном коде. Более того, в контроллере применяется практически стандартная версия протокола передачи данных 802.11n, что упростило эксперименты по подключению к ПК”.

Сам по себе GamePad проще даже самых простых планшетов на Android — в целом это обычный игровой контроллер, оснащённый сенсорным экраном и WiFi-приёмником, а также чипом-декодером для трансляции видеопотока. Нажатия кнопок отслеживаются и передаются на Wii U при помощи того же беспроводного канала 180 раз в секунду — заметный шаг вперёд по сравнению с Wiimote, в котором применялась технология Bluetooth.

“Мы начали работу с рассмотрения способа обмена данными между Wii U и GamePad, предположив, что ключи шифрования WiFi должны передаваться во время подключения контроллера к консоли. Выяснилось, что при этой процедуре используется практически полная копия стандартного протокола. Мы модифицировали wpa_supplicant/hostapd и смогли таким образом связать PC и Wii U. На это ушло меньше недели — нам было достаточно изучить протокол коммуникации между приставкой и GamePad и слегка переработать его под свои нужды”.

Кастомный протокол синхронизации означает, что теории о том, что Nintendo использует технологию от Miracast для работы Wii U GamePad, были неверны — всё работает несколько иначе.
“Видео сжимается при помощи кодека h.264 (базовый профиль), обычно используемого в мобильных продуктах и при видеоконференциях. Аудио, как правило, передаётся без сжатия, однако мы нашли упоминания ряда сжатых аудиоформатов в прошивке… Мы обнаружили упоминания Miracast, когда начали изучать GamePad, но оказались неправы. Аудио, видео и ввод с устройства транслируются при помощи специально разработанных протоколов”.

Базовый профиль h.264 не содержит ряда более продвинутых методик сжатия данных, используемых в кодеке, однако Nintendo компенсирует это быстрой и качественной передачей. Мы смогли прогнать 33 мегабайта данных по Wi-Fi потоку Wii U примерно за 87 секунд — то есть, средняя скорость составляет примерно 3 мегабита в секунду. Это довольно нерационально в случае, если речь идёт о потоке в разрешении 858х640 при 60 кадрах в секунду, но не стоит забывать, что на видео показана работа лишь основных меню. Пьер Бурдон сообщил нам, что Wii U может динамично изменять битрейт, а значит, скорость передачи варьируется в зависимости от сложности декодируемого изображения.

“Более того, в наших расчётах не учитывается аудио. Вот график размера кадров на протяжении этих 33 мегабайт”.

Изображение

На графике показано, как распределяются 33 мегабайта данных среди 87-секундного видео. Как вы можете видеть, Wii U меняет битрейт, масштабируя скорость передачи, чтобы сохранять одинаковое качество картинки, выводимой на GamePad.

В целом, мы увидели средние показатели в районе 3 мегабит в секунду, однако встречались и скачки до 25-40 мегабит. Подобная разница в пиковых значениях присуща только кодированию видео при помощи h.264. Чем сложнее изображение, тем больше информации необходимо сохранить, чтобы сжать его без потери качества — а Wii U, в свою очередь, более чем успешно справляется с передачей финального результата при помощи беспроводного стандарта 802.11n.

“Я не проверял, но мне кажется, что пиковые значения соответствуют моментам, когда Wii U отсылает большие ключевые кадры”, — говорит Бурдон. “Если бы мы отправляли около 10 таких кадров подряд, то график стал бы более плоским. В обычном режиме Wii U отсылает один ключевой кадр, а затем лишь отслеживает изменения в нём, кроме тех случаев, когда иное требуется приложением либо когда один из кадров не был отослан из-за потери пакетов на GamePad”.

Уже известно, что кодировщик h.264, встроенный в Wii U, аналогичен таковым в новом Xbox и PS4, так что есть небольшая вероятность того, что на Wii U появятся облачные функции. К тому же, Бурдон подтвердил нам, что поддержка плавной работы двух GamePad одновременно была изначально встроена на “железном” уровне.

“Я не вижу причин, по которым консоль не могла бы отсылать видео или аудио с GamePad в Сеть (при этом одновременный запуск интернет-соединения и GamePad оказался бы слишком сложен/невозможен)”, — считает Бурдон. “Программное обеспечение чипа, отвечающего за связь с GamePad (он называется DRH) может обновляться, так что подобные функции могут планироваться Nintendo к релизу в ближайшие годы. Но стоит учесть, что всё это лишь спекуляции — мы знаем, что они могли бы сделать это, но не нашли упоминаний в прошивке, показывающих, что в компании действительно планируют нечто подобное”.

А что насчёт шансов полностью эмулировать Wii U — финальной цели любого хакера, изучающего приставки? Работа, проделанная Пьером и его коллегами над Dophin, впечатляет, и нам было интересно узнать, есть ли вероятность повторения истории с Wii U, особенно с учётом того, что её архитектура во многом схожа с таковой в оригинальной Wii.

“PowerPC не сложен, но и не прост для эмуляции. Большее количество ядер, на мой взгляд, только упрощает задачу — это значит, что игры будут меньше полагаться на точное время запуска операции. Главной проблемой станет GPU: эмуляция сложного программируемого графического чипа пока что не удавалась никому, и может оказаться невыполнимой задачей. К тому же, многие API, такие как DX и GL надёжно скрыты от любопытных глаз”.

Источник: Eurogamer

Обсудить на форуме

3,348 просмотров всего, 2 просмотров сегодня