¿Puede ejecutar Doom? Mi viaje por el infierno para descubrir por qué la respuesta siempre es “sí”
Con su legado de décadas, el meme "¿Puede ejecutar Doom" es uno de los chistes más antiguos y queridos de Internet? Pero se ha convertido en mucho más que eso. Es un rito de iniciación para los aspirantes a desarrolladores.
Dé un paseo por lo que recientemente se ha convertido en mi subreddit favorito, r/itrunsdoom , y verá cómo la antorcha avanza valientemente hasta el día de hoy. Desde It Runs Doom! La página de Tumblr dejó de publicar actualizaciones hace aproximadamente un año, la comunidad de Reddit ha crecido a más de 100.000 miembros que publican y reaccionan ante la migración de Doom a casi cualquier cosa. Calculadoras, terminales de tarjetas de crédito, claro. Pero también el Nintendo Alarmo , un RS Media Robot de 2006 y un multijugador de Pioneer DJ . Y eso es sólo de los últimos meses.
Cuanto más me sumergía en la madriguera del conejo en puertos extraños de Doom , más comenzaba a preguntarme dónde se originó la idea y, lo que es más importante, por qué es posible. ¿De quién fue la idea absurda para empezar? Para descubrir la historia, necesitaría profundizar en los anales infernales de la historia de Internet de la década de 1990 y hablar con algunos de los hackers de ojos desorbitados que mantienen viva la tradición en la actualidad.
¿Por qué fatalidad?
Nuestra historia no comienza en 1993, cuando se lanzó Doom . Comienza cuatro años después, en 1997. El 23 de diciembre de ese año, dos días antes de Navidad, id Software publicó el código fuente de Doom. El cerebro John Carmack, que había escrito él mismo el código original, escribió una carta a la comunidad que aún vive en la página de GitHub de Doom. Sí, incluso hoy, incluso después de que una corporación masiva como Zenimax se haya tragado a id Software (entonces Zenimax fue absorbida por Microsoft), el código fuente de Doom todavía existe.
"No tengo una idea muy clara de cuántas personas van a jugar con esto, pero si se llevan a cabo proyectos importantes, sería genial ver un nivel de cooperación comunitaria", escribió Carmack en la carta. "Sé que la mayoría de los primeros proyectos serán modificaciones preliminares realizadas de forma aislada, pero estaría muy contento de ver un lanzamiento coordinado en red de una versión mejorada y compatible con versiones anteriores de Doom en múltiples plataformas el próximo año". Carmack incluso proporcionó a los lectores algunas ideas de proyectos potenciales.
La comunidad comenzó a portar Doom inmediatamente. Lo digo literalmente. El primer puerto fuente de Doom, DOSDoom, se publicó el mismo día en que se publicó el código fuente. Todavía puedes descargarlo hoy . El código fuente original que publicó id Software era solo para la versión Linux de Doom. El código DOS no estaba disponible debido a una biblioteca de sonidos con derechos de autor. "Vaya, fue un error", escribió Carmack en su carta. "Ahora escribo mi propio código de sonido".
A partir de ahí, existe una genealogía extremadamente densa y complicada de versiones de Doom que se ha mantenido durante décadas. El año pasado, apareció una bifurcación de otro puerto fuente llamado PrBoomX . Francamente, esa genealogía está fuera del alcance de este artículo. Cubrirlo por sí solo requeriría un artículo de un orden de magnitud mayor de lo que ya es este. Quería saber sobre las cosas raras.
Afortunadamente, las cosas no tardaron en ponerse raras. La primera versión extraña de Doom que pude encontrar fue para la calculadora gráfica TI-82 de Texas Instruments, que se subió a ticalc.org el 12 de abril de 1998 . Está escrito en Básico, por lo que es menos un port y más un clon de mala calidad. Pero incluso hace 26 años, había interés en hacer que Doom se ejecutara en plataformas para las que no estaba diseñado.
Durante la próxima década, no quedará mucho en Internet que muestre que Doom se ejecuta en estas extrañas plataformas; quiero decir, YouTube ni siquiera estuvo activo hasta 2005. Probablemente hubo muchos "trucos rudos realizados de forma aislada". ”Sin embargo, como predijo Carmack. En 1998, se lanzaron varias cámaras con el sistema operativo DigitaOS y, como mostró el canal de YouTube LGR hace unos años, puedes ejecutar Doom en esas cámaras. Tenga en cuenta DigitaOS. Volveremos a ello en la siguiente sección.
¿Alguien realmente hizo ejecutar Doom en una de estas cámaras en 1998? No por lo que pude encontrar, pero supongo que es una respuesta perdida en el tiempo, o al menos en Internet. Pero desde los primeros días en que se publicó el código fuente y posteriormente se transfirió a diferentes plataformas, está claro que al menos se estaban realizando algunos experimentos. Una de las primeras referencias que pude encontrar sobre una adaptación adecuada de Doom fue una publicación en el foro de Doomworld de 2007 , donde el autor enlaza a un video (ahora eliminado) en YouTube del juego ejecutándose en una calculadora TI-83.
En octubre de 2013, ¡It Runs Doom! La página de Tumblr se puso en marcha y, después de mostrar algunas versiones básicas del juego, el autor compartió un vídeo de Doom tocando en un piano .
Sin embargo, después de recorrer Tumblr, Reddit, YouTube y simplemente Google, hay un video que siguió apareciendo. Es el vídeo de LGR de Doom en la TI-83 . Publicado en 2017, el vídeo ha acumulado más de 7 millones de visitas y es, con diferencia, la fuente más popular de ejecución de Doom en un dispositivo no convencional que pude encontrar en mi investigación. La idea de que Doom pueda ejecutarse en cualquier cosa se remonta a cuando se lanzó el juego por primera vez, y ha sido una idea con la que los entusiastas jugaron durante años. Sin embargo, la obsesión moderna por ejecutar Doom en una serie de dispositivos extraños parece surgir, al menos en parte, del vídeo de LGR sobre el tema.
Doom es icónico, y esa es sin duda la razón detrás de la obsesión por portarlo. Pero también hay una combinación de varios factores dentro del juego que lo convierte en un candidato ideal para este tipo de proyectos de piratería entusiastas.
El cazador de demonios altamente portátil
Antes de entrar en algunos de los detalles más técnicos de lo que hizo que Doom fuera tan portátil, nada de eso habría sucedido si Doom no fuera una piedra de toque cultural certificada. Decir que Doom fue increíblemente popular es quedarse corto. El fundador de Valve, Gabe Newell, que trabajaba en Microsoft cuando se lanzó Doom , estimó que Doom se instaló en más computadoras que Windows en 1993 . Incluso si eso es hiperbólico, no se puede negar que Doom fue una sensación.
Apenas unos meses después del lanzamiento de Doom , en 1994, Universal Pictures compró los derechos para hacer una película. Newell se ofreció a hacer una adaptación de Doom a Windows de forma gratuita. Intel prohibió la instalación de Doom en las computadoras del trabajo. En un comunicado de prensa anunciando el juego , id Software escribió: "Esperamos plenamente que [ Doom ] sea la causa número uno de la disminución de la productividad en las empresas de todo el mundo".
“Muchos empezaron a maravillarse de cómo la identificación podía hacer que empresas como Microsoft o IBM parecieran obsoletas. Había tomado el fenómeno shareware y lo había transformado en una receta para la adicción”, se lee en Masters of Doom de David Kushner. “ Doom era tan convincente que la gente simplemente tenía que recibir la dosis completa. Algunos lo denominaron "heroinware". La revista Forbes publicó un efusivo artículo titulado Profits from the Underground sobre cómo la identificación, de hecho, estaba volviendo obsoletas a empresas como Microsoft. 'Id Software, de propiedad privada, no publica datos financieros', decía, 'pero por lo que puedo sacar sobre el margen de beneficio de la empresa, hace que Microsoft parezca una empresa cementera de segunda categoría'”.
La popularidad pudo haber sido el partido que inició el incendio forestal, pero para que Doom pudiera ejecutarse en tantas plataformas diferentes, necesitaba tres elementos clave. Primero, el código fuente debía estar disponible gratuitamente. Controlar. Carmack decidió encargarse él mismo de ese paso. Después de todo, puedes ejecutar el Super Mario Bros original en la mayoría de los dispositivos electrónicos modernos, pero buena suerte para encontrar el código fuente.
Pero aquí están los dos puntos que necesitan un poco más de explicación. Los puertos de origen deben estar disponibles para prácticamente cualquier plataforma que desees y, por último, el juego debe estar escrito para ejecutarse con requisitos de software y hardware extremadamente bajos, incluso para los estándares de finales de los 90.
Hay algunos otros juegos que tienen algunos de estos elementos. Pero Doom, combinado con su popularidad trascendental, golpea a los tres. Y como me explicó el desarrollador Sick.Codes , Doom se convirtió en "uno de los juegos más portados en la Tierra, donde alguien, en algún momento, lo compiló incluso para las arquitecturas más aleatorias".
Déjame demostrarlo.
Aquí hay un enlace a una versión de Doom. que puedes jugar en tu navegador. Nada especial, ¿verdad? Hay docenas de formas de jugar Doom en tu navegador, pero si miras la barra de direcciones, encontrarás algo interesante. Esa versión de Doom que puedes reproducir es un archivo SVG. Es un archivo vectorial, algo que cargarías en Photoshop. Se supone que son imágenes estáticas y, ciertamente, imágenes con las que no puedes interactuar. Pero aquí está Doom ejecutándose dentro de un SVG que puedes reproducir en tu navegador.
Otro hecho importante es que las PC no eran la plataforma ideal para jugar en 1993, cuando los aceleradores de gráficos 3D eran caros y difíciles de conseguir, y la mayoría de estos chips se usaban en máquinas recreativas y consolas domésticas. Si id Software iba a desarrollar un juego, y especialmente si la compañía iba a distribuirlo como shareware como lo hizo anteriormente con Commander Keen y Wolfenstein , necesitaba ejecutarse en casi cualquier cosa.
Gzalo forma parte del grupo de voluntarios argentino Cybercirujas que dona repuestos de PC y los renueva. El desarrollador pudo ejecutar Doom en una terminal de pago Verifone VX620 que encontraron en la basura.
“[Doom] solo necesita un framebuffer (área de memoria que se asigna a la pantalla) para generar imágenes y algunas entradas muy básicas. En cuanto al software, sólo necesitas poder compilar C para la arquitectura de destino, que casi siempre es uno de los primeros requisitos necesarios para escribir programas para procesadores de 32 bits”, me dice el desarrollador Gzalo. "Para portar otros juegos más nuevos, a menudo es necesario tener un sistema operativo (normalmente algo como Linux/Posix) y alguna forma de soportar OpenGL, lo cual es factible, pero requiere más trabajo".
Gzalo continuó explicando lo poco que Doom necesitaba en el frente del software para ejecutarse.
“El software del terminal no se modifica. Encontré a un tipo en Brasil que había trabajado con esta terminal hace una década y todavía tenía el certificado de desarrollo y una forma de firmar una aplicación, por lo que ejecuta un código firmado válido”, me dijo el desarrollador.
Tener requisitos mínimos de software es importante, pero el lado del hardware es igualmente crucial. Como era de esperar, Doom no necesitaba mucho hardware para ejecutarse. Los requisitos originales del sistema para el juego requerían una CPU 386 con al menos 25 MHz y 4 MB de RAM. En cierto contexto, el 80386 fue el primer procesador Intel x86 de 32 bits jamás lanzado y comenzó a aparecer en las PC en 1986, siete años antes del lanzamiento de Doom . Hacer que Doom se ejecutara en casi cualquier cosa fue intencional.
El propio Carmack dijo que, en un momento, incluso hubo una versión que podía ejecutarse sin monitor y simplemente guardar capturas de pantalla.
Bastante cerca. El código era extremadamente portátil: en un momento tuve una versión que incluso podía ejecutarse sin cabeza y simplemente guardar capturas de pantalla.
– John Carmack (@ID_AA_Carmack) 3 de marzo de 2022
Los requisitos básicos de software y hardware para Doom nos devuelven a DigitaOS. El sistema operativo está escrito en C y permitió desarrollar y lanzar aplicaciones de terceros para la plataforma. Las dos primeras cámaras lanzadas con DigitaOS (Kodak DC220 y DC260) venían con procesadores PowerPC 800 . Según mi estimación, utilizaron el MPC860, que puede alcanzar hasta 80 MHz. LGR dice que el chip dentro del DC260, al menos, alcanza los 66MHz.
Y así, se cumplen los requisitos para ejecutar Doom . Tenemos una CPU mucho más capaz que la 386 funcionando a 25MHz, un toque de memoria y una plataforma capaz de compilar código escrito en C. Para no arruinar la línea de tiempo, esto fue posible en 1998. Hubo Nada de lo que vino después permitió de repente que Doom se ejecutara en una Kodak DC260. Todos los elementos básicos estuvieron ahí desde el principio.
Sin embargo, esto no se debe solo a que Doom sea un programa perfecto. Es muy flexible y muy portátil para dispositivos modernos, pero una parte importante de esta historia se reduce al hecho de que el código fuente es gratuito para que cualquiera pueda editarlo. En las últimas casi tres décadas, han aparecido versiones de Doom para casi todas las plataformas imaginables. Si no puedes ejecutar Doom en algo con el código fuente original, es casi seguro que podrás ejecutarlo con uno de los muchos puertos fuente.
Sé que has estado esperando: hablemos del SVG. Doom puede ejecutarse dentro de un archivo vectorial porque los SVG admiten JavaScript. Como dice el desarrollador de Doom SVG , el archivo vectorial simplemente ejecuta js-dos, un emulador de DOS de código abierto basado en JavaScript, y luego usa uno de los diversos puertos fuente de DOS de Doom. Y aunque pueda parecer una especie de magia en programación, el desarrollador se refiere a ello como nada más que “un uso divertido de unas pocas horas”. Eso lo dice todo.
Cómo Doom se convirtió en un hack mínimo viable
En 2022, Sick.Codes mostró Doom ejecutándose en la pantalla de un tractor John Deere. Se presentó en Def Con 2022, una conferencia anual sobre ciberseguridad y piratería que se celebra en Las Vegas desde 1993; irónicamente, el mismo año en que se lanzó Doom . Más allá de simplemente hacer funcionar Doom , el puerto presentaba un tractor en lugar de armas, lo que te permitía literalmente derribar demonios. Es un pequeño y divertido port, pero Sick.Codes dice que tardó meses en empezar a funcionar. ¿Por qué todo el esfuerzo?
Si está familiarizado con el derecho a reparar el movimiento, probablemente ya haya conectado los puntos aquí. Los equipos John Deere, creados por Deere & Company, han estado en el centro del movimiento de reparación , y no en una luz positiva. La corporación ha tenido una lucha legal de años con los agricultores debido a su software bloqueado. Es casi imposible reparar el equipo sin la participación directa de Deere. Hacer que Doom se ejecute en la pantalla de un tractor John Deere es más que un simple truco divertido. Es una prueba de concepto.
"Ejecutar Doom en la pantalla de maquinaria agrícola insignia de John Deere, que han dedicado miles de horas a desarrollar durante varios años, demuestra que he podido piratear total y completamente el dispositivo", me dijo Sick.Codes. “Si puedo ejecutar Doom en sus dispositivos insignia, puedo realizar cualquier otra modificación no autorizada en el dispositivo. Puedo bloquearlo. Puedo mejorarlo. Puedo instalar software de terceros. Puedo eliminar funciones o puedo instalar funciones que se supone que cuestan dinero”.
Jugando a Doom en una pantalla de tractor John Deere (con jailbreak/rooteado) en @defcon pic.twitter.com/ih0QUTGNuS
– Códigos enfermos (@sickcodes) 14 de agosto de 2022
En este caso, Doom es prueba de un trabajo más profundo e importante. En un informe de Wired que cubrió la historia hace dos años, el desarrollador compartió que pudieron acceder a 1,5 GB de registros almacenados en la máquina gracias a que lograron acceso de root. Estos registros están destinados únicamente a técnicos de reparación certificados de John Deere. Con ellos, los agricultores o expertos externos pueden diagnosticar y potencialmente reparar equipos John Deere, incluso sin la participación directa de Deere & Company.
“ Doom requiere una pequeña cantidad de bibliotecas para ejecutarse, concretamente SDL2 para gráficos, por lo que poder ejecutar el juego en un dispositivo que no debe ejecutar Doom , demuestra que puedes ejecutar software arbitrario en el dispositivo en el que estás trabajando. ” Me dijo Sick.Codes.
Es divertido ver a Doom corriendo en la pantalla de un tractor, y ciertamente no quiero quitarle la alegría a eso. Pero es importante resaltar aquí el contexto más amplio. Puedes intentar instalar otro software en un dispositivo como este, pero Doom es un candidato ideal para mostrar este tipo de truco. Es visual, interactivo y es un programa creado para un propósito muy específico. También llama mucho la atención: ¿crees que veríamos noticias sobre alguna interfaz de línea de comando ejecutándose en la pantalla de un tractor John Deere? Probablemente no.
Aunque no quiero restar importancia a la cantidad de trabajo que se invirtió en esto (recuerde, este exploit tardó meses en resolverse), Doom también es un programa relativamente sencillo de mostrar. Sick.Codes me dice que usaron Chocolate Doom para la demostración, que es un puerto fuente diseñado para ejecutarse en tantas configuraciones diferentes de hardware y software como sea posible. Quiero decir, incluso hay una página en la wiki de Chocolate Doom dedicada específicamente a cuán portátil es el puerto fuente . Si no tuviéramos el código fuente original, y si ese código fuente no hubiera sido portado tantas veces, probablemente no tendríamos esta demostración. Sin duda, todavía sería posible, pero ¿quién puede decir que realmente hubiera sucedido?
bienvenido al infierno
Doom es uno de los juegos más influyentes jamás creados, y gran parte de ello se debe a las circunstancias en las que se creó. El código altamente optimizado para PC cumplió con el modelo shareware para hacer que el juego fuera tremendamente popular, y su comunidad de modding creció como una bola de nieve cuando se lanzó el código fuente en 1997. Hoy en día, no sólo tenemos una de las plataformas de modding más grandes y accesibles a través de Doom, sino también una aplicación que ha sobrevivido con creces a su propósito original.
Empecé a sentir nostalgia al escribir esta historia y es posible que tú sientas lo mismo después de leerla. Si es así, te recomiendo que descargues GZDoom y juegues con algunos de los locos niveles que se han creado a lo largo de los años; también puedes encontrar los archivos WAD originales de los dos primeros juegos archivados en línea. Si quieres profundizar más, mira el documental en MyHouse.WAD si aún no lo has hecho (el vídeo tiene unos 13 millones de visitas) o, mejor aún, descarga el nivel tú mismo .
Y, si quieres mantener el espíritu de poner Doom en lugares donde no debería estar, algunos desarrolladores generosos han documentado sus viajes a través de diferentes dispositivos. Hay un artículo para instalarlo en los auriculares Ikko Activebuds y otro para instalarlo en un teléfono VoIP . También hay una publicación detallada sobre cómo portar el juego al terminal de pago VX620 antes mencionado.
Independientemente de cómo disfrutes, expandas o cambies por completo Doom, diviértete en el infierno. Cientos de miles de fans y desarrolladores te están esperando allí.