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

Author Topic: Seriously, why? (IPS vs BPS/UPS/Xdelta)  (Read 12831 times)

Leviathan Mist

  • Jr. Member
  • **
  • Posts: 61
    • View Profile
Seriously, why? (IPS vs BPS/UPS/Xdelta)
« on: August 06, 2016, 06:46:20 am »
First of all, I know I'm gonna get a lot of hate messages for this from people who think I'm a crotchety old hacker who can't accept change. I get that.

However, lately I am seeing all kinds of patching formats all over the site, and it's getting frustrating that I need a separate program to use each patch type, and some of them won't even patch at all if I don't have the exact same copy of the ROM right down to the byte. We've been using IPS since the 90's, and everything has been built to function with IPS patches. Most emulators will even auto-apply IPS patches for you. Why are we phasing out IPS? Why can't these newcomers who think BPS (and all your other crazy patching formats) is the way of the future at least provide an alternate patch in IPS format? What's wrong with providing options? Or better yet, why doesn't someone create an all-in-one patching tool that accepts every known popular format? Every time I see a patch I want on RHDN, I immediately don't want it anymore when I see that the only format available is one that's not IPS.

And yes, I am expecting outright insulting comments from lots of people over this post, but this is just something that has bothered me for awhile and no one else was supporting the old formats like I am, so the question had to be asked. If you're planning to argue why IPS is garbage and should be phased out, why something else is better, or tell me that I am an idiot and/or doing something wrong, you're better off saving your breath. I've already seen people make all those arguments/statements before. You guys are very vocal when it comes to your love of the new formats. I mostly want to know that I am not alone in believing that IPS is being phased out too soon.

Axiphel

  • Jr. Member
  • **
  • Posts: 80
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #1 on: August 06, 2016, 06:56:21 am »
>using ips since the 90s
>feels like ips is being phased out too soon
>???

FAST6191

  • Hero Member
  • *****
  • Posts: 3050
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #2 on: August 06, 2016, 07:18:06 am »
Waste of breath has never been a concern of mine.

IPS tops out at 16 megabytes less a few bytes (even the GBA goes to 32), does not handle relocated data, has no checking of pre patched ROM (you can say make sure it has no header, use this region and this version of the dump but so few do and then we get "it nay werx", I agree it gets annoying if I have a trimmed ROM or existing patch on it that I want to add to but in most cases you can say "ignore the checksums"), has no optional patching (though two patches is not much of an issue), struggles to add data to files (some extensions do, some do not), said extensions make it a crazy moving target to make a patcher for, does not handle compression and encryption well (if we patch to avoid copyright issues then a nice fat chunk of compressed or encrypted data, like we see lots of now, is going to ruin that concept*) and the list goes on.

*I guess I could use IPS as part of a chain but really why would I do that?

For non disc/filesystem stuff in the 16 bit and older era devices it works I guess, and is so simple that it is easy to implement in hardware and as a throwaway appeasement from emulator authors. For newer systems or those with file systems it has many flaws, several of which tank it entirely. There is then a logic which says if you are going to create a successor format then maybe consider retiring what came before. I am not of the burn it and all it stood for persuasion but I will equally not a shed a tear at the passing of IPS. I will not fault someone for making an IPS patch of something where it is justifiable either -- there are no headers on GBA ROMs and most are 16 megs or less, you might be doing in place, not that commercial games had a file system on the GBA, with no compression involved and thus IPS would not be a bad choice, such a thing is not even uncommon.

There are a few frontends that handle the common patching types. Not all of them but it is the nature of nearly all programmers to think they can do it better than what came before, much less those that also spend their free time pulling apart old games to quite literally make them better, so you do get many things resulting. Wind that in with some license issues (your GPL licensed patcher might conflict with my not so GPL licensed emulator), that patching is actually a hard game and your theoretical edge case that you can't be bothered to handle is someone's reality* or will be in two years and making a frontend to support each and every gets tricky.

*pah nobody is going to relocate data over an area greater than 40 gigabytes, hmm don't games come on dual layer blu ray now sort of thing.

mrrichard999

  • Hero Member
  • *****
  • Posts: 686
  • So Goooood! :D
    • View Profile
    • GameFAQS Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #3 on: August 06, 2016, 07:59:58 am »
I like the .BPS format in the fact it helps with less experienced users downloading patches as it helps avoid messages of getting errors when they patch it to the wrong ROM or in SNES cases, to a headered ROM when it requires a Non-Headered ROM. Helps eliminate annoyances and dummy mistakes as it requires using the correct ROM in order to patch properly.

magictrufflez

  • Hero Member
  • *****
  • Posts: 522
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #4 on: August 06, 2016, 09:58:55 am »
As a non-hacker, I completely do not understand the differences between using IPS vs the other formats, but fortunately, the only non-IPS patch I've downloaded has been an Earthbound hack that I believe was created in a completely different community.

