(github.com)
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.
- The way FFmpeg was built on Android has changed to use the same method as other platforms. This resulted in FFmpeg
- 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.4is now keyworded for~arm64.
- For Gentoo users,
- 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) |