GTA Vice City на маршрутизаторе TP-Link TL-WDR4900: как удалось этого добиться и на чём ещё запускали игры

72c43474fa63ad2b4ffc28e1417508f8.jpg

На днях стало известно о том, что группа KittenLabs смогла запустить знакомую практически всем читателям Хабра игру GTA: Vice City на роутере TP-Link TL-WDR4900 с задействованием AMD Radeon HD 7470, подключённой в качестве eGPU. Да, и операционной системой для всего этого послужил Debian Linux. Подробности — под катом.

Что произошло?

825ba9c3fa9965c80dd6585ebae34dea.jpg

KittenLabs уже давно планировали проверить возможности маршрутизатора TP-Link TL-WDR4900, поскольку тот на момент своего появления в продаже мог считаться достаточно производительным девайсом. К слову, его выпустили в 2013 году. Основной элемент здесь — чип NXP/Freescale QorIQ P1014, который, как объясняет KittenLabs, на самом деле является 32-битным процессором PowerPC e500v2.

Для того чтобы воспользоваться eGPU, понадобились хитрые манипуляции. Так, умельцы использовали кастомную плату, её подключили к PCIe-контактам, которые тоже модифицировали. Они шли из процессора к одному из чипсетов Atheros. Дорожки обрезали и подпаялись к контактам вместо чипсета. В итоге авторы проекта получили действующий интерфейс PCIe 2.0.

a02a746dc778097a4efcfe84bcb7cfd9.png

Затем пришёл черёд софта — установленная прошивка OpenWrt работать с игрой не захотела, поэтому пришлось поставить Debian Linux, который в итоге и оставили. Разработчики подключили дополнительные модули ядра ОС, чтобы получить поддержку AMD-чипа.

Изначально опыты проводили с графическим процессором AMD Radeon RX 570, но в этом случае ничего не получилось. Поэтому решили выбрать AMD Radeon HD 7470 со старым драйвером — и система заработала. Вот результаты деятельности команды проекта.

Проблем, конечно, было немало. Одна из них — беспроблемный запуск игры в среде Debian Linux/PowerPC. Разработчикам пришлось использовать reVC. Это проект, целью которого является получение исходного кода Grand Theft Auto: Vice City и исправление его ошибок. Движок игры был скомпилирован под Windows, MacOS и GNU/Linux, а также вышли неофициальные порты под Nintendo Switch, PlayStation Vita и Nintendo Wii U.

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

e88b5b358e499555228bc306896f02b9.jpg

В общем, именно этот проект решили задействовать авторы «Vice City для маршрутизатора». И они не прогадали, хотя пришлось решить ещё несколько проблем. Одной компиляции под платформу маршрутизатора не хватило: при взаимодействии с неигровыми персонажами возникали сбои, и проект застопорился на несколько месяцев. Энтузиастам помогли автор порта reVC на Wii U и обновление библиотеки со всеми зависимостями. В итоге прорисовка заработала должным образом с полной поддержкой аппаратного ускорения.

Настоящий прорыв, если так можно выразиться, произошёл после обновления графической библиотеки Mesa 3D, используемой маршрутизатором в рамках установки Linux. Было непросто, так как необходимо было обновить и ряд зависимостей, но как только это было сделано, рендеринг игрока стал нормально работать на реальном оборудовании, причём с ускорением.

С чего вообще всё началось?

Речь о запуске игр на самых неподходящих для этого платформах. Наверное, лидером является всем известный Doom. Ну, а спусковым крючком послужил запуск игры на банкомате ещё в 2014 году. Это сделали в мастерской, опыты не ставились на рабочем устройстве где-нибудь в магазине или офисе банка.

После этого были и другие проекты. Например, вот интересный вариант использования старого пианино в качестве инструмента управления персонажем. Его реализовал польский инди-разработчик Миколай Каминьский, более известный как Sos Sosowski (автор серии игр McPixel).

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

Ещё один вариант поиграть — офисный телефон, а если точнее, то модель Polycom VXX 600. Она оснащена 12-кнопочной панелью, кнопкой Home, регулятором громкости, тремя кнопками для отключения звука, использования динамика или гарнитуры. В общем достаточно функциональное устройство. Но основной его плюс — сенсорный дисплей, который позволяет управлять разными приложениями.

1841114b93c5a4cb6daff34eb383f418.jpg

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

Ну и наконец эту игру удалось запустить на принтере, причём ещё в 2014 году. Правда, эта версия проекта была практически неиграбельной, поскольку аппаратной базой послужил принтер от Canon с дисплеем очень плохого качества (плохого для игры, не для выполнения своих функций, конечно).

В целом, весьма интересные проекты — что Vice City на роутере, что Doom на чём только можно. Если вы стали свидетелем ещё более интересного проекта, когда какую-то игру запускали на каком-то необычном девайсе, расскажите об этом в комментариях.

© Habrahabr.ru