Affiliate Disclosure: By buying the products we recommend, you help keep the lights on at MakeUseOf. Read more.
We’ve covered quite a few examples of emulation in the past, but only brushed on how it really works. And for the most part, that’s fine. It’s totally possible to just launch your PC and use an emulator without worrying about the details of it.
But have you ever wondered what actually happens behind the scenes? Why emulators are so slow? Or even how emulation can further improve your day-to-day life? Read on and you’ll see just how amazing emulation really is.
Not All Hardware Is Made Equal
For instance, PlayStation games don’t work on Windows because those games are not designed to run on normal computers. PlayStation devices are very specific in their physical makeup and contain unique hardware that Windows — or any other PC operating system — doesn’t know how to use.
This is where emulation comes in: emulation aims to run programs designed for one kind of system on another kind of system, and the programs that perform this process are called emulators. The details are a little more complex, but in the end, they all try and achieve the same thing: to make software runnable across different hardware.
How Do Emulators Work?
There’s a large amount of work that emulation has to do to get a foreign program running. In short, an emulator is software that tries to “act” like a piece of hardware. Usually, this means simulating all of the abilities of a hardware component as software components.
If you’re wondering why there aren’t emulators for modern systems (e.g. the Xbox One), this is the reason why. It takes a lot of hard work and effort to get the process working because modern hardware is exceedingly complex.
Going back to the PlayStation example, an emulator would have to pretend to have a special sound chip, graphics card, and so on, even extending to simulate peripheral components like CD drives.
Central Processing Unit
The hardest component to emulate is usually the central processing unit (CPU). It’s one of the core elements of every computer, from smartphones to video game consoles, and in many ways the most important. Without a CPU, programs would be unable to function.
The main way CPUs differ from each other is in their instruction sets. Basically, they determine the way in which a computer carries out commands that programs give it. Emulators generally target systems which have different instruction sets than the host system.
For example, the PlayStation’s CPU uses an instruction set called MIPS, which is different from desktops and laptops that use, say, x86.
Why Are Emulators So Slow?
Every CPU instruction received by the emulator needs to be translated from one instruction set to the other instruction set, and this translation needs to be done on the fly. So in the example above, a PlayStation emulator would receive a MIPS instruction, translate it into x86, then run it on the laptop.
This is the basis of how an emulator can simulate an entire device inside your own computer. Imagine an interpreter trying to relay a conversation between two people who speak different languages. Even if the translation is very fast, there will always be some loss in speed, but the more complex the languages, the slower the translations.
Virtualization vs. Emulation
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 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.
However, because of this, virtualization tends to be faster than emulation. Rather than emulating a system, virtual machines instead allocate some processing power to some isolated subsystem. This means the CPU is not emulated, which is also the reason why virtual machines tend to be less versatile.
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 to 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 in.
However, this is mostly nitpicking. Practically speaking, virtualization and emulation are functionally the same in that they mainly exist to translate from one “instruction language” to another.
3 Ways Emulation Can Benefit You
There are a number of 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 versions of Windows use a special kind of emulation called a 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.
If you’re using Microsoft Office, you’re probably using the 32-bit version — emulation right at your fingertips!
2. Make Your Computer a Universal Console
You can play a lot of older video game platforms on your computer using the right emulators — and the funny thing is that a lot of these games actually run better through emulation than on their native hardware because modern computers are so fast.
For example, with a strong enough computer, you can actually play some games at higher resolutions than they were designed for:
You can even set up your mobile phone to emulate video game consoles for a more handheld experience. Or conversely, emulate a mobile phone on your computer.
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 through the use of a virtual machine.
There are a number of 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, such as one for the Raspberry Pi.
Translation + Simulation = Emulation
Emulation is an extremely complicated process and this article only covers the basics. But hopefully it gives you a glimpse at what happens under the hood. So when you boot up an emulator, whether that be to play an old video game, or to safely run a program, you’ll know exactly why it can be a little slow.
What are your experiences with emulation?