Commit Graph
1691 Commits
Author SHA1 Message Date
Jonas Volman 20dd67c063 Add isolated Xbox link probe and repair private helper ownership 2026-09-24 13:27:04 -07:00
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 4e84c212f3 Handoff: owner ruling queue (measured at cdc8ebd3), final handoff, waves 4-5 evidence
- docs/object_matching_logs/claude_fifty_objects_20260925_owner_queue.md: 14
  held items, each apply-ready on cdc8ebd3 with measured unlocks (18 objects on
  an all-yes; models and hs_scenario_definitions since superseded by canonical).
- Ledger final handoff: commit order, changed paths, target vs result (18 of
  50), tallies, house-rule review, held items, process incidents, and the
  trial merge against canonical dbcea3d6 (5 conflicting files, resolution
  guidance, and the dynavobgeom / SDK-table policy conflict with its census).
- research/fifty_objects_20260925: waves 4-5 worker/reviewer ledgers, owner
  queue packets with APPLY_ORDER, and the integrator kit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 05:50:51 -07:00
Jonas VolmanandClaude Opus 5.5 eb33baecf8 Ledger: batch 5 (hud_unit admission, P7 disclosure, hygiene) and tallies at cdc8ebd3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 05:00:23 -07:00
Jonas VolmanandClaude Opus 5.5 16542e461f Ledger: batch 4 results, tallies at 6e3e2d35, wave-3 held items; preserve wave-3 evidence
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 02:26:57 -07:00
Jonas VolmanandClaude Opus 5.5 b9a8d587a0 Batch 3: admit twelve objects; four exact functions; verified storage and data fixes
Objects admitted (Halo 363 -> 375), each with an independent adversarial review:
units (first-party names incl. the reviewer-corrected unit_vectors_are_valid, 49
static flags, '$'-defect data entry), collision_debug (/Od helper calls),
render_objects (b807f9f6 provider packet), editor_flying_camera
(_editor_camera_set_position_and_roll 432, storage + grouped entry re-pin),
rasterizer_xbox_shadows (shadow_model_draw 688), cache_files_windows
(open_cache_files 752), light_volumes (light_volume_render 912, reviewer-amended
/Od declaration order), actor_firing_position, path, biped_limp_noodle (HCEX file
statics), leaf_map and model_animations (/Od helper calls replace hand expansions).

Zero-credit/data: path_structure_bsp HCEX tables (+200 data), hud_nav_points
storage, first_person_weapons patch A (park re-baselined).

Gate (full ninja, objdiff 3.3.1): stable diff +4 strict / 2,784 padded, 0
regressions; parks 89/0/0; admission 11/0/5/0; fake scan 26 (new lead is the
/Od-attested empty then-arm in the still-parked fpw update); pytest 1157 passed;
diff --check clean. Ledger: docs/object_matching_logs/claude_fifty_objects_20260925.md
(adds the Layer 2 owner-ruling disclosure, tallies and held items).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 23:53:28 -07:00
Jonas Volman dbcea3d616 d3d8: reconcile clean continuation 015 source 2026-09-23 22:34:13 -07:00
Jonas Volman 641e146696 Reconcile dynavobgeom owner types and count fastcall functions 2026-09-23 20:54:37 -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 Volman a49b3a2536 docs: preserve independent bitmap drawing prefix evidence 2026-09-23 19:01:34 -07:00
Jonas Volman a595bbc2b7 models: restore exact BSS default ownership 2026-09-23 18:59:38 -07:00
Jonas Volman e208c87ba6 ai: restore attested quantized pathfinding tables 2026-09-23 18:44:52 -07:00
Jonas Volman 1097bf897b Document Player UI game-variant owner probe 2026-09-23 18:42:23 -07:00
Jonas Volman 3da50d630b hs: restore separate external-global definitions and owner 2026-09-23 18:40:22 -07:00
Jonas Volman c5fe0f4036 hs: restore separate scenario data definitions and owner 2026-09-23 18:35:45 -07:00
Jonas Volman e9e62b7867 Document preserved decals and physics research branch 2026-09-23 17:17:53 -07:00
Jonas VolmanandClaude Opus 5.5 6116542948 Record decals/physics three-function lane ledger
Zero strict-exact functions and zero credited bytes; no production source change.
Documents the /Od-, HCEX- and law-attested source facts measured for
_decal_clip_to_surface (frame closed, one two-load swap left),
_decal_new_from_collision and _physics_update_old, the rejected probes,
and precise reopen criteria. Best candidates stay local in scratch/ledger.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 17:16:11 -07:00
Jonas Volman 45fc0d2948 research: hold flags counter initializer exact probe 2026-09-23 17:02:48 -07:00
Jonas Volman 5019c1861a camera: recover private editor state and three exact functions 2026-09-23 16:51:11 -07:00
Jonas Volman d90c9508a6 effects: recover weather particle physics inline helper calls 2026-09-23 16:28:41 -07:00
Jonas Volman 975d4a0bf5 structures: match fog-plane debug helper schedule 2026-09-23 16:14:51 -07:00
Jonas Volman 3c74fa3643 Document approved folded inline COMDAT admission 2026-09-23 16:04:33 -07:00
Jonas VolmanandClaude Opus 5.5 f5bd39e1fe Record collision_debug/convex_hull2d function lane handoff
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 15:58:34 -07:00
Jonas Volman ed3e308af0 bitmaps: restore exact ARGB inline color helper and owner API 2026-09-23 15:54:31 -07:00
Jonas Volman f2f880f9c0 physics: match breakable surface effect with authentic inline helpers 2026-09-23 15:40:32 -07:00
Jonas Volman 5700518e23 Document ai debug jump-table section ownership 2026-09-23 15:35:06 -07:00
Jonas Volman c6ffbffc77 player profile: restore value-return color API 2026-09-23 15:33:14 -07:00
Jonas Volman f21e001f74 weapons: match trigger projectile inline schedule 2026-09-23 15:24:06 -07:00
Jonas Volman 188d6c1bc0 Preserve three data ownership holds after Claude reconciliation 2026-09-23 14:48:30 -07:00
Jonas VolmanandClaude Opus 5.5 b22eddc0cc Record data/ownership closeout handoff
Ledger for the revoked-data object closeout:
- 10 whole objects verified complete (459/833 under the canonical
  objdiff 3.3.1 scorer, from 449/833);
