# Requested work

## Current public website release — 2026-11-04-r2

Exact already-qualified ROM `89734acf17e7412e4b0aef71039cdcd4737231ba2fa801ccaece72f6eb794355` (CRC32 `2C608F83`),472 native/test sources, source-set `58ff79db84a60e54628e7ac96cbf450f226b3d7984de1af8790f7275da4a772d`.128/128 mandatory groups plus13 supplemental groups pass, with the initial127/128 capture-selector failure and complete18-child affected requalification disclosed.768 footer contexts and real opened H32/H40 pictures pass; grey fields, calibrated Edmonton94→99 OVR, replay continuation and player-centre blue-line penalty rules are included.

Website-only publication: no ROM edits, new test matrix, local/Bodin installation, save reset or user RetroArch operation. Downloads/remaps/progress are preserved. The latest-BIN button is centred first;101-word English introduction precedes the retained4:57 film, accurately labelled as a2026-11-03-r2 recording. Manual controller/live-multiplayer acceptance remains. [Current release, rules, source and QA](H32_FOOTER_RELEASE_20261104_R2.md). Earlier dated sections below are history; the former Nov5 wait was explicitly revoked and the full qualification is complete.


## Private player blue-line penalty rule —2026-11-04; full gate NOV5 ONLY

User confirmed shooter position (native88 body centre) activates first-crossing
latch; actual retreat then ends as native miss, never a steering clamp. Free
pre-line and purely lateral post-line movement; no new puck retreat/still rule.
Private Beta3 SHA0c9763eef54cc35812bbbb95b6fefb6e0dcfbea2fc86de1b9641f3515b62c4f6.
Targeted64 boundary/ABI,3 resets,5 native routes,6 controller-result variants,
2 complete autonomousCPU attempts, retouch/ordinary controls and exact repeat/
legacy rollback pass.37 native and6 browser pictures opened. See private handoff
penalty-blue-line-20261104/REPORT.md. Revised shared whole-group oracle/input
cases syntax checked ONLY. Full matrix expressly deferred until2026-11-05;
no official release/public-image promotion or old128-pass transplant today.


## User feedback fixes —2026-11-04; FULL MATRIX DEFERRED TO NOV5

- [x] Remove flat light/dark name backings with actual patterned font masks;
 native glyph/frame RGB checks and opened UI pictures, separate test2 preview.
- [x] Restore original team-OVR scale: EDM94 unchanged,99 after copied user trades;
 native seven-case/whole-SRAM controls and real94/99 Matchups images.
- [x] Reproduce automatic replay freeze; preserve alternate native9CDC entry;
 targeted clean/post-LineEditor replay→active clock and manual return checks.
- [x] Archive/verify then remove about380MB inactive /tmp data under NAS backups.
- [ ] **2026-11-05, at jdc's explicit request:** run the full shared release gate
 on the exact frozen/versioned final candidate. Include all32 calibrated OVR
 cases/direct ABI and automatic/manual/post-LineEditor replay continuation;
 no stale128 passes, relaxed requirements or silent ROM replacement.
- [ ] After that gate passes: proper new release, source/IPS/rollback/deployment
 policy and affected current website images/accurate video-version labels.

Today is targeted private testing only. Do not start the large matrix on Nov4.
[Source/evidence/scope](GREY_FEEDBACK_PREVIEW2_20261104.md).


## Grey panels and centred help —2026-11-04 private preview

- [x] Replace appropriate blue text/content fields with native grey framed style;
 preserve branded header, portraits, club colours and meaningful focus cues.
- [x] Centre actual bottom help, trim padded strings and keep it inside the frame.
- [x] Fit dense season columns and complete period badges without new clipping.
- [x] Open all91 exact-preview screenshots/21 groups; deliver labelled local gallery.
- [x] Targeted input, asset/palette, portrait, source rebuild and SRAM controls;
 separately named Downloads preview/current remap; preserve user files/frontend.
- [ ] Next authorized qualified release: integrate retained private source, add
 the test-plan regressions, run the full exact-final matrix and then update
 corresponding public screenshots. This preview does not replace that release.

[Exact hash, scope and targeted checks](GREY_MENU_PREVIEW_20261104.md).



## Main-menu scroll corner —2026-11-04 private preview

- [x] Reproduce jdc's Downloads/nhl94 screenshots: outer settings bottom covers
  the selected last-row corner; compare against intact non-bottom selection.
- [x] Implement original native8034 corner at the fifth visible selected row.
- [x] Targeted before/after260 native frame pairs, Down/Up in five modes;
 58 actual screens plus before/after opened, all outside-cell pixels identical.
- [x] Deliver separately named Beta menytest ROM in Downloads, matching existing
 controller remap; preserve current user frontend/saves and qualified public ROM.
- [ ] Integrate the retained patch into the next qualified native release and
 add its graphics/navigation case to that release's complete matrix. Full suite
 intentionally deferred for this preview by jdc's explicit request.
- [ ] Future observation, not yet confirmed as a stable bug: Allstar carousel
 briefly shows a tile-like card in the same before/after capture. Reproduce
 portrait redraw transition separately; it predates this corner change.

[Exact patch, hashes, checks and scope](MENU_BORDER_PREVIEW_20261104.md).

Current order: Penaltys50% investigation **DONE**, no native fix needed; shorter replacement feature film **DONE AND PUBLISHED**, per the explicit video order below. Native ROM20793fce… unchanged.


