ROM headers and zip files
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.
| System | Extensions | Header size | ROM size multiple |
|---|---|---|---|
| SNES copier | .sfc, .smc, .swc, .fig | 512 bytes | 256 KB |
| iNES (NES) | .nes | 16 bytes | 1 KB |
| fwNES (Famicom Disk System) | .fds | 16 bytes | 65500 bytes |
| Atari Lynx | .lnx | 64 bytes | 1 KB |
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.