Files
libretro/emulators/azahar.yml
T
Abdessamad Derraz 4129536121 chore: pin upstream revisions read by date or tag
dosbox_pure takes the upstream tag its core_version names (1.0-preview7), triforce the Dolphin release its tree reports (2407). The others take the upstream commit at profiled_date, the revision profile_sync already compared them against: the standalone build for standalone + libretro profiles, and for cannonball and jl-mod the cited lines land there and not at the fork's merge base. Every upstream-role ref lands on its declared value at the pin.
2026-10-21 10:18:07 +02:00

100 lines
3.6 KiB
YAML

emulator: Azahar
type: standalone + libretro
core_classification: community_fork
source: "https://github.com/johndoe6345789/azahar_libretro"
upstream: "https://github.com/azahar-emu/azahar"
profiled_date: "2026-03-23"
source_commit: "9dd12da328c753806cbd4f2b0e048fced97ae97d"
upstream_commit: "9b045bf8370d035cacd99e5ad19a082df9e3b262"
core_version: "Git"
display_name: "Nintendo - 3DS (Azahar)"
cores: [azahar]
systems:
- nintendo-3ds
notes: |
Successor to Citra (via Lime3DS). Libretro port by johndoe6345789.
Data dir: azahar-emu (legacy: citra-emu, lime3ds-emu).
ref: src/common/common_paths.h:41-43
Key file named keys.txt (not aes_keys.txt like old Citra).
Embedded encrypted key fallback if keys.txt absent.
ref: src/core/hw/aes/key.cpp:282-297
Uses RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY.
ref: src/citra_libretro/environment.cpp:179
.info has firmware_count=0 but core loads files from system_dir.
boot9.bin and sector0x96.bin are defined in common_paths.h:84-85
but never loaded by any code path. Dead defines from Citra heritage.
System archives (shared font, Mii data, country list, bad word list)
have open-source replacements embedded in the binary.
ref: src/core/file_sys/archive_ncch.cpp:146-176
files:
- name: keys.txt
path: sysdata/keys.txt
system: nintendo-3ds
required: false
hle_fallback: true
sha1: "5fab786695311433602028cd89898689c5df0898"
md5: "cb52d323b13129a2f0bc3e3e911e567f"
note: "embedded encrypted fallback if missing: default_keys_enc, AES-CBC with a zero key and IV. The hashes are those of the decrypted text without its PKCS#7 block"
source_ref: "source src/core/hw/aes/key.cpp:283-300, upstream src/common/common_paths.h:83, source src/core/hw/default_keys.h:4-5"
- name: shared_font.bin
path: sysdata/shared_font.bin
system: nintendo-3ds
required: false
hle_fallback: true
note: "legacy load path, embedded open-source font used if missing"
source_ref: "source src/core/hle/service/apt/apt.cpp:263-278"
- name: seeddb.bin
path: sysdata/seeddb.bin
system: nintendo-3ds
required: false
note: "game seed database for 9.6+ titles"
source_ref: "upstream src/core/file_sys/seed_db.cpp:15"
- name: otp.bin
path: sysdata/otp.bin
system: nintendo-3ds
required: false
size: 256
validation: [size, crypto]
note: "OTP data for console key derivation"
source_ref: "source src/core/hw/unique_data.cpp:126-167, source src/core/hw/unique_data.cpp:213"
- name: movable.sed
path: nand/private/movable.sed
system: nintendo-3ds
required: false
size: [288, 320]
validation: [size, signature]
on_mismatch: {signature: warn}
note: "console-unique key seed, 288 bytes without the AES MAC block, 320 with it"
source_ref: "source src/core/hw/unique_data.cpp:170-200, source src/core/hw/unique_data.cpp:217, source src/core/hw/unique_data.h:103-133"
- name: SecureInfo_A
path: nand/rw/sys/SecureInfo_A
system: nintendo-3ds
required: false
size: 273
validation: [size, signature]
on_mismatch: {signature: warn}
note: "console serial and region data"
source_ref: "source src/core/hw/unique_data.cpp:43-92, source src/core/hw/unique_data.cpp:205"
- name: LocalFriendCodeSeed_B
path: nand/rw/sys/LocalFriendCodeSeed_B
system: nintendo-3ds
required: false
size: 272
validation: [size, signature]
on_mismatch: {signature: warn}
note: "friend code generation seed"
source_ref: "source src/core/hw/unique_data.cpp:94-123, source src/core/hw/unique_data.cpp:209, source src/core/hw/unique_data.h:76"