PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warum sind DOS-Emulatoren so quälend langsam?


Herr Doktor Klöbner
2010-04-05, 10:17:30
Hallo,

mal eine Frage an die die sich damit auskennen. Warum haben Emulatoren wie DOS Box höhere Hardwareanforderungen als z.B N64 oder PSX Emulatoren.
Weder müßen irgendwelche Beschleunigerchips emuliert werden, und die X86 Machinensprache der alten 386,486 Pentium Veteranen kann ja nativ ausgeführt werden. Was macht die Sache so schwierig ?

333fps
2010-04-05, 10:38:02
Also eine Antwort habe ich auch nicht. Aber ich finde alle meine DOS-games mit DosBox & D-fend laufen eigentlich sehr flott und keinesfalls quälend langsam.

hofmetzger
2010-04-05, 10:40:10
Dosbox ist doch nicht langsam? Die alten Dosgames packt es doch locker.
Weise mal mehr CPU-Zyklen zu, der Defaultwert ist da vielleicht etwas zu wenig. Bei anspruchsvollen Spielen kann auch Frameskipping helfen.

Der N64-Emulator (Project64) ist ein HighLevelEmulator. Er emuliert das N64 nicht bis auf den letzten Transistor. Vielmehr wird auf einer höheren Ebene als der Hardware-Ebene alles auf CPU und Grafikkarte umgeleitet.
Grob vereinfacht: Dein Rechner führt das Spiel aus - nicht einen virtuellen Prozessor und eine virtuelle Grafikkarte und ein virtuelles Betriebssystem... die dann das Speil ausführen (wie etwa bei DosBox).

Gast
2010-04-05, 10:51:08
Weder müßen irgendwelche Beschleunigerchips emuliert werden
Wat? Dosbox emuliert eine (bzw eigentlich mehrere) komplette Grafikkarte und Soundkarte, und zwar so detailiert, dass du sogar Win3.11 und die Original-Treiber für diese Karten installieren kannst.

Und langsam ist Dosbox überhaupt nicht, auf einem aktuellen Rechner kannst du damit so ziemlich alles was je für Dos erschienen ist in voller Geschwindigkeit spielen.

PS: Zu deinen N64-Emulatoren: Hast du mal Goldeneye und/oder Perfect Dark auf so einem Ding gespielt und die CPU-Last beobachtet? Das braucht keinenfalls weniger Rechenleistung als Dosbox, obwohl die Grafikkarte die komplette 3D-Grafik übernimmt.

Herr Doktor Klöbner
2010-04-05, 11:09:05
Warum muß eigentlich eine Grafikkarte emuliert werden ? Die alten Softwarerenderer haben ja direkt in den Speicher der Grafikkarte geschrieben.
Laienhaft gefragt: Haben aktuelle Grafikkarten keinen Legacy-Modus für so etwas ?

Gast
2010-04-05, 11:12:35
Glaubst du unter einem modernen Betriebssystem darf jedes Programm direkt in den Grafikkartenspeicher schreiben? Was denkst du denn, wie der GrakaTreiber reagieren würde, wenn du einfach so Speicherbereiche überschreibst?

Malabolge
2010-04-05, 11:56:45
Glaubst du unter einem modernen Betriebssystem darf jedes Programm direkt in den Grafikkartenspeicher schreiben? Was denkst du denn, wie der GrakaTreiber reagieren würde, wenn du einfach so Speicherbereiche überschreibst?

Sicher , aber es müsste doch möglich sein in eine "Textur" zu schreiben die mit DX , OGL "sauber" auf den Bildschirm oder ein Fenster zu bringen.

Andererseits gabs ja schon damals so "Verbesserungen" wie Mode-X, Die nicht so ganz Standardgemäß waren. Und das wird die Sache nicht gerade einfacher machen.

Gast
2010-04-05, 12:00:49
Weder müßen irgendwelche Beschleunigerchips emuliert werden, und die X86 Machinensprache der alten 386,486 Pentium Veteranen kann ja nativ ausgeführt werden.
Falsch. ;)

Es muß eine Menge emuliert werden. Letzten Endes sogar die Langsamkeit. Dazu muß man sich aber mit DOS-Rechnern auskennen, sonst versteht man das ganze nicht. Als die ersten Pentium-PCs (damals auch noch DOS-Rechner) auf den Markt kamen, gab es sogar extra Programme wie atslow, um den Prozessor herunterzubremsen.
http://www.supportnet.de/stat/2001/9/id55776.asp

