In short
- Use Delta Patcher (or an online patcher): pick your
.ndsfile, pick the.xdeltapatch, tick Backup original file, apply. - DS hacks favour XDelta because DS ROMs are large and translations insert data rather than overwrite it.
- The number one cause of failure is a trimmed dump: same game, smaller file, different bytes at the end.
- The patched file is an ordinary
.ndsthat any DS emulator or flashcart can load.
Why DS hacks use XDelta
A DS card image is far bigger than a cartridge ROM from earlier systems, and DS translation projects typically rewrite text and graphics archives, which shifts everything after them. Formats that only overwrite bytes at fixed positions cope badly with that; XDelta’s copy instructions handle moved data cheaply, so a patch stays small even when the ROM is hundreds of megabytes. How that works.
You’ll still meet the occasional BPS or IPS patch for DS hacks. Those need a different tool: see patch formats compared.
What you need
Applying an xdelta patch to a .nds file
-
Extract both files
Unzip the patch, and make sure the ROM is a loose
.ndsfile rather than a.zipor.7z. Patchers can’t read inside archives. -
Copy the ROM to a working folder
Keep your verified dump somewhere separate and patch a copy. It makes every later mistake cheap to undo.
-
Select the .nds file as the original
In Delta Patcher, click the folder button next to Original file and choose the ROM, or drag it onto the window.
-
Select the .xdelta patch
Click the folder button next to XDelta patch. If a Patch info tooltip appears, read it: DS translation teams often name the exact dump and its checksum there.
-
Tick Backup original file
Open the gear menu next to Apply patch. With the option on, your dump survives and the result is saved as
gamePATCHED.ndsin the same folder. The setting resets every time the program starts. -
Apply the patch
Click Apply patch and wait for “Patch successfully applied!”. Larger DS images take a few seconds.
-
Rename and test
Rename the output to something meaningful, keeping the
.ndsextension, then load it in your emulator or copy it to your flashcart.
Trimmed vs untrimmed dumps: the DS-specific trap
DS cards contain unused padding at the end. Many dumps in circulation have been trimmed, with that padding removed to save space, and trimming tools are common in DS communities. A trimmed file and an untrimmed file hold the same game but are different sizes, so a patch built against one fails on the other.
| Symptom | What it usually means |
|---|---|
source file too short | Your dump is trimmed (or otherwise smaller) and the patch expects a full-size file |
| “The file you are trying to patch is not the right one” | The bytes don’t match: wrong region, revision or an already patched file |
| The patch works but the game misbehaves | The wrong dump slipped through, often with checksum validation switched off |
How to check which one you have
- Compare the file size in bytes with the size the readme lists. DS ROM sizes are normally clean powers of two (for example 64, 128, 256 or 512 MB); a notably odd size suggests trimming.
- Compare the checksum. Calculate the CRC32, MD5 or SHA-1 of your file and match it against the hack’s readme. How to calculate a checksum on any system.
- If they don’t match, use an untrimmed dump. Most DS patches are built against the full-size file, and re-padding a trimmed ROM is less reliable than starting from a correct dump you made yourself.
Loading the patched .nds file
- Emulators: the patched file is a normal DS ROM. Add it to your emulator’s library the same way as any other game; popular desktop options include melonDS and DeSmuME.
- Flashcarts: copy the patched
.ndsto the card as usual. If you trimmed the original to save space, patch first and trim afterwards, never the other way round. - Phones and tablets: transfer the patched file to the device and import it into your emulator. Patching and playing on Android and iOS.
Keep the .nds extension intact. Emulators use it to pick the right core, and Delta Patcher’s output naming preserves it.
DS patching problems and fixes
| Problem | Likely cause | Fix |
|---|---|---|
| Patch fails immediately | Wrong region or revision of the game | Match the dump the readme names |
source file too short | Trimmed dump | Use an untrimmed dump |
| Patch fails on a second attempt | The first run replaced your original | Start from a clean copy |
| The patch doesn’t appear in the file dialog | Still zipped, or named .vcdiff | Extract it and check the extension |
| Game boots but text is unchanged | You loaded the unpatched file | Check you opened the PATCHED output, not the original |
| Game crashes after patching | Wrong dump accepted with validation off, or an incomplete patch set | Re-patch a verified dump with checksum validation on |
Some DS hacks also mention anti-piracy fixes or a specific patching order. Follow the project’s own instructions; they know their ROM better than any general guide.
Get Delta Patcher for DS patches
Version 3.1.6 is free and open source, with builds for Windows, macOS and Linux. Downloads come straight from the developer’s official GitHub releases.