• Wie letztes Jahr von einigen gewünscht, hier eine Erinnerung zur Unterstützung.
  • Hallo zusammen, bitte prüft mal die im Forum hinterlegte Mail Adresse auf Aktualität. Es ist jetzt schon mehrfach passiert, dass Mails (z.B. für Benachrichtigung neuer PNs) nicht zugestellt werden konnten, weil die Konten nicht mehr existieren oder voll gelaufen sind. Danke!
  • Hallo Gast, falls du dich wunderst, wieso Bilder und Videos nicht mehr sofort angezeigt werden, schau mal hier.

Retro FPGA "Emulation" - Eine kurze Einführung

Tscheff

Bekanntes Mitglied
Hatte das hier auf meinem Blog (https://blog.retr0.party) geschrieben. Vlt interessiert es ja doch noch jemanden. Habe mit den Analogue-Geräten und seit neuestem auch mit dem MisterFPGA sehr viel Spaß. Auch die Kids und meine Frau spielen das Zeug irgendwie DERZEIT viel lieber als den aktuellen Kram.

WAS IST FPGA?​

Grundsätzlich ist es mal so, dass FPGA (https://de.wikipedia.org/wiki/Field_Programmable_Gate_Array) eigentlich ein alter Hut ist und in der Industrie schon sehr viel länger als in Consumer-Geräten verwendet wird. Stellt euch vor, ihr hätte einen Chip, bei dem ihr jederzeit festlegen könnt, wie sich die Transistoren (oder besser die “Logik-Gatter” innerhalb des Chips verhalten sollen. Also eigentlich so eine Art T-1000 auf Chip-Ebene. So ein FPGA-Chip hat also die Möglichkeit, dass ein Entwickler ihm zum Zeitpunkt X eine Art Schaltbild mitteilt und ihm dann sagt “Wenn Strom bei dir anliegt an deinen verschiedenen Eingängen, dann hast du gefälligst am Ende das folgende Ergebnis auszuspucken”. Mal sehr simplifiziert. Das wird mit der sogenannten HDL gemacht (siehe Wikipedia https://de.wikipedia.org/wiki/Hardwarebeschreibungssprache). Ich kann mich also zB Daheim hinsetzen, kann mir so einen FPGA holen mit zB drei Eingängen, kann hinter den Chip ein paar LEDs packen und kann jetzt vorm Start mittels HDL den Chip so einstellen, dass er für verschiedene Konfigurationen die LEDs an oder ausschaltet. “Häh? Für was brauch ich da so einen Chip? Das kann ich doch mit normalen Schaltungen auch selbst löten!” Richtig. Aber jetzt kommt eben die Krux. Wenn ich Lust habe, dass die LEDs nach einem Tag jetzt anders geschaltet werden sollen, dann muss ich das nur in meiner HDL ändern, schnell auf den FPGA bringen und schwups habe ich da eine Art, die LEDs blinken zu lassen. “Boah ey, toll, das kann ich mit einem Microcontroller auch.” RICHTIG. Aber jetzt kommen wir zu den feinen Unterschieden. Der Microcontroller bekommt dieses Verhalten nicht auf der “Stromebene” sondern auf der “Software-Ebene”. D.h. in einem Micro-Controller wird - natürlich da dann oft auf Maschinencode-Ebene - das Verhalten implementiert und wenn nun Strom an den Eingängen anliegt, dann wird der Code ausgeführt und das erwartete Ergebnis dann an den Ausgang gepackt. Ihr seht schon, dass wir in einem Microcontroller nun eigentlich schon eine Ebene mehr haben: • 1. Strom liegt an • 2. Dieser Strom wird interpretiert • 3. Strom wird passenden an den Ausgängen ausgegeben. Bei einem FPGA-Chip passiert alles auf Strom-Ebene. Der Strom fließt also durch die “Gatter” und kommt dann passend am Ende wieder raus (Auch hier wieder mega simplifiziert zur Veranschaulichung).

SUPER? UND FÜR WAS BRAUCHT MAN JETZT DIESES FPGA?​

FPGAs werden seit Jahrzehnten in der Herstellung von Schaltungen und CPUs benötigt, um geplante Weiter- und Neuentwicklungen zu testen. Stellt euch vor, ihr seid ein super, dufter Intel-Ingenieur und würdet jetzt gerne die Funktionsweise eures neuen Super-Chips testen, ohne dass dieser hergestellt werden muss. Genau DAFÜR kann man FPGAs verwenden. FPGAs haben natürlich den Nachteil, dass diese Aufgrund ihrer Flexibilität deutlich größer (komplizierter) herzustellen sind, als der Chip selbst am Ende und man hat es dann oft mit FPGA-ANLAGEN zu tun, die mehrere Räume/Racks umfassen. So wird dann der Schaltplan einer neuen CPU mit HDL beschrieben und dann werden die Millionen an FPGA-Logik-Gatter passend konfiguriert und der Plan des Chips (also der Entwurf) kann auf seine Funktionalität getestet werden. Das war so einer der ERSTEN Anwendungsfälle, für die die Teile eigentlich gebraucht wurden. Durch die Weiterentwicklung und dadurch, dass auch FPGAs leistungsfähiger und kleiner wurden, werden FPGAs mittlerweile genutzt, um “Alt”-Systeme in Produktionen oder Geräten los zu werden. Aber auch in Autos werden FPGAs gerne genutzt, da es für viele Anwendungsfälle einfach keine optimalen Chips gibt. In diesem Falle kann jemand einfach das FPGA so einstellen, dass es für gewisse Situationen optimal funktioniert (zB autonomes Fahren) etc. Da es in vielen Situationen in der Industrie oftmals keine Standards gibt, ist es für Hersteller einfach zu teuer, Chips herstellen zu lassen, die exakt den Anwendungsfall abdecken. Also stellt man sich die Chips dann einfach selbst mithilfe von FPGAs her. Das ist flexibler. Und zusätzlich ist man nicht auf mehrere Chip-Hersteller angewiesen und kann stattdessen in Großen Margen von FPGA-Herstellern kaufen. Aber auch in anderen Industriezweigen werden FPGAs gerne verwendet. Im Endeffekt immer dann, wenn auf Hardware-Ebene möglichst ohne Latenz, mit maximaler Flexibilität und für dedizierte Fälle Chips gebraucht werden (zB DACs).

OK. UND WAS HAT DAS JETZT MIT KONSOLEN ZU TUN?​

Naja. Genauso, wie FPGAs IRGENDWELCHE Chips darstellen können, können die ja genauso auch Konsolen-Chips “emulieren”. Emulieren ist hierbei nicht ganz richtig. Man muss eigentlich von simulieren sprechen, da sie in ihrer Funktion eben ein fast perfektes Ebenbild sind und den “Strom” perfekt nachbilden. Eben diese Fähigkeit macht sich Analogue mit ihren Geräten zu nutze. Gerade von GB(A)/NES/SNES gibt es mittlerweile durch die Jahrzehnte SEHR exaktes Reverse Engineering, was im Endeffekt die Chips einer jeder Konsolen auf “Schaltungsebene” beschreibt. Somit nimmt Analogue eben dieses Wissen und konfiguriert ihre FPGAs so, dass sich diese wie ihre Ebenbilder verhalten. Man HAT ALSO in den Analogue-Geräten auf der Hardware-Ebene ein perfektes Ebenbild der Konsolen-Architektur, wie man sie auch in den Originalen wieder findet. Und der Witz ist, dass sich bei Konsolen nicht nur Chips in den Konsolen sondern auch in den Modulen wieder finden!

JO. SUPER. UND WAS IST DARAN JETZT BESSER ALS MIT SOFTWARE-EMULATION?​

Auch Heute gibt es immer noch Probleme mit Software-Emulation. Viele dieser Probleme haben mit Performance und mit Timings zu tun. Das meiste rührt daher, dass Software-Emulation eben NICHT auf der untersten Ebene des “Stromes” passiert, sondern es noch viele weitere Schichten gibt, die parallel zu einem Spiel ausgeführt und durchlaufen werden müssen. Arbeitsspeicher - Programm - Betriebssystem - Maschinencode - Bus - CPU - (vielleicht wieder zurück) - GPU - Anzeige. Dazu kommt noch, dass in einer Konsole viele Komponenten parallel ihre Arbeit verrichten und die CPU der Konsole als zentrale Koordinationseinheit verwendet werden kann. Somit arbeiten pro “Tick”, die eine CPU und die Komponenten machen können, eben Audio und GPU und auch der Chip im Modul parallel und liefern eben diese Ergebnisse dann auch parallel der CPU, dass diese damit was anfangen kann. In der Software-Emulation ist diese Orchestrierung VIEL schwieriger, da das Schedulung zuallererst beim Betriebssystem liegt und - obwohl man heutzutage auch viele Cores hat - man dennoch maximal an der Spielelogik dran bleiben muss, die 50/60hz auf die verwendete HZ-Zahl der CPU mapped. UND sequentiell passiert. Also die verschiedenen Komponenten, die in einer Konsole parallel ihre Arbeit verrichten, müssen in der Software Emulation eben "pro Tick" dann doch sequentiell orchestriert werden.

DIESES Gedöns hat man mit FPGA nicht 🙂 Innerhalb eines FPGAs können mehrere Konsolen-Chips gleichzeitig simuliert werden. Und das tolle ist, dass man einem FPGA sagen kann, dass es zB nur mit 1,7Mhz agieren solle. Auch die Skalierung und die Ausgabe auf HDMI ist bei FPGA kein Problem - oder zumindest bei FPGA-Konsolen - da man eigentlich nur hinter den FPGA-Chip einen weiteren Chip klemmt, der das Bild passend dann ausgibt. Bei der Software-Emulation muss auch DAS zusätzlich von der Software innerhalb der Orchestrierung mit dem passenden Clock der Konsole getan werden. Erbsenzählerei natürlich. Aber für Enthusiasten macht das eben durchaus den Unterschied.

 

OK. KAPIERT. UND WAS WAR JETZT BEIM ANALOGUE POCKET SO GEIL?​

Also. Der Analogue Pocket ist zuallererstmal ein GBC/GBA, der auf dem FPGA zur Laufzeit konfiguriert werden kann. Der Pocket sieht also aus wie ein umgebauter IPS v5 Gameboy verhält sich aber EXAKT wie ein GBC oder eben ein GBA. DAS WAR ER AM ANFANG! Das Tolle am Analogue ist aber, dass der Analogue mit ZWEI FPGA-Chips auf den Markt kam und Analogue vor paar Wochen gesagt hat: “Ey, wisst ihr was? Wir öffnen der Community den zweiten Chip und ihr könnt damit machen, was ihr wollt”. Und die Community hat nun sehr viele Konsolen schon auf eben diesen Chip geportet (https://www.reddit.com/.../analogue_pocket_openfpga.../). Und nochmal: Das Gerät verhält sich also EXAKT so (zu 99% je nach Maturity des Cores - eine Konfiguration eines anderen Chips nennt man so) wie das Konsolen-Pendant. Ohne Lags. Ohne Performance-Hiccups. Ohne lästige Workaround. Und DAS ist eben das Geile hier. Mit den Cores kam natürlich - da es keine 100 Adapter gibt - auch die Möglichkeit, direkt die Spiele per Rom zu starten. Auch DAS ist kein Problem, da auf dem FPGA für die meisten Spiele noch platz für den zugehörigen Zusatzchip ist. Übrigens verwendet Krikkz für seine Everdrive-Cardridges auch FPGA, um die ganzen Specialchips zu simulieren, da man ja mit dem Rom nicht mit liefern kann. Somit bekommt man durch FPGA die Spiele-Logik und das Verhalten der Original-Konsolen, kann aber eben dann einfach HDMI nutzen, ohne da Murks mit Modding oder Retrotrink etc machen zu müssen, die oftmals noch einen zusätzlichen Lag einbauen. Eine tolle Übersicht, was mit dem Analogue alles möglich ist: https://retrogamecorps.com/2022/08/07/analogue-pocket-jailbreak-guide/

Und immer dran denken: Das Gerät verhält sich zu 99% wie ein Original!

WOW. UND WIE KANN ICH JETZT MIT FPGA STARTEN?​

Leider ist in der Retro-Szene ein regelrechter Hype um FPGAs und deren Simulation entstanden und Analogue (https://www.analogue.co/) kann schlicht kaum nach liefern. Da hat sicherlich auch die derzeitige Chipsituation einen großen Anteil dran und Analogue kalkuliert auch immer sehr dünn. Analogue war aber da eigentlich auch nicht der “Vorreiter” sondern hat das Thema für den Mainstream tauglich und verkäuflich gemacht. Es gibt eine sehr große Szene um den MisterFPGA. Im Endeffekt eine selbstgebaute Konsole auf Basis von FPGA und einer krassen Community, die eben sehr viele Addons und auch die Software liefert. Die meisten Cores, die derzeit auf den Analogue-Pocket geportet werden, haben als Basis die Mister-Cores. Wenn ihr also UNBEDINGT in das FPGA-Business einsteigen wollt, dann kann ich euch raten, den Analogue Pocket auf der Page vor zu bestellen oder euch mit dem Thema “MisterFPGA” zu beschäftigen. Es gibt in Deutschland einen super Vertrieb: https://www.mister-fpga.de/sonstiges/mister-fpga-emu-2-0/ Aber auch https://ultimatemister.com/ ist super. Mit dem Mister FPGA könnt ihr auch eure Original-Controller nutzen.

SCHLUSSWORT​

Ich hoffe, ich konnte euch jetzt ein wenig Klarheit verschaffen und die Konfusion ist etwas weg. Sicherlich ist FPGA mit einem hohen Preis verbunden, aber gerade für Enthusiasten und Puristen, die das alte mit dem neuen verbinden möchten, die beste Lösung. Ich bin mir zu 100% sicher, dass FPGA auch bei den großen Herstellern in paar Jahren Einzug erhalten wird, um die Abwährtskompatibilität zu älteren Konsolen zu gewährleisten, so wenn Software-Emulation nicht ausreicht.

Wenn der MisterFPGA der "Custom PC" ist, dann sind die Analogue-Geräte eigentlich die "fertigen PCs" mit eigener Hersteller-Firmware.

Hier ist nochmal eine gute Einführung zum MisterFPGA:

 
Zuletzt bearbeitet:
Mit bzw. neben originaler Hardware auf jeden Fall der beste Weg, um Retrospiele auf höchsten Niveau und möglichst originalgetreu zu erleben. Software Emulation, vor allem nicht die offiziellen von Nintendo und schon gar nicht Sony, kommen da nicht dran und geben das Spielerlebnis einfach nur mit Einschränkung authentisch wieder.

Hab letztens bei nem Kumpel den PS1 Core auf dem Mister ausprobiert, der ist auch richtig super!

Ich selbst hab abgesehen vom Analogue Pocket noch kein weiteres FPGA Gerät, da ich doch eher damit liebäugele mir noch ein originales SNES zu holen. Ansonsten würde ich fast vermuten, dass das nächste Projekt von Analogue eine All-In-One Konsole wird, da SNES und MD vor ein paar Wochen zum letzten Mal aufgelegt wurden. Dürfte dann aber erst für 24/25 relevant sein.
 
Oh, sehr cool! Muss ich mich mal mit auseinandersetzen. :)
Ein paar Arcadespiele wie Simpsons und Turtles wäre noch echt nice!
 
Achja, nach der anfänglichen Euphorie war das Interesse dann erst mal wieder weg. Lag aber auch daran, dass die Everdrives 3 Monate lang auf sich warten ließen, da diese ursprünglich Richtung Elfenbeinküste geschickt wurden. :zahn:

Demnächst wird dann auch endlich mein Dock verschickt, wofür ich letztes Jahr eine zweite Bestellung aufgeben musste, welche dann aber in Fulfillment Group B fiel. Naja, wenn das dann mal da ist, werde ich mich auch wieder mehr mit dem Geräte auseinadersetzen und mir dann mal die Metroid Reihe inkl. Super Metroid vorknüpfen. :)

Was sind denn deine Favoriten bzw. Haupteinsätze bisher?
 
Achja, nach der anfänglichen Euphorie war das Interesse dann erst mal wieder weg. Lag aber auch daran, dass die Everdrives 3 Monate lang auf sich warten ließen, da diese ursprünglich Richtung Elfenbeinküste geschickt wurden. :zahn:

Demnächst wird dann auch endlich mein Dock verschickt, wofür ich letztes Jahr eine zweite Bestellung aufgeben musste, welche dann aber in Fulfillment Group B fiel. Naja, wenn das dann mal da ist, werde ich mich auch wieder mehr mit dem Geräte auseinadersetzen und mir dann mal die Metroid Reihe inkl. Super Metroid vorknüpfen. :)

Was sind denn deine Favoriten bzw. Haupteinsätze bisher?
Mit den openFPGAs sind die everdrives obsolet. Hast ja dann die Cores, mit denen du alle Roms spielen kannst.

Ich spiele eigentlich meistens das SNES-Zeug. Habe auch das Dock und meine Frau/Sohn und ich spielen auch viel Kram zusammen. Die Switch Pros kannst ja ohne Probleme mit dem Dock koppeln.
 
Da meins irgendwann ja auch noch kommen soll vor XMAS..., ich aber gerade so gar keine Zeit habe auf das Rabbithole, auf der anderen Seite aber so gar keinen Bock habe für uralte Spiele 20-40 Euro zu zahlen, und sonst keine Ahnung habe ... wird sicher erstmal rumliegen :)...
 
@Tscheff Bro... kann ich meine "ISO" Roms nutzen, die ich von meinen privaten Games für Dolphin habe? :D mit z.B. .gba Endung, oder brauche ich andere Formate?
 
Sollte bald kommen, kann dann überlegen ob OVP in die Bucht, wenn die aktuelle Chage abverkauft ist.. oder ob ich was rumpimmel
 
Zurück
Oben