Software emulators are programs that emulate a computer, making it possible to use software for that computer on a computer with a different architecture. So z. B. Games for older game consoles run on a PC or a newer game console. Another example: When developing a program for a device (e.g. a mobile phone) that has a different architecture than the development computer, a software developer can test and correct this in the emulator without copying it to the device every time to have to.
A hardware emulator is an electronic device that can functionally, electrically or mechanically (housing and pins) emulate a system such as a printer or a processor (CPU). The connection to the processor module is established using a socket and a suitable connector. It is also known as an in-circuit emulator (ICE).
Emulators are among the interpreters .
History of emulation
A (processor) emulator was used for the first time in 1962. IBM arranged numerous tests in La Grande (France) to check the compatibility of their new products with their predecessors. A combination of hardware and software was used for this purpose, which the IBM engineer Larry Moss called an "emulator". Finally, in 1965, the System / 360 line was officially released. It also included the first emulator - the "7070 Emulator" allows the use of programs for the older IBM 7070 model .
In 1985 the Atari ST appeared with a 68000 CPU, new for the home computer market, and the Atari TOS operating system . Initially, there was little application software for this hardware. The transition from the then widespread 8-bit software under CP / M to the new 16-bit world was made easier by Atari with the free CPMZ80 emulator. This pure software emulator generated a virtual, complete Z80 CPU on the 68000 hardware as well as an operating system compatible with CP / M 2.2. This enabled both popular and existing software to run smoothly.
MegaDrive was the first published video game emulator in 1994 , which emulated the console of the same name . This only rudimentarily supported the game Sonic the Hedgehog ; Development came to a standstill after the programmer lost the source code . In the same year, Chris George published the initial but non-functional version of "VSMC", which was the first to emulate the Super Nintendo Entertainment System .
The most common emulations in IT today are printer or plotter emulations. Almost all high-quality laser printer emulate currently a Hewlett-Packard -LaserJet printer ( HP PCL ), as well as raster printers are emulated. The emulations Epson ESC / P , IBM -Proprinter and others are still common.
A classic terminal emulation allows interaction with text-oriented programs that run on a remote computer via an external interface, usually a serial line or a modem connection. Today, however, network connections via TCP / IP are the rule. Terminal emulations were programmed to mimic the behavior of a “dumb” terminal, that is, a simple data display and input device. In addition to text-oriented terminal emulations, solutions for remote processing with a graphical user interface (Citrix, MS remote desktop, X terminal) are increasingly used today. With these graphic emulations, Unix users , for example, can use programs that are only available for Windows (and vice versa) directly from their workstation . Administration is also made easier, since the main maintenance and installation work is only carried out on one system, the terminal server.
A virtual machine (VM for short) is often incorrectly referred to as an emulator. This special software creates a runtime environment on a host computer, the actual virtual machine, which maps the hardware interfaces of the computer (or a similar computer). A guest operating system runs - as usual - on the host computer's CPU, but all accesses to the input and output hardware are redirected to the host operating system's software interfaces. This makes it possible to run another one in a window under the existing operating system. In professional applications, several guest operating systems run in parallel on just one hardware device under a hypervisor , a special form of VM; In fact, a single computer is divided into several.
- Mac-on-Linux , which can virtualize Mac OS “Classic” on Linux systems on PowerPC computers ;
- Parallels Desktop for Mac , which enables you to run e.g. B. Windows and Linux allowed under macOS . Individual Windows applications (more precisely: their windows) can behave “seamlessly” like applications for OS X, detached from the virtual Windows screen;
- Parallels Workstation , proprietary virtualization;
- VMware Workstation , proprietary virtualization;
- VirtualBox , free virtualization, very popular in private and semi-professional areas;
- Windows Virtual PC , emulates different Windows systems in one window on a computer;
- Hyper-V , successor to Windows Virtual PC ;
Strictly speaking, the “compatibility layer”, which does not try to emulate an entire system, but is limited to the emulation of software interfaces , must also be distinguished from the emulator . A well-known example is Wine , which provides a large number of the Windows software interfaces under Unix-like operating systems, so that a number of Windows programs can run under the actually foreign operating system.
Areas of application
Emulators are used for various purposes:
- Investment protection: Software that was developed for older systems can continue to run on modern systems.
- Example: A PC on which Windows can be installed is emulated on a Linux / Apple / Amiga computer using Bochs , QEMU , VMware or Windows Virtual PC . Most of the Windows software you have bought so far can still be used.
- The open source project Wine, on the other hand, only emulates the interfaces of the Windows operating system to the application.
- Example servers from Digital Equipment Corporation: Because of the high acquisition costs, PDP-11 , VAX AlphaServers from DEC including the OpenVMS operating system have often been in use for over twenty years. With emulators like Charon , the operating system and the associated applications can be kept unchanged, while the emulators themselves are installed on standard servers.
- Software development:
- It is possible to develop and test software for other systems.
- Example: Programs developed for the Palm OS on a PC can be tested with a Palm emulator.
- It is possible to test an operating system.
- It is possible to determine the functionality of compressed or partially encrypted software
- Example: To identify unknown or packaged malware, it can be examined for functionality in a test environment. It can be determined whether the malware is already known in encrypted or packed form. This is implemented in some antivirus programs such as Comodo Internet Security .
- It is possible to develop and test software for other systems.
- Training: An emulator allows you to familiarize yourself with systems that would otherwise be very expensive to acquire.
- For long-term archiving of digital objects, emulation is an alternative to migration or conversion (see also electronic archiving ).
- Leisure time / hobby: Thanks to suitable emulators such as e. G. B. MESS run on modern hardware, as well as sound emulators such as ASAP or UADE, the music of computer games.
- Ergonomics: Software that normally only runs on systems with unergonomic input / output devices (LC displays) can run on systems with comfortable screens.
- Example: The image reproduction with Game Boy emulators on a PC is better than with a real Game Boy.
- The MOSC scene uses emulators to access pay-TV offers free of charge and illegally. These usually make a dump of the original ROM of the smart card and implement it in an emulator for various systems such as PCMCIA PC card, DVB receiver, DVB-S TV on the PC. The former television broadcaster Premiere had to struggle with emulators at the time, as they work exactly like an original subscription smart card from the pay-TV broadcaster. In addition, these so-called EMUs not only contain the encrypted keys of the SmartCard, but also various encryption algorithms such as. B. Betacrypt I + II, all offshoots of the Nagravision, Seca Mediaguard, Viaccess etc. system
Hardware emulators enable the development of machine-level software, since no emulation software of the software under development "fakes" the target system, but rather special hardware usually enables the software to run in a "real" environment. The emulation hardware mostly offers options for stopping the software, setting hold conditions etc. without changing the runtime behavior of the software. Most possibilities are usually offered by an in-circuit emulator , in which a specially equipped microprocessor is used in the real target hardware for software development.
- HP Terminal
- Memorex Telex Terminal
- JANUS (Atari hardware emulator for the PC from 1995)
- Siemens DS078 , VDU2000 , DISIT , DS075 terminals
- Virtual drive
- Floppy drive emulator
Well-known software emulators
Emulation of x86 platforms
- TeemTalk from Hewlett-Packard (formerly Pericom)
- Microsoft Virtual PC from Microsoft (emulates an x86 platform on Macintosh systems)
- Win4Lin from Netraverse
Emulation of PowerPC platforms
- PearPC emulates PowerPC G3 and G4 platforms, mainly for use with some older versions of Mac OS X / PPC
- SheepShaver emulates G3 or G4 PowerPC Macs for the use of classic Mac OS up to 9.0.4
Emulation of 68k platforms
- Basilisk II emulates a Macintosh computer with a Motorola 68000 processor, primarily for use with older 68k versions of Mac OS and System .
- UAE emulates Commodore Amiga systems (Motorola 68k processors and custom chips)
Emulation of other platforms
- Hercules , an emulator for various IBM mainframes , such as the System / 360 , 370/390.
- MAME emulates various arcade machines
- MESS emulates various game consoles and home computer models
- SIMH emulates various mini and mainframes
- CPMZ80 simulates a Z80 CPU and a CP / M 2.2 operating system on the Atari ST computers
- epsxe maps the hardware environment of the PlayStation 1 on x86 systems
Hybrid systems that emulate and virtualize
VMware Server , Microsoft Virtual Server and Windows Virtual PC (the version for Microsoft Windows systems) are all mixed systems in which essentially only the processor is virtualized. The rest of the PC platform, such as B. network card, BIOS, etc., however, is emulated.
Regardless of the actually installed hardware (e.g. NE2000 ), z. E.g. with the VMWare server either a 100BaseTX PCI network card from AMD, alternatively a 1000BaseTX (Gigabit) PCI network card from Intel or a virtual card with VMWare's own drivers can be emulated. A Phoenix variant is always emulated as the BIOS.
The LAN card emulated by Microsoft Virtual PC is always based on a DEC / Intel-21 * 4 * (TULIP) chip, regardless of the chipset of the card of the Virtual PC host. Likewise, the sound card is always based on a Sound Blaster 16.
Often mistaken for that, but not emulators
The following software - mainly virtualization solutions - is often mistakenly mistaken for emulation software:
- VMware ESX Server is not one of the emulators because it is about virtualization, not emulation, of systems and neither software nor hardware is emulated. Rather, the hardware is virtualized
- Wine ( W INE I s N ot to E mulator) - not an emulator, since only API functions are emulated (but directly executed the code as such)
- CrossOver - see WINE
- Cedega - see WINE
- LINE - like WINE, no emulator
- Xen - like the VMware ESX server, is a hypervisor and thus a virtualiser
- I / OS
- Mac-on-Linux virtualizes Mac OS X on a Mac with a PowerPC processor under Linux
- ShapeShifter virtualizes classic Mac OS up to 8.1 on an Amiga with 68k processor (from Amiga 1200 )
- SCO UNIX - an operating system
- ScummVM - which is just a kind of interpreter for various scripting languages used by adventure games .
- Hyper-V - see Xen
Systems and benefits of emulation
Emulators exist for almost every system. Emulators for home computers are popular, for example the VICE for the Commodore 64 or the UAE for the Amiga . However, there are also countless other emulators for computers, handhelds , arcade machines and game consoles , see also MESS
Recently, emulators have also played an important role in the freeware scene. The Game Boy Advance, for example, thanks to its relatively simple programmability, offers the possibility of developing games and applications that can then also be used on an emulator.
Game console emulators have several advantages over the real, original hardware. These include the excellent picture quality, the digitally processed and thus lossless recordable sound. Other aspects that enhance the user-friendliness of the actual systems are e.g. B. improving the video output (e.g. blurring and filtering of graphics on consoles such as Super Nintendo or PlayStation , although these systems never support these techniques, let alone calculate them) or using savestates to quickly save and load game states - at any time during the duration of the game.
Disadvantages of software emulation
The main disadvantage of software emulation is that it creates a high computing load on the emulating system. Even on modern computers, for example, old classic games can sometimes not run smoothly. The software development for such emulations is very complex.
Another disadvantage is that games without a frame limiter can run too fast if the system performance is sufficient to display the game with significantly more frames per second than originally intended. Most emulators, however, offer the option to limit the computing power emulated.
Software of older computer systems, especially game consoles, is often only available in the form of ROM modules. Since ROMs can be read out relatively easily, emulators usually work without problems with so-called ROM files (or ROM images ) that are available in various file formats. An obstacle to free exploitation and distribution, however, is that ROM content (software, here games) is usually protected by copyright and some are even used commercially. Some emulators can also read compressed files (e.g. in zip format), which can contain multiple files.
Unpacked, various file extensions refer to certain ROM formats, for example:
.nds- Nintendo DS
.nes- Nintendo Entertainment System
.bin- some ROM modules (e.g. Arcade, A2600) are occasionally used for any image.
.crt- C64 CaRTridge Image, ROM content of a plug-in module for the expansion port
.d64- C64 disk image (mostly a binary image of a diskette side in the classic VC1541 format)
.gba- Game Boy, Game Boy Color and Game Boy Advance
.a26- Atari 2600 cartridge
.smc- Super Nintendo ROM
.z64- Nintendo64 ROM (also in zip format)
.smd- Sega MegaDrive ROM (derived from Super Magic Drive)
.sms- Sega Master System
Images from media
The same is true of copies of software that were delivered on tapes or floppy disks. Again, tape images and disk images distributed for use with an emulator.
.dmz- Amiga Disk Files (.adf for Acorn File Disc)
.d64- C64 disk image of a floppy 1541 - 5.25 ″ one-sided - ~ 170 kB, other disk formats exist
.r00- C64 file type (PRG for programs SEQ sequential files, USR (user files) and REL for files with relative (= random) access)
.msa- Atari ST disk image
.sid- C64 piece of music in SID format
.t64- C64 container format of an expandable tape image
.tap- C64 converted original tape file of a datasette (8-16x larger than PRG)
.iso- CD / DVD image , used by various emulators
.dsk- dumps of various storage media
.vfd- Floppy disk image from 3.5 ″ floppy disks
Some emulators (for example MESS) can also read in real tones from cassettes as wav files.
- Hansjürg Wüthrich: Emulators - How computer systems and game consoles become immortal . Scriptorium-Verlag, 2007, ISBN 3-938199-08-3 .
- Link catalog on the topic of emulators at curlie.org (formerly DMOZ )
- Nintendo via ROMs and emulators (English)
- The Emulator Zone - Overview of Emulators for Many Consoles
- AEP Emulation Page - News, forum and database for emulators (German)
- Emu Download Center - Large collection of emulators
- Olof Leps: Modeling and implementation of hybrid test environments for cyber-physical security analyzes . In: Hybrid test environments for critical infrastructures . Springer Vieweg, Wiesbaden, 2018, ISBN 978-3-658-22613-8 , pp. 69–119 , doi : 10.1007 / 978-3-658-22614-5_5 ( springer.com [accessed December 30, 2018]).