Skip to content

Feature request: Automobilista 2 / AMS2 support #16

Description

@ChristianRohwer

Title: Add out-of-the-box support for Automobilista 2 (AMS2)

What problem does this solve?

OpenFOV currently appears to be built and documented around iRacing only. The README describes the current output path as webcam tracking → FreeTrack shared memory (FT_SharedMem) → bundled NPClient64.dll → iRacing. The built-in game registry also currently contains only IRACING_PROFILE, with a comment that adding a game should be “one new file + one line here.”

Automobilista 2 (AMS2) also has a sim-racing use case where webcam-based TrackIR/FreeTrack-style head tracking would be valuable. Right now, AMS2 users have to guess whether OpenFOV’s generic NPClient/FreeTrack output will work, whether OpenFOV needs to detect AMS2 explicitly, and whether AMS2 requires any special launch/camera mode. It would be great if AMS2 worked out of the box the same way iRacing does.

Proposed behavior:

Please add first-class AMS2 support as a selectable/detectable game target.

Suggested implementation areas, based on the current code structure:

  • Add an Automobilista 2 / AMS2 GameProfile, similar to the existing iRacing profile.
  • Add the AMS2 profile to BUILTIN_PROFILES.
  • Detect the AMS2 process names used by the Steam install, for example common candidates such as AMS2.exe and/or AMS2AVX.exe after verification.
  • Determine the correct TrackIR/NaturalPoint program-profile ID AMS2 passes to NP_RegisterProgramProfileID, or document that the current NPClient shim can safely accept the game’s registration without a fixed ID.
  • Confirm whether AMS2 needs a non-zero TrackIR encryption key. If not, use the current zero-key/default behavior.
  • Reintroduce or add a game picker in the first-run wizard if multiple game targets are supported. The current wizard appears to hardcode chosen_game_id = "iracing".
  • Add AMS2-specific setup notes to the README or install guide, especially around:
    • whether AMS2 works in normal monitor mode or only when launched in VR/SteamVR mode,
    • whether the user must select Helmet Camera,
    • whether any AMS2 in-game setting must be enabled.
  • Make the UI state clearer when AMS2 is running, e.g. “Automobilista 2 detected” instead of “no supported game detected.”

Suggested acceptance criteria:

  • A fresh OpenFOV install offers AMS2 as a supported game target.
  • Launching AMS2 causes OpenFOV to detect the running game automatically.
  • OpenFOV registers/uses its bundled NPClient64.dll without manual registry edits.
  • Head pose is delivered to AMS2 through the existing TrackIR/NPClient/FreeTrack path.
  • Documentation clearly states any AMS2-specific requirements, including whether SteamVR/VR launch mode or Helmet Camera is required.
  • Basic tests cover the new AMS2 game profile, registry entry, and process-name matching.

Non-goal / clarification:

This is not a request for native SteamVR/OpenVR/OpenXR integration. From my reading, OpenFOV currently works through FreeTrack shared memory plus a bundled NPClient/TrackIR-compatible shim, not by linking to SteamVR directly. The AMS2 request is for making that existing TrackIR-compatible output path work reliably and be documented/configured out of the box for AMS2.

Alternatives considered:

  • Use OpenTrack instead for AMS2. This can work for some users, but it defeats the purpose of using OpenFOV as an all-in-one webcam head-tracking tool.
  • Try OpenFOV with AMS2 manually and ignore game detection. This may work in some cases, but it is not discoverable, not documented, and does not give the user confidence that OpenFOV is configured correctly.
  • Add only generic “unknown TrackIR game” mode. That would help, but AMS2 is popular enough in sim racing that a dedicated profile and documentation would be much better.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions