mdcomp
mdcomp copied to clipboard
Assorted compression formats for the Sega Mega Drive
Space Harrier 2 has an interesting, but simple graphics compression algorithm. It has a 32 byte decompression buffer for holding decompressed tile data. For each tile, it'll use a list...
The Adventures of Batman & Robin uses quite powerful, yet fast compression format with the sliding window of 0x6A0 bytes and maximum dictionary reference length of 0x113 bytes. Below are...
Maybe it would be a good idea to have an embedded DSL for describing file formats, and have the internal code be mostly generated automatically. Something like (straw syntax): ```c++...
Seems to be one more LZSS format. References: - [Thread by @Clownacy](https://forums.sonicretro.org/index.php?threads/s2-nick-arcades-unknown-compression-is-used-in-kid-chameleon.36073/) - [Linked thread by Saxman](https://forums.sonicretro.org/index.php?threads/sonic-hackers-should-ditch-kosinski-for-this.25810/) - [C++ implementation](https://github.com/sonicretro/kid-chameleon-disasm/tree/master/tools/src) - [clownlzss implementation](https://github.com/Clownacy/clownlzss/blob/master/chameleon.c) - sonicretro/SonLVL#102
So I've been working on my own set of graph-based LZSS compressors, and recently added support for Chameleon - the compression used by Kid Chameleon and Sonic 2 Nick Arcade...
Need to add multi-stream LZSS, with separate streams for descriptors and inline data. This is needed for #24, and relevant for #8.
Compile used a pretty basic LZ-based compression scheme for their graphics data in Puyo Puyo, with a 256 byte sliding window (and also a 4 byte buffer for copying to...
Description, assembly, and c# version [here](http://gendev.spritesmind.net/forum/viewtopic.php?f=2&t=2921).