emulator: trident display_name: "Nintendo - 3DS (Trident)" type: libretro core_classification: community_fork source: https://github.com/DanAlexMorton/3dsTrident upstream: https://github.com/DanAlexMorton/Panda3DS profiled_date: "2026-03-25" source_commit: "b97b0befa326105e181838bc6fa11c546de8294d" upstream_commit: "69095ee6d68d21eacac8d1517f0b7b4ed27884d3" core_version: git library_name: "Trident" cores: - trident systems: - 3ds notes: >- Libretro core wrapping Panda3DS, an HLE Nintendo 3DS emulator. Shared font, Mii data, country list and bad word list are embedded in the binary via CMRC and compiled-in headers. DSP firmware is loaded from the game ROM at runtime, not from an external file. DSP modes: HLE (default), LLE (Teakra), Null. Files are resolved from the RetroArch save directory (/Emulator Files/sysdata/), not the system directory, or from the working directory when the frontend gives none. The core reports library_name "Trident" (src/libretro_core.cpp:29, 243, 280-285). 3dsTrident builds the vendor/Panda3DS submodule, DanAlexMorton/Panda3DS at 69095ee6, a fork of wheremyfoodat/Panda3DS from their merge base 944b9892. The libretro wrapper and the files cited below are in that tree. files: - name: aes_keys.txt path: "Emulator Files/sysdata/aes_keys.txt" load_from: save_dir description: AES encryption keys for decrypting encrypted 3DS ROMs required: false source_ref: >- src/emulator.cpp:234,242-244 (path construction and existence check); src/core/crypto/aes_engine.cpp:13-92 (loadKeys, parses key=value text); src/core/loader/ncch.cpp:151-164 (panic if encrypted ROM loaded without keys) - name: seeddb.bin path: "Emulator Files/sysdata/seeddb.bin" load_from: save_dir description: seed database for seed-encrypted 3DS games required: false source_ref: >- src/emulator.cpp:235,246-248 (path construction and existence check); src/core/crypto/aes_engine.cpp:94-153 (setSeedPath, loadSeeds, getSeedFromDB)