## Penaltys50% investigation complete —2026-11-03-r2

Exact released20793fce… unchanged.24 matched simulation cohorts per setting:100%442/442 candidates admitted,50%241/468 (51.5%),227 filtered. Actual committed432 versus236; icing662 versus664. Cohort50% fractions39.1–71.4%,7–33 candidates each; no exact per-match/whistle-halving claim. Current live-input measurement observer E900/HUD collision exposed and old live counts withdrawn. Final exact-ROM host-only read observer validated72 whole emulated-state controls, with typed host-pointer ELF relocation and active clock/target negatives. Actual naturally completed Full/Light/Mini saves retain50% after reboot/lock attempts. No native game-rule fix or new ROM release required. [Full current audit](PENALTIES50_AUDIT_20261103_R2.md).


| Latest ordered item | Status | Evidence |
|---|---|---|
| Native menu/Y/OVR release | DONE |128 exact-ROM groups/465 sources,20 controls, ZIP/IPS, local/public delivery |
| Every current image→title→function | DONE |239 rows,21 explicit binding fixes; opened actual images and final desktop/mobile captures |
| Explicit current transfer ownership guide | DONE |Visible English market explanation, guarded Edmonton example, two synchronized notes; no native change |
| Remote Bodin installation | WAITING FOR CONNECTION |Guarded authorized queue; no remote completion claim |
| Physical extended human multiplayer | MANUAL BETA ACCEPTANCE |Current exact version available and started locally; preserve user game/progress |


## 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.


## Main-menu, explicit Y and actual-roster OVR —2026-11-03-r2

Main-menu-only sequencer service preserves complete checksums and continuous
music timing; maximum blocked frames24→10 for scrolling and69→57 for mode changes.
Both final traces match idle clock/channels exactly. A literal restart command
was not reproduced. Startup credits show https://games.jdc.se. Explicit Y admits
an eligible downed human's keeper request without healing or bypassing native
guards. Ordinary team presentations now use the actual roster mean before/after
transfers: fresh Edmonton57, improving trades61 (two sales) or62 (four sales).
Player attributes, OVR-based prices/budgets and season accounting remain unchanged.

**128/128 mandatory groups pass on465 exact native/test source hashes**;20 independent
full controls/rollbacks, extracted-source rebuild and original-base IPS pass.
123 actual native originals are opened, refreshing102 existing current picture IDs.
[Behavior/scope](MAIN_MENU_Y_OVR_20261103_R2.md) ·
[Exact qualification](QA_20261103_R2_LOGS.md) · [Native review](GRAPHICAL_FINAL_20261103_R2.md).
Local/public delivery and opened public desktop/mobile review: pending.
Physical controllers/live multiplayer and subjective feel remain manual beta limits.
Older dated sections below are historical snapshots, superseded by this checkpoint.

| Requested item | Status | Acceptance |
|---|---|---|
| Startup root Games URL | QUALIFIED | Exact credits asset plus opened native560-frame screenshot |
| Faster main-menu/continuous audio | QUALIFIED | Original full CRC/sum/copy contracts; real continuous postmatch/idle comparison; strict active negative |
| Intermittent Y from downed skater | QUALIFIED; human confirmation pending |448 native ABI/guard/pad/side cases, genuine solo Full mash, matched old-Y failures |
| Consistent transfer team OVR | QUALIFIED |192 native FE172 contexts;1088 existing transfer/Allstar guards;832 native player OVR oracle; opened57→62 UI |
| Current website pictures | COMPLETE |123 opened originals;102 existing IDs/106 original homepage slots refreshed, histories retained |
| Local/public release and browser review | COMPLETE | Exact files/remap/config/history preservation, fresh release progress, HTTP/link/hash/ZIP/range and opened1440/390/320 |
| Bodin delivery | NEEDS CONNECTION | Authorized guarded replacement after normal frontend exit; receipt required |


## Explicit final image-to-feature audit —2026-11-03

Status: COMPLETE after qualified native release, with239 current placements and opened final desktop/mobile evidence. This is a
new dedicated semantic review; prior image hashes, filenames and opened ledgers
do not prove that a picture matches its surrounding feature claim.

Dependencies: finish current menu/Y/OVR qualification and qualified release first.
Then inspect EVERY current website game-picture occurrence against its heading,
caption, alt text and surrounding description. Open and visually review each
actual image; do not infer content from names/manifests. Create a simple table:
page/section → image → heading/title → actually visible function → finding → fix.
Capture fresh real game screenshots on the exact qualified current final ROM
for all mismatches, including framed centred main-menu help and dollar transfers
where relevant. Correct image bindings, captions, alt text or titles to describe
only what is visibly shown. Review current galleries too. Retain clearly dated
historical evidence unchanged in its archives. Verify all current picture links
and opened final desktop1440/mobile390/320 views. Report every mismatch/fix and
any scene whose behavior still needs manual play. Do not mark complete from a
filename/hash-only audit or a plan.

Acceptance: every current game-picture occurrence has an explicit visual
image→title→visible-feature row, all mismatches corrected with exact-qualified-ROM
native screenshots or accurate text, historical files retained, links PASS,
opened desktop/mobile PASS, dated findings/fixes report published. Current
123-image opening work precedes this task and is not a substitute for it.


## Confirmed Y regression and transfer OVR report —2026-11-03

