shithub: qk1

ref: a63d5778cb72c91bf1b14aaa4453a0239cc4a823
dir: /README/

View raw version
qk1 - (9) quake
===============
	- setup:
		. mk install
	- to install quake (shareware or registered):
		. mkdir $home/lib/quake/id1
		. cp /n/quakecd/id1/*.pak id1/
	- to install an expansion or compatible mod (zB rogue):
		. mkdir $home/lib/quake/rogue
		. cp /n/quakecd/rogue/*.pak $home/lib/quake/rogue
	- sound is glitchy with higher resolutions (see snd_9.c)
	- cdaudio, networking: PORTME
	- high resolutions work up to 4096x4096 (arbitrary limit in r_shared.h)
		. by default, quake uses a 8MB heap, which will be insufficient for higher
		resolutions → crash/exit with "Hunk_Alloc: failed on ..."
			→ use [-mem MB], e.g.:
			; quake -mem 24
		. resolutions under around 328x160 don't work, possibly because
		menu text isn't scaled down, or something
	- mouse is grabbed using m_windowed cvar
		. open console (~)
		. type m_windowed 1 (can autocomplete w/ tab)
		. setting saved on exit in id1/config.cfg
	- tested on 386 and amd64 only (works ok on a pentium 4)


some params useful for workarounds
----------------------------------
	-nosound
	-nostdout
	-mem MB
	(-noudp)


port notes
----------
	- based on linux/x11 code from original release
	- pr_strings: assumed 32bit pointer arithmetic: use PR_GetStr() instead of
	  dealing with it directly; may be ass
	- global cppdefotomy, removing code seen as useless for plan9
	- vid_9.c: shitty, can probably improve performance a bit without screwing code
	- *printf -> *print was (mostly) stupid
	- removed some of the command line parameters
		. -winsize, -width, -height: just set the window dimensions with rio/rc
		. -condebug: can just redirect with rc to same effect


todo/issues
-----------
	- compile with PARANOID -> MSG_WriteByte complains about range error and
	  exits. no idea why.
	- leave running for a couple of hours -> sound dies and eventually, invalid
	  write/reads -> crash
	- compile with BAN_TEST -> net_dgrm build fails
	- sprites/particles not scaled correctly on high resolutions
	- m_windowed 1: can still look around in frozen world when paused
	- m_windowed 1: mouse can still escape, causing glitchy mouse look
	- net_9p.c
	- cd_9.c,net_udp.c,net_dgrm.c: actuallyport
	- manpages
	- ungrab mouse when entering console or menus a la games/doom (IN_Grabm())
	- cleanse *_9.c from linux legacy
	- linking errors with -T cflag
	- fix potential fp exceptions in code rather than ignoring them?
	- g '/\* FIXME'
	- port quakeworld and utilities +/- merge common code and mkmany


legal
-----
Quake, hence qk1, is licensed under the GPLv2. See COPYING for details.