Publishing Your Hack - pk-hack/CoilSnake GitHub Wiki
You've just spent many painstaking years working on your super-ultra-omega-deluxe hack, and now the time has finally come to show it to the world. Congratulations! If you have made it this far, you've done more than most hackers. We tend to get caught up on perfectionism...
Anyway, by now you should be aware that we distribute hacks as "patches". Even after all your hacking, the ROM still contains a bunch of code and assets from the vanilla game, and it would be illegal to post that online. Patches are clever files that sidestep the issue by only including information about the data that was changed. See the diagram below, and note how the patch isn't aware of the existence of Mario.
How to make a patch
[!NOTE] In the past, we used the EBP and IPS formats. It turns out that these aren't actually very good for CoilSnake hacks in particular. Please use BPS as this guide instructs.
Verifying that you have a clean base ROM
Since patches are lists of what changed, we need two things: the unchanged ROM, and the hacked ROM. The latter is pretty easy - that's just what CoilSnake gives you. The former is a little trickier. To work with CoilSnake you already have a base ROM, but it might've been expanded, or it might have a header, or something else. So we need to make sure that everyone is making their patches against the exact same ROM.
That's why I threw together this little tool which will take a ROM and make sure it's of the correct format:
https://supremekirb.neocities.org/tools/rom_inspector
Please open your base ROM here. Based on what it tells you, here is what you need to do:
"This is a standard EarthBound ROM!"
- Congratulations, you kept a perfectly unmodified EB ROM! You can use this one to create your patch.
"Your ROM isn't standard, but it can be fixed."
- Press the "Fix it!" button underneath and give the new copy you'll save a name which indicates that you NEVER EVER modify it. Then, you can use it to create your patch.
"This ROM isn't recognised, so it can't be fixed."
- Double check that you are testing the base ROM and not your hack. Otherwise, you'll need to find a new clean ROM. Run that through this tool to make sure it's valid.
Creating the patch
There are a few tools that do this, but here are the two we recommend. The first one is entirely within your browser, and the second can be downloaded and used offline. Naturally, if one doesn't work, use the other.
With Rom Patcher JS (Online)
Head over to https://www.marcrobledo.com/RomPatcher.js/ and follow these steps:
- Turn on "Creator Mode"
- Select your base and hacked ROMs and choose "BPS" format
- Press "Create patch" and save the resulting file (might take a while)
With FLIPS (Offline)
Head over to https://github.com/Alcaro/Flips/releases/latest and download the correct version for your OS. Unzip it, start the program, and follow these steps:
- Press "Create Patch"
- Select the base ROM
- Select the modified ROM
- Save the patch somewhere
Checking that the patch works
Now the best thing to do is to make sure that nothing's gone wrong. Head over to the Playing Hacks page and follow the steps. Pretended you've just downloaded the patch off the internet and are giving it a go for the first time. If it works, great! Otherwise, please make sure you've followed all the above instructions correctly. If you can't figure out what's going on, ask for help in the Discord.
Publishing the hack online
Now the patch file is ready to be posted! Send it wherever you want. If you're not sure where, the PK Hack forum and #showcase-and-wips on the Discord are great places to start. Not everyone is familiar with patching, so please direct them to the Playing Hacks page if they are unsure. Congratulations!