rombp is a utility program to apply ROM bin patches, typically used for retro gaming romhacks. I wrote it primarily to target the RG350m gaming handheld., which runs a flavor of Linux called OpenDingux.
Patch file support:
rombp also runs on desktop Linux (I've only tested it with Ubuntu 20.04), if you want to try it on a desktop before loading it on your console.
I've only tested with an RG350M, but in theory, it should work with other OpenDingux MIPS64 based handhelds as well.
Here it is running on the RG350M:
And on Ubuntu Linux:
Head over to the releases page to download the latest OpenDingux OPK file. You should be able to run the OPK file just like your other programs.
Patching a ROM is non-destructive, it makes a copy of the ROM file before patching it so you can keep your stock ROMs clean.
To patch a ROM:
- Open rombp and navigate to the source ROM that the patch is based off.
- Next, select the IPS / BPS patch file to apply to the ROM.
- After selecting the patch file, patching will begin.
- Once patching is complete, you will find the patched ROM file in the same directory as the patch file, with the same name as the patch file.
- Enjoy playing your ROM hack!
rombp can also be executed from the command line to select input ROM and patch file, rather than using the SDL2 file UI. Arguments are:
rombp: IPS and BPS patcher
Usage:
rombp [options]
Options:
-i [FILE], Input ROM file
-p [FILE], IPS or BPS patch file
-o [FILE], Patched output file
Running rombp with no option arguments launches the SDL UI
Example usage:
./rombp -i Awesome_Rom.smc -p Cool_Hack.bps -o Cool_Hack.smc
You'll need to setup your RG350 buildroot. Checkout this GitHub repository and follow the setup instructions to build a local toolchain. This will build the necessary MIPS compiler toolchain, as well as compile the shared libraries that are present on the system for linking (in rombp's case, we just link against uclibc and SDL2).
Once you setup the toolchain, configure its location via:
$ export RG350_TOOLCHAIN=/path/to/toolchain
From there, you should be able to build an OPK file via:
$ TARGET=rg350 make clean rombp.opk
You'll find the built OPK file in the rombp project directory.