Page 24 of 33
Re: My quickBMS scripts
Posted: Tue Oct 09, 2012 10:12 pm
by AlphaTwentyThree
Dinoguy1000 wrote:AlphaTwentyThree wrote:I have a feeling that there's some better way to do this (since, according to my understanding, it's basically just a ceil() function with a custom "cutoff"), but my maths isn't strong enough to pick it out (I think bit-shifting would play a role, though... does QuickBMS actually support bit-wise manipulations?). =/
Damn, should have looked inside the documentation better... it's only called "alignment" there, which is nothing else than a ceil. Will change it in the scripts.

Re: My quickBMS scripts
Posted: Tue Oct 09, 2012 10:17 pm
by AlphaTwentyThree
Faster than Light dat extractor
All those easy formats provide excellent learning scripts.
Code: Select all
# FLT: Faster than Light (PC, 2012) *.dat extractor
# (c) 2012-10-09 by AlphaTwentyThree of XeNTaX
get FILES long
for i = 1 <= FILES
get OFFSET long
if OFFSET == 0
cleanexit
endif
savepos MYOFF
goto OFFSET
get SIZE long
get NAMEL long
getDstring NAME NAMEL
savepos OFFSET
log NAME OFFSET SIZE
goto MYOFF
next i
Re: My quickBMS scripts
Posted: Tue Oct 09, 2012 11:02 pm
by AlphaTwentyThree
War of the Human Tanks (2012, PC) - ald extractor
Bears a striking resemblance to the above format...
Code: Select all
# *.ald extractor for War of the Human Tanks (2012, PC)
# (c) 2012-10-10 by AlphaTwentyThree of XeNTaX
get UNK threebyte
get FSIZE asize
for i = 1
get OFFSET threebyte
math OFFSET *= 0x100
set TEST FSIZE
math TEST -= OFFSET
if TEST <= 0x20
cleanexit
endif
savepos MYOFF
goto OFFSET
get HEADER long
get SIZE long
get HASH longlong
getDstring NAME 0x10
math OFFSET += HEADER
log NAME OFFSET SIZE
goto MYOFF
next i
Re: My quickBMS scripts
Posted: Wed Oct 10, 2012 5:30 am
by Dinoguy1000
AlphaTwentyThree wrote:Dinoguy1000 wrote:AlphaTwentyThree wrote:I have a feeling that there's some better way to do this (since, according to my understanding, it's basically just a ceil() function with a custom "cutoff"), but my maths isn't strong enough to pick it out (I think bit-shifting would play a role, though... does QuickBMS actually support bit-wise manipulations?). =/
Damn, should have looked inside the documentation better... it's only called "alignment" there, which is nothing else than a ceil. Will change it in the scripts.

Of course, I'm an idiot; "ceil() with a custom 'cutoff'" is just a rounding function. =D
Re: My quickBMS scripts
Posted: Wed Oct 10, 2012 4:27 pm
by AlphaTwentyThree
Dinoguy1000 wrote:Of course, I'm an idiot;
Ladies and gentlemen, listen to the admin!

Re: My quickBMS scripts
Posted: Wed Oct 10, 2012 4:37 pm
by AlphaTwentyThree
Added some more formats to the Unity3D extractor. Thanks nefarel.

Re: My quickBMS scripts
Posted: Wed Oct 10, 2012 11:57 pm
by Dinoguy1000
AlphaTwentyThree wrote:Dinoguy1000 wrote:Of course, I'm an idiot;
Ladies and gentlemen, listen to the admin!

Hardly the first time; I've been practicing digital self-deprecation since 2003.

Re: My quickBMS scripts
Posted: Thu Oct 11, 2012 11:04 am
by AlphaTwentyThree
Dinoguy1000 wrote:AlphaTwentyThree wrote:Dinoguy1000 wrote:Of course, I'm an idiot;
Ladies and gentlemen, listen to the admin!

Hardly the first time; I've been practicing digital self-deprecation since 2003.

