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.

External match preparation — development37

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.

This milestone ledger preserves development37/ABI15 preparation evidence. Current private API46/ABI21 expansion, accepted/pending scenarios and limitations are in LAUNCH-EXPANSION and MATCH-REQUESTS. Older current-at-capture statements below are historical.

Historical development37 preparation checkpoint; development38 adds public roster loading and direct Start. The implementation/evidence below retains its original stage scope.

October16,2026. The user authorized preparation for independent dynasty/career tools, including every setting on the team-selection Game Options screen. No community roster is available or required: this stage uses stock and generated fixtures. The implemented milestone prepares a matchup; roster loading and Start still use the original menu. Automatic startup/intake/direct launch and pre-tip identity binding remain next.

Implemented contract

API 0.2.0.dev37, HTTPv1, append-only snapshot ABI15; eventABI4, collegeprofile4/courtdefinition3 unchanged. Public contract, client example, roster authoring.

There are13 runtime controls: all nine Game Options entries (Difficulty, Game Style, Game Speed, Quarter Length, Fatigue, Injuries, Arena, Home Playbook, Away Playbook), plus both teams and both uniforms. Game Style applies the original preset transition and both slider banks. Team changes resolve native default uniforms; explicit uniforms follow team selection. Apply arena/playbooks after selecting participants.

GET /v1/preparation supplies current values, revisions and catalog identity. GET /v1/preparation/catalog?kind=teams|uniforms&start=N&catalog_id=... supplies at most64 rows per page. Select team-row:N and uniform-row:N from the current loaded catalog. Uniforms must share the selected team's graphics set; CAT entries are excluded. Writable teams are regular exhibition records with five valid distinct starters. The extension admits at most2048 teams/65535 uniform rows; this is finite, not a newly verified maximum game capacity.

Rows are not permanent external identities. Catalog generation detects native team/uniform-bank changes within a run; it is not a cryptographic roster-file binding. Legacy teams.side.id=team:N represents graphics-set ID; use row_id to select teams. Legacy game_style_code is a different raw options field; use values.game_style for the actual preset.

The independent SDK exports versioned JSON, validates all requested choices before a lease, applies guarded commands sequentially, waits for readback and preserves failure receipts. It checks run/catalog identity throughout. Earlier successful writes can remain after later failure. No atomic rollback, persistent save, automatic loader or placeholder launch is claimed. Open Quick Game before applying: availability does not identify the visible menu, and entering Quick from Home can reset native defaults.

The separate roster writer produces a new hash-bound ROS copy with roster order, starting situational lineup and native assigned-minute preferences. Membership remains unchanged; existing overriding rotation-table entries are refused. Minutes are preferences, not guaranteed substitutions. The source-only helper is not in the published editor ZIP/GUI. Format and usage.

College half duration still comes from exe-local openhoops/college-research.ini with the game closed. quarter_length_minutes changes the original quarter field, not HalfMinutes. No college-duration HTTP writer exists yet.

Exact candidate and verification

Frozen source44c manifest,124 native/API files, ZIP SHA256 710d8e8462a3162b80cca500042fdba8c363058b7870aacf7e552f9daa236592. Dell stage match-preparation44c; non-probe DLL SHA256 07d6e527c53dc4fd0adefe758088fc7c6091b7c3dee30f949f9ce0d682ea0f3e, MSVC19.51 /W4 /WX /O2 /MT. Explicit package-path assertions prevent use of an older installed broker. This private candidate has not replaced stable35 or public preview2.

  • 307 Windows API tests pass on exact staged dev37, including legacy decoding, catalogs, preflight, leases, ordered writes and failure receipts.
  • 30 compiled native checks pass. Original setting/team/uniform handlers execute; UTF conversion, default-uniform search and captured preset banks have documented mocks. The harness alone does not prove rendering, thread dispatch or SEH.
  • 116 Windows writer tests pass,101 existing plus15 preparation cases. Writer manifest, ZIP SHA256 2d87c4ee2c20c3fb71727a71156adaf4bf5fd0129c3cdb1e1538e4348b5a55dd; private reference inputs are separately retained on Dell and excluded from this source ZIP.
  • 35 schemas validate actual preparation/receipts/ABI15 gameplay and unchanged historical OT result. Historical result SHA remains 0941ccb920fb49ce0d7ee8714010d9d107987eea604e61d85707f387f0642f22.

Live44c used original NBA rules and an independent public client. All13 writes/readbacks passed:76ers–Bucks, alternates, New Orleans, Simulation, four-minute quarters, All-Star, speed51, fatigue/injuries off and Pelicans/Suns playbooks. Client result, options, arena/books. Read-only comparison matches all126 native preset values across both banks and preserves refresh/side state. One research Enter started the match; loaded court/uniforms and later gameplay show requested venue/uniforms and a running four-minute first quarter. This is short integration evidence, not a new full-match/export certification.

Live44e loaded generated Prepared905 through the original menu:905 teams/13,665 players/3,779 uniforms with template art, SHA256 971c764f4aa49b43751538b5f8b5bb0e0b01dda6d04f8dfd3392be130811ee72. The public client enumerated its catalog and selected final teams903/904 and uniforms3771/3776. Load confirmation, client result. After manual Start, native/API comparison matches every requested stored roster slot, four32/10-minute preferences and both five-player starting lineups. ABI15 reports zero errors, three-minute college half/one-minute OT/shot30 despite the separate five-minute quarter setting. This is match-start presentation, not a complete college game or substitution-schedule check.

Limits, failures and preservation

Quick Game3D uniform previews can retain the native default after API selection; the actual44c match used requested alternates. No preview-refresh fix is claimed. Generated teams reuse artwork/attributes; real community roster/custom-asset acceptance is unavailable, not a prerequisite. The inherited arena/playbook wire catalogs remain limited to128 rows each; exceeding either makes preparation unavailable. The905-team fixture reuses compatible existing venues/books and does not prove800 distinct arenas. Automatic intake must check these limits or extend those catalogs deliberately. Automatic loading/orchestration, exact rotations, college-profile writes, pre-tip binding, extra-field native consumption and direct launch remain separate work. Legal possession/live-ball state, universal events and safe asset hot-swap remain unfinished.

Rejected44b preserved two useful failures: embedded Python ignored PYTHONPATH and imported the old installed API; a compiled fixture exposed an incorrect player stride. Accepted source uses explicit sys.path assertions and stride0x1E4. A legacy fixture reused sample1 and was correctly ignored; corrected fixture uses sample2. Early schema validation named nonexistent CommandReceipt; accepted validation uses Receipt. These failed attempts are not accepted evidence. Logs/old source and DLL hashes remain unchanged.

Runs were intentionally stopped, not observed crashes. Final state44f verifies95 original saves, stable35/originalEXE, fixture hashes, no game/debugger/API listeners and both hosts alive. Cleanup removes six completed preparation tasks after action/idle checks; older idle ultrawide tasks remain untouched. No new publication, stable35 upgrade, agents, recurring automation or Mac build/test/dependency installation occurred. Builds/tests/game ran on Dell; Mac work was editing/storage/SSH/RustDesk control.