Steam Deck Emulation Starter Guide

Last updated: 05MAR2024 (see Changelog for details)

Valve’s Steam Deck is the perfect storm of handhelds: it has an exceptional price-to-performance ratio, a large game library thanks to its Steam integration, and it is becoming more readily available every month. In this guide I’ll show you how to play your favorite retro (and modern) game systems via software emulation.

This guide will primarily use an app called EmuDeck to set up your emulation experience, but I will also touch on other solutions like RetroDeck and Batocera. If you are looking for a general setup guide for the Steam Deck itself, I recommend this comprehensive Steam Deck guide from GitHub user mikeroyal.

Table of Contents

EmuDeck vs Batocera vs RetroDeck vs EmulationStation
Recommended tools
Getting started with EmuDeck
Add games and BIOS files
Steam ROM Manager
EmulationStation Desktop Edition
Updating EmuDeck and emulators
CryoUtilities
Additional EmuDeck tools
Hotkeys

System-specific recommendations:
RetroArch
Nintendo 3DS
Nintendo GameCube
Nintendo Wii
PrimeHack
Nintendo Wii U
Nintendo Switch
Sony PS Vita
Sony PlayStation
Sony PlayStation 2
Sony PlayStation 3
Microsoft Xbox
Microsoft Xbox 360

Other emulation options:
RetroDeck
Batocera

Changelog

EmuDeck vs Batocera vs RetroDeck vs EmulationStation

Let’s take a quick look at some of your emulation options on the Steam Deck.

EmuDeck is a tool that integrates many functions into one: it will download emulators from their official sources, pre-configure your settings and hotkeys, and work together with EmulationStation and the Steam ROM Manager. It’s not an “app” in the strictest sense, but a collection of clever scripts that take care of all the manual installation and configuration for you. I’ve seen some concerns about allowing an app to install items on your Steam Deck, but EmuDeck does not require sudo/root access to work, and only installs the same file systems that you would be installing if you installed the emulators manually. However, if you’d rather have a self-contained solution, check out Batocera or RetroDeck.

Batocera is a custom Linux operating system that is focused on game emulation. It is completely self-contained and bootable from a variety of formats. This means you can load Batocera on a microSD card, flash drive, or external hard drive and boot it from there. As an example, you could use your Steam Deck primarily for PC games, and when you are ready to do some emulation, you can just add the Batocera SD card, boot into the card, and start playing games. This is an excellent setup if you want to separate your SteamOS PC gaming experience and your retro game emulation.

RetroDeck is an all-in-one emulation solution that uses EmulationStation as its main interface. Because it is self-contained, it will behave as a single app with all of its emulators pre-installed and configured. This is a great solution if you just want a simple emulation experience that you can access directly from your SteamOS environment. Moreover, the app is available as a FlatPak directly in the Discover app via Desktop Mode on your Steam Deck, making the installation process super easy. RetroDeck is in active development and not yet in a final release state.

EmulationStation is a frontend that will provide you with a self-contained user interface to browse and launch your favorite retro games. The version found on the Steam Deck is known as EmulationStation-DE (Desktop Edition, shortened to ES-DE). It can be installed independently by downloading the latest AppImage and installing it on your Steam Deck, or it comes bundled within the EmuDeck or RetroDeck environments. ES-DE will auto-update itself, so if you remove or add ROMs to your folders, it will automatically catch those changes and it will reflect in the app the next time you boot ES-DE.

In the end, none of these options above are required to run emulation on the Steam Deck. If you’d like, you can manually install each individual emulator from the Discovery Store and configure them yourself, like you would on a Windows PC. Or you could install the EmulationStation Desktop Edition and set that up yourself, too. The tools above simply give you the option of making that process easier.

Recommended tools

Keyboard and mouse: Because we will use Desktop Mode to configure our emulation experience, it is sometimes easier to use a mouse and keyboard than trying to navigate everything using the Steam Deck’s trackpads and on-screen keyboard. Moreover, there are times when we’ll need to have the Steam app closed (like when using the Steam ROM Manager), which disables some of the more helpful trackpad controls.

If you have a Bluetooth keyboard and mouse, it’s easy enough to pair them and the pairing will persist between Game Mode and Desktop Mode (how convenient is that?). However, if you want something more portable, this keyboard from Rii is what I use. It is USB rechargeable, and has a 2.4GHz USB dongle for easy connection.

Steam Deck dock or USB-C hub: To make setup even easier, you can dock your Steam Deck to a monitor or TV and use it like a regular, boring PC. You can use a USB-C hub like this one from Anker, the official Valve Steam Deck Docking Station, or third-party docks like this one from iVoler. Here is a video where I compare four different dock solutions for the Steam Deck.

MicroSD card: Regardless of how you set up your Steam Deck for retro gaming, you will want to store your games somewhere. I recommend storing your retro games on a microSD card since the cards are relatively cheap and you can swap them out as needed. The size of the microSD card will depend on how you plan on using it. If you are going to use a single microSD card to store Steam games as well as your retro games, then a larger card might be best. If you’re going to use a dedicated microSD card for retro gaming, you can likely use something smaller (just bear in mind that CD-based and modern games take up more storage than old-school cartridge systems).

Note that when it comes to emulation, the read/write speeds on microSD card will generally not affect game loading or emulation speed, so storing games in the internal storage will likely not provide a performance boost. However, if you are going to use the card to store PC/Steam games too, then you will want to get a high-speed Class 2 (A2) card instead of a Class 1 (A1) card, since that can affect load times of PC games. I would recommend buying a microSD card from a reputable brand like SanDisk or Samsung to ensure longterm card integrity. Personally I use a 1TB SanDisk Extreme card in my Steam Deck, and I use it to store PC games as well as all of my emulated systems.

256GB microSD:
SanDisk Ultra
SanDisk Extreme
Samsung EVO Select

512GB microSD:
SanDisk Ultra
SanDisk Extreme
Samsung EVO Select

1TB microSD:
SanDisk Ultra
SanDisk Extreme
SanDisk Extreme Pro

If you are going to use a microSD card to store your games, the card needs to be formatted first.

– Insert the card into your Steam Deck while running SteamOS Game Mode
– Go to STEAM > Settings > System and select “Format SD Card”

Note that while the card will be readable on both the SteamOS Game Mode and Desktop Mode, it is using a Linux file system that is not readable by Windows or Mac PCs without specialized software. Therefore, when transferring files to and from the SD card, it is best to use an external hard drive or flash drive plugged into the Steam Deck to interface between the Steam Deck and your PC. For more information, see the Add games and BIOS files section below.

Flash drive or external USB drive: If you are using a Windows PC or Mac as your computer, the easiest way to add game files to your Steam Deck (regardless of whether you are storing them on the internal storage or a microSD card) is to use a flash drive or an external USB hard drive. This is because the Steam Deck can read Windows file systems (like exFAT and NTFS) when in Desktop Mode, but Windows and Macs cannot read Linux file systems. So you will want to move your game files to an external hard drive (or flash drive), then plug that drive into your Steam Deck (usually via a dock or USB-C hub) so you can drag and drop your files into the appropriate folders.

If your card is not being recognized within SteamOS Game Mode after formatting it or running EmuDeck, you may have to re-link the card with your Steam library. To do so, open the Steam Deck in Desktop Mode, then open Steam and go to Settings > Downloads > Steam Library Folders > “Plus” icon > and navigate to the location of your SD card (/run/media/mmcblk0p1) and select it. Now you should be able to use your SD card to store Steam games.

Getting started with EmuDeck

EmuDeck is super simple to install on the Steam Deck. The process is slightly different depending on whether you want to store your games on the Steam Deck itself, or a microSD card. If using the Steam Deck to store your games, no extra tweaking is needed, but for your microSD card, you will need to format it on the Steam Deck first (see the section above if you haven’t done that already).

EmuDeck has recently built a comprehensive FAQ page and I recommend checking it out if you run into any issues not covered in this guide.

To install EmuDeck, enter the Desktop Mode on your Steam Deck (STEAM > Power > Switch to Desktop), and then using a web browser (like FireFox), head over to the EmuDeck website and download the app directly onto your Steam Deck. When it asks you to save the file, save it directly on your Desktop. Next, navigate to your desktop and open the EmuDeck app.

EmuDeck will initialize and download some files, and then you will be greeted with the option of choosing EASY MODE or CUSTOM MODE.

Easy Mode: All systems will automatically download, and everything will be preconfigured. If you just want to start playing games and can’t be bothered with customization, this is a great choice. Note that even if you use the Easy Mode to start, you can always go back and run EmuDeck again through Custom Mode or Quick Settings.

Custom Mode: This mode allows you to choose which systems you want installed, and you can choose special configurations like aspect ratio, EmulationStation theme, shaders, and more. If you are familiar with emulation I recommend using this mode.

If EmuDeck doesn’t initially recognize your SD card, check the name of it. I have seen reports that if your card has a name with spaces in it (“Samsung 512”) that it won’t be picked up by the application. Instead, rename it to something without spaces (“Samsung_512”).