- Y: confirmed native short presses are dropped while the controlled skater is
  down. Real cold-boot SOLO FULL reproduction: old preview7 stable misses in62
  attempts; current private correction0/62. Separate mash runs: old24 stable
  misses/300 attempts; correction0/300. Opened before/after real game images.
  Status: PRIVATE FIX, not released; physical user confirmation pending. Add
  mandatory `downed_y` regression with native ABI/guards, actual solo-season
  input, preserved down-state and an active legacy-control reproducer.
- Transfer team OVR: user reports weaker displayed team after selling/buying.
  Status: INVESTIGATE after Y correction and before full QA. Add a mandatory
  regression if confirmed. Acceptance: independently calculate actual roster
  mean/rounding and displayed team rating before/after selling lower-OVR and
  buying higher-OVR players; retain economy, positions and hot/cold distinctions.
- Explicit jdc policy: every confirmed bug gets an enforced regression in the
  shared pre-release matrix. No stale run or plan-only TODO counts as a pass.


## Active user requests —2026-11-03 main-menu preview

1. Y goalkeeper selection regression: investigate BEFORE full release QA. Preview
   lacked its basename-specific six-button/4-WayPlay remap; copied the current
   qualified remap byte-for-byte, preserving all original configs. Native Y code
   is unchanged. Status: deployment fix applied; focused native checks and actual
   controller confirmation pending. Evidence: private main-menu-20261103/Y_REMAP_FIX.json.
2. Main-menu speed/music and exact https://games.jdc.se credits URL: PRIVATE
   candidates only; preview is not a qualified release. Full mandatory QA, new
   version, screenshots, website and delivery remain required.
3. Short numbered forum overview: provided directly in chat; label the project
   beta, disclose graphical issues, reported Y problem and incomplete live jdc/
   Bodin multiplayer coverage. Keep candidate fixes distinct from released work.


## Games domain and website structure —2026-11-03

Website restored at https://games.jdc.se/nhl94/; Manager/NHL94 logo links are
available at https://games.jdc.se/. Public images live in pics/, page code in
system/, other content in site/ subdirectories.909 image originals and historical
HTML retained;444 native/test source bytes and current ROM unchanged.2,564 initial
HTTP checks and30 individually opened desktop/mobile screenshots PASS.
[Structure and evidence](WEBSITE_LAYOUT_20261103.md).
Pending next: in-game startup URL and native menu speed/music restart investigation.
This website move does not release a ROM or reset progress.


## Cosmetic release —2026-11-03

Status: RELEASED locally and publicly; 125/125 exact-ROM groups on 444 sources.
Public image/link verification and all 18 opened desktop/mobile views PASS.
Bodin delivery is queued while offline; physical USB/play feel remain manual. ROM SHA256
`7d1fc931f5a5a4958b1eefcc05f00661b5321a6a1b2404d7563c98a22b8eb262`.

| Ordered item | Status | Acceptance evidence |
|---|---|---|
| Stars QG-V01 | DONE: already repaired in r2; stale status corrected | Historical b29 reproduces tie, r2/final show both winners/nonzero final scores; native Stars module unchanged |
| Dollar prices/budget | DONE: 1 unit = $1.000; original economy retained | Full native money/OVR/accounting/save/overflow checks and opened dense lists, transactions and refusals |
| Framed centred main-menu help | DONE: native border, five visible rows, all 26 choices retained | All 26 actual scroll contexts opened; original footer ABI/VRAM/canary checks retained |
| Current website pictures | DONE: all 102 picture IDs use final ROM; 123 native captures opened | All 106 homepage game-image slots final-hash-bound; 718 public checks and 18 opened desktop/mobile views pass; historical assets preserved |

[Behavior/scale/erratum](USD_FOOTER_20261103.md) ·
[Exact qualification and retained failures](QA_20261103_LOGS.md) ·
[Opened native graphics](GRAPHICAL_FINAL_20261103.md).
Older sections below are historical and superseded by this current checkpoint.

## Qualified current version —2026-11-02-r2

Ordered Quickgame/Allstar/transfers/native Matchups and M01–M23: IMPLEMENTED +
124/124 exact-ROM qualification PASS. [Per-check qualification](QA_20261102_R2_LOGS.md).
M24 COMPLETE:77 current image slots refreshed;102 native +36 public browser images opened.
[Final graphical report](GRAPHICAL_FINAL_20261102_R2.md). Release is installed locally/public.
M25 DELIVERED WITH DISCLOSED LIMITS:9:33 native-sound tour,71 chapters, first on homepage.
[Historical movie/coverage](../../video/archive-20261102-r2/) · [Opened playback evidence](../../audits/video-final-20261102-r2/). Physical hardware and
Bodin connection remain external acceptance. Earlier statuses below are historical.


## Historical pre-installation checkpoint — superseded by current acceptance above

Candidate SHA256 `c68333a8422b6e3754350ef2abd646951d85f6e2c2cd0f987dff1f184aa53b17`.
Quickgame human-only four splits, Allstar CPU plus four human splits, preseason
transfers and native overall/hot-cold presentation are implemented. M01–M23
have current native input/graphics evidence; 92 genuine screenshots are opened.
Full124-suite qualification is still running. Complete pass-mode, pass-charge
and strict-shootout rechecks pass on this same ROM; failed earlier batches remain
recorded. This is not yet an installed release.

