Jump to content

How to extract .ent files?


Go to solution Solved by wq223,

Recommended Posts

  • Supporter
Posted
4 hours ago, wesername said:

Hello everyone, I'm new to this forum, I have extracted Urban Chaos Riot Response xbox version. now I don't have any clue how to open these extracted files

Thanks for your assists. 

Untitled.png

If you don't provide a file, even those who know it will not be able to help you directly

Posted
6 hours ago, wq223 said:

The file is compressed by zlib. The previous part should be an index table. You can try to use the index table to parse it.

thanks dude, you mean I have to use it to parse the ent file it self or SAF?

Untitled.png

  • Supporter
Posted
6 hours ago, wesername said:

谢谢老兄,你的意思是我必须用它来解析 ent 文件本身还是 SAF?

无标题.png

You can try to parse ent and geo files with this script, and you will get a lot of disassembled files

Urban_Chaos_ent.zip

  • Thanks 1
  • Supporter
Posted
6 hours ago, wesername said:

thanks dude, you mean I have to use it to parse the ent file it self or SAF?

Untitled.png

For .saf files try to extract with this python script, if there is no problem you will get a bunch of .wav files

saf.py

  • Like 1
  • Thanks 1
  • Engineers
Posted (edited)

The extracted wav files (8 bit PCM?) seem to need some noise reduction?

(For example 1-01warehouse001.wav, raw import to audacity, you can hear the sound but rather noisy.)

Increasing the sample rate helps a little bit.

Edited by shak-otay
Posted
1 hour ago, shak-otay said:

The extracted wav files (8 bit PCM?) seem to need some noise reduction?

(For example 1-01warehouse001.wav, raw import to audacity, you can hear the sound but rather noisy.)

Increasing the sample rate helps a little bit.

have you extracted wav files using the script he attached above?

Posted
5 minutes ago, shak-otay said:

In a command line type

python saf.py 1.saf Wav

where Wav needs to be an existing folder.

do you have discord ? can I send you PM there ?

Posted

They are *almost* normal wave files.  For some reason the type is "WAVS" and not "WAVE" that prevents them playing.  It uses XBox ADPCM which will play fine in vgmstream, but the "WAVS" needs to be changed to "WAVE" in each file.

 

 

  • Like 2
Posted
1 hour ago, DKDave said:

They are *almost* normal wave files.  For some reason the type is "WAVS" and not "WAVE" that prevents them playing.  It uses XBox ADPCM which will play fine in vgmstream, but the "WAVS" needs to be changed to "WAVE" in each file.

 

Can't play them, do you have a way to do it ?

 

 

Posted
8 minutes ago, wesername said:

 

Not properly, no.  Part of the issue is that the .saf file contains audio for 4 different languages all with the same filenames.  The .ent file seems to contain audio headers that have folder names, but it's not clear how to link those to the data in the .saf archive.

 

If the python script above extracts the data correctly, then it should be just a simple amendment to alter "WAVS" to "WAVE" in the header before extracting.  Maybe wq can amend the script for you.

 

Posted
2 minutes ago, DKDave said:

Not properly, no.  Part of the issue is that the .saf file contains audio for 4 different languages all with the same filenames.  The .ent file seems to contain audio headers that have folder names, but it's not clear how to link those to the data in the .saf archive.

 

If the python script above extracts the data correctly, then it should be just a simple amendment to alter "WAVS" to "WAVE" in the header before extracting.  Maybe wq can amend the script for you.

 

can we try ps2 version ?

 

  • Supporter
  • Solution
Posted
4 hours ago, wesername said:

你能告诉我怎么用吗?我用 Python 运行了这个脚本,但什么也没做。

 

I checked the wav file (WAVS) that was unzipped from the compressed file and found that the value represented by the file size is counted after the file size, not from the flag (RIFF), but the flag and size must exist.
I updated the script to make sure the extracted file size is counted after these eight bytes to make sure the extracted .wav file is complete
In addition, the WAVS of the file is also modified to WAVE by the way
Because it is not modified, vgmstream cannot be converted
Convert with vgmsstream
https://vgmstream.org/
https://github.com/vgmstream/vgmstream
By the way, you can run the script like this
python saf.py saf file output folder

saf.py

  • Thanks 2
  • Supporter
Posted

Most of the wav files extracted from ent and geo are already in WAVE format, but a small number of them are still WAVS.

If you encounter it, you can try to modify it manually

  • Engineers
Posted

Thanks - those missing 8 bytes did the trick:

test 1-01warehouse001.wav
decoding 1-01warehouse001.wav
sample rate 29249 Hz
channels: 2
stream total samples: 897408 (30.6817 seconds)
encoding: Microsoft 4-bit IMA ADPCM
layout: flat (no layout)
metadata from: RIFF WAVE header
samples to play: 897408 (30.6817 seconds)

 

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...