- +9,910 data bytes, zero code bytes;
- three objects still revoked, with evidence and reopen criteria.

It also records three owner notes: canonical's stale objdiff 3.3.1
binary despite the v3.6.0 pin, the grouped-entry hazard under 3.6.0,
and the SDK-table precedent question.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 14:43:02 -07:00
Jonas Volman c661a33424 Admit verified Director object as tenth Halo closure 2026-09-23 14:36:55 -07:00
Jonas Volman b0992d0ebe Admit nine verified Halo object closures 2026-09-23 14:25:38 -07:00
Jonas Volman 89230ef248 Verify ten object closures outside Claude lane 2026-09-23 13:20:48 -07:00
Jonas Volman 0d8278510a Clarify aim-grenade diagnostic artifact location 2026-09-23 12:56:14 -07:00
Jonas VolmanandClaude Opus 5.5 1866d7fd82 Record actor_aim_grenade stack-layout residual decode (zero credit)
Documentation only: no source, config, symbol or park change; 0 exact
functions gained or lost, 0 meaningful / 0 padded code bytes, 0 objects
admitted. path_smoothing stays blocked on actor_combat's NODUP
_cross_product2d.

The residual is decoded to one source fact.
- The /Od build initialises horizontal_aim_vector with an aggregate
  copy: integer moves at 0x44ecc7, while float field stores in the same
  function use movss. Spelling that view copy restores January's
  register choices and slot ranking.
- The last 4 frame bytes come from C2 keeping an address-taken local
  live until the end of its declaration scope. January's fild temp
  overlays horizontal_aim_vector.j, so January declared it in a block
  that closes before the rotation.
- A goto diagnostic proves the function then goes strict exact, but
  that structure contradicts the /Od declaration order and would be
  invented control flow. It is not landed.

The owner packet, reopen criterion and every measured shape are in
docs/object_matching_logs/claude_actor_aim_grenade_20260924.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 12:55:31 -07:00
Jonas Volman 4a39ce0d78 Credit ten verified whole-object data aliases 2026-09-23 12:49:14 -07:00
Jonas Volman ae12a3c16e Reconcile Claude object closures and correct distance3d ownership 2026-09-23 12:14:00 -07:00
Jonas VolmanandClaude Opus 5.5 59925575f1 Match action_vehicle_find_destination and admit action_vehicle
Wave 2 of the limited object-closure lane. New code: 1 function,
1,232 padded / 1,225 meaningful bytes; action_vehicle closes at 17/17.

find_destination now uses the genuine real_math.h helpers the /Od build
(halo_cache_symbols.exe 0x4422a0) calls: distance3d, MAX, a pointer-
selected target copy, vector_from_points2d x4, dot_product2d,
point_from_line2d x2, magnitude_squared2d/3d, perpendicular2d,
negate_vector2d, normalize2d, vector_from_points3d, square_root,
point_from_line3d x3, scale_vector3d, and a single success flag. Local
names come from the /Od RTC descriptor. The statement list is Lane B's
diag_inline.c donor.

- Drop the REAL_MATH_EXTERNAL_POINT_FROM_LINE3D guard for this TU.
  January's action_vehicle holds an UNDEF reference to
  _point_from_line3d, so this is within owner ruling 1. The emitted
  COMDAT is section-identical to January's action_charge copy.
