07-08-2019, 06:51 PM
(This post was last modified: 07-08-2019, 06:58 PM by Simpsons Dumper.)
You may have asked almost three years ago now, but it's time for an answer! I can't have been the only person to find this thread via Google.
The answer is VGMStream! Download test.zip from https://github.com/losnoco/vgmstream/releases. We can execute test.exe from the command line to convert the .exa.snu files to WAV! This is really hacky, but I wrote a script that will extract every single .exa.snu, in PHP no less, because I am completely off my rocker. It doesn't follow any best practices because there was not the intention to share it.
The admittedly silly file structure I used is:
In case you want to do this but in a different language or simply tweak it, let's run through what is going on.
While it is true that I ripped from the Xbox 360 version, I have checked your PS3 sample and it seems much the same. I don't know which wins in terms of quality, since they are compressed using different encoding. I think XMA2 beats EA-XAS, but the bitrate is higher on PS3, so I don't know. I can't tell any difference, switching back and forth between the two. Samples are attached.
Now, if anyone reading this just wants the sounds, I've uploaded them all to The Sounds Resource and they should be available at https://www.sounds-resource.com/xbox_360...psonsgame/ once approved. The ones including audio used for some of the mid-level cutscenes may not get through for legal reasons surrounding music. I'll edit this post once I know what's what with that.
The answer is VGMStream! Download test.zip from https://github.com/losnoco/vgmstream/releases. We can execute test.exe from the command line to convert the .exa.snu files to WAV! This is really hacky, but I wrote a script that will extract every single .exa.snu, in PHP no less, because I am completely off my rocker. It doesn't follow any best practices because there was not the intention to share it.
The admittedly silly file structure I used is:
- audiostreams
- ->01_xxx_0, etc. / .exa.snu
- ->vgmstream-master
- ->->01_xxx_0, etc. / .wav
PHP Code:
<?php
$dirs = glob('..' . '/*' , GLOB_ONLYDIR); //1
foreach ($dirs as $dir) { //2
$dir = preg_replace('/^..\//', '', $dir); //3
if ($dir != "vgmstream-master") { //4
$files = array_diff(scandir("../$dir"), array('.', '..')); //5
exec("mkdir $dir"); //6
foreach ($files as $filename) { //7
exec("wine test.exe -l 1 -f 0 -o $dir/$filename.wav ../$dir/$filename"); //8
}
}
}
In case you want to do this but in a different language or simply tweak it, let's run through what is going on.
- All directories in the parent directory (..) get stored in $dirs as an array.
- It loops through each directory in $dirs, storing them one at a time in $dir as a string.
- Slashes are removed from the directory name.
- The directory vgmstream-master is ignored, because that's where I'm working and converting stuff within there might cause problems. It would have made more sense for the working directory to be above the audiostreams one, but oh well.
- The files in the directory $dir are stored in $files as an array.
- The directory $dir is created in the current directory.
Note for Windows users and sane people: Use the mkdir function.
- It loops through each file, storing them one at a time in $filename as a string.
- test.exe is executed. What a silly name. 1 loop and no fade-out is specified, with the output directory being $dir/filename.wav and the input being $dir/$filename in the parent directory. The loop and fade-out stuff doesn't need to be specified for The Simpsons Game, but as a general rule I like to include that to avoid trouble with certain titles.
Note for Windows users: Remove wine from exec().
Note for Mac/Linux users: WINE is required. I think you can build from source for Linux, but this is easier. It might complain about .NET but I think this can be ignored.
While it is true that I ripped from the Xbox 360 version, I have checked your PS3 sample and it seems much the same. I don't know which wins in terms of quality, since they are compressed using different encoding. I think XMA2 beats EA-XAS, but the bitrate is higher on PS3, so I don't know. I can't tell any difference, switching back and forth between the two. Samples are attached.
Code:
decoding d_teri_xxx_0006270-ps3.exa.snu
sample rate: 48000 Hz
channels: 1
stream total samples: 113664 (0:02.368 seconds)
encoding: Electronic Arts EA-XAS 4-bit ADPCM v1
layout: blocked (EA SNS)
metadata from: Electronic Arts SNU header
bitrate: 228 kbps
samples to play: 113664 (0:02.368 seconds)
Code:
decoding d_teri_xxx_0006270-xbox.exa.snu
sample rate: 48000 Hz
channels: 1
stream total samples: 113664 (0:02.368 seconds)
encoding: Xbox Media Audio 2
layout: layered (1 layers)
metadata from: Electronic Arts SNU header
bitrate: 139 kbps
samples to play: 113664 (0:02.368 seconds)
Now, if anyone reading this just wants the sounds, I've uploaded them all to The Sounds Resource and they should be available at https://www.sounds-resource.com/xbox_360...psonsgame/ once approved. The ones including audio used for some of the mid-level cutscenes may not get through for legal reasons surrounding music. I'll edit this post once I know what's what with that.