Emulation on Fedora

From Emulation General Wiki
Revision as of 13:51, 27 November 2020 by Popar (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The following guide explains how to install emulators on Fedora, a distribution of GNU/Linux.

Fedora Website

From Repositories[edit]

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):

Console Emulator
NES Nestopia
SNES bsnes, Snes9x, ZSNES
Game Boy/Color/Advance VBA-M
Nintendo DS DeSmuME
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!

Compiling Emulators[edit]

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[edit]

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.