# Exact qualification —2026-11-03-r2

**128/128 required groups pass** on the exact final ROM with **465 current
native/test source hashes**. The fresh complete128-group batch is followed by
four complete affected-group rechecks after six host-test-only corrections. SHA256 `20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f`;
CRC32 `966FE68B`. The shared validator accepts the combined log-hash-enriched report; the
original failed full report remains separately retained. Every complete group
log is read and hash-bound.
[Exact report](QA_STATUS.json) · [128 receipts](../../audits/qa-20261103-r2/).

All125 original criteria remain, with three mandatory new groups: main_menu,
downed_y and team_ovr. No skip or prior candidate substitutes for the final matrix.
The original full batch and all four failures remain. Alt Goalies logged only
requests pressed after keeper possession, missing a valid buffered hardware ASK:
actual P4 B at6352, accepted ASK7/keeper5 at6362, real native outlet to P4 actor3
at6363. The corrected read-only logger requires the actual accepted ASK pad/
keeper, matching real B press and native pass source/target. All six complete
input streams, shots and native save packets remain byte-for-byte identical.
The PP fixture at1000 had already lost its PP through a real goal (same native
clock/score/manpower without any display writes). Its strict display window is
moved400frames earlier, retaining original setup, relative sample offsets,
240-tick lifetime,1601 outer deadline and every original ownership/DMA/expiry
assertion; actual unequal-manpower PP admission is additionally required.

The first two changed host files affect only Alt Goalies and standalone shot-panel
groups. Both complete groups rerun. All124 other groups' verifier dependencies,
every native source/build input and the final ROM remain unchanged. The other
four host files affect only journal/refinements; both whole groups rerun too.
The journal interrupt fixture follows every actual current helper write, and
distinguishes STORE archive writes from the shared RECOVER copies. All8210 byte
prefixes execute in EACH inactive/active menu context (16420 total), with separate
16-case batches preserving the original full64KB canary oracle, original2400-frame
per-batch budget and unsafe-first-commit negatives in both contexts. Superseded
interleaved/overbroad-trap diagnostics remain recorded and do not count as passes.

The eight original PP/unit/Momentum contexts all retire by native countdown on
this exact ROM. A ninth bounded scene uses actual Y/manual keeper movement and
real controller buttons to admit an actual opposing PP goal. Manual departure
is observed, not written. Retirement must coincide with the native goal cue and
the advantaged side's score transition; a prior shorthanded goal cannot fake
this branch. All eight old contexts, original9000 deadline, actual submenu/pause
and all three destructive fade/help/frozen-clock negatives remain mandatory.
The complete17-section refinements suite repeats on a fresh current-ROM producer.
The first-live alarm fixture forced0:40 during opening arena music and found
voice contention. It remains a failed diagnostic; no native sound-priority fix
is claimed. The unchanged strict alarm observer now uses the earliest authenticated
live first-period capture with clock61..120, selected independently of audio
outcomes. All four periods still require five pulses, both native voices,
18-tick spacing, nonzero unclipped stereo WAV and absence at the old60 threshold.
The complete17-section group repeats after this wrapper-only fixture correction.
Exact six-file source delta, direct/dynamic dispatcher dependency closure, original
failed report hash and all four complete recheck receipts are in the validated aggregate. No failed or
different-ROM run substitutes. Documentation/export tooling is outside the native
source set and its final archive is checked separately.

Earlier diagnostics remain private immutable history: the original first-profile
1900-row observer failure was fixed by recording the missing first row, retaining
the1901-row requirement. The V3 native optimization then failed strict music
continuity by one tick/178 channel samples; it was rejected. V4 corrects the VBlank
pending-edge guard and retains exact zero-clock/zero-channel-drift criteria for
both scrolling and mode cycling. The older test-only Allstar ordinary-grade oracle
was updated before final freeze to independently query all832 native player OVRs;
all original1280 ABI/guard contexts and exact ordinary uniform protection remain.
No failed diagnostic is relabelled a pass.

Twenty complete independent control builds cover an exact final rebuild,
matched menu/URL/Y/OVR controls, six matched AI ablations, neon rollback, exact
qualifiedNov3/r2/Nov2/runtime18 and earlier CPU-policy/PP/friendly versions,
and final source restore. All frozen native source hashes are rechecked after
every build. The extracted source ZIP independently rebuilds the final ROM;
original-base IPS reconstructs it byte-for-byte. The source-builder input is
f84e2f834b258b7f3b5f2254061b4f00a31ccf5652d1d33e79ba210ae02f0e97;
IPS original is b115de41eee9b790618a8a053885aefea32aaf5a2de2eaeb260af8aaf36b8f39.
These are intentionally different inputs, both recorded in byte exports.

