You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This matrix tracks the availability of major API groups across different historical versions of MSS and the current implementation status in OpenMiles.
Export ABI: every -Dmss-version build (v3–v9) reproduces its reference
mss32.dll's decorated export table with zero missing exports. The "OpenMiles"
column below tracks behaviour, not symbol presence — every symbol is present.
Support Legend
🟢 Full: Functionally implemented and verified.
🟡 Partial: Implemented as a functional prototype or stub with basic logic.
🔴 None: Not implemented or relevant.
⚪ Stub: Symbol exists for binary compatibility but performs no logic.
1. Core System APIs
Function Group
Intro
AIL v2
MSS v3
MSS 6.6
OpenMiles
Notes
Basic Init (startup, shutdown)
v3
🔴
🟢
🟢
🟢 Full
rebranded in v3.
Legacy Driver Init (install_driver)
v2
🟢
🟢
⚪
⚪ Stub
Used in AIL era.
Error Handling (last_error)
v3
🔴
🟢
🟢
🟢 Full
Preference Management
v4
🔴
🔴
🟢
🟢 Full
Redist Handling (redist_dir)
v6
🔴
🔴
🟢
🟢 Full
Stores path and scans for .asi/.m3d/.flt plugins
Timer API
v3
🔴
🟢
🟢
🟢 Full
Background timer threads
Quick API
v4
🔴
🔴
🟢
🟢 Full
High-level sound engine helpers
Memory API
v4
🔴
🔴
🟢
🟢 Full
Basic memory allocators and locking
2. Digital Audio (Samples & Streams)
Function Group
Intro
AIL v2
MSS v3
MSS 6.6
OpenMiles
Notes
DIG_ Prefix Functions
v2
🟢
🟢
⚪
🔴 None
Aliases not yet exported
AIL_ Prefix Functions
v3
🔴
🟢
🟢
🟢 Full
Sample Allocation/Release
v2
🟢
🟢
🟢
🟢 Full
Volume / Panning Control
v2
🟢
🟢
🟢
🟢 Full
Memory Image Loading
v3
🔴
🟢
🟢
🟢 Full
Streaming (File-based)
v4
🔴
🔴
🟢
🟢 Full
Input API
v4
🔴
🔴
🟢
🟢 Full
Recording via miniaudio capture device
Compression API
v4
🔴
🔴
🟢
🟡 Partial
Decompression implemented
Filter API
v6
🔴
🔴
🟢
🟢 Full
Low-pass filter via miniaudio ma_lpf_node; real-time cutoff/order control
3. 3D Positional Audio
Function Group
Intro
AIL v2
MSS v3
MSS 6.6
OpenMiles
Notes
3D Sample Handle Mgmt
v6
🔴
🔴
🟢
🟢 Full
Allocates Sample3D; file loading via miniaudio
Object Position/Velocity
v6
🔴
🔴
🟢
🟢 Full
Sample3D and listener position/velocity/orientation via miniaudio
3D Providers (EAX, A3D)
v5
🔴
🔴
🟢
🟢 Full
Returns built-in OpenMiles Software 3D provider
4. MIDI & XMIDI
Function Group
Intro
AIL v2
MSS v3
MSS 6.6
OpenMiles
Notes
MDI_ Prefix Functions
v2
🟢
🟢
⚪
🔴 None
Aliases not yet exported
XMIDI Branching
v2
🟢
🟢
🟢
🟢 Full
Tempo fade, position seek with channel state replay
DLS / SF2 Loading
v4
🔴
🔴
🟢
🟢 Full
5. RIB (RAD Interface Broker)
Function Group
Intro
AIL v2
MSS v3
MSS 6.6
OpenMiles
Notes
Provider Infrastructure
v4
🔴
🔴
🟢
🟢 Full
Provider Enumeration
v6
🔴
🔴
🟢
🟢 Full
Real provider enumeration with interface matching
6. CD Audio
Function Group
Intro
AIL v2
MSS v3
MSS 6.6
OpenMiles
Notes
Redbook Audio
v3
🔴
🟢
🟢
🟡 Partial
Emulated handle tracks play/pause state; no actual CD audio (games fall back gracefully)
7. Event System & SoundBanks (v8/v9)
Function Group
Intro
MSS v6.6
MSS v8
MSS v9
OpenMiles
Notes
Event text constructor/decoder
v8
🔴
🟢
🟢
🟢 Full
Byte-faithful encode + decode for every step type; EVENT_STEP_INFO layout matches the SDK
Event variables (MilesGet/SetVar)
v9
🔴
🔴
🟢
🟢 Full
Per-system variable store
SoundBank load + asset query
v8
🔴
🟢
🟢
🟢 Full
BANK loader; asset enumeration + event-bytecode lookup
Event execution VM (enqueue → instance bookkeeping)
v8
🔴
🟢
🟢
🟡 Partial
Events parse into tracked sound instances (lifecycle, durations, label filtering/caps, event-length, cache/persist counts); audio output of those instances is not yet routed through the mixer
Technical Summary
OpenMiles reproduces the export ABI of every MSS release from v3 through v9
(zero missing decorated exports per version, including per-version arity quirks).
Behaviourally, the digital/MIDI/3D/RIB/filter/timer/quick subsystems, the v8/v9
event-text and soundbank layers, and the event execution VM's bookkeeping
(enqueue → tracked sound instances with durations, label filtering, per-label
caps, event-length, cache/persist accounting) are functional. The main remaining
gap is routing event-driven sound instances through the miniaudio mixer (actual
audio output) and applying ramp/blend/LFO to live volume/pitch. Legacy DIG_ and
MDI_ prefix aliases are not currently exported but could be added as PE export aliases if needed for older titles.
Legacy Compatibility Features:
AIL_waveOutOpen, AIL_midiOutOpen for games that use older waveOut-style initialization.
AIL_open_XMIDI_driver / AIL_close_XMIDI_driver as aliases for the MIDI driver functions.