4.8 KiB
bitmaps_quantitize.obj exact-match strategy ledger
Scope and provenance
- Translation unit:
source/bitmaps/bitmaps_quantitize.c - January target object:
source/bitmaps/bitmaps_quantitize.obj - Compiler: XDK 3911 CL 13.00.9254.1
- Flags:
/O2 /Oy- /DDEBUG /Dxbox - January
_code_0006d5f0is the function known cross-build asrow_dither. - The exact 464-byte January target body also occurs in the October 12, 2001
2276betaP.xbe, corroborating the machine-code target and algorithm. - No authentic C donor or useful January/HCEA local-variable record has been found.
Current validated baseline
Two of three functions are strict exact. All owned .rdata, .data, and
.bss sections are exact.
| Function | Target/base size | Relocs | Result |
|---|---|---|---|
_bitmap_quantitize |
592/592 | 28/28 | strict exact |
_code_0006d5d0 |
32/32 | 0/0 | strict exact |
_code_0006d5f0 / row_dither |
464/464 | 0/0 | nonexact scheduler residual |
row_dither target normalized SHA-256 is
a5feef0c98bc8565991a9cf9722e0258d2bd556e23fc0326891aa0ce0ebca5db.
The restored baseline candidate hash is
7afe02e297bf06dd682a9c44bfd00aacf39c2f7ea0c0f45acce838dc9b696da4.
The sole baseline machine-code residual is the ordering of independent inner-loop maintenance:
target: inc eax; add ebx,2; add ecx,2
candidate: add ebx,2; inc eax; add ecx,2
Here EAX is the channel index, EBX is the minimum-error pointer, and ECX is a compiler-synthesized next-row channel pointer.
Accepted source controls
- The current clamping, quantization, and Floyd-Steinberg error-diffusion topology reproduces the target size, frame, branches, and all bytes outside the three independent loop-maintenance operations.
_bitmap_quantitizeand_code_0006d5d0are protected exact siblings; no closeout experiment may regress them.- Existing source comments preserve the original one-allocation-failure leak and explain the nonmatching safe fix.
Bounded experiment matrix
The prior closeout research exhausted source-order, loop-shape, pragma,
barrier, dependency, and pointer-topology families. The original detailed
research packet is C:\tmp\bitmaps-quantitize-agent\ROW_DITHER_PROVENANCE_REPORT.md.
| Experiment | Size | Relocs | Candidate hash / first divergence | Decision |
|---|---|---|---|---|
Restored source: minimum_channel++ then channel_index++ |
464/464 | 0/0 | 7afe02e2...; add ebx,2 precedes inc eax |
best baseline |
| Reverse those two source statements | 464/464 | 0/0 | a5d1033d681cec568e19033f09f52ef415f989e690717817a578423a4f9b52d5; emits inc eax; add ecx,2; add ebx,2 |
reverted |
| Declaration/source-order and equivalent loop-tail permutations | 464/464 in best forms | 0/0 | either baseline ordering or moves ECX between EAX and EBX | exhausted/reverted |
| Compiler barriers around the tail | varied/regressed | 0/0 | alter the loop schedule beyond the target | exhausted/reverted |
| Pointer aliases/dependencies intended to order the advances | varied/regressed | 0/0 | change earlier register allocation or remain baseline | exhausted/reverted |
An earlier research lane also measured three narrow inline-assembly diagnostics. None matched, and all were reverted. They are retained in the historical report only as negative evidence; inline assembly is prohibited and must not be retried or admitted.
Do-not-repeat list
- Do not retry either ordering of only
minimum_channel++andchannel_index++; both exact compiler outcomes are recorded above. - Do not repeat declaration-order, loop-tail, barrier, pragma, explicit pointer-topology, or artificial dependency variants from the prior report.
- Do not use inline assembly,
_emit, volatile forcing, undefined behavior, compiler-flag changes, comparator weakening, or object-byte patches. - Do not treat the October body as an original-C donor. It proves target identity, not source spelling.
Residual classification
The residual is a measured scheduler tie among three independent maintenance operations. Size, frame, relocation count, control flow, and every other instruction are already exact. Two direct source statement orders were tested: one leaves EBX before EAX; the other puts ECX between EAX and EBX. Neither produces January's EAX/EBX/ECX order.
Reopen criteria
Reopen only for:
- original Bungie C or local-variable/statement provenance for
row_dither; - a strict-exact C donor under the same compiler and flags with the same three-operation dependency context; or
- a newly demonstrated legal-C scheduling control not represented in the exhausted matrix.
Current disposition
bitmaps_quantitize.obj remains 2/3 strict exact with all data exact. It is
rigorously parked and must remain NonMatching; no fuzzy or semantic credit is
claimed for row_dither.