Actual continuous postmatch native audio/input tests use no savestate reload;
restored-state graphics are separately labelled. Actual solo Full cold input
reproduces missed Y on the matched old module and none on final. The full native
Y ABI/guards and actual-roster grades/economy/presentation checks are mandatory.
Native graphics include123 opened originals, all102 existing current picture IDs,
26 settings, AllstarCPU/black-red, transfers/dollars, full native match and results.
Delivery, final extracted-source rebuild, public HTTP and desktop/mobile acceptance
are separate receipts.
Physical controllers, subjective audio/menu feel and live jdc/Bodin multiplayer
remain manual beta acceptance. No new Hard strength/win-rate claim is made.

| Required group | Result | Exact log receipt |
|---|---|---|
| ai_actor_layout | PASS | [Receipt](../../audits/qa-20261103-r2/ai_actor_layout.json) |
| ai_attack | PASS | [Receipt](../../audits/qa-20261103-r2/ai_attack.json) |
| ai_attack_gameplay | PASS | [Receipt](../../audits/qa-20261103-r2/ai_attack_gameplay.json) |
| ai_attribution | PASS | [Receipt](../../audits/qa-20261103-r2/ai_attribution.json) |
| ai_complete_lanes | PASS | [Receipt](../../audits/qa-20261103-r2/ai_complete_lanes.json) |
| ai_cross_choice | PASS | [Receipt](../../audits/qa-20261103-r2/ai_cross_choice.json) |
| ai_cross_hooks | PASS | [Receipt](../../audits/qa-20261103-r2/ai_cross_hooks.json) |
| ai_defence | PASS | [Receipt](../../audits/qa-20261103-r2/ai_defence.json) |
| ai_defence_gameplay | PASS | [Receipt](../../audits/qa-20261103-r2/ai_defence_gameplay.json) |
| ai_flight_coverage | PASS | [Receipt](../../audits/qa-20261103-r2/ai_flight_coverage.json) |
| ai_gap | PASS | [Receipt](../../audits/qa-20261103-r2/ai_gap.json) |
| ai_gap_gameplay | PASS | [Receipt](../../audits/qa-20261103-r2/ai_gap_gameplay.json) |
| ai_keeper_pass | PASS | [Receipt](../../audits/qa-20261103-r2/ai_keeper_pass.json) |
| ai_pass_plan | PASS | [Receipt](../../audits/qa-20261103-r2/ai_pass_plan.json) |
| ai_pass_plan_gameplay | PASS | [Receipt](../../audits/qa-20261103-r2/ai_pass_plan_gameplay.json) |
| ai_playbook | PASS | [Receipt](../../audits/qa-20261103-r2/ai_playbook.json) |
| ai_playbook_gameplay | PASS | [Receipt](../../audits/qa-20261103-r2/ai_playbook_gameplay.json) |
| ai_relay_choice | PASS | [Receipt](../../audits/qa-20261103-r2/ai_relay_choice.json) |
| ai_smart_aim | PASS | [Receipt](../../audits/qa-20261103-r2/ai_smart_aim.json) |
| ai_smart_aim_gameplay | PASS | [Receipt](../../audits/qa-20261103-r2/ai_smart_aim_gameplay.json) |
| ai_smart_aim_physics | PASS | [Receipt](../../audits/qa-20261103-r2/ai_smart_aim_physics.json) |
| ai_smart_catch | PASS | [Receipt](../../audits/qa-20261103-r2/ai_smart_catch.json) |
| ai_steering | PASS | [Receipt](../../audits/qa-20261103-r2/ai_steering.json) |
| ai_steering_frequency | PASS | [Receipt](../../audits/qa-20261103-r2/ai_steering_frequency.json) |
| ai_support_spots | PASS | [Receipt](../../audits/qa-20261103-r2/ai_support_spots.json) |
| allstar | PASS | [Receipt](../../audits/qa-20261103-r2/allstar.json) |
| allstar_cpu | PASS | [Receipt](../../audits/qa-20261103-r2/allstar_cpu.json) |
| allstar_cpu_flow | PASS | [Receipt](../../audits/qa-20261103-r2/allstar_cpu_flow.json) |
| allstar_cpu_shootout | PASS | [Receipt](../../audits/qa-20261103-r2/allstar_cpu_shootout.json) |
| allstar_flow | PASS | [Receipt](../../audits/qa-20261103-r2/allstar_flow.json) |
| allstar_shootout | PASS | [Receipt](../../audits/qa-20261103-r2/allstar_shootout.json) |
| alt_goalies | PASS | [Receipt](../../audits/qa-20261103-r2/alt_goalies.json) |
| b_switch | PASS | [Receipt](../../audits/qa-20261103-r2/b_switch.json) |
| centered_cross_gameplay | PASS | [Receipt](../../audits/qa-20261103-r2/centered_cross_gameplay.json) |
| coach_goalie | PASS | [Receipt](../../audits/qa-20261103-r2/coach_goalie.json) |
| coach_lines | PASS | [Receipt](../../audits/qa-20261103-r2/coach_lines.json) |
| credits | PASS | [Receipt](../../audits/qa-20261103-r2/credits.json) |
| crit_lock | PASS | [Receipt](../../audits/qa-20261103-r2/crit_lock.json) |
| crit_menu_render | PASS | [Receipt](../../audits/qa-20261103-r2/crit_menu_render.json) |
| crit_option | PASS | [Receipt](../../audits/qa-20261103-r2/crit_option.json) |
| critical | PASS | [Receipt](../../audits/qa-20261103-r2/critical.json) |
| critical_flash | PASS | [Receipt](../../audits/qa-20261103-r2/critical_flash.json) |
| critical_trail | PASS | [Receipt](../../audits/qa-20261103-r2/critical_trail.json) |
| critical_velocity | PASS | [Receipt](../../audits/qa-20261103-r2/critical_velocity.json) |
| crowd_modes | PASS | [Receipt](../../audits/qa-20261103-r2/crowd_modes.json) |
| downed_receiver | PASS | [Receipt](../../audits/qa-20261103-r2/downed_receiver.json) |
| downed_y | PASS | [Receipt](../../audits/qa-20261103-r2/downed_y.json) |
| easy_stats | PASS | [Receipt](../../audits/qa-20261103-r2/easy_stats.json) |
| faceoff_dots | PASS | [Receipt](../../audits/qa-20261103-r2/faceoff_dots.json) |
| fair_pickup | PASS | [Receipt](../../audits/qa-20261103-r2/fair_pickup.json) |
| finished_season | PASS | [Receipt](../../audits/qa-20261103-r2/finished_season.json) |
| finisher_hold | PASS | [Receipt](../../audits/qa-20261103-r2/finisher_hold.json) |
| finisher_position | PASS | [Receipt](../../audits/qa-20261103-r2/finisher_position.json) |
| forum_fixes | PASS | [Receipt](../../audits/qa-20261103-r2/forum_fixes.json) |
| four_goalie | PASS | [Receipt](../../audits/qa-20261103-r2/four_goalie.json) |
| four_lifecycle | PASS | [Receipt](../../audits/qa-20261103-r2/four_lifecycle.json) |
| friendly_reception | PASS | [Receipt](../../audits/qa-20261103-r2/friendly_reception.json) |
| full_cpu_game | PASS | [Receipt](../../audits/qa-20261103-r2/full_cpu_game.json) |
| goalie_attack | PASS | [Receipt](../../audits/qa-20261103-r2/goalie_attack.json) |
| goalie_attack_gameplay | PASS | [Receipt](../../audits/qa-20261103-r2/goalie_attack_gameplay.json) |
| goalie_attack_reset | PASS | [Receipt](../../audits/qa-20261103-r2/goalie_attack_reset.json) |
| goalie_catch_control | PASS | [Receipt](../../audits/qa-20261103-r2/goalie_catch_control.json) |
| goalie_catch_gameplay | PASS | [Receipt](../../audits/qa-20261103-r2/goalie_catch_gameplay.json) |
| goalie_lateral | PASS | [Receipt](../../audits/qa-20261103-r2/goalie_lateral.json) |
| goalie_lateral_gameplay | PASS | [Receipt](../../audits/qa-20261103-r2/goalie_lateral_gameplay.json) |
| goalie_request | PASS | [Receipt](../../audits/qa-20261103-r2/goalie_request.json) |
| goalie_season | PASS | [Receipt](../../audits/qa-20261103-r2/goalie_season.json) |
| hud_overlay | PASS | [Receipt](../../audits/qa-20261103-r2/hud_overlay.json) |
| human_contact | PASS | [Receipt](../../audits/qa-20261103-r2/human_contact.json) |
| icing_menu | PASS | [Receipt](../../audits/qa-20261103-r2/icing_menu.json) |
| icing_rule | PASS | [Receipt](../../audits/qa-20261103-r2/icing_rule.json) |
| leaders_exit | PASS | [Receipt](../../audits/qa-20261103-r2/leaders_exit.json) |
| main_menu | PASS | [Receipt](../../audits/qa-20261103-r2/main_menu.json) |
| maintenance_replay | PASS | [Receipt](../../audits/qa-20261103-r2/maintenance_replay.json) |
| manual_keeper_pass | PASS | [Receipt](../../audits/qa-20261103-r2/manual_keeper_pass.json) |
| menu_background | PASS | [Receipt](../../audits/qa-20261103-r2/menu_background.json) |
| menu_defaults | PASS | [Receipt](../../audits/qa-20261103-r2/menu_defaults.json) |
| menu_font | PASS | [Receipt](../../audits/qa-20261103-r2/menu_font.json) |
| menu_team | PASS | [Receipt](../../audits/qa-20261103-r2/menu_team.json) |
| mini_division | PASS | [Receipt](../../audits/qa-20261103-r2/mini_division.json) |
| mini_seven | PASS | [Receipt](../../audits/qa-20261103-r2/mini_seven.json) |
| momentum | PASS | [Receipt](../../audits/qa-20261103-r2/momentum.json) |
| neon_marker | PASS | [Receipt](../../audits/qa-20261103-r2/neon_marker.json) |
| net_contact | PASS | [Receipt](../../audits/qa-20261103-r2/net_contact.json) |
| outlet_deadline | PASS | [Receipt](../../audits/qa-20261103-r2/outlet_deadline.json) |
| pad_colors | PASS | [Receipt](../../audits/qa-20261103-r2/pad_colors.json) |
| pass_charge | PASS | [Receipt](../../audits/qa-20261103-r2/pass_charge.json) |
| pass_height | PASS | [Receipt](../../audits/qa-20261103-r2/pass_height.json) |
| pass_mode | PASS | [Receipt](../../audits/qa-20261103-r2/pass_mode.json) |
| pass_speed | PASS | [Receipt](../../audits/qa-20261103-r2/pass_speed.json) |
| penalty_owner | PASS | [Receipt](../../audits/qa-20261103-r2/penalty_owner.json) |
| penalty_rate | PASS | [Receipt](../../audits/qa-20261103-r2/penalty_rate.json) |
| pickup_delay | PASS | [Receipt](../../audits/qa-20261103-r2/pickup_delay.json) |
| pwrplay_clear | PASS | [Receipt](../../audits/qa-20261103-r2/pwrplay_clear.json) |
| quickgame | PASS | [Receipt](../../audits/qa-20261103-r2/quickgame.json) |
| quickgame_cpu | PASS | [Receipt](../../audits/qa-20261103-r2/quickgame_cpu.json) |
| quickgame_cpu_flow | PASS | [Receipt](../../audits/qa-20261103-r2/quickgame_cpu_flow.json) |
| quickgame_cpu_shootout | PASS | [Receipt](../../audits/qa-20261103-r2/quickgame_cpu_shootout.json) |
| quickgame_flow | PASS | [Receipt](../../audits/qa-20261103-r2/quickgame_flow.json) |
| quickgame_shootout | PASS | [Receipt](../../audits/qa-20261103-r2/quickgame_shootout.json) |
| refinements | PASS | [Receipt](../../audits/qa-20261103-r2/refinements.json) |
| replay_hud | PASS | [Receipt](../../audits/qa-20261103-r2/replay_hud.json) |
| replay_option | PASS | [Receipt](../../audits/qa-20261103-r2/replay_option.json) |
| rewind_wrap | PASS | [Receipt](../../audits/qa-20261103-r2/rewind_wrap.json) |
| season_identity | PASS | [Receipt](../../audits/qa-20261103-r2/season_identity.json) |
| season_navigation | PASS | [Receipt](../../audits/qa-20261103-r2/season_navigation.json) |
| season_settings | PASS | [Receipt](../../audits/qa-20261103-r2/season_settings.json) |
| season_slots | PASS | [Receipt](../../audits/qa-20261103-r2/season_slots.json) |
| shootout | PASS | [Receipt](../../audits/qa-20261103-r2/shootout.json) |
| shootout4 | PASS | [Receipt](../../audits/qa-20261103-r2/shootout4.json) |
| shootout_rules | PASS | [Receipt](../../audits/qa-20261103-r2/shootout_rules.json) |
| shot_colour | PASS | [Receipt](../../audits/qa-20261103-r2/shot_colour.json) |
| shot_panel | PASS | [Receipt](../../audits/qa-20261103-r2/shot_panel.json) |
| shot_panel_left | PASS | [Receipt](../../audits/qa-20261103-r2/shot_panel_left.json) |
| shot_plan | PASS | [Receipt](../../audits/qa-20261103-r2/shot_plan.json) |
| sram_commit_readiness | PASS | [Receipt](../../audits/qa-20261103-r2/sram_commit_readiness.json) |
| stars_hud | PASS | [Receipt](../../audits/qa-20261103-r2/stars_hud.json) |
| strict_so | PASS | [Receipt](../../audits/qa-20261103-r2/strict_so.json) |
| team_ovr | PASS | [Receipt](../../audits/qa-20261103-r2/team_ovr.json) |
| transfer_dollars | PASS | [Receipt](../../audits/qa-20261103-r2/transfer_dollars.json) |
| transfers_engine | PASS | [Receipt](../../audits/qa-20261103-r2/transfers_engine.json) |
| transfers_flow | PASS | [Receipt](../../audits/qa-20261103-r2/transfers_flow.json) |
| transfers_journal | PASS | [Receipt](../../audits/qa-20261103-r2/transfers_journal.json) |
| transfers_model | PASS | [Receipt](../../audits/qa-20261103-r2/transfers_model.json) |
| transfers_persistence | PASS | [Receipt](../../audits/qa-20261103-r2/transfers_persistence.json) |
| transfers_runtime | PASS | [Receipt](../../audits/qa-20261103-r2/transfers_runtime.json) |
| transfers_season | PASS | [Receipt](../../audits/qa-20261103-r2/transfers_season.json) |
| whistle_momentum | PASS | [Receipt](../../audits/qa-20261103-r2/whistle_momentum.json) |


