Extrait de l'émission CPU release Ex0234 : FPGA, troisième partie.
Savez-vous quel est le plus merveilleux, le plus avant-gardiste de tous les micro-ordinateurs ? Le Commodore Amiga bien sûr ! Et savez-vous quel est, à ma connaissance, le plus ancien usage de FPGA en retrocomputing ? Le Minimig, un émulateur d’Amiga 500 ! Décidément les grands esprits se rencontrent. Je ne parle pas de l’équipe de CPU mais bien de l’ingénieur hollandais Dennis van Weeren, qui a créé le Minimig pour clore un débat sur des forums d’amigaïstes, qui se demandaient s’il était possible de recréer sur FPGA les custom chips de l’Amiga. Pourquoi custom
? Parce que la magie de l’Amiga réside dans trois ASIC développés par les électroniciens de Commodore. Enfin, de la start-up Hi-Toro où la console de jeu qui deviendra le micro-ordinateur Amiga 1000 a été conçue par une bande de transfuges d’Atari comme Jay Miner, génial développeur du circuit vidéo de l’Atari 800. Ces 3 puces, Paula, Denise et Agnus, s’occupent du son, de la vidéo, de la Chip-RAM, de l’accélération graphique, du contrôleur de disquettes, et j’en passe.
Manifestement, la question est réglée depuis 20 ans puisque c’est entre 2005 et 2008 que Dennis a implémenté le Minimig autour d’un Xilinx Spartan-3 de 8 000 LUT , ce qui n’est pas particulièrement spacieux. Ainsi, Dennis a gardé un vrai Motorola M68SEC000 fabriqué jusqu’en 2021, ce qui est remarquable pour un processeur commercialisé en 1979. Et comme ça ne suffisait pas, Paula, Denise et Agnus rentrant au chausse-pied dans le Spartan-3, Dennis a déporté dans un microcontrôleur PIC18F l’émulation du lecteur de disquettes et des ports clavier, souris et joystick. Une architecture hybride matérielle plus logicielle, donc. Est-ce que c’est parfait ? Non : votre clavier USB a sûrement une meilleure qualité de frappe, mais l’agencement des touches n’est jamais le bon. Et vous ne pourrez pas brancher la plupart de vos vieux périphériques.
Mais le projet ne s’est pas arrêté en 2008. Rappelez-vous, c’est libre et Open Source, d’autres développeurs ont repris le flambeau. Une première évolution a été le remplacement du PIC par un ARM disposant de l’USB en remplacement du port PS/2 pour lequel les claviers deviennent difficiles à trouver. La vitesse et la taille mémoire du microcontrôleur ARM ont permis d’ajouter le MIDI et l’émulation d’un disque dur IDE tel que présent dans le custom chip Gayle des Amiga 600 et 1200, et des améliorations du circuit imprimé et du code du FPGA rendaient possibles l’overclocking jusqu’à 50 MHz, ce que supportent allègrement les versions tardives du 68000 en processus HCMOS.
Mieux, minimig.ca fabrique une version suffisamment spacieuse de la carte-mère pour accueillir des cartes accélératrices telles que la Terrible Fire TF536 de Stephen Leary et son redoutable MC68030 à 50 MHz épaulé par de la SDRAM moderne, donc avec moins de cycles d’attente que les cartes accélératrices des années 1990s : ça dépote un max ! Le boîtier en aluminium est du plus bel effet, j’ai très envie de m’en commander un.
Vous rappelez-vous du micro-ordinateur à la puissance sans le prix ? J’ai nommé l’Atari ST. Lui aussi compte parmi les premiers projets retrocomputing sur FPGA : le MiST sorti en 2013 sur Altera Cyclone III de 25 000 LUT, ce qui suffit pour rentrer un Atari STf ou STe, M68000 inclus, et même un MC68020. Quoique déjà ancien, le projet est toujours actif, le catalogue de cores, c’est-à-dire de machines émulées, ne cessant de s’étendre et la compatibilité de s’améliorer. Notez le nom, MiST : à l’origine le projet était bien un émulateur Amiga plus ST, toutefois le ST ayant un chipset nettement plus modeste, c’est ce core qui a été écrit par Till Harbaum en même temps qu’il concevait la carte MiST, le portage du Minimig ayant pris un certain temps.
[Da Scritch, au loin] — Mettez dans la même pièce un dév Atari et un dév Amiga, et c’est la guerre des 16-bits. Alors émuler les deux dans la même machine, c’est… la paix des braves.
[[Benoît]] — ouaip, c’est comme mettre deux chats en rut dans la même pièce. Ou un communiste et un trotskiste : les débats seront violents, la pièce ravagée, et faut pas mettre la main entre les deux. Surtout les chats.
Profitons-en pour aborder une polémique parmi les passionnés de l’émulation : ce n’est pas parce qu’un émulateur sur FPGA est électronique plutôt que logiciel, qu’il est forcément exact au cycle d’horloge près. Le Minimig en est un exemple : il devait composer avec la taille limitée de son FPGA des années 2000, d’où le recours à un microcontrôleur pour déporter une partie de l’émulation. Toutefois la compatibilité du Minimig reste excellente, mais c’est en bonne partie car l’Amiga se prête à l’exercice : dès le premier modèle, l’Amiga 1000 sorti en 1985, un connecteur était prévu pour une carte accélératrice. Il était donc bien compris que les programmes devaient être portables et n’utiliser que les interfaces documentées — pas question d’écrire du code dépendant des cycles d’horloge du circuit vidéo.
Alors que c’est justement la seule façon d’obtenir un overscan sur Atari ST. L’overscan, c’est l’affichage dans les bordures de l’écran, fonction pas du tout prévue dans le circuit vidéo Shifter d’Atari, contrairement à Denise dans l’Amiga 500. Mais pas de panique : il existe d’excellents cores d’émulation exacte du M68000, et les logiciels comme Hatari émulent exactement le ST, en tout cas en temps simulé à l’intérieur du logiciel qu’est l’émulateur lui-même. Combinez ce savoir-faire avec un FPGA, et vous obtenez un MiST cycle-accurate, et en temps-réel. La preuve : les démos les plus pointues passent parfaitement, telles que le légendaire scrolling horizontal de « Let’s Do The Twist Again », démo du groupe français ST Connexion. Il faut bien comprendre que le scrolling horizontal n’est lui non plus absolument pas supporté par le circuit vidéo de l’Atari ST, une machine développée en 6 mois et coûtant la moitié du prix de l’Amiga. Des sorciers, ces démo-codeurs. Vous êtes libres ce soir ? Je vous propose la méga-démo « Punish Your Machine » de Delta Force. Une méga-démo, c’est une démo collaborative regroupant les contributions des meilleurs démo-groupes du moment. Vous y trouverez l’écran « Let’s Do The Twist Again ». Faudra juste dîner tôt : ça dure 4 heures. Mais on reparlera de démos et de la guéguerre entre ces deux machines dans d’autres épisodes.
On attend avec impatience « DEMO », Un film double face / double densité par Alex Pilot, une production Overscan Committee.
Notre historique des projets retrocomputing les plus anciens, mise en abyme vertigineuse s’il en est, serait incomplet sans rappeler que notre invité Fred Requin a lui-même commercialisé avant 2010 un émulateur d’Amiga 500, mais pas que, puisque son MCC-216, le Multiple Classic Computer, pouvait aussi émuler le Commodore 64 et plusieurs consoles. Malheureusement les stocks de MCC sont épuisés depuis longtemps.
Par contre vous pouvez toujours acheter un Minimig aujourd’hui, ou un MiST fabriqué par l’excellent Lotharek, mais l’émulateur le plus puissant est probablement le MiSTer, un descendant du MiST lancé en 2017 sur Altera Cyclone V, un monstre de 110 000 LUT.
La botte secrète du MiSTer, c’est la carte DE10-nano de Terasic : les cartes d’évaluation sont systématiquement vendues bien moins cher que le prix du FPGA qu’elles contiennent. C’est comme les substances illicites, la première dose est gratuite. Sauf que Terasic a fini par comprendre pourquoi cette carte, et seulement cette carte, était perpétuellement en rupture de stock : ils ont depuis légèrement augmenté leurs tarifs.
— Combien ?
— Compte 225 € , 250 € TTC en plus. Moi j’avais payé moins de 150 €
Ça reste néanmoins une excellente option, de loin la plus polyvalente en termes de machines émulées, la plus puissante en termes de taille et vitesse du FPGA et quantité de RAM disponible dans la machine émulée, la plus flexible grâce à son ARM sous Linux, et ne parlons pas de la scène prolifique : il suffit de consulter le forum et le GitHub.
Vous vous en doutiez, le core Minimig a été porté sur MiSTer, et grâce au FPGA nettement plus généreux, il émule le chipset AGA des Amiga 1200, 4000 et CD32, l’ultime génération avant la faillite de Commodore, là où le Minimig sur Spartan-3 devait se contenter de l’OCS et l’ECS des Amiga 500+, 600 et 3000. Chose surprenante, il s’avère que même le Cyclone-III du MiST suffit à émuler le chipset AGA. [Surprise du réalisateur] Toutefois, vous n’aurez pas accès à un catalogue de machines émulées aussi large que sur MiSTer, et seul ce dernier dispose d’une sortie HDMI, le MiST se contentant de VGA. Mais lui peut sortir en 15 kHz pour connexion à un tube cathodique par Péritel !
Parlant de cores portés sur MiSTer, l’émulateur Jaguar développé à partir de 2012 par notre regretté Gregory Estrade sur Altera Stratix-II est en cours de portage sur MiSTer. Et Il est fascinant de noter que tous les projets de Greg ont été portés sur MiSTer : non seulement son émulateur Jaguar, mais aussi son émulateur Sega MegaDrive et son émulateur Nec PC Engine.
J’aurais encore pu vous parler, côté Atari, du FireBee et du Suska, et côté Amiga, du Vampire et son extension vectorielle du jeu d’instruction du M68000 façon Intel MMX, mais on n’a plus le temps ! Par contre, allez sur la page web de l’émission, on vous mettra plein de liens qui vous donneront les clés de l’univers formidable de l’émulation hardware par FPGA.
En conclusion, si vous n’avez qu’un PC, lancez Hatari ou UAE, c’est gratuit et extrêmement compatible, à défaut d’être ultra basse latence. Mais si vous avez le budget, et beaucoup de temps libre, occupez vos longues soirées d’hiver en montant un MiSTer carte par carte, ou pour un budget plus raisonnable, procurez-vous un MiST prêt à l’emploi, ou un Minimig d’occasion. C’est une expérience à vivre en personne.
Ça va, Da Scritch ? T’as la carte bancaire qui te démange ?
J’ai déjà un MiSTer, mais pas le Minimig de 2008 et, je vous jure que c’est vrai, j’étais à ça de cliquer sur “acheter” quand j’ai vu le nouveau boîtier en aluminium sur minimig.ca. C’est bientôt mon anniversaire…
Textes : Benoît
Voix complémentaire : Da Scritch
Photo : Kit MiSTer d'émulation, opéré par un public jeune de l'émission, CC-By-SA, Da Scritch pour CPU et Radio <FMR>