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.