# Allstar mode — native teams, selection, hooks and qualification

## Native Allstar teams — 2026-11-01-r7

**ALLSTAR MODE** uses the same human-only 1v1, 1v2, 1v3 and 2v2 flow as Quickgame.
Two virtual teams contain 52 unique players selected by the actual native
zero-hot/cold overall calculation: best 6 G, 16 D, 10 C, 10 LW and 10 RW. A,B,B,A snake
allocation within each natural position gives each team 3 G, 8 D, 5 C, 5 LW and 5 RW,
with 8 valid native lines. Base attributes, names, portraits and critical-shot
ratings follow the real selected players. Ordinary 32 club records stay intact.

Allstar A/B replace inherited city-title bitmaps. Team overall is the floor of the mean of all 26 actual native zero-hot/cold player overall values (82/82); ordinary club ratings remain unchanged. Allstar A wears all-black uniforms and Allstar B wears all-red uniforms, in both native uniform banks. Original rink/centre-logo artwork remains. Native AI teammates fill
other positions; there is no entirely CPU opponent option. All four human
splits, B/Y control and actual pad rotation in tied-OT shootouts are checked.

All **106 mandatory suites pass** on this exact ROM and **339 hashed sources**. The entire matrix executed freshly. Independent rebuild, exact R6 rollback, six fresh matched controls and original-base IPS reconstruction pass. **36/40** ordinary 600-frame scenes are raw-exact to fresh R6; every difference and the complete older comparison chain remain recorded. No new Hard win-rate claim. Physical USB hardware and subjective play feel remain manual tests.
No new Hard win-rate claim. Transfers and the original overall/hot-cold screen
remain dependent work, not implemented by this release.

ROM SHA256:<code style="overflow-wrap:anywhere">6e66c0afe2496eb3f6a688c29888ca62b17aee0b0f51efec96d11dce5e842b31</code>; CRC32:`9F6EBE75`.
See [actual selected rosters](ALLSTAR_R7_ROSTERS.json), [exact QA](QA_STATUS.json), and
[opened native screenshots](../../audits/allstar-r7-20261101/).

## Actual native ranking

The 832 original ROM slots are evaluated through native FA9F8 and native integer
percentage conversion with zero per-match hot/cold. The independent implementation
matches all 832 originals plus 52 selected copies. Native masks1FBA/1B0F select
skater/keeper attributes, with native FAB1C/FAB2C weights and per-stat integer
rounding. Weight and handedness are not rating inputs. The native at-least100
normalization is retained; rankings use displayed overall, unrounded native raw
score and NHL identity as deterministic tie-breakers. Overall is not copied from
an external modern rating website. Actual examples include Sorokin 99,
MacKinnon 99 and McDavid 96.

The original catalogue has 831 unique NHL identities across 832 records: NYR
contains both generic-F Gabriel and RW Gabe Perreault with the same identity.
The specific-position alias is preferred; no identity appears twice in Allstar.
Top 52 are split by position using A,B,B,A snake allocation. The summed native
overalls are 2153 / 2143. Complete actual names, positions, original ROM UID and
ranking values are in [ALLSTAR_R7_ROSTERS.json](ALLSTAR_R7_ROSTERS.json).

## Native implementation and unchanged club data

RAM F850 exactly1 enables Allstar only with Quick F84C exactly1 and native
season-view F06C zero. Fixed clubs0/1 resolve to virtual records 22D000/22D800;
ordinary base32 roster and photo pointers remain byte-identical. Native cached
team pointers, player names, attributes, portraits, lines and critical ratings
use the actual selected records. The three keeper counts are also supplied to
strict shootout rules, keeper offence and season-accounting guards. No Allstar
season/budget/save format is introduced. Existing season records remain intact
through Allstar and returning to Full/Light/Mini.

Helper22C000 exports enter/leave, all actual native team/portrait/critical/keeper
pointer getter forms and the cached city-title renderer. Tables22C800/22C880,
critical ratings22C900, keeper metadata22CC40, source UIDs22CD00, selected photo
associations22E000/22E0A0. Previous club IDs are backed up in F858/F85A; F852/F854
belong to the existing passive controller observer and are not reused.
The city-title entry8078 tail-jumps to a wrapper preserving the native caller's
stack, coordinates and registers. Active Allstar draws its actual A/B name using
the native font; inactive modes replay the original prologue and bitmap renderer.
All actual getter patch sites are exported in the public hook/hex comparison.


