# Ordered feature queue after the R5 visual audit

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


## Current cosmetic acceptance —2026-11-03

Dollar display and framed centred help released and qualified 125/125 on 444
native/test hashes. Current website picture refresh DONE: 102 picture IDs, 123
opened native captures, 18 opened public desktop/mobile views and 718 public
artifact/source/image checks. Historical evidence retained.
[Final acceptance](GRAPHICAL_FINAL_20261103.md). Bodin is offline and queued;
physical hardware and subjective play acceptance remain manual.


## 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.
[Movie/coverage](../../video/) · [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.


## Historical private checkpoint — 2026-11-02

Private candidate61 SHA256 `0b6dd3a7bff09a323224a28927dcf77a28e1ad06429b40be683a3a91cadf1a19`.
The current public release remains Nov2 SHA256
`b29af4d9300da2f4d989e9537a0c94f2da43f701fdb6054f4c5b9ce5040fc3d8`.

| Ordered work | Implementation status | Remaining acceptance |
|---|---|---|
| Quickgame | Earlier human mode released; latest private policy offers only the four human splits. | Fresh complete current-ROM release matrix and final opened captures. |
| Allstar | Earlier black A/red B teams released; private CPU option added, four human splits preserved. | Final CPU/human match images and complete current-ROM matrix; ordinary uniforms must remain exact. |
| Preseason transfers | Implemented privately, including On/Off under Icing, OVR-squared prices, budget16042, buying/selling, valid rosters and persistence. | Finish fresh transfer suites, opened final screens and release audit. |
| Native pregame overview | Restored privately with current roster/overall and hot/cold data. | Final actual ordinary/Allstar/transferred screens and complete exact-ROM checks. |
| M24: all current website pictures | FINAL task saved; current-image inventory complete,109 images including32 club logos. | Replace outdated presentation with real final-ROM captures, update captions/alt, check links; preserve historical archives; open desktop1440 and mobile390/320 screenshots. Depends on the preceding features and final qualification. |

The full123 run is in progress. Original failures remain recorded, including a
one-timer non-regression failure under investigation. Focused fixes to two test
observers pass independently; they do not convert the frozen report into a pass.
Thirteen independent rebuild/control/rollback builds and original-base IPS
reconstruction pass on this exact private ROM. No new public release is approved.

The dated checkpoints below preserve their original chronology; M23/M24 contain
the latest explicit CPU/image requirements.


Explicitly requested by jdc at 2026-11-01T14:58:26.636377+00:00. This is authorized implementation work,
not only a research/plan request. Finish and report the current screenshot audit
FIRST. Do not mix implementation, new ROMs or release resets into that audit.
Then implement the following items in this exact order, qualifying each before
moving to its dependent item. Follow AGENTS.md, TEST_PLAN.md and the existing
new-version/fresh-progress/controller-preservation release policy. Never close
an existing RetroArch; use isolated headless/private test instances. Actual
screenshots opened and visually reviewed are required for visible changes.

Current status: the R5 screenshot audit was finished and reported (176 opened
images; audits/visual-r5-20261101T145350Z/). Quickgame R6 is released and all103
required checks pass on SHA49c8b23b940a9c5368580dfcad11626a3ffbd4a51cdcae10ca8c9ce01f642487.
Allstar R7 is qualified/released,106/106 pass, SHA6e66c0afe2496eb3f6a688c29888ca62b17aee0b0f51efec96d11dce5e842b31. Transfers, then original pregame overview remain authorized.

| Order | Feature | Dependency | Status | Acceptance criteria |
|---|---|---|---|---|
| 0 | Current R5 graphical audit | None | DONE — R5 audit176 opened images | Review actual screenshots of menus, clubs, match/season settings, Momentum On/Off, shot meter, HUD, players/puck, pause/period/results and desktop/mobile website; date and hash-bind images; report passes, defects and human-only limitations before implementation starts. |
| 1 | QUICKGAME | Audit finished and reported | DONE — released R6,103/103 | Exactly four human-vs-human controller distributions:1vs1,1vs2,1vs3,2vs2. Counts mean human pads per side. No entirely CPU opponent side and no human-vs-CPU option. Verify each physical pad, side, skater/keeper control and both sides for every distribution; no inactive-pad ownership. Native AI teammates may fill remaining skater positions. Actual menu/game screenshots, independent rebuild and full exact-image release matrix required. |
| 2 | ALLSTAR MODE | QUICKGAME works and is qualified | DONE — released2026-11-01-r7,106/106 | Same game flow and exact four human-vs-human distributions. Choose the best players by documented overall ranking and split them between two Allstar teams. Valid positions/lines/keepers/roster size and unique player identities. Verify selections against actual ROM attributes, all four pad distributions and displayed team/player data; no fabricated ranking. Actual lineup/match screenshots and exact-image regression/release checks required. |
| 3 | Transfers before a season | ALLSTAR MODE works and is qualified | NEXT — dependency2 qualified | Add a start-menu row immediately UNDER Icing labelled Transfers On/Off. Off starts an ordinary season; On opens a buying/selling step before match1. Document an overall-based price/budget model that gives every team enough initial funds for one star plus one middle-rated player. Prices, funds, sales, duplicate ownership, valid roster/positions/keepers and storage boundaries must be checked. No negative budgets; atomic transactions and safe cancellation. Started seasons must retain their established locks; do not reopen transfers after match1. Validate actual transferred player identities/attributes/lines, save/reboot/slots and actual screens before release. |
| 4 | Restore original team/overall presentation screen | Transfers works and is qualified | BLOCKED BY3 | Restore the original pregame team/overall/statistics and hot/cold player presentation after starting a game and before play/first faceoff. Show the actual current teams/players, including Allstar rosters and completed transfers. Verify original native renderer/flow, correct home/away identities, ratings, hot/cold names, input/continuation and each mode. Native/screenshots must demonstrate the real displayed data. Full exact-image regression/release checks required. |

Implementation status must be updated with concrete evidence and exact version/
ROM hashes. Do not mark a dependent feature complete from a plan or logs alone.
Open routine design choices may be resolved within this authorized scope; do not
introduce a CPU-vs-human Quickgame variant. Keep the audit's R5 ROM immutable.

QG-V01 cosmetic follow-up after the ordered four features: compact Stars scoreboard after OT shootout retains the regulation tie; full result header correct. Exact R5 and R6 actual screenshots prove inheritance. Not fixed.

Allstar additional acceptance requested by jdc: Allstar A must wear all-black
uniforms and Allstar B all-red uniforms, replacing the inherited ANA/BOS jersey
shells. This must be implemented before Allstar qualification/release. Verify
ordinary32 club uniforms remain unchanged. Capture, OPEN and review actual
native match screenshots of both Allstar teams on the final exact ROM hash.
Status: implemented and released in2026-11-01-r7 (SHA6e66c0afe2496eb3f6a688c29888ca62b17aee0b0f51efec96d11dce5e842b31); actual black/red and ordinary ANA/BOS match pictures opened; final106 QA passed. Overall/hot-cold
restoration remains after transfers; ordinary rink/logo cosmetics are separate.

## Replay HUD correction — jdc screenshot55, 2026-11-01

ACTIVE reported regression on R7 SHA6e66c0afe2496eb3f6a688c29888ca62b17aee0b0f51efec96d11dce5e842b31.
Remove speed text corrupting the REPLAY heading. During replay preserve the
pre-replay lower-left shot/clock-panel appearance and frozen measured speed/charge.
Known cause: compact speed pattern tiles FE80..FF3F overlap the chrome REPLAY
patterns FC20..FF7F; native replay clears the lower-left frame/clock.
Reproduce exact parent, isolate title/bar/fonts, restore appropriate panel cells,
and OPEN real pre/replay/post screenshots for full/short charge and skipped/natural
exit. Retain penalty ownership, clock, ordinary/manual replay, all pads and existing
Allstar/Quickgame. Full fresh exact-ROM gate and release policy before delivery.
Private work: .workspace/work/replay-hud-20261101/. Transfers prototype is retained
in transfers-20261101/stage; resume ordered transfers then overview after repair.

## Quickgame expansion — jdc, 2026-11-01 (supersedes earlier human-only restriction)

QUEUED immediately AFTER the active screenshot55 replay-HUD correction, per jdc's
new explicit order. Rename the displayed mode exactly **Quickgame** (capital Q,
remaining lowercase). Add a working human-versus-CPU option alongside the existing
1v1,1v2,1v3,2v2 human distributions; preserve those distributions and saved seasons.
The earlier prohibition on a wholly CPU opponent applied to the previous request
and is expressly superseded for Quickgame by this newer instruction. Allstar
continues using its four human-versus-human splits unless separately requested.
Acceptance: actual menu text and CPU option screenshots opened; real native
controller/side ownership, CPU opposing side, match/OT/shootout/end/return flow;
all four previous human splits; no season save corruption. Full exact-ROM QA,
rebuild/rollback/IPS and existing release policy before delivery. Continue transfers
then original overall/hot-cold presentation after these requested corrections.

## Menu background78 — jdc, 2026-11-01

ACTIVE added to the pending replay/Quickgame update. Use the supplied Downloads/78.png
as the menu background, preserving the startup NHL94/Season Edition picture.
Convert the supplied texture for native menu rendering; keep menus legible, all
club/logo/panel palettes intact, and keep startup artwork bytes unchanged.
Verify actual opened startup and menu images, all background tile offsets and
exact source/converted-asset hashes. Shared fresh release QA required.

Progress checkpoint: all three added corrections are implemented in private
Nov2 candidate5(df56df40f57d5c5598d74e1d4e44749b06dcc64f9b628728b9c5ec531151fb8c).
Replay native9cases/512ABI and17ownership cases pass; CPU22input+2menu+2end+2OT
focused cases pass; menu78 all1120nativecells/pixels and unchanged startup
frames pass. Earlier focused CPU/menu results belong to their recorded
prototype hashes; fresh111-suite qualification and release are still required.
No new playable release is claimed yet. Transfers native/model checkpoint
is retained at .workspace/work/transfers-20261101/CURRENT.md.

## P3 neon-green marker — jdc, 2026-11-01/02

QUEUED after the current111-suite run finishes; do not change its frozen ROM
or sources mid-run. User reports green star is too similar to blue, explicitly
requests neon green. Brighten P3 while retaining P1 blue/P2 red/P4 yellow and
the red goal. Determine whether the fixed green palette entry is shared; compare
real native screenshots/palette/SAT/resident marker art so unrelated graphics
are preserved. Keep exact current111 report as preceding-candidate evidence,
then make a new candidate and rerun the entire fresh required release matrix,
including marker colour regression, before delivering the combined update.
Do not claim the old candidate's passes approve changed ROM bytes.

Extra final audit requested by jdc before sleeping: after the final exact-image
full gate, review each requested correction and prior checklist again, OPEN final
match/menu/replay screenshots, verify source/hash/ROM+IPS/Downloads/site/Bodin
status and preserve manual-only/open findings. No promise that unreleased
transfers/overview are finished; continue them after the current release.

Neon research: native palette1/indexB is shared with small crowd/background
green details. One-word brightening changes those details too; other fixed
entries, team palettes, P1/P2/P4 and goal stay exact. A strict P3-only pixel-mask
assumption failed at a crowd pixel and is retained. Quantify shared green pixels
and OPEN actual images before selecting/qualifying the final implementation.


## More distinctive period alert requested2026-11-02

| ID | Change | Dependency/status | Acceptance |
|---|---|---|---|
| M16 | Exactly five clear alarm beeps at00:40 remaining in each period | QUEUED — explicit request; after current ordered work | Replace the current soft three-pulse warning with exactly five distinct, clearly audible beeps per warning. jdc explicitly specified five beeps; this supersedes the earlier unspecified/two-tone motif suggestion. Verify all five audible pulses in actual emulated audio, including the last note-off. Trigger once on the actual clock crossing00:40 in each regulation period and overtime; pause/replay/stoppage/resume must not duplicate it. Preserve other SFX/music/penalty-expiry behavior and sound-driver voice cleanup. Capture and review actual emulated audio on the exact new ROM, check clipping and concurrent whistle/music/crowd behavior; prove native clock/IRQ/ABI and unchanged gameplay. No new release or completed listening test is claimed by this entry. |

Source inspection confirms the current build already patches the native warning
comparisons at15DFE/15E08 to40 and redirects SFX2 via2C650 to a60-byte sequence
at1960. Its three note74 pulses use instrument29 with a quiet unison voice.
A more distinctive motif is technically feasible within the existing sound
sequencer; retain the low-ROM placement, because the driver classifies higher
sequence addresses as music. Historical Oct23 audio is context only, never
qualification for a new candidate. This request does not change current QA ROMs
or the running user's private preview.


## jdc authorization update2026-11-02: complete all remaining work, then launch before full QA

jdc explicitly permits choosing the implementation order for ALL remaining items.
The earlier per-feature release dependency is superseded: related remaining
features may be integrated into one candidate before a final whole-matrix run.
All functional acceptance criteria remain. Launch the newly implemented private
playtest at the user's request BEFORE starting the full final test suite, using
isolated saves/configs and preserved controller remaps; then run separate
headless QA while the user plays. Focused development checks are still needed
during implementation. Do not close the user's session and do not represent an
unqualified preview as an approved public release. Continue until the entire
remaining queue, extra visual audit, documentation and release are complete.


## Combined private implementation checkpoint2026-11-02

M01–M16 and original season Matchups restoration now have integrated source in
private preview26 (SHA c0208d3f29e0e9a5bc5a10c3028369985292ab80a4673bd2b66aaa9205501187).
This supersedes the earlier QUEUED implementation labels only: all remain
IN PROGRESS pending complete exact-image qualification and release. Actual
opened menu images show the new rows/defaults/explanations and ± glyph; opened
actual match images show compact left Momentum bars. Native transfer sorting
passed195 independent projections on its recorded preceding prototype; current
actual four-pad buy/sell/game and lifecycle checks are continuing. The native
SO compact-result refresh has source, with actual shootout evidence still needed.
Do not mark any item released or fully verified from this checkpoint.

The preview was launched before the full suite exactly as jdc requested, with
isolated saves and preserved controller mapping. Never close/input that session.
Following source work also moves new even-preference reset writes behind the
committed reset journal, before any release. Final qualification must bind the
actual resulting ROM, including that lifecycle safety correction.


## M17 — Fixed lower-left HUD during power plays (2026-11-02)

Status: IN PROGRESS. Supersedes the previously required above-clock shot fallback.
Keep the bottom-left clock/shot/unit/Momentum box in its normal position at all
times. Place the native club PwrPlay caption and remaining penalty time above
that box. Preserve penalty timing/manpower/expiry, replay, pause and Stars.
Acceptance: actual queued-minor screenshots opened before/during/after the power
play, both clubs, selected KMH/MPH and Momentum states; no overlapping widgets.
User evidence: private user-report-20261102-1132-powerplay-lines, originals opened.
Requires a newly built/hash-bound ROM and fresh full QA before public release.

## M18 — Draisaitl in manually edited first scoring line

Status: INVESTIGATING. Current automatic natural-position selection puts McDavid
at Sc1 C and Draisaitl in a later C role. Verify actual native Line Editor can
move Draisaitl into Sc1 alongside McDavid; repair any position/selection mapping
or overwritten edits if reproduced. Do not change automatic roster-selection
policy without need. Acceptance: real controller edits, opened editor and actual
first-line match images, correct current UID/name/stats, no roster duplicates
within a line and valid forwards/defenders/goalie after transfers.


## M19 — Consistent A/B/Start menu controls and visible help

Status: IN PROGRESS — inventory/native Line Editor mapping investigation.
User2026-11-02: every menu should use the same A/B/Start conventions as the
native Line Editor, and every interactive page must display the meanings along
its bottom edge. First verify the actual Line Editor mapping, then use that
mapping consistently; do not guess button semantics or alter match controls.
Scope: main settings, native pregame/pause/result, slot/restart confirmation,
transfer buy/sell/source/Ready screens, roster/line editor/goalie selection,
standings/leaders/team/player stats and original matchups where interactive.
Dependencies: preserve M17 fixed powerplay HUD, M18 line edits, all saved-slot
locks/roster identity and input-bank mappings. Implement before the combined
release, then run fresh exact-ROM menu/controller/lifecycle and opened screenshot
checks for every page, including four-pad ownership. Help must describe actual
accepted inputs and fit within the visible safe area. Physical USB play feel
remains a manual test. Current preview26 must remain open and untouched.

M18 regression explicitly requested by jdc2026-11-02: include permanently in
future release QA. Reproduced: active transferred roster RW selection opens a
DEFENDER-only list because the inherited any-position edit skips MOVE.WD5B8,D2.
Scoped repair restores the selected position only when transferred rosters are
active; ordinary/Allstar inherited behavior remains unchanged. Required proof:
full IRQ/CCR/GPR/SP and both-category guards, real buttons selecting Draisaitl
for Sc1RW with McDavidSc1C, native Exit flow and actual on-ice loaded slots.
Current private30 opened editor proves Draisaitl inSc1RW, match proof pending.


Development checkpoint — private candidate51 (not released/whole-gate approved):
M18 real input regression is now public source refinement_line_input.py + hook.
Fresh current-ROM cold-boot transfer flow supplies authenticated paired pregame.
Real controls put Draisaitl at Sc1 RW, retain McDavid C, exit, start, and verify
both actual native loaded UIDs; all transfer records unchanged. Three originals
opened. Native line-pool ABI/active stale-pool negative remain separately required.
M19 contextual help is integrated for native/common, custom season statistics,
confirmation and transfer menus, plus manual VCR. Native menu-reader alias ABI
passes2560 explicit native contexts and active missing-alias negative;26 real
back/button paths pass in private51 using declared paired captured inputs.
Fresh51 four-pad transfer90k game/lifecycle/reset/coldboot run passes. Earlier50
failed because two test helpers both acknowledged Matchups; explicit producer
now disables generic autoack. All original possession/shot/cache/stack/lock/reset
criteria retained. Whole final release matrix, full current hash image audit,
VDP/IRQ ownership contracts and remaining M17 contexts still required.
Current preview26 has independently exited; no frontend was closed by this work.


M20 — rr.png root scoreboard exception and framed PP panel (jdc Nov2)
Status: IMPLEMENTED IN SOURCE — pending new build/native graphics/full QA.
The pictured root pause/period/pregame scoreboard hides bottom A/B/Start and
D-pad help; nested goalie/line/confirmation/statistics and main settings pages
retain contextual help. Restore native full-height window for that root only.
Power-play panel is nine cells/72px wide like the clock below, four rows19..22
with original clock corner/edge tiles; native club caption20 and countdown21.
Retire only its owned rectangle at native PP end/switch; preserve real team,
timer, penalty accounting, clock, shot/Momentum panels and palette.
Acceptance: open actual root screenshot with no help; opened PP images for both
clubs/units/Momentum, matching border/width, clean native expiry/pause return;
full native ABI/CCR/IRQ/VRAM scope and full fresh release matrix. Preview55 stays
open/unchanged while testing a separate candidate. Original rr.png copied/hashed
in private user-report-rr-20261102; no embedded ROM hash claimed.

M21 — Momentum below each team name in the lower-right score box (jdc Nov2)
Status: implementation pending; supersedes the earlier lower-left placement.
Dependency: preserve M20 root-no-help and framed PP panel. Two independent bars,
each directly below its actual team label; no overlap with names, actual goals,
clock, shot charge/speed, penalties, replays, Stars or native ticker. On uses the
existing signed live momentum, Off hides both bars. Preserve the existing event,
stat-scaling and difficulty behavior. Verify real natural-match value/pattern
changes with opened screenshots, both home/away mappings and On/Off; no claims
from static injected display values alone. Exact ROM/source and full release gate.

M22 — Main-menu bottom-button help legibility and extra final visual review
Status: screenshot captured/opened; investigating original native font selection.
Current55 mainmenu-original-text.png + paired state/capture manifest live at
.workspace/work/transfers-20261101/native55-mainmenu-text-20261102/ . Main-menu
help currently uses the larger normal-font map while adjacent native menu labels
use the small font. Compare native font selection/contrast before changing any
user frontend filter/config. Use the existing game fonts and explicit real-input
button labels. Open before/after original screenshots; inspect menu scrolling,
team/player-card changes and all prior help pages. jdc explicitly authorizes time
for an additional careful pass before release. Do not mark whole ROM approved
from focused UI checks or change the user's active frontend.

M23 — Allstar human-vs-CPU; Quickgame human-only (explicit revised jdc Nov2)
Status: implemented privately; focused native policy/input/flow/shootout checks pass.
Full exact-ROM release QA and final opened visuals remain; not publicly released.
Latest explicit request supersedes Allstar's former human-only restriction:
add1vsCPU with P1human/home and a genuinely CPU-controlled away Allstar team.
Keep all four existing human splits1v1/1v2/1v3/2v2, actual pad assignment and
blackAllstarA/redAllstarB uniforms. The same latest message explicitly requires
Quickgame to remain human-vs-human ONLY; this supersedes the earlier request
that added Quickgame1vsCPU. Current public/private Quickgame has that older CPU
option, so remove it from the new current Quickgame UI/flow under this policy.
Verify no CPU-only opponent choice in Quickgame, all four human split mappings,
Allstar real CPU ownership/decisions and match completion, all human options,
regular-team colours/season preservation. Update source, menu labels, tests and
release docs together. Real opened screenshots bound to exact release hash.

M24 — Refresh ALL current website game images after final features/release
Status: queued FINAL task. Dependencies: M20–M23 and all earlier requested
features implemented, exact final ROM and fresh shared QA/release checks.
Inventory every live page's game images/screenshots/thumbnail/CSS sources.
Replace outdated CURRENT presentation images with real final-version captures;
review captions/alt text and working image links. Include AllstarCPU option and
black/red uniforms, human combinations, transfers and restored native team
OVR/hot-cold presentation where relevant. Keep historical audit archives and
historical claims/images unmodified and correctly labelled. Bind new captures
to final ROM/hash and date; don't relabel old screenshots as new. Open actual
website screenshots desktop1440 and mobile390/320, verify crop/readability/
links and current download/version labels. Publish source/site/docs together
per existing release policy. This is implementation work, not just a plan.


## 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.
[Movie and exact coverage](../../video/) · [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.
