Lunar IPS

From GameBrew

Lunar IPS
Lunarips3.png
General
AuthorFuSoYa
Last Updated2022/02/02
TypeROM Patchers
Version1.03
LicenseMixed
Links
Download
Website

Lunar IPS, also known as LIPS, is intended as an easy to use, lightweight IPS patch utility for Windows to replace DOS program. It can both create and apply IPS patches.

Features

  • IPS patch creation/application support.
  • Full RLE encoding/decoding support.
  • File expanding/truncating support.
  • The IPS encoder creates files that are the same size or smaller than files created with SNESTool.
  • The IPS encoder avoids the rare "0x454F46 (EOF) offset bug" that SNESTool's IPS encoder has.
  • Logging feature for applying IPS patches (ROMFileName.log).
  • Registers the ".IPS" file type so that you can just double click on an IPS file and choose the file to apply it to for convenience.
  • Support for patching files up to 16 MB in size, which is the limit of the IPS format. The files can technically be larger than that, but the IPS format cannot record changes beyond the 16 MB mark due to 24-bit addressing. The IPS file itself can be any size.

User guide

Patching

When applying a patch, you can right click on the title bar of the file choosing dialog for the file to be patched to get a few options for dealing with SNES copier headers.

  • Add SNES Header - Add a 0x200 byte copier header to the file before patching if it doesn't already have one.
  • Remove SNES Header - Remove the copier header from the file before patching if it has one.
  • Add/Remove SNES Header - Add a header if it doesn't have one, or remove the header if it already has one.
    • This option is useful in cases where you've already tried patching without caring about the header and found it didn't work.
    • In which case you can just use this option on a fresh copy of the file without having to figure out if you need to add or remove a header.

Creating a patch

When creating a patch, you can right click on the title bar of the original or modified file choosing dialogs to get options for dealing with SNES copier headers.

  • Add SNES Header - Add a 0x200 byte copier header to both files before creating the patch if they don't already have one.
  • Remove SNES Header - Remove the copier header from both files before creating the patch if they don't already have one.

Note that the logging and file registration options are saved to the registry.

Command line

You can also use the program from the command line. The commands available are:

"Lunar IPS.exe" -CreateIPS "PatchFileName" "OriginalFileName" "ModifiedFileName" [Options]
"Lunar IPS.exe" -ApplyIPS "PatchFileName" "ApplyToFileName" [Options]

Arguments with [] are optional. The options available are:

  • AddSNESHeader
    • Adds 0x200 byte SNES copier header to the file to be patched before patching, but only if it doesn't already have one.
    • For creating a patch, adds SNES copier headers to both original and modified files before creating the patch, but only if they don't already have one.
  • RemoveSNESHeader
    • Similar to -AddSNESHeader except it removes the SNES copier header from the files, but only if they already have one.

Changelog

V1.03 2022/02/02

  • Added "-CreateIPS" and "-ApplyIPS" command line functions.
  • Added per-monitor V2 DPI awareness for Windows 10 Creators Update (1703) and above.
  • Added 64 bit build of the program, which you can find in the x64 folder.
  • Added support for unicode filenames/paths when running on a unicode OS.

V1.02 2010/06/03

  • Added an option to disable registering the .ips file type.
  • Updated the program to stop always using the Win95 default font and make it high-DPI aware. Should improve readability on LCDs with ClearType.

V1.01 2007/04/19

  • Fixed file association for Windows Vista, which should also fix it for non-administrator accounts on Win2k and up.
  • Very minor tweak to the IPS creation code to shave off a couple bytes

V1.00 2003/02/14

  • First Release.

External links