A .bps file is short for Binary Patching System, a file in which all the edits to a ROM are stored. It does not store the original, unmodified content of a ROM. By using .bps files, we're technically not redistrubuting Nintendo's copyrighted material from the original SMW ROM.
.bps files are the format required to upload Super Mario World ROM hacks anywhere on SMW Central.
Where do I find a .bps patch?
You will find .bps files everywhere around this community, from betas or demos to entirely new SMW ROM hack experiences. All hacks hosted in the SMW Hacks Section are in this format.
How do I apply a .bps patch?
What you will need:
- An unmodified, "clean" Super Mario World ROM. If you are unsure whether your ROM is clean, run it through ROMclean!
- Floating IPS (FLIPS) - this guide will refer to Floating IPS as FLIPS throughout
- An emulator, we recommend the accurate emulators in the tool section; bsnes, Snes9x, ZMZ. In this guide we will be using Snes9X
- The .bps patch of the ROM hack you want to play! I will use the VLDC9 hack as an example.
After downloading the necessary files, place them in your desired folder(s). For simplicity, I'll be putting FLIPS, Snes9x and a clean Super Mario World ROM in the same folder. You can put the .bps patch anywhere, including in the same folder, it's not important to keep it once we have patched it.
Here's an example of these files:
Now, to start things off you will need to open Flips. It should look like this:
Click on the aptly named Apply Patch button to open our first file browser window, asking you to select the patches you want to use. Look for and either double click the .bps patch you want or select it and click open. In this case: VLDC9.bps.
Then, FLIPS will open another file browser, asking you to select your unmodified Super Mario World ROM (in this case: Super Mario World (U) [!].smc). There are some settings which will allow you to only have to do that this one time which will be covered at the end.
If you're given an error message here, that means your Super Mario World ROM may not be clean. If that's the case try running the ROM file through ROMclean hosted in the tool section. If that still doesn't work, download another SMW ROM from an alternate source.
If your ROM is clean, one final window will open, this will be to save your modified ROM file for the hack you want to play. Select your location and save it. You're done! Your patched ROM should now be exactly where you saved it.
Optionally when FLIPS is open, click on Settings. There are a few things we can set up to make .bps patches a breeze to use later on.
Firstly, click on the Assign file types button. This will make all .bps patches open with FLIPS in the future, meaning you can simply double click them to begin the patching process.
Secondly, tick the box that says Enable automatic ROM selector. What this does is allow FLIPS to remember where your original, clean Super Mario World ROM is located after you've selected it once, which we will do in a little bit.
Lastly, click on Select emulator at the top. This will open a file browser window asking you for the emulator you wish to use. Navigate to the folder you saved Snes9x in (or the emulator you chose) and double click it. If you placed your emulator and FLIPS in the same folder, the file browser will open in just the right place. These three settings will only work as long as you do not relocate FLIPS, your emulator, or your clean SMW ROM.
An optional step you can make is to change the action to do when opening a .bps file from Create ROM to Run in emulator. If you only plan to play hacks after patching select Run in emulator. This way, you will be able to double click .bps files and instantly play them in your emulator in the future! If you don't want to run the emulator right away, keep it on Create ROM.
How do I play the patched ROM?
If you already know how to play ROMs with an emulator, you can skip this part! If this is your first time, I'll explain it to you:
Loading the ROM
We're going to use Snes9x in this example, an emulator for SNES games. It's able to play any SNES game commercially sold and has no issues playing ROM hacks - as long as everything is patched correctly.
If you have chosen the Run in emulator option in FLIPS, Snes9x should open the hack immediately when you double click any .bps patch. Skip to Controller Mapping in that case.
If you have chosen Create ROM in FLIPS, start by opening an instance of Snes9x. In the menu at the top of the window that will open, select File → Load Game..., as seen here:
This will open a file browser. Navigate to the folder you saved your patched ROM to earlier and double click it to open it.
If patched correctly, the game should start running. If the game doesn't start, either the .bps was broken, or the ROM you used wasn't clean, refer back to the How do I apply a .bps patch? section.
All the hacks hosted in our Hacks Section are verified to run without issue when patched to a clean SMW ROM!
Now, if you want to change the controller mapping: In Snes9x, click on Input → Input Configuration... (or simply press Alt + F7, as a handy shortcut).
In this window, choose which controller you wish to configure using the dropdown in the top left labelled Controller and click on the boxes below to change the respectively mapped keys. Most game pads will work out of the box for this.
Press OK when you've got it all setup and you're done.
How do I create a .bps file?
You will need to create a .bps patch to upload your hack to SMW Central. You will need your modified ROM you wish to create a patch of, and a clean SMW ROM.
Open up FLIPS, and click on Create Patch. After that, you will be lead through a series of file browsing windows to locate the following files:
- In the first one, select your unmodified SMW ROM.
- In the second one, your modified ROM.
- In the third and final one, give your .bps patch a name and choose a folder to save it to.
Your .bps patch should now be exactly where you saved it!
However, before uploading your hack to SMWC's Hack Section, or posting it in the forums, be sure to test patching your new .bps patch to ensure it works.
Update 15th June 2020: Tutorial has been reworded a little to be less "wordy", and now the video from the Essential Tutorial's list is now embeded into it!