emulators.eden.Eden
Nintendo Switch via Eden, driven by command line flags and a graceful SIGTERM.
Nintendo Switch via Eden, driven by command line flags and a graceful SIGTERM.
Eden has no external control API, so the broker patches qt-config.ini
before every launch (close confirmation off) and boots fullscreen with
-f -g. SIGTERM goes through Eden's Qt event loop into a normal window
close, so the stop is a graceful emulation teardown; SIGINT is never
used because Eden maps it to _exit(1).
There are no save states: persistence is the game's own save data under the virtual NAND, and the archive carries it together with the profile store, since Switch save paths embed the profile UUID. A resume slot is logged and ignored.
Attributes
attributename= 'eden'Provider key, eden.
attributedisplay_name= 'Eden'Human-readable name.
attributesave_root= DATA_DIRThe data directory the save subtrees hang off.
attributesave_subtrees= ('nand/user/save', 'nand/system/save/8000000000000010')Game saves plus the profile store.
attributerom_extensions= ROM_EXTENSIONSBootable formats, best first.
attributelog_path= EDEN_LOG_PATHThe emulator log file.
attributeterm_timeout= float(os.environ.get('EDEN_STOP_WAIT', '15'))SIGTERM grace before SIGKILL (env EDEN_STOP_WAIT, default 15).
Functions
funcresolve_rom_file(self, path) -> Optional[Path]The file Eden should boot for path.
paramselfparampathPathA ROM file, or a folder searched up to two levels deep.
Returns
typing.OptionalThe file itself, the best-ranked bootable file in the folder, or None.
funclaunch(self, rom_path, resume_slot) -> NonePatch qt-config.ini and boot the game fullscreen.
paramselfparamrom_pathPathThe file to boot.
paramresume_slotOptional[int]Ignored with a log line; Eden has no save states.
Returns
None