home *** CD-ROM | disk | FTP | other *** search
/ The Best of Mecomp Multimedia 1 / Mecomp-CD.iso / amiga / grafic / cyberanim / cyberanim.doc < prev    next >
Text File  |  1997-05-31  |  9KB  |  295 lines

  1.  
  2.         CYBERANIM IFF/ANIM-format Animation Player v1.2           1 Jun 1997
  3.         -----------------------------------------------
  4.  
  5.  
  6. This program plays IFF ANIM3/5/7/8-format bitmapped animation files on
  7. any Amiga+GfxCard with OS3.0 or higher and CyberGraphX V2.18 (40.89)
  8. or higher.
  9.  
  10. In general, it can play any IFF ANIM3/5/7/8-format animation in a
  11. different screen mode than intended.  It is most useful for playing
  12. AGA 256-colour animations on an ECS Amiga with a gfx-card.
  13.  
  14. The files in this archive may be distributed anywhere provided they are
  15. unmodified and are not sold for profit.
  16.  
  17. Ownership and copyright of all files remains with the author:
  18.  
  19.     Peter McGavin, 86 Totara Crescent, Lower Hutt, New Zealand.
  20.     e-mail: p.mcgavin@irl.cri.nz
  21.  
  22.  
  23.  
  24. FEATURES:
  25. ---------
  26.  
  27. Uses an Intuition-friendly Screen.  You can flip it to the back with
  28. left-Amiga M, while an animation is playing.
  29.  
  30. Plays either from ram or directly from disk.  Falls back to disk play
  31. when not enough ram is available.
  32.  
  33. Uses an ASL ScreenMode requester.
  34.  
  35. Supports Extra-Half-Brite (EHB) animations.
  36.  
  37. Uses a double-height Screen and ScrollVPort() for double-buffering.
  38. Dragging the Screen up and down (left Amiga left mouse button drag)
  39. will reveal both buffers.  Note that this method of double-buffering
  40. mightn't work properly before CyberGraphX V2.18 (40.89).  Make sure
  41. you have an up to date version of CyberGraphX or you might see only
  42. every second frame.
  43.  
  44. Optionally uses ChangeScreenBuffer() for double-buffering in
  45. non-CyberGraphX modes.
  46.  
  47. Renders to fastmem bitplanes, then blits to the Screen using gfx-card
  48. friendly BltBitMapRastPort().  Blits only the parts of each frame that
  49. changed since the previous frame (actually the 2nd-previous frame).
  50.  
  51. Runs from either icon or shell.  Uses icon tooltypes for options (i.e,
  52. WorkBench Icons/Information... menu item).
  53.  
  54. Playback speed can be controlled with F-keys.
  55.  
  56. Optionally loops animations without loop frames with no garbage or
  57. jitter.
  58.  
  59. Source code is included, so if something doesn't work you can fix it.
  60.  
  61.  
  62.  
  63. LIMITATIONS:
  64. ------------
  65.  
  66. Does not support HAM or HAM8 in CyberGraphX modes (although they can
  67. be played in the wrong colours).
  68.  
  69. Double-buffering is not synchronised with the gfx-card video beam in
  70. CyberGraphX modes.  There seems to be no supported way of doing this.
  71. My experiments seem to indicate that WaitTOF() still uses the native
  72. chipset vblank, which is out of step with the gfx-card vblank.  If
  73. flicker is a problem, as it is with certain animations on my GVP
  74. Spectrum gfx-card, try using the WAITTOF option or try "setenv
  75. CYBERGRAPHICS/CPUP2C 1".  However these will slow down animations and
  76. other graphics operations.
  77.  
  78. Palette changes are not synchronised with the CyberGraphX video beam
  79. either, so animations with palette changes may flicker too.
  80.  
  81. CYBERANIM doesn't cope with all anim7/8-format files, e.g, if the
  82. first frame is a DLTA chunk instead of a BODY chunk.  CYBERANIM
  83. expects anim7/8-format files to have a width that is a multiple of 32
  84. pixels.
  85.  
  86. CYBERANIM does not support masks, colour ranges or sound.  CYBERANIM
  87. ignores unrecognised IFF chunks.
  88.  
  89. CYBERANIM doesn't seem to work properly for all AnimBrush animations.
  90.  
  91. Some corrupt anim files may crash CYBERANIM (although most won't).
  92.  
  93.  
  94.  
  95. OPERATION:
  96. ----------
  97.  
  98. I've tried to make CYBERANIM easy to use in many different ways.
  99.  
  100. Just double-click the CYBERANIM icon and select an anim to play from the
  101. requester.
  102.  
  103. Alternatively you can set up project icons for your anims (e.g, with
  104. IconEdit).
  105.  
  106. Options can be specified either on the commandline or in icon
  107. tooltypes.  You can set default tooltypes in the program icon and
  108. override them temporarily with tooltypes in any project icon.
  109.  
  110. From the SHELL or CLI, the syntax is:
  111.  
  112.  
  113.    CYBERANIM FILE/M,DISK/S,RAM/S,ONCE/S,WARP/S,NOMODEREQ/S,WAITTOF/S,
  114.              WAITBOVP/S,CH=CHANGESCREENBUFFER/S,NOLOOPFRAMES/S,SC=SCREENMODE/K
  115.  
  116.  
  117. If you don't specify a file, the file-requester pops up.
  118.  
  119. You can specify a list of files, separated by spaces.  However #?
  120. wildcards don't work.
  121.  
  122. Options are:
  123.  
  124.     DISK               Plays from disk (i.e, plays while reading).
  125.  
  126.     RAM (default)      Plays from RAM (i.e, loads first, then plays).
  127.  
  128.     ONCE               Play once, then quit.  (Default is to loop).
  129.  
  130.     WARP               Plays real fast.  Default speed is what anim says.
  131.  
  132.     WAITTOF            Attempt to avoid flicker.
  133.  
  134.     WAITBOVP           Another attempt to avoid flicker.
  135.  
  136.     CHANGESCREENBUFFER Use ChangeScreenBuffer() --- non CyberGraphX modes only.
  137.  
  138.     NOMODEREQ          Tries to guess the best Screen mode to use.
  139.  
  140.     SCREENMODE=modeid  Use the specified Screen mode.
  141.  
  142.     NOLOOPFRAMES       Use this when an animation has no loop frames.
  143.  
  144.  
  145.  
  146. SCREENMODE
  147. ----------
  148.  
  149. There are 3 ways to specify the ScreenMode with the SCREENMODE option.
  150.  
  151.     hexadecimal        e.g, SCREENMODE=$21000  or  SCREENMODE=0x21000
  152.  
  153.     decimal            e.g, SCREENMODE=135168
  154.  
  155.     by name            e.g, SCREENMODE="PAL:Low Res"   --- must be exact
  156.  
  157.  
  158.  
  159. KEYBOARD AND MOUSE CONTROLS
  160. ---------------------------
  161.  
  162. To quit an animation, press ESC or Q or click the right mouse button.
  163. CYBERANIM also stops when it receives a CTRL/C break signal, e.g, by
  164. typing CTRL/C in the Shell window or by using the AmigaDOS BREAK
  165. command.
  166.  
  167. Keys F1 through F10 can be used to change animation speed as follows:
  168.  
  169.    F1   as fast as possible
  170.    F2   60 frames per second
  171.    F3   30 frames per second
  172.    F4   24 frames per second
  173.    F5   15 frames per second
  174.    F6   12 frames per second
  175.    F7   10 frames per second
  176.    F8   5 frames per second
  177.    F9   1 frame per second
  178.    F10  at the speed specified in the anim file
  179.  
  180. Key L toggles between loop frames and no loop frames.
  181.  
  182.  
  183.  
  184. LOOP FRAMES
  185. -----------
  186.  
  187. Loop frames are 2 extra frames added to the end of an animation that
  188. restore the first 2 frames respectively.  Deluxe Paint always makes
  189. animations with loop frames.  By default, CYBERANIM assumes every
  190. animation has loop frames.
  191.  
  192. Some utilities create animations without loop frames.  Then CYBERANIM
  193. may jitter and/or garbage may appear on the display the 2nd and
  194. subsequent times around.  If this happens, try the NOLOOPFRAMES option
  195. or press L once during play.
  196.  
  197.  
  198.  
  199. WHY IS CYBERANIM SO SLOW?
  200. -------------------------
  201.  
  202. Have you tried the WARP option or pressed F1 yet?  The default is to
  203. play at the speed defined in the anim file, which is often quite slow.
  204.  
  205. What kind of Amiga do you have?  CYBERANIM is significantly faster on
  206. faster Amigas.  Fast memory helps a lot too.
  207.  
  208. What resolution is the anim file?  320x200 is up to 5 times faster
  209. than 640x512.
  210.  
  211. In CyberGraphX modes, CYBERANIM unpacks each frame to a temporary
  212. buffer in fastmem then blits that buffer to the Screen.  Since
  213. BltBitMapRastPort() blits only rectangles (BltMaskBitMapRastPort()
  214. seems to be slower), CYBERANIM generally blits more than the parts
  215. that changed since the previous frame.
  216.  
  217. Other animation players (and CYBERANIM using native modes) unpack each
  218. frame directly to the Screen.  The latter method is faster but it is
  219. not compatible with gfx-cards.  On the other hand, CYBERANIM does not
  220. use slow chipmem at all in CyberGraphX modes.
  221.  
  222. Anim-format is exactly the wrong format for chunky gfx-cards.  That
  223. is, everything is stored internally in "planar" format, but the
  224. gfx-card has its graphics video-memory arranged in "chunky" format.
  225. Algorithms to convert between chunky and planar format are slow.
  226.  
  227. CYBERANIM uses the conversion algorithms built in to CyberGraphX to
  228. convert from planar to chunky.  CyberGraphX uses the gfx-card's
  229. hardware for this if the environment variable CYBERGRAPHICS/CPUP2C is
  230. set to 0, otherwise it uses a software algorithm.
  231.  
  232. Note also that animations with less than 8 bitplanes play faster than
  233. 8 bitplane animations in native modes, but not necessarily in
  234. CyberGraphX modes.  That's because there is less memory to move around
  235. with less bitplanes in planar modes.  This is an advantage planar has
  236. over chunky and one of the reasons Amigas have always been so good at
  237. animation.
  238.  
  239.  
  240.  
  241. BUGS:
  242. -----
  243.  
  244. None that I know of in v1.2.
  245.  
  246.  
  247.  
  248. THANKS:
  249. -------
  250.  
  251. Thanks to Frank Mariak and the rest of the CyberGraphX team for
  252. CyberGraphX.  (By the way, I am not associated with CyberGraphX
  253. development, just a satisfied user...)
  254.  
  255.  
  256.  
  257. DISCLAIMER:
  258. -----------
  259.  
  260. It seems to work for me.  Tested on:
  261.  
  262.     A3000 + 40MHz Warp engine + GVP Spectrum EGS & CyberGraphX
  263.  
  264.     A4000/040 + CyberVision64 & CyberGraphX
  265.  
  266.  
  267.  
  268. HISTORY:
  269. --------
  270.  
  271. v1.0    8 Sep 1996
  272.  
  273. First release.
  274.  
  275.  
  276. v1.1    8 Oct 1996
  277.  
  278. Added anim8 support.
  279. Use OpenScreenTags() instead of OpenScreen() to work around problem described
  280.   above.
  281. Timer device was initialised with UNIT_MICROHZ instead of UNIT_ECLOCK --- oops.
  282. Rewrote some more unpacking code in assembly instead of C.
  283. Tried to speed up the existing assembly code (unpack.s).
  284.  
  285.  
  286. v1.2    1 Jun 1997
  287.  
  288. Fixed bug with 16-bit anim-7 files.
  289. Many errors are no longer fatal --- now returns to file requester.
  290. Now plays (most?) animbrush files.
  291. Added CHANGESCREENBUFFER option (non-CyberGraphX modes only).
  292. No longer flickers (much) in native modes when using CHANGESCREENBUFFER.
  293. Added SCREENMODE option.
  294. Added NOLOOPFRAMES option and L control.
  295.