ZenHAX

Free Game Research Forum | Official QuickBMS support | twitter @zenhax | SSL HTTPS://zenhax.com
It is currently Fri Aug 18, 2017 5:08 am

All times are UTC




Post new topic  Reply to topic  [ 76 posts ]  Go to page Previous 1 2 3 4
Author Message
PostPosted: Sun May 10, 2015 5:38 pm 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 580
id-daemon2 wrote:
AlphaTwentyThree wrote:
What exactly does your tool do? Doesn't it read the offsets and sizes of the ogg containers and sends them through the dll to decode?


No. It passes the whole FSB file to the dll.

Ok, I didn't know that... Seems like I'll have to give it a try after all... ;)


Top
   
PostPosted: Mon May 11, 2015 1:44 pm 

Joined: Fri Aug 08, 2014 11:25 am
Posts: 94
id-daemon2 wrote:
This may mean there's no names inside the FSB. Can you send me an example file?


Sure, here's an example file. It doesn't have the filename inside the FSB so maybe you could add that to your program? If no string ID is found for a name then it uses the basename of the FSB file adding a _1, _2 etc or something if there is more than one file :)

Sample File


Top
   
PostPosted: Mon May 11, 2015 2:34 pm 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 580
Else... could you upload the source code somwhere? Maybe somebody is able to write an according QuickBMS script which eventually can be rewritten to split FSB5 containers?


Top
   
PostPosted: Mon May 11, 2015 2:39 pm 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 628
AlphaTwentyThree wrote:
Else... could you upload the source code somwhere? Maybe somebody is able to write an according QuickBMS script which eventually can be rewritten to split FSB5 containers?


Sure, here it is. But it will not help a bit to write any scripts:

Code:
result = sound->getNumSubSounds(&numsubsounds);
result = sound->getFormat(&stype,&sformat,&s_channels,&s_bits);

for (i=0;i<numsubsounds;i++)
{
   sound->getSubSound(i, &sound_to_play);
   sound_to_play->seekData(0);
   result = sound_to_play->getDefaults(&s_freq,&s_bits);
   result = sound_to_play->getFormat(&stype,&sformat,&s_chan_this,&s_bits);
   result = sound_to_play->getLength(&bs, FMOD_TIMEUNIT_PCM);
   result = sound_to_play->getName(fnn,nl);
   buffer = (char*)malloc(bs*s_channels*s_bits/8);
   result = sound_to_play->readData(buffer,bs*s_channels*s_bits/8,&br);
   FILE *file = NULL;
   file = fopen(strcat(fnn,".wav"), "wb");
   WriteWaveHeader(file,(unsigned long)s_freq,s_bits,s_channels,br);
   fwrite (buffer, br,1,file);
   fclose(file);
}


Top
   
PostPosted: Mon May 11, 2015 3:15 pm 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 628
Here's a new version that will output numbered filenames if there are none inside of FSB. Also some basic error handling added, so if you give it a wrong file, it won't crash, but give you proper error message.


Top
   
PostPosted: Mon May 11, 2015 4:47 pm 

Joined: Fri Aug 08, 2014 11:25 am
Posts: 94
Fantastic, thank you for the update :)


Top
   
PostPosted: Mon May 11, 2015 5:05 pm 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 628
You're welcome. Maybe in case of only 1 file it's better not to add that _0 ?


Top
   
PostPosted: Tue May 12, 2015 8:29 am 

Joined: Fri Aug 08, 2014 11:25 am
Posts: 94
Yeah probably not if there's only a single FSB.

Files that have more than one FSB in them should add the numbers like _1, _2, _3 etc at the end :)


Top
   
PostPosted: Wed May 20, 2015 4:07 pm 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 580
I encountered a file in "DeadCore" that throws an error message: http://*USE_ANOTHER_FILEHOSTING*/dd125ee ... amBank.fsb


Top
   
PostPosted: Wed May 20, 2015 5:46 pm 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 628
probably out of memory error, because i never released any memory :)

I never expected it to be used on files that large. What is the error message?


Top
   
PostPosted: Thu May 21, 2015 6:27 am 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 580
id-daemon2 wrote:
probably out of memory error, because i never released any memory :)

I never expected it to be used on files that large. What is the error message?

Something like "Wrong parameter given"...


Top
   
PostPosted: Thu May 21, 2015 4:23 pm 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 628
ok it was from out of memory. Fixed.


Top
   
PostPosted: Thu May 21, 2015 6:26 pm 

Joined: Sat Aug 09, 2014 11:21 am
Posts: 580
Cool thanks! :D


Top
   
PostPosted: Fri Jul 03, 2015 12:38 pm 

Joined: Fri Jul 03, 2015 12:36 pm
Posts: 1
Works flawlessly on SND_*.xxx files (such as speech files). Has anybody found the characters' combat sounds yet? Like attack and hit sounds etc.?


Top
   
PostPosted: Fri Jul 03, 2015 4:41 pm 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 628
Wilbo22 wrote:
Has anybody found the characters' combat sounds yet? Like attack and hit sounds etc.?


Yes, they were all extracted. Read this thread. I don't remember now where it was written.


Top
   
PostPosted: Wed Aug 26, 2015 1:53 am 

Joined: Sat Aug 01, 2015 4:28 am
Posts: 2
id-daemon2 wrote:
ok it was from out of memory. Fixed.


Thanks a lot for this tool!
I was able to use it on another game: The Forest (unity v5).
Couldn't find anything decent to properly handle FSB archives, especially where duplicate names existed (GUI's terminate early with no options).

This solved all my problems! :)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 76 posts ]  Go to page Previous 1 2 3 4

All times are UTC


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Limited