Correr DOOM en hardware raro y obscuro es un pasatiempo hacker con años de historia. Siempre resulta entretenido verlo portado a un temporizador de cocina, a un sombrero o a cualquier otro objeto insospechado. Pero, ¿qué tal ejecutar el icónico shooter sobre una CPU diseñada por uno mismo? Armaan y Liam lo lograron.

La CPU en cuestión fue diseñada a nivel de compuertas lógicas, desplegada sobre una FPGA y conectada a los periféricos necesarios para funcionar como un sistema completo. Las primeras pruebas del procesador consistieron en ejecutar código sencillo para generar conjuntos de Mandelbrot y una partida simple de Pong. Pero el dúo tenía metas más ambiciosas: portar el juego que todo el mundo porta a todo. Y eso costó trabajo.

¿Qué hizo falta para correr DOOM?

Para poner DOOM en marcha, la CPU tuvo que volverse más rápida y necesitó numerosos ajustes en la forma de gestionar la memoria. También hubo que desarrollar una interfaz de teclado, una salida de video HDMI y un temporizador por hardware. Recién entonces el juego pudo portarse a la arquitectura de la CPU personalizada.

Las cifras cuentan bien la historia del esfuerzo:

  • Primer arranque jugable: 0,7 cuadros por segundo, un ritmo glacial
  • Tras subir la frecuencia de reloj y afinar el compilador: entre 15 y 20 FPS
  • Meta declarada a futuro: 30 FPS o más, el umbral de una experiencia plenamente jugable

Para dimensionar el logro conviene recordar el contexto: DOOM se lanzó en 1993 y desde entonces se ha convertido en la vara con la que se mide cualquier hardware improvisado. El motor original no depende de una GPU, pero sí exige un manejo eficiente de memoria y un procesador con la potencia suficiente para renderizar por software cada cuadro. Que un procesador diseñado a mano, sintetizado en una FPGA, pase de menos de un cuadro por segundo a casi 20 habla del salto que permiten las optimizaciones de bajo nivel.

De Mandelbrot a un shooter completo

El recorrido del proyecto ilustra una progresión clásica en el diseño de procesadores: primero validar la lógica con cargas predecibles (los conjuntos de Mandelbrot son un test de cómputo aritmético intensivo), luego un juego elemental como Pong para ejercitar entrada y video, y finalmente un objetivo que estresa todo el sistema a la vez, memoria, temporización y periféricos incluidos.

Vale la pena revisar los videos que muestran la CPU en acción, donde se aprecia el resultado del trabajo de arquitectura a nivel de compuertas. El proyecto se suma a una larga tradición de ports de DOOM que ponen a prueba los límites de lo que un hacker puede construir con paciencia y una FPGA.