M24: all77 current screenshot slots replaced privately;32 club logos and115
historical assets retained. Desktop1440/mobile390/320 preview under review;
final public link/image review remains after qualification/install.
M25: LAST, waiting for completed release/M24. Actual game video WITH native sound,
complete feature/timecode checklist and honest unshown/manual limitations.
[Current behavior and pricing](TRANSFERS_REFINEMENTS_20261102_R2.md) ·
[Opened graphical evidence](GRAPHICAL_FINAL_20261102_R2.md).
Dated statuses below are historical and superseded by this checkpoint.


## Current explicit follow-ups — 2026-11-02

- Allstar: add **1 vs CPU**, retain all four human splits and black A/red B uniforms.
  Implemented in the private candidate; focused tests pass. Full release QA remains.
  Quickgame is human-only under the latest explicit policy.
- **Final task:** refresh every current website game image from the exact finished
  ROM, including Allstar CPU/uniforms, transfers and native overall/hot-cold.
  Review captions/alt text, image links and opened desktop/mobile screenshots.
  Preserve historical audit images and their original claims.
  This depends on completed features and final-ROM QA.

See M23/M24 in [POST_VISUAL_FEATURE_QUEUE.md](POST_VISUAL_FEATURE_QUEUE.md).

## New ordered work after the current graphical audit

Explicit jdc request: finish and report the current R5 screenshot review first.
Then implement **QUICKGAME → ALLSTAR MODE → preseason transfers → original
pregame team/overall/hot-cold presentation**, in that order. Human-vs-human
controller splits must be exactly1vs1,1vs2,1vs3,2vs2 for both new game modes.
The transfer switch belongs directly below Icing. Private implementation and
remaining acceptance are tracked separately from released milestones. Dependencies,
status and complete acceptance criteria are maintained in
[POST_VISUAL_FEATURE_QUEUE.md](POST_VISUAL_FEATURE_QUEUE.md).

## Final implementation snapshot — 2026-11-01-r5

All requested implementation groups have an additional exact-version automated
check in [FINAL_AUDIT_R5.md](FINAL_AUDIT_R5.md). All 100 current suites pass; the
retained receiver geometry failure is now corrected. Momentum On/Off and the
lower-left dual-unit shot display are included. Original dated entries below
retain their historical results and superseded requests. Current Mini is 7 games,
Icing defaults On, and physical stars are P1 blue/P2 red/P3 green/P4 yellow.

Remaining external follow-up: actual human keeper-outlet confirmation, one-at-a-
time 147 variant human preferences, and Bodin connection/verified installation.
The original faceoff history is unknown and the earlier SanJose two-win save was
not recovered. Historical launch requests are not repeated during headless QA.
The abandoned 39/40-win target stays archived; no Hard win-rate pools resume.

Active overnight queue: [NIGHT_WORK_20261031.md](NIGHT_WORK_20261031.md).
jdc authorized continued work on all remaining items and independent default-Off
start-menu switches for new gameplay alternatives.

## Latest controller-star mapping — 2026-10-31

jdc clarified: P1 blue, P2 red, P3 green, P4 yellow, specifically the star
below the controlled player. This supersedes the earlier P2-green/P3-red
request. Restore the original red goal frame; do not recolor shared rink art.


## Reported marker/net regression — corrected 2026-10-31-r10

- [x] jdc's Downloads/44.png shows a red P1 marker and a yellow goal frame in r9.
  P1 must always be blue; restore the original red goal at both ends. Preserve
  P2 red, P3 green and P4 yellow without recoloring shared rink graphics.
  Diagnose physical-pad marker selection as well as palette sharing; unchanged
  P1 source pixels alone do not demonstrate a blue physical P1 marker.


## Easy team assistance — released 2026-10-31-r9

- [x] Give the entire human team maximum skill ratings (100-equivalent), including
  CPU-controlled teammates and keepers; opponents receive fixed 20-equivalent
  skill ratings. Apply the engine's correct scale and inverted timing attributes.
- [x] Keep the entire human team at full energy at all times in Easy. jdc explicitly
  chose permanent full energy rather than ordinary fatigue. Cover every co-op pad
  and line change. Preserve Normal/Hard behavior and the Crit Shots Off setting.

## Optional directional passing and targeting cone — released 2026-10-31-r7

- [x] Pass Mode Assisted / Directional, default Assisted; actual eight-way human
  B aim, no automatic receiver choice or release-time cursor handoff.
- [x] Independent Target Cone Default / 15 / 30 / 45 degrees, default Default;
  true vector half-angles for Assisted, per-season save/lock and native preferences.
- [x] Conditional hold/release native power: Pass Charge Off/On, default Off;
  released 2026-10-31-r10. See PASS_CHARGE_COLORS_R10.md.
- [x] Pickup Delay Off/On released 2026-10-31-r11, default Off; see PICKUP_DELAY_R11.md.
- [x] Optional Alt Goalies Off/On released 2026-11-01; see ALT_GOALIES_20261101.md.
  Brodeur30 #217634 / original #217609. See PASS_MODE_R7.md.


## Forum pass-only controls — speed and lift released2026-10-31-r5

- [x] Pass Height Normal/Low, default Normal: targeted B passes, separate season
  and native preferences, played-season lock and real native tests.
- [x] Independent Pass Speed Normal/Slow, default Normal; native moving-target
  recomputation, preserved lift, slot locks and corrected standalone storage.
