Ne sois pas désolé, je vais t'expliquer.
TL;DR : porter MAME sur le MiSTer, c'est juste gagner du temps en obtenant plus en moins de temps, tout en poursuivant le travail de clonage.MAME est un outil prodigueux qui apporte trois avantages dans sa démarche :
1. Le code est entièrement modulaire, c'est-à-dire que l'ensemble fonctionne comme une base de données de composants émulés. Cela simplifie l'écriture d'un pilote, puisqu'il suffit de piocher dans la base de données pour intégrer les composants correspondant au matériel et qu'il ne reste ensuite plus qu'à développer les éventuels composants manquants. Mais cela permet aussi de pouvoir travailler sur un composant donné pour en corriger la précision, de telle sorte que tous les pilotes utilisant le composant ainsi amélioré bénéficient automatiquement des avancées effectuées.
(Au passage, c'est déjà ce qu'il commence à se faire sur le MiSTer, par exemple avec le coeur 68000, mais cela reste bordélique : licences différentes, organisation qui fait qu'on se retrouve avec 36 copies du même coeur, avancées sur une version du coeur qui ne se répercute pas automatiquement sur les autres coeurs l'utilisant... Bref, c'est le bordel.)
2. La documentation est très pointue et complète, sans cesse mise à jour. A tel point que je me sers de MAME avant tout pour réparer les cartes, en utilisant le code source comme référentiel de base. Cela me sert aussi pour les achats (vérifier les versions) et finalement très peu pour jouer.
3. MAME est devenu une sorte de standard pour l'émulation arcade, ce qui a l'avantage d'attirer tous les développeurs qui, au lieu de réinventer la roue dans leur coin, ont plutôt tendance à intégrer le projet et apporter leur expertises directement sur des choses neuves (pilotes inédits ou corrections du code existant).
Imaginons maintenant que MAME soit porté sur le MiSTer, en partant de ta remarque : MiSTer utilise déjà Linux. En fait, quand tu allumes ton MiSTer, c'est un Linux qui démarre et qui te permet ensuite de reprogrammer le FPGA avec le coeur de ton choix.
MiSTer, c'est un comme un Raspberry Pi, mais avec un FPGA en plus.C'est-à-dire que les deux composants principaux du MiSTer sont un processeur ARM (Cortex A9 disposant de deux coeurs à 800 Mhz) et un processeur FPGA (Altera Cyclone V SE avec 110,000 unités logiques). Bon, j'exagère quelque peu, l'ARM du Raspberry étant bien plus puissant. Mais pour ce que celui du MiSTer doit faire (charger l'OS, afficher le menu et gérer le chargement des coeurs ainsi que l'intendance générale), c'est limite trop puissant.
Ceci étant posé, imaginons MAME sur le MiSTer : du fait de la conception modulaire de MAME, toute l'interface de gestion serait gérée par le Linux et la puce ARM, qui se chargerait ensuite de programmer le FPGA selon le pilote sélectionné. En gros, ce que fait déjà le MiSTer, donc pas une nouveauté.
Par contre, précisions autre chose : le code HDL (Hardware Description Language) n'est jamais qu'une description matérielle comme les émulateurs logiciels la font et donc comme le code source de MAME le fait, les commentaires en plus. De fait, le niveau de précision du HDL dépend des informations dont nous disposons : nous pouvons très bien cloner un processeur à partir de la photo de ses entrailles tout comme il est possible de développer un coeur Super Famicom simplement en adaptant le code source de BSNES et sans même toucher une Super Famicom originale...
Euh, attendez... Maintenant que j'y pense, le coeur SNES du MiSTer a en fait été développé de cette dernière manière, l'auteur ne disposant même pas de la console (chapeau bas soit dit en passant, surtout vu la qualité du résultat).
Moralité : tous ceux qui disent que le FPGA n'est pas de l'émulation sont soit des escrocs, soit des caves (avec un s et sans la majuscule), parce que le FPGA reste de l'émulation.
Donc, à partir du code source de MAME, pour moins cher qu'un PC, nous pouvons déjà adapter sur le MiSTer tout le code déjà écrit de MAME (gain de temps monstrueux) tout en continuant de travailler au clonage des processeurs déjà décapés et au décapage de ceux qui ne le sont pas encore.
Et c'est là que je me prends à rêver sans, finalement, envisager quelque chose de délirant, avec trois avantages majeurs selon moi :
1. Le simple joueur a accès à moindre frais à une émulation efficace, avec une bonne précision de départ qui ne fera qu'aller en s'améliorant, sans souffrir des contraintes du PC (il faut une bonne machine pour émuler certains jeux, ça coûte une blinde, la latence reste problématique...).
2. Le joueur plus averti (ainsi que des musées, par exemple) pourront bénéficier en plus de toute la documentation historique compilée par les contributeurs de MAME et accessible directement à l'écran. En termes de conservation et mise à disposition du patrimoine numérique, c'est un outil formidable et démocratique.
3. Le joueur hardcore pourra bénéficier d'une liason avec un PC, par exemple afin d'analyser le code en temps réel (le MiSTer faisant tourner le jeu normalement tandis que le PC affiche à l'écran se qu'il se passe au niveau du code) pour réparer une carte, ou bien comparer avec une carte originale, ou encore faire du développement, comme cela a été fait avec Final Fight en version trois joueurs (parce que là, c'est plus que du simple
hack).
Bref, adapter MAME sur le MiSTer, c'est avant tout éviter de réinventer la roue en se basant sur un code standardisé et faire bénéficier au MiSTer de toute l'expertise de MAME tout en accueillant de nouveaux développeurs FPGA talentueux qui feront profiter MAME sur PC de leur propre expertise. En somme, le monde de l'informatique tel qu'il devrait être.
En outre, pour ton autre objection (MAME ne pourra faire tourner que ce que MiSTer peut encaisser), l'avenir n'est pas figé. Le MiSTer sera à terme remplacé par quelque chose de plus puissant. Sorgelig lui-même, dans un rare moment de bienveillance (en fait, non, il justifiait son attitude de charognard vis-à-vis du MiST, mais bon...), l'a dit : le MiSTer n'est pas éternel et sera remplacé par une plate-forme plus évoluée et plus puissante, qui ne demandera que très peu d'adaptation du code ; ce à quoi j'ajoute que 99% des changements à apporter pourront être automatisés ; autant dire qu'il n'y a pas d'obstacle.
Et j'anticipe au passage une autre objection (je suis d'humeur cartésienne, il faut croire, si vous comprenez la référence) : le code de MAME n'est pas un code de clonage. En effet, tout comme la majorité des codes du MiSTer, les coeurs ne sont pas clonés à partir des puces ; les coeurs décrivent le fonctionnement des puces originales et se configurent de façon à obtenir un résultat identique. MAIS, de la même façon que l'on peut obtenir 4 en faisant 2 + 2 ou bien 2 + 1 +1 ou encore 1 + 1 + 1 + 1", les coeurs du MiSTer ne clonent majoritairement pas à l'identique les processeurs originaux (2 + 2), mais proposent un comportement (2 + 1 + 1) qui donnera systématiquement les mêmes résultats que le matériel original, sans pour autant obtenir ces résultats identiques de la même façon que le matériel original.
Ni clonage, ni simulation, mais bel et bien émulation.Voilà, c'est un peu long, mais les querelles de clocher et compagnie me font chier, en plus de ne servir qu'à ralentir la progression de tous. Plutôt que de soutenir les antagonismes, accueillons toutes les bonnes volontés.
(Au passage, Konami GX, bien joué de ta part.
)