Well, this was originally going to be a single script for handling two .DAT files(TRAKLKUP.DAT/BANKLKUP.DAT), but the whole idea didn`t work out in the end so I ended up writing two separate scripts instead.

The file containers were set specifically for when vgmstream gets to support these files.

Research notes are included for those clueless about what does these files mean, and although you can just search for the GTAModding wiki an article about the audio system used in the game they only covered the PC version(for example, no mention of PlayStation ADPCM/VAG or Xbox ADPCM is found in those articles that do mention the audio system).

UPDATE(11/06/2017): The gtasa_streams.bms script is finally updated to fix support for the Xbox version of the game.

default.xbe is required for this script(after all the Xbox port of the game was released only on Europe, otherwise I need to do a few extra steps to support other regional releases of said port of the game). Don`t think you`re going to apply this script with just game.wad alone because you`re going to break the script you`re running on if you do so.

Now about the archive itself: some of the files contained in the archive are compressed using the zlib algorithm(it was referred to as "inflate" in default.xbe). However, I have no idea how to decompress those compressed files. Until I manage to work around with those files, this will have to suffice.

This archive file was used in This is Football and This is Football 2 I guess. I have no idea where versions 1.## and 2.## went.It also uses some kind of unknown compression algorithm, however I don't know how to decompress those files as of this writing.

UPDATE(24/12/2017): The entire script has been restructured(it's actually much cleaner now). The script will also inform you of both the compressed and decompressed sizes of a file.

The structure of a BAO file changes depending on the values that are located in 0x1c(long) and 0x27(byte) offset(run the script with the -V parameter to see what I mean by this). This script was made to get things a bit easier, especially when you have tons of BAO files to sort it out.

get SIZE asizemath ORIGINALSIZE = SIZExmath LOOPEND "SIZE * CHANNELS"if GENH_CODEC == 0x14 || GENH_CODEC == 0x15 # you can choose which one are you going to remove the "#" symbol on at the start of the line# set DATASIZE 0 # set the raw XMA1/XMA2 datasize here in case there are oddities in the XMA2/XMA2 header math DATASIZE = SIZE # use this only in cases where the XMA1/XMA2 file in question is headerlesselseendifmath SIZE -= OFFSETcallfunction GENH_1 1

This was only tested on Assassin's Creed(PS3, XBOX360, PC) so if you find any archive that starts with "scimitar" or has the .forge extension that was released before or after Assassin's Creed(so long as it's a Ubisoft game), let me know.

UPDATE(25/03/2017): The script has been updated to support a new version of the archive used from Assassin's Creed 3 and onwards.UPDATE(05/04/2017): This script had to be... tweaked for "For Honor"(as requested by nikana), and possibly more recent Ubisoft games that use the .forge archives. Which means you can now use this script on any PC version of any game that uses it.UPDATE(08/12/2017): The script was updated to add a work-around for a "rare" instance in which the ACTUAL_SIZE value is actually 0. In that case, the script will then set the ACTUAL_SIZE variable to the SIZE variable which seem to have the actual size number for that one file. Kudos to vladik4kides for finding this out.UPDATE(16/07/2018): the script has been updated to "support" this new structure as used in Tom Clancy's Rainbow Six Siege, as requested by lifecoder. kudos.UPDATE(27/07/2018): fixed a bug in the script that lifecoder spotted while executing said script through some .forge files(Tom Clancy's Rainbow Six Siege)

It was first used on Prince of Persia: The Sands of Time(PS2, GC, XBOX, PC). The usual Ubisoft Montreal`s audio middleware(.ss#/.sb# files) were packed into these archives, however in the PS2 version there were videos packed in as well, albeit separately.

UPDATE(26/03/2017): The script has been updated to not include "FDSE" anymore; instead the script can now only work with .IMG files that has the "\x20\x06\x05\x15" value at the start(such as ALL_FONT.img).

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