home *** CD-ROM | disk | FTP | other *** search
- =======================
- DM2CONV v3.0
- by Vincenzo Alcamo
- =======================
-
-
- ** DESCRIPTION
- --------------
- This program converts DOOM/DOOM2/HERETIC levels to run with one of the
- other games: a total of six different conversion types.
- Some of DM2CONV's features are:
- - DOOM, DOOM II, HERETIC support
- - level conversion and remapping
- - music conversion, remapping and mixing
- - linedef/sector types remapping
- - wall/floor textures remapping
- - resource renaming
- - object substitution with difficulty level & conditional substitution
- - fully programmable via response files
- - GFXMAKER utility to use one game's textures inside another one
-
- PLEASE, take the time to read this entire documentation because v3.0 is
- a totally new program. It has a different syntax and many new features.
-
-
-
- ** WHY I MUST CONVERT A PWAD?
- -----------------------------
- Levels designed for DOOM are incompatible with DOOM II or HERETIC
- because some resources (ie: graphic bitmap) and objects only exist
- inside the DOOM main wad file: DOOM.WAD.
- Nevertheless, if you have played DOOM II or HERETIC you should have seen
- new monsters and things (the SuperShotgun, the Ethereal Crossbow...).
-
- DM2CONV handles the conversion process in a very easy way.
- Let's introduce some conventional names:
- D = DOOM
- D2 = DOOM II
- H = HERETIC
- If you want to convert from game1 to game2 you should type:
- DM2CONV source destination @:(game1)TO(game2)
-
- Let suppose you want to run SNIPER.WAD (a well-made level by Eric C.
- Reuter) with DOOM II; just execute the following command:
- DM2CONV SNIPER.WAD SNIPER2.WAD @:DTOD2
- For HERETIC you have to execute:
- DM2CONV SNIPER.WAD SNIPERH.WAD @:DTOH
-
- NOTE: DM2CONV requires the DEFAULT.RSP file, place it in the same
- directory where DM2CONV.EXE resides.
- Please, read carefully the KNOWN PROBLEMS paragraph.
-
-
-
- ** HOW THE CONVERSION WORKS
- ---------------------------
- The differences between DOOM / DOOM II / HERETIC are the following:
- - many resources have different names
- - most wall/floor textures are different
- - new things or missing things
- - incompatible linedef/sector types
- DM2CONV renames the resource to their appropriate names, remaps the
- textures to similar ones, changes the objects, etc...
-
- The general syntax is:
-
- DM2CONV <input> [output] [/symbol[=[value]]]... <@response>...
-
- input
- This parameter is required: it specifies the name of the wad to
- convert. The .WAD extension is optional.
- The input file must be a PWAD or a IWAD file.
-
- output
- This is the name of the output wad. The .WAD extension is optional.
- If a file of the same name already exists, it is deleted.
- If this parameter is omitted, the input file is overwritten (you
- should make a backup copy of the source file).
-
- /symbol[=[value]]
- You can define or undefine a symbol.
- /name The symbol 'name' is defined with the 'name' value
- /name=value The symbol 'name' is defined with the value 'value'
- /name= The symbol 'name' is undefined.
-
- @response
- response is the name of a text file containing additional parameters
- for DM2CONV. The .RSP extension is optional.
- If the response file is not found in the specified directory, it will
- be searched in the same directory where DM2CONV.EXE resides.
-
-
-
- ** RESPONSE FILES
- -----------------
- If you have read the above paragraphs, you may think that DM2CONV is
- rather simple. You may also think that simple programs can do only
- simple things: THIS IS COMPLETELY WRONG.
- DM2CONV has a simple syntax because it is an interpreter:
- all conversion logic is contained inside response files.
-
- I have supplied a basic response file, DEFAULT.RSP, that handles all the
- conversion process. If you want to customize the conversion, you should
- edit the DEFAULT.RSP file, or create a new one.
-
- Response files are a sort of batch files, a set of commands have been
- provided to handle response files.
-
- @[response][:label]
- This command calls the specified response file (like DOS CALL).
- If a label is supplied, the execution of the response file
- will start at the specified label: a label is defined with a
- colon, like in DOS batch files.
- If the response name is omitted, the current response file is
- used or, if in command-line mode, the DEFAULT.RSP is used.
- The maximum number of nested response files is 10.
- Examples:
- @TEST ;call the TEST.RSP file
- @TEST:NO1 ;call the TEST.RSP file at line :NO1
- @:SUB2 ;call the current response file at line :SUB2
-
- :label
- This command defines a label inside a response file.
-
- ;comment
- All text in a line after the semicolon is a comment and is discarded.
-
- RETURN
- This command terminates the current response file and returns
- control to the calling response file.
-
- ABORT
- This command terminates the program, control returns to DOS.
-
- ECHO text
- This command displays the specified text.
-
- IFDEF symbol
- IFNDEF symbol
- ELSE
- ENDIF
- These commands implement conditional parsing of response files.
- If a symbol is defined (IFDEF) or undefined (IFNDEF) parsing
- will continue on the True branch or in the False (ELSE) branch.
- IFDEF/IFNDEF can be nested. There is no limit for nesting level.
- Example:
- IFDEF TEST
- ECHO TEST is defined
- @TRUE ;do something
- ELSE
- ECHO TEST is not defined
- ENDIF
-
- SET symbol[=[value]] ...
- This command defines or undefines a specified symbol.
- It is equivalent to the /symbol command, but it is for response files.
- Use SET alone to display the symbols currently defined.
- Examples:
- SET TEST=2 PIC=GIF ;defines TEST and PIC
- SET GFX= ;undefines GFX
- SET ;display all symbols
-
-
-
- ** SYMBOLS
- Symbols are a new features of DM2CONV and are used primarily for
- conditional parsing (IFDEF/IFNDEF).
- Symbols can be defined with the SET or / commands (see the general
- syntax). Any symbol can be redefined or undefined.
- There are two types of symbols: environmental and private.
- Private symbols are those defined using DM2CONV, environmental symbols
- are the environment variables of the DOS shell.
- An environmental symbol cannot be redefined or undefined, but a private
- symbol of the same name has the precedence over it.
- The SET command will display only the private symbols.
-
- Although you can use any name for a symbol, there are some symbols
- that performs special functions:
-
- SOURCE
- This symbol contains the name of the source file, as specified in
- the command line of DM2CONV.
- Can be (re)defined in a response file.
-
- DEST
- This symbol contains the name of the destination file, as specified
- in the command line of DM2CONV.
- Can be (re)defined in a response file.
-
- HELP
- This symbol, if set, will skip the conversion process, and displays
- the help page of DM2CONV.
- It is the same as to type DM2CONV with no parameters.
-
- FROM
- This symbol specify the format of the source file.
- Valid values are:
- D or DOOM for DOOM wads
- D2 or DOOM2 for DOOM II wads
- H or HERETIC for HERETIC wads
- Currently this symbol has no use since no checking is performed
- on the source file format.
- Default value is DOOM.
-
- TO
- This symbol specify the format of the destination file.
- Values are the same for the FROM symbol.
- Default value is DOOM2.
- This symbol is needed to change the names for levels and musics.
-
- REMAP
- This symbol enables the level remapping feature.
- Just define it with the number of the first level, and all
- levels in a wad are remapped.
- Examples:
- /REMAP=5 ;start from E1M5 or MAP05
- /REMAP=10 ;start from E2M1 or MAP10
- /REMAP=28 ;start from E4M1 or MAP28
- Musics are remapped automatically: if E1M1 is mapped to E2M1, then
- D_E1M1 is mapped to D_E2M1.
-
- DEBUG
- This symbol, if set, will enable the debug mode.
- In debug mode, detailed information are shown: currently only
- statistics about the object conversion are displayed.
- Be warned: debug mode could generate a large amount of text.
-
- MIX
- This symbol enable the music mix feature.
- If it is defined, all musics in a wad are mixed (randomized).
- You can have a wad with several musics and mix them before running
- DOOM to play musics in a random order.
-
- SEED
- This symbol pertains to the object substitution algorithm.
- It defines the value for the random number generator's seed.
- Default is 0.
- Each level is randomized with the specified seed.
-
- ONCE
- This symbol pertains to the object substitution algorithm.
- The value of the symbol specify the objects suitable for conversion:
- 0 all objects can be converted
- 1 only objects not already converted
- 2 only objects already converted
- others same as 1
- /ONCE means /ONCE=ONCE, so the default value of 1 is used.
- Example:
- /ONCE= ;with ONCE undefined (or ONCE=0)
- 8=3 ; objects type 8 becomes type 3
- 3=4 ; all objects type 3 becomes type 4 -> no type 3 remains
- /ONCE ;with ONCE defined (ONCE=1)
- 8=3 ; objects type 8 becomes type 3
- 3=4 ; objects type 3 (not the former type 8) becomes type 4
-
- GFX
- This symbol is used by DEFAULT.RSP: it specify to not convert
- textures and floors names.
- You must define this symbol if you use the wad built by GFXMAKER.
- See GFXMAKER for more details.
-
- HANGS
- This symbol is used by DEFAULT.RSP: it specify to convert hanging
- objects (valid only for HERETIC to DOOM/DOOM2 conversions).
- In HERETIC, players can walk under hanging objects, but not in
- DOOM/DOOM2.
-
-
-
- ** REPLACEMENTS
- To convert a level several things must be replaced: texture names,
- floor names, directory entry names, objects types, linedef and sector
- actions.
- All of these replacements can be specified in a response file.
- A replacement expression must not contain spaces, thus more than
- one expression is allowed on the same line.
- A section tag specifies the type of replace expression.
- Valid section tags are:
- [TEXTURES] ;texture name replaces
- [FLOORS] ;floor name replaces
- [NAMES] ;directory entry names replaces
- [THINGS] ;object replacement expressions
- [LINEDEFS] ;linedef replacement expressions
- [SECTORS] ;sector replacement expressions
- [OBJECTS] ;object names (see OBJECTS.RSP)
-
- Only the first 3 characters of a section name are used.
-
- [TEXTURE] [FLOORS] and [NAMES] expressions
- oldname=newname
-
- [LINEDEFS] and [SECTORS] expressions
- action1,action2,...=newaction
- action1-action2,...=newaction
-
- [OBJECTS] expressions
- number=[(radius,height)]game,name
- Game is a combination of game ids: D for DOOM, D2 for DOOM II
- and H for HERETIC.
- Radius and height are optional and are currently unused.
- Example: 2001=DD2,Shotgun
- 82=(20,32)D2,Super Shotgun
- NOTE: spaces are allowed after the equal sign, only one object
- per line can be defined.
-
- [THINGS] expressions are discussed in the following paragraph.
-
-
-
- ** OBJECT SUBSTITUTIONS
- -----------------------
- All things in DOOM are objects: lamps, monsters, weapons, power-ups,
- obstacles, other players, etc..
- DOOM II supports all DOOM objects plus others: the super shotgun, the
- megasphere, many new monsters, etc..
- HERETIC hasn't any of the DOOM objects.
- With DM2CONV you can transform specified DOOM objects into DOOM II or
- HERETIC objects. The object substitution is such a process and is
- enabled by specifying at least one replacement expression.
-
- A replacement is a string describing what objects to transform and how
- to transform them. The simplest replacement string is of the format:
- object1=object2
- This replacement will transform each object of the type object1 to one
- of the type object2.
- An object is specified by its number or its name.
- Spaces in name aren't allowed: you must discard them; also, you can
- specify only the first characters of the name.
- Example: SUPER SHOTGUN must be entered as SUPERSHOTGUN or as SUPER
-
- WARNING: if you want to specify objects by name, you must first include
- the OBJECTS.RSP file.
- Example: DM2CONV in out @OBJECTS SHOTGUN=SUPERSHOTGUN @:DTOD2
-
- You can change multiple objects:
- obj1,obj2=obj3
- all objects of type obj1 and obj2 are transformed into obj3 objects.
- obj1=obj2,obj3
- all obj1 objects becomes obj2 and obj3 (they are chosen randomly in
- equal proportions: this is why the /SEED parameter exists).
- obj1-obj2=obj3
- all objects with types in range obj1 to obj2 becomes types obj3.
- You can specify any number of source objects and any number of
- destination objects.
-
- You can also specify quantities (only for the destination objects):
- IMP=DEMON@5
- In the above example, only 5 IMPs become DEMONs; the others remain IMPs.
- IMP=DEMON@5,SPECTRE@10
- Five IMPs become DEMONs and ten become SPECTREs.
- If the number of source objects is less than the destination, the
- quantities are adjusted proportionally.
- In the above example if there are only 9 IMPS, 3 become DEMONs (33%)
- and 6 become SPECTREs (66%).
- Another example:
- IMP=DEMON@5,SPECTRE
- 5 IMPs become DEMONs, the remaining become SPECTRE: if there are less
- than 5 IMPs, all of them become DEMONs.
- That is, if you don't specify a quantity the remaining objects are used.
-
- The quantity can be a percentual:
- IMP=DEMONS@50%
- In this way, 50% of IMPs become DEMONs.
- You can mix all of the above rules:
- IMP,DEMON=BARON@2,LOSTSOUL@50%,TROOPER
-
- In DOOM/DOOM II/HERETIC the difficulty level chosen when you start a new
- game will affect the objects in a considerable manner:
- - new objects may appear
- - other objects disappear
- The reason is that each object has flags that specify in which level of
- difficulty it should appear.
- There are five flags:
- 1 - object appears on difficulty levels 1 and 2
- 2 - object appears on difficulty level 3
- 3 - object appears on difficulty levels 4 and 5
- D - object is deaf (useful only for monsters)
- M - object appears ONLY in multiplayer mode
- Starting from version 1.5, DM2CONV supports these flags in the
- substitution rules; the complete syntax is:
- sobj1[:flags]...=dobj1[@quantity[%]][:flags]...
- Additional flags are introduced by DM2CONV v3.0:
- 0 - object does not appear at all (if 123 flags are not specified)
- This is useful to remove an object from a level.
- A - process all objects
- O - process only objects not already converted
- C - process only objects already converted
- The AOC flags overrides the ONCE symbol.
-
- Each object can have one or more of the above flags.
- If difficulty flags are specified in the source, only the objects
- that have those flags are changed.
- IMP:1=STIMPACK
- means that all IMP that will appear (at least) in difficulty level 1
- will be transformed into STIMPACK.
- This affects all IMP that have the '1' flag, not the ones that
- have only the '1' flag.
-
- If difficulty flags are specified in the destination, the object
- remapped will have the specified flags.
- IMP=STIMPACK:123
- means that all IMP will be transformed into STIMPACK and will appear
- on any level (except multiplayer mode).
-
- The 'D' flag has no means if used in a source object.
- The 'M' flag works in different ways if used in source or destination
- source: only multiplayer-mode objects are changed
- destination: the object appear only on multiplayer mode
-
-
-
- ** CONDITIONAL OBJECT SUBSTITIONS
- With DM2CONV v3.0 you can specify to perform an object substitution if
- and only if a specified condition is true.
- Three new object expressions are available:
- ?objectlist relational_operator value
- ?ELSE
- ?END
-
- I will explain these with examples:
- ?3003>10 ;if there are more than ten baron of hell(=3003)
- 3003=69@50% ;converts 50% of baron into hellknight
- ?ELSE
- 3003=64@1 ;else converts 1 baron into an archvile
- ?ENDIF
-
- Another example:
- ?82=0 2001=82@1 ?ENDIF
- If there is no supershotgun, a shotgun is converted into a supershotgun.
-
- In details:
- objectlist is a list of objects, like any object expression.
- obj1,obj2,...
- obj1:flags,obj2-obj3:flags,...
- relational_operator is one of the following:
- = <> > >= < <=
- value is an integer in the range 0-16383.
- DM2CONV will count the number of objects specified in the object list.
- If this number is in relation with the value specified, the expressions
- in the true branch are executed, otherwise the other branch is executed
- (the one between ?ELSE and ?END, this is optional).
-
- This works like the IFDEF/IFNDEF commands.
- The ?ELSE command is optional, but the ?END command is mandatory.
- Conditional expressions can be nested.
-
- The primary use of conditional substitutions is to ensure a specific
- amount of an object; example:
- ?BFG>2 ;this is only an example
- BFG=BFG@2,CELLPACK
- ?ELSE
- ?BFG<2
- BFG,PLASMA,CELLPACK,CELLCHARGE=BFG@2
- ?END
- ?END
-
-
-
- ** TEXTURE REPLACEMENTS
- -----------------------
- The texture replacement lists were the hardest part to write.
- When choosing a texture replacement you must follow these rules:
- 1- the two textures must have the same height, alternatively
- the second must be 128 pixels high.
- This is because textures are repeated vertically every 128 pixels
- (otherwise you have the TUTTIFRUTTI effect).
- 2- if the source texture has only one patch, the second must have
- only one patch.
- This is because fake walls can have only this type of texture
- (otherwise you have the MEDUSA effect).
- I recommend you to use EDMAP: this awesome editor has a powerful viewer
- that shows textures/patches/floors/sprites. Texture info are also shown.
-
-
-
- ** GFXMAKER
- -----------
- GFXMAKER can create a wad file that contains all the textures of a
- specified set of games.
- For example: you can create a wad that contains DOOM II and HERETIC
- textures for DOOM.
- You will need the registered version of the selected games.
- Please, execute GFXMAKER and follow its instructions.
-
- The wad built by GFXMAKER has a name defined by the set of games used.
- A wad for one game (DOOM's GFXD_H.WAD for example) cannot be used with
- another game (DOOM II or HERETIC).
- If you use the GFX* wad, you can convert levels mantaining the original
- textures/floors by specify the /GFX parameter.
-
- For example:
- DM2CONV SNIPER SNIPERH /GFX @:DTOH
- HERETIC -FILE GFXH_D.WAD SNIPERH.WAD
-
- SPECIAL CONSIDERATION ABOUT GFXMAKER:
- - DOOM and DOOM II have the same color palette, but not HERETIC.
- If you specify HERETIC as source/destination to GFXMAKER, the
- colors of patches/floors need to be converted.
- Most of the time there is no exact match, so another similar colour
- must be used. This is why the textures look different.
- - I have noticed that HERETIC will hang the computer if the external
- files have too many resources. (HERETIC has lot of bugs)
- This happen if you use (for example) GFXH_D.WAD and all the three
- episodes of DOOM.
- I recommend you to use only one level at a time with GFXH_D.WAD
- - For the above reason, I have not implemented the DOOM II textures
- for HERETIC.
- However, you can specify the /GFX parameter if you use GFXH_D.WAD:
- DOOM textures are mantained, only DOOM II textures are converted.
- - The effect that shows when a switch or button is pressed, is
- implemented inside the executable, so buttons will not change when
- you press them, although they will work as usual.
-
-
-
- ** DMT
- ------
- Included in this version of DM2CONV is DMT: my first program developed
- for DOOM.
- DMT fully supports DOOM, but not DOOM2 or HERETIC although many options
- will work well.
- Brief instructions are included with DMT: just type DMT -HELP
-
- DMT can be used to extract DOOM/DOOM II/HERETIC resources: like levels,
- musics, sprites and so on.
- Example:
- DMT -OPEN DOOM.WAD -NEW EPISODE1 -COPY #2 #1 E1*.L
- Copy first episode of DOOM to EPISODE1.WAD
- DMT -OPEN DOOM2.WAD -NEW MUSICS2 -COPY #2 #1 *.M
- Copy all DOOM II's musics to MUSICS2.WAD
- DMT -OPEN HERETIC.WAD -NEW MUSICSH -COPY #2 #1 MUS_*
- Copy all HERETIC's musics to MUSICSH.WAD
-
-
-
- ** KNOWN PROBLEMS
- -----------------
- Multi-level pwads can create problems with DOOM II because the level
- sequence cannot be replicated: DOOM has 3 episodes, each with 8 levels
- and 1 secret level, while DOOM II has 30 levels, 1 secret level and 1
- super-secret level.
- This means that accessing the secret level in a wad will load the
- 31th level of DOOM II instead of the ExM9 level of DOOM.
- For the same reason, DOOM II level converted for HERETIC must consist
- of less than nine maps. HERETIC has the same level scheme of DOOM.
-
- Monster substituition has a weak spot. When you change monsters with
- bigger ones, if these new monsters are too near a wall they cannot move
- because they collide with the scenario. It is the same as you type
- IDSPISPOPD (or IDCLIP for DOOM II, KITTY for HERETIC), then move into a
- wall and retype the code.
-
- Levels converted to HERETIC could have the FOS bug (FLASH OF SKY): when
- you stand over a linedef you will see the sky.
- This is probably due to some limitation of the HERETIC graphic engine,
- it is not a DM2CONV's bug, perhaps it could be removed with the use of a
- node builder (currently no known nodebuilders can remove this bug).
-
- HERETIC has another strange bug: it does not support more than 1 maces in
- a level. If a level has more than 8 maces it exits to DOS with the error:
- Too many mace spots
- But if a level has 8 or less maces, all the maces (except one) are
- converted into monsters: this conversion is made on-the-fly by HERETIC.
- For this reason, DEFAULT.RSP has an instruction to limit the number of
- maces in a level: if more than 1 mace is found, all but 1 are converted
- into phoenix rods and hellstaffs.
-
- Due to the many differences of these three great games, the only
- conversions ensured at 100% are those from DOOM to DOOM2/HERETIC.
- All the other conversions may produce unplayable levels.
- Some of the most common problems:
- - objects are of different sizes, so a converted object may block
- a passage, or it may not block a passage it was meant to block.
- example: HERETIC level E1M1 to DOOM2, secret room near the start
- - many linedefs are not supported by all games: fast doors, raising
- stairs by 16 pixels, etc...
- example: HERETIC level E1M1 to DOOM, raising stairs near the exit
- - monster conversion: some levels rely on the destruction of a
- specific monster (BOSS BRAIN, COMMANDER KEEN, etc..) to open the
- exit. This feature could not work once the level is converted, so
- it will be impossible to exit.
- Most of these problems can be skipped with the use of cheat codes:
- that works only in single player mode! DEATHMATCHERS are warned!
-
-
-
- ** DISTRIBUTION LICENSE
- -----------------------
- All files in the original distribution package are PUBLIC DOMAIN.
- You can freely distribute these files (also separately) in any form.
- The files included inside DM2CNV30.ZIP are:
- DM2CONV.EXE the converter!
- DM2CONV.PAS source for DM2CONV
- DM2CONV.DOC documentation
- GFXMAKER.EXE the wad builder
- GFXMAKER.PAS source for GFXMAKER
- DEFAULT.RSP the official default response file
- OBJECTS.RSP response to use names in object expressions
- OBJECTS.TXT object table for DOOM/DOOM2/HERETIC
- DMT.EXE manipulation tool
- FILE_ID.DIZ package description
-
- For comments, bug reports, suggestions, etc.. please contact the author:
-
- snail-mail:
- Vincenzo Alcamo
- via Verdi 185
- 40059 Medicina (BO)
- ITALY
-
- e-mail:
- alcamo@arci01.bo.cnr.it
- (I am always glad to receive E-mails, but I can use this account
- only on Tuesdays and Saturdays: don't expect fast replies)
-
- You can ask me by e-mail the latest version of DM2CONV:
- please state your current version and I will send you a newer version
- when it will be available (or I can inform you where to find the latest
- release, please specify which option you prefer).
-
-
-
- ** ADDITIONAL CREDITS
- ---------------------
- Matt Fell author of the DOOM specs - vital info
- Raphael Quinet,Brendon J Wyber authors of DEU - first DOOM editor
- Jeff Rabenhorst author of EDMAP - awesome DOOM editor
- Greg Lewis author of DEHACKED
-
- v3.0 beta testers: Jack Hartman, Bradford Youngkin, Glenn Willing
-
-
-
- ** PROGRAM HISTORY
- ------------------
- 05/23/95 v3.0 Totally rewritten version: syntax has changed.
- New conversions: HERETIC to DOOM/DOOM2, DOOM2 to DOOM.
- Conversion driven by response files: no tables are
- included in the executable program.
- Conditional parsing, conditional object expressions.
- Symbols instead of switches.
- New ONCE feature: replace objects once.
- New MIX feature to scramble music order.
- DM2MKWAD obsolete: GFXMAKER now supports DOOM/DOOMII/HERETIC.
- Many other enhancements: find them by yourself.
- Special thanks to Bradford Youngkin: HERETIC's mace bug
- and problems with hanging objects.
-
- 04/01/95 v2.0 Registered HERETIC support (shareware is no longer supported)
- DOOM textures and floors inside HERETIC.
- DOOM II to HERETIC conversion.
- Many little improvements: IWAD support, no RSP extension
- needed in response files, nested response files,
- /NOTEXTURE and /NOFLOOR switch.
-
- 03/04/95 v1.7b Special bug fix version:
- - texture names were case sensitive
- (reported by Thomas Beckmann)
- - strange substitutions with multi-level pwads
- (reported by Rick Weber,Jack Hartman,Georg Deppe)
-
- 01/21/95 v1.6b Resource renaming.
- Improved documentation.
-
- 01/14/95 v1.5b Sky resource remapping.
- Heretic support.
- External texture tables.
- Difficulty level supported.
- Some code rewritten.
-
- 12/14/94 v1.2 Music remapping. Other minor changes.
- Sources released in the public domain.
- DMT tool distributed to check reactions.
-
- 11/12/94 v1.0 The first release.
- DM2CONV.PAS should be in the distribution package:
- it wasn't for my fault.
-
-