After you select which mode of EmuDeck to use, the app will walk you through the rest of the prompts to get started. Watch the video above for a walkthrough of that process. You will likely get some pop-ups about Yuzu (Switch) keys being missing, and a prompt of where to place your game files. You can ignore those for now, since we’ll cover that in the next section.

Add games and BIOS files

After you have installed EmuDeck, the next step is to add your games (“ROMs”) and BIOS files.

ROM files are copyrighted, and will not be shared on this website. You will need to dump your own game files (this process varies by emulator), or find ROM files on your own. Similarly, BIOS (system) files are copyrighted and will not be shared.

If you are using a Windows PC or Mac as your computer, the easiest way to add game files to your Steam Deck (regardless of whether you are storing them on the internal storage or a microSD card) is to use a flash drive or external USB hard drive. This is because the Steam Deck can read Windows file systems (like exFAT and NTFS) when in Desktop Mode, but Windows and Macs cannot read Linux file systems. So you will want to move your game files to an external hard drive (or flash drive), then plug that drive into your Steam Deck (usually via a dock or USB-C hub) so you can drag and drop your files into the appropriate folders. You will save yourself a lot of time and headache by using a USB/Bluetooth mouse and keyboard during this step.

Note: you may find that navigating the Linux windows to be unintuitive, because on older SteamOS versions, single-clicking on an object will actually open the file. To change this, open the Settings menu in SteamOS Desktop Mode (on the bottom left), then go to Workspace Behavior > General Behavior > “Clicking files or folders” and change this option to “Selects them”.

Here is where you will want to place your files:

ROMS: Primary/Emulation/roms/ (microSD card method)
BIOS: Primary/Emulation/bios/ (microSD card method)

You can also navigate to these locations by going to:
/run/media/SDCARDNAME/Emulation (microSD card method)

/home/deck/Emulation/roms/ (internal storage method)
/home/deck/Emulation/bios/ (internal storage method)

To find the specific folders, file types, and required BIOS files for each emulator, check out this handy Emulator Cheatsheet or refer to the individual emulator’s page on the EmuDeck wiki. Note that with some emulators, the bios files need to be placed somewhere specific (like the “dc” subfolder for Dreamcast BIOS).

Here is a quick list of the BIOS files I personally use in my EmuDeck setup (and their location):

GAME BOY (for boot logo):
/Emulation/bios/gb_bios.bin

GAME BOY COLOR (for boot logo):
/Emulation/bios/gbc_bios.bin

GAME BOY ADVANCE (for boot logo):
/Emulation/bios/gba_bios.bin

NINTENDO DS:
/Emulation/bios/bios7.bin
/Emulation/bios/bios9.bin
/Emulation/bios/firmware.bin

GAMECUBE (for boot logo):
/home/deck/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/GC/USA/IPL.bin
see GameCube section below for more info

SWITCH:
/Emulation/bios/yuzu/keys/prod.keys

PLAYSTATION 1:
/Emulation/bios/scph5501.bin

PLAYSTATION 2:
/Emulation/bios/SCPH-70012.bin
/Emulation/bios/SCPH-70012.MEC
/Emulation/bios/SCPH-70012.NVM

SEGA CD:
/Emulation/bios/bios_CD_E.bin
/Emulation/bios/bios_CD_J.bin
/Emulation/bios/bios_CD_U.bin

SATURN:
/Emulation/bios/sega_101.bin
/Emulation/bios/mpr-17933.bin

DREAMCAST:
/Emulation/bios/dc/dc_boot.bin

XBOX:
/Emulation/bios/mcpx_1.0.bin
/Emulation/bios/Complex_4627.bin (modified retail version)

NEO GEO:
/Emulation/roms/neogeo/neogeo.zip

Steam ROM Manager

Once you have added your ROMs and BIOS files to the corresponding folders, it’s time to add our games to the SteamOS experience. We’re going to use a tool called Steam ROM Manager (SRM) to integrate your games with the main SteamOS user interface for the game you want to see directly in your main menu, and then we’ll be able to access the rest via EmulationStation.

Note that using Steam ROM Manager will require you to close out of Steam, which will revert your controls on the Steam Deck “lizard mode” which will have less functionality. You can still get by though, by using the right trackpad as your mouse cursor, L2 to right-click, and R2 to left-click. To make things easier, I recommend using a mouse and keyboard for these steps below.

1. SET UP YOUR PARSERS. Open up EmuDeck then go into Tools & Stuff > SteamRomManager. It will ask you to confirm that you are going to close out of the Steam app and open SRM. Once SRM is open, you will be greeted by the screen you see above, which can be pretty intimidating. Here you just want to go along the left column and toggle off any system you don’t want to appear in your SteamOS interface (it will still show up in EmulationStation, regardless of whether you toggle it on/off here). Pay careful attention to the systems that have multiple parsers, like PSP, Switch, and PS3. For those systems, make sure you pick the emulator you want to use, or in the case of PS3, what type of files you are using.

In general, the fewer systems that you parse the better — remember that these games are going to show up in your SteamOS interface, and you likely don’t want to clutter the UI up. The rest of the systems will appear in EmulationStation. Also note that if you only want one game from a certain system (like a single SNES game) to show up in the SteamOS UI, you will still need to parse the entire SNES catalog — but it’s easy to clean that up in Step #4 below.

2. GENERATE APP LIST. Next, we’re going to click on the “Preview” section at the top left of SRM, and then select “Generate app list”. This will scrub through all the parsers you left toggled on and will match the games against the SteamGridDB database. This will take several minutes depending on the size of your library, you can watch the countdown at the top of the screen as it goes through all the “providers” to grab the assets (artwork) for your games.

Once the app list is complete, you can scroll through your games to see if they all match the ROMs you added. If there is a section of games missing (like 3DS games, for example), it’s likely you either put the ROMs in the wrong place, or used a file type that isn’t compatible with EmuDeck (refer to this sheet to double-check). If there is a mismatch with your game and the artwork, it’s either the file name of your ROM, or the SteamGridDB matched it with the wrong game (it happens often for games that use the same title for multiple games across console generations, like Bionic Commando). I would check your game in the SteamGridDB to see if your naming needs to be changed.

3. CUSTOMIZE YOUR ARTWORK. Now comes the fun part. Here we are going to go through our games list and modify the art to our liking. If you use your mouse to hover over the art, you can see that there are multiple images that you can scroll through until you find the one you like the best. Be sure to do this for multiple art formats; by default you’ll be looking at the “Grid” which is the image you will see in SteamOS when it is the most recent game you’ve played. But if you go to the top of the screen and choose Select type > Posters you will find the common cover art you will see when browsing SteamOS. These are the images that I focus on the most when making adjustments.

If you have a mismatched game or it’s missing artwork, you can add your own by downloading your desired images from SteamGridDB and then saving them onto your Steam Deck. Then you can hover over the game and click the little photo icon on the bottom-left, find the image you downloaded, and add it manually. Additionally, you can fix a mismatched entry via SRM’s “exception” tool (more info here). If it’s a game you don’t plan on adding to your SteamOS interface anyway, you can just ignore it for now.

4. SAVE AND CLEAN YOUR APP LIST. One you are happy with the artwork for your games, let’s save the configuration by clicking “Save app list” near the bottom of the screen. This can take several minutes, and you can click on the Event Log at the top-left to watch your progress. Once the Event Log says “Done adding/removing entries”, you are good to go — exit out of Steam ROM Manager and open up Steam.

In the Library section, on the left side you will see that your games have been added to Steam, and organized by system or emulator. Here, we want to go through and delete all of the games that we DON’T want to see in the SteamOS interface (deleting the game here won’t delete the actual game file, it just deletes its presence in your SteamOS experience). Also note that removing a game will not affect whether it shows in EmulationStation. To remove a game, right-click on it and select Manage > Remove non-Steam game from your library. To make things easier, you can hold CTRL on your keyboard and select multiple games at once, like you would in any other file browser.

Once you’ve removed all the games you don’t want to see in the SteamOS Game Mode, you’re done! You can now exit out of Desktop Mode, jump into Game Mode, and enjoy the fruits of your labors. Of course, your emulation journey has just begun, and so be sure to check out the per-system sections below to make sure that each of your systems are tuned just right for your liking.

EmulationStation Desktop Edition

Adding EmulationStation-DE to your SteamOS experience via EmuDeck is super easy. After running EmuDeck that first time, open up the Steam ROM Manager (see the section above for more details), and then under the Parsers section on the left side, make sure it is toggled ON. In fact, if you want to JUST have ES-DE added to SteamOS and no other games, simply toggle OFF everything but ES-DE in the Parsers section. Here is a visualization of the process courtesy of the EmuDeck wiki.

By default, EmulationStation will prefer specific emulators. To change them out, enter the Main Menu by pressing START > Other Settings > Alternative Emulators and change them as you see fit. These are the emulators I prefer to use with some of the major systems in ES-DE (those that are changed from default are in bold):

