Skip to content
codingncaffeine edited this page Jun 5, 2026 · 2 revisions

Emutastic on Linux

Emutastic has a native Linux port by the same author: Emutastic for Linux — the same app rebuilt on .NET 10 + Avalonia (the Windows app is WPF), with only the platform plumbing swapped underneath (Direct3D/Vulkan → OpenGL, WASAPI → SDL3, XInput → SDL3 gamepad, Win32 core loading → dlopen).

The port is a 1:1 clone in look and behavior, so this wiki applies to both platforms — console notes, cheats, RetroAchievements, cloud sync, disk swapping, all of it. The genuine differences are listed below; if a page doesn't mention Linux, assume it behaves the same.

Install

Two artifacts per release on the releases page:

Artifact For
emutastic_<ver>_amd64.deb Debian/Ubuntu system install (emutastic on PATH + desktop entry)
Emutastic-<ver>-linux-x64.tar.gz Self-contained — extract anywhere and run ./Emutastic

In-app updates work the same as Windows (Preferences → About → Update Now). Full install details, dependencies, and BIOS/core setup are in the Linux README and the README.txt bundled with each release.

The Linux port versions on its own pre-1.0 line (0.x) — release numbers don't match the Windows app's, but features track it closely.

What's different on Linux

Paths — follows the XDG spec instead of %AppData%:

Windows Linux
%AppData%\Emutastic\config.json ~/.config/Emutastic/config.json
Data folder (chosen at first run) ~/.local/share/Emutastic/

Portable Mode — same two triggers (portable.txt beside the executable, or --portable), same PortableData/ layout. Only the tarball install can be portable; a .deb install lives in root-owned /usr/lib so the marker can't apply.

Log Files — same files, same rotation, two deltas:

  • controller-diag.log is in the Logs/ folder with everything else, not next to the executable (the install dir is read-only on a .deb install).
  • vulkan_debug.txt never appears — the Linux port renders everything through OpenGL.
  • One extra: emulator-host.log — games run in a separate host process on Linux, which logs there instead of emulator.log (the library process keeps emulator.log).

Cloud Sync — fully interoperable with Windows: one shared repository serves both platforms (battery saves are keyed by ROM hash, so both installs must import the same ROM files). The per-PC repository toggle works the same.

Recording — always the ffmpeg/x264 software path (no Windows.Graphics.Capture on Linux). ffmpeg must be on PATH; the .deb declares it.

Cores — downloaded from the Linux libretro buildbot (.so instead of .dll); same core lineup and priorities as Windows.

Not yet ported — slang shader presets. GameCube and Dreamcast run but are still being performance-tuned on Linux.

Building from source

Requires the .NET 10 SDK plus a C toolchain for three small vendored native libraries — one-command setup and details in the Linux README.

Clone this wiki locally