SNES Emulatoren im Vergleich

Begonnen von Klauserus, 07. Juli 2018, 12:30:08

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Klauserus

Hallo Zusammen

Gerade habe ich mich etwas mit SNES Emulatoren beschäftigt, da die Zeit in der ich diese benutzt habe (außer auf Wii/Rasp) schon sehr lange her ist. Damals war der ZSNES Emu das Non plus Ultra neben SNES9x.
Seit ein paar Jahren gibt es bsnes bzw. Higan der bekannt ist für seine Resourcenhungrige aber sehr genaue Emulation. Von dem alten Veteranen SNES9x gibt es ebenfalls aktuelle Versionen in 64bit.

Ich habe das Spiel Secret of Evermore, welches ich auch original als Cardridge habe geladen und lasse es bei beiden laufen (links SNES9x rechts bsnes)



SNES ist mit der 2x Auflösung des SNES eingestellt 2x256x512 ohne shader.
bsnes mit "small" bzw 480p ohne shader.

Wikipedia Info: 224 (NTSC) bzw. 239 (PAL) Bildzeilen im Progressive-Modus, 448 bzw. 478 Zeilen im Interlaced-Modus hat das SNES

Jetzt fehlen zum 480p bei bsnes im originalen noch 1 Pixel. Ist das der Grund warum das Bild etwas verzehrt aussieht. Bei genauerer Betrachtung sind die Sprites bei bsnes breiter (zu sehen am Wort "Quick").
Was ebenfalls auffallend ist, dass die Farben bei bsnes deutlich dunkler sind. Ist das näher am Original? Ich weiß es leider nicht mehr. Leider auf dem Bild nicht zu sehen, dass bsnes oft das Bild etwas nachzieht, trotz angezeigter 60FPS.

Mein erste Eindruck ist leider eine kleine Enttäuschung bezüglich bsnes. Ich hätte mir mehr erwartet (Falls mein Rechner nicht zu schwach ist und die Farben doch original).
Eines muss man aber sagen, bsnes ist sehr aufgeräumt, hübsch und leicht bedienbar.

Grüße
SCPH-7002
SCPH-7502
SCPH-5552
SCPH-39004 + Netzwerkadapter
SCPH-70004
SCPH-70004
..irgendwo muss noch eine FAT sein

Takeshi

#1
Das mit den Farben und der Helligkeit ist mir auch sofort aufgefallen. Deine Frage, was näher am Original ist, kann ich vermutlich ganz klar mit "jein" beantworten. Die Bildinformation wurde analog ausgegeben und weiterverarbeitet. Ich denke es ist nicht klar definiert, welcher Spannungspegel zu welcher Photondichte führen soll. An jedem Fernseher hattest du die Möglichkeit das Bild heller/dunkler einzustellen, die Farben hochzudrehen oder den Kontrast zu verändern. Letztendlich wirst du beide Ergebnisse an jedem Fernseher erzeugt bekommen haben. Dein Monitor bietet die Möglichkeiten außerdem auch noch. Bei Monitoren gibt es zwar Normen für farbgetreue Wiedergabe, das habe ich bei Fernsehern aber niemals gesehen. Und selbst wenn, es wäre irrelevant, da vermutlich keiner ein solches Farbprofil damals mit seinem SNES und Fernseher verwendet hat. Wenn "original" das ist, was jemand persönlich damals wahrgenommen hat oder meinetwegen heute wahrnehmen würde, ist das völlig irrelevant.

Trotzdem muss ich zugeben, verstehe ich die Unterschiede nicht. In dem Spiel sollten die Daten doch digital vorliegen, und zwar so, dass es nur eine Möglichkeit zur Interpretation gibt. Jede Farbe ist mit 8 Bit codiert, die Ausgabe ist heute noch so und selnbst wenn nicht, wird es doch Standards geben, wie das zu übersetzen ist. Ich erkundige mich mal bei einem Freund, der sich mit der Programmierung auch etwas beschäftigt, was interessiert mich jetzt auch.

[edit]
Es liegt daran, dass bsnes eine Gamma-Korrektur vornimmt (Quelle). Man könnte auch sagen, sie verfälschen die Farben, weil die meisten Leute das als besser empfinden. Kann man aber scheinbar auch irgendwo abschalten. Wie gesagt, ist eigentlich auch nicht schlimm, wenn man das originale Erlebnis haben will. Ich zähle zu denen, die das als besser empfinden und ich habe meinen TV früher so eingestellt.
[/edit]


Übrigens ist für die Bewertung eines Emulators wesentlich mehr relevant als nur die reine Bildausgabe. Die Konsolen-Hardware hat immer irgendwelche "Bugs" oder Schwächen, und wenn es schlicht um die Leistung geht. Die wurden auch immer wieder mal von den Entwicklern gezielt genutzt, manchmal ignoriert und das führt bei manchen Emulatoren zu unterschiedlichen Ergebnissen. Zwei kleine Beispiele:
- Bei manchen Systemen sind beim Start Speicherbereiche undefiniert, Emulatoren setzen die eventuell auf feste Werte wie 0x00 oder 0xFF.
- Gelegentlich wurde das System gezielt überlastet, damit die Bildwiederholrate einbrach, wodurch der Spieler mehr Zeit hatte die Stelle zu absolvieren. Nutzt der Emulator nun die gesamte Rechenleistung deines PCs, um eine konstante Bildwiederholrate zu halten, ist das Ergebnis ein anderes als auf der Konsole.