Auf der anderen Seite gibt es eine Menge Dinge, an denen selbst aktuelle 3 GHz-Kerne gehörig zu knabbern haben: VESA-Bios 2.0-Emulation, Soundblaster-Emulation etc. etc.

Falls du wirklich Probleme mit dem Speed hast, dann solltest du folgendes versuchen:
1. Soundblaster OPL in DOSBOX auf 22KHz zurückschrauben und alle nicht benötigten Soundadapter abschalten
2. bei der Grafikausgabe mal zwischen ddraw und opengl wechseln
3. nur den 'normalen' Emulationskern verwenden und dann mit den Zyklen experimentieren

Letzten Endes mußte ich aber auch schon festellen, daß ein 3 GHz DualCore nicht ausreicht, um meinen damaligen DOS-PC mit allen Features zu emulieren. Aber das macht alles nix.... das Maschinchen steht zum Glück noch hier. :biggrin:

Gast
2010-04-05, 12:02:44
Sicher , aber es müsste doch möglich sein in eine "Textur" zu schreiben die mit DX , OGL "sauber" auf den Bildschirm oder ein Fenster zu bringen.
Klar, da brauchst du nur eine Abstraktionsschicht dazwischen, die sich gegenüber der alten Software wie eine echte Grafikkarte verhält. Und schon bist du ziemlich genau bei dem was Dosbox macht.

Gast
2010-04-07, 03:52:08
Hallo,

mal eine Frage an die die sich damit auskennen. Warum haben Emulatoren wie DOS Box höhere Hardwareanforderungen als z.B N64 oder PSX Emulatoren.
Weder müßen irgendwelche Beschleunigerchips emuliert werden, und die X86 Machinensprache der alten 386,486 Pentium Veteranen kann ja nativ ausgeführt werden. Was macht die Sache so schwierig ?

Nein, das kann leider nicht nativ ausgeführt werden, wenn es auf eine möglichst qualitativ hochwertige Nachbildung z.B. eines PC Spieles ankommt.


Der Grund ist der, daß man früher z.B. bei Animationen keine Zeitabfrage verwendet hat um die Animation dann synchron zu dieser Zeit auszuführen, sondern man hat aus Geschwindigkeitsgründen und weil der ursprünliche IBM PC gar keine Systemuhr hatte, auf eine Synchronisation der Zeit einfach verzichtet und die Animation komplett in einer Schleife über die CPU Register durchgeführt.

Das führte also dazu, daß die Geschwindigkeit wie schnell die Animation abgespielt wurde, von der Geschwindigkeit der CPU abhängig war.
Auf langsamen CPUs lief sie so wie von den Spieleprogrammierern ursprünlich gedacht und auf neueren schnelleren CPUs lief sie dann unspielbar schneller, auf einem modernen PC also so schnell, daß man nichts mehr von der Animation hat und das Spiel unter Umständen somit nicht mehr steuerbar ist.

Und genau deswegen kann man den Code nicht einfach nativ ausführen, da man die Kontrolle über die Abspielfolge pro Zeiteinheit behalten muß und das übernimmt der Emulator, in dem er jeden einzelnen Schritt einzeln auswertet und zu einer Systemuhr synchron hält.
Genau das ist übrigens auch der Grund, warum die DOSbox es erlaubt, die Emulator schneller und langsamer einzustellen.


Bei Konsolenemulatoren ist das Problem deswegen nicht so kritisch, da man hier nur eine fest definierte Harware hat die es zu emulieren gilt und von dieser kennt man auch die Ausführungsgeschwindigkeit.
Und moderne Konsolen dürften inzwischen ruhig auch alle mit einer internen Systemuhr ausgestattet sein, so viel kosten die Chips dafür ja auch nicht mehr.

Gast
2010-04-07, 05:03:02
Ich gehe davon aus, das dieses Thema hinfällig ist, denn gerade bei DOSBox wissen viele nicht, das die Geschwindigkeit konfiguriert werden kann! Die Standardeinstellung ist weit entfernt von optimal.
Mithilfe der "cycles" lässt sich einstellen wieviele Schritte in der selben Zeit abgearbeitet werden und zwar so lange steigerbar, bis die CPU wirklich am Limit arbeitet... somit auch 100male besser als jedes original von damals ;)

333fps
2010-04-07, 13:07:36
yep, aber endlos die "cycles" raufsetzen geht bei einigen games nicht. Da macht vorher der sound schlapp bzw. wird zu stottern anfangen. ;)

Gast
2010-04-09, 18:38:05
Wieviel Mhz sollte ein Smartphone Prozessor ungefähr haben, um alle normalen Dos Spiele per Dosbox flüssig darzustellen?
MfG

