How to create a PPF and BPS Patch (BPS is recommended)
Sections:
PPF
BPS
Special:
Why BPS is better than PPF
PPF
BPS
Special:
Why BPS is better than PPF
PPF (Rating: Okay, but mostly used) return
Subsections:
How to apply a PPF Patch?
How to create a PPF Patch?
Some, who work on their own hacks, have been probably wondering how to 'create' patches. Well, first off. PPF is a good patching format, however I really wish (in my opinion) for a better patching format. But as this doesn't exist yet, we shall use PPF as it's pretty good for SM64 Hacks.
PPF stands for, as a handful people may know already, for PlayStation Patch File and was originally made in 1999 by a cracking group to distribute patches which bypass copy protections on PlayStation games. It was also used sooner or later for legal purposes, as it turned out to be a quite good patching format. Even early ROM Hackers used PPF Patches (before the Lunar IPS Patching Tool came out) before to distribute their hacks and modifications without releasing the whole game dump on the internet. Later, with the introduction of IPS Patching, PPF felt in the background (actually it never got that much popularity anyway except the PlayStation Hackers). In the early stages of SM64 Hacking (incl. N64 Hacking) IPS patches were still used, until someone (I believe it was VL-Tone himself) discovered the PPF Format, which allowed to patch bigger files. (You can look in the Acmln Board Archives to look how SM64 Hacking Development went and how it reached what it is today)
Subsections:
How to apply a PPF Patch?
How to create a PPF Patch?
Some, who work on their own hacks, have been probably wondering how to 'create' patches. Well, first off. PPF is a good patching format, however I really wish (in my opinion) for a better patching format. But as this doesn't exist yet, we shall use PPF as it's pretty good for SM64 Hacks.
PPF stands for, as a handful people may know already, for PlayStation Patch File and was originally made in 1999 by a cracking group to distribute patches which bypass copy protections on PlayStation games. It was also used sooner or later for legal purposes, as it turned out to be a quite good patching format. Even early ROM Hackers used PPF Patches (before the Lunar IPS Patching Tool came out) before to distribute their hacks and modifications without releasing the whole game dump on the internet. Later, with the introduction of IPS Patching, PPF felt in the background (actually it never got that much popularity anyway except the PlayStation Hackers). In the early stages of SM64 Hacking (incl. N64 Hacking) IPS patches were still used, until someone (I believe it was VL-Tone himself) discovered the PPF Format, which allowed to patch bigger files. (You can look in the Acmln Board Archives to look how SM64 Hacking Development went and how it reached what it is today)
How to create a PPF Patch?
Now, after we got through the historical part, how do I create a PPF Patch? You might know already (from the sticky) how to patch a PPF file to a clean ROM, but how do we now create one? For this, we're going to need following tool:
- PPF-Studio 1.01b (lastest release) : http://www.romhacking.net/utilities/514/
And we need of course TWO ROMs:
- An unmodified ROM (same ROM, just unmodified) (make a backup)
- The ROM you're going to modify
What we have to keep in mind is, that our ROM haves to be equal the filesize. For example, if our ROM was extended to 24MB and expanded to 65MB (Level Importer) we're not able to create a patch from the original SM64 File (8MB) with the extended/modified SM64 ROM(65MB). It will error in PPF Studio. Instead we could use an unmodified/clean extended SM64 ROM(65MB) with a modified extended SM64ROM(65MB). For example, we're going to change the header "SUPER MARIO 64" in the ROM, which you may have seen already when you open up PJ64 with the SM64 ROM seeing the title saying "SUPER MARIO 64" which basically is reading the header of the ROM and displaying it in the window title of PJ64.
Now, please create a backup of your unmodified SM64 ROM, as we later need it. Open the SM64 ROM with any Hex Editor you may like. (I use Cygnus Hex Editor) And edit the header:
We edit "SUPER MARIO 64" to something like: "SONIC IS FAT"
Now save it and try if it works. If everything went right, your ROM should start manually and the window title should show now: "SONIC IS FAT".
Okay, everything worked, no bugs, no errors, so we can now start and create our PPF Patch.
Open up PPF-Studio. First, we're going to open up the PPF File (Output) path, that's where our PPF File is saved once it's created.
I call it SM64TestPatch.ppf (remember that you also put the .ppf extension to it! PPF-Studio does not do this automatically)
"Öffnen" means "Open..." btw. However, don't worry about that. It's basically nothing else than "save" in this case, as the PPF File is being created ONCE you pressed open. Difference here is, that PPF-Studio writes the PPF file "live" (aka file input stream) and therefore it's not readable while PPF-Studio is not done creating the patch. (Just saying) So once we're done creating the patch and PPF-Studio says so, the so-called file stream is over and the patch can be opened.
Under Patch Description you write in short what your patch does, respectively what you're going to get once you applied this patch to the ROM. File_id.diz is basically the very same, and comes from the old bulletion boards. DIZ just means: Description in ZIP and does like "Patch Description" explain what the patch does, how it works, etc. I put the details into file_id.diz but not too much, as the PPF Filesize increases with this too. The file_id.diz is getting included directly into the PPF but is also ignored by the PPF Patcher (PPF-O-MATIC) and you don't have to worry about that something may go wrong. But, you should prevent using "unusual" ASCII characters as this could really mess up the patch somehow.
You can also, if you want use the so-called: "Include Undo Data" patch function. It allows you to undo a patch, once you've patched it into a ROM. I'm going to explain this later, as a "Bonus".
Now let's finally create our patch. We have to look into Group "PPF Creation Control" and select "General" as this is a general patch. It now asks us for two files, the original and the patched file. Yes, that's why I told you that we need the two ROMs. For original file, you select the unmodified and clean ROM file, and for the patched file you select the modified ROM file where we have edited the header to "SONIC IS FAT".
Another note:
Once you're done, press now "Create PPF-Patch"
"Ready. Found 2 differences."
The patch is done. Now, the consumer can go on and do the usual routine process:
1. Open up PPF-O-MATIC.
2. Get a clean SM64 ROM (mine is 65MB big, so the user would need a fresh and clean extended+expanded ROM (65MB) too)
3. For ISO File, Select all files and press on the clean SM64 ROM.
4. For PPF Patch, user selects the provided PPF File.
5. Now the user press "Apply" Button and the patch is applied to the fresh ROM.
6. Done!
Additional/Helpful Information:
Now to a special part. Let's say you are working on a ROM Hack, you needed a patch like GSCI by Kazeshin and now your ROM is dead, no backup, nothing. A disaster. An undo-patch function would be quite nice and could actually save your work. And PPF does, luckily, support this. Now you just need to enable (next time you do a PPF Patch) the "Include Undo Data" checkbox in PPF-Studio.
Now, create the patch as usually and patch it to the clean ROM. Now, you want to undo it, right? Open up PPF-O-MATIC, select ROM and PPF again and this time check the "Apply Undo-Patch Data"
Now, just press "Apply" Button like usually and you notice how the patch is completely gone from your ROM and it's reverted back to the state before the patch was applied. This can be really useful and save your work which you could've been working months on.
Now, after we got through the historical part, how do I create a PPF Patch? You might know already (from the sticky) how to patch a PPF file to a clean ROM, but how do we now create one? For this, we're going to need following tool:
- PPF-Studio 1.01b (lastest release) : http://www.romhacking.net/utilities/514/
And we need of course TWO ROMs:
- An unmodified ROM (same ROM, just unmodified) (make a backup)
- The ROM you're going to modify
What we have to keep in mind is, that our ROM haves to be equal the filesize. For example, if our ROM was extended to 24MB and expanded to 65MB (Level Importer) we're not able to create a patch from the original SM64 File (8MB) with the extended/modified SM64 ROM(65MB). It will error in PPF Studio. Instead we could use an unmodified/clean extended SM64 ROM(65MB) with a modified extended SM64ROM(65MB). For example, we're going to change the header "SUPER MARIO 64" in the ROM, which you may have seen already when you open up PJ64 with the SM64 ROM seeing the title saying "SUPER MARIO 64" which basically is reading the header of the ROM and displaying it in the window title of PJ64.
Now, please create a backup of your unmodified SM64 ROM, as we later need it. Open the SM64 ROM with any Hex Editor you may like. (I use Cygnus Hex Editor) And edit the header:
We edit "SUPER MARIO 64" to something like: "SONIC IS FAT"
Now save it and try if it works. If everything went right, your ROM should start manually and the window title should show now: "SONIC IS FAT".
Okay, everything worked, no bugs, no errors, so we can now start and create our PPF Patch.
Open up PPF-Studio. First, we're going to open up the PPF File (Output) path, that's where our PPF File is saved once it's created.
I call it SM64TestPatch.ppf (remember that you also put the .ppf extension to it! PPF-Studio does not do this automatically)
"Öffnen" means "Open..." btw. However, don't worry about that. It's basically nothing else than "save" in this case, as the PPF File is being created ONCE you pressed open. Difference here is, that PPF-Studio writes the PPF file "live" (aka file input stream) and therefore it's not readable while PPF-Studio is not done creating the patch. (Just saying) So once we're done creating the patch and PPF-Studio says so, the so-called file stream is over and the patch can be opened.
Under Patch Description you write in short what your patch does, respectively what you're going to get once you applied this patch to the ROM. File_id.diz is basically the very same, and comes from the old bulletion boards. DIZ just means: Description in ZIP and does like "Patch Description" explain what the patch does, how it works, etc. I put the details into file_id.diz but not too much, as the PPF Filesize increases with this too. The file_id.diz is getting included directly into the PPF but is also ignored by the PPF Patcher (PPF-O-MATIC) and you don't have to worry about that something may go wrong. But, you should prevent using "unusual" ASCII characters as this could really mess up the patch somehow.
You can also, if you want use the so-called: "Include Undo Data" patch function. It allows you to undo a patch, once you've patched it into a ROM. I'm going to explain this later, as a "Bonus".
Now let's finally create our patch. We have to look into Group "PPF Creation Control" and select "General" as this is a general patch. It now asks us for two files, the original and the patched file. Yes, that's why I told you that we need the two ROMs. For original file, you select the unmodified and clean ROM file, and for the patched file you select the modified ROM file where we have edited the header to "SONIC IS FAT".
Another note:
Quote
Remember. The ROM filesize has to be equal. For example, we could've edited the exact same thing, the header for example to "SONIC IS FAT" in a 65MB ROM. However, we can't select the very, original 8MB or 24MB SM64 ROM for original file. Instead you need to make a backup of your unmodified 65MB ROM, then modify the SM64 ROM which is 65MB big and later use backup 65MB ROM for Original File
Once you're done, press now "Create PPF-Patch"
"Ready. Found 2 differences."
The patch is done. Now, the consumer can go on and do the usual routine process:
1. Open up PPF-O-MATIC.
2. Get a clean SM64 ROM (mine is 65MB big, so the user would need a fresh and clean extended+expanded ROM (65MB) too)
3. For ISO File, Select all files and press on the clean SM64 ROM.
4. For PPF Patch, user selects the provided PPF File.
5. Now the user press "Apply" Button and the patch is applied to the fresh ROM.
6. Done!
Additional/Helpful Information:
Now to a special part. Let's say you are working on a ROM Hack, you needed a patch like GSCI by Kazeshin and now your ROM is dead, no backup, nothing. A disaster. An undo-patch function would be quite nice and could actually save your work. And PPF does, luckily, support this. Now you just need to enable (next time you do a PPF Patch) the "Include Undo Data" checkbox in PPF-Studio.
Now, create the patch as usually and patch it to the clean ROM. Now, you want to undo it, right? Open up PPF-O-MATIC, select ROM and PPF again and this time check the "Apply Undo-Patch Data"
Now, just press "Apply" Button like usually and you notice how the patch is completely gone from your ROM and it's reverted back to the state before the patch was applied. This can be really useful and save your work which you could've been working months on.
BPS (Rating: Perfect) return
Subsections:
How to apply a BPS Patch?
How to create a BPS Patch?
BPS is another patching method, which turns out to be better as PPF. This will be explained here, in short:
Advantages:
- Users won't need to extend+expand their SM64 ROM anymore. They simply can take their 8MB SM64 ROM and apply the patch(made with 8MB(Original File) and 65MB ROM (Modified File) ) to it and the ROM is already extended+expanded successfully and you just need to play it now in PJ64.
- BPS creates incredibly small patches. Original File, normal SM64 ROM: 8MB, Modified File(Levels, Patches, etc.): 65MB. The patch filesize turned out to be just 3MB! And this patch will turn your 8MB ROM into a 65MB ROM!
- (Not directly related to BPS) Flips (Floating IPS) is a very user-friendly tool to apply and create BPS patches. It looks more organized, so that even the dumbest person (no offense, really) on earth could use this thing.
Disadvantages:
- Creating the BPS patch can take a bit. For me it took around 2 minutes for the SM64 (65MB) ROM. But I think, that 2-5 minutes aren't really that much to wait. Of course, you also can take "BPS (Favor Creation Speed" which will improve creation speed but the result may be larger as if it's done with "BPS (Favor Small Size)".
How to apply a BPS Patch?
How to create a BPS Patch?
BPS is another patching method, which turns out to be better as PPF. This will be explained here, in short:
Advantages:
- Users won't need to extend+expand their SM64 ROM anymore. They simply can take their 8MB SM64 ROM and apply the patch(made with 8MB(Original File) and 65MB ROM (Modified File) ) to it and the ROM is already extended+expanded successfully and you just need to play it now in PJ64.
- BPS creates incredibly small patches. Original File, normal SM64 ROM: 8MB, Modified File(Levels, Patches, etc.): 65MB. The patch filesize turned out to be just 3MB! And this patch will turn your 8MB ROM into a 65MB ROM!
- (Not directly related to BPS) Flips (Floating IPS) is a very user-friendly tool to apply and create BPS patches. It looks more organized, so that even the dumbest person (no offense, really) on earth could use this thing.
Disadvantages:
- Creating the BPS patch can take a bit. For me it took around 2 minutes for the SM64 (65MB) ROM. But I think, that 2-5 minutes aren't really that much to wait. Of course, you also can take "BPS (Favor Creation Speed" which will improve creation speed but the result may be larger as if it's done with "BPS (Favor Small Size)".
How to apply a BPS Patch? return
First off, you need this tool:
http://www.smwcentral.net/?p=section&a=details&id=10347
This is Flips (short for: Floating IPS) which allows to create/apply IPS and BPS patches. Of course, we need BPS.
Now, start up the tool:
(Wow, so tiny and just that perfect)
Instinctive, you might already know already what to click. It's really simple as said before. Press "Apply Patch":
(Vocabulary: Öffnen = Open, Abbrechen = Cancel, Dateiname = Filename)
Once the patch is selected, another window will open, asking you for the clean, unmodified and original ROM. Select "All Files" first in the menu, as "Most Common ROM Files" seems not showing ".z64" extensions.
Select it. Now (last time) another window will open, which basically asks you if you want to save the patched SM64 ROM under a new name. (Default name which is shown is the name of the patch, in this case SM64TestPatch) You can overwrite the original, of course. But in case you want to keep the original, better save it like it is or use an own name for it.
(Speichern = Save)
After you're done with this, you should get the new file (which is 65MB big) and a message showing that the patch was successfuly applied:
The result:
First off, you need this tool:
http://www.smwcentral.net/?p=section&a=details&id=10347
This is Flips (short for: Floating IPS) which allows to create/apply IPS and BPS patches. Of course, we need BPS.
Now, start up the tool:
(Wow, so tiny and just that perfect)
Instinctive, you might already know already what to click. It's really simple as said before. Press "Apply Patch":
(Vocabulary: Öffnen = Open, Abbrechen = Cancel, Dateiname = Filename)
Once the patch is selected, another window will open, asking you for the clean, unmodified and original ROM. Select "All Files" first in the menu, as "Most Common ROM Files" seems not showing ".z64" extensions.
Select it. Now (last time) another window will open, which basically asks you if you want to save the patched SM64 ROM under a new name. (Default name which is shown is the name of the patch, in this case SM64TestPatch) You can overwrite the original, of course. But in case you want to keep the original, better save it like it is or use an own name for it.
(Speichern = Save)
After you're done with this, you should get the new file (which is 65MB big) and a message showing that the patch was successfuly applied:
The result:
How to create a BPS Patch? return
Now, we're going to show how to create a BPS Patch. It's really simple. Open up FLIPS and press "Create Patch". A window opens. The window title says it already: "Select ORIGINAL UNMODIFIED File to Use" which is Original_SM64.z64 in our case.
Now, another window opens and (obviously) this time you need to select the modified SM64 ROM. (In our case, the SM64TestPatch.z64)
Now another (last time) window opens and this time you need to give your patch a name and obviously what kind of patch you want to do. In our case, we'll use BPS. However, there are two options.
If you want to create your BPS Patch as fastly as possible, you'll take the favor creation speed. If you want the favor small size of your BPS, you will need to wait a bit longer, but the result is astonishing. (The waiting time isn't really that long. But that may depend on every CPU)
Once it's done and no errors occured, it will show you this:
And again, the result:
Look how small it is. That's really astonishing.
Now, we're going to show how to create a BPS Patch. It's really simple. Open up FLIPS and press "Create Patch". A window opens. The window title says it already: "Select ORIGINAL UNMODIFIED File to Use" which is Original_SM64.z64 in our case.
Now, another window opens and (obviously) this time you need to select the modified SM64 ROM. (In our case, the SM64TestPatch.z64)
Now another (last time) window opens and this time you need to give your patch a name and obviously what kind of patch you want to do. In our case, we'll use BPS. However, there are two options.
If you want to create your BPS Patch as fastly as possible, you'll take the favor creation speed. If you want the favor small size of your BPS, you will need to wait a bit longer, but the result is astonishing. (The waiting time isn't really that long. But that may depend on every CPU)
Once it's done and no errors occured, it will show you this:
And again, the result:
Look how small it is. That's really astonishing.
Why BPS is better than PPF return
BPS is extremely better if we talk about filesize and usage. While you had to extend+expand your SM64 ROM to apply the PPF patch, the BPS patch can be simply applied already to a clean 8MB SM64 ROM.
- Users won't need to extend+expand their SM64 ROM anymore. They simply can take their 8MB SM64 ROM and apply the patch(made with 8MB(Original File) and 65MB ROM (Modified File) ) to it and the ROM is already extended+expanded successfully and you just need to play it now in PJ64.
- BPS creates incredibly small patches. Original File, normal SM64 ROM: 8MB, Modified File(Levels, Patches, etc.): 65MB. The patch filesize turned out to be just(if you used "favor small size" option) 3MB! And this patch will turn your 8MB ROM into a 65MB ROM!
BPS is extremely better if we talk about filesize and usage. While you had to extend+expand your SM64 ROM to apply the PPF patch, the BPS patch can be simply applied already to a clean 8MB SM64 ROM.
- Users won't need to extend+expand their SM64 ROM anymore. They simply can take their 8MB SM64 ROM and apply the patch(made with 8MB(Original File) and 65MB ROM (Modified File) ) to it and the ROM is already extended+expanded successfully and you just need to play it now in PJ64.
- BPS creates incredibly small patches. Original File, normal SM64 ROM: 8MB, Modified File(Levels, Patches, etc.): 65MB. The patch filesize turned out to be just(if you used "favor small size" option) 3MB! And this patch will turn your 8MB ROM into a 65MB ROM!