Doom come galleria d'arte, trasformato in Captcha, vietato dalle corporazioni, funzionante su tosaerba, mattoncini Lego, teletext, persino dentro di sé. Le ragioni tecniche passano in secondo piano e l'unica risposta valida è «perché possiamo». Cosa succederà dopo? Per anni gli utenti hanno iniettato ogni sorta di elementi (alcuni piuttosto maliziosi) nei documenti PDF, ma l'utente GitHub «adding2210» ha creato una port che presenta il Doomguy all'interno del sistema PDF di Google Chrome.

Doom in un PDF? Sì, Doom in un PDF
Doom in un PDF? Sì, Doom in un PDF

Quando pensiamo ai documenti PDF, automaticamente ci viene in mente un formato rigido, con contenuti difficili da modificare senza aiuti esterni. Tuttavia, non tutti sanno che il PDF supporta JavaScript. L'unico programma a implementarlo completamente è stato Adobe Acrobat, con funzioni come rendering 3D e richieste HTTP. Invece, il supporto che troviamo in browser come Chrome e Firefox è molto più limitato (citando questioni di sicurezza)… ma non basta a fermare «adding2210» su GitHub. Cosa ha fatto? Eseguire Doom in un PDF.

DoomPDF: «Rip and tear» in un documento PDF

Doom in un PDF? Sì, Doom in un PDF
C'era un video disponibile, ma non si sta caricando correttamente. Ecco come appare Doom all'interno di un PDF in Chrome/Chromium (non funziona con altri lettori).

Come funziona esattamente? «adding2210» spiega che il codice C può essere compilato per funzionare all'interno di un PDF usando una vecchia versione di Emscripten che punta a asm.js invece di WebAssembly. Il resto è questione di sviluppare una via che registri i comandi di input e un framebuffer per l'output. Gli input sono semplici, poiché il motore PDF di Chromium supporta campi di testo e pulsanti. Il framebuffer è un'altra storia, ma «adding2210» è riuscito a presentare un output di sei toni monocromatici in puro ASCII, e ogni frame ha una latenza media di 80 millisecondi.

In sintesi, si vede male, ma non importa. L'unico modo per eseguire DoomPDF correttamente è usare una variante di Chromium, e per controllare il Doomguy bisogna «scrivere» in una piccola sezione del documento. Ovviamente, i problemi di framerate lo rendono quasi ingiocabile, tuttavia immagino che più di un audace in passato abbia accettato prestazioni simili per «goderselo» su un 386.

Siti ufficiali: Qui e qui