Skip to content
EZ ROM Patcher

ROM headers and zip files

Short answer

A copier header is a small block of metadata added to the front of a ROM by old backup devices: 512 bytes on SNES, 16 bytes on NES. It shifts every byte in the file, so a patch built for a headered ROM will not apply cleanly to an unheadered one. The patcher detects headers and offers to add or remove them.

What is a copier header?

In the cartridge era, backup devices such as the Super Wild Card and Game Doctor wrote a small metadata block at the start of every dump. It records things the copier needed, like the ROM size and mapping mode. The game data begins after it.

That block is not part of the game. But because it sits at the front, it pushes every subsequent byte forward by its own length. A patch that writes to offset 0x8000 in an unheadered ROM needs to write to 0x8200 in a headered one.

SystemExtensionsHeader sizeROM size multiple
SNES copier.sfc, .smc, .swc, .fig512 bytes256 KB
iNES (NES).nes16 bytes1 KB
fwNES (Famicom Disk System).fds16 bytes65500 bytes
Atari Lynx.lnx64 bytes1 KB
Header sizes the patcher recognises

How to tell if your ROM has a header

Check the file size. A clean SNES ROM is a multiple of 32 KB. A headered one is that plus 512 bytes, so a 1,049,088-byte file is a headered 1 MB ROM. The patcher does this arithmetic for you and shows a checkbox when it finds a header.

Should you remove the header or keep it?

It depends on what the patch author used. Most modern SNES patches target unheadered ROMs, since No-Intro, the main preservation database, catalogues them without headers. Older patches from the copier era often expect a header.

The patch itself decides. If the readme does not say, try one way, and if the checksum does not match, try the other. Formats with validation tell you immediately which is right.

Working with zip files

You can hand the patcher a zip in either field and it will look inside. If the archive contains several patches, you get a list to pick from. Where an archive contains both a ROM and a patch, the patcher works out which is which.

Only zip is handled. For .rar and .7z archives, extract them first with a desktop tool.

Frequently asked questions

How do I know if my SNES ROM has a header?

Look at the file size. An unheadered SNES ROM is an exact multiple of 32 KB. A headered one is 512 bytes larger. The patcher checks this automatically and shows a header checkbox when it detects one.

Does removing the header damage the ROM?

No. The header is copier metadata, not game data. Removing it gives you the raw ROM, which is what modern emulators and preservation databases expect anyway. Your original file is not modified either way.

Do GBA and Genesis ROMs have copier headers?

No. The header question applies mainly to SNES, NES, Famicom Disk System and Atari Lynx dumps. GBA, Genesis and N64 ROMs do not carry them, so a failing patch on those systems points to a different cause.

Can I patch a ROM that is inside a zip?

Yes. Select the zip directly. The patcher extracts what it needs without you unpacking anything.

Keep reading

Last reviewed