Generic RWAC Wave Content

Sometimes referred to as RWAC Wave or simply Wave, the Generic RWAC Wave Content resource type is a container for the EA SndPlayer Plug-In Asset. This is the primary sound asset type used throughout the game.

= Generating assets = Waves can be generated (without a Binary File header) by the EA Sound Exchange command-line tool. For more information on specifics, see Sounds (Burnout Paradise).

Codec
As noted in the enumeration, there are several codecs to choose from when encoding. Burnout primarily uses EALayer3, a proprietary offshoot of MPEG Layer 3, or its Spike variant. It also uses XAS certain engine sounds, namely ignition, for reasons unknown. The Xbox 360 version uses EA-XMA for all audio except acceleration/deceleration, which is done with Ginsu resources.

Play location
Three play locations are supported: RAM, stream, and gigasample. RAM-targeted assets are self-contained and generally found in engines, splicers, and  AEMS banks, while streams have data separate from the header and stored in persistent memory instead of RAM. Gigasamples are like streams, but with a portion in RAM so slow access times on the stream portion do not slow playing of the asset.

Loops
When loops are enabled with the  (loop start) option, the loop flag is toggled and the specified sample is written to the header. (loop end) may also be specified, though it is unclear where this is stored.

Data
In these assets, sound data is stored in chunks to be loaded, played, and unloaded in sequence. This is done to minimize RAM usage and increase streaming efficiency. All other data is that of the sound itself.

= Layout = Note: Waves begin with a Binary File resource. (Not subject to the following note.) Note: Data is stored in big endian byte order regardless of platform.

Header
Unlike most structures, the header for these assets is not in bytes, but bits. As such, an example is given to aid in understanding the format.

The offset is replaced with the number of bits, from left to right.

Example header
This represents a typical stream with no additional fields used.

Chunk
= Enumerations =