```sh
build_test.py --legacy-allstar --version 2026-11-01-r6
```
 reconstructs the exact
released R6 parent <code style="overflow-wrap:anywhere">49c8b23b940a9c5368580dfcad11626a3ffbd4a51cdcae10ca8c9ce01f642487</code>.
Separate source trees are used for independent rebuild, rollback and each of
six matched AI controls. Original-base IPS is reconstructed and compared fully.

## Qualification and retained findings

All 106 tests are mandatory: all 103 prior tests plus allstar, allstar_flow and
allstar_shootout. No thresholds or historical comparisons are removed. The new
suite checks52 unique identities, native ranking884 records,16 natural-position
lines, actual portrait/Crit links,8320 getter GPR/SR/IRQ/SP/guard/full-RAM contexts
and two active negative controls, third-keeper accounting and actual native
human-pad ownership/input. All four human splits complete real native end/exit/
season-return and tied-OT shootout paths. Declared clock, puck and parked-actor
fixtures are identified in the screenshot manifest; results and pad ownership
are generated by the native engine. These are not human playtests.

Private prototypes are retained: an early menu fallthrough skipped Quickgame
when moving right from Shootout. Explicit conditional branch fixed that code
bug; unchanged navigation/setting assertions then pass. Visual review caught
cached ANAHEIM/BOSTON city bitmaps despite correct roster text; native-font A/B
titles replace them. A keeper metadata inspection additionally routed both
keeper-accounting consumers to the correct3-keeper Allstar table. Final evidence
must bind to the released hash, never those older prototypes.

Known inherited issue QG-V01 remains: the compact Stars score after tied-OT
shootout retains the regulation tie; the full final result shows the decider.
Allstar A black/B red uniforms replace ANA/BOS jerseys; rink/logo artwork remains; the actual team labels are Allstar A/B.
Physical USB pads/adapters, four-person simultaneous play and play feel require
jdc's manual test. Transfers and original pregame overall/hot-cold restoration
are the next separate dependent features.

## Final requested uniforms and native team overall

Allstar A wears all-black uniforms; Allstar B wears all-red uniforms, replacing
the inherited ANA/BOS uniforms as jdc requested. Both native home/away palette
banks are changed only inside the virtual Allstar records. Helmet, shirt, pants
and cloth use black/grey or red shades; skin and neutral/skate entries remain.
The 32 ordinary club records and original fixed rink, goal and physical-star
palettes are unchanged. Actual cold-boot ANA/BOS match screenshots show their
original orange and white/gold uniforms. Allstar match pictures show black/red,
also in the faceoff inset and benches; images were opened and reviewed.

The native Matchups page originally read a fixed original-club team rating.
Allstar now shows the floor of the mean of its 26 actual native zero-hot/cold
player overalls:82/82. The original 32 club ratings remain unchanged. The native
FE172 entry tail-jumps to guarded Allstar helper+76; table22CD68 contains these
two values. A separate actual-native52-player calculation and1280 complete
GPR/SR/IRQ/CCR/SP/guard/all 32ordinary-club contexts independently verify it.
This is separate from later restoring the original overview in season modes.

## Retained prior candidate failures

An earlier complete106 matrix on private candidate8d11… passed104 and failed
two tests; its report/logs remain published as QA_R7_PRIOR_FAILED_106.json and
QA_R7_PRIOR_FAILED_LOGS.md. Penaltys50% live coverage found only two eligible
fouls, both admitted. Extending only that natural-input observation60000 to
180000frames gave17 eligible decisions (13 admitted,4 suppressed) and preserved
the exact original60000-frame event prefix. Every original decision/RNG/ABI/
storage/menu assertion remains. No positions, fouls, queue, RNG or results were
injected by that input test.

The older AltGoalies first-match lifecycle fixture failed to complete its
native final-goal scene by the original16000-frame deadline. Its declared
uncontested scene had parked only the away keeper. It now explicitly parks
all actors, still using native puck crossing/scoring/ending/saving rather than
writing results or games played. All original deadline, option-lock, native
header and checksum assertions remain. The exact old incident cause is not
claimed proved. A focused30-case menu/lifecycle run passes, and the ENTIRE106
matrix was then freshly repeated on the final black/red/overall-corrected ROM.
No prior candidate successes were imported. Logs: [QA_R7_LOGS.md](QA_R7_LOGS.md).
