It’s a happy day for me when I learn something new about Quake — or any classic game, for that matter. My fresh factoid for today: a seemingly unused image in Quake‘s data files that actually plays an important role in running the game.
Copy protection, or DRM, has come along way since 1996 (though some might argue not by much), but back in the day, games resorted to simple methods, good enough to fool the average user.
With Quake, id Software used the presence of a file in the game’s “PAK” data archives, to determine if the user’s copy was registered or shareware. A tweet from developer Joshua Skelton revealed its existence to me.
QUAKE FACT: Quake verifies registration using a proof of purchase file. What is in this file you ask? A little Quake symbol. Thanks to @ericwa for tipping me off to this. pic.twitter.com/LRh87ULi7I
— Joshua Skelton (@JoshuaSkelly) August 8, 2018
Now, this wasn’t just discovered in 2018; take this GitHub wiki page from 2014 on the PAK format, which explains the file’s purpose:
Quake 1 specifics on PAK files (content wise). If the file /gfx/pop.lmp is present and contains a Quake logo (extract from your own pak1.pak file), Quake considers the game as registered, otherwise it’s a shareware. If it’s shareware, the ending screen in end1.bin is displayed (character, screen buffer colour format). If registered, end2.bin is displayed.
And if the file doesn’t exist? The game just won’t start, going by a quick Google search.
I still have my old copy of Quake installed (I was a veracious modder and QuakeC coder during my teenage years and it’s somehow survived in my backups over the years), so verifying the file’s existence — and contents — was easy.
Sure enough, I cracked open PAK1.PAK and in the “gfx” folder, I found a lone graphic: “pop.lmp”. Here’s what it looks like, opened in a hex editor.
As you can see, it’s the same as that from Skelton’s tweet.
It’s stuff like this that makes me want to be a full-time game archaeologist… I’m just not sure if it’s a good enough career to pay the bills.
@JoshuaSkelly [Twitter]
Leave a Reply