- When applying a patch, use Hasher-js to verify that you're patching the correct file.
- When creating a patch, use Hasher-js to calculate hashes for the file that
end users should apply the patch to. Distribute these hashes with your patch.
- Hasher-js does not upload your ROM—all the work is done right in your browser.
- The source for Hasher-js is available for
programatically, so it can be incorporated into any other site. It's available as source or as a bundle.
What does it all mean?
Hasher-js gives you a lot of info. The most important things to look at are the
hashes and database matches. Skip ahead if you want to learn more about this "hashing" business.
- A database match is a step in the right direction but it does not necessarily mean you have exactly the right file. Always check the hashes.
If you have the right ROM hash but the wrong file hash, here's what it might mean:
- NES - You're probably fine. Most likely, there is "garbage" in the header (extra data that shouldn't be there), which is
usually harmless. It can be removed using a header cleaner program. It's also possible
that the header contains incorrect data which might cause a problem with certain emulators when using a patched ROM.
- SNES - If your ROM meets the header or file-size requirements of the patch, you're probably fine. If not, there
are tools that can add or remove external headers (such as SNESStuff).
- Genesis - Genesis ROMs typically come in two different formats: SMD and BIN. A tool such as
SBWin can convert between these formats.
- N64 - ROMs may be big-endian, byte-swapped or little-endian. A tool such as
Tool 64 can
convert between these different formats.
What's all this "hashing" business, now?
The filename doesn't tell you everything you need to know. You can run into bad dumps, overdumps, corrupt files, mislabeled files, and more.
Hashing is like a form of fingerprinting for data. Checking the hash of a file helps you determe whether you have exactly
what you're looking for. Hasher-js provides a hash for both the whole file and the raw ROM image
contained inside the file, plus some additional data, to help you figure out whether you have the right thing in the right
Hasher-js includes third-party components js-sha1 and js-md5. See license.txt.