Half-Life: PAK0.PAK generator This repository contains scripts to generate a pak0.pak of Half-Life that is identical to the one that ships on all original disc pressings, when it still talked to the World Opponent Network online service. The Steam releases got rid of .pak files altogether, because they (at one point) switched to .gcf archives. Since the SteamPipe update, all files are now completely loose and enforcing file consistency is impossible for source ports. These scripts within are stripping the content straight from installers of demos and other official, free downloads. This will only build you a pak0.pak file that will pass server purity checks so that you can play multiplayer via source ports and things. This will not grant you a complete install of Half-Life. This will not allow you to play Half-LIfe on Steam or by itself. We will still have to improvise where other loose files come from. I've found some good substitutes. If you want it to be truly authentic, please find a 1.0.0.5 or Game of the Year disc pressing of Half-Life and rip the data yourself. Sources: Half-Life: Uplink (web installer) Half-Life Patch 1.1.1.0 (English) Half-Life: Opposing Force - Standalone Demo Half-Life SDK v2.3 Setup Steam Installer with Half-Life Cache Requirements: - approximately 4 GB of disk space - working C compiler - GNU make (probably) - wget - magick Getting started: Run `./start.sh` and wait a few minutes. Make yourself some tea/coffee. If you want to speed up the process, get these files off your NFS/NAS: hl1110.exe hl_sdk_v23.exe hluplink.exe opfordemofull.exe, steaminstall_halflife.exe ...and place them alongside this README file. Script explanation: ./build_tools.sh builds bmpfix, {hl,pak}extract, qfiles, rewise and places them into ./_bin ./dl_sources.sh (no args) downloads and sha512 checks the install files. ./rip_sources.sh (no args) extracts the files, and does trickery to make 2 bad-CRC files work ./build_pak0.sh [gamedir] will read games/[gamedir]-pak0.sha256 and assemble the pak0.pak ./build_loose.sh [gamedir] will read games[gamedir.sha256 and finds other desired loose files ./ccase.sh fixes case sensitivity issues the end result is placed into ./_build for you to copy wherever. All the directories prefixed with '_' can be removed, as they're created by the scripts. Thanks: Xylemon - for being the top dog that kept motivating me and for delivering pizza onto my desk Theuaredead` - for lots of research and pointers on where we can acquire data sets and files CYBERDEViL - for blessing us with REWise, a sane wise installer extractor HeteroChromia420 - for bothering me for years in regards to the content purity mess Valve - I know you don't love HL1 anymore, but thanks for bringing it into this world License: Scripts in the root dir are CC0 ccase.sh was distributed by various Linux game ports, unknown author tools/bmpfix is CC0 tools/gpl-quake/ contains GNU GPL V2 code. Dependency licenses: hllib is GNU LGPL 2.1 hlextract is GNU GPL V2 pakextract its own permissive (ISC-styled) license REWise is GNU GPL V3 Need help: None of this comes with support, warranty or whatever. Don't bother ANYONE about this. If you want to improve script compatibility or whatever, feel free to reach out.