Quotewhere patchinfo.xml is an XML document that's compliant with BPS's metadata format. Eg.:
There is no
official metadata format. Long ago, I was defining it as XML, but that's no longer the case.
And yes, I realize that's a problem, but ... no matter what I did, I would limit certain use cases, so I just don't define it anymore.
The only thing that's absolutely forbidden, is to use metadata to extend the patching format itself. That will break compatibility with other patchers that don't parse the metadata.
My recommendation these days is that metadata is in a human-readable format: XML/JSON works, but YAML/BML is much nicer. Plaintext is also okay. Markdown is nice, too. Not needing a special tool to read it is convenient and lets *any* patcher potentially display it.
Even if we tried to define an official format, it'd just be a mess. Look at MP3s. There's ID3v1/v2, APEv1/v2, Lyricsv3, etc.
QuoteThe manifests are indeed not arbitrary text. Per the BPS specification, it's an XML document; in practice, it tells bsnes if it's HiROM, LoROM, or something else.
Noooooooooooooooooooo please don't ;_;
I know BPS is an agnostic format, and my own (lousy) patcher doesn't support it yet, but ... SNES/PCE/etc game BPS patches should always be made -sans- header. That's also the only way Snes9X and some versions of bsnes/higan will soft-patch them.
QuoteThe BPS format doesn't contain any filename for the metadata, we can't do any better.
It wasn't meant to be a file you extract. I was afraid people would get cheeky and embed ZIP files in there and ... ugh. So that's why I didn't include a manifest filename field.
Can confirm.
QuoteThat entire metadata field is silly. Without a proper specification, it's only confusing. Even if there is a bsnes manifest, it's better off being a separate file beside the bps.
The idea of embedding a higan manifest was certainly a thing long ago, but is *very* much not the case today.
I have tried and failed to make some kind of universal standard format for describing the 100+ SNES PCB forms in existence, and I no longer try.
I generate manifests dynamically now instead of requiring them from users. So yeah, please don't embed bsnes/higan manifests in BPS patches ... the format is not stable and has changed not only details, but file formats (XML->BML).
QuoteYeah, it disappeared off the internet.
I redid my site, and all the old documents were in raw HTML form. Now I am using a markdown-like syntax, but instead of converting all the old stuff, I just deleted it. Because I am terrible.
Haven't had the motivation to recreate the document since then.
Sigh, I'm very sorry for inflicting that upon the world
Why can we never truly eradicate *anything* deprecated? ;_;
UPS is a trash garbage format that needs to die.
I mean, as long as it's just UPS patch application and not patch creation, I suppose it's pragmatic, which is Alcaro's cup of tea, so that's okay.
Quotethe bps-delta algorithm is both faster than bps/beat AND results in smaller files
Yeah, my algorithm has quadratic overhead, and to make it faster, I cut corners on the match comparison length, resulting in larger files.
beat's delta mode is awful. Flips' is vastly superior.
QuoteBut Flips is six times slower than Xdelta, and patches are about the same size. I have no idea what it does. Maybe it's cheating by not looking at the entire source file. Maybe I should rip apart its source code and steal its secrets.
On its raw speed, no ideas.
But as an unrelated tangent on its patch sizes ... BPS vs Xdelta is tough.
BPS beats plain Xdelta, but not Xdelta -9. But Xdelta -9 is technically using compression. BPS often beats Xdelta -9 when you put the BPS file inside a 7za -9 archive. But if you put an Xdelta -9 patch inside a 7za -9 archive, then it tends to win on size once again.
But where BPS always wins is ... the BPS file format is 100x simpler than Xdelta's. Even if the patches are slightly larger, it's absolutely worth it.
Consider there are *zero* implementations of Xdelta other than the original author's. Then again, his default implementaiton doesn't suck, unlike the one from the BPS author.