ref: 216c1ae66ef6967d1a470a431418241c001c708b
dir: /README/
qk1 - (9) quake =============== - based on linux/x11 code from original release - setup: . mk install . mkdir id1 . cp /n/quakecd/id1/*.pak id1/ . run from same dir... - unfinished and very buggy (both shitty new code and badly ported old code) - sound works, but is glitchy and reduces FPS quite a bit - cdaudio, networking: PORTME - assume high resolutions don't work well and are very crash prone (e.g. > 800x600) . exit with: Hunk_Alloc: failed on ... => not enough memory (default 8M); ->use [-mem megabytes], e.g.: % qk1 -nosound -mem 10 . if window size < physical screen size, swipe mouse super fast to exit the window (bug in mproc()) . actually, I've seen only two points where it segfaults, and it's fairly constant - resolutions under 320x240 don't seem to work - don't use -winsize, -width, -height; just resize the window (bugsbugsbugs) - mouse is grabbed using m_windowed cvar . open console (~) . type m_windowed 1 (can autocomplete w/ tab) . setting now saved in id1/config.cfg - official expansions (rogue and hipnotic) work fine, mods could too - tested on 386 and amd64 only (works ok on a pentium 4) - the point of THIS port is to make it work on plan9, and be portable across cputypes on plan9, which justifies some more intrusive changes (but is a bad justification) some params useful for workarounds ---------------------------------- -nosound -nostdout -mem %d (-noudp) (-winsize %d %d) (-width %d) (-height %d) port notes ---------- - 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 - Sys_Warn added again for print(2) stuff in *_9.c that uses %r, kind of stupid since Con_Printf was often used there, and it outputs to both fd=1 and console, so needs fixing - m_freelook, as a quick hack to have (reversible) free mouse look - vid_9.c: shitty, can probably improve performance a bit without screwing code - snd_9.c: maybe writes to /dev/audio should be on another proc? - *printf -> *print was stupid - m_freelook is sort of useless, can just type +mlook in console, but that isn't saved on exit; maybe there's a better way bugs present in linux/x11 (w/ my workaround for amd64) ------------------------------------------------------ - compile with PARANOID -> MSG_WriteByte complains about range error and exits. no idea why. - new game while already ingame -> front falls off . most of the time: exits with R_RenderView: called without enough stack . sometimes: goes batshit on the console (->press y again and quit normally, etc.) - compile with BAN_TEST -> net_dgrm build fails - sprites/particles not scaled on high resolutions - mouselook was completely fucked; still is somewhat . when paused, if _windowed_mouse 1, can still look around with the mouse, even if world is frozen - fp exceptions galore - high resolutions -> casts Anxiodepressive Disorder on user - resizing to smaller window -> no. - resizing several times -> no. - seemingly random crashes on startup (fp?) todo/issues ----------- - net_9p.c - cd_9.c,net_udp.c,net_dgrm.c: actuallyport - snd_9.c, vid_9.c: lousy - plan9-like install (lib/quake rather than cwd), manpages - caps lock == Kctl (← kbdfs, notanissue?) - 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? - sys_9.c: proper P9 use (style) - rewrite everything to use plan9 style? (ocd) - g '/\* FIXME' - port quakeworld and utilities +/- merge common code and mkmany - Sys_Error printing %r systematically is stupid legal ----- Quake, hence qk1, is licensed under the GPLv2. See COPYING for details.