- [x] Directional/cone controls released r7; see PASS_MODE_R7.md.
- [x] Hold/release power control released 2026-10-31-r10.
- [x] Pickup-delay option released 2026-10-31-r11.
- [x] Optional reach/rebound proposal released 2026-11-01.


## Shootout attempt rules — released2026-10-31-r2

- [x] Compare official puck-progress rules with native behavior; reject a
  backward/stopped pre-shot approach, permit legal forward loose-puck recovery,
  preserve native single-shot/retouch/keeper/goal handling and start without input.
  See SHOOTOUT_RULES_R2.md for explicit game tolerances and native tests.
- [x] Optional OT SO Rules Off/On released 2026-11-01-r2: eligible bench rotation and
  full16.16 body-spin detection. Applies to tied-overtime extension; no literal
  full NHL parity claim. See STRICT_SO_R2.md.

## Goal-net sensitivity — released 2026-10-31

- [x] Reproduce frequent displacement and raise the native release threshold50%,
  retaining heavy hits, native collisions, stoppage/reset and symmetric ends.
  See NET_CONTACT_20261031.md for paired native tests and limits.

## Prioritized co-op fixes — requested 2026-10-30

All seven prioritized co-op fixes are released. Deferred research remains below.
Work through one fix and its regression evidence at a time.
The running RetroArch must remain untouched. Current release is 2026-11-01-r5; queued work
is not released. Do not restart the stopped Hard win-rate investigation.

1. [x] **Penalty-shot controller ownership (released r11):** when a human-controlled
   attacker is fouled on a breakaway and awarded a penalty shot, the same physical
   P1/P2/P3/P4 pad must control that shot. Cover both teams, adapter input-bank
   swaps, temporary actor assignments and restoration after the attempt.
2. [x] **Manual keeper pass (released r13):** after explicitly selecting the keeper, the pass
   button must make the puck-holding keeper pass instead of only switching to a
   skater. Preserve the already working CPU-keeper outlet and explicit switch.
3. [x] **Downed pass receiver (released r3; reported by Bodin):** reproduce and prevent a
   prone/unavailable skater being selected as a valid automatic pass recipient
   or accepting a catch while down. Keep loose-puck collisions/recovery coherent.
4. [x] **Fair automatic pickup ownership (released r6):** when an unassigned CPU teammate gets
   the puck, choose randomly among eligible active human pads on that team,
   rather than consistently assigning P1. Preserve explicit receiver/pass requests
   and never steal another pad's controlled skater. See FAIR_PICKUP_R6.md.
5. [x] **Penaltys menu (released r8):** add a start-menu row labelled "Penaltys" with
   100% / 50% / Off. Default 100% retains the current frequency; 50% admits
   approximately half the ordinary penalties; Off disables ordinary calls.
   Keep established settings persistence and played-season locking; document
   Native icing/offside/penalty-shot, injury and whole-fight behavior are tested.
   Native discovery documented in PENALTYS_RESEARCH.md; preserve original combined
   choice as Rules and add the frequency control separately. See PENALTYS_R8.md.
6. [x] **Mini season seven games (released r12):** one game against each of the seven other
   clubs in the same division, removing r9's eighth return fixture. Update menu,
   schedule, standings/simulated games, season completion and playoff transition.

7. [x] **Distinct controller stars (corrected r10):** P1 blue, P2 red,
   P3 green, P4 yellow; original red goals restored. This is jdc's final
   clarification and supersedes r9's earlier P2-green/P3-red mapping.

Remaining reports stay recorded below, including the intermittent
faceoff alignment. Optional attacking policy was released in Nov1r3. These items do not
reopen the completed/stopped Hard strength search.

## Human one-timer stick contact — 2026-10-30-r10

jdc reported that receiving a pass while repeatedly shooting launched the puck
far from the stick. Native co-op input tests reproduced buffered releases up to
36.8 game pixels from GetHot's stick hotspot, with the shot animation at0.
The human buffer now waits for actual stick contact (radius4), then starts the
native contact/follow-through phase24. A fresh owned C cannot start a competing
ordinary windup while that request waits, and another pad's C cannot erase it.

The request stays responsive to native movement and possession loss. No puck
teleport or pickup-radius change is used; AI and normal shot physics retain
their code. Mini's divisional schedule, OT, momentum, defaults and locks remain.
See HUMAN_CONTACT_R10.md, HUMAN_CONTACT_RESULT.json and exact QA_STATUS.json.
The inherited finisher_hold geometry limitation remains failed; no new Hard
strength series is claimed. SHA256:b28fa2c8f42bd792f3118bc3d71df2fed5f959957d4adc60f372f2d4863c2038; CRC32:F157EFEB.

## Division-only Mini season — 2026-10-30-r9

Mini now plays eight regular-season games exclusively within the selected club's
own division. Its first seven rounds cover every divisional rival once; round8
is a return against the round4 opponent. All four simulated divisions use the
same eight-team round robin. Every team still plays eight games. Existing
single-player home/away alternation, co-op home fixtures, season locks and NHL
playoff qualification remain. Full and Light retain their league-wide schedules.

jdc reported Edmonton meeting Detroit in Mini. Exact r8 reproduces this from a
saved first-opponent choice; r9 restricts the cursor and actual fixtures to the
Pacific division. See MINI_DIVISION_R9.md, MINI_DIVISION_RESULT.json and current
QA_STATUS.json. The pre-existing receiver-hold geometry limitation is retained;
no new Hard win-rate series is claimed. ROM SHA256:29672052309b0bcad831716cd0edf35b498a265f0063d99173c70dff4df47c3a; CRC32:FD1A8A3A.

