Un progetto in C e assembly Z80 ricostruisce Into the Eagle’s Nest per MSX1, utilizzando Fusion-C, Visual Studio Code e risorse grafiche provenienti dalle versioni Commodore 64 e Amiga. La ROM attuale include quattro piani esplorabili, combattimenti, oggetti, mappe persistenti e musica riprodotta tramite PSG o SCC.

Il lavoro è ancora in sviluppo e deve completare missioni, prigionieri, fuga finale e intelligenza delle guardie, oltre alle verifiche su hardware reale. Il codice, le risorse e le istruzioni sono disponibili su GitHub, mentre una versione del gioco può essere provata tramite WebMSX.

Un classico degli anni Ottanta, quattro piani da esplorare e una sfida: ricostruirlo su MSX1 con una grafica colorata e la sua musica originale. Il progetto prende forma in C e assembly Z80, tra limiti hardware e strumenti di sviluppo moderni.

Questa volta, nel Retrobottega, sul banco di lavoro c’è un videogioco.

Ho deciso di affrontare un progetto che mette insieme retrocomputing, programmazione e recupero di materiali originali: realizzare una versione di Into the Eagle’s Nest per MSX1, utilizzando Fusion-C e Visual Studio Code.

L’obiettivo è preciso: avere stanze riconoscibili, ambienti ricchi di oggetti, personaggi animati e una colonna sonora che conservi l’identità del gioco. Tutto dentro i vincoli della prima generazione MSX.

Il lavoro è ancora in corso, ma esiste già una ROM funzionante, con quattro piani esplorabili, combattimenti, oggetti da raccogliere e musica.

La prima sfida è stata la grafica.

Volevo sfruttare i colori dell’MSX1 e restituire agli ambienti una buona leggibilità. Per questo ho lavorato su materiali provenienti da versioni diverse: i fondali e la disposizione delle mappe sono stati ricostruiti dall’atlante della versione Commodore 64, mentre i fotogrammi dei personaggi derivano dai dati grafici della versione Amiga.

Questi materiali hanno richiesto conversione e adattamento. Le capacità grafiche delle tre macchine sono differenti, e trasferire un’immagine da una piattaforma all’altra significa decidere quali dettagli conservare e come rappresentarli.

Il risultato attuale comprende 152 tile distinti, utilizzati per costruire muri, porte, casse, tavoli, sedie, letti e altri elementi degli ambienti.

Su MSX1 ogni scelta deve fare i conti con il video. Il progetto utilizza la modalità SCREEN 2, a 256 × 192 pixel: per ciascuna riga di otto pixel di un carattere grafico si possono impiegare soltanto due colori.

Questo limite influenza direttamente il disegno degli oggetti. Un dettaglio apparentemente semplice può richiedere una diversa distribuzione dei colori o una semplificazione della forma.

Anche i personaggi pongono un problema interessante. L’hardware può mostrare al massimo quattro sprite sulla stessa linea orizzontale. Per comporre figure con più colori serve quindi gestire le priorità tra sagome, dettagli e proiettili, soprattutto quando più personaggi si trovano affiancati.

Dalle singole stanze a quattro piani esplorabili.

La versione attuale contiene quattro mappe da 64 × 64 tile, equivalenti a 512 × 512 pixel ciascuna: sotterraneo, piano terra, primo e secondo piano.

La visuale segue il protagonista attraverso stanze e corridoi. Una pianta consultabile durante la partita permette di orientarsi, mentre l’ascensore collega i diversi livelli.

Sono già presenti la raccolta della chiave iniziale, l’apertura delle porte, le munizioni, le casse distruttibili e gli scontri con le guardie. Le modifiche agli ambienti vengono conservate durante i cambi di piano: tornando in una zona visitata, una porta aperta resta aperta e un oggetto raccolto non ricompare immediatamente.

Sono questi comportamenti a trasformare una ricostruzione grafica in un primo sistema di gioco.

Per la musica ho scelto il tema originale.

La colonna sonora riprende le note e le durate delle tre parti della versione C64, utilizzando la trascrizione pubblicata da Stephan Pabst, noto come Stephan64. La provenienza delle risorse è documentata nel progetto.

Il tema è stato adattato a due configurazioni sonore.

Su un MSX1 standard viene eseguito attraverso i tre canali del PSG. Quando è disponibile una cartuccia Konami SCC, il programma la riconosce e utilizza i suoi cinque canali wavetable, lasciando il PSG agli effetti sonori.

La SCC è un’espansione compatibile con MSX1: il gioco mantiene quindi anche il funzionamento con il solo audio di serie.

I timbri sono adattati ai chip MSX. La melodia conserva la struttura del tema originale, ma il suono ha caratteristiche proprie. Il player musicale lavora sull’interrupt del BIOS, così l’esecuzione prosegue indipendentemente dal disegno delle stanze e della mappa.

Strumenti moderni, una ROM per una macchina degli anni Ottanta.

L’ambiente di sviluppo usa Visual Studio Code, Fusion-C e il compilatore SDCC, con alcune routine in assembly Z80. La compilazione produce una cartuccia ROM da 32 KB.

Le prove sono state effettuate con openMSX, verificando movimento, collisioni, porte, cambi di piano e audio PSG/SCC. Ho preparato anche una versione eseguibile nel browser attraverso WebMSX, utile per provare il lavoro senza installare un emulatore locale.

Il codice è stato caricato nel mio repository GitHub, attualmente privato, insieme agli script di conversione, alle risorse e alle istruzioni di compilazione.

Il port resta un progetto in sviluppo. Mancano ancora parti fondamentali dell’esperienza originale: prigionieri e scorta, missioni, detonatori, fuga finale e un lavoro più approfondito sull’intelligenza delle guardie e sul bilanciamento. Resta inoltre da verificare il comportamento su hardware reale.

La base, però, adesso c’è: quattro piani da percorrere, ambienti colorati e il tema musicale che accompagna l’esplorazione.

Nel Retrobottega, questa volta, il prossimo intervento si farà tra codice Z80, tile e registri sonori.

Il codice sorgente e la prova online

Il progetto è disponibile pubblicamente su GitHub: Into the Eagle’s Nest per MSX1, con sorgenti C e assembly Z80, risorse grafiche, mappe, musica e istruzioni per compilare la ROM con Fusion-C.

Puoi anche provare il gioco online con WebMSX, direttamente dal browser, premendo Avvia il gioco. Al momento la pagina di prova richiede l’accesso con l’account ChatGPT proprietario.


Andrea Di Dio

Sono un Ingegnere e Project Manager certificato PMP®, lavoro come consulente con oltre 20 anni di esperienza. Sono stato ingaggiato presso Cantieri di grandi opere, industrie del settore Energia, Automotive, Logistica ed Istituzioni Finanziarie, sia pmi che multinazionali come responsabile di Servizi e Progetti (manager) sono esperto nel controllo di gestione di progetti nei settori delle Costruzioni, Telecom, Assicurativo e nel Digital