Yesterday, I was working on a blog post about Halo 4. It’ll be posted soon.

Yet, there was one very minor detail that caught my attention while writing it. It seems that in Halo 4, one of the new features the old-timers find incredibly annoying is the instant respawn. They say it fucks up spawning and as such pro playlists shouldn’t feature instant respawn. (It wasn’t in Halo 2, so fuck progress, right?)

I don’t mind it. Because the first FPS I played even marginally seriously was Quake. And Quake features instant respawn, right? Didn’t screw things up then, shouldn’t screw things up now, right? If there’s anything wrong in Halo, it’s the way the spawn points are chosen, but there’s nothing really wrong with instant respawn as such.

Or wait. Did Quake have instant respawn? Dammit, it’s been such a long time! Better go check it out!

I originally copied Quake data files for Linux off of my Windows 95 install back when heaven was new. I installed the game on DOS/Windows, ran some games on Windows side just because my ISDN connection didn’t work on Linux at the time, and was happy. At some point, I just tested this shit on Linux too.

Quake DM6 on QuakeSpasm

(Pictured: Quake level DM6: The Dark Zone. Side note: I’ve also tried to remake this level in Halo 4 - you can currently grab an unfinished version off of my fileshare. Just plug in WWWWolf as gamertag in fileshare search and off ye go. I’ll be adding more features at some point.)

Years later, I bought Quake III Arena. This time, it’s a release that was made specifically for Linux. It’s in a frigging ammo box. One of those iconic game boxes, I guess.

Various Quake engines run just fine on modern Linux systems. iD Software has always supported Linux pretty well, just not as their immediate concern. Originally you had to download proprietary Linux binaries and figure out how to get the data files to the Linux side somehow.

Still, the thing about Linux binaries is that they don’t necessarily age well. Linux relies pretty heavily on shared libraries on system side, and those things get upgraded. So if a piece of software isn’t maintained properly, things break. It’s one of the reasons why Linux geeks prefer open source software: if old binaries fail to work, you can always recompile the thing from source code to work on modern systems. If something fails there, you can even try fixing it yourself.

Anyway, the original Linux binaries are long, long, long busted. However, it’s been ages since the Quake source code was released. Another cool thing about iD Software games: they release their old engines as open source. Doom 3 was the last engine to get this treatment and we all hope RAGE gets the same treatment eventually.

So, in the open source era, alternative engines have become the accepted reality. I’m kind of flabbergasted to notice that QuakeForge was updated this year to 0.7.2, and I have no idea why I have 0.5.5 installed as Debian packages. Where the fuck did I get these?

Still, Debian does have modern Quake engines packaged. Much to my surprise, I noted that DarkPlaces, one of the most awesome Quake engines, has been added to Debian. Debian itself seems to primarily recommend something called QuakeSpasm, which is apparently based on FitzQuake.

Now, I know DarkPlaces is basically a really cool combination of various experimental features and staggering modernity. You can get Doom 3 -esque shadows and real-time light effects and HDR Bloom and can use ginormous texture packs other shit that makes all modern graphics cards weep.

But don’t ask me what’s so special about QuakeSpasm and FitzQuake. I don’t know. =)

But the important thing is, there are several Quake engines now and they’re still maintained to this day. Nothing to worry about in Linux land.

The funny thing is, Quake III Arena’s original Loki Games binary runs just fine these days, because it was one of the last games they released before going out of business. (Funkily enough, Sid Meier’s Alpha Centauri, the last game they released, doesn’t work without extensive tweaking and supplying old libraries through its nose.)

But I decided I should give ioQuake3 engine a shot. The only thing is that it doesn’t do PunkBuster, so there’s less protection from cheaters. But if Halo has taught me anything, I’m sometimes badass enough to beat the aimbot bastards anyway. (…okay, I’m actually a little bit terrible at Quake so this could be an issue.)

And it’s also fun to note that Debian now has something called game-data-packager. Basically, you can install your open source game engines straight off Debian, then use this tool to make Debian packages, straight off game CD-ROMs.

The only problem with game-data-packager is that the documentation is spotty. Here’s a blog post that specifies the exact steps needed to repackage Quake and Quake III Arena stuff. I had no idea that the parameters for “mount poit” and “point release” had to be specified in that order. Okay, Now it’s clear.

After installing Darkplaces and QuakeSpasm, I wanted to build data packages for Quake. I ran into some rather… obscure error messages.

