diff --git a/config/config.json b/config/config.json index f5af695c..eb64263e 100644 --- a/config/config.json +++ b/config/config.json @@ -489,7 +489,7 @@ { "name": "source/rasterizer/xbox/rasterizer_xbox_motion_sensor.c", "index": 114, "status": "Matching" }, { "name": "source/rasterizer/xbox/rasterizer_xbox_models.c", "index": 115, "status": "NonMatching" }, { "name": "source/rasterizer/xbox/rasterizer_xbox_lights.c", "index": 116, "status": "NonMatching" }, - { "name": "source/rasterizer/xbox/rasterizer_xbox_hardware_geometry.c", "index": 117, "status": "Matching" }, + { "name": "source/rasterizer/xbox/rasterizer_xbox_hardware_geometry.c", "index": 117, "status": "NonMatching" }, { "name": "source/rasterizer/xbox/rasterizer_xbox_hardware_bitmaps.c", "index": 118, "status": "NonMatching" }, { "name": "source/rasterizer/xbox/rasterizer_xbox_errors.c", "index": 119, "status": "Matching" }, { "name": "source/rasterizer/xbox/rasterizer_xbox_environment_fog.c", "index": 120, "status": "NonMatching" }, diff --git a/config/symbols.json b/config/symbols.json index 885b3b3d..bba41c71 100644 --- a/config/symbols.json +++ b/config/symbols.json @@ -5810,19 +5810,19 @@ { "file_offset": 1409312, "flags": 32, "name": "_rasterizer_bitmap_cube_map_changed", "static": true }, { "file_offset": 1409840, "flags": 32, "name": "_rasterizer_bitmap_delete" }, { "file_offset": 1409888, "flags": 32, "name": "_rasterizer_bitmap_changed" }, -{ "file_offset": 1410064, "flags": 32, "name": "_IDirect3DDevice8_CreateVertexBuffer@24", "static": true }, -{ "file_offset": 1410096, "flags": 32, "name": "_IDirect3DDevice8_CreateIndexBuffer@24", "static": true }, -{ "file_offset": 1410128, "flags": 32, "name": "_D3DResource_MoveResourceMemory@8", "static": true }, -{ "file_offset": 1410144, "flags": 32, "name": "_D3DVertexBuffer_MoveResourceMemory@8", "static": true }, -{ "file_offset": 1410160, "flags": 32, "name": "_D3DVertexBuffer_Unlock@4", "static": true }, -{ "file_offset": 1410176, "flags": 32, "name": "_IDirect3DVertexBuffer8_Release@4", "static": true }, -{ "file_offset": 1410192, "flags": 32, "name": "_IDirect3DVertexBuffer8_Lock@20", "static": true }, -{ "file_offset": 1410224, "flags": 32, "name": "_IDirect3DVertexBuffer8_Unlock@4", "static": true }, -{ "file_offset": 1410240, "flags": 32, "name": "_D3DIndexBuffer_Lock@20", "static": true }, -{ "file_offset": 1410256, "flags": 32, "name": "_D3DIndexBuffer_Unlock@4", "static": true }, -{ "file_offset": 1410272, "flags": 32, "name": "_IDirect3DIndexBuffer8_Release@4", "static": true }, -{ "file_offset": 1410288, "flags": 32, "name": "_IDirect3DIndexBuffer8_Lock@20", "static": true }, -{ "file_offset": 1410320, "flags": 32, "name": "_IDirect3DIndexBuffer8_Unlock@4", "static": true }, +{ "file_offset": 1410064, "flags": 32, "name": "_IDirect3DDevice8_CreateVertexBuffer@24" }, +{ "file_offset": 1410096, "flags": 32, "name": "_IDirect3DDevice8_CreateIndexBuffer@24" }, +{ "file_offset": 1410128, "flags": 32, "name": "_code_00158450@8" }, +{ "file_offset": 1410144, "flags": 32, "name": "_code_00158460@8" }, +{ "file_offset": 1410160, "flags": 32, "name": "_code_00158470@4" }, +{ "file_offset": 1410176, "flags": 32, "name": "_IDirect3DVertexBuffer8_Release@4" }, +{ "file_offset": 1410192, "flags": 32, "name": "_IDirect3DVertexBuffer8_Lock@20" }, +{ "file_offset": 1410224, "flags": 32, "name": "_code_001584b0@4" }, +{ "file_offset": 1410240, "flags": 32, "name": "_D3DIndexBuffer_Lock@20" }, +{ "file_offset": 1410256, "flags": 32, "name": "_code_001584d0@4" }, +{ "file_offset": 1410272, "flags": 32, "name": "_IDirect3DIndexBuffer8_Release@4" }, +{ "file_offset": 1410288, "flags": 32, "name": "_IDirect3DIndexBuffer8_Lock@20" }, +{ "file_offset": 1410320, "flags": 32, "name": "_code_00158510@4" }, { "file_offset": 1410336, "flags": 32, "name": "_rasterizer_vertex_buffer_new" }, { "file_offset": 1410704, "flags": 32, "name": "_rasterizer_vertex_buffer_delete" }, { "file_offset": 1410752, "flags": 32, "name": "_rasterizer_triangle_buffer_new" }, diff --git a/docs/object_matching_logs/claude_fifty_objects_r2_integration_20260924.md b/docs/object_matching_logs/claude_fifty_objects_r2_integration_20260924.md new file mode 100644 index 00000000..836e6bf8 --- /dev/null +++ b/docs/object_matching_logs/claude_fifty_objects_r2_integration_20260924.md @@ -0,0 +1,42 @@ +# Claude fifty-object round 2: canonical reconciliation checkpoint + +This checkpoint reconciles Claude's committed `f6d00a8c..5d3ca708` range +against canonical `20dd67c0` in the isolated +`reconcile/fifty-r2-20260924` worktree. Claude's lane remains active; +its untracked `research/fifty_objects_r2_20260924/` evidence was neither +copied nor discarded. This is not a final lane handoff. + +The seven committed lane changes cherry-picked without path conflicts. One +object admission was quarantined before publication: the +`rasterizer_xbox_hardware_geometry` source, corresponding symbol-map edits, +and `Matching` flag were restored to their canonical state. The lane's added +`D3DVertexBuffer_MoveResourceMemory(d3d_vertex_buffer, D3DMEM_VIDEO)` call +is byte-inert; the wrapper names have 2001 map support, but its call-site +position and argument are not attested. No credit is claimed for this object. +The lane packet remains available for a later authenticity ruling. + +| Halo metric | Canonical `20dd67c0` | Reconciled checkpoint | Delta | +| --- | ---: | ---: | ---: | +| Meaningful exact code bytes | 1,573,109 | 1,577,237 | +4,128 | +| Exact functions | 7,442 / 7,574 | 7,445 / 7,574 | +3 | +| Credited data bytes | 2,583,826 | 2,586,915 | +3,089 | +| Complete objects | 381 / 468 | 383 / 468 | +2 | + +The code gains are `_actor_input_update` (2,384 padded bytes), +`_actors_spawn_from_unit` (672), and `_render_debug_trigger_volumes` (1,088). +The stable whole-board diff reports three gains / 4,144 padded bytes and +zero regressions. The 3,089 data bytes come from the lane's two separately +verified semantic data entries for `projectiles` and `object_lights`; they +are not new code credit. + +Full `ninja progress` passes. Parks: 83 valid. Admission audit: +11 candidates, zero contradicted, 2 rejected, zero revoked. Tools tests: +1,161 passed, 5 skipped, 26 subtests passed. `git diff --check` passes. +The opt-in Xbox link probe still reports three duplicate providers and no +successful full link; all 621 input object digests are unchanged by the +probe. No proprietary SDK/reference files enter this checkpoint. + +Before canonical integration, refresh this checkpoint with Claude's final +tip and curated research evidence, re-run the same gates, and retain the +hardware-geometry hold unless new first-party source evidence resolves its +call site. diff --git a/source/rasterizer/xbox/rasterizer_xbox_hardware_geometry.c b/source/rasterizer/xbox/rasterizer_xbox_hardware_geometry.c index d14d32a2..c2bb9095 100644 --- a/source/rasterizer/xbox/rasterizer_xbox_hardware_geometry.c +++ b/source/rasterizer/xbox/rasterizer_xbox_hardware_geometry.c @@ -3,31 +3,31 @@ RASTERIZER_XBOX_HARDWARE_GEOMETRY.C symbols in this file: 00158410 0020: - _IDirect3DDevice8_CreateVertexBuffer@24 (0000) + _code_00158410 (0000) 00158430 0020: - _IDirect3DDevice8_CreateIndexBuffer@24 (0000) + _code_00158430 (0000) 00158450 0010: - _D3DResource_MoveResourceMemory@8 (0000) + _code_00158450@8 (0000) 00158460 0010: - _D3DVertexBuffer_MoveResourceMemory@8 (0000) + _code_00158460@8 (0000) 00158470 0010: - _D3DVertexBuffer_Unlock@4 (0000) + _code_00158470@4 (0000) 00158480 0010: - _IDirect3DVertexBuffer8_Release@4 (0000) + _code_00158480 (0000) 00158490 0020: - _IDirect3DVertexBuffer8_Lock@20 (0000) + _code_00158490 (0000) 001584B0 0010: - _IDirect3DVertexBuffer8_Unlock@4 (0000) + _code_001584b0@4 (0000) 001584C0 0010: - _D3DIndexBuffer_Lock@20 (0000) + _code_001584c0 (0000) 001584D0 0010: - _D3DIndexBuffer_Unlock@4 (0000) + _code_001584d0@4 (0000) 001584E0 0010: - _IDirect3DIndexBuffer8_Release@4 (0000) + _code_001584e0 (0000) 001584F0 0020: - _IDirect3DIndexBuffer8_Lock@20 (0000) + _code_001584f0 (0000) 00158510 0010: - _IDirect3DIndexBuffer8_Unlock@4 (0000) + _code_00158510@4 (0000) 00158520 0170: _rasterizer_vertex_buffer_new (0000) 00158690 0030: @@ -73,6 +73,44 @@ symbols in this file: /* ---------- public code */ +void __stdcall code_00158450( + void *resource, + void *data) +{ + return; +} + +void __stdcall code_00158460( + void *resource, + void *data) +{ + return; +} + +void __stdcall code_00158470( + void *resource) +{ + return; +} + +long __stdcall code_001584b0( + void *resource) +{ + return 0; +} + +void __stdcall code_001584d0( + void *resource) +{ + return; +} + +long __stdcall code_00158510( + void *resource) +{ + return 0; +} + boolean rasterizer_vertex_buffer_new( struct vertex_buffer *vertex_buffer, long vertex_type, @@ -159,13 +197,6 @@ boolean rasterizer_vertex_buffer_new( "IDirect3DVertexBuffer8_Unlock(d3d_vertex_buffer)"); } - /* January emits this no-op XDK wrapper (0x00158460) and its - * D3DResource_MoveResourceMemory callee (0x00158450) out of line; - * the argument and position are not recoverable from the bytes. */ - D3DVertexBuffer_MoveResourceMemory( - d3d_vertex_buffer, - D3DMEM_VIDEO); - vertex_buffer->count = count; vertex_buffer->offset = 0; vertex_buffer->base_address = (void *)vertices;