Generates a CRC-perfect pak0.pak compatible with Half-Life 1.0.0.5
Go to file
Marco Cawthorne 964f9556be
cmdlib.c: getwd change to getcwd.
2023-05-07 12:21:44 -07:00
games Installation should now (mostly) succeed with own Steam data files 2023-05-06 18:47:40 -07:00
sums Installation should now (mostly) succeed with own Steam data files 2023-05-06 18:47:40 -07:00
tools cmdlib.c: getwd change to getcwd. 2023-05-07 12:21:44 -07:00
.gitignore First revision of our scripted... thing 2023-05-06 13:37:28 -07:00
README Installation should now (mostly) succeed with own Steam data files 2023-05-06 18:47:40 -07:00
build_loose.sh Portability fixes, tested on OpenBSD. 2023-05-07 09:48:01 -07:00
build_pak0.sh Portability fixes, tested on OpenBSD. 2023-05-07 09:48:01 -07:00
build_tools.sh Portability fixes, tested on OpenBSD. 2023-05-07 09:48:01 -07:00
ccase.sh First revision of our scripted... thing 2023-05-06 13:37:28 -07:00
dl_sources.sh Portability fixes, tested on OpenBSD. 2023-05-07 09:48:01 -07:00
rip_sources.sh cmdlib.c: getwd change to getcwd. 2023-05-07 12:21:44 -07:00
start.sh Portability fixes, tested on OpenBSD. 2023-05-07 09:48:01 -07:00

README

Half-Life: PAK0.PAK generator


Legal Disclaimer:

The resulting pak0.pak is still under copyright by Valve Corporation.
It is for your own personal use, for use with Half-Life.
Do not distribute it under any circumstances!


Overview:

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.
The goal of this repository is to re-create the original pak0.pak
as was first present on the Half-Life 1.0.0.5 CD-ROM.

These scripts within are stripping the content straight from installers
of demos and other official, free downloads.

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.


Requirements:

- approximately 4 GB of disk space
- working C compiler
- GNU make (probably)
- wget
- magick/convert (as part of ImageMagick)


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.

If you want to use your local Steam Half-Life installation,
pass the HL_STEAM_INSTALL environment variable like so:
`HL_STEAM_INSTALL="/path/to/Half-Life" ./start`

The end result is placed into ./_build for you to copy wherever.


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

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:

Shell scripts in the root dir are CC0
ccase.sh was distributed by various Linux game ports, unknown author
tools/bmpfix/bmpfix.c 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


No warranties:

None of this comes with support, warranty or whatever.
Don't bother any individual, company etc. about this.
This is for your own personal use. Nothing more.