ROM patcher errors

I index the messages by the string the engine raises, because a paraphrased error sends you to the wrong fix. Source ROM checksum mismatch means the base file is not the one the patch hashed. Target ROM checksum mismatch means the output is not the file the trailer expected. Patch checksum mismatch means the patch file itself is damaged or truncated. Those three are BPS and UPS doing their job. IPS will not say them, because IPS stores no checksum.

Invalid patch format and unknown patch format mean the bytes do not start with a magic this build recognizes. Renaming a .xdelta to .bps causes that. Invalid patch file is the shorter reject when the container is unreadable. Invalid input ROM checksum is the embed mode that was configured to demand a known CRC. The home embed does not turn that demand on. not implemented: custom code table is a VCDIFF feature this module does not decode. file too big is the tab telling you to move to a desktop tool.

The one message with its own page is not implemented: secondary decompressor. It is an xdelta problem, not a bad ROM. The id in parentheses tells you which compressor was used. This build decodes id 1 and id 2. A different id, or an older build, still raises the line. I link that page from the patcher when the text appears.

Read the message, then the row, then the format page. Do not stack random fixes. A header strip will not repair a secondary compressor, and a new xdelta will not repair a FireRed revision mismatch.

MessageUsual causeWhere to go
Source ROM checksum mismatchWrong region, revision, or headerMatch the readme base
Target ROM checksum mismatchOutput is not the hashed resultCheck you started from a clean dump
Patch checksum mismatchTruncated downloadRe-download the patch
Invalid or unknown patch formatWrong extension or unknown magicTrust the header bytes
Invalid input ROM checksumEmbed demanded a CRCUse a build that does not require it
secondary decompressorxdelta secondary compressorDetail page
custom code tableVCDIFF custom code table not decodedUse desktop xdelta3 or request a patch using the default code table
file too bigImage larger than the tab should holdDelta Patcher or xdelta3
Invalid patch fileUnreadable containerUnzip or re-download
Browser ROM patcher with two file slots and a patch button
Pixel-art CRT showing a blank cartridge, used as a visual marker

Questions

Which message means my ROM is the wrong game?

Source ROM checksum mismatch. Change the base file. Re-downloading the same patch will not help.

The apply finished and the game is broken.

You likely used IPS, which has no checksum. Confirm the base against the readme. A finished button is not a match.

Sources