diff --git a/emulators/citron.yml b/emulators/citron.yml index d4b5a25ed..8f5fbb6e7 100644 --- a/emulators/citron.yml +++ b/emulators/citron.yml @@ -16,36 +16,43 @@ systems: [nintendo-switch] analysis_date: "2026-03-26" analysis_commit: "79dee42 (depth=1)" mode: standalone +standalone_directories: + - "$XDG_DATA_HOME/citron" + - "$HOME/.local/share/citron" + - "PORTABLE_DIR" + - "CitronPath::KeysDir = keys" # Citron is a community fork of yuzu, continued by Zephyron after yuzu's takedown. -# Key files loaded from /keys/ (fs_paths.h:18, path_util.cpp:124). -# On Linux: $XDG_DATA_HOME/citron/keys/ -# On Batocera: XDG_DATA_HOME=/userdata/saves/switch -> /userdata/saves/switch/citron/keys/ +# Key files loaded from /keys/ (fs_paths.h:18, path_util.cpp:124), +# the folder path_util.cpp generates as CitronPath::KeysDir. The paths below +# are relative to the data folder: $XDG_DATA_HOME/citron on Linux, or the +# user folder (PORTABLE_DIR) beside the executable when it exists. +# On Batocera: 002-adjust-paths.patch sets KeysDir to /userdata/bios/switch. # Firmware NCAs are installed into NAND via UI (main.cpp:1808), 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/prod.keys" + path: "keys/prod.keys" note: "Production keys for NCA decryption (master, key area, header, titlekek)" source_ref: "src/core/crypto/key_manager.cpp:655-656" - name: "title.keys" required: false - path: "switch/title.keys" + path: "keys/title.keys" note: "Per-title encryption keys (rights_id to titlekey mappings)" source_ref: "src/core/crypto/key_manager.cpp:659-660" - name: "console.keys" required: false - path: "switch/console.keys" + path: "keys/console.keys" note: "Console-specific keys (BIS, SD seed)" source_ref: "src/core/crypto/key_manager.cpp:661-662" - name: "key_retail.bin" required: false - path: "switch/key_retail.bin" + path: "keys/key_retail.bin" size: 160 note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)" source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:274-292" diff --git a/emulators/suyu.yml b/emulators/suyu.yml index e95834d14..0f58adbda 100644 --- a/emulators/suyu.yml +++ b/emulators/suyu.yml @@ -16,11 +16,18 @@ systems: [nintendo-switch] analysis_date: "2026-03-26" analysis_commit: "c096d16 (Hengle/suyu-emu mirror, depth=1)" mode: standalone +standalone_directories: + - "$XDG_DATA_HOME/suyu" + - "$HOME/.local/share/suyu" + - "PORTABLE_DIR" + - "SuyuPath::KeysDir = keys" # Suyu is a community fork of yuzu, started after yuzu's legal takedown. -# Key files loaded from /keys/ (fs_paths.h:20, path_util.cpp:124). -# On Linux: $XDG_DATA_HOME/suyu/keys/ -# On Windows: %APPDATA%/suyu/keys/ +# Key files loaded from /keys/ (fs_paths.h:20, path_util.cpp:124), +# the folder path_util.cpp generates as SuyuPath::KeysDir. The paths below +# are relative to the data folder: $XDG_DATA_HOME/suyu on Linux, +# %APPDATA%/suyu on Windows, or the user folder (PORTABLE_DIR) beside the +# executable when it exists. # Firmware NCAs are installed via UI, not placed as files. # HLE fallbacks exist for fonts, timezone, system version, mii model, ng word lists. # Original repos (GitHub + GitLab) are DMCA'd. Analysis from community mirror. @@ -28,25 +35,25 @@ mode: standalone files: - name: "prod.keys" required: true - path: "switch/prod.keys" + path: "keys/prod.keys" note: "Production keys for NCA decryption (master, key area, header, titlekek)" source_ref: "src/core/crypto/key_manager.cpp:654" - name: "title.keys" required: false - path: "switch/title.keys" + path: "keys/title.keys" note: "Per-title encryption keys (rights_id to titlekey mappings)" source_ref: "src/core/crypto/key_manager.cpp:657" - name: "console.keys" required: false - path: "switch/console.keys" + path: "keys/console.keys" note: "Console-specific keys (BIS, SD seed)" source_ref: "src/core/crypto/key_manager.cpp:658" - name: "key_retail.bin" required: false - path: "switch/key_retail.bin" + path: "keys/key_retail.bin" size: 160 note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)" source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:273-294"