rickvg / Wwise-BNKExtract

Extract WEM files from AudioKinetic Wwise soundbank
29 stars 4 forks source link

No identification between extractable file types (DIDX vs non-DIDX), and some comments #1

Closed Kadigan closed 6 years ago

Kadigan commented 7 years ago

The script doesn't differentiate between DIDX and other types, like say HIRC, and it will happily extract 0-size files from the incompatible ones (the identifier is at HeaderLength + 8 and it is 4 characters long).

As an aside, the script could use some slimming down (there's a lot of data it reads but doesn't do anything with), and some more error detection too.

I'm attaching a slimmed-down version that relies on offsets more and includes basic detection w/ correction. Unfortunately I don't see an easy drop-in replacement for fcntl on Windows, so...

Also, rewrote it to extract w/o a UI, to make it more toolchain-friendly.

BnkExtract.zip

Also, attaching my PHP one-stop-shop rewrite (I basically don't know Python, and I wanted a bit more control). Worked on both sides in tandem. The PHP script loads the entire file into RAM once it determines that it's viable - feel free to change that if you wish.

BnkExtractPHP.zip

I wrote this to extract sound bytes from Alien: Isolation, by the way.

rickvg commented 6 years ago

Thanks for the update. I definitely agree with you. There is a lot of code in there that doesn't do anything. I designed the code with the thought of expanding it and make it able to read more data from the structure. I wrote it specifically for Planet Coaster. I will try to have a look at your UI, but I am not sure yet whether I am continuing this project due to the low amount of time I have available.

Thank you for your contribution.

Kadigan commented 6 years ago

Well, you're welcome to use whatever I put in there (I don't rightly recall exactly what I did, this was back in June :D) as you see fit. I didn't want to suggest a merge since I rewrote big portions of it, it I recall.

Or you can just put this second version up w/ a note that it'll work for Alien: Isolation and possibly a few other games as well.

Obviously the above goes for both versions of the code.