Bump - couldn't patch Pokemon Soul Silver/Heart, with Storm Silver or Sacred Gold with the gui in xdelta included in the package "2sg2ss4105" available here gbatemp.net/threads/pok%C3%A9mon-sacred-gold-storm-silver.327567/ (Xdelta GUI program, unfortunately automatically set certain options and can become problematic)
Finally found a Solution
..................................................
ECHO on
xdelta.exe patch "SacredGoldComplete.patch" "Pokemon HeartGold.nds" "1"
PAUSE
...................................................
Using the xdelta file included in the package, i created a notepad .txt file, placed the contents that is between the periods above. Into a new .txt file and changed the file extension to .bat. Then I placed the two files above in there, and Pokemon Heart of Gold came out and it was named "1". ("Gnu Patch" utility did not work for the patch file, using .......... patch.exe -o 1 "file name" "patch name" ............ from a batch file best guess is the .patch file for the release was made from a custom compiled version of xdelta ... thats why its not compatible with all the gui's floating around).
EDIT - Explored a Few Patches for NDS, some English Translation
The patches appear to use either xdelta.exe file size 222KB or xdelta.exe file size 672KB
"saga3eng_beta_2.0.830", Saga 3 English Patch has xdelta.exe file size 222KB
"2sg2ss4105", Pokemon Storm Silver/Sacred Gold , has xdelta.exe file size 672KB
You have to either use one or the other apparently, since they don't work on files produced with each other.
EDIT - If you still have no luck try "xdelta3.exe" found in "Xdelta3 GUI" package, or similar package, use google
...................................................
ECHO on
xdelta3.exe -d -vfs "Nintendo.nds" "Patch.xdelta" "Patched Game.nds"
PAUSE
...................................................
You have to use a different commands for xdelta3 patches, then regular xdelta patches. I went through a whole bunch of nds patches recently. Also using the "-h" or "--h" command will bring up a display for how to use xdelta, sometimes these displays are modified or are not clear. Remember xdelta1 uses different commands then xdelta3, so you can easily find no solution by using either a GUI (graphic interface) or by using just using the command line with a batch file.
Checksums don't Match Error Fix with xdelta3
...................................................
ECHO on
xdelta3.exe -d -n -vfs "Nintendo.nds" "Patch.xdelta" "Patched Game.nds"
PAUSE
...................................................
This is a very common problem, remember xdelta has had several updates. Xdelta may call your file or patch the wrong versions, when in reality they are the correct versions. After the patch is applied the only thing to do is to verify that the rom works on your nds or an emulator, and to also verify that the patched rom is different then the original rom. Use a hex editor to compare the two files. I've managed to find a patch that fit this description "FESD_Gaidens_Patch" - Removes the Level Requirement for characters when progressing through the game, Fire Emblem Shadow Dragon.
I can verify this method works for this patch, which will not work in any gui or normally unless the checksum is ignored. The rom works, and only a specific cluster in the rom file is modified with the patch, the patched rom has the same size, and most of the values in the rom are the same.
All the older patches in the download sections may have this problem, so you should sticky this post. "ppfomatic" is not updated as much, and would be easier to use, but we have to work with what we are given. Also trying to patch a xdelta1 patch with an xdelta1 patch of a different xdelta1 version will likely give you a checksum error. If you can find the right version of xdelta the patch uses then use that one, you normally don't want to avoid the checksum because you may introduce an error or to, but also you may not have the choice, if the version of xdelta was a custom compiled version of the program.
EDIT
This will save you some trouble, check the .rar package. All you need to do is open up a notepad file, and then make sure the names match the files, two versions of xdelta1 are included. You will definitely have a patched rom, but you need to test if it works.