ref: a6ffb6a8ffefb4806f659ae05d730eaa6f486191
dir: /README/
qk1 - (9) quake =============== port of linux/x11 quake to plan9front. tested on amd64 and 386 only. currently lacks networking. save for a rare crash and some stupid bugs, it works and plays reasonably well. on my machines. installation ------------ besides building and installing qk1, you still need .pak files to play. both shareware and registered versions (should) work, as well as the official expansions, and mods. the data files are to be installed in $home/lib/quake/$gamename, where $gamename is 'id1' for plain old quake. % mk install % mkdir -p $home/lib/quake/id1 % cp /n/quakecd/id1/*.pak $home/lib/quake/id1 % quake qk1 reads /mnt/cd/[au]NNN files as in cdfs(1) to play music. the directory needn't be populated by cdfs(1), so long as the files are in the format described by audio(3). this currently requires the use of mixfs(1). installing an expansion or mod, for example rogue: % mkdir $home/lib/quake/rogue % cp /n/roguecd/*.pak $home/lib/quake/rogue then start with: % quake -game rogue todo/bugs --------- - udp/ip, plan9 style - sound: don't require mixfs and fix soundbuffer write race - crash in d_sprite.c:D_SpriteDrawSpans after several hours of looping the demos - resolutions other than 4:3: some vertical and horizontal strips on the edge of the screen aren't drawn - console print recently screwed anew; console color print still screwed up (printf/print differences) - #define PARANOID reveals several points of failure that are otherwise ignored - (?) sprites not scaled correctly on higher resolutions - screenshot code outputs garbage - more testing, cleanups and bug fixes (g '/\* FIXME') - (bjnh) bring asm for 386/amd64 back - (bjnh) style(6) - (bjnh) make it run super fast on a pentium 2 - (bjnh) redesign everything to be super cool (e.g. pakfs, console shit, args, etc.) differences with x11/linux original release ------------------------------------------- - no fullscreen; screen resolution is just the window's dimensions; any resolution (under the r_shared.h limits) is allowed; resize by dragging window edges; removed -winsize, -height, -width - some stupid kbd/mouse bugs fixed; mouse grabbing actually grabs the mouse - removed -condebug, -nostdout: useless in plan9 (and unix?) - added m_windowed cvar (replacing _windowed_mouse), for mouse grabbing - ungrabs the mouse when main menu is accessed - removed -record, -playback: broken and unused - removed -sndbits, -sndspeed, -sndmono - removed -cddev -nocdaudio; cdaudio is just reading files - removed cd [on|off|reset|remap]: not quake's problem shitty workarounds and other bullshit ------------------------------------- - #pragma pack for stuff (structs) loaded from files - pr_strings assumed 32bit pointer arithmetic, so enter PR_GetStr(), which completely sucks - text and code seen as useless for plan9 nuked from orbit (cpp defs, etc.) - arbitrary resolution limit (r_shared.h): 2048x2048 (was 1280x1024), which inflates e.g. a bunch of arrays in the code - mouse handling is too heavy, all for the purpose of not letting the mouse escape the window too easily (and the kludged up shit could probably be done better) - removal of stdio stuff probably not really warranted and possibly introduced bugs legal ----- Quake, hence qk1, is licensed under the GPLv2. see COPYING for details.