Il fallimento della Commodore nel 1994 penso sia stato uno dei più brutti colpi che un fanatico pseudoreligioso potesse subire. E’ un po’ come se il totem di fronte al quale abitualmente ci si reca a pregare per trarre forza venisse improvvisamente colpito da un fulmine e incenerito, rimanendo inebetiti ripetendo il mantra “non può essere! Non può essere successo proprio a lui!”
Certo, ci sono poi state delle successive acquisizioni della casa, Escom in primis, con grandiosi progetti sventolati ai quattro venti (ricordo ancora quell’IPISA ’94 a tal proposito), ma nei fatti il tempo passava e nulla si realizzava, mentre l’unica cosa concreta era il passaggio di mano delle etichette Commodore e Amiga, smembrate e passate a non so quante società.
Alla fine, insomma, una persona matura si rassegna, ne prende atto, e la rassegnazione fa, quindi, posto ai cari ricordi, che ogni tanto vengono rispolverati grazie all’uso di emulatori quali WinUAE, unica via per rituffarsi in un passato fatto di gioia e spensieratezza, attaccati all’immancabile joystick (o al mouse per capolavori quali Cannon Fodder, ad esempio, di cui aspetto un bell’articolo, magari al grido di “War has never been so much fun“).
Da qualche anno s’è, però, affacciata un’altra soluzione non più software, ma hardware, per poter rivivere i vecchi tempi. Si tratta di Minimig, progetto nato per riprodurre in hardware l’architettura degli Amiga; anzi, per essere più precisi, potremmo parlare di un vero e proprio nuovo “modello” di queste meravigliose macchine.
Un modello slim o lite, se consideriamo le ridotte dimensioni dell’apparecchio, persino più piccolo del già microscopico Amiga 600. Ovviamente la dotazione hardware non è la stessa e fare dei confronti diretti non è possibile, in quanto, ad esempio, non è dotato di floppy o hard disk, ma fa uso di memorie esterne MMC o SD (da qui in poi parlerò sempre di SD) per memorizzare le immagini di essi.
La comodità, da questo punto di vista, è eccezionale: dischi (anche se il fascino del floppy da inserire, con l’immancabile ronzio della testina che si muove, è tutt’altra cosa) da cambiare, perché è possibile selezionare in maniera semplice e veloce quale file immagine caricare e utilizzare allo scopo.
In più la capienza è molto elevata, perché in una scheda è possibile inserire centinaia di immagini virtuali di floppy (come pure di hard disk, supportati con le versioni più avanzate di questo progetto), e inoltre il consumo risulta pure estremamente ridotto (non c’è nessuna meccanica in movimento).
La connettività è garantita dalle mitiche porte Atari, alle quali è possibile collegare i tradizionali joystick, mouse, trackball, paddle, ecc.. Sono presenti anche due porte PS/2 da utilizzare per la tastiera, e per mouse più a buon mercato, una porta seriale RS-232, e il classico jack per l’audio.
Un’uscita VGA garantisce il collegamento a un monitor anche LCD, e c’è da segnalare a tal proposito che il segnale generato viene automaticamente convertito dall’originale 15Khz dei vecchi televisori (supportato da ben pochi monitor ormai), a quello a 31Khz dei monitor più moderni. Tale utilissimo lavoro risolve un problema non di poco conto, e ricalca quello dello “scan doubler” in dotazione all’Amiga 3000, ma il monitor deve essere in grado di accettare un segnale video a 50Hz.
Dal punto di vista funzionale ci siamo: è una macchinetta che ha tutte le carte in regola per permetterci di rivivere abbastanza fedelmente quei momenti, ma rimane il dubbio di come sia stato possibile tutto ciò, visto che la Commodore è fallita, appunto, e nessuno produce più i chip custom che servirebbero.
Questi ultimi hanno fatto posto a un unico dispositivo, un FPGA Spartan-3 di Xilinx, che consente di simularne il funzionamento tramite un “programma” che descrive il comportamento delle loro funzionalità facendo uso di un apposito linguaggio (mi scuseranno gli esperti per questa spiegazione estremamente semplificata), che in questo caso è il Verilog.
Il vantaggio indiscusso di questa soluzione è rappresentato dal fatto che tale codice si può aggiornare facilmente. Quindi in caso di modifiche non c’è da buttare via i chip già rilasciati, come succede con le soluzioni tradizionali, ma è sufficiente caricare il nuovo programma.
Il codice di Minimig ha, infatti, subito numerosi cambiamenti dal progetto originale elaborato da Dennis van Weeren (che lo ha messo a disposizione, assieme agli schemi, sotto licenza GPLv3), a causa della progressiva conoscenza del funzionamento degli originali chip custom (a cui si sono aggiunte col tempo anche altre comode funzionalità), permettendo di ottenere un’elevata compatibilità.
Al suo caricamento nell’FPGA provvede un altro piccolo chip, un PIC 18LF252/SP marcato Microchip (ma è possibile montare anche un ARM, che consente di emulare fino a 4 floppy e l’hard disk, contro i due soli floppy del PIC), che si attiva all’avvio del sistema e che provvede a interfacciarsi con la memoria SD, leggendo il file in cui esso è contenuto, facendo poi partire il sistema, e rimanendo in funzione in qualità di emulatore del floppy (leggendo le relative immagini sempre dall’SD).
Allo scopo anche il PIC viene programmato con un codice minimale allo scopo, e che ovviamente subisce molte meno modifiche (anzi, generalmente si programma una sola volta e poi ci si dimentica della sua esistenza).
Ma il concetto importante da sottolineare è che Minimig rimane una piattaforma estremamente flessibile grazie alla programmabilità, cosa che ha dato la possibilità di farla evolvere molto velocemente, con contributi forniti anche da terze persone, fra le quale alcune hanno poi realizzato le versioni più moderne e le mantengono tuttora.
La CPU utilizzata è un 68000 fornito da FreeScale, spin-off della casa madre Motorola dedicata esclusivamente alla realizzazione di microprocessori e affini, il che garantisce timing delle istruzioni estremamente accurati e, quindi, un’elevatissima compatibilità con applicazioni e giochi da questo punto di vista.
Utilissima è l’opportunità di impostare il clock del microprocessore dai 7Mhz “canonici”, a 14 o 28Mhz, ma gli ultimi esperimenti hanno permesso di superare anche i 50Mhz, offrendo pertanto prestazioni anche più elevate degli Amiga reali.
Ovviamente l’overclock più spinto riguarda le CPU che riescono a reggerlo, ma è una condizione che si verifica spesso (per lo meno con le versioni a 20Mhz), in quanto si tratta di un vecchio processore di pochi transistor, ma processo produttivo abbastanza moderno.
A ciò si aggiunge il notevole contributo dato dalla memoria installata, che non è un “monolite grezzo”, ma risulta configurabile in diversi “tagli”. Togliendo i 512KB riservati al Kickstart, quella da 2MB permette di scegliere se far vedere al sistema i classici 512KB di chip ram (l’unica memoria accessibile dai chip custom), oppure 1MB di chip ram, o ancora 512KB di chip ram e 512KB di slowram.
Con 4MB si arriva alle migliori configurazioni, rappresentate da 2MB di chipram e 1,5 di slow ram, che garantiscono un’esperienza più appagante, specialmente utilizzando un hard disk virtuale e le versioni dei giochi lanciabili da quest’ultimo.
Il chipset emulato da Minimig è l’OCS e, in parte, l’ECS, mentre è selezionabile il tipo segnale televisivo, PAL o NTSC.
La possibilità di poter variare la configurazione al volo è indiscutibilmente il punto di forza di questa soluzione rispetto a un tradizionale Amiga, le cui caratteristiche erano predefinite o, comunque, rimanevano tali dopo un eventuale aggiornamento. Questo permette di risolvere i problemi di compatibilità in particolare coi giochi, che tante volte erano realizzati male e non funzionavano se non su precise piattaforme.
Allo scopo sarebbe opportuno che la comunità che vi gravita attorno realizzasse un database dei videogiochi Amiga, che ne riportasse le precise caratteristiche e limiti di compatibilità, in modo tale che Minimig possa cambiare automaticamente la configurazione del sistema utilizzando quella migliore sulla base della lettura di tali informazioni dal file caricato nella SD.
Per caratteristiche intendo, ad esempio, anche la possibilità di leggere il disco a velocità doppia rispetto all’originale, riducendo i tempi caricamento dei giochi, che possono essere elevati (d’altra parte è come se stessimo usando un Amiga vero e proprio).
Si tratta di una serie di informazioni estremamente utili che consentirebbero di fruire dei vecchi giochi nella maniera più godibile possibile, senza troppi sbattimenti nella ricerca della configurazione migliore, e soprattutto evitando a ogni utente di ripetere le stesse, seccanti, operazioni.
Al momento manca il supporto AGA, che arriverà con un modello più avanzato basato su un altro progetto, di cui parlerò quando sarà finalmente disponibile (attualmente si trova ancora in fase di sviluppo) e che promette faville, ma la carne al fuoco è già tanta col solo Minimig, che non mancherà di riscuotere i favori dei numerosi amighisti che ancora oggi si contano.