Skip to content

Free open-source compressor for apLib with 5-7% better ratios

License

Notifications You must be signed in to change notification settings

emmanuel-marty/apultra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.