Alcaro/Flips

[Feature Request] xdelta Patch Support

ThisNekoGuy opened this issue · 17 comments

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

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.

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)

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

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.

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.

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.

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.

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

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

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

https://github.com/jmacd/xdelta

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

@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

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

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?

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.)

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.

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