Those of you Linux users out there may be happy to know that version 2.0.5 of HLLib has been completed with full native Linux support. To install it, simply download the source and follow the instructions to build the shared library and executable (HLExtract). Many thanks to Michael Mohr for orchestrating the port.

I'll look into it, but I don't see anything special about 1 GB. File mapping is not dependent on the amount of memory you have but the amount of virtual memory you have (which should be sufficient as long as you have a modern OS, e.g. Windows 2000 and up). I don't really recommend Quick File Mapping for files larger than 100 MB.

I use your GCF defrag on a regular scheduled basis on our 70+ PCs across our internet cafes - each with 105 Steam controlled games and counting! (~90GB) It has made a real difference in the load times - thankyou so much for this excellent util.

What is quite annoying however, is when a GCF's integrity is broken - for whatever reason (machine crash, schedule expires, etc) - I have to trawl around the PC's individually repairing them.

Is it possible (AT ALL) to add an additional option to HLLIB to verify integrity of a GCF? I assume that when Steam is next run, it will then pick up the pieces and download/repair the file as required - much as it does following a manual integrity check.

I am using HLLIB 2.0.11, and notice it has a validat item switch (-t), which althougth I have not tried exhaustively, doesn't not appear to be a package integrity validation option, but I could be completely missing the point of this switch.

With Valve chucking out more frequent updates and more games this would be of the greatest benefit to myself and all other internet cafes.

Many thanks indeed for any help you're able to give

Yupo
ps I apologise if you read my earlier release of this post, I just hadn't looked around the rest of your website to see it was still being updated as recently as Aug08

The validation options calculates the checksums of the files in the specified folders and checks to make sure they match the checksums in the .gcf header. It can be used to see if the files within the .gcf file are corrupt, but does not check if any of the .gcf file's headers are corrupt.

You can use -t root to validate all the files in a .gcf. HLExtract could then be modified to return a non-zero return code if a file fails validation (it does not currently do this). It would also be possible to modify HLLib to check header checksums.

Many thanks for your quick reply - your knowledge of GCF's is incredible.

If I'm understanding you correctly it sounds as though there is a second step required, following confirmation that a GCF is 'corrupt', and that is to invoke a re-download of the missing/corrupt pieces - or maybe re-invoke Steams own Integrity check, which in turn kicks off the download.

I have no idea whether any of that is possible, whether Steam exposes the "verify GCF integrity" API which could be batch scripted, or whether HLLIB can mark the GCF as 'dirty' and invoke the engine for redownload.

If however, the only outcome of this is to be able to create an output log per PC of GCF's which are corrupt, based on an errorlevel >0, then I only have to redo those listed.

If any of this is possible, it would personally save me days of manually verifying integrity which I'm having to do following the installation of a 'bad' drive controller which occasionally failed to write correctly under heavy load (such as a GCF defrag!)

Since my last email Valve have released several more titles to internet cafes, taking the total to 109games, 97GB of SteamApps data!