PrBoom compatibility options
============================

Some of this is a bit dry. You might want to skip to the bottom and read the
examples.

Internally, PrBoom maintains a "compatibility level" which it uses to
determine how to behave in various circumstances. The supported levels are
currently:

Number	Name			Description
0	doom_demo_compatibility	As compatible as possible for playing original
				Doom demos, tries to emulate the poorer RNG
				and LOS algorithms
1	doom_compatibility	Compatible with original Doom levels -
				emulates all original game bugs
2 	boom_compatibility_compatibility	Emulates Boom's compatibility mode
3	boom_compatibility,	Emulates Boom
4	lxdoom_1_compatibility,	Emulates LxDoom v1.4.x
5	mbf_compatibility	Emulates MBF
6	prboom_1_compatibility	Emulates PrBoom v2.03beta
7	prboom_2_compatibility	PrBoom v2.1, current version

You can cycle through the compatibility levels in the game using the TNTCOMP
cheat. There's also the default_compatibility_level config file option, and
the -complevel command line parameter.

The numbers are subject to change between versions, so if you're doing
elaborate stuff with these things you're advised to check this file each
time you upgrade. Most people should just leave default_compatibility_level
set to -1 in the config file, which means "use most recent" which has most
features, most bug fixes, etc.

But some people want to test the behavior of levels with older versions, and
will find it helpful to not have to load a dozen games to do so. Some people
like me play a lot of old levels, so need to be able to enable compatibility
with some old bugs. And some people may want to record demos for older game
versions.

When you play a demo, PrBoom sets the compatibility level and settings
automatically. When you load a savegame, the settings are restored.

When you start a new game, the compatibility level is got from (in order of
preference):
- -complevel parameter
- default_compatibility_level config file param if not -1
- set to the most recent otherwise

If the compatibility level is MBF or better, the detailed compatibility
settings are read from the comp_* config file options, as in MBF. Otherwise,
the settings are put to the defaults for that game version.

You can adjust the compatibility settings during play from the menus
(Options->Setup->Doom Compatibility).

The sort of people interested in these things will already know the MBF
options, so I'll just list the changes:
- comp_floors now also causes the original Doom behavior of objects stuck in
a ceiling preventing the floor below lowering.
- new option comp_moveblock enables the old movement clipping bug which
allows things to go through walls sometimes (mancubus shots, and key
grabbing tricks)

PrBoom can also record old demos with some success (demo players see the
comp_moveblock note above):

prboom -complevel 0 -record test

records a doom v1.9 compatible demo

prboom -complevel 3 -record whatever

records a Boom demo (health warning: support isn't good yet)

prboom -complevel 5 -record blah

records an MBF demo.

Of course, demo recording is no more reliable than demo playback; original
Doom demos will often but not always work. Boom support is being worked on;
MBF support should be perfect.

- Colin


