.ANDpakk2 (apk2) v0.18 - Build Mon Jul 16 00:52:28 2007
.state of the art EXEcutable compression tool

.copyright (c) 2006,2007 Dmitry "AND" Andreev
.http://and.intercon.ru

----introduction--------------------------------------------

      ANDpakk2 is an EXEcutable compression tool allowing
    you to get better compression ratios of your intros,
    demos or any other kind of software.
      This project is a part of research work of the author
    for internal usage and 64k intro experiments.
      
      ANDpakk2 is based on idea of adaptive statistical data
    compression based on context modeling and prediction by
    model mixing and prediction by partial matching on
    neural networks.
      All the data is getting processed by filters,
    predicted in different context models (by neural
    networks) which are getting mixed and predicted by
    another neural networks again. Prediction is done
    per bit with four-byte context history and coded by
    arithmetic coder at the final stage.

      I've got very impressive compression ratios making
    Zoom3 64k intro compressed down to 45760 bytes after
    some specific optimizations of the data structures.
    It also shows much much better compression ratios than
    any other general purpose EXE/data compressor.

----usage---------------------------------------------------

      Just pass your file as the first parameter like this
    apk2.exe yourfilename.exe

      And two files (yourfilename_apk2.exe and
    yourfilename.exe.apk) will be generated. Where file with
    .apk extension is just a pure compressed data to have an
    idea about compression ratio. So you can remove it.

      Also during compression you will get information about
    compression ratio of each 1024-byte block.

----limitations---------------------------------------------

      This is SPECIALIZED compressor and it was designed to
    get as higher compression ratio as possible for
    64k intros or files bigger than 32k and less than 256k.
      As long as compressor/decompressor are not using any
    kind of dictionaries, minimal file size should be
    at least 8k or something like that. So neural networks
    will be trained enough to build and predict any kind
    of data model.
      As long as decompressor has linear performance the
    bigger file you have the longer it will take to
    decompress it.
      Only code, data and resource sections of EXE/PE file
    are supported and tested mostly on internal test suit.
    So if your compressed EXE doesn't work then something is
    wrong with your original EXE file and I didn't test/had
    the same case. Sorry for that.
      To get better compression ratios your data should be
    optimized for PPM (Prediction by Partial Match) kind of
    algorithm in general. For instance, in intro directory
    you will find zoom3 v1.03 which was optimized for apk2
    and it is 6k smaller than not optimized version.
      DO NOT DELTA COMPRESS your data, DO NOT SEPARATE data
    into different streams and DO NOT DO the same as you did
    to get better compression ratio for UPX or any other
    kind of compressor which is not based on PPM or PPM
    related compression algorithm.
      v0.06 supports only 16mb of BSS, so allocate your
    memory dynamically.
      Decompressor by itself takes 3-4k of code, so do not
    expect to pack 4k intros or something very small.
      Only 0 (Zero) gaps are handled quickly. So if you have
    very long sequence of non-zero bytes it will not be
    effectively compressed and will take quite some time.

----what's new----------------------------------------------

      v0.18

      - Increased compression ratios
      There is two main features that increase compression
    ratios. Optimized context models and x86 code reslicing.
    Whereas first feature increases overall compression,
    second one gives much better ratios on x86 code.
    Basically, it disassembles the code and puts different
    opcode components into separate streams of data. After
    decompression a little piece of code assembles all
    together.

      - Increased compression speed
      Due to special kind of optimizations on context models
    some of them were merged. But that's not all. There is
    a new option called "fast zero-gaps" compression.
    By enabling this option model analyzer will be disabled
    in case of very long empty blocks.
    
      - Improved compatibility
      The way PE file created is quite different now. There
    is no more input file size restrictions. Decompressor
    has been rewritten in address independent way such that
    it can be placed at any place in memory. DLL importer
    is also quite different now. After all it even works
    under Wine in Linux and on Windows Vista 64.
    
      - Configurable stub
      Now you can disable progress window (if you are ok
    with decompression speed of your app) or enable some
    extra compression options. In every case there are
    pre-compiled stub wich is as small as possible for each
    case.

                         |  v0.06  |  v0.18
    ---------------------+---------+---------
    squish_apk2.exe      |  52496  |  50576
    zoom3_v1_03_apk2.exe |  48000  |  45760

----package-------------------------------------------------

.this package includes:

    apk2.exe                     - packer by itself
    file_id.diz                  - short package description
    readme.txt                   - this file
    intros/squish_apk2.exe       - Squish 64k intro
    intros/zoom3_v1_03_apk2.exe  - Optimized Zoom3 64k intro
 
.ATTENTION

    ANDpakk2 IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND
    IS EXPRESSED OR IMPLIED. YOU USE AT YOUR OWN RISK.
    THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, DAMAGES,
    LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR
    MISUSING THIS SOFTWARE.

      This program may be used FREEly, and you are welcome
    to redistribute it under certain conditions.

      STRICTLY FORBIDDEN to modify or redistribute MODIFIED
    version of this package.

      STRICTLY FORBIDDEN to redistribute any file of this
    package separately.

      STRICTLY FORBIDDEN to modify any file generated by
    apk2.exe tool, modify EXE/PE binary header
    of generated/compressed file(s).
