-
Notifications
You must be signed in to change notification settings - Fork 4
/
README
295 lines (223 loc) · 11.5 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
LsdlDoom v1.4.4.4
=================
Doom is a 3d shoot'em'up game, written by id Software, first released in
1993.
LsdlDoom is a version of Doom, designed to run on any systen that supports
SDL. Doom is a 3D game originally by id software.
LsdlDoom is based on LxDoom, a freely available Linux specific version of Doom,
which is released and maintained by Colin Phipps
LsdlDoom is released and maintained by Jess Haas (doom AT JessHaas.com). See the
LsdlDoom home-page at http://JessHaas.com/lsdldoom/ for information
about Doom and LsdlDoom.
If you have comments, contributions, or bug reports about LsdlDoom, please
email me at [email protected]
LsdlDoom is free software - see the files AUTHORS and COPYING for details.
Release Notes
-------------
If you have used older versions of LxDoom, you can remove the old doom wad
references from /usr/local/games/wads. Also, save games and config files are
now stored in ~/.lxdoom/
You will also need to recalibrate your mouse sensitivity, since LxDoom v1.4.3
changes the sensitivity scale in order to give more fine control.
Requirements
------------
- a copy of Doom, Doom ][, Ultimate Doom or Final Doom. The only file you
need from these is the "IWAD file", the main Doom data file, called
doom.wad or doom2.wad. Or, you can use the doom1.wad from the shareware
release of Doom.
- a working install of SDL (Simple DirectMedia Layer). To compile you will
nead to eather get the development packages or compile SDL yourself.
See the file INSTALL for instructions for installing LsdlDoom.
Features
--------
* Boom compatible:
LsdlDoom is based on the source code for Boom (final release 2.02).
That means that
- all the original Doom & Doom ][ levels work
- virtually all bug-less Doom & Doom ][ PWAD files should work
- the majority of Doom & Doom ][ v1.9 demos should work (maybe others too)
- all Boom PWAD files and demos (for v2.02) should work
- Dehacked patches and BEX patches are supported using -deh parameter
The command line parameters for all these features are the same as for Boom.
* Enhancements from Boom:
LsdlDoom has been substantially enhanced since Boom, with lots of improvements:
(inherited from lxdoom)
- lots of bug fixes and code improvements, many incorporated from MBF
- support for MBF's enhanced Dehacked support, skies and new code pointers
- configurable multi-player colours
- total game time shown on intermission screens
- made more portable so it will run on different OS's and architectures
- auto-loading of wads
- games can be loaded or the level restarted during a net-game
* SDL currently suports the following Unix video targets
* X windows - SDL can use XFree86 to display the Doom screen, as well as
collect keyboard and mouse input. So if you can use XFree86, you should have
no problems using LsdlDoom.
* SVGALib - nearly as fast as DOS Boom with normal video card, and
should use the acceleration on accelerated cards supported by SVGALib (not
tested yet)
* AALib - ASCII DOOM!!!!!!!!!!!!
* DirectX5 and Windib support under Windows 9x, 2000 and NT
* High-res - LsdlDoom can run at resolutions higher than old Doom's fixed
320x200, in fact as high as 1600x1200 in theory.
* Sound support: Sound is supported by SDL. Music requires the SDL_mixer
library.
* Networking: Network support is included for net-games over TCP/IP based
networks.
* Better diagnostics: More error messages and warnings are given than old
Doom used to, e.g.: warnings when a screen-shot or saving a game fails, or
when loading a game with different WAD files loaded, or when LxDoom fixes
errors in buggy PWADs.
* Automap overlay and rotation; just press O and R in the automap to see what
I mean. I haven't got around to adding those keys to the menu, but you can
change them in the config file.
* Misc: Joystick support, 'multitasking-friendly'. Also a few new cheat
codes, IDBEHOLDM for a mega-armour, and IDBEHOLDH for 200% health, and that's
in addition to all the cheat codes that Boom added. Also IDRATE shows the
current framerate and some other rendering stats, which are useful to
developers.
High-Res Support
---------------
To set the resolution to use, specify the -width and -height parameters to
lsdldoom. So:
lsdldoom <other parameters> -width 640 -height 480
gives you a 640x480 window. Bear in mind though that a larger window means that
LsdlDoom has to do more work rendering, so it will run slower on old computers.
lsdldoom remembers the last screen resolution set in this way, so you don't need to
add these parameters every time. However, should you wish to override the
resolution for the current time you run lxdoom only, you can use the -geometry
parameter, e.g. lxdoom -geom 320x200.
XFree86 Notes
-------------
LsdlDoom can display to most Xwindows displays. It is fastest on 256
colour
PseudoColor displays (since this is what Doom was originally written for).
To change the colour depth of your XFree86 setup, edit your
/etc/XF86Config file, and replace any existing DefaultColorDepth lines with:
DefaultColorDepth 8
(Remember to take a backup).
Alternatively, if you don't want the change to be permanent, just use
'startx -- -bpp 8' when starting X, instead of the usual 'startx'.
If you normally use X at 24bpp, and LxDoom displays wrongly when used at 24bpp,
edit the config file ~/.lxdoom/boom.cfg and change the X_options variable to
have value 2. This makes LsdlDoom work right on my test machines.
If you use a high graphics resolution or a small monitor, the lxdoom window
may be too small for LxDoom to be comfortably playable. In that case, if you
have a powerful PC, try running lsdldoom with the -2 parameter. This makes the
window twice as big in both directions. If that is still too small, try the
-3 parameter instead.
The problem with the -2 and -3 parameters is that they slow down lsdldoom
considerably, particularly in high-colour modes. I suggest that you reduce
the size of your Xwindows display instead while playing LsdlDoom (in XFree86,
normally CRTL-ALT-+/- change the display size).
For really old machines (low end pentiums, 486's), it is hard to find a
compromise - lsdldoom will either be displayed too small, or will run too
slow. For these machines, you can either reduce your screen size in X to
320x200 (see appendix), or use the fullscreen option.
Some combinations of keys used by lsdldoom may be trapped by your window
manager. If you have trouble with the strafe key ALT sticking on for
example, this is probably due to your window manager grabbing the key
presses. There are two solutions: change your window manager config, so it
doesn't trap those keys, or select different keys in lsdldoom, via the Key
Bindings menu.
Other Devices
-------------
Items in this section relate to other input/output devices supported by LsdlDoom.
* Sound:
You can disable sound support with the '-nosound' parameter. You may want to do
this if:
- you have no sound card
- your kernel is not compiled with sound support
- the kernel driver for your card does not provide /dev/dsp support
- your computer is too slow to cope with sound processing
- you want to run multiple copies of LsdlDoom
* Joystick:
If your system is Linux, and you had the Linux joystick headers available
when you compiled LsdlDoom, then LsdlDoom was compiled with joystick support.
To use a joystick in LsdlDoom, run LsdlDoom once first and then exit. This creates
~/.lxdoom/boom.cfg.
Edit boom.cfg. There is a use_joystick line - change the number on this line to the
number of your joystick (usually 1, maybe 2 if you have 2 joystick ports).
To disable the joystick for an individual session, us the '-nojoy' parameter.
Multi-player - Over a TCP/IP network
-----------
As of v1.3.7, LsdlDoom has a client-server system for network games. There
is a server program, lxdoom-game-server, that comes with lxdoom. To play
a network game, follow these steps:
- on one computer, which I will call the server, run the lxdoom-game-server
program. The parameters you specify to this program control the type of game
to be played. So for example lxdoom-game-server -dnN 2 -e 4 -l 3 specifies
that there will be 2 players, playing episode 4 level 3; -dn specifies
death-match and no monsters respectively. For more details of the parameters
lxdoom-game-server accepts, see the man page for it; but these should be
enough to start with.
- Each player to take part in the game runs lxdoom with the parameter
-net server, where server is the host name of the server. lxdoom will wait for
the specified number of players to join, and then will start.
So an example: at home I have 2 machines, called vale and portico. To start a
nice coop game of Doom 2, I run
on vale:
lxdoom-game-server -N 2 -l 1 &
lsdldoom -net localhost
on portico:
lsdldoom -net vale
Happy fragging... but here are some notes:
- packet loss and limited bandwidth may make a network game unplayable. A LAN
is great; just don't expect good play over the Internet, especially if you
connect via a modem. This is being worked on.
- all the players' machines must be connected to the server machine via a
TCP/IP network, and able to exchange UDP packets with the server. Some
routers and firewalls may block UDP packets, so you will not be able to play
across such obstacles.
- maximum number of players is currently 4.
Appendix - Making XFree86 run in 320x200x8bpp
=============================================
This is only recommended if you have manually edited your /etc/X11/XF86Config
file before, and have a rough idea what the sections are for.
- Back up XF86Config
- Make sure that you are using the SVGA server. If you are not, you may be
out of luck. You could try running the xf86config program to select the SVGA
server, but I haven't tried this and don't know if it will work.
- Edit XF86Config
- Find the section that begins
Section "Screen"
Driver "svga"
- find the Modes line for the 8 bpp colour depth
- add a mode "320x200"
- Find the section that begins
Section "Device"
- Add a line
Option "clkdiv2"
- save and try it out. You should be able to cycle through modes (on my
server it's CTRL+ALT+<+/-> and find the low-res one.
If that doesn't work, it may be because your card driver doesn't support a
compatible clock setting. You can try changing to the Generic VGA device, by
editing your Screen section to look a bit like this...
Section "Screen"
Driver "svga"
# Use Device "Generic VGA" for Standard VGA 320x200x256
Device "Generic VGA"
# Device "VidCard"
Monitor "Monitor"
DefaultColorDepth 8
Subsection "Display"
Depth 8
# Omit the Modes line for the "Generic VGA" device
Modes "320x200"
ViewPort 0 0
Virtual 320 200
...
As you can see, the xf86config script with my XFree86 puts in a lot of
helpful comments. If yours has done too, do whatever it says for the
'Standard VGA 320x200x256' mode (after all, all I am doing is following
those same instructions).
However, remember that doing this will probably make X unusable for anything
but Doom. Personally I'd recommend putting up with a small window, using
<CTRL>-<ALT><+/-> to step down to 640x480 for lxdoom.
At least, you could write a short shell script to swap XF86Config's
according to whether you want lxdoom or serious X.
WARNING: Fiddling with XF86Config is dangerous. If you have configured your
monitor or video card incorrectly, then damage to your monitor or even worse
could result. I cannot be held responsible for any such damage. Please read
the relevant XFree86 docs before trying anything like this; they have similar
warnings and disclaimers.