Amiga Minimig - parte 1
Il lato romantico del retrogaming Amiga

Per poter collocare Minimig sul lungo orizzonte che va dall'emulazione software al retrogaming più "fisico", è necessario fare una breve premessa sulla tecnologia FPGA.

Un Field Programmable Gate Array (FPGA) è un circuito integrato formato da una serie di porte logiche. A differenza di altri dispositivi, le connessioni tra queste porte non sono definite dal produttore ma sono programmabili dagli utenti, rendendo possibile in tal modo la riproduzione dell'architettura di altri sistemi hardware. VeriLog è uno dei linguaggi che consentono di programmare FPGA, salvando le informazioni sulla gestione delle connessioni tra porte logiche all'interno di un file core, caricato all'avvio del sistema.

Nel Gennaio del 2005 Dennis Van Weeren, un giovane ingegnere olandese con una forte passione per Amiga, venne a conoscenza del progetto C64DTV (miniaturizzazione del C64 all'interno di un joystick) e decise di voler andare oltre con l'hardware Amiga, sfruttando la tecnologia FPGA. Dopo circa un anno (ed innumerevoli sforzi) vide la luce la prima versione di "Mini-Amiga", ovvero Minimig!

Minimig è dunque una re-implementazione in chiave moderna ed open source dell'hardware Amiga con chipset OCS ed ECS. In altre parole, lo si potrebbe definire un "emulatore hardware" di Amiga 500, 500+ o 600, anche se tale dichiarazione, come vedremo, è riduttiva.

In origine il progetto fu avviato in gran segreto, ma il codice sorgente e lo schema elettrico del Minimig (oggi alla revisione 1.1) sono stati rilasciati con licenza GPL3 (per così dire open source) il 25 luglio 2007. Non sono mancate "variazioni sul tema" (come la versione ITX di Illuvatar) ed alcune compagnie (come l'italiana ACube Systems) hanno avviato la produzione di schede ed accessori direttamente destinati alla vendita, rendendo di fatto appetibile questo gioiellino anche ai comuni mortali.

Venuto a conoscenza del progetto Minimig, non nego che le domande che mi sono immediatamente posto sono state: "per quale motivo dovrei preferire Minimig al mio Amiga 500?" e poi "per quale motivo dovrei preferire Minimig, con un prezzo non proprio irrisorio, a FS-UAE?".

Alla prima domanda, in realtà, avevo già trovato risposta qualche tempo prima: la mia filosofia personale in fatto di retrogaming "attivo" (secondo la quale non acquisto o colleziono per imbustare e far prendere polvere sugli scaffali ma per rivivere le emozioni di un tempo nel modo più genuino possibile) aveva già subìto un duro colpo a causa di un errore di lettura nel bel mezzo del disco 2 di Darkmere, probabilmente dovuto all'usura del drive o del supporto.

Sono giunto alla conclusione che il retrogaming più fisico e fedele, ahimé, è anche quello meno spensierato... ma questo Minimig si colloca in un goloso "limbo" tra "the real stuff" e l'emulazione software.

Per quanto riguarda il secondo interrogativo, devo ammettere che il fatto di avere una macchina dedicata piuttosto che dover attendere il caricamento del sistema operativo di turno (Win, OSX, Linux) mi ha subito convertito all'acquisto. Ai più tecnici interesserà sapere comunque che l'architettura di Minimig si compone, oltre che del circuito integrato FPGA in cui è ricreato il chipset OCS/ECS (ed in maniera più fedele rispetto a UAE) anche di un processore 68000 identico a quello di Amiga 500/600, e dunque ne eredita tutte quelle caratteristiche architetturali che al contrario su UAE devono essere programmate appositamente. Per essere chiari: nel concreto dubito che noterete differenze (forse solo per qualche demo che fa un uso più spinto e creativo delle caratteristiche dell'hardware di Amiga) ma in ogni caso Minimig è decisamente più vicino all'hardware Amiga di una qualsiasi versione di UAE.

Le due opzioni che si pongono davanti a chi desideri acquistare un Minimig sono quelle inerenti la scelta del controller (inteso come MCU) PIC o ARM, e della dotazione totale di RAM (2Mb o 4Mb). Anche se la versione con controller ARM è preferibile per una maggiore snellezza nella gestione degli ADF, personalmente ho optato per un modello con 4Mb di RAM e controller PIC, spendendo circa 140€ (inclusi alimentatore e spedizione) e subito dopo ho acquistato il case di ACube Systems per utilizzare la scheda più confortevolmente (a dire il vero non ho resistito al fascino del suo design).

Per quanto concerne il comparto video, nativamente l'output del Minimig è ottimizzato per i monitor moderni, con un risultato impeccabile in termini di definizione, brillantezza dei colori e pulizia dell'immagine. Alcuni filtri presenti nelle ultime versioni del software consentono di impostare due livelli di scanline ed un effetto di ammorbidimento per simulare la resa CRT su un moderno pannello LCD, ma probabilmente i seguaci della chiesa catodica troveranno più interessante la possibilità di disattivare tali eresie e di impostare, tramite jumper sulla scheda, l'output di Minimig a 15KHz per il collegamento ad un vecchio monitor o televisore a tubo catodico (un po' come avviene su SEGA Naomi, per i puristi arcade) a patto di avere il cavo VGA - SCART adatto.

Resa su monitor LCD con scanline software attivate al 50%, per il vecchio monitor CRT mi sto attrezzando...

Un consiglio per quanto riguarda il monitor: assicuratevi di trovarne uno che supporti i 50Hz, perché è preferibile utilizzare Minimig in modalità PAL. E' vero che è possibile impostare l'output anche in NTSC (decisamente meno problematico per i monitor moderni) ma molti titoli gireranno in modo anomalo o si bloccheranno a causa dell'incompatibilità con NTSC (come su Amiga, d'altronde).

Per avviare Minimig avrete dunque bisogno di una scheda SD da formattare in FAT16 (o, con le versioni più recenti del firmware, anche in FAT32). Avendo un Mac ho dovuto fare una ricerca per capire come formattare in FAT16 una scheda SD via terminale, e nonostante il giusto filesystem solo una terza SD si è rivelata, alla fine, compatibile con il sistema. In ogni caso assicuratevi di disporre di più schede SD da testare perché, nonostante la formattazione in FAT16 o FAT32, qualche modello potrebbe semplicemente non essere compatibile. Se può esservi utile, attualmente uso una DANE-ELEC 2GB in FAT32 ed in ogni caso trovate una lista dei modelli di schede SD compatibili qui.

Nella foto il jumper per i 31/15KHz è un po' più in basso rispetto al connettore VGA
(clicca per ingrandire)

Nella root della scheda SD andranno collocati il file kickstart (esattamente come per UAE) ed il core "Minimig1.bin" che dirà a FPGA come ricreare il chipset Amiga OCS/ECS all'accensione del sistema. Potete scaricare liberamente varie versioni del core FPGA da qui o, ancora meglio, dal forum

Il core continua ad essere aggiornato con una certa frequenza, secondo la notazione seguente:

F=FPGA, A=ARM, P=PIC 
XX= iniziali del coder (YQ=Jakub, SB=Sascha...) 
YYMMDD= anno(Year), mese (Month), giorno (Day) del rilascio (130321=2013, Mar, 21) 

La versione più recente ad oggi è la FSB130321 ovvero è per FPGA (ovviamente) compilata dal coder "Sasha" ed aggiornata al 21 Marzo 2013. Aggiornare il core è semplicissimo: sarà sufficiente sostituire il file "Minimig1.bin" sulla SD card, sempre nella root. 

Potrebbe essere un po' più macchinoso aggiornare il firmware del controller PIC o ARM, ma non sarà un'operazione che farete tanto spesso (io l'ho fatto solo una volta dopo l'acquisto, utilizzando un cavo seriale, un convertitore seriale-USB, ed un software per Windows per di più sotto macchina virtuale su Mac!).

Una schermata all'accensione vi informerà della versione del firmware e del core correntemente installati. Allora dopo aver posizionato nella root della SD card il file "Minimig1.bin" ed il file di kickstart, aggiungeteci i vostri file ADF (che consiglio di organizzare in sottocartelle se numerosi) collegate il Minimig alla presa di corrente e…cliccate qui a destra.

Arrivederci alla prossima puntata!

Il mondo del Minimig vi aspetta anche sull'Ogi Forum

Invia nuovo commento
Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
CAPTCHA
Questa domanda serve a verificare che il form non venga inviato da procedure automatizzate
           ___                  
__ _ / _ \ __ _ __ _
/ _` | | (_) | / _` | / _` |
| (_| | \__, | | (_| | | (_| |
\__, | /_/ \__, | \__,_|
|_| |___/
Enter the code depicted in ASCII art style.