asmodean's reverse engineering page

news and updates / index of tools / message board

2007/08/17 / alb2png

Their compression uses a dictionary based scheme that feels a little bit like LZ78, with the major difference being that it actually outputs the dictionary.

This is inefficient in general, but it's pathological when compressing data without much repetition. PNG images double in size!

Updated: I realized that the algorithm is byte-pair encoding, which is designed to prevent exactly the data-expansion problem seen here. This game's implementation is apparently broken, causing it to emit extraneous table entries for literal symbols...

// alb2png.cpp, v1.01 2007/08/19
// This tool decompresses Gesen 18's *.alb data (PNG and DDS).
Known to work with:

2007/09/28   げーせん18   「詩篇69 〜深淵のメサイア〜」
2009/06/19   unicorn-a/げーせん18   「詩篇U〜再誕のカタストロフ〜」

*.alb (sig=ALB1)

All source © 2006-2014, asmodean. Don't copy, learn.