XeNTaX
http://forum.xentax.com/

My quickBMS scripts
http://forum.xentax.com/viewtopic.php?f=13&t=4450
Page 28 of 32

Author:  AlphaTwentyThree [ Mon Sep 02, 2013 9:32 am ]
Post subject:  Re: My quickBMS scripts

DARK (2013) PC - *.darkpack

Very very easy archive format.

Code:
# extracts the *.darkpack archives from "DARK" (PC, 2013)
# (c) 2013-09-02 by AlphaTwentyThree of XeNTaX
# script for QuickBMS http://quickbms.aluigi.org

idstring "DARKPACK"
goto 8
get TOC_SIZE long
get FILES long
for i = 1 <= FILES
   get OFFSET long
   get ZERO long
   get CRC long
   get ZERO long
   get SIZE long
   get NAMEL long
   getDstring NAME NAMEL
   log NAME OFFSET SIZE
next i

Author:  arg274 [ Tue Sep 03, 2013 7:13 pm ]
Post subject:  Re: My quickBMS scripts

Hey alphatwentythree,can u whip off a bms for scanning and ripping *.pmf files from an unknown archive?or,can you at least tell me the read size at offset value so that i can use it with JN? :roll:

Author:  AlphaTwentyThree [ Tue Sep 03, 2013 8:59 pm ]
Post subject:  Re: My quickBMS scripts

arg274 wrote:
Hey alphatwentythree,can u whip off a bms for scanning and ripping *.pmf files from an unknown archive?or,can you at least tell me the read size at offset value so that i can use it with JN? :roll:

Here's my old PMF scanner. ;)
Code:
for i = 1
   FindLoc OFFSET string "PSMF00" 0 ""
   if OFFSET == ""
      cleanexit
   endif
   goto OFFSET
   get DUMMY long
   get DUMMY long
   get DUMMY long
   get SIZE long
   get NAME basename
   string NAME += "_"
   string NAME += i
   string NAME += ".pmf"
   log NAME OFFSET SIZE
   math OFFSET += SIZE
   goto OFFSET
next i

Author:  arg274 [ Wed Sep 04, 2013 5:00 pm ]
Post subject:  Re: My quickBMS scripts

thnx man,thumbs up!

Author:  AlphaTwentyThree [ Sun Sep 08, 2013 1:20 pm ]
Post subject:  Re: My quickBMS scripts

AFL Live 2 (2013) X360 - .wad0/.wad1

Be sure to get the latest func_getTYPE.bms for this one!

Code:
# extracts the game data from "AFL Live 2" (X360, 2013)
# (c) 2013-09-08 by AlphaTwentyThree of XeNTaX
# script for QuickBMS http://quickbms.aluigi.org

include "func_getTYPE.bms"
open FDDE wad0 0
open FDDE wad1 1
endian big
get FILES long 0
get UNK long 0
set BIAS files
math BIAS *= 0x10
math BIAS += 8
for i = 1 <= FILES
   get NAME long # crc
   string NAME p= "0x%08x" NAME
   get SIZE long
   get FILE long
   get OFFSET long
   putVarChr MEMORY_FILE SIZE 0
   log MEMORY_FILE 0 0
   append
   append
   if FILE == 0
      math OFFSET += BIAS
      log MEMORY_FILE OFFSET SIZE 0
   elif FILE == 1
      log MEMORY_FILE OFFSET SIZE 1
   endif
   callfunction getType 1
   endian big
   string NAME += EXT
   log NAME 0 SIZE MEMORY_FILE
next i

Author:  AlphaTwentyThree [ Sat Oct 05, 2013 4:41 pm ]
Post subject:  Re: My quickBMS scripts

9 Clues: The Secret of Serpent Creek - Game.cub

xor150 first, then apply this script.

Code:
# extracts the Game.cub from "9 Clues: The Secret of Serpent Creek" (2013, PC)
# (c) 2013-10-05 by AlphaTwentyThree of XeNTaX
# script for QuickBMS http://quickbms.aluigi.org

idstring \x63\x75\x62\x00\x31\x2E\x30\x00
get FILES long
goto 0x10c
for i = 1 <= FILES
   getDstring NAME 0x100
   get OFFSET long
   get SIZE long
   log NAME OFFSET SIZE
next i

Author:  AlphaTwentyThree [ Sun Oct 06, 2013 12:07 am ]
Post subject:  Re: My quickBMS scripts

Full Mojo Rampage (2013) PC - DataPC.pak

Code:
# extract the DataPC.pak of "Full Mojo Rampage" (PC, 2013)
# (c) 2013-10-06 by AlphaTwentyThree of XeNTaX
# script for QuickBMS http://quickbms.aluigi.org

idstring KCAP
endian big
goto 0xc
get FILES long
set BIAS FILES
math BIAS *= 0x120
math BIAS += 0x20
get OFF asize
math OFF -= BIAS
goto OFF
for i = 1 <= FILES
   getDstring NAME 0x100
   get ZSIZE long
   get SIZE long
   get OFFSET long
   get IDENT long
   getDstring DUMMY 0x10
   if IDENT == 1
      clog NAME OFFSET SIZE ZSIZE
   else
      log NAME OFFSET SIZE
   endif
next i

Author:  arg274 [ Sat Oct 12, 2013 11:53 am ]
Post subject:  Re: My quickBMS scripts

can u do a GZip scanning bms,alpha?i only need a scanner one,no need to create a decomprssor too.

Author:  AlphaTwentyThree [ Sat Oct 12, 2013 2:41 pm ]
Post subject:  Re: My quickBMS scripts

