Commit Graph
69 Commits
Author SHA1 Message Date
MrBruh 4adc3a87a5 Remove matching tooling and HALO_LINUX ifdefs 2026-09-30 21:49:46 +13:00
MrBruh a17d89c6f1 Merge bnunu/halo-1 main 2026-09-30 18:13:05 +13:00
Jonas Volman 6bfd956737 Reconcile approved Halo fidelity packets and bounded data credit
Recover transparent geometry submit (+1,285 meaningful code, zero exact losses); reconcile COMMON ownership and Q10 85+EXT1 credit, actions/main data, and separately disclosed denominator corrections. Preserve canonical-only repairs and all held research. C09 is ordinary disclosed cleanup, not a claim of proven scaffolding intent. Clean rebuild, 1,663 tests, parks, audits, provider links and independent EXT1 check pass. Local reconciliation only.
2026-09-29 13:52:37 -07:00
Jonas Volman f3aadeab98 Reconcile five Halo functions and approved declaration batches
Integrate coherent B3, P2/K17 prerequisites, completed K1-K16 + S, and the independent profile/effects rulings. Five gains and two explicitly approved B3 debits: net +3 strict functions, +2770 meaningful/+2800 padded bytes (+2774 progress credit). No additional losses; Halo objects 394 to 396 and data unchanged.

Clean rebuild, identical 8252-row stable sweep, 68 valid parks, admission/provider checks, 467-unit warning comparison, unchanged fake scan, and 1318 tests passed. Preserve canonical helper recoveries and unrelated work. Full evidence and disclosures in docs/object_matching_logs/astra_five_function_reconciliation_20260928.md.
2026-09-28 23:17:10 -07:00
MrBruh 1bcd57afe4 Merge branch 'bnunu:main' into main 2026-09-28 14:46:17 +13:00
Jonas Volman 709bfc3a3c Reconcile approved frontier ownership and admission packets
Import only independently reviewed production changes. Preserve canonical physics and virtual-keyboard repairs; keep B3 and all unresolved holds out.

Record exactly four approved canary debits (6987 meaningful bytes), six Halo admissions and two revocations. Keep vendor ioinit/storage work separate. Full build, 8252-row sweep, 1318 tests, park/admission/fake audits and 621-object binding pass within approved debit bounds.

Do not publish donor research dumps or private assets. README and unrelated user research remain untouched. See frontier_publication_reconciliation_20260927.md for complete evidence limits and accounting.
2026-09-27 17:12:48 -07:00
Jonas Volman 59757f4263 Reconcile approved type ownership, static locals and source disclosures
Independently gate storage + K, OQ-4 P-a/P-b1, four static-local packets and comment-only disclosures. Preserve all 7641 exact owner rows, 71 valid parks and 1161 passing tests; code/data credit unchanged. G and game_engine admission remain held because current canonical loses populate_statistic_buffer. Existing collision static-local repair is not duplicated. No donor tree, held candidate, scorer or private asset imported.
2026-09-27 05:17:27 -07:00
MrBruh b0e3bc96e3 Fix framerate-dependent timing 2026-09-27 19:23:44 +13:00
MrBruh ebb0eac50b Port decomp to Linux 2026-09-26 12:15:09 +12:00
Jonas VolmanandClaude Fable 5.1 d57ba30c0d Lane B wave 2: nine strict-exact functions (+4,715 meaningful / +4,784 padded)
New strict exact (unit :: function, padded bytes):
  game/player_control     :: _player_control_modify_desired_angles  1584
  ai/actor_combat         :: _actor_aim_projectile                   720
  memory/stack_memory_pool:: _stack_memory_pool_allocate             640
  memory/stack_memory_pool:: _stack_memory_pool_resize_block         192
  ai/action_vehicle       :: _action_vehicle_setup_impromptu         464
  scenario/wind           :: _wind_variance_initialize               384
  ai/actions              :: _actors_searching_same_position         320
  ai/action_converse      :: _action_converse_perform                256
  game/game_engine_race   :: _race_engine_get_score                  224
Function boards now complete: action_converse 9/9, wind 9/9, stack_memory_pool
33/33, game_engine_race 36/36, player_control 49/49 (objects NOT marked Matching:
whole-object data/ownership audit not done; player_control .rdata is owner-held).

