Repository navigation
device settings: find a game's settings by what they hold, and give back what is a save - #118
Open
ChakraFusion wants to merge 1 commit into
Open
ChakraFusion wants to merge 1 commit into
ChakraFusion wants to merge 1 commit into
Conversation
…ack what is a save The game database names the settings files of the games it knows (Liquid-co#84). For the rest, a file is now taken for a game's settings by its contents (presets/detectsettings.go): the vocabulary of one machine's display - resolution, vsync, shadow quality, upscaler - matched inside identifiers split at case changes and separators ("_enableFrameGeneration", "r_materialAniso"), in UTF-8 or UTF-16. Unreal Engine's Config/<platform> folder is taken by convention. Names only add weight, by how reliably the game database's own labels show them to mean settings: over its 16,700 settings and 9,000 save entries, "settings" names 1,521 settings files and 70 saves, ".ini" 1,831 and 137, so a name never decides on its own. A name with a save word in it rules a file out unless the contents are overwhelming; the game database's save locations are never taken, and nor are logs, binaries, long files that are only partly settings, or Syncthing's conflict copies. A file taken for settings that changes like a save is given back for good (verdict "save", which also overrules the game database): - before it is left out, and at every later run, the game's snapshots are asked whether it changed in most of the snapshots in which the rest of the save changed (snapshot/history.go); - while it is left out, every change here and every manifest another device sends count whether it changed when the rest of the save did; three such changes, outnumbering the times it stayed put, give it back (daemon/detectsettings.go). Detected files and verdicts are kept per game (migration 0042: settings_files, settings_observations, and marks for when each game was last judged) and applied through the device settings, so hashes recorded under the old list are carried over as before. The game's file list says why each excluded file is excluded, and unticking one there syncs it. The configuration tab's new text is in the catalogs (en, zh-Hans, zh-Hant). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@ChakraFusion is attempting to deploy a commit to the sivadaboi's projects Team on Vercel. A member of the Team first needs to authorize it. |
Collaborator
|
Thanks, the detection and the give-back checks are thorough. Two changes before we can merge:
|
This branch has not been deployed
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.
The follow-up #84 left out: settings files the game database doesn't list are recognised by their contents.
Detection (
presets/detectsettings.go):_enableFrameGeneration,r_materialAniso), in UTF-8 or UTF-16. Unreal Engine'sConfig/<platform>folder is taken by convention.Giving back what is a save: a file taken for settings that changes like a save is given back for good (verdict "save", which also overrules the game database):
snapshot/history.go);daemon/detectsettings.go).Storage and UI: verdicts are kept per game (migration 0042:
settings_files,settings_observations, andmarksfor when each game was last judged). They're applied through the device settings from #84, so hashes recorded under the old list are carried over as before. The game's file list says why each excluded file is excluded, and unticking one syncs it. The configuration tab's new text is in the catalogs: en, plus zh-Hans and zh-Hant as a first attempt for @Janlhin to correct.SyncIgnoreEditorisn't extracted yet, so its new labels are plain English like the rest of it.On my machine: 74 files in 25 games detected, among them Crimson Desert's, DOOM Eternal's and Elden Ring's settings, and 12 games the game database doesn't cover. None of them is a file the snapshot history shows changing with the save.
Tests:
presets/detectsettings_test.go,snapshot/history_test.go,daemon/devicesettings_test.go(TestObserveSettings_GivesBackWhatChangesLikeASave).Checks: the full unit and e2e suites pass locally on today's
dev-public.🤖 Generated with Claude Code