DOOM arrive sur le NRF5340

Si vous cherchez un rappel de la puissance des minuscules microcontrôleurs qui exécutent nos gadgets quotidiens, consultez le travail impressionnant. [Audun Wilhelmsen] a fait pour faire fonctionner DOOM sur le Nordic Semiconductor nRF5340. C’est le genre de SoC Bluetooth que vous vous attendez à trouver dans un casque ou un clavier sans fil, et pourtant il contient un processeur 128 MHz qui peut rivaliser avec l’Intel 486 que l’emblématique jeu de tir à la première personne vous a recommandé d’avoir dans votre ancien PC boîte beige.

Cela dit, le portage du jeu de tir open source sur le nRF5340 n’a pas été vraiment facile. Le défi consistait à faire fonctionner le jeu, qui recommandait que votre PC dispose de 8 Mo en 1993, sur un microcontrôleur avec un maigre 512 Ko de mémoire. Heureusement, une grande partie des données que le jeu charge dans la RAM sont statiques. Bien que cela ait pu être nécessaire lorsque le jeu était exécuté à partir d’un disque dur IDE, les temps d’accès presque instantanés du stockage à l’état solide et la capacité d’exécution en place (XIP) du nRF5340 signifiaient [Audun] pourrait déplacer tout cela sur une puce flash de 8 Mo connectée SPI avec quelques ajustements au code.

Carte de développement nRF53 avec DAC I2S

En général, [Audun] explique que bon nombre des décisions de conception prises pour le moteur DOOM d’origine ont été prises en supposant que le facteur limitant serait la puissance du processeur plutôt que la RAM. Cela conduit donc à ce que les choses soient souvent pré-calculées et stockées en mémoire pour un accès instantané. Mais avec la puissance supplémentaire du nRF5340, il était souvent utile de renverser cette dynamique et d’inverser les optimisations apportées par les développeurs d’origine.

Côté matériel, les choses sont relativement simples. L’écran LCD 4.3″ 800×480 est connecté via SPI, et un DAC I2S gère le son. Bluetooth aurait été le choix logique pour les commandes, mais pour garder les choses simples, [Audun] a fini par utiliser un BBC micro:bit qui pouvait communiquer avec le nRF5340 via le protocole propriétaire de Nordic. Bien qu’il note que la prise en charge de la souris et du clavier Bluetooth est quelque chose qu’il aimerait éventuellement mettre en œuvre.

Si certaines des astuces logicielles utilisées par ce hack vous semblaient familières, c’est parce qu’une technique très similaire a été utilisée pour faire fonctionner DOOM sur une ampoule IKEA TR aDFRI il y a environ une semaine. Malheureusement, il a dû ébouriffer quelques plumes, car il a été retiré d’Internet en peu de temps. Cela ressemble [Audun] a obtenu l’accord de ses patrons de Nordic Semiconductor pour rendre public ce projet, alors j’espère que celui-ci restera dans les parages pendant un certain temps.