Hier ein Beitrag, den ich schon mal im DOS-Forum gepostet hatte. Vielleicht findet er auch hier Interesse und Antworten.
Mal eine generelle Frage: ich habe manchmal den Eindruck, dass die Hardware-Anforderungen von Emulatoren weitaus höher sind, als sie eigentlich sein müssten. Liegt der Eindruck nur an mir, oder ist dem wirklich so? Könnte so mancher Emulator unter reinem DOS bei effizienter Programmierung auch auf älteren PCs bzw. unterhalb der Pentium-Schwelle flüssig(er) laufen?
Damit meine ich jetzt nicht, dass ich von einem 386er erwarte, einen Amiga oder eine Playstation etc. flüssig zu emulieren. Irgendwo muss natürlich eine Grenze sein. Aber sollte es nicht theoretisch möglich sein, mit einem schnellen 486er (66 Mhz oder mehr) einen Großteil der 8-Bit-Rechner und Konsolen akzeptabel zu emulieren, eventuell auch einige 16-Bit-Geräte? In der Praxis geht das ja leider oft nicht.
Mal zwei Beispiele bzw. Denkanregungen: vor einiger Zeit hatte ich nach einem guten Gameboy-Emulator für DOS gesucht. Es finden sich ja auch einige online, manche davon wollen aber mit echtem DOS nicht recht funktionieren oder haben hohe Anforderungen. Bei einem Emulator stand z.B. in der txt, dass er eventuell "auch" noch mit weniger als 400 Mhz funktioniert, wenn man mit den Frameskip-Werten rumspielt. So genau konnte das der Programmierer aber nicht sagen, solche "langsamen" Rechner hatte er nämlich nicht zum Nachprüfen. Alles unter DOS, wohlgemerkt.
Ich habe dann einen gut funktionierenden Emulator namens VGB gefunden, dessen Anforderungen in der txt mit "mindestens 486DX/33, empfohlen 486DX/66" angegeben sind. Läuft auf dem P166 natürlich absolut flüssig. Wie detailliert und komplex die Emulation nun intern funktioniert, weiß ich nicht, aber es haben damit zumindest alle regulären GB-Programme funktioniert, die ich ausprobiert habe. Und das ist für mich die Hauptsache. Wie kann es also sein, dass ein Emulator des selben Systems einen Pentium 2 mit mehr als 400 Mhz "benötigt" und ein anderer mit einem Mittelklasse-486er auskommt? Das Endresultat (GB-Spiel mit Sound und Musik unter DOS) ist bei beiden Programmen nach außen hin das Gleiche.
Zweites Beispiel: auf meinem EuroPC-XT mit weniger als 10 Mhz habe ich einen C64-Emulator, der nur mit Monochrom-Monitor läuft. Das ist zugegeben eine ziemlich unausgereifte Sache, und man kann damit nicht viel mehr machen, als ein wenig in BASIC 2.0 programmieren. Aber in dieser Hinsicht verhält er sich tatsächlich erkennbar wie ein echter C64. Und man kann mit 8088er und weniger als 10 Mhz sogar halbwegs gut damit Programme eintippen. Als dann im Laufe der 90er die ersten "echten" C64-Emulatoren auftauchten, schraubten sich die Anforderungen mit steigender Kompatibilität zum Original aber schnell nach oben, und selbst für DOS-Versionen von z.B. VICE reichte bald ein schneller 486er nicht mehr für originale Geschwindigkeit aus.
Auf meinem Rechner daheim benutze ich aktuell z.B. DOSVice 1.9 von 2002. Auf dem läuft meiner Erfahrung nach über 95% aller Software, auch aktuelle Games, Demos und Diskmags. Aktuellere Versionen von DOSVice laufen auf meinem P166 nicht mehr flüssig, daher muss ich die unter 5% Software, die Probleme macht, in Kauf nehmen.
Die Frage ist: muss das sein? Ist eine (ausreichend) akkurate Emulation selbst von 8-Bit-Systemen tatsächlich kaum möglich, wenn man nicht mindestens einen Pentium mit 100 Mhz+ zur Verfügung hat? Oder haben sich die Programmierer einfach (stets) darauf verlassen, dass sowieso jeder Anwender einen aktuellen Rechner zur Verfügung hat, und dass effizienter Code gar nicht nötig ist? Und liegt es vielleicht auch daran, dass viele Emulationen einfach zu komplex und mit Features und Komfortfunktionen überfrachtet geworden sind, nur weil jeder Anwender unbedingt die x-fache Bequemlichkeit und Funktionsumfang wie auf dem Original haben will?
Was ist wichtiger - ein Emulator, der mit relativ wenig Ressourcen dazu in der Lage ist, ein anderes Gerät nach außen glaubhaft nachzubilden? Oder ein Emulator, der für "Nebensächlichkeiten" gigahertzweise Leistung verbrät, nur weil er intern z.B. ein 100% exaktes Thermalmodell erstellt, und jedes mögliche Staubkorn auf virtuellen Bausteinen einzeln emuliert? Nicht, weil es nötig ist, sondern weil es heutzutage geht.
Zumindest auf meinem Pentium 166 habe ich unter DOS eine ordentliche Auswahl von guten Emulatoren gefunden, die darauf flüssig bis annehmbar laufen, einige haben auch "schnieke" Oberflächen und GUIs wie HuGo, ZSNES oder MEKA. Wobei MEKA z.B. ein Multisystem-Emulator von 2016 ist, der trotz seiner "Neuheit" noch flüssig läuft. Es geht also doch. Okay, no$gba für DOS ist da schon ein bisschen an der Grenze, aber es geht.
Hier mal ein paar Bilder von Emulatoren, denen unter DOS zumindest ein Rechner unterhalb der 200-Mhz-Schwelle ausreicht (sorry, unscharfe Bilder. Ich fotografiere lieber vom Bildschirm ab, als Screenshots zu machen, damit auch die Hardware im Bild ist):
Und trotzdem frage ich mich manchmal, ob es theoretisch möglich wäre, auch aus z.B. einem 486DX2/66 eine vielseitige und flüssig laufenden Emulationsmaschine zu machen, wenn es effizientere und mehr auf originales DOS und ältere Rechner angepasste Emulatoren gäbe. Nur reines Wunschdenken oder möglich? Meinungen?
Als Anregung vielleicht noch das hier: das ist tatsächlich mein 386SX25. Der bringt natürlich bei weitem keine C64-Originalgeschwindigkeit, aber im Prinzip geht auch dort stabile Emulation (zumindest dann, wenn der Emulator keine FPU voraussetzt, was VICE allerdings von Anfang an getan hat):