Lgpgnc is very simple program which helps to prepare pgn files for better compression with any compression utility. This is only alpha version, so it may contain bugs.

Changes from version 1.1a:
1.EOLs both DOS(0x0D 0x0A) and Unix(0x0A).
2.Comments({...}) length is not limited.
3.Attack function now about 2 times faster(2.5 times with ASM).
Converted files must be compatible with previous version.

Usage: lgpgnc c|x[0|1] Input_file Output_file
Examples:
lgpgnc c lg71.pgn lg71.lgc          converts lg71.pgn to lg71.lgc
lgpgnc x lg71.lgc lg71.pgn          retrieves lg71.pgn from lg71.cmp with SAN output
lgpgnc x0 lg71.lgc lg71.pgn        the same as previous
lgpgnc x1 lg71.lgc lg71.pgn        retrieves lg71.pgn from lg71.cmp with long algebraic output
Some test results

Name Original WinZip 6.3
max
PkZip 2.50
-exx
Rar
-m5
7zip
-mx
Arhangel
-mt
Boa
-m7
lg71.pgn 155871 50710 50511 49590 48162 38837 36423
lg71.lgc 27406 15397 15106 15760 14989 15131 14568
lg0700a.pgn 358871 119802 119648 115877 113954 86301 81916
lg0700a.lgc 65016 36903 36152 37302 35622 35733 33944
book.txt* 358871 119802 119648 115877 113954 86301 81916
book.lgc 65016 36903 36152 37302 35622 35733 33944
Remarks:
*-middle.zip from Crafty's site. As you can see the size of converted file itself is already smaller than any compressed PGN so you may consider it as a compressor, but it still compressible 30-50% more and performance difference between slow arithmetic(ARHANGEL,BOA) and fast LZ(ZIP,RAR) compressors is gone...
Download lgpgnc v1.1alpha (with TP sources - 20kB)