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.

The Quiet Tech Toolkit

One concept which changed my relationship to the internet is the idea that, fundamentally, it is a pull medium. When you visit a website or an app, you are “pulling” stuff to you.

This means that with some care, we can be guilt-free about being selective on what we pull, and enjoy the benefits of the Internet (knowledge, curation, etc.) without the downsides (malicious ads, algorithmic feeds and general screaming.)

In this post I’ll give you a couple of tricks and links to tools which, hopefully, will make your stay on the Internet just that little bit healthier and quieter.

Make your New Tab page empty

Likely, right now your New Tab page shows you the websites you use the most. And likely, the websites you use the most are where most of the screaming happens (e.g. social media.) Now, I’m not saying we shouldn’t use social media, but I am advocating for being more mindful and intentional about using it.

If I intend to open Twitter, then I will. But I don’t need to be reminded about its existence every time I see a new tab. Throughout the day we open new tabs maybe dozens of times, and each one of them is a reminder to “just check out Twitter/Facebook.” Let’s remove that.

If you use Chrome, this extension will do the trick. It’ll show a completely blank page as your new page. If you use Firefox, type about:preferences#home into your address bar and uncheck everything there.

The empty New Tab page is just something I take for granted now, and a simple trick which makes you more intentional about how you use the web.

Hide algorithmic feeds

How many times have you found yourself scrolling mindlessly through a feed, only to then “snap back” to reality to immediately close it? This is intentional, and brilliant minds are working tirelessly to improve the algorithms used to show you things you may like, sprinkled with ads.

The biggest culprit for me is YouTube, but I’m sure you have yours. Speaking from experience, blocking the website outright doesn’t work. It’s also a net negative, since many of those websites with “feeds” (e.g. Reddit/Twitter/YouTube) actually have content that’s worthwhile. The solution is to simply hide the main “feed” while keeping the rest of the site open.

Hiding feeds is possible with some crafty use of ad blockers (more on them later,) but the extension “Hide Feed” does that well and with only one click. The free version allows you to block the feed of one website, and that for me was enough since YouTube is my beast.

Block ads

Advertising is a perfectly legitimate way to let people know about your product. The product would then improve those people’s lives, resulting in a net positive.

Sadly, this is not how advertising works today on the Internet. On the privacy side, ads are used to actively track your activity across websites, apps, and devices. But even purely on a practical level, ads are resource hogs. They use up significant resources on your device, be it processor of battery power. And with ad blockers, we can get rid of all of them.

On the desktop

uBlockOrigin is the standard ad-blocking extension for your browser. Just install it and forget it. For Safari, look into AdGuard.

On mobile

If you’re on iOS, block ads on Safari with the AdGuard app. Then block them in apps using the AdGuard DNS profile. If you’re on Android, install uBlockOrigin from Firefox’s Extensions menu to block ads on the browser, and use the same AdGuard DNS trick as before for apps.

Empty your home screen

This is what my home screen has looked like since about 2016:

This is again about bringing back intentionality to your tech use. If you want to use an app you can (swipe down and start typing its name,) but this way you are not reminded of [App]’s existence every time you unlock your phone. It’s a bit painful at first, but going app-less on the home screen is a one-way road: you won’t want to go back.

Disable all non-message, non-phone call notifications

This is also going to hurt at first, but it’ll save you hundreds of hours you were going to spend “just checking the time.” The rule is one and simple: if it doesn’t require an immediate action from me, it doesn’t make it into my notifications. This can also from inside an app itself. For instance, Instagram messages make it, but likes don’t. Telegram personal messages make it, channels don’t. And so on.

If you have a tip you use to make tech quieter, please do share it with me at lorenzo [at] this website’s domain and I will add it in. I’m one hundred percent sure there is something out there I haven’t even considered.

First Look at Obsidian – A Promising Zettelkasten App

You know it’s a good day when new Zettelkasten software comes out. And today is a tremendous day, since Obsidian just came out of the blue with a spectacular app to manage our Zettels.

This time I thought I’d try something a little different: here’s a first impressions video from me instead of the usual wall of text.

Track your Intermittent Fasting with Zero

Occasionally, you come across an app which does exactly what it promises, and does it so well you don’t feel like it should improve in pretty much any way. For me, right now, that app is Zero. It’s free, for iOS and Android.

Read more