Changelog

This release contains many low-level and build system improvements, alongside game fixes and expanded platform support for macOS and Android/x86_64. Additionally, the experimental Overlay Applet has been added, which can be accessed via "Enable Overlay Applet" and holding the home button for a short time, much like a real Switch.

Universal

  • Improved shader compilation speed
  • Fixed the "Audio Engine" setting not properly saving
  • Low-level optimizations and performance improvements (as always)
  • Experimental support for overlay and system setup applets
  • Fixed some system settings not saving under certain conditions
  • Fixed some race conditions and cache/memory issues on NCE
  • GPU accuracy levels have been reworked. Use "Performance" for high performance but more frequent graphical issues, "Accurate" for less graphical glitches at the cost of performance, and "Balanced" for a mix of the two.
    • Accurate is not needed on many titles. Most titles that required High before (Pokemon Legends: Z-A, Pokemon Scarlet/Violet, etc.) can safely use Balanced.
  • Fixed Metroid Prime 4 issues
  • Fixed game icons on the Switch Home Menu (QLaunch)
  • Reduced JIT latency by removing unnecessary reg_allocs
  • Themed logo for the New Year and Christmas
  • Fixed a memory leak in video decoding that could cause crashes in games such as Echoes of Wisdom

Renderer

  • Further improvements to Pokemon Legends: Z-A and Scarlet/Violet graphical issues
  • Fixed Lego Horizon white screen
  • Fixed blurring in Burnout
  • All platforms and drivers will now attempt to continue even if the driver is determined to be unsuitable
    • This also allows the experimental KosmicKrisp MESA driver to run on macOS, and the Dozen/dzn driver to run on WSL
  • Swapchain presentation now uses a faster deque method

Desktop

  • Network configuration can now be done per-game
  • Fixed macOS Vulkan crash
  • Enabled VideoToolbox video accelerator on macOS
  • Fixed the delay in mouse panning

Android

  • Reworked the setup screen to use smaller buttons rather than giant pages for each operation
  • Fixed some edge cases where game decryption and mod loading would take longer than usual
  • Significantly reduced final APK size
    • The way FFmpeg was built on Android has changed to use the same method as other platforms. This resulted in FFmpeg
      being able to be statically linked rather than distributed as a shared library like before. Some further cuts to unneeded
      libraries, encoders, and decoders were also done, ultimately resulting in a ~9MB smaller APK that is also truly 16KB-aligned.
  • Removed the now-unnecessary Release Fences Early toggle.
  • Removed the now-unnecessary Frame Interpolation, aka Enhanced Frame Pacing, setting.
    • This option used to help with frame pacing, but further improvements to our Vulkan backend have resulted in it being unnecessary.

Internal

  • Initial Windows 7 support
    • This is currently command-line only, though support for Qt is in the works
  • Improved NetBSD and macOS support
  • Initial Android x86_64 (ChromeOS, Atom) support
  • Invalid kernel service paths are marked as unreachable
  • Vibration and mouse threads are given less priority
  • Debug asserts now also display the expression of the asserts
  • Removed unneeded HeapTracker on Linux (fixes some performance and memory issues)
  • Fixed some cases of the "Filesystem object at ... is not a directory" warning
  • Stubbed parental controls and some other stuff from Firmware 21

Platform Support

The following platforms have been elevated to first-class support:

  • Linux/aarch64
    • For Gentoo users, games-emulation/eden-0.0.4 is now keyworded for ~arm64.
  • Windows/arm64
  • macOS
  • Android/x86_64

Linux

Linux packages are distributed via AppImage.
zsync files are provided for easier updating, such as via
AM.

Build Type GCC PGO Notes
amd64 GCC (zsync) PGO (zsync)
Legacy amd64 GCC (zsync) PGO (zsync) Pre-Ryzen or Haswell CPUs (expect sadness)
Steam Deck GCC (zsync) PGO (zsync) Zen 2, with additional patches for SteamOS
ROG Ally X GCC (zsync) PGO (zsync) Zen 4
aarch64 GCC (zsync) PGO (zsync)

Debian/Ubuntu

Debian/Ubuntu targets are .deb files, which can be installed via sudo dpkg -i <package>.deb.

Target amd64 aarch64 Notes
Ubuntu 24.04 amd64 aarch64 Not compatible with Ubuntu 25.04 or later
Debian 12 amd64 aarch64 Drivers may be old
Debian 13 amd64 aarch64

Windows

Windows packages are in-place zip files. Setup files are soon to come.
Note that arm64 builds are experimental.

Compiler amd64 arm64 Notes
MSVC amd64
MinGW amd64 arm64 May have additional bugs/glitches
MinGW PGO amd64 arm64

Android

Build Description
Android Standard Single APK for all supported Android devices (most users should use this)
Android x86_64 For devices running Chrome/FydeOS, AVD emulators, or certain Intel Atom Android devices.
Android Optimized For any Android device that has Frame Generation or any other per-device feature
Android Legacy For Adreno A6xx and other older GPUs

macOS

macOS comes in a tarballed app. These builds are currently experimental, and you should expect major graphical glitches and crashes.
In order to run the app, you may need to go to System Settings -> Privacy & Security -> Security -> Allow untrusted app.

File Description
macOS For Apple Silicon (M1, M2, etc)

Source

Contains all source code, submodules, and CPM cache at the time of release.
This can be extracted with tar xf Eden-Source-v0.0.4.tar.zst.

File Description
tar.zst Source as a zstd-compressed tarball (Windows: use Git Bash or MSYS2)