# Changelog

## v2.1 — 2026-06-01

### New

**Control modifiers (shift layers).** Create Hold and Toggle modifiers in Options → Bindings → Modifiers and assign one to any key, button, or axis binding. A modifier multiplies your controller's capacity — the same input does one thing on its own and another while the modifier is held or toggled on, with no double-firing. Active toggle modifiers show in the top-right corner during flight.

**Dirt and soft ground bite back.** Soft surfaces like cropland now noticeably drag the aircraft down when you taxi or land off-runway, and a fast sideways skid on dirt can dig in and tip you onto a wingtip. Paved runways are unaffected.

- Device control presets: load a quick-start binding set for a controller layout from Options → Bindings → Misc (ships with a Thrustmaster T16000M + TWCS example).
- Retry is now instant and in-place — the Mission Over screen is an overlay and Retry respawns you at the start with no reload, from the overlay button, the pause menu, or a `retry` console command. The death screen mutes audio.
- Airbrakes now ramp open/closed while you hold extend/retract and freeze where you release, instead of snapping fully open on one tap. A new (unbound) airbrake toggle snaps fully open or closed.
- G-effects reworked: positive-G black-out and negative-G red-out are now mutually exclusive, and recovery from G-LOC depends on how depleted you are — you wake up fragile and can black out again.
- Combined (single-axis) braking now shows one "brakes" bind, and the past-idle throttle brake has its own deadzone / curve / sensitivity.

### Fixes

- Your control bindings no longer reset when the binding format changes between builds — they carry over.
- The aircraft no longer spawns carrying the previous mission's airbrake or throttle position.
- Fixed a false Mission Over that could fire the instant a mission started after a reload.
- Fixed whole-screen image corruption that appeared after going menu → game → menu → game.
- Dirt skids no longer make a rubber tire-screech sound (they still kick up dust).

## v2.0 — 2026-05-31

### New
- Surface-aware ground-roll shake: the cockpit now jolts over rough surfaces (dirt, rock) during taxi and rollout and smooths out on tarmac, cutting away cleanly at lift-off.
- The "souris" intake half-cones now slide forward with Mach — stowed below M1.4, fully forward by M2.0 — matching the real Mirage's variable intake geometry.
- Drag-chute audio: a distinct deployment thump plus a continuous drag rumble that scales with airspeed.
- Fuel-state voice callouts: a "bingo" warning under 800 kg and a more urgent "niveau" call under 250 kg, synced to the MFD fuel bar.
- Tower take-off clearance: a radio call a couple of seconds after a ground start (suppressed for air starts, never on landing).

**Anti-skid braking (ABS).** The mains now carry a Mirage 2000-era anti-skid system that modulates brake pressure per wheel to keep the tires from locking under hard braking. It includes touchdown spin-up protection — the wheels free-roll up to runway speed before the brakes bite, so a brakes-applied flare won't land on a locked wheel — and a cockpit ON/OFF master switch. The modulation is deliberately coarse and era-correct, not a modern smooth system.

## v1.0 — 2026-05-30

### New
- Use both controller triggers for the throttle (dual-trigger mode).
- Independent left/right wheel braking for differential braking on rollout.
- On the ground at idle, pulling the throttle back now applies the wheel brakes.
- Ground effect near the surface — extra lift and less drag in the landing flare and float.

**Generalized input & control groups.** The whole input layer is now data-driven and fully remappable. Actions can compose a positive and negative axis with separate analog/keyboard behaviour, pedals switch between 1-axis and 2-axis layouts, and every binding lives in a collapsible control group with per-group topology options (rudder and brakes 1-or-2-axis, single or dual throttle). Works with a broken stick-twist setup without forcing any particular hardware.

**Microburst windshear & weather presets.** The atmosphere now models microburst downburst cells and layered wind shear you can actually fly through — genuinely dangerous on approach. Pick a weather mood from presets (calm, gusty, shear-on-approach, microburst-risk) or spawn cells yourself from the dev console.

### Fixes
- Keyboard now responds the instant the window regains focus — it could previously stay fully locked until you nudged a bound axis.
- Alt-tabbing back no longer snaps untouched axes to stale values (e.g. the throttle jumping to ~46%).
- Chase and cockpit cameras each remember their own look angle and zoom instead of sharing one — switching views keeps your framing.
- Reduced negative-G engine flameout sensitivity.
- Belly landings with the gear up now register as an airframe strike instead of the retracted wheels catching the ground.
- Options checkboxes render correctly in every state (hover, pressed, disabled, focus).

## v0.4 — 2026-05-29

### New
- Gamepad throttle (and pitch/roll/yaw) fallback can now be bound to **two controller buttons** — one per direction — just like a pair of keyboard keys. Previously a controller could only take a single button per slot.