Method. Every closure started from the SOURCE SHAPE read out of the first-party
unoptimised /Od + /RTC build (halo_cache_symbols.exe, scratch/orch/odbuild.py)
and was then confirmed against January's own bytes before it was relied on
(double attestation); none is a spelling search.
- _player_control_modify_desired_angles: both autolevel products are
  `error * K * magnitude3d(v)`; three lines, no local, cast or parenthesis.
- _actor_aim_projectile: weapon_vector is scoped to its own inner block, the dot
  product is tested directly (no `alignment` local), and the three debug-info
  stores follow January's order (flag first). Reviewer strip tests: block alone,
  order alone and alignment-drop alone are each residual; only the combination
  is exact.
- _stack_memory_pool_allocate: result zeroed before the 0x342 assert, ONE return,
  positive guard with the assert in the else, in-place size arithmetic. The
  worker's unattested `last_block` pointer local was REMOVED by the reviewer; the
  /Od arm spelling lands instead.
- _stack_memory_pool_resize_block: body untouched. The static helper
  stack_memory_pool_dispose_block takes (pool, reference), as /Od pushes them and
  as the callee forwards them to valid_block(pool, reference).
- _action_vehicle_setup_impromptu: passes state_data->attempt_distance /
  ->continue_distance (the fields just stored) instead of the parameters.
- _wind_variance_initialize: block-local `word control_point_indices[4]` assigned
  inside the innermost axis loop; name and size from the /Od RTC descriptor.
- _actors_searching_same_position: four pointer locals, result = FALSE after the
  four calls, if / else-if arms assigning result, one return. Requires
  actor_get_pursuit_location (baseline exact, STILL exact 64) to read
  uncover.pursuit_location through its own union member in a second arm, as /Od
  has it. The evade-direction enum gains its two real middle constants; values
  are unchanged (_actor_evade_random is still 4).
- _action_converse_perform: REMOVES a pre-existing `true_value` dummy local from
  production. `in_range = TRUE` is assigned in two arms (if / else-if): /Od has two
  distinct stores, impossible from one `||` statement, and January has
  `mov ebx,1` with two bl stores each with two in-edges. One return.
- _race_engine_get_score: a `score` accumulator assigned on both arms with ONE
  return (single-exit law); team_index/laps/flags_touched are block locals of
  the non-team arm.

Orchestrator overrides of reviewer-approved text (not landed, zero credit lost
beyond what is listed under HELD):
- action_vehicle: the reviewer's landing.c also rewrote _find_destination with 16
  NEW 3D->2D view casts. Owner ruling 2026-09-21 keeps rule 24 strict for new
  representation-punning casts, so only the two-line exact closure lands.
- actions: _actor_action_try_to_dive (720, exact in scratch) needs ONE new view
  cast -> HELD. _actor_action_handle_vehicle_entry's fuzzy rewrite introduced an
  empty `if` arm holding only a `//` comment (new fake_match_scan lead the
  reviewer missed) -> reverted to production.

Config: config/parked.json - six entries REMOVED (now exact):
_action_converse_perform, _wind_variance_initialize, _actor_aim_projectile,
_actors_searching_same_position, _player_control_modify_desired_angles,
_race_engine_get_score. No header, symbols.json, flag or tool change.

Verification (tip of the following fuzzy commit): full ninja all_source progress
semantic_progress pass, Code 1446706 -> 1451421, 7297 -> 7306 functions.
stable_verdicts vs the FROZEN baseline: gained 15 / 7568 bytes, regressions 0.
All 11,060 function and 1,706 section report rows: 0 lost 100%, 0 missing.
Parks 174 active / 0 stale / 0 invalid. Admission audit 23 / 0 / 8 / 0.
Guard, ownership, fake scan, line endings, new-punning-cast screen: clean on
every landed file. git diff --check clean.
Reviewer: independent adversarial agent per unit, ACCEPT_EXACT for all nine;
orchestrator re-gated every file through scratch/orch/land.py.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-21 11:10:49 -07:00
Jonas VolmanandClaude Opus 5 034141b121 Recover the wind sampler's integer sign-clear under an explicit owner ruling
_wind_variance_get (+224). January spills the scaled real, clears its sign bit
with a 32-bit `and dword ptr [ebp+0xc],0x7fffffff`, reloads it as a float and
takes the low byte. No floating spelling produces that: the previous fabs() body
canonicalises to x87 fabs at 208 bytes. The recovered source is a block-local
`union { real value; long bits; }` sign-clear, the two-member form that matches
the three existing in-tree precedents (path_obstacle_avoidance, render_cameras,
rasterizer_xbox_water, the last of which is an accepted strict-exact landing).

