OPENHOOPS / 2K14Final team archive · November 9, 2026Reference libraryChecksums

Dated source reference. Current release status: handoff state. Full original relative paths are in the developer archive.

Native per-team coaching — development47 / ABI22

Current extension: Match controls51 completes the three planned additions: game-clock rotation intent with native entry observations, original native timeout calls and connected-input/team assignment.510 Windows API tests/84 schemas and focused live52w/52za/52x pass; multi-controller physical input remains unverified because no gamepads are available. This closes the planned match-control implementation, with that hardware verification outstanding. Presentation, broad modding/rule semantics and public packaging remain separate. The earlier evidence/version paragraphs below remain their recorded checkpoints; consult the new ledger for current implementation and exact limits.

Current development50/ABI25 is in external game flow. Startup-coaching checkpoint retained below. Development49/ABI24 added live coaching, defensive configuration and owned pause; the earlier live-action limitations below describe development47.

October17,2026. The user accepted coaching expansion and clarified that no new client application, repeat launch campaign, presentation work or roster-art validation is requested. The launch tests use external public-SDK scripts, not a dynasty GUI. Artwork belongs to the roster team. Existing rare-rule/full-game deferrals and public-package boundaries remain.

This checkpoint's private source is API0.2.0.dev47/HTTPv1, snapshotABI22 (67828bytes), eventABI4, collegeprofile4/courtdefinition3. Frozen source48za archiveac020a51ad81914c72a0c8679adc8ccd8102471759acd686e4986aa4d23a20c1 identifies171 inputs. It passes452 exact-source Windows API tests. All57 non-Markdown native inputs match compiled48u, DLL0ce3673f4ab3a847fa498c8d8cf728093d0606ae91b60387f561487b8a32f520, built with MSVC19.51 /W4 /WX.244 compiled-wrapper/original-handler instruction cases pass. Final48za changes only API catalog capability gating relative to the live48u source; the native artifact and coaching application code are identical.64 canonical schemas validate14 live scenarios, current coaching state/settings/plans, command receipts and unchanged historical results;42 original DB/WAL/SHM hashes remain unchanged because schema checks use disposable copies.

Client contract

Place optional coaching under launch_configuration.settings in an app-owned request, or under settings in a standalone --match-config. Each side accepts any subset of named integer settings. Omitted settings retain native defaults. This example selects automatic substitutions using the original Rotation method:

{
  "version": 1,
  "rules": {"profile": "college", "half_length_minutes": 10, "media_timeouts": 4},
  "settings": {
    "coaching": {
      "home": {"substitutions": 0, "substitution_method": 1},
      "away": {"substitutions": 0, "substitution_method": 1}
    }
  }
}
Setting ID Native integer choices
timeouts 0 Auto;1 Manual
substitutions 0 Auto;1 Manual
substitution_method 0 Fatigue;1 Rotation
playvision 0 All Plays;1 User Plays Only;2 Off
playvision_display 0 Lite;1 Full
playcall_messages 0 Show All;1 User Plays Only;2 Off
offense_playcalling 0 Auto;1 Manual
defense_playcalling 0 Auto;1 Manual
late_game_fouling 0 Auto;1 Manual

home/away are team sides, separate from slider User/CPU banks or stored controller slots. Discover labels/ranges and current state through GET /v1/settings: coaching_catalog and coaching.teams.home/away. Snapshots and observed deltas carry the same native state. Invalid observed values are null. The startup catalog at GET /v1/launch/settings reports coaching support according to the attached ABI; older hooks advertise false and the original264-entry maximum. ABI22 adds18 optional coaching entries to the existing264-value batch, raising its maximum to282. Native camera remains independent of that count.

The broker checks OpenHoopsCoachingVersion=1 without loading the DLL before creating a requesting child, then requires ABI22. A complete requested batch must read back at the managed full-clock opening scene before reveal. startup_settings includes coaching in requested/applied counts and failures. Whole college/original rule profiles remain separate; this does not add arbitrary rule overrides or disk persistence.

Native implementation and verification

Original menu descriptors, localized formatters and complete native increment/decrement handlers identify each per-team field. The adapter enters an original handler after its controller-to-side prefix with an explicitly validated side in ECX. Complete handler byte guards prevent execution against modified code. It preserves native transitions without changing input ownership, navigating menus or replacing them with arbitrary field stores. ABI22 appends76 bytes after the67752-byte ABI21 prefix; older producer reads remain compatible.

Live48w passes college10/media4, all264 earlier presets plus18 coaching values,2k camera, CPU participation, phase4 IDs and natural phase10 clock598.8500. Live48x passes original two-minute quarters, primary-away participation, all18 reversed home/away coaching values, broadcast camera, phase4 IDs and phase10 clock118.9168. Both opening observations are phase4. Every requested coaching value remains correct during play, adapter errors are zero and product startup generates no input. Owned cancellation and exact isolated-save restoration pass. These are startup/early-play checks, not full-game or perceptual AI certification.

Source48p passed451 API tests but a native instruction case caught reversed numeric transition directions for the two three-choice settings. Corrected48u passes all244 native cases and451 API tests; final48za adds older-ABI startup-catalog gating and passes452. Initial static scans needed a cursor correction and an optional data-path correction. All failed attempts remain evidence. No user input, new GUI, community installer, agent delegation or Mac build/test/dependency was used.

Remaining scope

There is no live coaching command, queued substitution API, exact rotation schedule, defensive matchup setter or new guarantee of an AI effect for every setting/mode. Native minute preferences and Rotation mode do not guarantee an exact substitution schedule. Auto/Manual remains the original coaching configuration and does not grant a human-only action to a CPU side. Native presentation work stays deferred; original HUD/quarter labels remain.

The candidate stays isolated from stable35 and public previews. Historical packages and hosts are unchanged. Final48zc preservation at20:54:10UTC closes both game/broker runs, removes their two exact-body/idle tasks and restores the exact pre-research98-file isolated baseline; all95 original reference saves remain separately protected. No further test app, full-game watching or packaging is a prerequisite. See the receipts under coaching48, reversed sides, native cases and frozen source.