pax_global_header 0000666 0000000 0000000 00000000064 13553647753 0014534 g ustar 00root root 0000000 0000000 52 comment=5ff5e955eee47953b166037ceef37bbf05e06695
freedoom-0.12.1/ 0000775 0000000 0000000 00000000000 13553647753 0013415 5 ustar 00root root 0000000 0000000 freedoom-0.12.1/.adoc-layout.conf 0000664 0000000 0000000 00000043336 13553647753 0016574 0 ustar 00root root 0000000 0000000 # Document layout for AsciiDoc, based on the website.
[header]
{doctitle}
[footer]
freedoom-0.12.1/.gitattributes 0000664 0000000 0000000 00000000165 13553647753 0016312 0 ustar 00root root 0000000 0000000 # Auto detect text files and perform LF normalization
* text eol=lf
*.png -text
*.wad -text
*.wav -text
*.mid -text
freedoom-0.12.1/.gitignore 0000664 0000000 0000000 00000002440 13553647753 0015405 0 ustar 00root root 0000000 0000000 # Please keep each section in ASCII (LC_ALL=C sort) order.
# File patterns to ignore. This applies recursively to all subdirectories.
*.6
*.bak
*.html
*.ini
*.orig
*.pdf
*.pyc
*.swp
*.zip
*~
.DS_Store
.\#*
\#*\#
wad*.txt
doom.gpl
# Per directory patterns to ignore. These do not apply recursively to
# subdirectories. Each line should begin with "[!]/". Please keep the
# directories in ASCII (LC_ALL=C sort) depth first order.
/COPYING.txt
/CREDITS.txt
/bootstrap/*.wad
/dist/*.png
/dist/freedm.adoc
/dist/freedoom?.adoc
/graphics/*wi*.png
/graphics/credit.png
/graphics/fd*title.png
/graphics/help.png
/graphics/m_*.png
/graphics/prboom.png
/graphics/t_phase*.png
!/graphics/m_dm.png
!/graphics/m_doom.png
!/graphics/m_lscntr.png
!/graphics/m_lsleft.png
!/graphics/m_lsrght.png
!/graphics/m_skull1.png
!/graphics/m_skull2.png
!/graphics/m_therml.png
!/graphics/m_thermm.png
!/graphics/m_thermo.png
!/graphics/m_thermr.png
/graphics/text/*.png
/lumps/*_deh.lmp
/lumps/*pname.lmp
/lumps/colormap.lmp
/lumps/dmxgus.lmp
/lumps/fd*txtr*.lmp
/lumps/freedm.lmp
/lumps/freedoom.lmp
/lumps/genmidi.lmp
/lumps/playpal.lmp
/lumps/colormap/*.lmp
/lumps/genmidi/*.lmp
/lumps/playpal/playpal.lmp
/lumps/textures/freedm/
/lumps/textures/phase1/
/lumps/textures/phase2/
/scripts/wad2image
/wad-images/
/wads/
freedoom-0.12.1/BUILD-SYSTEM.adoc 0000664 0000000 0000000 00000023565 13553647753 0016141 0 ustar 00root root 0000000 0000000 = Build system
This is an explanation of the functioning of the Freedoom build
system.
== Overview
Freedoom is built using `deutex`, which is a command-line tool for
automated building of Doom WAD files. However, multiple different WAD
files are built from the Freedoom material. Therefore, the Freedoom
build system is more complicated than a “normal” deutex build would
otherwise be.
A top-level +Makefile+ controls the build system and executes the
appropriate commands to generate the output WAD files. Various
intermediate files are generated in the process by scripts. The
following diagram illustrates the process:
................................................................
buildcfg.txt lumps/textures/textures.cfg
│ │
│ ┌───┴────┐
│ │ cpp │
│ └───┬────┘
│ │
│ ┌─────────┴────────┐
│ │ build-textures │
│ └──┬────────────┬──┘
│ │ │
│ pnames.txt texture1.lmp, pnames.lmp
│ │ │
┌───┴────┐ │ │
│ cpp ├───────────┘ │
└───┬────┘ │
│ │
wadinfo.txt │
│ │
┌───┴────┐ │
│ ├────────────────────────┘
│ deutex │
│ ├───────── all other source files (graphics, etc)
└───┬────┘
│
wads/(wadname).wad
................................................................
=== Output WAD files
The following are the resulting WAD files generated by the build
system:
* +freedoom1.wad+: Phase 1, the _Ultimate Doom_-compatible IWAD file.
* +freedoom2.wad+: Phase 2, the _Doom II_-compatible IWAD file.
* +freedm.wad+: FreeDM IWAD file, containing deathmatch levels
== Source configuration files
=== Master configuration file (+buildcfg.txt+)
deutex is configured using a configuration file typically named
+wadinfo.txt+. In the case of Freedoom, multiple different WADs are
built from the common material, with slightly different settings for
each. Therefore, a _master configuration file_ named +buildcfg.txt+
is used to generate configuration files for each individual WAD to
build.
The +buildcfg.txt+ file is processed using a Python script named
+simplecpp+. This processes files with a syntax similar to the +cpp+
tool (C Preprocessor). Variables are defined on the command line,
based on the type of output target desired:
* +PHASE1+: Build for the Phase 1 IWAD.
* +PHASE2+: Build for the Phase 2 IWAD.
=== Texture configuration file (+lumps/textures/textures.cfg+)
The texture configuration file is used to generate the texture lumps.
These are +texture1.lmp+ (texture directory), +pnames.lmp+ (list of
patch names) and +texture2.lmp+ (Doom I only). They are generated
by the +build-textures+ script; deutex’s internal texture builder
is deliberately not used for compatibility reasons.
Unlike id’s Doom games, Freedoom includes nearly every texture
possible in all three of its IWADs. There are a handful of textures
that must differ between Phase 1 and 2 for compatibility with Doom 1
and 2 mods, since their definitions changed in the Doom games. We
also include logo textures for FreeDM levels. The file is passed
through the +simplecpp+ script to account for the variant textures.
Command line variables are defined based on the desired build
settings:
* +DOOM1_VERSIONS+: Include textures in Phase 1 that would conflict
with Phase 2.
* +FREEDM+: Include textures that are needed for FreeDM.
== Generated files
The following files are generated automatically by automated scripts
during the build process.
=== Texture files
+texture1.lmp+ is a binary file that contains the texture definitions
and is built by the +build-textures+ script from
+lumps/textures/textures.cfg+ as a template.
+pnames.txt+ contains a list of all of the patches used in the texture
definition file (+texture1.txt+). It is generated as an output by
the +build-textures+ script.
Multiple sets of these files are generated with different
configurations for each IWAD file.
[frame="topbot",grid="none",options="header"]
|===============================================================
| Subdirectory | WAD File | CPP Variables
| +lumps/textures/phase1/+ | +freedoom1.wad+ | PHASE1
| +lumps/textures/phase2/+ | +freedoom2.wad+ | PHASE2
| +lumps/textures/freedm/+ | +freedm.wad+ | FREEDM
|===============================================================
=== +wadinfo.txt+
This is the auto-generated deutex configuration file, built from the
+buildcfg.txt+ template. It includes the PNAMES list from
+pnames.txt+.
Several different +wadinfo.txt+ files are generated for the different
WAD files that are built:
[frame="topbot",grid="none",options="header"]
|===============================================================
| Filename | WAD File | CPP Variables
| +wadinfo_phase1.txt+ | +freedoom1.wad+ | PHASE1
| +wadinfo_phase2.txt+ | +freedoom2.wad+ | PHASE2
| +wadinfo_freedm.txt+ | +freedm.wad+ | FREEDM
|===============================================================
== Auxiliary scripts
The build system uses a number of auxiliary scripts in order to
generate the necessary configuration files for the build. These are
written in Python.
=== +simplecpp+
This script implements a subset of the syntax of the C preprocessor.
It accepts #ifdef ... #endif blocks to conditionally include sections
of the input file in the output file. This is used when generating
the +wadinfo.txt+ and +texture1.txt+ files to conditionally include
certain resources depending on the type of WAD file being built.
The +simplecpp+ script is used in preference to the actual +cpp+
preprocessor, firstly so that it is not necessary to install +cpp+,
and secondly because processing with +cpp+ can alter the layout of the
output file.
=== +build-textures+
This script processes the texture file (+texture1.txt+) and outputs
the binary texture lumps +texture1.lmp+, +texture2.lmp+ and
+pnames.lmp+.
Also output from the +build-textures+ script is a file named
+pnames.txt+ which is simply a text file containing the patches
listed in +pnames.lmp+. This is included in the wadinfo.txt file
so that all patches listed by the texture directory are automatically
included in the IWAD with no need for manual configuration.
=== +textgen+
Found in +graphics/text+, this script generates various graphics
files that are used in the Doom menus and intermission screen.
It reads level names from the dehacked lumps.
=== +playpal.py+
Found in +lumps/playpal+, this script builds the +PLAYPAL+ lump which
contains the 256-color palettes used for special effects (injured
“red” flash, the green “radiation suit” effect, etc.)
=== +colormap.py+
Found in +lumps/colormap+, this script builds the +COLORMAP+ lump that
is used for the diminished lighting within the game. This script is
also reused to generate additional colormaps that can be used for
special effects. It has a number of command line options that allow it
to do various different colorizing and “fog” effects.
=== +mkgenmidi+
Found in +lumps/genmidi+, this script builds the +GENMIDI+ lump used
for OPL MIDI synthesizer playback. The inputs for this script are a
collection of instrument files that are in the standard +SBI+ format
for OPL instruments. This lump is essential if you want to play using
a classic Adlib or Soundblaster card; these are emulated by several
source ports and some people still like to play using emulated OPL for
the authentic retro feel.
=== +gen-ultramid+
Found in +lumps/dmxgus+, this script builds the +DMXGUS+ lump used for
GUS MIDI playback. The GUS (Gravis UltraSound) card was a gaming sound
card popular in the ’90s. As with the +GENMIDI+ lump, few people are
still using a real GUS card nowadays, but several source ports emulate
them and require this file.
== deutex
`deutex` is the tool used to generate the WAD files. It processes a
file typically named +wadinfo.txt+, reading files from the following
directories to generate the WAD:
* +flats+: Floor and ceiling textures.
* +graphics+: Graphics for the menu, heads up display and status bar, etc.
* +levels+: The levels. Files are named eg. map01.wad or e1m1.wad
for Doom II and Doom I levels, with FreeDM levels named eg.
dm01.wad.
* +lumps+: Miscellaneous lumps.
* +musics+: Music files, in MUS or MIDI format.
* +patches+: Patch graphics that are used to compose wall textures.
* +sounds+: Sound effects, in WAV format.
* +sprites+: Graphics for the in-game sprites (monsters, power-ups,
weapons, decorations, etc.)
* +textures+: Texture definitions.
=== Idiosyncrasies
deutex is an old tool and has various quirks that must be worked
around. Some of them are listed here.
* deutex does not allow the exact path to the +texture1.txt+ file to
be specified in the configuration file; this used to be a problem
but the Freedoom’s texture lumps are now built using a custom
script.
* deutex requires an existing IWAD file in order to build WAD files,
and includes the contents of the +TEXTURE1+ lump from the IWAD in
any +TEXTURE1+ lumps it generates. To work around this, a “dummy”
IWAD file containing an empty +TEXTURE1+ lump is contained inside
the +dummy+ directory.
freedoom-0.12.1/COMPILING.adoc 0000664 0000000 0000000 00000007150 13553647753 0015571 0 ustar 00root root 0000000 0000000 Compiling Freedoom
==================
This document is a general overview of Freedoom’s dependencies
required to build it. See `README` for a description of what Freedoom
_is_, and `BUILD-SYSTEM` for the technical details on _how_ Freedoom
is built.
Required software
-----------------
Building the Freedoom IWADs pretty much simply requires the following:
* _make_: While there is some attempt to keep our Makefiles
portable, testing does not really happen on anything but
https://www.gnu.org/software/make/[GNU Make] (patches to fix
portability are most welcome!). On non-GNU systems, it might be
available in a package and binary named as _gmake_.
* _Python_: Freedoom uses several Python programs in its tree to
assist with building the IWADs. Python 3.x is required, we no
longer support Python 2.
* _Pillow_: A Python image manipulation module that provides the
features we need for scaling and composing various graphics of the
game.
* _DeuTex_ 5.0: Freedoom depends on features developed in this
version of DeuTex and will not build on earlier versions. It is
available at https://github.com/Doom-Utils/deutex in source and
Windows binary formats.
All or most of this software should already be available in your
operating system’s software repository, with the likely exception of
DeuTex, which is easy to build.
Building Freedoom
-----------------
Significant work has been put into making this step easy. At the top
of the Freedoom source tree, you should be able to simply type `make`
and wait for it to eventually produce the IWAD files in the `wads`
sub-directory. Parallel make builds are safe too, such as with `make
-j`.
If only interested in a specific IWAD, you can also run `make
wads/freedm.wad`, `make wads/freedoom1.wad`, `make wads/freedoom2.wad`.
As mentioned in the prior section, the Makefile only recieves testing
with the GNU version of Make. If the primary version of your Make is
not GNU and it fails, try `gmake` instead.
Building on Microsoft Windows
-----------------------------
Freedoom has normally seen all of its development on Unix systems,
nevertheless some people like to compile Freedoom on Windows. This is
possible, although complicated by our choice of tooling for the
project.
GNU environments for Windows such as https://cygwin.com/[Cygwin],
http://www.msys2.org/[MSYS2], or
https://blogs.msdn.microsoft.com/wsl/[WSL] provide sufficient shell
capabilities to build Freedoom. The dependencies listed previously
for Freedoom apply just as well to a Windows environment.
Instructions on how to use a GNU system and shell are out of scope of
this document.
Optional software
-----------------
* _Git_: Freedoom is developed using the Git version control system,
the latest developments can be tracked with it.
* _AsciiDoc_: The `*.adoc` files are all written in AsciiDoc markup,
and it can be used to generate HTML versions of all these
documents. This is used as part of the `make dist` and `make
install` targets, to generate the `NEWS.html` and `README.html`
files for inclusion with official Zip files. Different
implementations (eg, AsciiDoctor) may be selected by passing
`ASCIIDOC` and `ASCIIDOC_MAN` environment variables to `make`.
* _AsciiDoctor PDF_: Our manual, maintained in `manual/manual.adoc`,
has a hard dependency on this implementation of AsciiDoc for its
superior-looking PDF output.
* _Zip_: The `make dist` target uses Zip to create release archives
for FreeDM, Phase 1, and Phase 2. This can also provide an easy
way to automate generating in-development versions for other
people.
freedoom-0.12.1/COPYING.adoc 0000664 0000000 0000000 00000003113 13553647753 0015353 0 ustar 00root root 0000000 0000000 Copyright © 2001-2019
Contributors to the Freedoom project. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Freedoom project nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS
IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
For a list of contributors to the Freedoom project, see the file
CREDITS.
freedoom-0.12.1/CREDITS 0000664 0000000 0000000 00000026357 13553647753 0014452 0 ustar 00root root 0000000 0000000 N: Colin Phipps
S: cph
E: cph@cph.demon.co.uk
W: http://www.cph.demon.co.uk/
D: binary lumps (playpal, colormap etc)
N: Julian Aubourg
S: Julian
E: julian@doomworld.com
D: sprites, stories, textures
S: Captain Mellow
E: captainmellow@yahoo.com
D: textures, music
N: Nick Baker
S: NightMare
E: nick@frad.org
D: textures
S: Tarin
E: tarin@paci-fist.net
D: textures, sprites, website design, levels
N: Andrew Stine
S: Linguica
E: linguica@doomworld.com
D: textures
N: Emmanuel Rousseau
S: GodCells
E: Emmanuel_Rousseau@uqac.ca
D: levels, sprites
N: Andrew Bassett
S: andrewb
E: orangejuices@icqmail.com
D: music
S: ravage
E: dragon_69283@yahoo.com
D: Sprites
S: archvile46
E: pudge@att.net
D: levels
S: tony
E: awalker@air-internet.com
D: textures
S: spaceforce
E: spaceforce@snohost.com
D: levels
S: CheapAlert
S: gargoylol
S: leileilol
E: cheapalert@gmail.com
D: graphics, sounds, flats, sprites
N: Michael T. Cole
S: ShadowRunner
E: Clansr03@yahoo.com
D: levels
N: Kurt Kesler
E: kesler@fidnet.com
D: sprites
S: Isle
E: isle_bot@hotmail.com
D: textures
N: Ola Bjorling
S: Citrus
E: ukiro@ukiro.com
D: textures
S: ZarcyB
E: korgon_iii@hotmail.com
D: textures
S: diluted
E: shaggs2dope_00@hotmail.com
D: textures
S: Espi
E: esa.repo@phnet.fi
D: (a lot of) textures
N: Ralph Vickers
S: Ralphis
E: ralphis@slipgate.org
D: music
S: Sir Fragsalot
E: bssrpantella@hotmail.com
D: stories, sprites
N: Jeremy Stepp
E: jeremystepp@hotmail.com
D: textures
N: Nicholai Main
S: Oblivion
E: uzi666@juno.com
D: levels, fog colormap
S: KMan
E: kman@valveworld.com
D: textures, sprites
S: mystic
E: murray6@blueyonder.co.uk
D: levels
N: Jon Rimmer
S: Amtiskaw
S: Jon_R
E: jonr@frad.org
W: http://destruct.alkali.org/
D: textures
N: Richard M. Stallman
E: rms@gnu.org
W: http://www.gnu.org/
D: for being the final boss!
N: Vincent Fong
S: Vicious
E: vincentfong@freecall-uk.co.uk
D: musics
N: Toby Collins Jr.
S: tobester
E: tobester666@yahoo.com
D: music
N: Andrew Francis
S: locust
E: locust@iinet.net.au
D: textures
S: AirRaid
E: airraid666@yahoo.com
D: sprites, levels, textures
S: Jayextee
E: Jxt@Misery.co.uk
D: graphics, levels
S: Enjay
E: Enjay001@hotmail.com
D: sounds
N: Jonathan Dowland
E: jon+Chiew6ye@alcopop.org
W: http://jmtd.net/
D: Former admin, website, FTP host and nightlies; textures; scripts; levels; hires zealotism; sounds
S: Malice Rancor
E: malicerancor@hotmail.com
D: sprites
N: Dale Sells
S: mmnpsrsoskl
E: mmnpsrsoskl@hotmail.com
D: textures, graphics
S: Meat_Head
E: Forbidden_Planet@prodigy.net
D: textures
S: kaiser
E: kaiser@newdoom.com
D: levels
S: Slayer226
E: slayer226@hotmail.com
D: textures
S: Ebola
E: ebola_kaell@home.se
D: textures, sprites
S: Zeurkous
E: de_zeurkous@zonnet.nl
D: sprites, textures
N: Fredrik Johansson
E: fredrik.johansson@gmail.com
W: http://fredrikj.net/
D: textures, sprites
S: Lazer
E: dafshin@mediaone.net
D: textures, levels
N: Steve Dudzik
S: Lut
E: toruonda@home.com
D: sprites, levels
N: Joseph Chang
E: jchang@optusnet.com.au
D: sprites
S: Csabo
E: wadedit@marchmail.com
D: music
S: Draconio
E: draconio2001@yahoo.com
D: sounds
N: Dave Kiddell
S: Mewse
E: umkiddel@cc.umanitoba.ca
W: http://mewse.alkali.org/
D: graphics, Mewse!
S: Deathmaster213
E: deathmaster213@hotmail.com
D: art/textures
S: Hyena
E: trwhite@fgbc.org
D: sounds, musics, sprites, levels
S: Nrkn
E: nrkn@ihug.co.nz
D: textures
N: Tyler Pantella
S: Pickle Hammer
E: pickle_hammer@hotmail.com
D: musics
N: Alberto Bonis
S: Saint of Killers
E: alberto.bonis@libero.it
D: sprites/art
S: GeekMarine
E: cooljohn@birdmail.com
D: sprites, sounds
N: Tom Robinson
E: tom@alkali.org
W: http://www.junked.org/
D: A chunk of perl code
N: Patrick "Amarande" Kalinauskas
S: Amarande
E: amarande@gmail.com
D: levels
N: Sean Gauthier
S: Cacodemon Leader
E: gauthier.home@sympatico.ca
D: levels
N: Luke Cama
S: Spike
E: spikeycool@hotmail.com
D: sounds
S: Shaviro
E: maonth@nautrup.com
D: textures
S: Nightfang
E: nightfang@truelights.com
D: sprites
S: MDenham
E: tathetriam@aol.com
D: levels
S: SpinSpyder
E: blcrowley@hotmail.com
D: sprites
N: Jeremy Elder
S: SgtCrispy
E: sha_nigtha@yahoo.com
D: sounds, levels
S: Submerge
E: submerge_527@hotmail.com
D: sounds, sprites
S: Adamizer
E: adamizer9000@yahoo.com
D: aprites
N: Andrew Apted
E: ajapted@netspace.net.au
D: graphics, levels, patches, sprites
S: Zigmund
E: z_ozwell@hotmail.com
D: levels
S: kinkyfriend
N: Patrick Westermark
E: kinkyfriend85@hotmail.com
D: graphics
S: Railgunner
E: pcclassix@the-any-key.com
D: sprites, levels
S: bastetfurry
E: bastetfurry@nachtkatzen.de
D: levels
S: Lurker
E: ssjtrunks37@hotmail.com
D: levels, sprites, sounds
S: DarkStalker
E: darkstalker81@hotmail.com
D: textures
S: Scuba Steve
E: ray_stantz@hotmail.com
D: sprites, graphics
N: Kim Bach
S: Torn
E: Tornthedark@hotmail.com
D: levels
N: Mike Watson
S: Cyb
E: cyb@frad.org
W: http://cyb.alkali.org/
D: levels, sprites, lumps
N: Wouter van Oortmerssen
S: Aardappel
E: aardappel@planetquake.com
D: conceptual work and realisation
N: Alex Mao
S: Arioch
E: arioch@despayre.org
D: long term server hosting
N: Bill Koch
S: Bloodshedder
E: bloodshedder@doomcenter.com
D: sounds
N: Corwin Brence
S: WildWeasel
E: wildweasel_lemon@hotmail.com
D: sounds
S: WildMan
N: Rick Clark
E: rickclark58@yahoo.com
D: levels
S: sargebaldy
N: Owen Lloyd
E: lloydo@onid.orst.edu
D: levels
N: David Aramant
E: david_a00@excite.com
D: sprites
S: Silverwyvern
E: cindymcc@nbnet.nb.ca
D: graphics (skies)
S: mouse
S: lilwhitemouse
E: lilwhitemo@midmaine.com
D: sprites
N: Simon Howard
S: fraggle
E: idgames@soulsphere.org
W: https://soulsphere.org
D: project admin, scripting and build system, textures, sprites
N: Joe Dowland
E: jon+joefreedoom@alcopop.org
D: sounds
N: Jim McDougald
S: rellik
E: rellik_jmd@yahoo.com
D: FreeDM levels, graphics
N: Jason Root
S: hellbent
E: chesterules@yahoo.com
D: FreeDM levels
N: David Lawrence Ramsey
S: dolorous
E: pooka109@cox.net
D: sounds
S: Catoptromancy
E: catoptromancy@yahoo.com
D: levels, playtesting, bugfixes, textures
S: muffins.exe
D: sounds
S: RjY
E: rjy@users.sourceforge.net
W: http://rjy.org.uk/
D: levels
N: Claude A Freeman
S: CSonicGo
D: sounds
N: Eric Baker
E: eabaker@san.rr.com
S: The Green Herring
D: levels
E: hawkwinds_messages@hotmail.com
S: Hawkwind
D: levels
S: acc
D: levels
S: Siggi
D: levels
N: Miguel Suarez Gomez
E: thewadsfactorystaff@hotmail.com
S: Zok
D: levels
E: ghostlydeath@gmail.com
S: GhostlyDeath
D: musics, PC speaker sounds
N: Mark McGill-Smith
E: isbetterthanyou@hotmail.com
S: TheMisterCat
D: musics
N: Matthew Cibulas
E: rottking@sbcglobal.net
S: RottKing
D: sounds
N: Colin Kelly
E: bankthemighty@gmail.com
S: bank
D: sounds
N: Delano Cuzzucoli
E: delano501@gmail.com
S: Delano
D: sprites
N: Svante Ekholm
E: svante.ekholm@gmail.com
S: xerent
D: levels
N: Benjamin Debski
E: benjamin.debski@gmail.com
S: dabski
D: levels
N: G. Wessner
E: masterstilgar@yahoo.com
S: Stilgar
D: sounds
S: Jute
E: jutemail@gmail.com
D: music
N: Wesley D. Johnson
E: johnson2412@usgo.net
D: levels
N: Ulises Lozano
S: Urric Hammersong
E: calators@hotmail.com
D: sprites
N: Andrew Rehberger
E: malinku@live.com
S: Malinku
D: levels
S: Archfile
D: levels
S: Blastfrog
E: soliver486@gmail.com
D: graphics, sprites, sounds
N: Brett Harrell
S: Mechadon
E: mekaddonn@gmail.com
D: levels
S: nivha
D: levels
S: hex11
E: hex11@mail.com
D: levels
N: Luiz Henrique Gasparin Jerônimo
S: Xindage
E: xindage@gmail.com
D: levels, textures
S: Mithran Denizen
E: jlebl755@mtroyal.ca
D: sprites
S: Z86
D: sprites
N: Matt Cadirao
S: horncomposer
D: genmidi instruments
S: BaronOfStuff
W: https://www.youtube.com/user/BaronOfStuff
D: sprites
N: Josef Šustek
S: Paar
E: sustek.josef@gmail.com
D: levels
N: Dean Joseph
S: deathz0r
E: deathz0r@unidoom.org
D: levels
N: Alexandre-Xavier Labonté-Lamoureux
S: AXDOOMER
E: alexandrexavier@live.ca
D: patches
N: Daniel Jewell
S: Jewellds
E: jewellds@gmail.com
D: levels
N: Adrian Cabrera
E: cancer_kaoru@live.com
S: raymoohawk
W: http://raymoohawk.deviantart.com/
D: sprites
S: agaures
E: zalsorarakia@gmail.com
D: sprites
N: Mikael Haladyn
E: mikaelhhome@yahoo.dk
S: nub_hat
D: levels, musics
S: CaptainW
E: avortement.rate@gmail.com
D: graphics
N: Ilja Sara
E: ilja.sara@kahvipannu.com
D: levels
N: Mike Swanson
S: chungy
E: mikeonthecomputer@gmail.com
D: project admin, build system, repo maintenance
N: Cray Elliott
S: mp2e
E: MP2E@archlinux.us
D: lumps (demos, playtesting)
S: voltcom9
E: Earthbound.Glenn@gmail.com
D: level/chapter names
S: jmickle
E: jaymickle@gmail.com
D: music
S: doomkid
E: thedevilzworker@hotmail.com
D: freedm playtesting and demo participation
S: mogul
N: Jeremy Emerson
D: music
S: sergeant_mark_iv
N: Marcos Abenante
E: marcos.mk3@outlook.com
D: sprites
S: bloax
D: sprites
S: undead003
E: undead0003@gmail.com
D: sounds
S: angry_saint
E: mechanicalambassador@gmail.com
D: levels
S: noose
E: noozearts@gmail.com
D: sprites
S: mazmon
N: Maz Hades
E: mazhades@yahoo.com
D: sprites
S: jaws_in_space
N: Micah Petersen
E: jawsinspace@gmail.com
D: levels
S: eriance
N: Eric Ou
E: eriance@gmail.com
W: http://amuscaria.deviantart.com/
D: sprites
S: horrormovieguy
N: Reinaldo
E: crumbscrunchydelights@gmail.com
D: sprites
S: zrrion
N: Roth Smith
E: zrrion@gmail.com
W: http://zrrion.deviantart.com/
D: sprites
S: kracov
N: Kracov Bolkonski
E: kracov.wolf@gmail.com
W: http://kracov.org/
D: graphics
S: robotdog1
D: sprites, patches
E: mobiusx49@gmail.com
S: cwolfru
D: levels
S: Jimmy
N: James Paddock
E: jamespaddock@hotmail.com
D: levels
N: Michael Jurich
E: midwestgenius@gmail.com
D: levels
S: LuckyPunk
E: luckypunk322@gmail.com
D: sprites
S: Blueworrior
N: Lewis Harvey
E: BlueWorrior@hotmail.co.uk
D: musics
S: sajbear
N: Kristian Nilsen
E: sajber@sajber.info
W: http://sajber.info
D: level
S: Voros
N: Ayub Ahmed
E: ayubahmed2240@gmail.com
D: textures, lumps
S: Hexereticdoom
N: Angel C.F.
E: hexereticdoom@gmail.com
W: http://www.moddb.com/members/hexereticdoom
D: sprites
S: SeventhSentinel
N: James Hall
W: http://seventhsentinel.net23.net
D: sounds
S: Viscra Maelstrom
E: doomhunter_175@hotmail.com
D: musics
S: bytebeats
E: bytebytebeats@gmail.com
D: musics
S: KevinHEZ
N: Kevin Martins
E: kevinmss14@gmail.com
D: musics
S: agenten
E: wagnerc27@gmail.com
W: https://twitch.tv/gajmegenten/profile
D: textures
S: pan-te
D: levels
S: YukiHerz
N: Gabriel Antonio
E: gabriel.reinoso.1996@gmail.com
D: levels
S: JudgeDeadd
E: korodzik@lavabit.com
D: level names
S: DragonMorpheus
D: level names
S: cr0wb4r
D: level names
N: Edgar Muniz Berlinck
E: edgar.vv@gmail.com
D: Appstream XML files
S: Gentlepoke
E: doom@gpoke.com
W: http://gpoke.com/
D: level names
S: Heng
E: heng@deepthought.earth
D: sprites
S: uhbooh
E: Uhbooh2@hotmail.com
D: textures
S: Litrivin
D: textures
S: jupiter_ex
N: Matias M. Roldan
E: ttrgrmmtn@yahoo.com.ar
D: musics, sounds
N: Fernando Carmona Varo
S: ferk
E: ferkiwi@gmail.com
D: graphics (titlepic)
N: Kevin Caccamo
S: Talon1024
E: kevin@ciinet.org
D: textures
S: BobFromReboot
N: Bradley Lavigne
E: bradleylavigne@gmail.com
D: musics
S: Elon_Satoshi
E: elonsatoshi@riseup.net
D: sounds
S: Eradrop
E: samurai00020@walla.com
D: patches
S: Hambourgeois
D: flats, textures
S: Jared Deberjerak
D: textures
S: Mortrixs
D: c3m5
S: GooseJelly
N: Nathaniel Patasky
E: n.patasky
D: map26
S: Craneo
E: memod_99@hotmail.com
D: sprites: technospider reshading
freedoom-0.12.1/Makefile 0000664 0000000 0000000 00000036640 13553647753 0015066 0 ustar 00root root 0000000 0000000 # SPDX-License-Identifier: BSD-3-Clause
VERSION=$(shell git describe --abbrev=8 --dirty 2>/dev/null || echo v0.12.1)
WADS=wads
ASCIIDOC=asciidoc
ADOCOPTS=--backend=html5 --conf-file=.adoc-layout.conf
ASCIIDOC_MAN=a2x -f manpage
CPP=scripts/simplecpp
DEUTEX=deutex
DEUTEX_BASIC_ARGS=-v0 -rate accept
DEUTEX_ARGS=$(DEUTEX_BASIC_ARGS) -doom2 bootstrap/
FREEDOOM1=$(WADS)/freedoom1.wad
FREEDOOM2=$(WADS)/freedoom2.wad
FREEDM=$(WADS)/freedm.wad
OBJS=$(FREEDM) $(FREEDOOM1) $(FREEDOOM2)
.PHONY: clean dist
all: $(OBJS)
subdirs:
$(MAKE) -C lumps/dehacked # graphics/text depends on generated dehacked files
$(MAKE) VERSION=$(VERSION) -C graphics/text
$(MAKE) -C lumps/playpal
$(MAKE) -C lumps/colormap
$(MAKE) -C lumps/genmidi
$(MAKE) -C lumps/dmxgus
$(MAKE) -C lumps/textures
$(MAKE) -C bootstrap
# this is a useless dependency to force builds
force:
lumps/freedoom.lmp lumps/freedm.lmp: force
echo $(VERSION) > $@
# deutex doesnt allow redirects for the filenames in the texture
# entries, so we have to change the texture1 symlink to point
# to whichever wad we are working on
#---------------------------------------------------------
# freedm iwad
wadinfo_freedm.txt : buildcfg.txt subdirs lumps/freedoom.lmp lumps/freedm.lmp
$(CPP) -P -DFREEDM < $< > $@
$(FREEDM): wadinfo_freedm.txt subdirs
@mkdir -p $(WADS)
$(RM) $@
$(DEUTEX) $(DEUTEX_ARGS) -iwad -build wadinfo_freedm.txt $@
#---------------------------------------------------------
# phase 1 (udoom) iwad
wadinfo_phase1.txt: buildcfg.txt subdirs lumps/freedoom.lmp
$(CPP) -P -DPHASE1 < $< > $@
$(FREEDOOM1): wadinfo_phase1.txt subdirs
@mkdir -p $(WADS)
$(RM) $@
$(DEUTEX) $(DEUTEX_ARGS) -iwad -build wadinfo_phase1.txt $@
#---------------------------------------------------------
# phase 2 (doom2) iwad
wadinfo_phase2.txt: buildcfg.txt subdirs lumps/freedoom.lmp
$(CPP) -P -DPHASE2 < $< > $@
$(FREEDOOM2): wadinfo_phase2.txt subdirs
@mkdir -p $(WADS)
$(RM) $@
$(DEUTEX) $(DEUTEX_ARGS) -iwad -build wadinfo_phase2.txt $@
%.html: %.adoc
$(ASCIIDOC) $(ADOCOPTS) $<
manual/freedoom-manual.pdf: manual/manual.adoc
$(MAKE) -C manual
COPYING.txt: COPYING.adoc
unix2dos --add-bom --newfile $< $@
CREDITS.txt: CREDITS
unix2dos --add-bom --newfile $< $@
HTMLDOCS=NEWS.html README.html
TEXTDOCS=COPYING.txt CREDITS.txt
DISTDOCS=$(HTMLDOCS) $(TEXTDOCS) manual/freedoom-manual.pdf
dist: $(OBJS) $(DISTDOCS)
LC_ALL=C VERSION=$(VERSION) scripts/makepkgs freedm $(FREEDM) $(DISTDOCS)
LC_ALL=C VERSION=$(VERSION) scripts/makepkgs freedoom $(FREEDOOM1) $(FREEDOOM2) $(DISTDOCS)
json: $(OBJS)
ifndef JSON
@echo "Define JSON as the file to output." >&2
@exit 1
else
JSON=$(JSON) VERSION=$(VERSION) scripts/makejson
endif
doom.gpl: lumps/playpal/playpal-base.lmp
$(MAKE) -C lumps/playpal $@
mv lumps/playpal/$@ .
gimp-palette: doom.gpl
clean: wad-image-clean
$(RM) *.html doom.gpl $(OBJS) \
./COPYING.txt ./CREDITS.txt \
./wadinfo_phase1.txt \
./wadinfo_phase2.txt \
./wadinfo_freedm.txt \
./lumps/freedoom.lmp \
./lumps/freedm.lmp
-rmdir $(WADS)
$(MAKE) -C bootstrap clean
$(MAKE) -C dist clean
$(MAKE) -C graphics/text clean
$(MAKE) -C lumps/dehacked clean
$(MAKE) -C lumps/playpal clean
$(MAKE) -C lumps/colormap clean
$(MAKE) -C lumps/genmidi clean
$(MAKE) -C lumps/dmxgus clean
$(MAKE) -C lumps/textures clean
$(MAKE) -C manual clean
# Variables that are common to wad-image* targets.
WI_LEVELS := levels
WI_SCRIPTS := scripts
WI_PATH := $(shell command -v wad2image.py)
WI_HOME := $(if $(WAD2IMAGE_HOME),$(WAD2IMAGE_HOME),$(if $(WI_PATH),$(shell $(WI_PATH) \
--get-top-dir),$(WI_SCRIPTS)/wad2image))
WI_IMAGES := wad-images
WI_WAD_SPATH := wads,{top-dir}/wads,.,/usr/share/doom,/usr/local/doom
WI_ALL_OPTIONS := $(WI_OPTIONS) $(if $(WI_BW), --colors-images bw,) \
$(if $(WI_CMD), --show-cmd $(WI_CMD),) $(if $(WI_GIF), -d gif,) \
$(if $(WI_IMAGES), --out-dir $(WI_IMAGES),) $(if $(WI_SHOW), -s,) \
$(if $(WI_VERBOSE), -v,) $(if $(WI_WAD_SPATH), --wad-spath $(WI_WAD_SPATH),)
wad-image-common:
ifndef WI_IMAGES
$(error WI_IMAGES must be defined)
endif
ifndef WI_LEVELS
$(error WI_LEVELS must be defined)
endif
ifndef WI_SCRIPTS
$(error WI_SCRIPTS must be defined)
endif
ifndef WI_HOME
$(error WI_HOME must be defined)
endif
# Generating images for WADs in "levels" directory and show the result.
WI_LATEST := $(shell ls -1t $(WI_LEVELS)/*.wad | head -n 1)
WI_FILES := $(if $(WI_PATT), $(WI_LEVELS)/$(WI_PATT).wad, $(WI_LATEST))
wad-image: wad-image-common
@echo "Generating images for WADs in \"$(WI_LEVELS)\"."
$(WI_HOME)/bin/wad2image.py $(WI_ALL_OPTIONS) $(WI_FILES)
# Cleanup generated images. Structured this way for safety.
wad-image-clean: wad-image-common
$(RM) $(WI_IMAGES)/*
-rmdir $(WI_IMAGES)
# Diffing WADs in "levels" using git and show the diff."
wad-image-diff: wad-image-common
@echo "Diffing WADs in \"$(WI_LEVELS)\" using git."
$(WI_HOME)/integration/git-wad-diff.sh "$(WI_COMMIT)" "$(WI_LEVELS)" $(WI_ALL_OPTIONS)
# Help for wad2image.
wad-image-help: wad-image-common
@echo "Help for wad-image* targets and WI_* variable which can be used to see"
@echo "differences between WAD revisions, or to simply view WADs. The following targets"
@echo "depend on wad2image being installed with bin/wad2image.py in it being in the"
@echo "path, or alteratively wad2image being copied or symlinked to the \"$(WI_SCRIPTS)\""
@echo "directory. Images are created in \"$(WI_IMAGES)\". Each variable's description"
@echo "ends with \"Value:\" followed by that variable's current value. If no variables"
@echo "have been specified on the make command line then the value shown is the"
@echo "default value. Some variables are unset by default. wad2image can be downloaded"
@echo "from http://selliott.org/utilities/wad2image."
@echo ""
@echo " Targets:"
@echo ""
@echo " wad-image Generate generate images for WAD files that are in the"
@echo " workspace."
@echo " wad-image-clean Remove \"$(WI_IMAGES)\" as well as all files in it."
@echo " wad-image-diff Use git to generate diff image showing the differences"
@echo " between two revisions of WAD files. By default the"
@echo " difference is between latest HEAD and the workspace, but the"
@echo " WI_COMMIT variable can be used to generate other diffs."
@echo " wad-image-help This help message."
@echo ""
@echo " Variables:"
@echo ""
@echo " WI_BW Make diff images black or white (high contrast) instead of"
@echo " full color. This applies to wad-image-diff-only."
@echo " Value: $(WI_BW)"
@echo " WI_CMD Command used to display images. \"display\" is used if no"
@echo " value is specified. \"animate\" works well for animated"
@echo " GIFs. Value: $(WI_CMD)"
@echo " WI_COMMIT When the wad-image-diff target is invoked this variable"
@echo " specifies which revisions are compared. It's similar to"
@echo " git's \"commit\" argument. Value: $(WI_COMMIT)"
@echo " WI_GIF Create animated GIFs instead of color coded files for the"
@echo " diff. Value: $(WI_GIF)"
@echo " WI_HOME The location where wad2image is installed. By default PATH"
@echo " is searched for \"wad2image.py\". If it's found the"
@echo " enclosing installation directory is used. If it's not found"
@echo " $(WI_SCRIPTS)/wad2image is used. Value: $(WI_HOME)"
@echo " WI_IMAGES The output directory that will contain the images created."
@echo " Value: $(WI_IMAGES)"
@echo " WI_LEVELS Subdirectory with the level WADs. Value: $(WI_IMAGES)"
@echo " WI_OPTIONS Additional command line options for wad2image."
@echo " Value: $(WI_OPTIONS)"
@echo " WI_SHOW If set then show the images after creating them."
@echo " Value: $(WI_SHOW)"
@echo " WI_PATT Files patterns that are applied to files in the"
@echo " \"$(WI_LEVELS)\" directory without the \".wad\" suffix. For"
@echo " example, \"map0*\" to get MAP01 - MAP09. This applies to"
@echo " wad-image only. Value: $(WI_PATT)"
@echo " WI_VERBOSE If set then make wad2image more verbose."
@echo " Value: $(WI_VERBOSE)"
@echo " WI_WAD_SPATH The search path for WADs where a fully qualified path was"
@echo " not given. This is typically used for the IWAD. By default"
@echo " \"wads\" is searched first, so it helps to complete a build"
@echo " before generating images. Value: $(WI_WAD_SPATH)"
@echo ""
@echo " Examples:"
@echo ""
@echo " Verbosely create and display an image for the most recently modified WAD"
@echo " file in \"levels\":"
@echo " make wad-image WI_VERBOSE=t"
@echo ""
@echo " Create and display the image for MAP05:"
@echo " make wad-image WI_PATT=map05"
@echo ""
@echo " Verbosely create color coded diffs for changed files in the workspace:"
@echo " make wad-image-diff WI_VERBOSE=t"
@echo ""
@echo " Same as above but Yadex style (example of WI_OPTIONS):"
@echo " make wad-image-diff WI_VERBOSE=t WI_OPTIONS=\"-c yadex\""
@echo ""
@echo " Same as the above, but with high contrast black or white images, but"
@echo " without Yadex style:"
@echo " make wad-image-diff WI_VERBOSE=t WI_BW=t"
@echo ""
@echo " Same as above, but use animated GIFs to illustrate the diff instead of"
@echo " colors. Also, once the animated GIFs are created they'll be shown with"
@echo " the \"animate\" command:"
@echo " make wad-image-diff WI_VERBOSE=t WI_GIF=t WI_SHOW=t WI_CMD=animate"
@echo ""
@echo " Same as above, but illustrate the diff between two git revisions instead of"
@echo " the workspace:"
@echo " make wad-image-diff WI_VERBOSE=t WI_GIF=t WI_SHOW=t WI_CMD=animate \
WI_COMMIT=\"0c004ce~..0c004ce\""
# Test targets all of which are a dependency of "test".
# Test that WAD files have the expected map names.
test-map-names:
scripts/fix-map-names -t levels
# Run all tests. Add test-* targets above, and then as a dependency here.
test: test-map-names
@echo
@echo "All tests passed."
# Non-test targets that run scripts in the "scripts" directory.
# Fix the map names.
fix-map-names:
scripts/fix-map-names levels
%.6:
$(MAKE) ASCIIDOC_MAN="$(ASCIIDOC_MAN)" -C dist $@
%.png:
$(MAKE) -C dist $@
prefix?=/usr/local
bindir?=/bin
docdir?=/share/doc
mandir?=/share/man
waddir?=/share/games/doom
target=$(DESTDIR)$(prefix)
install-freedm: $(FREEDM) $(HTMLDOCS) manual/freedoom-manual.pdf \
freedm.6 freedm.png
install -Dm 644 dist/io.github.freedoom.FreeDM.desktop \
-t "$(target)/share/applications"
install -Dm 644 dist/io.github.freedoom.FreeDM.metainfo.xml \
-t "$(target)/share/metainfo"
install -Dm 755 dist/freedoom "$(target)$(bindir)/freedm"
install -Dm 644 dist/freedm.6 -t "$(target)$(mandir)/man6"
install -Dm 644 $(FREEDM) -t "$(target)$(waddir)"
install -Dm 644 dist/freedm.png -t "$(target)/share/icons"
install -Dm 644 CREDITS NEWS.html README.html -t "$(target)$(docdir)/freedm"
install -Dm 644 COPYING.adoc "$(target)$(docdir)/freedm/COPYING"
-install -Dm 644 manual/freedoom-manual.pdf -t "$(target)$(docdir)/freedm"
install-freedoom: $(FREEDOOM1) $(FREEDOOM2) $(HTMLDOCS) \
manual/freedoom-manual.pdf freedoom1.6 freedoom2.6 \
freedoom1.png freedoom2.png
install -Dm 644 dist/io.github.freedoom.Phase1.desktop \
-t "$(target)/share/applications"
install -Dm 644 dist/io.github.freedoom.Phase2.desktop \
-t "$(target)/share/applications"
install -Dm 644 dist/io.github.freedoom.Phase1.metainfo.xml \
-t "$(target)/share/metainfo"
install -Dm 644 dist/io.github.freedoom.Phase2.metainfo.xml \
-t "$(target)/share/metainfo"
install -Dm 755 dist/freedoom "$(target)$(bindir)/freedoom1"
install -Dm 755 dist/freedoom "$(target)$(bindir)/freedoom2"
install -Dm 644 dist/freedoom1.6 -t "$(target)$(mandir)/man6"
install -Dm 644 dist/freedoom2.6 -t "$(target)$(mandir)/man6"
install -Dm 644 $(FREEDOOM1) $(FREEDOOM2) -t "$(target)$(waddir)"
install -Dm 644 dist/freedoom1.png -t "$(target)/share/icons"
install -Dm 644 dist/freedoom2.png -t "$(target)/share/icons"
install -Dm 644 CREDITS NEWS.html README.html \
-t "$(target)$(docdir)/freedoom"
install -Dm 644 COPYING.adoc "$(target)$(docdir)/freedoom/COPYING"
-install -Dm 644 manual/freedoom-manual.pdf -t "$(target)$(docdir)/freedoom"
uninstall-freedm:
$(RM) \
"$(target)/share/applications/io.github.freedoom.FreeDM.desktop" \
"$(target)/share/metainfo/io.github.freedoom.FreeDM.metainfo.xml" \
"$(target)/share/icons/freedm.png" \
"$(target)$(bindir)/freedm" \
"$(target)$(mandir)/man6/freedm.6" \
"$(target)$(waddir)/freedm.wad" \
"$(target)$(docdir)/freedm/CREDITS" \
"$(target)$(docdir)/freedm/COPYING" \
"$(target)$(docdir)/freedm/NEWS.html" \
"$(target)$(docdir)/freedm/README.html" \
"$(target)$(docdir)/freedm/freedoom-manual.pdf"
-rmdir -p "$(target)/share/applications" \
"$(target)/share/metainfo" "$(target)/share/icons" \
"$(target)$(bindir)" "$(target)$(mandir)/man6" \
"$(target)$(waddir)" "$(target)$(docdir)/freedm"
uninstall-freedoom:
$(RM) \
"$(target)/share/applications/io.github.freedoom.Phase1.desktop" \
"$(target)/share/applications/io.github.freedoom.Phase2.desktop" \
"$(target)/share/metainfo/io.github.freedoom.Phase1.metainfo.xml" \
"$(target)/share/metainfo/io.github.freedoom.Phase2.metainfo.xml" \
"$(target)/share/icons/freedoom1.png" \
"$(target)/share/icons/freedoom2.png" \
"$(target)$(bindir)/freedoom1" \
"$(target)$(bindir)/freedoom2" \
"$(target)$(mandir)/man6/freedoom1.6" \
"$(target)$(mandir)/man6/freedoom2.6" \
"$(target)$(waddir)/freedoom1.wad" \
"$(target)$(waddir)/freedoom2.wad" \
"$(target)$(docdir)/freedoom/CREDITS" \
"$(target)$(docdir)/freedoom/COPYING" \
"$(target)$(docdir)/freedoom/NEWS.html" \
"$(target)$(docdir)/freedoom/README.html" \
"$(target)$(docdir)/freedoom/freedoom-manual.pdf"
-rmdir -p "$(target)/share/applications" \
"$(target)/share/metainfo" "$(target)/share/icons" \
"$(target)$(bindir)" "$(target)$(mandir)/man6" \
"$(target)$(waddir)" "$(target)$(docdir)/freedoom"
install: install-freedm install-freedoom
uninstall: uninstall-freedm uninstall-freedoom
freedoom-0.12.1/NEWS.adoc 0000664 0000000 0000000 00000017311 13553647753 0015024 0 ustar 00root root 0000000 0000000 = Freedoom project news
== 0.12.1 (2019-10-22)
=== General
* The HTML documentation (eg, +NEWS+ and +README+ files) are
generated with a style based on _Freedoom_’s own website, rather
than the default AsciiDoc styling.
* _Phase 2_’s internal DEMO1 has been replaced, thanks to some odd
vanilla quirks that could cause it to desync in some (but not all)
conditions.
=== Levels
* The sailor monster type is formally banished from _Freedoom_’s own
levels, and remaining uses of it were removed.
=== Manual
* Incongruities between the actual game and manual have been fixed.
=== Build system
* The `make install` targets have been consolidated to behave more
similarly to how the pre-built zip distributions are: a split
between _FreeDM_ and _Phase 1+2_, rather than installing each of
the tree IWADs independently (and thus getting their own
+/usr/share/doc+ directories, for instance).
== 0.12.0 (2019-10-10)
=== General
* We now have a manual rendered to beautiful PDF format. Thanks to
Simon Howard, the project’s founder.
* A strong focus on vanilla compatibility has been sought for this
release. Most, if not all, levels should work now.
* _Final Doom_ compatibility de-emphasized. Where it creates
conflicts with _Doom II_ mods or texture definitions, we prefer
the _Doom II_ side of things. _Final Doom_-specific maps and mods
may never look completely right in _Freedoom_, as a result.
=== Levels
* _FreeDM_ has seen a major overhaul, with most maps being modified,
with new additions and removals of the weaker levels. It now
benefits from the use of Aquatex and Egyptian textures in some of
its levels, giving a more vibrant feel than before.
* _Phase 1_ gets a lot of mapping love in this round, fleshing out
the levels and tweaking difficulty levels so easy, normal, and
hard are all accounted for. There is a new C3M5 by Mortrixs.
* _Phase 2_ MAP01 saw an overhaul, simplifying its design in
significant ways to improve the flow around the level.
* Two maps in _Phase 2_ were replaced due to being recreations of
_Doom II_ maps. Jayexetee and GooseJelly get credits for the new
ones, in MAP06 and MAP26.
* Maps in _Phase 2_ in general have had some slight re-arrangement
based on difficulty levels and themes. A new MAP06 by Jayexetee
is included, the old one taking the MAP18 slot.
* All levels are now guaranteed to have co-op and deathmatch starts.
=== Graphics
* New power-up (stealth, overdrive, and ultra-overdrive) sprites.
* New necromancer (arch-vile) sprites by Urric.
* Some weapon and ammo sprites have been tweaked and improved.
* Completed and enhanced set of _Evilution_ and _Plutonia_ textures.
* New skull-switches by MissLav.
* New SKY4 based on an astronomy photograph.
* Tweaked player sprites and HUD face by Ferk.
=== Music
* New tracks in C1M2, C2M3, C2M8, MAP03, MAP12, MAP22, MAP25, MAP26,
MAP27, DM03, DM06, DM09, DM17, DM24, DM31, and DM32.
* All files in-tree have been renamed from *.mus to *.mid. The file
format must always be MIDI. This makes it easy on music composers
to actually work with the files.
=== Unix script and metadata
* Metainfo (formerly appdata) and desktop files have been brought up
to the latest standard specifications and recommendations, using
reverse-DNS for the project identifier, and a self-evaluated
content rating.
* The launch shell-script changed the `PORT` environment variable to
`DOOMPORT` to avoid conflicts with the genericly-named `PORT`. It
also builds a sensible default `DOOMWADPATH` environment variable
to assist ports that do not have a hard-coded fallback.
* The script no longer tries to look for `boom`, `zdoom`, nor
`prboom` by default, as these are ports no longer maintained.
=== Build system
* Freedoom’s build system now has a hard dependency on Python 3, in
anticipation of Python 2’s end-of-life.
* We have moved from ImageMagick to Pillow, a Python library for
graphics manipulation. It provides faster build times as well as
API stability.
* GIF files have been replaced with PNG files. True PNG file format
transparency is used instead of a cyan background.
* `ASCIIDOC` and `ASCIIDOC_MAN` variables have been added to the
Makefile to control the AsciiDoc implementation used to generate
HTML and man page files.
== 0.11.3 (2017-07-18)
* Builds with DeuTex 5.0 and newer.
== 0.11.2 (2017-03-15)
* Missing multiplayer starts have been added to several levels.
* A few mapping errors were repaired by changing sector heights.
Speedrunners can better appreciate smooth flow through the levels.
* Easy and normal difficulty levels have been tweaked.
* Par times for _Phase 1_ have been added.
* Cleaned up the title screen using the _Freedoom_ font for “Phase
1” and “Phase 2” on-screen.
== 0.11.1 (2017-02-22)
* 1% armor bonus picks are recolored from red to green. They were
too easily confused for health pickups.
* New _TNT: Evilution_ compatible textures.
* New pain bringer and pain lord sprites, replacing old concept
art-derived ones.
* A few mapping errors are fixed, including misaligned textures,
leftover Boom specials, and it should no longer be possible to get
stuck between a rock and a tree in _Phase 1_ C1M1.
* Brand-new _Phase 1_ C3M1, replacing the old _Doom_-inspired level.
* Widescreen statusbar for ZDoom removed. This created
incompatibility with some mods.
== 0.11 (2017-02-16)
* _Freedoom_ is now a limit-removing game rather than using Boom
specials.
* Lots of new music.
* New levels, including a new C1M1 for _Phase 1_.
* Aquatex: over 200 new textures for mappers to use.
* New intermission screens.
* Some new weapon sprites: new pistol and new pickups.
* New medkit and armor pickup sprites.
* New project logo
== 0.10.1 (2015-12-23)
* Repairs an incompatibility in _Phase 1_ C3M7 with Boom 2.02.
* Fully-completed sprite set for the flame bringer.
== 0.10 (2015-12-16)
* Brand new status bar.
* New sprites for the serpent and orb monsters.
* New HUD graphics for the single- and double-barreled shotguns,
missile launcher, and SKAG-1337.
* New pain sounds for many monsters and the player.
* New maps in _Phase 1_ and _Phase 2_.
== 0.9 (2014-10-14)
* New file names that no longer conflict with _Doom_’s
** +freedoom1.wad+ is _Freedoom: Phase 1_ -- compatible with _The
Ultimate Doom_.
** +freedoom2.wad+ is _Freedoom: Phase 2_ -- compatible with _Doom
II_ and _Final Doom_.
* _FreeDM_ and _Phase 1_ have grown out of the shadows of the
project and have seen rapid advances, largely led by Xindage, our
prominent Brazilian contributor.
* New text font from Mechadon to replace the old one in all menus,
in-game text, and status-bar HUD.
* New zombie, shotgun zombie, and assault tripod sprites by a
skilled pixel artist, raymoohawk.
* New sounds for the dark soldier by jewellds.
* More complete support for _Final Doom_ mods, adding many more
textures missing to support mods for both _TNT: Evilution_ and
_The Plutonia Experiment_, thanks to fraggle and AXDOOMER.
== 0.8 (2014-01-01)
* _Ultimate Freedoom_’s episode 4 is now the Cacoward-winning _Double Impact_.
* Many maps have been updated
* Improved sprites and sounds
* _FreeDM_ is now vanilla-compatible and has quite a few new maps.
* A BEX file is included in the IWADs, which allows compatible
source ports to replace many strings in the game, such as level
names, weapon pickups, and intermission text.
// TODO: Older news
//
// 0.8 was around the time that summarized lists of changes were
// started, with very sparse information about older releases.
freedoom-0.12.1/README.adoc 0000664 0000000 0000000 00000025403 13553647753 0015206 0 ustar 00root root 0000000 0000000 = Freedoom
The Freedoom project aims to create a complete, free content first
person shooter game, but _Freedoom_ by itself is just the raw material
for a game. It must be paired with a compatible _Doom_ engine to be
played.
There is a massive https://doomwiki.org/wiki/Idgames_archive[back
catalog], spanning over two decades, containing thousands of _Doom_
levels and other modifications (“mods”) made by fans of the game.
_Freedoom_ aims to be compatible with these and allows most to be
played without the need to use non-free software.
_Freedoom_ is actually three games in one, consisting of two
single-player oriented campaigns and one set of levels designed
exclusively for multiplayer deathmatch:
[horizontal]
*Freedoom: Phase 1*:: Four chapters, nine levels each, totalling 36
levels. This game aims for compatibility with _The Ultimate Doom_
mods, also known as plain _Doom_ or _Doom 1_.
*Freedoom: Phase 2*:: 32 levels in one long chapter, featuring extra
monsters and a double-barrelled shotgun. This project aims for
compatibility with _Doom II_ mods.
*FreeDM*:: A 32-level game designed for competitive deathmatch play.
The engine uses a single file, such as +freedoom2.wad+, that contains
all the game data such as graphics, sound effects, music, and so on.
This file is often called an “IWAD” by those in the _Doom_ and
_Freedoom_ communities. While the _Doom_ engine source code is free,
you would normally still need one of the proprietary data files from
https://www.idsoftware.com/[id Software] to play _Doom_. _Freedoom_
aims to create a free alternative: combined with the GPL-licensed
_Doom_ source code, this results in a completely free game.
For more information, see https://freedoom.github.io/.
== How to play
Since _Freedoom_ is only the game data, you will still need to
download an engine separately. These are also often termed “source
ports” by the community. There are an overwhelming number of choices
available, a lengthy list of which is available on the
https://doomwiki.org/wiki/Source_port[Doom Wiki].
One particularly recommended by the _Freedoom_ project is
https://zdoom.org/[GZDoom]. This engine offers good support for
single-player, multi-player, and the majority of mods created for both
_Doom_ and _Freedoom_.
On Windows, you should place _Freedoom_’s data files (those ending
with +.wad+) alongside the engine (eg, +odamex.exe+). On Unix-like
systems, these data files should go in either +/usr/share/games/doom+
or your home directory. If _Freedoom_ comes packaged as part of your
operating system distribution, it should already be installed into the
proper location.
Hopefully, your engine of choice should already be capable of running
_Freedoom_ without extra configuration. This may not be the case,
however, if the engine does not recognize any of the filenames for
_Freedoom_, and might require manual intervention to make it so. One
of the following options should solve it:
* Use the +-iwad+ command line parameter. For example, to play
Phase 2, you can enter +-iwad freedoom2.wad+ either at a command
line, or adding it to an application shortcut.
* Use the +DOOMWADPATH+ environment variable. Many engines support
this variable to add directories and/or files to their search
path. The exact syntax matches your operating system’s normal
+PATH+ environment variable.
* Rename the game files. This may be a bit crude, but you can
rename the files to match those of _Doom_’s. This is often the
easiest quick-fix, although it is normally desirable to use one of
the above methods if possible.
** +freedoom1.wad+ can be renamed to +doom.wad+
** +freedoom2.wad+ can be renamed to +doom2.wad+
** +freedm.wad+ can be renamed to +doom2.wad+
Additionally, for Unix-like operating systems, such as GNU/Linux or a
BSD variant, _Freedoom_ may be packaged and installed with programs
named +freedoom1+, +freedoom2+, and +freedm+ that automatically run an
engine for proper play. Desktop files may also be installed so that
you can start the game using a graphical interface and avoid the
command line altogether.
== What “free” means
When we speak of free content or software, we refer to the movement in
which your freedoms to use, copy, modify, and study a work is not
infringed. For example, you may freely use _Freedoom_ for any purpose
you see fit, you may redistribute it to anyone without needing to ask
for permission, you may modify it (provided you keep the license
intact, see `COPYING`), and you may study it--for example, to see how
an “IWAD” is built. To facilitate this, you can get the full source
code for _Freedoom_, in this case, in the form of a DeuTex tree.
You may read more about free software at the https://www.gnu.org/[GNU]
and https://www.fsf.org/[Free Software Foundation] websites.
== Contributing to Freedoom
Contributions to _Freedoom_ are always welcome, however there are a
few guidelines that should be followed:
=== Intellectual property
We know people hate legalese, but this is important. This applies to
*everything* which is submitted.
You must be careful when basing on existing graphics or sounds. Most
_Doom_ projects are lax on reusing intellectual property--there are
many mods which contain modified _Doom_ sprites, for example.
However, due to the nature of this project, we do not have the same
liberty to rip as we please.
The general rules go as follows:
* You must have permission for everything you submit. If you make
your own resources, do not base on resources from _Doom_ or any
other restricted work. If you take work from other places, please
make sure that the work is freely-licensed or that you obtain
permission to include it in the _Freedoom_ project. They may not
place additional restrictions compared to the normal _Freedoom_
license.
* Do not try to emulate _Doom_ resources exactly. Where possible,
put effort to make new versions look visibly different from
_Doom_. This is a tough call, because our compatibility with
_Doom_ mods limits how far we can deviate, but it is feasible.
* Be especially careful of “free textures” (or “free sounds” or
“free graphics”) sites. Although these would appear at first to
be okay to use, many are free for “non-commercial use only.”
One of the things we want to be able to do is put this in
GNU/Linux distributions (which can be sold or developed
commercially).
=== Levels
All levels for _Freedoom_ must be vanilla-compatible, requiring an
expanded-limits or limit-removing engine is not permissible. This
means you may not exceed the limits of the original _Doom_ engine, and
do not depend on additional mapping features. Levels should be in
_Doom_’s original format, not in “Hexen”-format.
It is sensible to also heed the following guidelines:
* Make sure that skill levels are implemented, and that all
multiplayer start points, both cooperative and deathmatch, are
present.
* Try to make levels appropriately difficult for their position
within the progression of the game. Also bear in mind that not
all players may be as skilled a player as you.
* Do not use tricks that exploit _Doom_’s software renderer; some
engines, especially those that use hardware accelerated rendering,
may not render it properly. Examples of tricks to avoid include
those used to simulate 3D bridges and “deep water” effects.
* While unrestricted by limits, do not make excessively complicated
scenes. It is desirable that _Freedoom_ levels should be playable
on low-powered hardware, such as phones and old computers.
* Test your levels in https://www.chocolate-doom.org/[Chocolate
Doom] to make sure that vanilla compatibility is maintained. This
is an engine with strict adherence to vanilla Doom limits and
bugs, and working in it assures that levels can be played with any
_Doom_ engine.
=== Graphics
Graphics should generally have the same color and size as the original
_Doom_ graphics, as to remain compatible with mods. Otherwise, levels
may end up looking like a nightmare in design. They may be
thematically different as long as it doesn’t clash.
_Doom_ uses a fictional corporation abbreviated as “UAC:” this is
trademarked by id Software and cannot be used in _Freedoom_. Instead,
use the initials “AGM” for _Freedoom_.
=== Documentation
_Freedoom_ always needs help with documentation, so please send your
patches, but keep in mind:
* We use http://asciidoc.org/[AsciiDoc] for writing the
documentation. AsciiDoc is a simple plaintext-based format which
is simple to read and write in its source form, and can generate
nice HTML documents out of them.
* Headers are formated in a wiki-style format, this makes it easier
for Vim (perhaps other editors, too) to automatically re-format
text.
* Text is kept at 72 characters wide. In Vim, you can set the
editor to automatically insert line breaks as you’re typing by
performing `set textwidth=72`. Special exceptions to the width
rule might be allowed when necessary (for example, inserting long
URLs).
=== Submitting your work
The most common, and a fairly simple method, to submit your work is by
posting it on the
https://www.doomworld.com/forum/17-freedoom/[Freedoom forum] on
Doomworld Forums. This allows a great number of people to review the
contribution and provide feedback, although the registration process
is known to be cumbersome.
An alternative to using the forum, is to post your submission on the
https://github.com/freedoom/freedoom/issues[issue tracker], which may
also be peer-reviewed and provide a feedback cycle.
Unfortunately, the Freedoom project cannot provide hosting space in
the form of a web page nor FTP, however there are many free file hosts
to use when you need a location to upload files. Sites and services
such as https://www.dropbox.com/[Dropbox] and
https://mega.co.nz/[Mega], as well as others, are common and should be
simple to use.
==== Crediting information
_Freedoom_ is made up of submissions from many people all over the
globe. All of them, and you, deserve credit! Please do not forget to
provide your name and email when submitting resources.
==== Using Git
You can also commit on a clone of the _Freedoom_ repository, although
this is a technical task and it is okay to let other _Freedoom_
maintainers to do it instead: that is our normal mode of operation.
However, pull requests are much appreciated and you may submit them in
any manner you wish, with GitHub’s direct pull requests being the
simplest, but by far not the only means.
Freedoom uses the commit message style commonly seen in distributed
version control systems, adopted by projects such as Linux and Git.
For an explanation of this style, see
https://chris.beams.io/posts/git-commit/[How to Write a Git Commit
Message].
freedoom-0.12.1/bootstrap/ 0000775 0000000 0000000 00000000000 13553647753 0015432 5 ustar 00root root 0000000 0000000 freedoom-0.12.1/bootstrap/Makefile 0000664 0000000 0000000 00000000243 13553647753 0017071 0 ustar 00root root 0000000 0000000 # Build a fake IWAD to bootstrap deutex
IWAD=./doom2.wad
$(IWAD): ../lumps/playpal/playpal-base.lmp
./bootstrap < $< > $@
clean:
$(RM) $(IWAD)
.PHONY: clean
freedoom-0.12.1/bootstrap/README 0000664 0000000 0000000 00000001004 13553647753 0016305 0 ustar 00root root 0000000 0000000 This is the bootstrap WAD builder.
Deutex requires an IWAD to build wads and will refuse to build a WAD if
an IWAD is not provided. The script here creates a minimal IWAD file that
contains all the lumps deutex needs: PLAYPAL (the freedoom PLAYPAL),
an empty TEXTURE1 lump and a PNAMES lump with one lump in (deutex needs
PNAMES lumps to have at least one entry)
Because deutex includes all textures from the parent iwad when building
WADs, it is important that the bootstrap wad has as few textures as
possible.
freedoom-0.12.1/bootstrap/bootstrap 0000775 0000000 0000000 00000002317 13553647753 0017400 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python3
import sys
import struct
def read():
try:
return sys.stdin.buffer.read()
except AttributeError:
return sys.stdin.read()
def write(out):
try:
sys.stdout.buffer.write(out)
except AttributeError:
sys.stdout.write(out)
def main():
# read PLAYPAL from stdin, write minimal doom2.wad to stdout
if sys.stdin.isatty():
print(
"Usage: %s < playpal.lmp > doom2.wad" % sys.argv[0],
file=sys.stderr,
)
sys.exit(1)
# three lumps needed - see bootstrap/README.txt
lumps = [
(b"PLAYPAL", read()),
(b"TEXTURE1", struct.pack("i", 0)), # empty texture1
(b"PNAMES", struct.pack("i8s", 1, b"")),
] # single pname
# calculate wad directory (lump offsets etc.)
pos = 12
waddir = []
for name, data in lumps:
waddir.append((pos, len(data), name))
pos += len(data)
# write wad header
write(struct.pack("4sii", b"IWAD", len(waddir), pos))
# write lump contents
for name, data in lumps:
write(data)
# write wad directory
for i in waddir:
write(struct.pack("ii8s", *i))
if __name__ == "__main__":
main()
freedoom-0.12.1/buildcfg.txt 0000664 0000000 0000000 00000110132 13553647753 0015733 0 ustar 00root root 0000000 0000000 ; SPDX-License-Identifier: BSD-3-Clause
;
; Freedoom wadinfo build file
;
; This is parsed by cpp which allows configuring for Phase 1, Phase 2,
; and FreeDM
;
; -DPHASE2 to build for Phase 2
; -DPHASE1 to build for Phase 1
;
; sanity checks:
#ifdef FREEDM
#define PHASE2
#endif
#ifdef PHASE2
#undef PHASE1
#endif
; List of levels
[levels]
#ifndef PHASE2
E1M1 = c1m1
E1M2 = c1m2
E1M3 = c1m3
E1M4 = c1m4
E1M5 = c1m5
E1M6 = c1m6
E1M7 = c1m7
E1M8 = c1m8
E1M9 = c1m9
E2M1 = c2m1
E2M2 = c2m2
E2M3 = c2m3
E2M4 = c2m4
E2M5 = c2m5
E2M6 = c2m6
E2M7 = c2m7
E2M8 = c2m8
E2M9 = c2m9
E3M1 = c3m1
E3M2 = c3m2
E3M3 = c3m3
E3M4 = c3m4
E3M5 = c3m5
E3M6 = c3m6
E3M7 = c3m7
E3M8 = c3m8
E3M9 = c3m9
E4M1 = c4m1
E4M2 = c4m2
E4M3 = c4m3
E4M4 = c4m4
E4M5 = c4m5
E4M6 = c4m6
E4M7 = c4m7
E4M8 = c4m8
E4M9 = c4m9
#else /* #ifndef PHASE2 */
#ifdef FREEDM
MAP01 = dm01
MAP02 = dm02
MAP03 = dm03
MAP04 = dm04
MAP05 = dm05
MAP06 = dm06
MAP07 = dm07
MAP08 = dm08
MAP09 = dm09
MAP10 = dm10
MAP11 = dm11
MAP12 = dm12
MAP13 = dm13
MAP14 = dm14
MAP15 = dm15
MAP16 = dm16
MAP17 = dm17
MAP18 = dm18
MAP19 = dm19
MAP20 = dm20
MAP21 = dm21
MAP22 = dm22
MAP23 = dm23
MAP24 = dm24
MAP25 = dm25
MAP26 = dm26
MAP27 = dm27
MAP28 = dm28
MAP29 = dm29
MAP30 = dm30
MAP31 = dm31
MAP32 = dm32
#else /* #ifdef FREEDM */
MAP01
MAP02
MAP03
MAP04
MAP05
MAP06
MAP07
MAP08
MAP09
MAP10
MAP11
MAP12
MAP13
MAP14
MAP15
MAP16
MAP17
MAP18
MAP19
MAP20
MAP21
MAP22
MAP23
MAP24
MAP25
MAP26
MAP27
MAP28
MAP29
MAP30
MAP31
MAP32
#endif /* #ifdef FREEDM */
#endif /* #ifndef PHASE2 */
; List of data Lumps
[lumps]
PLAYPAL
COLORMAP
GENMIDI
FREEDOOM
; Big font used by ZDoom-based ports for menu text.
DBIGFONT
#ifdef FREEDM
DEHACKED = fdm_deh
ZMAPINFO = fdmmpinf
ENDOOM = endoomdm
FREEDM
#else
#ifdef PHASE1
DEHACKED = p1_deh
#else
DEHACKED = p2_deh
#endif
ENDOOM
#endif
#ifdef PHASE2
DMXGUSC = dmxgus
#else
DMXGUS
#endif
#ifdef PHASE2
#ifdef FREEDM
DEMO1 = demo1_dm
DEMO2 = demo2_dm
DEMO3 = demo3_dm
DEMO4 = demo4_dm
#else
DEMO1 = demo1_p2
DEMO2 = demo2_p2
DEMO3 = demo3_p2
DEMO4 = demo4_p2
#endif
#else /* not PHASE2 */
DEMO1 = demo1_p1
DEMO2 = demo2_p1
DEMO3 = demo3_p1
DEMO4 = demo4_p1
#endif /* #ifdef PHASE2 */
; Textures:
#ifndef PHASE2
TEXTURE1 = fd1txtr1
TEXTURE2 = fd1txtr2
PNAMES = fd1pname
#else
#ifdef FREEDM
TEXTURE1 = fdmtxtr1
PNAMES = fdmpname
#else
TEXTURE1 = fd2txtr1
PNAMES = fd2pname
#endif
#endif
; List of Sounds
[sounds]
DSPISTOL
DSSHOTGN
DSSGCOCK
DSSAWUP
DSSAWIDL
DSSAWFUL
DSSAWHIT
DSRLAUNC
DSRXPLOD
DSFIRSHT
DSFIRXPL
DSPSTART
DSPSTOP
DSDOROPN
DSDORCLS
DSSTNMOV
DSSWTCHN
DSSWTCHX
DSPLPAIN
DSDMPAIN
DSPOPAIN
DSSLOP
DSITEMUP
DSWPNUP
DSOOF
DSTELEPT
DSPOSIT1
DSPOSIT2
DSPOSIT3
DSBGSIT1
DSBGSIT2
DSSGTSIT
DSBRSSIT
DSSGTATK
DSCLAW
DSPLDETH
DSPDIEHI
DSPODTH1
DSPODTH2
DSPODTH3
DSBGDTH1
DSBGDTH2
DSSGTDTH
DSBRSDTH
DSPOSACT
DSBGACT
DSDMACT
DSNOWAY
DSBAREXP
DSPUNCH
DSTINK
DSBDOPN
DSBDCLS
DSITMBK
DSGETPOW
DSPLASMA
DSBFG
DSCACSIT
DSCYBSIT
DSSPISIT
DSSKLATK
DSCACDTH
DSSKLDTH
DSCYBDTH
DSSPIDTH
DSHOOF
DSMETAL
#ifdef PHASE2
DSDSHTGN
DSDBOPN
DSDBCLS
DSDBLOAD
DSVIPAIN
DSMNPAIN
DSPEPAIN
DSBSPSIT
DSKNTSIT
DSVILSIT
DSMANSIT
DSPESIT
DSSKEPCH
DSVILATK
DSSKESWG
DSBSPDTH
DSVILDTH
DSKNTDTH
DSPEDTH = dummy
DSSKEDTH
DSBSPACT
DSBSPWLK = dummy
DSVILACT
DSFLAME = dummy
DSFLAMST = dummy
DSBOSPIT
DSBOSCUB
DSBOSSIT
DSBOSPN
DSBOSDTH
DSMANATK
DSMANDTH
DSSSSIT
DSSSDTH
DSKEENPN
DSKEENDT
DSSKEACT
DSSKESIT
DSSKEATK
DSRADIO
#endif /* #ifdef PHASE2 */
; pc speaker effects
DPPISTOL
DPSHOTGN
DPSGCOCK
DPSAWUP
DPSAWIDL
DPSAWFUL
DPSAWHIT
DPRLAUNC
DPRXPLOD
DPFIRSHT
DPFIRXPL
DPPSTART
DPPSTOP
DPDOROPN
DPDORCLS
DPSTNMOV
DPSWTCHN
DPSWTCHX
DPPLPAIN
DPDMPAIN
DPPOPAIN
DPSLOP
DPITEMUP
DPWPNUP
DPOOF
DPTELEPT
DPPOSIT1
DPPOSIT2
DPPOSIT3
DPBGSIT1
DPBGSIT2
DPSGTSIT
DPBRSSIT
DPSGTATK
DPCLAW
DPPLDETH
DPPDIEHI
DPPODTH1
DPPODTH2
DPPODTH3
DPBGDTH1
DPBGDTH2
DPSGTDTH
DPBRSDTH
DPPOSACT
DPBGACT
DPDMACT
DPNOWAY
DPBAREXP
DPPUNCH
DPTINK
DPBDOPN
DPBDCLS
DPITMBK
DPGETPOW
DPPLASMA
DPBFG
DPCACSIT
DPCYBSIT
DPSPISIT
DPSKLATK
DPCACDTH
DPSKLDTH
DPCYBDTH
DPSPIDTH
DPHOOF
DPMETAL
#ifdef PHASE2
DPDSHTGN
DPDBOPN
DPDBCLS
DPDBLOAD
DPVIPAIN
DPMNPAIN
DPPEPAIN
DPBSPSIT
DPKNTSIT
DPVILSIT
DPMANSIT
DPPESIT
DPSKEPCH
DPVILATK
DPSKESWG
DPBSPDTH
DPVILDTH
DPKNTDTH
DPPEDTH
DPSKEDTH
DPBSPACT
DPBSPWLK
DPVILACT
DPFLAME
DPFLAMST
DPBOSPIT
DPBOSCUB
DPBOSSIT
DPBOSPN
DPBOSDTH
DPMANATK
DPMANDTH
DPSSSIT
DPSSDTH
DPKEENPN
DPKEENDT
DPSKEACT
DPSKESIT
DPSKEATK
DPRADIO
#endif /* #ifdef PHASE2 */
; List of Musics
[musics]
#ifndef PHASE2
D_E1M1 = D_C1M1
D_E1M2 = D_C1M2
D_E1M3 = D_C1M3
D_E1M4 = D_C1M4
D_E1M5 = D_C1M5
D_E1M6 = D_C1M6
D_E1M7 = D_C1M7
D_E1M8 = D_C1M8
D_E1M9 = D_C1M9
D_INTER
D_INTRO
D_VICTOR
D_INTROA
D_E2M1 = D_C2M1
D_E2M2 = D_C2M2
D_E2M3 = D_C2M3
D_E2M4 = D_C2M4
D_E2M5 = D_C2M5
D_E2M6 = D_C2M6
D_E2M7 = D_C2M7
D_E2M8 = D_C2M8
D_E2M9 = D_C2M9
D_E3M1 = D_C3M1
D_E3M2 = D_C3M2
D_E3M3 = D_C3M3
D_E3M4 = D_C3M4
D_E3M5 = D_C3M5
D_E3M6 = D_C3M6
D_E3M7 = D_C3M7
D_E3M8 = D_C3M8
D_E3M9 = D_C3M9
D_BUNNY
#else /* #ifndef PHASE2 */
; doom 2 music
D_READ_M
D_DM2TTL
D_DM2INT
#ifndef FREEDM
D_RUNNIN = D_MAP01
D_STALKS = D_MAP02
D_COUNTD = D_MAP03
D_BETWEE = D_MAP04
D_DOOM = D_MAP05
D_THE_DA = D_MAP06
D_SHAWN = D_MAP07
D_DDTBLU = D_MAP08
D_IN_CIT = D_MAP09
D_DEAD = D_MAP10
D_STLKS2 = D_MAP11
D_THEDA2 = D_MAP12
D_DOOM2 = D_MAP13
D_DDTBL2 = D_MAP14
D_RUNNI2 = D_MAP15
D_DEAD2 = D_MAP16
D_STLKS3 = D_MAP17
D_ROMERO = D_MAP18
D_SHAWN2 = D_MAP19
D_MESSAG = D_MAP20
D_COUNT2 = D_MAP21
D_DDTBL3 = D_MAP22
D_AMPIE = D_MAP23
D_THEDA3 = D_MAP24
D_ADRIAN = D_MAP25
D_MESSG2 = D_MAP26
D_ROMER2 = D_MAP27
D_TENSE = D_MAP28
D_SHAWN3 = D_MAP29
D_OPENIN = D_MAP30
D_EVIL = D_MAP31
D_ULTIMA = D_MAP32
#else /* FREEDM */
; FreeDM has different music:
D_RUNNIN = D_DM01
D_STALKS = D_DM02
D_COUNTD = D_DM03
D_BETWEE = D_DM04
D_DOOM = D_DM05
D_THE_DA = D_DM06
D_SHAWN = D_DM07
D_DDTBLU = D_DM08
D_IN_CIT = D_DM09
D_DEAD = D_DM10
D_STLKS2 = D_DM11
D_THEDA2 = D_DM12
D_DOOM2 = D_DM13
D_DDTBL2 = D_DM14
D_RUNNI2 = D_DM15
D_DEAD2 = D_DM16
D_STLKS3 = D_DM17
D_ROMERO = D_DM18
D_SHAWN2 = D_DM19
D_MESSAG = D_DM20
D_COUNT2 = D_DM21
D_DDTBL3 = D_DM22
D_AMPIE = D_DM23
D_THEDA3 = D_DM24
D_ADRIAN = D_DM25
D_MESSG2 = D_DM26
D_ROMER2 = D_DM27
D_TENSE = D_DM28
D_SHAWN3 = D_DM29
D_OPENIN = D_DM30
D_EVIL = D_DM31
D_ULTIMA = D_DM32
#endif /* #ifdef FREEDM */
#endif /* #ifndef PHASE2 */
; List of Pictures (with insertion point)
[graphics]
#ifdef PHASE1
TITLEPIC 0 0 = fd1title
M_DOOM 13 -16
#else
#ifdef FREEDM
TITLEPIC 0 0 = fdmtitle
M_DOOM 40 -5 = m_dm
#else
TITLEPIC 0 0 = fd2title
M_DOOM 13 -16
#endif
#endif
; Used both in phase 2 and phase 1 (E4):
INTERPIC 0 0
#ifdef PHASE2
HELP 0 0
#endif
#ifndef PHASE2
HELP1 0 0 = help
HELP2 0 0 = credit
#endif
CREDIT 0 0
BOSSBACK 0 0
AMMNUM0 -1 0
AMMNUM1 -1 0
AMMNUM2 -1 0
AMMNUM3 -1 0
AMMNUM4 -1 0
AMMNUM5 -1 0
AMMNUM6 -1 0
AMMNUM7 -1 0
AMMNUM8 -1 0
AMMNUM9 -1 0
STBAR 0 0
STGNUM0 0 0
STGNUM1 0 0
STGNUM2 0 0
STGNUM3 0 0
STGNUM4 0 0
STGNUM5 0 0
STGNUM6 0 0
STGNUM7 0 0
STGNUM8 0 0
STGNUM9 0 0
STTMINUS 4 0
STTNUM0
STTNUM1
STTNUM2
STTNUM3
STTNUM4
STTNUM5
STTNUM6
STTNUM7
STTNUM8
STTNUM9
STTPRCNT
STYSNUM0 0 0
STYSNUM1 0 0
STYSNUM2 0 0
STYSNUM3 0 0
STYSNUM4 0 0
STYSNUM5 0 0
STYSNUM6 0 0
STYSNUM7 0 0
STYSNUM8 0 0
STYSNUM9 0 0
STKEYS0 0 0
STKEYS1 0 0
STKEYS2 0 0
STKEYS3 0 0
STKEYS4 0 0
STKEYS5 0 0
STDISK 0 -1
STCDROM -1 -1
STARMS 0 0
STCFN033 0 0
STCFN034 0 0
STCFN035 0 0
STCFN036 0 0
STCFN037 0 0
STCFN038 0 0
STCFN039 0 0
STCFN040 0 0
STCFN041 0 0
STCFN042 0 0
STCFN043 0 0
STCFN044 0 0
STCFN045 0 0
STCFN046 0 0
STCFN047 0 0
STCFN048 0 0
STCFN049 0 0
STCFN050 0 0
STCFN051 0 0
STCFN052 0 0
STCFN053 0 0
STCFN054 0 0
STCFN055 0 0
STCFN056 0 0
STCFN057 0 0
STCFN058 0 0
STCFN059 0 0
STCFN060 0 0
STCFN061 0 0
STCFN062 0 0
STCFN063 0 0
STCFN064 0 0
STCFN065 0 0
STCFN066 0 0
STCFN067 0 0
STCFN068 0 0
STCFN069 0 0
STCFN070 0 0
STCFN071 0 0
STCFN072 0 0
STCFN073 0 0
STCFN074 0 0
STCFN075 0 0
STCFN076 0 0
STCFN077 0 0
STCFN078 0 0
STCFN079 0 0
STCFN080 0 0
STCFN081 0 0
STCFN082 0 0
STCFN083 0 0
STCFN084 0 0
STCFN085 0 0
STCFN086 0 0
STCFN087 0 0
STCFN088 0 0
STCFN089 0 0
STCFN090 0 0
STCFN091 0 0
STCFN092 0 0
STCFN093 0 0
STCFN094 0 0
STCFN095 0 0
STCFN096 0 0
STCFN121 0 0
STCFN123 0 0
STCFN124 0 0
STCFN125 0 0
STFB1 0 0
STFB0 0 0
STFB2 0 0
STFB3 0 0
STPB1 0 0
STPB0 0 0
STPB2 0 0
STPB3 0 0
STFST01 -5 -2
STFST00 -5 -2
STFST02 -5 -2
STFTL00 -5 -1
STFTR00 -3 -2
STFOUCH0 -5 -1
STFEVL0 -5 -2
STFKILL0 -5 -2
STFST11 -5 -2
STFST10 -5 -2
STFST12 -5 -2
STFTL10 -5 -2
STFTR10 -3 -2
STFOUCH1 -5 -1
STFEVL1 -5 -2
STFKILL1 -5 -2
STFST21 -5 -2
STFST20 -5 -2
STFST22 -5 -2
STFTL20 -4 -1
STFTR20 -4 -1
STFOUCH2 -5 -1
STFEVL2 -5 -2
STFKILL2 -5 -2
STFST31 -5 -1
STFST30 -5 -1
STFST32 -5 -1
STFTL30 -2 -1
STFTR30 -3 -2
STFOUCH3 -5 -1
STFEVL3 -5 -2
STFKILL3 -5 -2
STFST41 -5 -1
STFST40 -5 -1
STFST42 -5 -1
STFTL40 -1 -1
STFTR40 -3 -2
STFOUCH4 -5 -1
STFEVL4 -5 -2
STFKILL4 -5 -2
STFGOD0 -5 -2
STFDEAD0 -5 -1
M_EPISOD 0 0
M_RDTHIS 0 0
M_OPTION 0 0
M_QUITG 0 0
M_NGAME 0 0
M_SKULL1 0 -1
M_SKULL2 0 -1
M_THERMO -2 -1
M_THERMR 0 0
M_THERMM 0 0
M_THERML -2 0
M_ENDGAM 0 1
M_PAUSE 0 0
M_MESSG 0 1
M_MSGON 20 1
M_MSGOFF 20 1
M_HURT 0 0
M_JKILL 0 0
M_ROUGH 0 0
M_SKILL 0 0
M_NEWG 0 0
M_ULTRA 0 0
M_NMARE 0 0
M_SVOL 0 0
M_OPTTTL 0 0
M_SAVEG 0 0
M_LOADG 0 0
M_DISP 0 0
M_MSENS 0 1
M_GDHIGH 26 1
M_GDLOW 26 1
M_DETAIL 0 1
M_DISOPT 0 0
M_SCRNSZ 0 1
M_SGTTL 0 0
M_LGTTL 0 0
M_SFXVOL 0 1
M_MUSVOL 0 1
M_LSLEFT 3 11
M_LSCNTR 3 11
M_LSRGHT 3 11
PRBOOM 0 1
M_GENERL 0 1
M_SETUP 0 1
M_KEYBND 0 1
M_WEAP 0 1
M_STAT 0 1
M_AUTO 0 1
M_ENEM 0 1
M_MESS 0 1
M_CHAT 0 1
M_HORSEN 0 1
M_VERSEN 0 1
M_LOKSEN 0 1
M_ACCEL 0 1
M_ABOUT 0 1
M_CHATM 0 1
M_COMPAT 0 1
M_DEMOS 0 1
M_DMFLAG 0 1
M_ETCOPT 0 1
M_FEAT 0 1
M_GSET 0 1
M_HUD 0 1
M_JOYSET 0 1
M_LDSV 0 1
M_MENUS 0 1
M_MOUSE 0 1
M_MULTI 0 1
M_PLAYER 0 1
M_SERIAL 0 1
M_SOUND 0 1
M_STATUS 0 1
M_TCPIP 0 1
M_VIDEO 0 1
M_WAD 0 1
M_WADOPT 0 1
BRDR_TL -5 -5
BRDR_T 0 -5
BRDR_TR 0 -5
BRDR_L -5 0
BRDR_R 0 0
BRDR_BL -5 0
BRDR_B 0 0
BRDR_BR 0 0
WIOSTK 0 0
WIOSTI 0 0
WIF 0 0
WIMSTT 0 0
WIOSTS 0 0
WIOSTF 0 0
WITIME 0 0
WIPAR 0 0
WIMSTAR 0 0
WIMINUS 0 0
WIPCNT 0 0
WINUM0 0 0
WINUM1 0 0
WINUM2 0 0
WINUM3 0 0
WINUM4 0 0
WINUM5 0 0
WINUM6 0 0
WINUM7 0 0
WINUM8 0 0
WINUM9 0 0
WICOLON 0 0
WISUCKS 0 0
WIFRGS 0 0
WIP1 0 0
WIP2 0 0
WIP3 0 0
WIP4 0 0
WIBP1 0 0
WIBP2 0 0
WIBP3 0 0
WIBP4 0 0
WIKILRS 0 0
WIVCTMS 0 0
WISCRT2 0 0
WIENTER 0 0
#ifndef PHASE2
M_EPI1 0 0
M_EPI2 0 0
M_EPI3 0 0
M_EPI4 0 0
WILV00 0 0
WILV01 0 0
WILV02 0 0
WILV03 0 0
WILV04 0 0
WILV05 0 0
WILV06 0 0
WILV07 0 0
WILV08 0 0
WILV10 0 0
WILV11 0 0
WILV12 0 0
WILV13 0 0
WILV14 0 0
WILV15 0 0
WILV16 0 0
WILV17 0 0
WILV18 0 0
WILV20 0 0
WILV21 0 0
WILV22 0 0
WILV23 0 0
WILV24 0 0
WILV25 0 0
WILV26 0 0
WILV27 0 0
WILV28 0 0
WILV30 0 0
WILV31 0 0
WILV32 0 0
WILV33 0 0
WILV34 0 0
WILV35 0 0
WILV36 0 0
WILV37 0 0
WILV38 0 0
; Endgame screens:
VICTORY2
PFUB1
PFUB2
ENDPIC
; "The End" animation from E3 endgame screen:
END0 -20 -52
END1 -20 -52
END2 -20 -52
END3 -20 -52
END4 -20 -52
END5 -20 -52
END6 -20 -52
; inter level map
WIURH0 = empty
WIURH1 = empty
WISPLAT = empty
; We don't have "map" graphics for the E1-3 intermission screens.
; Just use the normal interpic instead.
WIMAP0 = interpic
WIA00900 = empty
WIA00901 = empty
WIA00902 = empty
WIA00800 = empty
WIA00801 = empty
WIA00802 = empty
WIA00700 = empty
WIA00701 = empty
WIA00702 = empty
WIA00600 = empty
WIA00601 = empty
WIA00602 = empty
WIA00500 = empty
WIA00501 = empty
WIA00502 = empty
WIA00400 = empty
WIA00401 = empty
WIA00402 = empty
WIA00300 = empty
WIA00301 = empty
WIA00302 = empty
WIA00200 = empty
WIA00201 = empty
WIA00202 = empty
WIA00100 = empty
WIA00101 = empty
WIA00102 = empty
WIA00000 = empty
WIA00001 = empty
WIA00002 = empty
WIMAP1 = interpic
WIA10000 = empty
WIA10100 = empty
WIA10200 = empty
WIA10300 = empty
WIA10400 = empty
WIA10500 = empty
WIA10600 = empty
WIA10700 = empty
WIA10701 = empty
WIA10702 = empty
WIA20000 = empty
WIMAP2 = interpic
WIA20001 = empty
WIA20002 = empty
WIA20100 = empty
WIA20101 = empty
WIA20102 = empty
WIA20200 = empty
WIA20201 = empty
WIA20202 = empty
WIA20300 = empty
WIA20301 = empty
WIA20302 = empty
WIA20400 = empty
WIA20401 = empty
WIA20402 = empty
WIA20500 = empty
WIA20501 = empty
WIA20502 = empty
#else /* #ifndef PHASE2 */
#ifndef FREEDM
CWILV00
CWILV01
CWILV02
CWILV03
CWILV04
CWILV05
CWILV06
CWILV07
CWILV08
CWILV09
CWILV10
CWILV11
CWILV12
CWILV13
CWILV14
CWILV15
CWILV16
CWILV17
CWILV18
CWILV19
CWILV22
CWILV21
CWILV20
CWILV23
CWILV25
CWILV26
CWILV27
CWILV28
CWILV29
CWILV24
CWILV30
CWILV31
#else /* #ifdef FREEDM */
; FreeDM has different levels, different level names:
CWILV00 = DMWILV00
CWILV01 = DMWILV01
CWILV02 = DMWILV02
CWILV03 = DMWILV03
CWILV04 = DMWILV04
CWILV05 = DMWILV05
CWILV06 = DMWILV06
CWILV07 = DMWILV07
CWILV08 = DMWILV08
CWILV09 = DMWILV09
CWILV10 = DMWILV10
CWILV11 = DMWILV11
CWILV12 = DMWILV12
CWILV13 = DMWILV13
CWILV14 = DMWILV14
CWILV15 = DMWILV15
CWILV16 = DMWILV16
CWILV17 = DMWILV17
CWILV18 = DMWILV18
CWILV19 = DMWILV19
CWILV22 = DMWILV22
CWILV21 = DMWILV21
CWILV20 = DMWILV20
CWILV23 = DMWILV23
CWILV25 = DMWILV25
CWILV26 = DMWILV26
CWILV27 = DMWILV27
CWILV28 = DMWILV28
CWILV29 = DMWILV29
CWILV24 = DMWILV24
CWILV30 = DMWILV30
CWILV31 = DMWILV31
#endif
#endif /* #ifdef PHASE2 */
; sprites list
[sprites]
#ifdef PHASE2
BBRNA0 ; boss brain
BBRNB0
BOS2A1 24 69 ; hell knight
BOS2A2 24 69
BOS2A3 26 69
BOS2A4 23 69
BOS2A5 24 69
BOS2A6 23 69
BOS2A7 24 69
BOS2A8 24 69
BOS2B1 26 72
BOS2B2 19 72
BOS2B3 23 72
BOS2B4 20 72
BOS2B5 25 72
BOS2B6 20 72
BOS2B7 21 72
BOS2B8 19 72
BOS2C1 25 69
BOS2C2 25 69
BOS2C3 24 69
BOS2C4 23 69
BOS2C5 24 69
BOS2C6 23 69
BOS2C7 27 69
BOS2C8 24 69
BOS2D1 27 72
BOS2D2 19 72
BOS2D3 21 72
BOS2D4 20 72
BOS2D5 25 72
BOS2D6 20 72
BOS2D7 23 72
BOS2D8 19 72
BOS2E1 27 74
BOS2E2 33 73
BOS2E3 29 73
BOS2E4 19 72
BOS2E5 23 73
BOS2E6 29 73
BOS2E7 33 73
BOS2E8 27 73
BOS2F1 31 73
BOS2F2 33 73
BOS2F3 29 73
BOS2F4 19 72
BOS2F5 23 73
BOS2F6 29 73
BOS2F7 33 73
BOS2F8 27 73
BOS2G1 32 74
BOS2G2 33 73
BOS2G3 29 73
BOS2G4 19 72
BOS2G5 23 73
BOS2G6 29 73
BOS2G7 33 73
BOS2G8 27 73
BOS2H1 28 73
BOS2H2 26 73
BOS2H3 23 73
BOS2H4 24 72
BOS2H5 23 73
BOS2H6 22 73
BOS2H7 22 73
BOS2H8 26 73
BOS2I0 28 73
BOS2J0 31 73
BOS2K0 39 69
BOS2L0 43 67
BOS2M0 49 63
BOS2N0 46 58
BOS2O0 43 33
BRS1A0
bspia1d1 ; arachnotron
bspia2a8
bspia3a7
bspia4a6
bspia5d5
bspib1e1
bspib2b8
bspib3b7
bspib4b6
bspib5e5
bspic1f1
bspic2c8
bspic3c7
bspic4c6
bspic5f5
bspid2d8
bspid3d7
bspid4d6
bspie2e8
bspie3e7
bspie4e6
bspif2f8
bspif3f7
bspif4f6
bspig1
bspig2g8
bspig3g7
bspig4g6
bspig5
bspih1
bspih2h8
bspih3h7
bspih4h6
bspih5
bspii1
bspii2i8
bspii3i7
bspii4i6
bspii5
bspij0
bspik0
bspil0
bspim0
bspin0
bspio0
bspip0
CPOSA1 22 52
CPOSA2A8 16 52
CPOSA3A7 21 50
CPOSA4A6 23 49
CPOSA5 19 47
CPOSB1 19 53
CPOSB2B8 18 52
CPOSB3B7 19 52
CPOSB4B6 21 52
CPOSB5 18 51
CPOSC1 20 53
CPOSC2C8 16 51
CPOSC3C7 18 51
CPOSC4C6 22 51
CPOSC5 17 50
CPOSD1 19 52
CPOSD2D8 17 52
CPOSD3D7 19 52
CPOSD4D6 23 52
CPOSD5 19 51
CPOSE1 12 51
CPOSE2E8 28 51
CPOSE3E7 37 50
CPOSE4E6 26 49
CPOSE5 11 48
CPOSF1 12 51
CPOSF2F8 28 51
CPOSF3F7 37 50
CPOSF4F6 26 49
CPOSF5 11 48
CPOSG1 20 52
CPOSG2G8 16 52
CPOSG3G7 21 52
CPOSG4G6 20 50
CPOSG5 17 50
CPOSH0 19 47
CPOSI0 9 42
CPOSJ0 13 46
CPOSK0 17 37
CPOSL0 27 12
CPOSM0 27 12
CPOSN0 27 12
CPOSO0 16 53
CPOSP0 20 50
CPOSQ0 21 47
CPOSR0 24 38
CPOSS0 25 33
CPOST0 27 14
FATTA1 39 60 ; mancubus
FATTA2A8 39 61
FATTA3A7 38 60
FATTA4A6 39 57
FATTA5 39 59
FATTB1 43 65
FATTB2B8 43 65
FATTB3B7 43 61
FATTB4B6 42 61
FATTB5 43 58
FATTC1 43 65
FATTC2C8 43 63
FATTC3C7 39 61
FATTC4C6 35 61
FATTC5 36 58
FATTD1 38 60
FATTD2D8 43 63
FATTD3D7 43 62
FATTD4D6 43 59
FATTD5 35 58
FATTE1 43 65
FATTE2E8 43 61
FATTE3E7 43 62
FATTE4E6 43 58
FATTE5 40 57
FATTF1 42 65
FATTF2F8 43 62
FATTF3F7 43 61
FATTF4F6 43 59
FATTF5 39 58
FATTG1 42 60
FATTG2G8 51 59
FATTG3G7 43 60
FATTG4G6 43 62
FATTG5 42 61
FATTH1 42 60
FATTH2H8 50 59
FATTH3H7 33 61
FATTH4H6 42 61
FATTH5 42 60
FATTI1 42 63
FATTI2I8 51 64
FATTI3I7 43 59
FATTI4I6 42 63
FATTI5 39 59
FATTJ1 32 62
FATTJ2 47 62
FATTJ3 39 59
FATTJ4 30 61
FATTJ5 32 59
FATTJ6 29 61
FATTJ7 37 59
FATTJ8 46 62
FATTK0 50 73
FATTL0 50 75
FATTM0 45 66
FATTN0 37 53
FATTO0 35 41
FATTP0 36 40
FATTQ0 36 39
FATTR0 36 39
FATTS0 36 38
FATTT0 36 36
FIREA0 21 54 ; archvile fire
FIREB0 23 61
FIREC0 23 78
FIRED0 23 84
FIREE0 24 86
FIREF0 25 90
FIREG0 25 92
FIREH0 26 95
KEENA0 10 68 ; commander keen
KEENB0 10 68
KEENC0 10 68
KEEND0 14 68
KEENE0 13 68
KEENF0 14 68
KEENG0 19 68
KEENH0 19 68
KEENI0 19 68
KEENJ0 19 67
KEENK0 19 65
KEENL0 19 22
KEENM0 10 68
PAINA1 31 63 ; pain elemental
PAINA2A8 30 60
PAINA3A7 30 63
PAINA4A6 30 60
PAINA5 30 60
PAINB1 30 63
PAINB2B8 30 60
PAINB3B7 30 60
PAINB4B6 30 60
PAINB5 30 60
PAINC1 31 65
PAINC2C8 30 61
PAINC3C7 30 61
PAINC4C6 30 60
PAINC5 31 60
PAIND1 30 61
PAIND2D8 31 60
PAIND3D7 34 60
PAIND4D6 30 60
PAIND5 30 60
PAINE1 30 60
PAINE2E8 34 60
PAINE3E7 37 60
PAINE4E6 30 60
PAINE5 31 60
PAINF1 31 60
PAINF2F8 35 60
PAINF3F7 41 60
PAINF4F6 32 60
PAINF5 31 60
PAING1 30 63
PAING2G8 30 60
PAING3G7 30 60
PAING4G6 30 60
PAING5 30 60
PAINH0 30 68
PAINI0 30 61
PAINJ0 31 61
PAINK0 31 60
PAINL0 31 61
PAINM0 30 61
SKELA1D1 20 58 ; revenant
SKELA2D8 17 57
SKELA3D7 13 58
SKELA4D6 17 56
SKELA5D5 20 59
SKELA6D4 18 59
SKELA7D3 28 59
SKELA8D2 24 58
SKELB1E1 18 59
SKELB2E8 26 57
SKELB3E7 18 56
SKELB4E6 14 53
SKELB5E5 19 59
SKELB6E4 21 55
SKELB7E3 19 56
SKELB8E2 22 58
SKELC1F1 20 59
SKELC2F8 26 57
SKELC3F7 21 59
SKELC4F6 22 59
SKELC5F5 19 60
SKELC6F4 18 59
SKELC7F3 22 59
SKELC8F2 21 59
SKELG1 22 60
SKELG2 16 60
SKELG3 15 58
SKELG4 23 58
SKELG5 22 60
SKELG6 21 57
SKELG7 23 58
SKELG8 26 58
SKELH1 21 58
SKELH2 19 59
SKELH3 16 56
SKELH4 25 57
SKELH5 20 57
SKELH6 17 57
SKELH7 13 57
SKELH8 18 58
SKELI1 20 60
SKELI2 30 58
SKELI3 34 58
SKELI4 21 59
SKELI5 18 59
SKELI6 16 58
SKELI7 11 59
SKELI8 18 59
SKELJ1 19 58
SKELJ2 17 58
SKELJ3 22 57
SKELJ4 18 57
SKELJ5 19 58
SKELJ6 20 57
SKELJ7 19 58
SKELJ8 14 59
SKELK1 20 57
SKELK2 17 56
SKELK3 17 56
SKELK4 16 56
SKELK5 19 58
SKELK6 17 56
SKELK7 12 56
SKELK8 21 56
SKELL1 32 56
SKELL2 24 55
SKELL3 15 57
SKELL4 27 57
SKELL5 27 58
SKELL6 21 57
SKELL7 20 57
SKELL8 26 53
SKELM0 27 46
SKELN0 22 46
SKELO0 35 40
SKELP0 38 31
SKELQ0 38 19
FATBA1 11 10 ; revenant rocket
FATBA2A8 22 10
FATBA3A7 31 9
FATBA4A6 22 9
FATBA5 11 10
FATBB1 11 10
FATBB2B8 22 10
FATBB3B7 31 9
FATBB4B6 23 9
FATBB5 11 10
FBXPA0 13 10 ; revenant explosion
FBXPB0 17 14
FBXPC0 17 15
SSWVA1 18 61
SSWVA2A8 15 64
SSWVA3A7 11 66
SSWVA4A6 17 64
SSWVA5 21 55
SSWVB1 20 64
SSWVB2B8 19 65
SSWVB3B7 18 62
SSWVB4B6 16 69
SSWVB5 19 57
SSWVC1 17 60
SSWVC2C8 15 62
SSWVC3C7 14 64
SSWVC4C6 15 65
SSWVC5 19 60
SSWVD1 17 57
SSWVD2D8 14 61
SSWVD3D7 18 62
SSWVD4D6 20 63
SSWVD5 21 61
SSWVE1 14 62
SSWVE2E8 16 64
SSWVE3E7 15 63
SSWVE4E6 15 67
SSWVE5 15 64
SSWVF1 18 65
SSWVF2F8 18 67
SSWVF3F7 31 59
SSWVF4F6 20 66
SSWVF5 15 64
SSWVG1 18 65
SSWVG2G8 22 67
SSWVG3G7 36 59
SSWVG4G6 24 66
SSWVG5 15 64
SSWVH1 18 62
SSWVH2H8 18 63
SSWVH3H7 15 60
SSWVH4H6 15 62
SSWVH5 18 61
SSWVI0 25 59
SSWVJ0 28 53
SSWVK0 26 43
SSWVL0 23 22
SSWVM0 21 7
SSWVN0 26 66
SSWVO0 27 70
SSWVP0 31 67
SSWVQ0 28 69
SSWVR0 28 67
SSWVS0 27 39
SSWVT0 27 32
SSWVU0 27 22
SSWVV0 27 17
VILEA1D1 20 73 ; archvile
VILEA2D8 26 73
VILEA3D7 28 72
VILEA4D6 24 72
VILEA5D5 22 73
VILEA6D4 25 72
VILEA7D3 27 72
VILEA8D2 23 73
VILEB1E1 23 72
VILEB2E8 21 75
VILEB3E7 28 75
VILEB4E6 22 74
VILEB5E5 23 72
VILEB6E4 22 74
VILEB7E3 28 74
VILEB8E2 22 72
VILEC1F1 27 72
VILEC2F8 22 73
VILEC3F7 21 75
VILEC4F6 20 73
VILEC5F5 23 72
VILEC6F4 21 73
VILEC7F3 21 72
VILEC8F2 22 74
VILEG1 36 91
VILEG2 36 91
VILEG3 36 91
VILEG4 36 91
VILEG5 36 91
VILEG6 36 91
VILEG7 36 91
VILEG8 36 91
VILEH1 44 109
VILEH2 44 109
VILEH3 44 109
VILEH4 44 109
VILEH5 44 109
VILEH6 44 109
VILEH7 44 109
VILEH8 44 109
VILEI1 44 109
VILEI2 44 109
VILEI3 44 109
VILEI4 44 109
VILEI5 44 109
VILEI6 44 109
VILEI7 44 109
VILEI8 44 109
VILEJ1 44 109
VILEJ2 44 109
VILEJ3 44 109
VILEJ4 44 109
VILEJ5 44 109
VILEJ6 44 109
VILEJ7 44 109
VILEJ8 44 109
VILEK1 44 109
VILEK2 44 109
VILEK3 44 109
VILEK4 44 109
VILEK5 44 109
VILEK6 44 109
VILEK7 44 109
VILEK8 44 109
VILEL1 34 108
VILEL2 34 108
VILEL3 34 108
VILEL4 34 108
VILEL5 34 108
VILEL6 34 108
VILEL7 34 108
VILEL8 34 108
VILEM1 34 108
VILEM2 34 108
VILEM3 34 108
VILEM4 34 108
VILEM5 34 108
VILEM6 34 108
VILEM7 34 108
VILEM8 34 108
VILEN1 42 99
VILEN2 42 99
VILEN3 42 99
VILEN4 42 99
VILEN5 42 99
VILEN6 42 99
VILEN7 42 99
VILEN8 42 99
VILEO1 42 99
VILEO2 42 99
VILEO3 42 99
VILEO4 42 99
VILEO5 42 99
VILEO6 42 99
VILEO7 42 99
VILEO8 42 99
VILEP1 42 99
VILEP2 42 99
VILEP3 42 99
VILEP4 42 99
VILEP5 42 99
VILEP6 42 99
VILEP7 42 99
VILEP8 42 99
VILEQ1 26 73
VILEQ2 26 73
VILEQ3 26 73
VILEQ4 26 73
VILEQ5 26 73
VILEQ6 26 73
VILEQ7 26 73
VILEQ8 26 73
VILER0 28 74
VILES0 31 78
VILET0 33 81
VILEU0 37 78
VILEV0 39 75
VILEW0 45 69
VILEX0 46 70
VILEY0 45 37
VILEZ0 45 37
VILE[1 44 109
VILE[2 44 109
VILE[3 44 109
VILE[4 44 109
VILE[5 44 109
VILE[6 44 109
VILE[7 44 109
VILE[8 44 109
VILE\1 44 109
VILE\2 44 109
VILE\3 44 109
VILE\4 44 109
VILE\5 44 109
VILE\6 44 109
VILE\7 44 109
VILE\8 44 109
VILE]1 44 109
VILE]2 44 109
VILE]3 44 109
VILE]4 44 109
VILE]5 44 109
VILE]6 44 109
VILE]7 44 109
VILE]8 44 109
#endif /* #ifdef PHASE2 */
; The following are normal Doom monsters:
BOSSA1 24 69 ; baron
BOSSA2 24 69
BOSSA3 24 69
BOSSA4 23 69
BOSSA5 24 69
BOSSA6 23 69
BOSSA7 26 69
BOSSA8 24 69
BOSSB1 26 72
BOSSB2 19 72
BOSSB3 21 72
BOSSB4 20 72
BOSSB5 25 72
BOSSB6 20 72
BOSSB7 23 72
BOSSB8 19 72
BOSSC1 25 69
BOSSC2 24 69
BOSSC3 27 69
BOSSC4 23 69
BOSSC5 24 69
BOSSC6 23 69
BOSSC7 24 69
BOSSC8 25 69
BOSSD1 27 72
BOSSD2 19 72
BOSSD3 23 72
BOSSD4 20 72
BOSSD5 25 72
BOSSD6 20 72
BOSSD7 21 72
BOSSD8 19 72
BOSSE1 27 74
BOSSE2 27 73
BOSSE3 33 73
BOSSE4 29 73
BOSSE5 23 73
BOSSE6 19 72
BOSSE7 29 73
BOSSE8 33 73
BOSSF1 31 73
BOSSF2 27 73
BOSSF3 33 73
BOSSF4 29 73
BOSSF5 23 73
BOSSF6 19 72
BOSSF7 29 73
BOSSF8 33 73
BOSSG1 32 74
BOSSG2 27 73
BOSSG3 33 73
BOSSG4 29 73
BOSSG5 23 73
BOSSG6 19 72
BOSSG7 29 73
BOSSG8 33 73
BOSSH1 28 73
BOSSH2 26 73
BOSSH3 22 73
BOSSH4 22 73
BOSSH5 23 73
BOSSH6 24 72
BOSSH7 23 73
BOSSH8 26 73
BOSSI0 28 73
BOSSJ0 31 73
BOSSK0 39 69
BOSSL0 43 67
BOSSM0 49 63
BOSSN0 46 58
BOSSO0 43 33
POSSA1 17 50 ; former human
POSSA2A8 20 50
POSSA3A7 20 50
POSSA4A6 26 48
POSSA5 17 47
POSSB1 18 52
POSSB2B8 20 51
POSSB3B7 22 52
POSSB4B6 28 52
POSSB5 17 51
POSSC1 19 50
POSSC2C8 19 50
POSSC3C7 21 52
POSSC4C6 30 51
POSSC5 17 51
POSSD1 19 52
POSSD2D8 19 51
POSSD3D7 23 52
POSSD4D6 26 52
POSSD5 19 51
POSSE1 12 50
POSSE2E8 33 50
POSSE3E7 38 50
POSSE4E6 28 50
POSSE5 12 48
POSSF1 13 50
POSSF2F8 31 51
POSSF3F7 39 50
POSSF4F6 32 49
POSSF5 11 48
POSSG1 20 52
POSSG2G8 16 53
POSSG3G7 21 53
POSSG4G6 20 51
POSSG5 17 49
POSSH0 19 57
POSSI0 19 42
POSSJ0 22 34
POSSK0 24 27
POSSL0 25 19
POSSM0 20 59
POSSN0 21 62
POSSO0 24 61
POSSP0 26 55
POSSQ0 27 51
POSSR0 28 43
POSSS0 28 36
POSST0 28 26
POSSU0 28 21
SARGA1 17 55
SARGA2A8 25 54
SARGA3A7 29 53
SARGA4A6 25 53
SARGA5 18 54
SARGB1 17 56
SARGB2B8 25 55
SARGB3B7 26 55
SARGB4B6 24 52
SARGB5 15 51
SARGC1 18 55
SARGC2C8 22 53
SARGC3C7 20 54
SARGC4C6 22 53
SARGC5 17 53
SARGD1 17 55
SARGD2D8 24 54
SARGD3D7 25 54
SARGD4D6 24 53
SARGD5 19 52
SARGE1 20 54
SARGE2 23 54
SARGE3 23 54
SARGE4 20 53
SARGE5 16 52
SARGE6 28 53
SARGE7 26 54
SARGE8 26 54
SARGF1 18 55
SARGF2 25 51
SARGF3 28 53
SARGF4 26 52
SARGF5 15 53
SARGF6 25 52
SARGF7 29 54
SARGF8 22 52
SARGG1 15 57
SARGG2 14 53
SARGG3 20 53
SARGG4 19 53
SARGG5 12 51
SARGG6 23 53
SARGG7 24 53
SARGG8 27 54
SARGH1 15 47
SARGH2 22 47
SARGH3 22 47
SARGH4 19 46
SARGH5 14 45
SARGH6 22 47
SARGH7 25 46
SARGH8 19 47
SARGI0 17 55
SARGJ0 19 56
SARGK0 20 50
SARGL0 20 35
SARGM0 22 26
SARGN0 22 24
SPOSA1 17 50 ; shotgun guy
SPOSA2A8 15 50
SPOSA3A7 17 48
SPOSA4A6 22 45
SPOSA5 17 46
SPOSB1 17 50
SPOSB2B8 13 50
SPOSB3B7 16 52
SPOSB4B6 20 49
SPOSB5 17 49
SPOSC1 16 51
SPOSC2C8 14 50
SPOSC3C7 19 51
SPOSC4C6 19 49
SPOSC5 17 50
SPOSD1 17 51
SPOSD2D8 13 51
SPOSD3D7 15 51
SPOSD4D6 18 50
SPOSD5 17 49
SPOSE1 9 51
SPOSE2E8 24 50
SPOSE3E7 28 50
SPOSE4E6 20 50
SPOSE5 13 50
SPOSF1 11 51
SPOSF2F8 29 52
SPOSF3F7 33 50
SPOSF4F6 22 50
SPOSF5 12 50
SPOSG1 16 50
SPOSG2G8 16 49
SPOSG3G7 21 48
SPOSG4G6 17 47
SPOSG5 17 49
SPOSH0 16 55
SPOSI0 17 48
SPOSJ0 21 34
SPOSK0 22 29
SPOSL0 26 20
SPOSM0 18 54
SPOSN0 23 57
SPOSO0 24 56
SPOSP0 26 50
SPOSQ0 27 46
SPOSR0 28 38
SPOSS0 28 31
SPOST0 28 21
SPOSU0 28 11
TROOA1 23 56
TROOA2A8 17 57
TROOA3A7 16 56
TROOA4A6 21 58
TROOA5 25 56
TROOB1 24 58
TROOB2B8 23 57
TROOB3B7 23 59
TROOB4B6 18 60
TROOB5 25 58
TROOC1 25 56
TROOC2C8 17 57
TROOC3C7 16 57
TROOC4C6 15 58
TROOC5 22 56
TROOD1 25 58
TROOD2D8 20 58
TROOD3D7 21 59
TROOD4D6 19 60
TROOD5 25 58
TROOE1 14 58
TROOE2E8 22 59
TROOE3E7 21 59
TROOE4E6 25 58
TROOE5 19 58
TROOF1 27 57
TROOF2F8 32 59
TROOF3F7 42 58
TROOF4F6 29 58
TROOF5 21 58
TROOG1 37 60
TROOG2G8 35 59
TROOG3G7 37 59
TROOG4G6 28 58
TROOG5 32 60
TROOH1 26 59
TROOH2H8 18 57
TROOH3H7 22 56
TROOH4H6 26 58
TROOH5 19 56
TROOI0 26 59
TROOJ0 23 58
TROOK0 23 50
TROOL0 21 39
TROOM0 29 22
TROON0 25 59
TROOO0 26 61
TROOP0 21 54
TROOQ0 28 47
TROOR0 29 39
TROOS0 29 32
TROOT0 29 22
TROOU0 29 7
CYBRA1 47 103 ; Cyberdemon
CYBRA2 39 103
CYBRA3 42 103
CYBRA4 41 102
CYBRA5 48 103
CYBRA6 41 102
CYBRA7 42 103
CYBRA8 39 103
CYBRB1 50 100
CYBRB2 39 96
CYBRB3 54 103
CYBRB4 49 99
CYBRB5 45 100
CYBRB6 49 99
CYBRB7 54 103
CYBRB8 39 96
CYBRC1 45 98
CYBRC2 37 103
CYBRC3 37 98
CYBRC4 48 102
CYBRC5 39 103
CYBRC6 48 102
CYBRC7 37 98
CYBRC8 37 103
CYBRD1 48 100
CYBRD2 43 101
CYBRD3 49 101
CYBRD4 39 99
CYBRD5 37 100
CYBRD6 39 99
CYBRD7 49 101
CYBRD8 43 101
CYBRE1 44 98
CYBRE2 52 101
CYBRE3 46 101
CYBRE4 33 102
CYBRE5 40 103
CYBRE6 33 102
CYBRE7 46 101
CYBRE8 52 101
CYBRF1 47 99
CYBRF2 39 99
CYBRF3 43 100
CYBRF4 44 99
CYBRF5 44 100
CYBRF6 44 99
CYBRF7 43 100
CYBRF8 39 99
CYBRG1 47 99
CYBRG2 39 99
CYBRG3 43 100
CYBRG4 44 99
CYBRG5 44 100
CYBRG6 44 99
CYBRG7 43 100
CYBRG8 39 99
CYBRH0 47 99
CYBRI0 47 99
CYBRJ0 44 99
CYBRK0 52 84
CYBRL0 55 74
CYBRM0 56 80
CYBRN0 56 83
CYBRO0 56 76
CYBRP0 56 36
HEADA1 31 61 ; cacodemon
HEADA2A8 32 61
HEADA3A7 33 61
HEADA4A6 31 61
HEADA5 31 61
HEADB1 30 61
HEADB2B8 31 61
HEADB3B7 34 61
HEADB4B6 30 61
HEADB5 31 61
HEADC1 32 62
HEADC2C8 31 61
HEADC3C7 33 61
HEADC4C6 31 60
HEADC5 31 61
HEADD1 32 62
HEADD2D8 31 61
HEADD3D7 33 61
HEADD4D6 32 61
HEADD5 32 61
HEADE1 31 62
HEADE2E8 32 62
HEADE3E7 34 63
HEADE4E6 31 63
HEADE5 31 62
HEADF1 30 63
HEADF2F8 31 63
HEADF3F7 34 64
HEADF4F6 31 62
HEADF5 31 61
HEADG0 30 61
HEADH0 39 61
HEADI0 41 68
HEADJ0 38 71
HEADK0 41 47
HEADL0 41 24
SKULA1 22 44 ; lost soul
SKULA8A2 18 39
SKULA7A3 19 43
SKULA6A4 17 43
SKULA5 20 43
SKULB1 20 42
SKULB8B2 18 39
SKULB7B3 19 43
SKULB6B4 16 42
SKULB5 20 43
SKULC1 22 44
SKULC8C2 18 39
SKULC7C3 19 43
SKULC6C4 16 42
SKULC5 20 43
SKULD1 22 44
SKULD8D2 18 39
SKULD7D3 19 43
SKULD6D4 16 42
SKULD5 20 43
SKULE1 22 44
SKULE8E2 18 39
SKULE7E3 19 43
SKULE6E4 16 42
SKULE5 20 43
SKULF0 22 47
SKULG0 22 47
SKULH0 24 46
SKULI0 24 46
SKULJ0 34 68
SKULK0 40 73
SPIDA1 128 100 ; spider mastermind
SPIDA2 128 100
SPIDA3 128 100
SPIDA4 128 100
SPIDA5 128 100
SPIDA6 128 100
SPIDA7 128 100
SPIDA8 128 100
SPIDB1 128 100
SPIDB2 128 100
SPIDB3 128 100
SPIDB4 128 100
SPIDB5 128 100
SPIDB6 128 100
SPIDB7 128 100
SPIDB8 128 100
SPIDC1 128 100
SPIDC2 128 100
SPIDC3 128 100
SPIDC4 128 100
SPIDC5 128 100
SPIDC6 128 100
SPIDC7 128 100
SPIDC8 128 100
SPIDD1 128 100
SPIDD2 128 100
SPIDD3 128 100
SPIDD4 128 100
SPIDD5 128 100
SPIDD6 128 100
SPIDD7 128 100
SPIDD8 128 100
SPIDE1 128 100
SPIDE2 128 100
SPIDE3 128 100
SPIDE4 128 100
SPIDE5 128 100
SPIDE6 128 100
SPIDE7 128 100
SPIDE8 128 100
SPIDF1 128 100
SPIDF2 128 100
SPIDF3 128 100
SPIDF4 128 100
SPIDF5 128 100
SPIDF6 128 100
SPIDF7 128 100
SPIDF8 128 100
SPIDG1 128 100
SPIDG2 128 100
SPIDG3 128 100
SPIDG4 128 100
SPIDG5 128 100
SPIDG6 128 100
SPIDG7 128 100
SPIDG8 128 100
SPIDH1 128 100
SPIDH2 128 100
SPIDH3 128 100
SPIDH4 128 100
SPIDH5 128 100
SPIDH6 128 100
SPIDH7 128 100
SPIDH8 128 100
SPIDI1 128 100
SPIDI2 128 100
SPIDI3 128 100
SPIDI4 128 100
SPIDI5 128 100
SPIDI6 128 100
SPIDI7 128 100
SPIDI8 128 100
SPIDJ1 128 100
SPIDJ2 128 100
SPIDJ3 128 100
SPIDJ4 128 100
SPIDJ5 128 100
SPIDJ6 128 100
SPIDJ7 128 100
SPIDJ8 128 100
SPIDK0 128 100
SPIDL0 128 100
SPIDM0 128 100
SPIDN0 128 100
SPIDO0 128 100
SPIDP0 128 100
SPIDQ0 128 100
SPIDR0 128 100
SPIDS0 128 100
; The following sprites are technically Doom 2 sprites, but appear
; in doom.wad, and so must be included for compatibility reasons (some
; mods use them):
APBXA0 12 11 ; Arachnotron plasma ball
APBXB0 15 14
APBXC0 17 17
APBXD0 18 17
APBXE0 19 17
APLSA0 7 9
APLSB0 6 8
BOSFA0 25 29 ; Spinning boss 'cube'
BOSFB0 24 29
BOSFC0 21 29
BOSFD0 25 29
MANFA1 19 17 ; Mancubus shot
MANFA5 13 15
MANFA6A4 25 19
MANFA7A3 34 16
MANFA8A2 33 17
MANFB1 19 17
MANFB5 12 13
MANFB6B4 18 19
MANFB7B3 30 17
MANFB8B2 27 17
; These are normal items that appear in both Freedoom and FreeDM.
AMMOA0 8 16
ARM1A0 15 17
ARM1B0 15 17
ARM2A0 15 22
ARM2B0 15 22
BAL1A0 8 8
BAL1B0 8 8
BAL1C0 16 17
BAL1D0 20 19
BAL1E0 23 21
BAL7A1A5 10 9
BAL7A2A8 20 9
BAL7A3A7 28 8
BAL7A4A6 21 8
BAL7B1B5 10 9
BAL7B2B8 20 9
BAL7B3B7 27 8
BAL7B4B6 21 8
BAL7C0 16 16
BAL7D0 20 19
BAL7E0 21 20
BAR1A0 11 32
BAR1B0 11 32
BEXPA0 11 33
BEXPB0 12 32
BEXPC0 18 40
BEXPD0 28 50
BEXPE0 29 53
BKEYA0 7 19
BKEYB0 7 19
BLUDA0 7 5
BLUDB0 8 7
BLUDC0 7 7
BON1A0 6 19
BON1B0 6 19
BON1C0 6 19
BON1D0 6 19
BON2A0 6 19
BON2B0 6 19
BON2C0 6 19
BON2D0 6 19
BPAKA0 11 26
BROKA0 27 20
CANDA0 8 15
CBRAA0 14 61
CHGGA0 -105 -114
CHGGB0 -105 -121
CHGFA0 -125 -83
CHGFB0 -125 -98
CLIPA0 4 12
COLUA0 9 45
CSAWA0 22 20
ELECA0 17 123
IFOGA0 25 44
IFOGB0 25 44
IFOGC0 25 44
IFOGD0 25 44
IFOGE0 25 44
LAUNA0 30 20
MEDIA0 13 19
MGUNA0 28 23
MISGA0 -111 -110
MISGB0 -103 -109
MISFA0 -110 -102
MISFB0 -110 -99
MISFC0 -110 -98
MISFD0 -110 -97
MISLA1 5 12
MISLA5 5 12
MISLA6A4 14 12
MISLA7A3 18 12
MISLA8A2 14 12
MISLB0 36 37
MISLC0 39 38
MISLD0 45 41
PINSA0 15 35
PINSB0 15 35
PINSC0 15 35
PINSD0 15 35
PISFA0 -147 -66
PISGA0 -138 -104
PISGB0 -138 -83
PISGC0 -139 -88
PISGD0 -122 -88
PISGE0 -128 -100
PLAYA1 22 52
PLAYA2A8 16 52
PLAYA3A7 21 50
PLAYA4A6 23 49
PLAYA5 24 53
PLAYB1 19 53
PLAYB2B8 18 52
PLAYB3B7 19 52
PLAYB4B6 21 52
PLAYB5 20 53
PLAYC1 20 53
PLAYC2C8 16 51
PLAYC3C7 18 51
PLAYC4C6 22 51
PLAYC5 21 52
PLAYD1 19 52
PLAYD2D8 17 52
PLAYD3D7 19 52
PLAYD4D6 23 52
PLAYD5 24 52
PLAYE1 11 54
PLAYE2E8 22 54
PLAYE3E7 30 54
PLAYE4E6 22 54
PLAYE5 12 54
PLAYF1 11 54
PLAYF2F8 28 54
PLAYF3F7 37 54
PLAYF4F6 27 54
PLAYF5 12 54
PLAYG1 20 52
PLAYG2G8 16 52
PLAYG3G7 21 52
PLAYG4G6 20 50
PLAYG5 17 50
PLAYH0 19 47
PLAYI0 9 42
PLAYJ0 13 46
PLAYK0 17 37
PLAYL0 27 12
PLAYM0 27 12
PLAYN0 27 12
PLAYO0 16 53
PLAYP0 20 50
PLAYQ0 21 47
PLAYR0 21 43
PLAYS0 24 38
PLAYT0 25 33
PLAYU0 26 25
PLAYV0 27 14
PLAYW0 27 14
PLYCA1 15 34
PLYCA2A8 19 34
PLYCA3A7 24 31
PLYCA4A6 21 32
PLYCA5 14 31
PLYCB1 14 35
PLYCB2B8 17 32
PLYCB3B7 20 31
PLYCB4B6 18 32
PLYCB5 15 31
PLYCC1 14 34
PLYCC2C8 19 35
PLYCC3C7 24 31
PLYCC4C6 21 32
PLYCC5 14 31
PLYCD1 12 36
PLYCD2D8 22 34
PLYCD3D7 28 31
PLYCD4D6 20 32
PLYCD5 15 30
PLYCE1 13 37
PLYCE2E8 28 33
PLYCE3E7 36 30
PLYCE4E6 19 31
PLYCE5 10 30
PLYCF1 14 37
PLYCF2F8 32 33
PLYCF3F7 41 30
PLYCF4F6 22 31
PLYCF5 10 30
PLYCG1 13 35
PLYCG2G8 22 33
PLYCG3G7 31 30
PLYCG4G6 18 30
PLYCG5 10 28
PMAPA0 14 28
PMAPB0 14 28
PMAPC0 14 28
PMAPD0 14 28
POL5A0 27 5
PUFFA0 2 3
PUFFB0 4 4
PUFFC0 6 5
PUFFD0 8 7
PUNGA0 -100 -138
PUNGB0 -68 -75
PUNGC0 -273 -76
PUNGD0 -200 -67
PVISA0 14 13
PVISB0 14 13
RKEYA0 8 19
RKEYB0 8 19
ROCKA0 6 25
SAWGA0 -176 -60
SAWGB0 -176 -59
SAWGC0 -156 -81
SAWGD0 -159 -81
SBOXA0 17 12
SHELA0 7 9
SHOTA0 23 15
SHTGA0 -114 -108
SHTGB0 -68 -39
SHTGC0 -27 -22
SHTGD0 -39 -39
SHTFA0 -142 -94
SHTFB0 -132 -87
SOULA0 12 32
SOULB0 12 32
SOULC0 12 32
SOULD0 12 32
STIMA0 7 15
SUITA0 11 52
TFOGA0 25 59
TFOGB0 25 59
TFOGC0 25 59
TFOGD0 25 59
TFOGE0 25 59
TFOGF0 25 59
TFOGG0 25 59
TFOGH0 25 59
TFOGI0 25 59
TFOGJ0 25 59
TREDA0 14 94
TREDB0 14 96
TREDC0 14 97
TREDD0 14 94
YKEYA0 8 19
YKEYB0 8 19
SMITA0 31 67
TRE1A0 25 65
TRE2A0 76 120
#ifdef PHASE2
; These items only appear in Doom 2
HDB1A0 11 83
HDB2A0 11 83
HDB3A0 11 59
HDB4A0 11 59
HDB5A0 11 59
HDB6A0 11 59
MEGAA0 12 32
MEGAB0 12 32
MEGAC0 12 32
MEGAD0 12 32
SHT2A0 -104 -99
SHT2B0 -102 -102
SHT2C0 -94 -119
SHT2D0 -99 -140
SHT2E0 -100 -92
SHT2F0 -99 -111
SHT2G0 -90 -134
SHT2H0 -100 -112
SHT2I0 -131 -84
SHT2J0 -118 -75
SGN2A0 26 16
TLMPA0 12 79
TLMPB0 12 79
TLMPC0 12 79
TLMPD0 12 79
TLP2A0 10 57
TLP2B0 10 57
TLP2C0 10 57
TLP2D0 10 57
POB1A0
POB2A0
#endif
BAL2A0 8 8
BAL2B0 8 8
BAL2C0 16 16
BAL2D0 20 19
BAL2E0 25 24
BFS1A0 28 33
BFS1B0 29 33
BFUGA0 28 20
BFGGA0 -95 -106
BFGGB0 -95 -106
BFGGC0 -88 -101
BFGFA0 -88 -83
BFGFB0 -88 -82
BFE1A0 69 45
BFE1B0 69 45
BFE1C0 69 63
BFE1D0 69 61
BFE1E0 12 10
BFE1F0 4 4
BFE2A0 36 28
BFE2B0 34 28
BFE2C0 12 10
BFE2D0 4 4
BSKUA0 6 17
BSKUB0 6 17
CELLA0 8 12
CELPA0 15 20
CEYEA0 24 58
CEYEB0 24 58
CEYEC0 24 58
COL1A0 18 53
COL2A0 18 40
COL3A0 18 53
COL4A0 18 40
COL5A0 18 48
COL5B0 18 48
COL6A0 18 50
FCANA0 13 53
FCANB0 13 52
FCANC0 13 51
FSKUA0 18 51
FSKUB0 18 51
FSKUC0 18 51
GOR1A0 12 67
GOR1B0 12 67
GOR1C0 12 67
GOR2A0 12 83
GOR3A0 12 83
GOR4A0 19 67
GOR5A0 12 51
PINVA0 12 32
PINVB0 12 32
PINVC0 12 32
PINVD0 12 32
PLASA0 29 16
PLSEA0 11 11
PLSEB0 15 14
PLSEC0 16 17
PLSED0 18 19
PLSEE0 18 19
PLSFA0 -117 -91
PLSFB0 -117 -90
PLSGA0 -117 -108
PLSGB0 -117 -116
PLSSA0 8 8
PLSSB0 7 9
POL1A0 22 62
POL2A0 19 62
POL3A0 19 48
POL3B0 19 48
POL4A0 19 51
POL6A0 17 62
POL6B0 19 62
PSTRA0 14 19
RSKUA0 6 17
RSKUB0 6 17
SMBTA0 9 67
SMBTB0 9 68
SMBTC0 9 70
SMBTD0 9 69
SMGTA0 9 67
SMGTB0 9 68
SMGTC0 9 70
SMGTD0 9 69
SMRTA0 10 67
SMRTB0 10 68
SMRTC0 10 70
SMRTD0 10 69
SMT2A0 10 42
TBLUA0 13 94
TBLUB0 13 96
TBLUC0 13 97
TBLUD0 13 94
TGRNA0 13 94
TGRNB0 13 96
TGRNC0 13 97
TGRND0 13 94
YSKUA0 6 17
YSKUB0 6 17
[patches]
#ifdef PHASE1
#include "lumps/textures/phase1/pnames.txt"
#else
#ifdef FREEDM
#include "lumps/textures/freedm/pnames.txt"
#else
#include "lumps/textures/phase2/pnames.txt"
#endif
#endif
[flats]
BLOOD1
BLOOD2
BLOOD3
CEIL1_2
CEIL1_3
CEIL3_1
CEIL3_2
CEIL3_4
CEIL3_5
CEIL3_6
CEIL4_3
CEIL5_1
CEIL5_2
DEM1_3
DEM1_5
DEM1_6
DUMMY1
DUMMY2
DUMMY3
FLAT17
FLAT1_1
FLAT1_2
FLAT1_3
FLAT22
FLAT5_1
FLAT5_2
FLAT5_6
FLAT5_7
FLAT8
FLOOR0_2
FLOOR0_7
FLOOR1_6
GRASS1
GRASS2
GRNLITE1
GRNROCK
LAVA1
LAVA2
LAVA3
LAVA4
MFLR8_3
MFLR8_4
RROCK01
RROCK02
RROCK03
RROCK04
RROCK05
RROCK06
RROCK07
RROCK08
RROCK09
RROCK10
RROCK11
RROCK12
RROCK13
RROCK14
RROCK15
RROCK16
RROCK17
RROCK18
RROCK19
RROCK20
SFLR6_1
SFLR6_4
SFLR7_1
SFLR7_4
SLIME01
SLIME02
SLIME03
SLIME04
SLIME05
SLIME06
SLIME07
SLIME08
SLIME09
SLIME10
SLIME11
SLIME12
SLIME13
SLIME14
SLIME15
SLIME16
CEIL4_2
CONS1_1
CONS1_5
CONS1_7
CONS1_9 ; this is missing in the original wad
DEM1_1
DEM1_2
DEM1_4
FLAT1
FLAT10
FLAT14
FLAT18
FLAT2
FLAT20
FLAT23
FLAT5
FLAT5_4
FLAT5_5
FLOOR0_1
FLOOR0_3
FLOOR0_6
FLOOR1_1
FLOOR1_7
FLOOR3_3
FLOOR4_1
FLOOR4_5
FLOOR4_6
FLOOR4_8
FLOOR5_1
FLOOR5_2
FLOOR5_3
FLOOR5_4
FLOOR6_1
FLOOR6_2
FLOOR7_1
FLOOR7_2
F_SKY1
MFLR8_1
NUKAGE1
NUKAGE2
NUKAGE3
STEP1
STEP2
TLITE6_1
TLITE6_4
TLITE6_5
TLITE6_6
CEIL1_1
CEIL3_3
CEIL4_1
COMP01
FLAT3
FLAT4
FLAT5_3
FLAT5_8
FLAT9
FLOOR0_5
FWATER1
FWATER2
FWATER3
FWATER4
GATE1
GATE2
GATE3
GATE4
CRATOP1
CRATOP2
FLAT19
MFLR8_2
;These are Aquatex flats.
SWATER1
SWATER2
SWATER3
SWATER4
AQF001
AQF002
AQF003
AQF004
AQF005
AQF006
AQF007
AQF008
AQF009
AQF010
AQF011
AQF012
AQF013
AQF014
AQF015
AQF016
AQF017
AQF018
AQF019
AQF020
AQF021
AQF022
AQF023
AQF024
AQF025
AQF026
AQF027
AQF028
AQF029
AQF030
AQF031
AQF032
AQF033
AQF034
AQF035
AQF036
AQF037
AQF038
AQF039
AQF040
AQF041
AQF042
AQF043
AQF044
AQF045
AQF046
AQF047
AQF048
AQF049
AQF050
AQF051
AQF052
AQF053
AQF054
AQF055
AQF056
AQF057
AQF058
AQF059
AQF060
AQF061
AQF062
AQF063
AQF064
AQF065
AQF066
AQF067
AQF068
AQF069
AQF070
AQF071
AQF072
AQF073
AQF074
AQF075
AQF076
; Custom flats
FCGRATE1
FCGRATE2
freedoom-0.12.1/dist/ 0000775 0000000 0000000 00000000000 13553647753 0014360 5 ustar 00root root 0000000 0000000 freedoom-0.12.1/dist/Makefile 0000664 0000000 0000000 00000000755 13553647753 0016027 0 ustar 00root root 0000000 0000000 ASCIIDOC_MAN=a2x -f manpage
.SUFFIXES: .adoc .6
all: freedm.6 freedoom1.6 freedoom2.6 freedm.png freedoom1.png freedoom2.png
%.6: freedoom.adoc
sed -e s/freedoom/$*/ $< > $*.adoc
$(ASCIIDOC_MAN) $*.adoc
freedm.png: ../graphics/titlepic/freedm_title2.png
./pillow-resize $< $@ 64 64
freedoom1.png: ../sprites/playa2a8.png
./pillow-compose $< $@ 64 64
freedoom2.png: ../sprites/heada1.png
./pillow-compose $< $@ 64 64
clean:
$(RM) *.6 *.png freedm.adoc freedoom1.adoc freedoom2.adoc
freedoom-0.12.1/dist/README 0000664 0000000 0000000 00000000535 13553647753 0015243 0 ustar 00root root 0000000 0000000 This directory contains some files that should be useful for system
installations on Unix-like operating systems, including desktop
entries, AppData XML files, and a shell script to run Freedoom in a
simple manner.
Unless otherwise noted, these files should be considered public domain
material and not subject to the usual Freedoom license terms.
freedoom-0.12.1/dist/freedoom 0000775 0000000 0000000 00000005064 13553647753 0016113 0 ustar 00root root 0000000 0000000 #!/bin/bash -
# These ports should be ordered by ease-of-use, of which menu
# simplicity and support for high-resolution take high priority.
# "doom" is Debian’s generic name for their alternatives system.
PORTS="doom odamex gzdoom crispy-doom chocolate-doom prboom-plus"
# Just a single argument starting the command is allowed, -p, in order
# to explicitly set a port on the command line. -- is also supported
# so that -p can be instead sent directly to the port’s argument list.
if [ $# -gt 0 ]; then
if [ "$1" = "-p" ]; then
DOOMPORT="$2"
shift; shift
elif [ "$1" = "--" ]; then
shift
fi
fi
case "$(basename "$0")" in
freedm)
IWAD=freedm.wad
;;
freedoom1)
IWAD=freedoom1.wad
;;
freedoom2 | *)
IWAD=freedoom2.wad
;;
esac
if [ -z "$DOOMWADPATH" ]; then
# Support installations of Freedoom to the home directory using
# the XDG spec. Makes this complicated, but let’s do it right.
if [ -z "$XDG_DATA_HOME" ]; then
if [ -z "$HOME" ]; then
HOME=/
fi
XDG_PATH="$HOME"/.local/share/games/doom
else
XDG_PATH="$XDG_DATA_HOME"/games/doom
fi
PATHS=(
"$XDG_PATH"
/usr/local/share/games/doom
/usr/local/share/doom
/usr/share/games/doom
/usr/share/doom
)
export DOOMWADPATH="$(echo "${PATHS[@]}" | tr ' ' :)"
fi
if [ -z "$DOOMPORT" ] && [ -h "$HOME"/.doomport ]; then
if [ -f "$(readlink -f "$HOME"/.doomport)" ] \
&& [ -x "$(readlink -f "$HOME"/.doomport)" ]; then
DOOMPORT="$(readlink -f "$HOME"/.doomport)"
fi
fi
if [ "$DOOMPORT" ]; then
exec "$DOOMPORT" -iwad "$IWAD" "$@"
fi
dirpath=$(eval echo "\${PATH}" 2>/dev/null | tr : ' ')
for port in $PORTS; do
for dir in $dirpath; do
for file in "$dir"/"$port"; do
if [ -f "$file" ] && [ -x "$file" ]; then
exec "$file" -iwad "$IWAD" "$@"
fi
done
done
done
# If we’ve reached this far, no engine was successfully executed.
# print message to stderr and exit with a status of 1.
cat <&2
$(basename "$0") could not locate nor launch a Doom engine. Most
likely, you simply need to install one, check your distribution
package repositories for names such as "odamex" or "chocolate-doom" or
seek out one and install it manually.
If you believe you already have one, you may just need to modify your
PATH environment variable to include it, or set up the $HOME/.doomport
symbolic link to point directly to the engine of your choice.
EOF
exit 1
freedoom-0.12.1/dist/freedoom.adoc 0000664 0000000 0000000 00000003500 13553647753 0017006 0 ustar 00root root 0000000 0000000 = freedoom(6)
:doctype: manpage
== NAME
freedoom - Automatically launch Freedoom with an engine
== SYNOPSIS
*freedoom* [_-p_ _DOOMPORT_|_--_] [_ARGS_]
== DESCRIPTION
Freedoom is a project to create a complete free-content game based on
the _Doom_ engine (often called “source ports” or simply “ports”),
which itself is free software. In addition, it maintains
compatibility with _Doom_ itself and is capable of playing the wide
variety of modifications (“mods”) that have been released by an
active community since 1993.
This command is a simple shell script to assist in running Freedoom,
which is not a game engine itself nor part of any engine project, but
playing Freedoom should remain simple. The script tries to
automatically select an engine based on a hard-coded list, but three
overrides are available, in order of precedence: command-line
argument, environment variable, and a +$HOME/.doomport+ symbolic link.
Passing _-p DOOMPORT_ runs Freedoom using the _DOOMPORT_ specified.
Setting the _DOOMPORT_ environment variable is similar, running the
engine specified in the variable. An additional permanent setting is
via the +$HOME/.doomport+ symbolic link, which may point to an
executable to run.
Additional arguments passed to the program, or after specifying _--_
as the first option, will be passed to the engine being called. This
can allow you to use options such as _-file_ to load mods or anything
else available with the engine of choice.
== COPYRIGHT
Freedoom is licensed under a permissive three-clause BSD license. For
details, see the source tree or the +COPYING+/+COPYRIGHT+ file that
was installed by distribution packaging.
This manual page and the launcher script are both placed under the
public domain.
== SEE ALSO
chocolate-doom(6), crispy-doom(6), prboom-plus(6)
https://doomwiki.org/wiki/Parameter
freedoom-0.12.1/dist/io.github.freedoom.FreeDM.desktop 0000664 0000000 0000000 00000000604 13553647753 0022543 0 ustar 00root root 0000000 0000000 [Desktop Entry]
Name=FreeDM
Comment=Fight friends and enemies in competitive deathmatch
Comment[he]=הילחם בחברים ובאויבים בקרבות מיתה תחרותיים
GenericName=First Person Shooter Game
GenericName[he]=משחק יריות בגוף ראשון
Type=Application
Icon=freedm
Keywords=first;person;shooter;doom;freedoom;
Categories=Game;ActionGame;
Exec=freedm
freedoom-0.12.1/dist/io.github.freedoom.FreeDM.metainfo.xml 0000664 0000000 0000000 00000005124 13553647753 0023475 0 ustar 00root root 0000000 0000000
io.github.freedoom.FreeDM
FreeDM
Deathmatch game based on the Doom engine
CC0-1.0
BSD-3-Clause
Freedoom Project
https://freedoom.github.io/
https://github.com/freedoom/freedoom/issues
FreeDM is a fast-paced set of levels designed for multiplayer
deathmatches, part of the Freedoom project. Challenge your
friends to the most torturous test of their abilities as you
navigate through 32 levels stalking and hunting them.
The Freedoom project aims to produce three base-game data files
(IWADs) for Doom-compatible engines. With it comes the
capability to also play the wide range of mods created for Doom
by a vibrant community. FreeDM is fully compatible with Doom II
mods.
Game
ActionGame
intense
intense
intense
mild
mild
mild
https://freedoom.github.io/img/screenshots/freedm-0.12_02.webp
DM21: Fourplay
https://freedoom.github.io/img/screenshots/freedm-0.12_03.webp
DM06: Temple of Ammon
https://freedoom.github.io/img/screenshots/freedm-0.12_06.webp
DM18: Deserted Courtyard
https://freedoom.github.io/img/screenshots/freedm-0.12_08.webp
DM09: Industrial Outland
freedoom-0.12.1/dist/io.github.freedoom.Phase1.desktop 0000664 0000000 0000000 00000000603 13553647753 0022561 0 ustar 00root root 0000000 0000000 [Desktop Entry]
Name=Phase 1
Name[he]=מופע 1
Comment=Battle monsters in four 9-level chapters
Comment[he]=הילחם במפלצות בארבעה פרקים בעלי 9 שלבים
GenericName=First Person Shooter Game
GenericName[he]=משחק יריות בגוף ראשון
Type=Application
Icon=freedoom1
Keywords=first;person;shooter;doom;
Categories=Game;ActionGame;
Exec=freedoom1
freedoom-0.12.1/dist/io.github.freedoom.Phase1.metainfo.xml 0000664 0000000 0000000 00000005117 13553647753 0023516 0 ustar 00root root 0000000 0000000
io.github.freedoom.Phase1
Freedoom: Phase 1
First-person shooter based on the Doom engine
CC0-1.0
BSD-3-Clause
Freedoom Project
https://freedoom.github.io/
https://github.com/freedoom/freedoom/issues
Freedoom: Phase 1 contains four chapters, nine levels each, to
provide a smoothly-paced first person action game. In it is a
wide variety of mazes and enemies to fight and challenge your
reflexes.
The Freedoom project aims to produce three base-game data files
(IWADs) for Doom-compatible engines. With it comes the
capability to also play the wide range of mods created for Doom
by a vibrant community. Freedoom: Phase 1 is fully compatible
with The Ultimate Doom mods.
Game
ActionGame
intense
intense
intense
mild
mild
mild
https://freedoom.github.io/img/screenshots/phase1-0.12_01.webp
C1M4: Supply Depot
https://freedoom.github.io/img/screenshots/phase1-0.12_04.webp
C2M3: Archaelogy Site
https://freedoom.github.io/img/screenshots/phase1-0.12_05.webp
C3M3: Derelict Temple
https://freedoom.github.io/img/screenshots/phase1-0.12_08.webp
C4M6: Command Center
freedoom-0.12.1/dist/io.github.freedoom.Phase2.desktop 0000664 0000000 0000000 00000000612 13553647753 0022562 0 ustar 00root root 0000000 0000000 [Desktop Entry]
Name=Phase 2
Name[he]=מופע 2
Comment=Battle monsters in one massive 32-level chapter
Comment[he]=הילחם במפלצות בפרק אדיר אחד בעל 32 שלבים
GenericName=First Person Shooter Game
GenericName[he]=משחק יריות בגוף ראשון
Type=Application
Icon=freedoom2
Keywords=first;person;shooter;doom;
Categories=Game;ActionGame;
Exec=freedoom2
freedoom-0.12.1/dist/io.github.freedoom.Phase2.metainfo.xml 0000664 0000000 0000000 00000005067 13553647753 0023523 0 ustar 00root root 0000000 0000000
io.github.freedoom.Phase2
Freedoom: Phase 2
First-person shooter based on the Doom engine
CC0-1.0
BSD-3-Clause
Freedoom Project
https://freedoom.github.io/
https://github.com/freedoom/freedoom/issues
Freedoom: Phase 2 is a 32-level game, expanding upon Phase 1 and
adding a double-barrelled shotgun and more enemy types, along
with even more brutal gameplay to really test your limits.
The Freedoom project aims to produce three base-game data files
(IWADs) for Doom-compatible engines. With it comes the
capability to also play the wide range of mods created for Doom
by a vibrant community. Freedoom: Phase 2 is fully compatible
with Doom II mods.
Game
ActionGame
intense
intense
intense
mild
mild
mild
https://freedoom.github.io/img/screenshots/phase2-0.12_01.webp
MAP18: Aquatics Lab
https://freedoom.github.io/img/screenshots/phase2-0.12_04.webp
MAP10: Deadly Outlands
https://freedoom.github.io/img/screenshots/phase2-0.12_05.webp
MAP02: Filtration Tunnels
https://freedoom.github.io/img/screenshots/phase2-0.12_07.webp
MAP26: Dark Depths
freedoom-0.12.1/dist/pillow-compose 0000775 0000000 0000000 00000001275 13553647753 0017264 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python3
# Simple and dumb Pillow-based compositor
# Usage: pillow-compose src-img.png dst-img.png WIDTH HEIGHT
import sys
from PIL import Image
src = Image.open(sys.argv[1])
img = Image.new("RGBA", (int(sys.argv[3]), int(sys.argv[4])), (0, 0, 0, 0))
# Pillow's compositing won't accept negative values. This can happen
# if the destination image is smaller on at least on axis than the
# source image.
if img.size[0] - src.size[0] < 0:
off_x = 0
else:
off_x = (img.size[0] - src.size[0]) // 2
if img.size[1] - src.size[1] < 0:
off_y = 0
else:
off_y = (img.size[1] - src.size[1]) // 2
img.alpha_composite(src.convert("RGBA"), (off_x, off_y))
img.save(sys.argv[2])
freedoom-0.12.1/dist/pillow-resize 0000775 0000000 0000000 00000000406 13553647753 0017113 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python3
# Simple and dumb Pillow-based resizer
# Usage: pillow-resize src-img.png dst-img.png WIDTH HEIGHT
import sys
from PIL import Image
img = Image.open(sys.argv[1])
img.thumbnail((int(sys.argv[3]), int(sys.argv[4])))
img.save(sys.argv[2])
freedoom-0.12.1/flats/ 0000775 0000000 0000000 00000000000 13553647753 0014526 5 ustar 00root root 0000000 0000000 freedoom-0.12.1/flats/README 0000664 0000000 0000000 00000000543 13553647753 0015410 0 ustar 00root root 0000000 0000000 This directory contains the flats (floor and ceiling textures). More
information about flats can be found on the Doom wiki:
GIF files placed in this directory will not be automatically included
in the build; the lump name must also be added into buildcfg.txt in
the top-level directory in the section named [flats].
freedoom-0.12.1/flats/aqf001.png 0000664 0000000 0000000 00000005200 13553647753 0016221 0 ustar 00root root 0000000 0000000 PNG
IHDR @ @ gAMA a cHRM z&