XboxToolkit 1.3.3

dotnet add package XboxToolkit --version 1.3.3
                    
NuGet\Install-Package XboxToolkit -Version 1.3.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="XboxToolkit" Version="1.3.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="XboxToolkit" Version="1.3.3" />
                    
Directory.Packages.props
<PackageReference Include="XboxToolkit" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add XboxToolkit --version 1.3.3
                    
#r "nuget: XboxToolkit, 1.3.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package XboxToolkit@1.3.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=XboxToolkit&version=1.3.3
                    
Install as a Cake Addin
#tool nuget:?package=XboxToolkit&version=1.3.3
                    
Install as a Cake Tool

XboxToolkit

A comprehensive .NET library for working with Xbox 360 and Xbox Original game containers, executables, and metadata.

Overview

XboxToolkit provides a complete set of tools for reading, extracting, and creating Xbox game container formats. The library supports multiple container types, XEX file processing, and marketplace metadata integration.

Features

Container Support

  • ISO Containers: Read Xbox Original and Xbox 360 ISO files
  • CCI Containers: Read and decode compressed container images (LZ4 compressed)
  • GOD Containers: Read Game on Demand (GOD) container formats
  • Multi-slice Support: Automatic handling of split container files

XEX File Processing

  • Extract metadata from XEX executables
  • Decrypt retail and devkit XEX files
  • Decompress compressed XEX data
  • Extract game information (Title ID, Media ID, version, regions)
  • Extract thumbnails and localized strings
  • Parse XDBF (Xbox Data Base Format) structures
  • Extract XSRC (Xbox Source) XML data

Container Building

  • Create ISO files from folder structures
  • Support for both Xbox Original and Xbox 360 ISO formats
  • Progress reporting for long operations

Marketplace Integration

  • Fetch game metadata from Xbox Marketplace
  • Download game images and thumbnails
  • Parse marketplace XML data

Image Processing & Texture Conversion

  • XPR Texture Support: Convert Xbox texture files (XPR) to JPEG format
  • DDS Support: Convert DirectDraw Surface (DDS) files to PNG format
  • DXT Compression: Support for DXT1, DXT3, and DXT5 texture compression formats
  • Automatic Format Detection: Automatically detects and converts various image formats

Xbox Original (XBE) Support

  • Extract and replace images from XBE executables (logo, title, save images)
  • Extract certificate information from XBE files
  • Replace certificate information in XBE files
  • Modify XBE title images

BIOS Logo Processing

  • Decode Xbox BIOS boot logos to PNG format
  • Encode PNG images to Xbox BIOS logo format
  • Support for custom boot logo creation

Additional Features

  • XGD (Xbox Game Disc) information extraction
  • Sector-level decoding and reading
  • Cross-platform native library support (Windows, Linux, macOS)

Installation

NuGet Package

Install-Package XboxToolkit

The package includes native libraries for Windows (x64), Linux (x64), and macOS.

Requirements

  • .NET 6.0 or higher
  • Native libraries are included in the NuGet package

Usage Examples

Reading an ISO Container

using XboxToolkit;

// Auto-detect container type
if (ContainerUtility.TryAutoDetectContainerType("game.iso", out var containerReader))
{
    if (containerReader.TryMount())
    {
        // Extract files from container
        ContainerUtility.ExtractFilesFromContainer(containerReader, "output_folder");
        
        containerReader.Dismount();
        containerReader.Dispose();
    }
}

Reading a CCI Container

var cciReader = new CCIContainerReader("game.cci");
if (cciReader.TryMount())
{
    var decoder = cciReader.GetDecoder();
    // Use decoder to read sectors...
    cciReader.Dismount();
    cciReader.Dispose();
}

Extracting XEX Metadata

byte[] xexData = File.ReadAllBytes("default.xex");
if (XexUtility.TryExtractXexMetaData(xexData, out var metaData))
{
    Console.WriteLine($"Title: {metaData.TitleName}");
    Console.WriteLine($"Title ID: {metaData.TitleId:X8}");
    Console.WriteLine($"Publisher: {metaData.Publisher}");
    Console.WriteLine($"Developer: {metaData.Developer}");
    Console.WriteLine($"Version: {metaData.Version}");
}