arg274 wrote:
can u do a GZip scanning bms,alpha?i only need a scanner one,no need to create a decomprssor too.
Well... I don't know the specs, but maybe offzip works? You can also try to use my generic splitter.

Author:  arg274 [ Sat Oct 12, 2013 4:31 pm ]
Post subject:  Re: My quickBMS scripts

AlphaTwentyThree wrote:
arg274 wrote:
can u do a GZip scanning bms,alpha?i only need a scanner one,no need to create a decomprssor too.
Well... I don't know the specs, but maybe offzip works? You can also try to use my generic splitter.

meh,tried offzip quite some time ago but somehow,didnt work for me.i'll give your splitter a try.

Author:  AlphaTwentyThree [ Sun Oct 20, 2013 7:50 pm ]
Post subject:  Re: My quickBMS scripts

Alien Rage Unlimited (2013) PC - SNDTABLE.AFB/SNDCACHE.AFB

Code:
# Alien Rage Unlimited (2013) PC
# extracts the sounds from the SNDTABLE.AFB/SNDCACHE.AFB
# (c) 2013-10-20 by AlphaTwentyThree of XeNTaX
# script for QuickBMS http://quickbms.aluigi.org

open FDSE "SNDTABLE.AFB" 0
open FDSE "SNDCACHE.AFB" 1

get FILES long 0
for i = 1 <= FILES
   get OFFSET long 0
   get SIZE long 0
   get NAMEL long 0
   math NAMEL *= 2
   getDstring UNINAME NAMEL 0
   set NAME unicode UNINAME
   callfunction transname 1
   string NAME += ".ogg"
   log NAME OFFSET SIZE 1
next i

startfunction transname
   math NAMEL /= 2
   for k = 0 < NAMEL
      getVarChr TEST NAME k
      if TEST == 0x2e
         putVarChr NAME k 0x2f
      endif
   next k
endfunction

Author:  AlphaTwentyThree [ Mon Oct 28, 2013 3:00 pm ]
Post subject:  Re: My quickBMS scripts

Wwise *.bnk soundbank extractor

Somehow I never posted this...

Code:
# extracts sound files from Wwise *.bnk soundbanks
# (c) 2013-10-28 by AlphaTwentyThree of Xentax
# script for QuickBMS http://quickbms.aluigi.org

include "func_getTYPE.bms"
idstring "BKHD"
get SIZE_HEADER long
savepos MYOFF
math MYOFF += SIZE_HEADER
get FSIZE asize
if MYOFF == FSIZE
   print "bnk is empty"
   cleanexit
endif
goto MYOFF
idstring "DIDX"
get SIZE_DIDX long
set FILES SIZE_DIDX
math FILES /= 0xc
set BIAS MYOFF # complete header
math BIAS += SIZE_DIDX
math BIAS += 16
get BNAME basename
for i = 1 <= FILES
   get DIDX long
   get OFFSET long
   math OFFSET += BIAS
   get SIZE long
   set NAME DIDX
   string NAME += " ("
   string NAME += BNAME
   string NAME += ")"
   putVarChr MEMORY_FILE SIZE 0
   log MEMORY_FILE 0 0
   append
   log MEMORY_FILE OFFSET SIZE
   append
   callfunction getTYPE 1
   string NAME += EXT
   log NAME OFFSET SIZE
next i

Author:  AlphaTwentyThree [ Tue Oct 29, 2013 9:23 pm ]
Post subject:  Re: My quickBMS scripts

Simple audio file sorter

This could come in helpful when you rip a game with the Wwise engine and have thousands of files but don't know what type of sound the file is (music, sfx, ambience, speech etc.).
Just run all the files through the script, it will sort them according to their frequency and channels. Will save you a LOT of time when it comes to music processing!
Also: Good script for beginners. ;)

Code:
getDstring IDENT 4
if IDENT == "OggS"
   goto 0x27
   get CH byte
   get FREQ short
elif IDENT == "RIFF"
   goto 0x16
   get CH short
   get FREQ long
endif
get FNAME filename
string NAME p= "%d_%d/%s" FREQ CH FNAME
get SIZE asize
log NAME 0 SIZE

Author:  AlphaTwentyThree [ Wed Oct 30, 2013 11:34 am ]
Post subject:  Re: My quickBMS scripts

UPDATE

Just updated my generic file splitter with an additional option that makes it a generic filetype scanner (!!!).
Funny thing is that it was really easy to implement, I just didn't see the obvious. ;)

Author:  AlphaTwentyThree [ Sun Jan 05, 2014 5:14 pm ]
Post subject:  Re: My quickBMS scripts

Reservoir Dogs (PS2) - *.PS2

The sounds in this game are wav/wav.str pairs. Maybe I'll take a look at these some other time.

Code:
# Reservoir Dogs (PS2) - *.PS2 extractor
# (c) 2014-01-05 by AlphaTwentyThree of XeNTaX
# script for QuickBMS http://quickbms.aluigi.org

goto 0xc
get FILES long
get OFF_INFO long
math OFF_INFO *= 0x800
goto 0x28
get OFF_NAMES long
math OFF_NAMES *= 0x800
goto OFF_INFO
for i = 1 <= FILES
   get OFFSET long
   get CRC long
   get SIZE long
   get NAMEPOS long
   math NAMEPOS += OFF_NAMES
   get UNK long # always 1
   get UNK long # 0 or 4
   get UNK long
   get UNK long
   
   math OFFSET *= 0x800
   savepos MYOFF
   goto NAMEPOS
   get NAME string
   goto MYOFF
   
   get WNAME basename
   string WNAME += "/"
   string WNAME += NAME
   log WNAME OFFSET SIZE
next i

Page 28 of 32 All times are UTC + 1 hour
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/