mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-20 18:59:07 -05:00
simple64 picks the PAL PIF for the European and Australian country codes, and New Zealand carts carry one of them. Citra MMJ's AUS font archives serve the region sold in Australia and New Zealand alike. Tagged australia, a leaf New Zealand is not under, --region new-zealand dropped them. They are tagged oceania, as every other PAL file is.
248 lines
12 KiB
YAML
248 lines
12 KiB
YAML
emulator: Citra MMJ
|
|
type: standalone
|
|
core_classification: community_fork
|
|
source: "https://github.com/weihuoya/citra"
|
|
upstream: "https://github.com/weihuoya/citra"
|
|
profiled_date: "2026-08-11"
|
|
source_commit: "302b0c3bc4312bc96489c11584a97664894b343f"
|
|
core_version: "20251112"
|
|
display_name: "Nintendo - 3DS (Citra MMJ)"
|
|
cores:
|
|
- citra-mmj
|
|
systems:
|
|
- nintendo-3ds
|
|
mode: standalone
|
|
|
|
notes: |
|
|
Citra fork for Android, shipped as four APKs of the same build per release:
|
|
the org.citra.emu package, a com.antutu.ABenchMark package, and a
|
|
StorageAccess variant of each. The user directory is citra-emu at the root of
|
|
external storage, and Android/data/org.citra.emu/files/citra-emu for the
|
|
StorageAccess builds. External files live in sysdata/ and nand/ below it.
|
|
ref: src/android/app/src/main/java/org/citra/emu/utils/CitraDirectory.java:61-94,
|
|
src/common/common_paths.h:23-29, src/common/file_util.cpp:398-430
|
|
|
|
InitKeys reads boot9.bin, then the native firm titles in the NAND tree, then
|
|
sector0x96.bin for the New 3DS firm, then aes_keys.txt. Content left
|
|
encrypted stops loading with ErrorEncrypted, shown as "ROM Encrypted".
|
|
ref: src/core/hw/aes/key.cpp:497-508, src/core/file_sys/ncch_container.cpp:348-351,
|
|
src/android/jni/main_android.cpp:88-90
|
|
|
|
GetSharedFont tries the shared font system archive, then shared_font.bin,
|
|
then the regional BCFNT for the CFG region, and ends the session with
|
|
ErrorSystemFiles when the three fail. The embedded open-source font answers
|
|
title low ID 0x00014002 only, so CHN, KOR and TWN, which resolve to
|
|
0x00014102, 0x00014202 and 0x00014302, depend on a file. Region defaults to
|
|
the code the ROM declares.
|
|
ref: src/core/hle/service/apt/apt.cpp:143, src/core/hle/service/apt/apt.cpp:256-272,
|
|
src/core/file_sys/archive_ncch.cpp:143-148, src/core/hle/service/cfg/cfg.cpp:176-181,
|
|
src/core/loader/ncch.cpp:179, src/android/jni/config/main_settings.cpp:12
|
|
|
|
Loading the four regional fonts from sysdata is specific to this fork.
|
|
ref: src/core/hle/service/apt/apt.cpp:184-228
|
|
|
|
The APK assets carry those fonts, three system archives, the DLP module and a
|
|
seeded CFG savegame, and the first run copies them into the user directory
|
|
without overwriting what is already there. System archives ship as split-off
|
|
RomFS, picked up beside the .app path the title tree resolves to.
|
|
ref: src/android/app/src/main/java/org/citra/emu/utils/CitraDirectory.java:192-207,
|
|
src/android/app/src/main/java/org/citra/emu/utils/CitraDirectory.java:368-399,
|
|
src/core/file_sys/ncch_container.cpp:726-741
|
|
|
|
LLE is opt-in per service module and reads the module from the NAND title
|
|
tree, falling back to HLE when it is absent. There is no title downloader:
|
|
system titles come from CIA files the user installs.
|
|
ref: src/core/hle/service/service.cpp:60-107, src/core/hle/service/service.cpp:197-213,
|
|
src/android/jni/main_android.cpp:278-289
|
|
|
|
ClCertA is read from NAND title 0x0004001b00010002 and decrypted with the
|
|
keyslot 0x0D normal key. HTTPS client authentication stays off without both.
|
|
ref: src/core/hle/service/http_c.cpp:810-884
|
|
|
|
The published tree does not build as it stands: CitraDirectory.java:349 calls
|
|
a NativeLibrary.SetBackgroundGLSL that no file declares, and GetBuildDate and
|
|
GetDeviceIinfo are declared native with no JNI counterpart. Nothing compiled
|
|
here reads the post-processing shaders the settings screen lists.
|
|
ref: src/android/app/src/main/java/org/citra/emu/NativeLibrary.java:341-342,
|
|
src/android/app/src/main/java/org/citra/emu/settings/SettingsFragment.java:397-401
|
|
|
|
Amiibo dumps are read as .bin files from amiibo/, cheat codes from
|
|
cheats/<title id>.txt, texture packs and mods from load/.
|
|
ref: src/android/app/src/main/java/org/citra/emu/ui/AmiiboDialog.java:57-64,
|
|
src/core/cheats/cheats.cpp:93-110, src/core/custom_tex_cache.cpp:67,
|
|
src/core/file_sys/ncch_container.cpp:359-365
|
|
|
|
files:
|
|
- name: boot9.bin
|
|
path: sysdata/boot9.bin
|
|
system: nintendo-3ds
|
|
required: false
|
|
size: 65536
|
|
validation: [size]
|
|
description: "ARM9 bootrom"
|
|
note: "AES key section read at offset 55760, RSA modulus and exponent at 0xB3E0 and 0xB4E0. Both readers bail on any other size."
|
|
source_ref: "src/core/hw/aes/key.cpp:135-205, src/core/hw/rsa/rsa.cpp:49-80"
|
|
|
|
- name: aes_keys.txt
|
|
path: sysdata/aes_keys.txt
|
|
system: nintendo-3ds
|
|
required: false
|
|
description: "AES key slots"
|
|
note: "One name=hex pair per line, slot0x<NN>Key<X|Y|N> and common<N>. Read last, so it overrides what boot9.bin and the native firm titles set."
|
|
source_ref: "src/core/hw/aes/key.cpp:428-493, src/core/hw/aes/key.cpp:497-508"
|
|
|
|
- name: sector0x96.bin
|
|
path: sysdata/sector0x96.bin
|
|
system: nintendo-3ds
|
|
required: false
|
|
min_size: 17
|
|
validation: [size]
|
|
description: "New 3DS NAND secret sector"
|
|
note: "First 16 bytes decrypt the slot 0x15 KeyX of the New 3DS safe mode native firm, title 0x0004013820000003. A file of 16 bytes or less trips a live assert: Android compiles out ASSERT_MSG, not ASSERT."
|
|
source_ref: "src/core/hw/aes/key.cpp:309-345, src/core/hw/aes/key.cpp:380-386, src/common/assert.h:30-35, src/common/assert.h:59-62"
|
|
|
|
- name: seeddb.bin
|
|
path: sysdata/seeddb.bin
|
|
system: nintendo-3ds
|
|
required: false
|
|
description: "game seed database"
|
|
note: "Seed-encrypted titles from firmware 9.6 onwards. An empty database is written when the file is absent."
|
|
source_ref: "src/core/file_sys/seed_db.cpp:12-57"
|
|
|
|
- name: "00000000.app.romfs"
|
|
path: nand/00000000000000000000000000000000/title/0004009b/00014002/content/00000000.app.romfs
|
|
system: nintendo-3ds
|
|
required: false
|
|
hle_fallback: true
|
|
region: [japan, north-america, europe, oceania]
|
|
description: "shared font system archive, title 0x0004009b00014002"
|
|
note: "First step of the shared font chain, holding cbf_std.bcfnt.lz in its RomFS. This title low ID is the one the embedded open-source font answers."
|
|
source_ref: "src/core/hle/service/apt/apt.cpp:124-182, src/core/file_sys/archive_ncch.cpp:143-148"
|
|
|
|
- name: "00000000.app.romfs"
|
|
path: nand/00000000000000000000000000000000/title/0004009b/00014102/content/00000000.app.romfs
|
|
system: nintendo-3ds
|
|
required: false
|
|
region: [china]
|
|
description: "shared font system archive for CHN, title 0x0004009b00014102"
|
|
note: "Holds cbf_zh-Hans-CN.bcfnt.lz. No embedded replacement answers this title low ID."
|
|
source_ref: "src/core/hle/service/apt/apt.cpp:124-182, src/core/file_sys/archive_ncch.cpp:132-158"
|
|
|
|
- name: "00000000.app.romfs"
|
|
path: nand/00000000000000000000000000000000/title/0004009b/00014202/content/00000000.app.romfs
|
|
system: nintendo-3ds
|
|
required: false
|
|
region: [south-korea]
|
|
description: "shared font system archive for KOR, title 0x0004009b00014202"
|
|
note: "Holds cbf_ko-Hang-KR.bcfnt.lz. No embedded replacement answers this title low ID."
|
|
source_ref: "src/core/hle/service/apt/apt.cpp:124-182, src/core/file_sys/archive_ncch.cpp:132-158"
|
|
|
|
- name: "00000000.app.romfs"
|
|
path: nand/00000000000000000000000000000000/title/0004009b/00014302/content/00000000.app.romfs
|
|
system: nintendo-3ds
|
|
required: false
|
|
region: [taiwan]
|
|
description: "shared font system archive for TWN, title 0x0004009b00014302"
|
|
note: "Holds cbf_zh-Hant-TW.bcfnt.lz. No embedded replacement answers this title low ID."
|
|
source_ref: "src/core/hle/service/apt/apt.cpp:124-182, src/core/file_sys/archive_ncch.cpp:132-158"
|
|
|
|
- name: shared_font.bin
|
|
path: sysdata/shared_font.bin
|
|
system: nintendo-3ds
|
|
required: false
|
|
hle_fallback: true
|
|
description: "system shared font, legacy dump"
|
|
note: "Copied whole into the shared memory block, so the file carries the 0x80 byte APT header. Tried after the system archive and before the regional BCFNT files."
|
|
source_ref: "src/core/hle/service/apt/apt.cpp:230-246, src/core/hle/service/apt/apt.cpp:256-272"
|
|
|
|
- name: cbf_std.bcfnt
|
|
path: sysdata/cbf_std.bcfnt
|
|
system: nintendo-3ds
|
|
required: false
|
|
bundled: true
|
|
hle_fallback: true
|
|
region: [japan, north-america, europe, oceania]
|
|
description: "shared font for JPN, USA, EUR and AUS"
|
|
note: "Read to offset 0x80 of the shared memory block, so the file is a bare uncompressed BCFNT. Selected for every CFG region other than CHN, KOR and TWN. The embedded open-source font answers the archive request first, so this file is only reached when that archive path is taken out."
|
|
source_ref: "src/core/hle/service/apt/apt.cpp:184-228, src/core/file_sys/archive_ncch.cpp:143-148"
|
|
|
|
- name: cbf_zh-Hans-CN.bcfnt
|
|
path: sysdata/cbf_zh-Hans-CN.bcfnt
|
|
system: nintendo-3ds
|
|
required: false
|
|
bundled: true
|
|
region: [china]
|
|
description: "shared font for CHN"
|
|
note: "Selected when the CFG region is CHN. The embedded font does not cover archive 0x00014102, so the session ends with ErrorSystemFiles without this file or shared_font.bin."
|
|
source_ref: "src/core/hle/service/apt/apt.cpp:184-228, src/core/hle/service/apt/apt.cpp:256-272"
|
|
|
|
- name: cbf_ko-Hang-KR.bcfnt
|
|
path: sysdata/cbf_ko-Hang-KR.bcfnt
|
|
system: nintendo-3ds
|
|
required: false
|
|
bundled: true
|
|
region: [south-korea]
|
|
description: "shared font for KOR"
|
|
note: "Selected when the CFG region is KOR. The embedded font does not cover archive 0x00014202, so the session ends with ErrorSystemFiles without this file or shared_font.bin."
|
|
source_ref: "src/core/hle/service/apt/apt.cpp:184-228, src/core/hle/service/apt/apt.cpp:256-272"
|
|
|
|
- name: cbf_zh-Hant-TW.bcfnt
|
|
path: sysdata/cbf_zh-Hant-TW.bcfnt
|
|
system: nintendo-3ds
|
|
required: false
|
|
bundled: true
|
|
region: [taiwan]
|
|
description: "shared font for TWN"
|
|
note: "Selected when the CFG region is TWN. The embedded font does not cover archive 0x00014302, so the session ends with ErrorSystemFiles without this file or shared_font.bin."
|
|
source_ref: "src/core/hle/service/apt/apt.cpp:184-228, src/core/hle/service/apt/apt.cpp:256-272"
|
|
|
|
- name: "00000000.app.romfs"
|
|
path: nand/00000000000000000000000000000000/title/0004009b/00010202/content/00000000.app.romfs
|
|
system: nintendo-3ds
|
|
required: false
|
|
bundled: true
|
|
hle_fallback: true
|
|
description: "Mii data system archive, title 0x0004009b00010202"
|
|
note: "Split-off RomFS served in place of the NCCH the title tree resolves to. An open-source replacement is built into the binary."
|
|
source_ref: "src/core/file_sys/ncch_container.cpp:726-741, src/core/file_sys/archive_ncch.cpp:132-136"
|
|
|
|
- name: "00000000.app.romfs"
|
|
path: nand/00000000000000000000000000000000/title/0004009b/00010402/content/00000000.app.romfs
|
|
system: nintendo-3ds
|
|
required: false
|
|
bundled: true
|
|
hle_fallback: true
|
|
description: "country list system archive, title 0x0004009b00010402"
|
|
note: "Split-off RomFS served in place of the NCCH the title tree resolves to. An open-source replacement is built into the binary."
|
|
source_ref: "src/core/file_sys/ncch_container.cpp:726-741, src/core/file_sys/archive_ncch.cpp:137-142"
|
|
|
|
- name: "00000000.app.romfs"
|
|
path: nand/00000000000000000000000000000000/title/000400db/00010302/content/00000000.app.romfs
|
|
system: nintendo-3ds
|
|
required: false
|
|
bundled: true
|
|
hle_fallback: true
|
|
description: "bad word list system archive, title 0x000400db00010302"
|
|
note: "Split-off RomFS served in place of the NCCH the title tree resolves to. An open-source replacement is built into the binary."
|
|
source_ref: "src/core/file_sys/ncch_container.cpp:726-741, src/core/file_sys/archive_ncch.cpp:150-157"
|
|
|
|
- name: "00000000.tmd"
|
|
path: nand/00000000000000000000000000000000/title/00040130/00002802/content/00000000.tmd
|
|
system: nintendo-3ds
|
|
required: false
|
|
bundled: true
|
|
hle_fallback: true
|
|
description: "title metadata of the DLP module, title 0x0004013000002802"
|
|
note: "Read to resolve the content ID of index 0, which the shipped metadata gives as 0x1f. Without it the path falls back to content ID 0 and the module is not found."
|
|
source_ref: "src/core/hle/service/am/am.cpp:428-464, src/core/hle/service/am/am.cpp:466-501, src/core/file_sys/title_metadata.cpp:19-34"
|
|
|
|
- name: "0000001f.app"
|
|
path: nand/00000000000000000000000000000000/title/00040130/00002802/content/0000001f.app
|
|
system: nintendo-3ds
|
|
required: false
|
|
bundled: true
|
|
hle_fallback: true
|
|
description: "DLP system module, title 0x0004013000002802"
|
|
note: "Loaded as a process when LLE is enabled for DLP, otherwise the HLE service is installed."
|
|
source_ref: "src/core/hle/service/service.cpp:78, src/core/hle/service/service.cpp:197-213"
|