- _scale_vector3d is a new all-inlined COMDAT (ruling 5). Its caller is
  strict exact and the section is identical to January's copy.
- Drop the hand-written NODUP point_from_line2d and its rename. The
  header inline now supplies the exact, January-owned _point_from_line2d,
  and no object on the board defines it NODUP.
- 18 view casts, admitted under ruling 6. Each is attested at its own
  /Od call site (quoted in the ledger). The strip test is byte-inert:
  with all 18 removed the function is still EXACT and section-identical.

Verification: full ninja; stable diff gained 1 / 1,232 bytes,
regressions 0; parks 103/0/0; admission audit 39 candidates,
0 contradicted, 0 revoked; object audit PASS; selected-provider link
PASS (both orders, 21 surplus symbols); pytest 1154 passed;
halobetacache linked files 335 -> 336. Ledger:
docs/object_matching_logs/claude_object_closure_20260924.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 11:58:45 -07:00
Jonas Volman 63e8dd7a3b Close eleven Halo objects with verified source and data ownership 2026-09-23 11:55:28 -07:00
Jonas Volman 7fcaff7179 Admit five more verified Halo objects 2026-09-23 11:30:29 -07:00
Jonas Volman 6fa4eeb573 Admit five verified Halo objects as complete 2026-09-23 11:19:15 -07:00
Jonas Volman 5e81dabff0 Close five Halo objects with verified shared-helper ownership 2026-09-23 10:38:14 -07:00
Jonas Volman 7222f2fd53 Reconcile Claude structural lane into canonical 2026-09-23 07:50:16 -07:00
Jonas VolmanandClaude Opus 5.5 40e5dc35f8 Record structural lane handoff, manifest and owner packet
Structural 40K lane (base ea84554a): 15 functions / 14,150 meaningful
bytes of new source-driven strict exact code, 8 already-credited csplit
relocation aliases (6,752 B, config only) reported separately, one
zero-credit fuzzy defect fix, zero stable-verdict regressions.

- claude_structural_HANDOFF_20260923.md: results by category, batch
  commits, priority-target outcomes, new laws (NODUP provider link law,
  scratch harvest, header name-count interplay, aggregate view-copy strip
  test) and why the 40K target was not reached (about 47K of
  strict-exact-under-ruling rows await owner decisions).
- claude_structural_manifest_20260923.json: per-function rows, batch
  gates, disclosed casts, rejected trials, fuzzy leads, waves and tools.
- claude_structural_owner_packet_20260923.md: seven measured decisions
  (provider COMDAT model, PDB volatile, realcmp placement, authentic
  January bugs, aggregate view copies, rejections, held items).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 06:39:14 -07:00
Jonas VolmanandClaude Opus 5.5 70e1a15b69 Return uncompressed vectors by value and match reload/index-buffer code
Structural lane batch 6: +1,632 padded / +1,590 meaningful bytes strict
exact (4 functions), zero stable-verdict regressions across the full
board (the header consumer sweep).

- rasterizer_geometry.h/.c: uncompress_int32_to_real_vector3d returns
  real_vector3d by value. The debug build shows the struct-return copy
  at all 16 call sites, and HCEX lists a single parameter. Callers in
  rasterizer.c, rasterizer_lights.c and rasterizer_xbox_lights.c assign
  the result directly and drop their scratch buffers. Exact:
  _compress_real_vector3d_to_int32 and _clamp. The parked
  _rasterizer_sun_glow_draw is re-measured (same size, fuzzy
  95.815 -> 95.817).
- game/players.h: declare players_debug_render(void), a public players.c
  function that render_debug.c called undeclared (C4013). Disclosure: the
  by-value prototype drops one declared name, which alone flips
  _rasterizer_frame_statistics_draw's field-load order. This genuine
  missing prototype restores that TU's name count. Both edits are
  independently evidenced and landed together; the full build shows no
  regression.
- weapons.c: _weapon_magazine_finish_reload reads magazine->rounds_loaded
  (/Od 0x6a4590).
- rasterizer_xbox_hardware_geometry.c: _rasterizer_triangle_buffer_new
  follows the debug build (0x7eaca0), including the index-buffer Unlock
  with its HRESULT check. This removes the _ReadWriteBarrier/pragma/goto
  steering.
- parked.json: unpark the three newly exact parked functions.

Gate: ninja PASS, parks 109/0/0, admission 0 contradicted/0 revoked,
provider link PASS, casts and fake scan unchanged, pytest 1152 passed /
5 skipped / 26 subtests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 06:36:08 -07:00
Jonas VolmanandClaude Opus 5.5 c789bec003 Correct ai_debug actor rendering scopes and vision-cone trig
Structural lane batch 5: zero-credit fuzzy improvement to
_ai_debug_render_actor (24,976 B, still residual); zero regressions.

