Difference between revisions of "Emulation on Fedora"

From Emulation General Wiki
Jump to navigation Jump to search
(Created page with "==Emulation Guide for Fedora== [http://www.fedoraproject.org/ Fedora Website] ==From Repositories== Fedora will never have emulators in the official repository, as this is aga...")
 
(17 intermediate revisions by 11 users not shown)
Line 1: Line 1:
==Emulation Guide for Fedora==
+
The following guide explains how to install emulators on Fedora, a distribution of GNU/Linux.
[http://www.fedoraproject.org/ Fedora Website]
+
 
 +
[https://fedoraproject.org/ Fedora Website]
 
==From Repositories==
 
==From Repositories==
Fedora will never have emulators in the official repository, as this is against their software policy. However, a number of them are hosted at RPMFusion's repositories. To install RPMFusion's software repositories, use the following commands as root:
+
Fedora has a very strict software policy, allowing only [[Licensing#Free_and_open-source_software|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:
  yum --nogpgcheck install http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
+
  <nowiki>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</nowiki>
+
 
yum --nogpgcheck install http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.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 [https://negativo17.org/nvidia-driver/ negativeo17's nvidia repositories] or, if you're comfortable with manually updating your drivers, following [https://www.if-not-true-then-false.com/2015/fedora-nvidia-guide/ this guide]. The following emulators can be found from the RPMFusion repositories (note that not all packages are fully up-to-date):
+
{| class="wikitable"
yum update
 
The second RPM is where you get proper video drivers for nVidia/AMD cards. Install either "kmod-nvidia" or "kmod-catalyst". The following emulators can be found from the RPMFusion repositories:
 
{| border="0" cellpadding="1" cellspacing="1" class="article-table" style="width: 500px;"
 
 
|-
 
|-
 
! scope="col"|Console
 
! scope="col"|Console
 
! scope="col"|Emulator
 
! scope="col"|Emulator
 
|-
 
|-
|NES
+
|[[Nintendo Entertainment System emulators|NES]]
|Nestopia
+
|[[Nestopia]]
 
|-
 
|-
|SNES
+
|[[Super Nintendo emulators|SNES]]
|bsnes, snes9x, ZSNES
+
|[[higan|bsnes]], [[Snes9x]], [[ZSNES]]
 
|-
 
|-
|Game Boy Series
+
|[[Game Boy/Game Boy Color emulators|Game Boy/Color]]/[[Game Boy Advance emulators|Advance]]
|VBA-M
+
|[[VisualBoy Advance#VBA-M|VBA-M]]
 
|-
 
|-
|Nintendo DS
+
|[[Nintendo DS emulators|Nintendo DS]]
|DeSmuME
+
|[[DeSmuME]]
 
|-
 
|-
|Gamecube, Wii
+
|[[GameCube emulators|GameCube]] and [[Wii emulators|Wii]]
|Dolphin
+
|[[Dolphin]]
 
|}
 
|}
Can't find your emulator in the repository? We get to compile then!
+
Can't find your emulator in RPMfusion? Want an up to date version git version instead of dolphin stable? First, check [https://copr.fedorainfracloud.org/ 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==
 
==Compiling Emulators==
 
This could be considered a generic guide for all GNU/Linux distributions, but we will be using Fedora as our base for this tutorial.
 
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, we need libraries. Lots and lots of libraries. I mean, seriously, we need libraries like space pirates need TUUUUUUUUBES. 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:
+
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
 
  # Compiler Stuff
 
   
 
   
yum install cmake gcc gcc-c++ scons
+
  #dnf install clang clang-analyzer cmake ecj gcc-c++ scons
 
   
 
   
 
  # Assorted Libraries
 
  # Assorted Libraries
 
   
 
   
yum install libx86 nasm openal-soft SDL*
+
  #dnf install libx86 nasm
 
   
 
   
 
  # Development Headers
 
  # Development Headers
 
   
 
   
yum install alsa-lib-devel bluez-libs-devel glew-devel glibc-devel.i686 glibmm24-devel gtkglextmm-devel gtkmm-utils-devel libao-devel libglademm24-devel openal-soft-devel portaudio-devel pulseaudio-libs-devel SFML-devel SOIL-devel wxGTK-devel
+
  #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 [http://www.flibitijibibo.com/fedora/Fedora.txt here.]
 
The reference text for the above list can be found [http://www.flibitijibibo.com/fedora/Fedora.txt here.]
  
If you want automated emulator compiling, some ganoo-plus-loonicks nerd made a Mupen64Plus build/update/install package: [http:// http://www.flibitijibibo.com/fedora/flibitMupen64Plus.tar.gz Mupen64Plus]
+
If you want automated emulator compiling, a Mupen64Plus build/update/install package exists [http://www.flibitijibibo.com/fedora/flibitMupen64Plus.tar.gz 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.
  
It is highly recommended that you read the scripts/readmes before running these so you understand what's going on!
+
==Emulators from Flatpak==
  
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 tons 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.
+
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 [[Distro-agnostic_emulator_packages_for_Linux#Flatpak|this article]] for details.
  
If you still want help, feel free to ask in the threads.
+
[[Category:FAQs]]

Revision as of 13:51, 27 November 2020

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

Fedora Website

From Repositories

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

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.