"difference patching" is my word for the method used by patch makers that take only the differences in two files, and apply them to a patch file. RTPatch is an example of a program that does this.
I've been trying to create one myself, but I'm stuck on the logic. The only way I can think of to do it is to compare the bits in both of the files, and if oldfile[x] != newfile[x] then save the offset and value of newfile[x] to the patch file.
I don't think that's the way it should be done, because nearly all the bits will be different, and you'll end up with a larger patch file than it would be with any other patch program.
Maybe I just need a fresh perspective on it, but I can't think of a more efficient way of doing it. Can anyone help?