I know there was a very lengthy thread about this over on insane difficulty where someone brought up a pretty salient point--if most everyone is using IPS, whether it's sub-optimal or not, there aren't going to be a lot of people who give alternate formats a chance just because they're so familiar with IPS.  Basically, Path-Dependence in rom-hacking.  The alternate format's case also wasn't helped when the main person trying to sell people on them basically disproved a number of their own arguments during the course of the discussion (or at least seemed to--they may not have known what they were talking about for all I know).

Personally, I'm open to trying new stuff, but I really haven't had to yet.  Like I said, 99% of the stuff I've used from the site have been IPS, but if some really amazing looking hack comes along in a different format, I'll certainly at least consider downloading another installer.

FAST6191

  • Hero Member
  • *****
  • Posts: 3050
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #5 on: August 06, 2016, 10:37:36 am »
The type of patch as an end user to me, speaking mainly as someone that is broadly familiar with computers rather than as a hacker, makes little difference to me -- in either case I am going to be selecting a patch, a ROM and maybe an output. Though I will note that I tend not to use onboard options for things. Complaining there makes about as much sense as complaining about a document coming in txt, rtf, doc, odf or pdf -- all contemporary machines will probably happily decode it for free so who cares.

I covered some of the shortcomings and though for most practical purposes IPS will remain to be usable for 16 bit and older systems as long as we have a slight lean towards "hardware or nothing". The header thing is annoying but it is not like anybody gets a bricked machine out of it. On the other hand new systems need something other than IPS and there is a bit of drive to maybe at least start exploring the 32 bit era and beyond around here and if we have shiny new patching formats for them then why continue using legacy crap.

http://www.romhacking.net/forum/index.php/topic,21580.0.html might be an interesting read.

jink640

  • Sr. Member
  • ****
  • Posts: 377
  • From nuggets to dust.
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #6 on: August 06, 2016, 10:40:49 am »
For me its not really a big deal what format is used. Its just a different folder on my computer.  :D

Zoinkity

  • Hero Member
  • *****
  • Posts: 565
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #7 on: August 06, 2016, 11:38:22 am »
This doesn't really affect NES.  It's mostly important with 5th gen systems and onward.  There's nothing wrong with IPS for many, if not most, patches for older stuff or tiny snippets of code.

The difference between delta patching and linear patches like IPS though is that IPS can't insert data.  Say a single file changes size a bit due to compression or whatever.  That pushes all later files backward or forward.  IPS requires you copy all the moved data as well into your final patch, despite it not changing.  A delta patch will only provide the new data in the patch, and has instructions to move the original file's data around to compensate.

End result is twofold:
1) Radically smaller patches for games that utilize internal filesystems.  I've had situations where a 1KB .bps would be a 28MB .ips.
2) Only new data is copied in, so no serious copyright breach due to providing, as in the example above, 28MB of the original game binary in a patch file.

#2 there is a very good reason why some patches cannot and should not be provided in any linear format, IPS included.  Fear to think of all the non-compliant patches that would need to be removed or redone if we started seriously inspecting how much of the provided data is copyrighted code.

henke37

  • Hero Member
  • *****
  • Posts: 643
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #8 on: August 06, 2016, 02:24:17 pm »
Also think of the poor dailup users in uhhh, where do people still use dailup again?

A patch format can be seen as a compression format that uses the original file as a huge dictionary that can be referenced. As such, more advanced formats that can deal with more changes produce more "compressed" files. Take advanced exe patching tools for example, they know how to deal with addresses embedded in the code and such.

SunGodPortal

  • Hero Member
  • *****
  • Posts: 2927
  • 2 + 2 = 5
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #9 on: August 06, 2016, 02:40:28 pm »
Also think of the poor dailup users in uhhh, where do people still use dailup again?

Yeah, I remember someone on here saying that they had dial-up within the last year and I was shocked. I didn't know it even still existed. Maybe they are also playing these games on a black and white emulator using vacuum tubes. :D
Cigarettes, ice-cream, figurines of the Virgin Mary...

Recca

  • Full Member
  • ***
  • Posts: 244
  • Indignation!
    • View Profile
    • Dynamic-Designs
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #10 on: August 06, 2016, 03:08:03 pm »
Yeah, I agree completely with you on that. When it comes to SNES and other older platforms, why bother using anything else besides IPS format patches? It just creates hardships that force people to either seek pre-patched ROMs online or constantly ask how to apply said patch. For my SNES translation, I've always used IPS patches and continue to do so. We at Dynamic-Designs have started using other patch formats for awhile now after being constantly pressured to do so, but we at least still offer simple to use IPS patches along with the more recent ones.

