FA Bridge Plugin for fighters-legacy.
Implements the engine's IContentPack interface, using
fx_lib to transcode Jane's Fighters
Anthology (1998) asset formats into the engine's canonical open formats.
fighters-legacy is a clean-room GPL v3 reimplementation of the combat flight simulator
engine. It has no knowledge of FA-specific formats — all content enters through
IContentPack as raw bytes in canonical formats (glTF, PNG, OGG Vorbis, TOML, YAML).
This repository is one implementation of that interface: a bridge, not a content
pack. It ships no assets of its own — it transcodes content from the end-user's own FA
installation into engine-compatible assets, cached locally before first use.
You must own a legitimate copy of Jane's Fighters Anthology to use this plugin. No FA game assets are included or may be committed to this repository.
fx_lib integration (roadmap Phase 2). The plugin builds on all three platforms as
libfa-bridge.so / fa-bridge.dll / libfa-bridge.dylib with fx_lib linked
unconditionally. It discovers the user's FA install (env var → persisted config →
Windows registry/drive probes), hosts a native folder-picker first-run flow via the
engine window, mounts every .LIB archive into a case-insensitive memory-mapped VFS,
and answers hasAsset/listAssets truthfully from the mount; a self-invalidating
translation cache underpins the coming transcoders. It still serves no transcoded
assets — the load*() pipelines are roadmap Phase 3. Which FA content is ready to
bridge — aircraft flight models, entity/weapon/sensor stats, ~95% of 3D models, all 2D
art, sound effects — is tracked in
docs/asset-support-matrix.md.
| Dependency | Source |
|---|---|
| fighters-legacy | Engine interface headers (IContentPack.h + the IWindow set for configure()), vendored at extern/fl-headers, pinned to engine v0.3.6 (PIN.md) |
| fx_lib | extern/fx_lib submodule from fighters-codex, pinned to a release tag |
The reverse-engineering documentation this bridge builds on lives in
fighters-codex (the FA reconstruction). Two of its
components are worth noting for the engine-side work: fx_render — a shared MIT render module
(OpenGL + FA-faithful software backends), built engine-agnostic so the classic/parity render path can
adopt it instead of a bespoke rasterizer — and fxe, a clean-room MIT source port of the game
executable. fxe is an independent sibling that validates the same reconstruction; it is not a
dependency of this bridge. (fx_render builds as part of the submodule embed; the bridge links only
fx::lib.)
git clone --recurse-submodules https://github.com/fighters-legacy/fa-bridge.git
cmake --preset debug
cmake --build --preset debugNote: fx_lib is linked unconditionally (the former FA_WITH_FX_LIB option is gone) —
fighters-codex ships it cross-platform on Linux and Windows, and this repo's macOS CI leg is
the proving ground for the remaining upstream macOS gap
(fighters-codex#155).
See docs/development.md for full prerequisites and build instructions.
GPL v3. See LICENSE.
Final distribution positioning (free GPL plugin vs. the paid model sketched in early engine docs) is an open decision tracked in #37 and docs/roadmap.md.
Never commit FA game assets (
*.LIB,*.PIC,*.PAL,*.SH,*.PT,*.OT,*.M,*.MM,*.T2,*.CB8, and the rest of the extension set in.gitignore). They are owned by Electronic Arts and are not covered by this project's license.