Skip to content

Other Distributions

codingncaffeine edited this page Jun 7, 2026 · 4 revisions

Running on Non-Debian Distributions

The .deb on the releases page targets Debian/Ubuntu — but the tarball release runs on any modern glibc x86_64 Linux. It's fully self-contained on the .NET side (the runtime is bundled; nothing to install), so the only requirements are a handful of ordinary system libraries.

mkdir -p ~/Apps/Emutastic
tar xzf Emutastic-<version>-linux-x64.tar.gz -C ~/Apps/Emutastic
~/Apps/Emutastic/Emutastic

In-app updates work the same as on Debian (Preferences → About → Update Now downloads and applies the new tarball in place).

What the system must provide

Dependency Used for Required?
SDL3 Controllers + game audio Yes
Mesa / GL drivers (libGL, libEGL, Wayland-EGL) Game rendering Yes
fontconfig + X11 client libraries UI text + windowing (the library window runs via Xwayland on Wayland sessions) Yes
ICU .NET globalization Yes (present on essentially every desktop)
ffmpeg (the CLI) Gameplay recording Only for recording
libVLC + base plugins Video snap previews on the game detail card Optional — cards fall back to static images
dbus-send "Show in Files" file-manager integration Optional — falls back to opening the folder

The quickest health check after extracting:

ldd ~/Apps/Emutastic/Emutastic | grep "not found"   # empty output = good

SDL3 is the dependency most likely to be missing — it's new enough (2024) that some distributions only ship it in their latest releases.

Per-distro notes

Verified against each distribution's package index as of June 2026; package names can drift, so let your package manager's search confirm.

Arch / Manjaro / EndeavourOS

SDL3 is in extra — everything needed is in the official repos:

sudo pacman -S --needed sdl3 mesa fontconfig icu ffmpeg vlc vlc-plugin-ffmpeg

vlc-plugin-ffmpeg matters (field-verified on EndeavourOS, June 2026): Arch splits VLC into per-plugin packages, and installing vlc alone does not pull in the avcodec plugin. Without it, LibVLC initialization fails outright (the app passes an avcodec option that the missing plugin makes "unknown"), so all video snap previews disappear — not just H.264 ones. If your game detail cards show static images only and the log (Logs/ → see Log Files) mentions LibVLC init failing, this package is the fix. Debian/Ubuntu users never see this because vlc-plugin-base ships the codec plugins together.

EndeavourOS: unlike Debian (which ships no active firewall), EndeavourOS enables firewalld by default, and its default zone drops incoming mDNS. Not used by Emutastic itself — but if you import ROMs from a NAS or another machine via a .local hostname and it won't resolve, that's why: sudo firewall-cmd --add-service=mdns --permanent && sudo firewall-cmd --reload.

Building from source on Arch works with the official repos alone — dotnet-sdk is .NET 10 as of mid-2026, and the Wayland/GL headers ship in the main packages (no -dev split):

sudo pacman -S --needed base-devel cmake pkgconf wayland mesa libglvnd dotnet-sdk
dotnet build src/Emutastic.slnx -c Release

Or just install from the AUR — emutastic-bin repackages the official release tarball and pulls in everything above (including vlc-plugin-ffmpeg) as dependencies:

yay -S emutastic-bin

Fedora

The SDL3 package exists in Fedora 43 and later — earlier releases don't carry it (build from source, or wait for the planned Flatpak).

sudo dnf install SDL3 mesa-libGL mesa-libEGL fontconfig libicu

For recording and snap previews: full ffmpeg and VLC generally come from RPM Fusion; Fedora's own ffmpeg-free also works for recording (x264 is the only encoder Emutastic uses — if ffmpeg-free in your release lacks libx264, use the RPM Fusion build).

openSUSE Tumbleweed

SDL3 has shipped in Tumbleweed since 2024 (3.4.x as of early 2026); per openSUSE shared-library naming the runtime package is libSDL3-0:

sudo zypper install libSDL3-0 Mesa-libGL1 Mesa-libEGL1 fontconfig

ICU is preinstalled (versioned libicu## packages). ffmpeg with x264 and VLC are best taken from Packman — openSUSE's official builds strip patent-encumbered codecs. Leap users: check whether your Leap release carries SDL3 before trying.

Anything else (Gentoo, Void, NixOS, …)

You need: SDL3, Mesa GL/EGL, fontconfig, ICU, and optionally ffmpeg + libVLC. The binary is a standard glibc x86_64 .NET single-folder publish — if the ldd check above comes back clean, you're done.

musl-based distros (Alpine, etc.) are not supported — the published build links glibc.

Wayland and X11

Both work out of the box. On a Wayland session the game window runs as a native Wayland toplevel (the smooth path — preferred automatically); the library window runs through Xwayland. On plain X11 everything runs through X11/SDL. No environment variables needed in either case.

wlroots compositors (Hyprland, Sway, river…)

The game window only uses core Wayland protocols plus xdg-shell, so wlroots compositors work. One requirement: XWayland must be enabled — the library window needs it. Hyprland ships it on by default; if you've set xwayland { enabled = false } in your config, the library window won't open.

Alpine and other musl distros

The tarball does not run on musl libc — and can't with a simple repack:

  • The bundled .NET runtime is glibc-linked (linux-x64); it won't start on musl, and .NET under Alpine's gcompat shim is not reliable.
  • More fundamentally, the libretro buildbot only publishes glibc cores — even a musl build of the app couldn't load the emulator cores it downloads. There is no musl core feed.

The supported path on Alpine is a glibc container with Distrobox (or toolbox):

distrobox create --name emutastic --image debian:trixie
distrobox enter emutastic
sudo apt install ./emutastic_<ver>_amd64.deb
distrobox-export --app emutastic

Wayland, GPU, and audio pass through automatically, so the game window still renders as a native Wayland toplevel on your host compositor. The planned Flatpak will eventually replace this recipe.

SELinux notes (Fedora/RHEL family)

The app executes cores (.so files) downloaded to ~/.local/share/Emutastic/Cores/. The default targeted policy allows this for user-domain processes; if you run a hardened policy and a core fails to dlopen, check ausearch -m AVC -ts recent before suspecting the app.

Flatpak

A Flathub submission is planned — that will make the distro question moot for most users (and solve the SDL3-on-older-Fedora problem). Until then, the tarball is the universal answer.

Building from source

Any distro with the .NET 10 SDK and a C toolchain can build from source — see the README. This also produces binaries linked against your exact system libraries.

Clone this wiki locally