Users browsing this thread:
Exa.Snu files? (The Simpsons Game, PS3 version)
#1
So I managed to get a PS3 ISO file extracted and in the 'audiostream' folders, every last file has this extension; .exa.snu (for example "d_frpa_xxx_000155a.exa.snu")

I've tried looking around for any sort of solution as to dealing with this extension but the only results I've been able to find are about Dead Space 2 audio files (of which I've not seen any method for converting those either) or about AVG Antivirus which I'm going to guess is irrelevant.

I've been able to get into the PS2 version but that and the wii have about half the content of the xbox360 version and have a weird echo effect before the end of each clip. Also I couldn't find a working 360 download.

Anyone got an idea what to do? If anything can be done that is. If you want to take a look at some of the files yourself then let me know.
Reply
Thanked by:
#2
Can you upload a file sample? We won't be able to help without it.
Reply
Thanked by:
#3
Okie Dokie! Here's something picked mostly at random. Though if you can find a way to get it to work, lemme know.

(had to zip it, though it's just one file.)


Attached Files
.zip   ri_xxx_0.zip (Size: 59.19 KB / Downloads: 298)
Reply
Thanked by:
#4
Well um, I've seen there's some rules against double-posting but it said an exception applies to when it's your own thread and supplying information so hopefully it's okay in this case.

I've been chasing down some means of converting stuff and apparently a program called "towav" can convert those files (at least, seemingly identical extensions from dead space 2... problem is when I try to run any program that uses a command line like this one, it closes immediately and I can't find a solution to that. So... I'm not sure if this towav program is a decent lead or not, should be findable on google. But I still don't know how to make the stupid comp stop closing the programs instantly...
Reply
Thanked by:
#5
I don't really want to bump this old thread, but don't really have a choice if I'm to add to the discussion. Venomrabbit still seems to log on. This thread also ranks well in Google search results.

Anyway, I've had a look at the Xbox 360 version. Not looked at the others... PS2 and such would probably be easier to rip, but as you said they have less content (but then again, the Wii version has exclusive content). In regards to ripping the .exa.snu files, I'm in the same boat - can't get anything out of them. I've tried towav.exe but it doesn't seem to do anything. All it ever outputs is "ToWav © Xplorer 2k6-2k9".

Now, in terms of ripping other stuff... yeah, not far there either. Almost everything is a .str file. The one exception to this is the FMVs, which are VP6. The video plays fine in VLC, but not the audio. But the audio can be opened in Audacity just fine. There's nothing unused in there though, so it's rather uninteresting.
Reply
Thanked by:
#6
(11-28-2018, 11:25 AM)Simpsons Dumper Wrote: I don't really want to bump this old thread, but don't really have a choice if I'm to add to the discussion. Venomrabbit still seems to log on. This thread also ranks well in Google search results.

Anyway, I've had a look at the Xbox 360 version. Not looked at the others... PS2 and such would probably be easier to rip, but as you said they have less content (but then again, the Wii version has exclusive content). In regards to ripping the .exa.snu files, I'm in the same boat - can't get anything out of them. I've tried towav.exe but it doesn't seem to do anything. All it ever outputs is "ToWav © Xplorer 2k6-2k9".

Now, in terms of ripping other stuff... yeah, not far there either. Almost everything is a .str file. The one exception to this is the FMVs, which are VP6. The video plays fine in VLC, but not the audio. But the audio can be opened in Audacity just fine. There's nothing unused in there though, so it's rather uninteresting.
You can just merge the video and audio in a video editor Tongue
Reply
Thanked by:
#7
(11-28-2018, 07:41 PM)Pingu! Wrote: You can just merge the video and audio in a video editor Tongue

Ehh, it's a lossy process and the container seems non-standard so it would probably trip most editors up. You may as well just upload to YouTube and download it again for that. It doesn't seem to have any issue with them: https://youtu.be/qGoZ8amgbXE

Although using ffmpeg you can copy the VP6 stream into an MKV container losslessly and convert the audio into FLAC or whatever. This also fixes the seeking issues with the original files.
Reply
Thanked by:
#8
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:
  • 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.
  1. All directories in the parent directory (..) get stored in $dirs as an array.
  2. It loops through each directory in $dirs, storing them one at a time in $dir as a string.
  3. Slashes are removed from the directory name.
  4. 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.
  5. The files in the directory $dir are stored in $files as an array.
  6. The directory $dir is created in the current directory.
    Note for Windows users and sane people: Use the mkdir function.
  7. It loops through each file, storing them one at a time in $filename as a string.
  8. 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.
And there we have it. I was not able to get into the .mus (music) files or the .str (general file container - includes SFX, models and more) files. You might not realise this, but it is perfectly possible to open the .lua files with a plain old text editor. They contain some interesting things, such as old level names. If you have a modded Xbox or PlayStation, I should think these can be easily edited for experimentation purposes.

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.


Attached Files
.zip   simpsons game sample.zip (Size: 375.37 KB / Downloads: 356)
Reply
Thanked by: Saeid0034
#9
(07-08-2019, 06:51 PM)Simpsons Dumper Wrote: 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:
  • 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.
  1. All directories in the parent directory (..) get stored in $dirs as an array.
  2. It loops through each directory in $dirs, storing them one at a time in $dir as a string.
  3. Slashes are removed from the directory name.
  4. 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.
  5. The files in the directory $dir are stored in $files as an array.
  6. The directory $dir is created in the current directory.
    Note for Windows users and sane people: Use the mkdir function.
  7. It loops through each file, storing them one at a time in $filename as a string.
  8. 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.
And there we have it. I was not able to get into the .mus (music) files or the .str (general file container - includes SFX, models and more) files. You might not realise this, but it is perfectly possible to open the .lua files with a plain old text editor. They contain some interesting things, such as old level names. If you have a modded Xbox or PlayStation, I should think these can be easily edited for experimentation purposes.

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.
hi tnx for your perefect guide
can you lead me a way to import wav file back?
Reply
Thanked by:
#10
There is no functionality for reimport as this method is only for decoding and not encoding. Ffmpeg may support reencoding, but im not familiar with these parameters.
Reply
Thanked by: Saeid0034
#11
(03-28-2020, 02:22 PM)Pingu! Wrote: There is no functionality for reimport as this method is only for decoding and not encoding. Ffmpeg may support reencoding, but im not familiar with these parameters.
iit say this file encoded with Electronic Arts EA-XAS 4-bit ADPCM v1
ffmpeg support this type?
[Image: Annotation-2020-03-29-004347.png]

[Image: Annotation-2020-03-29-005456.png]
???
Reply
Thanked by:
#12
I don't know. I'm not familiar with re-encoding.
Reply
Thanked by: Saeid0034
#13
I don't think ffmpeg can encode or even decode these files.
Reply
Thanked by: Saeid0034
#14
(03-28-2020, 07:06 PM)Simpsons Dumper Wrote: I don't think ffmpeg can encode or even decode these files.
sadly i cant find anyway for do this
and you right ffmpeg cant even decode this files
Reply
Thanked by:


Forum Jump: