Vextil / Wwise-Unpacker

Unpack game audio Wwise files (pck, bnk)
617 stars 109 forks source link

Is there a way to extract .ogg files with the names used in Wwise? #47

Closed cDerv211 closed 1 month ago

cDerv211 commented 1 month ago

Hey! So I have these files here: image I extracted all of them and they were successful, the problem is that all of them were named "stage0_1.ogg" and so on until like 8000. I was wondering if there's a way to extract them with the file names they have in Wwise. This one was the only working so I hoped there was a way. Thank you so much for the help!!

mortalis13 commented 1 month ago

I think the BMS script from here cannot find the name field in the files. So or it's an outdated script, or the file doesn't have names, or they are in another place. The project seems to be abandoned. I'd try searching for an updated BMS tool/script, or an alternative way to extract audio from PCK. Maybe something like this: https://github.com/bnnm/wwiser-utils/blob/master/scripts/wwise_pck_extractor.bms but don't know how it works, it's just what I get from a google search for pck bms extractor.

cDerv211 commented 1 month ago

Sorry for the ignorance but what is the BMS script?

mortalis13 commented 1 month ago

The script that parses the data file and extracts the data (audio) from it basically. I'd advice to investigate a bit how this tool works, starting from the Unpack to OGG.bat which I suppose you're running. The first line calls the quickbms tool that executes a script (a text file with code basically) on the PCK files in the game folder. Then it should be easier to understand how to run that another script I posted previously.

Also, I don't think it will make a difference, but it's always good to use the latest version of some tool, so maybe there's an update of quickbms itself, which is not updated here in this project.

And in that external script project, maybe the author can help you if the script doesn't work right away, as I see it was updated recently.

cDerv211 commented 1 month ago

I'm sorry but I'm very illiterate in terms of coding/github or whatsoever. If I want to extract the file names from the .pck file I need to edit the "Unpack to OGG.bat" file and add some lines of code from the link you sent me? If so what lines should I change? Otherwise do you think you can very kindly point me the direction I should take? Thank you so much for the help!!

mortalis13 commented 1 month ago

no, the bat file is just a shell that executes other sub-tools. The quickbms which you see in the first line is the one that extracts the audio data. But it needs some processing after it, so the audio can be listenable. But the names part should be there, in the script that quickbms executes. But I'm not sure how exactly it works and if something can be done with it to find the track names, even if they exist in the PCK file. So your quick option would be to try that another script, using quickbms, or contact that repo author, or search for another way to process PCK files to get audio, if it exists. Maybe there're some graphic UI tools for that already, but I'm not aware of them...

If you want to experiment with quickbms isolated, take first this line from the bat. "Tools\quickbms.exe" "Tools\wavescan.bms" "Game Files" "Tools\Decoding"

it calls the tool, tells it what script to execute, where the input is and where to put the resulting files. This is a Github mirror of the project I found, it explains how to run it: https://github.com/LittleBigBug/QuickBMS

so you can take the quickbms.exe and wavescan.bms, put them in another folder, put a PCK file there too and run quickbms wavescan.bms file.pck from the command line being in that folder

And it should put the audio files in the same folder. When it works, you can try running the same but with another script (.bms file).

cDerv211 commented 1 month ago

okok. So little update I exported these as .wem files and .bnk files. I tried to match the IDs of these files but in the game I'm extracting these soudns from (Legends of Runeterra, by Riot Games) the original file names are hidden. I used this tool here https://github.com/bnnm/wwiser-utils/tree/master to extract everything and try to brute force the name of the files but found only like 2% of the names out of 11k sounds :c

What I tried to do was brute forcing a search of all the file names that could match the IDs of the 11k .wem files in the original game folder. I only found 2% of these names and I thought that maybe most of the files were compressed and needed to be decompressed before to reveal more infos. Any suggestion or ideas?

mortalis13 commented 1 month ago

so first, the wwiser-utils gives you some files with meaningful names, or they are all with numbers, like audio_1.wem, audio_2.wem..., like in the script from this repo ?

cDerv211 commented 1 month ago

Sorry for late reply, I just saw this. Yeah they're all with numbers like 2342328503.wem and so on, so random IDs generated by Wwise. I found this script that extracts Voice Overs from the game I'd like to extract sounds from (Legends of Runeterra), but it currently works with VOs only and not SFX. This is the link: https://github.com/Morilli/lor-vo-extractor

Do you think you'd be able to make it work for SFX as well based on how it is right now? In theory it should be super easy cause the hash files from the VOs needed to match the real names are in a similar place, also it utilizes .pck files as well

mortalis13 commented 1 month ago

I think nothing I can help with sorry, I'm not a developer for this repo btw ) I only tried to help with an advice. The only thing I see is you could contact with the devs of those repos, the wwise-utils and vo-extractor, see if they give something more concrete. Or search for all possible alternatives to unpack PCK, maybe some of them would give names to the audios.