emulators.eden
Eden (Nintendo Switch) launcher: ROM resolution, qt-config.ini patching, and SIGTERM shutdown.
Eden (Nintendo Switch) launcher: ROM resolution, qt-config.ini patching, and SIGTERM shutdown.
Eden has no save states and no external control API. Persistence is the
game's own save data, which the emulated game commits directly to host files
under the virtual NAND (nand/user/save/...). Save paths are keyed by the
Switch profile UUID, so the profile store (nand/system/save/8000000000000010)
ships with the saves; that way a save archive restored into a fresh
container brings its matching profile along and the paths line up.
Shutdown: Eden's Qt frontend routes SIGTERM through the event loop into a
normal window close (graceful emulation teardown). SIGINT is _exit(1) in
Eden, so the broker never sends it. The close path pops a confirmation
dialog unless the confirmStop UI setting is Ask_Never, so that is patched
before every launch.
attributelog= logging.getLogger(__name__)attributeROM_ROOT= Path(os.environ.get('ROM_ROOT', '/romm'))Library root a resolved ROM must live under (env ROM_ROOT, default /romm).
attributeCONFIG_DIR= Path(os.environ.get('EDEN_CONFIG_DIR', '/config/.config/eden'))Eden's config directory (env EDEN_CONFIG_DIR, default /config/.config/eden).
attributeDATA_DIR= Path(os.environ.get('EDEN_DATA_DIR', '/config/.local/share/eden'))Eden's data directory holding the virtual NAND (env EDEN_DATA_DIR).
attributeINI_PATH= CONFIG_DIR / 'qt-config.ini'The qt-config.ini patched before every launch.
attributeEDEN_LOG_PATH= Path(os.environ.get('EDEN_LOG_PATH', '/config/eden.log'))The emulator log file (env EDEN_LOG_PATH, default /config/eden.log).
attributeROM_EXTENSIONS= ('.xci', '.nsp', '.nca', '.nro')Formats Eden's loader boots directly, best first; a folder holding several picks by this order.