The goal of UPS is different from NINJA / xdelta / etc. It is designed to be a direct replacement for IPS. The difficulty of implementing it is equal to IPS (it has trickier pointers, but no RLE magic.) The spec for UPS supports any file size, though the binary is currently limited to 4GB files due to libc limitations. But thanks to a condensed pointer encoding method, the file size can be infinite. UPS is completely future proof in that regard.
The patcher is now called Tsukuyomi UPS. The name is an adage to one of the most well known and polished IPS patchers around.
Please continue with the following description in romhacking
Here´s tutorial by Joe