How to apply ROM patches
This article is work in progress. Feedback is welcome.
It's common when distributing new game enhancements, ROM hacks and specific features people end up releasing in patch format instead of uploading the modified ROM image to the public. The reason for that is because patches only contain the changes made to the ROM, making them smaller to distribute specially on big ROMs present on newer consoles like Playstation 1, Nintendo 64 and newer. But the main reason for using and distributing patches is because since they only include the changes made to the ROM, it will not contain any copyrighted code and thus the patches are immune to any copyright claim, unless if patch itself contains copyrighted data.
When downloading a patch, you will have to use a tool that knows how to read the patch data and apply it over the original game ROM. That's the main issue you have when using patches, because you will need to download a tool for applying the patch and the original game ROM for applying it.
The most common patch types are IPS and BPS. For applying IPS patches, you can use Lunar IPS. For applying BPS patches, you can use FLIPS or beat.
Patching Procedure
- Download the game patch. For example, Gradius III SA-1 version can be downloaded here: https://github.com/VitorVilela7/SA1-Root/releases. Notice that the patch we will use is "Gradius-III-USA.bps" for this example.
- The original ROM file. For the example, you will need the original American (USA) Gradius III ROM.
- Download either FLIPS or beat. You can download FLIPS for Windows here: https://sneslab.net/tools/floating.zip
- Open flips.exe
- Click "Apply patch". An file dialog will appear. Pick the patch file you downloaded.
- Another file dialog will appear. Select the original ROM file.
- And the last file dialog will appear. Type the name of the new ROM file that will contain the patch together.
If you receive a message saying "The patch was successfully applied", then it means the ROM file you just saved has the patch applied. Now you can test it on your favorite emulator!