feat: 4-source verified emulator profiles (A-E cores)

33 emulator profiles created or updated with systematic
verification against libretro docs, .info, core source,
and original emulator source code.

New profiles: bsnes-jg, bsnes2014, bsnes_cplusplus98,
bsnes_hd_beta, bsnes_mercury, citra2018, citra_canary.

Key fixes:
- dosbox_svn/svn_ce: not aliases of dosbox_core (no MUNT)
- beetle_psx: alt_names renamed to aliases (field bug)
- dolphin: added 15 Realtek BT firmware for Wiimote passthrough
- dosbox_core: added CM-32LN, 13 split ROM pairs for standalone
- duckstation: type standalone+libretro, 106 BIOS verified
- snes9x/np2kai: formal aliases for alternate filenames
This commit is contained in:
Abdessamad Derraz
2026-03-19 08:09:34 +01:00
parent 86dbdf28e5
commit 71b127efb5
33 changed files with 1400 additions and 260 deletions
+26 -46
View File
@@ -1,49 +1,53 @@
emulator: Citra / Lime3DS / Azahar
emulator: Citra
type: standalone + libretro
source: "https://github.com/azahar-emu/azahar"
logo: "https://raw.githubusercontent.com/wheremyfoodat/citra/master/dist/citra.svg"
source: "https://github.com/libretro/citra"
upstream: "https://github.com/citra-emu/citra"
profiled_date: "2026-03-18"
core_version: "Git"
display_name: "Nintendo - 3DS (Citra)"
cores: [citra]
systems: [nintendo-3ds]
notes: |
Citra (now Azahar, formerly Lime3DS) uses HLE for most system services,
so many files are optional. AES keys are the most important for decrypting
games and system data. Shared font has a built-in fallback.
File locations relative to user dir: sysdata/ for keys/boot/font/otp/seeddb,
Citra 3DS emulator (pre-Azahar). Data dir: citra-emu.
HLE for most services — files optional. AES keys most important.
File locations: sysdata/ for keys/boot/font/seeddb,
nand/ for NAND filesystem, nand/private/ for movable.sed.
Legacy data dirs: citra-emu, lime3ds-emu -> azahar-emu.
ref: src/common/common_paths.h:67-70
Key file: aes_keys.txt (NOT keys.txt — that's Azahar).
ref: src/common/common_paths.h:68
Azahar fork: see emulators/azahar.yml (uses keys.txt, data dir azahar-emu).
citra_canary: same repo, see emulators/citra_canary.yml.
files:
# --- sysdata/ directory ---
- name: "keys.txt"
path: "sysdata/keys.txt"
- name: "aes_keys.txt"
path: "sysdata/aes_keys.txt"
description: "AES encryption keys"
required: false
source_ref: "src/common/common_paths.h:83, src/core/hw/aes/key.cpp:291"
notes: "Contains AES key slots (X/Y/N types) for game decryption; has built-in encrypted fallback keys (key.cpp:300-306)"
source_ref: "src/common/common_paths.h:68, src/core/hw/aes/key.cpp LoadPresetKeys()"
notes: "Named aes_keys.txt in libretro/citra (keys.txt in Azahar)"
- name: "boot9.bin"
path: "sysdata/boot9.bin"
description: "ARM9 bootrom"
required: false
source_ref: "src/common/common_paths.h:84"
notes: "3DS ARM9 boot ROM; used for hardware key derivation"
source_ref: "src/common/common_paths.h:69"
- name: "sector0x96.bin"
path: "sysdata/sector0x96.bin"
description: "Secret sector from NAND"
required: false
source_ref: "src/common/common_paths.h:85"
notes: "OTP-encrypted sector 0x96 from 3DS NAND; used for key derivation"
source_ref: "src/common/common_paths.h:70"
- name: "shared_font.bin"
path: "sysdata/shared_font.bin"
description: "System shared font"
required: false
source_ref: "src/common/common_paths.h:82, src/core/hle/service/apt/apt.cpp:284"
notes: "Fallback if NAND system archive not available; built-in font data also exists (archive_ncch.cpp:28,189)"
source_ref: "src/common/common_paths.h:67"
notes: "HLE fallback if missing"
- name: "seeddb.bin"
path: "sysdata/seeddb.bin"
@@ -52,34 +56,10 @@ files:
source_ref: "src/core/file_sys/seed_db.cpp:15"
notes: "Required for some seed-encrypted games (9.6+ titles)"
- name: "otp.bin"
path: "sysdata/otp.bin"
description: "One-time programmable memory dump"
required: false
source_ref: "src/core/hw/unique_data.cpp:214"
notes: "Console-unique OTP data; used for hardware key derivation"
# --- nand/ directory ---
- name: "movable.sed"
path: "nand/private/movable.sed"
description: "Movable unique key"
required: false
source_ref: "src/core/hw/unique_data.cpp:218"
notes: "Console-unique key seed for SD/NAND encryption; signature verified at load (unique_data.cpp:197)"
- name: "SecureInfo_A"
path: "nand/rw/sys/SecureInfo_A"
description: "Console serial and region info"
required: false
source_ref: "src/core/hw/unique_data.cpp:206"
notes: "Contains console serial number and region data"
- name: "LocalFriendCodeSeed_B"
path: "nand/rw/sys/LocalFriendCodeSeed_B"
description: "Friend code seed"
required: false
source_ref: "src/core/hw/unique_data.cpp:210"
notes: "Used for friend code generation"
# otp.bin, movable.sed, SecureInfo_A, LocalFriendCodeSeed_B
# do NOT exist in libretro/citra — they are Azahar-only features
# (src/core/hw/unique_data.cpp exists in azahar, not in libretro/citra)
# See emulators/azahar.yml for those files.
# --- NAND system archives (installed titles) ---
- name: "shared font (system archive)"