xbox XWB/adpcm help needed!
Posted: Sun Dec 28, 2014 2:18 am
hello
i am interested in the audio from an old xbox game (circa 2001).
the audio data should be standard adpcm as the files follow various the specs exactly:
http://wiki.xentax.com/index.php?title=XBOX_XWB3
http://quickandeasysoftware.net/readmes ... ormats.htm
but using aluigi's player (http://aluigi.altervista.org/papers/xbadpdec.zip) produces nothing but static when i play it back. am i missing something simple?
here is a binary template i've written for the specs anyway:
! help
i am interested in the audio from an old xbox game (circa 2001).
the audio data should be standard adpcm as the files follow various the specs exactly:
http://wiki.xentax.com/index.php?title=XBOX_XWB3
http://quickandeasysoftware.net/readmes ... ormats.htm
but using aluigi's player (http://aluigi.altervista.org/papers/xbadpdec.zip) produces nothing but static when i play it back. am i missing something simple?
here is a binary template i've written for the specs anyway:
Code: Select all
// https://github.com/bgbennyboy/Psychonauts-Explorer/blob/master/PsychoAudioDumper.pas
FSeek(0);
struct
{
char blockname[4];
uint version;
uint32 soHead1;
int32 soHead2;
uint32 detailsDir;
uint32 detailsDirLength;
uint32 filenameDir;
uint32 filenameDirLen;
uint32 fileOffset;
uint32 unknown_0;
uint16 unknown_1;
uint16 unknown_2;
} hdr;
Assert(hdr.blockname == "WBND");
Printf("Filecheck ok...scanning for sound files\n");
uint NoEntries;
char name[16];
uint detEntry, fnEntry, alignment, unknown;
struct ENTRIES
{
ushort Channels;
ushort Formats;
uint Values;
uint offset, length;
uint un1, un2;
} entries[NoEntries] <optimize=false>;
struct NAMES
{
char filename[64];
} fnames[NoEntries];
local uint i=0;
while( i < NoEntries )
{
FSeek( entries[i].offset + alignment );
struct {
ubyte data[entries[i].length];
} data;
++i;
}
! help