=================================== =================================== GCFScape BY: RYAN "NEMESIS" GREGG =================================== =================================== =========================== Program/Author Information: =========================== ---- General Program Information ---- Date : November 25th 2004 Author : Ryan "NEMESIS" Gregg Title : GCFScape Build : 1.2.5 Email address : ryansgregg@hotmail.com Home page / Website : http://countermap.counter-strike.net/Nemesis ---- Program Construction Information ---- Written In : C++ .NET ============= Requirements: ============= OS - Windows XP - Windows 2000 - Windows ME - Windows 98 - Windows NT - Windows Server 2003 CPU - 90 MHz Intel Pentium Class Processor or Equivalent RAM - 32 MB of RAM (96 MB recommended.) ==== FAQ: ==== Q. When I launch GCFScape I get the following error message: "The application failed to initialize properly (0xc0000135). Click ok to terminate the application." A. GCFScape is written in C++ .NET and such as requires the .NET runtimes to run. See the following link for more information: http://www.microsoft.com/downloads/details.aspx?FamilyId=262D25E3-F589-4842-8157-034D1E7CF3A3&displaylang=en Q. When I launch GCFScape I get the following error message: "A required .DLL file, MSCOREE.DLL, was not found." A. GCFScape is written in C++ .NET and such as requires the .NET runtimes to run. See the following link for more information: http://www.microsoft.com/downloads/details.aspx?FamilyId=262D25E3-F589-4842-8157-034D1E7CF3A3&displaylang=en Q. Are GCF files compressed archives? A. No. Q. What are GCF files then? A. GCF (Assumed to stand for Game Cache File) files can best be compared to a virtual file system not unlike FAT or other common file systems. The virtual file system supports meta data, file fragments, checksums and other minor features. GCF files are the backbone of Steam's content delivery system. Q. Why do I have to close Steam to open a GCF file? A. GCFScape uses a technique called file mapping to directly access data in a GCF file as you would data in memory. This is a useful technique because it means GCFScape doesn't have to read tons of data into memory to read a GCF file and it can read a GCF file without having to seek all over the place. Because Steam opens GCF files in read/write mode and is liable to change the contents of any GCF file at any time, GCFScape requires that you close Steam. If Steam was open and it changed the contents of a GCF file while it was mapped, GCFScape would become unstable and likely crash. Q. When I open a package I get the following error message: Failed to open file. A. GCFScape requires strict read rights to a package file to maintain stability. Make sure the package file is not open in any other program including Steam. Q. When I open a GCF file I get the following error message: Invalid GCF version number (vX). A. GCFScape does not know how to read the GCF file version you are attempting to open. This could be because it is an old GCF file version that I haven't yet added support for (due to the fact that I don't know what the format is) or a new GCF file version that a recent Steam update produced. Either way let me know. Q. When I open a package I get the following error message: Corrupt file. A. GCFScape will display this error when it maps a package file to memory only to find there is not enough data in the file for the resulting map. This may or may not mean your file is corrupt but almost certainly means GCFScape would crash it continued to load your package file. Q. When I open a package I get the following error message: Failed to map view of file. A. GCFScape will display this error when the system call MapViewOfFile() fails. This can happen on older operating systems with primitive virtual memory management. As a work around you can disable File Mapping from the Options menu. Q. When I press the Extract button, a Browse for Folder dialog appears but there is no directory tree to allow me to select a folder. A. There is an unfortunate bug with the .NET framework that causes this dialog to operate incorrectly. This is a pretty rare occurrence, but there is a workaround: 1. Close GCFScape. 2. Open the gcfscape.cfg file, located in your GCFScape directory, in notepad. 3. Set the GCFScape.ExtractDirectory argument to a folder on your hard drive such as C:\. 4. Open GCFScape and extract your file. Q. When I extract a file I get the following error message: "Error writing [filename] (File contains no physical data to write)." A. This error occurs when you attempt to extract a file that has no physical data associated with it. This is a file that exists in the directory tree but which Steam has not yet downloaded. Use Steam to make sure the file is fully acquired. Q. How do I create a GCF file? A. As of yet, not enough is known about the GCF file format to programmatically create one. There are still plenty of unknown fields that need an understanding before a GCF file can be created. That said there is also no guarantee that creating a GCF file is all that is needed for Steam to recognize and make use of it. Some other registration might be required and may not be possible without hacking Steam. For these reasons I have no plans to add the ability to create a GCF file. Q. How do I modify a GCF file? A. The purpose of the GCF file is to make it easy for Steam to update Valve's software. When a new version of a program (say CS) is released, all Steam has to do is look in the CS GCF file and compare versions (hashes) of each file to determine if each file needs to be added, updated or removed. Because of this, if you were to modify a file, Steam would interpret this as meaning that the file is out of date and redownload the correct version of the file. Steam does, however, provide an interface to add or overwrite a file. To add or overwrite a file simply place it in the corresponding directory in the Steam\SteamApps\[EMail]\[GCF File] directory on your hard drive. You might have to create the appropriate subdirectories. Q. Will GCFScape be able to create or modify GCF files in the future? A. Not likely. ================== Program Changelog: ================== v1.2.5 - Added Verbose console output mode. (Slows down extracting.) - Added disable file mapping option. - Incomplete files are now grayed. - HLLib improvements. v1.2.4 - Added tool bar. - Added address bar. - Added back, forward and up buttons. - Added support for back and forward mouse buttons. - Encrypted files are now grayed. - Other GUI improvements. v1.2.3 - HLLib fixes. v1.2.2 - Workaround for .NET FolderBrowserDialog bug. - Forced garbage collection. - HLLib fixes. v1.2.1 - Added support for BSP packages. - Double clicking a file shell executes it. - Added ability to look up extensions in registry. - Fixed HLLib initialization bug. v1.2.0 - Reprogrammed to use HLLib. - Added support for PAK and WAD packages. - Column headers can sort listbox items. v1.1.6 - Altered file mapping algorithm to map small blocks instead of one large one. - Added checks for invalid Windows directory names. v1.1.5 - Removed Beta status. - Added property form. - Removed 'Local Copy' column. v1.1.4 - Added support for version 3 GCF files. - Added new panel in status bar which displays the GCF version number. v1.1.3.1 - On error, useful GCF file data is dumpped to "dump.txt". v1.1.3 - Figured out GCF versioning and added support for versions 5 and 6. - Improved error handling. v1.1.2 - Modified the program to allow it to work with a Steam update (June 21, 2004). v1.1.1 - Modified the program to allow it to work with a Steam update (June 16, 2004). - Added 'Local Copy' column. If true a local copy of the file should exist on your hard drive. - Added 'Go To Directory' button. This will allow users to find the directory a search result is located in. v1.1.0 - Added the ability to search for files within a GCF file. - Added extraction progress bar and abort button. - Added the ability to select and extract multiple items in the list box. - Extracting several items no longer visually locks up GCFScape. - GCFScape now remembers its position, window state and last extraction directory. - Fixed bug which cased crash when shell executing a file without a default application. ============================== Program Copyright-Permissions: ============================== LICENSE Terms and Conditions for Copying, Distributing, and Modifying Items other than copying, distributing, and modifying the Content with which this license was distributed (such as using, etc.) are outside the scope of this license. 1. You may copy and distribute exact replicas of GCFScape as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of GCFScape a copy of this License along with GCFScape. You may at your option charge a fee for the media and/or handling involved in creating a unique copy of the GCFScape for use offline, you may at your option offer instructional support for the GCFScape in exchange for a fee, or you may at your option offer warranty in exchange for a fee. You may not charge a fee for GCFScape itself. You may not charge a fee for the sole service of providing access to and/or use of GCFScape via a network (e.g. the Internet), whether it be via the world wide web, FTP, or any other method. 2. You may not modify your copy or copies of GCFScape or any portion of it. 3. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to copy, distribute or modify GCFScape. These actions are prohibited by law if you do not accept this License. Therefore, by copying or distributing GCFScape you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing and modifying GCFScape. NO WARRANTY 4. BECAUSE GCFScape IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR GCFScape, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE GCFScape "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK OF USE OF THE GCFScape IS WITH YOU. SHOULD GCFScape PROVE FAULTY, INACCURATE, OR OTHERWISE UNACCEPTABLE YOU ASSUME THE COST OF ALL NECESSARY REPAIR OR CORRECTION. 5. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MIRROR AND/OR REDISTRIBUTE GCFScape AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE GCFScape, EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.