How It Works
The FreeTrack protocol works by:- Creating a shared memory region (
FreeTrackSharedMem) that games can read from - Writing 6DOF tracking data (X, Y, Z position and pitch, yaw, roll) to this memory
- Registering DLL paths in Windows registry for games to discover
- Optionally running a dummy TrackIR process for games that require it
Data Format
Tracking data is transmitted with the following conversions:- Position: Centimeters to millimeters (× 10)
- Rotation: Degrees to radians (× π/180)
- Coordinate system:
- Yaw is negated
- Pitch has special handling near 90° to prevent “bumps” in games like Falcon BMS
Compatible Games
Over 800 games and simulators support FreeTrack, including:Flight Simulators
- Microsoft Flight Simulator 2020
- DCS World
- IL-2 Sturmovik: Battle of Stalingrad
- Rise of Flight
- War Thunder
- Falcon BMS
- X-Plane (via plugin)
Space Games
- Elite: Dangerous
- Star Citizen
- EVE: Valkyrie
- Everspace 2
- Star Wars: Squadrons
- No Man’s Sky
Racing Simulators
- Assetto Corsa / Assetto Corsa Competizione
- Project CARS 2
- rFactor / rFactor 2
- iRacing
- Automobilista 2
- DiRT Rally series
- F1 2021
Military Simulators
- ArmA 3
- ArmA Reforger
- Squad
- Insurgency: Sandstorm
- Escape from Tarkov
- DayZ
Other Games
- Euro Truck Simulator 2
- American Truck Simulator
- BeamNG.drive
- Microsoft Train Simulator
- Subnautica
For a complete list of supported games, see the OpenTrack supported games database or the CSV file included with OpenTrack.
Setup Instructions
Select FreeTrack protocol
In OpenTrack, go to the Output dropdown and select “freetrack 2.0 Enhanced”.
Configure protocol options
Click the settings button next to the Output dropdown to open FreeTrack configuration.Available options:
- Used interfaces: Choose which interfaces to enable
- Both FreeTrack and TIR (recommended)
- FreeTrack only
- TrackIR/NPClient only
- Library location: Where to install the client DLLs
- Default: OpenTrack installation directory
- Custom: Specify a custom path
- Ephemeral location: Libraries are removed when OpenTrack closes
Choose interface mode
Both (Recommended): Enables both FreeTrack and TrackIR interfaces for maximum compatibility.FreeTrack only: Use if you only need FreeTrack support.TrackIR only: Use for games that specifically require NPClient.dll.
Start tracking
Click Start in OpenTrack. The protocol will:
- Create the shared memory region
- Register DLL paths in Windows registry
- Start a dummy TrackIR process if needed
- Begin transmitting tracking data
Registry Configuration
FreeTrack registers DLL locations in Windows registry:DLL Files
freetrackclient.dll- 32-bit FreeTrack interfacefreetrackclient64.dll- 64-bit FreeTrack interfaceNPClient.dll- 32-bit TrackIR interfaceNPClient64.dll- 64-bit TrackIR interface
Custom DLL Location
You can specify a custom location for the tracking DLLs:Select directory
Click Browse and choose a directory. OpenTrack will copy the necessary DLLs to this location.
Troubleshooting
Game doesn’t detect tracking
- Check if game is supported: Verify your game is in the compatibility list
- Run as administrator: Some games require elevated privileges
- Verify DLL registration: Check registry entries are present
- Try both interfaces: Enable “Both FreeTrack and TIR” mode
- Restart the game: Some games only check for tracking on startup
Tracking is jittery or laggy
- Reduce filter latency in OpenTrack mapping settings
- Check if your input device has sufficient framerate
- Disable unnecessary background processes
Game crashes on startup
- Try running OpenTrack as administrator
- Disable antivirus temporarily
- Use ephemeral library location mode
- Check game-specific compatibility notes
Falcon BMS specific
Falcon BMS has a known issue where pitch values near 90° cause view “bumps”. OpenTrack automatically limits pitch to 89.86° to prevent this.Technical Details
Shared Memory Structure
OpenTrack creates a shared memory region namedFreeTrackSharedMem with this structure:
Coordinate Transformations
From OpenTrack internal format to FreeTrack:Game Detection
OpenTrack can detect which game is using the tracking interface and display its name. This is done through theGameID field in shared memory, which maps to game names in the CSV database.
The FreeTrack protocol uses atomic operations (InterlockedExchange) for thread-safe memory access, ensuring smooth operation even when games read data at different rates.