Skip to content

v0.4.0-linux.2 — native Linux build and AppImage

Latest

Choose a tag to compare

@DaniSald DaniSald released this 25 Oct 04:18
· 22 commits to main since this release

Metroid Dread recompiled for PC v0.4.0 (from yozander2009-stack/Metroid-Dread-Recomp) with a native Linux build: one AppImage that sets up, configures and runs your own copy of the game, like the Windows EXE. Tested on a laptop and a Steam Deck OLED (see below). Please report what happens on yours.

The Windows build from the same source is attached too: MetroidDread-PC-v0.4.0-linux.2.zip.

No Nintendo files are included: no game code, no RomFS, no keys.

Playing on Linux

  1. Extract the ExeFS and RomFS of your own Metroid Dread 2.1.0 (with the update merged, or the base game and the update as separate folders).
  2. Download Metroid_Dread-x86_64.AppImage, make it executable (chmod +x) and start it.
  3. On first start choose the folder with your game files and press START SETUP. It checks every RomFS file against the 2.1.0 list, translates the game code to C and compiles it with the GCC inside the AppImage. This takes about 10 minutes and needs about 7 GB of free space.
  4. Press PLAY. Settings, AUTO-SET, controls and mods are on the same screen. In game, F1 opens the menu.

The game is installed in ~/.local/share/MetroidDreadRecomp (set METROID_DREAD_HOME to use another folder). On the same disk as your game files the RomFS is hard-linked rather than copied. Start the AppImage with --play to skip the Play screen, or --launcher to bring it back.

Needs: x86-64 Linux with glibc 2.38 or newer (Ubuntu 24.04+, Fedora 39+, Arch, or a current SteamOS), an OpenGL 4.3 driver, X11 or Wayland (through XWayland), SDL2 for controllers and audio, and zenity or kdialog for the folder picker.

Playing on Windows

  1. Extract the ExeFS and RomFS of your own Metroid Dread 2.1.0, as above.
  2. Download MetroidDread-PC-v0.4.0-linux.2.zip and extract the whole Metroid Dread folder. Metroid Dread.exe needs the recompiler folder next to it, so keep them together.
  3. Start Metroid Dread.exe, choose the folder with your game files and press START SETUP, then PLAY.

The Windows game itself is the same as v0.4.0. This zip is built from the v0.4.0-linux.2 tag, so its front end has the changes listed below.

Tested on

Laptop Steam Deck OLED
Device Lenovo ThinkPad E14 Gen 5 Steam Deck OLED ("Galileo")
CPU AMD Ryzen 5 7430U (6 cores, 12 threads) AMD Custom APU 0932 (4 cores, 8 threads)
GPU AMD Radeon Graphics (integrated, RENOIR) AMD Custom GPU 0932 (integrated, VANGOGH)
Memory 16 GB 16 GB
System Zorin OS 18.1 (Ubuntu 24.04 base), kernel 7.0, glibc 2.39 SteamOS 3.9.5, kernel 7.2, glibc 2.43
Graphics driver Mesa 25.2.8, OpenGL 4.6 Mesa 26.1.2, OpenGL 4.6
Screen 1920x1200, 60 Hz built-in, Desktop Mode, controller through Steam (gamepad layout)
Setup (translation + compilation) about 10 min about 18 min (compilation 1085 s)
Result title screen and opening, 60 FPS title screen, opening and play, 60 FPS held over a session of 9 minutes

Settings on both: OpenGL, docked, resolution 1.00x, 60 FPS limit.

Steam Deck tips

  • Start the AppImage through Steam (add it as a non-Steam game), also in Desktop Mode. Started on its own in Desktop Mode, the Deck's desktop controller layout sends Esc for B, and Esc quits the game.
  • Keep the 60 FPS limit (Gameplay > Frame rate). Unlimited runs the title screen at hundreds of FPS for nothing: more heat, less battery.

Changes since v0.4.0-linux.1

  • The Windows build (MetroidDread-PC-v0.4.0-linux.2.zip) is attached, built from this tag.
  • The mouse cursor shows while the in-game menu (F1) is open in fullscreen, for its mouse and touch input. It stays hidden while playing.

What changed compared with v0.4.0

  • Linux front end: the Windows Play / setup / settings screens run on Linux in their own X11 + OpenGL window (runtime/dread_ui/fe_sys_linux.cpp).
  • AppImage (linux/make_appimage.sh) bundling a relocatable GCC 14.3 and Python 3.12, so nothing needs to be installed.
  • Linux scripts now build and run natively (they used to need WSL and /opt/swr).
  • Fix: the Linux, headless and Android runtimes failed to link (mouse_map_reset).

Not on Linux yet

  • native Vulkan
  • updates from the releases page
  • the Steam shortcut button
  • mouse free aim
  • F7 recording
  • automatic download of the button-icon packs (the button opens their page)

Licences and sources

The AppImage contains the SwitchRecomp runtime (Apache-2.0, "SwitchRecomp by MZ Labs"), Dear ImGui (MIT) and libvpx (BSD). It also bundles:

The Windows zip contains the same runtime and libraries plus:

Licence texts are in the licenses folder that is created next to the game. Metroid Dread is © Nintendo. This project is not affiliated with or endorsed by Nintendo.

SHA-256 2364d6df96ef84e2efe67c68ec411a45c2b711184f0795d5ada3c1e37fe7910e Metroid_Dread-x86_64.AppImage

SHA-256 1a79dbc322272642656b8bc7d99e5b1f9f8d455d8d67efa341a3e77c4ca06ba8 MetroidDread-PC-v0.4.0-linux.2.zip