Peut-il exécuter Doom ? Mon voyage à travers l’enfer pour découvrir pourquoi la réponse est toujours « oui »
Avec son héritage de plusieurs décennies, le mème « Can it run Doom » est l'un des gags les plus anciens et les plus appréciés d'Internet. Mais c’est devenu bien plus que cela. C'est un rite de passage pour les aspirants développeurs.
Promenez-vous dans ce qui est devenu récemment mon subreddit préféré, r/itrunsdoom , et vous verrez le flambeau être vaillamment porté jusqu'à ce jour. Depuis que It Runs Doom! La page Tumblr a cessé de publier des mises à jour il y a environ un an, la communauté Reddit compte désormais plus de 100 000 membres qui publient et réagissent au portage de Doom sur à peu près n'importe quoi. Calculatrices, terminaux de cartes de crédit – bien sûr. Mais aussi le Nintendo Alarmo , un RS Media Robot de 2006 , et un multijoueur Pioneer DJ . Et cela ne date que des deux derniers mois.
Plus je tombais dans le terrier du lapin sur d'étranges ports Doom , plus je commençais à me demander d'où l'idée est née – et plus important encore, pourquoi c'est même possible. De qui s’agissait-il d’une idée absurde au départ ? Pour découvrir cette histoire, il me faudrait fouiller dans les annales infernales de l’histoire d’Internet des années 1990 et parler à certains des hackers aux yeux fous qui perpétuent la tradition aujourd’hui.
Pourquoi Destin ?
Notre histoire ne commence pas en 1993, lorsque Doom est sorti. Cela commence quatre ans plus tard, en 1997. Le 23 décembre de la même année, deux jours avant Noël, id Software publie le code source de Doom. Le cerveau John Carmack, qui avait lui-même écrit le code original, a écrit une lettre à la communauté qui vit toujours sur la page GitHub de Doom. Oui, même aujourd'hui, même après qu'une grande entreprise comme Zenimax ait englouti id Software (Zenimax a ensuite été engloutie par Microsoft), le code source de Doom existe toujours.
"Je ne sais pas vraiment combien de personnes vont jouer avec cela, mais si des projets importants sont entrepris, ce serait cool de voir un certain niveau de coopération communautaire", a écrit Carmack dans la lettre. "Je sais que la plupart des premiers projets seront des hacks grossiers réalisés de manière isolée, mais je serais très heureux de voir une" sortie nette coordonnée d'une version améliorée et rétrocompatible de Doom sur plusieurs plates-formes l'année prochaine. Carmack a même fourni aux lecteurs quelques idées de projets potentiels.
La communauté a immédiatement commencé à porter Doom . Je veux dire cela littéralement. Le premier port source de Doom, DOSDoom, a été publié le même jour que la publication du code source. Vous pouvez toujours le télécharger aujourd'hui . Le code source original publié par id Software était uniquement destiné à la version Linux de Doom. Le code DOS n'était pas disponible en raison d'une bibliothèque de sons protégée par le droit d'auteur – « Wow, était-ce une erreur », a écrit Carmack dans sa lettre. «J'écris mon propre code sonore maintenant.»
À partir de là, il existe une généalogie extrêmement dense et complexe de ports sources de Doom qui dure depuis des décennies. L'année dernière, un fork d'un autre port source appelé PrBoomX est apparu. Franchement, cette généalogie sort du cadre de cet article. Le couvrir seul nécessiterait un article d’un ordre de grandeur plus grand que celui-ci ne l’est déjà. Je voulais en savoir plus sur les trucs bizarres.
Heureusement, il n’a pas fallu longtemps pour que les choses deviennent bizarres. La première version bizarre de Doom que j'ai pu trouver était celle de la calculatrice graphique Texas Instruments TI-82, qui a été téléchargée sur ticalc.org le 12 avril 1998 . Il est écrit en Basic, donc c'est moins un portage qu'un clone de mauvaise qualité. Mais il y a déjà 26 ans, on souhaitait que Doom fonctionne sur des plates-formes pour lesquelles il n'était pas destiné.
Au cours de la prochaine décennie, il ne restera plus grand-chose sur Internet montrant Doom fonctionnant sur ces étranges plates-formes – je veux dire, YouTube n'a même pas été mis en ligne avant 2005. Il y a probablement eu beaucoup de « hacks grossiers effectués de manière isolée, » » comme le prédisait cependant Carmack. En 1998, plusieurs caméras équipées du système d'exploitation DigitaOS ont été lancées, et comme la chaîne YouTube LGR l'a montré il y a quelques années, vous pouvez exécuter Doom sur ces caméras. Gardez DigitaOS à l’esprit. Nous y reviendrons dans la section suivante.
Quelqu'un a-t-il réellement fait fonctionner Doom sur l'une de ces caméras en 1998 ? Pas d'après ce que j'ai pu trouver, mais je suppose que c'est une réponse perdue dans le temps – ou du moins, Internet. Mais dès les premiers jours de la publication du code source puis de son portage sur différentes plates-formes, il est clair qu'il y a eu au moins quelques expérimentations. L'une des premières références que j'ai pu trouver à un portage approprié de Doom était un message du forum Doomworld de 2007 , dans lequel l'auteur renvoie à une vidéo (maintenant supprimée) sur YouTube du jeu fonctionnant sur une calculatrice TI-83.
En octobre 2013, It Runs Doom! La page Tumblr a été mise en ligne et après avoir présenté quelques ports de base du jeu, l'auteur a partagé une vidéo de Doom joué sur un piano .
Après avoir parcouru Tumblr, Reddit, YouTube et tout simplement Google, une vidéo n'arrêtait pas d'apparaître. C'est la vidéo LGR de Doom sur la TI-83 . Publiée en 2017, la vidéo a recueilli plus de 7 millions de vues et est de loin la source la plus populaire de Doom fonctionnant sur un appareil non conventionnel que j'ai pu trouver dans mes recherches. L'idée que Doom peut fonctionner sur n'importe quoi remonte à la première sortie du jeu, et c'est une idée avec laquelle les passionnés ont joué pendant des années. L'obsession moderne de fonctionner sur Doom sur une multitude d'appareils étranges semble cependant provenir, au moins en partie, de la vidéo de LGR sur le sujet.
Doom est emblématique, et c’est sans aucun doute une raison derrière l’obsession de le porter. Mais il existe également un mélange de divers facteurs au sein du jeu lui-même qui en fait un candidat idéal pour ce type de projets de piratage passionnés.
Le tueur de démons hautement portable
Avant d'entrer dans les détails les plus techniques de ce qui a rendu Doom si portable, rien de tout cela ne serait arrivé si Doom n'était pas une référence culturelle aussi certifiée. Dire que Doom était incroyablement populaire est un euphémisme. Le fondateur de Valve, Gabe Newell, qui travaillait chez Microsoft au moment de la sortie de Doom , a estimé que Doom était installé sur plus d'ordinateurs que Windows en 1993 . Même si c'est hyperbolique, on ne peut nier que Doom a fait sensation.
Quelques mois seulement après la sortie de Doom , en 1994, Universal Pictures a acheté les droits de réalisation d'un film. Newell a proposé de réaliser gratuitement un portage de Doom vers Windows. Intel a interdit l'installation de Doom sur les ordinateurs de travail. Dans un communiqué de presse annonçant le jeu , id Software a écrit : « nous nous attendons à ce que [ Doom ] soit la première cause de baisse de productivité dans les entreprises du monde entier. »
« Beaucoup ont commencé à s’émerveiller de la façon dont l’identification pouvait rendre des entreprises comme Microsoft ou IBM obsolètes. J'avais pris le phénomène shareware et l'avais transformé en une recette pour la dépendance », lit-on dans Masters of Doom de David Kushner. « Doom était si convaincant que les gens devaient simplement recevoir la dose complète. Certains l'ont surnommé « héroïne ». Le magazine Forbes a publié un article élogieux intitulé Profits from the Underground expliquant comment l’id rendait en fait obsolètes des entreprises comme Microsoft. "La société privée id Software ne publie pas de données financières", peut-on lire, "mais d'après ce que je peux débusquer sur la marge bénéficiaire de l'entreprise, cela fait ressembler Microsoft à une entreprise cimentière de second ordre."
La popularité a peut-être été le match qui a déclenché l'incendie de forêt, mais pour que Doom puisse fonctionner sur autant de plates-formes différentes, il lui fallait trois éléments clés. Premièrement, le code source devait être disponible gratuitement. Vérifier. Carmack a choisi de s’occuper lui-même de cette étape. Après tout, vous pouvez exécuter le Super Mario Bros original sur la plupart des appareils électroniques modernes, mais bonne chance pour trouver le code source.
Mais voici les deux points qui nécessitent un peu plus d’explications. Les ports sources doivent être disponibles pour à peu près toutes les plates-formes souhaitées et, enfin, le jeu doit être écrit pour fonctionner avec des exigences logicielles et matérielles extrêmement faibles, même selon les normes de la fin des années 1990.
Il existe d'autres jeux qui contiennent certains de ces éléments. Mais Doom, combiné à sa popularité bouleversante, frappe les trois. Et comme me l'a expliqué le développeur Sick.Codes , Doom est devenu « l'un des jeux les plus portés sur Terre, où quelqu'un, à un moment donné, l'a compilé même pour les architectures les plus aléatoires ».
Laissez-moi vous démontrer.
Voici un lien vers une version de Doom que vous pouvez jouer dans votre navigateur. Rien de spécial, non ? Il existe des dizaines de façons de jouer à Doom dans votre navigateur, mais si vous regardez la barre d'adresse, vous trouverez quelque chose d'intéressant. La version de Doom à laquelle vous pouvez jouer est un fichier SVG. C'est un fichier vectoriel, quelque chose que vous chargeriez dans Photoshop. Ce sont des images statiques, et certainement des images avec lesquelles vous ne pouvez pas interagir. Mais voici Doom exécuté dans un SVG que vous pouvez lire dans votre navigateur.
Un autre fait important est que les PC n'étaient pas la plate-forme idéale pour jouer à des jeux en 1993, lorsque les accélérateurs graphiques 3D étaient chers et difficiles à trouver, et que la plupart de ces puces étaient plutôt utilisées dans les machines d'arcade et les consoles de salon. Si id Software devait développer un jeu, et surtout si la société devait le distribuer en shareware comme elle l'avait fait auparavant avec Commander Keen et Wolfenstein , il devait fonctionner sur à peu près n'importe quoi.
Gzalo fait partie du groupe de bénévoles argentins Cybercirujas qui reçoit des pièces détachées d'ordinateurs sous forme de dons et les remet à neuf. Le développeur a réussi à faire fonctionner Doom sur un terminal de paiement Verifone VX620 trouvé dans la poubelle.
«[Doom] a juste besoin d'un framebuffer (zone de mémoire mappée à l'écran) pour afficher les images, ainsi que de quelques entrées très basiques. Du point de vue logiciel, il vous suffit d'être capable de compiler du C pour l'architecture cible, ce qui est presque toujours l'une des premières conditions nécessaires pour écrire des programmes pour les processeurs 32 bits », me dit le développeur Gzalo. "Pour porter d'autres jeux plus récents, vous avez souvent besoin d'un système d'exploitation (généralement quelque chose comme Linux/Posix) et d'un moyen de prendre en charge OpenGL, ce qui est faisable, mais nécessite plus de travail."
Gzalo a ensuite expliqué à quel point Doom avait besoin de peu de logiciels pour fonctionner.
« Le logiciel du terminal n'est pas modifié. J'ai trouvé un gars au Brésil qui avait travaillé avec ce terminal il y a dix ans et qui avait toujours le certificat de développement et un moyen de signer une application, donc il exécute un code signé valide », m'a dit le développeur.
Il est important d’avoir une configuration logicielle minimale, mais l’aspect matériel est tout aussi crucial. Sans surprise, Doom n’avait pas besoin de beaucoup de matériel pour fonctionner. La configuration système d'origine pour le jeu exigeait un processeur 386 fonctionnant à au moins 25 MHz et 4 Mo de RAM. Dans un certain contexte, le 80386 était le premier processeur x86 32 bits jamais commercialisé par Intel, et il a commencé à apparaître sur les PC en 1986, sept ans avant la sortie de Doom . Faire fonctionner Doom sur à peu près n'importe quoi était intentionnel.
Carmack lui-même a déclaré qu'à un moment donné, il existait même une version qui pouvait fonctionner sans moniteur et simplement enregistrer des captures d'écran.
Assez proche. Le code était extrêmement portable – j’avais à un moment donné une version qui pouvait même fonctionner sans tête et simplement enregistrer des captures d’écran.
— John Carmack (@ID_AA_Carmack) 3 mars 2022
Les exigences logicielles et matérielles de base pour Doom nous ramènent à DigitaOS. Le système d'exploitation est écrit en C et permet de développer et de publier des applications tierces pour la plate-forme. Les deux premiers appareils photo sortis avec DigitaOS – les Kodak DC220 et DC260 – étaient tous deux équipés de processeurs PowerPC 800 . D'après mon estimation, ils ont utilisé le MPC860, qui peut monter jusqu'à 80 MHz. LGR indique que la puce à l’intérieur du DC260 atteint au moins 66 MHz.
Et juste comme ça, les conditions requises pour exécuter Doom ont été remplies. Nous avons un processeur bien plus performant que le 386 fonctionnant à 25 MHz, une touche de mémoire et une plate-forme capable de compiler du code écrit en C. Juste pour ne pas gâcher la chronologie, cela a été possible en 1998. Il y avait rien de ce qui est arrivé plus tard qui ait soudainement permis à Doom de fonctionner sur un Kodak DC260. Les éléments de base étaient tous là dès le départ.
Cependant, ce n’est pas seulement parce que Doom est un programme parfait. Il est très flexible et hautement portable sur les appareils modernes, mais une partie importante de cette histoire se résume au fait que le code source est libre de modification pour quiconque. Au cours des trois dernières décennies, des ports sources de Doom sont apparus sur presque toutes les plates-formes imaginables. Si vous ne parvenez pas à faire fonctionner Doom sur quelque chose avec le code source d'origine, vous pouvez presque certainement le faire fonctionner avec l'un des nombreux ports sources.
Je sais que vous attendiez – parlons du SVG. Doom peut s'exécuter dans un fichier vectoriel car les SVG prennent en charge JavaScript. Comme le dit le développeur de Doom SVG , le fichier vectoriel exécute simplement js-dos – un émulateur DOS open source basé sur JavaScript – puis utilise l'un des différents ports sources DOS de Doom. Et même si cela peut ressembler à une forme de magie de programmation, le développeur y fait référence comme rien de plus qu'une « utilisation amusante de quelques heures ». Cela veut tout dire.
Comment Doom est devenu un hack minimum viable
En 2022, Sick.Codes a montré Doom fonctionnant sur un écran de tracteur John Deere. Il a été présenté à la Def Con 2022, une conférence annuelle sur la cybersécurité et le piratage informatique qui se tient à Las Vegas depuis 1993 – ironiquement, la même année où Doom est sorti. Au-delà du simple fonctionnement de Doom , le port comportait un tracteur au lieu d'armes à feu, vous permettant de littéralement faucher les démons. C'est un petit portage amusant, mais Sick.Codes dit qu'il a fallu des mois pour qu'il fonctionne. Pourquoi tous ces efforts ?
Si vous connaissez le droit de réparer un mouvement, vous avez probablement déjà fait le lien ici. Les équipements John Deere, créés par Deere & Company, ont été au centre du droit à la réparation des mouvements , et non sous un jour positif. La société mène depuis des années une bataille juridique avec les agriculteurs en raison du verrouillage de son logiciel. L'équipement est presque impossible à réparer sans la participation directe de Deere. Faire fonctionner Doom sur un écran de tracteur John Deere est plus qu'un simple hack amusant. C'est une preuve de concept.
"Exécuter Doom sur l'écran phare des machines agricoles de John Deere, qu'ils ont passé des milliers d'heures à développer sur plusieurs années, montre que j'ai été capable de pirater complètement l'appareil", m'a dit Sick.Codes. «Si je peux exécuter Doom sur leurs appareils phares, je peux apporter toute autre modification non autorisée à l'appareil. Je peux le briquer. Je peux l'améliorer. Je peux installer des logiciels tiers. Je peux supprimer des fonctionnalités ou installer des fonctionnalités censées coûter de l’argent.
Jouer à Doom sur un écran de tracteur John Deere (jailbreaké/rooté) sur @defcon pic.twitter.com/ih0QUTGnuS
— Sick.Codes (@sickcodes) 14 août 2022
Dans ce cas, Doom est la preuve d’un travail plus profond et plus important. Dans un rapport de Wired qui couvrait l'histoire il y a deux ans, le développeur a déclaré qu'il avait pu accéder à 1,5 Go de journaux stockés dans la machine grâce à l'accès root. Ces journaux sont uniquement destinés aux techniciens de réparation certifiés John Deere. Grâce à eux, les agriculteurs ou les experts tiers peuvent diagnostiquer et éventuellement réparer l'équipement John Deere, même sans la participation directe de Deere & Company.
" Doom nécessite un petit nombre de bibliothèques pour fonctionner, à savoir SDL2 pour les graphiques, donc pouvoir exécuter le jeu sur un appareil qui n'est pas censé exécuter Doom , cela prouve que vous pouvez exécuter des logiciels arbitraires sur l'appareil sur lequel vous travaillez, « Malade.Codes me l’a dit.
C'est amusant de voir Doom fonctionner sur un écran de tracteur, et je ne veux certainement pas en aspirer la joie. Mais il est important de souligner ici le contexte plus large. Vous pouvez essayer d'installer d'autres logiciels sur un appareil comme celui-ci, mais Doom est un candidat idéal pour montrer ce type de hack. C'est visuel, c'est interactif et c'est un programme conçu dans un but très spécifique. Cela attire également beaucoup d'attention : pensez-vous que nous verrions des reportages sur une interface de ligne de commande fonctionnant sur l'écran d'un tracteur John Deere ? Probablement pas.
Bien que je ne veuille pas minimiser la quantité de travail nécessaire – rappelez-vous, cet exploit a pris des mois pour être mis au point – Doom est également un programme relativement simple à montrer. Sick.Codes me dit qu'ils ont utilisé Chocolate Doom pour la démonstration, qui est un port source conçu pour fonctionner sur autant de configurations matérielles et logicielles différentes que possible. Je veux dire, il y a même une page du wiki Chocolate Doom spécifiquement consacrée à la portabilité du port source . Si nous n'avions pas le code source original, et si ce code source n'était pas porté autant de fois, nous n'aurions probablement pas cette démonstration. Cela serait encore possible, certes, mais qui peut dire que cela se serait réellement produit ?
Bienvenue en enfer
Doom est l’un des jeux les plus influents jamais créés, et cela tient en grande partie aux circonstances dans lesquelles il a été créé. Le code hautement optimisé pour PC a rencontré le modèle shareware pour rendre le jeu extrêmement populaire, et sa communauté de moddeurs a fait boule de neige lorsque le code source a été publié en 1997. Aujourd'hui, nous disposons non seulement de l'une des plateformes de modding les plus grandes et les plus accessibles via Doom, mais également une application qui a largement dépassé son objectif initial.
J'ai commencé à me sentir nostalgique en écrivant cette histoire, et vous ressentirez peut-être la même chose après l'avoir lue. Si tel est le cas, je vous recommande de télécharger GZDoom et de jouer avec certains des niveaux insensés créés au fil des ans. Vous pouvez également trouver les fichiers WAD originaux des deux premiers jeux archivés en ligne. Si vous souhaitez approfondir, regardez le documentaire sur MyHouse.WAD si ce n'est pas déjà fait (la vidéo compte quelque 13 millions de vues), ou mieux encore, téléchargez le niveau par vous-même .
Et si vous souhaitez rester dans l'esprit de placer Doom dans des endroits où il n'est pas censé être, certains développeurs généreux ont documenté leurs parcours sur différents appareils. Il existe un article pour l'installer sur les écouteurs Ikko Activebuds et un autre pour l'installer sur un téléphone VoIP . Il existe également un article détaillé sur le portage du jeu sur le terminal de paiement VX620 susmentionné.
Quelle que soit la façon dont vous appréciez, développez ou changez complètement Doom, amusez-vous en enfer. Des centaines de milliers de fans et de développeurs vous y attendent.