CARD R-A  written 2026-09-26 01:02:03 -0700  (before compile)
unit: source/rasterizer/xbox/rasterizer_xbox (95/95 exact; object_audit FAIL(22); pdb_storage 25)
observed: 20 XDK wrapper rows split-external/ours-static; .rdata _framebuffer_blend_function_states align 3/4 + storage;
  pdb_storage extra: _d3d_palette, _rasterizer_state_cache, _rasterizer_filthy_bitmap_default_initialize,
  _rasterizer_xbox_d3d_globals external but no cachebeta public. Surplus wrappers IDirect3DDevice8_SetFlickerFilter@8,
  _SetSoftDisplayFilter@8 absent from January.
evidence: J cachebeta publics (none of the 25 names/offsets public); J relocations at _rasterizer_initialize
  +2164/+2170 name _D3DDevice_SetFlickerFilter@4/_SetSoftDisplayFilter@4 and January has no copy of those two
  wrappers while it keeps copies of the other used D3DINLINE wrappers; J .rdata 108 B align 4 with addends
  +0/+36/+72; X HCEX rasterizer_dx9 compiland: Static Local const unsigned long[9] srcblend_table/destblend_table/
  blendop_table (src<dest<op) of rasterizer_set_framebuffer_blend_function, 'static void
  rasterizer_filthy_bitmap_defaults_initialize()'; J-hash atlas 0x546650 _rasterizer_filthy_bitmap_defaults_initialize
  (+ Sept-2001 map tier); D3D8.h:21 D3DINLINE = static __forceinline.
correction (NOT name-gated; the invented aggregate is deliberately left untouched):
  .c: HCEX static-local tables + drop the invented _framebuffer_blend_state_* enum; static d3d_palette,
      rasterizer_state_cache; direct D3DDevice_SetFlickerFilter/SetSoftDisplayFilter; static
      rasterizer_filthy_bitmap_defaults_initialize with a TU-local static prototype; symbol-list comment updated.
  .h (lead-owned): drop the stale extern prototype from rasterizer_xbox_internal.h.
  symbols.json (lead-owned): 20 wrapper rows static; blend row -> 3 static mangled static-local rows (+0/+36/+72);
      _d3d_palette, _rasterizer_state_cache static; filthy row renamed plural + static.
prediction: gate 95/95 vs the regenerated split; object_audit PASS (the aggregate row is split 2 / ours 2);
  pdb_storage 25 -> 1 (only _rasterizer_xbox_d3d_globals remains); surplus: SetFlickerFilter/SetSoftDisplayFilter
  copies disappear; csplit radius = rasterizer_xbox.obj only; header radius: 7 other includers byte-identical except
  the known declaration-count drift of the PARKED fuzzy __rasterizer_model_draw (rasterizer_xbox_models)
  sha 89b0d7ea -> cbfa8585 (measured at cdc8ebd3; header+models unchanged since? to be re-measured).
collateral: header decl-count ties in the 7 includers; zero exact losses required.
decisive: revgate + gate_obj vs split_RA, object_audit_cand, pdb_storage_cand, includer sweep vs pristine root.
