mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 00:27:20 -05:00
Each libretro profile records version_basis and core_version is read there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba 0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build takes its version from git carry the nearest tag in describe form (flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders copied from .info files (Git, SVN) are replaced by the code's statement, and a code that states none is null with kind none.
156 lines
6.8 KiB
YAML
156 lines
6.8 KiB
YAML
emulator: Azahar
|
|
type: standalone + libretro
|
|
core_classification: official_port
|
|
source: "https://github.com/azahar-emu/azahar"
|
|
upstream: "https://github.com/azahar-emu/azahar"
|
|
profiled_date: "2026-10-22"
|
|
source_commit: "219d743a1e698101fe1ab8bef43e6563126c3c27"
|
|
core_version: "2126.2"
|
|
version_basis:
|
|
kind: tag
|
|
tag: "2126.2"
|
|
distance: 0
|
|
display_name: "Nintendo - 3DS (Azahar)"
|
|
library_name: "Azahar"
|
|
cores:
|
|
- azahar
|
|
- azahar-sa
|
|
systems:
|
|
- nintendo-3ds
|
|
|
|
data_root:
|
|
windows:
|
|
path: "%APPDATA%/Azahar"
|
|
source_ref: "src/common/file_util.cpp:945-958, src/common/common_paths.h:24-25"
|
|
note: "A user folder beside the executable is used instead when it exists."
|
|
linux:
|
|
path: "$XDG_DATA_HOME/azahar-emu, else ~/.local/share/azahar-emu"
|
|
source_ref: "src/common/file_util.cpp:904-921, 965-975, src/common/common_paths.h:44-45"
|
|
note: "A user folder in the working directory is used instead when it exists."
|
|
macos:
|
|
path: "~/Library/Application Support/Azahar"
|
|
source_ref: "src/common/file_util.cpp:965-975, 999-1012, src/common/common_paths.h:34-40"
|
|
note: "$XDG_DATA_HOME/azahar-emu is kept when it, or the XDG config or cache folder, already exists, and a user folder in the working directory takes precedence over both."
|
|
android:
|
|
path: "the folder picked in the setup wizard"
|
|
source_ref: "src/android/app/src/main/java/org/citra/citra_emu/utils/PermissionsHandler.kt:19,49-56, src/android/app/src/main/java/org/citra/citra_emu/utils/DirectoryInitialization.kt:90-98, src/common/file_util.cpp:961-962"
|
|
note: "No default: the user grants a folder through the system picker, stored as CITRA_DIRECTORY, and every user path is resolved inside it."
|
|
|
|
# path: is where the libretro core reads a file below the save directory the
|
|
# frontend hands it (load_from), standalone_path: where the standalone app
|
|
# reads it under its user directory.
|
|
notes: |
|
|
Successor to Citra (via Lime3DS). The libretro core lives in the same
|
|
repository (src/citra_libretro) and is built with ENABLE_LIBRETRO, which
|
|
forces the SDL2, Qt and web service frontends off.
|
|
ref: CMakeLists.txt:40, CMakeLists.txt:109-111, CMakeLists.txt:165-187
|
|
|
|
The libretro core moves the user directory to <save_dir>/Azahar/, or to
|
|
<system_dir>/Azahar/ when the frontend gives no save directory. The core
|
|
option "Azahar Default" keeps the standalone data directory instead.
|
|
ref: src/citra_libretro/core_settings.cpp:592-603, src/citra_libretro/core_settings.cpp:1048-1080,
|
|
src/citra_libretro/environment.cpp:191-208
|
|
|
|
The core reports library_name "Azahar".
|
|
ref: src/citra_libretro/environment.cpp:269
|
|
|
|
The standalone user directory is the one data_root names per system, with
|
|
citra-emu and lime3ds-emu (Citra and Lime3DS on Windows and macOS) kept as
|
|
legacy locations. sysdata/, nand/ and sdmc/ sit under it.
|
|
ref: src/common/common_paths.h:19-49, src/common/file_util.cpp:943-972,
|
|
src/common/file_util.cpp:1023-1025
|
|
|
|
keys.txt has an AES-encrypted key blob compiled in, used when the file is
|
|
absent. ENABLE_BUILTIN_KEYBLOB defaults to ON and is not among the options a
|
|
libretro build forces off.
|
|
ref: src/core/hw/aes/key.cpp:292-314, CMakeLists.txt:154, src/core/CMakeLists.txt:501-503
|
|
|
|
System archives (shared font, Mii data, country list, bad word list) are read
|
|
from installed NAND titles. Open-source replacements embedded in the binary
|
|
answer when the title is absent.
|
|
ref: src/core/file_sys/archive_ncch.cpp:150-214, src/core/hle/service/apt/apt.cpp:211-276
|
|
|
|
boot9.bin and sector0x96.bin are defined but read by no code path.
|
|
ref: src/common/common_paths.h:84-85
|
|
|
|
The .info declares no firmware.
|
|
|
|
files:
|
|
- name: keys.txt
|
|
path: Azahar/sysdata/keys.txt
|
|
standalone_path: sysdata/keys.txt
|
|
load_from: {libretro: save_dir}
|
|
system: nintendo-3ds
|
|
required: false
|
|
hle_fallback: true
|
|
sha1: "5288772be438b86978a801e6dcb14228ad3a20af"
|
|
md5: "4812e96097b7fc1bdd7b40366208b7a7"
|
|
note: "AES key slots, common keys and NFC secrets. Embedded encrypted blob used if missing: default_keys_enc, AES-CBC with a zero key and IV, the hashes are those of the decrypted text"
|
|
source_ref: "src/core/hw/aes/key.cpp:151-288, src/core/hw/aes/key.cpp:292-314, src/common/common_paths.h:83, src/core/hw/default_keys.h:11"
|
|
|
|
- name: shared_font.bin
|
|
path: Azahar/sysdata/shared_font.bin
|
|
standalone_path: sysdata/shared_font.bin
|
|
load_from: {libretro: save_dir}
|
|
system: nintendo-3ds
|
|
required: false
|
|
hle_fallback: true
|
|
note: "legacy path, tried when the shared font system archive fails to load"
|
|
source_ref: "src/core/hle/service/apt/apt.cpp:278-293, src/core/hle/service/apt/apt.cpp:300-305, src/common/common_paths.h:82"
|
|
|
|
- name: seeddb.bin
|
|
path: Azahar/sysdata/seeddb.bin
|
|
standalone_path: sysdata/seeddb.bin
|
|
load_from: {libretro: save_dir}
|
|
system: nintendo-3ds
|
|
required: false
|
|
note: "game seed database for 9.6+ titles, an empty one is written if absent"
|
|
source_ref: "src/core/file_sys/seed_db.cpp:12-58"
|
|
|
|
- name: otp.bin
|
|
path: Azahar/sysdata/otp.bin
|
|
standalone_path: sysdata/otp.bin
|
|
load_from: {libretro: save_dir}
|
|
system: nintendo-3ds
|
|
required: false
|
|
size: 256
|
|
validation: [size, crypto]
|
|
note: "console-unique OTP, AES-CBC decrypted with the keys.txt OTP key, then checked against the OTP magic and its SHA-256"
|
|
source_ref: "src/core/file_sys/otp.cpp:14-55, src/core/hw/unique_data.cpp:143-192, src/core/hw/unique_data.cpp:243-245"
|
|
|
|
- name: movable.sed
|
|
path: Azahar/nand/private/movable.sed
|
|
standalone_path: nand/private/movable.sed
|
|
load_from: {libretro: save_dir}
|
|
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: "src/core/hw/unique_data.cpp:194-233, src/core/hw/unique_data.cpp:247-249, src/core/hw/unique_data.h:103-133"
|
|
|
|
- name: SecureInfo_A
|
|
path: Azahar/nand/rw/sys/SecureInfo_A
|
|
standalone_path: nand/rw/sys/SecureInfo_A
|
|
load_from: {libretro: save_dir}
|
|
system: nintendo-3ds
|
|
required: false
|
|
size: 273
|
|
validation: [size, signature]
|
|
on_mismatch: {signature: warn}
|
|
note: "console serial and region. A failed signature is retried against every region"
|
|
source_ref: "src/core/hw/unique_data.cpp:48-103, src/core/hw/unique_data.cpp:235-237, src/core/hw/unique_data.h:57"
|
|
|
|
- name: LocalFriendCodeSeed_B
|
|
path: Azahar/nand/rw/sys/LocalFriendCodeSeed_B
|
|
standalone_path: nand/rw/sys/LocalFriendCodeSeed_B
|
|
load_from: {libretro: save_dir}
|
|
system: nintendo-3ds
|
|
required: false
|
|
size: 272
|
|
validation: [size, signature]
|
|
on_mismatch: {signature: warn}
|
|
note: "friend code generation seed"
|
|
source_ref: "src/core/hw/unique_data.cpp:105-141, src/core/hw/unique_data.cpp:239-241, src/core/hw/unique_data.h:76"
|