The Inno Setup XDELTA Patch Maker is a third-party automation utility designed specifically for game repackers, developers, and modders. It automates the generation of differential (delta) updates by comparing an old version of a game folder against a new version, generating an .xdelta binary patch, and compiling a compact installer using Inno Setup.
Using this system allows you to distribute a 50MB update instead of a full 10GB game download, as it only copies and compresses the specific binary differences (bytes) between the files. Core Components of the Process
XDELTA Engine: The underlying command-line tool that calculates binary-level differences between old and new files.
Inno Setup Compiler: The script-driven engine used to package the patch into a user-friendly setup wizard executable (.exe).
Patch Maker GUI: A wrapper tool (often developed by community members on forums like Krinkels) that provides a visual interface so you don’t have to write complex command-line arguments manually. Step-by-Step Workflow: Building a Patch Step 1: Prepare Your Folders
You must maintain two clean, uncompressed directories on your hard drive:
\Old Folder: Contains the exact files of the game version your players currently have installed (e.g., Version 1.0).
\New Folder: Contains the files of your updated game version (e.g., Version 1.1). Step 2: Configure the Patch Maker
Open the Inno Setup XDELTA Patch Maker GUI interface and map your directories: Source/Original Directory: Point this to your \Old folder. Target/Updated Directory: Point this to your \New folder.
Output Directory: Choose where you want the final update installer to be saved. Step 3: Select Patching Configurations
Depending on your tool’s version (e.g., version 2.6.x+), tweak these specialized settings:
Compression Level: Select the algorithm (such as LZMA2 or Zstd) to compress the generated .xdelta files.
Create Launcher: For large patch packages, check this option. It handles files over the standard 1GB/2GB limits by using an external extraction sequence.
File Hashing: Check MD5 or CRC32 verification boxes so the installer can verify the user’s base game files before attempting a patch. Step 4: Generate and Compile Click Generate or Build inside the tool. The utility will compare the directories file-by-file.
Identical files are ignored, brand-new files are copied completely, and modified files generate an .xdelta file.
The tool automatically generates an Inno Setup script (.iss) containing internal logic (often using extraction plugins like FreeArc or ISDone), then compiles it straight into a single Setup_Update.exe file. How the Final Patch Works for the Player
When an end-user runs your completed update installer, it follows a strict logical sequence to prevent file corruption:
[Start Update] │ ▼ Detect Game Folder │ ▼ [MD5/CRC Verification] ──❌ (Mismatched/Modified file) ──► [Aborts / Error Message] │ ✔ (Valid Original File) ▼ Extract .xdelta Patch │ ▼ Reconstruct New Files │ ▼ Replace & Cleanup │ ▼ [Update Complete] Critical Technical Considerations
Keep App ID Identical: Ensure your Inno Setup script retains the identical AppId GUID string used in the main game installer. This allows the update wizard to automatically find the player’s current game path from the registry.
File System Fragmentation: If you modify game archives (like .pak, .rpf, or .assets files), minor content tweaks can cause massive internal byte shifts. Use custom tools to sort asset files sequentially before running XDELTA to ensure your patch file remains small.
The 2GB Execution Limit: Standard Inno Setup single executables hit stability limits near 2GB. If your delta patch exceeds this size, enable the Launcher or disk-spanning layout features inside the patch maker.
If you would like to proceed with setting up a patch, let me know:
What game engine or file structure (e.g., Unity .assets, Unreal .pak) you are patching?
Leave a Reply