Da gibt es noch viele andere Effekte, die hier und da nicht berücksichtigt wurden, weshalb kein Emulator perfekt ist. Die beiden Beispiele sind nur denke ich verhältnismäßig anschaulich. Vermutlich wurden die häufig relevanten Dinge berücksichtlugt, aber sicher nicht alles. Das SNES ist dann ja noch besonders speziell, weil in den Modulen noch viel Rechen-Hardware verbaut wurde. Allein mit dem ROM und der Emulation der Konsole laufen viele Spiele daher nicht.

Mir wurde mal nahegelegt, dass auch die Controller-Eingabe nicht immer optimal ist. Das wollte ich nicht glauben, habe ich nie bemerkt. Als ich aber vor kurzem das originale (japanische) Mario Bros. 2 auf dem SNES gespielt habe und später in Higan emuliert, sind mir da plötzlich doch Unterschiede aufgefallen. Ich war im Emulator deutlich schlechter. Vorher hab ich das als Spinnerei abgetan. Das soll daran liegen, dass die Konsolen eine direkte Tastenabfrage haben, während bei Emulatoren die Tastenabfrage durch zig System-Schichten muss, die keine Echtzeit-Abarbeitung ermöglichen.

Der Beste Ansatz, um Konsolen zu "Emulieren" ist ein FPGA-Board. Da hat sich in den letzten Jahren viel getan, es gibt inzwischen viel Auswahl und die Software läuft immer besser. Der Unterschied zu Emulatoren ist der, dass auf dem FPGA die Hardware nicht in Software, sondern in Hardware nachgebaut wird. Sofern der Aufbau der originalen Hardware bekannt ist, lässt sich damit der perfekte Klon bauen. Blöd ist nur, man braucht dafür so ein Board und das kostet aktuell glaube um die 100 €. Dann funktioniert es aber ähnlich zum Raspberry Pi: SD-Karte beschreiben, einstecken, starten. Und es braucht nicht für jede Konsole ein eigenes Board.

Klauserus

Hey Takeshi

Vielen Dank für die lange uns ausführliche Antwort. Das Thema FPGA hatten wir glaube ich schon einmal. Meine Synapsen haben auch nach deinem Post etwas verknüpft.... in der Maniac vor zwei Monaten ist ein 2 Seiten Bericht über das Super NT drin. Basiert auf deinen Aussagen mit FPGA. Spielt leider nur Original Spiele ab (ich bin Homebrew FAN) und kostet sage und schreibe 190 Doller + 50 Doller Versand  :o da zu diesem Zeitpunkt nur Express angeboten wird. Kann aber ausnahmslos alles abspielen, mit dem man es füttert. Heiß wie ich finde. Nur für meinen Geschmack zu teuer und SD Support fehlt. Wenn du willst, scann ich dir die Seiten mal ein.

Das mit der Eingabe-Verzögerung habe ich auch schon in diversen Blogs gelesen. Wahrscheinlich bin ich davon noch verschohnt geblieben, da ich langsamere Spiele spiele. Gott sei dank, da mein Perfektionismus keine Ruhe geben würde, bis etwas gefunden ist was ansatzweise an das Original ran kommt.

Bei bsnes kann man Helligkeit, Sättigung und Gamma einstellen. Leider nicht zufriedenstellend. War auch der Meinung das die Farben eben codiert sind und jeder Emulator diese dann gleich wiedergeben sollte. Mit dem TV/Display/Einstellungen hast du natürlich recht. Aber rein rechnersich am PC sollte es einen Standard geben. Dachte ich. Gründen wir doch einen Arbeitskreis  ;D

PS: Die Beispiele sind klasse. Ich kann nicht programmieren und beschäftige mich nur theoretisch damit, aber es leuchtet ein :)

SCPH-7002
SCPH-7502
SCPH-5552
SCPH-39004 + Netzwerkadapter
SCPH-70004
SCPH-70004
..irgendwo muss noch eine FAT sein

Takeshi

#3
Ja ich hatte auch im Kopf, dass wir das erst vor kurzem mit dem FPGA hatten. Ich frag mal nach, welches Board er einsetzt, das ging meine ich günstiger.

Es gibt leider immer wieder Leute, die nur Systeme wollen, mit denen man auf gar keinen Fall irgendwas Illegales machen kann, und wenn es ums NES geht. Das finde ich arg kleinlich, damit beschneidet man sich sinnlos. Ist ja nicht so, als ob es nicht trotzdem Systeme gäbe, mit denen man etwas Illegales machen kann. Wer das also will, der kauft sich so eins und fertig, unabhängig davon, ob jemand ein System vertreibt oder vorstellt, das das nicht kann. Und wer nichts Illegales machen will, der kann auch mit einem komplett offenen System nur legale Sachen machen. Einen SD-Slot wegzulassen ist daher für mein Empfinden echt total sinnlos.

Ich habe das auch echt nie bemerkt, hab auch Super Mario World gespielt, kein Thema. Aber bei Mario Bros 2. ist es dann aufgefallen, echt seltsam. Dass es z.B. bei Rollenspielen nicht auffällt ist verständlich. Die hab ich auch meistens gespielt.

Nun ja, bsnes scheint die "Standardwerte" ja auch zu berechnen, passt diese dann aber noch an. Die Anpassung musst du theoretisch lediglich abstellen, dann hast du das gleiche Ergebnis. Ich würde mich mal durch ein paar Foren wühlen, die sich in der Tiefe mit den Emulatoren befassen. Ich bin da auch über irgendwas gestoßen, wie man das in den Einstellungs-Dateien einstellen kann.

Dann ist ja gut, wenn das auch für einen Programmier-Laien nachvollziehbar war :)


Edit: Er hat den DE10-nano, den gibt es für 110 € + MwSt:
- Bei DigiKey
- Bei Mouser