- Fixes a real defect: the headspace vision cone used the vertical sine
  and cosine arrays swapped (January computes i/j from the cosine and k
  from the sine).
- Buffer types and scopes follow the debug build's RTC records and
  January's slots: textbuffer[1024], tempbuf[80], shared ring/height
  loop indices, and one block-scoped offset_point in the paths block.
- Exact-equal instructions rise from 6,181 to 6,472 of 6,662. Frame,
  slot set and relocation multiset now all match January. What remains
  is x87 operand staging and one tail merge.

Gate: ninja PASS, stable diff 0 gained / 0 regressions, parks 112/0/0,
pytest 1152 passed / 5 skipped / 26 subtests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 05:31:57 -07:00
Jonas VolmanandClaude Opus 5.5 1df575be5c Resolve the render-debug-profile one-before relocation alias
Structural lane batch 4: config only, +2,272 padded bytes strict exact
(_render_debug_profile), no source change, zero regressions. The scorer
already credited the row, so objdiff progress is unchanged.

_render_debug_profile reads values[index-1].enabled and .frame_value.
January addresses them 3 and 8 bytes before _profile_graph_values, and
csplit named the preceding _profile_graph_value_count. Retarget
relocations 847565/847576 to _profile_graph_values with addends -3/-8.

Gate: ninja PASS, parks 112/0/0, pytest 1152 passed / 5 skipped / 26
subtests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 05:29:42 -07:00
Jonas VolmanandClaude Opus 5.5 cfa201763e Match active camouflage, particle and shadow-begin rendering
Structural lane batch 3: +4,128 padded / +4,101 meaningful bytes strict
exact (3 functions), zero stable-verdict regressions.

- rasterizer_xbox_active_camouflage.c: _rasterizer_active_camouflage_draw.
  The debug build (0x7cd9c0) writes each normal/hyper-stealth blend as one
  (1-p)*base + p*hyper expression. The texture-animation vertex constants
  are a block-scoped aggregate initializer, so both constant arrays share
  a slot as in January.
- render_particles.c: _render_particles. The draw pass indexes
  group_particle_counts[group_index] with a short loop, and the inner loop
  is while (particle_count-- > 0), advancing the particle at the body end
  and before the delete-path continue (/Od 0x84f800).
- rasterizer_xbox_shadows.c: __rasterizer_environment_shadow_begin. The
  debug build's boolean success = TRUE is returned once, and the
  translation terms use dot_product3d (/Od 0x80d870; HCEX array name
  vsh_constants__screenproj).

Rule-24 disclosure (owner per-site admission, 2026-09-21): two new
(real_vector3d const *)&shadow_matrix->position casts, one per
dot_product3d call. The /Od build calls dot_product3d at 0x80db50 and
0x80dbc2 with the matrix position. Deleting both casts leaves the
function strict exact, and point/vector share the three-real layout.

parked.json: unpark _render_particles and __rasterizer_environment_shadow_begin.
The owner packet gains the aggregate 3D->2D view-copy question.

Gate: ninja PASS, parks 112/0/0, admission 0 contradicted/0 revoked,
provider link PASS, fake scan unchanged, pytest 1152 passed / 5 skipped
/ 26 subtests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 05:28:15 -07:00
Jonas Volman 95db66d0a1 Close five library objects with verified source and ownership 2026-09-23 04:45:53 -07:00
Jonas VolmanandClaude Opus 5.5 275a0225ca Resolve seven csplit neighbour-symbol relocation aliases
Structural lane batch 2: config only, +4,544 padded bytes strict exact
(7 functions), no source change, zero stable-verdict regressions. The
semantic scorer already credited these rows, so objdiff progress is
unchanged; the gain is in strict section_infos_equal verdicts.

Each relocation addresses the same image location in both objects, but
csplit named the neighbouring image symbol. Retarget to the owning symbol
with the addend VC7 emits (relocs.json line surgery, same class as
1b439d04 / 79096027):

- _collision_log_get_current_user: _global_current_collision_users-2
- _get_mutex_from_pool: _thread_globals+1580 (one-past-the-end bound)
- _bitmap_sharpen: _bitmap_sharpen_negative_table-2
- _player_profile_update_cache_for_nwide_list, _3wide_list_update,
  _1wide_list_update: _cached_player_profile+156 (pointer compare
  against the end of the cache)
- _splitscreen_pregame_status_screen_update:
  _local_player_controller_bitmap_frames+26

parked.json: remove the seven now-exact csplit-relocation-alias parks.

Gate: ninja PASS, parks 114/0/0, admission 0 contradicted/0 revoked,
pytest 1152 passed / 5 skipped / 26 subtests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 04:20:58 -07:00