# Ordinary42838 air path and walking-launch continuation RE-547 / F-270. Reproduce with `python3 scripts/analyze_qvm_air_mode.py`; check with `python3 scripts/test_qvm_air_mode.py`. The [machine report](qvm-air-mode.json) contains12 standalone ordinary-air fixtures and10 actual main chains. It connects [walking entry routing](QVM_WALK_ENTRY.md) to the reached42838 request. No original executable/full QVM/native collision/physics/rendering executes. The actual42838 initial guard runs first. The wall-specific branch remains unrecovered and is explicitly rejected at42868 if that branch is reached. The ordinary path proceeds at43157. It evaluates current39988 friction, copies the24-byte command into a local frame and evaluates40397 at that actual copied-command pointer. Word-backed supplied command bytes and the child byte map agree; command scale reads the copied buttons and current post-entry resource. The mode zeroes both forward/right basis Z components, normalizes the resulting planar vectors in live global memory, forms the horizontal wish from signed forward/right input, and normalizes that wish. Requested wish speed is its original length multiplied by command scale. Actual40275 uses initialized coefficient21192=1. Up input can affect scale but does not directly add wish Z here. Initial basis vectors are supplied finite inputs, not a claim that the original basis producer always returns those values. A nonzero plane indicator applies the source overbounce clip to accelerated velocity using the current normal. Unlike55465's negative-dot-only, speed-restoring projection, this inline clip applies for either dot sign and does not normalize back to the previous magnitude. The mode clears flags32 and requests60091(1). Actual wrapper, first gravity-on57714, conditional59710 step/second slide, down/overlap traces and fallback stores share memory. Six standalone contact fixtures reach the step child. There is no extra41768 gravity tail after this wrapper; final42838 state is the wrapper's result. The existing60091 implementation was factored into a reusable wrapper function while retaining the41768 composition's exact default output. The command-scale evaluator also accepts the actual copied-command pointer; its original callers keep their prior default pointer and reports. Ten main chains include the prior up9/up10, flags32/160 and clear/contact controls plus resource1499/1500 boundary controls. Four actual walking launches request and evaluate this air path. Ordinary43683 continuation and higher-priority41768 controls never receive its effects. Source40966 event99, directional animation, ground clearing and resource deduction occur before air friction/scaling/slide. Resource4000 with inventory slot0=17 becomes400 and launches Z270;1500 becomes0 but still launches Z270 because launch choice precedes cost;1499 becomes0 and launches Z202.5. Air scaling consumes the resulting400/0 resource, preserving the distinction between launch choice and the following speed gate. Queue99, resource and leg-timer effects survive movement and the recorded main suffix under its stated omitted effects. Eight independent tests predict friction, normalization and live basis stores, copied-command arguments, exact wish/acceleration and inline clip, both slide/step states and wrapper/fallback outputs, actual launch-to-air handoffs, resource/queue/timer ordering, wall-path rejection and file-backed configuration provenance. The suite now has719 passing tests. Prior wrapper/contact, main-contact, active-mode, flagged-mode and walk-entry reports regenerate byte-identically. Storage/filter, links, whitespace and deterministic new-report size are recorded in the ledger. Native roots and ordered slide/down/overlap records/endpoints remain supplied, not collision-derived. Complete wall-specific42838, ordinary43626 suffix,41848, combined posture/ground/nested-action ordering, remaining main prefix/suffix/consumers, original reference traces/native ABI/legal domains, full scheduler and macOS/Linux Rust/Bevy/Solari gameplay remain open under RE-548. This task adds no Rust runtime or platform proof.