Alcaro / Flips

Floating IPS is a patcher for IPS and BPS files.
Other
334 stars 46 forks source link

[Feature Request] xdelta Patch Support #43

Open ThisNekoGuy opened 2 years ago

ThisNekoGuy commented 2 years ago

Considering this is the only native ROM patcher I know for non-Windows desktop systems, I'd like to request that Delta NDS patches be added

Alcaro commented 2 years ago

Are you requesting that the ROM picker should accept .nds alongside the other usual ROM extensions, or are you asking me to add Delta NDS Patch as a new format beside IPS, BPS and UPS?

If former, done. If latter, I'm not doing that myself, but feel free to submit a pull request.

ThisNekoGuy commented 2 years ago

I'm not suggesting they they all should be included; just that Delta be added alongside what's currently available

As it stands, there's currently no native tool for non-Windows systems to patch NDS ROMs at all (as far as I'm aware?), so adding it to Flips would be a definite upgrade in terms of cross-platform compatibility (That aside, I don't even know if the other patch extension implementations are even open-source)

ThisNekoGuy commented 2 years ago

I could look into finding out how to add it but this is personally outside of my area of experience

Sanaki commented 2 years ago

It's still not clear what you're asking. If it's just for the nds extension to be supported in the GUI, he already did that yesterday. I've been using bps for DS files for years myself, the tool doesn't really care what the data is.

That said, patches for nds are often distributed as xdelta, which while inferior to bps for files this size, does indeed have a native tool available.

ThisNekoGuy commented 2 years ago

It's still not clear what you're asking.

I asked for xDelta support, it couldn't be more clear given the title of the issue and what I already said

I don't have anything against BPS or UPS, but as you already aptly put:

patches for nds are often distributed as xdelta

which means that these aren't usable with Flips.

That said, the "native tool" you speak of exists for MacOS but not for Linux - in case you forgot or didn't realize these users exist - and they/us don't have a native tool for this.

Alcaro commented 2 years ago

it couldn't be more clear

That's the first time you've named the format, you've just said Delta NDS Patch.

I would welcome someone adding xdelta support, but I'm not doing it myself.

Sanaki commented 2 years ago

That said, the "native tool" you speak of exists for MacOS but not for Linux - in case you forgot or didn't realize these users exist - and they/us don't have a native tool for this.

Just to be clear, I'm a Linux user myself. I installed xdelta3 from my distro's default repos (Mint, from Ubuntu's repos). Didn't even have to go looking. While I can't speak for your distro, it absolutely does exist natively on Linux.

That said, sure, xdelta support would be nice if someone wanted to do the work to add it.

ThisNekoGuy commented 2 years ago

I didn't know it existed in the Linux repos; that wasn't something I expected considering its niche nature in the context of what we're talking about

That's the first time you've named the format, you've just said Delta NDS Patch.

@Alcaro I apologize for not being more clear, then; I was under the impression that xDelta was the name of the software and Delta was just the patch format that xDelta uses

Sanaki commented 2 years ago

That would explain the confusion. Xdelta has no actual relation to emulation. It's just used there. I recommend glancing over the Wikipedia article on it.

https://en.wikipedia.org/wiki/Xdelta

orbea commented 2 years ago

What's the point of adding xdelta to flips when you can use this?

https://github.com/jmacd/xdelta

Sanaki commented 2 years ago

For me? Unified tools tend to be nice, since you can handle patches of different types in bulk with a basic for loop. That's about it though. I'd use it if someone got bored and implemented it, but I feel no real draw to it. Right now I use that tool myself without issue.

orbea commented 2 years ago

@Alcaro May feel differently, but I feel it would be extra maintainer burden without much gain. An alternative xdelta tool would be better as its own project that follows the unix philosophy "Do One Thing And Do It Well."

https://en.wikipedia.org/wiki/Unix_philosophy#Do_One_Thing_and_Do_It_Well

Alcaro commented 2 years ago

Not many programs strictly adhere to the Unix philosophy these days.

Flips already has IPS, UPS and BPS; adding a fourth format sounds like a perfectly normal thing to me. I'm not sure what maintainer burden you're thinking of (other than adding it in the first place), it's not like any of those formats are evolving.

orbea commented 2 years ago

Fair enough.

Given that xdelta doesn't necessarily imply the patches will be for emulation I imagined this would open up lots of potential for technical debt, but maybe I'm wrong about that?

Alcaro commented 2 years ago

I see no problem with adding more patch formats. It's not like PPF or bsdiff are evolving either.

(Not gonna accept abandoned formats, or ones that never caught on, though. I'm not sure how common PPF and bsdiff are these days, afaik most users switched to BPS and xdelta.)

Sanaki commented 2 years ago

PPF is still relatively common, though I couldn't tell you why. Only once encountered a bsdiff in the emulation community. The only other one I encounter on occasion is asm, but that's very rare and almost always comes alongside a more common patch format.

Aerocatia commented 2 years ago

The older playstation emulators like ePSXe and PCSX(r) can apply PPF patches at runtime, so that could be one reason why.