# Match and completed-season menu audit — 2026-10-28-r6

Requested by jdc on 2026-10-28. No ROM, installed save, controller mapping or
running RetroArch session was changed. Tests ran headlessly in Genesis Plus GX
with private batteries and the exact released ROM:

`526ae0fd082774a83ca5f74b87b11e638d298f2a672d2a6974fd57d224339c35`

## Executed coverage

| Check | Result and scope |
|---|---|
| Shared release matrix | All 28 checks rerun and passed; current ROM/source hashes validated by run_release_checks.py. Includes four-pad controls, goalkeeper requests, OT/shootouts, settings locks, intermissions, replay preference, AI, HUD and a full Hard CPU game. |
| Complete first matches | Three new CPU matches: Full/Normal 1–4, Light/Hard 1–2 in OT, Mini/Easy 1–0. No injected scores, shortened clocks or fabricated result credit. |
| Postgame menus | All ten entries in each of Full, Light and Mini: Game Stats, Player Stats, Scoring Summary, Penalty Summary, Team Roster, Season Standings, Crowd Meter, Player Cards, Scoring Leaders and Period Stats. All 30 entered the native modal, returned to the selected menu item and reached the next distinct-club fixture. Season data and checksums retained. Native screenshots inspected. |
| Entire league schedules | Native Simulate Match selected through controller input for all 84 + 31 + 8 rounds. All 123 rounds checked for games played, result totals, GF/GA, scorer totals, assists, shots and battery checksum. These are simulated league matches, not 123 manually played games. |
| Actual season endings | Full and Mini missed the playoffs in these runs. Light qualified and played all four single-game playoff rounds to a native Cup win, using CPU play without score/clock edits. All three actual saves reached See Old Season, See Results, Scoring Leaders and Back to Main Menu; statistics stayed unchanged. |
| Main-menu Restart | Full/Light/Mini Restart labels, confirmation, cancellation and confirmed reset passed. Cancel retained the complete battery; confirm cleared only the selected slot. Full/Mini used the actual completed runs; Light used the shared prepared championship fixture. |
| Other completion outcomes | The shared finished_season suite reran all nine prepared Full/Light/Mini × eliminated/champion/missed cases, including review, cancel, reset and a distinct-club first match. These are prepared end-state cases, not nine newly played entire seasons. |

## Test limits and diagnostic attempts

Scripted native inputs do not constitute physical-controller testing. Full and
Mini were not played through an entire native playoff tournament in this audit;
their playoff rules and outcomes were covered by the shared fixtures and tests.
Standalone modes were covered by the shared navigation/controller/OT tests, not
by a new full tournament in each native mode.

Early private fixed-frame probes were rejected: the native postgame sequence
plays other-game highlights between menu input windows, and a main menu can
have valid state before its fade-in completes. The final private audit waits
for actual modal entry, return and completed main-menu fade. Those earlier
diagnostic failures are not counted as passing checks or as confirmed game
defects. The private test states retain their matching copied batteries; a
core savestate alone is not a replacement for the battery file.

No new game defect was confirmed in the executed coverage. This is not a claim
that all possible play sequences are bug-free.

## Evidence

Private directory: `work/menu-audit-20261028-171435/`.
`qa/qa_report.json` contains the new 28-check receipt. `audit_report.json`
contains supplemental results and audit-script SHA256 values; screenshots,
commands, batteries, states and logs remain private. The public
[QA_STATUS.json](QA_STATUS.json) includes both the exact-source shared receipt
and supplemental audit summary. Current ROM version remains r6.
