shithub: qk2

Download patch

ref: 7c0675ccfd6cf7c7d37be11f86ecb11c363b0962
parent: 1f5f4dd3f933e0b5f39aeb9052740337d9ea0c0b
author: qwx <>
date: Fri Jun 1 10:07:31 EDT 2018

amend README

--- a/README
+++ b/README
@@ -14,11 +14,11 @@
 directories. neither players (for single play) nor video are mandatory. all
 filenames should be lowercased.
 
-% mk install
-% mkdir -p $home/lib/quake2/baseq2/^(players video)
-% cd /n/quake2cd/baseq2/
-% cp *.pak $home/lib/quake2/baseq2/
-% for(i in (players video)){ dircp $i $home/lib/quake2/baseq2/$i }
+; mk install
+; mkdir -p $home/lib/quake2/baseq2/^(players video)
+; cd /n/quake2cd/baseq2/
+; cp *.pak $home/lib/quake2/baseq2/
+; for(i in (players video)){ dircp $i $home/lib/quake2/baseq2/$i }
 
 
 quake2 mods
@@ -25,38 +25,28 @@
 -----------
 quake2 mods are C code built as shared libraries (called "game modules"). here,
 the code will have to be ported to plan9, adapted to qk2, then built and loaded
-against it. this repo contains the code for the official ctf mod; how to build
-and use it is explained below.
-for the rest of this file, let $mod the name of a mod. the data for the mod is
-to be stored in $home/lib/quake2/$mod/.
+against it. this repo contains the code for the official ctf mod, the two
+expansions, and a mod. for the rest of this file, let $mod the name of a mod.
+the data for the mod is to be stored in $home/lib/quake2/$mod/.
 
 
 installing a mod
 ----------------
-in general, to build a mod, the only things that need to be altered are the
-contents of game/, mkfile, and adding a mk.$mod file. game/ contains $mod's
-source code for its game module (assuming the rest is implemented by qk2).
-mk.$mod contains TARG (for installation), and a list of object files to
-compile, and of headers (cf. mk.ctf for an example). mkfile includes the
-mk.$mod to build everything in one step. for example, to install ctf (and its
-data files from the cd):
+a makefile is provided with each mod. "baseq2" is the main game.
+for example, for ctf:
 
-% bind -bc ctf game
-% ed mkfile	# output elided
-,s/<mk.baseq2/<mk.ctf/
-w
-q
-% mk install	# copies $OS.out to $home/lib/$objtype/q2ctf
-% mk clean
-% unmount game
-% mkdir $home/lib/quake2/ctf
-% dircp /n/quake2cd/ctf $home/lib/quake2/ctf
+; mkfile -f mkfile.ctf install
 
-ctf can then be started with e.g.:
+or:
 
-% q2ctf +set game ctf +set ctf 1
+; bind mkfile.ctf mkfile
+; mk install
 
+each mod is built as a library, later linked to the rest of the common code.
 
+; q2ctf +set game ctf +set ctf 1
+
+
 porting a mod
 -------------
 in the case you wish to play a mod which has not been ported, and have nothing
@@ -73,7 +63,7 @@
 from mod to mod. as such, a mod is required to have $mod/game.h, which defines
 anything necessary for common code to work.
 
-you'll also need to write mk.$mod (cf. mod installation instructions above).
+you'll also need to write mkfiles (cf. mod installation instructions above).
 
 
 todo/bugs
@@ -83,7 +73,6 @@
 - edict_t definitions merged without much looking
 - sys.c: stupid posixish glob stuff
 - udp.c mostly horrid; need to rewrite networking stuff to use plan9 semantics
-- portme: cdaudio
 - garbled stdout (Sys_ConsoleOutput): \r instead of \n
 - cinematic palette is fucked up if you resize during playback
 - sound only (sortof) works thanks to shitty workarounds; in particular, sound