The function stays residual at [sha]; this is not scoreboard movement. REAL regions 57 -> 53 with size, relocations and real code end all unchanged. THE DEFECT, verified from January's bytes before landing. Our source set allow_jump only when BOTH vehicle->vehicle.hover < 0.7f AND up.k < 0.8f. January tests hover (fcomp __real@3f333333 at 0x54e, jp 0x5fa), then executes mov byte ptr [ebp-3], 1 at 0x562 - allow_jump = TRUE - and only then tests up.k (fcomp __real@3f4ccccd at 0x566, jp 0x5fa). So January sets allow_jump whenever hover < 0.7, and falls through when up.k >= 0.8. Our source had a real behaviour difference; the if is now nested accordingly. The escape direction, crouch and break stay inside the up.k test. Also: rotation is scaled with the existing scale_vector3d helper instead of three *= statements. WHAT WAS NOT LANDED. The wave's primary variant PA also rewrote a negation with negate_vector3d, which makes actor_moving.obj newly define a _negate_vector3d COMDAT. January's actor_moving.obj does not define that symbol, so under the 2026-09-20 ownership ruling it cannot be emitted; PA_noNG, landed here, adds no new symbol. A further variant PB is byte-worse on padded size (+16) and its extra levers are neutral respellings rather than fixes, so it stays held. Verified: full ninja green; 11,060 function rows and 1,706 section rows diffed board-wide, 0 worse; actor_moving 31/5 unchanged; newly defined symbols versus the floor: none; parks 181 active / 0 stale / 0 invalid; forbid guard exit 0; fake_match_scan 0 findings. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Halo 1 decompilation

This is a work-in-progress decompilation of Halo: Combat Evolved build 2342 (cachebeta.exe, sha256 4cc87b45f721270392a96f1674ed2b5cd4a7bb4355faeab4531d1cf1884d9520).
Agent quick references
- Current campaign house rules and batch/treemap cadence
- Common constants, types, float patterns, tag IDs, and flag conventions
- Shared assertion macros and byte-matching examples
- Supplied CE source maps, recovered names, and next reconstruction packets
- Matching methodology and source-credibility rules
Build instructions
You must source the Halo 1 PAL debug build and the August 2001 Xbox SDK yourself. You also need ninja-build on your PATH.
Extract the XDK/xbox folder from the installer into the repository root such that xbox/{bin,include} are valid paths. Place cachebeta.exe from the Halo 1 build into your repository root. Navigate to the repository and run configure.py in the terminal.
Then, use ninja build to compile the game and report progress statistics, or open the cachebeta.sln VS2022 project under projects on Windows.
Where's all the type information?
We use debug symbols from later Halo games to help map structures, enums, type definitions, function signatures and some variable names. You should obtain a copy of the Halo CEA beta and run it through pdb-decompiler to obtain debug info for yourself. Note that CEA is based off of Halo PC and has its own modifications which make it not 100% accurate to the original Xbox title.