ZenHAX

Free Game Research Forum | Official QuickBMS support | twitter @zenhax | SSL HTTPS://zenhax.com
It is currently Wed Oct 18, 2017 9:15 am

All times are UTC




Post new topic  Reply to topic  [ 16 posts ] 
Author Message
 Post subject: DarkestDungeon (.bank)
PostPosted: Wed Feb 04, 2015 8:05 am 

Joined: Sun Aug 24, 2014 8:54 am
Posts: 139
Samples´╝Ü
http://www41.zippyshare.com/v/OtQ4j6VV/file.html


Top
   
PostPosted: Wed Feb 04, 2015 2:34 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 6869
Use fsbext with the -o -1 option which scans the file for FSB archives.


Top
   
PostPosted: Thu Feb 05, 2015 1:20 am 

Joined: Sun Aug 24, 2014 8:54 am
Posts: 139
thanks,but how to get have fsb head Original raw data??


Top
   
PostPosted: Thu Feb 05, 2015 9:47 am 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 6869
The easy way is opening the file with a hex editor and searching "FSB5", dump everything from there till the end of the file as a fsb archive.
Why you need that?


Top
   
PostPosted: Thu Feb 05, 2015 10:48 am 

Joined: Sun Aug 24, 2014 8:54 am
Posts: 139
Because need .fev+fsb file, use FMOD Designer play,or converts a multi-stream .fsb into a set of single-stream .fsbs, suitable for use with vgmstream


Top
   
PostPosted: Mon Jul 20, 2015 3:05 pm 
User avatar

Joined: Thu Oct 02, 2014 4:58 pm
Posts: 148
Hi! i asked time ago if it's possible to make bms script to dump the raw data like @happyend is requesting
Actually we have a FSB4 dumper

Code:
# dump FSBs
# script for QuickBMS http://quickbms.aluigi.org

for
    findloc OFFSET string "FSB" 0 ""
    if OFFSET == ""
        cleanexit
    endif
    goto OFFSET
    getdstring FSB_SIGN 3
    get FSB_VER byte
    get DUMMY long
    get HEADER_SIZE long
    get DATA_SIZE long
    if FSB_VER == '4'
        math SIZE = 0x30
    elif FSB_VER == '3'
        math SIZE = 0x18
    elif FSB_VER == '2'
        math SIZE = 0x10
    elif FSB_VER == '1'
        math SIZE = 0x10
        math DATA_SIZE = HEADER_SIZE
        math HEADER_SIZE = 0
    else
        #print "FSB version %FSB_VER% not supported"
        #cleanexit
        math SIZE = -1
    endif
    if SIZE == -1
        math SIZE = 4
    else
        math SIZE += HEADER_SIZE
        math SIZE += DATA_SIZE
        log "" OFFSET SIZE
    endif
    math OFFSET += SIZE
    goto OFFSET
next


Aluigi or any other, i't s possible to enhance" the script?
Thanks!


Top
   
PostPosted: Mon Jul 20, 2015 5:59 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 6869
Don't you really like fsbext -o -1 ?


Top
   
PostPosted: Mon Jul 20, 2015 6:14 pm 
User avatar

Joined: Thu Oct 02, 2014 4:58 pm
Posts: 148
aluigi wrote:
Don't you really like fsbext -o -1 ?

Not really in this case, the idea is to dump the full FSB5 files, not extract the data form the FSB5


Top
   
PostPosted: Mon Jul 20, 2015 6:22 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 6869
for FSB5 try with:
Code:
    elif FSB_VER == '5'
        math SIZE = 0x3c


Top
   
PostPosted: Mon Jul 20, 2015 8:45 pm 
User avatar

Joined: Thu Oct 02, 2014 4:58 pm
Posts: 148
Thanks, but only dumps a few bytes
Code:
# dump FSBs
# script for QuickBMS http://quickbms.aluigi.org

for
    findloc OFFSET string "FSB" 0 ""
    if OFFSET == ""
        cleanexit
    endif
    goto OFFSET
    getdstring FSB_SIGN 3
    get FSB_VER byte
    get DUMMY long
    get HEADER_SIZE long
    get DATA_SIZE long
    if FSB_VER == '4'
        math SIZE = 0x30
    elif FSB_VER == '3'
        math SIZE = 0x18
    elif FSB_VER == '5'
        math SIZE = 0x3c
    elif FSB_VER == '2'
        math SIZE = 0x10
    elif FSB_VER == '1'
        math SIZE = 0x10
        math DATA_SIZE = HEADER_SIZE
        math HEADER_SIZE = 0
    else
        #print "FSB version %FSB_VER% not supported"
        #cleanexit
        math SIZE = -1
    endif
    if SIZE == -1
        math SIZE = 4
    else
        math SIZE += HEADER_SIZE
        math SIZE += DATA_SIZE
        log "" OFFSET SIZE
    endif
    math OFFSET += SIZE
    goto OFFSET
