psDooM

Download


[ web home | screenshots | download | documentation | links ]

-- SourceForge Project Pages for psDooM --
[ project home | news | support | bugs | patches ]


Supported Platforms:

Please note that this information applies to the latest release of psDooM, whether it is a full release or development snapshot. Older releases may have different behavior than what is described here. Consult the CHANGELOG for details of version differences.

psDooM has been tested on the following platforms:

Please let me know if you get it to run on another platform.

psDooM can probably be made to work on any version of *nix which runs XDoom. It uses several system commands in order to do its work: 'ps', 'renice', and 'kill'. Formats of the commands must be as follows:

*** LINUX 'ps' ***
ps h a x u OT  ==  no header, list other user's processes, list processes
                   without a controlling terminal, in 'user format',
                   sorted by process start time.  example output follows:
root         1  0.0  0.9   764   388  ?  S    18:39   0:01 init
root         2  0.0  0.0     0     0  ?  SW   18:39   0:00 (kflushd)
root         3  0.0  0.0     0     0  ?  SW<  18:39   0:00 (kswapd)
root        28  0.0  0.8   736   348  ?  S    18:39   0:00 /sbin/kerneld
root       143  0.0  1.2   816   472  ?  S    18:39   0:00 syslogd
root       152  0.0  1.3   896   528  ?  S    18:39   0:00 klogd
daemon     163  0.0  1.0   784   404  ?  S    18:39   0:00 /usr/sbin/atd
david      218  0.0  2.1  1280   856   1 S    18:39   0:00 -bash
root       221  0.0  0.7   724   296   4 S    18:39   0:00 /sbin/mingetty tty4
david      598  0.0  1.2   844   472   2 R    22:14   0:00 ps h a x u OT

*** SOLARIS 'ps' ***
/usr/bin/ps -A -o user= -o pid= -o tty= -o comm=
     list all processes, show username, show process id, show terminal,
     show user's command, suppress headers.  example output follows:
root       1  ?  init
root      28  ?  /sbin/kerneld
root       2  ?  (kflushd)
root       3  ?  (kswapd)
root     152  ?  klogd
root     143  ?  syslogd
daemon   163  ?  /usr/sbin/atd
david    598  2  ps
david    218  1  -bash
root     221  4  /sbin/mingetty

renice +5 <pid> == renices process number <pid> to +5 priority.

kill -9 <pid>  == sends a SIGKILL to process number <pid>.
    

Available Formats:

psDooM is currently versioned by date (YYYY.MM.DD) and distributed in three formats:

Development snapshot patches to the source tree are available. These typically have fewer new features per release and the program is less tested than the 'dated' versions above. However, all the latest and greatest features are found first in these snapshots. Each development patch is against the latest snapshot or full release, whichever is most recent.

Additionally, some custom data files for use with psDooM and registered Doom 1, Ultimate Doom, or Doom 2 are available:

Instructions:

  1. Go to psDooM's download section on SourceForge.
  2. Download one or more of the psDooM formats available.
  3. Uncompress and un-tar the file(s).
  4. Change directory to the newly created directory and read the README file for further installation instructions.

Common Compilation Error (and its fix):

By far, most psDooM-related emails I have received are about the following problem. While I do enjoy getting emails about psDooM, I decided to post the solution to this common (and simple to fix) error.

There is an error that occurs when trying to compile psDooM on some newer Linux distributions:

make linux-x86
 (cd xdoom; make -f Makefile.linux-x86)
 make[1]: Entering directory `/tmp/psdoom-src/xdoomsrc/xdoom'
 gcc -O3 -m486 -ffast-math -fomit-frame-pointer -DUSE_INLINE -DUSE_ASMMOD
 -Wall -DNORMALUNIX -DLINUX  -DBUGFIXES -DPOLL_POINTER    -c doomstat.c -o
 linux-x86/doomstat.o
 In file included from p_pspr.h:34,
                  from d_player.h:39,
                  from d_net.h:33,
                  from doomstat.h:40,
                  from doomstat.c:35:
 m_fixed.h: In function `FixedMul':
 m_fixed.h:64: operand constraint contains '+' or '=' at illegal position.
 m_fixed.h: In function `FixedDiv2':
 m_fixed.h:79: operand constraint contains '+' or '=' at illegal position.
 make[1]: *** [linux-x86/doomstat.o] Error 1
 make[1]: Leaving directory `/tmp/psdoom-src/xdoomsrc/xdoom'
 make: *** [xdoom-linux-x86] Error 2
    

This issue is covered in the Support Request Tracker: [ 302733 ] can't build psdoom.

The problem has to do with some assembly code that some versions of gcc don't like. Since the offending code exists mostly to speed up the program on 486 and older processors, it is not really necessary nowadays.

Solution:

An updated Makefile.linux-x86 file is available for download in the Support Request. Just replace the existing file with the one attached to the Support Request, and psDooM should compile.
If you would rather fix it by hand, follow the instructions below.

You'll need to edit the Makefile.linux-x86 file found in the xdoomsrc/xdoom/ directory.
Remove -DUSE_INLINE from whichever OPTFLAGS line is active (the one without the # in front of it). I would also remove -DUSE_ASMOD from that OPTFLAGS line. (-DUSE_ASMOD compiles yet more assembler that modern machines don't need to take advantage of.)

You may also need to change which OPTFLAGS line is being used. Place a # in front of the line:
OPTFLAGS=-O3 -m486 -ffast-math -fomit-frame-pointer -DUSE_INLINE \
(the one after the comment: # Production, old GNU C 2.7).
Remove the # from the front of the line:
#OPTFLAGS=-O3 -mpentium -ffast-math -fomit-frame-pointer \
(the one after the comment: # Production, EGCS).

Notes:


[ web home | screenshots | download | documentation | links ]

-- SourceForge Project Pages for psDooM --
[ project home | news | support | bugs | patches ]


Valid XHTML 1.0!

Copyright © 2000 David Koppenhofer

Web space and project hosting by:
Get psDooM (aka: DooM for Sys A's) at SourceForge.net. Fast, secure and Free Open Source software downloads