De temps en temps, des hackers ont de drôles d'idées. Pour les Allemands de KittenLabs, la dernière lubie a été de jouer sur un routeur. Pas à Doom, pour une fois, mais à GTA : Vice City. Et le pire, c'est qu'ils ont réussi.
Le routeur choisi n'est pas n'importe quel modèle : il s'agit d'un TL-WDR4900 de chez TP-Link. Ce modèle est compatible avec OpenWrt (une distribution libre qui peut remplacer le logiciel d'un routeur) mais il contient surtout un système sur puce intéressant, un Freescale P1014. Ce composant intègre un cœur PowerPC à 800 MHz, l'e500v2, qui est complet et performant. Le routeur propose aussi 128 Mo de RAM et de l'USB pour du stockage.
Pour pouvoir jouer à GTA, ils expliquent les différentes étapes dans un long sujet. La première a été d'installer une distribution GNU/Linux plus complète, une ancienne version de Debian qui prend en charge le jeu d'instructions PowerPC et les fonctions particulières de la puce. Ensuite, la carte Wi-Fi du routeur a été remplacée par un connecteur Mini Card, une version réduite d'un emplacement PCI-Express. Grâce à cet emplacement, ils ont pu installer un eGPU, c'est-à-dire un GPU externe : un adaptateur permet de connecter une carte graphique classique sur la prise en question1.
Après quelques déboires à cause des pilotes open source d'AMD qui peuvent poser des soucis avec les cartes graphiques modernes, une antique Radeon HD 7470 (un modèle d'entrée de gamme de 2012) a fonctionné. Mais ce n'était pas fini : ils ont utilisé une version spécifique de GTA : Vice City (reVC), dont le code source a été obtenu par rétro-ingénierie. Là encore, le choix d'une puce PowerPC a amené quelques soucis : le jeu a été pensé au départ pour des puces qui travaillent en little-endian2 (comme les MIPS, les x86, etc.) et la puce de Freescale est un modèle big-endian (comme une bonne partie des PowerPC, même si certains acceptent les deux orientations). Après quelques patchs issus de la version Wii U — qui emploie aussi une puce PowerPC —, le jeu a finalement accepté de se lancer. Et une fois quelques optimisations mises en place, le résultat est assez fluide, compte tenu de la plateforme.
Inutile, donc totalement indispensable.
-
Une manipulation possible sur un vénérable MacBook. ↩︎
-
Le boutisme, endianness en anglais, indique l'ordre des octets dans la mémoire. Les architectures little-endian et big-endian ne les placent pas dans le même ordre, ce qui amène de nombreux problèmes. ↩︎