The biggest problem is the WMA Data Object. With the infos from WAVEBANKENTRY of the file and xact3wb.h, I'm (almost) able to write the first 3 Objects. wma file contains at least 4 Objects: FileProperties Object,StreamProperties Object, Header Extension Object and DATA OBJECT (consisting of Data Packets, each Data Packet has some header/info bytes). This is what I did so far: I looked into the (very long and not very usefull) ASF/WMA-Specification.Ī. wav files, I try to simply write the compressed data and create appropriate WMA-Headers in order to have. But with different strategies: you try to decompress the wma file data in order to write them to. So we seem to have the same problem, FordGT90Concept: we both try to extract. Name that compression!WMA (quote from xact3wb.h: static const DWORD aWMABlockAlign = Every deflated section appears to be exactly 929 or 1487 bytes in length (depends on file) Just download+install the SDK and search for the header file "xact3wb.h" (in older SDKs it's "xact2wb.h"). xwb format (unfortunately NOT the xsb format) is documented in Microsofts DirectX SDK. xwb structure, but (sorry, I have to say that) you can get detailed xwb-info very easy, because the. So "old" extraction tools won't work with "new" xsb/xwbs.įirst of all: Congratulations, FordGT90Concept - you did a very good job in "demystifying" the. xwb/.xsb files) and therefor, Microsoft can change the format with each version of the. This is no wonder, because backward compatibility is not really needed in XACT(=the tool that creates.
![why do saints row mods contain xtbl files why do saints row mods contain xtbl files](https://i.ytimg.com/vi/MoR0S5Heegg/maxresdefault.jpg)
and other tools (XWB_Extractor, EkszBox.) weren't able to handle the. I wrote it, because unxwb can't (afaik) write valid/playable. And additionally, the tool is supposed to extract waves (nearly all of them are WMA) from the wavebanks. I'm writing a tool (a perl script actually) in order to insert sounds into an existing german game, that uses. Hello and sorry - I know, the last posting in this thread was 3 months ago, but it's the best thread on the subject XWB that I found so far - so I hope, the original posters are still reading. I haven't tried DeflateStream or InflateStream without the first short but, on examining some other files, it appears that short isn't uniform across all XWB files. There's no way to be certain until the compression is dealt with. I am not certain the format flag (WAV/WMA) is correct. The compressed files rarely exceed 1 MiB. MUS MIX.xwb has 8 uncompressed files and some are north of 20 MiB in size. When I say compressed, I mean these files are way too small to be waves. There are no files in this particular XWB that are not compressed: I uploaded the smallest XWB with the CompressionInfo array here. It might be that Unknown2 is a start time (or ticks from an epoch) and Unknown3 is a stop time. I haven't been able to sort what they are. Those Unknown2 don't seem to match up to what appears in the unxwb source (especially 2 and 3). It appears that, so long as the value isn't -1, it doesn't mean anything. On MUS MIX.xwb, the Length of Compression Info is over 6000 but the counting up ends around 600. How quickly it counts up seems to be determined by the size of the file.
![why do saints row mods contain xtbl files why do saints row mods contain xtbl files](https://staticdelivery.nexusmods.com/mods/224/images/thumbnails/39/39-1596480921-1219793478.jpeg)
![why do saints row mods contain xtbl files why do saints row mods contain xtbl files](https://i.ytimg.com/vi/6KdFhhAsIKc/maxresdefault.jpg)
FileRecord = compessed, CompressionInfo = -1). It counts up from zero except where it matches FileRecords for a compessed file (e.g. Public int CompressionInfoLength // This is very odd.ĬompressionInfo is an array of ints. Public int CompressionInfoOffset // This is somewhat odd Maybe it is the original version number and they incremented it to 44 for their changes. Public int Unknown42 // This is odd - no idea what this 42 is for. Code: Select all public string IdentifyingChars = "WBND"