home *** CD-ROM | disk | FTP | other *** search
/ Action Ware 12: Heretic & Hexen / actionware12.iso / acware12 / utility / dm2conv / dm2conv.doc < prev    next >
Text File  |  1995-11-16  |  31KB  |  766 lines

  1.                        =======================
  2.                             DM2CONV v3.2
  3.                          by Vincenzo Alcamo
  4.                           16 November 1995
  5.                        =======================
  6.  
  7.  
  8. ** DESCRIPTION
  9. --------------
  10. This program converts DOOM/ULTIMATE DOOM/DOOM2/HERETIC levels to run with
  11. one of the other games: a total of eleven different conversion types.
  12. Some of DM2CONV's features are:
  13.    - DOOM, ULTIMATE DOOM, DOOM II, HERETIC support
  14.    - level conversion and remapping
  15.    - music conversion, remapping and mixing
  16.    - linedef/sector types remapping
  17.    - wall/floor textures remapping
  18.    - resource renaming
  19.    - object substitution with difficulty level & conditional substitution
  20.    - fully programmable via response files
  21.    - GFXMAKER utility to use one game's textures inside another one
  22.      Improved version: please rebuild your GFX*.WAD (see GFXMAKER)
  23.  
  24. Paragraphs starting with ** are new or modified since the last version.
  25.  
  26.  
  27.  
  28. == WHY I MUST CONVERT A PWAD?
  29. -----------------------------
  30. Levels designed for DOOM are incompatible with DOOM II or HERETIC
  31. because some resources (ie: graphic bitmap) and objects only exist
  32. inside the DOOM main wad file: DOOM.WAD.
  33. Nevertheless, if you have played DOOM II or HERETIC you should have seen
  34. new monsters and things (the SuperShotgun, the Ethereal Crossbow...).
  35.  
  36. DM2CONV handles the conversion process in a very easy way.
  37. Let's introduce some conventional names:
  38.     D  = DOOM
  39.     UD = ULTIMATE DOOM
  40.     D2 = DOOM II
  41.     H  = HERETIC
  42. If you want to convert from game1 to game2 you should type:
  43.     DM2CONV source destination @:(game1)TO(game2)
  44.  
  45. Let suppose you want to run SNIPER.WAD (a level by Eric C. Reuter) with
  46. DOOM II; just execute the following command:
  47.     DM2CONV SNIPER.WAD SNIPER2.WAD @:DTOD2
  48. For HERETIC you have to execute:
  49.     DM2CONV SNIPER.WAD SNIPERH.WAD @:DTOH
  50.  
  51. NOTE: DM2CONV requires the DEFAULT.RSP file, place it in the same
  52.       directory where DM2CONV.EXE resides.
  53.       The TO is optional, so @:D2TOD is equal to @:D2D .
  54.       Please, read carefully the KNOWN PROBLEMS paragraph.
  55.  
  56.  
  57.  
  58. == HOW THE CONVERSION WORKS
  59. ---------------------------
  60. The differences between DOOM / DOOM II / HERETIC are the following:
  61.    - many resources have different names
  62.    - most wall/floor textures are different
  63.    - new things or missing things
  64.    - incompatible linedef/sector types
  65. DM2CONV renames the resource to their appropriate names, remaps the
  66. textures to similar ones, changes the objects, etc...
  67.  
  68. The general syntax is:
  69.  
  70. DM2CONV <input> [output] [/symbol[=[value]]]... <@response>...
  71.  
  72. input
  73.    This parameter is required: it specifies the name of the wad to
  74.    convert. The .WAD extension is optional.
  75.    The input file must be a PWAD or a IWAD file.
  76.  
  77. output
  78.    This is the name of the output wad. The .WAD extension is optional.
  79.    If a file of the same name already exists, it is deleted.
  80.    If this parameter is omitted, the input file is overwritten (you
  81.    should make a backup copy of the source file).
  82.  
  83. /symbol[=[value]]
  84.    You can define or undefine a symbol.
  85.    /name        The symbol 'name' is defined with the 'name' value
  86.    /name=value  The symbol 'name' is defined with the value 'value'
  87.    /name=       The symbol 'name' is undefined.
  88.  
  89. @response
  90.    response is the name of a text file containing additional parameters
  91.    for DM2CONV. The .RSP extension is optional.
  92.    If the response file is not found in the specified directory, it will
  93.    be searched in the same directory where DM2CONV.EXE resides.
  94.  
  95.  
  96.  
  97. == RESPONSE FILES
  98. -----------------
  99. If you have read the above paragraphs, you may think that DM2CONV is
  100. rather simple. You may also think that simple programs can do only
  101. simple things: THIS IS COMPLETELY WRONG.
  102. DM2CONV has a simple syntax because it is an interpreter:
  103. all conversion logic is contained inside response files.
  104.  
  105. I have supplied a basic response file, DEFAULT.RSP, that handles all the
  106. conversion process. If you want to customize the conversion, you should
  107. edit the DEFAULT.RSP file, or create a new one.
  108.  
  109. Response files are a sort of batch files, a set of commands have been
  110. provided to handle response files.
  111.  
  112. @[response][:label]
  113.    This command calls the specified response file (like DOS CALL).
  114.    If a label is supplied, the execution of the response file
  115.    will start at the specified label: a label is defined with a
  116.    colon, like in DOS batch files.
  117.    If the response name is omitted, the current response file is
  118.    used or, if in command-line mode, the DEFAULT.RSP is used.
  119.    The maximum number of nested response files is 10.
  120.    Examples:
  121.         @TEST           ;call the TEST.RSP file
  122.         @TEST:NO1       ;call the TEST.RSP file at line :NO1
  123.         @:SUB2          ;call the current response file at line :SUB2
  124.  
  125. :label
  126.    This command defines a label inside a response file.
  127.  
  128. ;comment
  129.    All text in a line after the semicolon is a comment and is discarded.
  130.  
  131. RETURN
  132.    This command terminates the current response file and returns
  133.    control to the calling response file.
  134.  
  135. ABORT
  136.    This command terminates the program, control returns to DOS.
  137.  
  138. ECHO text
  139.    This command displays the specified text.
  140.  
  141. IFDEF symbol
  142. IFNDEF symbol
  143. ELSE
  144. ENDIF
  145.    These commands implement conditional parsing of response files.
  146.    If a symbol is defined (IFDEF) or undefined (IFNDEF) parsing
  147.    will continue on the True branch or in the False (ELSE) branch.
  148.    IFDEF/IFNDEF can be nested. There is no limit for nesting level.
  149.    Example:
  150.         IFDEF TEST
  151.            ECHO TEST is defined
  152.            @TRUE                        ;do something
  153.         ELSE
  154.            ECHO TEST is not defined
  155.         ENDIF
  156.  
  157. SET symbol[=[value]] ...
  158.    This command defines or undefines a specified symbol.
  159.    It is equivalent to the /symbol command, but it is for response files.
  160.    Use SET alone to display the symbols currently defined.
  161.    Examples:
  162.         SET TEST=2 PIC=GIF      ;defines TEST and PIC
  163.         SET GFX=                ;undefines GFX
  164.         SET                     ;display all symbols
  165.  
  166.  
  167.  
  168. == SYMBOLS
  169. ----------
  170. Symbols are a new features of DM2CONV and are used primarily for
  171. conditional parsing (IFDEF/IFNDEF).
  172. Symbols can be defined with the SET or / commands (see the general
  173. syntax). Any symbol can be redefined or undefined.
  174. There are two types of symbols: environmental and private.
  175. Private symbols are those defined using DM2CONV, environmental symbols
  176. are the environment variables of the DOS shell.
  177. An environmental symbol cannot be redefined or undefined, but a private
  178. symbol of the same name has the precedence over it.
  179. The SET command will display only the private symbols.
  180.  
  181. Although you can use any name for a symbol, there are some symbols
  182. that performs special functions:
  183.  
  184. SOURCE
  185.    This symbol contains the name of the source file, as specified in
  186.    the command line of DM2CONV.
  187.    Can be (re)defined in a response file.
  188.  
  189. DEST
  190.    This symbol contains the name of the destination file, as specified
  191.    in the command line of DM2CONV.
  192.    Can be (re)defined in a response file.
  193.  
  194. HELP
  195.    This symbol, if set, will skip the conversion process, and displays
  196.    the help page of DM2CONV.
  197.    It is the same as to type DM2CONV with no parameters.
  198.  
  199. FROM
  200.    This symbol specify the format of the source file.
  201.    Valid values are:
  202.      D or DOOM          for DOOM/ULTIMATE DOOM wads
  203.      D2 or DOOM2        for DOOM II wads
  204.      H or HERETIC       for HERETIC wads
  205.    Currently this symbol has no use since no checking is performed
  206.    on the source file format.
  207.    Default value is DOOM.
  208.  
  209. TO
  210.    This symbol specify the format of the destination file.
  211.    Values are the same for the FROM symbol.
  212.    Default value is DOOM2.
  213.    This symbol is needed to change the names for levels and musics.
  214.  
  215. REMAP
  216.    This symbol enables the level remapping feature.
  217.    Just define it with the number of the first level, and all
  218.    levels in a wad are remapped.
  219.    Examples:
  220.       /REMAP=5          ;start from E1M5 or MAP05
  221.       /REMAP=10         ;start from E2M1 or MAP10
  222.       /REMAP=28         ;start from E4M1 or MAP28
  223.    Musics are remapped automatically: if E1M1 is mapped to E2M1, then
  224.    D_E1M1 is mapped to D_E2M1.
  225.  
  226. DEBUG
  227.    This symbol, if set, will enable the debug mode.
  228.    In debug mode, detailed information are shown: currently only
  229.    statistics about the object conversion are displayed.
  230.    Be warned: debug mode could generate a large amount of text.
  231.  
  232. MIX
  233.    This symbol enable the music mix feature.
  234.    If it is defined, all musics in a wad are mixed (randomized).
  235.    You can have a wad with several musics and mix them before running
  236.    DOOM to play musics in a random order.
  237.  
  238. SEED
  239.    This symbol pertains to the object substitution algorithm.
  240.    It defines the value for the random number generator's seed.
  241.    Default is 0.
  242.    Each level is randomized with the specified seed.
  243.  
  244. ONCE
  245.    This symbol pertains to the object substitution algorithm.
  246.    The value of the symbol specify the objects suitable for conversion:
  247.       0         all objects can be converted
  248.       1         only objects not already converted
  249.       2         only objects already converted
  250.       others    same as 1
  251.    /ONCE means /ONCE=ONCE, so the default value of 1 is used.
  252.    Example:
  253.       /ONCE=    ;with ONCE undefined (or ONCE=0)
  254.       8=3       ; objects type 8 becomes type 3
  255.       3=4       ; all objects type 3 becomes type 4 -> no type 3 remains
  256.       /ONCE     ;with ONCE defined (ONCE=1)
  257.       8=3       ; objects type 8 becomes type 3
  258.       3=4       ; objects type 3 (not the former type 8) becomes type 4
  259.  
  260. GFX
  261.    This symbol is used by DEFAULT.RSP: it specify to not convert
  262.    textures and floors names.
  263.    You must define this symbol if you use the wad built by GFXMAKER.
  264.    See GFXMAKER for more details.
  265.  
  266. HANGS
  267.    This symbol is used by DEFAULT.RSP: it specify to convert hanging
  268.    objects (valid only for HERETIC to DOOM/DOOM2 conversions).
  269.    In HERETIC, players can walk under hanging objects, but not in
  270.    DOOM/DOOM2.
  271.  
  272. ULTIMATE
  273.    This symbol is defined by DEFAULT.RSP if ULTIMATE DOOM is the source
  274.    or destination game.
  275.    If you have the registered version of DOOM, you can upgrade it to
  276.    ULTIMATE DOOM with the patch that can be found on many ftp sites.
  277.    If you set the environment variable ULTIMATE, all DOOM conversions
  278.    are treated as ULTIMATE DOOM conversions.
  279.    Example:
  280.       SET ULTIMATE=YES
  281.       DM2CONV test @:D2TOD      ;performs a DOOM2 to ULTIMATE DOOM conv.
  282.    is the same as:
  283.       DM2CONV test /ULTIMATE @:D2TOD
  284.  
  285. DM2CONV
  286.    The environmental symbol DM2CONV, if defined, is parsed before the
  287.    command-line arguments and may contain default options.
  288.    Example:
  289.       SET DM2CONV=/ULTIMATE /REMAP /GFX
  290.       DM2CONV test @:D2TOD
  291.    is the same as:
  292.       DM2CONV /ULTIMATE /REMAP /GFX test @:D2TOD
  293.  
  294.  
  295.  
  296. == REPLACEMENTS
  297. ---------------
  298. To convert a level several things must be replaced: texture names,
  299. floor names, directory entry names, objects types, linedef and sector
  300. actions.
  301. All of these replacements can be specified in a response file.
  302. A replacement expression must not contain spaces, thus more than
  303. one expression is allowed on the same line.
  304. A section tag specifies the type of replace expression.
  305. Valid section tags are:
  306.    [TEXTURES]           ;texture name replaces
  307.    [FLOORS]             ;floor name replaces
  308.    [NAMES]              ;directory entry names replaces
  309.    [THINGS]             ;object replacement expressions
  310.    [LINEDEFS]           ;linedef replacement expressions
  311.    [SECTORS]            ;sector replacement expressions
  312.    [OBJECTS]            ;object names (see OBJECTS.RSP)
  313.  
  314. Only the first 3 characters of a section name are used.
  315.  
  316. [TEXTURE] [FLOORS] and [NAMES] expressions
  317.    oldname=newname
  318.  
  319. [LINEDEFS] and [SECTORS] expressions
  320.    action1,action2,...=newaction
  321.    action1-action2,...=newaction
  322.  
  323. [OBJECTS] expressions
  324.    number=[(radius,height)]game,name
  325.      Game is a combination of game ids: D for DOOM, D2 for DOOM II
  326.      and H for HERETIC.
  327.      Radius and height are optional and are currently unused.
  328.      Example: 2001=DD2,Shotgun
  329.               82=(20,32)D2,Super Shotgun
  330.      NOTE: spaces are allowed after the equal sign, only one object
  331.            per line can be defined.
  332.  
  333. [THINGS] expressions are discussed in the following paragraph.
  334.  
  335.  
  336.  
  337. == OBJECT SUBSTITUTIONS
  338. -----------------------
  339. All things in DOOM are objects: lamps, monsters, weapons, power-ups,
  340. obstacles, other players, etc..
  341. DOOM II supports all DOOM objects plus others: the super shotgun, the
  342. megasphere, many new monsters, etc..
  343. HERETIC hasn't any of the DOOM objects.
  344. With DM2CONV you can transform specified DOOM objects into DOOM II or
  345. HERETIC objects. The object substitution is such a process and is
  346. enabled by specifying at least one replacement expression.
  347.  
  348. A replacement is a string describing what objects to transform and how
  349. to transform them. The simplest replacement string is of the format:
  350.    object1=object2
  351. This replacement will transform each object of the type object1 to one
  352. of the type object2.
  353. An object is specified by its number or its name.
  354. Spaces in name aren't allowed: you must discard them; also, you can
  355. specify only the first characters of the name.
  356. Example: SUPER SHOTGUN must be entered as SUPERSHOTGUN or as SUPER
  357.  
  358. WARNING: if you want to specify objects by name, you must first include
  359.          the OBJECTS.RSP file.
  360.          Example: DM2CONV in out @OBJECTS SHOTGUN=SUPERSHOTGUN @:DTOD2
  361.  
  362. You can change multiple objects:
  363.    obj1,obj2=obj3
  364. all objects of type obj1 and obj2 are transformed into obj3 objects.
  365.    obj1=obj2,obj3
  366. all obj1 objects becomes obj2 and obj3 (they are chosen randomly in
  367. equal proportions: this is why the /SEED parameter exists).
  368.    obj1-obj2=obj3
  369. all objects with types in range obj1 to obj2 becomes types obj3.
  370. You can specify any number of source objects and any number of
  371. destination objects.
  372.  
  373. You can also specify quantities (only for the destination objects):
  374.    IMP=DEMON@5
  375. In the above example, only 5 IMPs become DEMONs; the others remain IMPs.
  376.    IMP=DEMON@5,SPECTRE@10
  377. Five IMPs become DEMONs and ten become SPECTREs.
  378. If the number of source objects is less than the destination, the
  379. quantities are adjusted proportionally.
  380. In the above example if there are only 9 IMPS, 3 become DEMONs (33%)
  381. and 6 become SPECTREs (66%).
  382. Another example:
  383.    IMP=DEMON@5,SPECTRE
  384. 5 IMPs become DEMONs, the remaining become SPECTRE: if there are less
  385. than 5 IMPs, all of them become DEMONs.
  386. That is, if you don't specify a quantity the remaining objects are used.
  387.  
  388. The quantity can be a percentual:
  389.    IMP=DEMONS@50%
  390. In this way, 50% of IMPs become DEMONs.
  391. You can mix all of the above rules:
  392.    IMP,DEMON=BARON@2,LOSTSOUL@50%,TROOPER
  393.  
  394. In DOOM/DOOM II/HERETIC the difficulty level chosen when you start a new
  395. game will affect the objects in a considerable manner:
  396.    - new objects may appear
  397.    - other objects disappear
  398. The reason is that each object has flags that specify in which level of
  399. difficulty it should appear.
  400. There are five flags:
  401.    1 - object appears on difficulty levels 1 and 2
  402.    2 - object appears on difficulty level 3
  403.    3 - object appears on difficulty levels 4 and 5
  404.    D - object is deaf (useful only for monsters)
  405.    M - object appears ONLY in multiplayer mode
  406. Starting from version 1.5, DM2CONV supports these flags in the
  407. substitution rules; the complete syntax is:
  408.    sobj1[:flags]...=dobj1[@quantity[%]][:flags]...
  409. Additional flags are introduced by DM2CONV v3.0:
  410.    0 - object does not appear at all (if 123 flags are not specified)
  411.        This is useful to remove an object from a level.
  412.    A - process all objects
  413.    O - process only objects not already converted
  414.    C - process only objects already converted
  415.        The AOC flags overrides the ONCE symbol.
  416.  
  417. Each object can have one or more of the above flags.
  418. If difficulty flags are specified in the source, only the objects
  419. that have those flags are changed.
  420.    IMP:1=STIMPACK
  421. means that all IMP that will appear (at least) in difficulty level 1
  422. will be transformed into STIMPACK.
  423. This affects all IMP that have the '1' flag, not the ones that
  424. have only the '1' flag.
  425.  
  426. If difficulty flags are specified in the destination, the object
  427. remapped will have the specified flags.
  428.    IMP=STIMPACK:123
  429. means that all IMP will be transformed into STIMPACK and will appear
  430. on any level (except multiplayer mode).
  431.  
  432. The 'D' flag has no means if used in a source object.
  433. The 'M' flag works in different ways if used in source or destination
  434.    source:      only multiplayer-mode objects are changed
  435.    destination: the object appear only on multiplayer mode
  436.  
  437.  
  438.  
  439. == SPECIAL SUBSTITUTIONS
  440. ------------------------
  441. DM2CONV v3.2 has two special object types: 0 and 9999.
  442.  
  443. Object number 0 (named REMOVE inside OBJECTS.TXT) is used to remove an
  444. object from the level.
  445. Example:
  446.    baron=REMOVE
  447.    This will eliminate all Baron of Hell.
  448. You can then reference a removed object with the 0 code; example:
  449.    0=supershotgun@1
  450.  
  451. Object number 9999 (named MIX inside OBJECTS.TXT) is used to scramble
  452. the position of the specified source objects.
  453. Example:
  454.    imp,trooper,demon=MIX
  455.    In this way, imps, troopers and demons will switch their position:
  456.    this may be useful to randomize objects's position.
  457.  
  458. A new syntax has been added: if a destination object is preceeded by a
  459. plus sign '+' it will be added over the source object instead of
  460. replace the source object.
  461. Example:
  462.    deathmatchstart=+shotgun
  463.    A shotgun is placed over each deathmatch starting point.
  464. WARNING:
  465. For this feature to work, there must be enough removed objects (via the
  466. REMOVE object id, described above) to be used as new objects.
  467.  
  468.  
  469.  
  470. == CONDITIONAL OBJECT SUBSTITIONS
  471. ---------------------------------
  472. With DM2CONV v3.2 you can specify to perform an object substitution if
  473. and only if a specified condition is true.
  474. Three new object expressions are available:
  475.    ?objectlist relational_operator value
  476.    ?ELSE
  477.    ?END
  478.  
  479. I will explain these with examples:
  480.    ?3003>10             ;if there are more than ten baron of hell(=3003)
  481.      3003=69@50%        ;converts 50% of baron into hellknight
  482.    ?ELSE
  483.      3003=64@1          ;else converts 1 baron into an archvile
  484.    ?ENDIF
  485.  
  486. Another example:
  487.    ?82=0 2001=82@1 ?ENDIF
  488.    If there is no supershotgun, a shotgun is converted into a supershotgun.
  489.  
  490. In details:
  491.    objectlist is a list of objects, like any object expression.
  492.       obj1,obj2,...
  493.       obj1:flags,obj2-obj3:flags,...
  494.    relational_operator is one of the following:
  495.       = <> > >= < <=
  496.    value is an integer in the range 0-16383.
  497.    DM2CONV will count the number of objects specified in the object list.
  498.    If this number is in relation with the value specified, the expressions
  499.    in the true branch are executed, otherwise the other branch is executed
  500.    (the one between ?ELSE and ?END, this is optional).
  501.  
  502. This works like the IFDEF/IFNDEF commands.
  503. The ?ELSE command is optional, but the ?END command is mandatory.
  504. Conditional expressions can be nested.
  505.  
  506. The primary use of conditional substitutions is to ensure a specific
  507. amount of an object; example:
  508.    ?BFG>2                       ;this is only an example
  509.        BFG=BFG@2,CELLPACK
  510.    ?ELSE
  511.        ?BFG<2
  512.           BFG,PLASMA,CELLPACK,CELLCHARGE=BFG@2
  513.        ?END
  514.    ?END
  515.  
  516.  
  517.  
  518. == TEXTURE REPLACEMENTS
  519. -----------------------
  520. The texture replacement lists were the hardest part to write.
  521. When choosing a texture replacement you must follow these rules:
  522.  1- the two textures must have the same height, alternatively
  523.     the second must be 128 pixels high.
  524.     This is because textures are repeated vertically every 128 pixels
  525.     (otherwise you have the TUTTIFRUTTI effect).
  526.  2- if the source texture has only one patch, the second must have
  527.     only one patch.
  528.     This is because fake walls can have only this type of texture
  529.     (otherwise you have the MEDUSA effect).
  530. I recommend you to use EDMAP: this awesome editor has a powerful viewer
  531. that shows textures/patches/floors/sprites. Texture info are also shown.
  532.  
  533.  
  534.  
  535. ** GFXMAKER
  536. -----------
  537. GFXMAKER can create a wad file that contains all the textures of a
  538. specified set of games.
  539. For example: you can create a wad that contains DOOM II and HERETIC
  540. textures for DOOM.
  541. You will need the registered version of the selected games.
  542. Please, execute GFXMAKER and follow its instructions.
  543.  
  544. The wad built by GFXMAKER has a name defined by the set of games used.
  545. A wad for one game (DOOM's GFXD_H.WAD for example) cannot be used with
  546. another game (DOOM II or HERETIC).
  547. If you use the GFX* wad, you can convert levels mantaining the original
  548. textures/floors by specify the /GFX parameter.
  549.  
  550.   For example:
  551.      DM2CONV SNIPER SNIPERH /GFX @:DTOH
  552.      HERETIC -FILE GFXH_D.WAD SNIPERH.WAD
  553.  
  554. This version of GFXMAKER builds a better wad. Previous versions ignored
  555. textures with same name but different sizes.
  556. For example: SW1BRN1 is present in DOOM and DOOM II, but the two
  557. textures have different sizes; older GFXMAKER used the texture as
  558. defined in the target game, GFXMAKER v3.2 uses the texture defined in
  559. the source game.
  560. For this reason you may want to rebuild all your GFX* wads.
  561.  
  562.  
  563. SPECIAL CONSIDERATION ABOUT GFXMAKER:
  564.  - DOOM and DOOM II have the same color palette, but not HERETIC.
  565.    If you specify HERETIC as source/destination to GFXMAKER, the
  566.    colors of patches/floors need to be converted.
  567.    Most of the time there is no exact match, so another similar colour
  568.    must be used. This is why the textures look different.
  569.  - I have noticed that HERETIC will hang the computer if the external
  570.    files have too many resources.
  571.    This happen if you use (for example) GFXH_D.WAD and all the three
  572.    episodes of DOOM.
  573.    I recommend you to use only one level at a time with GFXH_D.WAD
  574.  - For the above reason, I have not implemented the DOOM II textures
  575.    for HERETIC.
  576.    However, you can specify the /GFX parameter if you use GFXH_D.WAD:
  577.    DOOM textures are mantained, only DOOM II textures are converted.
  578.  - The effect that shows when a switch or button is pressed, is
  579.    implemented inside the executable, so buttons will not change when
  580.    you press them, although they will work as usual.
  581.  
  582.  
  583.  
  584. ** MACINTOSH CONVERSIONS (by Craig F., email: CFuqua@aol.com)
  585. ------------------------
  586. MacDoom II is billed as supporting wad files from Doom1 and Doom2,
  587. although a program called Wad Typer (freeware, found readily on the
  588. Web) should be used to convert the file type to ".WAD" and creator to
  589. "idSW" -- or you can use something like ResEdit instead. PC Pwads run
  590. through DM2CONV play reliably on PowerMacs, but not on Quadra 630s.
  591.  
  592. FYI: Also, there is now a Mac version of the shareware Doom1 program (it's
  593. billed as Ultimate Doom shareware, but it lacks the new secret on level 1).
  594. They promise a registered version of Ultimate Doom soon.
  595.  
  596.  
  597.  
  598. ** DMT
  599. ------
  600. DMT is no longer distributed with DM2CONV.
  601. You can find it inside previous releases of DM2CONV (from v1.2 to v3.0),
  602. otherwise ask me a copy by email.
  603.  
  604.  
  605.  
  606. ** KNOWN PROBLEMS
  607. -----------------
  608. Multi-level pwads can create problems with DOOM II because the level
  609. sequence cannot be replicated: DOOM has 3 episodes, each with 8 levels
  610. and 1 secret level, while DOOM II has 30 levels, 1 secret level and 1
  611. super-secret level.
  612. This means that accessing the secret level in a wad will load the
  613. 31th level of DOOM II instead of the ExM9 level of DOOM.
  614. For the same reason, DOOM II level converted for HERETIC must consist
  615. of less than nine maps. HERETIC has the same level scheme of DOOM.
  616.  
  617. Monster substituition has a weak spot. When you change monsters with
  618. bigger ones, if these new monsters are too near a wall they cannot move
  619. because they collide with the scenario. It is the same as you type
  620. IDSPISPOPD (or IDCLIP for DOOM II, KITTY for HERETIC), then move into a
  621. wall and retype the code.
  622.  
  623. Levels converted to HERETIC v1.0 may have the FOS bug (FLASH OF SKY):
  624. when you stand over a linedef you will see the sky.
  625. This is due to some limitation of the HERETIC graphic engine, it is
  626. not a DM2CONV's bug: version 1.2 of HERETIC has this bug fixed.
  627.  
  628. HERETIC has another strange bug: it does not support more than 1 maces in
  629. a level. If a level has more than 8 maces it exits to DOS with the error:
  630.   Too many mace spots
  631. But if a level has 8 or less maces, all the maces (except one) are
  632. converted into monsters: this conversion is made on-the-fly by HERETIC.
  633. For this reason, DEFAULT.RSP has an instruction to limit the number of
  634. maces in a level: if more than 1 mace is found, all but 1 are converted
  635. into phoenix rods and hellstaffs.
  636.  
  637. I think that ULTIMATE DOOM is a modified version of DOOM that supports
  638. all DOOM II linedefs. There is no DOOM to ULTIMATE DOOM conversion,
  639. since all DOOM wads are compatible with ULTIMATE DOOM.
  640.  
  641. Due to the many differences of these four great games, the only
  642. conversions ensured at 100% are those from DOOM to DOOM2/HERETIC.
  643. All the other conversions may produce unplayable levels.
  644. Some of the most common problems:
  645.   - objects are of different sizes, so a converted object may block
  646.     a passage, or it may not block a passage it was meant to block.
  647.     example: HERETIC level E1M1 to DOOM2, secret room near the start
  648.   - many linedefs are not supported by all games: fast doors, raising
  649.     stairs by 16 pixels, etc...
  650.     example: HERETIC level E1M1 to DOOM, raising stairs near the exit
  651.   - monster conversion: some levels rely on the destruction of a
  652.     specific monster (BOSS BRAIN, COMMANDER KEEN, etc..) to open the
  653.     exit. This feature could not work once the level is converted, so
  654.     it will be impossible to exit.
  655. Most of these problems can be skipped with the use of cheat codes:
  656. that works only in single player mode! DEATHMATCHERS are warned!
  657.  
  658.  
  659.  
  660. ** DISTRIBUTION LICENSE
  661. -----------------------
  662. All files in the original distribution package are PUBLIC DOMAIN.
  663. You can freely distribute these files (also separately) in any form.
  664. The files included inside DM2CNV32.ZIP are:
  665.    DM2CONV.EXE   the converter!
  666.    DM2CONV.PAS   source for DM2CONV
  667.    DM2CONV.DOC   documentation
  668.    GFXMAKER.EXE  the wad builder
  669.    GFXMAKER.PAS  source for GFXMAKER
  670.    DEFAULT.RSP   the official default response file
  671.    OBJECTS.RSP   response to use names in object expressions
  672.    OBJECTS.TXT   object table for DOOM/DOOM2/HERETIC
  673.    FILE_ID.DIZ   package description
  674.  
  675. For comments, bug reports, suggestions, etc.. please contact the author:
  676.  
  677.   snail-mail:
  678.     Vincenzo Alcamo
  679.     via Verdi 185
  680.     40059 Medicina (BO)
  681.     ITALY
  682.  
  683.   e-mail:
  684.     alcamo@arci01.bo.cnr.it
  685.     (I am always glad to receive E-mails, but I can use this account
  686.      only on Tuesdays and Saturdays: don't expect fast replies)
  687.  
  688. You can ask me by e-mail the latest version of DM2CONV; please specify
  689. the following information:
  690.   - the version of DM2CONV you are using
  691.   - the type of version you want: the full package or the lite one.
  692.     the lite version has no sources (60K uuencoded rar file).
  693. By default I will send you the uuencoded lite version (it's smaller!)
  694.  
  695.  
  696.  
  697. == ADDITIONAL CREDITS
  698. ---------------------
  699. Matt Fell                         author of the DOOM specs - vital info
  700. Raphael Quinet,Brendon J Wyber    authors of DEU - first DOOM editor
  701. Jeff Rabenhorst                   author of EDMAP - awesome DOOM editor
  702. Greg Lewis                        author of DEHACKED
  703.  
  704. v3.0 beta testers: Jack Hartman, Bradford Youngkin, Glenn Willing
  705.  
  706.  
  707.  
  708. ** PROGRAM HISTORY
  709. ------------------
  710. 11/16/95  v3.2  Bug fix: wrong texture names when converting to Heretic.
  711.                 Bug fix: GFXMAKER built wrong textures when names
  712.                          were equal, but not sizes.
  713.                 MacDoom conversion info by Craig F. (CFuqua@aol.com)
  714.  
  715. 07/22/95  v3.1  ULTIMATE DOOM support.
  716.                 New object types: 0 (to remove), 9999 (to mix)
  717.                 New object syntax to add an object over another one.
  718.                 DM2CONV symbol for default options.
  719.                 Bug fix: random seed report (SEED=0 even if seed<>0)
  720.                 Bug fix: label parsing with drives (ex. C:\T.RSP:OK)
  721.                 DMT is no longer distributed with DM2CONV.
  722.  
  723. 05/23/95  v3.0  Totally rewritten version: syntax has changed.
  724.                 New conversions: HERETIC to DOOM/DOOM2, DOOM2 to DOOM.
  725.                 Conversion driven by response files: no tables are
  726.                 included in the executable program.
  727.                 Conditional parsing, conditional object expressions.
  728.                 Symbols instead of switches.
  729.                 New ONCE feature: replace objects once.
  730.                 New MIX feature to scramble music order.
  731.                 DM2MKWAD obsolete: GFXMAKER now supports DOOM/DOOMII/HERETIC.
  732.                 Many other enhancements: find them by yourself.
  733.                 Special thanks to Bradford Youngkin: HERETIC's mace bug
  734.                 and problems with hanging objects.
  735.  
  736. 04/01/95  v2.0  Registered HERETIC support (shareware is no longer supported)
  737.                 DOOM textures and floors inside HERETIC.
  738.                 DOOM II to HERETIC conversion.
  739.                 Many little improvements: IWAD support, no RSP extension
  740.                    needed in response files, nested response files,
  741.                    /NOTEXTURE and /NOFLOOR switch.
  742.  
  743. 03/04/95  v1.7b Special bug fix version:
  744.                 - texture names were case sensitive
  745.                   (reported by Thomas Beckmann)
  746.                 - strange substitutions with multi-level pwads
  747.                   (reported by Rick Weber,Jack Hartman,Georg Deppe)
  748.  
  749. 01/21/95  v1.6b Resource renaming.
  750.                 Improved documentation.
  751.  
  752. 01/14/95  v1.5b Sky resource remapping.
  753.                 Heretic support.
  754.                 External texture tables.
  755.                 Difficulty level supported.
  756.                 Some code rewritten.
  757.  
  758. 12/14/94  v1.2  Music remapping. Other minor changes.
  759.                 Sources released in the public domain.
  760.                 DMT tool distributed to check reactions.
  761.  
  762. 11/12/94  v1.0  The first release.
  763.                 DM2CONV.PAS should be in the distribution package:
  764.                 it wasn't for my fault.
  765.  
  766.