# Uniform field backing, native club OVR scale and replay entry — private test2

User feedback2026-11-04 on the earlier grey preview identified flat light/dark
patches behind names, an Edmonton62 presentation instead of its native90+ grade,
and a freeze after **automatic** replay. jdc explicitly deferred the full release
matrix to **2026-11-05**, when more tokens are available. No full suite is started
or claimed today. This is a separate local preview, not a qualified public release.

File: `NHL 2026 - 94 Edition v5.1W - Season - jdc - 2026-11-04 15.25 (Beta menytest 2).bin`.
SHA256 `e6b8ff13c62ee259d860f2a1cf3233e9ada3166b6b93a794aecc9eaa69706f1f`.
Private source/evidence/handoff:
`.workspace/work/grey-panels-20261104/feedback-20261104/`.
Current public qualified20793fce… ROM,128 report and all465 native/test sources
remain unchanged. Historic91-picture grey-preview evidence remains bound to its
original897c575f… ROM; that preview is superseded for testing by this one.

## Uniform name and numeric field background

The old font duplicates replaced transparent/blue background pixels with one
solid colour. That created rectangular patches over the patterned panel.
Native glyphs408..465 are now copied with the **same checker RGB pixels as the
actual surrounding frame**, retaining letter foregrounds. Small native letters
also receive patterned backing in the yellow palettes. The native separate title
panels, club marks, photo art and meaningful qualification colours are preserved.
A later header experiment produced partial title stripes and was rejected;
its separatev15 artifact is not delivered. The accepted native code isv14.

Normal and card typography use existing gray entries with scoped restored
palette values. Card foregrounds map to equivalent existing grayscale colours;
portraits and club palettes remain intact. Transfer row selection keeps its
checkbox/text but shares the panel backing. Custom season text is foreground
text over the same patterned canvas; unqualified table rows use that pattern and
qualified rows retain green. Four closed-menu controls match original full native
pattern bank0..BC00 and all64 actual palette values. A forward portrait RGB crop
matches its authenticated original exactly. Independent per-pixel comparisons
check glyph backgrounds against the real native frame centre, rather than only
trusting logs or sampling an average colour. Actual menu/card/selector/transfer/
post-match images were opened. The captured user selector's flat-block symptom
is removed by the common font-mask rule, not by hard-coding particular names.

## Native90+ team grade, with transfer improvement

jdc is correct: Edmonton's original club grade is **94**, not57. The earlier
released change replaced that native club/reputation scale with the mean of
players' base OVRs. That57/62 arithmetic was internally valid but was the wrong
presentation scale for the user's requirement.

This preview uses:

`displayed team OVR = clamp(native original club grade + floor(current roster mean) - floor(initial canonical roster mean), 0, 99)`

Unchanged ordinary clubs and unchanged Transfers On rosters therefore keep their
native grade. Current/original means both use the canonical transfer identities,
including the existing duplicate-identity club case. No player ratings, hot/cold,
prices, budgets, transactions or simulation values are changed. This is a display
calibration, not an artificial player-stat boost. Allstar keeps its82/82 display.

The read-only copy of jdc's actual three purchases/sales has26 players before and
after, base-OVR totals1482→1614 and floored player means57→62. Native Edmonton
therefore displays94→99 (the existing two-digit maximum). Actual fresh boot and
copied-user-SRAM Matchups screenshots show94 and99. Seattle stays its native68;
Chicago's loss of players reduces its displayed57→54 in the copied market.
Seven focused native getter cases check those results, unchanged-on/off and both
Allstar teams, all with byte-identical complete SRAM and preserved other GPR/SP.
Initial Allstar probe failures used inconsistent ordinary record pointers and
season flags; those rejected fixture outputs are retained. Final probes use the
actual Allstar context and own22D000/22D800 roster pointers. No game behavior was
changed to accommodate an invalid fixture. Full32-club/IRQ matrix is deferred.

## Automatic replay freeze reproduced and corrected

The first grey preview's8-byte hook at9CD8 overwrote9CDC, a separate original
no-fade close entry. Native automatic/manual replay calls9CDC atA3D8/A556, so it
entered the middle of the replacement instruction and eventually hit the native
exception loop18CD8 in replay phaseA504. The qualified20793fce… control passed;
the grey preview failed both clean and after Line Editor. Undoing only the close
hook passed; undoing character/footer/open hooks did not resolve the failure.

The guarded replacement now starts **at9CDC** and spans exactly
`3f38bf7808f80002bf78` (10bytes). Native9CD8's `61007258` fade call is untouched.
The wrapper restores owned theme state, replays the original BF78 word push and
bit2 set, then jumps9CE6. Both native entries remain valid.

The original declared native-goal/HUD fixture retains its original shot, real
native goal, replay checks and1800-frame HUD deadline; no forced score or RNG
rewrite is introduced. Two targeted cases (clean and after actual Line Editor
navigation/exit) pass. They additionally continue beyond successful replay/HUD
checks and observe native active play and a moving match clock, with a bounded
post-check deadline. Actual automatic-replay and resumed-play screenshots were
opened. A separate real manual Replay→Back→Resume input path also returns to
play. These are targeted regressions, not complete match/hardware qualification.

## Tomorrow's required qualification

Private shared test sources are prepared, syntax-checked but **not fully run**:
calibrated independent32-club/two-side OVR oracle and its legacy mixed-scale
negative, full direct-helper ABI/IRQ contexts, and mandatory automatic replay
alternate-entry assertions plus two post-LineEditor replay/progress cases.
Keep all existing full-gate requirements and negative controls. Do not substitute
today's handful of cases for those groups or transplant old128 passes.

On2026-11-05, build/freeze the exact intended final candidate with the correct
version metadata, run the full applicable shared matrix and source/scope/rollback/
IPS/rebuild checks, investigate real failures without weakening requirements,
then follow normal release policy and refresh affected public current images.
Keep old audit/video provenance versioned rather than relabelling old footage.
User frontend/controller/save protection remains mandatory. The new private test
profile contains only a copy of jdc's earlier preview SRAM; no existing progress
is cleared or overwritten, and no frontend is closed or new game auto-started.

## /tmp cleanup

18 inactive old user-owned browser/audit/test entries were archived on the
user-authorized NAS backups before removal.3331 regular files were verified,
379,587,138 source bytes (about380MB). Archive:
`backups/tmp-cleanup-20261104-144707/inactive-tmp-files.tar.gz`;
SHA256 `7d608458ce334178b8efd96f07aa7ac4deceb81a24332fb87b6fc7181baae460`.
The parent directory is0700 and has a restore manifest. Source files were not
deleted on the rejected cross-filesystem/broken-symlink or unreadable-node-cache
attempts. TAR preserves Chromium links. Recent/active folders, root-owned node
cache, agent state and system sockets remain. /tmp usage fell from about1.1GB to
725MiB. User game/config/save bytes are preserved.
