News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Preferred N64 patching format?  (Read 801 times)

Ok Impala!

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
    • Ok Impala!
Preferred N64 patching format?
« on: March 06, 2021, 09:14:27 am »
Hi all! Some quick question. I'd like to add several N64 mods to the site that were made by others. Since I only have the modified ROMS, I'd have to create the patches myself. I understand a IPS patch is not the best way to go for N64 games. So, what is currently the preferred patching format and what patch creation program is advised to use for that?

FAST6191

  • Hero Member
  • *****
  • Posts: 3092
    • View Profile
Re: Preferred N64 patching format?
« Reply #1 on: March 06, 2021, 02:53:29 pm »
IPS is limited to 16 megabytes and if you shuffle data around inside the ROM (possible for the N64 but not all but assured like it is on filesystem based affairs), can't really add data to a game in most incarnations (double the size because you want more space and you run into issues), and has no verification so you then have to rely on the users knowing they are using the right region and revision. That is why most would suggest avoiding it where possible, though legacy, flash carts, hardware emulators and emulators all supporting it mean it will likely be around for a while yet. If it is under 16 megs and hacks are all in place though (few instructions NOPed, some minor colour changes, some types of hardcoded cheat...) then it can still be useful.


Beyond that you have a variety of options. I am not sure what various emulators and flash carts support as there are a few forks and things out there. This is also not counting the specialist emulator stuff like the high res retexturing stuff but as you will probably want to be avoiding that (better if things at least theoretically work on hardware if doing stuff around here) then I will too.

In other fields of ROM hacking then Xdelta, BSDiff and PPF tend to be the big three. BPS and UPS have also some fans.
All of them have various versions, sometimes mutually incompatible but going with the latest available is probably a good bet.

Xdelta
http://xdelta.org/
Older version but I note it for the forum searchers
https://www.evanjones.ca/software/xdelta-win32.html
In both cases you have various options that might make patch making take longer but result in a smaller file (too low and it might not read far enough ahead to note it is shuffled forward by however much from the original and thus treats it as a change and makes a massive file), and trying to stack patches or use with trimmed ROMs can be tricky unless you turn off verification.

BSDiff, in PC file patching land the big rival to xdelta.
http://www.daemonology.net/bsdiff/
https://github.com/mendsley/bsdiff
PPF is short for playstation patching format. Being around on the PS1 means there are various takes on the matter, however it has stuck around and was quite popular for many up to and into the Wii era. I don't recommend it myself.
http://www.romhacking.net/?page=utilities&category=&platform=&game=&author=&os=&level=&perpage=20&title=&desc=ppf&utilsearch=Go

BPS/beat
http://www.romhacking.net/utilities/893/
Not a particular fan myself but out there and available.

UPS
Made as something of an answer to a few of IPS' failings but has many issues of its own. You may however encounter some still out in the wild.
http://www.romhacking.net/utilities/519/
http://www.romhacking.net/utilities/606/


Xdelta is my main go to option, though bsdiff is rightly considered a competitor. The others I tend to avoid unless an emulator or something uses it. If N64 hacking is going to go down the path of recompiling things with all these fun decompilation projects that are cropping up then most of the others will struggle too.
There are also some all in one patching UI type programs (some will also make them) so if you are doing due diligence then might want to grab a few of those and make sure they work.

Ok Impala!

  • Jr. Member
  • **
  • Posts: 96
    • View Profile
    • Ok Impala!
Re: Preferred N64 patching format?
« Reply #2 on: March 07, 2021, 09:34:10 am »
Thank you for this elaborate answer. I'll go with XDelta!  :)

March 10, 2021, 07:16:49 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Would like to add that I was able to lower file sizes of several BPS patches by over 75% with Xdelta. So, for N64 games Xdelta is definitely recommended over BPS.
« Last Edit: March 10, 2021, 07:16:49 am by Ok Impala! »

PhOeNiX

  • Jr. Member
  • **
  • Posts: 97
    • View Profile
Re: Preferred N64 patching format?
« Reply #3 on: March 10, 2021, 01:03:10 pm »
Thank you for this elaborate answer. I'll go with XDelta!  :)

March 10, 2021, 07:16:49 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Would like to add that I was able to lower file sizes of several BPS patches by over 75% with Xdelta. So, for N64 games Xdelta is definitely recommended over BPS.

This has very little to do with N64. It is just that there is no good bps encoder at the moment that is actually able to make smaller patches. You would get larger bps patches in almost all cases.