Cyberstorm 2 (ADPCM) - how to decode? by The Fifth Horseman at 4:32 PM EDT on July 30, 2010
Long story short, I've been trying to extract music and sound effects from the 1998 Sierra game "Cyberstorm 2". (note: I mean the BGM sequences which are not using audio tracks on the game disc)

First, the digitized sound files - along with other data - were stored in RBX container files. These can be extracted pretty easily -> contains an extractor (Windows binary together with C++ source).

After that, I ended up with a bunch of files - eventually finding out that the digitized sound is stored in the files using the .WAX extension.

Those appeared to have some form of headers. This utlity -> (Windows binary and C++ source) reads the headers of any WAX files in the current directory and outputs them to a CSV file, converted to a human-readable format. A full output of all headers from the files is here ->

The first dword value after the header appears to dictate the compression format - a value of 1 relates to uncompressed 8-bit PCM data, whereas a 4 means some kind of ADPCM implementation.

An associate of mine had the idea to try opening them as VOX files - this produced distorted but more or less legible output (the volume was off in more than a few places, though).

Digging through the main game executable, I found exact copies of the IMA ADPCM standard index and step tables. The nibble order appears to be top nibble, then bottom nibble (same as with VOX).

So far, I've been unable to create a decoder for this format; any help in the matter of decoding this format through other means would be appreciated.

I've uploaded several of the WAX files here for testing purposes:
by RukarioGyiyg996 at 8:01 PM EDT on July 30, 2010
Sierra... and Cyberstorm, is this that Earthsiege RTS I heard about? Corporate Wars?
by The Fifth Horseman at 7:28 AM EDT on July 31, 2010
Correct, it is.
by Apollo at 5:46 AM EDT on August 14, 2010
It is IMA ADPCM alright, they seem to be 22050 khz, mono with 512 block interleave (standard)

You can use GENH to make a header using 0x09 format, header skip 32 and then vgmstream can decode/playback :)

Any chance of sharing the cyberstorm files/cd audio tracks fifth horseman?
by manakoAT at 6:28 AM EDT on August 14, 2010
"22050 khz, mono with 512 block interleave" <- How can a mono file be "Interleaved"?

I'm about to implement it into vgmstream, just wait a bit more (busy)

edited 6:45 AM EDT August 14, 2010
by Apollo at 8:37 AM EDT on August 14, 2010
GENH insists to know interleave even if you pick mono, not that it matters at all.

edited 8:39 AM EDT August 14, 2010
by manakoAT at 9:42 AM EDT on August 14, 2010
Ah, yes... I'm using the latest 3.xx (Don't know which was my last build), which sets the interleave to 0 if you don't set it, that's why i wondered.
by bxaimc at 11:28 PM EDT on August 14, 2010
Yea, but you can always put a zero there.

Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=]Link[/url]


HCS Forum Index
Halley's Comet Software
forum source