- Emulator
-
Als Emulator (von lat. aemulare, „nachahmen“) wird in der Computertechnik ein System bezeichnet, das ein anderes in bestimmten Teilaspekten nachbildet. Das nachgebildete System erhält die gleichen Daten, führt vergleichbare Programme aus und erzielt die möglichst gleichen Ergebnisse in Bezug auf bestimmte Fragestellungen wie das zu emulierende System.
Ein Hardware-Emulator ist ein elektronisches Gerät, das ein System wie einen Drucker oder einen Mikroprozessor (CPU) funktionell, elektrisch oder mechanisch (Gehäuse und Pins) nachbilden kann. Die Verbindung zur Prozessorbaugruppe wird mittels Sockel und passendem Stecker erstellt. Er wird auch als In-Circuit-Emulator (ICE) bezeichnet.
Ein Terminal emuliert für den PC einen Host/Mainframe, wird also über eine spezielle Terminalemulation angesprochen. Dem Host/Mainframe gegenüber emuliert es ein Terminal über einen DTC (Digital Terminal Controller) und einen MDP (Multiple Digital Port).
Die Geschichte der Emulation
Im Jahre 1962 war zum ersten Mal von einem (Prozessor-)Emulator zu hören. IBM arrangierte zahlreiche Computertests in La Grande (Frankreich), um die Kompatibilität ihrer neuen Produkte zu den Vorgängern zu prüfen. Dazu nutzte man eine Kombination aus Hard- und Software, die vom IBM-Ingenieur Larry Moss als Emulator bezeichnet wurde. 1965 schließlich wurde die System/360-Linie offiziell veröffentlicht. Sie umfasste auch den ersten Emulator – der „7070 Emulator“ erlaubt die Verwendung von Programmen für das ältere Modell IBM 7070.
Der Konsolenbereich wurde 1978 zum ersten Mal mit Emulation konfrontiert. Coleco entwickelte einen Adapter, der es erlaubte, Spiele für den Atari 2600 auf ihrem ColecoVision zu nutzen. Doch Atari klagte sofort, und der Fall wurde abgeschlossen mit der Begründung, dass Ataris Videospiele „unpatentierbar“ seien. Später jedoch brachte Coleco mit dem „Gemini“ einen günstigen Atari-Klon auf den Markt.
1983, als Nintendo in Japan das Famicom (in Europa: Nintendo Entertainment System, NES) auf den Markt brachte, wurde aufgrund eines Gerichtsprozesses zwischen Atari und der JS&A Group auch erstmals festgelegt, dass das „Dumpen“ (Auslesen, Kopieren) von Spiele-ROMs illegal ist. Auf dieses Urteil wurde auch in späteren Gerichtsverhandlungen immer wieder zurückgegriffen. Mit dem Erscheinen des NES in den USA plante Nintendo gleichzeitig mit dem Neudesign des ursprünglichen Famicoms die Einführung des ersten Anti-Pirateriesystems für eine Videospielkonsole. Die patentierte Technologie, genannt 10NES, war in einem ROM in jedem lizenzierten NES-Modul gespeichert. Auf diese Weise sollten illegale Vervielfältigungen von Titeln und unlizenzierte Spiele anderer Hersteller verhindert werden. Es war auch das erste Mal, dass eine Konsole ein patentiertes Bauteil enthielt.
1985 erschien der Atari-ST mit der neuen 68000-CPU und dem Betriebssystem Atari-TOS. Anfänglich gab es für diese Hardware noch wenig Anwendungs-Software. Dieser Übergang von der damals weit verbreiteten 8-Bit-Software unter CP/M zur neuen 16-Bit-Welt wurde von Atari durch den kostenlos mitgelieferten CPMZ80-Emulator erleichtert. Dieser reine SW-Emulator erzeugte auf der 68000-Hardware eine virtuelle, vollständige Z80-CPU sowie ein mit CP/M 2.2 kompatibles Betriebssystem. Dadurch war ein problemloser Betrieb populärer vorhandener Software wie z. B. Wordstar, DBase, Multiplan wie auch vieler Compiler, Spiele etc. möglich.
1988 brachte SEGA in Japan die 16-Bit-Konsole Mega Drive auf den Markt, ein Jahr später erschien sie auch in den USA unter dem Namen Genesis. Ein ganz besonderes Merkmal war ein Adapter, der das Abspielen von Modulen der Vorgängerkonsole SEGA Master System erlaubte. Somit ist das Mega Drive die erste Konsole mit abwärtskompatibler Emulation.
Zur selben Zeit entwickelt Readysoft A-Max, den ersten Macintosh-Emulator für den Amiga, der das Apple-Produkt nahezu perfekt emulierte und sogar dessen Disketten im Amiga-Laufwerk lesen konnte. Der 1989 erwartete Prozess Apple gegen Readysoft fand aber nie statt. Stattdessen versuchte Apple, sämtliche alternativen Quellen für Mac-BIOS-Chips auszurotten, dies wurde aber von den eigenen Verkäufern und Lieferanten vereitelt. So wurde durch die A-Max-Affäre festgelegt, dass Emulatoren anderer Hersteller legitim sind. Während bei den Heimcomputern mit der Zeit die Emulatoren fast wie Pilze aus dem Boden schossen, blieb es im Konsolenbereich weitgehend ruhig.
Macronix beschuldigte Nintendo 1991, dass das Anti-Pirateriesystem des NES andere Verkäufer an Arbeiten an der Konsole verhindere, scheiterte aber mit seiner Klage. Etwa zur selben Zeit begann Yuji Naka, ein japanischer Videospielprogrammierer, mit den Arbeiten an einem NES-Emulator für den SEGA Mega Drive. Das namenlose Projekt wird als der erste Videospielemulator angesehen, obwohl es nie das Licht der Welt erblickte. Dafür war ein anderes Projekt von Yuji Naka, Sonic the Hedgehog, ein riesiger Erfolg.
1994 wurde mit MegaDrive der erste Videospielemulator der Öffentlichkeit zugänglich gemacht. Wie der Name vermuten lässt, ahmt er SEGAs 16-Bitter nach, unterstützt dabei allerdings nur ein Spiel: Sonic the Hedghehog, und auch das nicht besonders gut. Die Arbeit an MegaDrive wurde allerdings nicht fortgesetzt, da der Programmierer den Quellcode verloren hatte. Im selben Jahr wurde von Chris George mit der ersten (nicht funktionierenden) Version von VSMC der erste Super-Nintendo-Emulator entwickelt.
Im Prozess von SEGA gegen MAPHIA, die in San Francisco ein Software-Piraterie-BBS-Netzwerk geschaffen hatten, wurde festgelegt, dass die Verbreitung von Kopien von Videospiel-ROMS über Telekommunikationstechniken illegal ist. Mit diesem Prozess entstand auch die Bezeichnung ROMs für Videospiel-ROM-Dumps.
1995 wurden dann auch im Internet die ersten Emulation-Seiten gesichtet, die sich rasch verbreiteten. Ein Jahr später nahmen legendäre Seiten wie Zophar's Domain oder auch Dave's Video Game Classics ihren Betrieb auf, und auch der wohl bekannteste Emulator M.A.M.E. (Multiple Arcade Machine Emulator) wurde entwickelt.
Im selben Jahr erschien auch der erste Translation-Patch für ein ROM: Das ausschließlich in Japan erschienene Final Fantasy V konnte mittels Patch vollständig ins Englische übersetzt werden. 1998 gab Ian Bell, Designer des Videospielklassikers Elite, die NES-Version des Titels offiziell als ROM der Öffentlichkeit frei. Die Emu-Szene wuchs. Am 22. März 1998 holte die IDSA zu einem gewaltigen Schlag gegen die ROM-Verbreiter aus. Bekannte Seiten verschwanden mit einem Schlag vom Bildschirm.
Später erwies sich das Ganze jedoch nur als ein kleiner Knick in der Geschichte der Emulation. Die Emu-Szene entwickelte sich weiter, zahlreiche neue Systeme wurden emuliert, alte Systeme werden mit immer perfekteren Emulatoren wiedergegeben. Auch sind Emulatoren auf anderen Konsolen heutzutage keine Besonderheit mehr.
Druckeremulation
Die heute wohl in der EDV häufigsten Emulationen sind Drucker- oder Plotter-emulationen. Fast alle hochwertigen Laserdrucker emulieren zur Zeit einen Hewlett-Packard-LaserJet Drucker (HP-PCL), aber auch Rasterdrucker werden emuliert. Häufig sind auch nach wie vor die Emulationen EPSON ESC/P, IBM-Proprinter und Andere. Viele großformatige Plotter (sowie derartige Drucker) verstehen auch – oder arbeiten mit – der Hewlett-Packard-Plotteremulation (HP-GL).
Terminalemulation
Eine klassische Terminalemulation erlaubt die Interaktion mit textorientierten Programmen, die auf einem entfernten Rechner laufen, über eine externe Schnittstelle, meist eine serielle Leitung oder eine Modemverbindung. Heute hingegen sind Netzwerkverbindungen via TCP/IP die Regel. Terminalemulationen wurden programmiert, um das Verhalten eines „dummen“ Terminals, also eines einfachen Datensicht- und Eingabegerätes, nachzuahmen. Neben den textorientierten Terminalemulationen werden heute vermehrt Lösungen zur Remotebearbeitung mit graphischer Oberfläche (Citrix, MS-Remotedesktop, X-Terminal) eingesetzt. Durch diese graphischen Emulationen können beispielsweise Unix-Benutzer direkt von ihrem Arbeitsplatz aus Programme benutzen, die nur für Windows verfügbar sind (und umgekehrt). Auch die Administration erleichtert sich, da die wesentlichen Wartungs- und Installationsarbeiten nur an einem System, dem Terminal-Server, erfolgen.
Virtuelle Maschine
Eine virtuelle Maschine (VM) wird oft fälschlicherweise als Emulator bezeichnet. Bei einer virtuellen Maschine wird ein Großteil der Instruktionen aber an das Hostsystem weitergeleitet. Der VM-Manager übernimmt nicht die Emulation solcher Befehle.
- Beispiele:
- der 68000er-Emulator, den Apple mit seinen PowerPC-basierten Betriebssystemversionen mitliefert (Mac OS)
- Mac-on-Linux, das z. B. einen Pegasos-Rechner in einen PowerPC-basierten Macintosh-Clone verwandelt
- VMware Workstation
Kompatibilitätsschicht
Streng genommen ebenfalls vom Emulator zu unterscheiden ist die „Kompatibilitätsschicht“, die nicht versucht, ein ganzes System zu emulieren, sondern sich auf die Emulation von Schnittstellen beschränkt. Das bekannteste Beispiel ist Wine.
Siehe auch: Laufzeitumgebung und Programmierschnittstelle
Anwendungsbereiche
Emulatoren werden für verschiedene Zwecke eingesetzt:
- Investitionsschutz: Software, die für ältere Systeme entwickelt worden ist, kann auf modernen Systemen weiter laufen.
- Beispiel: auf einem Linux-/Apple-/Amiga-Rechner wird mittels Bochs, QEMU, VMware bzw. VirtualPC ein PC emuliert, auf dem Windows installiert werden kann. Die meiste bisher gekaufte Windows-Software kann weiter eingesetzt werden.
- Das Open-Source-Projekt Wine dagegen emuliert nur die Schnittstellen des Windows-Betriebssystems zur Anwendung.
- Beispiel Server von Digital Equipment Corporation: Wegen der hohen Anschaffungskosten sind PDP-11-, VAX- AlphaServer von DEC inklusive dem Betriebssystem OpenVMS oft schon seit über zwanzig Jahren im Einsatz. Bei Emulatoren wie Charon kann das Betriebssystem und die dazugehörigen Applikationen unverändert beibehalten werden, während die Emulatoren selbst auf Standardservern installiert werden.
- Softwareentwicklung:
- Es ist möglich, Software für andere Systeme zu entwickeln und zu testen.
- Beispiel: Programme, die für Palm OS auf einem PC entwickelt werden, können mit einem Palm-Emulator getestet werden.
- Es ist möglich, ein Betriebssystem zu testen.
- Beispiel: Der Emulator „Bochs“ bietet eine Debug-Schnittstelle an. Hiermit kann man prüfen (oder für Lehrzwecke beobachten), wie/ob etwas funktioniert.
- Es ist möglich, Software für andere Systeme zu entwickeln und zu testen.
- Ausbildung: Ein Emulator erlaubt es, sich in Systeme einzuarbeiten, deren Anschaffung sonst sehr aufwändig wäre.
- Zur Langzeitarchivierung digitaler Objekte stellt die Emulation eine Alternative zur Migration bzw. Konvertierung dar (siehe auch Elektronische Archivierung).
- Freizeit/Hobby: Alte Konsolenspiele aus den frühen achtziger Jahren können dank geeigneter Emulatoren wie z. B. M.E.S.S. auf moderner Hardware laufen.
- Ergonomie: Software, die normalerweise nur auf Systemen mit unergonomischen Ein-/Ausgabegräten läuft (LC-Displays), kann auf Systemen mit komfortablen Bildschirmen laufen.
- Beispiel: Die Bildwiedergabe bei Game-Boy-Emulatoren auf einem PC ist besser als bei einem realen Game Boy.
- Die MOSC-Szene setzt Emulatoren ein, um an Pay-TV-Angebote kostenlos und illegal zu gelangen. Diese machen meist einen Dump des Original-ROMs der Smartcard und implementieren dieses in einen Emulator für diverse Systeme wie zum Beispiel PCMCIA PC-Card, DVB-Receiver, DVB-S TV am PC. Der Fernsehsender Premiere hat auch dieses Jahr 2007 mit Emulatoren zu kämpfen, da mittlerweile Emulatoren genau so funktionieren wie eine Original-Abo-SmartCard des Pay-TV Senders. Des Weiteren sind nicht nur die verschlüsselten Schlüssel der SmartCard in diesen sog. EMUs enthalten, sondern auch diverse Verschlüsselungsalgorithmen wie z. B. Betacrypt I+II, alle Ableger des Systems Nagravision, Seca Mediaguard, Viaccess etc.
Siehe auch: Simulator, Bochs, DOSBox, MESS, PearPC, QEMU
Hardware-Emulatoren
Hardware-Emulatoren ermöglichen das Entwickeln von maschinennaher Software, da keine Emulations-Software der in Entwicklung befindlichen Software das Zielsystem „vorgaukelt“, sondern in der Regel eine besondere Hardware ermöglicht, dass die Software in einer „echten“ Umgebung läuft. Die Emulations-Hardware bietet zumeist Möglichkeiten, die Software anzuhalten, Haltebedingungen zu setzen etc. ohne das Laufzeitverhalten der Software zu verändern. Die meisten Möglichkeiten bietet in der Regel ein In-Circuit-Emulator, bei dem ein besonders ausgerüsteter Mikroprozessor in der echten Zielhardware zur Softwareentwicklung genutzt wird.
- HP Terminal
- Memorex Telex Terminal
- JANUS (Atari-Hardwareemulator für den PC von 1995)
- Siemens DS078, VDU2000, DISIT, DS075 Terminals
- Virtuelles Laufwerk
Bekannte Software-Emulatoren
Emulation von x86-Plattformen
- Bochs
- DOSBox
- DOSEMU
- QEMU
- TeemTalk von Hewlett-Packard (früher Pericom)
- VirtualPC von Microsoft (emuliert eine x86-Plattform auf Macintosh-Systemen)
- Win4Lin von Netraverse
Emulation anderer Plattformen
- Hercules, ein Emulator für verschiedene IBM Mainframes, wie das System/360,370/390.
- M.A.M.E. emuliert verschiedene Arcade-Automaten
- M.E.S.S. emuliert verschiedene Spielekonsolen und Heimcomputer-Modelle
- PearPC emuliert G3- und G4-PowerPC-Plattformen (PPC)
- SIMH emuliert verschiedene Minirechner und Großrechner
- CPMZ80 bildet auf den Atari-ST-Computern eine Z80-CPU sowie ein CP/M 2.2 Betriebssystem nach
- UAE emuliert Commodore-Amiga-Systeme (Motorola 68k-Prozessoren und Custom-Chips)
- epsxe bildet die Hardware-Umgebung der Playstation 1 auf x86-Systemen ab
Zwitter-Systeme, die emulieren und virtualisieren
VMware Server und VirtualPC (die Version für Microsoft Windows Systeme) sind beide gemischte Systeme, bei denen im Wesentlichen nur der Prozessor virtualisiert wird. Der Rest der PC-Plattform, wie z. B. Netzwerkkarte, BIOS usw. hingegen wird emuliert.
Unabhängig von der real installierten Hardware (z. B. NE2000) kann z. B. beim VMWare Server entweder eine 100BaseTX-PCI-Netzwerkkarte von AMD, alternativ eine 1000BaseTX-(Gigabit)-PCI-Netzwerkkarte von Intel oder eine virtuelle Karte mit VMWare-eigenen Treibern emuliert werden. Als BIOS wird immer eine Phoenix-Variante emuliert.
Die von Microsoft VirtualPC emulierte LAN-Karte basiert, ebenfalls unabhängig vom Chipsatz der Karte des VirtualPC-Hosts, immer auf einem DEC/Intel-21*4*-(TULIP)-Chip.
Oft dafür gehalten, jedoch keine Emulatoren
Folgende Software – überwiegend Virtualisierungslösungen – wird fälschlicherweise oft für Emulations-Software gehalten:
- VMware ESX Server zählt nicht zu den Emulatoren, da es sich hierbei um Virtualisierung, nicht Emulation, von Systemen handelt und weder Soft- noch Hardware emuliert wird. Vielmehr wird die Hardware virtualisiert
- WINE (WINE Is Not an Emulator) – kein Emulator, da lediglich API-Funktionen emuliert werden (der Code als solches jedoch direkt ausgeführt wird)
- CrossOver – siehe WINE
- Cedega – siehe WINE
- LINE – wie WINE kein Emulator
- Xen – ist wie auch der VMware ESX Server ein Hypervisor und somit ein Virtualisierer.
- E/OS
- Mac-on-Linux, SheepShaver (ehemals ShapeShifter bzw. Basilisk II), Plex86
- SCO UNIX
- ScummVM – welches lediglich eine Art Interpreter für verschiedene, von Adventure-Spielen verwendete Skriptsprachen ist.
Systeme und Vorteile der Emulation
Emulatoren existieren für fast jedes System. Beliebt sind Emulatoren für Heimcomputer, wie zum Beispiel der VICE für den Commodore 64 oder der UAE für den Amiga. Es existieren jedoch auch weitere unzählige Emulatoren für Computer, Handhelds, Arcade-Automaten und Spielkonsolen, siehe auch M.E.S.S..
In letzter Zeit spielen Emulatoren auch in der Freeware-Szene eine bedeutende Rolle. So bietet etwa der GameBoy Advance durch seine relativ einfache Programmierbarkeit die Möglichkeit, Spiele und Anwendungen zu entwickeln, die dann auch auf einem Emulator genutzt werden können.
Für den Nutzer, der Emulatoren z. B. zum Ausführen von alten, kommerziellen Computer- und Videospielen einsetzt, ist problematisch, dass diese auch dann noch unter dem Schutze des Urheberrechts stehen, wenn es sie seit mehreren Jahren nicht mehr zu kaufen gibt.
Gegenüber der echten, ursprünglichen Hardware besitzen Spielkonsolen-Emulatoren einige Vorteile. Dazu zählen die exzellente Bildqualität, der digital verarbeitete und somit verlustlos aufnehmbare Ton. Weitere, die Benutzerfreundlichkeit der eigentlichen Systeme erweiternde Aspekte sind z. B. das Verbessern der Videoausgabe (z. B. Weichzeichnen und Filtern von Grafiken bei Konsolen wie Super Nintendo oder Playstation, obwohl diese Systeme niemals diese Techniken unterstützten, geschweige denn berechnen könnten) oder das Verwenden von Savestates zum schnellen Speichern und Laden von Spielständen – jederzeit während der Laufzeit des Spieles.
Nachteile der Software-Emulation
Der größte Nachteil von SW-Emulationen ist, dass sie eine hohe Rechenlast auf dem emulierenden System erzeugen. So können, selbst auf modernen Rechnern, zum Beispiel alte Spieleklassiker teilweise nicht flüssig laufen. Die SW-Entwicklung für solche Emulationen ist sehr aufwendig.
Ein weiterer Nachteil besteht darin, dass Spiele ohne Frame-Limiter zu schnell ablaufen können, wenn die Systemleistung ausreicht, das Spiel mit deutlich mehr Bildern pro Sekunde darzustellen als ursprünglich vorgesehen.
Software
ROMs
Software älterer Computersysteme, besonders der Spielekonsolen, ist häufig nur in Form von ROM-Bausteinen verfügbar. Da sich ROMs relativ einfach auslesen lassen, arbeiten Emulatoren in der Regel problemlos mit so genannten ROM-Dateien (oder auch ROM Images), die in verschiedenen Dateiformaten vorliegen. Ein Hindernis bei der freien Verwertung und Verteilung ist allerdings, dass ROMs (Spiele) in der Regel urheberrechtlich geschützt sind und manche sogar noch kommerziell genutzt werden. Manche Emulatoren können auch komprimierte Dateien (z. B. im Zip-Format) lesen, die mehrere Dateien enthalten können.
Entpackt verweisen verschiedene Dateiendungen auf bestimmte ROM-Formate, beispielsweise:
- .nds – Nintendo DS
- .nes – Nintendo Entertainment System
- .bin – manche ROM-Bausteine (zum Beispiel Arcade, A2600) gelegentlich auch für beliebige Images verwendet.
- .crt – C64 CaRTridge Image, ROMinhalt eines Steckmodules für den Expansionsport
- .gb, .gbc, .gba – Gameboy, Gameboy Color und Gameboy Advance
- .a26 – Atari 2600 Steckmodul
- .smc – Super Nintendo ROM
- .n64, .z64 – Nintendo64 ROM (auch im Zip-Format)
- .smd – Sega MegaDrive ROM (abgeleitet von Super Magic Drive)
- .sms – Sega Master System
Images von Datenträgern
Ähnlich verhält es sich mit Kopien von Software, die auf Bändern oder Disketten ausgeliefert wurden. Auch hier sind Tape Images bzw. Disk Images für die Benutzung mit einem Emulator verbreitet.
- .adf, .adz, .dms, .dmz – Amiga Disk Files (.adf auch für Acorn Disc File)
- .d64 – C64 Disk Image einer Floppy 1541 – 5,25″ einseitig – ~170 kB), weitere Disk-Formate existieren
- .p00, .s00, .u00, .r00 – C64 Dateityp (PRG für Programme, SEQ für sequentielle Dateien, USR (User-Dateien) und REL für Dateien mit relativem (=wahlfreiem) Zugriff)
- .msa – Atari ST Disk Image
- .sid – C64 Musikstück im SID-Format
- .t64 – C64 Containerformat eines erweiterbaren Tape Images
- .tap – C64 konvertiertes Original Tape File einer Datasette (8–16x größer als PRG)
- .iso – CD/DVD-Image, wird von verschiedenen Emulatoren verwendet
Manche Emulatoren (zum Beispiel M.E.S.S.) können auch echte Töne von Cassetten als wav-Datei einlesen.
M.A.M.E.
→Hauptartikel M.A.M.E.
Ein beliebter Emulator ist M.A.M.E. („Multiple Arcade Machine Emulator“), der tausende bekannte Arcade-Spiele wie Pac-Man emuliert.
Die Spiele-ROMs sind bei dem quelloffenen Emulator jedoch nicht enthalten.
Siehe auch
Literatur
- Hansjürg Wüthrich: Emulatoren – Wie Computersysteme und Spielkonsolen unsterblich werden, Skriptorium-Verlag, 2007, ISBN 3-938199-08-3.
Weblinks
Wiktionary: Emulation – Bedeutungserklärungen, Wortherkunft, Synonyme, ÜbersetzungenCommons: Emulation software – Sammlung von Bildern, Videos und Audiodateien- Links zum Thema Emulator im Open Directory Project
- Nintendo über ROMs und Emulatoren (englisch)
- The Emulator Zone – Übersicht über Emulatoren für viele Konsolen (englisch)
- AEP Emulation Page – News, Forum und Datenbank für Emulatoren (deutsch)
- RETROBASE.NET – Datenbank für klassische Videospiele mit Screenshots (englisch)
- Yet Another Z80 Emulator by AG – YAZE-AG: Z80 CPU Emulator mit CP/M 3.1 (englisch)
- Beispiele:
Wikimedia Foundation.