Menu
in

¿Doom en un PDF? Sí, Doom en un PDF

Que esta locura no se termine nunca…

¿Doom en un PDF? Sí, Doom en un PDF

Doom como galería de arte, convertido en Captcha, prohibido por corporaciones, funcionando en cortadoras de césped, ladrillos Lego, teletexto, incluso dentro de sí mismo. Las razones técnicas quedan a un lado, y la única respuesta válida es «porque podemos». ¿Qué es lo que sigue? Durante años, los usuarios han inyectado toda clase de elementos (algunos de ellos bastante maliciosos) en documentos PDF, pero el usuario de GitHub «adding2210» creó un port que presenta al Doomguy dentro del sistema PDF de Google Chrome.


Cuando pensamos en documentos PDF, automáticamente viene a nuestras cabezas un formato rígido, con un contenido difícil de alterar sin ayuda externa. Sin embargo, no todo el mundo sabe que el PDF soporta JavaScript. El único programa en implementarlo por completo fue Adobe Acrobat, con funciones como renderizado 3D y solicitudes HTTP. En cambio, el soporte que encontramos en navegadores como Chrome y Firefox es mucho más limitado (citando cuestiones de seguridad)… pero eso no es suficiente para detener a «adding2210» en GitHub. ¿Qué fue lo que hizo? Ejecutar Doom en un PDF.


DoomPDF: «Rip and tear» en un documento PDF

Había un vídeo disponible, pero no se está cargando correctamente. Así se ve Doom dentro de un PDF en Chrome/Chromium (no funciona con otros lectores).

¿Cómo funciona esto exactamente? «adding2210» explica que el código C puede ser compilado para funcionar dentro de un PDF usando una vieja versión de Emscripten que apunta a asm.js en vez de WebAssembly. El resto es cuestión de desarrollar una vía que registre comandos de entrada, y un framebuffer para la salida. Las entradas son simples, ya que el motor PDF de Chromium soporta campos de texto y botones. El framebuffer es una historia muy diferente, pero «adding2210» se las arregló para presentar una salida de seis tonos monocromáticos a puro ASCII, y cada frame tiene una latencia promedio de 80 milisegundos.

En resumen, se ve mal, pero no importa. La única forma de ejecutar DoomPDF correctamente es usando algún sabor de Chromium, y para controlar al Doomguy hay que «escribir» en una pequeña sección del documento. Obviamente, los problemas de framerate lo hacen casi imposible de jugar, sin embargo, imagino que más de un audaz en el pasado aceptó un rendimiento similar para «disfrutarlo» en un 386.


Sitios oficiales: Aquí y aquí


Escrito por Lisandro Pardo

Leave a Reply