## Selected-length overtime and whistle momentum — 2026-10-30-r8

Overtime now uses the selected period length:5,7,10 or20 minutes. Native sudden
death and the existing shootout after a tied overtime remain. Shots/checks while
the clock is stopped, during a faceoff, pause, foreign view, replay or Stars no
longer earn crowd momentum or rating boosts. Blocked counters are consumed
immediately; resuming cannot bank them. Existing earned momentum is retained.
Normal and Hard retain the same earned-meter rules; Easy retains fixed ratings.

Changes are confined to shootout.s and crowd.s, plus release strings/checksum.
Rebuild, exact r7 rollback and original-base IPS reconstruction pass. All shared
checks are freshly run against this image; see OVERTIME_MOMENTUM_R8.md and
QA_STATUS.json for the exact results and retained AI limitation. No new Hard
strength matches are claimed. ROM SHA256:083f45ffbfff3986d55fbe2ea13384916c4c5b4f1d0b6c5e21e39aa80af80e02; CRC32:D813665F.

## Icing On default restored — 2026-10-30-r7

jdc clarified that **Icing must default On**, despite Off in the previous menu
screenshot. Fresh boot, empty Full/Light/Mini formats and explicit restarts now
use On. All other r6 menu defaults and keeper/current-skater outlet behavior stay
unchanged. Manually chosen saved settings and played-season locks still apply.

Only three default immediate bytes change1→0 outside version/checksum fields;
all other game code is byte-identical to r6. The 75 shared checks ran:74pass,
only the known inherited finisher_hold geometry failure; strict gate FAILED.
All40 current raw no-B scenes match fresh r6 controls exactly. The older r6/r5
observation audit remains separately disclosed. Rebuild, exactr6 rollback and
original-base IPS reconstruction pass. See ICING_DEFAULT_R7.md and QA_STATUS.json.
SHA256 48af31f9f7c85766951bf42745360571d6e7bf025bdce936363a58a178ab05f6; CRC32 273334B0.

## Keeper catch handoff and requested defaults — 2026-10-30-r6

A keeper already selected before catching the puck now returns to CPU control
on the accepted catch, and that pad receives an eligible free skater. The native
AI marker follows this ownership change. P1–P4 request an outlet to their current
skater; pass no longer switches that requester first. Explicit Y after the catch,
CPU-only keepers, opposing human teams and special modes retain their rules.

Fresh defaults follow jdc's latest screenshot: Auto lines, Fighting Off, Hard,
Auto Replays Off, Crit Shots Off and Icing Off; Edmonton remains the default club.
The screenshot's Icing Off supersedes the earlier r5 On request in this release.
Existing valid saved choices and played-season locks remain readable.

All75 shared checks ran:74pass,only the inherited finisher_hold geometry failure.
Strict gate remains FAILED. New coverage includes44 native ABI/object guards,
148 four-pad keeper cases (68 added handoff/current-requester cases),5 branches
of the reported r5 catch and6 native default/menu-render cases. All40 current puck/clock/action timelines match fresh controls.35 raw traces
are exact;15 isolated position/cache/render observations across5 traces are
recorded separately with exact whole rows before and after each difference. Rebuild, exactr5 rollback and original-base IPS reconstruction pass.
No new Hard win-rate series. See GOALIE_CATCH_R6.md and QA_STATUS.json.
SHA256 74f099b10459e000b4b50870e41617983641445f83c813328dba019b6b02fd7d; CRC32 25BBB406.

## Icing and default club — r5

- [x] Add bottom Icing On/Off row; On by default.
- [x] Keep normal season locking, per-format persistence and old-save compatibility.
- [x] Default to Edmonton on fresh startup/new empty formats/restart.
- [x] Test native menu rendering, rules, exemptions, cold boots and shared regressions.

The requested controls and screenshot graphics repairs are in 2026-10-30-r2.
All new regressions pass; the selected AI base's known finisher geometry failure
is retained honestly. The lateral-carry goalkeeper correction is released in 2026-10-30-r3.
The win-rate search stays stopped; no new qualification series is authorized.

## Keeper pass request — reproduced deadline race corrected in r4

- [x] Confirm physical A (pass), corresponding to logical Genesis B.
- [x] Reproduce and correct the valid-request timeout race: 1,776→1,792 passes
  out of1,792 valid paired requests. Preserve all128 late/stopped outcomes.
- [x] Run38 native ABI/guard cases,108 paired input contexts and all70 shared
  checks;69pass, same inherited finisher geometry failure retained honestly.
- [x] Match all40 no-B current trajectories to40 fresh exact r3 controls.
- [ ] Human retest of the reported symptom; this fix does not permit passing
  after a committed native timeout or whistle. See OUTLET_DEADLINE_R4.md.
- [x] Identify SRAM/recording requirements; retain initial SRAM separately in
  future recordings and keep raw recordings private.

## Native free-point faceoff displacement — optional correction released 2026-11-01-r4

- [x] Preserve original screenshot and all earlier stress/movie/pixel evidence.
- [x] Reproduce the whole-formation phenotype using an actual queued minor on
  exact unmodified Oct30r3 and Nov1r3. Native point(-14,-12) explains it.
