Специалисты Kitten Labs запустили GTA: Vice City на Wi-Fi роутере TP-Link TL-WDR4900
Специалисты Kitten Labs в своём техническом блоге подробно рассказали, как они запустили GTA: Vice City на TP-Link TL-WDR4900 (это был долгий процесс с ошибками и переделками кода и железа). Wi-Fi роутер построен на базе ЦП NXP/Freescale QorIQ P1014, который представляет собой 32-разрядный процессор PowerPC e500v2 с 36-битным адресным пространством и работает в режиме big-endian.
Для запуска игры инженеры установили на сетевое устройство Debian Linux вместо OpenWrt и подключили внешний GPU AMD Radeon RX 570 (потом AMD Radeon HD 7470) через слот miniPCIe, припаявшись к линии PCIe2, ведущий от ЦП к одному из чипсетов Atheros (фактически отключив этот чипсет), чтобы иметь возможность расширить возможности штатного контроллера PCIe.
В Kitten Labs пояснили, что выбрали Debian Linux, так как там есть специальная сборка PowerPCSPE для этого типа процессоров (e500/e500v2). В системе со статически скомпилированными пользовательскими двоичными файлами QEMU и правильно настроенными обработчиками binfmt можно было использовать инструмент debootstrap Debian для создания загрузочного пользовательского пространства.
В ходе подключения видеокарты и запуска Debian Linux специалисты использовали графический драйвер amdgpu, но столкнулись с тем, что у amdgpu имеется нерешённая несовместимость с 32-битными платформами. С картой AMD Radeon HD 7470 и использованием более старого драйвера Radeon всё начало работать. Также они потратили несколько дней на исправление игры и механизма рендеринга librw, чтобы они корректно работали на этом нестандартном ПК в режиме big endian.
В Kitten Labs рассказали, что игра GTA: Vice City и движок рендеринга (по крайней мере, в декомпилированной версии) вообще не поддерживают режим big endian. Это приводит к тому,
Читать на habr.com