Azahar (SDL2)
Azahar (SDL2) emulates Nintendo 3DS. It reads 7 files, none of them required: it starts games without them.
The app reads its files from this folder:
On Linux: $XDG_DATA_HOME/azahar-emu/, else ~/.local/share/azahar-emu/
A user folder in the working directory is used instead when it exists.
Source: src/, src/, src/
About this profile
Install this emulator's files
With EmuDeck, RetroDECK or KNULLI: the installer finds EmuDeck, RetroDECK or KNULLI and its BIOS folder, then downloads only the files Azahar (SDL2) reads there and checks each one.
Open a terminal. Paste the line. Press Enter.
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh -s -- --emulator azahar-sdlSwitch to Desktop Mode. Open Konsole. Paste with Ctrl+Shift+V. Press Enter.
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh -s -- --emulator azahar-sdlOpen a terminal on the device. Or connect from a computer with SSH, a terminal over the network. Paste the line. Press Enter.
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh -s -- --emulator azahar-sdlTechnical notes
Fork of Azahar by johndoe6345789 that keeps the SDL2 frontend
(src/citra_sdl) beside a libretro port. ENABLE_SDL2_FRONTEND links it into
the azahar executable, without Qt.
ref: CMakeLists.txt:101, src/CMakeLists.txt:196-206, src/,
src/
Data dir: the one the data folder names, with citra-emu and lime3ds-emu kept as
legacy locations. sysdata/ and nand/ sit under it, and the
SDL2 config can move nand/ with use_custom_storage and nand_directory.
ref: src/, src/,
src/, src/
keys.txt has an AES-encrypted key blob compiled in, used when the file is
absent.
ref: src/, src/core/hw/default_keys.h:4-5
System archives (shared font, Mii data, country list, bad word list) have
open-source replacements embedded in the binary.
ref: src/
boot9.bin and sector0x96.bin are defined but read by no code path.
ref: src/
mcu.dat and mac.txt in sysdata hold per-installation state the emulator
writes itself.
ref: src/, src/,
src/, src/
7 files: 0 required, 7 optional. 2 have an HLE fallback.
| File | Hash |
|---|---|
sysdata/keys.txt |
MD5 cb52d323b131 |
sysdata/shared_font.bin |
- |
sysdata/seeddb.bin |
- |
sysdata/otp.bin |
- |
nand/private/movable.sed |
- |
nand/rw/sys/SecureInfo_A |
- |
nand/ |
- |
In this collection: 7 in repo and 0 missing.
Optional
Section titled “Optional”7 files
keys.txt optional in repo HLE fallback
- Path:
sysdata/keys.txt, in the data folder - System: Nintendo 3DS
- SHA1:
5fab786695311433602028cd89898689c5df0898 - MD5:
cb52d323b13129a2f0bc3e3e911e567f - Source:
src/,core/ hw/ aes/ key.cpp:146-278 src/,core/ hw/ aes/ key.cpp:282-300 src/common/common_paths.h:83,src/core/hw/default_keys.h:4-5 - Collection copy:
bios/Other/ azahar/ sysdata/ keys.txt
- 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
shared_font.bin optional in repo HLE fallback
- Path:
sysdata/shared_font.bin, in the data folder - System: Nintendo 3DS
- legacy path, tried when the shared font system archive fails to load
seeddb.bin optional in repo
- Path:
sysdata/seeddb.bin, in the data folder - System: Nintendo 3DS
- Source:
src/core/ file_sys/ seed_db.cpp:12-58 - Collection copy:
bios/Nintendo/ 3DS/ Citra/ sysdata/ seeddb.bin - Platforms: BizHawk:
seeddb.bin
- game seed database for 9.6+ titles, an empty one is written if absent
otp.bin optional in repo
- Path:
sysdata/otp.bin, in the data folder - System: Nintendo 3DS
- Size: 256 B
- Validation: size, crypto
- Source:
src/,core/ file_sys/ otp.cpp:14-55 src/,core/ hw/ unique_data.cpp:126-168 src/core/ hw/ unique_data.cpp:213-215 - Collection copy:
bios/Nintendo/ 3DS/ Citra/ sysdata/ otp.bin
- console-unique OTP, AES-CBC decrypted with the keys.txt OTP key, then checked against the OTP magic and its SHA-256
movable.sed optional in repo
- Path:
nand/private/movable.sed, in the data folder - System: Nintendo 3DS
- Size: 288 B / 320 B
- Validation: size, signature
- On a failed signature check: warns and runs with the file
- console-unique key seed, 288 bytes without the AES MAC block, 320 with it
SecureInfo_A optional in repo
- Path:
nand/rw/sys/SecureInfo_A, in the data folder - System: Nintendo 3DS
- Size: 273 B
- Validation: size, signature
- On a failed signature check: warns and runs with the file
- console serial and region data
LocalFriendCodeSeed_B optional in repo
- Path:
nand/, in the data folderrw/ sys/ LocalFriendCodeSeed_B - System: Nintendo 3DS
- Size: 272 B
- Validation: size, signature
- On a failed signature check: warns and runs with the file
- friend code generation seed
Next steps
Section titled “Next steps”- Get your files, for the setup you play on
- Every system, and the files each one needs
- When a game does not start