Emulation guide
Welcome to katje's official emulation guide (for Windows)! This guide was created for my friends who had trouble setting up emulation. This is in no way a definitive selection of emulators, but merely me sharing my setup and helping others through it. I will be providing alternative emulators as well.
I will not be going over how to obtain games, you must obtain these yourself. This guide won't go over any piracy related activities either, and is intended for educational purposes only.
Table of Contents
The basics of emulation
Say you want to play Plok! for the SNES on your PC. The easiest way to do that would be emulation. Basically, you grab an emulator, and your ROM file containing Plok!. You open the ROM file inside the emulator, and now you're playing the game. This mimics the real life behaviour of putting a game inside a console.
This scenario applies to the majority of emulators, however, they each have their own specific quirks that sometimes people can't work their way through. This guide will go into those specifics in order to help you get set up. It's expected you're at least comfortable with using Windows file management and a little bit of troubleshooting, in case errors pop up.
Links
This setup would not be possible without the wonderful Emulation General Wiki. I will be referring to this wiki throughout the guide. Here are the most important pages:
- Emulation General Wiki - Use this to quickly find emulators for the desired console.
- Search page - Also accessible through the homepage, but just reinforcing this exists.
- Emulator files - This page links the required files for most emulators. Think BIOS files, keys, firmware.
Here are also some programs that can be used with any emulator.
- ShaderGlass - Allows you to apply shaders to any emulator, similar to Retroarch.
Setup
Quick guide
For convenience, here is a quick list of all the emulators I use per system. You can use this to navigate to the system you'd like to set up. Note that you only need to set up each emulator up once.
- Nintendo Entertainment System - Mesen 2
- Super Nintendo Entertainment System - ares
- Nintendo 64 - ares
- Nintendo GameCube - Dolphin
- Nintendo Wii - Dolphin
- Nintendo Wii U - Cemu
- Nintendo Switch - Eden
- Nintendo Game Boy / Game Boy Color - Mesen 2
- Nintendo Game Boy Advance - ares
- Nintendo DS / Nintendo DSi - melonDS
- Nintendo 3DS / New Nintendo 3DS - Citra (PabloMK7 fork)
- Sega Master System - Mesen 2
- Sega Mega Drive / SEGA Genesis - ares
- Sega Game Gear - Mesen 2
- Sega Dreamcast - Flycast
- Sony PlayStation 1 - DuckStation
- Sony PlayStation 2 - PCSX2
- Sony PlayStation Portable - PPSSPP
- Microsoft Xbox - xemu
- Microsoft Xbox 360 - Xenia
Folder structure
My folder structure is the following:
- Emulation
- Emulators
- (Emulator folders per emulator)
- Games
- (Game folders per console)
- Emulators
Portability
A lot of emulators save data inside %APPDATA% or other external locations. This makes it a pain to modify and back-up your emulator data. Luckily, my setup is entirely portable (except for any paths pointing to my games folders), meaning the emulator and its data will always share the same folder. However, most of these emulators require you to set this up manually, I will go into how this is done for each of them.
If you want your game paths to be portable too, you can make folders inside an emulator folder specifically for games, although this makes your setup less modular. Feel free to set it up in any way you'd like.
RetroArch
RetroArch is a multi-platform multi-system emulator. It's very popular in the emulation scene and mainly used on consoles.

Pros
- No need to download emulators individually, you download cores within the program instead.
- Easier to manage and sync data as its all in the same folder.
- Unified user interface and settings, made for controllers.
- Unique features applicable to all cores.
Cons
- Can be cumbersome and confusing to set up and use due to core system and UI.
- Worse emulation for modern systems. Retroarch is mainly for retro games.
- Alternatives are easier to set up.
My reccomendation
Unless you use emulators on a device where using a mouse regularly isn't an ideal, like a TV, keep reading and use the following emulators instead:
Ares
Ares is a multi-platform multi-system emulator. This means it can run multiple systems (NES, SNES, etc.) on multiple platforms (Windows, Linux, etc.) It's very similar to RetroArch in that sense, but more desktop oriented and simpler.
Ares has options for minimal input lag and great performance while remaining accurate in most cases. However, its settings and input binding is a limited, and there are sound issues present in NES and Game Boy games.
Configuration
Most configuration options can be left at default, but you can play around with a few to see what you prefer. Ares is very simplistic compared to most emulators, so playing around with it likely won't break the emulation. Worst case, you can delete its configuration file to go back to factory settings.
If your PC can handle it, enabling run-ahead can vastly improve your experience as it minimizes input lag.
Portable paths
In order to make ares portable, you must point to the correct folders.
First, set up your folder structure in your ares folder is like so:

