Nintendo DS

NDS ROM Patcher: Applying XDelta Patches to .nds Files

Nintendo DS translations and hacks are usually distributed as .xdelta patches, and most of the problems people hit come down to one thing: a trimmed dump. This guide takes a .nds file from patch to playable, and explains the DS-specific traps.

  • Updated
  • Checked against Delta Patcher 3.1.6
  • 4 min read
  • Verified against primary sources · how we check

In short

  • Use Delta Patcher (or an online patcher): pick your .nds file, pick the .xdelta patch, 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 .nds that 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

  1. Extract both files

    Unzip the patch, and make sure the ROM is a loose .nds file rather than a .zip or .7z. Patchers can’t read inside archives.

  2. 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.

  3. 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.

  4. 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.

  5. 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.nds in the same folder. The setting resets every time the program starts.

  6. Apply the patch

    Click Apply patch and wait for “Patch successfully applied!”. Larger DS images take a few seconds.

  7. Rename and test

    Rename the output to something meaningful, keeping the .nds extension, 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.

Reading DS patching failures
SymptomWhat it usually means
source file too shortYour 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 misbehavesThe wrong dump slipped through, often with checksum validation switched off

How to check which one you have

  1. 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.
  2. 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.
  3. 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 .nds to 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

Common NDS patching problems
ProblemLikely causeFix
Patch fails immediatelyWrong region or revision of the gameMatch the dump the readme names
source file too shortTrimmed dumpUse an untrimmed dump
Patch fails on a second attemptThe first run replaced your originalStart from a clean copy
The patch doesn’t appear in the file dialogStill zipped, or named .vcdiffExtract it and check the extension
Game boots but text is unchangedYou loaded the unpatched fileCheck you opened the PATCHED output, not the original
Game crashes after patchingWrong dump accepted with validation off, or an incomplete patch setRe-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.

Continue learning