Skip to content

Continue Steam SDK 1.65 API migration - #1095

Draft
ywgATustcbbs wants to merge 1 commit into
ReactiveDrop:feature/sdk-1.65-compatibilityfrom
ywgATustcbbs:task/steam-sdk-pr1088
Draft

Continue Steam SDK 1.65 API migration#1095
ywgATustcbbs wants to merge 1 commit into
ReactiveDrop:feature/sdk-1.65-compatibilityfrom
ywgATustcbbs:task/steam-sdk-pr1088

Conversation

@ywgATustcbbs

@ywgATustcbbs ywgATustcbbs commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

This is a follow-up to #1088 and is intentionally based on its head branch.

Steam SDK 1.65 migration update

Progress

  • The follow-up implementation is consolidated into one commit on top of the PR head base 574e27fbf3dd228e347d21e60ae430867f0cee3c: 6742f4d1d6300ea98ea71111a3372019ca80659e.
  • The original PR branch could not be updated directly because upstream rejected the push with HTTP 403. This follow-up uses my fork branch task/steam-sdk-pr1088.
  • Phase 4: 46/46 packages reached final independent PASS.
  • Phase 5: one canonical solution-level Release|Win32 Rebuild completed with exit code 0 and 0 errors. The new SDK #else path and the x86 Steam SDK 1.65 steam_api.lib link were verified. The deployable build outputs are exactly client.dll, server.dll, and missionchooser.dll.
  • Warning closure: 88,542 total warnings across 13 codes; 88,416 were policy-ignored; 126 retained events at 121 locations across 10 codes. All retained warnings were legacy or external-SDK warnings; migration-attributable/actionable warnings: 0. No warning-driven source fixes were needed.

Change classification

The following ledgers overlap and are not additive. They should not be interpreted as a three-way file/line/code-block count, and there is no trustworthy non-overlapping count for “rewritten compatibility logic” versus “simple call fixes” versus “verbatim copies”.

  • 25 semantic compatibility/design-change records (A=6, B=19). This is a design-matrix count, not a count of files, lines, or code blocks.
  • 9 API branch substitutions already present in PR compatibilty for steam interface v9 #1088: 3 RequestCurrentStats, 5 user RequestUserStats, and 1 dedicated-server RequestUserStats. These remain covered by callback/pump/teardown review and are not claimed as fully accepted simple fixes.
  • 1,086 new defensive wrapper units for business Steam calls, covering both changed and unchanged calls. The unchanged-only subset was not separately aggregated, so no trustworthy unchanged-only number is claimed.
  • 4 pre-existing guarded units (CB-01 through CB-04) retained from the PR structure.
  • Total unique defensive-wrapper scope: 1,090 = 1,086 + 4. This wrapper ledger is not an additional rewrite count.

Key user decisions

  • Preserve the PR's old/new conditional structure.
  • Guard every in-scope business Steam accessor, method, global function, and callback registration explicitly with the STEAMAPPS_INTERFACE_VERSION008 old/new branches, including calls whose API did not change.
  • Preserve the macro expression as-is. Its origin was intentionally not investigated; no extra version detection, fallback, or second ABI was introduced.
  • Build and link only the new path. The old path is mirror/static-review-only and remains Not built by user decision.
  • Treat the patched engine.dll and external steam_api.dll as runtime inputs. Their provenance, ABI, and package relationship are deferred to runtime validation.
  • The build result is one unified Release gate, not nine independent builds.

Manual smoke testing

Verified by user:

  • Game starts normally.
  • In-game inventory works.
  • A self-hosted lobby can be created and played for approximately 30 seconds without an observed problem.
  • Leaderboards are visible.
  • Lobby list is visible.

Not yet verified:

  • Long-duration stability, a full level, and repeated map transitions.
  • Joining another player's lobby, invitations, leaving, and reconnecting.
  • Dedicated-server operation.
  • Inventory asynchronous completion, cancellation, error handling, and map-end behavior.
  • Full stats, achievements, and player-reporting callback flows.
  • Workshop/UGC, friends/presence, input, HTTP, and Steam Deck/Proton coverage.
  • Clean shutdown/reinitialization and failure paths.
  • Runtime logs/crash dumps and engine.dll/steam_api.dll provenance and ABI validation.

Phase 6 therefore has partial smoke evidence, but is not a complete runtime PASS yet.

@ywgATustcbbs
ywgATustcbbs marked this pull request as ready for review August 23, 2026 22:03
@ywgATustcbbs

Copy link
Copy Markdown
Contributor Author

Most of the missing tests are long term tests / tests that I can't perform by myself. So I mark this pr as ready for review.

@ywgATustcbbs
ywgATustcbbs marked this pull request as draft August 25, 2026 12:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant