Ripping tutorials by Ultrafighter by Ultrafighter at 10:01 AM EST on December 27, 2018
Ripping from the Wwise audio pipeline suite by Audiokinetic

Wwise is an insanely popular middleware which is relatively easy to deal with but there're obviously some specific quirks with it as it has its own disadvantages (for example lack of "real" IE descriptive track names in newer games). Here I'll try to describe all the possible steps required to get audio streams from original WWise assets, sort & play them without transcoding / losing quality.

1) Normally all sounds used by a game are stored in archives with *.bnk or *.pck extensions (BKHD or AKPK file headers respectively) but sometimes there's multitude of *.wem, *.wav or *.ogg files in a sound folder (you may even be required to unpack these sounds from some bigfiles - PODs, PSARCs, whatever - but it's another story where to find tools/scripts to work with POD, PSARC, etc. archive formats). The latter case means you won't have to extract individual tracks from BNK or PCK bigfiles (WWise system audio banks) and you can skip step #2.

2) To unpack BNKs and/or PCKs I recommend this or that - these scripts are going to dump every piece of audio found in Wwise banks to your HDD and write them untouched & with proper names.
Don't worry if nothing is being extracted from some BNKs: they presumably have HIRC or STMG tag while only BNKs with DIDX tag actually hold sound assets.
If you get some split-second tracks from any BNKs or PCKs it's perfectly normal too, they're likely to be cached / prefetch versions of other, much longer sounds. BTW both short & long variants should have exactly the same name so that you can always check that to be sure you don't really need the former file.

