Emulation on Fedora
The following guide explains how to install emulators on Fedora, a distribution of GNU/Linux.
Fedora has a very strict software policy, allowing only free software emulators, which don't rely on copyrighted BIOS files to work. There's quite a few emulators and even RetroArch with some open source cores, but you won't find any non-commercial or closed-source emulators in there. However, more of them are hosted at RPMFusion's repositories. To install RPMFusion's software repositories, use the following command as root:
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
The second RPM is where you get proper video drivers for older AMD cards. Install "akmod-catalyst" (current AMD cards use the official "AMDGPU" driver built into kernel, so everything should work OOTB). NVIDIA users should instead use negativeo17's nvidia repositories or, if you're comfortable with manually updating your drivers, following this guide. The following emulators can be found from the RPMFusion repositories (note that not all packages are fully up-to-date):
|SNES||bsnes, Snes9x, ZSNES|
|GameCube and Wii||Dolphin|
Can't find your emulator in RPMfusion? Want an up to date version git version instead of dolphin stable? First, check Fedora's COPR repositories. For example, for Dolphin, https://copr.fedorainfracloud.org/coprs/victoroliveira/dolphin-emu-git/. Still can't find a precompiled version? We get to compile them ourselves!
This could be considered a generic guide for all GNU/Linux distributions, but we will be using Fedora as our base for this tutorial.
First, in order to successfully compile software, libraries are required. You can generally find a list of dependencies with the emulator's source, but often those are listed for Ubuntu. So instead, enjoy this blanket list of programs and libraries to install:
# Compiler Stuff #dnf install clang clang-analyzer cmake ecj gcc-c++ scons # Assorted Libraries #dnf install libx86 nasm # Development Headers #dnf install alsa-lib-devel bluez-libs-devel cppunit-devel curl-devel enet-devel flac-devel freealut-devel glew-devel glib-devel glibc-devel.x86_64 glibc-devel.i686 glibmm24-devel gtest-devel gtkglextmm-devel gtk+-devel hidapi-devel jack-audio-connection-kit-devel jansson-devel kernel-devel libao-devel libevdev-devel libglademm24-devel libogg-devel libtheora-devel libudev-devel libusb-devel libuuid-devel libv4l-devel libvorbis-devel lilv-devel lua-devel lzo-devel mbedtls-devel miniupnpc-devel openal-soft-devel portaudio-devel pulseaudio-libs-devel python-qt5-devel qjson-devel qt-devel qt5-qtbase-devel qt5-qtx11extras-devel qtwebkit-devel ruby-devel SDL* SFML-devel SOIL-devel soundtouch-devel speex-devel speexdsp-devel tinyxml-devel
The reference text for the above list can be found here.
If you want automated emulator compiling, a Mupen64Plus build/update/install package exists here, just run the script for the function you require.
It is highly recommended that you read the scripts/readmes before running these so you understand what is going on.
As for compiling the emulators themselves, you're better off looking at the emulator's website/forum for specific tutorials. Emulator developers like to use a lot of different environments, from basic Makefiles to CMake to SCons to who knows what. The library list above and the automated scripts should help you get started if you're entirely unfamiliar with compiling, though.
If you still want help, feel free to ask in Emulation General.
Emulators from Flatpak
Alternatively, you can use newer method known as Flatpak to install emulators. Flatpak is a default method of installing software in some Fedora editions, mainly Fedora Silverblue, but works very well with pretty much every Fedora edition. There's quite a lot of emulators in Flathub, the de facto Flatpak repository. Refer to this article for details.