3 years ago, I posted a review at this site: Emulators for Pocket PCs: An Overview of the Best. Liberty was the first Palm emulator – for use with Gameboy cartridges. Mar 04, 2009 ROM Extractor 1.0 This program can extract modules from ROM. Program only can extract modules (exe,dll,cpl.) (files which have FILE_ATTRIBUTE_ROMMODULE) but not designed to copy other ROM files, like bmp. You can copy other ROM files by using a file manager. Program can handle both XIP and EXTIMAGE files. RomUlation lets you play console classics on your computer or Android. Re-live your childhood today. Gameboy Color. PlayStation PSX. PlayStation 2 (PS2.
This is the new /r/Emulation wiki page. For the old wiki, please go here.
On this page you will find all that is needed in order to start emulating retro console, arcade, and PC on your computer.
Much of the information on this page is specific to Windows and Linux. For Mac OS information, see our Mac OS page.
If you have questions, check the Frequently Asked Questions page just in case it's covered there, see the Emulation General Wiki for more in depth information than what's listed here, and feel free to ask in the weekly question thread.
Emulation 101
Emulation is essentially using software to make your computer pretend to be another, different machine. For example, making your PC think it's a Super Nintendo, or turning your tablet into a PSP. Emulators aren't games themselves, they're applications that do a (live!) translation of games for foreign systems.
Emulation is complicated, and can be surprisingly CPU-intensive. For example, the most accurate SNES emulator recommends a 3.0GHz CPU to run properly, despite the fact that the SNES CPU was only 3.58MHz! This is because the program simulates the interactions of the various hardware components, with each reacting to and affecting other pieces, in the exact same amount of time that the real hardware requires. Emulators that work this precisely are called 'cycle accurate.'
HLE versus LLE
These stand for High and Low Level Emulation, respectively. These are poorly defined terms, because to some degree, all emulation is high level. No computer on the market can emulate every transistor in a SNES, at least not in realtime. Every emulator implements a series of abstractions, it's just a matter of where the lines are drawn. Are the functional units individual chips? That's probably LLE. Is the abstraction 'the display should show X when Y game runs'? That's probably HLE.
LLE breakdown
Broadly speaking, LLE emulators are trying to function at the level of individual chips inside a device. They might, for instance, have separate areas of the code to simulate the CPU, the sound chip, the video hardware, any I/O to external devices, battery-backed RAM for savegames on the cartridge, and so on. Typically, they're trying to be cycle-accurate, with their simulated chips taking exactly as long to react as the real thing, producing identical results. (If input X shows up, then Y milliseconds later, Z output should be emitted.) This can be extremely resource intensive, so only older, simpler systems can usually be emulated this way, and only on fast PCs. Phones and tablets normally don't have enough horsepower to be this accurate. For more information, see: What exactly is a cycle-accurate emulator?
HLE breakdown
High-level emulation is more common, and allows host machines to emulate much more powerful platforms, such as the Playstation 2, Dreamcast, and Wii. HLE emulators are under development for even recent consoles, like the Wii U, 3DS, Playstation 3, and Xbox 360, with varying degrees of success.
High level emulation attempts to duplicate the response of the hardware (that is, what the hardware does) without emulating the hardware itself. It's trying to replicate the results of running the game code, not the process of running it. By operating at this level, emulator authors are free to write implementations that are faster and more efficient on their intended host.
High level abstractions are inherently inaccurate. (If they exactly duplicated all aspects of the original hardware, that would most likely be an LLE approach!) Game devs were famous for pushing console hardware to do unexpected things, sometimes things that the manufacturer never intended. If game code is being unusually tricky in how it drives a given console, an HLE emulator may produce visible or audible glitches, or might even crash. It's quite common for HLE emulators to end up with detection code for different games, throwing themselves into different abstractions based on what the programmer knows that specific code does. In essence, they become a bunch of separate emulators under one name. The programmers are trading their coding time to save processing power on the other end, bringing emulation of much more difficult systems into reach. But keeping all these different sub-emulators debugged can be very difficult; with so many unique code paths, even small changes in the shared, underlying code base can have large and unexpected ramifications, putting subtle glitches into dozens of games at once.
In short, HLE makes some forms of emulation possible, but programmers have to work hard to maintain the extra code. LLE requires a great deal more processing power by the host device, but if implemented correctly, can handle any arbitrary game, including ones that the emulator developers have never seen before.
By operating at a higher level, sometimes HLE emulators can implement new game features, like higher resolutions, new textures, or improved frame rates. The game may suddenly be rendering at 1920x1080 or even higher, but to the system there is no indication anything is different; it behaves as though it's still outputting to its standard display, without bugs. An example would be Wind Waker on Dolphin: it looks much better, running upscaled on a PC, than it ever looked on the Gamecube. It's roughly comparable to the HD rerelease on the Wii U, except using the original code to do it.
Most of the time, if an LLE emulator is available for your chosen system, and if your host machine is fast enough, it will work better. HLE emulators, though, will often offer more features, because they're not tying themselves as tightly to the original hardware. A few advanced programs, like Dolphin, offer both options, letting you switch between HLE and LLE, based on what works best for you.
While all this sounds a bit complicated, it matters more for choosing an emulator than for running it. Once you know the emulator you want, and have your source files, in most cases you can just launch your games and play. Below is a list of many available emulators, organized by platform, with download links.
For general 'getting started' information for absolute beginners, go here for step by step tutorials for downloading and setting up several major emulators. Otherwise, many can be downloaded from the links below.
Emulators
Please note that some of the emulators below are multiplatform (Windows/Linux/Mac) while others are only a single platform (usually Windows). Also, while some are multiplatform, in some cases the links below are Windows-only, and to download the emulator on Linux, you will need to utilize your package manager of choice to acquire it, as opposed to downloading the binary from the site linked. It is assumed that if you're on a Linux desktop that you know how to do this, but if you need assistance feel free to make a post about it on the subreddit.
Also, as noted above, a Mac specific page of the wiki will be incoming. A contributor, /u/kaioshade, has offered to assist in building that knowledge base.
Please note that the information below will not list every available emulator, but rather, in cases where there are many, just a selection of some of the best options. This is more of a 'getting started' wiki than a full comprehensive emulation database.
Emulators under active development will be marked with an *asterisk.
Multiple platforms
Retroarch
Retroarch is a multi-system library of emulators in an all-in-one interface, that lets you download emulators (known in the application as 'cores') within the main Retroarch application, and configure them all together in a unified interface.
Retroarch is generally highly recommended, though it is suggested to read the documentation, as it's a big, and somewhat complicated program. Also, if for some reason it crashes, it does not appear to close gracefully. Some of the most common cause of crashes is missing a BIOS file for a core that needs it, or having the wrong version/file name of BIOS. Otherwise though, it has been excellent for 8 and 16 bit emulation (NES, SNES, Sega Master System/Genesis, PC-Engine). There's almost no configuration. Controller automatically configures if it supports XInput (like XBox 360 controller).
Retroarch can be downloaded for various platforms at the Libretro website's buildbot.
Consoles
NES
Emulator | General Information |
---|---|
Mesen | Cycle accurate, open source.The most accurate NES emulator. Supports over 200 mappers. In beta though so don't expect everything to work right. |
PuNES | Cycle accurate, open source, multi-platform. Incredibly accurate NES emulator, VERY close to Mesen in terms of accuracy. |
Nestopia UE | Cycle accurate, open source, multi-platform. One of the better NES emulators around, though not quite as feature-rich as FCEUX. Almost as accurate as puNES and Mesen, and this one has a really good rewind feature which is great if you don't want to always make save states. |
FCEUX | Fair accuracy, open source, multi-platform. Very fast and will run on low-spec hardware (though most NES emulators will really). Has a very good interface and very feature heavy. Lua scripting is pretty cool. Also, many built in tools, and is commonly used for TAS (Tool-assisted) speed runs. |
NES emulators aren't too system intensive, so even running a high/cycle accurate emulator should be fine for most people. Mesen would be recommended due to having the highest accuracy, however puNES comes in at a very close second if you're on a non-Windows OS or don't like Mesen's UI.
Super Nintendo
Emulator | General Information |
---|---|
Higan | Cycle accurate, open source, multi-platform. 100% compatible with known official SNES games. Quite intensive, needs a fairly high-spec/recent PC to run. Has a unique folder structure/library management feature, but you can load your ROMs normally as well. Has a libretro port (bsnes-mercury) which includes three different cores (performance, balanced, accuracy) to suit your needs, but is slightly outdated. |
SNES9x | High accuracy, open source, multi-platform. Works well on older/lower spec systems but is very accurate, so it's a really great alternative if you can't run higan. Feature rich in terms of shader options and settings. |
ZSNES | Low accuracy, open source, multi-platform. It is strongly advised to no longer use this emulator. Only use this for specific functions such as ROM hacks that were specifically designed around the emulator. Best snow. |
Higan is (arguably) the closest thing we have to a 'perfect' emulator for any system. It runs 100% of SNES games, with no known/visible bugs. snes9x is also superb, and is recommended if you have an older PC. It's still really accurate so it's a good speed/accuracy tradeoff. ZSNES IS HORRIBLE AND YOU SHOULD NEVER USE IT, with the exception of hacks that exploit broken parts of the emulator itself, and so require it to run properly.
Nintendo 64
Emulator | General Information |
---|---|
*CEN64 | Aiming for cycle accuracy, open source, multi-platform. Not ready for use yet, but has made tremendous progress. Will likely end up the most accurate N64 emulator but needs more contributors and development to make it happen. Supports the 64DD expansion. |
*ParaLLEl (libretro core) | ??? accuracy, open source, multi-platform. Requires a Vulkan-compatible GPU. A spruced up version of Mupen64 Plus, with a vastly improved, pixel-perfect renderer and a variety of other features. It's also in more active development than it's source project. STILL IN EARLY DEVELOPMENT. Only available as a libretro core so you'll want to grab RetroArch or Phoenix Frontend to enjoy it. |
*Mupen 64 Plus | ??? accuracy, open source, multi-platform. Pretty much the same compatibility/accuracy as Project64, but a bit less shady. Runs from the command line, so you might want a frontend such as M64Py. Also has a libretro port (separate from paraLLEl) with extra features. |
*Project 64 | ??? accuracy, open source, Windows only. Probably the best N64 emulator for PC, but known for having sketchy adware in the installer. The adware has since been removed but has replaced it with a nag screen to donate. The nag screen can be removed with a quick config edit. Supports the 64DD expansion. |
CEN64 isn't yet viable, so your best choice right now is probably paraLLEl, or if that proves too buggy then you might want to try M64+ or it's libretro port through RetroArch or Phoenix. Project64 is your best bet for a 'just works' solution, however it's Windows exclusive, known for having adware/weird development practices, and you still have to deal with setting up plugins.
Gamecube / Wii
Emulator | General Information |
---|---|
*Dolphin | High accuracy, open source, multi-platform. Really no other choice for these platforms. Fortunately Dolphin is an excellent choice. Great UI, lots of features for debugging/TASing, and easy to configure. |
Wii U
Emulator | General Information |
---|---|
*Cemu | ??? accuracy, closed source, Windows only. Still WIP. Currently has a few bootable titles, some of which can be played to the end. /r/cemu has more information. A list of titles ranging in compatibility can be found here. |
*Decaf | ??? accuracy, open source, multi-platform. Still WIP. Has not reached compatibility and feature parity with Cemu yet. |
Sega Genesis/Megadrive and Master System
Emulator | General Information |
---|---|
Kega Fusion | Was the best until recently. Recent version seems to be having issues with controller mapping, or that may just be me. But in testing it works well otherwise. Odd framerate changes and screen tearing on full screen as well. |
Picodrive | Solid alternative to Kega, though maybe not as accurate. Open source and cross platform. |
Genesis Plus GX | Originally developed for the Wii (as Genesis Plus), this emulator was updated for compatibility with multiple platforms. Enhanced and improved, it is more a successor to Genesis Plus than a port, and is included as part of Retroarch, Bizhawk, and OpenEmu. The most accurate Genesis emulator, but is not fully compatible with the 32X platform. |
PC-Engine/TurboGrafx-16
Emulator | General Information |
---|---|
Mednafen | The best PCE emulator available. 2 settings, fast and accurate. Currently only the fast setting is available on RetroArch. Luckily fast hasn't failed me yet, still very good. |
Ootake |
Sony Playstation
Emulator | General Information |
---|---|
ePSXe | Not the most accurate PSX emulator, but is performance friendly. Closed source and the android version costs money. |
PCSX-R | Has some interesting hacks/add-ons like PGXP that can improve things such as fixing texture warping. Great for 3D games. |
Mednafen | This works very well, and is the most accurate PSX emulator. Remember to use the correct BIOS files. No GUI, but easy to use. Just drag and drop games. If GUI and enhancements are desired, use the Retroarch core version / BeetlePSX. This version includes full controller support by default, full shader support, and support for PGXP. |
Xbox Rom Files
Honestly, all the PS1 emulators have their quirks, but all are also pretty good. Which you use is up to personal preference.
Sega Saturn
Emulator | General Information |
---|---|
Yabause | Also included in Retroarch, this is one of the most established Saturn emulators, launching in 2003. Not as good as SSF or Mednafen but good none the less. |
Yaba Sanshiro | This unofficial fork of uoYabause made a splash by introducing Saturn emulation on Android, and now there are Windows and iOS versions available. |
SSF | The most accurate Saturn emulator. Closed source and uses disc mounting, Mednafen is easier to use but SSF runs a few games that it can't. |
Mednafen | A relatively new core, it's already proving itself as a worthy contender with many games running at full speed. Use if SSF disc mounting bothers you, there isn't much of a difference between the two actually. |
If you're on Windows or Linux, try Mednafen. If you're on OS X, try Yabause. If you're on Android or iOS, try uoYabause. Note that you will need to find the appropriate BIOS to make it work.
Atari Jaguar
Emulator | General Information |
---|---|
MAME | |
Virtual Jaguar | This is the recommended emulator for the platform. |
Xbox (original) and Sega Chihiro
Emulator | General Information |
---|---|
XQEMU | Not in any playable state. Developed intermittently, but unknown currently what the future holds. |
*Cxbx-Reloaded | Under active development, can get in-game on a few games. |
Sega Dreamcast
Emulator | General Information |
---|---|
*Reicast | Newest DC emulator around, but shows potential. Works great for the games that do run, but many games are still incompatible. |
*DeMul | Has the highest compatibility out of all the DC emulators. This is the recommended emulator to use. |
*Redream | Closed-source commercial Dreamcast emulator. Seemingly good compatibility. |
*Makaron | Difficult UI that requires manual configuration via file editing, but good WinCE support |
NullDC |
Reicast is the successor to NullDC, being headed by the same development team. It is recommended that you switch from NullDC to Reicast if you wish to use this over DeMul.
Playstation 2
Emulator | General Information |
---|---|
*PCSX2 | Currently your best (really only) option for PS2 emulation. Fortunately the emulator is pretty mature, and the majority of games are fully playable without issues. Supports all sorts of shaders, upscaling, and even internal anti-aliasing (something the original hardware didn't support) |
*Play! | Still in early development, but shows promise, and is developing well. We'll see if it ends up succeeding PCSX2, but for now this one isn't the emulator of choice if you want to just play games, as opposed to testing the emulator. |
Xbox 360
Emulator | General Information |
---|---|
*Xenia | An open source emulator for the Xbox 360. Irregularly updates, but still in active development. Has very low compatibility. |
PlayStation 3
Emulator | General Information |
---|---|
*RPCS3 | An open source emulator for the PlayStation 3. Still in active development. See here for compatibility. |
Handhelds
Nintendo Gameboy/Gameboy Color
Emulator | General Information |
---|---|
Gambatte | A very accurate Gameboy emulator. Available as a RetroArch core. |
BGB | Another very accurate Gameboy emulator |
Sega Game Gear
Emulator | General Information |
---|---|
Genesis Plus GX | Originally developed for the Wii (as Genesis Plus), this emulator was updated for compatibility with multiple platforms. Enhanced and improved, it is more a successor to Genesis Plus than a port, and is included as part of Retroarch, Bizhawk, and OpenEmu. |
Gameboy Advance
Emulator | General Information |
---|---|
*mGBA | Currently more accurate than VBA-M, and the de facto choice today for GBA emulation. Bit of a quirky GUI interface though. A Retroarch core version is available. |
VBA-M | A long time popular choice. Not the most accurate anymore, but certainly still a good choice, and has high compatibility. |
Nintendo DS
Emulator | General Information |
---|---|
MelonDS* | The most recently developed emulator of the list and is in active development. Solid compatibility and is aiming to support WiFi in the future. Recommended. |
no$gba | An oldie but a goodie. One of the original DS emulators. Very good compatibility, still being actively developed. Not currently recommended. |
DeSmuME | Highest compatibility of the bunch and the most developed. Recommended. |
Drastic (via Android virtual machine) | Drastic in a virtual machine actually outperforms Desmume <citation needed>. Not necessarily recommended for desktop use, however, given the potential difficulty of setting this up. |
It should be noted that no DS emulator supports WiFi, which means no Download Play or Local Multiplayer is supported. DeSmuME supports Nintendo WFC, however the fan-hosted WFC does not have most of the original functionality that the original WFC had, such as the GTS in the various Pokemon games.
Nintendo 3DS
Emulator | General Information |
---|---|
*Citra | An open-source emulator for the Nintendo 3DS. Still very early in development but can already boot and play many nonencrypted titles. |
*Mikage | A 3DS emulator primarily targeting Android with Vulkan support. Closed source with the promise to be open-source in the future. Compatibility WIP. |
Playstation Portable
Emulator | General Information |
---|---|
PPSSPP | Your only choice for PSP. A very good emulator. |
jpcsp | The first PSP emulator and it's written in Java. It's performance is behind PPSSPP. <citation needed> |
Gameboy Rom Download
Hybrids
Nintendo Switch
Emulator | General Information |
---|---|
*Yuzu | Development in progress. Can boot three commercial games so far. |
*Ryujinx | Development in progress. Can boot one commercial game so far. |
Arcade
Emulator | General Information |
---|---|
MAME | the de facto standard for arcade game emulation, as well as multiple other platforms (like New Geo, for example). Can be complicated though, as there are multiple versions, and ROMs are not always intercompatible between version updates. You may even need to have two or three different versions of MAME installed at once to play all the games you would like. |
FBA | simpler and much easier to set up than MAME, but less compatible. Works well with a lot of older arcade games, particularly those based on CPS1 and CPS2 hardware. |
Computers
Apple ][
The Apple ][ was a relatively simple machine. Its most notable innovations were in bringing manufacturing costs down, and in the extremely, extremely complete documentation that Apple provided. With its large case and multiple expansion slots, it was an easy machine to add functionality to, and the documentation made developing these boards relatively simple.
Apple's major focus was into the education market, and if you were going to school in the 80s, you probably used an Apple ][ Plus or ][e. A secondary focus was the business market.
From a gamer perspective, they're nothing special, with very poor graphics and sound. Most of its good games were ported to other, better machines.
Some notable titles: Wizardry (one of the first full RPGs), Flight Simulator, the Infocom titles, Choplifter, Aztec, Castle Wolfenstein, Ultimas 1 through 4.
Emulator | General Information |
---|---|
AppleWin | A basic, straightforward emulator. Handles the original hardware in the ][,][ Plus, and ][e, plus apparently some expansion boards like the Phasor and the Mockingboard. |
LinApple | A port of AppleWin to Linux. |
Most other Apple ][ emulators seem to be abandoned by their authors.
Amiga
Emulator | General Information |
---|---|
WinFellow | Intended to emulate only the Amiga 500, the most popular model, but to do it well enough to run most demoscene apps. If you're just trying to run an Amiga game, this is a good spot to start. |
WinUAE | Much, much more capable, but much more complex. Can emulate any Amiga ever released, if you can get the ROM files and disk images. Can also handle many expansion boards. If you're trying to run more advanced games, or applications, this is a better choice than WinFellow. |
Amiga Forever | This is a payware front end on both WinUAE and WinFellow. It includes legal, licensed copies of the ROMs and OS files for every Amiga model (in the $30 Plus edition; the $10 Value edition has only early Amigas), and premade configurations reflecting their specs. It elides past much of the Amiga's complexity. You can do anything this program is doing by hand, but it's pretty convenient. |
FS-UAE | This seems to be a fork of the base UAE project, adding a front end and some of the same convenience features found in the Amiga Forever package. (less, of course, the licensed ROMs.) It's cross-platform, and at least on Debian Linux, is already available in the distro archives. |
Atari ST
Emulator | General Information |
---|---|
Hatari | A well-respected emulator, using bits and pieces from many other engines. Needs the SDL and zlib libraries. |
Commodore 64
Emulator | General Information |
---|---|
VICE | More or less the default 64 emulator. Does an excellent job with nearly everything. |
Hoxs64 | Another good option, closer to being cycle-accurate. |
CCS64 | $30 shareware; the unregistered version lacks a few features, but this isn't that painful. Closed source, but a solid choice. |
Macintosh
Emulator | General Information |
---|---|
Basilisk II | For 68K Macs. |
SheepShaver | For PowerPC Macs. |
PC / DOS
Emulator | General Information |
---|---|
DOSBox | If you want to run a DOS game, this is probably where to start. It's very solid, although you still need at least a little knowledge about DOS-era PC hardware. Many Steam and GOG re-releases use DOSBox as a translation layer. |
VirtualBox | Straightforward multiplatform virtualization software. Not good for emulating retro PC games. |
QEMU | CLI or with virt-manager (Linux) |
PCem | Research needed |
86Box | Research needed |
File Compression
Game files got pretty large after the 16-bit era. A multi-disc PS1 game can be 2-3GB in size. PSP titles can be well over a GB. Check out this guide from the /r/emulation subreddit for information on compressing your ISOs and other large format files for PS1, Dreamcast, PSP, and so on. This can help reduce the amount of storage your ROM/ISO collection takes up. That matters for folks with smaller hard drives. :)
Thanks to /u/duhlishus for the guide.
Game Recommendations
Rom Files For Emulators
Sometimes you just don't know what game you want to play. That's okay. /v/'s got you.