Mixed LZ-RLE compression tool for HAL Laboratory games.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
LICENSE
README.md
Setup.hs
kirbyLzRle.cabal
stack.yaml

README.md

kirbyLzRle.

Mixed LZ-RLE compression tool for HAL Laboratory games.

Synopsis:

kirbyLzRle [-d | -c | -cf] inFileName outFileName

Description:


kirbyLzRle -d <inFile> <offset> <outFile> - Decompress block from given ROM file.

kirbyLzRle -c <inFile> <outFile> - Compress given plain block.

kirbyLzRle -cf <inFolder> <baseOffset> <outFile> Batch compress files in given folder.

-h - Display help

-v - Output version information

See additional files in release archive.

This tool is written significantly later, than Revenant's exhal/inhal with only two purposes:

  1. Show that such relatively complex compression tools can be elegantly written in Haskell (300 lines for compression and decompression, including parsing command line parameters)
  2. Write a more spatially efficient packer than inhal (which was also more efficient than the original packer from the HAL laboratory)

The tool was tested on the NES game "Kirby's Adventure", but given the format, it should work on the same games as exhal / inhal.

Build with Haskell Stack tool.