% game-data-packager quake -m /mnt/cdrom   
/usr/share/games/game-data-packager/supported/quake: line 147:
  /usr/local/bin/lha: Tiedostoa tai hakemistoa ei ole
...

File not found? What.

Okay. Turns out the script isn’t running /usr/bin/lha (Debian’s packaged version of the Weird Japanese Compression System From Back When Heaven Was New™), but /usr/local/bin/lha. Which doesn’t exist.

% ls -l /usr/local/bin/lha 
-rwxr-xr-x 1 root root 44808 heinä 25  1997 /usr/local/bin/lha*

What the fuck. It does exist.

% /usr/local/bin/lha 
zsh: tiedostoa tai hakemistoa ei ole: /usr/local/bin/lha

headscratching What is this I don’t even…

% ldd /usr/local/bin/lha
        linux-gate.so.1 (0xb7780000)
        libc.so.5 => not found

Ah, well, I should have known.

See??? A Linux binary from 1997 probably doesn’t run quite adequately on a modern-day system. Especially if it depends on a long-unsupported shared library that was gloriously deleted a couple of years ago.

% file /usr/local/bin/lha 
/usr/local/bin/lha: ELF 32-bit LSB executable, Intel 80386, version 1
(SYSV), dynamically linked (uses shared libs), stripped

…I’m just surprised it’s an ELF binary and not a fucking a.out binary.

# cd /usr/local/bin/
# chmod a-x lha
# mv lha lha.fuckingold

Preserving just for the sake of historical interest. Okay, now we’re talking.

% game-data-packager quake -m /mnt/cdrom
WARNING: Warning: your files are from an old version of quake, more 
  recent mods may not work correctly.

What’s wrong with the original Quake CD-ROM release, dammit? Get off my fucking lawn.

After downloading ioquake3, Quake III Arena was easier to handle, but required me to redownload the Linux point release. Unfortunately, iD Software’s FTP server has gotten a little bit slow by today’s standards and I downloaded the thing at amazing speed of 22 kilobytes per second.

After having a few issues with disk space, game data packager did its job just fine. The only problem is that I don’t have the Quake mission packs and Quake III Team Arena as CDs and, last I checked, Steam doesn’t install on Debian unaided.

% ls -lh
yhteensä 480M
-rw-r--r-- 1 wwwwolf users 457M elo   10 14:40 quake3-data_33_all.deb
-rw-r--r-- 1 wwwwolf users  23M elo   10 14:18 quake-registered_33_all.deb

I suppose this is just an indication that video games tend to grow in size over time…

Shit I’d never think I’ll do:

# quake3/uninstall 
rmdir: failed to remove "/usr/local/games/quake3/baseq3":
  Hakemisto ei ole tyhjä
rmdir: failed to remove "/usr/local/games/quake3": Hakemisto ei
  ole tyhjä
Quake III Arena has been uninstalled.
# rm -rf quake3

Tested DarkPlaces quickly. Unfortunately no video - I assume the settings are screwed.

Or it could be that DarkPlaces just quit working on old-ass Nvidia cards while I wasn’t looking. Or my setup is screwed up otherwise. glxgears runs a bit slow and glxinfo says I don’t have direct rendering. (…though I think that’s just what Nvidia drivers always do. They don’t give much damn about Linux kernel DRI, they just do their own shit, right?)

Onward to QuakeSpasm - works pretty well. The only annoying thing about it is that it doesn’t seem to believe in the normal Quake demo loop.

I even copied the QuakeForge single-player savegames. I’ve been working on completing this game for decades so if the savegames din’t work, that would have been tragic.

I don’t have screenshots, but I suppose the game engine output log tells all you need to know:

Loading game from /home/wwwwolf/.quakespasm/id1/s0.sav...

FITZQUAKE 0.85 SERVER (51103 CRC)

The Tower of Despair
Using protocol 666
Couldn't find a cdrip for track 8
WWWWolf was smashed by a Shambler

How about Quake III Arena? Actually, that was a little bit of a tragic case…

Q3A: DAMN!

…but I found some, um, a little bit obsolete settings in there.

Q3A: Well, new games just assume no one has this...

I did play a few bits of the Q3A singleplayer. Yep, I could frag some bots pretty well.

Q3A: Fraggery!

Q3A: predictable victory

And what was I supposed to write about again? Oh yeah, instant respawns. Yeah, Q3A has them.