Planet Emulation Forums

Planet Emulation Forums (https://forums.planetemu.net/index.php)
-   Général (https://forums.planetemu.net/forumdisplay.php?f=21)
-   -   Mister FPGA et autres sytemes FPGA (https://forums.planetemu.net/showthread.php?t=16934)

Kobras 02/01/2022 23h00

Mister FPGA et autres sytemes FPGA
 
Bonjour,

Je vais vous présenter aujourd'hui ce qui est désormais reconnus comme la solution ultime du rétro gaming, à savoir le mister FPGA
Avant de vous parler du Mister FPGA, il faut déjà définir ce qu'est le FPGA.
Le FPGA (Field-Programmable Gate Array ou Circuit logique programmable) est une puce dont le fonctionnement peux etre programmé autant de fois qu'on le souhaite.
En effet, la logique du circuit voulus est programmé dans le langage VHDL (VHSIC Hardware Description Language) qui décrit tout les portes logiques du circuit.
Ces puces FPGA servent à l'origine aux ingénieurs qui conçoivent de nouvelle puces : on décrit la logique de la puce à concevoir en VHDL qui est chargé dans une puce FPGA pour tester que ça fonctionne comme attendu.
Les puces FPGA existe dans une gamme de prix extrêmement varié (ça peux atteindre les dizaines de millier de dollars).
Heureusement pour nous il existe des puces FPGA peu coûteuse notamment pour les étudiants.
Parmi ceux ci la gamme Cyclone d'Intel
On trouve par exemple un Cyclone IV sur les cartouches SD2SNES pro ou un Cyclone V dans le Super NT
C'est ce Cyclone V qu'on trouve sur la carte DE10-nano qui nous intéresse dans le présent article.

Venons en au projet Mister FPGA. Il s'agit d'un projet logiciel utilisant notamment les carte DE10-nano qui utilisent donc une puce FPGA cyclone V d'Intel (la carte elle même est conçu par Terasic, société basé à Taiwan) et ayant pour but de simuler un maximum de machine rétro (qu'il s'agisse d'ordinateurs, de console ou de machines d'arcades) à l'aide de la puce FPGA.
Actuellement, sont présent : 71 cores d'ordinateur (dont les Amstrad CPC, Atari ST, Amiga500/1200, Macintosh, Apple 2, MO5, MSX, PC 486DX, ...), 28 cores de consoles ( des vieilles consoles Magnavox, et autres Atari 2600 jusqu'à la GBA en passant par les indispensables Snes/Megadrives/PC engine/Neo-Geo. Les Neo-Geo pocket color, PS1 et Saturn sont en cours de conception) et un grand nombre de jeux arcade (dont le CPS1, CPS2 et Sega system 16 mais bien moins que ce qu'il existe sur Mame, mais il y a de nouveau cores arcade chaque semaine ou presque)
Bon maintenant pourquoi le Mister FPGA c'est ce qui se fait de mieux en rétro gaming ? Et bien pour plusieurs raisons :
- ça tourne nativement contrairement aux émulateurs qui tournent sur du Windows ou du Linux
- C'est ultra fidèle vue que ça simule le comportement au niveau porte logique de l'électronique. On retrouve pas exemple le même bug graphique au début des niveaux de Pulstar Neo-Geo contrairement à l'émulation.
- L'image et le son peuvent aussi bien sortir sur HDMI que sur VGA (et donc péritel via un adaptateur), le son peux sortir également via mini jack ou SPDIF. et le mieux c'est qu'on peux faire tout ça à la fois, c'est à dire jouer sur sa TV cathodique et sortir via HDMI pour streaming par exemple. L'affichage sur CTR via le VGA est natif et donc pixel/fréquence perfect avec 0 lag coté output
- On peux brancher la plupart des manettes stick arcade en USB (j'ai testé mon stick arcade PS4 reconnus sans aucunes manipulation) et si on active le polling, on sera proche du zéro lag coté input
- On peux brancher via des adaptateur SNAC (Serial Native Accessory Converter) les manettes d'origine qui dialogue alors directement avec le core pour une expérience 100% original (y compris en terme de lag qui est alors inexistant)
- Le tout prend très peu de place (à peine plus gros qu'un Rapsberry PI)
- Ca démare instantanément et le chargement des jeux ne prend qu'une poignée de seconde pour les plus gros (Garou mark of the wolf sur Neo-Geo par exemple)
- Le rendu sur TV HD est fidèle car les pixel sont affiché via un multiplicateur entier (x4 ou x5)
- On peux choisir ou non de mettre des scanlines, de supprimer la limite de sprite par ligne, de supprimer ou non les ralentissements, de changer ou non le rendu du son ou de l'image (shadow mask pour simuler un CRT), utiliser des savestate sur certains cores, mettre les cores en pause, faire des avances rapides.
- Scummvm est utilisable (jeux d'aventure Lucas art)
- les MAJ via un script à lancer sont ultra simple
- il existe des cartes d'extension pour les brancher en JAMMA dans une borne

Bref, on a une solution compacte, fidèle à 100%, avec zéro lag, polyvalente, qui peux utiliser aussi bien la plupart des manettes USB que les manettes d'origine et qui simule un maximum de machine.
Les défaut sont :
- le prix assez élevé (200€ la carte DE10-nano + 50€ pour les 128 Mo de SD ram + 50€ pour la carte d'extension USB, + 50€ l'IO board, sans oublier la carte SD)
- Coté console on ira pas au dessus les PS1/Saturn (peux être la N64 et encore pas sur) sans passer à une autre carte ayant une puce FPGA avec un plus grand nombre de portes logiques disponibles.
- il reste quelques truc pas encore simulé (32X, 3DO, Playdia, Nec FX, CDI, la pseudo puce MSU1 pour la SNES)
- Coté arcade, ça avance mais on est encore loin du nombre de jeux sous Mame
- L'interface est ultra spartiate, pas de belle interface avec vidéo/capture d'écran. jaquette comme il en existe en émulation.

Perso, j'en ais monté un pour ma sœur comme cadeau de Noël pour qu'elle puissent jouer aux vielle consoles sur sa TV.
J'en ais un autre qui doit arriver d'ici fin janvier qui ira dans ma borne une fois le Mister2Jamma reçu.
Et peut être une 3eme pour la borne de ma sœur plus tard.

Firebrand 03/01/2022 05h19

J'avais vu une série de vidéos assez bien faites (mais pas toutes) décrivant cet appareil sur cette petite chaîne: https://www.youtube.com/watch?v=0m89...E4y-S58gKURg7-

VinceGaiden 05/01/2022 06h28

ça à l'air très intéressant. Y-a-t-il un système de serveur pour faire du multi ? Ptêt' encore cher actuellement... en gros si j'en veux un là c'est 350 balles c ça?

Kobras 05/01/2022 08h43

C'est ça, 350€ environ
Pour le jeux en réseau, il n'y a rien actuellement.
Techniquement ça dois être possible mais rien n'as été fait sur ce sujet.
Pour l'instant la priorité des développeurs c'est plutôt l'ajout de cores (PS1, Saturn, NGPC, arcades)

VinceGaiden 05/01/2022 13h37

Citation:

Envoyé par Kobras (Message 290689)
C'est ça, 350€ environ
Pour le jeux en réseau, il n'y a rien actuellement.
Techniquement ça dois être possible mais rien n'as été fait sur ce sujet.
Pour l'instant la priorité des développeurs c'est plutôt l'ajout de cores (PS1, Saturn, NGPC, arcades)

du coup tu as acheter toi-même les cartes séparément et tu les as soudées? Ca marche si bien que ça?

Kobras 05/01/2022 14h07

Aucunes soudures. C'est juste de l'emboitage et quelques vis. En 5-10 min c'est monté
Et oui, pour avoir monté, installé et testé celui pour ma soeur, c'est fabuleux de rapidité, de fidélité, de simplicité et de possibilité
On peux tout acheter séparément pour le monter soit même, ou en acheter des déjà monté.
Le pb actuellement, c'est la disponibilité de la carte principale (De10 nano) et son prix qui fait que monter à cause des pénuries et de la forte demande pour une carte fabriqué en relative petite série

Dinofly 09/01/2022 21h03

Ca fait un moment que je lorgne dessus même si j'ai déjà toutes les consoles originales, juste pour la beauté de la chose et peut être pour l'utiliser sur la TV du salon plutôt que le CRT branché sur mes consoles. Par contre je vais attendre qu'un nouveau FPGA sorte, même si ça prend du temps, juste parce qu'avoir un ventilateur dedans ça me gêne un peu. Je suis certain que ce projet va encore beaucoup évoluer il y aura des cartes tout intégrées et j'espère un modèle sans ventilo.

Par contre je chipote mais niveau fidélité même si on a bien l'avantage de ne pas avoir d'OS et que le FPGA peut gérer des timings parfaits, la fidélité à l'original ne se situe généralement pas au niveau des portes logiques. A moins que les chips originaux n'aient été décapés et analysés transistor par transistor pour être reproduits sur le FPGA, ce qu'offre le MiSTer reste de l'émulation même si elle est codée en Verilog plutôt qu'en C, C++ ou autre.

Kobras 10/01/2022 22h01

Je suis pas certain qu'un nouveau FPGA abordable pour la communauté sorte un jour, ou alors dans vraiment très longtemps (10, 15 ans ?)
Faut se rappeler qu'à la base un FPGA de ce petit calibre, c'est pour les étudiant qui n'ont pas besoin de plus.
Concernant le ventilateur, visiblement c'est pas obligatoire (Squallrs n'en met pas)
Néanmoins l'IO board de ma sœur en a un de base et il est quasi inaudible. Au pire, on peut le remplacer par un Noctua (la référence des ventilateurs silencieux)

Sinon, il existe des personnes (notamment Furtekk) qui décapent, analyse au microscope et cartographie les puces des vielles machines. Bon, OK, il reste encore sûrement du boulot et il arrive effectivement que des fois ces travaux sont complétés par les sources des émulateurs pour le reproduire en VHDL
Quand tu vois que certain acharné ayant "poncé" les PCB d'origine sur le borne sont gêné par l'émulation dans leur borne et ne vois plus la différence quand c'est un Mister FPGA, c'est qu'on a franchi un palier.

Enfin, de par son origine, il n'y aura jamais de carte tout intégré. Le DE10 nano sera toujours "en l'état". Les carte d'extension (USB, IO board ne sont pas obligatoire, ça apporte juste du confort. D'ailleurs, il existe des carte d’extension qui les remplace au format PC ITX ou console :
https://www.d3fmod.com/product/mini-itx_ironclad_plus/
https://rmcretro.store/multisystem-board-only/
https://rmcretro.store/3d-printed-multisystem-case/

Dinofly 16/01/2022 10h44

Les consoles Analogue sont déjà basées sur des FPGA et ce n'est qu'une question de temps avant que d'autres entreprises se lancent là dedans, surtout avec l'écosystème MiSTer qui est déjà disponible. Donc je m'attends à un développement important de ce côté là dans les années à venir.

Le boulot de Furtekk est effectivement excellent pour la préservation du patrimoine et pour comprendre le fonctionnement des chips qui cachent toujours des secrets mais ça ne signifie pas que l'implémentation dans le FPGA reprenne le schéma logique des transistors à l'identique. Ca reste une réimplémentation en Verilog (il suffit d'aller voir le code source sur Github). Je ne sais pas s'il existe d'ailleurs une méthode pour faire du reverse engineering permettant de passer d'un schéma de transistors à un source en Verilog, à la manière d'une décompilation d'un binaire en code source mais ça m'étonnerait beaucoup.

Les cores sont développés en se basant sur les mêmes documentations utilisées par les développeurs d'émulateurs software, c'est d'ailleurs très significatif de voir que les premières versions avaient les mêmes bugs sur les mêmes jeux en FPGA et sous bsnes.

Donc oui les FPGA ça permet de garantir des timings parfaits et de ne pas dépendre d'un OS, mais ça ne reproduit pas (en tout cas pour l'instant) le schéma original des circuits intégrés de la console émulée. Et ce n'est pas vraiment nécessaire d'ailleurs, car ça fonctionne très bien comme ça. J'attends de voir qui pourra faire la différence entre un FPGA et un bon émulateur software branché sur un CRT d'ailleurs. On a vu que Retroarch avec runahead activé pouvait avoir un input lag meilleur que certaines consoles originales donc ce sujet est déjà traité.

Kobras 23/05/2022 00h29

Depuis janvier, on a eu :
- le core Playstation qui est passé public et qui marche remarquablement bien (après avoir testé environ 15 jeux, j'ai juste eu un bug de sauvegarde sur Loaded)
- le core 32X
- le core snes avec MSU1
Sans oublié les nombreux jeux arcade (la totalité du system16, des jeux cave : Dangun feveron, ESP rade, Guwange, ..)

Et les core suivant devrait arriver d'ici quelques mois :
- Neo-geo pocket
- Saturn
- System 18 (Shadow dancer, Alien storm, Moonwalker)
- TMNT 1 arcade
- Les game and watch

VinceGaiden 28/05/2022 18h33

rolala ça donne envie... comment tu fais pour intégrer les nouveaux cores? tu les assembles comme les autres individuellement?

Kobras 28/05/2022 19h39

En allant dans script et en lançant celui qui s'appelle update_all en ayant au préalable relié l'appareil en réseau (le plus simple étant par un câble RJ45)
Le première fois ça met environ 1h30 (car il télécharge toutes les roms des cores arcades supporté), mais ensuite c'est plutôt entre 1min (si rien de nouveau) à 5 min

Certain cores sont dispo en beta et selon les cas il faut :
- activer une option dans le update_all
- copier à la main un autre script sur la carte micro sd qu'on lance de la meme manière que le update_all
- copier à la main les cores sur la carte sd

Mais perso, je préfère attendre que les cores passe en public et soit accessible dans le update_all

Dinofly 31/05/2022 10h27

Un core N64 en développement sur un FPGA plus costaud que celui utilisé par le MiSTer: http://www.ultrafp64.com/
Hate de voir ce que la démocratisation de FPGA plus puissants va donner ! A priori beaucoup plus de jeux d’arcade pourront être supportés sur ce type de hardware.

J’attends aussi de pied ferme un core Macintosh pour reproduire mon vieux Mac IIci, la je crois que je me prendrai un MiSTer sans hésiter. Dommage que je me sois débarrassé de mon écran CRT 19 pouces que j’avais pour mon vieux PC [emoji853]


Envoyé de mon iPhone en utilisant Tapatalk

Kobras 31/05/2022 13h50

Le Mister FPGA dispose d'un core Macintosh

Dinofly 31/05/2022 20h42

Oui mais c'est un vieux Macintosh classic, il me faut la génération suivante !

Dinofly 27/08/2023 01h03

Alors Kobras, tu as testé le core N64 ? Les derniers progrès sont impressionnants !

https://x.com/azumfpg/status/1695326...xWrPHnKvkCLtjg


Envoyé de mon iPhone en utilisant Tapatalk

Kobras 27/08/2023 08h29

je suis ça avec grand intérêt, mais je suis pas pressé, j’attends que ça passe en release officielle (d'ici 6 mois à un an à la vitesse où ça vas)
Mais le gars, c'est une bête. La vitesse à laquelle il avance est réellement impressionnante. Sachant que c'est déjà lui qui a fait les cores PS1, GB, GBA, NES et Wonderswan

Dinofly 27/08/2023 14h21

Il y a également une annonce d'une future carte FPGA conçue dès le départ pour l'émulation, MarsFpga: https://twitter.com/MARSFPGA
Par contre ça s'annonce très cher.

Dinofly 06/10/2023 20h44

Le Mars FPGA prend forme!
Une super interface graphique en préparation: https://x.com/MARSFPGA/status/1708875942473396440?s=20
Un boîtier:
https://pbs.twimg.com/media/F7niB_5W4AAruHB?format=jpg&name=medium
Un prix dans les 600€ :innoc:
Et le principe est d'avoir une carte dédiée au retrogaming toute intégrée contrairement au DE10 nano qui n'était pas prévu pour ça au départ et qui nécessite pas mal d'extensions pour divers cores et pour y brancher ce qu'on veut.

Le prix pique un peu j'avoue :D

VinceGaiden 06/10/2023 22h47

bah on testera ça chez Kobras lors d'une prochaine irl xD


Fuseau horaire GMT +2. Il est actuellement 03h40.

vBulletin® v.3.8.7, Copyright ©2000-2024, Jelsoft Enterprises Ltd.