New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Verify Integrity of Game Cache ignores filename capitalisation #577
Comments
Had two users in group chat have this problem so far after copying Team Fortress 2 from their Windows library to their Linux one, its a case issue so verification didn’t highlight the problem. Though, like Issue #123 it might just be labelled unsupported.
|
I've noticed some oddities when downloading Half-Life (Beta) and Psychonauts in the Linux client where the case of some directories that Steam creates does not match that in the manifest files. I'm not sure if this is a mismatch within the manifest files or something else, but it certainly makes things... interesting. Let me know if any of this belongs in a new bug report. Left side is the filename on disk, right side is the capitalisation from 3840_3963299974783782956.manifest: Psychonauts/documents - Documents Half Life is a bit more interesting since it has multiple manifest files with contradicting capitalisation: Half-Life/platform/Resource My script isn't explicitly looking for these kind of contradictions, so there may be others that it didn't pick up. |
Bumping this as steam cloud also seems to remove capitalization which obviously on other operating systems doesn't matter. Cloud saving on Dust : An Elysian Tail is broken as a result. |
This seems to also seems to be an issue when receiving updates to games. Within the past 6 months or so, I've had two games (Crypt of the NecroDancer and Grim Fandango Remastered) have filename case changes which weren't propagated to my Linux game cache. In both of these cases, it resulted in game breaking behaviour. I see that this issue was marked as assigned over a year ago. Has there been any progress with getting it fixed in the client? |
Filesystem space issues due to this bug. Dual booting and sharing game library folder creates duplicated files with different case in Linux even though they were updated in Windows. Windows sees only the one file but the file system knows the other case mismatched file exists. Storage space is being mishandled and used when it shouldn't be. Dual boot SteamOS likely will have similar issues. |
@CoolSilver sharing a library between Windows and Linux is not recommended - for some games it works OK, but others had issues if the same files exist in both Windows and Linux depots with differing content causing them to require updates whenever switching OS. It is reasonable to copy the Windows install to a separate Linux library (or vice versa) to reduce redownloading identical files though, with the caveat that the filenames from Windows may not have the correct case (hence my check_acf.py script to fix them). |
It's a bit late to mention it, but this bug wreaked havoc with Firewatch's launch. It allowed a filename case change to the binary to slip under the radar, and resulted in users being unable to play for several hours while we tried to work out a nice solution that wouldn't trigger an entire re-download of the game for Linux users ( we couldn't find one ). |
The Living Dungeon also hit this issue during Linux testing. The developer also claims that at some point, the case of files in the depot unexpectedly changed between build uploads. |
Is this addressed by yesterday's client update? I don't have anything that I can specifically test to confirm with. |
That change only had to do with launch configurations, not SteamPipe depots, sorry. |
No probs! Hope this can still get addressed at some point in the future. |
Just hit this when upgrading from the Proton version of Lethal League Blaze to the native port. |
Hey, developer of Dicey Dungeons chiming in here just to say that this affected us on our last update too. (I searched the issues list and this looks like the right place to post this, apologies if not) The exact thing that happened was:
Hope this can get fixed! |
Verify Integrity of Game Cache will claim that all files successfully verify even if some of the filenames have the incorrect case. This may happen under certain circumstances when copying the files off a filesystem that is not case sensitive, such as ntfs or vfat, or when those filesystems have been mounted with certain options (e.g. lowntfs).
For testing, this script can be used to recursively rename all files in a directory to lower case: https://raw.github.com/DarkStarSword/junk/master/steam/breakcase.py
I also have written a script that can rename all the files to the correct case listed in the .manifest files, announcement here: http://steamcommunity.com/app/221410/discussions/0/846941710185740762/
For example:
After running the above breakcase.py script on the Osmos directory, I get the following error when trying to launch it:
Yet running verify integrity of game cache still reports "All files successfully validated"
If I then rename osmos to Osmos and osmos.bin32 to Osmos.bin32 and launch the game it does launch, but all the graphics are messed up - lots of quadrilateral shapes are drawn on the screen, but no text is drawn and it is impossible to work out what is going on - essentially Osmos can't find it's textures. Running my abovementioned check_acf.py script with --rename then allows Osmos to work properly again.
I would propose that the verify integrity of game cache feature is extended to rename files to correct any capitalisation issues in a similar manner to my check_acf.py script.
There may still be some edge cases if the filesystem that SteamApps is mounted on is case insensitive (such as using mount -t lowntfs instead of mount -t ntfs3g).
The text was updated successfully, but these errors were encountered: