Play Retro Games on Steam Deck With RetroArch

2022-03-18

Retro gaming is hugely popular these days, and playing your old games on the go on the Steam Deck is a very attractive idea.

Today we’ll take a look at RetroArch, an all in one solution for emulating your old games from different consoles of yesteryear.

Install RetroArch

RetroArch can be installed directly through Steam, although from what I understand the version that’s on Steam is not on par with other releases.

For this reason we’ll go in a different direction and instead install it through Flatpak.

To do so, you’ll need to go to desktop mode, then open up the Discover app center, search for RetroArch and finally install it. Alternatively you can use this terminal command:

flatpak install org.libretro.RetroArch

Configuring RetroArch

Open up RetroArch, you should see the interface right away. Depending on your configuration your controller (either built-in or external) should be picked up right away and you should be able to use it to navigate the interface.

Let’s make a few configuration changes before moving on.

If your controller is not picked up, or if you want to change some controls from the default (for example on an XBOX style controller like the one on the Steam Deck, RetroArch uses the B button as OK and the A button as Back or Cancel), you’ll want to mess with the controller configuration.

If the controller doesn’t work at all you can interact with the interface using a mouse or via the touch screen.

Another small note, if your controller still behaves like a mouse (since you are in desktop mode), you might want to add RetroArch as a non-Steam game and open it up through Steam.

To change the controls you’ll need to navigate to Settings and then Input.

To swap the OK and Cancel buttons, select Menu Controls and enable Menu Swap OK and Cancel Buttons

Now you’ll want to enable a shortcut for opening the menu while you are in game. To do so, go back and select Hotkeys.

Select Menu Toggle Controller Combo and set it to a shortcut of your preference. I use L3 + R3 (pressing down on both analog sticks), but I can also recommend Start + Select.

Go back and scroll all the way down to Port 1 Controls and select it.

Here you’ll be able to change various options, which should be fairly easy. The only important setting I want to detail that may not be immediately easy to understand is Analog to Digital Type: this allows you to use one of the analog sticks to emulate the D-Pad input for consoles that didn’t have an analog stick. I recommend you set it to Left Analog.

Next, you should probably enable fullscreen mode for the best experience. To do so, go back to Settings and select Video.

Here select Fullscreen Mode. This should immediately switch to fullscreen mode.

As far as configuration goes, we should be done.

Installing Cores

RetroArch itself isn’t an emulator. Instead it uses existing emulators to run your games. These are called Cores, and there are many different ones for various retro consoles you can choose from.

To install cores, you need to go back to the main menu and select Load Core, then Download a Core.

There is a huge number of cores you can download here, depending on the game you want to play. Here are the ones that I downloaded:

  • Nintendo - Game Boy Advance (mGBA)
  • Sega - Dreamcast/NAOMI (Flycast)
  • Sony - PlayStation (Beetle PSX HW)
  • Sony - PlayStation 2 (PCSX2)
  • Sony - PlayStation Portable (PPSSPP)

Note that depending on the particular console you’re trying to emulate you might need a BIOS file. You can extract them from your original consoles, but if you lack the tools to do so or your console is broken, you can try looking them up on the internet. Note that this is a legal gray area, so do so at your own risk.

To learn more about installing BIOSes you can reference Libretro’s user documentation.

Importing games

You’ll need to extract the ROM files from the original games. It might be easier for certain consoles than others, depending on the system you want to emulate. Again, if you lack the tools to dump your own games, you can download them from the internet. This as well might be illegal so proceed with caution.

Once you have all of your game ROMs, it’s a good idea to categorize them neatly in a dedicated folder. This is how I organize my games:

  • Home
    • Games
      • Emulators
        • GBA
        • PS1
        • PS2

You can easily organize your ROM files using the Dolphin file manager included in your Steam Deck.

Once you’re done, go back to RetroArch and go to Import Content, then select Scan Directory.

Select your home folder (should be /home/yourusername).

Navigate to the folder containing your game ROMs, then select <Scan This Directory>

Once it’s done, go back to the main menu, and you should see a list of consoles at the very bottom of the sidebar.

Select the game you want to play and press Run, then select the Core you want to use (the list should only contain cores that can actually run the game), finally press Run again. This should start the game and you’ll be able to finally go ahead and play!

To open up the emulator menu you can use the shortcut we set up earlier, or press F1 if you have a keyboard connected.

In this menu you’ll be able to close your game, save and restore the state and change some settings specific to the game you’re playing, as well as playing around with shaders to get some more visual flare out of your old games (this is an advanced option, be careful).

That should be it! Let me know your thoughts, and if I missed anything in this guide, down in the comments.

UPDATE: I’ve been asked how to use shaders to add extra flare to your games. This might seem a bit complicated, but it’s actually a fairly easy process if you use shader presets. You can find a guide in the Libretro’s documentation.


Hey there!

I run this website without any ads and without tracking, because I love to share these little bits of knowledge and help people that are just starting out.

If you'd like to thank me, or you'd like this work to be sustainable and continue on in the future, consider sending a donation via Liberapay. Thank you!

Hide this message

Enter your instance's address


More posts like this

Allow Flatpaks to Access Your SD Card With Flatseal

2022-03-31 | #app #flatpak #sandbox #tutorial

Flatpak is the main way to install apps on your Steam Deck. It’s an awesome system and there are tons of apps for you to install! The problem is that Flatpak sandboxes your apps, using a fine-grained permission system, similar but much more advanced than what you might see on your smartphone OS. Because of this, Flatpak apps might not have access to some resources on your Steam Deck. The most obvious example is an emulator like RetroArch or a game launcher like Heroic not being able to access your SD card.

Continue reading 


RPCS3: PS3 Games on Your Deck

2022-03-19 | #app #emulator #flatpak #playstation #ps3 #rpcs3 #sony #tutorial

Continuing the trend of emulator tutorials, today we’ll look at RPCS3, an emulator for the PlayStation 3. Let’s get started with the installation. Install RPCS3 Installing RPCS3 is really easy by using Flatpak. Go to desktop mode, open up the Discover app center, search for RPCS3 and install it. Alternatively, you can run this command in the terminal: flatpak install net.rpcs3.RPCS3 Configuring RPCS3 Opening up RPCS3, we’ll be greeted by this window:

Continue reading 