Merge pull request #31 from Dipshet/add-kbm

Add native KB+M support: menus, flight, mouse steering, pad-free play
This commit is contained in:
sal063
2026-07-27 22:48:13 +03:00
committed by GitHub
3 changed files with 1338 additions and 0 deletions
+1
View File
@@ -41,6 +41,7 @@ set(AC6RECOMP_SOURCES
src/ac6_backend_fixes/ac6_backend_hooks.cpp
src/ac6_backend_fixes/ac6_backend_pass_classifier.cpp
src/ac6_backend_fixes/ac6_fps_physics_fix.cpp
src/ac6_backend_fixes/ac6_kbm_input.cpp
)
if(WIN32)
@@ -164,11 +164,18 @@ void BlendFieldDelta(uint8_t* base, uint32_t ea, float pre, double ratio, const
PPC_EXTERN_FUNC(__imp__rex_sub_823046A0); // flight-model force step
PPC_EXTERN_FUNC(__imp__rex_sub_82329B40); // flight-model input shaping
// KB+M context switch (ac6_kbm_input.cpp): the force step is the reliable
// "flight sim is stepping" heartbeat (runs per frame for every aircraft,
// halts when paused / in menus).
void ac6KbmNotifyFlightStep();
// Flight-model core force step (0x823046A0): rescale the per-frame stepped
// longitudinal force/speed command at [this+1320].
PPC_FUNC_IMPL(rex_sub_823046A0) {
PPC_FUNC_PROLOGUE();
ac6KbmNotifyFlightStep();
const uint32_t self = ctx.r3.u32;
const double ratio = StepRatio();
// 1.0 is the exact pass-through value (native cadence, or the fix disabled).
File diff suppressed because it is too large Load Diff