The world's most popular open-source Nintendo Switch emulator
Find a file
Producdevity eb720ef074 Support loading custom game settings via intent
This commit introduces the ability to launch games with custom configurations supplied via an Android intent. This allows external applications to provide specific settings for a game at launch time.

Key changes include:

*   **`CustomSettingsHandler.kt`**: A new class responsible for:
    *   Processing incoming intents with custom settings.
    *   Finding the target game in the user's library by its title ID.
    *   Writing the custom settings to a per-game INI file (`config/custom/<title_id>.ini`).
    *   Handling potential conflicts if a custom configuration already exists, prompting the user to overwrite or cancel.
    *   Integrating with `DriverResolver` to check for and handle required GPU drivers specified in the custom settings.
    *   Initializing the native per-game configuration.
*   **`DriverResolver.kt`**: A new utility class for managing GPU drivers specified in custom settings:
    *   Extracts the driver path from the custom settings INI content.
    *   Checks if the required driver exists locally.
    *   If not found locally, searches for the driver in predefined GitHub repositories (Mr. Purple Turnip, GameHub Adreno 8xx, KIMCHI Turnip, Weab-Chan Freedreno).
    *   Prompts the user to download and install the missing driver if found online.
    *   Handles automatic download and installation of drivers using `DriverViewModel`.
    *   Notifies the user if a required driver cannot be found or installed.
*   **`AndroidManifest.xml`**:
    *   Added a new intent filter for the action `dev.eden.eden_emulator.LAUNCH_WITH_CUSTOM_CONFIG` to `EmulationActivity`. This allows the app to respond to custom settings intents.
*   **`EmulationFragment.kt`**:
    *   Modified `onCreate` to detect and handle the new custom settings intent.
    *   If a custom settings intent is received:
        *   It uses `CustomSettingsHandler.applyCustomSettingsWithDriverCheck` to process the settings asynchronously. This allows for driver checks and user interaction (e.g., overwrite confirmation, driver installation).
        *   Displays appropriate error messages via `Toast` if custom settings processing fails (e.g., game not found, driver issues).
        *   The game is then launched with the applied custom settings.
    *   If a regular file intent or navigation arguments are used, the existing logic for loading game configurations (including custom per-game configs) is retained.
    *   Ensures that per-game configurations are correctly loaded or unloaded based on how the game is launched.
2025-07-12 13:02:48 +02:00
.ci [frontend, web] refactor: web service frontend rewrite (#221) 2025-07-01 01:44:12 +00:00
.github No more PRs 2025-06-29 15:58:34 -04:00
.reuse Rename Yuzu logo to Eden 2025-04-13 01:15:36 +01:00
CMakeModules [android] fix strings and defaults 2025-07-09 17:02:53 -04:00
dist [qt-ts, ci] Update translations (#213) 2025-06-26 18:38:36 +00:00
externals Add native FreeBSD building functionality (#35) 2025-07-11 10:05:17 +02:00
hooks chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
LICENSES general: fix trailing whitespace 2024-01-08 09:34:32 -05:00
src Support loading custom game settings via intent 2025-07-12 13:02:48 +02:00
tools Removed telemetry and anonymized SCM (git) strings 2025-04-04 03:40:47 +02:00
.codespellrc core: refactor emulated cpu core activation 2023-12-04 10:37:16 -05:00
.git-blame-ignore-revs Skip git blame 2023-11-04 18:26:49 +00:00
.gitattributes chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
.gitignore .gitignore cache things (#25) 2025-07-08 21:00:45 +00:00
.gitmodules [VK] Rework SPIRV Shader Optimization (#238) 2025-07-03 01:13:33 +00:00
CMakeLists.txt Add native FreeBSD building functionality (#35) 2025-07-11 10:05:17 +02:00
CONTRIBUTING.md chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
Doxyfile chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
LICENSE.txt chore: make yuzu REUSE compliant 2022-07-27 12:53:49 +02:00
README.md Update links 2025-07-09 16:51:15 -04:00
vcpkg.json Added the public lobby to android. (#125) 2025-06-05 18:59:47 +00:00


Eden
Eden

Eden is the world's most popular open-source Nintendo Switch emulator, forked from the Yuzu emulator — started by former Citron developer Camille LaVey and the Eden team.
It is written in C++ with portability in mind, and we actively maintain builds for Windows, Linux and Android.

Discord

Compatibility | Development | Building | Download | Support | License

Compatibility

The emulator is capable of running most commercial games at full speed, provided you meet the necessary hardware requirements.

A list of supported games will be available in future. Please be patient.

Check out our website for the latest news on exciting features, monthly progress reports, and more!

Development

Most of the development happens on our Git server. It is also where our central repository is hosted. 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 to learn more about the current state of the emulator.

Building

Download

You will be able to download the latest releases from here.

Support

If you enjoy the project and would like to support us financially, please check out our developers' donation pages!

Any donations received will go towards things such as:

  • Switch consoles to explore and reverse-engineer the hardware
  • Switch games for testing, reverse-engineering, and implementing new features
  • Web hosting and infrastructure setup
  • Additional hardware (e.g. GPUs as needed to improve rendering support, other peripherals to add support for, etc.)
  • CI Infrastructure

If you would prefer to support us in a different way, please join our Discord, once public, and talk to Camille or any of our other developers.

License

Eden is licensed under the GPLv3 (or any later version). Refer to the LICENSE.txt file.