There are these three games whose sound/voice clips I've been wanting to rip for quite some time, but I can't figure out how to do so. The games in question are Madworld, Cel Damage, and Whacked!. All three of these games have very, very funny voice clips, and I would love to have them ripped.
I've tried many sound converters, and none of them work. I've even asked for help on Xentax, and no one's responded. (Probably because they're too busy focusing on that $60 alpha build known as Watch Dogs)
Here are a few files and packs from these games if anyone wants to take a look at them:
https://www.dropbox.com/s/gfkidwcm4cjtre...s.zip?dl=0
All help and effort will be greatly appreciated. Thanks!
Hmmmm...neither of those are of any help. Plus, the former link only told you how to get the files out of the ISO, which is what I already did, and included in my link.
Okiedoke, I've taken a quick gander. The Cel Damage file doesn't look compressed, although it might be. In any case it looks a bit tricky, but I'll see if I can do anything.
The .bin from Madworld looks compressed, or at least like a bunch of raw audio data. The .rsp files are a bit more sensible, they've got some kind of headers (the word "PACK" appears twice in each). Still not extremely simple though.
Now that Whacked! file, that looks much more promising. I'm seeing filenames as well as WAVE headers, so it's got straight-up uncompressed files. I can probably make something for it tomorrow.
I knew it couldn't be that simple... I made a QuickBMS script for Snd.pak, and it extracted them fine. However, the files themselves are a bit weird. First off, it's a mixture of files with .saf and .wav extensions, but they all have WAVE headers. Secondly, they don't seem to be in a playable format. VLC doesn't play them at all, and Audacity doesn't recognise them.
Looking at the WAVE format description, it appears these files aren't PCM, which means they're somehow compressed. I'll try and look around to see if I can find out how to decompress them.
EDIT: After a bit of Googling I found that it's compressed in the Voxware Byte Aligned format. After not being able to find a way to convert or play that, and with even more Googling I finally found that it's actually the same as DVI ADPCM, and by editing the format byte in the files I can play them in VLC. However, I'm sure that you'd prefer them in decompressed PCM format (and that's probably best for submission), so I'll try and find a way to convert them.
EDIT2: So I belatedly checked if VGSC can convert them. It seems like it can but... only the first one. I don't see any reason for it not to work on any of the others, the only differences are data sizes. It really is strange because I can play all of them if I change their compression tag from 0x69 to 0x11... man this is weird. I'll keep trying though!
Sorry i couldn't help you very much Mystie, awesome job puggsoy i knew someone on here would be able to figure it out for her.
OK so
towav can convert the files (scroll down a bit for the download link). I'm still really confused and curious as to why vgmstream has issues with them though.
Anyway, you can extract Snd.pak with this QuickBMS script:
Code:
# Whacked! PAK format
#
# Written by puggsoy
# script for QuickBMS http://quickbms.aluigi.org
idstring "SPPK"
get BASE_OFF long
get FILES long
for i = 0 < FILES
getct NAME string 0x00
get SIZE long
get OFFSET long
math OFFSET += BASE_OFF
log NAME OFFSET SIZE
next i
And then convert them all using towav. A good way to do this is to put them in a subfolder of the towav directory (e.g. "foo") and then edit ConvertAll.bat to:
That way all the converted files will end up outside the folder and separated from the originals.
Now to see if I can do anything about those other files.
Thanks, Puggsy! You're the best!
Sorry for the bump, but I'm curious about the progress on the other two games.
Oh, sorry Mystie! Kind of forgot.
After looking further into the Cel Damage file, I think I've found offsets and lengths. The files themselves look compressed though, so I'm not exactly sure what to do about them. I can try some things though, maybe it's something simple like zlib or what have you.
The Madworld files still have me scratching my head though. Honestly can't make heads or tails of them. I don't think the .rsp files are related to the .bin though, as far as I can tell anyway.
(10-14-2014, 07:17 PM)puggsoy Wrote: [ -> ]EDIT2: So I belatedly checked if VGSC can convert them. It seems like it can but... only the first one. I don't see any reason for it not to work on any of the others, the only differences are data sizes. It really is strange because I can play all of them if I change their compression tag from 0x69 to 0x11... man this is weird.
I noticed long ago that VGSC refuses to work on many files that are the same format and same folder even. So if I have a bunch of .DSP files in one directory, it will only convert certain ones. Kinda BS but I'm sure that's the fault of the source and not your program puggsoy heheh.
Yeah, if I was responsible for the actual conversion I'd definitely look into it. I would expect the main reason for this being either 1) some of the files are extracted incorrectly, 2) the files are similar to what vgmstream can handle, but some have extra bits that it doesn't recognise. The latter is most likely, since some formats have variations that are similar, but not always exactly the same. It could also just be some weird bug in the code, it's an open-source project that gets built every time the code changes, so it's not the most stable thing in the world.
EDIT: Question for Mystie: what platform is the Cel Damage file from?
It's the Gamecube version, although the Gamecube version is a straight port of the Xbox version with almost nothing changed (there are even several Xbox-related remnants in its files).
So I now know how to unpack it properly. I made this:
Code:
# Cel Damage talkToMe.dat format
#
# Written by puggsoy
# script for QuickBMS http://quickbms.aluigi.org
savepos CURRPOS
for CURRPOS = CURRPOS < 0x2030
savepos CURRPOS
get OFFSET long
get SIZE long
set NAME OFFSET
if OFFSET != 0
log NAME OFFSET SIZE
else
print "null offset at %CURRPOS|hex%"
endif
next
Things is, the extracted files just look like raw/compressed data. Someone over on ZenHAX (I've been asking about it there) said that they used the script on the PS2 version, and that those files are headerless VAG files. After fiddling with the sample rate they got
this. Sounds pretty spot-on to me but I'd like you to confirm that it's correct. If so it's likely that the rest of the files have the same sample rate.
Even if it is, I'm still not sure if it's the same format for the Gamecube/Xbox version. At least we can be fairly sure now that it's headerless files, not compressed WAVs or something.