Commit Graph
120 Commits
Author SHA1 Message Date
Jonas Volman f6d00a8c1d Reconcile Claude fifty-object lane with canonical
Merge verified source, data and owner corrections from 4e84c212. Resolve overlapping HS/path symbols against canonical, retain the dynavobgeom ownership rejection, document Layer 2/P7 source-shape decisions, and preserve held research. Verified 14 exact functions, 17 new Halo objects, zero regressions under objdiff 3.3.1.
2026-09-24 07:20:01 -07:00
Jonas VolmanandClaude Opus 5.5 cdc8ebd3fe Batch 5b: reviewed zero-credit storage and provider hygiene
- geometry: drop the NODUP hand copy of plane2d_distance_to_point, so the
  header inline is used (selection byte only; removes a latent
  collision_bsp<->geometry LNK2005).
- collision_bsp: collision_bsp_usage_times is file-static (cachebeta publics).
- rasterizer_lights P1: HCEX file statics with January's .bss layout (the
  load-bearing `= {0}` follows the VC7 initialised-statics law and precedent);
  lands atomically with its 6 symbols.json rows.
- motion_sensor: .bss symbol layout fix (object_audit 44/2 -> 44/0).
- rasterizer_xbox_models: five D3D wrapper rows static.

All byte- and credit-neutral (gated with batch 5a); objects stay incomplete
on residual functions and held owner items.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 04:58:59 -07:00
Jonas VolmanandClaude Opus 5.5 931ed8dc2b Layer 2: /Od-attested real_math.h helper bodies and provider hand-copy removal
Shared-header prerequisite packet:
- real_math.h: distance2d/distance3d become square_root(distance_squared*(a,b))
  (/Od build, no local); project_point2d takes short mapping locals and a
  single ?: store (/Od-attested, equal to January's selected copy);
  lock/unlock_global_random_seed move from the 2026-09-04 reconstruction
  header random_math.h into real_math.h's existing RANDOM_MATH.C prototype
  section (main.c calls them without random_math.h).
- action_vehicle, path_obstacles, decals drop their '#define x x_inline'
  renames and hand-written NODUP helper copies; the header inlines now emit
  byte-identical copies of January's selected sections.
- object_lights and players adopt the /Od caller spellings (0x5d0d50).
Full ninja + rename-stable 8,245-function diff: +2 exact
(_player_set_action_result, _convex_hull2d_perimeter; park retired),
0 regressions. _ai_test_line_of_sight park remeasured (size/relocations
unchanged, fuzzy 97.98 -> 97.92).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 20:46:43 -07:00
Jonas VolmanandClaude Opus 5.5 bf937aac0f Batch 1: admit files_windows and objects; five exact functions
- files_windows: _file_get_size strict exact from the /Od single-exit
  result and file_error's named GetLastError() local; park retired.
- objects: Layer 1 helper-provider repair (action_charge, player_control,
  bored_camera, path_obstacles, decals use the genuine real_math.h
  inlines instead of hand-written NODUP copies; every provider row
  unchanged, emitted COMDATs byte-identical to January's selected copies,
  pair links pass both orders) plus the pinned objects_update data entry.
- Exact functions: _dead_camera_new, _actor_perception_refresh_danger_zone,
  _actor_look_idle_find_prop, _texture_cache_steal_memory.
- Zero-credit PDB/HCEX ownership corrections: profile, transport endpoint,
  actor_firing_position, game_engine, real_math, model_animations.

Halo objects 361 -> 363, code +2,769 meaningful bytes, data +1,530,
stable diff +5 functions / 0 regressions, parks 94/0/0, pytest green.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 20:42:50 -07:00
Jonas VolmanandClaude Opus 5.5 e942f3385c Own realcmp in real_math.h and match convex_hull2d (770 meaningful bytes)
realcmp appears in January's own assert strings in four objects
(actors, actor_moving, matrix_math, biped_limp_noodle), so it is a
shared Bungie math macro. Define it once in real_math.h's macros
section, using an existing blank line so no header line number moves.
Blank the four identical TU-local copies in actors.c, actor_looking.c
(with its now-stale comment), matrix_math.c and biped_limp_noodle.c.
They are blanked, not deleted, so no __LINE__ moves.
realcmp_epsilon is untouched.

_convex_hull2d returns to direct points[index] indexing. The /Od build
(0x6b9250) reads the parameter array at every site ([eax+edx*8+4]),
with no pointer locals. It uses realcmp at the two degeneracy tests.
The function is now strict exact: 784 padded / 770 meaningful bytes,
25 relocations, normalized sha256
49124afa1d48d20fe6b36cd5c98861de7d27d9ec0109cf7d8dba8812c5464e77. With
the plain fabs(...) < _real_epsilon spelling it is not exact, so the
genuine macro is load-bearing. No new view cast, no new helper
definitions (nothing to link). _convex_polygon2d_clip_to_plane is not
pursued.

The now-stale _convex_hull2d park is retired with
tools.campaign.unpark --write (1 removed, 102 retained).

Verification: full ninja; all 273 real_math.h consumers rebuilt with
no C4005/C4013; stable diff vs frozen 8,245-function baseline
+2 (_collision_debug_render 4,192, _convex_hull2d 784 padded) and 0
regressions; parks 102/0/0; admission audit 13/0/7/0; fake-match scan
unchanged on all six files; python -m pytest -q tools 1154 passed;
git diff --check clean. objdiff 3.3.1 as canonical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 15:58:34 -07:00
Jonas Volman 5e81dabff0 Close five Halo objects with verified shared-helper ownership 2026-09-23 10:38:14 -07:00
Jonas Volman 4f4c85021d Reconcile Lane C with canonical house-rule audit
Integrate verified source and data progress; exclude unproven COMMON ownership, held UB/asm forms, and address-named data credit. Stable sweep: 23 exact functions gained, zero lost.
2026-09-22 23:12:40 -07:00
Jonas Volman 37d513310b Reconcile evidence-backed 10K exact batch 2026-09-19 23:12:42 -07:00
Jonas Volman 389126d5a7 Reconcile Claude two-block exact-match campaign 2026-09-19 13:44:32 -07:00
Jonas VolmanandClaude Opus 5 c2593b885a Wave 3: eight functions strict exact (screen_effect object complete)
Reviewed reconstructions, each strict exact in its whole-TU gate with
zero inherited losses, guard passing and no new owners:
- rasterizer_xbox_screen_effect (13/13): complete per-arm shader setups,
  load-before-call locals, January assert texts, PIN clamp; screen_flash
  projection spelling and the defined inverse-pixel default arm
- hs_compile: _hs_parse_begin (per-branch result type; January's extra
  sprintf name argument kept with a BUG comment), _hs_parse_cond_recursive
  (single exit; January's always-true negation test kept with a BUG
  comment, byte-proven and recorded in HCEA)
- geometry: definitions in January object order (assert lines ascend),
  duplicate prototype removed, _get_edge_vertex single exit
- render_cameras: view_to_screen and build_frustum_bounds simplifications
- sound_manager: _sound_dispose_from_old_map loop-exit flag

Rejected in review: _encounter_test_rule (redundant default stores),
_render_camera_mirror (point_from_line3d COMDAT), _sound_set_definition_end
(prototype contradicting its definition).
Stable diff vs 9062b1e96: 0 regressions; parks 255 -> 250.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 13:06:38 -07:00
Jonas VolmanandClaude Opus 5 51c94f13e5 Harvest per-function donor bodies: 11 functions strict exact
Per-function transplant of historical and worktree donor bodies into the
current tree (whole-blob mining had rejected them for unrelated losses).
Each landing is the minimum hunk, strict exact in its whole-TU gate with
zero inherited losses, and reviewed for house rules and hard holds:
- helper spellings replace hand-expanded math (_device_frontfacing,
  _point_in_triangle3d, _actor_look_valid_aim/look_vector)
- _pill_test_vector3d normalizes directly into the output normal
- natural control-flow/declaration forms reopen five parks
  (_structure_cluster_mark/unmarked, __rasterizer_widget_draw_sprite2d,
  _rasterizer_set_model_skinning, _ai_handle_editing)
- two byte-proven non-UB original bugs kept under the documented
  original-bug policy with BUG comments (_ai_handle_editing unscaled
  csmemmove counts, _ai_scripting_follow_target_ai repeated name)

Stable diff vs 9062b1e96: +11 functions, 0 regressions; parks 268 -> 263.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 10:37:04 -07:00
Jonas VolmanandClaude Opus 5 21c41cb4bd real_math.h: real_local_random_range stores its result before returning (glow: 1 function strict exact)
Header packet P6 (150K lane). A site scan of every January split object finds all inline real_local_random_range sites (get_global_local_random_seed_address followed by real_seed_random_range); at 9 of them (weather new_particle x2, weather update_physics, glow trailing_particle_new x2, decals x2, particle_systems new_particles, dead_camera) January defers the fstp past unrelated integer work, which only the named-result spelling reproduces; no accepted-exact site contradicts it. No declaration added.

All 572 cl edges shadow-compiled H vs P: +1 (_glow_trailing_particle_new 608, park removed) / 0 losses. Live tree: full ninja + stable sweep with the dependent weather commit +2 gained / 0 regressions. Two already-fuzzy parks (_bitmap_group_add_bitmap 992/59, __rasterizer_model_draw 5168/348) re-measured for the header-inline hash flip with appended evidence.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 08:59:14 -07:00
Jonas VolmanandClaude Opus 5 6493ad3b5f geometry: 3 function(s) strict exact
Wave w2 landing, adversarially verified. park reopens: _build_torus, _convex_hull3d_begin, _geosphere_new. Requires in-place config/symbols.json linkage/label lines (included in this commit); full ninja build and per-function stable_verdicts sweep: 0 regressions. symbols.json: insert the static label _geosphere_primitive_triangles at 2597632 (the source-owned static short const table that follows _geosphere_primitive_vertices). 3 park(s) removed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 07:48:13 -07:00
Jonas VolmanandClaude Opus 5 293c23fb0a geometry: reopen calculate_vertex, get_face_vertex and subdivide_triangle exact
calculate_vertex private parameter order proven by the frame; get_edge_vertex park re-measured for the call site (evidence appended). convex_hull2d_perimeter and build_torus stay parked (steering rejected). 3 park(s) removed. Adversarially verified (wave D park re-investigation); full build of the combined wave D set: 0 regressions, parks 402/0/0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 23:09:10 -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 VolmanandClaude Opus 5 c86aa48bd0 Correct real_math.h limit3d and midpoint3d inline bodies
Header prerequisite with +2 strict exact functions / 112 padded bytes.
- limit3d now follows January's aim_assist.obj COMDAT: scale by
  length*reciprocal_square_root(dot) inside the dot > length*length branch and
  return FALSE at the end. aim_assist's inline copies _limit3d (96) and
  _reciprocal_square_root (16), which January emits out of line in that object,
  become strict exact.
- midpoint3d returns its result pointer as its signature (and January's
  mangled atlas record, returning real_point3d *) require; previously the
  function fell off the end without a value.

Blast radius: real_math.h has 185 includers. Full build passes; the stable
diff against the H1 commit shows exactly the two gains and 0 regressions;
parks 465 active, 0 stale. A bisection of the proposed packet showed that
adding a pin_normal_to_cone3d prototype to this header alone regresses three
unrelated exact functions (decals, rasterizer_xbox_draw_primitives,
error_geometry) and drifts four parks through declaration count, so that
prototype is not included.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 14:25:01 -07:00
Jonas Volman 5d3444f799 Reconcile eighth 10K exact source batch 2026-09-13 02:47:59 -07:00
Jonas Volman eb61c0f746 Reconcile seventh 10K exact source batch 2026-09-12 17:23:46 -07:00
Jonas Volman d6250fa794 Reconcile sixth 10K exact source batch 2026-09-12 12:36:44 -07:00
Jonas Volman d6b5a57cd1 Reconstruct Leaf Map private graph 2026-09-09 16:04:59 -07:00
Jonas Volman 1a6da50d5e Reconstruct AI visibility and spatial-effect routines 2026-09-09 12:56:21 -07:00
Jonas Volman 4ebe0ff6ec Reconcile HUD geometry and sound caller graphs 2026-09-08 20:28:22 -07:00
Jonas Volman 292cc29b86 Reconcile final Fable and Opus source batch 2026-09-08 17:34:52 -07:00
Jonas Volman 303c1d55a7 Reconcile Bink UI network HS and sound graphs 2026-09-08 12:49:14 -07:00
Jonas Volman f7afb70475 Reconcile UI, weather, aim, and render lanes 2026-09-08 08:23:20 -07:00
Jonas Volman b90402d960 Reconcile typed Fable geosphere graph with verified fuzzy parks 2026-09-06 01:12:26 -07:00
Jonas Volman c2561af50c Reconcile Fable inventory pickup and clean hull geometry 2026-09-06 00:33:07 -07:00
Jonas Volman 9fe11b82cd Reconstruct remaining player effects paths 2026-09-04 06:43:24 -07:00
Jonas Volman c787f81ecf Recover game lifecycle leaves 2026-09-04 05:50:43 -07:00
Jonas Volman fc057d673a Reconcile Opus network server manager reconstruction 2026-09-04 04:17:10 -07:00
Jonas Volman 15fd5a238d structures: add visibility owner interfaces 2026-09-02 22:50:42 -07:00
Jonas Volman 99eb6c8722 Recover connected geometry plane helper 2026-09-01 17:20:09 -07:00
Jonas Volman 660bf34212 Reconcile structure lens flares source 2026-09-01 13:01:08 -07:00
Jonas Volman 9f74e9937f Import 909 authenticated January and HCEA symbol names 2026-08-31 16:11:03 -07:00
Jonas Volman 40a88b9e8a Close matrix_math.obj with authenticated AP-930 kernel 2026-08-31 15:36:07 -07:00
Jonas Volman ee62f36f1f Integrate audited Claude small-object recoveries 2026-08-31 06:55:10 -07:00
Jonas Volman 0eda57d633 Integrate audited Claude exact-match recoveries 2026-08-31 05:43:20 -07:00
Jonas Volman c71441a02e Recover player rumble with authenticated fast_ftol 2026-08-31 04:45:17 -07:00
Jonas Volman 86babfc7b3 Correct periodic function table semantics 2026-08-27 06:06:54 -07:00
Jonas Volman 97086a4513 Restore safe real math residual owners 2026-08-27 00:02:00 -07:00
Jonas Volman f1f002ec72 Recover exact real math segment queries 2026-08-20 20:55:35 -07:00
Jonas Volman 097b023fd0 Advance matrix math strict matching 2026-08-20 11:21:56 -07:00
Jonas Volman b4b732b699 Match geosphere disposal 2026-08-20 11:21:16 -07:00
Jonas Volman a5f816f2d8 Remove unsafe real math type punning 2026-08-20 10:35:51 -07:00
Jonas Volman b105818a6b Advance real math exact matches 2026-08-20 10:08:22 -07:00
Jonas Volman cfe2aff70a Match collision features object 2026-08-13 05:54:03 -07:00
Jonas Volman a8114eb7ea Match following camera object 2026-08-13 04:48:12 -07:00
Jonas Volman fc089fa966 Match 2D pill triangle intersection 2026-07-26 01:53:27 -07:00
Jonas Volman 11a82c774a Match 2D circle triangle intersection 2026-07-26 01:52:23 -07:00
Jonas Volman 7dfbf9f0a4 Match fast sphere intersection distance 2026-07-26 01:45:49 -07:00