Co to jest format pliku XCI?
Plik .xci to obraz binarny kartridża z grą na Nintendo Switch, utworzony poprzez zrzucenie zawartości układu eMMC wbudowanego w fizyczny nośnik. Format ten został wprowadzony wraz z premierą konsoli Nintendo Switch w marcu 2017 roku i jest czasem nazywany NX Card Image lub eXternal Cart Image.
Struktura pliku zaczyna się od zaszyfrowanego nagłówka Gamecard w pierwszych 0x200 bajtach, po którym następuje certyfikat kartridża i metadane karty. Pod offsetem 0x10000 znajduje się tablica partycji HFS0 (Hash FileSystem), zawierająca partycje podrzędne o nazwach secure, normal, update oraz logo. Wewnątrz partycji secure pliki Nintendo Content Archive (.nca) przechowują właściwe dane gry - zaszyfrowane pliki wykonywalne w formacie ExeFS oraz zasoby gry w formacie RomFS.
Cała zawartość jest zaszyfrowana algorytmem AES-XTS przy użyciu kluczy pochodnych od kluczy głównych (master keys) specyficznych dla urządzenia. Aby użyć pliku .xci w emulatorze, klucze deszyfrujące (prod.keys) muszą zostać zrzucone z fizycznej konsoli Nintendo Switch. Bez tych kluczy plik nie może zostać odszyfrowany ani uruchomiony.
Rozmiary plików wahają się od 512 MB do 32 GB, co odpowiada pojemnościom chipów w fizycznych kartridżach. Format ten różni się od .nsp (Nintendo Submission Package), używanego dla cyfrowych gier z eShopu. Skompresowany wariant .xcz wykorzystuje kompresję NCZ w celu zmniejszenia rozmiaru pliku bez zmiany jego podstawowej struktury.
Oba główne emulatory Switch, Yuzu i Ryujinx, zostały zamknięte w wyniku działań prawnych Nintendo w 2024 roku. Społecznościowe forki kontynuują rozwój, ale pozostają w niepewności prawnej.
Bezpieczeństwo
RYZYKO: MEDIUMSame pliki XCI nie są złośliwe (to zaszyfrowane dane gier). Jednak strony dystrybuujące zrzuty gier XCI, których użytkownicy nie posiadają, są źródłami piractwa. Ryzyko: pobieranie z nieoficjalnych źródeł może skutkować zainfekowaniem złośliwym oprogramowaniem dołączonym do plików lub podszywającym się pod .xci. Ryzyko prawne posiadania zrzutów gier komercyjnych bez posiadania kartridża jest realne (naruszenie praw autorskich). Ekosystem emulatorów był również celem działań prawnych Nintendo (zamknięcie Yuzu 2024, ugoda Ryujinx 2024). Używaj wyłącznie legalnych, samodzielnie zrzuconych kartridży; używaj narzędzi takich jak Lockpick_RCM lub Hekate na własnej konsoli, aby legalnie zrzucić klucze i gry.
Szczegóły formatu
w pigułce- Plik mapowania czcionek Adobe Reader - Adobe Acrobat/Reader używa rozszerzenia .xci dla plików konfiguracyjnych mapowania czcionek opartych na XML; całkowicie niezwiązane z Nintendo Switch.
- Plik konfiguracji IP Xilinx Vivado - Narzędzia FPGA firm Xilinx/AMD używają .xci do konfiguracji rdzeni IP; niezwiązane ani z Nintendo, ani z Adobe.
Programy otwierające pliki XCI
Szczegóły techniczne
specyfikacja| Typ pliku | Własnościowy binarny zrzut obrazu kartridża z grą |
| Typ MIME | application/octet-stream |
| Kolejność bajtów | little-endian |
| Struktura kontenera | Partycje HFS0 (Hash FileSystem 0): secure, normal, update, logo |
| Szyfrowanie | AES-XTS na sektor; klucze pochodne od kluczy głównych specyficznych dla urządzenia |
| Plik kluczy deszyfrujących | prod.keys - musi zostać zrzucony z fizycznego sprzętu Nintendo Switch; wymagany przez emulatory |
| Magiczne bajty | HEAD (48 45 41 44) pod offsetem 0x0 (zaszyfrowany nagłówek Gamecard) |
| Układ nagłówka | Zaszyfrowany nagłówek Gamecard (0x200 bajtów); certyfikat (0x200 bajtów); główna tablica partycji HFS0 pod offsetem 0x10000 |
| Format wewnętrzny | Pliki NCA (Nintendo Content Archive) zawierające ExeFS (pliki wykonywalne) i RomFS (dane gry) |
| Sprawdzanie integralności | Skróty SHA-256 przechowywane w nagłówkach partycji HFS0 dla każdego wpisu pliku |
| Typowy rozmiar pliku | 512 MB - 32 GB (odpowiada pojemności fizycznego chipa eMMC kartridża) |
| Pojemności chipów kartridży | 1, 2, 4, 8, 16 lub 32 GB eMMC |
| Wariant skompresowany | .xcz - stosuje kompresję NCZ do poszczególnych plików NCA wewnątrz kontenera XCI |
| Wypełnienie (Padding) | Pliki mogą zawierać puste wypełnienie, jeśli dane gry są mniejsze niż pojemność fizycznego chipa |
| Wydano | 2017 (Nintendo Switch launch, March 3, 2017) |
| Najnowsza wersja | current (no version number published; format tied to Switch hardware revision) |
| Specyfikacja | switchbrew.org |