DOOM gira dentro un file CSS, ma per caricare un livello servono tre mesi

DOOM gira dentro un file CSS, ma per caricare un livello servono tre mesi

Ahmed Amer ha compresso in un unico foglio di stile da 300 MB un 8086 simulato con 640 kB di RAM e controller VGA e floppy. Ne esce un PC che avvia MS-DOS e Windows 1.0, ma così lento che caricare un livello di DOOM richiederebbe mesi

di pubblicata il , alle 16:01 nel canale Web
DooM
 

CSS non è un linguaggio di programmazione, e non c'è ragione di aspettarsi che lo diventi. Eppure Ahmed Amer ha usato un unico foglio di stile per costruire un intero PC IBM compatibile, capace di avviare MS-DOS, Windows 1.0 e perfino DOOM. Il file, battezzato CSS-DOS, pesa 300 MB.

Dentro quel foglio non è stato infilato un port del gioco: c'è una macchina completa, simulata da zero. Un processore 8086, 640 kB di RAM, un controller VGA e uno per il floppy, tutto descritto in regole di stile.

Il CSS dispone ormai di funzioni e istruzioni condizionali, ma non esegue programmi nel senso corrente del termine, cioè sequenze di istruzioni che si alimentano una con l'altra. Modificare il valore di una variabile richiede acrobazie. Ed è proprio questo comportamento statico, osserva Amer, ad adattarsi all'architettura di un componente hardware meglio di quanto faccia a quella di un software: è l'intuizione su cui poggia l'intero lavoro.

Due istruzioni al secondo

La lentezza fa parte di un esercizio di stile che da un certo punto di vista è anche un'ironia: l'emulatore non si avvicina nemmeno lontanamente al tempo reale: avanza a due istruzioni al secondo, misurate a livello di CPU e non di fotogrammi. Con questo ritmo, portare a termine l'avvio di MS-DOS richiede circa tre settimane, e caricare un livello di DOOM porta via tre mesi. Il gioco, sulla carta, procederebbe a 0,0001 fotogrammi al secondo.

Del resto, parlare di un DOOM "giocabile" è già un'esagerazione: anche se il foglio di stile emulasse un IBM AT a piena velocità, quell'hardware non reggerebbe comunque il gioco a un ritmo praticabile. La giocabilità, in questo progetto, non è mai stata il punto.

Amer accompagna il tutto con un resoconto dettagliato di come ha realizzato l'emulatore e con una guida interattiva che permette di esplorare il file CSS in tutta la sua stratificazione. È il genere di esercizio che nasce da un vincolo autoimposto più che da una necessità: per convenzione non scritta, ogni cosa deve prima o poi far girare DOOM. Nessuno, però, ha mai preteso che lo facesse bene.

4 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Ziggy Stardust17 Luglio 2026, 19:00 #1
La grande arte del saper perdere tempo.
sminatore18 Luglio 2026, 01:37 #2
Originariamente inviato da: Ziggy Stardust
La grande arte del saper perdere tempo.


E già....Molto più onorevole consultare un sito internet e notizie che non ti interessano ogni giorno per poterle commentare
io78bis18 Luglio 2026, 09:11 #3
Originariamente inviato da: Ziggy Stardust
La grande arte del saper perdere tempo.


È un progetto inutile ma ognuno decide le sfide che vuole affrontare. Personalmente lo trovo interessante come progetto, anche se ci impiegherò almeno 1 mese a capire tutto il giro del fumo.
virtualdj18 Luglio 2026, 09:26 #4
Mi chiedo come abbia fatto a svilupparlo se per testarlo ogni volta richiedeva settimane per finire di caricare...

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^