dreamcast = Flycast
gb = Gambatte
gba = mGBA
gbc = Gambatte
gc = Dolphin (standalone)
genesis = Genesis Plus GX
mame = MAME 2003-Plus (if using Mame 2003 Plus romset)
n3ds = Citra (standalone)
n64 = Mupen64Plus-Next
nds = melonDS
nes = Nestopia UE
ps2 = PCSX2 (standalone)
psp = PPSSPP
psx = SwanStation or DuckStation (standalone)
saturn = Beetle Saturn
snes = bsnes
switch = Yuzu (standalone)
wii = Dolphin (standalone)

In general, I choose to use RetroArch cores for systems like PS1, N64, and PSP. While you can run standalone emulators and potentially get better performance, I prefer the universal features like hotkeys and RetroAchievements that you can get from using RetroArch cores over having to configure those manually for the standalone emulators. If you want to adjust an emulator for a specific game, hover over the game in the menu, press SELECT > Edit this Game’s Metadata > Alternative Emulator and make the change there.

If you’d like to download additional themes, check out these options from their website. Themes are saved in Home/.emulationstation/themes (you will need to enable hidden files to find the .emulationstation folder). Note that for some themes, you will need to adjust the theme.xml file to adjust the aspect ratio or other theme settings.

It is possible to launch PS3 games from ES-DE, but it’s kind of a pain in the butt. Here is a guide for the process.

One navigation quick tip: to page down in the EmulationStation settings, press the R2 button. This will help you quickly navigate through larger game collections, or to quickly exit ES-DE (press START, R2, A, then A).

Updating EmuDeck and emulators

The EmuDeck platform will periodically have updates to add new features or options. To update, open up EmuDeck and it will find the update, install it, and reboot EmuDeck for you. On their GitHub you can read a changelog of release updates.

Once you have installed EmuDeck, you will have two paths to updating your emulators. Many will be updated individually like you would any other app, using the Discover store’s built-in update tool. Simply boot into Desktop Mode and you will get a little “Up” arrow icon in your bottom-right task bar, you can click on that and install your emulators. You can also open EmuDeck then select “Tools and Stuff” > Update Emulators and Tools > Update Flatpaks to do the same thing.

Other emulators are installed directly from the developer’s website, which is also built into EmuDeck. To update these, open EmuDeck then select “Tools and Stuff” > Update Emulators and Tools > Update AppImages.

Note that when running an update on EmuDeck, it may overwrite any custom configurations you have made. While there is an option in the update script that allows you to choose not to overwrite your settings, it might still happen as apps or EmuDeck go through slight improvements. To ensure your favorite game’s settings persist through updates, it’s sometimes best to make a per-game settings configuration (that process will vary depending on the system you are emulating).

Additionally, an update to EmuDeck or an emulator may sometimes result in unexpected behaviors. This is just how things go with attempting to consolidate the efforts of an entire emulation community into one tool! If you do experience some issues, I would recommend checking out the EmuDeck discord server where others can help resolve the issue.

CryoUtilities

CryoUtilities is a tool that will allow for some under-the-hood performance tweaks that improve gameplay smoothness for high-end emulators like Yuzu (Nintendo Switch). When used in combination with the PowerTools plugin featured below, you can have improved gameplay with very minimal work. This tool was created by YouTuber CryoByte33, and you can find his in-depth explanation of the tool and its benefits in this video.

To install:

  1. While in Steam Deck’s desktop mode, use a web browser like FireFox and head over to the CryoUtilities GitHub, and download the latest package and save it to your desktop by right-clicking and selecting “Save As” (direct link here).
  2. If you haven’t already, you will need to create a sudo password. To do so, open the Konsole app and type the word “passwd” and press ENTER. It will prompt you to create a system password (or prompt you to change the password if one already exists). Create a password and remember it for later.
  3. Double-click on the icon on your desktop. It will run an install script and create more desktop icons for you.
  4. Open the CryoUtilities app, it will prompt you for the sudo password you just created.
  5. Once in the main menu, you can simply tap the “Recommended” settings button and let the app do the rest of the work. For a longer explanation of the entire suite of settings, check out this video from the developer.
  6. Power off your device, then hold the VOLUME UP button while powering the device on. You can let go of the buttons once you hear the Steam Deck “bloop” sound. This will bring you to the BIOS menu. Using the right trackpad, navigate to “Setup Utility” on the bottom-right, and press the R2 button to click on it. Go to Advanced > UMA Frame Buffer Size and change it from 1G to 4G. Then press the SELECT button and confirm to save the changes and restart your device.

If you ever want to revert back to the stock settings, simply re-open CryoUtilities and click on the “Stock” settings option. You will also need to do the steps demonstrated in Step #6 of the installation process above, reverting the VRAM size back to 1GB.

Note that the recommended CryoUtilities setting will create a 16GB swap file on the internal SSD. If you are using the 64GB Steam Deck, where internal storage is at a premium, this may be a concern. I recommend using a large microSD card for your game storage to improve your storage capacity.

Additional EmuDeck tools

In addition to installing and configuration your favorite retro systems, EmuDeck has some built-in tools that can help your experience, and they can be accessed by opening EmuDeck and navigating to Tools & Stuff.

PowerTools: PowerTools is a plugin that will allow you to tweak specific emulators and games for the best performance. For example, it works really well with Dolphin by allowing you to reduce the number of CPU threads used by the app from 8 to 3 (be sure to also turn SMT OFF), which will make the 3 threads perform at a higher clock speed and provide smooth gameplay.

If using EmuDeck, you can install PowerTools directly in the app. Open EmuDeck and select “Tools & Stuff” > PowerTools and follow the prompts. To install PowerTools manually, you will want to use a tool called Decky Loader, which provides a storefront and installation path for plugins like PowerTools. To install Decky Loader, follow the instructions on their website. Once installed, you should find the plugins menu at the bottom of your Quick Access Menu (QAM) by pressing the “three dots” button while in game mode. From there you can tap on the store icon and find PowerTools. Note that all plugins require sudo access, and EmuDeck or Decky Loader will walk you through the process when necessary.

GyroDSU: GyroDSU is a plugin that unlocks the Steam Deck’s gyro controls to be used in emulators for 3DS, Wii, Wii U, and Switch. To get started, check out this guide from the EmuDeck wiki page.

Note that using plugins can sometimes make the device act sporadically, and crash. For example, when exiting the PowerTools it is better to press the B button on the Steam Deck than to press the QAM (“three dot”) button, which can sometimes cause the Steam Deck to crash.

EmuDeck Compressor: This tool will look through your ROMs and compress them to a compressed format, saving you up to 70% of storage space. PSX, PS2, Sega CD, and Dreamcast games will be converted to CHD format, and GameCube/Wii games will be converted to RVZ format.

BIOS Checker: This tool will check your BIOS folder and let you know if there are any issues. Even if you have BIOS added, they may not pass this check due to not a lower/uppercase mismatch, or might not be the exact file EmuDeck is looking for.

Quick Settings: If you’ve changed your mind about bezels, shaders, or aspect ratios for specific systems, you can use this tool to quickly toggle those options.

SaveBackup: This tool will back up your save games to a cloud service like Google Drive or Dropbox. This tool is in beta and so for now it will only back up your save games. In the future, this tool will also sync with other devices.

Emulator Guides: This section has a drop-down of the different emulators, with some notes about the emulator. The most helpful part of this section is that each emulator has a “Reset configuration” button. So if you muck up your GameCube settings and want to reset them without running the whole EmuDeck update, you can just reset the GameCube settings here.

Reset or Uninstall EmuDeck: If you wish to reset EmuDeck back to default, or uninstall the app altogether, you can also do this via the “Tools & Stuff” section.

Another tool that is helpful but not part of EmuDeck:

VibrantDeck: VibrantDeck is a plugin that allows you to increase the saturation levels on your Steam Deck’s screen. It is installed via the DeckyLoader that will be installed at the same time as PowerTools and GyroDSU. I personally use a VibrantDeck setting of 120.

Hotkeys

One of the challenges of emulating games on the Steam Deck is finding a good way to mimic the original controllers for the systems you wish to emulate. EmuDeck will preconfigure the controls for you using the bindings that you see above. If you wish to adjust any of them yourself, you can go into the emulator’s settings and tweak them to your liking.

Note that for some systems (Wii U, 3DS, etc.) you will need to enable a Steam Controller Profile so the hotkeys will work. Let’s use 3DS as an example. All you have to do is boot up a 3DS game while in Steam Deck Game Mode, press the STEAM button > Controller Settings > Current Layout > Template > EmuDeck – Citra 3DS. Note that this must be done ONE TIME for each game, it will remember the profile after that.


RetroArch

App: RetroArch (FlatPak)
File types: varies
BIOS: varies (place in the /Emulation/bios/ folder)
More info: EmuDeck wiki page

