Releases: e-gleba/airstrike3d-tools
Release list
v1.0.9 - add DirectX8 support!
🎮 Direct3D 8 — freecam for every AirStrike build
untitled.mp4
This release brings native Direct3D 8 support so the D3D8 port gets the same tooling as the OpenGL games.
Freecam, overlay, world grid, wallhack — now on D3D8 too.
Supported games
| Version | API | Before | Now |
|---|---|---|---|
| 2.06 | OpenGL | Freecam + overlay | Same + freecam stacking fixed |
| 2.51 | Direct3D 8 | no ImGui freecam | Full D3D8 hooks + freecam + overlay |
| 2.71 | Direct3D 8 | no ImGui freecam | Full D3D8 hooks + freecam + overlay |
v2.51 is no longer second-class.
Highlights
| Area | What landed |
|---|---|
| 🎯 D3D8 backend | Direct3DCreate8 → device vtable (Present, SetTransform, Reset, …) |
| 📷 Freecam on D3D8 | Right-handed math, adopts live game camera (not a hard-coded pose) |
| 🖥 ImGui on D3D8 | Custom Dear ImGui D3D8 renderer (upstream never shipped one) |
| 🔌 One plugin set | Shared lua/ → freecam / wallhack / world grid work on GL and D3D8 |
| 🛠 OpenGL freecam | Modelview reset — no more stacked view matrices |
| ✅ #50 | DX8 tracking issue closed |
How D3D8 freecam works
Direct3DCreate8 (inline hook)
└→ CreateDevice (vtable)
└→ Present → frame + ImGui overlay
SetTransform(VIEW) → freecam / camera path
Reset → recover overlay + re-hook
- Dynamic load (
GetProcAddress) — safe under Wine/Proton load order - Live camera adoption — freecam starts where the plane actually is
- Device reset safe — alt-tab / mode change doesn’t leave hooks dead
What's Changed
- feat(proxy): native Direct3D 8 backend with renderer-neutral plugins by @e-gleba in #71
- fix(ci): MSVC-ABI Direct3D 8 SDK + atomic shared_ptr for clang_windows by @e-gleba in #72
Full Changelog: v1.0.8...v1.0.9
(or ...v1.10.0 if you publish under that tag)
Assets
| Platform | Format | Toolchain |
|---|---|---|
| 🪟 Windows (win32) | .zip |
Clang Windows x86 |
| 🐧 Linux (cross) | .tar.xz |
LLVM-MinGW i686 |
Drop the proxy into the game folder as usual. On v2.51, freecam should now behave like on OpenGL builds.
Related
Educational research / game preservation tooling.
v1.0.8 - new lua backend
🔧 Utility / Maintenance Release
This is a tooling and dependency maintenance release — no breaking changes.
Highlights include CI/CD action version bumps, a professional Lua tabbed UI framework, README badge polish, and crash fixes in the wallhack overlay.
What's Changed
- feat: unified proton/wine/native runner + shared deploy_game.cmake, v1.0.8 by @e-gleba in #51
- fix(ci): correct invalid CodeRabbit issue_assessment mode value by @e-gleba in #55
- refactor(lua): isolate sol2 into detail/, clean modern C++23 architecture by @e-gleba in #57
- feat(logging): modern C++23 logging wrapper — spdlog fully encapsulated by @e-gleba in #58
- refactor(logging): replace macros with type-safe wrapper functions by @e-gleba in #59
- feat: add CTest integration for Proton launcher emulator (2_06, 2_51, 2_71) by @e-gleba in #61
- chore: update safetyhook 0.6.9 → 0.7.0 by @e-gleba in #62
- refactor(sdk): clean up API with explicit backend naming and abstraction by @e-gleba in #63
- refactor(sdk): modernize to C++20 with Boost-style guidelines by @e-gleba in #64
- refactor(sdk): public API split, contract checks, and noexcept audit by @e-gleba in #65
- refactor(scripting): migrate from sol2 to LuaBridge3 for C++20/23 compliance by @e-gleba in #66
- feat(plugins): ultra-professional Lua 5.5.0 plugin system overhaul by @e-gleba in #67
Full Changelog: v1.0.7...v1.0.8
v1.0.7
🔧 Utility / Maintenance Release
This is a tooling and dependency maintenance release — no breaking changes.
Highlights include CI/CD action version bumps, a professional Lua tabbed UI framework, README badge polish, and crash fixes in the wallhack overlay.
✨ Highlights
| Area | What landed |
|---|---|
| 🎨 UI | Valve-style overhaul — 2× scaled fonts, professional dark theme, tabbed Lua framework |
| 🔌 Proxy | Multi-version BASS proxy with clean per-version install paths |
| 🐧 Linux | Publishing artifacts for 2.51 and 2.71 on Linux (no proxy yet — see #50) |
| 🛠 Fixes | Removed spurious end_window() on failed Begin, added missing cursor/window bindings |
| 📦 CI/CD | Action version bumps, README badge polish, release-notes template |
🐧 Linux Publishing — 2.51 & 2.71
Linux artifacts for game versions 2.51 and 2.71 are now published alongside the Windows builds.
⚠️ No DX8 proxy yet. The graphics interception layer (DirectX 8) still needs a proxy shim in the SDK before full feature parity with Windows. This is being tracked in #50 — DX8 proxy impl for SDK. Once landed, proxy-enabled Linux builds will ship for both versions.
📦 Assets
| Platform | Format | Size |
|---|---|---|
| 🪟 Windows (win32) | .zip |
~122 MB |
| 🪟 Windows (win32) | .tar.xz |
~100 MB |
| 🐧 Linux 2.51 | published | — |
| 🐧 Linux 2.71 | published | — |
🔮 Up Next
| Issue | What | Blocks |
|---|---|---|
| #50 | DX8 proxy for SDK | Proxy-enabled Linux 2.51 / 2.71 |
Full Changelog: v1.0.6...v1.0.7
What's Changed
- Custom release notes header — utility/maintenance release template by @e-gleba in #42
- feat: valve-style ui overhaul — 2x scaled fonts, professional dark theme by @e-gleba in #43
- fix: remove spurious end_window() on failed Begin + add missing cursor/window bindings by @e-gleba in #44
- feat: multi-version bass proxy with clean per-version install by @e-gleba in #45
Full Changelog: v1.0.6...v1.0.7
v1.0.6
What's Changed
- docs: professional repository upgrade — README, templates, governance files by @e-gleba in #20
- build: upgrade CMake toolchain, CPM bootstrap, presets, and deps to latest template by @e-gleba in #21
- build: fix imgui freetype target detection for CPM-based deps by @e-gleba in #22
- build: remove x86_64 presets — proxy DLL is i686-only by @e-gleba in #23
- build: clean MSVC presets, workflow-centric builds, genexp C++ standard by @e-gleba in #24
- ci: add GitHub Actions workflow using CMake workflow presets by @e-gleba in #25
- ci: clean step names, single-word actions, aligned workflow terminology by @e-gleba in #26
- ci: bump actions/checkout v4→v6, actions/upload-artifact v4→v7 by @e-gleba in #27
- ci: add setup-python v6, cache v5; simplify deps step by @e-gleba in #28
- ci: snake_case all names, rename ci.yml to build_and_package.yml by @e-gleba in #29
- ci: add publish_release workflow with auto-generated release notes by @e-gleba in #30
- chore: reorganize meta files, add path filters and explicit permissions by @e-gleba in #31
- fix(proxy): include windows.h before GL/gl.h on msvc by @e-gleba in #32
- fix(ci): correct cancel-in-progress spelling by @e-gleba in #33
- fix: include windows.h before GL/gl.h on msvc by @e-gleba in #34
- Replace MSVC with pure Clang Windows x86 preset and CI by @e-gleba in #35
- Restore MSVC presets in CMakePresets.json (CI unchanged) by @e-gleba in #37
- Professional tabbed UI framework for 2_06 Lua plugins by @e-gleba in #38
- Polish README badges and update build instructions by @e-gleba in #39
- Fix wallhack tab crash — replace combo with button-based selector by @e-gleba in #40
- Professional release workflow — auto-build, tag, and publish artifacts by @e-gleba in #41
Full Changelog: v1.0.4...v1.0.6
v1.0.5-preview — free_camera-only minimal release
v1.0.5-preview — free_camera-only minimal release
https://www.youtube.com/watch?v=i5yy5CHlysM
stripped to essentials
removed all runtime modifications except free camera (6dof noclip movement). speedhack + logging infra axed — focus shifted to single-feature demo for testing camera implementation in isolation.
changes from 1.0.4
removed:
- speedhack functionality
- logging enhancements
- all other runtime hooks/features
kept:
- free camera (6dof noclip) only
why preview/prerelease
minimal feature set for testing camera system independently. not production-ready — educational/preservation purposes as usual.
usage
same dll injection workflow. only free camera active — binds unchanged from 1.0.4 camera controls.
Full Changelog: v1.0.4...v1.0.5-preview
v1.0.4 — speedhack + logging enhancements
v1.0.4 — speedhack + logging enhancements
dll overlay expansion: game speed manipulation + diagnostic infrastructure.
new features
speedhack implementation
- added game speed manipulation functionality via
timeGetTimehook - allows real-time acceleration/deceleration of game physics and timing
- integrated into bass proxy overlay for seamless injection
logging improvements
file-based diagnostic output
- implemented persistent file logging alongside console output
- logs written to
bass_proxy.login game directory - useful for troubleshooting proton/wine deployments where console unavailable
logging refactor
- cleaned up logging infrastructure for better readability
- lowercase unix-style format with
std::quoted()-like inserts - improved diagnostic messages across overlay components
build & tooling
cmake modernization
- warning flags moved to dedicated compiler warnings target
- better separation of concerns in build configuration
- cmake formatting cleanup
c++26 performance optimizations
- minor perf improvements leveraging c++26 stdlib features
- reduced overhead in timing-critical code paths
proton/steam runtime
improved linux deployment
- enhanced
launch_proton.shscript reliability - better handling of file copies vs symlinks in wine prefix
- automatic log file accessible for debugging steam proton sessions
changelog: v1.0.3 (2025-11-17) → v1.0.4 (2025-11-18)
full changelog: v1.0.3...v1.0.4
v1.0.3 — cross-compilation & linux proton support
v1.0.3 — cross-compilation & linux proton support
comprehensive refactor => llvm-mingw cross-compilation support + proton/steam runtime for running on linux.
build system improvements
cross-compilation via llvm-mingw
- added cmake preset
llvm-mingw-i686for cross-compiling to win32 from linux - moved toolchain configuration from separate files into cmake presets — cleaner, reproducible builds
- switched to
.tar.xzpackaging on linux (instead of.zip) - fixed parallel link deadlock => forced
jobs=1in preset (lld issue in mingw context) - updated
.gitignoreforllvm-mingw/directory
glad & opengl loader
- replaced external rust-based glad generator with manual glad config (opengl 2.1, core profile)
- documented generator url in cmake:
https://glad.dav1d.de/ - removed cpplint, replaced with clang-tidy
cmake policy & deps
- temporary cmake policy 3.5 for freetype compatibility
- cleaned up presets structure for better cross-platform workflow
linux compatibility (steam proton)
proton launch automation
- added
launch_proton.shscript for deploying game + overlay under steam proton - improved script: symlinks → file copies (wine/proton compat)
- script auto-deploys bass proxy + runtime to steam compat directory
mesa opengl workaround
- documented
MESA_EXTENSION_MAX_YEAR=2003fix for old games on amd gpu + fedora linux (already in readme, reinforced in scripts)
runtime fixes
missing runtime dependency
- resolved startup crash caused by missing
bass_real.dll(not bundled properly)
code quality
modern c++ standard
- upgraded project to c++26 (was c++20)
- removed unused threading lib calls
- removed obsolete
game_pathvariable - general code cleanup, formatting, logging improvements
readme updates
- documented lld linker deadlock on parallel linking => workaround via
jobs=1in preset - added build instructions for ucrt vs msvcrt llvm-mingw flavors (win10+ vs win7+)
build from source:
# 1. download llvm-mingw from https://github.com/mstorsjo/llvm-mingw/releases
# - llvm-mingw-YYYYMMDD-ucrt-ubuntu-20.04-x86_64.tar.xz (win10+)
# - llvm-mingw-YYYYMMDD-msvcrt-ubuntu-20.04-x86_64.tar.xz (win7+ legacy)
# 2. extract to repo root as llvm-mingw/
# 3. run:
cmake --preset llvm-mingw-i686
cmake --build --preset llvm-mingw-i686run on linux via proton:
./launch_proton.shWARNING
x86_64 build is not working and attached only for historical reasons and ease of automation
changelog covers commits from v1.0.2 (2025-08-28) → head (2025-11-17).
Full Changelog: v1.0.2...v1.0.3
v1.0.2 — overlay ui improvements & code cleanup
v1.0.2 — overlay ui improvements & code cleanup
comprehensive refactor of bass proxy overlay => improved ui, logging, and stability fixes.
overlay ui improvements
ui 2.0 redesign
- complete visual overhaul of imgui interface
- improved layout and readability across main/hooks/performance tabs
- enhanced imgui backend integration for opengl 3.x rendering
logging enhancements
- refactored logging system for clearer diagnostics
- lowercase unix-style formatting with std::quoted()-like inserts
- better error tracking and debug output
runtime stability
bass.dll dependency fix
- resolved startup crash caused by missing
bass_real.dll - ensured proper bundling in release artifacts
- fixed dll path resolution logic
threading cleanup
- removed obsolete thread library calls that could cause hangs
- streamlined initialization sequence
code quality
general cleanup
- removed unused
game_pathvariable - reformatted codebase for consistency
- cleanup of cpp proxy code
- removed performance monitoring data
build system updates
clang-win32 toolchain
- added new toolchain for win32 targeting
- small build configuration fixes
reverse engineering artifacts
decompiled sources
- added new decompiled game sources from ghidra
- improved understanding of main loop and rendering pipeline
- extracted
dll_mainfor better analysis
game executable
- added dumped exe for reverse engineering reference
dependencies
glm integration
- added glm math library for future shader/matrix work
changelog covers commits from v1.0.1 (2025-08-22 21:54:12) → v1.0.2 (2025-08-28 13:14:00).
Full Changelog: v1.0.1...v1.0.2
bass.dll proxy is released!
Release v1.0.1 — bass.dll Proxy
What's New
- Initial release of the
bass.dllproxy with OpenGL overlay - Forwarding of all original BASS API calls to
bass_real.dll - In-game ImGui overlay: performance stats, hook list, post-processing shaders
Quick Tutorial: Enabling the Overlay in AirStrike 3D
-
Download v1.0.1 Assets
bass.dll(proxy)bass_real.dll(the original BASS library, renamed)- Any accompanying files (e.g., ImGui backends)
-
Locate Your Game Directory
- Typically:
C:\Program Files\Steam\steamapps\common\AirStrike 3D\ - Or wherever you installed the game.
- Typically:
-
Backup Original BASS DLL
- Rename the existing
bass.dllin the game folder:bass.dll → bass_original.dll
- Rename the existing
-
Copy Proxy and Real DLL
- From the downloaded v1.0.1 release, place into the game folder:
bass.dll bass_real.dll - Ensure
bass_real.dllis the genuine library—you must have the originalbass.dllrenamed.
- From the downloaded v1.0.1 release, place into the game folder:
-
Launch the Game
- Start AirStrike 3D as usual.
- The proxy will inject itself and forward all audio calls.
- Press Insert (default) to toggle the overlay.
-
Use the Overlay
- Explore tabs:
- Main: clear-color, wireframe, invert, shader selection
- Hooks: active function interceptions
- Performance: FPS, memory, CPU/RAM, network stats
- Explore tabs:
-
Reverting
- To disable the proxy, delete
bass.dllandbass_real.dllfrom the game folder. - Rename
bass_original.dllback tobass.dll.
- To disable the proxy, delete
Enjoy live instrumentation and custom shaders in AirStrike 3D!
Full Changelog: v1.0.0...v1.0.1