Patch a ROM in three steps
- Open the patcher and choose your own base ROM. Match the region, revision and hash in the patch author's instructions.
- Choose the author's patch file. Extract an archive first if it contains several patches or a readme.
- Press Apply patch and save the new file. Keep the original base so you can apply a different patch later.
What you are running
The button opens a same-origin copy of Rom Patcher JS. You pick a base file and a patch. The page prints CRC32, MD5, and SHA-1, then writes a download. IPS, BPS, UPS, APS, RUP, PPF, EBP, BSDIFF, Paper Mario Star Rod mods, and xdelta are the formats the modules implement. xdelta is apply-only. BPS and UPS refuse a base whose checksum does not match. IPS does not, so a finished IPS apply is not proof the dump was right.
I pinned commit 4f17297 from 21 Oct 2026 because that change adds LZMA secondary decoding for xdelta. GitHub's newest tag is still v3.2.1 from 4 Nov 2025. Marc Robledo's hosted page was labeled v3.5 when I checked it on 7 Nov 2026. Those are three different labels and I am not merging them. The license is MIT. The credit under the tool stays his.
If the hash matches a base I have written down, the tool says so. FireRed 1.0 is SHA-1 41cb23d8dccc8ebd7c649cd8fbb58eeace6e2fdc, FireRed 1.1 is dd5945db9b930750cb39d00c84da8571feebf417, Emerald US is f3ae088181bf583e55daf962a92bb46f4f1d07b7, and Mario 64 US is 9bef1128717f958171a4afac3ed78ee2bb4e86ce. I copied those from the pret and n64decomp repositories. Other hashes stay blank.
Guides from here: how to patch, formats, errors, Pokémon bases, consoles, tools, safety.