Emulation software allows you to use a different operating system to your host. For instance, you could run a Windows 7 emulator on your Windows 10 machine. You can still use Windows 10, but you can also dip into Windows 7 as you want.
Many people use emulators every day, to test software, try out a new operating system, or run an old video game console.
But have you ever wondered how emulators work? Or why your emulators are slow or experience lag? Read on and you’ll find out how amazing emulation really is.
Emulation Hardware Makes a Difference
Let’s think about what affects emulation performance using a real-world example.
PlayStation games don’t work on your Windows system because those games are not designed to run on a normal computer. PlayStation devices are very specific in their physical makeup, containing unique hardware that Windows—or any other computer operating system—doesn’t know how to use.
That’s why you need an emulator. Emulation software aims to run a program designed for one kind of system on another system. The programs that make this happen are known as emulators. While the details and inner workings vary between emulators, in the end, they attempt to achieve the same outcome: to make software run on different hardware.
How Do Emulators Work?
Emulators work hard to get a foreign program running. In short, an emulator is a piece of software that “acts” like a piece of hardware. In most cases, this means simulating all of the capabilities of a hardware component as a software component. Not only that, the hardware components that are emulated as software must perform without bugs, or else the emulator won’t work properly.
The difficulty in turning advanced and unique pieces of hardware into functioning software is why emulators for modern gaming consoles take a long time to develop. It takes a lot of hard work and effort to get the emulation process working, because modern hardware, like a PlayStation 4 or an Xbox One, is exceedingly complex.
Going back to the PlayStation example, an emulator must mimic a special sound chip, graphics card, central processing unit, and so on, without even considering the emulation of peripheral components like CD drivers.
So, what’s the hardest component to emulate?
Central Processing Unit
The most difficult piece of hardware to emulate is usually the central processing unit (CPU). The CPU is a core component of every computer, from smartphones to video game consoles. In many ways, the CPU is the most important computer component regarding emulation, as every other component links to it directly.
Not all CPUs are the same. The main way CPUs differ from each other is in their instruction sets. A CPU instruction set determines how a computer carries out the commands a program gives it. An emulator will target a system that has a different instruction set from the host machine. For example, the PlayStation’s CPU uses an instruction set known as MIPS, which is different from desktop or laptop that uses x86.
Why Are Emulators So Slow?
The difference between instruction sets is one of the reasons why emulators sometimes underperform. Every CPU instruction the emulator receives must translate from one instruction set to another. Furthermore, this instruction set translation takes place on the fly.
In the example above, the PlayStation emulator CPU receives a MIPS instruction, translates it into x86, then runs on your computer.
The translation of instruction sets forms the basis of how emulators simulate an entire device inside your computer. Another way to look at it is as a real-world translator rapidly relaying a conversation between two people who speak different languages. Even if the translation is very fast, you will always encounter some loss in speed. The more complex the languages, the slower the translations.
Virtualization vs. Emulation: What’s the Difference?
Virtualization is very similar to emulation, but there are important differences between them. In particular, virtualization usually refers to the use of virtual machines. Virtualization and emulation accomplish the same thing, but they go about it in slightly different ways.
Both are designed to run the software in an isolated environment. Virtualization focuses on the isolation while emulation focuses on the environment. What this means is that emulators simulate a larger range of hardware than virtual machines can.
You can’t run a PlayStation system in a virtual machine, for example. But you could run a PlayStation emulator in a virtual Windows environment.
However, because of this, virtualization is often faster than emulation. Rather than emulating a system, a virtual machine allocates processing power to an isolated subsystem. Importantly, this means the CPU is not emulated.
As such, the target audiences of the two differ somewhat. Emulators tend to be designed for video game consoles (or other systems that are completely different from regular computers) whereas virtual machines are more likely to be found running in businesses. This is because they provide a fast and secure environment in which to run programs.
However, this is mostly nit-picking. Practically speaking, virtualization and emulation are functionally the same in that both mainly exist to translate from one “instruction language” to another.
3 Ways You Can Use Emulation
There are a few ways you can take advantage of emulation. You might even be using it now without even knowing! Here are a few notable examples.
1. Run 32-Bit Programs on 64-Bit Windows
64-bit Windows is different to 32-bit Windows. The 64-bit version of Windows can use a special compatibility layer to run 32-bit programs. There is no need to emulate an entire system to get things working because 32-bit programs are similar in design already. Because of this, the process is extremely fast.
2. Emulate Every Console
The latest consoles are very difficult to emulate. Although the PlayStation 3 hit the markets in 2006, it is still difficult to emulate a large proportion of games for the console. The emulation situation for the Xbox 360 lags even further behind.
Still, emulators exist for heaps of older video game consoles, including many of the best consoles of the 90s. There is a bonus to running the old video game emulators on modern hardware. The old games receive a performance boost on modern hardware. Depending on the emulator, you can use HD or even 4K graphics, making use of the extra computing power to play games at far higher levels than their native resolution. Check out the video for a prime example, using the PCSX2 PlayStation 2 emulator to play Gran Turismo 4.
You can even run video game emulators on your Android device, letting you retro game on the go.
3. Test Out Different Operating Systems
Usually, if you want to try out a new operating system, you’ll need to install it on your hard drive. Emulation lets you run a separate operating system right on your current operating system using a virtual machine.
There are several reasons why you’d want to do this. You won’t have to worry if your installation misbehaves since it’s restrained to a virtual environment. It might also be your only option if you want to try out an operating system that is incompatible with your computer hardware. The Windows Sub-system for Linux is a good example.
Why Is Emulation So Hard?
You now understand more about why emulation is tricky. Emulating a video game console is a complex process—and this article only covers the basics. However, now you understand more about the process of emulation and the development of emulators, you’ll know exactly why it’s a little slow next time you use one.
If you want to start delving into your back catalog of video games, here’s how you play PS2 games on your PC. Alternatively, head back a little further in gaming history and learn how to play PS1 games on your PC, instead.
Read the full article: How Do Emulators Work? The Difference Between Emulator and Simulator