Atvaark / BinderTool

Dark Souls II / Dark Souls III / Bloodborne / Elden Ring bdt, bhd, bnd, dcx, tpf, fmg and param unpacking tool
MIT License
310 stars 50 forks source link

Elden Ring branch or merge back to master? #45

Closed googleben closed 2 years ago

googleben commented 2 years ago

I've got ER support pretty much working in my fork. I was thinking about submitting a PR after a bit more work cleaning things up, but I'm not sure whether the ER release should stay as its own branch - first off, there's already a very similar Sekiro branch, and second, I think it should be compatible with other titles at this point anyways (though I'm new to the scene so I'm not sure if I'm missing something) so there doesn't seem to be much need for a branch. I'd also be fine keeping the ER version as a fork if y'all original maintainers don't want anything to do with it, but I am happy to contribute back and keep things centralized.

Thoughts/opinions?

Atvaark commented 2 years ago

Hey @googleben,

thank you for your time working on this. I never got around testing how backwards compatible the changes for Sekiro and DS 1 Remastered were to the older games. We could start with a branch based on your contribution and I could create another preview release of it.

googleben commented 2 years ago

Sounds great! I'm working on getting all the file names I can (about halfway through right now), then I plan on cleaning up the source and adding documentation etc., at which point I'll probably be ready to make the PR. I'll also try to test the backwards compatibility - I've got all the games except DS1R, BB, and DeS. Might make some kind of a simple filesystem diffing tool that runs the old version and the new version to check for regressions to make it easy for someone else to test those.

In the meantime if you'd like to have a preview release of my current half-baked version set up that's fine and I'd be happy to make a PR. The only issue is that as far as I can tell, GitHub has no way of making a PR that merges to a new branch, so if you want it on its own "elden-ring" branch you've gotta make that branch before I can make the PR. If you'd like to have a WIP version merged in before I'm done tidying up just let me know, or otherwise I'll comment here/make a new issue (or PR to master if I've tested regressions) when things are nice and clean.

As a final note I've changed up the CLI a bit and pulled in a new NuGet package for arg parsing for some features I wanted like automatically extracting .bnd files when extracting .bdts. I figure that's probably all fine but it wouldn't hurt to mention it in case you'd prefer to leave things like they were.

Atvaark commented 2 years ago

I pulled your commits to a new branch, bumped the version, fixed the CI build and created a new release with your changes.

Branch: https://github.com/Atvaark/BinderTool/tree/elden-ring Release: v0.7.0-pre1 (Elden Ring)

Looks good so far. Unpacking some random bdt, msgbnd and fmg files worked without any issues.

googleben commented 2 years ago

Thanks! I'll put in a PR when the ER stuff is nice and ready, and if I get backwards compatibility sorted I'll open a new issue/PR depending on my certainty.

michalss commented 2 years ago

There is no any filenames ?

googleben commented 2 years ago

@michalss In the pre-release version from this repo there are a good few, but not all. There are more in my repo as I work on it, and they'll be merged back to this repo when I'm done.

Myoko commented 2 years ago

Is there any way to repacking bdt?

googleben commented 2 years ago

@Myoko not currently, no. If you're interested in replacing or adding assets, it would be much easier to hook the function responsible for loading files to check a directory containing your custom assets instead of unpacking and repacking the entire 10+GB .bdt file, though.

Atvaark commented 2 years ago

Repacking would also require you to patch the game to use your own decryption key or to skip decryption altogether. Maybe the game has some debugging code left that handles finding files outside of these huge archives.

Myoko commented 2 years ago

@googleben ok thanks for that tip! i guess using UXM to unpack and patch its only way for now