Reconstruction/disassembly project for the old Supreme Commander: Forged Alliance engine and game binaries. Inspired by Forged Alliance Forever team-work.
Progress snapshot:
- Total FAF functions:
67,167- IDA index, exported
- Progress coverage:
91.51%- Consists of
recovered+skip+external_dependency÷ exported - Total amount of completed tokens:
61,465
- Consists of
Progress DB status breakdown:
recovered:51,962(84.54%)skip:5,681(9.24%) — CRT-internal / compiler-generated / orphan template instantiations / static-init glueexternal_dependency:3,822(6.22%) — third-party libs- libpng, zlib, wxWidgets, LuaPlus/Lua, boost, MSVC STL, CRI Sofdec/ADX, undname, bugsplat, CRT helpers
needs_evidence:1,648(2.45%)blocked:4,117(6.13%)- strict circular/dep-blocked (in-DB literal
status == "blocked") - combined with
needs_evidence, the "not-yet-recovered non-engine-external" bucket is5,765 - the
statstool'sblocked_countaggregates the same two buckets and reports5,765— functions previously attempted that depend on an unrecovered subsystem, a not-yet-typed owner class, or a non-trivial call-tree not yet walked bottom-up.
- strict circular/dep-blocked (in-DB literal
Use a Visual Studio developer shell before msbuild:
%comspec% /k "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsamd64_x86.bat"Patch/bootstrap required external dependencies:
powershell -ExecutionPolicy Bypass -File scripts\bootstrap_boost_1_34_1_required.ps1 -BoostRoot "<your external boost path>"
powershell -ExecutionPolicy Bypass -File scripts\bootstrap_wxwindows_2_4_2_required.ps1 -WxRoot "<your external wxWindows-2.4.2 path>"Build:
msbuild src\sdk\main.vcxproj /t:Build /p:Configuration=Debug /p:Platform=Win32Recommended hang-safe build wrapper:
powershell -ExecutionPolicy Bypass -File scripts\build_sdk_with_timeout.ps1 -TimeoutMinutes 120 -NoOutputTimeoutMinutes 10Patch/build details:
- boost_1_34_1_faf_required.md
- luaplus_build1081_faf_required.md
- wildmagic3p8_faf_required.md
- wxwindows_2_4_2_faf_required.md
- Boost
1.34.1 - LuaPlus
5.0build1081 - wxWidgets
2.4.2(MSW) - Wild Magic
3.8(now Geometric Tools) - zlib
1.2.3 - BugSplat
- CRI Middleware (Sofdec + ADX)
- DirectX 9/10 (with XACT audio; DX10 path is partial/non-functional in FA)
inspect-injector: injector/launcher for runtime inspection.inspect: injected DLL.main: reconstructed SDK/game code (primary recovered project).
USE_X87_COMPATIBILITY: keeps x87-compatible floating-point behavior where needed.
Big thanks to all active maintainers and contributors of the FAF project. This work builds on many years of engine inspection and disassembly effort by the FAF community, with special recognition to:
GetVersionExW- deprecated, ignored via disable warning 4996.