## Final current checkpoint —2026-11-03-r2 (Beta)

Released locally and publicly: SHA256 `20793fce15e640bf60d31c48e95bd0d284105fc07f8ae01ed08b1a579b37e99f`;
CRC32 `966FE68B`. **128/128 required groups pass on465 exact native/test
source hashes**, with the original failed full batch retained and four entire
affected groups requalified through an audited six-file host-test-only closure.
Twenty independent control/rollback builds, extracted-source exact rebuild and
original-base IPS reconstruction pass. No later website task changes this ROM.

Main-menu speed/sequencer continuity, exact root Games credits URL, eligible
downed-skater Y selection and consistent actual-roster team OVR are qualified.
Quickgame retains four human splits; Allstar additionally offers CPU and black/
red uniforms. Preseason transfers and the restored native presentation remain.

The separate image-to-title audit checks123 original image files/232 old placements,
corrects21 explicit bindings and inventories **239 final placements/128 image URLs**.
Fresh same-ROM captures show actual owned purchases, framed centred menu help,
dollar amounts, keeper possession/arrows, faceoff stars, Overall and a matched
172KMH shot/replay pair. Historical originals/notes/audit bytes are retained;
fixture scopes, current captions and manual limits are explicit.
Final public desktop1440/mobile390/320 browser evidence and image/body/link checks
are recorded in [the completed image audit](IMAGE_TITLE_AUDIT_20261103_R2.md).

The public market guide explicitly explains separate cash transactions, Free
Agents, no automatic player swaps/replacements or CPU recruitment, legal squad/
budget guards and a conditional McDavid/Draisaitl example. This is documentation
of existing behavior; the native transfer economy/rules remain unchanged.

Local installation preserves configs/remaps and138 unrelated saves. Three old
matching progress files were cleared only at this new release, after normal user
frontend exit. All three original runtime histories remain hash-preserved and
are merged into the current item. Legitimate new-version play is preserved.
Bodin delivery remains queued while the known host is offline; no remote install
is claimed. Physical controllers, extended human play/audio preference and live
jdc/Bodin multiplayer remain beta acceptance. The older9:33 film is clearly dated
2026-11-02-r2. Earlier dated sections below are historical snapshots, superseded
by this current checkpoint.