Coda
2010-04-09, 18:55:44
Bei DOSBOX wird der x86-Code leider interpretiert und nicht direkt ausgeführt.

dragonmaster
2010-04-09, 22:36:22
die core sollte man auf dynamic stellen das bringt am meisten speed

Gast
2010-04-10, 01:10:00
Wieviel Mhz sollte ein Smartphone Prozessor ungefähr haben, um alle normalen Dos Spiele per Dosbox flüssig darzustellen?
MfG

Das spielt keine Rolle, da ein Smartphone Prozessor meist eh keine x86 kompatible CPU ist und die DOSBox bzw. die Spiel dafür darauf erst gar nicht laufen.

Deine besten Chancen alte DOS Spiele zu spielen sind hier also immer noch ScummVM, darauf laufen dann aber nur die typischen Adventures aus DOS Zeiten.

Controller Khan
2010-04-10, 08:21:15
Das spielt keine Rolle, da ein Smartphone Prozessor meist eh keine x86 kompatible CPU ist und die DOSBox bzw. die Spiel dafür darauf erst gar nicht laufen.

Deine besten Chancen alte DOS Spiele zu spielen sind hier also immer noch ScummVM, darauf laufen dann aber nur die typischen Adventures aus DOS Zeiten.
google ??

http://packages.debian.org/search?keywords=dosbox


alpha amd64 armel hppa i386 ia64 mips mipsel powerpc s390 sparc avr32 m68k.


DosBox ist eindeutig portabel.

Gast
2010-04-10, 10:10:00
Bei DOSBOX wird der x86-Code leider interpretiert und nicht direkt ausgeführt.
Wenn man dosbox für x86 compiliert führt der dynamic core soweit ich weiß zumindest teile des codes direkt aus.
Und für andere Architekturen (x86_64 etc) gibt es einen dynamic recompiling core. Das hört sich auch nicht gerade nach reiner interpretation an...

Fattyman
2010-04-10, 12:48:29
Das spielt keine Rolle, da ein Smartphone Prozessor meist eh keine x86 kompatible CPU ist und die DOSBox bzw. die Spiel dafür darauf erst gar nicht laufen.

Deine besten Chancen alte DOS Spiele zu spielen sind hier also immer noch ScummVM, darauf laufen dann aber nur die typischen Adventures aus DOS Zeiten.

Nur ein koleiner Hinweis: In den guten alten 90er Jahren gab es mal eine kleine britische Klitsche, die stellte Rechner mit den Vorläuferprozessoren der heutigen Smartphones her. Damals noch so um die 40MHz schnell (oder auch lahm). Die haben darauf eine Softwareemulation eines PCs hinbekommen. Also sollte mit den heutigen ungefähr 25 mal schnelleren Smartphoneprozessoren eine DOS-Box ohne Probleme zu realisieren sein.

Gast
2010-04-10, 13:09:11
Also sollte mit den heutigen ungefähr 25 mal schnelleren Smartphoneprozessoren eine DOS-Box ohne Probleme zu realisieren sein.

Es gibt auch DOS-Box für diverse Smartphones. Soweit ich weiß wurde darauf auch schon Windows95 gestartet.

Das ganze ist natürlich ziemlich Lahm und nicht wirklich Benutzbar.

Coda
2010-04-10, 14:04:00
Wenn man dosbox für x86 compiliert führt der dynamic core soweit ich weiß zumindest teile des codes direkt aus.
Und für andere Architekturen (x86_64 etc) gibt es einen dynamic recompiling core. Das hört sich auch nicht gerade nach reiner interpretation an...
Dann haben sie das inzwischen geändert.

RavenTS
2010-04-10, 14:22:46
die core sollte man auf dynamic stellen das bringt am meisten speed

Kann doch aber auch Probleme machen mit aktuellen Stromsparmodi wie Cool&Quiet oder wurde das schon behoben?

Gast
2010-04-10, 16:37:54
Es gibt auch DOS-Box für diverse Smartphones. Soweit ich weiß wurde darauf auch schon Windows95 gestartet.

Das ganze ist natürlich ziemlich Lahm und nicht wirklich Benutzbar.

Auch nicht mit 1Ghz Prozessoren? Hatte vor mir bald ein Smartphone zu kaufen, und würde evtl. ein Modell mit Snapdragon kaufen, wenn damit Dos Spiele flüssig machbar wären.
Die relativ weit verbreiteten Qualcomm 528mhz Modelle würden nicht reichen?
MfG

