Che cos'è il formato di file XCI?
Un file .xci è un'immagine binaria di una cartuccia di gioco per Nintendo Switch, creata eseguendo il dump del chip eMMC integrato in una cartuccia fisica. Il formato è stato introdotto insieme al lancio della console Nintendo Switch nel marzo 2017 ed è talvolta chiamato NX Card Image o eXternal Cart Image.
La struttura del file inizia con un'intestazione Gamecard crittografata nei primi 0x200 byte, seguita da un certificato della cartuccia e dai metadati della scheda. All'offset 0x10000, una tabella delle partizioni HFS0 (Hash FileSystem) contiene sottopartizioni denominate secure, normal, update e logo. All'interno della partizione secure, i file Nintendo Content Archive (.nca) contengono i dati effettivi del gioco: eseguibili crittografati in formato ExeFS e asset di gioco in formato RomFS.
Tutti i contenuti sono crittografati con AES-XTS utilizzando chiavi derivate dalle chiavi master specifiche del dispositivo. Per utilizzare un file .xci con un emulatore, le chiavi di decrittazione (prod.keys) devono essere estratte da una console fisica Nintendo Switch. Senza queste chiavi, il file non può essere decifrato o avviato.
Le dimensioni dei file variano da 512 MB a 32 GB, corrispondendo alle capacità dei chip delle cartucce fisiche. Il formato è distinto da .nsp (Nintendo Submission Package), utilizzato per i giochi digitali dell'eShop. La variante compressa .xcz applica la compressione NCZ per ridurre le dimensioni del file senza alterare la struttura principale.
Entrambi i principali emulatori Switch, Yuzu e Ryujinx, sono stati chiusi a seguito di azioni legali di Nintendo nel 2024. I fork della comunità continuano lo sviluppo ma rimangono in un'incertezza legale.
Sicurezza e incolumità
RISCHIO: MEDIUMI file XCI di per sé non sono dannosi (dati di gioco crittografati). Tuttavia, i siti che distribuiscono dump di giochi XCI per titoli che gli utenti non possiedono sono fonti di pirateria. Rischio: il download da fonti non ufficiali può trasmettere malware incorporato o camuffato da file .xci. Il rischio legale di possedere dump di giochi commerciali senza possedere la cartuccia è reale (violazione del copyright). L'ecosistema degli emulatori è stato anche bersaglio di azioni legali di Nintendo (chiusura di Yuzu nel 2024, accordo Ryujinx nel 2024). Utilizzare solo cartucce legali di cui si è eseguito il dump personalmente; utilizzare strumenti basati su Lockpick_RCM o Hekate su una console di proprietà fisica per estrarre chiavi/giochi legalmente.
Dettagli del formato
in sintesi- Adobe Reader Font Mapping File - Adobe Acrobat/Reader utilizza .xci per i file di configurazione della mappatura dei font basati su XML; del tutto estraneo a Nintendo Switch.
- Xilinx Vivado IP Configuration File - Gli strumenti FPGA Xilinx/AMD utilizzano .xci per la configurazione del core IP; non correlato né a Nintendo né ad Adobe.
Programmi che aprono file XCI
Dettagli tecnici
specifiche approfondite| Tipo di file | Dump proprietario dell'immagine binaria della cartuccia di gioco |
| Tipo MIME | application/octet-stream |
| Ordine dei byte | little-endian |
| Struttura del contenitore | Partizioni HFS0 (Hash FileSystem 0): secure, normal, update, logo |
| Crittografia | AES-XTS per settore; chiavi derivate da chiavi master specifiche del dispositivo |
| File chiave di decrittazione | prod.keys - deve essere estratto dall'hardware fisico di Nintendo Switch; richiesto dagli emulatori |
| Magic bytes | HEAD (48 45 41 44) all'offset 0x0 (intestazione Gamecard crittografata) |
| Layout intestazione | Intestazione Gamecard crittografata da 0x200 byte; certificato da 0x200 byte; tabella delle partizioni root HFS0 all'offset 0x10000 |
| Formato interno | File NCA (Nintendo Content Archive) contenenti ExeFS (eseguibile) e RomFS (dati di gioco) |
| Controllo integrità | Hash SHA-256 memorizzati nelle intestazioni delle partizioni HFS0 per ogni voce di file |
| Dimensione tipica del file | 512 MB - 32 GB (corrisponde alla capacità del chip eMMC della cartuccia fisica) |
| Capacità chip cartuccia | 1, 2, 4, 8, 16, o 32 GB eMMC |
| Variante compressa | .xcz - applica la compressione NCZ ai singoli file NCA all'interno del contenitore XCI |
| Padding | I file possono contenere padding vuoto se i dati del gioco sono inferiori alla capacità del chip fisico |
| Rilasciato | 2017 (Nintendo Switch launch, March 3, 2017) |
| Ultima versione | current (no version number published; format tied to Switch hardware revision) |
| Specifica | switchbrew.org |