home *** CD-ROM | disk | FTP | other *** search
/ Ray Tracing Box / RAY_CD.mdf / raytrace / dta / whatsnew.dta < prev   
Text File  |  1994-01-18  |  44KB  |  866 lines

  1. What's new in DTA:
  2.  
  3.  Rel 2.1.0 (??/??/??)
  4.  
  5.   (
  6.   I made some pretty substantial changes to the way DTA works,
  7.   since 2.0.8.  Some things may still be broken.
  8.  
  9.   Some things that I'm sure are still broken are:
  10.    o I haven't finished updating the documentation file,
  11.      so this file will have to do.
  12.    o DTA still doesn't read 16-color .PCX files.
  13.   )
  14.  
  15.   Changes:
  16.   o Fixed flic-reading code so it reads the bottom row of
  17.     pixels properly.
  18.   o Rewrote a lot of the internal picture-file handling code.
  19.     All pictures are now read into memory buffers, and all
  20.     operations are performed on the memory buffers in
  21.     sequence.  (Formerly, DTA read most pictures
  22.     in a line at a time, and did all the operations on
  23.     each line of pixels... it kept lots of picture files
  24.     open simultaneously )
  25.     The side effects of these changes are:
  26.      (1) Basic operations use more memory.
  27.      (2) Real complicated operations (averaging, compositing,
  28.          etc.) use less memory.
  29.      (3) Most everything works at least a little bit faster,
  30.          and some operations are a lot faster.
  31.      (4) There's no longer any limit on the number of pictures
  32.          that you can average.  (DTA used to fail if you
  33.          tried averaging more than 10 or 12 pictures.)
  34.      (5) I was able to reshuffle the order of operations.
  35.          Now, the order is: chroma-key, averaging, clipping,
  36.          scaling, post-scale clipping, rotation, compositing.
  37.          (Now that I've gotten this far, I've realized that
  38.          this still stinks... what's really needed is a
  39.          user-defined order.)
  40.      (6) Made it possible to add arbitrary rotations.
  41.      (7) Processing a frame takes more steps, so the "percent
  42.          finished" information isn't as useful as it used
  43.          to be.
  44.   o When building 8-bit flics, DTA used to always use the
  45.     320x200 resolution some another resolution was selected
  46.     using the /R switch.  The reason for that was that 320x200
  47.     is the only supported resolution for the original Autodesk
  48.     Animator .FLI format.
  49.       From now on, it'll use the actual resolution from the
  50.     first input picture file, like the now-obsolute /RA
  51.     switch used to do.
  52.       So unless your input pictures are already 320x200, you'll
  53.     get .FLC files instead of .FLI files.  You can make DTA
  54.     create a .FLI file even with other resolution input by
  55.     specifying /R1 or /R320,200.
  56.       You'll also need to use /R if you want to create
  57.     larger images for compositing...
  58.   o Reworked grayscale options... now there's /G, /G128, /G64,
  59.     and /G32, /G16, /G8, and /G4.
  60.       /G represents a 256-level grayscale except when the output
  61.     format is a 320x200 .FLI file, when it represents a 64-level
  62.     grayscale.  That's because .FLI won't support higher than
  63.     64 shades.
  64.       /G128 represents a 128-level grayscale, /G64 a 64-level
  65.     grayscale, etc.
  66.     The lower numbers will get you a lower-quality image, which
  67.     will almost always compress better.
  68.       Most VGA and SVGA monitors can only display 64 shades
  69.     of gray, so it's wasteful to use more than that if your
  70.     picture will only be displayed on a monitor.
  71.     Some laptop VGA displays can only display 32 shades.
  72.       If you're going to be printing your image or using it
  73.     as a bump map or height field with a rendering program,
  74.     then the more shades the better.
  75.   o Renamed /CH (chroma-key) to /CK so that /CH would be free
  76.     for a new option.
  77.   o Got rid of /3D... I pulled it out to make some of the
  78.     rewrite easier.  You can now get a similar 3d effect
  79.     using /CHR and /CHB (see below).
  80.   o Added /BU, which makes DTA save .TGA files bottom-up
  81.     (or upside-down, if you prefer) instead of top-down.
  82.     ... some applications don't understand top-down .TGAs.
  83.   o Added /CH[R,G,B,A] which stand for CHannel insertion,
  84.     which should let you create some truly weird effects
  85.     if you're so inclined.
  86.     (This is a pretty hard concept to explain, so bear with me...
  87.     and remember that you don't have to use it, just like you
  88.     don't have to use /L...  DTA still understands simple
  89.     command lines like "dta *.tga".)
  90.       You can specify /CHR (red channel), /CHG (green channel),
  91.     /CHB (blue channel), and /CHA (alpha channel) to cause
  92.     a gray-scale version of an image file to be inserted
  93.     into a specific channel of the current layer.
  94.       You can use this to specify a matte for an image that
  95.     doesn't contain an alpha channel, like this:
  96.         dta background.tga /l pics*.tga /cha masks*.tga
  97.     or to get a red/blue 3d effect (the kind that requires
  98.     funny glasses):
  99.         dta /chr left*.tga /ga0.8 /chb right*.tga
  100.     (the /ga is to adjust the brightness of the red component
  101.      so it doesn't drown out the blues.  Some experimentation
  102.      may be necessary to get the balance just right... if
  103.      somebody comes up with an ideal brightness combination,
  104.      let me know and I'll put it in the doc.)
  105.       /CH works much like /L, except /CH is subordinate to /L.
  106.       /CH merging (insertion) takes place after picture
  107.     averaging, gamma correction, and chroma-keying, but before
  108.     clipping, rotation, scaling, etc.  /L merging (compositing)
  109.     takes place after all of the above.  So, you can have separate
  110.     chroma-key, gamma, averaging settings for each /CH layer,
  111.     but only one /ROT, /LOC, etc. setting in each /L layer
  112.     regardless of how many /CH layers you've got.  And some
  113.     other switches, like /F, /O, /R, etc. can only be specified
  114.     once per command line, no matter how many /L and /CH layers
  115.     you've got.
  116.       Note that if you specify "pics*.tga /cha masks*.tga",
  117.     you're really specifying two /CH levels, not just one.
  118.     The first, without a /CH parameter, contains pics*.tga,
  119.     and there's no special processing of the color channels.
  120.     The second gets converted to a grayscale and is inserted
  121.     into the alpha channel.
  122.       (Thanks to John Jordan for suggesting alpha insertion in
  123.     the first place...)
  124.   o When converting from one file format to another, DTA
  125.     will usually use the original picture's filename, but
  126.     with a new extension (unless you specify a different
  127.     filename with /O).
  128.       But, if you're creating an output picture from multiple
  129.     input layers, or multiple input channels, or averaged
  130.     images, or if input file and output file are in the same
  131.     format, then DTA will invent new output filenames, like
  132.     "OUT00000".
  133.       You can now force DTA to use the original filename
  134.     even in those situations if you use the new /FO (force
  135.     original filename) switch.
  136.       DTA might still not pick the right filename when you're
  137.     using multiple layers, because it'll always use the first
  138.     filename in the first channel group in the first layer.
  139.     If, for example, you're overlaying a signature or log over a
  140.     bunch of input pictures, like this:
  141.       DTA PICS*.TGA /L SIGN.TGA /FG /FO
  142.     it'll be okay because each .GIF file will use the filename
  143.     from the first layer (PICS*.TGA).
  144.     But if you're overlaying a bunch of pictures onto a single
  145.     background, like this:
  146.       DTA BACK.TGA /L PICS*.TGA /FG /FO
  147.     it won't be okay, because each output picture will get saved
  148.     as BACK.GIF.  In that circumstance tell DTA to use the
  149.     filenames from the second layer, like this:
  150.       DTA BACK.TGA /L PICS*.TGA /FG /FO2
  151.     You can also specify a specific channel group, like this:
  152.       DTA /CHR X*.TGA /CHG Y*.TGA /CHB Z*.TGA /FG /FO1,2
  153.     (the 1 means the first layer... you have to specify a
  154.     layer when you're specifying a channel, even if there's
  155.     only one.  The 2 means the second channel group in the
  156.     command, green in this case.)
  157.      You can use /FO to force DTA to replace your original
  158.     files after processing, like this:
  159.       DTA *.GIF /ROT90 /FG /FO
  160.   o Added read/write support for MindImage .RLE files.
  161.     (These are the .RLE files used for the random dot
  162.     stereogram program MindImage... DTA can NOT read any of
  163.     the many other file formats that also use the extention
  164.     .RLE)
  165.       You read one of these files just like you would any other,
  166.     by using the filename in the command line.  For example,
  167.     to convert a RLE to a GIF file, type:
  168.      DTA HUMAN.RLE /FG
  169.       To write a RLE, use the new /FR switch.  Be warned that
  170.     MindImage expects pictures' dimensions to be powers of two
  171.     with a maximum of 512.  So, DTA will always force pictures
  172.     to have horizontal and vertical dimensions of 64, 128,
  173.     256, or 512.  If a dimension is larger than 512, then
  174.     it'll be chopped down to 512.  Otherwise, unless a dimension
  175.     is exactly equal to one of the allowed dimensions, it'll
  176.     be increased to match.  If the dimensions that are selected
  177.     for you are different from the original dimensions, DTA
  178.     will crop or extend the picture.  For example, if you start
  179.     with a 640x480 picture, DTA will chop off a little from the
  180.     left and right to pare the 640 down to 512, and add enough
  181.     black border to the top and bottom to extend the 480 to 512.
  182.     Make DTA rescale the image to the new dimensions with the /SC
  183.     switch.  In the 640x480 example,
  184.      DTA 640.GIF /FR /SC
  185.     will cause the 640x480 image to be rescaled to exactly
  186.     512x512.
  187.      DTA 640.GIF /FR /R128,128
  188.     will result in a 128x128 image chopped from the middle of
  189.     the starting image.  The next two commands:
  190.      DTA 640.GIF /FR /SC128,128
  191.      DTA 640.GIF /FR /R128,128 /SC
  192.     both result in a 128x128 image with the whole rescaled to
  193.     fit exactly.
  194.   o Added read-only support for IFF/ILBM files, 24-bit variety
  195.     only.  Files with extensions of .IFF and .LBM will be
  196.     recognized.
  197.   o Changed the default 16-bit flic format from .FLX to .FLH.
  198.     .FLX is still supported to make life easier for users of
  199.     Mathematica's Tempra Turbo Animator (the program that first
  200.     supported that format).  Just use the /FLX switch to tell
  201.     DTA to use .FLX instead of .FLH.
  202.       The basic (only?) difference between .FLX and .FLH is that
  203.     they compress the first frame differently.  .FLX uses a
  204.     byte-oriented scheme which does not compress 16-bit pictures
  205.     very well.  .FLH uses a word-oriented scheme which works much
  206.     better.
  207.       (My DFV flic player can read either.  Tempra Turbo Animator
  208.     will not be able to read the .FLH files.)
  209.   o Added support for .FLT (24-bit) flics.  Just use the /B24
  210.     switch to tell it to build a .FLT in stead of .FLC.
  211.       At the moment, my DFV player is the only player that can
  212.     can view this variation of the flic format... if anybody out
  213.     there wants some info on the modifications I made to the flic
  214.     format to support 24-bit, let me know.  They're not too
  215.     complicated, and they're not a secret.
  216.   o Because 24-bit flics can get so *huge*, I added some tricks
  217.     for minimizing the size.  First, the /TO (flic tolerance)
  218.     switch, which causes DTA to ignore pixel differences between
  219.     frames when the distance in color-space is less than or
  220.     equal to a value that you supply.
  221.       I know that explanation leaves something to be desired
  222.     ... to understand what's going on, try it out by adding
  223.     "/TO15" at the end of a command line.  The result will
  224.     usually be a smaller flic that plays more quickly and
  225.     doesn't look quite as good.
  226.       This trick works better with digitized video than it does
  227.     with rendered animation.
  228.       Sometimes this gimmick produces a side effect of faint
  229.     trails on the screen when you animate anti-aliased images.
  230.     Try the /TX switch (which isn't really an acronym of anything)
  231.     with a number, for example "/TX5".  In that case, one frame
  232.     in every 5 will be a full difference frame with no
  233.     tolerance, and the trails will disappear.
  234.       /TO and /TX work only with 24-bit flics.  I'll probably
  235.     add it later for 8-bit and 16-bit flics.
  236.   o Added /INV which inverts either whole colors or individual
  237.     color channels.  You can do /INVR, /INVG, /INVB, /INVA,
  238.     or combinations of them.  Specifying just "/INV" is the same
  239.     as specifying "/INVR /INVG /INVB".
  240.     If you use any /INV option with /NM (no remapping of
  241.     mapped files) then color indexes will be inverted
  242.     instead of color components.
  243.   o Added /RED, /GREEN, /BLUE, and /ALPHA switches which
  244.     let you extract a particular channel from an image.
  245.     So, you can:
  246.       DTA PICTURE /RED
  247.     to create a grayscale image from just the red component, or:
  248.       DTA X*.TGA /CHR X*.TGA /BLUE /CHB Y*.TGA /RED
  249.     to first load in each picture as a regular 32-bit image,
  250.     then replace the red channel with the original blue channel
  251.     and then replace the blue channel with the red channel from
  252.     a completely different set of pictures.
  253.     This is fairly useless most of the time, but it should
  254.     make some really wild effect possible.
  255.   o Added /SCF (fast scaling).  Use it like /SC.  It works
  256.     a *lot* faster than /SC, but looks really bad, because
  257.     it doesn't use any interpolation.
  258.   o Added /CLP (post-scale clipping) which works just like /CL
  259.     but it clips the picture after scaling takes place.
  260.     If you type:
  261.      dta x.tga /sc500,500 /cl120,120,100,100 /pcl140,140,150,150
  262.     DTA will read in the picture and clip out a 100x100 window
  263.     from the picture (at coordinates 120,120), then rescale
  264.     the clipped window to 500x500, and then clip out a 150x150
  265.     window from the scaled picture (at coordinates 140,140).
  266.   o Fixed a bug: DTA would ignore /332 and /G palette options
  267.     if you were outputting to a GIF file.
  268.   o Got rid of /ST (start) parameter, replaced it with
  269.     /LOC.  Syntax is now /LOC#,#,# (default=0,0,0).
  270.     The first two numbers are the x,y coords on the screen
  271.     (from the center) where the center of the image should
  272.     go.... Unless you specify /LL (which tells DTA to base the
  273.     location on the left edge of the screen and image), /LR
  274.     (right edge), /LT (top edge), or /LB (bottom edge).
  275.     The third number is a time variable, specified as a
  276.     percentage.
  277.       If you specify /LOC0,0,0 that means put the image at
  278.     0,0 at the beginning of the animation.  Add /LOC25,25,50
  279.     and the image will be put at coords 25,25 at exactly halfway
  280.     through the animation. If you don't specify a #,#,100,
  281.     then DTA will assume you want the final location to loop
  282.     back to the starting point.  You can enter as many or
  283.     few /LOC parameters per layer as you want...
  284.     DTA will use an interpolating spline to figure out the
  285.     actual locations per frame.
  286.       Unlike the old /ST, pictures can be placed at non-integer
  287.     locations.  If you do, your picture will be resampled.
  288.   o Added arbitrary rotation.  So you can specify /rot45
  289.     (or /rot110.25 for that matter).
  290.     You can add time values after multiple /ROT switches
  291.     just like you can after /LOC.
  292.       To get a full rotation, you could do "/ROT0,0 /ROT360,100".
  293.     If rot[100%]-rot[0] is a multiple of 360, then the final
  294.     rotation value will not be used ... this helps produce
  295.     a smooth loop.
  296.       Rotation uses smooth resampling.
  297.   o Input pictures that are larger than the output picture
  298.     are now centered... instead of only the top corner
  299.     showing, the center will show.
  300.   o Added read-only support for Type-1 TGA files (8-bit,
  301.     colormapped).
  302.   o Added /CC (chroma-key color), which allows you to specify
  303.     what color DTA should replace matching pixels with.  The
  304.     default is still 0,0,0,0 (black, fully transparent).
  305.   o Averaging and scaling now handle 32-bit pixels correctly
  306.     ... previously they didn't take the alpha byte into
  307.     account properly.  As a result, colors (in areas where
  308.     alpha-blending was taking place) would sometimes come
  309.     out too dark or too light.
  310.     As a result, these two functions are slower than they
  311.     used to be... but I think the other speedups will cancel
  312.     it out.
  313.   o Made DTA write 8- and 24-bit PCX files (it did a couple years
  314.     ago, but only 8-bit and then I pulled it out to save
  315.     room.  Now that DTA's protected mode, there's no reason
  316.     not to support this output format).
  317.   o Made DTA read and write Vistapro .VAN animation files.
  318.   o DTA can now write as well as read BMP files, with
  319.     /FB switch.  /FD switch creates the same type of file,
  320.     but uses the .DIB extension instead of .BMP
  321.     By default, it creates 24-bit BMPs, but you can
  322.     make it create 8-bit BMPs by adding the /B8 switch.
  323.   o Fixed a bug in flic-reading... if a flic contained
  324.     a partial palette (fairly rare), DTA would get confused
  325.     and crash.
  326.  Rel 2.0.8 (10/22/93)
  327.   o Added 90 degree increment rotation... use "/ROT90", "/ROT180",
  328.     "/ROT-90", "/ROT270" etc.
  329.     Note: this is the order that operations get done...
  330.     First rotation, next scaling, next clipping.
  331.     So if you did "/cl100,100 /sc200,200 /rot90"
  332.     then DTA will first rotate the picture 90 degrees to the
  333.     right, then scale it to 200x200, and then clip off the
  334.     top half and left half of the scaled, rotated image.
  335.   o Expanded /R switch... in addition to preset resolution
  336.     numbers like "/R6", you could also set the resolution
  337.     explicitly like "/R640,480".  Just be careful that, if you're
  338.     creating a .FLC file *don't* pick an odd number for the
  339.     horizontal dimension: "/R149,200" is a no-no.
  340.     (That's not a limitation of the .FLC format, just of
  341.     my implementation.)
  342.   o Reworked the way scripts work (you know, like "@pics.scr").
  343.     Scripts can now include regular command-line switches
  344.     in addition to filenames.  Just make sure that you've got
  345.     a new file name or switch on each line of the script file.
  346.     You can even include the name of a new script file...
  347.     Just try to avoid recursive script files...
  348.     *Don't* put "@script1.scr" inside of SCRIPT1.SCR, and
  349.     *don't* put "@script1.scr" inside of SCRIPT2.SCR if SCRIPT2.SCR
  350.     is called by SCRIPT1.SCR.
  351.     Or DTA will go into an infinite loop and hang up.
  352.   o If you don't include an extension with an @filename, DTA
  353.     will add '.SCR' to the filename.
  354.   o Fixed some clipping bugs.
  355.   o DTA would sometimes crash with an out-of-heap-memory
  356.     runtime error when flipping a large upside-down TGA file.
  357.     Fixed.
  358.  Rel 2.0.7 (09/30/93)
  359.   o Scaling didn't work right when DTA was reading from a
  360.     flic (probably also when reading an upside-down
  361.     TGA and creating a GIF or TGA).
  362.     Fixed.
  363.  Rel 2.0.6 (09/27/93)
  364.   o Fixed some more bugs in compositing and chroma-key.
  365.  Rel 2.0.5 (09/12/93)
  366.   o Finally got rid of the protection fault that invariably
  367.     occurred after DTA finished building a .FLX file.
  368.  Rel 2.0.4 (09/01/93)
  369.   o Discovered a strange 'feature' in TGA files produced by
  370.     a program called Imagine.  Even though they are unmapped
  371.     24-bit images, for some reason they contain a color map.
  372.     Because DTA doesn't support colormapped TGA files, I
  373.     never paid any attention to color-map info... so DTA
  374.     just would ungraciously treat the color-map in such files
  375.     as if it were part of the image.
  376.     DTA still doesn't read colormapped TGA files, but now if
  377.     there's a color-map in an unmapped picture, it'll at
  378.     least bypass it correctly.
  379.  Rel 2.0.3 (08/25/93)
  380.   o Added inverse chroma-key (/CI).  Works the same as chroma-key
  381.     but backwards... only matching colors *won't* be made
  382.     transparent.
  383.   o Couldn't read .FLC files created with Autodesk Animator...
  384.     it got confused when it ran into the optional "prefix" and
  385.     "postage stamp" chunks.  Fixed.
  386.   o Had problems reading 16-bit TGA files... sometimes
  387.     resulting in page faults, sometimes in bad output.
  388.     Fixed.
  389.   o (There still seems to be a problem with .FLC files
  390.      created with DTA... some players choke on some flics.
  391.      And there's still that irritating page fault after it
  392.      finishes building a .FLX file... I'm working on 'em.)
  393.  Rel 2.0.2 (08/11/93)
  394.   o Multiple layers didn't work right with /NM (no remapping)...
  395.     only the bottom layer would show up in the final picture.
  396.     Now it works, including chroma-key.
  397.     Note: remember, all pictures in all layers must be colormapped,
  398.     and must share the same palette for /NM to work right.
  399.  Rel 2.0.1 (08/04/93)
  400.   o Fixed a bug in /CL (clipping).
  401.   o Fixed a bug in /CH (chroma-key).
  402.  Rel 2.0 (07/29/93)
  403.   o DTA can now read FLIC files.
  404.   o DTA can now read DIB/BMP files.
  405.   o DTA can now read Presidio .ANI files.
  406.   o DTA can read and write hicolor Tempra ".FLX" files.
  407.     Just specify /B16 (for 16-bit) on the command line to
  408.     build an FLX instead of an FLI or FLC.
  409.     (This feature seems to work well enough, but there are
  410.     still some bugs.
  411.     For some reason I haven't figured out yet, DTA crashes
  412.     with a General Protection fault whenever it builds a FLX file.
  413.     This only happens after it's finished building the animation.)
  414.   o Now including the FLISPEED program with the DTA package.
  415.     This'll change the speed value in the header of a flic
  416.     without requiring you to rebuild the animation.
  417.     Just type:
  418.       flispeed xxx.fli /s5
  419.     to change xxx.fli to a speed value of 5.
  420.   o Added multi-layer (use /L to separate layers) compositing.
  421.     Like this: DTA BACKGRND.TGA /L FORE*.TGA
  422.     If FORE*.TGA are 32-bit TGAs with alpha, then
  423.     DTA will make use of the transparency info.
  424.   o Added chroma-key (use /CHr,g,b to specify a transparent
  425.     color) ... this works okay, but not nearly as good as
  426.     starting with 32-bit TGA files containing transparency
  427.     info (which you can create in Polyray and, I'm told,
  428.     3D Studio).
  429.     You can use this feature to create 32-bit TGA files that
  430.     contain alpha information like this: DTA *.TGA /OT /B32 /CH255,0,0
  431.     (DMorf fans: DMorf will morph the alpha info along with the
  432.     color info... but DMorf can add alpha better than DTA can.)
  433.     Or, DTA BACKGRND.GIF /L FORE*.GIF /CH0,0,0 to composite a
  434.     over a background... DTA will make all black pixels transparent.
  435.       /CT specifies a tolerance for chroma-key.  If you (for example
  436.     specify "/CH0,255,0 /CT5" then all pictures in the range
  437.     <0,250,0> and <5,255,5> will become transparent.
  438.   o Added /REP# which repeats a single frame a specified number
  439.     of times.  Useful for inserting pauses in your flics.
  440.     For example, if you type
  441.       DTA before.tga /rep10 morf*.tga after.tga /rep10
  442.     before.tga and after.tga each get repeated ten times.
  443.     Note that this'll only create a pause if you have a speed
  444.     value greater than 0.
  445.   o Added /STx,y (start) ... instead of centering a picture
  446.     on the screen, you can tell DTA where to place the top-left
  447.     hand corner of an image on the screen.  You can have a separate
  448.     start value for each layer.
  449.   o Added /CLx1,y1,x2,y2 (clip)
  450.     X1 and Y1 specify the top-left corner of the clipping window,
  451.     and X2 and Y2 specify the size of the clipping window.
  452.     Clipping takes place AFTER scaling, if you use both.
  453.     You can have a separate clip for each layer.
  454.   o Got rid of /SX (scale X) and /SY (scale Y)... just use /SCx,y
  455.     for scaling.
  456.     You can have a separate scale value for each layer.
  457.   o No more real-mode executable.  DTA is just getting too darn
  458.     big.  Maybe I'll build a pared-down DTALITE or something
  459.     later on, if there's any demand.
  460.   o Fiddled with the status display some.
  461.   o Skipped 1.9... I think the amount of change justifies going
  462.     all the way to a new major release number.  Alexander
  463.     Enzmann requested flic-reading way back even before I
  464.     released 1.0 and here it is, finally.
  465.   o Probably some other stuff I've forgotten about.
  466.   o Fixed a bunch of bugs (and probably added some new ones
  467.     while putting in new features).
  468.  Rel 1.8g (01/18/93)
  469.   o Added comments to @files... just prefix comments with a ";".
  470.   o DTA now ignores blank lines in @files.
  471.   o Fixed assorted bugs.
  472.   o Added grayscale TIF output (/FI)
  473.   o Added /I option, which works like /K (skip), except instead
  474.     of specifying how many frames to skip, specify the total
  475.     number of frames you want in your flic.  So if you have
  476.     50 files... X000.TGA, X001.TGA, on up to X049.TGA, and
  477.     you type:
  478.      dta x*.tga /i10
  479.     then DTA will create a 10-frame flic from X000, X004, X009,
  480.      etc.
  481.  Rel 1.8f (12/30/92)
  482.   o Fixed some more bugs.
  483.   o Added support for 8-bit grayscale TGA files (type 3).
  484.     (To create one, use /B8 /FT).
  485.   o Added picture rescaling.  The /SC option, which only works
  486.     when you're creating flics, rescales an image so it's the same
  487.     size as the screen resolution.
  488.     The /SW option rescales an image so it's the same width as the
  489.     screen resolution (or, if you enter a number, like /SW100,
  490.     to the width that you specify... if you use /SW for an output
  491.     format other than a flic, then a specified width is required)
  492.     The /SD option rescales an image so it's the same depth as the
  493.     screen resolution (or, if you enter a number, like /SD100,
  494.     to the depth that you specify... if you use /SD with an output
  495.     format other than a flic, then a specified width is required)
  496.  Rel 1.8e (12/17/92)
  497.   o For some reason the /NM option didn't work anymore.  Fixed.
  498.   o Fixed a bug in FLC compression... it caused the wrong pixels
  499.     to be updated when there was a change in a pixel row after a
  500.     run of more than 254 unchanged pixels.
  501.   o Fixed a bug that caused a page-fault (runtime error 216)
  502.     when creating GIF or TGA files in the protected mode
  503.     version.
  504.   o There used to be a limit on the width of pictures that DTA
  505.     could process... if you made it read a picture wider than
  506.     1280 pixels, you'd either get a spectacular crash requiring
  507.     a reboot (real mode) or an error message (protected mode).
  508.     Now it should be able to process pictures with a width up
  509.     to 16K pixels or so without crashing.
  510.  Rel 1.8d (11/30/92)
  511.   o Fixed one bug, which prevented DTA from creating 1-frame
  512.     flics correctly.
  513.   o Including two versions of DTA... DTA.EXE (real mode) and
  514.     DTAX.EXE (protected mode).  The memory management stuff
  515.     that I included in 1.8b and 1.8c is now separated into
  516.     another archive, DTAMEM.ZIP.
  517.     The real-mode version runs faster than the protected-mode
  518.     version, but only gives you access to 640K of memory.
  519.  Rel 1.8c (11/27/92)
  520.   o Whoops, introduced some new bugs in 1.8b.  Got ZIP, LZH, and
  521.     ARJ working fine, but it wouldn't read pictures outside of
  522.     archives anymore.
  523.  Rel 1.8b (11/27/92)
  524.   o Fixed a bug that caused a runtime error 204 whenever a frame
  525.     couldn't be compressed and had to be stored raw.
  526.   o Flics of resolutions other than 320x200 are now saved with the
  527.     extension 'FLC' instead of 'FLI'... to be consistent with
  528.     conventions established by Autodesk's Animator Pro.
  529.   o This is the first version of DTA to be compiled in 286 protected
  530.     mode.  This means that DTA can access up to 16MB of extended
  531.     memory without all that messy EMS/XMS/virtual memory management.
  532.     It also means DTA doesn't recognize EMS or page to disk any more.
  533.     If you require EMS or virtual memory, stick with the original
  534.     version 1.8.
  535.     Two extra files (DPMI16BI.OVL and RTM.EXE) are distributed
  536.     along with DTA to support protected mode.  You must keep these
  537.     files either in the same directory as DTA, or in the DOS path.
  538.     When DTA is run from inside a Microsoft Windows enhanced-mode
  539.     DOS window, it'll use Windows' DPMI services instead of the
  540.     Borland DPMI server.
  541.   o MAYBE fixed a bug in FLC compression.
  542.   o DTA can read pictures stored in ZIP and ARJ archives as well
  543.     as the previously supported LZH archives ... IF you've got the
  544.     appropriate de-archiver (PKUNZIP.EXE, ARJ.EXE, LHA.EXE) in your
  545.     DOS path.
  546.  
  547.  Rel 1.8 (11/08/92)
  548.   o DTA couldn't locate PCX, IMG, or GIF files in LZH archives... fixed.
  549.   o DTA can now read 24-bit PCX files (as well as the previously
  550.     supported 8-bit type).
  551.   o Added some additional error-checking so DTA will stop with an error
  552.     message if it runs out of disk space while creating output files.
  553.     Previously it just kept on trying to write to a full disk.
  554.   o In a previous version, made some changes in the GIF-writing
  555.     code to speed it up and use less memory.  As a result, upside-
  556.     down TGAs weren't getting flipped rightside-up like they're
  557.     supposed to... fixed.
  558.   o Removed some useless experimental options: /L, /E, /O
  559.     If anybody ever actually found a use for any of these, let me know
  560.     and I'll put 'em back.
  561.   o Removed /W, since it was only added as a workaround to a bug that's
  562.     now finally fixed.
  563.   o Added GIF89a input. (extension blocks are IGNORED)
  564.   o Fiddled with output-file parameters.  You now specify the output
  565.     filename with /O, and the format with /F instead of specifying
  566.     both with /F
  567.   o Added /H, which lets you adjust brightness.  /HA50 increases the
  568.     values of red, green, and blue by 50%.  /HR200 /HG-25 increases the
  569.     value of red by 200%, and decreases green by 25%.
  570.   o Added /C, which lets you skip frames when scanning for a palette.
  571.     If you use /C5, then DTA will only scan 1 picture for every 5
  572.     in your animation.
  573.   o Added /K, which lets you skip input files when generating a
  574.     flic.  If you use /K3, DTA will ignore 2 frames out of every 3.
  575.     If you use both /K2 and /C2, then DTA will skip every other
  576.     picture, and create a palette out using only 1 of every 4
  577.     pictures.
  578.   o Fiddled with the time blurb so it writes in minutes and seconds
  579.     instead of milliseconds.
  580.  
  581.  Rel 1.7g (08/27/92)
  582.   o Fixed a rarely-encountered bug in 320x200 FLI compression.
  583.   o Reworked the documentation (actually, Dan Farmer did most all of
  584.     this task).
  585.  
  586.  Rel 1.7f (07/19/92)
  587.   o Fixed some weird bugs in selecting output filenames for GIF files.
  588.   o Added /PO option, which causes DTA to create a single optimal
  589.     palette even when it's creating GIF files.
  590.  
  591.  Rel 1.7e (07/02/92)
  592.   o Removed all the logging code, since the memory allocation
  593.     problems seem to be licked.
  594.   o First attempt at creating hi-color and true-color FLIs.
  595.     (To create a hi-color FLI, use the /b16 parameter.  The
  596.      resulting file with have an extension of FLH.  To create
  597.      a true-color FLI, use /b24.  The resulting file will have
  598.      an extension of FLT.)
  599.     So far there's no player that will display these new files,
  600.     but Steve Enns is working on one.
  601.   o The color-mapping speedups in the previous version resulted
  602.     in bad color choices in some cases.  Added an extra
  603.     step between palette selection and color-mapping that
  604.     should improve it.
  605.   o Added /RA parameter (auto-resolution)... tells DTA to use
  606.     the size of the first picture to decide how big to make
  607.     an FLI.  Note: use this parameter only with pictures with
  608.     even horizontal dimensions.
  609.   o When DTA used XMS to store pictures, it wasn't always clearing
  610.     the picture buffer when it was supposed to... resulting in
  611.     some background garbage when animating pictures smaller than
  612.     the FLI.
  613.   o Added /DR (random dither) parameter.  Adds/or subtracts a
  614.     random value from each pixel.  Random values are the same
  615.     across frames, so FLIs shouldn't explode in size like they
  616.     sometimes do with error-diffusion dithers like Floyd-Steinberg
  617.     and Sierra Lite.
  618.     Specify the range of the random number by appending a number
  619.     to the /DR parameter, like this:
  620.      dta *.tga /dr4
  621.     That will result in random numbers ranging from -4 to 4.
  622.     Note: I stole the idea from Stephen Coy's IMG2GIF program.
  623.   o Got rid of /M parameter, which affected the order of
  624.     color-tree pruning.  It was a failed experiments in
  625.     improving color-selection.
  626.   o Changed /MI (max internal colors) parameter to /M
  627.   o Changed RLE TGA output so that line boundaries aren't
  628.     crossed within a packet... (to avoid a VPIC bug)
  629.  
  630.  Rel 1.7d (04/25/92)
  631.   o Fixed some more memory allocation problems.
  632.   o Speeded up color-mapping.  When dithering, there should
  633.     be a big speed increase.  When not dithering there should
  634.     be a lesser increase.
  635.   o Added Sierra Lite dithering (/DS parameter).  SL dither
  636.     another error-diffusion-type dither, somewhat quicker
  637.     than Floyd-Steinberg.
  638.  
  639.  Rel 1.7c (04/15/92)
  640.   o Fixed a bug in grayscale output.
  641.   o Reduced the amount of memory required for the color tree.
  642.   o Fixed some other memory-related problems.
  643.   o Got rid of V (verbose), and added /LOG (which causes
  644.     assorted memory allocation info and other boring
  645.     debugging-type data to be written to a file called "DTA.LOG".
  646.   o Added /MI parameter (which means "maximum internal colors").
  647.     The octree color routine allows only 256 colors to exist
  648.     in the tree at any time.  Whenever the number of colors
  649.     exceeds 256, parts of the tree get truncated.
  650.     With /MI, you can change that maximum number of colors
  651.     to something other than 256.
  652.     If you change it to a number larger than 256, then the palette
  653.     will not be reduced to 256 colors until DTA is done scanning
  654.     pictures.
  655.     This can result in a nicer palette, but it uses more
  656.     memory.  I've had some nice results using "/mi2048".
  657.  
  658.  Rel 1.7b (04/01/92)
  659.   o Rel. 1.7 was missing a last-minute .FLI bug fix and
  660.     a document update or two.
  661.  
  662.  Rel 1.7 (03/31/92)
  663.   o Reads 256-color PCX files.
  664.   o Reads and writes 16, 24, and 32-bit TGA files, compressed
  665.     or uncompressed.
  666.     The default is compressed TGA-24.  /B16 selects 16-bit,
  667.     /B32 selects 32-bit.  /NC selects no rle compression.
  668.     Dithering works for TGA-16 files... But if you use ordered
  669.     dithering, DTA ignores any 'strength' value and uses a
  670.     default (because TGA-16 color reduction is regular).
  671.   o When scanning for a palette, it's a lot faster than before
  672.     when reading 256-color pictures.
  673.   o Fixed EMS bugs.  Added support for XMS.
  674.   o Added /332 (3/3/2 palette) option
  675.     (If you use ordered dithering, DTA ignores any supplies
  676.     'strength' value and uses a default).
  677.   o Added /NM (no-remapping) option.  When reading 8-bit
  678.     colormapped files, this tells DTA to use the original
  679.     palette that's included in the file instead of creating
  680.     a new palette from the colors in the picture, and to skip
  681.     re-mapping the picture to the palette.
  682.     If you're creating an .FLI from a bunch of .GIFs or .PCXs,
  683.     then DTA will use the palette from the first input file,
  684.     and it will assume that all of the pictures use the same
  685.     palette.  This will result in slightly better-looking output,
  686.     and DTA will generate the .FLI *MUCH* faster.
  687.     If these files do not use the same palette, then do not
  688.     use this option.
  689.     /NM does not work with any sort of dithering, frame-averaging,
  690.     or anything else that requires fiddling with colors.
  691.     If you're converting .PCX to .GIF, then the single palette
  692.     restriction does not apply...
  693.  
  694.  Rel 1.6 (01/25/92)
  695.   o Can write uncompressed Targa-16 files (use the /B16 switch).
  696.   o Can read compressed and uncompressed Targa-16 files (like
  697.     those you can produce with POLYRAY).
  698.   o Added /M option, which causes the palette tree-reduction
  699.     routine to prune the most popular branches instead of
  700.     least popular.  The resulting palette should be biased
  701.     a bit more toward detail in a picture instead of smoothly
  702.     shaded areas.
  703.   o Added /L option, which allows you to set the initial
  704.     (pre-reduction, that is) color resolution for one or
  705.     more of the color components (r,g,b) to something other
  706.     than the default 6 bits.  It doesn't make sense to set
  707.     it higher than 6 bits, since that's the most VGA can display.
  708.     But you could, for example, tell DTA to use fewer bits for
  709.     green and blue so that the reds get more representation,
  710.     like so:
  711.      dta *.tga /lb2 /lg3
  712.     (that sets the blue resolution to 2 bits and the green
  713.     resolution to 3 bits).
  714.   o When averaging pictures, DTA used to use an equal percentage
  715.     of each of the original pictures.  That's still the default,
  716.     but with the /E option, you can change this.  /E lets you
  717.     specify two numbers: (a) the amount of weight to give the
  718.     first picture, and (b) how much to increment that weight
  719.     for each successive picture.  So, assuming you start with
  720.     three TGA files, if you use this command:
  721.      dta *.tga /a5 /e2;1 /fg
  722.     the first frame will get a weight of 2, the second will get
  723.     3, and the third will get 4.  Which means the resulting
  724.     GIF file will be made up 22% from the first picture, 33%
  725.     from the second, 44% from the third.
  726.     This can be used with /t (trail) as well as /a (average).
  727.     The increment number can be negative... if you want
  728.     the first picture to stand out more than the others.
  729.     The default for the initial weight is 1.  The default
  730.     for the increment is 0.  If you use /e without specifying
  731.     an increment, then the increment is set to 1.
  732.     If you don't specify either number, then both numbers are
  733.     set to 1.
  734.   o Fixed a bug in averaging GIF files.
  735.   o When creating a new TGA file, DTA forgot to use the resolution
  736.     of the input file like it does with GIF files.  Fixed.
  737.   o Can now ignore comments in TGA files properly.
  738.   o When creating GIF files, DTA now saves at the same
  739.     time it performs the mapping step, instead of saving to
  740.     a buffer and saving it at the end.
  741.     For pictures that would require virtual memory (bigger
  742.     than 320x200), this'll save some time.
  743.   o Added 640x400 resolution for low-end SVGA.
  744.  
  745.  Rel 1.5f (12/13/91)
  746.   o DTA can now read IMG files created by the Stephen Coy's
  747.     Vivid raytracer.
  748.   o Speeded up some input functions that were slowed down
  749.     because of some recently added features.
  750.   o Another probably unsuccessful attempt to fix the same bug
  751.     that 1.5d was supposed to fix.
  752.   o Fixed a bug in dithering (sometimes DTA wouldn't dither
  753.     the whole picture).
  754.   o DTA wasn't deleting a temporary file that it sometimes
  755.     creates.  Now it does.
  756.  
  757.  Rel 1.5e (11/24/91)
  758.   o DTA can now read GIF files as well as TGAs.  GIF87 only,
  759.     no interlacing allowed.
  760.   o Added a /V (verbose) command line option.  If you
  761.     specify this, DTA will tell you exactly how many
  762.     bytes each frame in an animation take up.
  763.   o Added the /W option, which forces DTA to use the
  764.     SVGA-type compression method, even if generating
  765.     a 320x200 .FLI.
  766.   o By the way the fix in 1.5d didn't help.  However, the
  767.     problem is pretty rare.  Maybe next time.
  768.  Rel 1.5d (11/18/91)
  769.   o Hopefully fixed a bug that caused problems with Trilobyte's
  770.     PLAY program.
  771.  Rel 1.5c (11/11/91)
  772.   o Attempting to support 800x600, 1024x768, and 1280x1024
  773.     SVGA resolutions.  Note: This is completely untested.
  774.     I haven't the foggiest idea if it works or not.
  775.  Rel 1.5b (11/09/91)
  776.   o Added "expansion" feature, which inserts averaged frames
  777.     between regular frames.
  778.   o Fixed some bugs in some weird combinations of 3d, "pingpong",
  779.     and "trail".
  780.  
  781.  Rel 1.5 (11/05/91)
  782.   o Ordered dithering
  783.   o VGA "mode x" .FLI resolutions
  784.   o fixed a bug in 320x200 delta encoding
  785.     which would sometimes cause animations to crash
  786.   o "averaging" and "trailing" (where individual frames are
  787.     created by averaging the colors across multiple input
  788.     files).  The difference between "averaging" and "trailing" is:
  789.      If you run an "average" of 2 on 10 .TGAs, frame 1 will be
  790.     an average of files 1 and 2, frame 2 an average of files 3
  791.     and 4, and so on.
  792.      If you do a "trail" of 2 on 10 .TGAs,
  793.     then frame 1 will be an average of 1 and 2, frame 2 an average
  794.     of files 2 and 3, frame 3 an average of files 3 and 4, and
  795.     so on.
  796.   o Red/blue-type 3d
  797.   o TGA output (pretty useless unless you're also averaging
  798.     input files or creating 3d images).  DTA does not compress
  799.     TGAs just yet.
  800.   o Removed .PCX output option.
  801.  
  802.  Rel 1.4 TEST 2 (10/12/91)
  803.   o DTA can now read compressed .TGAs.
  804.   o DTA can new create .GIFs or .PCXs.
  805.   o Before 1.4, DTA would give up on compressing a frame if the
  806.     compressed version required more than about 64K to store.
  807.     This was fine for 320x200 animations, where an uncompressed
  808.     frame only requires 64K anyway, but it left something to
  809.     be desired for 640x480 animations, where an uncompressed
  810.     frame takes up about 300K.
  811.     Now, 640x480 frames will be compressed unless the compressed
  812.     version takes up more than about 300K.
  813.  Rel 1.3c (09/14/31) (second bug fix)
  814.   o .MAP files were missing carriage returns between
  815.     lines.
  816.  Rel 1.3b (09/13/31) (bugfix release)
  817.   o Fixed bugs from the disastrous Rel. 1.3
  818.     (including 640x480 .FLIs)
  819.   o Big speed increase in palette creation
  820.  
  821.  Rel 1.3 (09/03/91)
  822.   o 640x480 .FLIs
  823.   o Better .FLI compression.
  824.   o In pre-1.3, the animation was stored in a temporary file,
  825.     then at the end a new file was created with the .FLI header,
  826.     and then the temporary file was copied onto the end of that.
  827.     Now, only one file is used to store the animation, and the
  828.     header gets modified at the end of the process.
  829.   o Frame #1 is now stored in a temporary file so that it doesn't
  830.     need to be recreated for the "ring frame".
  831.   o Added /G32 option for creating 32-level grayscale animations
  832.     for laptops.
  833.   o Fixed some bugs.
  834.  
  835.  Rel 1.2 (08/06/91)
  836.   o Added support for exit codes returned by LHA 2.13...
  837.     If LHA returns a non-zero exit code, DTA will abort.
  838.   o If you hit the escape key while DTA is running,
  839.     DTA will abort as soon as it's done processing
  840.     an input file.
  841.   o Changed the way input files are sorted.
  842.   o Added /p (pingpong) option.  (makes animation go in
  843.     0-1-2-3-4-3-2-1-0 order instead of 0-1-2-3-4-0).
  844.   o Added support for lists of files to process.
  845.     Tell DTA that a file is a list by preceding the filename
  846.     by an "@" character.  A list file may contain
  847.     the names of .TGA files or .LZH files.  You can't put
  848.     the name of another list file in a list file.
  849.   o Will now clip .TGA files with a resolution greater than
  850.     320x200 instead of choking on them.
  851.   o Added /O (sort order) option.  When DTA has to sort filenames,
  852.     like when you use a wildcards or when you just give the name
  853.     of an .LZH file, "/O+" (the default) will tell DTA to sort
  854.     in ascending order, "/O-" in descending order.
  855.     This option is positional... it will only affect files
  856.     specified AFTER the option on the DTA command line.
  857.     You can use this more than once on a DTA command line.
  858.  
  859.  Rel 1.1 (07/15/91)
  860.   o Can now extract .TGA files from inside of .LZH files.
  861.     (by shelling to LHA.EXE)  Takes longer, but can save plenty
  862.     of disk space.
  863.   o Added /s (to specify playing speed).
  864.   o Doesn't choke on truncated .TGA files any more.
  865.   o Rewrote some I/O routines so scanning palettes is quicker.
  866.