Titre: Doom sur RP2040 Posté par: LeFauve le Mars 18, 2022, 10:49:41 De nos jours, Doom a été porté sur tout et n'importe quoi (appareil photo, réfrigérateur, ampoule connectée, etc...).
Le portage du jour est sur le dernier micro contrôleur de Raspberry, le Pi Pico RP 2040. Ce petit bidule à 4$ (à ne pas confondre avec le "Pi tout court" qui est un vrai ordinateur faisant tourner Linux) est une sorte d'Arduino super-vitaminé (avec un Dual-core Arm Cortex-M0@133 MHz et 264KB de RAM). Ca a l'air suffisant comparé aux PC qui faisaient tourner Doom quand il est sorti, mais il faut considérer que le RP2040 n'a ni carte vidéo, ni carte son, donc en plus de faire tourner le jeu il doit "bit-banger" un signal vidéo VGA ainsi qu'une sortie son stéréo. Le "bit-banging" consiste à générer un signal de manière totalement logicielle, donc en gros pour le VGA il faut générer des 0 et des 1 sur 18 pins avec un timing suffisamment correct pour qu'un moniteur VGA puisse décoder l'image (à 60 FPS :o ) En plus, le RP2040 n'a que 2 Mo de stockage, et le fichier contenant les ressources de Doom (DOOM1.WAD) fait 4Mo donc il a fallut tout décompresser en temps réel. Bref, c'est un bel exploit, surtout quand on regarde le résultat obtenu :
Toutes les parties intéressantes ont été documentées ici (https://kilograham.github.io/rp2040-doom/) (en Anglais), et le code source se trouve là (https://github.com/kilograham/rp2040-doom) :-* Et il y a une petite vidéo ici (https://www.youtube.com/watch?v=eDVazQVycP4). |