Mr.Magic
2010-04-10, 16:46:13
Auch nicht mit 1Ghz Prozessoren? Hatte vor mir bald ein Smartphone zu kaufen, und würde evtl. ein Modell mit Snapdragon kaufen, wenn damit Dos Spiele flüssig machbar wären.
Die relativ weit verbreiteten Qualcomm 528mhz Modelle würden nicht reichen?
MfG

Mein Q6600 schafft bei 3,6Ghz ungefähr P90 Leistung. Die Last ist bei ~25%, entspricht also einem Kern. Kannst ja mal nach Rechenleistung/Mhz forschen, und dann ausrechnen wie weit du kommst.

Gast
2010-04-10, 17:37:38
google ??

http://packages.debian.org/search?keywords=dosbox



DosBox ist eindeutig portabel.

Natürlich ist DosBOX protabel, schließlich ist der Quellcode verfübar, aber die Spiele sind es halt nicht und das sagte ich ja auch.

Kein Mensch sprach von der DosBOX ansich.

Gast
2010-04-10, 17:41:13
Nur ein koleiner Hinweis: In den guten alten 90er Jahren gab es mal eine kleine britische Klitsche, die stellte Rechner mit den Vorläuferprozessoren der heutigen Smartphones her. Damals noch so um die 40MHz schnell (oder auch lahm). Die haben darauf eine Softwareemulation eines PCs hinbekommen. Also sollte mit den heutigen ungefähr 25 mal schnelleren Smartphoneprozessoren eine DOS-Box ohne Probleme zu realisieren sein.

Jede CPU Architektur kann man in Software emulieren, aber das geht alles auf die Geschwindigkeit.


Mein N810 Internet Tablet hat eine ARM CPU und die ist gerademal so schnell wie ein Pentium 133 Mhz, wenn ich darauf dann noch eine Softwareemulation ausführen wollte, dann kann ich froh sein, wenn ich wenigstens an einen 8 MHz 8086 XT herankomme.
Und das N900 hat gerademal einen klein bischen schnelleren Nachfolgeprozessor dieser ARM CPU, ein ähnlicher ist übrigens auch im iPhone verbaut.

Dazu kommt noch, daß diesen ARM CPUs in der Regel noch eine Fließkommaeinheit fehlt, d.h. die muß Gleitkommazahlen in Software ausrechnen und das ganze emulieren, das ist sehr langsam.

Shink
2010-04-10, 17:59:46
Dazu kommt noch, daß diesen ARM CPUs in der Regel noch eine Fließkommaeinheit fehlt, d.h. die muß Gleitkommazahlen in Software ausrechnen und das ganze emulieren, das ist sehr langsam.
Das stört allerdings nur bei den neueren DOS-FPS ala Quake 1.

Natürlich ist DosBOX protabel, schließlich ist der Quellcode verfübar, aber die Spiele sind es halt nicht und das sagte ich ja auch.
Was meinst du damit?
Wenn etwas auf Dosbox für x86 läuft dann auch auf Dosbox für ARM oder dem Java-Port von Dosbox (wenn der mal kommt:freak:). Das ist ja das lustige an Dosbox: Wenn CPU, Grafikkarte etc. in ihrer ganzen HW-Pracht emuliert werden (was ja zumindest bei "Static Core" der Fall ist) dann ist es auch kompatibel.

Gast
2010-04-10, 18:57:03
Was meinst du damit?
Wenn etwas auf Dosbox für x86 läuft dann auch auf Dosbox für ARM oder dem Java-Port von Dosbox (wenn der mal kommt:freak:).

Nein, denn die DOSbox ist kein x86 Emulator.

D.h. Dos Spiele laufen auf dem ARM Rechner nicht.




Das ist ja das lustige an Dosbox: Wenn CPU, Grafikkarte etc. in ihrer ganzen HW-Pracht emuliert werden (was ja zumindest bei "Static Core" der Fall ist) dann ist es auch kompatibel.

Wenn die Dosbox das tun würde.

Brillus
2010-04-11, 04:09:53
Nein, denn die DOSbox ist kein x86 Emulator.

D.h. Dos Spiele laufen auf dem ARM Rechner nicht.





Wenn die Dosbox das tun würde.
Tut sie Dosbox, sie emuliert ein kompletten Dosrechner. Läuft auch auf PowerPC Prozesorren und auf Plam Rechner(Was ja ARM sein müsste)

Die Einzige Vorraussetzung für Dosboy ist das das System SDL und GCC unterstützt
http://www.dosbox.com/wiki/System_Requirements

Coda
2010-04-11, 04:11:54
Nein, denn die DOSbox ist kein x86 Emulator.
Doch ist es. Es gibt wie schon gesagt zwar für x86-Rechner auch Abkürzungen für bessere Performance, aber DOSBOX läuft auf jeder beliebigen CPU-Architektur mittels vollständiger Emulation.