Then, point to these folders in the configuration menu using './(FOLDERNAME)'. The dot represents the current path where the program is running, meaning it'll always find it no matter where your folder is located.
With our setup it should look like this:

The Arcade Roms path is not neccesary to assign, but in the example it's pointed to my games folder.
Firmware folder
In order to run some systems, you need their firmware files. These can be found on the Emulator files page. Simply find the files for the corrosponding system and put them in your firmware folder. They should be auto-detected by ares. Most systems do not require firmware though, as many old consoles do not have firmware to begin with.
For example, here is how my Firmware folder looks for Game Boy Advance and Sega Master System emulation:

Mesen2
Mesen2 is another multi-platform multi-system emulator. Like ares, it features options for minimal input lag and is even more performant. Mesen2 has more extensive options and debugging tools but supports fewer systems.
Emulation of 16/32-bit systems like the SNES and GBA is lacking compared to ares due to various sound and graphical issues, but its NES emulation is perfect and even allows for turning off sprite flickering and overclocking.
Configuration
Mesen2 has a more complicated configuration menu than Ares, but this also makes it very powerful. There are global settings which apply to all emulators, but you can also set individual settings per system. This is where you'd also change things specific to that system. In order to bind your controls, navigate to this menu:
Every button can be mapped an additional 3 times and is configured per system. For example, this allows you to bind the d-pad to your analog stick without changing other system bindings.
Portable installation
On first boot, Mesen2 will ask if you prefer a regular or portable installation. This will either put your data in AppData or in the emulator's folder itself.
Alternatives
Mesen
The NES has a lot of cycle-accurate emulators. The original Mesen is one of the best NES emulators available. The original Mesen does not contain any additional systems, but is no longer supported.
bsnes / bsnes-hd
bsnes is currently the only SNES emulator that can show Mode 7 graphics in high resolution. Ares is actually a fork of bsnes and is more accurate, but does not have this feature. If this is important to you or want a standalone SNES emulator, bsnes (or alternatively, bsnes-hd) is a good choice.
Nintendo 64
The Nintendo 64 is notoriously difficult to emulate, meaning there aren't a lot of options for good N64 emulation. If you do not want to use ares, pick one of the other recommended N64 emulators like Gopher64 or Mupen64Plus-Next.
SameBoy
SameBoy offers a lot of Game Boy specific features that are fun to play around with, but it not being portable and other limitations made me switch to ares instead. Still the best pick for Game Boy emulation if you don't care about that though.
mGBA
mGBA has the best compatibility and feature set for GBA emulation and is a solid alternative to using ares. Though in my experience, it has a lot of input lag and bad frame pacing, which is why I switched to ares.
Citra
Citra is a Nintendo 3DS emulator. It ceased development in 2024 but has a few forks that continue it's development.
Which fork do I choose?
As of 2025, the best fork to choose is Azahar.
Do note that Azahar contains changes that were made out of legal considerations. Because of this, only decrypted 3DS dumps with the .cci file extension will function. You can simply rename .3ds files to .cci in order for them to function, as long as they're decrypted.
Portable mode
In order to make the emulator run portably, you must create a folder named user in the emulator's root directory.
Setup
If you use Azahar, you can skip step 2 due to Azahar inherently not being able to decrypt dumps. If you own a hacked 3DS, you can skip all these steps and use Azahar Artic Setup Tool by navigating to File and then Set Up System Files....
Before starting, get the latest aes_keys.txt + seeddb.bin and extra data from the Emulator files page or dump them yourself. We need keys to decrypt dumps and the extra data to render text/Miis.
- Open Citra/Azahar, go to
Fileand thenOpen Citra/Azahar Folder. You will now be in the emulator's user folder. - Extract the zip file containing the keys and copy the
aes_keys.txtandseeddb.binfiles to thesysdatafolder - Open the zip file for the extra data and copy the
nandfolder to the root of the user folder. If your file explorer asks if you want to merge folders then say yes. - From the same zip file, copy
shared_font.bininside thesysdatafolder. Now paste that into the user folder'ssysdata, making sure not to overwriteaes_keys.txtandseeddb.bin.
If done correctly, you should now be able to run games and see text/Miis in games like Tomodachi Life and the Mii Maker.
In short, you should have a nand folder filled with extra data, and a sysdata folder with aes_keys.txt, seeddb.bin and shared_font.bin inside your Citra user folder.
3DS/CCI or CIA?
When backing up Nintendo 3DS games, it'll either be a .3ds or .cia file. 3DS files are cartridge dumps while CIA files are digital dumps.
While you can use both, to save space I recommend using 3DS files, as you can play those directly without installing it to Citra's filesystem. Updates and DLC will always be CIA files. Updates and DLC can be managed by right clicking a game in the program.
If using Azahar you will have to rename your .3ds files to be .cci files, but they'll still function the same.
Ryujinx
Ryujinx is a Nintendo Switch emulator. It ceased development in 2024 but has many forks that continue its development.
Which fork do I choose?
Unfortunately, due to the amount of drama in the Switch emulation scene I find it difficult to reccomend a fork. Using Ryujinx's latest archived build should run most Switch games released before 2025. As of May 2025, Ryujinx Mirror is the safest fork to download.
Portable mode
In order to make the emulator run portably, you must create a folder named portable in the emulator's root directory. If done correctly, your folder should look like this:

