mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-12 13:03:54 -06:00
ArkOS ran the GBA with gpsp_ezode_mod and dArkOS with mgba_rumble: no profile named them, so an install for the card's games kept every GBA core's files, FBNeo's 3,472 data files among them. Each rename proven from the OS build (same code base, same BIOS loading) joins its profile's cores. The resolver folds either separator, and falls back to the emulator column when the core names a mode, a machine or a plugin of that program, only where its profile declares the folder's system: MAME documents no GameKing ROM. 109 unresolved names are 56, each one recorded with why in tests/test_games_index.py.
157 lines
6.8 KiB
YAML
157 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
|
|
- "azahar - standalone"
|
|
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"
|