5 Ways to Play SNES Games on Linux with Current Emulators

Linux users have several good ways to play Super Nintendo games. For the simplest setup, try standalone Snes9x; choose RetroArch if you want one library for multiple systems; use bsnes for a dedicated SNES emulator; or pick Mednafen if you prefer launching games from a terminal. Mesen Community Edition is another graphical option that also supports other classic consoles. All five need a game ROM supplied by you.

Before you start

Use game files that you are authorized to use; copyright and personal-backup rules vary by country. Common SNES file extensions include .sfc and .smc. Put your files in a folder you can find, such as ~/ROMs, and note that not every emulator build opens compressed archives.

A Linux file manager shows several SNES game files with .sfc and .smc extensions in one folder
Keeping your game files together makes them easier to find from an emulator.

1. Use Snes9x for a straightforward setup

Snes9x is a dedicated Super Nintendo emulator and a good first choice if you want a separate desktop app. The project lists Linux GTK and X11 builds in its official source repository. You can also install the community-packaged Flatpak from Flathub if Flatpak is set up on your system:

flatpak install flathub com.snes9x.Snes9x

Launch Snes9x, use its open or load-game command, and select your .sfc or .smc file. Connect a controller before opening the game, then check Snes9x’s input settings if the buttons are not mapped as expected. See the official Snes9x project or the Flathub app listing for current Linux options.

A Linux laptop displays a generic 16-bit game inside a standalone emulator window, with a controller beside it
A standalone emulator keeps game loading and input settings in one app.

2. Run the Snes9x core through RetroArch

RetroArch is a frontend: it runs emulator components called cores. Install it using the official Linux instructions for your distribution, then install the Snes9x core. If the Core Downloader is available, open Online Updater, choose the core downloader, and select Snes9x. The Libretro Snes9x core guide describes the core and its supported content.

A Linux emulation frontend shows a highlighted console option beside a gamepad diagram
RetroArch needs a compatible SNES core before it can run a game.

If you cannot see the downloader, Libretro’s current guide says to enable Show Core Downloader under Settings > User Interface > Menu Item Visibility. There is a packaging exception: RetroArch installed from the Ubuntu PPA disables core downloads in the app, so install the matching core through the package manager instead. After installing a core, choose Load Content and browse to your ROM. See Libretro’s core installation guide if your menus differ.

A Linux emulator content browser shows a folder tree and a list of game thumbnails
Once a core is installed, browse to your ROM or scan its folder into the library.

3. Install bsnes as a dedicated SNES emulator

bsnes focuses specifically on SNES emulation and includes options such as video filters and save states. One Linux route is its Flathub package:

flatpak install flathub dev.bsnes.bsnes

Open bsnes and load your game file from the app. If you do not use Flatpak, check the project’s Linux download page for its current standalone option and installation notes; package availability differs by distribution. Start with the default settings, then adjust filters or controller bindings only if you need to.

A Linux desktop shows a generic 16-bit game in an emulator window with a controller in front of the monitor
A dedicated SNES app offers its own game and video settings.

4. Launch a game with Mednafen from the terminal

Mednafen is a multi-system emulator controlled from the command line. Install the mednafen package through your distribution’s software center or package manager; the exact command varies across Linux distributions. Then pass the path to a game file:

mednafen ~/ROMs/my-game.sfc

The unquoted tilde expands to your home folder in a shell; if a folder name contains spaces, quote the expanded path, such as "$HOME/ROMs/My Game.sfc". Mednafen opens its game window after launch. Its SNES module documentation covers SNES-specific settings, and the general manual explains command-line options.

A dark terminal window on a Linux desktop is ready for a command
Mednafen starts from a terminal command that includes the ROM’s path.

5. Try Mesen Community Edition

Mesen Community Edition is a community-maintained continuation of Mesen and supports SNES alongside several other systems. Open the project’s GitHub releases and choose a Linux build that matches your computer. The project notes that Linux x64 and ARM64 builds require SDL2; install the runtime through your distribution if the app reports that SDL2 is missing. Start Mesen and open your game file from the app. Its project page lists supported systems and build information.

A Linux emulator window displays a generic pixel-art game with a sidebar of console icons
Mesen Community Edition supports SNES as part of a multi-system app.

Set up controls and protect your saves

If a controller does not work, first confirm that Linux recognizes it. Then open the emulator’s input settings and map the D-pad, Start, Select, and face buttons. Menu names differ between apps, and some controllers are detected automatically.

A controller configuration window connects directional and face-button controls to a gamepad diagram
Map the D-pad and face buttons if the emulator does not detect your controller automatically.

Use the game’s own save feature for a normal in-game save. Save states are a separate emulator feature for resuming at an exact moment. Back up both kinds of save files, and do not assume a save state made in one emulator will work in another. For most people, Snes9x is the quickest place to begin; move to RetroArch for a combined library, or choose bsnes, Mednafen, or Mesen CE for the workflow that best fits your setup.

Leave a Comment

How to Record Speaker Output on Linux with Audacity

How to Record Speaker Output on Linux with Audacity

Capture Linux desktop audio in Audacity by routing its recording stream to your output device’s monitor source. Follow PulseAudio and PipeWire steps, export tips, and fixes for silent tracks.

How to Use Dropbox on Linux: Install and Sync Your Files

How to Use Dropbox on Linux: Install and Sync Your Files

Install Dropbox on Linux from the official package, sign in, sync a local folder, manage selective sync, and check status from the command line.

How to Install Inkscape on Linux: Ubuntu, Fedora, Arch, and More

How to Install Inkscape on Linux: Ubuntu, Fedora, Arch, and More

Install Inkscape from your Linux distribution’s repositories, the Ubuntu stable PPA, Snap, or Flathub, with current commands and notes for choosing a package source.

How to Find and Remove Duplicate Files on Linux With FSlint

How to Find and Remove Duplicate Files on Linux With FSlint

Use FSlint to scan selected Linux folders, review duplicate groups, and safely delete redundant files or learn when hard-link merging is appropriate.

How to Install SABnzbd on Linux and Configure It

How to Install SABnzbd on Linux and Configure It

Install SABnzbd on Ubuntu or Debian, or run it in Docker on another Linux host. Then open the web interface and configure your provider and download folders.

How to Install the Paper GTK Theme on Linux

How to Install the Paper GTK Theme on Linux

Install the Paper GTK theme from supported Linux repositories, enable it for GTK apps in GNOME Tweaks, and see what the legacy theme can and cannot change.

How to Install and Set Up Plex on OpenMediaVault with Compose

How to Install and Set Up Plex on OpenMediaVault with Compose

The old OpenMediaVault Plex plugin is archived. Set up Plex on OMV 8 with OMV-Extras, the Compose plugin, persistent storage, and Plex’s official container.

How to Clean and Speed Up Ubuntu Safely

How to Clean and Speed Up Ubuntu Safely

Clean and speed up Ubuntu with safe APT cleanup, storage checks, and startup controls that help free space and troubleshoot a sluggish desktop.

How to Install the Hiri Email Client on Linux

How to Install the Hiri Email Client on Linux

Install Hiri on Linux with its Snap package or official tarball, add a desktop launcher, and check supported accounts plus a warning about Hiri’s old Snap release.

How to Get System Specifications for a Linux PC

How to Get System Specifications for a Linux PC

Use Fastfetch and built-in Linux commands to check your distro, kernel, CPU, memory, graphics, storage, and connected devices, then save a clear report.