Che cos'è il formato di file XNB?
.xnb è un file binario compilato che memorizza una singola risorsa di gioco prodotta dalla Content Pipeline di XNA Game Studio. .xnb è un formato binario e può contenere immagini, dati audio, modelli 3D, font e molte altre risorse. Le risorse sorgente come le texture .png o i clip audio .wav vengono compilate al momento della build in file .xnb ottimizzati per la piattaforma che il gioco carica a runtime tramite Content.Load<T>().
Ogni file .xnb si apre con il tag ASCII XNB, seguito da un byte per la piattaforma di destinazione (w per Windows, x for Xbox 360, m per Windows Phone) e un byte per la versione del formato. Un flag opzionale per la compressione LZX o LZ4 è codificato nello stesso header.
XNA è un insieme di strumenti di sviluppo per la creazione di giochi per i sistemi Microsoft Windows, Windows Phone e Xbox. L'ambiente di sviluppo XNA era basato su Visual Studio Express ed era disponibile gratuitamente, offrendo un ricco set di strumenti e funzionalità per gli sviluppatori di giochi. Microsoft ha interrotto XNA con la versione 4.0 nel 2010, terminando il supporto intorno al 2014. I framework open source MonoGame e FNA continuano a leggere e scrivere lo stesso formato .xnb, mantenendolo rilevante per titoli come *Terraria*, *Stardew Valley* e *Celeste*, che distribuiscono la loro grafica e il loro audio come file .xnb.
Strumenti di terze parti, tra cui xnbcli e XnbExtract, possono decomprimere il contenuto .xnb riportandolo in risorse sorgente modificabili. I file relativi ai banchi audio XNA utilizzano le estensioni .xsb e .xwb.
Sicurezza e incolumità
RISCHIO: LOWUn file XNB è un dato di gioco compilato inerte - una texture, un suono o una tabella dati - senza contenuti eseguibili o script, quindi aprirne o estrarne uno non è pericoloso di per sé. Due precauzioni pratiche: l'estrazione o la ridistribuzione delle risorse di un gioco è regolata dal copyright/EULA di quel gioco (va bene per le mod personali, non per la ridistribuzione), e dovresti scaricare gli strumenti XNB dai loro repository ufficiali (GitHub) piuttosto che da siti casuali di «apertura xnb», che sono spesso trappole per pubblicità o programmi potenzialmente indesiderati poiché non esiste un visualizzatore autonomo legittimo.
Dettagli del formato
in sintesiProgrammi che aprono file XNB
Dettagli tecnici
specifiche approfondite| Codifica del file | Binario, ordine dei byte little-endian |
| Magic bytes | 0x58 0x4E 0x42 (ASCII «XNB») all'offset 0 |
| Layout dell'header | Tag ASCII di 3 byte «XNB» + codice piattaforma di 1 byte + versione formato di 1 byte + flag di 1 byte + dimensione totale del file di 4 byte (uint32 little-endian) |
| Codici piattaforma | «w» (0x77) = Windows, «x» (0x78) = Xbox 360, «m» (0x6D) = Windows Phone/Mobile - codificato nel byte 3 di ogni header |
| Versione del formato | Versioni 1-5; la versione 5 corrisponde a XNA Game Studio 4.0 ed è la versione utilizzata da MonoGame e FNA |
| Compressione | Opzionale - LZX (XNA 4.0) o LZ4 (alcune build di MonoGame); segnalata da un bit nei flag dell'header; il payload è spesso memorizzato non compresso |
| Tipi di contenuto supportati | Texture (DXT1/DXT3/DXT5/Color RGBA), audio (PCM/ADPCM), modelli 3D, font bitmap, shader di effetti compilati, sprite sheet |
| Manifesto del lettore di tipi | L'header incorpora un elenco serializzato di nomi di classi ContentTypeReader che il runtime utilizza per deserializzare il grafo degli oggetti della risorsa |
| Risorse per file | Una risorsa primaria per ogni file .xnb; le sottorisorse condivise sono annidate all'interno dello stesso grafo di oggetti serializzati del file |
| Formati di superficie delle texture | Color (RGBA a 32 bit), DXT1 (compresso a blocchi 4:1 opaco), DXT3, DXT5 - formati nativi della GPU che riducono l'ingombro della VRAM al momento del caricamento |
| Dimensione tipica del file | Pochi KB per piccoli font o sprite; fino a decine di MB per texture ad alta risoluzione o tracce audio non compresse |
| Controllo di integrità | Dimensione totale del file memorizzata come campo little-endian a 4 byte nell'header per la validazione di base; non è incluso alcun checksum crittografico o hash |
| Crittografia | Non crittografato - le risorse compilate sono memorizzate come dati binari semplici leggibili da qualsiasi implementazione che fornisca il corretto ContentTypeReader |
| Tipo MIME | application/octet-stream (nessun tipo MIME dedicato registrato per .xnb) |
| Ruolo nella Content Pipeline | Output runtime della Content Pipeline di XNA/MonoGame - i file sorgente (.png, .wav, .fbx, .spritefont) vengono compilati al momento della build in .xnb e caricati a runtime tramite Content.Load<T>() |
| Utilizzatori principali | MonoGame e FNA (successori open source di XNA); utilizzato per distribuire risorse in Terraria, Stardew Valley, Bastion, Fez e Celeste |
| Rilasciato | 2006 (XNA Game Studio Express / XNA Framework 1.0) |
| Ultima versione | XNB format 5 (XNA Game Studio 4.0, 2010); same format reused by MonoGame/FNA |
| Specifica | en.wikipedia.org |
Conversioni XNB
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file XNB.