A lot of times when it comes to new things that are made in the future, it's more of an unnecessary headache rather than an improvement. And this is one of those examples. Using new patches for over decade old games that worked perfectly fine with IPS patches for years now. Damn, I really miss the beautiful 90s! Well, except maybe not for awful dialup...
"Truly, if there is evil in this world, it lies within the heart of mankind."
- Edward D. Morrison (Tales of Phantasia)

Gideon Zhi

  • Discord Staff
  • Hero Member
  • *****
  • Posts: 3532
    • View Profile
    • Aeon Genesis
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #11 on: August 06, 2016, 03:08:58 pm »
IPS tops out at 16 megabytes less a few bytes (even the GBA goes to 32)

This right here is an absolutely core reason to phase out IPS, *especially* for newer systems like the GBA and DS. IPS patches simply will not function correctly on games in excess of 16MB. The "it needs the exact rom" argument is also a great reason to use them for SNES games, where header problems are still somehow a thing; this allows you to enforce patching of a particular ROM, or at the very least warn users that the end result of the patching may not work right. It helps remove a goodly portion of the "I PATCHED IT BUT IT DOESN'T WORK" headache.

I don't release nearly as much these days as I used to, but even with my last couple of releases I've been meaning to include UPS and xdelta alternatives alongside the IPS patches. I've just forgotten. Force of habit and all that. I would ideally like to phase out IPS entirely myself.

MathUser2929

  • Hero Member
  • *****
  • Posts: 1619
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #12 on: August 06, 2016, 04:57:28 pm »
I had to use xdelta patches on all the Sonic hacks I submitted cause alot of Sonic hackers shift the data around. IPS patches were copying part of the ROM (official code) and thus making distributing the patches not legal. Plus xdelta patches are just alot smaller.

tvtoon

  • Sr. Member
  • ****
  • Posts: 371
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #13 on: August 06, 2016, 06:40:26 pm »
And I ask "why another topic about this", went on to check the rules, just to make sure IPS was not banned. Will that be the rule from now on? What is the point and click, this time?

If you want to use IPS, for anything lower than 17MB, keep going. ;)

VicVergil

  • Hero Member
  • *****
  • Posts: 727
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #14 on: August 06, 2016, 07:35:16 pm »
If you want to use IPS, for anything lower than 17MB, keep going. ;)

The limit is strictly 16777216 bytes, which is as much 3 bytes can address.

Leviathan Mist

  • Jr. Member
  • **
  • Posts: 61
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #15 on: August 06, 2016, 08:13:03 pm »
I didn't know that IPS had a byte limit, thanks for letting me know that.

However, 99% of the patches I'm referring to are under that byte limit, and they're mostly for NES/SNES games. I would like for there to be either:

1. An IPS alternative for those patches which exclusively use other formats. (This option will not happen because the creators are as stubborn as I am and are not including IPS for the sole purpose of wanting to phase it out sooner.)

2. An all-in-one patching program that will accept all of the common patching formats (IPS, UPS, BPS, Xdelta). That way, I don't have to have 8 different patching programs and look up how to patch some other format every single time I want to patch something.

You guys want me to do one option:

1. Just learn the new formats and accept that IPS is going away, and stop complaining. (I will not do this option until I can work with other patching formats with just as much ease as I can with IPS.)

I understand that these new formats were partially developed as a "solution" to the headered/unheadered dilemma, but if you ask me, this "solution" could have been done better. Basically, you just transferred the headache of choosing the ROM type onto the patches themselves. Now every time someone wants to patch a ROM, they have to do even more effort than it would've taken to find the correctly headered/unheadered ROM with IPS patches before. Now we not only have to find the exact ROM with the exact checksum and (usually) unheadered version, we now also have to have a separate patching program for each and every format. I now have to choose whether or not a hack is worth all that effort to play, and most hacks simply don't look interesting/useful enough to be worth it, whereas they would have been worth it with the IPS format.

VicVergil

  • Hero Member
  • *****
  • Posts: 727
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #16 on: August 06, 2016, 10:13:16 pm »
... What?

1. An IPS alternative for those patches which exclusively use other formats. (This option will not happen because the creators are as stubborn as I am and are not including IPS for the sole purpose of wanting to phase it out sooner.)

As said before, the patch size is definitively a concern. With some data patterns, using IPS causes the patch to just include whole intact chunks of the ROM and that's a big no-no and many patches have been taken down because of this (they might have as well distributed the ROM intact), so people try avoiding the IPS format for such data patterns.
Each single format of those has its usefulness. Think of it like file formats - you wouldn't want to store a scan of a book page in gif/jpg format, would you?

Quote
2. An all-in-one patching program that will accept all of the common patching formats (IPS, UPS, BPS, Xdelta). That way, I don't have to have 8 different patching programs and look up how to patch some other format every single time I want to patch something.