RetroArch is an all-in-one emulation program that provides a lot of standardized options, like universal hotkeys, easy cheat implementation, shaders, filters, autosaves, and more. For all of the low-end systems (basically everything up through PSP) I prefer to use RetroArch, but for the harder-to-emulate systems it’s often better to use the standalone emulators. There are also standalone emulators for the systems that run well on RetroArch (PS1, PSP, N64).

For a list of the most common systems support by RetroArch when using EmuDeck, check out this list from the EmuDeck GitHub page. Here you will find the system name and the accepted file extensions, plus any required BIOS files if necessary. An easy solution for BIOS is to search for a “RetroArch BIOS pack” and place all of the BIOS files from the pack in the /Emulation/bios/ folder. These packs likely contain more files than you need, but they will work in a pinch.

Note that RetroArch requires you to be running the Steam Deck at 60Hz. If you are experiencing slowdown the press the QAM (“three dots”) button, go into the Battery (Performance) section, and ensure that the Framerate Limit and Refresh Rate are both set to 60.

Multi-disc games: if you are playing something with multiple discs, the easiest way to manage them is through an m3u file. Here is an excellent tutorial from the EmuDeck wiki page.

PSP system files: If running PSP games from RetroArch, you will need to download PSP system files from within the app itself. Open RetroArch, then go to Main Menu > Online Updater > Core System Files Downloader > PPSSPP.zip — this will download and install the files to make the menus work properly.

N64 image sizes: Due to the nature of N64 video processing, some games will have black bars around the image (this was something baked into certain N64 games). If you’d like to zoom in on the image to remove those borders, press SELECT + Y to bring up the RetroArch quick menu, then press B to back out to the main menu, then select Settings > Video > Scaling > Aspect Ratio and set it to Custom. Then adjust the custom aspect ratio parameters so that the image stretches across the whole screen (or however you’d like). Once you are happy with how it looks, go to Quick Menu > Overrides > Save Game Overrides. Now every time you start that game it will scale correctly.

N64 30fps cap fix: If you are experiencing a 30fps cap on N64 games, you need to disable rewind. Open an N64 game, press SELECT + Y to bring up the RetroArch quick menu, then press B to back out to the main menu, then select Settings > Frame Throttling > Rewind and turn it off and that should fix it. After that, you can go into Quick Menu > Overrides > Save Core Overrides so that all N64 games have rewind disabled.

RetroAchievements: One of the coolest features of RetroArch is that it integrates with RetroAchievements. This is a multi-platform, community-driven tool that will help you track and achieve achievements for your retro games. As part of the EmuDeck installation process you will have an opportunity to integrate your RetroAchievements into the EmuDeck and RetroArch experience. To get started, sign up for a free account on the RetroAchievements website, and then be sure to enter your login details when setting up EmuDeck. If you’ve already installed EmuDeck but want to add RetroAchievements after the fact, no worries — just go back into Desktop Mode, go into Custom Mode and add your login details when prompted.

Here is a list of the most important universal hotkeys for RetroArch systems:

Exit game: SELECT + START
Fast forward: SELECT + R2
Save state: SELECT + R1
Load state: SELECT + L1
RetroArch Quick Menu: SELECT + Y (or L3 + R3)
Toggle FPS: SELECT + X

Note that RetroArch can be quite a complex app to use. EmuDeck will configure most everything for you, and really the experience should be seamless so that you don’t ever have to interact with the RetroArch menus. But if there is something specific you’d like to do with the app, I would recommend checking out my RetroArch Starter Guide for a deeper dive into your options.


Nintendo 3DS

App: Citra (standalone)
File types: .3ds .3dsx .app .axf .cci .cxi .elf
BIOS: Title Keys are needed for encrypted ROM types (aes_keys.txt). For best results, use decrypted ROMs.
More info: EmuDeck wiki page

Enable fast forward: First, let’s remove the throttle on fast forward so it will go as fast as possible. Go to Citra > Emulation > Configure > General and under “Use Alternate Speed”, move the slider all the way to the right so it is “unthrottled”. Be sure to leave the “Use Alternate Speed” option unchecked. Next, go into Citra > Emulation > Configure > Controls > Hotkeys and set the Toggle Alternate Speed to a keyboard key (like the number 9). You will need to bring up the Steam Deck onscreen keyboard to add that key (press STEAM + X to bring it up). Open a 3DS game, make sure the Citra 3DS controller profile is loaded, then go to STEAM > Controller Settings and select select “Edit Layout”. Go to Joysticks > R3 Click and set it to Keyboard > 9 (or whatever key you chose). Back out to the game and now every time you press R3 it will toggle on/off the fast forward. You will need to edit the controller profile for each game individually until this is integrated into EmuDeck.

Exit a game: To exit a game, press and hold R5 for a few seconds.

Improved visuals: By default, EmuDeck sets the resolution to 2x scaling, but many games will play great at 3x and look even sharper. However, some games may run too slowly, and unfortunately there is no way in Citra to have per-game settings. If you want to try a game at 3X resolution, press L4 to bring up the Menu Bar, then go to Emulation > Configure > Graphics > Internal Resolution > 3x and see if the game performs well. Just be sure to go back and change it to 2x for other games as needed.

Controls: The EmuDeck version of Citra doesn’t have hotkeys the way we’d expect them to be. Thankfully, the team has created a controller profile for the system and it auto-loads when you install EmuDeck. All you have to do is boot up a 3DS game while in Steam Deck Game Mode, press the STEAM button > Controller Settings > Current Layout > Template > EmuDeck – Citra 3DS. Now you can press L4 to toggle Full Screen, R4 to swap screens, L5 to toggle the layout, and R5 to exit a game (press and hold for a few seconds). This only needs to be done once per game.

In addition to the hotkeys you see above, there is a handy radial quick menu to access functions like Fast Forward, Save States, and more. To activate this menu, simply slide your thumb on the left trackpad:

Notes:

  • You can use .cia files but they will need to be installed in Citra before use. These files are not put in the ROMS folder and won’t be compatible with Steam ROM Manager or EmulationStation. For best results, use other file types, like unencrypted .3ds files.
  • The default Fast Forward speed is 500%. If you would like to adjust it, go into Configure > General and adjust the alternative speed to your liking.
  • It is possible to add gyro controls using SteamDeckGyroDSU. Here are instructions on how to get it set up.

Nintendo GameCube

App: Dolphin (standalone)
File types: .ciso .dol .elf .gcm .gcz .iso .nkit.iso .rvz .wad .wia .wbfs
BIOS: optional IPL.bin for boot logo (more info below)
More info: EmuDeck wiki page

PowerTools plugin: Some games will not run at full speed by default, due to how the Steam Deck handles its cores when running the program. To fix this, you will need to run the PowerTools plugin. See the PowerTools section for more info. In addition to using this plugin, you can open up the QAM (“three button”) menu, enable Advance View, and enable Manual GPU Clock Control and set it to 1200.

Gecko and Action Replay codes: There are many codes available that can enhance your gameplay experience on the GameCube. To get started, open Dolphin while in Desktop Mode and select Options > Configuration > General and ensure that “Enable Cheats” is checked. Next, load your games into the Dolphin interface if they’re not already showing. To do so, go to Options > Configuration > Paths and add the paths to your GameCube folder. It will be located at /run/media/mmcblk0p1/Emulation/roms/gc if you installed EmuDeck on your SD card. Now, in the main Dolphin menu you can right-click on the game and choose Properties, and there you will see tabs for AR (Action Replay) and Gecko codes. For many games these will be pre-populated with cheat codes that you can simply select to enable.

To add your own codes, search the name of the affected game within the Dolphin wiki to see what codes are available, then copy the text of the code you want to try. For example, here is the 60fps patch for Super Mario Sunshine. In the Properties section of the game (either in the AR or Gecko code tab depending on what type of code it is), choose “Add New Code” and then give it a Name (like “60fps patch”) and then past the code into the code section (just the code, not the name of the code from the Wiki code snippet). Press “Save” and now it should be a code you can select in that tab.

Widescreen hack: When setting up EmuDeck, there will be an option to enable the Widescreen Hack for GameCube games. This will work great for many games, but some, like Super Mario Sunshine, will have distortion on the sides. There are sometimes fixes available via Gecko or Action Replay codes, and they may already be pre-added to your game properties (see the section above about setting them up). Other codes can be found by searching the name of the affected game within the Dolphin wiki (for example, here is the 16:9 fix for Super Mario Sunshine), and you will have to add them yourself (instructions in the section above). Note that many 16:9 Gecko code fixes require you to turn OFF the widescreen hack that is enabled by default in EmuDeck. To disable the widescreen hack for a certain game, you can toggle the aspect ratio by pressing START + RIGHT on the d-pad.

Improved visuals: By default, EmuDeck will display games at a 2x resolution. If you would like to increase or decrease the resolution, you can press START + UP or START + DOWN on the d-pad. The difference between 2x and 3x resolution is indiscernible for most games when playing on the Steam Deck’s screen, but 3x resolution may look better when playing with the Steam Deck docked to an external display.

