 PowerFliC 32bit, revision history
-------------------------------------

 - 2.52    *It seems that "DeBabelizer Toolbox", and perhaps "DeBabelizer Pro"
            have weird flic encoding, some of which is outright buggy.
            Some of this strange encoding cosists of optimization code to make
            the flics smaller, this i have managed to handle and it plays
            correctly.  However, i have encountered flics that crash even
            the Autodesk Players, these i cannot make a work-around for since
            they are truely encoded incorrectly in my view.

 - 2.51    *I have added yet another small fix for the REALLY BUGGY encoding used by
            accurender, i have nothing personal against this program,  but you might
            want to consider rendering into single frames and then building the flic
            in another program (Autodesk Animator Pro perhaps).

           *Reorginized the non Direct-X options into a seperate menu, you can reach
            it by pressing the new options button, or by clicking ALT-O.

           *Created graphic  buttons  for the Direct-X,  Information and  Statistics
            menus, and for the new Options button.

           *Powerflic now has an option  (under the options button)  to remember the
            last directory of a successfully open flic file.  This only works if the
            flic was opened using the open button, and not via the command line.

           *Reformatted the documentation file to a width of 80 characters.

 - 2.50    *A very important bug fix, in Direct-X playback modes, it wasn't actually
            using the Direct-X palette!,   it was using the GDI palette which caused
            it to use only 236 colors, When it should have been using the entire 256
            color palette.     The big problem was that it was taking the missing 20
            colors and mapping them to the closest color match making it hard to see
            any difference,  so i didn't catch on to this bug till now.       So now
            everything should be working fine and  Direct-X should play with all 256
            colors.

           *Due to the fact that the bitmap  palette and the viewed palette were not
            an exact match,  windows was  spending a  lot of CPU  time  trying to do
            color  matching ,  so now  playback  in Direct-X modes  should be  about
            40%-500% faster!

           *It seems that several flic  encoders are encoding flics that do not 100%
            conform to the flic standard as set by Autodesk.  Somehow their encoding
            is interfering  with the ASM  optimization,  and perhaps interfere  with
            other issues in PowerFlic.  For this reason, i have added a new checkbox
            called "Optimize".  It replaces in location the  ReadBig checkbox  which
            has moved into the Modes menu.

            By  default this  checkbox  should be  left  checked,  and only  if  you
            encounter flics  that cause protection fault  while playing  (usually at
            the second or third frames),  you might want to try turning optimization
            off.

            You can also disable / enable optimization using command line parameters
            /OPTIMIZEon  - Enables Assembler optimization (default).
            /OPTIMIZEoff - Disables Assembler optimization.

            So far the only bad encoder i have  encountered is AccuRender, but there
            might be others.

           *Another side effect  of the color matching  bug was that  if you changed
            the brightness or contrast  of the flic, the speed would  suddenly go up
            wildy since there were less colors to match, no it plays at this maximum
            speed at all times.

           *Added an option  under the Direct-X modes  menu to use only  the primary
            (front) Direct-X surface instead of the double buffering  method. If you
            have have this option ON,   PowerFliC will play the flic on one Direct-X
            surface thus skipping the wait for the screen sync.

            What does it mean for you?  Well,   if you use one surface,  the playing
            is  faster and more  accurate to the timing  (like  playing in  windowed
            mode). However, since were not waiting for the screen sync, we can get a
            tearing effect in the image since the image  changes while the screen is
            copying the image from the vga memory to the screen output.

            Basicly, it's another prefrence for your enjoyment.

            This  feature is  interactive  and you  can activate it  during Direct-X
            playback to see the differences in playback. To toggle it press "ALT-1".

            To activate from command line use the  "/ONESURFon"  and   "/ONESURFoff"
            parameters.

           *Added two fine tuneing keys for the speed delay control:
            SHIFT-"+" will increase delay by 5ms
            SHIFT-"-" will decrease delay by 5ms

           *Added a new FPS (frames per second) counter for Direct-X modes.  You can
            enabled it on the  Direct-X modes menu or optionally  press ALT-F during
            Direct-X playback to enable/disable the FPS playback.

            To enable FPS display from command line use the
            "/FPSon" and "/FPSoff" parameters.

            A few comments on how the FPS works:

            1. The calculation is  the FPS from the start  of playback so if the FPS
               changes during playback it will slowly move toward the new speed.
            2. The FPS font  color  tries to be white, some  flics might not  have a
               white color  in them, or even a  near white color that  windows tries
               to fit the font into. In such cases the FPS display might not be seen
               correctly, if at all.
            3. Display the  FPS itself  might actually  slow playback  a little  bit
               making the FPS  number perhaps a little  slower than it should be.  I
               don't  have accurate measurements  on how much  CPU time  drawing the
               font takes,  but i suspect it  is very small,  and SHOULD not  really
               affect the FPS display at all.

           *Now the contrast keys change the contrast by 0.2 rather than 0.5.

           *Updated the bugs area in the docs and added a "Cause" in there.

           *Double clicking  on the image  window now moves  the interface  controls
            into the front  (in windows mode only),  this is good if you're  playing
            a large flic and it covers the interface window completely.    A regular
            click on the image window will ofcourse return it to be on top.  However
            this function wouldn't work if the "On Top" checkbox is checked on.

           *Changed the  working of the force  mode selection code,  this should not
            really be visible  to you the user,  but if forced mode  once worked and
            now  suddenly doesnt,  or if it doesnt remember  which mode  you used to
            use, please let me know.

           *Updated the formats  section in the  documentation file due to my recent
            bad experiences with the AVI format (see next).

           *Also, over the last several month i've been trying to get decent quality
            playback out of the AVI format.  And failed.

            It is pathetic, the format is either low quality (Cinepak), high quality
            and  impossible to  playback (Motion JPEG) or just  outright low quality
            AND impossible to playback (Intel Indeo Interactive Movie).

            I rendered a space scene picture that rotates around a spaceship, and:

            Cinepak     :  While good at  things, and VERY fast  decoding, it totaly
                           destroyed some colors,  my blue reflecting glass  cockpit
                           was reduced to like 3 colors, it looked aweful.

            Motion JPEG :  Great quality, but it played at 3fps on my P5/200mhz with
                           a hardware accelerated YUV decoder!

            Intel Indeo :  While keeping  colors mostly correctly,  it totaly ruined
                           the shape outline of my spaceship, it turned  it awefully
                           pixelized.

            Actually,  the best output  i've got  was from  my  own flic  player, it
            played full-screen at over  640x480  at speeds exceeding 55fps and since
            the animation was smooth you could hardly see the 256 color dithering.

            Im  telling you, full screen  video on windows 95  is JUST NOT HERE YET.
            Lets hope some decent MPEG-2 decoders come out on the market soon.  (And
            in my opinion, when you buy your next VGA card,  make sure it comes with
            an MPEG-2  decoder hardware, since  i kind of doubt  software can  do it
            with even the fastest current processor, the P2/300mhz).

 - 2.12    *Trying to play using Direct-X mode 1152x864 would crash PowerFliC,
            this happened due to a stupid bug, i told direct-x to move to
            1152x764 instead, and guess what, there is no such mode.

           *In the statistics page, you can now see both the current fps, and the
            fps the player is trying to achive according to the speed delay bar.

           *I replaced my "About" logo to show the new email, this time it was
            done in 3D (previous logo was 2D).

           *Fixed up the docs a little bit, check up the expanded bugs area
            just in case you're wondering what is the missing DDRAW.DLL some of
            you might have seen.

           *Lastly, i changed my email to a redirector so if i change my ISP in
            the future, i'll have the same email.
            The new E-Mail is <yaron@earthling.net>.

           *P.S. If you have an MPEG-2 VideoCD (not regular MPEG), i would
                 appriciate if you could send me one (some scenenic CD or
                 something similar to show MPEG-2 quality).

 - 2.11    *The pause button allowed you to pause in the loop-ring frame, which
            wasn't really a bug, but could confuse people.

           *Added a frame-bar, it only appears when paused, and will allow you
            to drag-play the flic, be careful when doing it when playing large
            flic files, especially if playing from hard disk.

           *Ouch, MAJOR memory bug fixed in pause routines, i forgot to deallocate
            frame memory, so pausing when playing from hard disk would cause major
            memory loss.

           *I also did some timing test.  When moving back a frame on my biggest
            flic (640x480,297 frames), from the last frame, it takes 2 seconds
            to move back 1 frame (decoding 296 640x480 frames on my P5/200mhz takes 2
            seconds), i REALLY wouldn't try doing that when playing from hard disk!.
            Same goes for the frame-bar.  Using the forward button is lightning fast
            though, so feel free to use it, even when playing from hard disk.

 - 2.10    *Redrew some of the button graphics to make them appear more uniform.

           *Implemented a pause button (only works while playing).
            The keyboard button is the "X" or "Alt-P".

           *When paused a small frame counter will appear to the right
            of the lower button-bar to indicate the current shown frame.

           *Implemented a next frame button (only works when paused).
            The keyboard button is "C"

           *Implemented a last frame button (only works when paused).
            The keyboard button is "Z"
            Be warned, the flic format was not designed to move backwards, in order
            to move a frame backwards what i do is decode the entire flic from the
            start till the begining of the previous frame.  This should be fast
            enough on most computers, but NOT if you're playing from disk or
            playing a high-res long animation that might require a lot of decoding time
            (Though the flic decoding routines are really fast, so if you're playing
            from memory, it should be fast enough).
 
           *Changed the check-box's font (again).

           *I restored some of the buttons to a normal button state (they were flat buttons
            before) since the flat button seem to be buggy during flic pausing.

           *Fixed a NASTY bug when trying to exit the program while a flic is playing.
            It seems at about 10-20% of the time when you tried to do that, PowerFliC
            could have crashed with an IO error or a memory pointer error, as i said,
            quite nasty.  I think this fix also made the actual closing of the program
            during playback somewhat faster.

           *It seems that quiting with the ALT-X button used a different routine than
            the actual quit button, they now share the same code, which i hope is 100%
            bugless.

 - 2.01     This is a minor version which main purpose was to fix all the small
            glitches that came with v2.00's introduction of Direct-X support.


           *The [Escape] key no longer resets the flic playing to it's defaults,
            it was replaced by the "R" key.  The [Escape]'s key new function is
            to stop the flic playing, and if in direct-x mode to return to normal
            windowed mode.  This just seemed more intuative.

           *You could have still use the keyboard to use illegal function under
            Direct-X modes (Such as the Max Pal setting).  Fixed.

           *You can't enter the statistics screen when the Direct-X checkmark is
            on, since you wont be able to see the stats window, and it will flicker
            annoyingly on the screen.
  
 - 2.00     Before specifying what is actually new in this version, you must first
            be made aware that this version has A LOT of new code in it, and some bugs
            might have slipped in, i did my best to test it, but if you spot any
            bugs, please let me know about it at: yaron@earthling.net


           *New checkbox, "Direct-X" this checkbox can only be pressed
            when not playing, and it will disable the "Title", "On Top"
            and "Max Pal" checkboxes since they are not needed when playing
            a flic in full-screen mode.

            When playing with this checkbox checked, the playback will occur
            in full-screen mode.  You MUST have Direct-X installed or the
            program may hang the system.  Direct-X v3.0 or better required.

            Since your VGA card supports many resolutions, PowerFliC does
            it's best to select the best display mode.  However, some resolutions
            don't have a square pixel size, such as 320x200 or 640x400, and even 360x480
            which is truely unsquare-like, so for these it might be better to enter
            the force-mode menu (ALT-M), and select whatever mode you wish for playback.

            Please note, that when "forcing" a mode, PowerFliC might fail when trying
            to enter an unsupported mode (unsupported by your specific VGA card).
            So it is wise to know what VGA modes your screen & VGA card support.
            In Practice, any mode supported by QuickRes is supported in Direct-X.

            Also, don't forget that while you're in Direct-X full screen mode, the menu
            interface is no longer visible, so you might want to check the doc file
            for the keyboard assignments.  But in case you forget the "Esc" key stops
            playback, and returns to the Windows interface.

            And yes, there are more warnings to this direct-x thing:
            1. Don't try playing a flic which is larger than your maximum screen
               resolution, this might cause weird problems, or even crash your computer.
            2. Don't force a larger flic to be played at a low resolution
               (lower than the flic's) since the above might also occur.


            Direct-X:

            Direct-X updates the screen only on screen-refreshes.  What do that
            mean? well, if your screen's vertical refresh rate is set to 70hz that
            means Direct-X fastest possible speed is 70fps, since it waits for the
            screen to finish it's update, and only then it writes the graphic data
            to the vga memory.  However, lets say our data is complex, and our
            CPU isn't the fastest money can buy, and direct-x doesnt have enough time
            to do the screen update in one vga refresh, direct-x will then wait for the
            second refresh giving a maximum speed of 35fps.  All this is done to give
            a smoother playback without any of the sheering that occurs when you update
            the VGA memory during a screen refresh.  Take this into consideration
            whenever you play games that use direct-x or using thie player, somtimes
            a slower refresh rate can give better speed, and sometimes it's the opposite.

            In conclusion, it's messy, and i suggest setting your refresh rates to the
            maximum value supported by your screen.  With this in mind, when PowerFliC
            plays in direct-x mode, it's timing caluclations might be a little off since
            Direct-X waits for the screen refresh before moving on to the next frame.
            However, this should not be too noticeable (if at all), give it a try.

           *Made a workaround a nasty windows setting that forced bitmaps to be
            of 32bit width (dividing by 4), so now no matter what the flic's width,
            it should play correctly (this fix was a long time coming).

            However playing flics which width do not divide by 4 is a little slower
            and takes a little more memory.  If you are making flics, make their
            width divide by 4.

           *Major code clean-up.  Unified procedures, changed bitmap recreation,
            got rid of unused code, and lots of other small fix-ups.

           *Did a little documentation revamping, added a section to cover the new
            mode selection dialog (ALT-M), updated some of the world data that changed
            since the time i updated the docs, etc...

           *You can now reach the Statistic, Information and the new Mode selection
            menus by pressing the mini-buttons to the right of the record button,
            they are labeled (Modes, Stats & Info).

           *Powerflc.cfg file no longer used, configuration information has been
            moved into the registry, feel free to erase the old configuration file.

           *Compiled under Delphi 3.0 (who knows what this gives except
            an extra 40k in file size).

           *Replaced the button style to Flat (ala-explorer), this saves
            a little button width that has been put to better use.

           *Fixed the ALT-Enter form not resizing back to it's original size.

           *The record button is no longer enabled during playback.

           *When pressing ALT-F4 while in full-screen mode, the screen
            would come out of full-screen half way.  Fixed.

           *New checkbox, "Read Big" this functions the same as giving
            the "/BigReadOn" parameter, it might improve speed when reading
            from slow medias such as CD-Roms, give it a try (Takes a little more
            memory for playback, and only works when playing from drive rather
            than memory).

           *When pressing the "P" or Play buttons while the screen is maximized
            and then trying to maximize the window, the window no longer
            appears shifted to the bottom right.

           *When rescaling the image after the playback has stopped, the image
            remains visible.

           *New font for checkboxes.

           *When pressing ALT-I to see the flic information, it would have shown
            a Delay even though no flic was loaded.

 - 1.80    *Added an option (button) to save the flic stream into a series
            of BMP pictures.

            Read the new documentation section reguarding the procedure of
            converting flic to bmp for more information.

 - 1.72    *Very small bug-fix, when the "Stay on top" checkbox was
            marked, it only affected the stay on top of the image window
            over the interface window, and not ALL the windows out there...
            This should now work.

           *I got rid of the word doc file for a standard text file because
            my wordpad program decided it doesnt like to save to a ".doc" file
            anymore. (Another great Micro$oft product).

           *While passing over the new text-file documentation, i did correct some
            info on the command line example (it simply wasn't 100% working).

           *My DragonFire home page mirror is now off, they started requesting
            money for the page hosting, and frankly i can't afford it.
            So my only page is now on geocities.

            However, the nice guys at www.ml.org have allowed me (or anyone else)
            to create a redirector to my home page, so you can now reach my page
            through it's own domain at: "http://bez.home.ml.org", very cool.

            If you know of a place where i can have at least 5-10 mb of disk space
            to host my page without paying any monthly fees, please let me know.

 - 1.71    *Although this is just a minor version, a lot of internal
            source clean-up was done, with this in mind, let me know if
            any new bugs popped up.

           *Added a new command line parameter, use "/HIDEMENU" to
            hide the powerflic interface menu. Although not really
            needed, you should probably do a "/SHOWMENU" at the
            end.

            Example : "powerflc /hidemenu /play hello.flc /showmenu"
            or      : "powerflc /hidemenu /playfile hello.flc /close"

           *When playing several flics at a sequence from the command line
            the transition between the flics should now be smoother.

           *PowerFliC now tries to conform better to NT 4.0 specifications.
            I didn't see any difference in playback here, but others might.

           *The powerflc.cfg file should now be more reliable (hopefully).
            One of these days i'll just write it to the registery, but
            corrently im too lazy.

           *Fixed disappearence bug where the Powerflic menu just didn't
            appear.  If this still happens, just delete the powerflc.cfg
            file, and the problem will get solved.

 - 1.70    *You can now play a wave file (.WAV) in sync with the flic.
            You must specify the wave file name BEFORE using one of the
            play command lines.  The wave file will only play for the
            next played flic file.

            Example : "powerflc /wavfile hithere.wav /play hello.flc /close"

            If the flic is looping, the wave file may get cut, since it will
            be restarted when the flics loops.

           *Now the /WinMax parameter actually works :)


 - 1.62    *When trying to press the "P" button to play instead of the play
            button, PowerFliC crashed.

           *Fixed the error when trying to use the /TitleON or /TitleOFF
            command lines.

           *Added another command line parameter called /BigReadON
            It changes the way PowerFliC reads the flic from hard disk,
            it takes about 100-400k more memory (depanding on resolution),
            it only works when playing from hard disk.  It MIGHT be faster,
            but im not really sure.  It is by default OFF.

 - 1.61    *Eeek, a really bad resource leak problem fixed!

 - 1.60    *Check out my ALL-New home page!, it holds information on
            3D-Design and Rendering, it shows some of my rendering work.
            And ofcourse, it holds link to PowerFliC, so you'll always
            know where to get the latest version from.

            Check the page out at:
            http://www.geocities.com/SiliconValley/Park/6601/index.html

            If you have a 3D related page of your own, let me know, and             
            i'll add a link.

           *Yes, it appears i missed yet another thing, delay frames.
            When there was NO difference between frames, it should have
            been a delay frame, but i just skipped it.  Oh well, this is
            now fixed, and the player waits the frame out.

           *Another buggy (?) encoder problem overcome, it appears that
            some flic encoder leaves trash after certain frames, expecting
            the decoder to ignore file position and follow header information
            blindly.  Well, i didn't make PowerFliC follow blindly, but i did
            add a small check for this annoyence, so there will be NO slow downs
            by disk seeks trying to reposition on correctly encoded flic files.

           *Now when loop is disabled, the ring frame is not decoded so that
            the last and not the first frame in the flic will remain on screen.
            
           *Fixed a bug that caused the play from file button not to work
            if used more than once.

           *You can now play Read-Only files.  Don't you just hate
            those stupid system fuck-ups?

           *Very minor cosmetic fix-ups.

           *Improved decoding speed by about half a precent.  Decoding 
            speed is about 1030fps at 320x240 on a P5/100mhz (decoding
            alone, without the display).

           *Added a rant and rave section to the docs, discussing some
            of the benifits of the different animation formats.

 - 1.51    *Check out the new K-Rad 256 color icon! (it only appears
            in the program when in High color modes, but you can view
            the powericn.gif if your vga does not support such modes).
 
           *It seems i didn't check the new play from file method enough.
            It had some bugs when trying to use it from the command line.

           *A few other command line glitches were fixed.


 - 1.50    *Although the interface looks exactly the same as v1.40, the
            meaning of the Play from File button has changed!.  With this
            button, you now select a file to be played, and it is only
            played when you press the PLAY button.  When the flic playback
            is complete, the play button is remained enabled and you can
            press it again to play the same file from disk.

           *New information "Status" under the information page (Alt-I).
            The status can contain three things:
            1. In memory      = A Flic is currently loaded in memory.
            2. File Selected  = A flic file was selected using the
                                file play option.
            3. None           = Means that there is no flic in memory
                                or file selected to be played.            

           *Now pressing the Close button in the IMAGE window fixes the
            image window to one forth the size of the screen.

           *New key "Alt-Enter" this key will Go to full-screen
            stretch mode.  Pressing it again will restore the
            window size to the size defined in the Flic header.

           *You can now always exit using the quit button, even during
            flic playback.

           *Now when you move a window on top of a stopped flic, and
            move it off, the bitmap is not erased.  Not really important
            but what a little more attractive.

 - 1.40    *256 color playback now maps unsupported colors to the nearest
            colors in the palette, no more black areas where pixels were
            lost to the 20 system palette.

 - 1.30    *Playback speed improvement!, playing is 30%-50%
            faster now.  PowerFliC was timed playing a full motion
            800x600 full screen flic at 28 frames per second
            on a P5/100mhz.

            This improvement is due to faster screen writes, 
            PowerFliC has an ASM32 Optimized decoder, so the
            decoding was always fast.  Another thing, the screen
            writes are still the bottleneck.  PowerFliC could be
            even faster (Maybe when i get some good Direct-X docs
            it will get even faster).

           *Added a new key "CTRL-+" (Control Plus), this key will
            restore playback speed to it's predefined original state.

           *Added a new key "CTRL--" (Control Minus), this key will
            move the speed bar to the Max (0) position for maximum
            playback speedrates.

           *Now pressing "ALT-X" will exit PowerFliC,
            even during playback.

           *Fixed a bug that caused a "Divide by zero" error
            when playing flics when the speed was set to 0.

           *Improved display of FPS (under statistics) when dealing with
            VERY high speed playback (at 100fps).

           *Small DOC size (reduced image to 16 colors :)

 - 1.20    *It appears that without a special command, windows timing
            accuracy is bad.  So there was a +/- 12ms inaccuracy
            in play timing.  Fixed (Now 1ms accuracy).

           *Ouch, it appears that some flic encoders (Animator PRO)
            write wrong frame size for uncompressed frames!
            This caused PowerFliC to crash with an "I/O 87" error.

           *Another bug related to uncompressed frames was fixed, it
            was causing unreliable playback on flics with uncompressed
            frames that may cause the player to crash.

           *Added tiny arrows to the left and right of the bars
            for accurate moving.

           *A new playing statistic page was added (ALT-S).

           *A new information page was added (ALT-I).


 - 1.10    *Changed name from "Flic Player 32bit" to 
            "PowerFliC 32bit", sounds better.

           *It appears that some sort of encoder seems to save
            the ring frame of FLI/FLC files as 0 chunks.  
            This caused a "Read beyond end of file" error.
            PowerFliC now plays these files smoothly 
            (not like some other flic players).

           *When PowerFliC is passed an invalid or non-existant
            flic file, it now informs you of the problem instead
            of ignoring it.

           *Added a new key "ALT-X" to exit PowerFliC
            (Only works when there is no flic playing).

           *PowerFliC now correctly writes it's configuration
            file in the directory the exe file is located,
            and NOT the directory it was run at.

           *New "About" window created to reflect name change.

           *PowerFliC is now available on Tucows (http://www.tucows.com) 
            and all it's mirrors.
            If you're having problems connecting to tucows, try one of
            it's mirrors at "http://www.env.com".

 - 1.00     Flic Player 32bit First Release.
