- symbols.json: IDirect3DDevice8_IsBusy/KickPushBuffer and IDirect3DBaseTexture8_IsBusy
are static (D3DINLINE is static __forceinline; none is a cachebeta public).
- Three invented static names replaced by first-party names from the 2001-09-25
cachebeta-xbe linker map (atlas 7eacac85, re-anchored on 20 named symbols):
texture_cache_name_block_proc, compare (also January atlas exact tier) and
texture_cache_initialize_hardware_format.
- bitmap_group.h (shared, 45 includers): struct bitmap_data fields per HCEX
(mipmap_pad, long pixels_offset/pixels_size/tag_index/cache_block_index);
bink_playback.c and bitmaps.c adopt the names. The TU-local bitmap_data view
and raw tag_get('bitm') prefix view in xbox_texture_cache.c are gone.
- texture_cache.h declares texture_cache_debug_render (render_debug.c had no
prototype in scope). The Xbox-only public format mappers get the object's own
header cache/xbox_texture_cache.h. Adding them to texture_cache.h regresses
declaration-count-sensitive consumers (decals); this is disclosed in the header.
- Reviewer amendment: the invented pad member reserved006[2] in the TU-private
texture struct is removed (natural alignment; HCEX texture_datum has no pad).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
- _collision_bsp_test_vector_recursive: reads the leaf flags through the
typed tag-block macro inline (HCEA spelling)
- _collision_surface_find_closest_point2d: vector_from_points2d and
cross_product2d replace hand-expanded math, as the exact sibling
collision_surface_test_point2d does
- _ai_communication_update_speech_timers: includes the owner header
cseries/errors.h for error() and names the timer label
- _cached_map_file_read_header: the exact wait helper snapshots the
completion flag before returning, reproducing January's double volatile
load at both inlined sites; the still-parked _cache_files_open_cache_files
is re-measured (closer, non-exact)
- _update_client_local_ticks: countdown tick loop and a machine_index
local passed to both server calls (January calls the build helper out of
line, which a literal 0 argument does not reproduce; disclosed)
- _rasterizer_sort_external: plain indexed loops; the object's eight
file-private globals are static, as only this object uses them
Stable diff: 0 regressions; admission 28 candidates / 0 contradicted;
active parks 201 -> 195.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
symbols.json renames the _bss_004d1198 placeholder in place to
_texture_cache_debug_bitmaps (static), the name xbox_texture_cache.c
already declares for its only user; the name is descriptive and marked
provisional in the source (house rule 8 forbids the bss+address form).
The debug listing computes both tab stops from frame_bounds.x0, as
January's bytes do. Full ninja + stable diff: +1 function (784 B),
0 regressions; active parks 220 -> 219.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- _connected_geometry_add_triangle: declare+init, short-index for loops
with the modulo edge neighbour, single-exit NONE result
- _render_inverse_transform_screen_point in xbox_texture_cache and
xbox_sound_cache: add_vectors3d(frustum apex, global_zero_vector3d)
replaces the hand-expanded origin sum (both park reopens; select-any
_add_vectors3d COMDAT, A30 class). The static helper's January register
convention returns at both callers; their fuzzy parks
_texture_cache_debug_render and _sound_cache_debug_render are
re-measured (non-exact before and after, objdiff slightly closer).
Stable diff: 0 regressions; active parks 222 -> 220.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Wave w2 landing, adversarially verified. park reopens: __sound_cache_sound_request. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Wave w1 landing, adversarially verified. park reopens: _cache_copy_update_write_buffers, _cache_copy_get_status, _acquire_read_request. Full build of the combined batch: 54 strict gains / 29,440 padded, 0 regressions, parks 355/0/0. 3 park(s) removed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Retain 18 strict exact-function gains across Actions, Actor Combat, Decals, Game Engine, Object Lights, and Bipeds after removing donor bodies that regressed exact objects, emitted unowned code, or violated source-credibility rules. Name authenticated private symbols, move declarations to owner headers, record honest residual parks, and preserve units.obj at 189/189.