We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

IPS patch: Difference between revisions

From SnesLab
Jump to: navigation, search
(Recovered from SMWiki, improvements are welcome.)
(No difference)

Revision as of 00:12, 10 November 2019

An IPS patch is used represent the changes between two files. Often in the ROM hacking community to change the data of a clean ROM to be identical to a hacked ROM. There are other patching formats, most notably UPS, but IPS is the most popular in SMW Central. IPS patches use the file extension .ips.

How

The way an IPS patch works is quite simple, actually. The patching program (such as Lunar IPS) will ask for a clean ROM and a modified ROM. The program will then go through the ROM files and search for data that is different. When it finds data that is different, it makes a note of where this data is located in the ROM and also records the new data. When this is finished, the list of data locations and data are compiled into a single file, which is the patch itself.

Why

Why would someone need to use IPS patches? The answer is, that while it is illegal to distribute a ROM across the Internet, if you only distribute the differences between the clean ROM and a ROM hack, then it isn't illegal (unless the changes include illegal material), as you aren't distributing the game itself. There are other uses for patches, but this is the only one that really concerns ROM hacking.

Note however, that in some cases, an IPS patch may actually include parts of the ROM. For example, if one of the changes is the relocation or copying of a portion of the original ROM to a new location in the ROM, that portion of the ROM will wind up in the patch (because IPS is so simple that it has no copy or move operations). This is the reason that the IPS patch for FuSoYa's hack, Super Demo World: The Legend Continues, must be applied to a SMW ROM already expanded and converted to ExHiROM (parts of the ROM are moved and copied during this operation).

See also