On Game Emulation

Just yesterday I came across a video I had uploaded to YouTube eleven years ago. In it, 16 years of age and with an English that was just starting to form, I review my game consoles while holding a shaky, low-res point-and-shoot I don’t even remember ever owning.

Now, those game consoles are sitting in a dusty, nameless box 3000 kilometers from where I am. Of course they are just objects, and to most people, objects with no purpose other than to waste people’s time. To me, though, they are an integral part of my childhood.

This is why now, living so far away from my first home, I find myself gravitating towards emulation. Sure, it’s not the real thing. The feeling of opening a jewel case, opening the lid, placing the CD and turning the console on while the cathode-ray tube TV warms up can’t be replicated by emulators. But it’s pretty darn close. And for us with limited space or “nomads” with no fixed, long-term, “settled-for-real” abode, it’s about the only practical choice we have.

Sonic the Hedgehog for the Sega Mega Drive/Genesis emulated on Retroarch with the Genesis Plus GX core and the ntsc-adaptive shader.

If you’ve never heard of emulation, or if you still can’t wrap your head around it, here’s how I would describe it. Your console is a box. On one end, it takes inputs, in the form of the buttons you press and the games you put into it. At the other end, as output, a picture and sound come out. Emulation is the act of replicating this box in software, in such a way that when you give it the same inputs, you get the same outputs.

There are different ways of making an emulator. One way, called low-level emulation, (LLE) tries to replicate the box exactly as it is, not just in terms of input and output, but the whole inside of the box too. People making low-level emulators go down deep, analyze each item that’s in the box, and replicate it exactly as-is in software. They don’t care too much about the fact that the right output comes out in the end: that’s just an accidental by-product of the fact that they replicated the box’s contents so faithfully.

The other, called high-level emulation, (HLE) doesn’t involve itself with what’s inside the box. People making high-level emulators don’t try to replicate the original hardware exactly, what they do is stringing your inputs together with your computer to make sure you get the same output as the real console. They don’t even need to know what’s inside a console to develop the emulator. This is sometimes called simulation rather than emulation, but that’s just semantics.

Each method has its pros and cons. Running an entire system architecture in your computer, at the low level, is not a light task. You’ll need a powerful computer even just to emulate 30-year old systems. If the original system had a CPU that did something every 5 milliseconds, for example, plus a video chip and an audio chip that did something else at the same time, the emulator on your computer needs to tell your one CPU to do all these, exactly as they would have on original hardware. That takes computing power. The result, however, if your hardware is powerful enough, is emulation that is nearly perfect, virtually indistinguishable from the original, warts and all. The opposite is true for HLE: the result is not quite as accurate, but you can run even the latest systems on modest hardware. It’s a question of tradeoffs.

Emulation has often been associated with piracy. In some circles, the two words are one and the same. While it’s true that they can be used to play games one doesn’t own, this can be said of real consoles too. It’s no fault of the emulators. Emulators are just tools: it’s up to the users to choose how to use them. Nintendo’s entire concept of “Virtual Console” is just another name for emulation, to name an example, yet it’s as further away from piracy as it gets. The connection is unfortunate.

Darius Gaiden for the Sega Saturn. Emulated on RetroArch with the Beetle Saturn core, plus the ntsc-adaptive shader.

75% of all movies made in the silent era is now lost. 50% of all American movies made between 1927 and 1950 is also lost. Imagine: a movie comes out, and everybody loses their copies of it, even the people who made it. Movies are an important artifact of our culture: they speak loudly about the times and environment they were made in. And they are often landmarks we refer to when we talk about a particular decade. If I mentioned the 50s, the first thing coming to your mind is probably a black and white still from an old movie. The importance of movies in our culture can’t be understated, so it’s a tragedy when even one gets lost. Video games are no different.

Just like previous generations defined cultures and eras by referring to music and movies, our generation can add video games to this list of media. The ‘70s were PONG, the ‘80s were the NES boom, and the ‘90s were early 3D, just to name a subjective few. When I thumb through decades in my mind, games come at the fore just as much as movies and music do. We need to avoid losing 75% of our culture again. And this is why it’s important to preserve games.

The unfortunate thing about video games is that they require specialized hardware to be played. Hardware which starts decaying as soon as it stops being produced. While some games get officially re-released for newer hardware, most don’t. The only way to officially play nearly all Atari VCS games is by finding a 40-year old used Atari VCS, finding a 40-year old cartridge, and hoping everything still works. While this is still feasible now, hardware won’t live forever. Things get broken, sometimes beyond repair. How many Atari VCSs will still be around in 200 years? This is why the only way forward for complete preservation is emulation.

Besides classic physical preservation work (e.g. museums), emulation is crucially important for the preservation of these cultural artifacts into the future. By documenting the games and the hardware they run on, the emulation and game preservation communities are doing work to keep this media alive. MAME gets a special mention here: they faithfully documented the internal hardware of thousands of arcades, many of which are now only found in landfills.

In my opinion, the state of emulation, right now, is among the best it’s ever been, and only getting better. There are now CPU cycle-level accurate emulators for many systems. Nearly all emulators have free and open source code, which means the work done in one emulator benefits everyone. Many emulator developers found a way, through Patreon, to fund and financially sustain their work. Emulating hardware in software ceased to be the only option: now we can emulate hardware in hardware. Improvements are being made on existing emulators on a regular basis, and there is so much choice that there’s bound to be something for everyone.

This choice can cause paralysis. If you want to start dipping your toes into emulation, I can recommend the Emulation General Wiki as a good place to start. The front page lists pretty much everything you might want to know: just check the page for the system you want to emulate. You don’t need a beefy computer, any old one will do for systems up to the PS1. The Emulation subreddit is also active and friendly.