D.h. Dos Spiele laufen auf dem ARM Rechner nicht.
Doch, tun sie.

kevsti
2010-04-11, 18:58:11
Auch nicht mit 1Ghz Prozessoren? Hatte vor mir bald ein Smartphone zu kaufen, und würde evtl. ein Modell mit Snapdragon kaufen, wenn damit Dos Spiele flüssig machbar wären.
Die relativ weit verbreiteten Qualcomm 528mhz Modelle würden nicht reichen?
MfG
Kann man so pauschal nicht sagen. Es kommt u.A. drauf an welches System dein zukünftiges Smartphone besitzt, für Android gibt es z.B. afair kein wirklich guten Port von dosbox (z.B. ohne Sound, langsam etc..).

Wie es bei anderen Systemen aussieht weiß ich nicht genau..

Zu dem kann man den 1GHz Snapdragon nicht so einfach mit den 528MHz Qualcomm vergleichen, ich glaube gelesen zu haben dass der Snapdragon pro MHz nicht ganz so effizient ist.

Gast
2010-04-11, 22:12:52
Kann man so pauschal nicht sagen. Es kommt u.A. drauf an welches System dein zukünftiges Smartphone besitzt, für Android gibt es z.B. afair kein wirklich guten Port von dosbox (z.B. ohne Sound, langsam etc..).

Wie es bei anderen Systemen aussieht weiß ich nicht genau..

Zu dem kann man den 1GHz Snapdragon nicht so einfach mit den 528MHz Qualcomm vergleichen, ich glaube gelesen zu haben dass der Snapdragon pro MHz nicht ganz so effizient ist.

Hallo,
ich hatte mich vor diesem Thread kürzlich im PDAs und Smartphone Thread ein wenig erkundigt, ich verlinke das mal kurz:

http://www.forum-3dcenter.org/vbulletin/showpost.php?p=7953678&postcount=393
http://www.forum-3dcenter.org/vbulletin/showpost.php?p=7953953&postcount=396

Zu dem Zeitpunkt hatte ich gedacht dass auch das Touch Pro 2 für Dosbox ausreichen würde, hab erst danach diesen Thread gefunden und von den Hardwareanforderungen erfahren. Demnach würde dieses Modell also ausscheiden und das Acer s200 die erste Wahl, hat irgendjemand Erfahrung mit Windows Mobile 6.5 und Dosbox? Kann ich darauf normale 486er Spiele brauchbar zocken, oder wird das erst mit späteren Generationen funktionieren?
Falls ScummVm die einzige Möglichkeit für flüssige Dos Spiele ist würde ich das gern erfahren, in dem Fall würden auch kapazitive Android Smartphones für mich in Frage kommen, da dieses relativ geringe Angebot mir nicht wichtig genug wäre dass ich einen resistiven Screen für perfekte Bedienung brauchen würde.

Shink
2010-04-13, 19:35:19
Kann ich darauf normale 486er Spiele brauchbar zocken, oder wird das erst mit späteren Generationen funktionieren?
Naja, ein 1GHz Athlon kommt jedenfalls nie im Leben auf 486er-Leistung; eher 386SX. Ich glaub kaum dass da ein Snapdragon mit der selben Taktfrequenz wesentlich performanter ist.

Brillus
2010-04-13, 20:39:41
http://www.dosbox.com/wiki/System_Requirements

Shink
2010-04-14, 15:26:58
http://www.dosbox.com/wiki/System_Requirements
Da steht die Leistung mit Dynamic-Core. Der funktioniert natürlich nur mit x86-CPUs (und da auch nicht bei jedem Spiel).

dragonmaster
2010-04-14, 16:37:44
Da steht die Leistung mit Dynamic-Core. Der funktioniert natürlich nur mit x86-CPUs (und da auch nicht bei jedem Spiel).

so ist es, z.B. system shock läuft mit der dynamic core schlechter als mit der normalen, aber die meisten neueren dos games sind doch schon deutlich schnellert mit der dynamic core. und da es diese core nicht mit nichtx86 cpus wie dem snapdragon funktionieren, sind diese cpus deutlich langsamer als vergleichbare x86cpus.

Gast
2010-04-16, 18:33:51
Gibt es evtl. irgendwo Videos, in denen 486er Spiele auf neuen Smartphones benutzt werden, damit ich mir ein Bild davon machen kann ob mir die Performance reicht? Hab auf Youtube leider nichts passendes gefunden.
MfG