next


Top
   
PostPosted: Tue Jul 21, 2015 3:46 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 6869
Code:
for OFFSET = 0
    goto OFFSET
    findloc OFFSET string "FSB5"
    goto OFFSET
    getdstring FSB_SIGN 4   # FSOUND_FSB_HEADER_FSB5 (fsb.h)
    get version long
    get numsamples long
    get shdrsize long
    get namesize long
    get datasize long
    xmath SIZE "0x3c + shdrsize + namesize + datasize"
    log "" OFFSET SIZE
next OFFSET + SIZE


Top
   
PostPosted: Tue Jul 21, 2015 6:08 pm 
User avatar

Joined: Thu Oct 02, 2014 4:58 pm
Posts: 148
Thanks! works great :D


Top
   
PostPosted: Wed Aug 05, 2015 8:01 pm 
User avatar

Joined: Wed Aug 05, 2015 7:40 pm
Posts: 1
Thanks. :)


Top
   
PostPosted: Sat Aug 22, 2015 5:37 pm 

Joined: Sat Aug 22, 2015 5:35 pm
Posts: 1
Hey guys, I don't know how to dumb the .bank file. Even, I don't know how to use the Hex editor!
Any updates for fsbext or FsbExtractor to do the job? Anyone can make a tool to make these .wav files playable?
Thanks.


Top
   
PostPosted: Sat Aug 29, 2015 3:19 pm 
Site Admin
User avatar

Joined: Wed Jul 30, 2014 9:32 pm
Posts: 6869
I don't have the game so I can't help with these output files.
Anyway the OGG files of FSB5 are not supported yet by fsbext (it dumps them as-is) while the other files are extracted with the appropriate header like RIFF for pcm wav or vag and genh for the ps* and Nintendo files. Obviously you need the appropriate player to play them, usually the vgmstream plugin for winamp does the job.


Top
   
PostPosted: Sun Feb 12, 2017 7:37 pm 
User avatar

Joined: Tue Feb 02, 2016 2:35 am
Posts: 962
Here is an "updated" version of dump_fsbs.bms script, this time I added (as-of-yet-untested) FSB5 support.
Code:
for
    findloc OFFSET string "FSB" 0 ""
    if OFFSET == ""
        cleanexit
    endif
    goto OFFSET
    getdstring FSB_SIGN 3
    get FSB_VER byte
    get DUMMY long
    get HEADER_SIZE long
    get DATA_SIZE long
   if FSB_VER == '5'
      getdstring FSB_SIGN 4
      get VERSION long
      get TOTALSAMPLES long
      get SHDRSIZE long
      get NAMESIZE long
      get DATASIZE long
      xmath SIZE "0x3c + SHDRSIZE + NAMESIZE + DATASIZE"
    elif FSB_VER == '4'
        math SIZE = 0x30
    elif FSB_VER == '3'
        math SIZE = 0x18
    elif FSB_VER == '2'
        math SIZE = 0x10
    elif FSB_VER == '1'
        math SIZE = 0x10
        math DATA_SIZE = HEADER_SIZE
        math HEADER_SIZE = 0
    else
        #print "FSB version %FSB_VER% not supported"
        #cleanexit
        math SIZE = -1
    endif
    if SIZE == -1
        math SIZE = 4
    else
        math SIZE += HEADER_SIZE
        math SIZE += DATA_SIZE
      callfunction GET_NAME 1
        log NAME OFFSET SIZE
    endif
    math OFFSET += SIZE
    goto OFFSET
next

startfunction GET_NAME
   if FSB_VER != '5'
      if DUMMY == 1
         xmath NAME_OFFSET "OFFSET + 0x32"
         goto NAME_OFFSET
         savepos TMP
         getdstring NAME 0x1e
         string NAME += ".fsb"
         goto TMP
      else
         set NAME string ""
      endif
   else
      break   # I don`t have any FSB5 files at the moment
   endif
endfunction

_________________
Expect my username to be everywhere, whether you're using the internet or not.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 16 posts ] 

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