shithub: wl3d

ref: 3b70bbe366fade45f41fed2ef13b87fa675709b5
dir: /man/1/wl3d/

View raw version
.TH WL3D 1
.SH NAME
wl3d \- Wolfenstein 3-D engine port
.SH SYNOPSIS
.B wl3d
[
.B -23dopqs
] [
.B -f
.I demo
] [
.B -m
.I datadir
] [
.B -w
.I map 0-3
]
.SH DESCRIPTION
.I Wl3d
is a port of id Software's Wolfenstein 3-D engine.
In short, Wolfenstein 3-D is...
.PP
.RS
"a masterpiece of wild action and unbelievable graphics, bringing you virtual reality at its best, as you move
.RI though (sic)
a sensationally realistic 3-D world of amazing detail.
It's World War II, and you are B.J. Blazkowicz - the Allies' bad boy of espionage, a terminal action seeker built for abuse with an attitude to match.
There's just one small problem: you've been captured by the Nazis, tortured, and imprisoned beneath the Castle Wolfenstein where you await execution.
Bummer.
Now, you must do anything to escape from the belly of a Nazi dungeon - or die trying."
.RE
.PP
The command line options are:
.TP \w'\fLw\ \ \fI"map\ 0-3"'u
.B -2
Set game version to Spear of Destiny Mission 2: Return to Danger.
.TP
.B -3
Set game version to Spear of Destiny Mission 3: The Ultimate Challenge.
.TP
.B -d
Set game version to Wolfenstein 3-D 1.4 shareware.
.TP
.BI -f\  demo
Play demo from file on startup.
.TP
.BI -m\  dir
Set game data directory.
.TP
.B -o
Set game version to Spear of Destiny 1.0 demo.
.TP
.B -p
Run at full speed.
.TP
.B -q
Quit after demofile playback.
.TP
.B -s
Set game version to Spear of Destiny 1.0 retail.
.TP
.BI -w\  "map 0-3"
Warp to the given map number with a given difficulty on startup.
.PD
.PP
.I Wl3d
requires several data files to operate, containing sound effects, music, and several types of graphics.
These are detailed in
.IR wl3d (6) .
Two additional files contain the initial loading screens,
.L intro.wl6
and
.LR intro.sod ,
used respectively in Wolfenstein 3-D and Spear of Destiny game versions.
.PP
At startup, the current working directory is bound over
.I datadir
(default
.BR /sys/games/lib/wl3d )
with the
.B MBEFORE
and
.B MCREATE
flags (see
.IR bind (2)).
Data files can thus be contained in a system directory while the config and save files' location, which are user-specific, can be left at the user's discretion.
If these user-specific files exist and
.I wl3d
fails to parse them, they are not overwritten.
The
.B -m
parameter is used to change
.IR datadir .
.PP
Several options modify the program's behavior on startup.
If the
.B -w
parameter is used, the game starts immediately at map number
.IR map ,
with difficulty set to
.BR 0-3 ,
.B 0
being the easiest.
The
.B -p
parameter runs the program at the fastest speed possible for testing purposes.
.PD
.SS Game versions
The engine supports several game versions, each requiring different data files.
These also control parts of the program's behavior, such as level ordering and interface drawing.
Each corresponds to a specific data file extension.
.PD
The default game version is Wolfenstein 3-D 1.4 retail, and the data files use the
.L wl6
extension.
Others are set by the options
.BR -2 ,
.BR -3 ,
.BR -d ,
.B -o
and
.BR -s .
The respective data file extensions are
.LR sd2 ,
.LR sd3 ,
.LR wl1 ,
.LR sdm ,
.LR sod .
.PD
Other game versions are unsupported.
Note that
.L sd2
and
.L sd3
versions are variants of
.LR sod ,
only substituting some of the data files.
.PD
.SS Demo lumps
.I Wl3d
can playback a single external demo lump before resuming normal operation, when its path is supplied via the
.B -f
parameter.
The
.B -q
parameter causes the program to exit after playback instead.
The filename's extension, if any, is ignored.
Regardless, a corresponding game version must be set using the aforementioned command line parameters.
An incorrect version will cause erroneous playback or a crash.
.SS Sound and music
.I Wl3d
uses
.SM OPL2
chip emulation based on fmopl.c from the
.SM MAME
project for music and sound effects.
Digital sound effects are resampled prior to playback.
PC speaker sound effects are unimplemented and ignored.
In case
.L /dev/audio
(see
.IR audio (3))
is inaccessible, audio is ignored.
.PD
.SS Differences
Most of
.I wl3d
has been rewritten from scratch, and some parts have been implemented differently from the reference.
Most importantly, individual data lumps are no longer read and cached as needed,
but rather all loaded into memory, uncompressed, and in some cases converted,
at startup.
This bumps the required amount of free memory up to around at least 5 megabytes,
depending on the game version, architecture and window size.
.PP
A single executable handles all supported game versions.
.PP
Intro screens are now additional data files to be loaded on startup,
rather than being compiled in, and must therefore be installed in the
.IR datadir .
Also unlike the reference implementation,
these are displayed during data file loading,
and are immediately faded out of afterwards.
.PP
Copy protection code and the Spear of Destiny Jukebox have been excised.
Menus are implemented differently, and some have been altered in functionality.
Debug mode has been removed, and cheats work differently.
.PP
Game keys are no longer set in the options menu, but rather in the configuration file.
A single configuration file is used for all game versions.
Savegames and config files are incompatible in format.
.PP
The texture and sprite scaling implementation does not attempt to save memory and avoids quantization at close range.
.SH FILES
.TF /sys/games/lib/wl3d/intro.wl6
.TP
.B /sys/games/lib/wl3d/
default wl3d data directory
.TP
.B /sys/games/lib/wl3d/intro.wl6
.B wl6/wl1
intro screen
.TP
.B /sys/games/lib/wl3d/intro.sod
.B sdm/sod
intro screen
.PD
.SH "SEE ALSO"
.IR doom (1) ,
.IR opl2 (1) ,
.IR bind (2) ,
.IR pipe (2) ,
.IR audio (3) ,
.IR wl3d (6)
.SH BUGS
Because of limitations in fmopl.c-based
.SM OPL2
emulation, Adlib sound effects crack too much during playback.
.PP
The upsampling implementation for digital sound effects is overkill given the number of constraints.
It is also buggy and playback cracks too much.
.PP
With sound effects enabled, the
.SM OPL2
emulation runs on every frame and
.L /dev/audio
is written to, even when no sound is playing.
.PP
Little is done in case the program is unable to run at a framerate of 70 Hz.
.PD
.SS Engine bugs
Correct demo playback depends on the sound and view size settings used during recording.
Different settings on playback may cause desynchronization.
.PP
Spawned projectiles are not properly cleared when removed and may cause aberrant behavior and demo desynchronization.
.SH HISTORY
id Software's Wolfenstein 3-D was released for
.SM MS-DOS
on May 5, 1992.
.br
.I Wl3d
first appeared in 9front (May, 2016), based on the source code release of Wolfenstein 3-D's engine from July 21, 1995.