Well... kudos then, lol. ^^
Re: My quickBMS scripts
Posted: Sun Oct 14, 2012 7:38 pm
by AlphaTwentyThree
Just updated the XNB to WAV script (
viewtopic.php?f=13&t=4450&p=75157#p75157). Now supports other formats than uncompressed PCM.

Re: My quickBMS scripts
Posted: Mon Oct 15, 2012 5:52 pm
by AlphaTwentyThree
And another update for the Unity3D extractor:
viewtopic.php?f=13&t=4450&p=77959#p77959
Now detects xml and png files in type 49 files.

Re: My quickBMS scripts
Posted: Tue Oct 16, 2012 11:06 pm
by AlphaTwentyThree
Half Minute Hero rwv converter
Converts the MSADPCM streams from the game to *.lwav files, playable with vgmstream. You'll need the newest func_header_PCM.bms for this:
viewtopic.php?f=13&t=4450&p=71565#p71565
Code: Select all
# convert rvw files found in Half Minute Hero (2012, PC) to lwav
# needed func_header_PCM version: 2012-10-16
# (c) 2012-10-16 by AlphaTwentyThree of XeNTaX
include "func_header_PCM.bms"
idstring "fmt "
findLoc OFFSET string "data" 0 ""
math OFFSET += 8
findLoc SAMPLE string "smpl" 0 ""
if SAMPLE != ""
get NAME basename
string NAME += ".smpl"
get SIZE asize
math SIZE -= 0xc
math SIZE -= SAMPLE
log NAME SAMPLE SIZE
set SIZE SAMPLE
else
get SIZE asize
math SIZE -= 0xc
endif
math SIZE -= OFFSET
goto 0x8
get CODEC short
get CH short
get FREQ long
get UNK long
get BLOCKALIGN short
get BITS short
set NAME ""
callfunction PCM 1
Re: My quickBMS scripts
Posted: Fri Oct 19, 2012 1:20 am
by AlphaTwentyThree
RAW: Reals of Ancient War - *.bf extractor
Code: Select all
# extracts the *.bf file from Realms of Ancient War (PC, 2012)
# (c) 2012-10-19 by AlphaTwentyThree of XeNTaX
get DATASTART long
get FILES long
for i = 1 <= FILES
get HASH longlong
get NAME string
get OFFSET long
get SIZE long
log NAME OFFSET SIZE
next i
Re: My quickBMS scripts
Posted: Sat Oct 20, 2012 3:45 pm
by AlphaTwentyThree
StoneChess (2012) PC - data.scp extractor
Now they are really getting lazy with their GRAFs...
Code: Select all
# extracts the data.scp from StoneChess (PC, 2012)
# (c) 2012-10-20 byAlphaTwentyThree of XeNTaX
get FILES long
get DATASTART long
get UNK long
for i = 1 <= FILES
get NAME string
get SIZE long
log NAME OFFSET SIZE
math OFFSET += SIZE
next i
Re: My quickBMS scripts
Posted: Sat Oct 20, 2012 5:21 pm
by AlphaTwentyThree
Top Secret Finders (2012) PC - TSF.vst extractor
Code: Select all
# extract the TSF.vst from "Top Secret Finders" (PC, 2012)
# (c) 2012-10-20 by AlphaTwentyThree of XeNTaX
get INFO asize
math INFO -= 4
goto INFO
get INFO long
goto INFO
get FILES long
for i = 1 <= FILES
get NAMEL long
getDstring NAME NAMEL
get OFFSET long
get ZSIZE long
savepos MYOFF
goto OFFSET
get TEST byte
goto MYOFF
if TEST == 0x78
set SIZE ZSIZE
math SIZE *= 0xffffff
clog NAME OFFSET ZSIZE SIZE
else
log NAME OFFSET ZSIZE
endif
next i
Re: My quickBMS scripts
Posted: Sat Oct 20, 2012 7:26 pm
by AlphaTwentyThree
Doom 3: BFG Edition (2012) PC - *.resources
Should work on all platforms.
Code: Select all
# extracts the *.resources from Doom 3: BFG Edition (2012)
# (c) 2012-10-20 by AlphaTwentyThree of XeNTaX
endian big
get DUMMY long
get INFOPOS long
goto INFOPOS
get FILES long
for i = 1 <= FILES
get NAMEL long
reverselong NAMEL
getDstring NAME NAMEL
get OFFSET long
get SIZE long
log NAME OFFSET SIZE
next i