Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

OpenAL Proxy with Steam Audio HRTF

OpenAL32.dll proxy DLL that integrates Steam Audio binaural HRTF into Lineage 2 (UE2.5, 32-bit Windows).

How it works

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.

Features

  • 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.ini and press RightCtrl in-game
  • Hot toggle — RightAlt to enable/disable HRTF processing
  • Window title HUD — shows proxy status, volume, blend settings

Experimental / In Development

  • 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)

Supported Clients

Client Status
Interlude Tested
Kamael Tested
Freya Untested (auto-detect present, needs testing)

Wine + DXVK on Linux.

Installation

  1. 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
  1. If phonon.dll is missing, the proxy operates in passthrough mode (no HRTF).

  2. No EAX patching or game file modifications required.

Configuration — LineageAudio.ini

[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

Hotkeys

Key Action
RightAlt Toggle HRTF on/off
RightCtrl Reload LineageAudio.ini config

Building

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

Notes

  • No EAX patching or game file modifications required — the proxy works independently
  • If phonon.dll is not found, audio passes through unchanged
  • The proxy is 32-bit only (PE32) — matches the game executable

About

An experimental project to make sound in path tracing in the Lineage 2 game. Beta version

Topics

Resources

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Contributors

Languages