- [x] Independent Faceoff Dots Off/On, defaultOff. On selects the nearest painted
  point within native regional choice; native formation/camera/renderer remain.
- [x] Separate native/Full/Light/Mini saving and first-match locking; new native
  regressions plus all 97 shared suites, rebuild/exactr3rollback/IPS/source audit.
- Original incident history remains unauthenticated; this is a reproduced cause
  and optional coordinate policy, not full NHL faceoff-location rule parity.
  See [FACEOFF_DOTS_R4.md](FACEOFF_DOTS_R4.md).

## Completed: goalkeeper commitment during a lateral carry

- [x] User report, 2026-10-30: skating in from the boards and past the keeper
  makes him dive or remain stranded, leaving an easy open-net finish. The user
  now prefers fixing the keeper to teaching Hard AI to exploit that sequence.
- [x] Reproduce the carry, windup and release with native controller input;
  distinguish save-animation commitment from collision knockdown.
- [x] Correct stale commitment/tracking while retaining real skating, shot
  physics, keeper attributes, catch dives and manual goalie control.
- [x] Compare both directions, teams and approaches; cover ordinary shots,
  passes, possession/outlets and shootouts with the exact-source release matrix.

Correction released in 2026-10-30-r3; full evidence and limitations: [GOALIE_LATERAL_R3.md](GOALIE_LATERAL_R3.md).

## Maintenance completed: 2026-10-30-r2 on the selected 38-win base

Latest user steering,2026-10-30: retain the38-win tactical base and fix it first.
Then fix the graphics defect shown in Downloads, then continue the other queued
work. The separate optional attacking policy below was subsequently released
in Nov1r3; it does not resume the stopped39/40win search. Crit-only locking and immediate B switching
are the known requested maintenance fixes. Changed releases still need a new
version, exact-source checks and normal replacement/remap/save handling.

## Hard strength — completed and accepted by jdc

- [x] jdc accepted the released 38-win Hard base as complete on 2026-10-31.
  Mark Hard mode completed on the website; no further strength search is planned.

The released base won 38/50 against Normal. Historical benchmarks of stable39/50
and an independent39+ confirmation were not achieved; they are archived research,
not remaining tasks. The later final experimental variant won33/50 (94–62) despite
passing74functional checks and was not selected. All prototypes, results and known
QA limitations remain documented. Do not restart the search without a new request.

## Completed: Crit Shots lock after match 1

- [x] User report,2026-10-30: Crit Shots On/Off remained editable after the first
  completed match in the current2026-10-30 playtest.
- [x] Lock only the Crit Shots On/Off choice after the first completed match,
  following the existing season settings lock. Preserve its selected value.
- [x] Keep every other menu option's current behavior unchanged.
- [x] Add a regression for actual Left/Right rejection after match1, including
  a cold boot; keep the existing Crit rendering and On/Off shot-behavior tests.

The final strength test has ended. User now prioritizes repairs to the38-win
base; this is the first maintenance fix. All other option behavior stays unchanged.

## Completed: reliable B player switching without skater possession

- [x] User request,2026-10-30: B must always switch the controlled player when
  the human player does not have the puck, or when their goalie has the puck.
- [x] Prefer the nearest other eligible teammate at the actual puck position.
  jdc reaffirmed on 2026-10-31: always change skater on a switch request, even
  when the currently controlled skater is already nearer. Do not add a keep-current
  rule. Owned-puck passing and keeper outlet requests retain their separate paths.
- [x] Reproduce the current intermittent missed/delayed B switch reported by
  the user; switching should respond immediately to the press.
- [x] Check both teams, ordinary and four-pad controllers, loose/opponent-owned
  pucks and own-goalie possession; retain B behavior while a human skater owns
  the puck and keep goalie/controller ownership consistent.

Follow the Crit Shots lock as maintenance on the38-win base. Deliver changes
under a new version; do not silently mutate the published image.

## Completed: Stars of the Game graphics defect

- [x] Inspect `/home/jdc/Downloads/Pasted image (2).png`. The lower/right portion
  of the black Stars of the Game panel is missing, showing ice beside the names;
  custom meters also remain visible in this postgame scene.
- [x] Reproduce on the actual38-win base and identify the responsible draw/update
  or tile/VRAM overlap. Repair the game renderer, preserving the screenshot as
  original evidence. Verify postgame panel geometry, text, meters and normal HUD.

## Completed optional shot-zone / native pass / lateral approach — 2026-11-01-r3

- [x] Independent AI Shot Plan Off/On, default Off, Hard CPU only. Exact selected-
  post distance and real keeper openings define ordinary-shot deferral; native
  passing/one-timers and lateral native movement retain pressure/age fallback.
- [x] Preserve the repaired goalkeeper behavior; do not restore its exploit.
- [x] Native/Full/Light/Mini preferences, season lock, all physical human guards,
  full96-suite matrix and exact-parent rebuild/rollback/IPS evidence documented
  in AI_SHOT_PLAN_R3.md and AI_SHOT_PLAN_RESULT.json. No strength search resumes.

## After all other work: human playtests of retained AI variants

- [ ] User request,2026-10-30: after everything else is complete, let jdc test
  the retained AI variants one at a time. Do not start this during the final
  Hard strength test or before the other TODO items.
- [x] Prepared an inventory of retained images with archived behavior/protocol,
  original image/source-hash qualifications and honest CPU-versus-CPU
  results/failures:241 images,244 series,147 review images. See
  RETAINED_AI_VARIANTS.md. Human trials remain pending.
