OpenAL32.dll proxy DLL that integrates Steam Audio binaural HRTF into Lineage 2 (UE2.5, 32-bit Windows).
L2.exe → ALAudio.dll → OpenAL32.dll (our proxy) → wrap_oal.dll (Creative OpenAL)
↓
phonon.dll (Steam Audio)
The proxy intercepts alSourcePlay calls, converts MONO16 audio buffers to STEREO16 with Steam Audio's DirectEffect + BinauralEffect (HRTF spatialization), then replaces the source buffer before playback. This gives proper 3D positional audio through headphones without modifying the game engine.
- HRTF binaural audio — Steam Audio BinauralEffect for realistic 3D positioning
- STEREO16 support — automatically downmixes stereo buffers to mono for HRTF processing
- Live config reload — edit
LineageAudio.iniand press RightCtrl in-game - Hot toggle — RightAlt to enable/disable HRTF processing
- Window title HUD — shows proxy status, volume, blend settings
- Distance attenuation — DirectEffect with configurable 1/dist falloff (not fully tuned)
- Air absorption — frequency-dependent distance attenuation (not fully tuned)
- Raycast occlusion — Steam Audio IPLScene with OBJ geometry (not working yet, geometry matching issues)
| Client | Status |
|---|---|
| Interlude | Tested |
| Kamael | Tested |
| Freya | Untested (auto-detect present, needs testing) |
Wine + DXVK on Linux.
- Download the latest release and extract all files into your game's
system/directory:
| File | Purpose |
|---|---|
OpenAL32.dll |
The proxy (replaces original) |
phonon.dll |
Steam Audio 4.4.0 (32-bit) |
LineageAudio.ini |
Configuration file |
-
If
phonon.dllis missing, the proxy operates in passthrough mode (no HRTF). -
No EAX patching or game file modifications required.
[HRTF]
Enabled=1
SpatialBlend=1.0 ; 0=dry mono, 1=full HRTF spatialization
VolumeBoost=1.5 ; output volume multiplier (1.0=normal)
GainMaster=1.0 ; AL_GAIN multiplier
[Direct]
; WARNING: these settings are experimental and not fully tuned
Enabled=1 ; enable DirectEffect (distance + air absorption)
DistAtten=1.0 ; distance attenuation strength (0=disable)
AirAbsorb=0.0 ; air absorption amount (0=off, 1=full)
MinDistance=1.0 ; minimum distance for attenuation clamp
Occlusion=1.0 ; occlusion amount (0=off, 1=full) — currently non-functional
[HUD]
Enabled=1 ; show proxy status in window title| Key | Action |
|---|---|
| RightAlt | Toggle HRTF on/off |
| RightCtrl | Reload LineageAudio.ini config |
Requires MinGW 32-bit cross-compiler:
i686-w64-mingw32-g++ -O2 -Wall -std=c++17 -DWIN32_LEAN_AND_MEAN \
-shared -static-libgcc -static-libstdc++ \
-o OpenAL32.dll openal_proxy.cpp \
-lkernel32 -luser32- No EAX patching or game file modifications required — the proxy works independently
- If
phonon.dllis not found, audio passes through unchanged - The proxy is 32-bit only (PE32) — matches the game executable