IPS format

IPS Patcher Guide: Applying .ips Files

IPS is the oldest ROM patch format still in wide use — simple, universal, and supported by nearly every patcher ever made. Its age shows in two limits you must know: patches can’t touch data past 16MB, and there are no checksums, so the tool can’t warn you about a wrong ROM.

  • Updated
  • Checked against Delta Patcher 3.1.6
  • 4 min read
  • Verified against primary sources · how we check

In short

  • Use Floating IPS (Windows, macOS, Linux) — it applies IPS and BPS, verifies what it can, and is actively maintained via community forks.
  • Lunar IPS is the Windows-only classic: IPS only, but dead simple.
  • IPS has no checksums — if you feed it the wrong ROM, it patches happily and produces garbage. Verify the ROM yourself first.
  • IPS can’t modify data past 16MB — big hacks use BPS, UPS or XDelta instead.

What an IPS patch is (and isn’t)

IPS (International Patching System) stores a list of “write these bytes at this position” records. It was designed in the SNES era for small ROMs, and it shows: offsets are 3 bytes wide, so nothing past 16MB (16,777,216 bytes) can be addressed. There is no checksum of the source or the result anywhere in the format.

That simplicity is also its strength: every patcher supports IPS, every tutorial mentions it, and thousands of classic hacks — especially SNES and GBA — are distributed as .ips. For anything larger or safety-critical, creators moved on to BPS, UPS or XDelta.

Picking an IPS patcher

IPS patcher options
ToolPlatformsAlso handlesBest for
Floating IPSWindows, macOS, LinuxBPSEveryone — the default choice
Lunar IPSWindowsIPS onlyQuick jobs on Windows; also creates IPS patches
RomPatcher.jsAny browserUPS, BPS, APS, PPF…Patching without installing anything
UniPatcherAndroidUPS, BPS, XDelta…Patching on a phone

Applying an IPS patch with Floating IPS

  1. Verify your base ROM first

    This is the step IPS can’t do for you. Confirm the exact game and revision the hack’s readme names and compare checksums. How to verify a source file.

  2. Open Floating IPS and choose Apply Patch

    The main window offers Apply Patch and Create Patch. Choose Apply Patch.

  3. Select the .ips file

    Pick the extracted patch. Floating IPS also accepts a patch zipped together with nothing else, but extracting first avoids surprises.

  4. Select the base ROM

    Choose your verified dump. Remember: Floating IPS will not stop you here if it’s the wrong file — that check was step one.

  5. Name the output and apply

    Save under a new filename so the clean dump survives. The patch applies in well under a second for most ROMs.

  6. Test the result

    Load the patched ROM in an emulator. If it behaves oddly, the base ROM was almost certainly wrong — re-verify and re-patch; don’t “fix” the output.

Living with the 16MB limit

If a hack targets a game larger than 16MB — or expands a smaller ROM past that line — IPS physically cannot express the patch, and creators know it. You’ll never legitimately need to force it:

  • If the hack ships as .ips, it fits. Trust the format choice.
  • If you’re creating a patch that won’t fit, switch formats: BPS via beat is the spiritual successor, and XDelta via Delta Patcher handles anything.
  • A “successful” IPS patch on a >16MB ROM that misbehaves usually means the wrong base file, not the limit — IPS fails safe by refusing impossible offsets.

IPS problems and fixes

Common IPS problems
ProblemLikely causeFix
Patch applies but game glitchesWrong base ROM — IPS can’t detect thisRe-verify the dump and re-patch
Nothing changes in-gameYou loaded the unpatched ROMCheck you opened the output file, not the original
Patcher won’t open the fileIt isn’t IPS — check the extensionIdentify the real format
SNES hack fails specificallyHeadered vs unheadered mismatchThe SNES header guide

IPS FAQ

Can IPS patches be undone?

Not from the patch alone — IPS stores no copy of the original bytes it overwrites. Always keep your clean dump; that’s your undo button.

Why do some people call IPS outdated?

Because BPS does everything IPS does plus checksums and larger files. IPS survives on ubiquity: every tool reads it and thousands of classic hacks use it. For new hacks, BPS or XDelta are the better choices.

Floating IPS vs Lunar IPS — which one?

Floating IPS for applying (cross-platform, handles BPS too). Lunar IPS is fine on Windows and can also create IPS patches, but it’s IPS-only and unmaintained.

Creating IPS patches with Lunar IPS

Lunar IPS on Windows both applies and creates IPS patches. To share your own mod: open Lunar IPS, choose Create IPS Patch, select the clean original ROM, then your modified ROM, and save the .ips. Test it yourself by applying it to a fresh copy of the original — if the result matches your modified ROM, the patch is good. Remember the format’s limits: keep the hack under 16MB and consider BPS for anything where checksum safety matters.

IPS beyond the desktop

  • Browser: RomPatcher.js applies IPS with no install — paste the ROM and patch, download the result.
  • Android: UniPatcher handles IPS on-device; useful for GBA and SNES hacks you’ll play in a mobile emulator.
  • Emulator auto-patch: Snes9x, mGBA and VBA-M all auto-apply an IPS that shares the ROM’s filename — handy for testing translations without committing to a patched file.

Verifying an IPS patch before applying

Because IPS has no checksums, a corrupted .ips download fails in confusing ways — the patcher applies garbage and the game glitches. Protect yourself:

  • Check the file size. An IPS patch for a real hack is rarely zero bytes or absurdly large; a 0-byte or truncated download is the most common corruption.
  • Prefer patches with published checksums. Serious projects list the patch file’s own MD5/SHA-1 next to the download — compare before applying.
  • Re-download on any doubt. IPS patches are tiny; a fresh download costs seconds and eliminates an entire class of mystery failures.

Continue learning