summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-07-30games/doom: display correct message on medkit pickup when health low (thanks ↵cinap_lenrek
qu7uux) due to a typo in p_inter.c:P_TouchSpecialThing(), a message that is supposed to show up when the player picks up a medikit while low on health (< 25), is never displayed. the check for low health is done after the health is already increased, so the condition is never true. a cosmetic bug in all old doom executables that also seems interesting to fix. to test: compare message displayed when picking up a medikit with and without the patch
2015-07-30games/doom: fix ouchface not being shown when it should be (thanks qu7uux)cinap_lenrek
due to a typo in st_stuff.c:ST_updateFaceWidget(), doomguy mistakenly never looks shocked when taking more than 20 damage, but rather when he gains more than 20 health while being hit. this is a cosmetic bug in all old versions of doom's executables, but it seems appropriate to fix. simple test: fire a rocket at a nearby wall, taking enough damage.
2015-07-30games/doom: add bug compatibility switches (thanks qu7uux)cinap_lenrek
these emulate bugs present in select versions of the released doom executables. they are required to correctly play demos recorded with these but affect the gameplay, so should be otherwise disabled. -nobounce: lost souls don't bounce off floors and ceilings like intended due to a misplaced check; this is fixed from ultimate doom on, but doom and doom2 are still affected. -noztele: in final doom 1.9, things' altitude was erroneously not set to the floor's height after teleporting. this was fixed in later versions of the executables. examples of desyncing demos: (plutonia.wad, without -noztele) http://doomedsda.us/lmps/946/2/30pl2646.zip (doom2.wad, without -nobounce) http://doomedsda.us/lmps/945/3/30nm2939.zip
2015-07-30games/doom: fix switch textures swapping in ultimate doom (thansk qu7uux)cinap_lenrek
gamemode is set according to the name of the main wad (cf. d_main.c), i.e.: - doom1.wad: (shareware doom1, ep1 only) gamemode == shareware - doom.wad: (registered doom1, ep1-3) gamemode == registered - doomu.wad: (ultimate doom, ep1-4) gamemode == retail - doom2.wad, plutonia.wad, tnt.wad: gamemode == commercial most doom.wad's distributed online are, in fact, ultimate doom. if your ultimate doom wad is correctly named doomu.wad, some switches in episodes 2-4 won't swap their texture when toggled, because p_switch.c:P_InitSwitchList() is only checking for registered doom1. easy way to test: demo2 in either registered or ultimate doom: the player flips a switch right at the beginning of the demo; if the main wad is called doomu.wad, the switch won't change its texture. % games/doom -playdemo demo2 if you rename the wad to doom.wad or alter d_main.c:IdentifyVersion, the switch will swap its texture like it should.
2015-07-29games/doom: implement filelength() (thanks quux)cinap_lenrek
this function is used when playing demos from external lumps. the game just exits without this patch. to test this, download a demo lump from somewhere, and play it with -playdemo %s where %s is the file's name, without the .lmp extension: (note that this one is a doom 2 demo, so it requires doom2.wad) % hget http://doomedsda.us/lmps/945/3/30nm2939.zip | unzip -sv extracting 30nm2939.LMP extracting 30nm2939.txt % mv 30nm2939.LMP 30nm2939.lmp # checking for a lump filename is case sensitive % games/doom -playdemo 30nm2939 the game exits when the demo ends. also, note that this demo will desync on map06 (the crusher), because of an unrelated bug (that's another patch :>) note: filelength() returns vlong, but file lengths for doom lumps are ints. however, this might be used elsewhere (networking), so i'd leave it this way.
2015-07-29etheriwl: add pciid for Centrino Wireless-N 1000 (thanks qu7uux)cinap_lenrek
card seems to work fine with just this. http://sysinfo.9front.org/src/125/body
2015-07-29webcookies: fix isdomainmatch() (fixes livejournal.com login)cinap_lenrek
when cookie is domain=example.com, then we implicitely add dot to the domain name, which made us reject the cookie as the request domain "example.com" != ".example.com". fix by making isdomainmatch() skip the implicit dot in pattern before string comparsion.
2015-07-29ratrace: avoid blank line prints, make writer the parentcinap_lenrek
when there where multiple syscalls returning out of order, it would print blank lines between the exits. avoid this by remembering if the last char written was a newline and conditionally insert newline on out of order return. sometimes, ratrace would return before all messages have been printed. make the writer process the parent so ratrace wont exit until all readers are finished avoiding the problem.
2015-07-29ratrace: various improvementscinap_lenrek
error handling, serialize exits, close reader filedescriptors, fix channel types, embedd the string buffer in the Msg struct.
2015-07-28cc: provide fake realloc() for getenv()cinap_lenrek
2015-07-28kernel: remove obsolete comment from namec()cinap_lenrek
2015-07-28kernel: export mntattach() from devmnt.c avoiding bogus struct passing and ↵cinap_lenrek
special case in namec() we already export mntauth() and mntversion(), so why not stop being sneaky and just export mntattach() so bindmount() and devshr can just call it directly with proper arguments being checked. we can also avoid handling #M attach specially in namec() by having the devmnt's attach function do error(Enoattach).
2015-07-28ether79c970: set mbps for proper queue sizes, assume gigabit ethernet for vmwarecinap_lenrek
2015-07-28lib9p: return "write prohibited" error as documented in 9p(2) when ↵cinap_lenrek
srv->write is nil (thanks silasm)
2015-07-27kernel: clunk the cache when removing cache flag on a channel, only call ↵cinap_lenrek
cread() chen CCACHE flag is set to avoid double caching, attachimage() and setswapchan() clear the CCACHE flag on the channel but this keeps the read ahread state of the cache arround (until the chan gets closed), so also call cclunk() to detach the mcp and free the read ahead state. avoid the call to cread() when CCACHE flag is clear.
2015-07-27devmnt: use c->iounit instead of msize-IOHDRSZ to chunk reads and writes, ↵cinap_lenrek
reduce memory overhead for Mntrpc, mntalloc lock use the actual iounit returned from Ropen/Rcreate to chunk reads and writes instead of c->mux->msize-IOHDRSZ. dont preallocate the rpc buffers to msize, most 9p requests are rather small (except Twrite of course). so we allocate the buffer on demand in mountio() with some rounding to avoid frequent reallocations. avoid malloc()/free() while holding mntalloc lock.
2015-07-26devmnt: dont reset readahead window when requested offset still has pending rpccinap_lenrek
2015-07-26kernel: pipelined read ahead for the mount cachecinap_lenrek
this changes devmnt adding mntrahread() function and some helpers for it to do pipelined sequential read ahead for the mount cache. basically, cread() calls mntrahread() with Mntrah structure and it figures out if we where reading sequentially and if thats the case issues reads of c->iounit size in advance. the read ahead state (Mntrah) is kept in the mount cache so we can handle (read ahead) cache invalidation in the presence of writes.
2015-07-24page: fix deadlock, nil vs 0 for pointer comparsion, cleanupcinap_lenrek
2015-07-24libsec: increase handshake message buffer size (MaxChunk) to 32K (thanks sl)cinap_lenrek
_sl → webfs doesn't like packetfire.org: '/mnt/web/body' 0 No status tls: local handshake message too long 30781 16384
2015-07-22fortunes: go away.stanley lieber
2015-07-23ip/httpfile: fix flushes, fix concurrent reads, set error stringcinap_lenrek
Tflush handling was wrong, we cannot respond to the old request if we have not actually removed the req from the in progress block queue. when reads are issued concurrently, we have to set b->len before the block is inserted into the inprogress list. otherwise findblock() is unable to find it and no requests can be queued on the block. this caused the same offset to be downloaded multiple times. set the errstr in getrange() so in case of an error, we dont get some random previous error string.
2015-07-23kernel: make sure fd is in range in fdclose()cinap_lenrek
as the Fgrp can be shared with other processes, we have to recheck the fd index after locking the Fgrp in fdclose() to make sure not to read beyond the bounds of the fd array.
2015-07-23kernel: simplify syspipe()cinap_lenrek
2015-07-23devaoe: more nil vs. 0cinap_lenrek
2015-07-22devaoe: fix off by one in aoeerror(), consistent use of nil for pointers, ↵cinap_lenrek
error handling
2015-07-22kernel: consistent use of nil for pointer in sysfile.ccinap_lenrek
2015-07-22kernel: cleanup chan.c to consistenly use nil instead of 0 for pointerscinap_lenrek
2015-07-22kernel: make sure the swap device has a reasonable capacity in setswapchan()cinap_lenrek
2015-07-19devmnt: do not use user buffer to update the mount cachecinap_lenrek
using the user buffer has a race where the user can modify the buffer from another process before it is copied into the cache. this allows poisoning the cache for every file where the user has read access. instead, we update the cache from kernel memory.
2015-07-19devstream: fix mistakecinap_lenrek
2015-07-19stream(3): fix referencecinap_lenrek
2015-07-19fcp: use iounit() to determine buffer size, reduce number of worker procs to 8cinap_lenrek
2015-07-19cp: experimental stream supportcinap_lenrek
2015-07-19devstream: fast sequential file access with 9p pipelining experimentcinap_lenrek
2015-07-16pc: check Sse (bit 25) in cpuiddx before enabling fxsr in cr4 (fixes crash ↵cinap_lenrek
on the pentium II)
2015-07-16aux/cpuid: make sure extended feature bits are available (fixes crash on the ↵cinap_lenrek
pentium II)
2015-07-15devproc: make sure statbufread offset wont turn negativecinap_lenrek
2015-07-14fcp: fix wrong write pointer offset when read returns less than DEFB bytescinap_lenrek
2015-07-14kernel: remove debugalloc.ccinap_lenrek
2015-07-14mk9660: write data in alphabetical ordercinap_lenrek
*after* writing, the directory tree gets alphabetically sorted for path table. this causes data to not be in the same order as it was written causing seeks when taring up the filesystem. so instead write the files in alphabetical order as well to better match the directory sorting.
2015-07-149660srv: keep data and metadata separate in the cache with a tagcinap_lenrek
data on the disk is layed out sequentially and directory information is at the end of the disk. we want to keep data and metadata separated so that reading large sequential files will not evict the directory information from the cache causing long seeks. for that, we tag the clusters (an 8th for metadata, and the rest for data) and getbuf() will only evict clusters of the same tag.
2015-07-139660srv: go back to 128k clusterscinap_lenrek
doing tests taring up 9front.iso shows the following: lowering the cluster size back to 128k avoids over half the reads. 837888 sectors read for 512k vs. 347712 sectors with 128k cluster size.
2015-07-13inst: fix download task using ip/httpfile to mount a iso over http and ↵cinap_lenrek
prompt for installurl
2015-07-13httpfile: fix evictblock() so we wont consume all the memorycinap_lenrek
2015-07-13libFLAC: fix compiler warnings by properly declaring void function argumentscinap_lenrek
2015-07-13python: HAVE_STDINT_H 1cinap_lenrek
2015-07-13ape: add stdint.h, fix SSIZE_MAX and add SIZE_MAX to limits.hcinap_lenrek
2015-07-13cpp: search source file directory first for quoted #include (thanks Ori_B)cinap_lenrek
foo.c includes bar/bar.h, which includes "baz.h"; it wants bar/baz.h meanwhile, it also includes meh/quux.h, which includes "baz.h"; it wants meh/baz.h
2015-07-12ether82563: fix multicast filter (based on openbsd em(4) driver)cinap_lenrek