Creating an ISO from Folder

// Create Xbox 360 ISO
ContainerUtility.ConvertFolderToISO(
    "input_folder",
    ISOFormat.Xbox360,
    "output.iso",
    splitPoint: 0,
    progress: (percent) => Console.WriteLine($"Progress: {percent:P}")
);

Fetching Marketplace Metadata

uint titleId = 0x41560817; // Example Title ID
string marketplaceUrl = MarketplaceUtility.GetMarketPlaceUrl(titleId);
// Use the URL to fetch additional metadata

Converting XPR Textures

byte[] xprData = File.ReadAllBytes("texture.xpr");
if (XprUtility.ConvertXprToJpeg(xprData, out var jpegData))
{
    File.WriteAllBytes("texture.jpg", jpegData);
}

Converting DDS Files

byte[] ddsData = File.ReadAllBytes("texture.dds");
if (XprUtility.ConvertDdsToPng(ddsData, out var pngData))
{
    File.WriteAllBytes("texture.png", pngData);
}

Working with XBE Files

byte[] xbeData = File.ReadAllBytes("default.xbe");

// Extract certificate information
if (XbeUtility.TryGetXbeCert(xbeData, out var cert))
{
    Console.WriteLine($"Title: {cert.TitleName}");
    Console.WriteLine($"Title ID: {cert.TitleId:X8}");
}

// Extract title image
if (XbeUtility.TryGetXbeImage(xbeData, XbeUtility.ImageType.TitleImage, out var imageData))
{
    File.WriteAllBytes("title_image.png", imageData);
}

// Replace title image
byte[] newImage = File.ReadAllBytes("new_title.png");
XbeUtility.TryReplaceXbeTitleImage(xbeData, newImage);

Processing BIOS Logos

var biosLogo = new BiosLogoUtility();

// Decode BIOS logo to PNG
byte[] logoData = File.ReadAllBytes("bios_logo.bin");
biosLogo.DecodeLogoImage(logoData, out var pngData);
File.WriteAllBytes("bios_logo.png", pngData);

// Encode PNG to BIOS logo format
byte[] pngImage = File.ReadAllBytes("custom_logo.png");
biosLogo.EncodeLogoImage(pngImage, width: 100, height: 17, out var encodedLogo);
File.WriteAllBytes("custom_bios_logo.bin", encodedLogo);

Supported Formats

Container Formats

  • ISO: Xbox Original and Xbox 360 disc images
  • CCI: Compressed Container Image (LZ4 compressed)
  • GOD: Game on Demand container format

Executable Formats

  • XEX: Xbox 360 executable format
  • XBE: Xbox Original executable format

Image & Texture Formats

  • XPR: Xbox texture format (converts to JPEG)
  • DDS: DirectDraw Surface format (converts to PNG)
  • DXT1/DXT3/DXT5: Compressed texture formats
  • PNG/JPEG: Standard image formats for output

Data Formats

  • XDBF: Xbox Data Base Format
  • XSRC: Xbox Source XML format
  • BIOS Logo: Xbox BIOS boot logo format

Project Structure

The main library is located in the XboxToolkit directory. This project focuses on the core library functionality and does not include test projects.

License

This project is licensed under the GPL-3.0-only License.

Authors

  • EqUiNoX - Team Resurgent

Repository

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Acknowledgments

This library uses the following dependencies:

  • K4os.Compression.LZ4 (v1.3.8) - LZ4 compression support
  • LibDeflate.NET (v1.19.0) - GZIP decompression support
  • SixLabors.ImageSharp (v3.1.12) - Image processing and format conversion
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.3.3 182 12/23/2025
1.3.2 131 12/21/2025
1.3.1 166 12/20/2025
1.3.0 232 12/19/2025
1.2.0 183 12/19/2025
1.1.0 189 12/19/2025