mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-11 12:33:53 -06:00
fix: read citron and suyu keys from KeysDir
Both profiles placed their keys in switch/, Batocera's folder. The code reads them from KeysDir, <data>/keys, so the paths are keys/<name> and the profiles declare the data folders, the portable user folder and the KeysDir handle. Batocera and KNULLI keep citron's keys in bios/switch, EmuDeck places each emulator's in its linked bios/<emulator>/keys, RetroBat in emulators/citron/user/keys, and KNULLI's suyu, which keeps its data in /userdata/saves/switch, names them as read outside the BIOS folder.
This commit is contained in:
1 parent
62f9ea6a76
commit
d2546e557f
2 files changed
+28
-14
No files matched your search
+14
-7
@@ -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 <data_dir>/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 <data_dir>/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"
|
||||
|
||||
+14
-7
@@ -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 <data_dir>/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 <data_dir>/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"
|
||||
|
||||
Reference in new issue
Block a user