3) Check contents of resulting *.wav files (or given *.wem/*.wav/*.ogg) with a hex editor: there should be either RIFF or RIFX string at offset 0 and WAVEfmt at offset 8. If it's indeed the case then change extensions of those WAVs/OGGs to WEM (this might not be necessary if you're using XMPlay player + VGMstream plugin or Winamp + VGMstream but it's very likely to be needed by Foobar2000 with said plugin) and add them to playlist.

4) If all the tracks have play length / stream specifications (frequency, bitrate, amount of channels and so on) displayed by your player then you're ready to play them right now.
If any WEMs can't be played / don't have specs you should move them to their own folder and inspect a few samples in a hex editor: it's highly probable the troublemakers aren't actual sound files but yet another bunch of BNK/PCK archives; you'll have to process them all with one of above BMS scripts to obtain WEM audio tracks stored there.

5) If the title you're ripping is quite old (like 8-9 years old) you might get a super bonus - SoundBanks.XML and/or numerous TXT docs located in the directory where you found initial *.bnk/*.pck/*.wem/*.wav/*.ogg files. These documents are supposed to contain "real" titles for every single piece of sound used by a videogame. TXTs usually represent a table in plain text format so it might not be very convenient to work with them but it's still better than nothing.
There's seemingly a BMS for batch automatic renaming but I didn't get it to work (or it simply worked too slowly and I decided to avoid using it).

I think I covered most / all available options considering the topic and there's not much to add, this is all for now. I wish you pleasant and easy VG ripping!

edited 10:04 AM EST December 27, 2018
Ripping games based on Unreal engine 3 by Ultrafighter at 7:46 AM EST on December 29, 2018
This isn't too hard too but you'll absolutely need Gildor's Tools & lots of free space.

1) Before you start unpacking actual UE3 archives with either Unreal Package Extractor or Umodel make sure it's even needed: your VG might use WWise audio system (hundreds of games) or in-house sound formats (Rainbow six - Vegas, Splinter cell - Conviction, etc.) or FMOD.TFC with FSBs inside like Dark void (there're always Lighting.TFC, CharTextures.TFC & Textures.TFC in a typical title powered by Unreal engine 3 but there might be more to that).

2) Normally everything you have to unpack has XXX or UPK extension but don't be bewildered if you encounter any other extensions: just try using programs by Gildor and they should still work.

3) I recommend moving all *.XXX / *.UPK assets to a new directory in root of your HDD (as a precaution it's preferred to have just 1 (random) character as its name) - you're gonna get tons of files with super-long names and that's the way you're not going to miss (many of) them. If you can use any OS that doesn't suffer from fear of long file paths then more power to you, run Unreal Package Extractor in Linux or anything else.

4) Now you're ready to use Package Extractor with this BAT file:
for %%a in (*.XXX;*.UPK) do extract.exe "%%a"
For this to work you'll have to place a BAT file, an EXE & UE3 archives in the same folder or set paths to extract.bat / extract.exe in Windows. The tool is going to make a folder for each XXX / UPK file so it'll be neat & convenient to browse unpacked contents.

5) As soon as you extracted all the contents of XXXs / UPKs start looking (I expect you to use Total commander, FAR, just not Windows explorer) for assets with this name mask: *.SoundNodeWave* (extension isn't strictly SoundNodeWave, it might be SoundNodeWaveEx like in some VGs by Grasshopper Manufacture or High Moon Studios). To locate BGMs faster I'd say you should sort them by size, discover which directories are dedicated solely to storing music and so on.

6) Look at a few *.SoundNodeWave* examples in a hex editor and you should see MSFC or MSF0, FSB4 or FSB5, RIFF or RIFX strings (these obviously aren't the only options) at file start. When you found out what audio format is inside you set up this BMS or choose this or that or any different tool to cut contained streams from UE SoundNodeWaves.
It's common to have a single track in each SoundNodeWave but you can always meet some pretty special case.

7) You may stumble upon something particularly nasty like XMA with nonstandard headers (I met half a dozen such games, maybe even 7-8) or plain MPEG stuff (Stranglehold PS3) which is basically unrippable if you use extract.exe but it's not the end! Probably Umodel will be able to dump those tracks to perfectly typical playable XMAs or MP3s.
BTW in the latter case renaming *.SoundNodeWave* to *.SoundNodeWave*.mp3 might work (this isn't supposedly even required if Winamp or XMPlay is your default player).
The only big disadvantage of that GUI program is that it doesn't keep directory structure, it puts all the tracks it finds in a single folder (a folder per XXX / UPK file that is).
Finally if any UE3 archive crashes Umodel.exe in the middle of extraction process then chances are there's an easy bugfix: you should set the tool to unpack all the files found in a XXX or UPK, not only SoundNodeWaves and it won't crash in the future (I guess).

This is all for now, best regards!
Ripping audio from FMOD's sample banks (FSB files) by Ultrafighter at 6:03 AM EST on January 1, 2019
FSB format is quite popular and typically easy to obtain / unpack / listen to. As always it depends on the game but usually it's a breeze ripping a VG title that uses FMOD banks.

1) If there're no cases of *.fsb extensions among game files then you're likely required to extract them from some archive.

a) FSBii by HCS can be used to dump embedded FSBs (FSB3 or FSB4 headers) to your HDD but you should use it on 1 file at a time or apply this batch file to multiple archives:

<u>for %%a in (*.archive_extension) do (
md "%%~na"
cd "%%~na"
"..\fsbii.exe" "..\%%a"
cd ..

This *.bat will make a folder per input archive so that the program doesn't overwrite anything (it outputs everything it finds as embedded_X.fsb files where X is hexadecimal offset).
Obviously you'll have to put a BAT file, an executable & all *.archive_extension files in the same folder (of course you can still insert full filename in that code, merely replace "..\fsbii.exe" with c:\Programs\fsbii08\fsbii.exe or something like that).

b) This can supposedly scan for FSB5 banks contained in custom bigfiles and maybe the script is going to work with multiple games, not just with Hitman Absolution PC archives.

c) if your VG is 15 years old or older you may stumble upon FMOD bank ver.2 (FSB2 header) within a bigfile (Hot wheels: World race for PC IIRC) and you won't be able to extract it using none of above tools. Well you should probably attempt setting up this BMS; add these lines to code: first <<set EXT ".fsb">> then <<set SIZEBIAS 0x0>> & finally <<FindLoc SIZE string "FSB2" 0 "">>, you might need to change argument at line #13 too, run your edited variant with quickbms.exe or quickbms_4gb_files.exe and see if dumped *.fsb banks are going to be usable.
Or you should employ VGMToolbox.exe and it'll be able to perform exactly the same actions; it might even be easier to set up its Advanced File Cutter / Offset Finder.

2) Once you got FSBs you can play them in VGMstream (both actual banks & FSBs containing a single track) or divide them with help of FSBii or fsb5_split.exe:

a) when you're splitting FSBs using fsbii.exe you'd better use the batch file I posted above - files will be named like this #_TrackName.fsb or even #_TrackName_#.fsb & you should keep an eye on where each track comes from.

b) fsb5_split automatically creates a folder for each processed FSB5 bank so you may use this short *.BAT:

for %%a in (*.fsb) do fsb5_split.exe "%%a"

As soon as extraction is complete you'll get lots of TrackName.fsb & all of them should be playable with no problems at all (VGMstream is the best solution).
Keep in mind however: for fsb5_split to work properly each individual stream inside input FSB bank must have its own name! For example Hitman Absolution relies heavily on FSBs with no tracknames, each contained track is named using this mask: BankName# (when played via VGMstream plugin that is). If you try splitting such files you should get a single output file which is gonna be named just fsb or even .fsb (you see the 1st dumped audio stream will have such a name, the 2nd one will have the same and overwrite the 1st, the 3rd one will replace the 2nd one because they're both named fsb or .fsb, etc.); dividing process isn't possible here I guess.
Also this utility has a rather strict filesize limit, you'll supposedly get problems if your FSB5 bank is bigger than 1GB.

c) there's also FSBext by Luigi Auriemma but it's obsolete & you'll presumably get much better results with FSBii or VGMstream - not only you'll lose looping info if you convert FSBs using fsbext.exe (BTW only FMOD sample bank versions 3 & 4 are supported) many tracks will be unplayable (like the ones using WMA or XMA codecs, maybe also XWMA & OGG), they'll have wrong extensions and so on.

3) Normally an FSB has an internal name (for example DVD_M03B.pkg_0x103ae000.fsb contains a "real" trackname M03B_Search.wav), right-click that item in your playlist and look for a trackname in properties (both metadata & details tabs in Foobar2000).

That's it for today, I hope it's useful!

Edit #1: Modern games (MotoGP 18, MX vs. ATV All out, Sebastien Loeb Rally evo, Valentino Rossi: The Game) might have FSBs readily available (found in sound folder with *.fsb extension) but not readily playable - they start with a FEV-style header & it has to be removed. It's really simple actually: open those in a hex editor, jump to the 1st occurrence of FSB5 string and delete all the data before it, then save edited bank as a new *.FSB file.

edited 9:35 AM EST January 1, 2019

Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=]Link[/url]


HCS Forum Index
Halley's Comet Software
forum source
Generated in 0.0028s;