AEF file format
.aef files describe EAX 2.0 audio environments: reverb settings, etc.
See Common file format types for a description of the type names used here.
They are parsed in ATHENA::Environment::Load()
in Arx Fatalis 1.21.
Arx Fatalis only uses a single audio environment (sfx/environment/alley.aef
) even though the game ships with multiple environments. Audio environments can be enabled/disabled using the EAX setting.
Audio environments are stored as nine 32-bit IEEE 754 floating point numbers without any additional header or magic number:
Type | Description | EAX 2.0 EAXLISTENERPROPERTIES | EFX AL_EFFECT_REVERB |
---|---|---|---|
f32 | Environment size | flEnvironmentSize = x | (unused) |
f32 | Reverb diffusion | flEnvironmentDiffusion = x | AL_REVERB_DIFFUSION = x |
f32 | High-frequency air absorption | flAirAbsorptionHF = x * -100 | AL_REVERB_AIR_ABSORPTION_GAINHF = pow(10, x * -100 / 2000) |
f32 | Reflection gain | lReflections = 2000 * log10(x) | AL_REVERB_REFLECTIONS_GAIN = x |
f32 | Reflection delay | flReflectionsDelay = x / 1000 | AL_REVERB_REFLECTIONS_DELAY = x / 1000 |
f32 | Reverb gain | lReverb = 2000 * log10(x) | AL_REVERB_LATE_REVERB_GAIN = x |
f32 | Reverb delay | flReverbDelay = x / 1000 | AL_REVERB_LATE_REVERB_DELAY = x / 1000 |
f32 | Decay time | flDecayTime = x / 1000 | AL_REVERB_DECAY_TIME = x / 1000 |
f32 | High-frequency decay time | flDecayHFRatio = (x / 1000) / flDecayTime | AL_REVERB_DECAY_HFRATIO = (x / 1000) / AL_REVERB_DECAY_TIME |
Additionally the following properties are hardcoded:
EAX 2.0 EAXLISTENERPROPERTIES | EFX AL_EFFECT_REVERB |
---|---|
dwEnvironment = 0 | |
dwFlags = EAXLISTENERFLAGS_DECAYHFLIMIT | AL_REVERB_DECAY_HFLIMIT = AL_TRUE |
flRoomRolloffFactor = 1.3 | AL_REVERB_ROOM_ROLLOFF_FACTOR = 1.3 |
lRoom = 0 | AL_REVERB_GAIN = 1 |
lRoomHF = 0 | AL_REVERB_GAINHF = 0.8 |
AL_REVERB_DENSITY = 1 |
The EAXLISTENERPROPERTIES column lists the is the EAX property the value was mapped to in AF 1.21 and the AL_EFFECT_REVERB column lists the EFX property it is currently mapped to in Arx Libertatis. Refer to the OpenAL EFX documentation for detailed descriptions.