Boot logo: It is possible to see the GameCube boot logo when starting a game. First, you will need to source your own GameCube BIOS files. They will often be named something like “gc-ntsc-12.bin”, but rename it to “IPL.bin”. Then place the IPL.bin file in the GameCube system folder while in Steam Deck Desktop Mode (you will need to press CTRL+H to see hidden files to access this folder):

home/deck/.var/app/org.DolphinEmu.dolphin-emu/data/dolphin-emu/GC/USA/IPL.bin

Next, close Dolphin and restart it. Now go to Options > Configuration > GameCube and uncheck the box that says “Skip Main Menu” (if it is grayed out then there is an issue with your IPL.bin file or its location). Now when you open a GameCube game you will see the boot logo first. If you are getting a stretched image during the boot animation, make sure that Options > Graphics Settings > Hacks > Immediately Present XFB is turned OFF.

Controller profiles: Some games have controls that have aged poorly, namely for camera controls with a reversed X/Y axes on the right analog stick. You can offset this by making a new controller profile with reversed X/Y values on the right analog stick. Go into Dolphin > Options > Controller Settings > Port 1 (Standard Controller) > Configure, and remap the X/Y axes on your right stick to their opposite direction. Then in the “Profile” section on the top right, give it a simple name (like “reverse”) and click Save.

Now if you have a game where you want reversed X/Y camera controls, open Dolphin, right-click on the game then select Properties > Game Config > Editor and under “User Config”, type the following:

[Controls]
PadProfile1 = GC_reverse_camera

This method could be done for any number of controller tweaks, like specific button mapping, etc.


Nintendo Wii

App: Dolphin (standalone)
File types: .ciso .dol .elf .gcm .gcz .iso .json .nkit .iso .rvz .wad .wia .wbfs
BIOS: none required
More info: EmuDeck wiki page

For most of the Wii options, see the GameCube section above, since they use the same emulator.

PowerTools plugin: Some games will not run at full speed by default, due to how the Steam Deck handles its cores when running the program. To fix this, you will need to run the PowerTools plugin. See the PowerTools section for more info. In addition to using this plugin, you can open up the QAM (“three button”) menu, enable Advance View, and enable Manual GPU Clock Control and set it to 1200.

Wii system menu: Open Dolphin in Desktop Mode, then go to Tools > Perform Online System Update > United States (or your preferred region). Next, go to Tools > Load Wii System Menu (4.3U) and perform the initial setup (not that by selecting 16:9 aspect ratio it will make it hard to reach the sides of the screen with your pointer). If you have .wad file types for your Wii Virtual Console or WiiWare games and would like to have them added to your Wii menu, you can go into Tool > Install WAD and choose them from there. Note that this is mostly just a parlor trick since there is no way to enter the Wii Menu from the Steam Deck Game Mode. For more in-depth coverage check out this helpful video from Archades Games.

Wiimote control schemes: EmuDeck will pre-install several control profiles on your device, you can toggle between them by pressing SELECT + LEFT or RIGHT on the left analog stick. Each Wii game accepts different control profiles, and while most control schemes can be handled by the profiles above, some games that require full Wii motion controls (Wii Sports, for example) won’t be fully playable on the Steam Deck using these profiles. Instead, try to focus on games that have nunchuck, Classic Controller, or GameCube controller support. Here is a list of games that support the Classic Controller.

Note that these control schemes above aren’t definitive; if you’d like an alternative layout, you can enter the settings and adjust the controller profiles as you wish. For example, this layout was recommended by YT commenter MeowtheMouse:

C = L1
Z = L2
A = A
B = R2
1 = B
2 = Y
Shake = R1

Gyro controls: It is possible to add gyro controls using SteamDeckGyroDSU. Here are instructions on how to get it set up.


PrimeHack

App: PrimeHack Dolphin fork (standalone)
File types: .ciso .dol .elf .gcm .gcz .iso .json .nkit .iso .rvz .wad .wia .wbfs
BIOS: none required
More info: EmuDeck wiki page

PrimeHack is a fork of Dolphin made specifically for playing the Metroid Prime games. For best results, I recommend using the Metroid Prime Trilogy Wii game, which will be placed in the Emulation/roms/primehacks folder of your SD card (or internally if that’s where you installed EmuDeck).

PowerTools plugin: Some games will not run at full speed by default, due to how the Steam Deck handles its cores when running the program. To fix this, you will need to run the PowerTools plugin. See the PowerTools section for more info. In addition to using this plugin, you can open up the QAM (“three button”) menu, enable Advance View, and enable Manual GPU Clock Control and set it to 1200.

HD textures: There are some HD textures already installed on the EmuDeck version of PrimeHack, but if you want to add more, I recommend checking out my PrimeHack (Windows) guide, the process is the same. Texture packs should be placed in the following folder:

/home/deck/.var/app/io.github.shiion.primehack/data/dolphin-emu/Load/Textures/R3M/

Note: The folder .var is going to be hidden by default. In Dolphin (file manager), click the hamburger menu in the top right, click “view hidden files” to see hidden files and folders.

Here are the specific controls for PrimeHack.


Wii U

App: Cemu
File types: .rpx .wud .wux .wua .elf .iso .wad
BIOS: Title Keys (place them in Emulation/roms/wiiu/keys.txt) for WUD/WUX files
More info: EmuDeck wiki page

Cemu is a Windows application that can be run on the Steam Deck. Thanks to some clever tricks done by EmuDeck, it will automatically work on the Steam Deck — no need to configure Proton. When making adjustments to the Cemu app, you will want to do it in Desktop Mode so that you can see all of the menus. It will be labeled as “Cemu EmuDeck”.

Adding games: There are a variety of files that can be used to play Wii U games, and the setup process for each is unique:

  • RPX (Loadiine) – these are packaged in three folders (code, content, and meta), and are the easiest to find and use via tools like USBHelper. For these, you will want to make a folder with the name of the game, and then put the three folders inside. The main game folder should go in Emulation/roms/wiiu/roms (note this is a second “roms” subfolder). These files are not encrypted and do not require the keys.txt file.
  • WUA – these are compressed files made from RPX or other file types, they are unencrypted and my favorite file type to use. Check out my compression guide on how to create them yourself.
  • WUD/WUX – these are full-disc dumps of the Wii U game, contained in a single file. They are encrypted and will require the keys.txt file, which you must find on your own or dump from a hacked Wii U console.
  • NUS – this file type comes with a folder containing a bunch of .h3 and .app files. They are encrypted but can be decrypted into RPX files. In most cases, it is best to just use RPX files (and convert them to WUA).

DLC and updates: DLC and title updates are installed directly in the Cemu app using the Desktop Mode. The DLC/update should have the same three-folder structure (code, content, meta) as RPX game files. Place the DLC/update folder in the Emulation/roms/wiiu folder (I place them in subfolders named UPDATES and DLC). Open up Cemu and select File > Install game title, update, or DLC and then a Windows interface will pop up. Check the drive letters until you find one that looks like your SD card structure (it’s often the D: drive), then navigate to your DLC/update location and open either the meta.xml file or the main DLC/update folder.

Gyro controls: It is possible to add gyro controls using SteamDeckGyroDSU. Here are instructions on how to get it set up.

Graphics packs: One of the most important aspects of running Cemu properly is to use graphics packs. Once you have your games loaded, go into Options > Graphics Packs and click the button on the bottom-right that says “Download latest community graphics packs”. You should then see the graphics packs for each game you have installed. Be sure to go into the Graphics section for each game and see if there is an option to set the aspect ratio to 16:10 and the resolution to 1280×800 to match the Steam Deck’s display. Here are some of my preferred tweaks:

Mario Kart 8
Enhancements > Contrasty > Colorful

New Super Mario Bros U
Workarounds > Title Screen Crash Fix > ON

The Legend of Zelda: Wind Waker HD
Enhancements > Contrasty v1.1 > GameCube style
Enhancements > No SSAO > ON
Graphics > Resolution > 1280x720 (for best performance)
Workarounds > FPS Slowdown > ON

The Legend of Zelda: Twilight Princess HD
Enhancements > Contrasty > default
Graphics > Performance Resolution > 1280x720
Modes > Distant Fog > ON