### Fixes
- Toggling the parking brake no longer throws the aircraft into violent random behaviour (nose pitching up with no airspeed, fast spinning, sliding backward) — it now brings you to a clean stop.
- Restarting a mission after a crash no longer hangs at "Loading airport…".
- Wingtip and canopy strikes are now detected when you're banked steeply or inverted near the ground — you could previously drag a wingtip through a hard low pass without it ending the mission.
- Pressing Escape in the Options menu now behaves like the Back button: with unsaved changes it asks before discarding (and reverts the audio preview) instead of dropping them silently.
- The cockpit control stick no longer clips through the fuselage at full deflection.
- Fixed a recurrence of the Windows-only full-screen visual corruption — the remaining screen-sampling effects (pilot vision, heat haze) now also guard against NaNs.
- Downloadable builds now ship with the compiled game and all terrain/art assets, fixing launch and loading failures in the previous build.

## v0.3 — 2026-05-29

### Fixes
- Crash-landings now reliably show the Mission Over screen instead of freezing the sim on a black "** MISSION OVER **" readout.
- The Mission Over screen is no longer a dead end — it's pausable so you can reach "Exit to Main Menu".
- Fixed the Windows-only full-screen visual corruption ("LSD" smear) that could appear when reloading a mission.
- Fixed the aircraft spawning airborne with no visible airport in downloaded/packaged builds — you now start correctly on the runway at Rayak.
- Terrain detail textures no longer shimmer in the distance.

## v0.2 — 2026-05-28

First playtest build.

### New

**Mirage IIIE flight model & inputs.** Full nonlinear aero with stalls, transonic effects, energy-bleed delta-wing turn behavior. Atar 9C-3 engine with stateful spool/EGT, compressor stalls, intake distortion, neg-G unporting. Realistic Mirage IIIE numbers — not "tuned to feel fun."

**Cockpit & HUD.** Rafale cockpit shell with three SubViewport MFD screens, free-look and HMD modes, clickable cockpit controls. Collimated 3D HUD with F-16-style tapes, phosphor glow, B612 Mono font, adaptive luminance against bright sky.

**Dynamic atmosphere.** Time-of-day driven sun + moon + stars via Nishita Rayleigh+Mie sky shader, HDR sun/moon discs. Layered wind with linear interpolation, FAR-25.341 1-cosine discrete gusts, MIL-F-8785C Dryden continuous turbulence. End-to-end wired into aero + engine intake.

**120×120 km Bekaa Valley theater.** Real Copernicus DEM terrain at 8192² with Sentinel-2-derived land-cover, colormap, and inland-water masks. Plane-at-origin world translation keeps cockpit math precise across the whole region. Rayak airfield as the spawn point.

**Engine, gear, and chute VFX.** Turbine glow, AB cone with shock-diamond chain, heat haze, exhaust smoke, ignition sparks. Cruciform drag chute with 53-mass-point Verlet sim and 12 shrouds. Tire smoke with world-anchored particles via patched Godot PPM.

**Landing physics.** Real touchdown — weight-on-wheels, oleo compression, ground roll with wheel braking, rudder steering, drag chute, survivability envelope on vertical speed/bank/yaw at touchdown.

- Pause menu: Esc to pause, audio mutes, physics freezes; Resume / Options / Exit to menu / Exit game. Options sub-screen hides settings that can't apply mid-mission.
- Version tag in bottom-right corner across every scene so bug reports always carry the build.
- Main-menu entry with fade transition and "Test Range" / "Options" entries.
- Settings menu: sub-tabs for Bindings (Axis / Buttons / Misc), Video, Audio. Per-tab search. Live audio preview with revert-on-back.
- Pitch / roll / rudder trim controls.
- Primary / secondary binding slots for every digital action.
- Parking brake (mechanical detent; cannot be over-spun).
- Performance controls: FPS cap, HiDPI off, resolution scale, MSAA, shadow quality, glow, tonemap, sky update rate, terrain detail, HUD/MFD refresh-rate caps.

### Fixes

- Bug fix batch: landing edge cases, throttle calibration, unbind handling, out-of-bounds terrain, afterburner cutoff, alt-tab focus loss, trim drift.
- Parked-airframe substep chatter from tire friction (implicit-Euler integration).
- Cockpit visual corruption when starting via F6 (frame-0 work deferred).
- Audio stream slots without an assigned source no longer crash.
- Airbrake axis no longer adopts its at-rest position until the pilot first moves it.
- G-LOC controls now unlock at the start of vision fade, not at full recovery.
- Visual airframe centered on physics CG (no stale GLB offset).
- Boot-time video-settings reapply no longer flickers when the saved values match defaults.
