DarkStarSword Jan 3, 2013 @ 11:52pm
Announce: Tool to check acf filename capitalisation consistency + more
Hey all,

I've written a python tool to compare the files that should exist for any game using the .acf format with what is actually on disk listing any discrepancies it finds and optionally fixing them.

It can:
- Note games that do not currently have any active manifest files
- List files that are supposed to exist but don't
- Show discrepancies in the capitalisation of files compared to what they are listed as in the manifest files, and optionally rename the files to match (with --rename).
- List any files in the game directories that are not managed by Steam (with --extraneous), and optionally remove them (with --delete - use with caution!)

This is NOT a substitute for using Steam's verify integrity of game cache. For one, it doesn't know how to verify the file checksums (anyone know what algorithm they use?), and secondly it can't go and fetch any missing manifest files (It tells you what to do in that case).

I wrote this script because I copied a bunch of games from my Windows install of Steam over to Linux and was concerned that the capitalisation on some of the files would not match what the game was expecting since Windows is not case sensitive but Linux is. Running verify integrity of game cache from Steam may not be sufficient as it ignores filename case (EDIT: Bug reported https://github.com/ValveSoftware/steam-for-linux/issues/577), but that is no guarantee that the games all do the same.

This also allows me to easily delete all the extra Windows files that the Linux version does not use (*.exe, *.dll, etc), and purge any extra files that games may have created in their directories (e.g. log files).

You can find it amongst my junk code (It's steam/check_acf.py):
git checkout git://github.com/DarkStarSword/junk.git

Alternatively you can download the individual files from here if you don't want to use git (note: ui is a symlink, be sure to grab the contents from the second URL):
https://github.com/DarkStarSword/junk/tree/master/steam
https://github.com/DarkStarSword/junk/tree/master/python/ui

If you run it with no arguments it will process ~/.steam/root/SteamApps/appmanifest_*.acf. Otherwise you can pass it specific acf files to analyse.
Last edited by DarkStarSword; Jan 6, 2013 @ 8:44pm
Showing 1-2 of 2 comments
< >
DarkStarSword Jan 6, 2013 @ 7:09pm 
Another thing that this script is useful for is noticing when a game that has been throwing a "missing executable" or "invalid app config" error actually makes a release. If you have the game "installed" (with all it's 0 files ;-) Steam doesn't seem to automatically update it when it is released proper.

But, run this script and it is immediately clear that there is an installed game that is missing all it's files and then it's just a simple matter of running verify integrity of game cache from Steam to prompt it to start downloading.

I ran it today and discovered that The Polynomial now has files.

EDIT: Bug reported here: https://github.com/ValveSoftware/steam-for-linux/issues/576
Last edited by DarkStarSword; Jan 6, 2013 @ 8:41pm
gutigen o) Jan 6, 2013 @ 8:33pm 
Great idea, rly... especially that part with coping game files from Windows install and creating more bugs/errors. Just don't do that, problem fixed.
Showing 1-2 of 2 comments
< >
Per page: 15 30 50
Date Posted: Jan 3, 2013 @ 11:52pm
Posts: 2