Hint: look at the file extension.
As for an all-in-one solution... There's Floating IPS which associates IPS and BPS file formats with it. The "Open" Shell command in Windows then loads the tool and asks for the ROM to be patched. It's just missing the UPS format (which is just an extension to the IPS format, just without the 16MB limit), Xdelta and PPF, otherwise it would be perfect.

Quote
You guys want me to do one option:

1. Just learn the new formats and accept that IPS is going away, and stop complaining. (I will not do this option until I can work with other patching formats with just as much ease as I can with IPS.)

Learn the new formats... what's there to learn even? It's just utilities.
IPS is going away because of its format limitations.
More and more emulator devs are supporting other formats than IPS for on-the-fly patching. Even with those who don't, nothing stopping you from pre-patching it yourself with a few mouse clicks (assuming the interface is clean).

Quote
I understand that these new formats were partially developed as a "solution" to the headered/unheadered dilemma, but if you ask me, this "solution" could have been done better. Basically, you just transferred the headache of choosing the ROM type onto the patches themselves. Now every time someone wants to patch a ROM, they have to do even more effort than it would've taken to find the correctly headered/unheadered ROM with IPS patches before. Now we not only have to find the exact ROM with the exact checksum and (usually) unheadered version, we now also have to have a separate patching program for each and every format. I now have to choose whether or not a hack is worth all that effort to play, and most hacks simply don't look interesting/useful enough to be worth it, whereas they would have been worth it with the IPS format.

For SNES games, the ones concerned with the header problem, you can actually ADD or REMOVE the header as you see fit. Whatever ROM you have can be made to be the "correct" one.
Tools to add/remove headers exist, like tush, but they could solve these problems better if their functionality is included in the ideal all-in-one patching utility you want. Even a dirty fix like patching the SNES rom twice and generating two ROMs, one headered and the other not, and then the user testing both to see which one works (the wrong one will probably corrupt pointers and/or programming).

With IPS and UPS, checking the ROM to see if it's the correct one isn't that important. That's why one could superimpose graphical hacks intended for a specific base rom in no particular order using those formats.

With xdelta and beat there's some data shifting going around and these checks become necessary, lest the patching tool ends up shifting the wrong data around the ROM and tearing down with it a trail of utter chaos.
Considering patching tools started adding such checks and that it's also a very useful feature to have, UPS, being the extension of the set-in-stone IPS format, can afford to add a integrity check section the same way. It's often optional for that format (some tasteless UPS patchers don't offer the choice though).

henke37

  • Hero Member
  • *****
  • Posts: 643
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #17 on: August 07, 2016, 01:07:20 pm »
There is also room for more advanced formats, for example dealing with a file system by simply rebuilding it from scratch, patching the contained files as required. Such fancy patching is starting to become required now with modern games that are so huge that the game developers themself need the structure. But for a patch user it is still the same thing, find the patching program and point it at the source file(s).

killeroftrolls

  • Jr. Member
  • **
  • Posts: 9
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #18 on: August 08, 2016, 12:13:49 pm »
Quote
However, lately I am seeing all kinds of patching formats all over the site, and it's getting frustrating that I need a separate program to use each patch type, and some of them won't even patch at all if I don't have the exact same copy of the ROM right down to the byte. We've been using IPS since the 90's, and everything has been built to function with IPS patches. Most emulators will even auto-apply IPS patches for you. Why are we phasing out IPS?
IPS has a 8MB limit. IPS has No CRC check, so it can patch regardless and produce a bugged Rom. Main two reasons it should be replaced.

Quote
...and some of them won't even patch at all if I don't have the exact same copy of the ROM right down to the byte...
Do you really think patching can be done, if you don't have the exact same copy. That's the whole point of patching. Patching is changing one file (exact, down to the last byte) into another file (exact, down to the last byte).


Quote
1. An IPS alternative for those patches which exclusively use other formats. (This option will not happen because the creators are as stubborn as I am and are not including IPS for the sole purpose of wanting to phase it out sooner.)
Will not happen, since it is against the site's policy. It is generally known that the patches should be as the authors released them.

FAST6191

  • Hero Member
  • *****
  • Posts: 3050
    • View Profile
Re: Seriously, why? (IPS vs BPS/UPS/Xdelta)
« Reply #19 on: August 08, 2016, 12:46:48 pm »
16 meg limit (less the bytes needed to have EOF at the end), unless you meant payload it can deliver which could vary depending upon what is done (some of the RLE stuff perhaps). Some modifications also can offset it so you have a 16 meg window rather than size limit but not many patchers will support that one so don't go looking.

Also "Patching is changing one file (exact, down to the last byte) into another file (exact, down to the last byte)." is not strictly true. Plenty of games can be trimmed or have an existing patch applied. It might cause problems if they overlap or pointers get twiddled and render something else effectively not there but there are plenty of things that will work side by side, and with no way of predicting ahead of time (think hardpatching a game genie cheat in or something).