apultra -- a new, opensource optimal compressor for the aPLib format
apultra is a command-line tool and a library that compresses bitstreams in the aPLib format.
The tool produces files that are 5 to 7% smaller on average than appack, the aPLib compressor. Unlike the similar cap compressor, apultra can compress files larger than 64K.
apultra is written in portable C. It is fully open-source under a liberal license. You can continue to use the regular aPLib decompression libraries for your target environment. You can do whatever you like with it.
Example compression with vmlinux-5.3.0-1-amd64
original 27923676 (100,00%)
appack 7370129 (26,39%)
gzip 1.8 7166179 (25,66%)
apultra 1.4.1 6910729 (24,75%)
The output is fully compatible with the original aPLib by Jørgen Ibsen.
Inspirations:
-
cap by Sven-Åke Dahl.
-
Charles Bloom's compression blog.
-
LZ4 by Yann Collet.
- spke for help and support
Some projects that use apultra for compression:
-
Hyperdrive, a new, excellent shoot'em up for the Amstrad CPC 464/6128/GX4000, in cartridge format, by usebox.net.
-
Brick Rick, a new game for the Amstrad CPC 464/6128 by usebox.net. A physical copy can be ordered from Polyplay
-
Brick Rick: Graveyard Shift, a similar new game for the ZX Spectrum 128K by usebox.net. Get it on tape from TFW8b.com
-
Kitsune's Curse, another new title for the CPC line by usebox.net.
-
Sgt. Helmet's Training Day, a new game for the Amstrad CPC by the Mojon Twins (using their MK1 engine).
-
Prince Dastan - Sokoban Within, a CPCRetroDev 2020 game for the Amstrad CPC by Euphoria Design
-
Petris, a homebrew game for the Gameboy.
-
Mr Palot, a ZX Spectrum game made with the Mojon Twins MK1 engine.
-
rasm, a popular Z80 assembler, features built-in support for apultra-compressed data sections.
Also of interest:
License:
- The apultra code is available under the Zlib license.
- The match finder (matchfinder.c) is available under the CC0 license due to using portions of code from Eric Bigger's Wimlib in the suffix array-based matchfinder.