The owner lifted the 2026-08-31 "inactive union member" hold for this function
only, and the ledger records that supersession. Landed as the minimum function
hunk: no linkage change, no rename-define removal, no type or initializer edits,
and _wind_variance_initialize is untouched at its parked base 400/9.

Verified independently: whole-TU gate 8 exact / 1 residual with every baseline
row intact, guard passed, parkcheck clean apart from the reopened row, owner
census 0 added / 0 removed, fake scan 0 leads. Full ninja, parks 274 active /
0 stale / 0 invalid, stable diff vs scratch/opus5-next150-before.json: gained 5 /
2,752 padded, regressions 0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 21:52:23 -07:00
Jonas VolmanandClaude Opus 5 cc93a1fd1c scenario_definitions.h: add scenario weapon datum owner types
Header packet P2 (150K lane, admitted at zero credit). Adds struct scenario_object_permutation {change_colors[4]; region_permutations[8]; unused2[2]} and struct scenario_weapon_datum {object; permutation; short rounds_total; short rounds_loaded; word flags; word pad; unused[3]} plus the scenario weapon flag enum (_weapon_created_at_rest_bit, _weapon_obsolete_bit, _weapon_does_accelerate_bit). Owner and field names from the HCEX SHIP PDB weapons.obj compiland; layout and bits proven by January _weapon_place (rounds_total word at +0x48, rounds_loaded +0x4A, flag byte tests of bit 0 and bit 2 at +0x4C, magazine element 0x70).

55 transitive consumers shadow-compiled: 0 strict changes. Live tree: full ninja + stable sweep 0 gained / 0 regressions; the already-fuzzy encounters park _encounter_update_respawn toggles back to its original 704/27 hash (declaration count) and is re-measured with appended evidence.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 09:02:40 -07:00
Jonas VolmanandClaude Opus 5 6c7ab19dbb Add focused owner headers for matrix3x3_multiply and line_from_planes3d; name fog plane runtime fields
matrix_math.h and real_math_planes.h declare the genuine matrix_math.c / real_math.c signatures for their physics and collisions callers. Declaring either prototype in the broad real_math.h regressed decals::_decals_delete_permanent_from_cluster and draw_primitives::_rasterizer_dynamic_geometry_initialize and drifted four parks at any position (declaration count, bisected), so the precedent of narrow subsystem headers (bitmap_color_conversion.h, rasterizer_xbox_water.h) is followed. structure_fog_plane +0x00/+0x02 are the region index and the signed runtime material type January collision_test_vector reads; scenario.c renames are names only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 19:56:29 -07:00
Jonas Volman eb61c0f746 Reconcile seventh 10K exact source batch 2026-09-12 17:23:46 -07:00
Jonas Volman b32b28bdca Reconcile Fable particle-system lifecycle pair and real scale ABI 2026-09-06 03:05:57 -07:00
Jonas Volman 0ac2952646 Reconcile preserved Opus PAS caller cluster with verified owner APIs 2026-09-04 18:32:56 -07:00
Jonas Volman b175ed2be1 Reconcile Opus effects reconstruction 2026-09-04 03:48:30 -07:00
Jonas Volman c9a6ae5cd9 Reconstruct and park wind variance initializer 2026-08-31 20:50:24 -07:00
Jonas Volman 9f74e9937f Import 909 authenticated January and HCEA symbol names 2026-08-31 16:11:03 -07:00
Jonas Volman ee62f36f1f Integrate audited Claude small-object recoveries 2026-08-31 06:55:10 -07:00
Jonas Volman b7381ca187 Restore symbol-backed validator and S3TC types 2026-08-31 04:09:55 -07:00
Jonas Volman 677d098217 Recover Players callers without codegen steering 2026-08-30 23:42:05 -07:00
Jonas Volman 9475c085f8 Close render object with exact HaloCEA reconstruction 2026-08-30 11:47:08 -07:00
Jonas Volman 74eeadef77 ai: reconstruct AI debug exact checkpoint 2026-08-29 11:00:04 -07:00
Jonas Volman b97d95fe79 Recover recorded animation playback wrappers 2026-08-27 20:18:09 -07:00
Jonas Volman 4c9153fa54 Recover strict wind partial 2026-08-20 18:00:19 -07:00
Jonas Volman 915c78798c Match point physics object 2026-08-13 06:03:44 -07:00
Jonas Volman bfbf297b12 Conform exact scenario and vertex runtime style 2026-07-26 11:07:25 -07:00
Jonas Volman f96f19b7fe Match player starting equipment assignment 2026-07-25 22:02:21 -07:00
Jonas Volman dd0b2c87fb Match scenario object ownership 2026-07-25 18:51:02 -07:00
Jonas Volman d8f386b509 Match scenario atmospheric fog
Complete scenario.obj: _scenario_get_atmospheric_fog is now byte-exact
(816/816 bytes, 38/38 relocations; all 56 section symbols match).

