Downloaded the linux CLI version. Your command didn't seem to work. xdelta help gives me:
xdelta: usage: xdelta COMMAND [OPTIONS] [ARG1 ...]
xdelta: COMMAND is one of:
xdelta: delta Produce a delta from ARG1 to ARG2 producing ARG3
xdelta: info List details about delta ARG1
xdelta: patch Apply patch ARG1 using file ARG2 producing ARG3
xdelta: OPTIONS are:
xdelta: -v, --version Print version information
xdelta: -V, --verbose Print verbose error messages
xdelta: -h, --help Print this summary
xdelta: -n, --noverify Disable automatic MD5 verification
xdelta: -p, --pristine Disable automatic GZIP decompression
xdelta: -m, --maxmem=SIZE Set the buffer size limit, e.g. 640K, 16M
xdelta: -[0-9] ZLIB compress level: 0=none, 1=fast, 6=default, 9=best
xdelta: -s=BLOCK_SIZE Sets block size (power of 2), minimum match length
xdelta: In-core memory requirement is (FROM_LEN * 8) / BLOCK_SIZE
So I tried this:
cd Desktop
xdelta patch New Super Mario Bros. 3.xdelta [psy-nsmb.nds [nsmbpatched.nds]]
I get this response: xdelta: usage: xdelta patch patchfile [fromfile [tofile]]
So I tried putting .nds on the end of the file I'm creating but I got the same message. Tried renaming the patch to patch.xdelta
that gave me this:
xdelta: patch.xdelta: bad magic number: not a valid delta
EDIT: Tried patch --help, gave me this:
Usage: patch [OPTION]... [ORIGFILE [PATCHFILE]]
Input options:
-p NUM --strip=NUM Strip NUM leading components from file names.
-F LINES --fuzz LINES Set the fuzz factor to LINES for inexact matching.
-l --ignore-whitespace Ignore white space changes between patch and input.
-c --context Interpret the patch as a context difference.
-e --ed Interpret the patch as an ed script.
-n --normal Interpret the patch as a normal difference.
-u --unified Interpret the patch as a unified difference.
-N --forward Ignore patches that appear to be reversed or already applied.
-R --reverse Assume patches were created with old and new files swapped.
-i PATCHFILE --input=PATCHFILE Read patch from PATCHFILE instead of stdin.
Output options:
-o FILE --output=FILE Output patched files to FILE.
-r FILE --reject-file=FILE Output rejects to FILE.
-D NAME --ifdef=NAME Make merged if-then-else output using NAME.
-m --merge Merge using conflict markers instead of creating reject files.
-E --remove-empty-files Remove output files that are empty after patching.
-Z --set-utc Set times of patched files, assuming diff uses UTC (GMT).
-T --set-time Likewise, assuming local time.
--quoting-style=WORD output file names using quoting style WORD.
Valid WORDs are: literal, shell, shell-always, c, escape.
Default is taken from QUOTING_STYLE env variable, or 'shell' if unset.
Backup and version control options:
-b --backup Back up the original contents of each file.
--backup-if-mismatch Back up if the patch does not match exactly.
--no-backup-if-mismatch Back up mismatches only if otherwise requested.
-V STYLE --version-control=STYLE Use STYLE version control.
STYLE is either 'simple', 'numbered', or 'existing'.
-B PREFIX --prefix=PREFIX Prepend PREFIX to backup file names.
-Y PREFIX --basename-prefix=PREFIX Prepend PREFIX to backup file basenames.
-z SUFFIX --suffix=SUFFIX Append SUFFIX to backup file names.
-g NUM --get=NUM Get files from RCS etc. if positive; ask if negative.
Miscellaneous options:
-t --batch Ask no questions; skip bad-Prereq patches; assume reversed.
-f --force Like -t, but ignore bad-Prereq patches, and assume unreversed.
-s --quiet --silent Work silently unless an error occurs.
--verbose Output extra information about the work being done.
--dry-run Do not actually change any files; just print what would happen.
--posix Conform to the POSIX standard.
-d DIR --directory=DIR Change the working directory to DIR first.
--reject-format=FORMAT Create 'context' or 'unified' rejects.
--binary Read and write data in binary mode.
-v --version Output version info.
--help Output this help.