VERY experimental Nintendo Switch 2 emulator
| Files | Last commit | Last update |
|---|---|---|
[tools] refactor, use #!/bin/sh, update license files (#3998) Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3998 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> | 5 months ago | |
[ci] Only update translations once a week (#4256) They've slowed down enough at this point. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4256 | 2 months ago | |
retarget unverified prs to nx2-experimental | 3 days ago | |
[cmake] Use a debloated boost distribution (#4198) This addresses another issue that caused Windows configure time to take significantly longer than other platforms. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4198 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: lizzie <lizzie@eden-emu.dev> | 1 month ago | |
externals: add the FSR 3.1 upscaler shaders from AMD's FidelityFX SDK The GPU half of AMD FidelityFX Super Resolution 3.1.4, unmodified, from FidelityFX SDK v1.1.4 (commit c6efa6bf7f20, MIT): the GLSL headers (core, fsr3upscaler, spd, fsr1) and the eight Vulkan upscaling pass files. The next commit compiles them with glslangValidator in host_shaders like the other shaders. No prebuilt binary, DLL or AMD tool from the SDK is used, and the HLSL callbacks, the autogen-reactive pass and the debug view are left out. REUSE entry added for the directory. Assisted-by: Claude Opus 5.5 (implementation and drafting) Signed-off-by: Duck912 <350528965+Duck912@users.noreply.github.com> | 6 days ago | |
[cmake] feat: FFmpeg CI, allow 16kb android builds, update translations for transifex (#2543) Uses an FFmpeg CI for Android and Windows, also available for Linux. Saves compile time on Linux and is more consistent on Windows/Android. Also, updates VVL and FFmpeg to allow for a fully 16kb-compliant Android build. Bonus: APK size is down 30% Updated all localization files for Transifex while I was at it TODO for future: Android 8.0 with vp9_vulkan et al. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2543 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: Lizzie <lizzie@eden-emu.dev> | 1 year ago | |
Fixes for window name and about page | 10 days ago | |
general: fix trailing whitespace | 2 years ago | |
feat(translation): changed eden to eglantine | 3 days ago | |
docs: removed unnecessary docs | 4 days ago | |
externals: add the FSR 3.1 upscaler shaders from AMD's FidelityFX SDK The GPU half of AMD FidelityFX Super Resolution 3.1.4, unmodified, from FidelityFX SDK v1.1.4 (commit c6efa6bf7f20, MIT): the GLSL headers (core, fsr3upscaler, spd, fsr1) and the eight Vulkan upscaling pass files. The next commit compiles them with glslangValidator in host_shaders like the other shaders. No prebuilt binary, DLL or AMD tool from the SDK is used, and the HLSL callbacks, the autogen-reactive pass and the debug view are left out. REUSE entry added for the directory. Assisted-by: Claude Opus 5.5 (implementation and drafting) Signed-off-by: Duck912 <350528965+Duck912@users.noreply.github.com> | 6 days ago | |
[tools] refactor, use #!/bin/sh, update license files (#3998) Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3998 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> | 5 months ago | |
Revert "StarFox compatibility update" | 2 days ago | |
kernel: Fix OOT startup by implementing WaitIfEqual64 Preserve the AArch64 comparison value and implement arbitration type 3 using the existing wait queue and signal handling. Assisted-by: OpenAI Codex (diagnosis, implementation draft, and automated testing) | 4 days ago | |
core: refactor emulated cpu core activation | 2 years ago | |
Skip git blame | 2 years ago | |
chore: make yuzu REUSE compliant [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to b2eb10382941bef0914f4a0a4685b9033440aa9f | 4 years ago | |
[chore] re-add out/ to .gitignore (#4578) - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md). - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4578 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> | 13 days ago | |
[tools, cmake] refactor: update/hash check scripts, use tags for some more deps, proper CPMUtil separation (#2666) Uses tags for a bunch of deps that can use them Also adds a bunmch of scripts to tools/cpm, notably for checking hashes and checking for updates. TODO for the future: - CI target to check hashes - Weekly CI to check for updates Need to get that other CI runner up additional stuff - Ports gentoo fixes - makes solaris work (TODO: sdl2) - way better docs - properly separates CPMUtil as a standalone project Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2666 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> | 1 year ago | |
[docs] revise AI policy (#4522) spent 2 hours on a document award This is a revised version of our original AI policy that is cautiously permissive to skilled developers using AI responsibly, while hopefully keeping out the script kiddies spamming their mom's credit card on Claude tokens. This will be trialed for at least a week once merged, any revisions/changes should be made within the next few months Signed-off-by: crueter <crueter@eden-emu.dev> - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4522 Reviewed-by: lizzie <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> | 26 days ago | |
feat: implemented coderabbit suggestions | 4 days ago | |
file_sys: add a deterministic NUP packer, Convert to NUP in Qt and eden-cli --pack-nup (#271) * file_sys: add a NUP packer for loose dumps Packs a loose dump (exefs/romfs, base/, updates/<version>/ and dlc/<titleid>/<n>/) into a NUP v1 container with the aligned record layout. Every package is kept, files are deduplicated by SHA-256 and compressed with zstd unless that does not shrink them, and files over 256 MiB are stored raw. Output is byte-identical on every platform: compression is single-threaded with every frame parameter set explicitly, and zstd is always bundled so all builds use the same version. A low-storage mode deletes each source file once its extent is synced and journaled, and an interrupted run resumes from the journal. Assisted-by: Claude Opus 5.5 (wrote the packer, its EdenPack-free dump detection, the aligned record layout and the deterministic zstd setup; ran the Raiders and Donkey Kong Bananza packs and boot checks) * tests: cover the NUP packer Round-trips a dump through NupContainer, checks standalone updates, a bare exefs/romfs dump, low-storage resume and overwrite rejection, and pins the hash of a packed dump so changes to the output are deliberate. Assisted-by: Claude Opus 5.5 (wrote the tests, including the pinned output hash) * qt: add Convert to NUP to the game list Shown for loose dumps. Asks for confirmation with the estimated space, offers low-storage mode, runs in the background with progress and cancel, and resumes an interrupted low-storage conversion. Assisted-by: Claude Opus 5.5 (wrote the Convert to NUP action and its progress and resume handling) * cli: add --pack-nup <dump> [out.nup] Assisted-by: Claude Opus 5.5 (wrote the --pack-nup option) | 6 days ago | |
Signed-off-by: Mcm190 <maxcartermarshall@gmail.com> (#382) Old contrib guide links to Eden and account registration instructions. Updated to nx2 branch and policy links, easier for new contributors to follow correct steps. | 5 days ago | |
chore: make yuzu REUSE compliant [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to b2eb10382941bef0914f4a0a4685b9033440aa9f | 4 years ago | |
chore: make yuzu REUSE compliant [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to b2eb10382941bef0914f4a0a4685b9033440aa9f | 4 years ago | |
video_core: GPU thread split on by default for Switch 2 titles; cheaper front paths Clean A/B in title 1 (3 rounds each): 1.46x the draws a second of one thread, frames 17% shorter, no crashes, front register copies equal to the back's in 57,089 checks. EDEN_NX2_SPLIT=0 runs everything on one thread, =1 keeps macros on the back. The front's per-write paths no longer check guarded statics (GpuSplit::Get, Nx2Profile::Enabled, the skip-same switches) and the ring's method writes are inline. Notes row 145. | 10 days ago | |
NX2_NOTES: task/mesh programs and their support | 7 days ago | |
Fixed discord link | 3 days ago | |
ci: whole new ci, needs a lot of review, this is draft | 4 days ago | |
video_core: download NVIDIA Streamline's headers so CI builds have NVIDIA DLSS #434 compiled NVIDIA DLSS only when EGLANTINE_STREAMLINE_SDK pointed at a local Streamline checkout. CI never sets it, so the release builds left DLSS out and hid its Graphics setting. Add ENABLE_NVIDIA_DLSS, on by default for MSVC x86-64 builds. Without EGLANTINE_STREAMLINE_SDK, CMake now fetches Streamline v2.14.16's MIT-licensed source through CPM (cpmfile.json, hash checked) and uses its include directory. As before, nothing of NVIDIA's is linked or shipped: sl.interposer.dll and DLSS come from the user's PC at run time. EGLANTINE_STREAMLINE_SDK still overrides the download. The MinGW Windows build (-pgo) and other platforms stay without it; it hasn't been built with MinGW. Assisted-by: Claude Opus 5.5 (implementation) Signed-off-by: Duck912 <350528965+Duck912@users.noreply.github.com> | 5 days ago | |
Added FSR 4 and AMD Boost | 8 days ago | |
fix: nix shell script nix script was broken and out of date, missing pkgs, added them and updated | 7 days ago |
Eglantine
Eglantine is a free and opensource (FOSS) Switch 2 emulator, derived from Eden, Yuzu and Sudachi - started by developer Camille LaVey. It's written in C++ with portability in mind, with builds for Windows, Linux and macOS
Compatibility | Development | Building | Download | Support | License
Compatibility
The emulator is capable of running Mario Kart World at decent/full speed depending on specs and configurations, and Splatoon Raiders at variable performances
A list of supported games will be available in future. Please be patient.
Development
For development discussions, please join us on Discord
If you would like to contribute, we are open to new developers and pull requests. Please ensure that your work is of a high standard and properly documented. You can also contact any of the developers on Discord or Stoat to learn more about the current state of the emulator.
Documentation
We have a user manual! See our User Handbook.
Building
See the General Build Guide
For information on provided development tooling, see the Tools directory
Download
You can download the latest releases from here.
Support
We currently do not take in any donations for the time being
If you would prefer to support us in a different way, please join our Discord
Star History
License
Eglantine is licensed under the GPLv3 (or any later version). Refer to the LICENSE.txt file.