XDK 3911 CL tail-merges the default-sky lookup with the else-branch
scenario_get_sky() lookup, where the January binary keeps them separate.
Around forty barrier-free source shapes, plus TU-context, register-pressure,
branch-order, hoisted-NULL, parameter-type and second-expansion variants,
failed to reproduce the split tails. Two zero-byte _ReadWriteBarrier()
intrinsics do: one in site-1 blocks the tail-merge, one in the else restores
the je jump-thread. Matches the object_shadows.c precedent; full rationale
is in the source comment.
2026-07-25 18:44:31 -07:00
Jonas Volman 82c66de87e Document scenario atmospheric fog scheduler tie 2026-07-25 18:44:31 -07:00
Jonas Volman 37d390159c Correct scenario material BSS ownership 2026-07-25 18:43:10 -07:00
Jonas Volman 36acebee12 Refine atmospheric fog reconstruction 2026-07-25 18:43:10 -07:00
Jonas Volman 70c4d8ec18 Match scenario loading 2026-07-25 18:43:10 -07:00
Jonas Volman ef831f2072 Reconstruct scenario fog and sound environment systems 2026-07-25 18:43:10 -07:00
Jonas Volman 92c47d32b9 Reconstruct scenario BSP and fog keystone functions 2026-07-21 13:21:45 -07:00
Jonas Volman 658640fa7a Match scenario BSP dispatch and point location 2026-07-21 11:40:32 -07:00
Jonas Volman b9b0b9733b Match UI scenario tag loading 2026-07-18 16:31:01 -07:00
Jonas Volman 55844b3359 Match cache file tag and BSP loading 2026-07-18 14:28:03 -07:00
Jonas Volman 9600d2c405 Match scenario unload lifecycle 2026-07-16 19:34:29 -07:00
Jonas Volman a7b970ba97 Match scenario new-map initialization 2026-07-16 19:33:09 -07:00
Jonas Volman c1c24ddb5c Match scenario globals initialization 2026-07-16 19:31:54 -07:00
Jonas Volman 9ccb4ab00e Match scenario material lookup 2026-07-16 18:32:02 -07:00
Jonas Volman 04a73af563 Match scenario material and world helpers 2026-07-16 18:22:05 -07:00
Jonas Volman 2c9822bc79 Match scenario triggers, PAS, fog, and BSP reload 2026-07-16 17:02:13 -07:00
Jonas Volman 998b792338 Match scenario visibility and trigger helpers 2026-07-16 16:08:14 -07:00
Jonas Volman 64e70e6dd5 Match scenario lookup and location helpers 2026-07-16 16:00:48 -07:00
Jonas Volman 762121dd63 Match scenario sky and BSP accessors 2026-07-16 15:44:29 -07:00
Jonas Volman 1660e48c0a Match scenario global accessors 2026-07-16 15:40:15 -07:00