Repository navigation
Recognize the Steam 6.483 tune benchmark - #185
Merged
Merged
Conversation
Tune Performance results are read through an exact-build profile of three vtables and seven code guards. Steam moved to 6.483.970.0 on November 5 and had no profile, so the Performance tab asked every player to refresh. The 6.483 profile was established from a read-only capture of the running game: vtables matched by class hierarchy, slot layout and unwind data, and all seven guards byte-identical to the 6.461 reader with address operands masked. SHA-256 values are of the live 6.483 bytes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tune Performance results (the game's 60 mph, 100 mph and braking benchmarks on the Tune screen) are read through an exact-build profile: three vtables and seven code guards. The newest profile is for Steam 6.479.874.0 (#177); Steam moved to 6.483.970.0 on November 5, so the Performance tab currently tells every player on the current build to refresh.
Change
A Steam 6.483.970.0 profile in
NativeTunePerformanceProfiles, selected by the executable's exact identity (version, length, SHA-256 and image size), and aTunePerformanceTeststheory mirroring the 6.479 one.How the values were established
From a read-only capture of the running 6.483 game (the executable on disk is mostly encrypted, so file analysis is not possible):
.?AVbases kept), object offset, slot count and slot layout, with per-slot code or unwind-data equivalence and an exact local.rdatashift shared with neighbouring vtables. Root page 0x6F1F698 (182 slots, only hierarchy match), tune page 0x6FA4AD0 (174 slots), benchmark 0x6422F48 (19 slots).NativeTuneLayout.VerifyGuardshashes.NativeTunePerformance.TryReadis vtable-checked, so a changed layout makes the read return no result (the behavior on the current build), not a wrong one.Verification
TunePerformanceTests(new theory) passes locally; the whole tune-related selection passed on the 2.7.4 integration build.