Page 27 of 32

Re: My quickBMS scripts

Posted: Fri Jan 18, 2013 10:57 am
by zouzou69
can someone know how to edit the sbs et sbr files from fifa games ?

i would edit this files for pc version and xbox version of fifa 13 to change the audio ..the sbs contains probably xma files



here the exemple of the two files.

if someone could transform this ..thks a lot

http://www.datafilehost.com/download-5b1f42f3.html

THANKS A LOT .i think the files contains xma

Re: My quickBMS scripts

Posted: Mon Jan 21, 2013 12:19 pm
by FinalBlast
AlphaTwentyThree wrote:
Researchman wrote:Works if .pck archives dont have much files. Problem .pcks - sounds_eng.pck, sounds_sfx.pck (Assasin`s Creed III (Xbox 360)). QuickBMS error - this BMS script uses more array elements than how much supported (0.5.15b).
Dont work with soundstream.pck (Halo 4) - dont do extracting (extracted 0 files from 0).
Without samples, I can't check the new script I'm afraid... :-\
Mr. Alpha, I have provided a 5 MB sample of the PC version of AC3 sounds_sfx.pck I hope it helps to make the script work on PC ver. :)

http://www.mediafire.com/?u89884l48xpy3ky

Re: My quickBMS scripts

Posted: Thu May 16, 2013 9:31 pm
by Researchman
Dont sure, but I dont found func_header_CDXA.bms(use addCDXAheader.bms from here - viewtopic.php?f=13&p=40162#p40162 ).

Try use Playstation XA extractor on XA_STR from japan version 1.0 of Castlevania: Symphony of the Night, but its dont work. Maybe because, in this file contain some SEQ files(PS1 MIDI).

Re: My quickBMS scripts

Posted: Wed Jun 26, 2013 5:16 pm
by AlphaTwentyThree
Buzz! The Sports Quiz (PS2, 2006)

Code: Select all

# extracts the *.PAK files from "Buzz! The Sports Quiz" (PS2, 2006)
# (c) 2013-06-26 by AlphaTwentyThree of XeNTaX

idstring BPAK
get OFF_DATA long
goto 0x10
get FILES long
get TOC long
goto TOC
for i = 0 < FILES
	get CRC long
	get OFF_NAME long
	get OFFSET long
	get SIZE long
	savepos MYOFF
	goto OFF_NAME
	get NAME string
	goto MYOFF
	log NAME OFFSET SIZE
next i

Re: My quickBMS scripts

Posted: Fri Jun 28, 2013 10:27 am
by AlphaTwentyThree
Baldur's Gate: Dark Alliance (PS2) - *.GOB/*.LMP

Code: Select all

# extracts *.GOB archives from "Baldur's Gate: Dark Alliance" (PS2)
# (c) 2013-06-28 by AlphaTwentyThree of XeNTaX

for
	getDstring NAME 0x20
	get OFFSET long
	get SIZE long
	if NAME == ""
		cleanexit
	endif
	log NAME OFFSET SIZE
next

Code: Select all

# extracts *.LMP archives from "Baldur's Gate: Dark Alliance" (PS2)
# (c) 2013-06-28 by AlphaTwentyThree of XeNTaX

get FILES long
for i = 1 <= FILES
	getDstring NAME 0x38
	get OFFSET long
	get SIZE long
	log NAME OFFSET SIZE
next i

Re: My quickBMS scripts

Posted: Fri Jun 28, 2013 10:34 am
by Dinoguy1000
AlphaTwentyThree wrote:Baldur's Gate: Dark Alliane (PS2) - *.GOB/*.LMP
That's supposed to be "Dark Alliance", right? :wink:

Re: My quickBMS scripts

Posted: Fri Jun 28, 2013 4:20 pm
by AlphaTwentyThree
of course - changed. ;)

Re: My quickBMS scripts

Posted: Wed Jul 03, 2013 11:49 am
by AlphaTwentyThree
Baldur's Gate: Dark Alliance (GC) - *.lmp

Structure is similar to the PS2 lmp files, only big endian and with an identifier. Those lmp files hold most of the game's files.

Code: Select all

# extracts the *.lmp archives from
# Baldur's Gate: Dark Alliance (Gamecube, 2001)
# (c) 2013-07-03 by AlphaTwentyThree of XeNTaX

endian big
idstring LUMP
get FILES long
get BNAME basename
string BNAME += "/"
for i = 1 <= FILES
	getDstring NAME 0x38
	get OFFSET long
	get SIZE long
	set WNAME BNAME
	string WNAME += NAME
	log WNAME OFFSET SIZE
next i

Re: My quickBMS scripts

Posted: Tue Jul 09, 2013 8:18 am
by AlphaTwentyThree
UPDATE

Just made another update of func_getTYPE.bms with some more file types and heuristics.

Re: My quickBMS scripts

Posted: Sat Jul 27, 2013 11:48 am
by shekofte
here are .snd files that show ripple shapes data :
viewtopic.php?f=16&t=10632

i want to see , how you will write a Qbms script for extracting of wave from them ?
What a wonderful this would be for me , because my knowledge on sound data is low ...
just as a teaching session !

Yours sincerely :keke:

Re: My quickBMS scripts

Posted: Sat Jul 27, 2013 2:51 pm
by AlphaTwentyThree
shekofte wrote:here are .snd files that show ripple shapes data :
viewtopic.php?f=16&t=10632

i want to see , how you will write a Qbms script for extracting of wave from them ?
What a wonderful this would be for me , because my knowledge on sound data is low ...
just as a teaching session !

Yours sincerely :keke:
Well, these are .VAB archives with PS2 ADPCM streams inside. Can't remember if I ever wrote an extractor for these. ATM I don't have time but for all I can see at first glance the format isn't complicated.

Re: My quickBMS scripts

Posted: Sat Jul 27, 2013 4:03 pm
by shekofte
AlphaTwentyThree wrote:
shekofte wrote:here are .snd files that show ripple shapes data :
viewtopic.php?f=16&t=10632

i want to see , how you will write a Qbms script for extracting of wave from them ?
What a wonderful this would be for me , because my knowledge on sound data is low ...
just as a teaching session !

Yours sincerely :keke:
Well, these are .VAB archives with PS2 ADPCM streams inside. Can't remember if I ever wrote an extractor for these. ATM I don't have time but for all I can see at first glance the format isn't complicated.
anyway thanks for your allusion :erm:

Re: My quickBMS scripts

Posted: Thu Aug 15, 2013 6:48 pm
by AlphaTwentyThree
Culpa Innata (2007) PC - *.sfs

Different from the sfs files of IL-2.

Code: Select all

 # extracts the SFS containers from Culpa Innata (PC, 2007)
 # (c) 2013-08-15 by AlphaTwentyThree of XeNTaX

idstring "SFS1"
get FILES short
for i = 1 <= FILES
	get NAMEL short
	getDstring NAME NAMEL
	get OFFSET long
	savepos MYOFF
	goto OFFSET
	get SIZE long
	math OFFSET += 4
	goto MYOFF
	log NAME OFFSET SIZE
next i

Re: My quickBMS scripts

Posted: Wed Aug 21, 2013 1:24 pm
by AlphaTwentyThree
Half-Life (2001) PS2 - *.pak

Code: Select all

# extracts *.PAK archives from the PS2 version of Half-Life
 #(c) 2013-08-21 by AlphaTwentyThree of XeNTaX

idstring PACK
get NAMESOFF long
get FILES long
goto NAMESOFF
for i = 1 <= FILES
	getDstring NAME 0x38
	get OFFSET long
	get SIZE long
	log NAME OFFSET SIZE
next i

Re: My quickBMS scripts

Posted: Fri Aug 30, 2013 10:04 pm
by AlphaTwentyThree
Glacier engine - WHD/WAV pairs

Games like the Hitman series, Freedom Fighters or Kane & Lynch. You will need to put all whd/wav pairs as well as the streams.wav (if available) into the same folder.
Not all tested, though. So if you have problems with any of the Glacier games, post here.

Code: Select all

# extracts the WHD/WAV pairs from the Glacier engine
# needs the streams.wav in the same folder as the whd/wav pair(s)
# tested with Hitman 2: Silent Assassin (Xbox, PS2)
# (c) 2013-08-30 by AlphaTwentyThree of XeNTaX
# script for QuickBMS http://quickbms.aluigi.org

open FDDE WHD 0
open FDDE WAV 1
open FDSE "streams.wav" 2 EXISTS
if EXISTS == 0
	open FDSE "STREAMS.WAV" 2 EXISTS
endif
get TOCSIZE long 0
get WHDSIZE long 0
if WHDSIZE == 0x18
	cleanexit
endif
get UNK longlong 0
do
	get NAME string 0
	savepos MYOFF 0
	math MYOFF x= 4
	goto MYOFF 0
	get UNK long 0
	get UNK long 0
	get CODEC threebyte 0
	get FILE byte 0
	get FREQ long 0
	get BITS long 0
	get UNK long 0
	get SIZE long 0
	get CH long 0
	get OFFSET long 0
	get UNK long 0
	get INTERLEAVE long 0
	get UNK long 0
	savepos MYOFF 0
	if FILE == 0
		if CODEC == 0x69
			string NAME += ".lwav"
			callfunction XADP 1
		elif CODEC == 1
			set BLOCKALIGN 4
			callfunction PCM_1 1
		elif CODEC == 0x12
			string NAME += ".genh"
			set CODEC 9
			if CH == 1
				set INTERLEAVE 0
			endif
			callfunction GENH 1
		else
			print "Error: unknown codec. Aborting..."
			cleanexit
		endif
	elif FILE == 0x80
		if EXISTS == 1
			set BLOCKALIGN 4
			callfunction PCM_2 1
		endif
	endif
while MYOFF < TOCSIZE

startfunction XADP
	set MEMORY_FILE binary "\x52\x49\x46\x46\x18\x51\xa3\x0\x57\x41\x56\x45\x66\x6d\x74\x20\x14\x0\x0\x0\x69\x0\x2\x0\x44\xac\x0\x0\xcc\xc1\x0\x0\x48\x0\x4\x0\x2\x0\x40\x0\x64\x61\x74\x61\xf0\x50\xa3\x0"
	set RIFFSIZE SIZE
	math RIFFSIZE += 0x28
	putVarChr MEMORY_FILE 0x04 RIFFSIZE long
	putVarChr MEMORY_FILE 0x16 CH byte
	putVarChr MEMORY_FILE 0x18 FREQ long
	set VAR1 0x3073
	math VAR1 *= CH
	if FREQ == 48000
		math VAR1 *= 44100
	else
		math VAR1 *= FREQ
	endif
	math VAR1 /= 22050
	putVarChr MEMORY_FILE 0x1c VAR1 long	
	set VAR2 0x24
	math VAR2 *= CH
	putVarChr MEMORY_FILE 0x20 VAR2 short
	putVarChr MEMORY_FILE 0x2c SIZE long
	append
	log MEMORY_FILE OFFSET SIZE 1
	append
	if NAME == ""
		get NAME basename
		string NAME += ".lwav"
	endif
	get SIZE asize MEMORY_FILE
	log NAME 0 SIZE MEMORY_FILE
endfunction

startfunction PCM_1
	set PRE SIZE
	math PRE += 0x2c
	putVarChr MEMORY_FILE PRE 0
	log MEMORY_FILE 0 0
	set MEMORY_FILE binary "\x52\x49\x46\x46\x20\xC0\xB1\x00\x57\x41\x56\x45\x66\x6D\x74\x20\x10\x00\x00\x00\x01\x00\x02\x00\x44\xAC\x00\x00\x10\xB1\x02\x00\x04\x00\x10\x00\x64\x61\x74\x61\xFC\xBF\xB1\x00"
	append
	log MEMORY_FILE OFFSET SIZE 1
	append
	set RIFFSIZE SIZE
	math RIFFSIZE += 36
	set AVGBYTES FREQ
	if CODEC != 2
		math AVGBYTES *= BLOCKALIGN
	endif
	
	putvarchr MEMORY_FILE 0x04 RIFFSIZE long
	putvarchr MEMORY_FILE 0x14 CODEC short
	putvarchr MEMORY_FILE 0x16 CH short
	putvarchr MEMORY_FILE 0x18 FREQ short
	putvarchr MEMORY_FILE 0x1c AVGBYTES long
	putvarchr MEMORY_FILE 0x20 BLOCKALIGN short
	putvarchr MEMORY_FILE 0x22 BITS short
	putvarchr MEMORY_FILE 0x28 SIZE long
	if NAME == ""
		get NAME basename
		string NAME += ".wav"
	endif
	get SIZE asize MEMORY_FILE
	log NAME 0 SIZE MEMORY_FILE
endfunction

startfunction PCM_2
	set PRE SIZE
	math PRE += 0x2c
	putVarChr MEMORY_FILE PRE 0
	log MEMORY_FILE 0 0
	set MEMORY_FILE binary "\x52\x49\x46\x46\x20\xC0\xB1\x00\x57\x41\x56\x45\x66\x6D\x74\x20\x10\x00\x00\x00\x01\x00\x02\x00\x44\xAC\x00\x00\x10\xB1\x02\x00\x04\x00\x10\x00\x64\x61\x74\x61\xFC\xBF\xB1\x00"
	append
	log MEMORY_FILE OFFSET SIZE 2
	append
	set RIFFSIZE SIZE
	math RIFFSIZE += 36
	set AVGBYTES FREQ
	if CODEC != 2
		math AVGBYTES *= BLOCKALIGN
	endif
	
	putvarchr MEMORY_FILE 0x04 RIFFSIZE long
	putvarchr MEMORY_FILE 0x14 CODEC short
	putvarchr MEMORY_FILE 0x16 CH short
	putvarchr MEMORY_FILE 0x18 FREQ short
	putvarchr MEMORY_FILE 0x1c AVGBYTES long
	putvarchr MEMORY_FILE 0x20 BLOCKALIGN short
	putvarchr MEMORY_FILE 0x22 BITS short
	putvarchr MEMORY_FILE 0x28 SIZE long
	if NAME == ""
		get NAME basename
		string NAME += ".wav"
	endif
	get SIZE asize MEMORY_FILE
	log NAME 0 SIZE MEMORY_FILE
endfunction

startfunction GENH
	set SAMPLES SIZE
	math SAMPLES *= 8
	math SAMPLES /= BITS

	set FSIZE SIZE
	math FSIZE += 0x1000
	putVarChr MEMORY_FILE FSIZE 0
	log MEMORY_FILE 0 0
	putVarChr MEMORY_FILE 0 0x484e4547 long
	putVarChr MEMORY_FILE 0x4 CH long
	putVarChr MEMORY_FILE 0x8 INTERLEAVE long
	putVarChr MEMORY_FILE 0xc FREQ long
	putVarChr MEMORY_FILE 0x10 0xffffffff long
	putVarChr MEMORY_FILE 0x14 SAMPLES long
	putVarChr MEMORY_FILE 0x18 CODEC long
	putVarChr MEMORY_FILE 0x1c 0x1000 long # offset; == stream start if no header
	putVarChr MEMORY_FILE 0x20 0x1000 long
	putVarChr MEMORY_FILE 0x300 FSIZE long
	putVarChr MEMORY_FILE 0x304 0x32304756 long
	putVarChr MEMORY_FILE 0xfff 0 byte
	math FSIZE -= 0x1000
	append
	log MEMORY_FILE OFFSET FSIZE 1
	append
	get SIZE asize MEMORY_FILE
	log NAME 0 SIZE MEMORY_FILE
endfunction