IPS or "International Patching System", is a file format, originally meant to patch ROM images, but can also be used with Disk image files. Patching image files can be done to fix bugs, but can also be used for other things such as cheats, translations or game enhancements. The specification of the IPS format is available.
The advantage of IPS to distributing patched images, is that you do not modify the original, the IPS file is normally very small, and you are unlikely to have copyright issues. A disadvantage to IPS, is that it will only apply if the checksum matches, so you need to have the correct original file. Especially for Disk images this may be problematic, as some games insist on writing to the disk and then the checksum will no longer match.
On the fly patching
The openMSX emulator supports on the fly patching. This way you do not need to keep a patched version of the image around.
For example, to patch a ROM file on the fly in openmsx you would use a command such as this:
openmsx -cart galious.rom -ips galiouspatch.ips
For more information, see the openmsx user manual.
In addition, openMSX can also export patched disk images, using the built-in diskmanipulator command. For more information, see the openmsx diskmanipulator documentation.
Patching tools
- Lunar IPS (LIPS) is an application for Windows. It allows us to apply or make patches.
- IPSEXE is another powerful application for Windows. It allows us to apply or make patches.
- Lipx to create and apply patches, platform-independent, written in Python 3.
- Neill Corlett's UIPS is the best option for those running some Un*x flavor. The source code is available.here, and the Mac OS-X binary is available here.
- IPS Patching Tool is an online patcher. The page is in Japanese but it allows us to apply easily patches on any OS.
- MultiPatch seems to be the only functional application for recent Macs and it can also create patches. (Supports BPS, IPS, UPS, PPF, XDelta, BSDiff and RUP (Ninja2) patching and BPS, IPS, XDelta and BSDiff patches creating)
- IPS4MSX allows to apply our patches directly on MSX-DOS. Tested on MSX Turbo R, it does the job quickly even for megaroms.
- Floating IPS for Windows and Linux, meant as a replacement for Lunar IPS.
- Lazy IPS for Linux written in Python.
- JIPS IPS patcher written in Java.