Sitemap
Hinweis
GPS
Experimente mit ELEXS und Palmtop
Die Faszination alter programmierbarer Taschenrechnern
Die Entwicklungsgeschichte der programmierbaren Taschenrechner
Vorstellung: Privileg PR 56 D-NC
Vorstellung: Casio FX-602P
Über Spielautomaten und ihre Emulatoren
Age of Empires
Über den Zufall

Zurück zu:
Artikel
Über Spielautomaten und ihre Emulatoren
Weiter auf dieser Ebene:
Wie kommen die alten Spiele ins Internet
Wie ein Prozessor mehrere Prozesse laufen läßt

Über Spielautomaten und ihre Emulatoren

Wie funktioniert ein Emulator

Da ich selbst noch keinen entwickelt habe, basiert meine Erklärung auf meinen Programmierkenntnissen gemischt mit Angelesenem.

Grundsätzlich muß ein Emulator einen Weg finden, den ursprünglich im ROM des Spielautomaten befindlichen Maschinencode so auszuführen, als ob der Code im Spielautomat selbst abläuft. Der Emulator muß also wissen, was der Prozessor im Spielautomaten gemacht hätte, wenn er einen bestimmten Maschinenbefehl abgearbeitet hat. Dazu gehört die Kenntnis der Funktionsweise des Prozessors oder der Prozessoren des Spielautomaten genauso, wie über das Grafiksystems, der Sounderzeugung oder wie eventuell eingebaute DIP-Schalter interpretiert werden müssen.

So gerüstet kann der Emulator die Funktion des ursprünglichen Mikroprozessors übernehmen. Wie der, holt sich der Emulator Maschinenbefehl für Maschinenbefehl und arbeitet sie ab. Da der Mikroprozessor, auf dem der Emulator selbst läuft, die Maschinenbefehle aus dem ROM nicht selbst ausführen kann - es sind ja nicht seine eigenen - ersetzt er sie durch eine Kombination seiner eigenen Befehle, die genau das Gleiche machen.

Das heißt aber auch, daß er für jeden Befehl des ursprünglichen Prozessors, eine ganze Reihe seiner eigenen ausführen muß. Denn auch der Vorgang des Holens eines Maschinenbefehls ist wesentlich aufwendiger als beim ursprünglichen Prozessor: Denn normalerweise bekommt jeder Prozessor seine Befehle direkt durch die Hardware geliefert. Er selbst muß gar nichts dazu tun. Der Emulator hingegen muß sich, sozusagen, selbst darum kümmern, daß er den jeweils nächsten Befehl bekommt. Also z.B. durch eine entsprechende Programmschleife, die einen Zähler verwaltet, der auf den jeweils nächsten Befehl zeigt.

Vereinfacht bedeutet das alles, daß für jeden Befehl des Ursprungsprozessors viele Befehle des Emulatorprozessors ausgeführt werden müssen. Noch viel schlimmer ist dieser Umstand, wenn der Spielautomat nicht nur einen Mikroprozessor besaß, sondern gleich mehrere davon. Im Spielautomat ist das relativ unproblematisch, da dort alle Mikroprozessoren wirklich parallel ausgeführt werden. Sie sind ja real vorhanden!

Nicht so im Emulatorcomputer, hier muß fast immer ein Mikroprozessor alle Prozessoren des Spielautomaten emulieren. Im Prinzip funktioniert das genauso wie ein Multitaskingbetriebssystem, wie sie ja heutzutage ohnehin auf fast jedem Computer zu finden sind. Ich denke sogar, daß die Entwicklung von MAME ohne solche Betriebssysteme gar nicht so leicht denkbar gewesen wäre. Denn die Fähigkeit einzelne Prozesse parallel auszuführen, hätte sonst von den Emulatorentwicklern entwickelt werden müssen. So können sie auf dem Betriebssystem aufsetzen und jeden zu emulierenden Prozessor in einem eigenen Prozess oder Thread laufen lassen.

Diese Seite wurde mit BrainStorm generiert 
Copyright © 1991 - 2013 by Thomas Ell