Zu hohe Hardwareanforderungen bei Emulatoren unter DOS?

Es gibt 167 Antworten in diesem Thema, welches 19.567 mal aufgerufen wurde. Der letzte Beitrag (22. Oktober 2024 um 14:16) ist von sm74.

  • Wenn ich was emulieren will, dann auf einem aktuellen PC.

    Warum? Braucht ein C64 oder ein ZX Spectrum oder selbst ein Amiga einen aktuellen PC zur Emulation?

    Weil ich einen akuellen PC hier vor mir auf dem Tisch stehen habe?

    Warum soll ich jedesmal den DOS-PC aufbauen, wenn ich was emulieren will?

    Nur weil du dich weigerst, aktuelle PC-Hardware zu nutzen, musst du das doch nicht ständig anderen aufzwängen? Der Rest der Welt tickt eben anders und will auf aktueller Hardware emulieren.

  • Und subjektiv denke ich, dass die Emulation ziemlich aller 8- und 16-Bit-Rechner und Konsolen rein vom Prinzip her innerhalb der Grenzen eines schnellen 486ers liegen könnte.

    Das glaube ich eher nicht aber das ist nur meine Meinung ;)

    Da ist eigentlich gar keine Meinung nötig. Das kann man einfach mal überschlagen. Wenn Wikipedia recht hat, dann schafft ein 68000er bei 8 MHz ~ 1 MIPS, also eine Million Befehle/Sekunde. Ein 486er mit 66MHz schafft laut derselben Liste 54 MIPS. Nehmen wir das MegaDrive als Beispiel, das hat einen 68000er mit 7,6 MHz. Runden wir großzügig und sagen, der 486er schafft pro Sekunde 60mal mehr Befehle als die MegaDrive-CPU. Im Umkehrschluss heißt dass, das der 486er 60 Befehle "verbraten" kann, um einen MegaDrive-Befehl zu emulieren. Realistisch? Wenn man den in Assembler programmiert, würde ich sagen, das bekommt man hin.

    ABER: Dann hat man nur die CPU emuliert. Es fehlt die Grafik (320*240, 4 unabhängige Ebenen, 80 Sprites...). Und der Sound (zwei Soundchips, einer liefert 6 FM-Stimmen und rennt mit 4 MHz). Und Eingaben. Und der Z80, der da auch noch drin ist und primär dem Soundchip zuarbeitet. Das alles muss auch noch erledigt werden. Das ist jetzt schwer zu schätzen, aber ich sage mal so (als jemand, der früher viel x86-Assembler geschrieben hat): Ich würde damit nicht anfangen wollen. Das wird nichts...

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

  • Unseen Danke für den interessanten Link.

    Mir war nicht bewusst, wie aufwändig eigentlich eine genaue Emulation ist.

    Mein erster Emulator war CCS64 auf einem Pentium 3(?). Er war sparsam und lief recht ordentlich, hatte aber seine Grenzen wie Tonaussetzer und konnte bei weitem nicht alles was bei Vice mittlerweile Standard ist. Klar das es dann mehr Leistung braucht.

    lass uns im Bitte melde dich an, um diesen Link zu sehen. treffen

  • Man sollte auch bedenken, dass viele Spiele noch zeitgleich rauskamen, also einige Amiga- und MegaDrive-Spiele gab es ja zeitgleich auf dem PC (z.B. The Chaos Engine, Cool Spot, Micro Machines, ...). Waere der PC damals soooo viel schneller gewesen, dass er diese Maschinen auch emulieren haette koennen, dann haetten auch die Spiele laengst nicht mehr gleich ausgeschaut.

    - neue Spiele für den C64 -
    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.

  • Wenn ich was emulieren will, dann auf einem aktuellen PC.

    Warum? Braucht ein C64 oder ein ZX Spectrum oder selbst ein Amiga einen aktuellen PC zur Emulation?

    Natürlich braucht ein Amiga Emulator einen schnellen PC.

    Es wird ja nicht nur der bessere 68000er Prozessor emuliert, sondern auch Spezial Fähigkeiten die ein PC einfach nicht hat.

    Z.B. Harware Scrolling, Sprites, der Blitter, der Copper, die Sprites usw.

    Der UAE hatte ja nicht umsonst früher den Beinamen Unusable Amiga Emulator.

    Der UAE wurde ja erst mit mehr als 1Ghz nutzbar (um einen A500 zu emulieren). Klar heutzutage hat man auch teilweise JIT (Just in Time Ausführung) für den 68000er Code. Das macht das schon alles schneller als früher.

    Ein C64 ist eben manchmal auch nicht so einfach zu emulieren und kann einen langsamen PC auch schnell an die Grenzen bringen.

    Insbesondere waren Demos oder technisch ausgereifte C64 Programme immer schon schwierig am Emulator mit langsamen Prozessoren.

    Klar gibt es auch Beispiele, die auch früher schon halbwegs erträglich auf alten DOSen liefem. Z.B. erinnere ich mich an Krackout, dass auf einem alten DOS Rechner mit nem Emulator ertäglich lief, aber da musste auch nicht der gesamte Bildschirm neu aufgebaut werden. Aber alle Spiele in allen Konstelationen liefen eben doch eher unbefriedigent auf alten DOSen. (z.B. Giana Sisters oder Turrican - eben was mit Scrolling, wo der gesamte Bildschirm sich ändert).

    - Grundsätzlich finde ich alte PCs sowiso nicht so toll, die waren halt für mich persönliich immer sch...ße. Aber vielleicht sah ich das auch immer zu sehr aus der Sicht eines Amiga Fan Boys ;)

  • Ich habe mal UAE auf meinen 68040 Mac laufen lassen, und die CpU hat ja da schon gepasst :D selbst ein color fading lief in zeitlupe. Da kann man sich ausmalen, was der rest vom system so an Leistung "frisst".

    Alleine der Screen möchte 50 mal pro Sekunde dargestellt werden - und der Amiga hat einen anderen Aufbau im Speicher, als ein PC. Und dann gibts da noch Auflösungswechsel mitten drin, dank copper usw. Der Blitter will auch noch nachgebildet werden...

  • Mein erster C64-Emulator war "Bitte melde dich an, um diesen Link zu sehen.", der lief bei mir auf einem 486DX-50 mit 8 MB RAM eigentlich sehr gut, und auf die Idee das er auch auf meinen alten noch vorhandenden 386SX mit 1MB RAM lief kam ich schon gar nicht, aber natürlich ist der PC64-Emulator kein Vergleich zu den heutigen C64-Emulatoren die vorallem auch den SID sehr gut emulieren. Trotzdem war ich damals erstaunt, was der C64-Emulator damals schon konnte und ich habe mir gleich die Vollversion mit 1541-Kabel und Userport-Kabel beim Entwicker Wolfgang Lorenz bestellt.

    Für mich war dieser Emulator der Startschuss mich wieder mit dem C64 zu beschäftigen und die Flohmärkte nach Commodrore-Hardware abzusuchen, das Internet gab es so gut wie noch nicht und EBAY auch nicht, Flohmärkte waren die einzigen Möglichkeit an Commodore-Hardware zu kommen. Ich denke ist auch noch heute so, das ein C64-Emulator den einen oder anderen wieder zurück zum C64 bringt.

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

  • Den alten CCS64 (hieß der so?) lief auch bei mir am 286er mit 10 MHz. Das ging sogar, sound hat nur öfters gestottert und Floppy war nicht drin. Als Techdemo aber gut. Das war ich erstaunt, dass der lief. Brauchbar war das natürlich nicht- kein Vergleich zu jetzt.

  • Ich denke ist auch noch heute so, das einm C64-Emulator den einen oder anderen wieder zurück zum C64 bringt.

    Aber wohl kaum, wenn der Emulator unter DOS läuft. :D

    Bei mir hat Vice auch dazu begetragen, mich erstmals wieder mit dem PET und CBMs zu beschäftigen. Das war ca. 2005. Einen DOS-PC hatte ich damals nicht.

  • Und subjektiv denke ich, dass die Emulation ziemlich aller 8- und 16-Bit-Rechner und Konsolen rein vom Prinzip her innerhalb der Grenzen eines schnellen 486ers liegen könnte.

    Das glaube ich eher nicht aber das ist nur meine Meinung ;)

    Glaub ich auch nicht, weil wie schon erläutert wurde, neben der reinen CPU-Emulation eine ziemlich nach oben offene Komplexität bei der restlichen Hardware mit eine Rolle spielt.
    Rein für die CPU mag das vielleicht gelten (wirklich eingeschränkt auf max. 16 Bit-CPUs, und da würde ich den 68000, selbst die beschnittene 68008-Variante nicht wirklich dazu zählen), aber was den Rest der Hardware bei entsprechender Emulationsgenauigkeit angeht, wohl kaum.
    EgonOlsen71 hat es in seinem Post eh schön vorgerechnet ...

  • Man muss da halt abwägen.

    Ich sage mal, ein "primitiver" C64-Emulator ist schnell programmiert : Offizielle 6510 Opcodes so abarbeiten dass sie ihre Funktion erfüllen, bisschen Speicherverwaltung, Textmodus -> Reicht um BASIC laufen zu lassen.

    Dann noch ein bisschen Aufwand um Grafik und Sprites gemäß Handbuch zu programmieren: e.g. es gehen nur 8 Sprites, und die "statischen" Grafikmodi.

    Dann hat man einen Emulator auf dem einfache Sachen laufen, und der je nach verwendeter Programmierumgebung und Umsetzung irgendwas von 486 bis CoreI braucht um flüssig zu laufen.

    Dann hat man die Wahl: Stecke ich noch Zeit rein, damit das Timing auch halbwegs stimmt, und dann so Sachen wie Rastergrafik, Spritemultiplexing und Sound gehen könnten?

    Oder nutze ich die Zeit lieber, damit das Ding auch noch auf einem 386er läuft, bleibe dafür aber auf dem primitiven Stand?

    Schlussendlich kommt man selbst mit beliebig viel Zeit zu dem Punkt wo man sagen muss: Ok, entweder läuft es noch auf einem 386er ODER ich emuliere XYZ jetzt noch genauer damit diese 5 Demos auch noch laufen

    Die meisten werden dann wohl sagen : Der gängige User hat heute einen PC mit 3+ Ghz und 8+ GB RAM, das will ich auch nutzen um den C64 möglichst exakt zu emulieren (Das hat jetzt nichts mit "Firlefanz" wie hübschen Fenstern, bunten Knöpfen und vielen Optionen zu tun, die kosten kaum).

    Und wenn ich mehr Arbeit reinstecke, dann lieber in bessere Emulation als in mehr Performance.

    Wenn jemand Lust hätte einen Emulator auf 386 DOS so zu optimieren, wie manche aktuellen C64-Programme optimiert werden, dann könnte man da sicher auch einen sehr brauchbaren Emulator bauen, aber halt nicht ganz so exakt wie auf einer stärkeren Maschine...

  • Ich kann verstehen, wenn man einen alten Rechner emulieren will. Auch einen ganz alten, wie den C64 oder einen DOS-Rechner mit 386/486-Prozessor. Und es ist auch nachvollziehbar, einen echten C64 oder echten 386/486 zu verwenden, auch oder gerade weil sie alt sind.

    Was aber einfach ziemlich sinnfrei ist: Einen alten Rechner zu verwenden, um einen noch älteren Rechner darauf zu emulieren. ;)

  • das ist tatsächlich mein 386SX25. Der bringt natürlich bei weitem keine C64-Originalgeschwindigkeit,

    Das liegt aber "nur" am fehlenden Cache, mit einem Upgrade-Kit wie dem TI 486sxlc2-50 (ok, auch interne Taktdopplung noch mit dabei), läuft es auf meinen alten alten SX-Systemen durchaus annehmbar und auch mit min. 100% Speed.

    Wie Du ja schon erkannt hat, muss man eben mit den frühesten Versionen arbeiten, die grade schon die Features bieten, die die gewünschte Applikation eben braucht, aber den reinen C64 oder VC20 hatten die Emulatoren ja früh schon recht gut drauf. Ne gute VGA-Karte ist natürlich auch ein Faktor, sowie eine schnelle Festplatte resp. heute eher Compact-Flash und natürlich: RAM, soviel rein passt (16MB beim SX, zzgl. noch weiteren 8MB EMS, wenns Not tut...)

    Ich habe ein getuntes Commodore 386sx Notebook, sowie ein ebenso getuntes Dauphin DTR-1 Tablet und meinen heiß geliebten Canon Compri BN22 in dieser Liga am Start.

    Im Gegensatz zu Desktop-PCs hatten die Notebook(-chipsätze) damals schon die VGA am "local bus", d.h. direkt am Prozessorbus hängen und somit eben nicht den 8MHz ISA-Flaschenhals, d.h. waren schneller als jeder Noname Desktop mit gleicher CPU.

    Es gab von Cyrix, TI und IBM Aufsatz- und Nachrüst-Prozessoren, die 1 rsp. 8 KB Cache on Board hatten, gerade die letzteren vewandelten -zusammen mit der internen Taktverdopplung- diese SX-Systeme in richtige kleine Raketen. Überschaubare und problemlos passiv kühlbare Technik und noch "echte" PCs, ab dem Pentium ging ja bei Intel das große Beshicen los, von AMDs Heizöfen ganz zu schweigen...

  • Der UAE wurde ja erst mit mehr als 1Ghz nutzbar (um einen A500 zu emulieren).

    Ernsthaft? Das muss meinem Rechner mit 166 Mhz aber dann niemand gesagt haben. Da laufen viele 500er-Programme und auch aufwändigere Spiele mit Scrolling nämlich stabil und flüssig mit DOSUAE, siehe hier (okay, Bilder sagen natürlich nicht viel aus, ihr müsst es mir halt glauben).

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Wobei zugegeben nicht alle Programme funktionieren, da die UAE-Versionsnummer doch recht niedrig ist und im Unterschied zu VICE die DOS-Ports leider recht früh eingestellt wurden. Das hatte eventuell mit der generellen Abneigung der Amiga-Leute gegenüber DOS zu tun, denn im Prinzip war der Port auf einem guten Weg.

    Diese Aussage, dass man einen Gigahertz-PC braucht, um einen Amiga 500 zu emulieren, erinnert mich an die Amiga-Leute im Computer-Flohmarkt. Die waren auch lange der festen Überzeugung, dass ein Amiga aus Prinzip so genial wäre, dass er niemals auf einer Intel-DOSe brauchbar emuliert werden könnte. Und falls doch, bräuchte man einen megaschnellen Prozessor aus der Zukunft. Dabei waren die Prozessoren in der zweiten Hälfte der 90er im Prinzip schon ausreichend.


    Insbesondere waren Demos oder technisch ausgereifte C64 Programme immer schon schwierig am Emulator mit langsamen Prozessoren.

    Hier müsste man natürlich wieder definieren, was ein sogenannter "langsamer" Prozessor ist. Auf dem P166 sehe ich bei DOSVICE 1.9 keinerlei Unterschied in der Geschwindigkeit, egal ob ich nun Pacman und Frogger oder Turrican 2 und aktuellsten Demostuff von der csdb darauf laufen lasse.

    Ein Emulator, der auch unter DOS von Spiel zu Spiel tatsächlich merkliche Performance-Unterschiede macht, ist aber z.B. der no$gba. Da laufen aufwändigere Spiele mit gerenderter 3D-Grafik (siehe im ersten Beitrag das letzte Bild) zum Teil mit 99% Originalgeschwindigkeit, während grafisch einfachere Spiele manchmal bei um die 70% hängen. Aus welchem internen Grund auch immer. Beim C64 bzw. VICE ist mir das noch nie aufgefallen.

    Nochmals: ich habe nichts gegen aktuelle PCs und Technik. Wer damit glücklich wird - gerne. Es interessiert mich persönlich nur nicht und ich sehe für mich keinerlei Notwendigkeit dafür - auch nicht als Grundlage für Emulation. Was mir hier im Forum (und unterschwellig auch wieder in diesem Thread) halt negativ auffällt, ist die Herabsetzung von älterer PC-Technik und DOS. Da heißt es dann schnell wieder sinngemäß "Geht bestimmt nicht richtig", "Kann gar nicht funktionieren", "Warum sollte man?" oder "Ist nur für Nostalgie geeignet". Und das sehe ich aus Erfahrungswerten anders. Es verwundert mich halt nur, dieser Mentalität immer wieder in einem Retroforum zu begegnen.

  • Ne gute VGA-Karte ist natürlich auch ein Faktor

    Was mir beim Stichwort "VGA" noch einfällt: Es ist nicht immer eine Frage von "wurde gut genug optimiert für alte Hardware", sondern auch "für welche Hardware wurde optimiert" und die Grafikausgabe eines Emulators ist da ein gutes Beispiel. Bei ISA-VGA-Karten ist das Schreiben in den Grafikspeicher ein Nadelöhr, was man möglichst vermeiden möchte weil es spürbar CPU-Zeit frisst. Deswegen gabs in VICE früher mal die Option "Video Cache", womit die Grafik erstmal im Hauptspeicher konstruiert wurde und später nur die geänderten Bereiche in den Bildschirmspeicher geschrieben wurden, was gerade bei statischen Bildschirmen wie der Einschaltmeldung einiges an CPU-Zeit sparen konnte.

    Inzwischen sind Grafikkarten aber nicht mehr über ein ISA-Nadelöhr angebunden sondern flott genug, damit das komplette Update des emulierten Bildschirms in jedem Frame problemlos möglich ist und der Video-Cache ist ausser in Sonderfällen wie der Einschaltmeldung im Warp-Mode eher eine Bremse als eine Beschleunigung und wurde daher rausgeworfen. Die frühere Optimierung wurde im Laufe der Zeit zu einer Pessimierung für moderne Systeme und wenn man zwischen einer Optimierung für aktuelle oder antike Systeme wählen muss wird die Wahl immer auf "aktuell" fallen, insbesondere wenn dadurch der Code einfacher wird.

    10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    20 forj=1to5:printchr$(rnd(1)*16+70);:next
    30 printint(rnd(1)*328)-217

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • der Video-Cache ist ausser in Sonderfällen wie der Einschaltmeldung im Warp-Mode eher eine Bremse als eine Beschleunigung und wurde daher rausgeworfen.

    Der Video-Cache war auch ein immerwährender Quell von Bugs und ein Wartungsalptraum. =)

  • ich habe nichts gegen aktuelle PCs und Technik. Wer damit glücklich wird - gerne.

    Alle - außer: Dir?:nixwiss:

    Ich brauche bei weitem nicht den letzten heißen Scheiß, gerade auch well ich den PC "nur" "zum arbeiten" benutze und nicht zum zocken.
    Aber warum sollte ich mich ohne Not künstlich drangsalieren mit unnötig alter Steinzeit-Technik? Ein ähnlich traumatisches Ereignis, bei dem Du Deine PC-Technik "eingefroren" hast, gab es bei mir glücklicherweise (noch) nicht.

  • Der UAE wurde ja erst mit mehr als 1Ghz nutzbar (um einen A500 zu emulieren).

    Ernsthaft? Das muss meinem Rechner mit 166 Mhz aber dann niemand gesagt haben. Da laufen viele 500er-Programme und auch aufwändigere Spiele mit Scrolling nämlich stabil und flüssig mit DOSUAE, siehe hier (okay, Bilder sagen natürlich nicht viel aus, ihr müsst es mir halt glauben).

    Ja, wenigstens ohne JIT. Dann hat wohl offenbar dein DOSUAE schon die JIT Emulation. Da werden eben ganze Code Blöcke in nativen X86 Code umgewandelt. Das hat aber, so weit ich weiß, schon einige Probleme bei der Emulation von gewissen Codestellen. Eben alles was selbstmodifizierend ist. Das kommt beim Amiga alllerdings nicht so häufig vor, wenigstens im Gegensatz zum C64.

    Ich gebe ja zu, dass es einen gewissen Charme hat Emulation unter DOS zu betreiben, da man sich nicht so sehr die Einschränkungen beim Zugriff auf die Hardware des DOS PCs hat. So könnte man evtl. eine native 50 Hz Auflösung auswählen, so lange der Monitor das mitmacht. Meines Wisssens ist das unter Windows nur über Umwege einfach machbar ... Zum Beispiel über einen HDMI Ausgang, den man dann explizit auf 50 Hz stellt oder früher mit PowerStrip bis Windows7.

  • Will man Software, die auf alten Rechnern gut läuft, sollte man einfach die Versionen nehmen, die für diese alten Rechner entwickelt worden sind. Was spricht dagegen, entsprechend alte Vice-Versionen zu verwenden? Klar fehlt denen einiges an Features und Exaktheit, die waren halt erst mit schnelleren Rechnern möglich. :nixwiss:

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Nochmals: ich habe nichts gegen aktuelle PCs und Technik. Wer damit glücklich wird - gerne. Es interessiert mich persönlich nur nicht und ich sehe für mich keinerlei Notwendigkeit dafür - auch nicht als Grundlage für Emulation. Was mir hier im Forum (und unterschwellig auch wieder in diesem Thread) halt negativ auffällt, ist die Herabsetzung von älterer PC-Technik und DOS. Da heißt es dann schnell wieder sinngemäß "Geht bestimmt nicht richtig", "Kann gar nicht funktionieren", "Warum sollte man?" oder "Ist nur für Nostalgie geeignet". Und das sehe ich aus Erfahrungswerten anders. Es verwundert mich halt nur, dieser Mentalität immer wieder in einem Retroforum zu begegnen.

    Ich glaube Du nimmst das alles sehr persoenlich. Die meisten haben nunmal moderne Rechner, auch die Entwickler von Emulatoren. Wenn diese nun ihre Emulatoren eben weiterentwickeln, dann nutzen sie auch die Features von modernen Rechnern. Und DU siehst darin jetzt einen Angriff auf Deine gute alte Rechnerwelt. Ich glaube Du solltest da mal einen Perspektivwechsel versuchen.

    Mich wuerde interessieren: Hast Du den Artikel, den Unseen gepostet hat, gelesen? Da wird vieles beantwortet, was Du jetzt hier schon wieder lapidar mit "geht bestimmt nicht richtig", "kann gar nicht funktionieren" usw abtust. Ich koennte wetten, Du hast ihn noch gar nicht gelesen oder nur mal knapp ueberflogen, weil Du die Antwort eigentlich gar nicht hoeren willst: Exakte Emulation hat nunmal gewisse Anforderungen und eigentlich sollten wir uns drueber freuen, dass sich so viele Menschen damit beschaeftigen, moeglichst akkurate Emulatoren zu schreiben. Das ignorierst Du hingegen voellig und wirfst denjenigen Entwicklern Faulheit oder mangelndes Interesse an "Effizienz" vor usw. Ich finde das ist eine sehr ungerechte Sichtweise. Und sowas ist dann auch mit der Grund, warum keiner Verstaendnis fuer Deine Ansichten hat. Weil Du da eben doch nicht so neutral argumentierst, wie Du selbst behauptest.

    - neue Spiele für den C64 -
    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.