home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 26 / amigaformatcd26.iso / c / flick.doc < prev    next >
Text File  |  1997-03-05  |  9KB  |  255 lines

  1.  
  2.         Flick FLI-format Animation Viewer v1.2          19 Feb 1994
  3.         --------------------------------------
  4.  
  5.  
  6. This program plays FLI/FLC-format bitmapped animation files on any ECS
  7. or AGA Amiga running OS2.04 or higher.  FLI/FLC-format files are
  8. produced by Autodesk Animator (Pro) and Autodesk 3D Studio on a PC, as
  9. well as by other programs.
  10.  
  11. The files in this archive may be distributed anywhere provided they are
  12. unmodified and are not sold for profit.
  13.  
  14. Ownership and copyright of all files remains with the author:
  15.  
  16.     Peter McGavin, 86 Totara Crescent, Lower Hutt, New Zealand.
  17.     e-mail: peterm@maths.grace.cri.nz
  18.  
  19.  
  20. FEATURES:
  21. ---------
  22.  
  23. Plays either from ram or directly from disk (e.g, when not enough ram
  24. is available).
  25.  
  26. Works with any size or resolution FLI/FLC file.
  27.  
  28. Uses AGA 256-colour mode when AGA is available.
  29.  
  30. Extra-Half-Brite mode (EHB) allows reasonably good colour
  31. approximation on ECS Amigas.
  32.  
  33. 16-colour mode (COLOUR4) allows reasonably good colour approximation
  34. on ECS Amigas in hires (and it's usually faster than 256-colour).
  35.  
  36. Falls back to EHB (lores) or COLOUR4 (hires) when AGA is not
  37. available.  Falls back to disk play when not enough ram is available.
  38.  
  39. Uses an Intuition-friendly double-buffered Screen.  You can flip it to
  40. the back, or drag it down in the usual way, while an animation is
  41. playing.  The latest OS3.0 double-buffering functions are used if
  42. possible.
  43.  
  44. Uses ASL file-requester.
  45.  
  46. There is an option to use graphics.library for chunky to planar
  47. conversion.  That might speed up animations on Amigas with special
  48. hardware (e.g, CD32's Akiko chip).
  49.  
  50. Achieves 10 to 50 frames/second on an A4000/030 (from ram) with
  51. a variety of chunky2planar algorithms to choose from.
  52.  
  53. Source code is included, so if something doesn't work you can fix it.
  54.  
  55.  
  56. OPERATION:
  57. ----------
  58.  
  59. I've tried to make it easy to use in many different ways.
  60.  
  61. Just double-click the Flick icon and select an anim to play from the
  62. requester.
  63.  
  64. Alternatively you can set up project icons for your anims (e.g, with
  65. IconEdit).
  66.  
  67. From the SHELL or CLI there are some more options available.  The
  68. syntax is:
  69.  
  70.    FLICK FILE/M,DISK/S,RAM/S,COLOUR/S,EHB/S,COLOUR4/S,GREY/S,
  71.          ONCE/S,ROM/S,NODBUF/S,NOCOMPARE/S
  72.  
  73. If you don't specify a file, the file-requester pops up.
  74.  
  75. You can specify a list of files, separated by spaces.  However #?
  76. wildcards don't work.
  77.  
  78. Options are:
  79.  
  80.     DISK:        Plays from disk (i.e, plays while reading).
  81.  
  82.     RAM (default):    Plays from RAM (i.e, loads first, then plays).
  83.  
  84.     COLOUR (default): AGA 8-bitplane 256-colour mode.
  85.  
  86.     EHB:        Extra-Half-Brite 6-bitplane mode.
  87.  
  88.     COLOUR4:    4-bitplane 16-colour mode (usually faster).
  89.  
  90.     GREY:        4-bitplane 16-grey-scale mode (usually fastest).
  91.  
  92.     ONCE:        Play once, then quit.  (Default is to loop).
  93.  
  94.     ROM:        Uses graphics.library WritePixelArray8().
  95.  
  96.     NODBUF:        Don't double-buffer (faster, saves RAM, flickers).
  97.  
  98.     NOCOMPARE:    Full c2p (faster when frames differ greatly).
  99.  
  100. Use the ROM option if you own an Amiga with chunky to planar hardware,
  101. like the Akiko chip in the CD32.  The ROM option is also useful if you
  102. run out of Chip memory, because it uses less.  This option causes
  103. flick to use the graphics.library WritePixelArray8() function instead
  104. of its own routine.  WritePixelArray8() uses the special hardware when
  105. it is available, giving a faster animation.  If you don't have special
  106. hardware then the ROM option will probably be slower.
  107.  
  108. Use the NOCOMPARE option for more speed if consecutive frames differ
  109. greatly (e.g, for digitised video, or full-screen 256-grey-level
  110. weather satellite pictures, or fully ray-traced anims with the camera
  111. moving).
  112.  
  113. To quit an animation, press ESC, Q, q or CTRL/C.
  114.  
  115.  
  116. OTHER FREELY DISTRIBUTABLE FLI PLAYERS FOR THE AMIGA:
  117. -----------------------------------------------------
  118.  
  119. Other FLI viewers I know about are:
  120.  
  121.     Flit 1.0 by John Bickers.
  122.  
  123.     AmiFlick v1.05 by Garrick Meeker.
  124.  
  125.     Flip 1.50 by Dominik Tonn.
  126.  
  127. These should all be available on Aminet.
  128.  
  129.  
  130. WHY IS IT SO SLOW?
  131. ------------------
  132.  
  133. Well actually I think it's quite fast for what it does.
  134.  
  135. FLI-format is exactly the wrong format for the Amiga.  That is,
  136. everything is stored internally in "chunky" format, but the Amiga has
  137. its graphics video-memory arranged in "planar" format.  All known
  138. algorithms to convert between chunky and planar format are very, very
  139. slow.
  140.  
  141. Flick incorporates several different c2p algorithms optimised for
  142. different situations.  The default algorithm is CPU based and updates
  143. only the parts of the screen which change each frame.  It is fastest
  144. when only a small part of the display is animating.  This routine does
  145. not use the blitter, nor does it attempt to pipeline writes to chip
  146. RAM.
  147.  
  148. If the animation has large differences between frames, then use the
  149. option NOCOMPARE, especially if your Amiga has a slow CPU.  Then Flick
  150. selects one of 2 different c2p algorithms, one optimised for a 68040,
  151. the other for a 68020 or 68030 with fast memory.  The latter routine
  152. is a combined blitter+cpu c2p algorithm.  That is, the blitter and cpu
  153. work together on different parts of the display at the same time.
  154. Both of these routines use chip RAM pipelining techniques that are not
  155. used in the default routine.  I tested the 68040 routine at up to 25
  156. frames/second with full 320x200x8 on a 28MHz Zeus 68040 (which has
  157. only 16-bit chip ram) but I have not had the opportunity to test it on
  158. an A4000/040.
  159.  
  160. If you manage to improve the algorithms significantly, or find a
  161. faster one, please let me know.
  162.  
  163. For EHB, COLOUR4 and GREY modes, the program makes an extra
  164. translation for every pixel.  In EHB and COLOUR4 modes the program
  165. performs a long calculation to recompute the translation table every
  166. time the colour map changes.  (Note: Flick does not recalculate the
  167. currently displayed frame with the new palette, so if the next frame
  168. changes only part of the screen then the part which is unchanged will
  169. appear in the wrong colours.  Fortunately this doesn't happen very
  170. often, and it never happens in COLOUR mode on an AGA Amiga.)
  171.  
  172. If you really want to see a FLI-format or FLC-format file played fast,
  173. convert it to an Amiga anim format first.  The shareware program
  174. MainActor is excellent for that.  Also AmiFlick can write IFF files,
  175. and some of the commercial anim utilities, like ImageFX, can convert
  176. directly from FLI to anim.
  177.  
  178.  
  179. BUGS:
  180. -----
  181.  
  182. Bugs?  What bugs?  Oh well, maybe the following can be construed as bugs:
  183.  
  184. Probably crashes on pre-ECS Agnus Amigas running OS2.04 & up (untested).
  185. Anims with lots of colour map changes don't play correctly in EHB,
  186.     GREY or COLOUR4.
  187. Doesn't recognise Tool Types, so options are not available from WB.
  188. Can't select multiple files from file requester.
  189. Can't use #? wildcards on commandline.
  190. Stdio output window is ugly.
  191. Probably fails with RTG due to writing directly into custom BitMap.
  192. Converts all 8 planes from chunky even when only 4 or 6 are used.
  193. Converts the whole display from chunky, even when only small parts change.
  194. Uses heaps of chip ram.
  195. The frame-speed stored in the FLI/FLC file is ignored.
  196. No interactive speed control yet, sorry, but try playing with the
  197.     command-line options.
  198.  
  199.  
  200. THANKS:
  201. -------
  202.  
  203. Thanks to James McCoull for his 4-pass blitter c2p routine.
  204.  
  205. Thanks to Patrick van Logchem for speedup ideas.
  206.  
  207. Thanks to Dominik Tonn for testing.
  208.  
  209.  
  210. DISCLAIMER:
  211. -----------
  212.  
  213. It seems to work for me.
  214.  
  215.  
  216. HISTORY:
  217. --------
  218.  
  219. v1.0   19 Dec 1993
  220.  
  221. First release.
  222.  
  223.  
  224. v1.1   27 Jan 1994
  225.  
  226. Fixed some minor bugs (missing "break" statements which fortunately didn't
  227.     do any harm apart from wasting some memory).
  228. Fixed bug where some structures could be left allocated and asl.library
  229.     left open after certain error conditions.
  230. Use V39 Intuition-friendly double-buffering functions when possible.
  231. Added ROM option to use graphics.library WritePixelArray8().
  232. Significantly sped up the chunky2planar routine.
  233. Got FLC-format support working for 640x480 and 480x300 resolutions.
  234. CTRL/C aborts the whole program, not just return to the file requester.
  235. Added 68040-optimised c2p routine.
  236. Added COLOUR4 mode.
  237. Compiled with SAS/C 6.51.
  238.  
  239.  
  240. v1.2   19 Feb 1994
  241.  
  242. Fixed bug where mode did not fall back to COLOUR4 for FLC files on ECS
  243.     Amigas.
  244. Worked around SAS/C 6.51 bug in fseek/fread that caused some disk
  245.     anims to fail.
  246. Disk-play now reads a frame at a time instead of a chunk at a time.
  247. Improved c2p routine for Chip-only machines by eliminating a mem copy.
  248. Fixed bug where dbuf messages weren't replied to after strange error
  249.     conditions.
  250. Added support for FLI/FLC files of any resolution.
  251. Wrote a much faster routine for when only part of the display changes
  252.     each frame (and made it the default).  This sped up many anims
  253.     by a factor of 2 or more.
  254. Added NOCOMPARE and NODBUF options.
  255.