We may earn a commission from links on this page.
One of my favorite ways to spend my free time is watching old movies. I love catching up on classics on my big OLED screen, and delving into the history of a medium I love. Unfortunately, it’s harder to do that with video games. While pulling up an old movie is usually as easy as finding it on streaming or renting it digitally, old video games are split across a number of different consoles, and you can’t always count on rereleases to make them accessible on modern systems.
Luckily, there are still options for those who go looking for them. You can hunt down a vintage system and hook it up to your modern screen using an adapter, yes, but you can also use the power of modern devices to “emulate” these games in virtual environments, often with improvements—and if you do it right, it’s all perfectly legal.
What is video game emulation?
Emulation is a massive rabbit hole, and can get about as deep as you want it to be. I’ve been using it for decades, and I’m still learning new things. But there are some basics you should know that will help you get started, including how it works, its legal status, the drawbacks of not playing on real hardware, and the benefits it offers beyond simple convenience.
Credit: Michelle Ehrhardt
Essentially, emulation uses the power of modern machines to brute force virtual environments that are close enough to real hardware that files designed for it think they’re running on the real deal, and will boot up like they are. Usually, this means emulators won’t come out until one or two generations after a console’s official release, but there are now emulators for everything from the Nintendo Entertainment System to the Nintendo Switch (which runs on older hardware than you might think).
Granted, you might expect Nintendo’s not too happy about that, but the kicker is that there’s not a lot the company can do about it (aside from trying its best to scare emulator developers). A court case from way back in the day ruled that, so long as emulators don’t distribute copyrighted software, they’re allowed to write their own code that mimics official hardware all they want. That means you’ll need to provide your own games for your emulators, and in some cases BIOS (or operating system) files. To stay on the right side of the law, most emulator guides won’t tell you how to go about that, but there’s at least one method that’s totally fair game.
It turns out that U.S. law allows you to make your own backup copies of games you own, so long as you don’t distribute them. With that, there are plenty of legal devices that will help you rip your game files from your own cartridges and discs, some of which I cover here. Some emulators are even so advanced that they’ll play your real discs if you simply put them in your PC’s disc drive.
Still, even if everything’s above board, there are a few drawbacks to emulating rather than playing on real hardware. The biggest issue you’ll notice is with accuracy, as some games might have graphics or audio bugs. Input lag is also a common complaint, as emulators often need extra time to register your button presses, since they need to both read them and feed them through your software. Finally, some games might not even run on emulators at all, especially ones with unusual requirements. The original Xbox, for instance, is notoriously difficult to emulate.
On the flip side, though, there are benefits to emulating that real hardware can’t replicate, and they mostly come from the extra power of your modern device. Emulated games can often run smoother than on real hardware, hitting higher frame rates. You’re also usually able to render your games at higher resolutions than originally intended, basically playing them in HD. And most importantly for difficult games or flexible play sessions, you can use save states, which allow you to quickly save your current place in a game to a file, and reload it on demand. This, in turn, allows you to save your game whenever, outside of whatever save system is built into it. It’s perfect if you only have a few minutes to play, or if you’re about to fight a difficult boss in a punishing retro game and don’t want to replay the whole level if you mess up (no judgment here). Because save states essentially take your emulator back in time, they can introduce instability, so it’s advised to use them in addition to more traditional saves, rather than as a full-on replacement for them. Emulators for more modern, difficult-to-run HD systems also may not support save states.
Still, those are enough improvements that I often prefer playing retro games through emulation, even if I have real hardware available to me. And while some of those enhancements are available on official emulation—Nintendo Switch Online has save states, for instance—not all of them are. I haven’t even gotten into widescreen hacks, which lets you play old 3D games in a more modern aspect ratio without stretching the video, or HD texture packs yet. Benefits like these are why, if you’re willing to put in a little elbow grease, unofficial emulators are well worth trying out.
What you need to start emulating
The fans who develop emulators are crafty, and they’ve had plenty of time to refine their work, so most modern devices are able to emulate retro games to some degree. It’s become a running joke that Doom will play on just about anything, including a pregnancy test. But from a realistic point of view, there are a few things you’ll probably want on hand before you get started.
Credit: Michelle Ehrhardt
If you’re playing on a laptop or a desktop computer hooked up to a monitor, you’ll probably want a controller. Most emulators will support mouse and keyboard controls if you truly can’t get one, but using a controller will help a lot with the old school console experience. Aside from that, though, you might be all set. I have a desktop PC that’s pushing 10 years old at this point, and it’s still able to emulate games through the PS2 and GameCube era at full speed, while upscaling them. Beyond that is when emulation tends to get a bit more demanding, but for retro games, you probably won’t need to upgrade your machine.
If you want to play on a TV, though, you could have a bit more of a shopping list in store for you. In addition to a controller, you’ll also need some type of computer to emulate your games with, and while you can drag a laptop or desktop PC into your living room, it’s often not the most convenient solution. Instead, I suggest getting either a docked Steam Deck or a Raspberry Pi.
The former’s a bit pricier, and has had stock issues during the RAM crisis, but it’s also compact, plenty powerful when it comes to emulation, easy to output to a TV via a dock, and can play PC games natively, too. With the right Steam Deck emulation setup, you can essentially turn it into your own homebrew Nintendo Switch, but for all your consoles.
The latter, meanwhile, is far cheaper (although its price has also been inflated by the RAM crisis) and smaller, but will take a bit of knowhow to set up and can struggle when emulating systems released after the PS1. Your best bet if you choose to go this route is probably to buy a Raspberry Pi kit, as these will come with a case, cables, storage, and often a fan to get you started. You can also sometimes find these cheaper than a Raspberry Pi motherboard on its own.
But again, the world is your oyster when it comes to which devices you want to emulate with. It’s possible to emulate on a streaming stick or box, too. Generally, if a device has a motherboard and can display a video signal, people will usually find a way to game on it. To wit, you should look into emulating on mobile devices, too. These days, it’s possible to both emulate on an iPhone and on Android, and there is a whole slew of handheld gaming consoles that essentially build controllers into phone hardware running Android to give you an experience similar to a DS or PSP. These can be a great way to play portably, whether using touch controls, a Bluetooth controller, or built-in controls. And if you get a USB-C dock, you can then connect these devices to the big screen to play on them when you get home. You can even get a cheap handheld that runs Linux, for a similar experience to a Raspberry Pi while on the go. Read on here for more details about portable emulation.
Which emulators to get, and how to set them up
Now, it’s time to actually install your emulators, of which you have many choices. I’ve compiled a list of the apps you’ll probably be using to emulate your games, depending on the platforms you’re interested in, before going into how to get them:
Retroarch: An app with multiple emulator “cores” in it, that can run games from most systems up through the PS1 era, including the Super Nintendo and Sega Genesis.
Duckstation: A standalone app for emulating PS1, with enhanced stability and graphics features compared to Retroarch.
Mupen64Plus: A standalone app for emulating Nintendo 64, with enhanced stability and graphics features compared to Retroarch.
Flycast: A standalone Sega Dreamcast emulator with support for upscaled graphics and widescreen hacks.
MelonDS: A standalone Nintendo DS emulator with community-driven forks that can run on two separate displays for a more authentic experience.
Azahar: A standalone Nintendo 3DS emulator with community-driven forks that can run on two separate displays for a more authentic experience. Supports custom graphics drivers on mobile.
PPSSPP: A standalone PSP emulator with a highly themed user interface reminiscent of the original console.
Dolphin: A standalone GameCube and Wii emulator with high stability, support for custom mobile graphics drivers and upscaled graphics, and the ability to use motion controls. Usually preferable to emulating PS2 or Xbox, if playing a multi-platform game.
PCSX2: A standalone PS2 emulator with support for upscaled graphics. Best used for PS2 exclusives. Not available on mobile.
NetherSX2: A standalone PS2 emulator for mobile. Many of the same features as Dolphin, but lower stability, and no motion control or custom driver support.
Cemu: A standalone Wii U emulator with support for custom mobile graphics drivers and upscaled graphics. No save state support. Requires a high-end machine.
RPCS3: A standalone PS3 emulator with support for upscaled graphics, custom mobile graphics drivers, and save states. Requires a high-end machine.
Eden: A standalone Nintendo Switch emulator with support for upscaled graphics and custom graphics drivers on mobile. No save state support. Requires a high-end machine.
Phew, that’s a lot. On the plus side, most of these emulators are available for Windows, Mac, Linux, and Android, although iOS users have a bit less to pick from, as Apple restrictions on certain programming techniques mean higher-end devices like GameCube and beyond are difficult to run on its phones. On the plus side, iOS does have access to some potentially more convenient options for older systems, like Delta, which comes with cute touchscreen control overlays built-in.
Now, you could install these apps one-by-one, point them at your game files (which you’ll usually be guided through as part of setup), and play your games by booting up the specific emulator you want and picking the game you want to play from a list. But not only is that slow and inconvenient, it’s not as pretty and is less like using an actual retro console. To solve that problem, we have installers and frontends.
Emulator installers
In this case, installers are programs that will help you set up all your emulators in one fell swoop, or will sort your games into collections by system or genre for you, and will boot you into the appropriate emulator when you select a game.
For installers, you have a few options. My favorite is Emudeck, which despite being named after the Steam Deck, will run you through a simple setup wizard that will install any emulator you could possibly want, whether you’re on steamOS, Linux, or Windows. There’s also an Android version in the works, and you can get early access to it if you subscribe to the development team’s Patreon.
Alternatively, there’s Retrodeck. This is a Linux-only tool, but some users prefer it to Emudeck thanks to more fluid hotkey settings and a less bug-prone (but potentially slower) update process. Nicedeck is another alternative that aims to hit a middle-ground between Emudeck and Retrodeck, and conveniently is the only one of these options that also works for Mac.
As someone who just manually installed a bunch of Android emulators one-by-one, I would highly recommend using an installer to automate the process instead—´specially because many Android emulators need to be sideloaded, something that is about to get harder starting next year. An installer will also usually help you set up configurations like individual desired aspect ratio and upscaling settings for each system you want to play, too, which will save you some tedious trips to each individual emulator’s settings menu.
What do you think so far?
But just because your emulators are installed doesn’t mean we’re done yet. Instead of having to bounce from emulator app to emulator app and scroll through what can often be ugly built-in menus, let’s put all your games in one convenient, easy-on-the-eyes place.
Emulator frontends
A frontend is an app that will sort your games by system, or by custom collections you set up, like genre. You’ll choose a game from one of its many lists, and the frontend will tell the appropriate emulator app to boot up the game. Then, when you’re done gaming, your emulator will take you back to your frontend. It’s a much more intuitive and console-like experience, and people have created plenty of themes to make them look just as nice as official console menus. Many frontends even come with “scrapers” built in, so they can fetch and display box art next to your games.
Credit: Michelle Ehrhardt
The most common and robust choice here is ES-DE, or Emulation Station Desktop Edition. It’s what I use personally, and comes packaged with installers like Emudeck and Retrodeck. It has the most configuration options available for it, but can be a bit slow to boot. Also, while it’s free on Windows, Mac, and Linux, a small one-time Patreon donation is required to get the app for Android.
ES-DE alternatives on desktop are rare, but options like LaunchBox may be preferable for some users. Other frontend apps are more common on Android, as ES-DE took some time to come to Android, and some users prefer a more playful interface while on mobile. Popular free options include Daijisho and Beacon, although I’m particularly interested in Cocoon, which is modeled after the Nintendo 3DS menu and has built-in dual screen support.
Another option, if all of this sounds like too much setup, is to use Batocera. This is a Linux install that essentially packages largely pre-configured emulators for a wide variety of systems alongside a customized version of Emulation Station. Basically, you install it on your compatible device and boot into it separate from your main operating system, so everything lives in its own confined home. While that means it’s a bit limited, it’s also mostly plug-and-play. It’s also possible to run Batocera off a USB stick or SD card, if you don’t want to install it onto your device’s internal storage.
How to choose and install emulators and frontends for different systems and devices could be a whole series of articles on its own, but the community is welcoming, and is doing its best to make emulation easy and available to as many people as possible. The above programs should be enough to get you started, but if you have additional questions, experts like Retro Game Corps and subreddits like r/emulation are always there to help you out.
How to make your games look old school (or HD)
Credit: Michelle Ehrhardt
When emulating a game, you have three options: You can go with the raw emulation output, which will by default usually mimic a console’s native resolution but might not look fully accurate depending on the screen you’re playing on; you can upscale the resolution for a more HD image, and can even apply fanmade texture packs to make individual games look even crisper; or, you can turn on a CRT filter to try to get a more retro feel, as well as help pixel art or low polygon models look a bit smoother. Frankly, this is another area where it’s possible to go on for days. You can mix and match different options from these approaches to your heart’s content, and Retroarch alone has hundreds of filter and shader options built-in (options do differ from emulator to emulator).
Improving the look of 3D emulated games
For 3D games, the idea is to try to get a more modern experience. Widescreen hacks are a good place to start. These extend the aspect ratio to 16:9, then apply tweaks to the emulation so that the screen renders more of the play environment instead of simply stretching the default 4:3 image. It doesn’t work for every game, and can break the design in others (Resident Evil has very purposeful camera angles), but it’s often worth trying, especially in games where situational awareness is helpful, like platformers.
HD Texture packs, meanwhile, help clear up low-resolution HUDs or 2D assets (which are still quite prevalent in 3D retro games) that won’t be covered by upscaling. These need to be developed on a per-game basis, so you’ll need to search for them, but a popular example is Henriko Magnifico’s 4K Zelda texture packs. Personally, I do think these can sometimes interfere with a developer’s intended art style too much, but some people swear by them.
Improving the look of 2D emulated games
For 2D games, I like to try to make my game look like it’s playing on an old-school TV, and that’s not just for flavor. Pixel art was designed with CRT televisions in mind, which would smooth and blur harsh edges together to make pixels look more hand drawn (here’s a good example). You lose that effect if you just use raw emulation footage on a modern television, but you can mostly get it back with the right filters.
This is far from a solved issue, but so far, my favorite option is the zfast-crt.slangp shader in Retroarch (found in the Quick Menu under Shaders). This is a subtle effect that feels far more accurate to me than the CRT filters often included in official retro game collections, and it’ll work on any device that runs Retroarch. What’s great is that, because this is included with Retroarch, it’ll also work for any system that Retroarch supports, which includes most retro consoles you would play 2D games on.
But CRTs provided an additional benefit beyond making pixel art look nice. Because of the way they scan in their images, they’re highly resistant to motion blur. If you have a device with a 120Hz screen, you can mimic this using a technique called black frame insertion. This technique inserts a single black frame into every other frame of your video output, breaking up the image and helping your eyes reset. While this will slow down your gameplay on a standard 60Hz screen, a 120Hz screen will let you use black frame insertion while still getting 60 fps gameplay. This is built into a toggle in Retroarch’s default Settings > Video > Synchronization page, but to be honest, I find this implementation comes with some pretty intense flickering.
Instead, I prefer the crt-beam-simulator.slangp shader developed by the folks over at Blur Busters, which has a more subtle effect that looks more like the old school TVs I remember from back in the day. Getting this running in Retroarch takes a few extra steps, but luckily, Retro Game Corps has a great video walking through it, including how to tweak it to your liking and combine it with the zfast-crt.slangp if you’d like.
With tools like these, it’s clear that the appetite for playing games from older consoles isn’t going anywhere anytime soon, even if it’s harder than pulling up an old movie on Netflix. Whether you’re on PC, Mac, a Steam Deck, or mobile, you’ve got plenty of options already, even as hardware costs rise. From where I’m sitting, the frontier for retro gaming looks bright.