The Legend of Zelda: Breath of the Wild
Cheats > (whatever you'd like!)
Mods > Xbox Controller Button Layout > ON
Mods > FPS++ > Mode > Advanced Settings
Mods > FPS++ > Framerate Limit > 40fps
(also set the Framerate to 40 in the Steam QAM settings)

Controls: The EmuDeck version of Cemu is (currently) running the Windows version of the app, which unfortunately doesn’t have hotkeys the way we’d expect them to be. Thankfully, the team has created a controller profile for the system and it auto-loads when you install EmuDeck. All you have to do is boot up a Wii U game while in Steam Deck Game Mode, press the STEAM button > Controller Settings > Current Layout > Template > EmuDeck – Cemu. Now you can press the R4 button to see the gamepad screen, and SELECT + START to exit a game.


Nintendo Switch

App: Yuzu
File types: .kp .nca .nro .nso .nsp .xci
BIOS: Prod keys go in Emulation/bios/yuzu/keys
More info: EmuDeck wiki page

There are two Switch emulators available for the Steam Deck, Yuzu and Ryujinx. We are going to focus on Yuzu in this guide, but here is a helpful page on Ryujinx if you want to try that one out instead.

Obtaining game files: It is recommended you dump your own game files from a modded Nintendo Switch. Additionally, you can dump your prod.keys file from the Switch.

For best results, use game files that are in NSP or XCI format. There is a tool called Switch Army Knife (SAK) that will convert XCI or NSZ formats to NSP. You can also use this tool to patch your game files with title updates so that you don’t have to load them individually. Files with special characters in the name will not launch from Steam (for example, é in Pokémon), so be sure to rename your ROMs as needed.

DLC and updates: DLC and title updates are installed directly in the Yuzu app using the Desktop Mode. For best results, use DLC/updates that are in NSP format. Note that these files should NOT be loaded to the Emulation/roms/switch folder or they will appear as additional game files in Steam ROM Manger (personally I store mine in the Emulation/roms/bios/yuzu folder). Open up Yuzu and select File > Install Files to NAND… and navigate to wherever you placed your DLC/update files. You can select all of them at once, which will speed up the process. After the installation is complete, you can remove those NSP files from your Steam Deck.

Yuzu cheats/mods: There are many places to find mods, here is a good place to start. Scroll through the list and download whatever files you want. Next, unzip the file so that you have a single folder with an exefs subfolder. Copy that main folder and then right-click on the name of the game within the Yuzu main menu and select “Open Mod Data Location”. Paste that mod folder inside and you are good to go. You can verify that mods/cheats are installed by right-clicking on the game and selecting Properties; the cheats/mods should appear in the “Add-Ons” tab, and you can disable them here if you’re like.

Note that some cheats/mods may require special versions of each game. For example, The Legend of Zelda: Link’s Awakening has a “Stable 60fps” mod that only works in version 1.0.0 of the game. You can check these versions my looking at the “Applies To” column on the Yuzu mods page. If you have updated your version of the game to 1.0.1, you can go into Yuzu, right-click on the game, select Properties, and uncheck the 1.0.1 update to revert to the 1.0.0 version.

Performance and compatibility: Many games will run fine using the default EmuDeck settings. For some specific per-game recommendations, check out this Steam Deck emulation database. To create per-game configurations, right-click on the game while in the main Yuzu menu, and select Properties — here you can adjust resolution, VSync, and accuracy levels. Some games simply don’t work well on the emulator, which you can check in the “Compatibility” column in the app itself.

Many Switch games will also benefit from turning off SMT (simultaneous multi-threading) via the PowerTools plugin. This will reduce the nubmer of threads used from 8 to 4, while also boosting the performance of those 4 threads to achieve smoother frame rates. This setting can be saved on a per-game basis by toggling SMT off while the game is running, then scroll down in the PowerTools menu and choose Persistent Profile: ON.

Additionally, you can manually set the GPU Clock Control by opening a game, pressing the QAM button to bring up the right menu, then go to the battery icon > Manual GPU Clock Control > ON, and then set the GPU clock frequency to a figure between 1300 and 1600. You will want to experiment to find the frequency that works best for your game, but I generally will start at 1300 and increase it by 100 until I find one that gives me the most consistent performance.

Gyro controls: It is possible to add gyro controls using SteamDeckGyroDSU. Here are instructions on how to get it set up.


PS Vita

App: Vita3k
File types: NoNpDRM dumps via VitaShell
BIOS: PS Vita firmware
More info: EmuDeck wiki page

It is possible to emulate PS Vita games on the Steam Deck, but it is something I haven’t had a chance to test yet. You can read through the Vita3k Quickstart guide which also includes instructions on how to dump games from your jailbroken PS Vita. If you’d like to learn how to jailbreak your PS Vita, check out my guide here.

As soon as I test it I will update this guide! In the meantime, here is a showcase from ETA Prime.


PlayStation

App: DuckStation
File types: .cue .chd .ecm .iso .m3u .mds .pbp
BIOS: scph5501.bin or similar (lowercase!) in the /Emulation/bios/ folder
More info: EmuDeck wiki page

The PlayStation can play just fine on RetroArch with all the bells and whistles, but the standalone Duckstation emulator is excellent, too. It also has a sweet radial Quick Menu that can be activated by scrolling the left trackpad near the bottom-left which makes navigation super easy. You can see a demonstration image of a similar menu in the 3DS/Citra section above. Be sure to enable the PS1 controller profile to access the Quick Menu.

To manage multiple discs, you can either create an .m3u file or you can convert multi-disc PSX games to .pbp file format. Instructions for both are available via the EmuDeck wiki. If you only have .bin files for your PSX games, you can generate .cue files for them using this handy tool.


PlayStation 2

App: PCSX2-Qt (see note below)
File types: .chd .cso .gz .img .iso
BIOS: see below
More info: EmuDeck wiki page

When installing EmuDeck, it will install two different versions of PCSX2: the stable “PCSX2” build and the nightly “PCSX2-Qt EmuDeck”. The latter is the default, and will provide frequent updates and has a nice graphical interface.

PS2 BIOS: There are many BIOS file sets to use with the PS2, I personally use this set from the PS2 slim model. Place all of them directly into the /Emulation/bios folder.

SCPH-70012.bin
SCPH-70012.MEC
SCPH-70012.NVM

Widescreen hacks: To enable widescreen hacks, open PCSX2-qt and go into Settings > Emulation and turn on “Enable Cheats” and “Enable Widescreen Patches”. You can use the updated hotkeys to cycle the Aspect Ratio for the best fit for your game. Also go into the settings menu of the game itself, many PS2 games had widescreen support built-in.

Faster Fast Forward: By default, PCSX2 fast forward is 500%, but you can remove that limit by going into Settings > Emulation and change “Fast Forward Speed” to “Unlimited”. The default EmuDeck fast forward hotkey is SELECT + R2. If the fast forward hotkey doesn’t appear to work, go into the QAM (“three dot”) settings on your Steam Deck, then Performance > Advanced View > Framerate Limit > OFF.

Improved visuals: If you go into Settings > Graphics you have some options that can improve the graphical fidelity of the PS2 gaming experience. I recommend the following:

Rendering tab / Anisotropic Filtering: 8x
OSD tab / Shade Boost: ON
OSD tab / Saturation: 75
OSD tab / FXAA: ON

Additionally, although EmuDeck is set to a default 2x rendering resolution, a 3x resolution looks significantly better (thanks to an effect known as “supersampling“) and just about every game will play great at that resolution. Press START + UP on the d-pad to increase the resolution while playing a game (and START + DOWN to reduce it).

Controller profile: Some games may have the old-school reversed horizontal camera (like Jak & Daxter) and no option in the game settings to reverse them. Instead, what you can do is go into Settings > Controllers and on the bottom-right there is a button for “New Profile”. Choose that, name it however you would like, and choose to load the current profile (called “Shared”). Then go in and change the right analog stick mapping, and exit out of the window and the app. Now to set this to a specific game, we will use a per-game setting, which is our next topic.

Per-game settings: If you want to tweak something specific to a game, you can open PCSX2-Qt EmuDeck, right-click on the game and select Properties. For example, you can change the default resolution, reduce anisotropic filtering, or load a specific controller profile for that game.

Boot logo: If you would like to see the full PS2 boot logo when starting a game, go to Settings > BIOS and uncheck the “Fast Boot” option.


PlayStation 3

App: RPCS3
File types: /PS3_GAME/USRDIR/eboot.bin or .pkg (and .rap) files installed in RPCS3 (more info below)
BIOS: PS3 firmware
More info: EmuDeck wiki page

BIOS installation: To add the BIOS, you need to download the PS3 firmware update file and install it directly in the app. To do so, open up RPCS3 while in Desktop Mode, then select File > Install Firmware and find the PS3 file you downloaded. After you have installed it, you can delete the downloaded file. For more detailed instructions, check out the RPCS Quickstart guide.

Game files: there are two main types of PS3 game files you can use with EmuDeck, extracted ISO/PSN files, or .pkg/rap files.

  • Extracted ISO/PSN files. These data files will come in a format that looks like (Name of Game)/PS3_GAME/USRDIR/eboot.bin (along with a bunch of other files in the USRDIR folder). To install these, place the (Name of Game) folders in the /Emulation/roms/ps3 folder and when selecting your parsers in Steam ROM Manager, choose the one that is called “RPCS3 (Extracted ISO/PSN)”.
  • Installed PKG files. If you have .pkg files ripped from the PSN store, these will need to be installed directly in the RPCS3 application. Simply choose File > Install Packages/Raps/Edats and find the file, or drag and drop the .pkg file into the main emulator window. This will install the games to the Emulation/storage/rpcs3/dev_hdd0/game/ folder wherever you installed EmuDeck. After they have been installed, you can delete the pkg files. Note that in order to open some pkg installations, you need to install the accompanying .rap files that should be a part of your .pkg extraction. If you don’t have those, you will need to use a tool like PSNDLv4 to find them. Once they are installed, be sure to select the “RPCS3 (Installed PKG)” parser option in the Steam ROM Manager.
  • If you want to dump your own PS3 files from discs or the PSN, check out the RPCS3 Quickstart guide.

If you would like to add your PS3 games to EmulationStation, follow these instructions from the EmuDeck wiki.

Note that many games won’t work properly in RPCS3, and performance on the Steam Deck can be quite limiting. For best results, consult the RPCS3 compatibility list and see if your desired game is running well, or if there are any specific tweaks that could boost performance.


Xbox

App: Xemu
File types: .iso (xiso formatted, see note below)
BIOS: mcpx_1.0.bin and modified retail “COMPLEX 4627” BIOS (place in /Emuation/bios)
More info: EmuDeck wiki page

Prepare your game files: Xbox .iso files need to be formatted to “xiso” in order to run in Xemu. The resulting file will still be an .iso file, but will now work in the emulator. I prefer to use the extract-iso tool to do this, and there are some excellent instructions on the EmuDeck wiki to set this up.

BIOS files: the EmuDeck installation process will already pre-install Xemu’s Xbox HDD image requirement, but you will need to add the MCPX Boot ROM and BIOS Flash ROM images yourself, directly in the /Emulation/bios folder. Here is more information about those BIOS files. If after adding the BIOS files the emulator doesn’t recognize them, it is likely a naming issue. To fix this, navigate to Machine > System and then point the application directly to your BIOS files.

Performance and compatibility: Xbox emulation on the Steam Deck is unfortunately not perfect. To see whether a game will be compatible with the Xemu emulator, check out their compatibility list. If the game is compatible, is will likely play at an acceptable level when using an Internal Resolution Scale of 1x (the default set by EmuDeck). Some games may run at a 2x resolution; to set this, press SELECT + START to bring up the Quick Menu, then navigate to Settings > All Settings.

Widescreen: Some games support widescreen or 4:3 aspect ratios. By default the Xbox display will be set to stretch the entire screen. You should be able to go into the individual games’ settings and toggle on widescreen support if they have it. For others, you may want to play the game in 4:3 aspect ratio. To set this, press SELECT + START to bring up the Quick Menu, then navigate to Settings > Display Mode to toggle the options.

Note that the white and black buttons are mapped to L1 and R1 respectively on the Steam Deck.


Xbox 360

App: Xenia
File types: .iso (check out my guide on how to rip them from an Xbox 360)
BIOS: none required
More info: Xenia quickstart guide and EmuDeck wiki page

Xenia is in an experimental stage and not many games will play right now. If you want to install it, it is available via EmuDeck by going to Tools & Stuff > Emulator Guides > Xenia (screenshot below).


RetroDeck

RetroDeck is an all-in-one emulation solution that uses EmulationStation as its main interface. Because it is self-contained, it will behave as a single app with all of its emulators pre-installed and configured. This is a great solution if you just want a simple emulation experience that you can access directly from your SteamOS environment. Moreover, the app is available directly in the Discover app via Desktop Mode on your Steam Deck, making the installation process super easy.

This app is in active development and not considered a full release. As such, I would treat it like a beta program until the final build is available, and expect new features to be added and removed as development continues.


Batocera

Batocera is a custom Linux operating system that is focused on game emulation. It uses EmulationStation as its frontend, and has been in development for many years across many platforms, making it a very refined experience. It is also in active development, with several significant releases every year.

One advantage of Batocera over the others is that it is completely self-contained and bootable from a variety of formats. This means you can load Batocera on a microSD card, flash drive, or external hard drive and boot it from there. As an example, you could use your Steam Deck primarily for PC games, and when you are ready to do some emulation, you can just add the Batocera SD card, boot into the card (see the video above for a demonstration), and start playing games. This is an excellent setup if you want to separate your SteamOS PC gaming experience and your retro game emulation.

Another advantage of Batocera is that it has comprehensive guides thanks to its long development history, and an active discord server for any more challenging issues. For a complete list of systems that you can run on Batocera, check out their systems table list. Note that as of making this guide, Yuzu (Switch) must be manually installed.

Note that Batocera is currently in a beta state on the Steam Deck, but it is very stable and will only get better.


Changelog

05MAR2024
– updated Switch and Citra sections

24NOV2023
– added note about EmuDeck recognizing SD cards

31JUL2023
– updated EmuDeck wiki links
– general cleanup and maintenance

13APR2023
– updated Wii U section to link to WUA compression guide

08MAR2023
– added CryoUtilities section
– updated Switch section to further explain SMT and GPU clock control

16JAN2023
– added section about re-linking the SD card for use when in Game Mode

19OCT2022
– added screenshot of Xenia installation option
– fixed wording about PCSX2-Qt as the default emulator

18OCT2022
– added link to ES-DE themes
– added note about fixing the 30fps cap in N64

17OCT2022
– added note about N64 image sizes in the RetroArch section

16OCT2022
– published guide

58 thoughts on “Steam Deck Emulation Starter Guide

  1. Thanks this is very helpful and I’ve had a lot of fun doing this + working with all these tools. Thank you for making this.

    I’m beginning to use the dock and separate controllers for these emulators and running into a lot of issues with making it work so if you have advice on how to make this run fine on cocked mode as well I’ll take it 😀

    Like

  2. Excellent. Was looking for some suggested settings for Cemu, and the 40 FPS lock, FPS++ and a few other tweaks and BOTW never looked and played so good! Really grateful for you and all the effort you put in.

    Like

  3. Thanks for your outstanding guides and videos!
    re: PCSX2, you say “Unfortunately this emulator is not compatible with EmulationStation”…is that accurate? If I open PCSX2 (the QT version) on the Steam Deck (regular mode, not Desktop Mode), make some config changes, then quit and open EmulationStation and open a PCSX2 game from there, that version of PCSX2 has my config changes, so I think it’s the same version, is it not?

    Like

    1. Last I was told by the team they weren’t able to get the Qt version working with ES-DE. They likely share the same settings ini file, which is why you are seeing the same configuration changes across the two emulators.

      Like

    2. I talked to the team, I was mistaken, PCSX2 Qt is now the default for both SRM and ES-DE. I’ve updated the guide, thanks for bringing it to my attention.

      Like

  4. PS1 exit hotkey doesn’t work. I had to assign one of the back buttons to ESC to open the duckstation quick menu to exit the game.

    Like

  5. Hello, first of all I would like to thank you for the really great work. I like your structure of the tuts very much. I have one question. is there an option to install the steam deck emustation mega bezel reflective shader?

    Like

  6. Russ,

    Is it possible for you to add in what the default controller profile per emulator that we should use as a start? Even for the emulators that do not need a specifically configured profile. It will definitely help me (and i hope others) to reduce the frustration around the controls at the start of each emulator’s testing?

    Thanks for all these info so far!

    Like

    1. Hi, I’m not sure if I’m answering your question correctly, but except for the specified emulators (3DS, Wii U, etc) the default Steam controller profile should be what you are using.

      Like

      1. I think the guide causes some confusion in tandem with the YouTube video. You hype up EmulationStation (it is very handy), but this guide has all sorts of Steam controller profiles suggested for different emulators. Unfortunately, if you use ES, then the Deck sets the profile you select for ES and not whatever particular emulator you are using. Steam sees ES as the “game” you are in. When I enter a PSX game through ES and then set the DuckStation control profile, that profile will then be in use for SNES or anything else through ES.

        Unless I am missing something, EVERYTHING played through EmulationStation needs to be using the default Steam Deck profile, unless you want to keep swapping back and forth. The emulator-specific profiles only really work if you launch them separately through Steam.

        Like

  7. I’m having a lot of trouble scraping the artwork within EmuDeck. If I use Screenscraper (do I need an account fir this?) it takes literally hours to scrape the artwork. Is there any faster way to do this? Thanks.

    Like

    1. It will take a while, I’m not sure if you *need* a ScreenScraper account but I recommend it. There are paid tiers with ScreenScraper that will speed up the process, but yeah unfortunately that first time will take a bit. Sometimes I have found it easier to just scrape one system at a time so it doesn’t feel so long.

      Like

    2. A late reply but might help others. The thing is scraping gameplay videos as well. Uncheck videos in the settings of media to scrape. It’s a nice feature but way too heavy.

      Like

  8. Thank you for this wonderful guide.

    I have a question to everyone regarding Citra.
    I’m not having any luck with controls. I’ve chosen the Citra 3DS control scheme, however I still do not have any input. I uninstalled and Re-installed Citra, I restarted my device, nothing worked. All I get is R2 swapping screens, no other controls work. Any ideas on how to fix this?

    Like

    1. Hi Ethan, I’m not sure what’s going on there, but I would recommend opening Citra while in desktop mode and see if you can re-map the controls. It might not be connecting correctly at first. Any mapping you make will carry over into the game mode side as well.

      Like

      1. Hey Russ, so I think I’ve somewhat localized the problem. I tried a lot of things, including factory resetting my device, and the problem persists. I was thinking it might have to do with my “desktop configuration” or something around the controller layout that is baked into my steam account, but I’m not exactly sure what. Any ideas? Also is there any documentation for the desktop controller layout, this is mine by default and it seems very odd. (Y is mapped to the F Key, the left touchpad is mapped to 1-4)

        Like

  9. Hi all! Sorry if someone already had this question, but I can’t find anything to solve this problem. MSX and MSX2 games won’t start… I tried almost anything I could think, the bios file is on the right place (in the SD folder with the other ones) and I think it’s named correctly; however as I try to launch a game (I have 6 of them) it kicks me back to the selection screen. Any suggestion? Thank you!

    Like

    1. Hi Angel, if you are getting kicked back from the main menu screen that is generally an incompatibility with the ROM file or the BIOS. I’m not sure which MSX emulator core they are using in EmuDeck but if you look at the Libretro docs page for this one (or the other one which is right below it in the lefthand menu) you can see the specific BIOS files they are looking for, and the file extensions that are supported. So I would try searching specifically for those BIOS files by checksum name and see if that might help. https://docs.libretro.com/library/fmsx/

      Like

      1. Hi Russ, thank for your answer! I solved the problem finding this page:
        https://docs.libretro.com/library/bluemsx/

        Emudeck uses Bluemsx as default emulator, and it works great, but there are two needed folders that I didn’t noticed. I just put both in the BIOS folder and everything now works fine!

        Again, thanks for your excellent guide (and not only for that, I’m following you on YouTube and you’re the best for retrogaming out there!)

        Like

  10. Great guide as always, not the first time this was the place to go to find out how to use your new gaming devices.

    I was wondering if there is any way to start using external controllers like the xbox controller to work with the different emulators.

    For example how can I get the Wiimote to work with dolphin or what are the best controller profiles for the gamecube games ….

    I really like to use my steam deck in the dock with a big monitor.

    Like

    1. I haven’t messed with external controllers that much but some (like Dolphin) should already be set up for multiple controllers at once, it’s something the EmuDeck team is trying to make seamless for users. Otherwise you can just go into each emulator’s settings and see if they are hooked up. Dolphin does include support for Wiimotes using a USB receiver, so you could definitely get that set up within Dolphin’s controller configuration menu. It’s a bit of a rabbit hold but definitely possible!

      Like

  11. Thanks for another great guide, Russ.

    With regards to widescreen mode for PS2 emulation, some games do not have it in their settings menu but they rely on an internal setting in the PS2 System Configuration: in the PCSX2 main screen, click Start BIOS , select System Configuration, navigate to Screen Size and select 4:3/Full/16:9.
    For me, this setting enabled Burnout 3 to be displayed in proper widescreen, rather than having PCSX2 stretch the 4:3 image out to 16:9.

    Like

  12. Hey Russ, have you managed to find a good stylus to pair with the Steam Deck for use with the DS and 3DS emulators? Feel like every stylus I try doesn’t work well or at all on Steam Deck. Finger works fine though but kinda limiting

    Like

  13. Do I need to wipe my Steam Deck before I start this, and is there a way to have my emulation stuff *and* Steam games on a single microSD card (so I don’t have to keep swapping out)?

    Like

    1. Yes, this will work just fine with the card you have. The card I use has Steam games and emulation games on it at the same time, I just wiped mine to give everyone that brand-new experience.

      Like

  14. Hey Russ, just want to say you’re a real pillar of the emulation community and things would be so much harder for the public without all the work you do. The fact you continually reply to people and update your guides is really just above and beyond. I hope you have tons of success and can do this for years to come.

    Like

  15. Thanks for this comprehensive guide, I am currently suffering from one annoyance (due to my newb status no doubt). I want to be able to dock my steam deck, load up Emudeck, play a retroarch rom/game and use an BT XBOX One controller connected. I can load emudeck, navigate the menus with the Xbox conroller, but when I get in game (say Zelda on NES via retroarch) the controller does not work, I have gone into the retro arch menus and tried mapping to a port 2 controller, but still no joy…. any guides out there on how to overcome this?

    Like

  16. Love your guide. I went through all the steps but Emulation Station is not loading on the SteamDeck, It just hangs at “Loading system config…”

    Any help would be great.

    Like

  17. Thanks a lot for this amazing guide! One questions: Is there an option to change the languages for the RetroArch Emulators? I was checking all options but for I have no options for the emulators directly, for example PPSPP. Thanks a lot!

    Like

  18. Awesome guide!

    One question: when I extract a Wii U game from a 7z file, all the resulting files are .app and .h3

    I cannot for the life of me figure out what I’m doing wrong. Do I need to find a different download source?

    Like

  19. Hi Russ. I wish everything in life had a guide as helpful and comprehensive as this!

    I have 2 questions:

    1. I’ve noticed when I download certain games (such as PSX games), there can be up to a dozen or so files that say “Track 1,” “Track 2,” etc. And then when I go into Emulation Station, each one of these appears as its own “game” in the list. Is there a way to consolidate it all?

    2. I had the N64 emulation working fine, but for some reason now I get only audio and no visual. Is there somewhere I can look for troubleshooting tips?

    THANK YOU. You’ve helped bring a middle-aged dad some much needed enjoyment and relaxation.

    Like

    1. I used the tools compression feature to compress those track 1, track 2 files into 1 single file and i think that is what youre supposed to do, but not sure.

      Like

  20. im having some issues with the files coming onto the steam deck from my usb. sometimes they work perfectly fine, but most of the time the files end up getting corrupted. for example, on deck i have three games working on psp, but twenty games total. all of them work on my pc, but only three work on my deck. could this be my usb? or my sd card? its been driving me crazy trying to get my games to work.

    Like

  21. I installed emudeck and haven’t pretty much my only issue is with PCSX2, neither build seems to recognize my steamdecks joystick. I have tried changing the controller setup and making sure that the joysticks are bound to the ps2 joysticks but nothing seems to work. I was wondering if you, or anyone else had a similar issue?

    Like

  22. Super-minor edit for the installer:
    On the Update emulator’s configuration page it says “You can disable any emulator emulator to keep it’s current configuration.”
    The second emulator shouldn’t be there.
    And it’s should not have an apostrophe.

    Like

  23. Got Emudeck all set up and realize installing PowerTools actually install Deckyloader too, so you can add other plugins (SteamDB, VibrantDeck) through their storefront!

    Like

  24. Hi! This guide is amazing. I noticed that when i used emudeck to set things up, it configure the shader directory to a folder that didn’t have all the default shaders – I really like Simpletex for GBA and it wasn’t there when i browsed like it is on windows and android ). I was able to find them in a different spot on the drive through much investigation and random browsing into hidden directories, but is there an easier way to get access to all those built in shaders when set up via emudeck?

    Like

  25. Did anyone else have an issue with SRM not populating any parsers? I went thru emudeck to open the steam rom manager and completely empty 😭

    Like

  26. Russ, coming back to this months later now that I have a Deck. I have everything set up, but my problem is that launching GC/Wii games from Emulation station prevents the deck from using the Per-Game profiles in performance settings and Power Tools. Is there any way to circumvent that, besides launching those from Steam library or through the emulator?

    Like

  27. yes I have seen your video on steam deck with emu deck, but I’m still having problems
    This is what I’m trying to do I have fourteen dreamcast games on disc trying put on micro sd card that and finding BIOS. I found download version for dreamcast games but I do not know what I doing . Do you know someone that I can pay for service
    thank you

    Like

  28. How to change the associated core for Saturn games in steam rom manager? Some games work better with beetle but steam rom manager put me all the saturn games with Yabause as a default. Can I choose the core pro game and launch it from the steam plateform directyl?

    Like

  29. Hello there! My Steam Deck just arrived, and I’ve spent a good chunk of time copying ROMs, organizing box arts and configuring everything. Yet, a few aspects remain a bit unclear to me, and I’m hoping you could provide some insight: My first intention is to play Gamecube games using Emulationstation Desktop.

    Could you explain the functionality of the Quick Menu accessed via the Trackpad? Currently, it doesn’t seem to register any of my clicks. While I can navigate through the menu just fine, attempts to trigger actions, left or right clicks, or any other interactions don’t yield any results.

    Can I deactivate the Trackpad menu?

    Is there an equivalent to EmulationStation or Dolphin’s menu? I’m looking for a place where I can manage save states, adjust game-specific settings like resolution and controls. While I’m aware of the keyboard shortcuts, I haven’t been able to locate a dedicated menu for these functions.

    Like

  30. PS2 games are too blurry in Steam Deck OLED, I tried every graphics setting and still no work. Some other on reddit said this started to occur with the OLED version, and LCD version was just fine previously. Any idea?

    Like

Leave a comment