Checklist & how-to

How to Verify a Source File Before Patching

Thirty seconds spent checking your source file saves an hour of guessing why a patch failed. This guide explains checksums in plain terms and gives the exact commands for Windows, macOS and Linux.

  • Updated
  • Checked against Delta Patcher 3.1.6
  • 4 min read

In short

  • A checksum (or hash) is a short fingerprint of a file’s exact contents. Change one byte and the fingerprint changes.
  • Patch authors usually publish the checksum of the original file their patch needs. If yours matches, the patch will apply.
  • Use the same algorithm the author lists: CRC32, MD5, SHA-1 or SHA-256.
  • Windows, macOS and Linux can all calculate these without extra software, except CRC32 on some systems.

What is a checksum?

A checksum is a value calculated from every byte of a file. The same file always gives the same checksum, and even a one-byte difference gives a completely different one. Comparing two checksums is a reliable way to tell whether two files are identical, without comparing them byte by byte.

Common checksum algorithms. Each example is the hash of the sentence “The quick brown fox jumps over the lazy dog”.
AlgorithmLengthExample formatCommonly used for
CRC328 hex characters414fa339ROM databases and patch readmes; quick error detection
MD532 hex characters9e107d9d372bb6826bd81d3542a419d6Older readmes and ROM databases
SHA-140 hex characters2fd4e1c67a2d28fced849ee1bb76e7391b93eb12ROM and disc databases; patch readmes
SHA-25664 hex charactersd7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592Software downloads and modern verification

For checking that a file is the right version, any of these works. CRC32 is weaker against deliberate tampering, but it’s perfectly good at telling two versions of a file apart.

Step 1: Find the expected checksum

Look in these places, in order:

  1. The patch’s README or included text file.
  2. The Patch info tooltip Delta Patcher shows when you load the patch.
  3. The patch’s download page or release notes.

Note the algorithm and the value, plus any file size, region or revision listed. No checksum published? Compare the exact file size in bytes instead. It won’t catch every difference, but it rules out many.

Step 2: Calculate your file’s checksum

Windows

Open PowerShell (right-click the Start button → Terminal), go to the folder with your file, and run:

PowerShell
Get-FileHash ".\Game (USA).iso" -Algorithm SHA1
Get-FileHash ".\Game (USA).iso" -Algorithm SHA256
Get-FileHash ".\Game (USA).iso" -Algorithm MD5

Tip: type Get-FileHash and then drag the file into the window to paste its full path. The older Command Prompt equivalent is certutil -hashfile "Game (USA).iso" SHA1.

CRC32 on Windows: Windows has no built-in CRC32 command. If you use 7-Zip (opens external site), right-click the file and choose 7-ZipCRC SHACRC-32 (or * for all hashes at once).

macOS

Open Terminal, type the command followed by a space, drag the file onto the Terminal window, and press Return:

Terminal
shasum -a 1 "Game (USA).iso"
shasum -a 256 "Game (USA).iso"
md5 "Game (USA).iso"

Linux

Terminal
sha1sum "Game (USA).iso"
sha256sum "Game (USA).iso"
md5sum "Game (USA).iso"

CRC32 on macOS and Linux: the standard cksum command uses a different CRC and won’t match a CRC32 value. With 7-Zip installed (7z or 7zz depending on the package), run 7z h -scrcCRC32 "Game (USA).iso".

In a web browser

Rom Patcher JS (opens external site) shows a file’s CRC32, MD5 and SHA-1 before patching, and works on any system with a browser.

Step 3: Compare the values

  • Compare the whole value, not just the first few characters.
  • Case doesn’t matter: 1A2B3C4D and 1a2b3c4d are the same.
  • Make sure you used the same algorithm as the published value. A SHA-1 will never equal an MD5.

Source file verification checklist

Use this before applying any patch. Tick items as you go.

Bonus: verify the patched result

Some authors also publish the checksum of the patched file. Calculating it after patching confirms the patch applied exactly as intended. If you created the patch yourself, compare the patched output with your modified file the same way. Testing a patch before sharing it.

Keep a record of your originals

If you patch files often, note the name, size and SHA-1 of each untouched original in a text file next to it. Next time a patch lists a checksum, you’ll know immediately whether you have the right file, without recalculating anything.

Continue learning

Sources and references