SgtSweetieBelle Posted July 11 Share Posted July 11 first off, apologies, i know VERY little about this sort of stuff, and a lot of this will probably seem pretty basic. i'd literally never heard of quickbms until maybe an hour ago lol tl;dr: trying to get music/sfx/voice files from Disney Speedstorm. opened .pack files and extracted ~40k files, most with no file extension. tried opening some at random in MPC-HC. one file gave me an error saying "failed to find a connectable filter" as well as tons of audio codec information. error log and file are attached. i feel like i'm getting close. i just need help turning this into something readable by audio playback apps, and a quick means to identify which extracted files contain audio. known game details: game: Disney Speedstorm developer: Gameloft engine: Jet Engine (shared with Asphalt 9, possibly modified/forked?) file type: .pack file list (as of 2024-07-11): my goals are to extract the following from Disney Speedstorm in a playable format by contemporary media players: music sound effects voice lines so far, using quickbms and the "Zip64Unpacker_A9_1.6.2.bms" script (which i found on this post by @ksg22 and this post by @Pige123), i've managed to extract around 40,000 files from all of the .pack files. their file extensions include: <none> (11,447 files) .json.jmodel (7,651 files) .tga.jtex (21,332 files) i'm guessing the files i want are somewhere in the 11.5k files with no file extension. at random i tried dumping a few into Media Player Classic. most come up "invalid", but occasionally i'll get something like this: i'll include the full log here, as i barely know what any of this means. LAV Splitter Source (internal)::Audio Media Type 0: -------------------------- Audio: 0xffff 44100Hz stereo 94kbps AM_MEDIA_TYPE: majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71} subtype: Unknown GUID Name {0000FFFF-0000-0010-8000-00AA00389B71} formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A} bFixedSizeSamples: 1 bTemporalCompression: 0 lSampleSize: 256000 cbFormat: 66 WAVEFORMATEX: wFormatTag: 0xffff nChannels: 2 nSamplesPerSec: 44100 nAvgBytesPerSec: 11779 nBlockAlign: 0 wBitsPerSample: 0 cbSize: 48 (extra bytes) pbFormat: 0000: ff ff 02 00 44 ac 00 00 03 2e 00 00 00 00 00 00 ÿÿ..D¬.......... 0010: 30 00|00 00 02 31 00 00 a0 f6 95 00 ba 00 00 00 0....1.. ö.º... 0020: 12 0e 28 00 00 00 20 00 28 09 00 00 e2 09 00 00 ..(... .(...â... 0030: 24 01 20 00 f4 33 00 00 94 35 00 00 6f ce 50 a9 $. .ô3..5..oÎP© 0040: 08 0b .. Media Type 1: -------------------------- Audio AM_MEDIA_TYPE: majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71} subtype: Unknown GUID Name {AFBC2343-3DCB-4047-9655-E1E62A61B1C5} formattype: Unknown GUID Name {35189950-CAC9-4C8D-819D-B6FAEE15DD9D} bFixedSizeSamples: 1 bTemporalCompression: 0 lSampleSize: 256000 cbFormat: 72 WAVEFORMATEXFFMPEG: nCodecId: 0x0000 WAVEFORMATEX: wFormatTag: 0xffff nChannels: 2 nSamplesPerSec: 44100 nAvgBytesPerSec: 11779 nBlockAlign: 0 wBitsPerSample: 0 cbSize: 48 (extra bytes) pbFormat: 0000: 00 00 00 00 ff ff 02 00 44 ac 00 00 03 2e 00 00 ....ÿÿ..D¬...... 0010: 00 00 00 00 30 00 00 00|02 31 00 00 a0 f6 95 00 ....0....1.. ö. 0020: ba 00 00 00 12 0e 28 00 00 00 20 00 28 09 00 00 º.....(... .(... 0030: e2 09 00 00 24 01 20 00 f4 33 00 00 94 35 00 00 â...$. .ô3..5.. 0040: 6f ce 50 a9 08 0b 00 00 oÎP©.... i'll include a sample file, the one that gave me that error and thus presumably has some audio data in it: 2DCC76A86C2974BF.zip if anyone can help a gal decipher all this and squeeze something playable out of it, i'd really appreciate it! ^-^ Link to comment Share on other sites More sharing options...
DKDave Posted July 11 Share Posted July 11 You can add the .wav extension to your sample file and it'll play in Foobar with vgmstream. Unfortunately, the files in the .pack archives don't seem to have extensions to identify them. If you can maybe upload an example .pack file that contains audio (such as the one from your sample), I might be able to adapt my zip QuickBMS script to identify them Link to comment Share on other sites More sharing options...
SgtSweetieBelle Posted July 11 Author Share Posted July 11 (edited) oh wow, you're right, it worked! let me get that file uploaded for you... Edited July 11 by SgtSweetieBelle Link to comment Share on other sites More sharing options...
SgtSweetieBelle Posted July 11 Author Share Posted July 11 2 hours ago, DKDave said: You can add the .wav extension to your sample file and it'll play in Foobar with vgmstream. Unfortunately, the files in the .pack archives don't seem to have extensions to identify them. If you can maybe upload an example .pack file that contains audio (such as the one from your sample), I might be able to adapt my zip QuickBMS script to identify them here we go @DKDave! https://mega.nz/file/NVoDRIRb#gHF5EDKLRV_BDT-Xh4kzM41AScyct6U_DnyX9gnPkk0 this is pack_sd.pack, the file with the most working sound files (sd for "sound", ugh, it's so obvious...) there's some in here that i can't open with vgstream, but a bunch of others that i definitely can. i wonder if they're encoded differently, or perhaps they're their own archives full of sfx and voice lines? thanks so much for your help so far! Link to comment Share on other sites More sharing options...
SgtSweetieBelle Posted July 12 Author Share Posted July 12 (edited) update: i did a mass rename to add .wav to all of the files, then ran them through vgmstream-cli.exe, and they all seem to have been converted successfully! this is an absolute treasure trove. here are my remaining questions: any faster way to identify these files? is there an index or metadata we can use to identify what each file is without playing it back? what about the ones that won't convert? there's about ~160 files that won't open. any ideas on how we can identify and get into 'em? how likely will game updates affect the integrity of these files and their names? i'm planning on indexing these in a database. but to do that, each file needs a static identifier. right now, that's the file name. how likely is the name to be preserved across updates in a frequently-patched live service game? i'm sure the answer differs from engine to engine, and since Jet Engine is proprietary, we probably don't have much insight into how exactly it works. but i'm hoping that these stay pretty fixed. i know some databases and indexes will muck around with file names while using a constantly-updated manifest to keep them identified... (if that's the case maybe i'll just use a hash instead lol) will you still be adapting your quickBMS script now that we've gotten this far? i know it's still useful to do just so we can skip the rename and vgmstream steps on future runs, but do you think it's possible it might help with any of the outstanding problems i mentioned above? edit: actually, yeah, the quickBMS script might come in handy, this has a LOT of files but it seems far from comprehensive. i can only guess that the rest of the sounds are spread out throughout the rest of the .pack files. Edited July 12 by SgtSweetieBelle Link to comment Share on other sites More sharing options...
Solution DKDave Posted July 12 Solution Share Posted July 12 18 hours ago, SgtSweetieBelle said: update: i did a mass rename to add .wav to all of the files, then ran them through vgmstream-cli.exe, and they all seem to have been converted successfully! this is an absolute treasure trove. here are my remaining questions: any faster way to identify these files? is there an index or metadata we can use to identify what each file is without playing it back? what about the ones that won't convert? there's about ~160 files that won't open. any ideas on how we can identify and get into 'em? how likely will game updates affect the integrity of these files and their names? i'm planning on indexing these in a database. but to do that, each file needs a static identifier. right now, that's the file name. how likely is the name to be preserved across updates in a frequently-patched live service game? i'm sure the answer differs from engine to engine, and since Jet Engine is proprietary, we probably don't have much insight into how exactly it works. but i'm hoping that these stay pretty fixed. i know some databases and indexes will muck around with file names while using a constantly-updated manifest to keep them identified... (if that's the case maybe i'll just use a hash instead lol) will you still be adapting your quickBMS script now that we've gotten this far? i know it's still useful to do just so we can skip the rename and vgmstream steps on future runs, but do you think it's possible it might help with any of the outstanding problems i mentioned above? edit: actually, yeah, the quickBMS script might come in handy, this has a LOT of files but it seems far from comprehensive. i can only guess that the rest of the sounds are spread out throughout the rest of the .pack files. I've attached my QuickBMS script for these .pack files. It's a bit hacked together due to the way the zip file structure works, but it seems ok. It identifies the .wav and .bnk files and adds the appropriate extension to them. .wav is normal audio files containing music .bnk is WWise sound banks containing dialogue. Both can be played in Foobar/vgmstream, hopefully that should be all of the audio files. As for your other queries, I'm not sure. ss_zip.zip 1 Link to comment Share on other sites More sharing options...
SgtSweetieBelle Posted July 14 Author Share Posted July 14 (edited) understood all good! This has been an incredible help so far. Thank you so much for everything. do you have any tips and best practices for quickly identifying/organizing files? Any tools that that you like to use or workflows that help the process go by faster? edit: found an app called Eagle that shows tons of metadata and lets you build a database with tags, folders/subfolders, and most importantly lets you playback/scrub through simply by highlighting a file's thumbnail (which is a generated waveform). really incredible for previewing and basic tagging. it isn't perfect but it's really nice and i'm making it work! Edited July 15 by SgtSweetieBelle Link to comment Share on other sites More sharing options...
MDGX Posted July 27 Share Posted July 27 (edited) I've been looking for a way to extract sounds from this game for ages. Thanks so much for this thread! I'm wondering though, have you found any music yet? If so, in which .pack file? The 'sd' one only seems to contain sfx and voice lines, right? I think I went through all the packs, but no other pack than the 'sd' one extracts .wav files. Edited July 27 by MDGX Link to comment Share on other sites More sharing options...
Hearhellacopters Posted August 29 Share Posted August 29 Thank you for your work! I was also looking into this game. I noticed that some of the files in some of these packs look like they are further compressed or possibly encrypted. Unsure. I included a BT template based on the quickbms script and a small pack with 2 files. One file has a compression flag and the other says it does not (based on the quickbms script) but the files extracted seem to have more packed data, as the files don't have headers like the _sd pack does. Any thoughts? dz_pack.bt pack5.zip Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now