Page 2 of 2
Re: Need for speed 2015 (2016) PC Audio
Posted: Tue Apr 05, 2016 4:51 pm
by daemon1
Find decode function
Code: Select all
def decode(self):
if not self.prim.desc.name=="SoundWaveAsset": return
and comment the check
Code: Select all
def decode(self):
# if not self.prim.desc.name=="SoundWaveAsset": return
then go a little down and after this line
Code: Select all
chnk.ChunkId=i.value.get("ChunkId").value
add this
Code: Select all
chnk.ChunkId=i.value.get("ChunkId").value
print hexlify(chnk.ChunkId)
return
Then if you delete all EBX files except those you need, you'll get a list of chunk names to decode
Re: Need for speed 2015 (2016) PC Audio
Posted: Tue Apr 05, 2016 7:32 pm
by Svennixx
It doesn't want to print there. Not even print "test".
Code: Select all
def decode(self):
#if not self.prim.desc.name=="SoundWaveAsset": return
histogram=dict() #count the number of times each chunk is used by a variation to obtain the right index
Chunks=[]
for i in self.prim.get("$::SoundDataAsset/Chunks::array").fields:
chnk=Stub()
Chunks.append(chnk)
chnk.ChunkId=i.value.get("ChunkId").value
print hexlify(chnk.ChunkId)
return
if ChunkIdObfuscation: chnk.ChunkId="".join([chnk.ChunkId[permute] for permute in obfuscationPermutation])
chnk.ChunkSize=i.value.get("ChunkSize").value
Re: Need for speed 2015 (2016) PC Audio
Posted: Tue Apr 05, 2016 7:36 pm
by daemon1
so what do you get in output? only ebx names?
Re: Need for speed 2015 (2016) PC Audio
Posted: Tue Apr 05, 2016 7:38 pm
by Svennixx
daemon1 wrote:so what do you get in output? only ebx names?
did you comment the line as i said ?
Yeah i only get .ebx names like so:
Code: Select all
toyota_supra_sz-r.ebx
toyota_supra_sz-r_overrun.ebx
toyota_supra_sz-r_playerracevehicleaudio.ebx
toyota_supra_sz-r_transmission.ebx
toyota_supra_sz-r_accel_eng_pitched_noise.ebx
toyota_supra_sz-r_accel_eng_pitched_tone.ebx
toyota_supra_sz-r_accel_exh_pitched_noise.ebx
toyota_supra_sz-r_accel_exh_pitched_tone.ebx
toyota_supra_sz-r_decel2_eng_pitched_noise.ebx
toyota_supra_sz-r_decel2_eng_pitched_tone.ebx
toyota_supra_sz-r_decel2_exh_pitched_noise.ebx
toyota_supra_sz-r_decel2_exh_pitched_tone.ebx
toyota_supra_sz-r_idle_eng.ebx
toyota_supra_sz-r_idle_exh.ebx
toyota_supra_sz-r_ignition.ebx
toyota_supra_sz-r_shutdown_eng.ebx
toyota_supra_sz-r_shutdown_exh.ebx
I put the snippet of the script that needed to change up at my other reply
Re: Need for speed 2015 (2016) PC Audio
Posted: Tue Apr 05, 2016 7:42 pm
by daemon1
these ebx's are not the same as the ones you sent me yesterday
try with those accel & decel
Re: Need for speed 2015 (2016) PC Audio
Posted: Tue Apr 05, 2016 7:45 pm
by Svennixx
Code: Select all
nissan_180sx_accel_eng_02_rx_noise.ebx
nissan_180sx_accel_eng_02_rx_tone.ebx
nissan_180sx_accel_exh_02_dyn_tone.ebx
nissan_180sx_accel_int_03_dyn_noise.ebx
nissan_180sx_accel_int_03_dyn_tone.ebx
nissan_180sx_decel_eng_rx_noise.ebx
nissan_180sx_decel_eng_rx_tone.ebx
nissan_180sx_decel_exh_rx_noise.ebx
nissan_180sx_decel_exh_rx_tone.ebx
Same thing... It's weird that it doesn't print in that for loop. I'm not familiair with python but I use c# everyday. So idk if its a python thing or just something wrong in my code.
Re: Need for speed 2015 (2016) PC Audio
Posted: Tue Apr 05, 2016 8:26 pm
by daemon1
looks like the script is not changed at all. Do you save it before running? Try restarting python, deleting PYC files if there are any
Re: Need for speed 2015 (2016) PC Audio
Posted: Thu Jun 29, 2017 7:15 am
by ehwasilii
daemon1 wrote:looks like the script is not changed at all. Do you save it before running? Try restarting python, deleting PYC files if there are any
A small bump, if I may.
I'm trying to do exactly the same: extract engine sounds. I've come to the point, where I successfully converted chunk you gave with your tool.
Following your instructions and editing fb3decoder script to find all the chunks I need, I'm getting an error if I comment out check (if not self.prim.desc.name=="SoundWaveAsset": return):
Code: Select all
Traceback (most recent call last):
File "C:\Python27\fb3decoder\fb3decoder.py", line 569, in <module>
main()
File "C:\Python27\fb3decoder\fb3decoder.py", line 566, in main
dbx.decode()
File "C:\Python27\fb3decoder\fb3decoder.py", line 426, in decode
for i in self.prim.get("$::SoundDataAsset/Chunks::array").fields:
File "C:\Python27\fb3decoder\fb3decoder.py", line 197, in get
raise Exception("Could not find complex with name: "+str(e)+"\nFull path: "+name+"\nFilename: "+self.dbx.trueFilename)
Exception: Could not find complex with name: $::SoundDataAsset
Full path: $::SoundDataAsset/Chunks::array
Filename: Audio/Cars/CarEngine/LAMBORGHINI_AVENTADOR/Lamborghini_Aventador_Transmission
not sure what's next.
upd: everything else in ebx is deleted
ps: pretty much thank you for all the works and tools you've done.
Re: Need for speed 2015 (2016) PC Audio
Posted: Thu Jun 29, 2017 1:07 pm
by daemon1
unfortunately I don't remember much about this now.
Re: Need for speed 2015 (2016) PC Audio
Posted: Sun Sep 10, 2017 6:34 am
by soulweaver
Been messing around with these, haven't gotten far because it's not my forte. For the car audio fb3decoder is only picking up sounds in the 'renders' folder, I'm assuming everything else is able to be decoded with the GIN tool, but I don't know how to get the chunk id to attempt.
I'm not a hex genius but the files that fb3decoder can detect contain 'SoundWaveAsset' and the others do not, and their file structure looks very different.
https://mega.nz/#F!W4cQlYKT!jHe3Lyf3V0OWwUjJ_34KRg here's a link to the full folder of a car if somebody smart wants to take a look at the differences.
Edit: Did some more digging, the some other car sounds come under 'OctaneAsset' and I've been able to get the chunk ids using the code already there just with a simple if statement. Going to see if I can get it to open with the Gin decoder now and rename when it's done.
I'm no python genius either
Edit 2: Well it half worked. Some files that contain the 'OctanceAsset' are not decoded by GIN, but it just skips over them so no biggie, the main problem is that on some chunks the tool hangs, this is the first one it hits '144837870e001922903387d43fb710d2' which is 'Audio/Cars/CarEngine/Dodge_Viper_SRT/OctaneData/Dodge_Viper_Accel_ENG_Noise'. I'm no python genius and I can't figure out how to timeout a subprocess on 2.7 properly to just skip over it as a soft fix. Instead I'll just show you my edits on how to get the chunk id for those files.
Code: Select all
if not self.prim.desc.name=="SoundWaveAsset": return
changes to:
there is probably a better way for this but whatever
Code: Select all
if not self.prim.desc.name=="SoundWaveAsset":
if not self.prim.desc.name=="OctaneAsset": return
Code: Select all
chnk.ChunkId=i.value.get("ChunkId").value
underneath this add:
Code: Select all
if self.prim.desc.name=="OctaneAsset":
print self.trueFilename+ " | "+hexlify(chnk.ChunkId)
That will output the chunk id as well as the file it corresponds too.
Re: Need for speed 2015 (2016) PC Audio
Posted: Sun Sep 10, 2017 10:18 am
by soulweaver
Decoded gin files seem to have some distortion or something similar behind them. Hard to explain what the sound actually is, I guess kind of like a repeating sound or like sound lag.
https://mega.nz/#F!n4ME2ZSL!AjEjT9AAFUZ8tF1_I2LCZg contains an example of the distortion on the car sounds, and there are also other sounds decoded by the tool normally alongside for comparison too.