Super Nintendo

SNES ROM Patcher: The Headered vs Unheadered Guide

SNES patching has one famous trap that no other system shares: half the ROMs in circulation carry a 512-byte copier header and half don’t, and a patch built for one kind fails on the other. Get the header question right and SNES patching is easy.

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

In short

  • SNES ROMs come in two flavours: headered (512 extra bytes at the start, often .smc) and unheadered (often .sfc).
  • A patch built for one flavour fails on the other — this is the number one SNES patching failure.
  • Check the hack’s readme for which flavour it wants; when in doubt, try the other flavour before anything else.
  • Snes9x auto-applies an IPS with the same filename as the ROM — handy for quick tests.

The 512-byte header, explained

In the 1990s, cartridge copiers added a 512-byte header to the front of every SNES ROM dump so the copier hardware could identify the game. Decades later, roughly half the dumps in circulation still carry that header (commonly named .smc) and half have had it stripped (commonly named .sfc — though the extension is only a convention, not a guarantee).

A patch records byte positions. Shift every position by 512 bytes and nothing lines up, so:

Header matching
SituationResult
Headered patch + headered ROMWorks
Unheadered patch + unheadered ROMWorks
Headered patch + unheadered ROM (or vice versa)Fails — usually immediately, sometimes with garbage output

Which flavour does your patch want?

  1. Read the hack’s readme. Good projects state “headered” or “unheadered” (sometimes “SMC” vs “SFC”) explicitly.
  2. Compare checksums against the readme’s expected values — but note the checksum is of a specific flavour, so a mismatch can mean the wrong flavour rather than a bad dump. How to calculate checksums.
  3. Convert if needed. Adding or removing a 512-byte header is a one-click operation in tools like NSRT or in most ROM managers; it doesn’t alter the game data itself.
  4. Re-patch after converting. Always convert first, then apply the patch to the converted file.

Applying the patch

SNES hacks come as IPS (classics), BPS (modern, checksum-safe) and occasionally XDelta. Match the tool to the extension:

  1. Pick the patcher for the format

    IPS or BPS → Floating IPS. XDelta → Delta Patcher via the standard method. Format guides: IPS, BPS.

  2. Prepare the correctly-headered ROM

    Use a verified dump in the flavour the patch expects. Patch a copy, not your only dump.

  3. Apply and name the output

    Floating IPS: Apply Patch → patch → ROM → save the result. Keep .smc/.sfc consistent with what your emulator expects.

  4. Test in Snes9x

    Snes9x is the reference emulator for patched SNES ROMs. Bonus: drop an IPS next to a ROM with the same filename and Snes9x applies it automatically on load — perfect for testing without committing to a patched file.

SNES patching problems and fixes

Common SNES patching problems
ProblemLikely causeFix
Patch fails immediatelyHeader mismatchMatch the flavour the patch wants
Patched game glitches or crashesIPS applied to the wrong flavour (IPS can’t detect it)Re-patch the correct flavour from a clean dump
Snes9x won’t auto-patchFilenames don’t match exactly, or it’s a BPS/XDelta patchRename to match, or patch manually — auto-patch is IPS-only
Checksum mismatch on verifyYou checksummed the wrong flavourCompare against the readme’s value for your flavour

SNES patching FAQ

How do I add or remove a SNES header?

Use NSRT, a ROM manager, or Floating IPS-adjacent utilities — adding or stripping the 512-byte SMC header is a standard one-click operation. Convert first, then patch the converted file.

Does the header affect gameplay?

No. Emulators ignore the copier header entirely; it exists only for old copier hardware. It matters solely because patches count bytes from the start of the file.

My hack only says “no header”. What does that mean?

It wants an unheadered ROM (often distributed as .sfc). If your dump is headered, strip the 512 bytes and patch the result.

Special chips and MSU-1 hacks

Some SNES hacks target games with enhancement chips (Super FX, SA-1, DSP) or the MSU-1 homebrew audio standard. Patching works exactly the same — the patch format doesn’t care what chip the game uses — but playing the result needs an emulator or flashcart that supports the chip:

  • Snes9x supports the common enhancement chips out of the box.
  • MSU-1 hacks need the patched ROM plus the accompanying audio/data files in the same folder, exactly as the readme describes; the patch only covers the ROM itself.
  • On original hardware, you’ll need a flashcart with chip support (e.g. SD2SNES/FXPpak for the demanding ones).

Creating your own IPS patch

If you’ve modified a ROM and want to share the changes, Lunar IPS on Windows creates IPS patches in a few clicks: open Lunar IPS, choose Create IPS Patch, select the original (clean) ROM, then your modified ROM, and save the .ips. Distribute the patch, never the ROM — the patch contains only your changes. For anything over 16MB or where you want checksum safety, create a BPS or XDelta patch instead.

Fan translations of Japanese exclusives

A large share of SNES patches are English translations of Japan-only games. The flow is identical to any IPS/BPS patch, with one extra check: translations are usually built against a specific regional dump, and header expectations vary by translation team. The readme’s stated base ROM (including header flavour) is law — a translation that expects an unheadered Japanese ROM will fail on a headered one exactly like any other mismatch.

Get Delta Patcher for XDelta-based SNES hacks

Version 3.1.6 is free and open source, with builds for Windows, macOS and Linux. Downloads come straight from the developer’s official GitHub releases.

Continue learning