Setup
Before starting, download the latest Switch firmware and keys from the Emulator files page or preferably dump them yourself.
-
Open Ryujinx, it should display a warning about firmware and keys not being found. We are going to add them through the menu.
-
Click on
Actions, and thenInstall keys from KEYS or ZIP, afterwards, do the same for the firmware throughInstall Firmware.

If done correctly, you should no longer get the error and be able to run games. The files you just installed are located in the portable folder or %APPDATA%/Ryujinx if your installation isn't portable.
For a more detailed setup guide, see Ryubing's Setup & Configuration Guide.
NVIDIA Control Panel settings
In the NVIDIA Control Panel, there should be a profile for Ryujinx. For better performance, you should apply the following: Low Latency Mode: On
Yuzu
Yuzu is the most popular Switch emulator. Similarly to Ryujinx, it ceased development in 2024, and has forks that continue its development.
Yuzu is faster than Ryujinx at the cost of accuracy and compatibility. A current mid-range computer should be able to run both just fine, but in case Ryujinx struggles to run a game or has input delay, you should try Yuzu.
Which fork do I choose?
As of 2025 your best option is Eden. Avoid Citron due to their fishy history.
Portable mode
In order to make the emulator run portably, you must create a folder named user in the emulator's root directory.
Setup
Yuzu's setup is similar to Ryujinx although installing the firmware is optional.
- Open Yuzu, then go to
Fileand thenOpen yuzu Folder. You will now be in Yuzu's user folder. - Extract the zip file containing the keys and copy the
prod.keys,title.keys, andkey_retail.binfiles to thekeysfolder - Extract the zip file containing the Switch firmware and copy the
.ncafiles tonand/system/Contents/registered/.
If done correctly you should now be able to start games.
For a more detailed setup guide, see the yuzu-mirror quickstart page.
XCI or NSP?
When backing up your Switch games, it'll either be an .xci or .nsp file. XCI files are cartridge dumps, while NSP files are digital dumps. There are also .nsz files, but they are not supported by emulators.
If you use yuzu, it likely can only install NSP files, so XCI files are recommended. Updates and DLC will always be NSP files and will install to Yuzu's user folder. Updates and DLC can be managed by right clicking a game in the program.
If you use Ryujinx, NSP files are recommended as they have a smaller file size and can be run immediately, Ryujinx also doesn't install updates and DLC, and instead points to their location and loads them from there, saving in storage.