- [ ] Deliver one playable variant at a time under the existing new-version,
  single-current-download and controller-preservation policy. Keep the original
  experimental evidence and do not overwrite its results with human impressions.
- [ ] Record jdc's feedback on difficulty, passing, shooting and responsiveness
  before moving to the next variant. CPU win rate alone does not rank how hard
  the variants are for a human; no human comparison has been claimed yet.


## M25 — final narrated-by-captions gameplay demonstration with native sound

Explicit jdc request,2026-11-02. LAST, after the existing ordered features,
complete exact-ROM qualification, release/delivery work and M24 website image
refresh/desktop/mobile review. Do not interrupt or change the current QA run.

Status: DELIVERED WITH DISCLOSED LIMITS after completed release and M24.
Actual71-clip9:33 native-sound movie published highest on the homepage; all50 game
feature sections plus4additional groups inventoried. Choices/representative play
shown; not every edge case is filmed.9 public playback screenshots opened at
1440/390/320, actual decoded sound/motion/chapter links pass. Physical hardware/
human preferences and clearly listed unshown cases remain acceptance limits.
[Historical movie and exact coverage](../../video/archive-20261102-r2/) · [Playback report](VIDEO_FEATURE_TOUR_20261102_R2.md).

Original implementation checklist follows; completed with the scope above. Feasible: /usr/bin/ffmpeg is installed and the
headless core already captures actual stereo16-bit game audio through GPGX_WAV.
Its callback video frames were recorded with native audio; all callbacks and A/V
durations verify. The tour has the disclosed visible/nonvisual scope above.

- [x] Build a feature-by-feature checklist from the requested TODO, release notes
  and actual final settings, including earlier implemented functions. Assign a
  chapter/timecode and exact native evidence to every item so none is omitted.
- [x] Use only the finished verified ROM/hash, a separate isolated recording
  instance and generated private saves/states. Preserve the user's RetroArch,
  game saves, remaps/configuration and Bodin data under the project policy.
- [x] Record actual menus and representative gameplay with real emulated game sound. The
  coverage index explicitly lists unshown/partially shown cases from the original
  intended demonstration below:
  visible choices and relevant in-game behavior, including Quickgame human splits,
  Allstar human/CPU + black/red uniforms, transfers/OVR/budget/valid rosters,
  restored overall/hot/cold, settings/defaults/locks, passing/keeper controls,
  shot/pass gauges, Momentum, Crit, Easy/Hard, HUD/replay/PP, period warning,
  OT/shootouts, seasons/lines/statistics and the other implemented fixes.
- [x] Present one coherent MP4 demonstration with readable chapter captions and
  native sound, plus a feature/timecode index. Disclose any explicit controlled
  native fixture; never describe a forced outcome as naturally played footage.
- [x] Verify video/audio streams, audible nonsilent native sound, A/V timing,
  chapter coverage and opened exported video frames. Record ROM/video hashes.
- [x] Clearly list any function that cannot be shown or verified visually, any
  missing audio and physical/manual-only limitations. Do not call it complete
  unless the checklist and disclosed scope support that claim. Publish/link the
  finished video and checklist only after the preceding required work is done.

### M25 placement — explicit jdc addition

When the native-sound demonstration is finished, place its player HIGHEST on
the current NHL94 homepage, clearly accessible before the ordinary page content.
Use responsive native video controls, playable audio and desktop/mobile layouts;
do not autoplay sound. Open actual desktop1440 and mobile390/320 screenshots of
the final placement/player and verify the video URL and playback controls.
This remains after current packaging/release/M24; do not publish an unfinished
video as complete.


## Ordered after current Penalties50% investigation — replacement feature film

Status: COMPLETE —2026-11-04. Penalties investigation completed first; no native fix needed. New4:57/45-chapter exact20793fce… film is published highest on homepage, replacing the9:33 film. Real game stereo audio, all26 menu rows, three verified~20sec Crits, actual charged directional pass, dollar transactions/OVR and labelled coherent demo reports.45 exported frames and27 public browser screenshots opened;68 HTTPS checks, full decode and PCM/AAC sync pass. Historical old film preserved. [Completed report](VIDEO_SHORT_TOUR_20261104_R2.md). Physical phone/USB/live jdc/Bodin acceptance remains manual. Original order and acceptance are retained below.

Original dependency: completed penalties investigation and any required native fix/qualification. Replace the current9:33 homepage film with a shorter, denser film from the then-current qualified ROM, authentic game audio, all main-menu choices readable with concise explanations, three verified real Crit Shot excerpts around20 seconds EACH, directional/controlled passes and other visibly demonstrable features. No Hard/Easy comparison needed; omit invisible logic/test details. Isolated demo standings/scoring leaders may use explicitly authorized coherent randomized sample data; label in English "Demo standings — sample data" / "Demo scoring leaders — sample data". Never user saves. Preserve running RetroArch and controllers.

Acceptance: actual visible feature/action in each clip, Crit verification and clip hashes; shorter than9:33; no long waits/repetition; accurate current chapters/coverage/duration/poster/player/links; actual sound and sync; replace main video at top only after reviewed; opened desktop/mobile playback and chapter screenshots; historic old film retains its original provenance, no stale active chapters. No implementation for blue fields and no AI-strength search.
