Dopo una lunga attesa, il momento è finalmente arrivato: è stato presentato e viene commercializzato FPGA Arcade, ciò che rappresenta l’evoluzione del progetto Minimig, di cui abbiamo già parlato in passato.
Questa volta, però, l’obiettivo è di più ampio respiro, perché si propone di mettere a disposizione hardware “di base” per poter poi modellare non soltanto l’Amiga, ma anche Atari ST, altri home computer, console, e soprattutto ciò che appare già nel nome: i coin-op (target originale).
Infatti la caratteristica più interessante di questa tipologia di progetti è quella di essere basati su FPGA e di caricare il relativo firmware (il “codice”; permettetemi la semplificazione) da un supporto di massa esterno (memoria SD formattata come FAT32) e, di conseguenza, non soltanto aggiornabile (che rappresenta una gran comodità: bug fix, maggior compatibilità, nuove funzionalità), ma completamente rimpiazzabile (anche con applicazioni o altro), senza correre il rischio di trovarsi con un sistema inutilizzabile in caso di qualche infelice aggiornamento.
Visti gli elevati requisiti, l’asticella è stata necessariamente alzata, andando ad attingere a dispositivi con caratteristiche ben più elevate rispetto al vecchio Minimig o progetti similari. Due sono i cambiamenti più importanti, che hanno toccato il controller e l’FPGA.
Per il primo si è passati da un PIC Microchip 18LF252 a un ARM 7S256, il che ha consentito di poter gestire fino a 4 floppy drive anziché 2, ma anche di emulare fino a due hard disk (anche questi, come i floppy, sono “virtuali”: vengono montate delle immagini su file presenti nella SD, ma a differenza di Minimig vi si può anche scrivere!), oltre ad aggiungere una porta USB per collegare altre periferiche esterne (si parla di sfruttare lo stack USB Poseidon).
Il controller è l’elemento più semplice e meno impegnativo, ma vitale per l’intero sistema. Infatti oltre all’implementazione delle caratteristiche già citate, è il componente che viene attivato all’avvio del sistema, che si occupa anche di leggere il firmware dall’SD, caricarlo nell’FPGA, e infine attivarlo (oltre a controllarlo poi, per l’appunto).
Il cuore di tutto rimane in ogni caso l’FPGA, che consente di riprodurre le caratteristiche del sistema grazie a degli elementi (celle) di logica, disponibili in una certa quantità, che vengono “programmati” appositamente per simulare il funzionamento dei circuiti della piattaforma originale.
Anche qui la differenza rispetto al vecchio Minimig è notevole: siamo passati da un chip con 400 mila porte e circa 8 mila celle logiche, a 1,6 milioni e 33 mila rispettivamente, quadruplicando quindi le risorse a disposizione.
D’altra parte una decisione del genere era indispensabile per poter simulare, oltre ai chip custom, anche il microprocessore. Infatti l’FPGA del Minimig si occupava esclusivamente del chipset, mentre la CPU (di Freescale) era collegata esternamente, e dunque era un componente in più da acquistare e che richiedeva spazio nella scheda madre.
L’utilizzo di un core sintetizzato (come si dice in gergo) consente una flessibilità che in precedenza era impensabile. Infatti l’FPGA Arcade mette a disposizione quattro diversi processori fra i quali scegliere: 68000, 68010, 68EC020 e 68020, il che consente di garantire una compatibilità molto elevata.
Inoltre sembra che il processore si possa spingere fino a 28Mhz (anche se è stato erroneamente riportato 99Mhz, prendendo questo dato dal benchmark sintetico Sysinfo, molto noto ambito Amiga), consentendo, quindi, di raggiungere prestazioni molto elevate rispetto alle vecchie macchine di casa Commodore (fatta eccezione per il 4000, che montava un favoloso 68040 a 25Mhz, ed era dotato di un’ottima FPU).
Ma la novità più succulenta e che si aspettava da parecchio, guadagnandosi giustamente il titolo dell’articolo, è rappresentata dalla possibilità di simulare il chipset AGA presente nelle ultime macchine della casa canadese (Amiga 1200, 4000, e CD32), che poi è pure la causa principale del lungo tempo di sviluppo e del passaggio a un FPGA con più risorse, data la sua complessità.
Con FPGA Arcade, insomma, il cerchio si chiude: adesso è possibile simulare le configurazioni più diffuse, nonché utili, del panorama Amiga, il tutto in un ambiente molto più comodo da utilizzare rispetto alle vecchie macchine, come la possibilità di leggere molto più velocemente i dischi e le migliorie di cui sopra (di cui discusso, in buona parte, anche nel pezzo sul Minimig).
Un’altra differenza di non poco conto rispetto al precedente progetto è rappresentato dalla memoria: anziché un chip con 2 (o massimo 4) MB, adesso ne viene usato uno da ben 64MB. Una quantità esorbitante se confrontata con la piattaforma originale, ma che fa sorridere oggi con la memoria che si misura ormai in termini di GB.
Comunque con la configurazione più diffusa (2MB) del Minimig era possibile mettere a disposizione fino a 1MB di “chip ram” (l’unica memoria accessibile dai chip custom), 512KB erano riservati per la ROM (256 per i Kickstart / s.o. fino alla versione 1.3), e altri 512KB di “slow ram” (memoria accessibile dalla sola CPU, ma lenta). Con quella da 4MB si arrivava a 2MB di chip ram e 1,5MB di slow ram.
Con FPGA Arcade abbiamo fino a 2MB di chip ram, 512KB (ma credo possa supportare tranquillamente ROM da 1MB, come pure quella dell’Action Replay), 1,5MB di slow ram, e ben 8MB di fast ram (memoria accessibile dalla sola CPU, ma molto veloce), per un totale di 11,5MB. All’appello mancano 48MB, sui 64MB che mette a disposizione il chip di memoria, ma arriveranno con un prossimo aggiornamento del firmware dell’FPGA, e saranno utilizzabili come chip (!) o fast ram.
Potrebbe sembrare un atteggiamento poco professionale quello di rilasciare un prodotto non ancora “completo” (per quel che possa significare questa parola quando ci si trova di fronte a un FPGA), ma in realtà rappresenta un vantaggio tangibile: l’oggetto è già a disposizione della schiera di appassionati, che lo attendevano da troppo tempo.
Infatti l’obiettivo più importante è stato raggiunto già in queste condizioni: simulare le vecchie macchine Commodore, anche AGA. Avere quasi 60MB di memoria totale a disposizione è un “di più” (molto di più rispetto al passato remoto), per il quale c’è comunque l’impegno degli autori a rilasciare un prossimo firmware (ma dubito che sarà l’unico aggiornamento) per aggiungere questa funzionalità. Fermo restando che dovrebbero essere rilasciati i sorgenti, per cui chi vorrà smanettarci con modifiche e aggiunte sarà libero di dare sfogo alla propria creatività.
Paragonato al progetto Natami (di cui abbiamo già parlato qui), c’è un distacco nettissimo. Questi, infatti, sarebbe dovuto arrivare già a fine 2010 (da quel che era stato scritto nel forum ufficiale), ma finora non si sa nulla della sua commercializzazione, sebbene lo scorso anno sembrerebbe essere stata finalizzata la scheda madre.
In queste condizioni di indeterminazione, è chiaro che l’utenza preferirà rivolgersi a un prodotto concreto e già acquistabile (peraltro a un prezzo abbastanza abbordabile), perché, sebbene incompleto, comunque… utilizzabile, e con prospettive di crescita per il futuro. Infatti a parte i 48MB di memoria in più e l’USB, si parla di aggiungere anche il supporto RTG / Picasso ’96 per le schede grafiche avanzate.
Inoltre è stato già aggiunto il supporto all’AHI con un driver apposito che fa uso di due canali stereo a 16 bit pilotati anch’essi da un canale DMA (scaricando la CPU da questo compito, come da tradizione Amiga), consentendo, quindi, di riprodurre agevolmente musica con un qualità più elevata (il DAC utilizzato internamente è a 24 bit, e supporta frequenze fino a 192Khz) rispetto ai canonici 4 canali a 8 bit (a cui i nuovi si aggiungono, essendo del tutto indipendenti).
La sovrapposizione di interessi fra i due progetti è evidente, ma con queste prospettive di crescita e miglioramento FPGA Arcade potrebbe diventare il riferimento unico per gli amighisti nostalgici, mancando del tutto un concorrente.
Per comprendere meglio il potenziale di questo progetto, basti pensare che, per emulare il solo chipset OCS/ECS, Minimig impegnava più dell’80% delle risorse dell’FPGA, con una stima pari a circa 6500 celle logiche.
FPGA Arcade occupa circa il 75% del suo FPGA, ma per emulare tutti i chipset, il microprocessore, i nuovi canali audio AHI, un controller migliore per la memoria (DDR2), e infine logica per l’interfacciamento con uno slot per aggiungere una scheda con una CPU 68060 (fino a 100Mhz), l’ethernet, e un altro paio di USB.
A conti fatti rimangono circa 8 mila celle logiche (quanto il vecchio FPGA!), che dovrebbero venire impiegate per aggiungere le agognate modalità chunky pixel a 8, 16, 24 e/o 32 bit, e… altro ancora (l’autore sta anche lavorando a un soft core 68000 estremamente fedele / cycle exact, per ottenere una compatibilità ancora più elevata per i giochi più vecchi).
Sarebbe anche interessante mettere a disposizione qualche opzione per accelerare l’esecuzione delle operazioni del Blitter, in modo da velocizzare alcuni giochi (e solo alcuni; ad esempio quelli 3D, o quelli come Street Fighter II o Mortal Kombat che non mantengono un frame rate costante), migliorando l’esperienza utente.
Ovviamente anche il sistema operativo e le applicazioni beneficerebbero moltissimo di una simile funzionalità (che sarebbe trasparente, similmente a quella che velocizza le operazioni coi dischi). Immaginate Deluxe Paint in alta risoluzione e a 256 colori con brush enormi svolazzanti a velocità smodata inseguendo la freccia del mouse…
D’altra parte impostare una particolare configurazione risulta già molto semplice: è sufficiente creare delle cartelle, e all’interno memorizzare un file .ini che contiene tutti i parametri per definire in maniera precisa l’identità del sistema che s’intende simulare. In questo modo diventa banale catalogare tutto il software per un’esecuzione ottimale, essendo sufficiente selezionare l’apposita cartella all’avvio per essere catapultati subito nei bei tempi andati, col boot eseguito in 1-2 secondi.
Infine, se consideriamo che gli FPGA diventano sempre più economici e/o con maggiori risorse integrate, è facile immaginare che la direzione intrapresa possa portare a frutti ancora migliori in futuro…