Files
libretro/emulators/eden.yml
T
Abdessamad Derraz ca307a4ef1 feat: keep a profile checkable when its forge goes
Four Switch profiles were unverifiable and said so on stderr every pass.
yuzu and suyu answer 451, citron's host stopped resolving, and
git.eden-emu.dev returns 403 to anything that is not a browser. Each
aborted its own report, so nothing could be said about any of them, and
the noise repeated on every run over the whole corpus.

A withdrawn forge is now a fact rather than a failure. GoneError covers
451, 410 and a host that does not resolve; none is retried, since three
attempts with backoff end in the same place. Those profiles land in
their own summary bucket, out of the review backlog where nobody could
act on them anyway. A 403 stays what it was, a refusal, because small
Forgejo instances behind anti-bot filters issue it routinely.

A profile can now name a source_mirror, consulted after source and
upstream so a live primary always decides attribution. Reaching it took
two more changes: a repository that refuses is muted for the rest of the
pass instead of ending it, keyed by host as well as slug because a
mirror carries the same slug on another forge; and a refused miss is not
cached, or the mute would answer for the mirror that was about to be
asked.

eden now reads from its Codeberg copy, which holds the same head and the
pinned commit: 5 refs, all anchored, where the profile could not be
checked at all. yuzu, suyu and citron have no mirror that serves
content, and now say so once instead of failing loudly.
2026-09-04 15:35:00 +02:00

68 lines
2.4 KiB
YAML

emulator: Eden
type: standalone
core_classification: community_fork
source: "https://git.eden-emu.dev/eden-emu/eden"
upstream: "https://git.eden-emu.dev/eden-emu/eden"
# git.eden-emu.dev answers 403 to anything that is not a browser, so the
# Codeberg copy is what keeps this profile checkable.
source_mirror: "https://codeberg.org/eden-emu/eden"
profiled_date: "2026-03-26"
source_commit: "c0ffc900cdf19b9373549c59a7e6b22c33615ea4"
core_version: "0.1.1"
display_name: "Eden (Nintendo Switch)"
cores:
- eden
systems: [nintendo-switch]
analysis_date: "2026-03-26"
analysis_commit: "9347202 (depth=1)"
mode: standalone
# Eden is a community fork of yuzu, started by Camille LaVey.
# Key files loaded from <data_dir>/keys/ (fs_paths.h:20, path_util.cpp:158).
# On Linux: $XDG_DATA_HOME/eden/keys/
# On Windows: %APPDATA%/eden/keys/
# Firmware NCAs are installed via UI (Tools > Install Firmware), not placed as files.
# HLE fallbacks exist for fonts, timezone, system version, mii model, ng word lists.
files:
- name: "prod.keys"
required: true
path: "switch/"
mode: standalone
note: "Production keys for NCA decryption (master, key area, header, titlekek)"
source_ref: "src/core/crypto/key_manager.cpp:574-575, 853"
- name: "dev.keys"
required: false
path: "switch/"
mode: standalone
note: "Development-unit keys, read instead of prod.keys when use_dev_keys is set"
source_ref: "src/core/crypto/key_manager.cpp:570-571, 852"
- name: "title.keys"
required: false
path: "switch/"
mode: standalone
note: "Per-title encryption keys (rights_id to titlekey mappings)"
source_ref: "src/core/crypto/key_manager.cpp:577-578, 850"
- name: "console.keys"
required: false
path: "switch/"
mode: standalone
note: "Console-specific keys (BIS, SD seed)"
source_ref: "src/core/crypto/key_manager.cpp:579-580"
- name: "key_retail.bin"
required: false
path: "switch/"
size: 160
mode: standalone
note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)"
source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:281-302"
notes: |
Eden is a standalone Nintendo Switch emulator, community fork of yuzu by Camille LaVey.
Firmware (system NCAs) must be installed through Eden's UI from a firmware ZIP or NCA folder.
Required for commercial games. Homebrew (.nro, .nso) can run without keys or firmware.